From 90581adc9936d3e2c5882589a92ed11e531ff5de Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Fri, 10 Oct 2025 11:25:55 +0900 Subject: [PATCH 01/52] =?UTF-8?q?=C3=A3=C2=85=EC=95=88=EB=93=9C=EB=A1=9C?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=20=EA=B5=AC=EC=A1=B0=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .metadata | 26 +- .../example/guardpayfront/MainActivity.java | 6 - .../com/example/guardpayfront/MainActivity.kt | 5 + .../auth/screens}/signup_screen.dart | 0 lib/main.dart | 2 +- linux/.gitignore | 1 + linux/CMakeLists.txt | 128 ++++ linux/flutter/CMakeLists.txt | 88 +++ linux/flutter/generated_plugin_registrant.cc | 11 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 23 + linux/runner/CMakeLists.txt | 26 + linux/runner/main.cc | 6 + linux/runner/my_application.cc | 144 ++++ linux/runner/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 10 + macos/Runner.xcodeproj/project.pbxproj | 705 ++++++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 99 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 +++++++++ macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 12 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 8 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.lock | 26 +- web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes web/index.html | 38 + web/manifest.json | 35 + windows/.gitignore | 17 + windows/CMakeLists.txt | 108 +++ windows/flutter/CMakeLists.txt | 109 +++ .../flutter/generated_plugin_registrant.cc | 11 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 23 + windows/runner/CMakeLists.txt | 40 + windows/runner/Runner.rc | 121 +++ windows/runner/flutter_window.cpp | 71 ++ windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 ++ windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes windows/runner/runner.exe.manifest | 14 + windows/runner/utils.cpp | 65 ++ windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 288 +++++++ windows/runner/win32_window.h | 102 +++ 69 files changed, 3046 insertions(+), 27 deletions(-) delete mode 100644 android/app/src/main/java/com/example/guardpayfront/MainActivity.java create mode 100644 android/app/src/main/kotlin/com/example/guardpayfront/MainActivity.kt rename lib/{ => features/auth/screens}/signup_screen.dart (100%) create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 linux/runner/CMakeLists.txt create mode 100644 linux/runner/main.cc create mode 100644 linux/runner/my_application.cc create mode 100644 linux/runner/my_application.h create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.metadata b/.metadata index d024a4b..84f56b1 100644 --- a/.metadata +++ b/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled and should not be manually edited. version: - revision: "fcf2c11572af6f390246c056bc905eca609533a0" + revision: "d693b4b9dbac2acd4477aea4555ca6dcbea44ba2" channel: "stable" project_type: app @@ -13,14 +13,26 @@ project_type: app migration: platforms: - platform: root - create_revision: fcf2c11572af6f390246c056bc905eca609533a0 - base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 - platform: android - create_revision: fcf2c11572af6f390246c056bc905eca609533a0 - base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 - platform: ios - create_revision: fcf2c11572af6f390246c056bc905eca609533a0 - base_revision: fcf2c11572af6f390246c056bc905eca609533a0 + create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + - platform: linux + create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + - platform: macos + create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + - platform: web + create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + - platform: windows + create_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 + base_revision: d693b4b9dbac2acd4477aea4555ca6dcbea44ba2 # User provided section diff --git a/android/app/src/main/java/com/example/guardpayfront/MainActivity.java b/android/app/src/main/java/com/example/guardpayfront/MainActivity.java deleted file mode 100644 index f001b5d..0000000 --- a/android/app/src/main/java/com/example/guardpayfront/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.example.guardpayfront; - -import io.flutter.embedding.android.FlutterActivity; - -public class MainActivity extends FlutterActivity { -} diff --git a/android/app/src/main/kotlin/com/example/guardpayfront/MainActivity.kt b/android/app/src/main/kotlin/com/example/guardpayfront/MainActivity.kt new file mode 100644 index 0000000..95b4421 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/guardpayfront/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.guardpayfront + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/lib/signup_screen.dart b/lib/features/auth/screens/signup_screen.dart similarity index 100% rename from lib/signup_screen.dart rename to lib/features/auth/screens/signup_screen.dart diff --git a/lib/main.dart b/lib/main.dart index b043f09..23ea50a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,7 @@ // Flutter 앱의 시작점입니다. import 'package:flutter/material.dart'; // 1. 우리가 만든 회원가입 화면 파일을 불러옵니다. -import 'signup_screen.dart'; +import 'features/auth/screens/signup_screen.dart'; void main() { runApp(const MyApp()); diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt new file mode 100644 index 0000000..2072990 --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,128 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.13) +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 "guardpayfront") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.guardpayfront") + +# 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) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# 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) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# 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/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/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/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..e71a16d --- /dev/null +++ b/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/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/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/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..2e1de87 --- /dev/null +++ b/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/linux/runner/CMakeLists.txt b/linux/runner/CMakeLists.txt new file mode 100644 index 0000000..e97dabc --- /dev/null +++ b/linux/runner/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.13) +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} + "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 preprocessor definitions for the application ID. +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") diff --git a/linux/runner/main.cc b/linux/runner/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/linux/runner/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/linux/runner/my_application.cc b/linux/runner/my_application.cc new file mode 100644 index 0000000..9e468a9 --- /dev/null +++ b/linux/runner/my_application.cc @@ -0,0 +1,144 @@ +#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) + +// Called when first Flutter frame received. +static void first_frame_cb(MyApplication* self, FlView *view) +{ + gtk_widget_show(gtk_widget_get_toplevel(GTK_WIDGET(view))); +} + +// 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, "guardpayfront"); + 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, "guardpayfront"); + } + + gtk_window_set_default_size(window, 1280, 720); + + 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); + GdkRGBA background_color; + // Background defaults to black, override it here if necessary, e.g. #00000000 for transparent. + gdk_rgba_parse(&background_color, "#000000"); + fl_view_set_background_color(view, &background_color); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + // Show the window when Flutter renders. + // Requires the view to be realized so we can start rendering. + g_signal_connect_swapped(view, "first-frame", G_CALLBACK(first_frame_cb), self); + gtk_widget_realize(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 GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// 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_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + // Set the program name to the application ID, which helps various systems + // like GTK and desktop environments map this running application to its + // corresponding .desktop file. This ensures better integration by allowing + // the application to be recognized beyond its binary name. + g_set_prgname(APPLICATION_ID); + + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/linux/runner/my_application.h b/linux/runner/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/linux/runner/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/macos/.gitignore b/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..cccf817 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,10 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1ab279f --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + 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 */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 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 */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 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 */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 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 /* guardpayfront.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "guardpayfront.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 */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 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 */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* guardpayfront.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + 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 */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 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 /* guardpayfront.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 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 */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 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; + alwaysOutOfDate = 1; + 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 */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 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 */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 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 */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.guardpayfront.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/guardpayfront.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/guardpayfront"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.guardpayfront.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/guardpayfront.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/guardpayfront"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.guardpayfront.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/guardpayfront.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/guardpayfront"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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.15; + 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; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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.15; + 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; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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.15; + 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 */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 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/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..aff9c66 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..b3c1761 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/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/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..82b6f9d9a33e198f5747104729e1fcef999772a5 GIT binary patch literal 102994 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ⅅ8MglG&ER{i5lN315cO?EdHNLrg? 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 z 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 Pe7HEdAEg|=c=LY&YVNkY literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/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/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/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/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/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/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..87d5eac --- /dev/null +++ b/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 = guardpayfront + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.guardpayfront + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2025 com.example. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/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/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/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/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/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/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..61f3bd1 --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.lock b/pubspec.lock index b910700..5792e99 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -95,26 +95,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -204,10 +204,10 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" typed_data: dependency: transitive description: @@ -220,18 +220,18 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "15.0.2" web: dependency: transitive description: @@ -241,5 +241,5 @@ packages: source: hosted version: "1.1.1" sdks: - dart: ">=3.7.0-0 <4.0.0" + dart: ">=3.8.0-0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/web/favicon.png b/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/web/icons/Icon-192.png b/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/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-192.png b/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/web/icons/Icon-maskable-512.png b/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/web/index.html b/web/index.html new file mode 100644 index 0000000..7379ea4 --- /dev/null +++ b/web/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + guardpayfront + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..ec23b29 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "guardpayfront", + "short_name": "guardpayfront", + "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/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/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/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..635389b --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(guardpayfront 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 "guardpayfront") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# 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() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# 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/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..903f489 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# 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") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === 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" + ${FLUTTER_TARGET_PLATFORM} $ + 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/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..8b6d468 --- /dev/null +++ b/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/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/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/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..b93c4c3 --- /dev/null +++ b/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/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +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_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +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/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..fa67d7b --- /dev/null +++ b/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", "guardpayfront" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "guardpayfront" "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "guardpayfront.exe" "\0" + VALUE "ProductName", "guardpayfront" "\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/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#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()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + 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/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/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/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..a5b1086 --- /dev/null +++ b/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.Create(L"guardpayfront", 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/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/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/windows/runner/resources/app_icon.ico b/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/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..153653e --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,14 @@ + + + + + PerMonitorV2 + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..3a0b465 --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#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(); + } + unsigned int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + 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, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/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/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// 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 registrar 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::Create(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, + 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; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// 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; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + 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. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#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 a win32 window with |title| that is positioned and sized 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 this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // 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 + // responds 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; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + 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_ From 4c5bc896ef08330a2288e114d86d3d867ab250d5 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sat, 11 Oct 2025 11:34:42 +0900 Subject: [PATCH 02/52] =?UTF-8?q?=C3=AC=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/config/theme.dart | 58 +++ lib/features/auth/screens/login_screen.dart | 234 +++++++++++ lib/features/auth/screens/signup_screen.dart | 376 ++++++++++-------- lib/features/auth/services/auth_service.dart | 72 ++++ .../auth/widgets/auth_input_field.dart | 69 ++++ .../auth/widgets/email_auth_section.dart | 114 ++++++ lib/main.dart | 19 +- 7 files changed, 752 insertions(+), 190 deletions(-) create mode 100644 lib/config/theme.dart create mode 100644 lib/features/auth/screens/login_screen.dart create mode 100644 lib/features/auth/services/auth_service.dart create mode 100644 lib/features/auth/widgets/auth_input_field.dart create mode 100644 lib/features/auth/widgets/email_auth_section.dart diff --git a/lib/config/theme.dart b/lib/config/theme.dart new file mode 100644 index 0000000..0150b45 --- /dev/null +++ b/lib/config/theme.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; + +// 앱 전체에서 사용할 기본 색상 정의 +const Color primaryColor = Color(0xFF6AA84F); // GuardPay Green +const Color lightGrayBorder = Color(0xFFD0D0D0); // 연한 회색 테두리 +const Color lightBackground = Color(0xFFF9F5EC); // 베이지 배경색 + +// 앱의 전체 테마를 정의하는 함수 +ThemeData appTheme() { + return ThemeData( + // 앱의 전반적인 색상 톤을 설정합니다. + primaryColor: primaryColor, + // 배경색을 베이지색으로 설정합니다. + scaffoldBackgroundColor: lightBackground, + + // 입력창(TextField)의 기본 디자인을 설정합니다. + inputDecorationTheme: const InputDecorationTheme( + filled: true, + fillColor: Colors.white, + // 힌트 텍스트 색상 설정 + hintStyle: TextStyle(color: Color(0xFFBDBDBD)), + + // 기본 테두리 스타일: 둥근 모서리(8.0)와 연한 회색 테두리 + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8.0)), + borderSide: BorderSide(color: lightGrayBorder), + ), + // 활성화된 상태의 테두리 + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8.0)), + borderSide: BorderSide(color: lightGrayBorder), + ), + // 포커스 상태의 테두리 (주요 색상으로 강조) + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8.0)), + borderSide: BorderSide(color: primaryColor, width: 2.0), + ), + // 비활성화 상태의 테두리 (인증 완료 시 사용) + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8.0)), + borderSide: BorderSide(color: lightGrayBorder, width: 1.0), + ), + // 입력 필드 내부 패딩 + contentPadding: EdgeInsets.symmetric(vertical: 12.0, horizontal: 16.0), + ), + + // Checkbox의 색상 설정 + checkboxTheme: CheckboxThemeData( + fillColor: MaterialStateProperty.resolveWith((states) { + if (states.contains(MaterialState.selected)) { + return primaryColor; + } + return Colors.white; + }), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(4)), + ) + ); +} diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart new file mode 100644 index 0000000..884f325 --- /dev/null +++ b/lib/features/auth/screens/login_screen.dart @@ -0,0 +1,234 @@ +import 'package:flutter/material.dart'; +// HTTP 요청을 위해 http 패키지를 불러옵니다. +import 'package:http/http.dart' as http; +// 데이터를 JSON으로 변환하기 위해 필요합니다. +import 'dart:convert'; + +// React의 함수형 컴포넌트가 Flutter의 StatefulWidget으로 변경됩니다. +// 화면의 내용이 바뀌어야 할 때 (예: 글자 입력) StatefulWidget을 사용합니다. +class SignupScreen extends StatefulWidget { + const SignupScreen({super.key}); + + @override + State createState() => _SignupScreenState(); +} + +// 위젯의 '상태'를 관리하는 클래스입니다. React의 useState 훅의 역할을 합니다. +class _SignupScreenState extends State { + // 1. 폼 데이터 상태 관리 + // React의 formData 객체 대신, 각 입력 필드를 TextEditingController로 관리합니다. + final _emailController = TextEditingController(); + final _authCodeController = TextEditingController(); + final _passwordController = TextEditingController(); + final _passwordConfirmController = TextEditingController(); + final _nicknameController = TextEditingController(); + + // 체크박스와 이메일 확인 상태는 boolean으로 관리합니다. + bool _termsAgreed = false; + bool _isEmailConfirmed = false; + + // 2. 입력값 변경 시 상태 업데이트 + // Controller를 사용하면 따로 핸들러가 필요 없지만, 체크박스를 위해 만듭니다. + void _toggleTerms(bool? value) { + // setState는 React의 setFormData와 같습니다. 화면을 다시 그리도록 명령합니다. + setState(() { + _termsAgreed = value ?? false; + }); + } + + // 3. 이메일 '확인' 버튼 함수 + void _handleEmailConfirm() { + final email = _emailController.text; + final emailRegex = RegExp(r"^[^\s@]+@[^\s@]+\.[^\s@]+$"); + if (email.isEmpty || !emailRegex.hasMatch(email)) { + // alert() 대신 ScaffoldMessenger와 SnackBar를 사용해 메시지를 보여줍니다. + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('올바른 이메일 주소를 입력해주세요.')), + ); + return; + } + + print('이메일 확인 완료: $email'); + setState(() { + _isEmailConfirmed = true; + }); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이메일이 확인되었습니다.')), + ); + } + + // 4. '가입하기' 버튼 함수 (handleSubmit) + Future _handleSubmit() async { + // 유효성 검사 + if (_emailController.text.isEmpty || + _passwordController.text.isEmpty || + _nicknameController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('필수 항목(*)을 모두 입력해주세요.')), + ); + return; + } + if (_passwordController.text != _passwordConfirmController.text) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('비밀번호가 일치하지 않습니다.')), + ); + return; + } + if (!_termsAgreed) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('약관에 동의해주세요.')), + ); + return; + } + + // 🚨 중요: API 주소는 React Native와 동일하게 10.0.2.2를 사용합니다. + const apiUrl = 'http://10.0.2.2:8080/api/users/signup'; + + // 서버에 보낼 데이터 (JavaScript의 객체 -> Dart의 Map) + final signupData = { + 'email': _emailController.text, + 'password': _passwordController.text, + 'nickname': _nicknameController.text, + }; + + try { + // axios.post -> http.post + final response = await http.post( + Uri.parse(apiUrl), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode(signupData), // 데이터를 JSON 문자열로 인코딩 + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + print('가입 성공 응답: ${response.body}'); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('회원가입이 완료되었습니다!')), + ); + // TODO: 로그인 화면으로 이동하는 로직 추가 + } else { + print('가입 실패: ${response.body}'); + final errorBody = jsonDecode(response.body); + final errorMessage = errorBody['message'] ?? '가입에 실패했습니다.'; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(errorMessage)), + ); + } + } catch (error) { + print('가입 요청 실패: $error'); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('서버와 통신할 수 없습니다.')), + ); + } + } + + // React의 return (...) 부분은 Flutter의 build 메소드에 해당합니다. + // JSX 대신 위젯(Widget)을 조립하여 UI를 만듭니다. + @override + Widget build(BuildContext context) { + // Scaffold는 화면의 기본 구조(상단 바, 본문 등)를 제공합니다. + return Scaffold( + // 키보드가 올라올 때 화면이 가려지지 않도록 스크롤 가능하게 만듭니다. + body: SingleChildScrollView( + // 화면 전체에 여백을 줍니다. + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 60), + child: Column( + // 자식 위젯들을 세로로 정렬합니다. + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Text( + 'GuardPay', + textAlign: TextAlign.center, + style: TextStyle( + color: Color(0xFF6AA84F), + fontSize: 50, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 30), // 여백 + + // 이메일 입력 + const Text('이메일 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + TextField( + controller: _emailController, + decoration: const InputDecoration( + hintText: '이메일', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + ), + keyboardType: TextInputType.emailAddress, + ), + const SizedBox(height: 15), + + // 비밀번호 입력 + const Text('비밀번호 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + TextField( + controller: _passwordController, + decoration: const InputDecoration( + hintText: '비밀번호', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + ), + obscureText: true, // 비밀번호 가리기 + ), + const SizedBox(height: 10), + TextField( + controller: _passwordConfirmController, + decoration: const InputDecoration( + hintText: '비밀번호 재입력', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + ), + obscureText: true, + ), + const SizedBox(height: 15), + + // 닉네임 입력 + const Text('닉네임 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + TextField( + controller: _nicknameController, + decoration: const InputDecoration( + hintText: '닉네임', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + ), + ), + const SizedBox(height: 25), + + // 약관 동의 + Row( + children: [ + Checkbox( + value: _termsAgreed, + onChanged: _toggleTerms, + ), + const Text('약관 전체 동의'), + ], + ), + const SizedBox(height: 20), + + // 가입하기 버튼 + ElevatedButton( + onPressed: _handleSubmit, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(vertical: 15), + textStyle: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + child: const Text('가입하기'), + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/auth/screens/signup_screen.dart b/lib/features/auth/screens/signup_screen.dart index 7699dad..03f4f79 100644 --- a/lib/features/auth/screens/signup_screen.dart +++ b/lib/features/auth/screens/signup_screen.dart @@ -1,11 +1,13 @@ import 'package:flutter/material.dart'; -// HTTP 요청을 위해 http 패키지를 불러옵니다. -import 'package:http/http.dart' as http; -// 데이터를 JSON으로 변환하기 위해 필요합니다. +import 'package:http/http.dart' as http; // SnackBar 등 Context가 필요한 곳에서 HTTP 라이브러리를 사용하기 위해 필요 import 'dart:convert'; -// React의 함수형 컴포넌트가 Flutter의 StatefulWidget으로 변경됩니다. -// 화면의 내용이 바뀌어야 할 때 (예: 글자 입력) StatefulWidget을 사용합니다. +// 분리된 서비스와 위젯을 임포트합니다. +import '../services/auth_service.dart'; +import '../widgets/email_auth_section.dart'; // <--- EmailAuthSection 임포트 유지 및 정리 +import '../widgets/auth_input_field.dart'; // <--- 중복 임포트 제거 후 하나만 유지 + +// 회원가입 화면 class SignupScreen extends StatefulWidget { const SignupScreen({super.key}); @@ -13,220 +15,242 @@ class SignupScreen extends StatefulWidget { State createState() => _SignupScreenState(); } -// 위젯의 '상태'를 관리하는 클래스입니다. React의 useState 훅의 역할을 합니다. class _SignupScreenState extends State { - // 1. 폼 데이터 상태 관리 - // React의 formData 객체 대신, 각 입력 필드를 TextEditingController로 관리합니다. + // 1. 서비스 인스턴스 및 상태 관리 + final AuthService _authService = AuthService(); + final _formKey = GlobalKey(); // 폼 유효성 검사를 위한 키 + final _emailController = TextEditingController(); final _authCodeController = TextEditingController(); final _passwordController = TextEditingController(); final _passwordConfirmController = TextEditingController(); final _nicknameController = TextEditingController(); - // 체크박스와 이메일 확인 상태는 boolean으로 관리합니다. bool _termsAgreed = false; - bool _isEmailConfirmed = false; - - // 2. 입력값 변경 시 상태 업데이트 - // Controller를 사용하면 따로 핸들러가 필요 없지만, 체크박스를 위해 만듭니다. - void _toggleTerms(bool? value) { - // setState는 React의 setFormData와 같습니다. 화면을 다시 그리도록 명령합니다. - setState(() { - _termsAgreed = value ?? false; - }); - } + bool _isCodeRequested = false; // 인증 코드가 요청되었는가? + bool _isCodeVerified = false; // 인증 코드가 확인되었는가? + bool _isLoading = false; // 로딩 상태 - // 3. 이메일 '확인' 버튼 함수 - void _handleEmailConfirm() { - final email = _emailController.text; - final emailRegex = RegExp(r"^[^\s@]+@[^\s@]+\.[^\s@]+$"); - if (email.isEmpty || !emailRegex.hasMatch(email)) { - // alert() 대신 ScaffoldMessenger와 SnackBar를 사용해 메시지를 보여줍니다. - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('올바른 이메일 주소를 입력해주세요.')), - ); - return; + // 2. 인증 코드 요청 핸들러 + Future _handleCodeRequest() async { + setState(() { _isLoading = true; }); + try { + await _authService.requestAuthCode(_emailController.text); + setState(() { + _isCodeRequested = true; + _authCodeController.clear(); // 새 요청 시 코드 초기화 + }); + _showSnackBar('인증 코드가 이메일로 전송되었습니다.'); + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + setState(() { _isLoading = false; }); } + } - print('이메일 확인 완료: $email'); - setState(() { - _isEmailConfirmed = true; - }); - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('이메일이 확인되었습니다.')), - ); + // 3. 인증 코드 확인 핸들러 + Future _handleCodeVerify() async { + setState(() { _isLoading = true; }); + try { + await _authService.verifyAuthCode(_emailController.text, _authCodeController.text); + setState(() { + _isCodeVerified = true; + }); + _showSnackBar('이메일 인증이 성공적으로 완료되었습니다.'); + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + setState(() { _isLoading = false; }); + } } - // 4. '가입하기' 버튼 함수 (handleSubmit) + // 4. '가입하기' 버튼 함수 (최종 제출) Future _handleSubmit() async { - // 유효성 검사 - if (_emailController.text.isEmpty || - _passwordController.text.isEmpty || - _nicknameController.text.isEmpty) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('필수 항목(*)을 모두 입력해주세요.')), - ); - return; + if (!_formKey.currentState!.validate()) { + return; // 폼 유효성 검사 실패 시 종료 } + + // 추가 로직 유효성 검사 if (_passwordController.text != _passwordConfirmController.text) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('비밀번호가 일치하지 않습니다.')), - ); + _showSnackBar('비밀번호가 일치하지 않습니다.'); + return; + } + if (!_isCodeVerified) { + _showSnackBar('이메일 인증을 완료해주세요.'); return; } if (!_termsAgreed) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('약관에 동의해주세요.')), - ); + _showSnackBar('약관에 동의해주세요.'); return; } - // 🚨 중요: API 주소는 React Native와 동일하게 10.0.2.2를 사용합니다. - const apiUrl = 'http://10.0.2.2:8080/api/users/signup'; - - // 서버에 보낼 데이터 (JavaScript의 객체 -> Dart의 Map) - final signupData = { - 'email': _emailController.text, - 'password': _passwordController.text, - 'nickname': _nicknameController.text, - }; - + setState(() { _isLoading = true; }); try { - // axios.post -> http.post - final response = await http.post( - Uri.parse(apiUrl), - headers: {'Content-Type': 'application/json'}, - body: jsonEncode(signupData), // 데이터를 JSON 문자열로 인코딩 - ); - - if (response.statusCode == 200 || response.statusCode == 201) { - print('가입 성공 응답: ${response.body}'); - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('회원가입이 완료되었습니다!')), - ); - // TODO: 로그인 화면으로 이동하는 로직 추가 - } else { - print('가입 실패: ${response.body}'); - final errorBody = jsonDecode(response.body); - final errorMessage = errorBody['message'] ?? '가입에 실패했습니다.'; - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(errorMessage)), - ); - } - } catch (error) { - print('가입 요청 실패: $error'); - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('서버와 통신할 수 없습니다.')), + final message = await _authService.signup( + email: _emailController.text, + password: _passwordController.text, + nickname: _nicknameController.text, ); + _showSnackBar(message); + // TODO: 가입 성공 후 로그인 화면으로 이동 + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + setState(() { _isLoading = false; }); } } - // React의 return (...) 부분은 Flutter의 build 메소드에 해당합니다. - // JSX 대신 위젯(Widget)을 조립하여 UI를 만듭니다. + // 간결한 SnackBar 표시 유틸리티 + void _showSnackBar(String message) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(message)), + ); + } + + // 리소스 해제 + @override + void dispose() { + _emailController.dispose(); + _authCodeController.dispose(); + _passwordController.dispose(); + _passwordConfirmController.dispose(); + _nicknameController.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { - // Scaffold는 화면의 기본 구조(상단 바, 본문 등)를 제공합니다. return Scaffold( + appBar: AppBar( + backgroundColor: Theme.of(context).scaffoldBackgroundColor, // 배경색과 동일 + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), // TODO: 실제 라우팅에 맞게 수정 + ), + ), // 키보드가 올라올 때 화면이 가려지지 않도록 스크롤 가능하게 만듭니다. body: SingleChildScrollView( - // 화면 전체에 여백을 줍니다. - padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 60), - child: Column( - // 자식 위젯들을 세로로 정렬합니다. - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - const Text( - 'GuardPay', - textAlign: TextAlign.center, - style: TextStyle( - color: Color(0xFF6AA84F), - fontSize: 36, - fontWeight: FontWeight.bold, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 20), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // GuardPay 로고 + const Text( + 'GuardPay', + textAlign: TextAlign.center, + style: TextStyle( + color: Color(0xFF6AA84F), + fontSize: 55, + fontWeight: FontWeight.bold, + ), ), - ), - const SizedBox(height: 30), // 여백 - - // 이메일 입력 - const Text('이메일 *', style: TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(height: 5), - TextField( - controller: _emailController, - decoration: const InputDecoration( - hintText: '이메일', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, + const SizedBox(height: 30), + + // 1. 이메일 인증 섹션 (분리된 위젯 사용) + EmailAuthSection( + emailController: _emailController, + codeController: _authCodeController, + isCodeRequested: _isCodeRequested, + isCodeVerified: _isCodeVerified, + onCodeRequest: _handleCodeRequest, + onCodeVerify: _handleCodeVerify, ), - keyboardType: TextInputType.emailAddress, - ), - const SizedBox(height: 15), - - // 비밀번호 입력 - const Text('비밀번호 *', style: TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(height: 5), - TextField( - controller: _passwordController, - decoration: const InputDecoration( + const SizedBox(height: 15), + + // 2. 비밀번호 입력 (AuthInputField 사용) + const Text('비밀번호 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + AuthInputField( // <-- AuthInputField 적용 + controller: _passwordController, hintText: '비밀번호', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, + isPassword: true, + validator: (value) { + if (value == null || value.isEmpty || value.length < 8) { + return '비밀번호는 8자 이상이어야 합니다.'; + } + return null; + }, ), - obscureText: true, // 비밀번호 가리기 - ), - const SizedBox(height: 10), - TextField( - controller: _passwordConfirmController, - decoration: const InputDecoration( + const SizedBox(height: 10), + AuthInputField( // <-- AuthInputField 적용 + controller: _passwordConfirmController, hintText: '비밀번호 재입력', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, + isPassword: true, + validator: (value) { + if (value != _passwordController.text) { + return '비밀번호가 일치하지 않습니다.'; + } + return null; + }, ), - obscureText: true, - ), - const SizedBox(height: 15), - - // 닉네임 입력 - const Text('닉네임 *', style: TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(height: 5), - TextField( - controller: _nicknameController, - decoration: const InputDecoration( + const SizedBox(height: 15), + + // 3. 닉네임 입력 (AuthInputField 사용) + const Text('닉네임 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + AuthInputField( // <-- AuthInputField 적용 + controller: _nicknameController, hintText: '닉네임', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, + validator: (value) { + if (value == null || value.isEmpty) { + return '닉네임을 입력해주세요.'; + } + return null; + }, + ), + const SizedBox(height: 25), + + // 4. 약관 동의 + Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: const Color(0xFFD0D0D0)), + ), + padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 10), + child: Row( + children: [ + Checkbox( + value: _termsAgreed, + onChanged: (value) => setState(() { _termsAgreed = value ?? false; }), + ), + const Text('약관 전체 동의'), + ], + ), ), - ), - const SizedBox(height: 25), - - // 약관 동의 - Row( - children: [ - Checkbox( - value: _termsAgreed, - onChanged: _toggleTerms, + const SizedBox(height: 20), + + // 5. 가입하기 버튼 + ElevatedButton( + onPressed: _isLoading ? null : _handleSubmit, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(vertical: 15), + textStyle: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), - const Text('약관 전체 동의'), - ], - ), - const SizedBox(height: 20), - - // 가입하기 버튼 - ElevatedButton( - onPressed: _handleSubmit, - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF6AA84F), - padding: const EdgeInsets.symmetric(vertical: 15), - textStyle: const TextStyle( - fontSize: 16, - fontWeight: FontWeight.bold, + child: _isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 2 + ) + ) + : const Text( + '가입하기', + style: TextStyle(color: Colors.white) ), ), - child: const Text('가입하기'), - ), - ], + ], + ), ), ), ); diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart new file mode 100644 index 0000000..9b5ef2e --- /dev/null +++ b/lib/features/auth/services/auth_service.dart @@ -0,0 +1,72 @@ +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'dart:convert'; + +// AuthService는 회원가입과 관련된 모든 비즈니스 로직을 처리합니다. +class AuthService { + // 실제 서버 환경에서는 여기에 Dio 인스턴스 등이 주입될 수 있습니다. + final String _apiUrl = 'http://10.0.2.2:8080/api/users'; // 기본 API 경로 설정 + + // 1. 이메일 인증 코드를 요청하는 함수 + Future requestAuthCode(String email) async { + final emailRegex = RegExp(r"^[^\s@]+@[^\s@]+\.[^\s@]+$"); + if (email.isEmpty || !emailRegex.hasMatch(email)) { + // 클라이언트 측 유효성 검사 (실제 환경에서는 예외를 throw하거나 Error 객체를 반환) + throw Exception('올바른 이메일 주소를 입력해주세요.'); + } + + // TODO: 실제 서버 API 엔드포인트에 맞게 URL 수정 필요 (예: '/request-code') + // 현재는 성공했다고 가정하고 true 반환 + print('이메일 인증 코드 요청: $email'); + await Future.delayed(const Duration(milliseconds: 500)); // API 지연 시뮬레이션 + return true; + } + + // 2. 인증 코드를 확인하는 함수 + Future verifyAuthCode(String email, String code) async { + if (code != '123456') { // TODO: 실제 인증 로직으로 대체 필요 + throw Exception('인증 코드가 일치하지 않습니다.'); + } + print('인증 코드 확인 완료: $email'); + await Future.delayed(const Duration(milliseconds: 500)); + return true; + } + + // 3. 회원가입을 최종적으로 처리하는 함수 + Future signup({ + required String email, + required String password, + required String nickname, + }) async { + // API 주소 + const apiUrl = 'http://10.0.2.2:8080/api/users/signup'; + + // 서버에 보낼 데이터 (Dart의 Map) + final signupData = { + 'email': email, + 'password': password, + 'nickname': nickname, + }; + + try { + final response = await http.post( + Uri.parse(apiUrl), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode(signupData), // 데이터를 JSON 문자열로 인코딩 + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + print('가입 성공 응답: ${response.body}'); + return '회원가입이 완료되었습니다!'; + } else { + print('가입 실패 응답: ${response.body}'); + final errorBody = jsonDecode(response.body); + // 서버에서 제공하는 오류 메시지 반환 + return errorBody['message'] ?? '가입에 실패했습니다.'; + } + } catch (error) { + print('가입 요청 실패: $error'); + throw Exception('서버와 통신할 수 없습니다.'); + } + } +} diff --git a/lib/features/auth/widgets/auth_input_field.dart b/lib/features/auth/widgets/auth_input_field.dart new file mode 100644 index 0000000..f9097ac --- /dev/null +++ b/lib/features/auth/widgets/auth_input_field.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; + +// 앱의 모든 인증 화면에서 재사용할 수 있는 범용 입력 필드 위젯입니다. +class AuthInputField extends StatefulWidget { + final TextEditingController controller; + final String hintText; + final bool isPassword; // 비밀번호 가시성 토글이 필요한지 여부 + final String? Function(String?)? validator; + final TextInputType keyboardType; + final bool readOnly; + final bool enabled; + + const AuthInputField({ + super.key, + required this.controller, + required this.hintText, + this.isPassword = false, + this.validator, + this.keyboardType = TextInputType.text, + this.readOnly = false, + this.enabled = true, + }); + + @override + State createState() => _AuthInputFieldState(); +} + +class _AuthInputFieldState extends State { + // 비밀번호 필드일 경우 가리기 상태를 관리합니다. + late bool _obscureText; + + @override + void initState() { + super.initState(); + _obscureText = widget.isPassword; + } + + void _toggleVisibility() { + setState(() { + _obscureText = !_obscureText; + }); + } + + @override + Widget build(BuildContext context) { + return TextFormField( + controller: widget.controller, + // isPassword 속성에 따라 가리기 여부 및 가시성 토글 버튼 제공 + obscureText: _obscureText, + validator: widget.validator, + keyboardType: widget.keyboardType, + readOnly: widget.readOnly, + enabled: widget.enabled, + decoration: InputDecoration( + hintText: widget.hintText, + // 비밀번호 필드일 경우에만 가시성 토글 버튼 제공 + suffixIcon: widget.isPassword + ? IconButton( + icon: Icon( + _obscureText ? Icons.visibility_off : Icons.visibility, + color: Colors.grey, + ), + onPressed: _toggleVisibility, + ) + : null, + ), + ); + } +} diff --git a/lib/features/auth/widgets/email_auth_section.dart b/lib/features/auth/widgets/email_auth_section.dart new file mode 100644 index 0000000..4e47626 --- /dev/null +++ b/lib/features/auth/widgets/email_auth_section.dart @@ -0,0 +1,114 @@ +import 'package:flutter/material.dart'; + +// AuthInputField를 임포트하여 재사용합니다. +import 'auth_input_field.dart'; + +// 이메일 입력, 인증 코드 요청, 인증 코드 입력, 확인 버튼을 묶어 관리하는 복합 위젯 +class EmailAuthSection extends StatelessWidget { + final TextEditingController emailController; + final TextEditingController codeController; + final bool isCodeRequested; + final bool isCodeVerified; + final VoidCallback onCodeRequest; + final VoidCallback onCodeVerify; + + const EmailAuthSection({ + super.key, + required this.emailController, + required this.codeController, + required this.isCodeRequested, + required this.isCodeVerified, + required this.onCodeRequest, + required this.onCodeVerify, + }); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // 1. 이메일 입력 필드 + const Text('이메일 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + Row( + children: [ + Expanded( + child: AuthInputField( // AuthInputField 재사용 + controller: emailController, + hintText: '이메일', + keyboardType: TextInputType.emailAddress, + readOnly: isCodeRequested, // 코드가 요청되면 이메일 수정 불가 + enabled: !isCodeVerified, // 인증 완료되면 비활성화 + validator: (value) { + final emailRegex = RegExp(r"^[^\s@]+@[^\s@]+\.[^\s@]+$"); + if (value == null || value.isEmpty || !emailRegex.hasMatch(value)) { + return '올바른 이메일 주소를 입력해주세요.'; + } + return null; + }, + ), + ), + const SizedBox(width: 8), + // 2. 인증 코드 요청 버튼 + SizedBox( + height: 56, // 텍스트 필드와 높이 맞추기 + child: ElevatedButton( + onPressed: isCodeRequested ? null : onCodeRequest, // 요청 후 비활성화 + style: ElevatedButton.styleFrom( + backgroundColor: isCodeRequested + ? Colors.grey + : const Color(0xFF6AA84F).withOpacity(0.8), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 10), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: const Text( + '인증코드 받기', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + ), + ), + ], + ), + + // 3. 인증 코드가 요청된 경우에만 코드 입력 필드 표시 + if (isCodeRequested) ...[ + const SizedBox(height: 10), + Row( + children: [ + Expanded( + child: AuthInputField( // AuthInputField 재사용 + controller: codeController, + hintText: '인증코드', + keyboardType: TextInputType.number, + readOnly: isCodeVerified, // 인증 완료되면 수정 불가 + ), + ), + const SizedBox(width: 8), + // 4. 확인 버튼 + SizedBox( + height: 56, // 텍스트 필드와 높이 맞추기 + child: ElevatedButton( + onPressed: isCodeVerified ? null : onCodeVerify, // 확인 후 비활성화 + style: ElevatedButton.styleFrom( + backgroundColor: isCodeVerified + ? Colors.grey + : const Color(0xFF6AA84F), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 20), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: Text( + isCodeVerified ? '완료' : '확인', + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.bold), + ), + ), + ), + ], + ), + ], + ], + ); + } +} diff --git a/lib/main.dart b/lib/main.dart index 23ea50a..09631ac 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,8 @@ -// Flutter 앱의 시작점입니다. import 'package:flutter/material.dart'; // 1. 우리가 만든 회원가입 화면 파일을 불러옵니다. import 'features/auth/screens/signup_screen.dart'; +// 테마 설정을 config 폴더에서 불러옵니다. +import 'config/theme.dart'; void main() { runApp(const MyApp()); @@ -12,24 +13,14 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { + // 이제 main.dart에서는 테마 정의 없이 appTheme() 함수를 호출합니다. return MaterialApp( debugShowCheckedModeBanner: false, title: 'GuardPay App', - theme: ThemeData( - // 앱의 전반적인 색상 톤을 설정합니다. - primarySwatch: Colors.green, - // 배경색을 React Native 버전과 유사하게 설정합니다. - scaffoldBackgroundColor: const Color(0xFFF9F5EC), - // 입력창(TextField)의 기본 디자인을 설정합니다. - inputDecorationTheme: const InputDecorationTheme( - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, - ), - ), + // config/theme.dart에서 정의한 테마를 사용합니다. + theme: appTheme(), // 2. 앱이 시작될 때 보여줄 첫 화면으로 SignupScreen을 지정합니다. home: const SignupScreen(), ); } } - From d85ca096741ee49c23959fe6d79b62fdfbd5c897 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sat, 11 Oct 2025 14:52:20 +0900 Subject: [PATCH 03/52] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guardpayFlutter | 1 + 1 file changed, 1 insertion(+) create mode 160000 guardpayFlutter diff --git a/guardpayFlutter b/guardpayFlutter new file mode 160000 index 0000000..7c618d0 --- /dev/null +++ b/guardpayFlutter @@ -0,0 +1 @@ +Subproject commit 7c618d0369ae843bd6f1c0a621b9b9e7a9c94165 From 2327a21c0d5b0946e31d072b4fa909f53461b1ac Mon Sep 17 00:00:00 2001 From: minmin02 Date: Sun, 12 Oct 2025 00:30:01 +0900 Subject: [PATCH 04/52] =?UTF-8?q?feat=20=C3=AC=C2=9E=20=20=C2=91feat=20?= =?UTF-8?q?=ED=9A=8C=EC=9A=B0=EB=84=88=EA=B0=80=EC=9E=85=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/signup_screen.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/signup_screen.dart b/lib/signup_screen.dart index 7699dad..56d770a 100644 --- a/lib/signup_screen.dart +++ b/lib/signup_screen.dart @@ -82,7 +82,7 @@ class _SignupScreenState extends State { } // 🚨 중요: API 주소는 React Native와 동일하게 10.0.2.2를 사용합니다. - const apiUrl = 'http://10.0.2.2:8080/api/users/signup'; + const apiUrl = 'http://10.0.2.2:8080/api/auth/signup'; // 서버에 보낼 데이터 (JavaScript의 객체 -> Dart의 Map) final signupData = { From 71c84e2464f92841b11455ce05db419329ddf9a5 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Sun, 12 Oct 2025 00:49:11 +0900 Subject: [PATCH 05/52] =?UTF-8?q?feat=20:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=9E=84=EC=8B=9C=20=EC=9D=B4=EB=A9=94=EC=9D=BC=20?= =?UTF-8?q?=EC=9D=B8=EC=A6=9D=20+=20api=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=95=A4=EB=93=9C=ED=8F=AC=EC=9D=B8=ED=8A=B8=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/auth/services/auth_service.dart | 14 +++++------ pubspec.lock | 26 ++++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart index 9b5ef2e..2912a87 100644 --- a/lib/features/auth/services/auth_service.dart +++ b/lib/features/auth/services/auth_service.dart @@ -1,11 +1,10 @@ -import 'package:flutter/material.dart'; -import 'package:http/http.dart' as http; -import 'dart:convert'; +import 'dart:convert'; // jsonEncode, jsonDecode를 사용하기 위해 필요 +import 'package:http/http.dart' as http; // HTTP 통신을 위해 필요 -// AuthService는 회원가입과 관련된 모든 비즈니스 로직을 처리합니다. class AuthService { // 실제 서버 환경에서는 여기에 Dio 인스턴스 등이 주입될 수 있습니다. final String _apiUrl = 'http://10.0.2.2:8080/api/users'; // 기본 API 경로 설정 + static const String _tempAuthCode = '123456'; // 임시 이메일 인증 코드 // 1. 이메일 인증 코드를 요청하는 함수 Future requestAuthCode(String email) async { @@ -24,7 +23,8 @@ class AuthService { // 2. 인증 코드를 확인하는 함수 Future verifyAuthCode(String email, String code) async { - if (code != '123456') { // TODO: 실제 인증 로직으로 대체 필요 + // 정의된 임시 인증 코드(_tempAuthCode)와 사용자가 입력한 코드를 비교합니다. + if (code != _tempAuthCode) { // TODO: 실제 인증 로직으로 대체 필요 throw Exception('인증 코드가 일치하지 않습니다.'); } print('인증 코드 확인 완료: $email'); @@ -39,7 +39,7 @@ class AuthService { required String nickname, }) async { // API 주소 - const apiUrl = 'http://10.0.2.2:8080/api/users/signup'; + const apiUrl = 'http://10.0.2.2:8080/api/auth/signup'; // 서버에 보낼 데이터 (Dart의 Map) final signupData = { @@ -69,4 +69,4 @@ class AuthService { throw Exception('서버와 통신할 수 없습니다.'); } } -} +} \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 5792e99..b910700 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -95,26 +95,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -204,10 +204,10 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" typed_data: dependency: transitive description: @@ -220,18 +220,18 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: name: vm_service - sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" + sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 url: "https://pub.dev" source: hosted - version: "15.0.2" + version: "15.0.0" web: dependency: transitive description: @@ -241,5 +241,5 @@ packages: source: hosted version: "1.1.1" sdks: - dart: ">=3.8.0-0 <4.0.0" + dart: ">=3.7.0-0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" From f52d81adbb28ef106392b00f1a8c31d9a7903228 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sun, 12 Oct 2025 16:06:00 +0900 Subject: [PATCH 06/52] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8,=20=ED=9A=8C?= =?UTF-8?q?=EC=9B=90=EA=B0=80=EC=9E=85=ED=99=94=EB=A9=B4=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/auth/screens/login_screen.dart | 193 +++++------------- .../auth/screens/reset_password_screen.dart | 160 +++++++++++++++ lib/features/auth/screens/signup_screen.dart | 6 +- lib/main.dart | 16 +- pubspec.lock | 22 +- 5 files changed, 232 insertions(+), 165 deletions(-) create mode 100644 lib/features/auth/screens/reset_password_screen.dart diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index 4d1913d..3b44dd5 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -1,138 +1,67 @@ import 'package:flutter/material.dart'; -// HTTP 요청을 위해 http 패키지를 불러옵니다. -import 'package:http/http.dart' as http; -// 데이터를 JSON으로 변환하기 위해 필요합니다. import 'dart:convert'; +import 'package:http/http.dart' as http; -// React의 함수형 컴포넌트가 Flutter의 StatefulWidget으로 변경됩니다. -// 화면의 내용이 바뀌어야 할 때 (예: 글자 입력) StatefulWidget을 사용합니다. -class SignupScreen extends StatefulWidget { - const SignupScreen({super.key}); +class LoginScreen extends StatefulWidget { + const LoginScreen({super.key}); @override - State createState() => _SignupScreenState(); + State createState() => _LoginScreenState(); } -// 위젯의 '상태'를 관리하는 클래스입니다. React의 useState 훅의 역할을 합니다. -class _SignupScreenState extends State { - // 1. 폼 데이터 상태 관리 - // React의 formData 객체 대신, 각 입력 필드를 TextEditingController로 관리합니다. +class _LoginScreenState extends State { final _emailController = TextEditingController(); - final _authCodeController = TextEditingController(); final _passwordController = TextEditingController(); - final _passwordConfirmController = TextEditingController(); - final _nicknameController = TextEditingController(); - - // 체크박스와 이메일 확인 상태는 boolean으로 관리합니다. - bool _termsAgreed = false; - bool _isEmailConfirmed = false; - - // 2. 입력값 변경 시 상태 업데이트 - // Controller를 사용하면 따로 핸들러가 필요 없지만, 체크박스를 위해 만듭니다. - void _toggleTerms(bool? value) { - // setState는 React의 setFormData와 같습니다. 화면을 다시 그리도록 명령합니다. - setState(() { - _termsAgreed = value ?? false; - }); - } - - // 3. 이메일 '확인' 버튼 함수 - void _handleEmailConfirm() { - final email = _emailController.text; - final emailRegex = RegExp(r"^[^\s@]+@[^\s@]+\.[^\s@]+$"); - if (email.isEmpty || !emailRegex.hasMatch(email)) { - // alert() 대신 ScaffoldMessenger와 SnackBar를 사용해 메시지를 보여줍니다. - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('올바른 이메일 주소를 입력해주세요.')), - ); - return; - } - - print('이메일 확인 완료: $email'); - setState(() { - _isEmailConfirmed = true; - }); - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('이메일이 확인되었습니다.')), - ); - } + bool _isLoading = false; - // 4. '가입하기' 버튼 함수 (handleSubmit) - Future _handleSubmit() async { - // 유효성 검사 - if (_emailController.text.isEmpty || - _passwordController.text.isEmpty || - _nicknameController.text.isEmpty) { + Future _handleLogin() async { + if (_emailController.text.isEmpty || _passwordController.text.isEmpty) { ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('필수 항목(*)을 모두 입력해주세요.')), + const SnackBar(content: Text('이메일과 비밀번호를 모두 입력해주세요.')), ); return; } - if (_passwordController.text != _passwordConfirmController.text) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('비밀번호가 일치하지 않습니다.')), - ); - return; - } - if (!_termsAgreed) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('약관에 동의해주세요.')), - ); - return; - } - - // 🚨 중요: API 주소는 React Native와 동일하게 10.0.2.2를 사용합니다. - const apiUrl = 'http://10.0.2.2:8080/api/auth/signup'; - // 서버에 보낼 데이터 (JavaScript의 객체 -> Dart의 Map) - final signupData = { + const apiUrl = 'http://10.0.2.2:8080/api/auth/login'; + final loginData = { 'email': _emailController.text, 'password': _passwordController.text, - 'nickname': _nicknameController.text, }; + setState(() => _isLoading = true); try { - // axios.post -> http.post final response = await http.post( Uri.parse(apiUrl), headers: {'Content-Type': 'application/json'}, - body: jsonEncode(signupData), // 데이터를 JSON 문자열로 인코딩 + body: jsonEncode(loginData), ); - if (response.statusCode == 200 || response.statusCode == 201) { - print('가입 성공 응답: ${response.body}'); + if (response.statusCode == 200) { ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('회원가입이 완료되었습니다!')), + const SnackBar(content: Text('로그인 성공!')), ); - // TODO: 로그인 화면으로 이동하는 로직 추가 + // TODO: 홈 화면 이동 } else { - print('가입 실패: ${response.body}'); - final errorBody = jsonDecode(response.body); - final errorMessage = errorBody['message'] ?? '가입에 실패했습니다.'; + final error = jsonDecode(response.body); ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(errorMessage)), + SnackBar(content: Text(error['message'] ?? '로그인 실패')), ); } - } catch (error) { - print('가입 요청 실패: $error'); + } catch (e) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('서버와 통신할 수 없습니다.')), ); + } finally { + setState(() => _isLoading = false); } } - // React의 return (...) 부분은 Flutter의 build 메소드에 해당합니다. - // JSX 대신 위젯(Widget)을 조립하여 UI를 만듭니다. @override Widget build(BuildContext context) { - // Scaffold는 화면의 기본 구조(상단 바, 본문 등)를 제공합니다. return Scaffold( - // 키보드가 올라올 때 화면이 가려지지 않도록 스크롤 가능하게 만듭니다. - body: SingleChildScrollView( - // 화면 전체에 여백을 줍니다. + body: Padding( padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 60), child: Column( - // 자식 위젯들을 세로로 정렬합니다. crossAxisAlignment: CrossAxisAlignment.stretch, children: [ const Text( @@ -144,11 +73,7 @@ class _SignupScreenState extends State { fontWeight: FontWeight.bold, ), ), - const SizedBox(height: 30), // 여백 - - // 이메일 입력 - const Text('이메일 *', style: TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(height: 5), + const SizedBox(height: 30), TextField( controller: _emailController, decoration: const InputDecoration( @@ -157,43 +82,13 @@ class _SignupScreenState extends State { filled: true, fillColor: Colors.white, ), - keyboardType: TextInputType.emailAddress, ), const SizedBox(height: 15), - - // 비밀번호 입력 - const Text('비밀번호 *', style: TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(height: 5), TextField( controller: _passwordController, - decoration: const InputDecoration( - hintText: '비밀번호', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, - ), - obscureText: true, // 비밀번호 가리기 - ), - const SizedBox(height: 10), - TextField( - controller: _passwordConfirmController, - decoration: const InputDecoration( - hintText: '비밀번호 재입력', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, - ), obscureText: true, - ), - const SizedBox(height: 15), - - // 닉네임 입력 - const Text('닉네임 *', style: TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(height: 5), - TextField( - controller: _nicknameController, decoration: const InputDecoration( - hintText: '닉네임', + hintText: '비밀번호', border: OutlineInputBorder(), filled: true, fillColor: Colors.white, @@ -201,30 +96,36 @@ class _SignupScreenState extends State { ), const SizedBox(height: 25), - // 약관 동의 - Row( - children: [ - Checkbox( - value: _termsAgreed, - onChanged: _toggleTerms, - ), - const Text('약관 전체 동의'), - ], + ElevatedButton( + onPressed: _isLoading ? null : _handleLogin, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(vertical: 15), + ), + child: _isLoading + ? const CircularProgressIndicator(color: Colors.white) + : const Text('로그인'), ), - const SizedBox(height: 20), + const SizedBox(height: 10), - // 가입하기 버튼 + // 회원가입 이동 버튼 ElevatedButton( - onPressed: _handleSubmit, + onPressed: () { + Navigator.pushNamed(context, '/signup'); + }, style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFF6AA84F), padding: const EdgeInsets.symmetric(vertical: 15), - textStyle: const TextStyle( - fontSize: 16, - fontWeight: FontWeight.bold, - ), ), - child: const Text('가입하기'), + child: const Text('회원가입'), + ), + const SizedBox(height: 10), + + TextButton( + onPressed: () { + // TODO: 비밀번호 찾기 페이지 연결 + }, + child: const Text('이메일/비밀번호 찾기 >'), ), ], ), diff --git a/lib/features/auth/screens/reset_password_screen.dart b/lib/features/auth/screens/reset_password_screen.dart new file mode 100644 index 0000000..3660aaa --- /dev/null +++ b/lib/features/auth/screens/reset_password_screen.dart @@ -0,0 +1,160 @@ +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'dart:convert'; + +class ResetPasswordScreen extends StatefulWidget { + const ResetPasswordScreen({super.key}); + + @override + State createState() => _ResetPasswordScreenState(); +} + +class _ResetPasswordScreenState extends State { + final _emailController = TextEditingController(); + final _codeController = TextEditingController(); + final _passwordController = TextEditingController(); + final _passwordConfirmController = TextEditingController(); + + bool _isCodeSent = false; + bool _isLoading = false; + + // 이메일로 인증코드 보내기 + Future _sendCode() async { + if (_emailController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이메일을 입력해주세요.')), + ); + return; + } + setState(() => _isLoading = true); + try { + // TODO: 실제 API 연결 필요 (예시) + await Future.delayed(const Duration(seconds: 1)); + setState(() => _isCodeSent = true); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('인증 코드가 전송되었습니다.')), + ); + } finally { + setState(() => _isLoading = false); + } + } + + // 새 비밀번호 설정 + Future _resetPassword() async { + if (_codeController.text.isEmpty || + _passwordController.text.isEmpty || + _passwordConfirmController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('모든 필드를 입력해주세요.')), + ); + return; + } + if (_passwordController.text != _passwordConfirmController.text) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('비밀번호가 일치하지 않습니다.')), + ); + return; + } + + setState(() => _isLoading = true); + try { + // TODO: 실제 비밀번호 재설정 API로 변경 + final apiUrl = 'http://10.0.2.2:8080/api/auth/reset-password'; + final response = await http.post( + Uri.parse(apiUrl), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode({ + 'email': _emailController.text, + 'code': _codeController.text, + 'newPassword': _passwordController.text, + }), + ); + + if (response.statusCode == 200) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('비밀번호가 변경되었습니다.')), + ); + await Future.delayed(const Duration(seconds: 1)); + Navigator.pushReplacementNamed(context, '/login'); + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('비밀번호 변경 실패. 다시 시도해주세요.')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('서버와 통신할 수 없습니다.')), + ); + } finally { + setState(() => _isLoading = false); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFFF9F5EC), + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () => Navigator.pop(context), + ), + title: const Text( + '새 비밀번호 만들기', + style: TextStyle(color: Colors.black), + ), + centerTitle: true, + ), + body: Padding( + padding: const EdgeInsets.all(20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + TextField( + controller: _emailController, + decoration: const InputDecoration(hintText: '이메일'), + ), + const SizedBox(height: 10), + ElevatedButton( + onPressed: _isLoading ? null : _sendCode, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(vertical: 15), + ), + child: const Text('이메일로 인증코드 받기'), + ), + const SizedBox(height: 20), + if (_isCodeSent) ...[ + TextField( + controller: _codeController, + decoration: const InputDecoration(hintText: '인증코드'), + ), + const SizedBox(height: 10), + TextField( + controller: _passwordController, + obscureText: true, + decoration: const InputDecoration(hintText: '새 비밀번호'), + ), + const SizedBox(height: 10), + TextField( + controller: _passwordConfirmController, + obscureText: true, + decoration: const InputDecoration(hintText: '비밀번호 재입력'), + ), + const SizedBox(height: 20), + ElevatedButton( + onPressed: _isLoading ? null : _resetPassword, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(vertical: 15), + ), + child: const Text('확인'), + ), + ], + ], + ), + ), + ); + } +} diff --git a/lib/features/auth/screens/signup_screen.dart b/lib/features/auth/screens/signup_screen.dart index 03f4f79..896e3db 100644 --- a/lib/features/auth/screens/signup_screen.dart +++ b/lib/features/auth/screens/signup_screen.dart @@ -92,12 +92,16 @@ class _SignupScreenState extends State { nickname: _nicknameController.text, ); _showSnackBar(message); - // TODO: 가입 성공 후 로그인 화면으로 이동 + + // ✅ 회원가입 성공 시 로그인 화면으로 이동 + await Future.delayed(const Duration(seconds: 1)); // 알림 잠깐 보여준 뒤 + Navigator.pushReplacementNamed(context, '/login'); } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { setState(() { _isLoading = false; }); } + } // 간결한 SnackBar 표시 유틸리티 diff --git a/lib/main.dart b/lib/main.dart index 09631ac..5ed9bf9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -// 1. 우리가 만든 회원가입 화면 파일을 불러옵니다. -import 'features/auth/screens/signup_screen.dart'; -// 테마 설정을 config 폴더에서 불러옵니다. import 'config/theme.dart'; +import 'features/auth/screens/login_screen.dart'; +import 'features/auth/screens/signup_screen.dart'; +import 'features/auth/screens/reset_password_screen.dart'; void main() { runApp(const MyApp()); @@ -13,14 +13,16 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - // 이제 main.dart에서는 테마 정의 없이 appTheme() 함수를 호출합니다. return MaterialApp( debugShowCheckedModeBanner: false, title: 'GuardPay App', - // config/theme.dart에서 정의한 테마를 사용합니다. theme: appTheme(), - // 2. 앱이 시작될 때 보여줄 첫 화면으로 SignupScreen을 지정합니다. - home: const SignupScreen(), + initialRoute: '/login', // ✅ 앱 첫 화면을 로그인으로 설정 + routes: { + '/login': (context) => LoginScreen(), + '/signup': (context) => SignupScreen(), + '/reset': (context) => ResetPasswordScreen(), + }, ); } } diff --git a/pubspec.lock b/pubspec.lock index b910700..43b6a1d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -95,26 +95,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -204,10 +204,10 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" typed_data: dependency: transitive description: @@ -220,10 +220,10 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: @@ -241,5 +241,5 @@ packages: source: hosted version: "1.1.1" sdks: - dart: ">=3.7.0-0 <4.0.0" + dart: ">=3.8.0-0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" From 0dc3d1ccd5933a0f43f0974586c327771324f58f Mon Sep 17 00:00:00 2001 From: ch0412 Date: Mon, 13 Oct 2025 22:27:42 +0900 Subject: [PATCH 07/52] =?UTF-8?q?feat:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20UI?= =?UTF-8?q?=20=EC=88=98=EC=A0=95&=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EC=9E=AC=EC=84=A4=EC=A0=95=20=ED=99=94=EB=A9=B4=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/google_logo.png | Bin 0 -> 64486 bytes assets/images/kakao_logo.png | Bin 0 -> 75865 bytes lib/features/auth/screens/login_screen.dart | 179 ++++++---- .../auth/screens/reset_password_screen.dart | 305 ++++++++++++------ lib/features/auth/services/auth_service.dart | 58 ++++ pubspec.lock | 22 +- pubspec.yaml | 5 +- 7 files changed, 396 insertions(+), 173 deletions(-) create mode 100644 assets/images/google_logo.png create mode 100644 assets/images/kakao_logo.png diff --git a/assets/images/google_logo.png b/assets/images/google_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2e35d33d89d2c469b5f326877f20af0407fab45e GIT binary patch literal 64486 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 QfD$BmsIqjqq;b&y0mtlhdjJ3c literal 0 HcmV?d00001 diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index 3b44dd5..1a55d7b 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -59,75 +59,132 @@ class _LoginScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - body: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 60), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - const Text( - 'GuardPay', - textAlign: TextAlign.center, - style: TextStyle( - color: Color(0xFF6AA84F), - fontSize: 50, - fontWeight: FontWeight.bold, + body: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 26, vertical: 60), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const SizedBox(height: 110), + const Text( + 'GuardPay', + textAlign: TextAlign.center, + style: TextStyle( + color: Color(0xFF6AA84F), + fontSize: 55, + fontWeight: FontWeight.bold, + ), ), - ), - const SizedBox(height: 30), - TextField( - controller: _emailController, - decoration: const InputDecoration( - hintText: '이메일', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, + + const SizedBox(height: 80), + TextField( + controller: _emailController, + decoration: const InputDecoration( + hintText: '이메일', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + contentPadding: EdgeInsets.symmetric(vertical: 13.0, horizontal: 15.0), + ), + ), + + const SizedBox(height: 13), + TextField( + controller: _passwordController, + obscureText: true, + decoration: const InputDecoration( + hintText: '비밀번호', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + contentPadding: EdgeInsets.symmetric(vertical: 13.0, horizontal: 15.0), + ), ), - ), - const SizedBox(height: 15), - TextField( - controller: _passwordController, - obscureText: true, - decoration: const InputDecoration( - hintText: '비밀번호', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, + + const SizedBox(height: 13), + ElevatedButton( + onPressed: _isLoading ? null : _handleLogin, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 13), + textStyle: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: _isLoading + ? const CircularProgressIndicator(color: Colors.white) + : const Text('로그인'), ), - ), - const SizedBox(height: 25), - ElevatedButton( - onPressed: _isLoading ? null : _handleLogin, - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF6AA84F), - padding: const EdgeInsets.symmetric(vertical: 15), + const SizedBox(height: 13), + // 회원가입 이동 버튼 + ElevatedButton( + onPressed: () { + Navigator.pushNamed(context, '/signup'); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 13), + textStyle: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: const Text('회원가입'), ), - child: _isLoading - ? const CircularProgressIndicator(color: Colors.white) - : const Text('로그인'), - ), - const SizedBox(height: 10), - // 회원가입 이동 버튼 - ElevatedButton( - onPressed: () { - Navigator.pushNamed(context, '/signup'); - }, - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF6AA84F), - padding: const EdgeInsets.symmetric(vertical: 15), + const SizedBox(height: 7), + TextButton( + onPressed: () { + Navigator.pushNamed(context, '/reset'); + }, + style: TextButton.styleFrom( + foregroundColor: Colors.black, + textStyle: const TextStyle( + fontSize: 14 + ) + ), + child: const Text('이메일/비밀번호 찾기 >'), ), - child: const Text('회원가입'), - ), - const SizedBox(height: 10), - TextButton( - onPressed: () { - // TODO: 비밀번호 찾기 페이지 연결 - }, - child: const Text('이메일/비밀번호 찾기 >'), - ), - ], + // 소셜 로그인 버튼 추가 + const SizedBox(height: 18), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // 카카오 로그인 버튼 + GestureDetector( + onTap: () { + // TODO: 카카오 로그인 로직 구현 + }, + child: Image.asset( + 'assets/images/kakao_logo.png', + width: 70, + height: 70, + ), + ), + + const SizedBox(width: 22), + // 구글 로그인 버튼 + GestureDetector( + onTap: () { + // TODO: 구글 로그인 로직 구현 + }, + child: Image.asset( + 'assets/images/google_logo.png', + width: 70, + height: 70, + ), + ), + ], + ), + ], + ), ), ), ); diff --git a/lib/features/auth/screens/reset_password_screen.dart b/lib/features/auth/screens/reset_password_screen.dart index 3660aaa..52a4b83 100644 --- a/lib/features/auth/screens/reset_password_screen.dart +++ b/lib/features/auth/screens/reset_password_screen.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:http/http.dart' as http; -import 'dart:convert'; + +// 1. 필요한 서비스 및 위젯을 임포트합니다. +import '../services/auth_service.dart'; // AuthService 사용 +import '../widgets/auth_input_field.dart'; class ResetPasswordScreen extends StatefulWidget { const ResetPasswordScreen({super.key}); @@ -10,151 +12,256 @@ class ResetPasswordScreen extends StatefulWidget { } class _ResetPasswordScreenState extends State { + // 2. 서비스 인스턴스 및 상태 변수를 SignupScreen과 유사하게 구성합니다. + final AuthService _authService = AuthService(); + final _formKey = GlobalKey(); + final _emailController = TextEditingController(); final _codeController = TextEditingController(); final _passwordController = TextEditingController(); final _passwordConfirmController = TextEditingController(); - bool _isCodeSent = false; - bool _isLoading = false; + bool _isCodeRequested = false; // 인증 코드가 요청되었는가? + bool _isCodeVerified = false; // 인증 코드가 확인되었는가? + bool _isLoading = false; // 로딩 상태 - // 이메일로 인증코드 보내기 - Future _sendCode() async { - if (_emailController.text.isEmpty) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('이메일을 입력해주세요.')), - ); + @override + void dispose() { + _emailController.dispose(); + _codeController.dispose(); + _passwordController.dispose(); + _passwordConfirmController.dispose(); + super.dispose(); + } + + // 3. 인증 코드 요청 핸들러 + Future _handleCodeRequest() async { + // 간단한 이메일 유효성 검사 + if (_emailController.text.isEmpty || !_emailController.text.contains('@')) { + _showSnackBar('유효한 이메일을 입력해주세요.'); return; } + setState(() => _isLoading = true); try { - // TODO: 실제 API 연결 필요 (예시) - await Future.delayed(const Duration(seconds: 1)); - setState(() => _isCodeSent = true); - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('인증 코드가 전송되었습니다.')), - ); + // AuthService를 통해 코드 요청 (수정된 부분) + await _authService.requestPasswordResetCode(_emailController.text); + setState(() => _isCodeRequested = true); + _showSnackBar('인증 코드가 이메일로 전송되었습니다.'); + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - setState(() => _isLoading = false); + if (mounted) { + setState(() => _isLoading = false); + } } } - // 새 비밀번호 설정 - Future _resetPassword() async { - if (_codeController.text.isEmpty || - _passwordController.text.isEmpty || - _passwordConfirmController.text.isEmpty) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('모든 필드를 입력해주세요.')), - ); + // 4. 인증 코드 확인 핸들러 + Future _handleCodeVerify() async { + if (_codeController.text.isEmpty) { + _showSnackBar('인증 코드를 입력해주세요.'); return; } + + setState(() => _isLoading = true); + try { + // AuthService를 통해 코드 확인 (수정된 부분) + await _authService.verifyPasswordResetCode( + _emailController.text, _codeController.text); + setState(() => _isCodeVerified = true); + _showSnackBar('인증이 완료되었습니다. 새 비밀번호를 입력하세요.'); + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + // 5. 최종 제출 핸들러 (비밀번호 변경) + Future _handleSubmit() async { + if (!(_formKey.currentState?.validate() ?? false)) { + return; // 폼 유효성 검사 실패 시 종료 + } if (_passwordController.text != _passwordConfirmController.text) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('비밀번호가 일치하지 않습니다.')), - ); + _showSnackBar('비밀번호가 일치하지 않습니다.'); + return; + } + if (!_isCodeVerified) { + _showSnackBar('이메일 인증을 먼저 완료해주세요.'); return; } setState(() => _isLoading = true); try { - // TODO: 실제 비밀번호 재설정 API로 변경 - final apiUrl = 'http://10.0.2.2:8080/api/auth/reset-password'; - final response = await http.post( - Uri.parse(apiUrl), - headers: {'Content-Type': 'application/json'}, - body: jsonEncode({ - 'email': _emailController.text, - 'code': _codeController.text, - 'newPassword': _passwordController.text, - }), + // AuthService를 통해 비밀번호 재설정 + final message = await _authService.resetPassword( + email: _emailController.text, + code: _codeController.text, // 백엔드 API에 따라 코드가 필요할 수 있음 + newPassword: _passwordController.text, ); + _showSnackBar(message); - if (response.statusCode == 200) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('비밀번호가 변경되었습니다.')), - ); - await Future.delayed(const Duration(seconds: 1)); + await Future.delayed(const Duration(seconds: 1)); + if (mounted) { Navigator.pushReplacementNamed(context, '/login'); - } else { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('비밀번호 변경 실패. 다시 시도해주세요.')), - ); } } catch (e) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('서버와 통신할 수 없습니다.')), - ); + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - setState(() => _isLoading = false); + if (mounted) { + setState(() => _isLoading = false); + } } } + // 6. 일관된 SnackBar 표시를 위한 유틸리티 함수 + void _showSnackBar(String message) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(message)), + ); + } + @override Widget build(BuildContext context) { + final buttonStyle = ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 13), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + textStyle: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + ); + final disabledButtonStyle = buttonStyle.copyWith( + backgroundColor: WidgetStateProperty.all(Colors.grey.shade400), + ); + return Scaffold( appBar: AppBar( - backgroundColor: const Color(0xFFF9F5EC), + backgroundColor: Colors.transparent, elevation: 0, leading: IconButton( - icon: const Icon(Icons.arrow_back_ios, color: Colors.black), - onPressed: () => Navigator.pop(context), - ), - title: const Text( - '새 비밀번호 만들기', - style: TextStyle(color: Colors.black), + icon: const Icon(Icons.arrow_back_ios_new, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), ), - centerTitle: true, ), - body: Padding( - padding: const EdgeInsets.all(20), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - TextField( - controller: _emailController, - decoration: const InputDecoration(hintText: '이메일'), - ), - const SizedBox(height: 10), - ElevatedButton( - onPressed: _isLoading ? null : _sendCode, - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF6AA84F), - padding: const EdgeInsets.symmetric(vertical: 15), - ), - child: const Text('이메일로 인증코드 받기'), - ), - const SizedBox(height: 20), - if (_isCodeSent) ...[ - TextField( - controller: _codeController, - decoration: const InputDecoration(hintText: '인증코드'), + body: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 26, vertical: 20), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Text( + '새 비밀번호 만들기', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), ), + const SizedBox(height: 65), + + // --- 이메일 입력 섹션 --- + const Text('가입한 이메일 주소를 입력해주세요.', style: TextStyle(fontSize: 15)), const SizedBox(height: 10), - TextField( - controller: _passwordController, - obscureText: true, - decoration: const InputDecoration(hintText: '새 비밀번호'), + TextFormField( + controller: _emailController, + keyboardType: TextInputType.emailAddress, + decoration: InputDecoration( + hintText: '이메일', + filled: true, + fillColor: Colors.white, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: const BorderSide(color: Color(0xFF6AA84F), width: 2.0), + ), + ), + readOnly: _isCodeRequested, // 코드 요청 후에는 수정 불가 ), const SizedBox(height: 10), - TextField( - controller: _passwordConfirmController, - obscureText: true, - decoration: const InputDecoration(hintText: '비밀번호 재입력'), - ), - const SizedBox(height: 20), ElevatedButton( - onPressed: _isLoading ? null : _resetPassword, - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF6AA84F), - padding: const EdgeInsets.symmetric(vertical: 15), - ), - child: const Text('확인'), + onPressed: _isLoading || _isCodeRequested ? null : _handleCodeRequest, + style: _isLoading || _isCodeRequested ? disabledButtonStyle : buttonStyle, + child: const Text('인증코드 받기'), ), + + // --- 인증코드 입력 섹션 (코드 요청 후에만 보임) --- + if (_isCodeRequested) ...[ + const SizedBox(height: 30), + Row( + children: [ + Expanded( + child: TextFormField( + controller: _codeController, + keyboardType: TextInputType.number, + decoration: InputDecoration( + hintText: '인증코드', + filled: true, + fillColor: Colors.white, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: const BorderSide(color: Color(0xFF6AA84F), width: 2.0), + ), + ), + readOnly: _isCodeVerified, // 인증 완료 후에는 수정 불가 + ), + ), + const SizedBox(width: 10), + ElevatedButton( + onPressed: _isLoading || _isCodeVerified ? null : _handleCodeVerify, + style: _isLoading || _isCodeVerified ? disabledButtonStyle : buttonStyle, + child: const Text('확인'), + ), + ], + ), + ], + + // --- 새 비밀번호 입력 섹션 (인증 완료 후에만 보임) --- + if (_isCodeVerified) ...[ + const SizedBox(height: 50), + const Text('비밀번호 재설정', style: TextStyle(fontSize: 15)), + const SizedBox(height: 10), + AuthInputField( + controller: _passwordController, + hintText: '새 비밀번호', + isPassword: true, + validator: (value) { + if (value == null || value.isEmpty || value.length < 8) { + return '비밀번호는 8자 이상이어야 합니다.'; + } + return null; + }, + ), + const SizedBox(height: 10), + AuthInputField( + controller: _passwordConfirmController, + hintText: '새 비밀번호 재입력', + isPassword: true, + validator: (value) { + if (value != _passwordController.text) { + return '비밀번호가 일치하지 않습니다.'; + } + return null; + }, + ), + const SizedBox(height: 35), + ElevatedButton( + onPressed: _isLoading ? null : _handleSubmit, + style: buttonStyle, + child: _isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) + : const Text('확인'), + ), + ], ], - ], + ), ), ), ); } } + diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart index 2912a87..eda0bd7 100644 --- a/lib/features/auth/services/auth_service.dart +++ b/lib/features/auth/services/auth_service.dart @@ -69,4 +69,62 @@ class AuthService { throw Exception('서버와 통신할 수 없습니다.'); } } + + /// 비밀번호 재설정을 위한 이메일 인증 코드를 요청합니다. + Future requestPasswordResetCode(String email) async { + // TODO: 실제 서버의 '비밀번호 재설정용' 코드 요청 API와 연동해야 합니다. + print('[AuthService] 비밀번호 재설정 코드 요청: $email'); + await Future.delayed(const Duration(milliseconds: 500)); + } + + /// 비밀번호 재설정을 위한 인증 코드를 확인합니다. + Future verifyPasswordResetCode(String email, String code) async { + // TODO: 실제 서버의 '비밀번호 재설정용' 코드 확인 API와 연동해야 합니다. + if (code != _tempAuthCode) { + throw Exception('인증 코드가 일치하지 않습니다.'); + } + print('[AuthService] 비밀번호 재설정 코드 확인 완료: $email'); + await Future.delayed(const Duration(milliseconds: 500)); + } + + /// 새 비밀번호로 재설정하는 최종 요청을 보냅니다. + Future resetPassword({ + required String email, + required String code, + required String newPassword, + }) async { + // --- 백엔드 API 없이 프론트엔드 시연을 위한 임시 코드 --- + print('[AuthService] 비밀번호 변경 요청 시뮬레이션 시작 (서버 호출 안함)'); + + // 마치 서버가 성공적으로 응답한 것처럼 1초간 기다립니다. + await Future.delayed(const Duration(seconds: 1)); + + // 서버 대신 성공 메시지를 직접 반환합니다. + return '비밀번호가 성공적으로 변경되었습니다.'; + + /* + // 여기부터는 원래 코드입니다. 나중에 백엔드 API가 준비되면 이 주석을 풀고 위 코드를 지우면 됩니다. + const apiUrl = 'http://10.0.2.2:8080/api/auth/reset'; + final resetData = {'email': email, 'code': code, 'newPassword': newPassword}; + + try { + final response = await http.post( + Uri.parse(apiUrl), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode(resetData), + ); + + final responseBody = jsonDecode(utf8.decode(response.bodyBytes)); + + if (response.statusCode == 200) { + return '비밀번호가 성공적으로 변경되었습니다.'; + } else { + throw Exception(responseBody['message'] ?? '비밀번호 변경에 실패했습니다.'); + } + } catch (e) { + print('[AuthService] Reset Password Error: $e'); + throw Exception(e is Exception ? e.toString().replaceFirst('Exception: ', '') : '서버와 통신할 수 없습니다.'); + } + */ + } } \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 43b6a1d..b910700 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -95,26 +95,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -204,10 +204,10 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" typed_data: dependency: transitive description: @@ -220,10 +220,10 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: @@ -241,5 +241,5 @@ packages: source: hosted version: "1.1.1" sdks: - dart: ">=3.8.0-0 <4.0.0" + dart: ">=3.7.0-0 <4.0.0" flutter: ">=3.18.0-18.0.pre.54" diff --git a/pubspec.yaml b/pubspec.yaml index bf7f827..60158fb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -60,8 +60,9 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg + assets: + - assets/images/ + - assets/icons/ # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see From 822d780bbf5074ce67c5e9b8b31a5c507f92e991 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Tue, 14 Oct 2025 10:25:00 +0900 Subject: [PATCH 08/52] feat : kakao api key insert --- .gradle/8.10/checksums/checksums.lock | Bin 0 -> 17 bytes .gradle/8.10/checksums/md5-checksums.bin | Bin 0 -> 20547 bytes .gradle/8.10/checksums/sha1-checksums.bin | Bin 0 -> 41393 bytes .../8.10/dependencies-accessors/gc.properties | 0 .../executionHistory/executionHistory.bin | Bin 0 -> 19583 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .gradle/8.10/fileChanges/last-build.bin | Bin 0 -> 1 bytes .gradle/8.10/fileHashes/fileHashes.bin | Bin 0 -> 29147 bytes .gradle/8.10/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../8.10/fileHashes/resourceHashesCache.bin | Bin 0 -> 19449 bytes .gradle/8.10/gc.properties | 0 .gradle/8.11.1/checksums/checksums.lock | Bin 0 -> 17 bytes .gradle/8.11.1/checksums/md5-checksums.bin | Bin 0 -> 20897 bytes .gradle/8.11.1/checksums/sha1-checksums.bin | Bin 0 -> 32105 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .gradle/8.11.1/fileChanges/last-build.bin | Bin 0 -> 1 bytes .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 0 -> 28847 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 0 -> 19313 bytes .gradle/8.11.1/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .gradle/buildOutputCleanup/cache.properties | 2 + .gradle/config.properties | 2 + .gradle/file-system.probe | Bin 0 -> 8 bytes .gradle/noVersion/buildLogic.lock | Bin 0 -> 17 bytes .gradle/vcs-1/gc.properties | 0 android/app/build.gradle.kts | 2 +- android/app/src/debug/AndroidManifest.xml | 6 +- android/app/src/main/AndroidManifest.xml | 40 +-- android/build.gradle.kts | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 5 +- android/settings.gradle.kts | 2 +- devtools_options.yaml | 3 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 252 ++++++++++++++++++ gradlew.bat | 94 +++++++ lib/features/auth/screens/signup_screen.dart | 132 ++++++--- lib/features/auth/services/auth_service.dart | 92 +++++++ lib/main.dart | 19 +- local.properties | 9 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 241 ++++++++++++++++- pubspec.yaml | 3 +- settings.gradle.kts | 17 ++ 45 files changed, 862 insertions(+), 70 deletions(-) create mode 100644 .gradle/8.10/checksums/checksums.lock create mode 100644 .gradle/8.10/checksums/md5-checksums.bin create mode 100644 .gradle/8.10/checksums/sha1-checksums.bin create mode 100644 .gradle/8.10/dependencies-accessors/gc.properties create mode 100644 .gradle/8.10/executionHistory/executionHistory.bin create mode 100644 .gradle/8.10/executionHistory/executionHistory.lock create mode 100644 .gradle/8.10/fileChanges/last-build.bin create mode 100644 .gradle/8.10/fileHashes/fileHashes.bin create mode 100644 .gradle/8.10/fileHashes/fileHashes.lock create mode 100644 .gradle/8.10/fileHashes/resourceHashesCache.bin create mode 100644 .gradle/8.10/gc.properties create mode 100644 .gradle/8.11.1/checksums/checksums.lock create mode 100644 .gradle/8.11.1/checksums/md5-checksums.bin create mode 100644 .gradle/8.11.1/checksums/sha1-checksums.bin create mode 100644 .gradle/8.11.1/executionHistory/executionHistory.lock create mode 100644 .gradle/8.11.1/fileChanges/last-build.bin create mode 100644 .gradle/8.11.1/fileHashes/fileHashes.bin create mode 100644 .gradle/8.11.1/fileHashes/fileHashes.lock create mode 100644 .gradle/8.11.1/fileHashes/resourceHashesCache.bin create mode 100644 .gradle/8.11.1/gc.properties create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 .gradle/buildOutputCleanup/cache.properties create mode 100644 .gradle/config.properties create mode 100644 .gradle/file-system.probe create mode 100644 .gradle/noVersion/buildLogic.lock create mode 100644 .gradle/vcs-1/gc.properties create mode 100644 devtools_options.yaml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 local.properties create mode 100644 settings.gradle.kts diff --git a/.gradle/8.10/checksums/checksums.lock b/.gradle/8.10/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..31569d746ea2dbaeccbb64b9a9eb269e10924474 GIT binary patch literal 17 VcmZQRdZ6iT&P$;m3}C=`9RNg81}^{r literal 0 HcmV?d00001 diff --git a/.gradle/8.10/checksums/md5-checksums.bin b/.gradle/8.10/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..b259a3e2c4e7e384a93612107dd937a574ac622d GIT binary patch literal 20547 zcmeI3{Wnx;9KdhGj1-L)r4*yB47F@UY%1g>gOOy|nUG$U?FBVbN^E-55v{jocMHj$ zSsP1Q>4l=Gl_+g!OSDUEMbdj6W$&Hmd3H~8`wKeX=N#9ZkNff5=kv^rAIx>7C?mZA zJgEPN;r|ce5fp#|Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU@TnA#&w^M#p4wUfr8AB(if{||P|QaDZPO2|Uo^D^N{SBs7nF281i zxh>)Q6b4I@9^ZYBxJL`&sfs;Mck^BN_aq!V4m(@*Vm?D-fR-OZd^aOTkgLx^;+qFC_d|+t-KVhL>m{?vYP; zapj8Nlbe}9pyox7~*2gJS7{^MN} zzDg7uzd_u)k8rM4!w{-tNjN^=n((2Yjqok***zR_pHjm0^YvrH`vgxA7oQ}2)TQpw z((biY`22Zk_61U;sGnR0>7?J&` zVvAbDMb`+Q@la1|mE7eS=4%Ld6dsT0n(*Eeaqncp-8e6v4McA(KzyEvaQBrLZYiq_ z-eO)zxaf6G-WS}F>kt=92>0ig3EjeT4kGULitu2k3)2m>x8Xh>>j_`6Hl_QymK*+G zo7ZB(<+2X*>7jwRv-erTqZ=Cvs~eC;$bZ02F`%Pyh-* z0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU00p1`6o3Ly01A9c1*Xx9VLo7N#(e3W zH#9!6??Gu=R{tKSR{5{q6g5b3M`xBhS~2Hm`n%PK#-3qzcSon0wF!75kG(d}If;xp zX~@uG?j=w&UY>1e+gg;Ay}7aJ_KUqea%8ylBSU{S+bA~KK4kpV-1@A6j=`Z%zK%!6 zTx(?TnX6NqxQ>khWEdo|4XZ${iUpVE6!hLq*m-7Rb1O33 z@MrfOO4)|Hj>eV*XaD>uCGA^GdjlpR!z)HL2d6BXZTKYzzAv~aQx4P4^W#~X(Vzck z>U!I$49X~lZ9F&X({HCDD&`yEm;SFT?l&FkB8$MFEZCS$Ka)-VQ*_5^|&fjgM z?@M5=%BKg<5yYM&(=XF(e?WEd)Yz7QnMxsUwIBq|5gEodQa84)ba}!H-fYnr(p-Q0 zcV>>Zo0ZIyj~+u!>4Vyy4|-`Bm9jTOGsDL4aD+k>hYfr;%XDTZ)r`eeM;%H|oisD5 z@zV$wMwOv;_@7~BpeXB!^g+#VI8n?C3vBHD+Lu#4xWM#2HXf-2io2I>c=Uf8>v%|i zw1H^u^nf!R`Pg`l4DBekalHOiSoM*#(?g=7r4G$j3y~qIL2}vm$I%(`V9Su#7&a)y-6vq>0=8G_ppt=y%KOzx>e9 z)@2)`0t1|zdM+LK>2SJdzHKtSV&<7B!FTj%?qnOXdp@p_jxSe_)7ZD>baxMZ6)K~X zK9e3}+UbMZRoO=@nAEo|oSQVT-}0XD1b#1((0k8}zEt|4X3Ut=-mjOj{H?(F$PbU| zT5jSw9;gJ0_Z8b%)T(eFJJn^jPoc^0KMF>@L`DGKK`vve%~4f+x%9=pYj^Ue1jIHT z8lYdL%sPmnwTNx(FEO~9aeaTruwCt`A!80mv4LChKJtoM?5eXaW~Ene<1hEu+f)S2 z#YQb!2bbANwX3RIZ*yR7-38hB<8My*{WV#M4C!iY(0@3v|qw+19t(%`4*3cT>?T*VUotVut2NUQspQhYDwy zPjJ7OUSPhqcQsnMt}!v{Xie>^+yudn*Kb%q&yI@IRmOS`MROSAzqOjooorVB0#A4Y A5dZ)H literal 0 HcmV?d00001 diff --git a/.gradle/8.10/checksums/sha1-checksums.bin b/.gradle/8.10/checksums/sha1-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..9faf0720389a3b7b3b9db31762d98cc4f82d1cd1 GIT binary patch literal 41393 zcmeI5c{Ek;-}jH1GMs}_5tSq&Ln#`~l1w2XA%s%qA+s_QB4jF*(m<4=GE<@uQB;m8 zNkv3Tg=g<`?Y)2NKIiOv-FNF*&mYg~TI+jG>+SQp-uwFOYxwM~em`{rVHt4&X@vi@ zCI9*3zd!xUz`qRq%fP=3{L8?<4E)Q$zYP4#z`qRq%fP=3{L8?<4E)Q$zYP4#z`qRq z%fP=3{L8?<4E+C+0TXB-i@;!(Nio8I;PD|4WH|{0hJujg(x&gU*ENG52dSXHKL|

|0;KTIq9_g`F{^x)m{T9_jH>_}W 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≈?Sa{oyTNmC;(fvrbzs zRV`ejZ4>|1b%<9Cpyqp_Z>k*PQDl-9s5hADQMUK>A!>cy?M zr9;mrP&RmzKvhXtLgzP+N(UP5bkDHg8#IlZJM)P}v}vdGDnO;4pjZ)>utMKd*-&2b zn0xb$E$Ua_aqBsm)tc2YsX$dS?3K9-P{MSc5PLFq3j}w3Ia{&z^yHnF8oWfO_sxLH z_@v-*Y%bg^+UR(KkLF zJ-Y+vlahc}!8Z!Uyu6r}`qYyvv!!iqMY5Xe?%S#94C>d89Rbv>6beP~PNk(rU&imZ z*epnl`uNqIIdMY2N4c;8P{lfcl7#k0>KtAZS#%+{*k@_7P*2v~-~?~;&h;ID0*4-f z@Y{!$axAO)d3NmT8>6ph(gef?nl{z8i2|zZ3Gj01qovAT`1o10yn24@_sfCK+E+ry zSdVQ7R0UM6z)cQ%Dxki?{p-FHzlE{y*m~{wgK7~wxsSezdVs0{vzH-2kd~TQMHHxL zHY{W=ttgrvCbh)~Rqq5;eIe{bAgmxlA5=4H$F7`j_U&4})|QF(_ad!|ERWejwHiF5 znjTP~E43?VsgR8yZMMZo-4WUAXISgfs2j?Xdm2zJ@KY%C$9-wE6jSB1Nrj`A?Umid zyjNXr5AvFO0?i57t38rJ5vu8UnYX>Z(obfs&rl3l9H+qGX{zTw0;o>-DHLj)bjFpR z!^f%m+I-8O{N9qCa;kz?rlu&*Uu51_*8l~-yQI#Bk)vJcXklD*p3tg+XyUNslH?Z3 zsYm9016LqTn{e({D8xlU(NPCYX3pctUi>FgW0zoFwr{-2ZR{)R660Ygdi@#a~EsML!h zj6?2CZ9~wG24CR^cqT#Z3Oq-s##I|Nxt{N6oJ{c#o8OJX`8$4{F@`E3hV)k&`@T>h z77zHo{SPU~>jplR-NLG-#$@=)i=Es4F1O5EYtmU=aD|_YDHOr|9<7(zGvB)R{6~88 z7_4vYsuVMv?K}eQx$wBgLFGUQ2&AR{?tfVbm*V{j&m^d^SVJFF+4#GE4TnqdPLNx&X?xIzE|5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_@Gl6I z5Mp(kXL0PDaCsu`Qq3uQ+C|ANseavmTyuHCddS5+i3%BShU5n~M_%zg4Yj@xmY=G~ zZI$_XKNIC3pX`6v@LjWWJ1aTmN)QkiH_nftWsUCxcB#g}&ez*5t;{Z~`| zI0AWU5vsyUP;Qo(q8UQIz``Lx3aWaTQAd8VTvzg>J+UknEEha7@A&Tv+0yY6p8A|Rb!@zGb90YTVgpC zm+=mJak~=YdlhXUQFoLw-84!)8*3X3Q6s9dt`?=6s$s)QNFjGIA_f)NTxqMH$xLq{ z*8X|_!!wEN+SwL#;O>WK2sdJ<^j%SR=vwXK$&+G9W5>Iexodi+B geIE4{oH$wZY-Bc9$lmkf{aAeR(_X8^{9si405h1vAOHXW diff --git a/.gradle/8.10/executionHistory/executionHistory.lock b/.gradle/8.10/executionHistory/executionHistory.lock deleted file mode 100644 index f877778f8d5a4c5cfed953615bc1029fb186f6c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 UcmZSXaNmFJ+0#I71_)pV06J_0k^lez diff --git a/.gradle/8.10/fileChanges/last-build.bin b/.gradle/8.10/fileChanges/last-build.bin deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/.gradle/8.10/fileHashes/fileHashes.bin b/.gradle/8.10/fileHashes/fileHashes.bin deleted file mode 100644 index 1497509dd9311f6e91fa32ff51d1b6a1ba0a4975..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29147 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 diff --git a/.gradle/8.10/fileHashes/fileHashes.lock b/.gradle/8.10/fileHashes/fileHashes.lock deleted file mode 100644 index 40a4b25ed5fbc6387f1d51a02e74ef9b0f986c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 VcmZRU;pqMJ=+lZ@3}C?F4FEb11yBG0 diff --git a/.gradle/8.10/fileHashes/resourceHashesCache.bin b/.gradle/8.10/fileHashes/resourceHashesCache.bin deleted file mode 100644 index 2292ef80216b06817fa51ca1821a103ce8ff33ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19449 zcmeI(Ye-XJ0LJm-#LBdqIKgOXNtxzlGgHf47fn2yhIu!!BDITIL719aP&pedQFIj) z-V&DyUa}Nz85J2Nb~RJOrj;Vv&CH;y+2p)$QRj1C;u&l^{P*yV{l0En%P`i$336k8 z->iOL;tB!~fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwx`|3x6e@Ij_?AI92QFnKX6 zjbWtbh6}OMcjUl8V#Pb|Www=me~{~tpQDl-S94vlh4#F(O#6at)i~D!&1f$^ueJ!X z4{f&O7Hx_QABD^|9&PSF@muoUf(5F)lB#A<@N=oRds@OVQNRuZyj3 zaGkCA)$2A39Aw5Jq-WFKHq^N|^v()@a!v^C?Moati*m%>Tvyzty<=Lx?Qoc`o}3d; zyIxVV_;an*BXZ7D+F!{`%Ggn#8q!bFK3c!kE7!*E8|mL@pC#9)PS-a-=X&5?+U<6V zy{GzRHgH`rmv+}+pD4}xK_jwnpxvj(rYPZ5-5A+t(JpH}qrFk}F_Y_Z$*e+&+C$=FA~ss>B5r|Qw1=jfWORC&W|6&y_H9hBXrJ4ZBV1?K z(7wm5Fi-IGL@C!5t7zZ5f90;^EX(Vp57VA{KYZkiPLR%Z_BHMFnPCKV+-rD*00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1RwwbcLTv}!`))?E^LdNJEFW-*&n0`PYxRXJq6Yr7CiOzff-1nyuH`j;7Q;OP%7xO#Z(7uXoXQe27-gOh2fcKO-!K zjj-b{6pxli=SVFZ)7BMkJM8KGgui$h&IU^?s{Ax}qdtvJ)OPR}!dF@5M(*Z?8xA{4 zT68Bv`3t}AUX}HhQkmQSi~fUex2pJy9{GcezMP}>t-D3Lo#MoP{Kb%_tHkQZ&Egl! z?gkvaHr~Qt6psWvDJmbo>~YoeK#5x9#$R|uv2D5Q5}H06Uux2)4z1uX%A(#C9Pdqf zqfIguXUg73@)uu^6)k_zUcU0}mB(!LRd({<8Gos}ra09!KOQX5EQl9gn5{p=U+lR5 pJUgj+Y^={Tdv*7m#0vhxBl`BkO&RZV2R6l4Nz2DtvG_M0KLN)Pai#zO diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index df0d93b624a27254b7a9ef97e1def0f81f269eeb..681d38fa55f4f8f4a281433b7a79430ceea5262d 100644 GIT binary patch delta 2093 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 diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index 582e7b695871976171aa9d4cdaf3d0376c3a7cef..db15f7522fe3e9e12a5ae4ad2d5761a686ed0f7f 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~A}%2LLuB1$F=c literal 17 VcmZQ}=bo_Q-nZT^1~A}P001>r1gHQ2 diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin index 57ba1d986924298cd7218a7494661b83ca2b725b..9add4323daeb95f4d5c6e7e321b14713dfa70c21 100644 GIT binary patch delta 62 zcmZ2EkMZ<8#tkMCjHa7SB?1@)c6^<&TEbVdhye`zH8 generateRoute(RouteSettings settings) { + switch (settings.name) { + case '/login': + return MaterialPageRoute(builder: (_) => const LoginScreen()); + + case '/signup': + return MaterialPageRoute(builder: (_) => const SignupScreen()); + + case '/reset': + return MaterialPageRoute(builder: (_) => const ResetPasswordScreen()); + + case '/home': + return MaterialPageRoute(builder: (_) => const HomeScreen()); + + case '/video': + return MaterialPageRoute(builder: (_) => VideoCategoryScreen()); + + case '/videoList': + final args = settings.arguments as Map; + return MaterialPageRoute( + builder: (_) => VideoListScreen( + categoryId: args['categoryId'], // ✅ 추가 + categoryName: args['categoryName'], // ✅ 추가 + ), + ); + + case '/videoPlayer': + final args = settings.arguments as Map; + return MaterialPageRoute( + builder: (_) => VideoPlayerScreen( + videoId: args['videoId'], // ✅ 추가 + title: args['title'], // ✅ 추가 + ), + ); + + default: + return MaterialPageRoute( + builder: (_) => const Scaffold( + body: Center(child: Text('페이지를 찾을 수 없습니다.')), + ), + ); + } +} diff --git a/lib/features/video/models/video_model.dart b/lib/features/video/models/video_model.dart new file mode 100644 index 0000000..9fe407a --- /dev/null +++ b/lib/features/video/models/video_model.dart @@ -0,0 +1,65 @@ +import 'package:flutter/foundation.dart'; + +class VideoCategory { + final int id; + final String name; + final String description; + final String icon; + final int videoCount; + + const VideoCategory({ + required this.id, + required this.name, + required this.description, + required this.icon, + required this.videoCount, + }); + + factory VideoCategory.fromJson(Map json) { + return VideoCategory( + id: json['id'], + name: json['name'], + description: json['description'] ?? '', + icon: json['icon'] ?? '', + videoCount: json['videoCount'] ?? 0, + ); + } +} + +class PreventionVideo { + final int id; + final String title; + final String description; + final String youtubeId; + final String youtubeUrl; + final String thumbnailUrl; + final String duration; + final int viewCount; + final int categoryId; + + const PreventionVideo({ + required this.id, + required this.title, + required this.description, + required this.youtubeId, + required this.youtubeUrl, + required this.thumbnailUrl, + required this.duration, + required this.viewCount, + required this.categoryId, + }); + + factory PreventionVideo.fromJson(Map json) { + return PreventionVideo( + id: json['id'], + title: json['title'], + description: json['description'] ?? '', + youtubeId: json['youtubeId'], + youtubeUrl: json['youtubeUrl'], + thumbnailUrl: json['thumbnailUrl'], + duration: json['duration'] ?? '', + viewCount: json['viewCount'] ?? 0, + categoryId: json['categoryId'], + ); + } +} diff --git a/lib/features/video/screens/video_category_screen.dart b/lib/features/video/screens/video_category_screen.dart new file mode 100644 index 0000000..42c52eb --- /dev/null +++ b/lib/features/video/screens/video_category_screen.dart @@ -0,0 +1,193 @@ +import 'package:flutter/material.dart'; + +class VideoCategoryScreen extends StatefulWidget { + const VideoCategoryScreen({super.key}); + + @override + State createState() => _VideoCategoryScreenState(); +} + +class _VideoCategoryScreenState extends State { + // 목업 데이터 (디자인 테스트용) + final List> _mockCategories = [ + { + 'id': 1, + 'name': '보이스피싱', + 'description': '전화를 이용한 금융사기 예방', + 'icon': 'phone_warning', + }, + { + 'id': 2, + 'name': '스미싱', + 'description': '문자 메시지를 이용한 사기 예방', + 'icon': 'message_warning', + }, + { + 'id': 3, + 'name': '대출사기', + 'description': '불법 대출 유도 사기 예방', + 'icon': 'money_warning', + }, + { + 'id': 4, + 'name': '파밍', + 'description': '개인정보 탈취 사기 예방', + 'icon': 'security_warning', + }, + ]; + + IconData getIcon(String iconName) { + switch (iconName) { + case 'phone_warning': + return Icons.phone_in_talk; + case 'message_warning': + return Icons.sms_failed; + case 'money_warning': + return Icons.attach_money; + case 'security_warning': + return Icons.security; + default: + return Icons.play_circle_fill; + } + } + + Color getColor(int index) { + final colors = [ + const Color(0xFFFF6B6B), // 빨강 - 보이스피싱 + const Color(0xFF4ECDC4), // 청록 - 스미싱 + const Color(0xFFFFBE0B), // 노랑 - 대출사기 + const Color(0xFF9B59B6), // 보라 - 파밍 + ]; + return colors[index % colors.length]; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF9F5EC), + appBar: AppBar( + title: const Text( + '금융사기 예방 영상', + style: TextStyle( + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + backgroundColor: Colors.white, + elevation: 1, + iconTheme: const IconThemeData(color: Colors.black), + ), + body: ListView.builder( + padding: const EdgeInsets.only(left: 20.0, right: 20.0, top: 20.0, bottom: 20.0), + itemCount: _mockCategories.length, + itemBuilder: (context, index) { + final category = _mockCategories[index]; + final color = getColor(index); + + return Container( + margin: const EdgeInsets.only(bottom: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.06), + blurRadius: 12, + offset: const Offset(0, 4), + ), + ], + ), + child: Material( + color: Colors.transparent, + child: InkWell( + borderRadius: BorderRadius.circular(16), + onTap: () { + Navigator.pushNamed( + context, + '/videoList', + arguments: { + 'categoryId': category['id'], + 'categoryName': category['name'], + }, + ); + }, + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Row( + children: [ + // 아이콘 + Container( + width: 60, + height: 100, + decoration: BoxDecoration( + color: color.withOpacity(0.1), + borderRadius: BorderRadius.circular(14), + ), + child: Icon( + getIcon(category['icon']), + size: 30, + color: color, + ), + ), + const SizedBox(width: 16), + // 텍스트 + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + category['name'], + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 18, + color: Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + category['description'], + style: TextStyle( + fontSize: 13, + color: Colors.grey[600], + ), + ), + ], + ), + ), + // 화살표 + Icon( + Icons.chevron_right, + color: Colors.grey[400], + size: 28, + ), + ], + ), + ), + ), + ), + ); + }, + ), + ); + } +} + +/* +🔧 실제 API 연결 시 사용할 코드: + +import 'package:guardpayfront/features/video/services/video_service.dart'; +import 'package:guardpayfront/features/video/models/video_model.dart'; + +class _VideoCategoryScreenState extends State { + final VideoService _videoService = VideoService(); + Future>? _categories; + + @override + void initState() { + super.initState(); + _categories = _videoService.fetchCategories(); + } + + // body를 FutureBuilder로 감싸기 +} +*/ \ No newline at end of file diff --git a/lib/features/video/screens/video_list_screen.dart b/lib/features/video/screens/video_list_screen.dart new file mode 100644 index 0000000..27b8dde --- /dev/null +++ b/lib/features/video/screens/video_list_screen.dart @@ -0,0 +1,139 @@ +import 'package:flutter/material.dart'; +import 'package:guardpayfront/features/video/models/video_model.dart'; +import 'package:guardpayfront/features/video/services/video_service.dart'; +import 'package:cached_network_image/cached_network_image.dart'; + +class VideoListScreen extends StatefulWidget { + final int categoryId; + final String categoryName; + + const VideoListScreen({ + super.key, + required this.categoryId, + required this.categoryName, + }); + + @override + State createState() => _VideoListScreenState(); +} + +class _VideoListScreenState extends State { + final VideoService _videoService = VideoService(); + late Future> _videos; + + @override + void initState() { + super.initState(); + _videos = _videoService.fetchVideosByCategory(widget.categoryId); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF9F5EC), + appBar: AppBar( + title: Text( + '${widget.categoryName} 예방 영상', + style: const TextStyle( + color: Colors.black, + fontWeight: FontWeight.bold, + ), + ), + backgroundColor: Colors.white, + foregroundColor: Colors.black, + elevation: 0.5, + ), + body: FutureBuilder>( + future: _videos, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + if (snapshot.hasError) { + return const Center(child: Text('영상 데이터를 불러오지 못했습니다.')); + } + if (!snapshot.hasData || snapshot.data!.isEmpty) { + return const Center(child: Text('등록된 영상이 없습니다.')); + } + + final videos = snapshot.data!; + return ListView.builder( + itemCount: videos.length, + itemBuilder: (context, index) { + final video = videos[index]; + return GestureDetector( + onTap: () { + Navigator.pushNamed( + context, + '/videoPlayer', + arguments: {'videoId': video.id, 'title': video.title}, + ); + }, + child: Card( + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + elevation: 3, + child: Row( + children: [ + ClipRRect( + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(16), + bottomLeft: Radius.circular(16), + ), + child: CachedNetworkImage( + imageUrl: video.thumbnailUrl, + width: 130, + height: 80, + fit: BoxFit.cover, + errorWidget: (context, error, stackTrace) => + const Icon(Icons.broken_image, size: 50), + ), + ), + const SizedBox(width: 10), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + video.title, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 5), + Text( + video.duration, + style: const TextStyle( + color: Colors.grey, + fontSize: 13, + ), + ), + Text( + '조회수 ${video.viewCount}', + style: const TextStyle( + color: Colors.grey, + fontSize: 12, + ), + ), + ], + ), + ), + ), + const Icon(Icons.play_circle_fill, color: Colors.redAccent), + const SizedBox(width: 10), + ], + ), + ), + ); + }, + ); + }, + ), + ); + } +} diff --git a/lib/features/video/screens/video_player_screen.dart b/lib/features/video/screens/video_player_screen.dart new file mode 100644 index 0000000..d32fc60 --- /dev/null +++ b/lib/features/video/screens/video_player_screen.dart @@ -0,0 +1,94 @@ +import 'package:flutter/material.dart'; +import 'package:youtube_player_flutter/youtube_player_flutter.dart'; +import 'package:guardpayfront/features/video/services/video_service.dart'; +import 'package:guardpayfront/features/video/models/video_model.dart'; + +class VideoPlayerScreen extends StatefulWidget { + final int videoId; + final String title; + + const VideoPlayerScreen({ + super.key, + required this.videoId, + required this.title, + }); + + @override + State createState() => _VideoPlayerScreenState(); +} + +class _VideoPlayerScreenState extends State { + late YoutubePlayerController _controller; + final VideoService _videoService = VideoService(); + PreventionVideo? _video; + + @override + void initState() { + super.initState(); + _loadVideo(); + } + + Future _loadVideo() async { + try { + final video = await _videoService.fetchVideoDetail(widget.videoId); + setState(() => _video = video); + + // ✅ 조회수 증가 API 호출 + await _videoService.increaseViewCount(widget.videoId); + + _controller = YoutubePlayerController( + initialVideoId: video.youtubeId, + flags: const YoutubePlayerFlags( + autoPlay: true, + mute: false, + ), + ); + } catch (e) { + debugPrint('🚨 영상 로드 실패: $e'); + } + } + + @override + void dispose() { + _controller.pause(); + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + title: Text( + widget.title, + style: const TextStyle(fontWeight: FontWeight.bold), + ), + backgroundColor: Colors.black, + ), + body: _video == null + ? const Center(child: CircularProgressIndicator(color: Colors.white)) + : Column( + children: [ + YoutubePlayer( + controller: _controller, + showVideoProgressIndicator: true, + progressIndicatorColor: Colors.red, + progressColors: const ProgressBarColors( + playedColor: Colors.redAccent, + handleColor: Colors.white, + ), + ), + const SizedBox(height: 10), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Text( + _video!.description, + style: const TextStyle(color: Colors.white, fontSize: 14), + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/video/services/video_service.dart b/lib/features/video/services/video_service.dart new file mode 100644 index 0000000..06003ce --- /dev/null +++ b/lib/features/video/services/video_service.dart @@ -0,0 +1,48 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; +import 'package:guardpayfront/features/video/models/video_model.dart'; + +class VideoService { + final String baseUrl = 'http://10.0.2.2:8080/api/videos'; + + /// ✅ [1] 영상 카테고리 목록 불러오기 + Future> fetchCategories() async { + final response = await http.get(Uri.parse('$baseUrl/categories')); + if (response.statusCode == 200) { + final List jsonList = jsonDecode(utf8.decode(response.bodyBytes)); + return jsonList.map((v) => VideoCategory.fromJson(v)).toList(); + } else { + throw Exception('카테고리 불러오기 실패 (${response.statusCode})'); + } + } + + /// ✅ [2] 카테고리별 영상 목록 + Future> fetchVideosByCategory(int categoryId) async { + final response = await http.get(Uri.parse('$baseUrl/categories/$categoryId')); + if (response.statusCode == 200) { + final List jsonList = jsonDecode(utf8.decode(response.bodyBytes)); + return jsonList.map((v) => PreventionVideo.fromJson(v)).toList(); + } else { + throw Exception('카테고리별 영상 조회 실패 (${response.statusCode})'); + } + } + + /// ✅ [3] 영상 상세 조회 + Future fetchVideoDetail(int videoId) async { + final response = await http.get(Uri.parse('$baseUrl/$videoId')); + if (response.statusCode == 200) { + final Map json = jsonDecode(utf8.decode(response.bodyBytes)); + return PreventionVideo.fromJson(json); + } else { + throw Exception('영상 상세 조회 실패 (${response.statusCode})'); + } + } + + /// ✅ [4] 조회수 증가 + Future increaseViewCount(int videoId) async { + final response = await http.post(Uri.parse('$baseUrl/$videoId/view')); + if (response.statusCode != 200) { + throw Exception('조회수 증가 실패 (${response.statusCode})'); + } + } +} diff --git a/.gradle/8.10/dependencies-accessors/gc.properties b/lib/features/video/widgets/video_category_card.dart similarity index 100% rename from .gradle/8.10/dependencies-accessors/gc.properties rename to lib/features/video/widgets/video_category_card.dart diff --git a/.gradle/8.10/gc.properties b/lib/features/video/widgets/video_list_tile.dart similarity index 100% rename from .gradle/8.10/gc.properties rename to lib/features/video/widgets/video_list_tile.dart diff --git a/lib/features/video/widgets/video_player.dart b/lib/features/video/widgets/video_player.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/main.dart b/lib/main.dart index 470e585..a4f3b76 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -11,6 +11,11 @@ import 'features/auth/screens/signup_screen.dart'; import 'features/auth/screens/reset_password_screen.dart'; import 'features/auth/screens/home_screen.dart'; +// ✅ 영상 관련 import 추가 +import 'package:guardpayfront/features/video/screens/video_category_screen.dart'; +import 'package:guardpayfront/features/video/screens/video_list_screen.dart'; +import 'package:guardpayfront/features/video/screens/video_player_screen.dart'; + void main() async { // 1. Flutter 엔진과 위젯 바인딩 초기화 (비동기 작업 이전에 필수) WidgetsFlutterBinding.ensureInitialized(); @@ -73,6 +78,7 @@ class MyApp extends StatelessWidget { return MaterialApp( debugShowCheckedModeBanner: false, title: 'GuardPay App', + // theme: appTheme(), // appTheme()이 정의되어 있다고 가정 initialRoute: initialRoute, // 초기 라우트 설정 routes: { @@ -80,7 +86,31 @@ class MyApp extends StatelessWidget { '/signup': (context) => const SignupScreen(), '/reset': (context) => const ResetPasswordScreen(), '/home': (context) => const HomeScreen(), + // ✅ 예방 영상 관련 라우트 (오류 수정 완료) + '/video': (context) => VideoCategoryScreen(), + '/videoList': (context) { + final args = ModalRoute.of(context)!.settings.arguments as Map; + final int categoryId = args['categoryId']; + final String categoryName = args['categoryName']; + + return VideoListScreen( + categoryId: categoryId, + categoryName: categoryName, + ); + }, + + '/videoPlayer': (context) { + final args = ModalRoute.of(context)!.settings.arguments as Map; + final int videoId = args['videoId']; + final String title = args['title']; // ✅ title 받기 + + return VideoPlayerScreen( + videoId: videoId, + title: title, // ✅ title 전달 + ); + }, + }, ); } -} +} \ No newline at end of file diff --git a/local.properties b/local.properties index efb2919..8b1724b 100644 --- a/local.properties +++ b/local.properties @@ -4,6 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Tue Nov 04 11:03:37 KST 2025 +#Sat Nov 08 11:13:53 KST 2025 flutter.sdk=C\:\\flutter -sdk.dir=C\:\\Users\\ASUS\\AppData\\Local\\Android\\Sdk +sdk.dir=C\:\\Users\\kimji\\AppData\\Local\\Android\\Sdk diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 29d895d..33e77f9 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,19 +6,23 @@ import FlutterMacOS import Foundation import desktop_webview_window +import flutter_inappwebview_macos import flutter_secure_storage_macos import flutter_web_auth_2 import path_provider_foundation import shared_preferences_foundation +import sqflite_darwin import url_launcher_macos import window_to_front func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin")) + InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) FlutterWebAuth2Plugin.register(with: registry.registrar(forPlugin: "FlutterWebAuth2Plugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) WindowToFrontPlugin.register(with: registry.registrar(forPlugin: "WindowToFrontPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 9e71aab..87d31dc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -33,6 +33,30 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" + url: "https://pub.dev" + source: hosted + version: "4.1.1" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" + url: "https://pub.dev" + source: hosted + version: "1.3.1" characters: dependency: transitive description: @@ -137,11 +161,27 @@ packages: url: "https://pub.dev" source: hosted version: "7.0.1" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" + flutter_cache_manager: + dependency: transitive + description: + name: flutter_cache_manager + sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" + url: "https://pub.dev" + source: hosted + version: "3.4.1" flutter_dotenv: dependency: "direct main" description: @@ -150,6 +190,70 @@ packages: url: "https://pub.dev" source: hosted version: "5.2.1" + flutter_inappwebview: + dependency: "direct main" + description: + name: flutter_inappwebview + sha256: "80092d13d3e29b6227e25b67973c67c7210bd5e35c4b747ca908e31eb71a46d5" + url: "https://pub.dev" + source: hosted + version: "6.1.5" + flutter_inappwebview_android: + dependency: transitive + description: + name: flutter_inappwebview_android + sha256: "62557c15a5c2db5d195cb3892aab74fcaec266d7b86d59a6f0027abd672cddba" + url: "https://pub.dev" + source: hosted + version: "1.1.3" + flutter_inappwebview_internal_annotations: + dependency: transitive + description: + name: flutter_inappwebview_internal_annotations + sha256: "787171d43f8af67864740b6f04166c13190aa74a1468a1f1f1e9ee5b90c359cd" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + flutter_inappwebview_ios: + dependency: transitive + description: + name: flutter_inappwebview_ios + sha256: "5818cf9b26cf0cbb0f62ff50772217d41ea8d3d9cc00279c45f8aabaa1b4025d" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_inappwebview_macos: + dependency: transitive + description: + name: flutter_inappwebview_macos + sha256: c1fbb86af1a3738e3541364d7d1866315ffb0468a1a77e34198c9be571287da1 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_inappwebview_platform_interface: + dependency: transitive + description: + name: flutter_inappwebview_platform_interface + sha256: cf5323e194096b6ede7a1ca808c3e0a078e4b33cc3f6338977d75b4024ba2500 + url: "https://pub.dev" + source: hosted + version: "1.3.0+1" + flutter_inappwebview_web: + dependency: transitive + description: + name: flutter_inappwebview_web + sha256: "55f89c83b0a0d3b7893306b3bb545ba4770a4df018204917148ebb42dc14a598" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_inappwebview_windows: + dependency: transitive + description: + name: flutter_inappwebview_windows + sha256: "8b4d3a46078a2cdc636c4a3d10d10f2a16882f6be607962dbfff8874d1642055" + url: "https://pub.dev" + source: hosted + version: "0.6.0" flutter_lints: dependency: "direct dev" description: @@ -352,6 +456,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + octo_image: + dependency: transitive + description: + name: octo_image + sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" path: dependency: transitive description: @@ -432,6 +544,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.9.1" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" shared_preferences: dependency: transitive description: @@ -501,6 +621,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.1" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03 + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 + url: "https://pub.dev" + source: hosted + version: "2.4.2+2" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" + url: "https://pub.dev" + source: hosted + version: "2.5.6" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + url: "https://pub.dev" + source: hosted + version: "2.4.0" stack_trace: dependency: transitive description: @@ -525,6 +685,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.1" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 + url: "https://pub.dev" + source: hosted + version: "3.4.0" term_glyph: dependency: transitive description: @@ -613,6 +781,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.4" + uuid: + dependency: transitive + description: + name: uuid + sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8 + url: "https://pub.dev" + source: hosted + version: "4.5.2" vector_math: dependency: transitive description: @@ -661,6 +837,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + youtube_player_flutter: + dependency: "direct main" + description: + name: youtube_player_flutter + sha256: e64eeebaa5f7dc1d55d103cc9abf05f87d8013bae0d3b6a11aad5d33a2f7f5b4 + url: "https://pub.dev" + source: hosted + version: "9.1.3" sdks: - dart: ">=3.8.0 <4.0.0" + dart: ">=3.9.0 <4.0.0" flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml index 20d7bea..b2c9d2d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -40,6 +40,10 @@ dependencies: # 🚨 서버 통신을 위해 http 패키지를 추가했습니다. http: ^1.2.1 flutter_secure_storage: ^9.0.0 + cached_network_image: ^3.3.1 + youtube_player_flutter: ^9.1.3 + flutter_inappwebview: ^6.0.0-beta.26 + dev_dependencies: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 66aef1d..f93749f 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,6 +7,7 @@ #include "generated_plugin_registrant.h" #include +#include #include #include #include @@ -14,6 +15,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { DesktopWebviewWindowPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("DesktopWebviewWindowPlugin")); + FlutterInappwebviewWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterInappwebviewWindowsPluginCApi")); FlutterSecureStorageWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 59e47fd..d342571 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST desktop_webview_window + flutter_inappwebview_windows flutter_secure_storage_windows url_launcher_windows window_to_front From e37e35926f879068bf1b10067ca537ce5ae24e31 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Sun, 9 Nov 2025 17:53:28 +0900 Subject: [PATCH 24/52] =?UTF-8?q?feat:=20=EA=B8=88=EC=9C=B5=20=EC=98=88?= =?UTF-8?q?=EC=B7=A8=EC=95=BD=20=C3=A3=EA=B3=84=EC=B8=B5=EC=9D=84=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20=EA=B5=90=EC=9C=A1=20=EC=98=81=EC=83=81=20?= =?UTF-8?q?=C3=A3j=EC=98=81=C3=ACs=20=EC=98=81=EC=83=81=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20Jsonn=C3=A3n=20=ED=98=95=EC=8B=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39397 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20299 -> 20503 bytes .gradle/config.properties | 4 +- lib/features/auth/screens/home_screen.dart | 9 +- .../video/screens/video_list_screen.dart | 16 ++- .../video/screens/video_player_screen.dart | 134 +++++++++++------- .../video/services/video_service.dart | 42 ++++-- local.properties | 4 +- pubspec.lock | 26 ++-- 10 files changed, 152 insertions(+), 83 deletions(-) diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 681d38fa55f4f8f4a281433b7a79430ceea5262d..264b3b4deeeaa1137caaaae493a11f0b090bc987 100644 GIT binary patch delta 5554 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 delta 2245 zcmYk73rv+|7{@s%1u7wdiXS2|%f`r)H&84jbeTFXfpYMMiku5zU`|txM+6kSBp2Z? zA(A3qrnZ=|(=sm%ak8n!l-A5FMuaSx5}|JCoZ0vOpTp+a4(I=SpXd2~-}%0m^IiMa zy~pYP&GZ1nQD=C-6L05-6L0%C!z0#u8DbhkZh9hSeu(qtr`|*0vvJZiI5)8ixP(Fp7jY(8 z!<2kFe@2%M=>k8(kaD zf&UQwt7BNJUhja+uPMCljIwT5Agkh4>T?3P%ZkGYdBV{PS*YeAuBZ4$_YJ$8i8&!maBgI-$>l4 zl=h!QIlCW0`;^jt9|P%Z=|#*c4TfFHl3qp2G=V&VMPLitss)M(*92CgYnL*m>l=y6 z^a7Sw?N&<5sh5UwJ#|x#|dxm;Y=x__b8?1h)ZdyW4VdtjB&K|3wRTDtyY5> z!`RlBK^TMf)yiUfibJ2Pkm2vrWxNi!7=%gsZ=^#ix{Tk8m=ba0AV}Y#Db4&+bo_e_^j}B`scM zs@E2VkTQOyP_|^tY6PLKOznRgzAIDv-!|E0vl&?p=gzQRq)qmW^)Ny9jJ4LaXRKc# zF*^|dm8%~;>n4oarw(X6?$TM0Qipx&e9SXxXcY(~q}o^sU|VPfVJc!O)HXDG$Tl?S z|5`v=PazKziwRQGrHa3Ieo@e_4G)KUUm;-bByS!9{? diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index db15f7522fe3e9e12a5ae4ad2d5761a686ed0f7f..63100d89d18410d0bf800d0ff426a1aa8f9a60bf 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~3q+2LLs?1quKF literal 17 VcmZQ}=bo_Q-nZT^1~A}%2LLuB1$F=c diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin index 9add4323daeb95f4d5c6e7e321b14713dfa70c21..1612cd2d3a12ca663a88c6a9deeaa769f0145205 100644 GIT binary patch delta 189 zcmX>-k8%0}#tkMCjMke?B?1^H&y}1YaOq34ZKrL5HUk*=_fJ-pQsfs)jCm MJm0rta=mv10PS-;c>n+a delta 85 zcmbQffbsM^#tkMCjHa7SB?1@)c6^<&TEbVdhye`zH7D0f&X}w#B{?}xN`LZFsf5Y0 o(h{3}rDrfs{wq^Cxlh)Lk#nQs5Alr#0>YaeJ-)F`w)7PN0GX5 { final storage = AppStorage.storage; final ApiService _api = ApiService(); + int _selectedIndex = 0; String? accessToken; @@ -36,7 +40,6 @@ class _HomeScreenState extends State { } } - @override Widget build(BuildContext context) { return Scaffold( @@ -155,7 +158,7 @@ class _HomeScreenState extends State { ], ), ), - bottomNavigationBar: const BottomNav(selectedIndex: 0), // ✅ 통일된 하단바 + bottomNavigationBar: const BottomNav(selectedIndex: 0), ); } @@ -210,4 +213,4 @@ class _HomeScreenState extends State { ), ); } -} +} \ No newline at end of file diff --git a/lib/features/video/screens/video_list_screen.dart b/lib/features/video/screens/video_list_screen.dart index 27b8dde..91edfc7 100644 --- a/lib/features/video/screens/video_list_screen.dart +++ b/lib/features/video/screens/video_list_screen.dart @@ -50,7 +50,21 @@ class _VideoListScreenState extends State { return const Center(child: CircularProgressIndicator()); } if (snapshot.hasError) { - return const Center(child: Text('영상 데이터를 불러오지 못했습니다.')); + print('❌ Error: ${snapshot.error}'); + print('❌ StackTrace: ${snapshot.stackTrace}'); + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text('영상 데이터를 불러오지 못했습니다.'), + const SizedBox(height: 10), + Text( + '${snapshot.error}', + style: const TextStyle(fontSize: 12, color: Colors.red), + ), + ], + ), + ); } if (!snapshot.hasData || snapshot.data!.isEmpty) { return const Center(child: Text('등록된 영상이 없습니다.')); diff --git a/lib/features/video/screens/video_player_screen.dart b/lib/features/video/screens/video_player_screen.dart index d32fc60..bff076d 100644 --- a/lib/features/video/screens/video_player_screen.dart +++ b/lib/features/video/screens/video_player_screen.dart @@ -18,77 +18,103 @@ class VideoPlayerScreen extends StatefulWidget { } class _VideoPlayerScreenState extends State { - late YoutubePlayerController _controller; final VideoService _videoService = VideoService(); - PreventionVideo? _video; + late Future _videoFuture; @override void initState() { super.initState(); - _loadVideo(); - } - - Future _loadVideo() async { - try { - final video = await _videoService.fetchVideoDetail(widget.videoId); - setState(() => _video = video); - - // ✅ 조회수 증가 API 호출 - await _videoService.increaseViewCount(widget.videoId); - - _controller = YoutubePlayerController( - initialVideoId: video.youtubeId, - flags: const YoutubePlayerFlags( - autoPlay: true, - mute: false, - ), - ); - } catch (e) { - debugPrint('🚨 영상 로드 실패: $e'); - } - } - - @override - void dispose() { - _controller.pause(); - _controller.dispose(); - super.dispose(); + _videoFuture = _videoService.fetchVideoDetail(widget.videoId); } @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.black, + backgroundColor: const Color(0xFFF9F5EC), appBar: AppBar( title: Text( widget.title, - style: const TextStyle(fontWeight: FontWeight.bold), + style: const TextStyle( + color: Colors.black, + fontWeight: FontWeight.bold, + ), ), - backgroundColor: Colors.black, + backgroundColor: Colors.white, + foregroundColor: Colors.black, + elevation: 0.5, ), - body: _video == null - ? const Center(child: CircularProgressIndicator(color: Colors.white)) - : Column( - children: [ - YoutubePlayer( - controller: _controller, - showVideoProgressIndicator: true, - progressIndicatorColor: Colors.red, - progressColors: const ProgressBarColors( - playedColor: Colors.redAccent, - handleColor: Colors.white, + body: FutureBuilder( + future: _videoFuture, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + if (snapshot.hasError) { + return Center( + child: Text('영상을 불러올 수 없습니다.\n${snapshot.error}'), + ); + } + + if (!snapshot.hasData) { + return const Center(child: Text('영상 정보가 없습니다.')); + } + + final video = snapshot.data!; + + // ✅ 여기서 controller 생성 + final controller = YoutubePlayerController( + initialVideoId: video.youtubeId, + flags: const YoutubePlayerFlags( + autoPlay: true, + mute: false, ), - ), - const SizedBox(height: 10), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( - _video!.description, - style: const TextStyle(color: Colors.white, fontSize: 14), + ); + + return SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // ✅ YouTube 플레이어 + YoutubePlayer( + controller: controller, + showVideoProgressIndicator: true, + ), + + // 영상 정보 + Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + video.title, + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 8), + Text( + '조회수 ${video.viewCount} • ${video.duration}', + style: const TextStyle( + color: Colors.grey, + fontSize: 14, + ), + ), + const SizedBox(height: 16), + Text( + video.description, + style: const TextStyle(fontSize: 15), + ), + ], + ), + ), + ], ), - ), - ], + ); + }, ), ); } -} +} \ No newline at end of file diff --git a/lib/features/video/services/video_service.dart b/lib/features/video/services/video_service.dart index 06003ce..e701e8a 100644 --- a/lib/features/video/services/video_service.dart +++ b/lib/features/video/services/video_service.dart @@ -16,14 +16,40 @@ class VideoService { } } - /// ✅ [2] 카테고리별 영상 목록 + /// ✅ [2] 카테고리별 영상 목록 (수정됨) Future> fetchVideosByCategory(int categoryId) async { - final response = await http.get(Uri.parse('$baseUrl/categories/$categoryId')); - if (response.statusCode == 200) { - final List jsonList = jsonDecode(utf8.decode(response.bodyBytes)); - return jsonList.map((v) => PreventionVideo.fromJson(v)).toList(); - } else { - throw Exception('카테고리별 영상 조회 실패 (${response.statusCode})'); + try { + final response = await http.get(Uri.parse('$baseUrl/categories/$categoryId')); + + print('📡 Response Status: ${response.statusCode}'); + print('📡 Response Body: ${utf8.decode(response.bodyBytes)}'); + + if (response.statusCode == 200) { + final decodedBody = jsonDecode(utf8.decode(response.bodyBytes)); + + // 🔍 응답 타입 확인 + print('🔍 Response Type: ${decodedBody.runtimeType}'); + + // ✅ Map인 경우 'videos' 키에서 배열 추출 + if (decodedBody is Map) { + // 서버가 { "videos": [...] } 형태로 반환하는 경우 + final List jsonList = decodedBody['videos'] as List; + return jsonList.map((v) => PreventionVideo.fromJson(v)).toList(); + } + // ✅ List인 경우 그대로 파싱 + else if (decodedBody is List) { + return decodedBody.map((v) => PreventionVideo.fromJson(v)).toList(); + } + else { + throw Exception('예상치 못한 응답 형식: ${decodedBody.runtimeType}'); + } + } else { + throw Exception('카테고리별 영상 조회 실패 (${response.statusCode})'); + } + } catch (e, stackTrace) { + print('❌ Error in fetchVideosByCategory: $e'); + print('❌ StackTrace: $stackTrace'); + rethrow; } } @@ -45,4 +71,4 @@ class VideoService { throw Exception('조회수 증가 실패 (${response.statusCode})'); } } -} +} \ No newline at end of file diff --git a/local.properties b/local.properties index 8b1724b..58f8aaa 100644 --- a/local.properties +++ b/local.properties @@ -4,6 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Sat Nov 08 11:13:53 KST 2025 +#Thu Nov 06 13:50:29 KST 2025 flutter.sdk=C\:\\flutter -sdk.dir=C\:\\Users\\kimji\\AppData\\Local\\Android\\Sdk +sdk.dir=C\:\\Users\\Kim\\AppData\\Local\\Android\\Sdk diff --git a/pubspec.lock b/pubspec.lock index 87d31dc..fbca669 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -396,26 +396,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -633,10 +633,10 @@ packages: dependency: transitive description: name: sqflite_android - sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88 + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" url: "https://pub.dev" source: hosted - version: "2.4.2+2" + version: "2.4.1" sqflite_common: dependency: transitive description: @@ -705,10 +705,10 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" typed_data: dependency: transitive description: @@ -793,10 +793,10 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: @@ -846,5 +846,5 @@ packages: source: hosted version: "9.1.3" sdks: - dart: ">=3.9.0 <4.0.0" + dart: ">=3.8.0 <4.0.0" flutter: ">=3.29.0" From cd69014ab90bfe8ec181517ce27b4f2f395249f4 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Thu, 13 Nov 2025 01:19:26 +0900 Subject: [PATCH 25/52] =?UTF-8?q?feat=20:=20=EA=B8=B0=EB=8A=A5=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20503 -> 20605 bytes assets/images/TestProfile.jpg | Bin 0 -> 36798 bytes lib/features/auth/screens/home_screen.dart | 11 +- lib/features/auth/screens/mypage_screen.dart | 793 ++++++++++++++++++ lib/features/auth/services/api_service.dart | 206 +++++ lib/main.dart | 3 +- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 114 ++- pubspec.yaml | 75 +- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 15 files changed, 1140 insertions(+), 73 deletions(-) create mode 100644 assets/images/TestProfile.jpg create mode 100644 lib/features/auth/screens/mypage_screen.dart diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 264b3b4deeeaa1137caaaae493a11f0b090bc987..cd4c374843243efea44a741c306cd9aa2b9ed992 100644 GIT binary patch delta 2414 zcmZ{k3vf(l6vq=2OeLwr#$?@yWIZQVLJ(YC*bUI^acK3I_bH4xooNw>9=Nmel zZ|HE)KG|u$ao`zFBH%@o;C!-C!RKhB8DMEToGX7^a$AFY4G7Zct}s&+@eB< z1RC5IJrZd1XiR1ZM+w7N)H006O@?tOHVg1iB-@Fo5d#wklhG;$Rt_e?y;MLm2NUo^ zA{j)$HHqLogfZw)z%T~Riv=_#k!~2S@@f?F#Z}EzTJ=KJV%n`o?o@(A*cjq*i6H@w z$&`x2uw)uJmPa163y;%OC{3o3Bk_6(l}$z9Qi2rx#T%31pCYfA7}8*6FhE;IDI*LF zsj!p@(4|s;J&>GAX*E_eM5Boz2ai$(b?*|t_K3!&P}9W|d-pAMnCRf(xV6Cd+F@wY z1oaNP+D+qMzNu|j&C8&stebN35GAu8tr&b`TgtaKw?=xqeP@W6X*JF1xodO&lZvd+ zRCz}O9%qp55lI)>1`o+(ywnP|aPS`L3{KvkWt2X{>D2#9 zB`Z=Z6)6b>l$$(UMB7BMQ}N}bMYOTM)JKXUxk@Tit6w<&R@mZnZ|6_9j*WBcQ!UR> zNC%e{TCu=t>^r13v8CX&5U7)r`IJmgF0yp2TbH|RUezBHmY04ZC)bku!x=P)1(&DM zAbGH@BABDtTgZOJh~GU-I$Ow}58C^I48E=I?~CdWl7!ff>`DEm_f-SH%!m;_UT==Y0jOg*DZb}?_5KsS2D@8oPv&7 z6lB3Wi++=tN(Yoy7h2og@6{c@+ZfgTqDMhWuq>1*x!?ltO()AYT&&f~#ac~v8Pmzm zgyQLBm!a5EYwFwSr`B}yx;5kep~Edc-`p4?+v&+pn@xKoDKK!rcfrp}nU5ulNm`$z zwLNUM&Rfq`L^&_|IY`zJ|0ATAV}J4Ee|I;Zo)eM?rIZY=&=^XgvP*c&kyk0;I2l0yJ3aYpB>IPiM5!6CqLv`fwG`AOr z_Z@sb?V~4h7uDn^AN6)AP`}}*_bNxdkHl+d(xtc2*bWXA;=eXs`W;FS`>AYPF11-n zHboq4pNlca9!uk->W0tKnzJF!Fw>e_U)ILYdEK=KvrL(3D*9A{^$cOH0pwd?7j1MYmSIjdV`+$t%~HX-rgS6a@q^(TTP*DZ{HMq{l4qKoT}7 z9zZD~0aO-6P=+W$+M-ef9Tad!p~NoMr9xU;MJs*p-uIgRvGePk@0@$?z2EyXtrojh zi(O6K68p&7>^!*mOqDBs_-G_@NjYs3PbJyv4YLF++Dz2?OdTbHbQ}6Fq5a~6-hRe$9QLtfD251LH9~( z@H13_1bQ%+!95rmbYrAhKw}`~-oXt%?MJM5>b8nbi%@K)>H$QrA~1+T1}|`x!Asb# zCh0GH%-}g982pBzM3P>^Gl{?uUa|BBQ`Sf)&bA0<;DBrfj_^n(X$15Ph9N6i!2Go| z(;=*0OIZa-XYe~32{=3B*;+xHsMVx+Ytqf3i?4pF`oJdN#>Vz*{cCG4+|~)&oqL*A zbX80kpI20R_Gm|9f-K%Av94cNa&LI0Hl%b?{NS%QZ2uLTqNmzZ#Qb2vRekgNds&@d zG-(FSeRji|(qz{i{?M~7;i|!1a`#{$jLLc-mLXCvj(_|~veXIrOcHQPFYa>u$!^g? zAc?%wg2-#a!XP>|Q^?9$t);nLx}ok~S(N{6KD2@7VzpD&j&W~hjgC60Q5k2qm0eIg zG=r3>~IK|Lj`z5Qf(gf)-%baGIy7By9a+x zJ~waSq()PR%UQXsKoVUu%(wj-dz>n(r|cN*o}bhvi}LHR^TEJ2wNqStwp~ojoI|fx zz2EQbOqVJ4&8O)^aDavn6d$Wdj?n3-kxM^pZPmtU@2eg!qFHc+!; zXfe>Yu23$Yecjp%D377EzpP6Zs1;aTCQIR^kpzvNp`2)GgBQg?sB( z>%5BY=IQb_&(Xm4Yk10_oziA*rnFA@Z>F?%ByA3n?&fcjZDYc<)6M#eRZg+DoT49} Te`xz4mA<4!D5;H)x#IB;JBGVk diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index 63100d89d18410d0bf800d0ff426a1aa8f9a60bf..fc1e12f788ff37a30b0edd3817cea8dc7a006bfc 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~3qQ0RT271#|!a literal 17 VcmZQ}=bo_Q-nZT^1~3q+2LLs?1quKF diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin index 1612cd2d3a12ca663a88c6a9deeaa769f0145205..60b249b90744658cb2c3a232a9d8c0730d0a88a7 100644 GIT binary patch delta 118 zcmbQffbs7F#tkMCnszNt?`xi9E`P@W1|BE>LqW?9L&JKdH=+>n0P)SP5(>-$fAj)Q zrc6Ds4k{WwIaXRhfaB9f@k_q^#!x}a&85=8OpFgVD*h1PXka0<+0o+~`(%IbGyv00 BDy{$k delta 56 zcmeynfN}Z)#tkMCg4Qig?`xi9E`P@W1|BCj$4V$LPo63*vH7U9HxuK`jfy|SHyShu KZFcmy#tr~tl@!nb diff --git a/assets/images/TestProfile.jpg b/assets/images/TestProfile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3a58870c33af3eebeaf42f55d6ff1921fd87f65b GIT binary patch literal 36798 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%0DFMh9xm4&WOUc4_`-(4ll_^Q-nqevz=T4I#uK@ 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 OD#ZV?`rqGefBqM=yUnKn literal 0 HcmV?d00001 diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart index da8fcf6..0392355 100644 --- a/lib/features/auth/screens/home_screen.dart +++ b/lib/features/auth/screens/home_screen.dart @@ -4,6 +4,7 @@ import 'chat_screen.dart'; import 'package:guardpayfront/core/services/storage.dart'; import 'package:guardpayfront/features/auth/services/api_service.dart'; import 'package:guardpayfront/features/auth/widgets/bottom_nav.dart'; +import 'package:guardpayfront/features/auth/screens/mypage_screen.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @@ -74,8 +75,14 @@ class _HomeScreenState extends State { Image.asset('assets/images/alert_icon.png', width: 26, height: 26), const SizedBox(width: 12), - Image.asset('assets/images/settings_icon.png', - width: 26, height: 26), + // ✅ 톱니바퀴 아이콘을 GestureDetector로 감싸서 마이페이지로 이동 + GestureDetector( + onTap: () { + Navigator.pushNamed(context, '/mypage'); + }, + child: Image.asset('assets/images/settings_icon.png', + width: 26, height: 26), + ), ], ), ), diff --git a/lib/features/auth/screens/mypage_screen.dart b/lib/features/auth/screens/mypage_screen.dart new file mode 100644 index 0000000..e328281 --- /dev/null +++ b/lib/features/auth/screens/mypage_screen.dart @@ -0,0 +1,793 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; // ✅ rootBundle 사용을 위해 추가 +import 'package:guardpayfront/core/services/storage.dart'; +import 'package:guardpayfront/features/auth/services/api_service.dart'; +import 'package:guardpayfront/features/auth/widgets/bottom_nav.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:path_provider/path_provider.dart'; // ✅ 임시 디렉토리 사용을 위해 추가 +import 'dart:io'; + +class MypageScreen extends StatefulWidget { + const MypageScreen({super.key}); + + @override + State createState() => _MypageScreenState(); +} + +class _MypageScreenState extends State { + final storage = AppStorage.storage; + final ApiService _api = ApiService(); + final _formKey = GlobalKey(); + String? _accessToken; + + final TextEditingController _nicknameController = TextEditingController(); + final TextEditingController _currentPasswordController = TextEditingController(); // ✅ 추가 + final TextEditingController _passwordController = TextEditingController(); + final TextEditingController _passwordConfirmController = TextEditingController(); + + String? profileImageUrl; + File? _selectedImage; + double fontSize = 16.0; + bool isLoading = true; + bool isEditing = false; + bool isUpdating = false; + + @override + void initState() { + super.initState(); + _loadUserInfo(); + } + + // 🔹 사용자 정보 로드 - GET /api/members/profile + Future _loadUserInfo() async { + try { + final token = await storage.read(key: 'accessToken'); + + if (token == null) { + Navigator.pushReplacementNamed(context, '/login'); + return; + } + setState(() { + _accessToken = token; + }); + final response = await _api.get( + '/api/members/profile', + headers: {'Authorization': 'Bearer $token'}, + ); + + print('🔍 응답 데이터: $response'); // 디버깅용 + + if (response != null) { + // ✅ 서버가 MemberInfoResponse를 직접 반환하므로 response 자체를 사용 + setState(() { + _nicknameController.text = response['nickname'] ?? 'OOO'; + String? rawImageUrl = response['profileImageUrl']; // 1. 원본 URL 받기 + + if (rawImageUrl != null) { + // 2. 안드로이드 플랫폼인지 확인 (import 'dart:io'; 필요) + if (Platform.isAndroid) { + // 3. 'localhost'를 '10.0.2.2'로 변경 + profileImageUrl = rawImageUrl.replaceAll('localhost', '10.0.2.2'); + } else { + profileImageUrl = rawImageUrl; // (참고: iOS 시뮬레이터는 localhost로 동작) + } + } else { + profileImageUrl = null; + } + + + isLoading = false; + }); + } else { + setState(() { + _nicknameController.text = "OOO"; + isLoading = false; + }); + } + } catch (e) { + print("❌ 사용자 정보 로드 실패: $e"); + setState(() { + _nicknameController.text = "OOO"; + isLoading = false; + }); + } + } + + Future _pickImage() async { + final ImagePicker picker = ImagePicker(); + + showModalBottomSheet( + context: context, + builder: (context) => SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ListTile( + leading: const Icon(Icons.photo_library), + title: const Text('갤러리에서 선택'), + onTap: () async { + Navigator.pop(context); + final XFile? image = + await picker.pickImage(source: ImageSource.gallery); + if (image != null) { + setState(() { + _selectedImage = File(image.path); + }); + } + }, + ), + ListTile( + leading: const Icon(Icons.camera_alt), + title: const Text('카메라로 촬영'), + onTap: () async { + Navigator.pop(context); + final XFile? image = + await picker.pickImage(source: ImageSource.camera); + if (image != null) { + setState(() { + _selectedImage = File(image.path); + }); + } + }, + ), + // ✅ 테스트용 이미지 선택 옵션 추가 + ListTile( + leading: const Icon(Icons.image, color: Colors.blue), + title: const Text('테스트 이미지 사용'), + onTap: () async { + Navigator.pop(context); + try { + // assets 이미지를 임시 파일로 복사 + final ByteData data = await rootBundle.load('assets/images/TestProfile.jpg'); + final buffer = data.buffer; + final tempDir = await getTemporaryDirectory(); + final tempFile = File('${tempDir.path}/test_profile.jpg'); + await tempFile.writeAsBytes( + buffer.asUint8List(data.offsetInBytes, data.lengthInBytes), + ); + + setState(() { + _selectedImage = tempFile; + }); + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('테스트 이미지가 선택되었습니다.'), + backgroundColor: Colors.blue, + ), + ); + } catch (e) { + print('❌ 테스트 이미지 로드 실패: $e'); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('테스트 이미지 로드 실패: $e'), + backgroundColor: Colors.red, + ), + ); + } + }, + ), + ], + ), + ), + ); + } + + // 🔹 프로필 수정 - PUT /api/members/profile + Future _updateProfile() async { + if (!_formKey.currentState!.validate()) return; + + if (_passwordController.text.isNotEmpty && + _passwordController.text != _passwordConfirmController.text) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('비밀번호가 일치하지 않습니다.')), + ); + return; + } + + setState(() => isUpdating = true); + + try { + final token = await storage.read(key: 'accessToken'); + + if (token == null) { + Navigator.pushReplacementNamed(context, '/login'); + return; + } + + // ✅ 1. 닉네임과 비밀번호 수정 + final Map updateData = { + 'nickname': _nicknameController.text, + }; + + // 비밀번호 변경 시 현재 비밀번호와 새 비밀번호 모두 필요 + if (_passwordController.text.isNotEmpty) { + updateData['currentPassword'] = _currentPasswordController.text; + updateData['password'] = _passwordController.text; + } + + print('🔍 수정 요청 데이터: $updateData'); // 디버깅용 + + final response = await _api.put( + '/api/members/profile', + data: updateData, + headers: {'Authorization': 'Bearer $token'}, + ); + + print('🔍 수정 응답: $response'); // 디버깅용 + + if (response != null) { + // ✅ 2. 이미지가 실제로 선택된 경우에만 업로드 + if (_selectedImage != null && _selectedImage!.existsSync()) { + print('🔍 이미지 업로드 시작: ${_selectedImage!.path}'); // 디버깅용 + + try { + final imageResponse = await _api.uploadImage( + '/api/members/profile/image', + _selectedImage!, + headers: {'Authorization': 'Bearer $token'}, + ); + + print('🔍 이미지 업로드 응답: $imageResponse'); // 디버깅용 + + if (imageResponse == null) { + // 이미지 업로드 실패해도 프로필 수정은 성공했으므로 경고만 표시 + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('프로필은 수정되었지만 이미지 업로드에 실패했습니다.'), + backgroundColor: Colors.orange, + ), + ); + } + } + } catch (e) { + print('❌ 이미지 업로드 예외: $e'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('프로필은 수정되었지만 이미지 업로드에 실패했습니다.'), + backgroundColor: Colors.orange, + ), + ); + } + } + } + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('프로필이 성공적으로 수정되었습니다.'), + backgroundColor: Colors.green, + ), + ); + setState(() { + isEditing = false; + _passwordController.clear(); + _passwordConfirmController.clear(); + _selectedImage = null; + }); + _loadUserInfo(); + } + } else { + throw Exception('프로필 수정에 실패했습니다.'); + } + } catch (e) { + print("❌ 프로필 수정 실패: $e"); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('프로필 수정에 실패했습니다: $e'), + backgroundColor: Colors.red, + ), + ); + } + } finally { + setState(() => isUpdating = false); + } + } + + // 🔹 프로필 이미지 삭제 - DELETE /api/members/profile/image + Future _deleteProfileImage() async { + try { + final token = await storage.read(key: 'accessToken'); + if (token == null) return; + + final success = await _api.delete( + '/api/members/profile/image', + headers: {'Authorization': 'Bearer $token'}, + ); + + if (success) { + setState(() { + profileImageUrl = null; + _selectedImage = null; + }); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('프로필 이미지가 삭제되었습니다.'), + backgroundColor: Colors.green, + ), + ); + } + } catch (e) { + print("❌ 프로필 이미지 삭제 실패: $e"); + } + } + + Future _logout() async { + await storage.deleteAll(); + if (mounted) { + Navigator.pushReplacementNamed(context, '/login'); + } + } + + @override + void dispose() { + _nicknameController.dispose(); + _currentPasswordController.dispose(); + _passwordController.dispose(); + _passwordConfirmController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF9F5EC), + appBar: AppBar( + backgroundColor: const Color(0xFFF9F5EC), + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.black87), + onPressed: () => Navigator.pop(context), + ), + title: const Text( + '마이페이지', + style: TextStyle( + color: Colors.black87, + fontWeight: FontWeight.bold, + ), + ), + centerTitle: true, + ), + body: isLoading + ? const Center(child: CircularProgressIndicator()) + : SingleChildScrollView( + child: Form( + key: _formKey, + child: Column( + children: [ + const SizedBox(height: 20), + + // 등급 헤더 + Container( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: const Align( + alignment: Alignment.center, + child: Text( + '안전송금 새싹', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + + const SizedBox(height: 30), + + // 🔹 프로필 이미지 + Center( + child: GestureDetector( + onTap: isEditing ? _pickImage : null, + onLongPress: isEditing && (profileImageUrl != null || _selectedImage != null) + ? () { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('프로필 이미지 삭제'), + content: const Text('프로필 이미지를 삭제하시겠습니까?'), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text('취소'), + ), + TextButton( + onPressed: () { + Navigator.pop(context); + _deleteProfileImage(); + }, + child: const Text('삭제'), + ), + ], + ), + ); + } + : null, + child: Stack( + children: [ + Container( + width: 120, + height: 120, + decoration: BoxDecoration( + color: Colors.grey[400], + shape: BoxShape.circle, + image: _selectedImage != null + ? DecorationImage( + image: FileImage(_selectedImage!), + fit: BoxFit.cover, + ) + : profileImageUrl != null && _accessToken != null // ✅ 토큰 null 체크 + ? DecorationImage( + // ⬇️ 여기를 수정합니다 ⬇️ + image: NetworkImage( + profileImageUrl!, + headers: { + 'Authorization': 'Bearer $_accessToken' + }, + ), + // ⬆️ 여기까지 수정 ⬆️ + fit: BoxFit.cover, + ) + : null, // 토큰이나 URL이 없으면 null + ), + child: _selectedImage == null && + profileImageUrl == null + ? const Icon( + Icons.person, + size: 60, + color: Colors.white, + ) + : null, + ), + if (isEditing) + Positioned( + bottom: 0, + right: 0, + child: Container( + padding: const EdgeInsets.all(8), + decoration: const BoxDecoration( + color: Colors.blue, + shape: BoxShape.circle, + ), + child: const Icon( + Icons.camera_alt, + color: Colors.white, + size: 20, + ), + ), + ), + ], + ), + ), + ), + + const SizedBox(height: 30), + + // 🔹 설정 섹션 + Container( + padding: const EdgeInsets.symmetric(horizontal: 24), + alignment: Alignment.centerLeft, + child: const Text( + '설정', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + + const SizedBox(height: 15), + + // ✅ 설정 전체를 흰색 박스로 감싸기 + Container( + margin: const EdgeInsets.symmetric(horizontal: 24), + padding: const EdgeInsets.symmetric( + horizontal: 20, vertical: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 닉네임 + if (isEditing) + TextFormField( + controller: _nicknameController, + decoration: InputDecoration( + hintText: '닉네임을 입력하세요', + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + ), + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return '닉네임을 입력해주세요'; + } + if (value.length < 2) { + return '닉네임은 2자 이상이어야 합니다'; + } + return null; + }, + ) + else + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + '닉네임', + style: TextStyle( + fontSize: 14, color: Colors.black87), + ), + Text( + _nicknameController.text, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.black87, + ), + ), + ], + ), + + const SizedBox(height: 20), + + // 비밀번호 + if (isEditing) + Column( + children: [ + TextFormField( + controller: _currentPasswordController, + obscureText: true, + decoration: InputDecoration( + hintText: '현재 비밀번호', + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + ), + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + ), + validator: (value) { + if (_passwordController.text.isNotEmpty && + (value == null || value.isEmpty)) { + return '비밀번호를 변경하려면 현재 비밀번호를 입력해주세요'; + } + return null; + }, + ), + const SizedBox(height: 12), + TextFormField( + controller: _passwordController, + obscureText: true, + decoration: InputDecoration( + hintText: '새 비밀번호 (변경 시에만 입력)', + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + ), + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + ), + validator: (value) { + if (value != null && + value.isNotEmpty && + value.length < 8) { + return '비밀번호는 8자 이상이어야 합니다'; + } + return null; + }, + ), + const SizedBox(height: 12), + TextFormField( + controller: _passwordConfirmController, + obscureText: true, + decoration: InputDecoration( + hintText: '새 비밀번호 확인', + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + ), + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + ), + validator: (value) { + if (_passwordController.text.isNotEmpty && + value != _passwordController.text) { + return '비밀번호가 일치하지 않습니다'; + } + return null; + }, + ), + ], + ) + else + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Text( + '비밀번호', + style: TextStyle( + fontSize: 14, color: Colors.black87), + ), + Text( + '••••••••', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.black87, + ), + ), + ], + ), + + const SizedBox(height: 20), + + // 포인트 내역 & 쿠폰함 + _buildMenuButton('포인트 내역', () { + // Navigator.pushNamed(context, '/point-history'); + }), + const SizedBox(height: 12), + _buildMenuButton('내 쿠폰함', () { + // Navigator.pushNamed(context, '/coupon-list'); + }), + ], + ), + ), + + const SizedBox(height: 40), + + // 🔹 수정/저장/취소 버튼 + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: isEditing + ? Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + // 취소 버튼 + Expanded( + child: OutlinedButton( + onPressed: () { + setState(() { + isEditing = false; + _passwordController.clear(); + _passwordConfirmController.clear(); + _selectedImage = null; + }); + _loadUserInfo(); + }, + style: OutlinedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 16), + side: const BorderSide(color: Colors.grey), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + child: const Text( + '취소', + style: TextStyle( + color: Colors.grey, + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ), + ), + ), + const SizedBox(width: 12), + // 저장 버튼 + Expanded( + child: ElevatedButton( + onPressed: isUpdating ? null : _updateProfile, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.green, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + child: isUpdating + ? const SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 2, + ), + ) + : const Text( + '저장', + style: TextStyle( + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ), + ), + ), + ], + ) + : SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: () { + setState(() { + isEditing = true; + }); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.green, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + child: const Text( + '수정', + style: TextStyle( + color: Colors.white, + fontSize: 16, + fontWeight: FontWeight.w600, + ), + ), + ), + ), + ), + + const SizedBox(height: 30), + ], + ), + ), + ), + bottomNavigationBar: const BottomNav(selectedIndex: 4), + ); + } + + Widget _buildMenuButton(String title, VoidCallback onTap) { + return InkWell( + onTap: onTap, + child: Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.grey[300]!), + ), + child: Text( + title, + style: const TextStyle( + fontSize: 15, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/auth/services/api_service.dart b/lib/features/auth/services/api_service.dart index 7c541a7..f1979d1 100644 --- a/lib/features/auth/services/api_service.dart +++ b/lib/features/auth/services/api_service.dart @@ -1,6 +1,8 @@ // ApiService.dart import 'dart:convert'; +import 'dart:io'; // ✅ File 타입 사용을 위해 추가 import 'package:http/http.dart' as http; +import 'package:http_parser/http_parser.dart' as http_parser; // ✅ MediaType 사용을 위해 추가 import 'package:guardpayfront/core/services/storage.dart'; import 'auth_service.dart'; import 'dart:developer'; // 👈 print 대신 log를 사용하기 위해 추가 (권장) @@ -55,6 +57,210 @@ class ApiService { return res; // response 객체 자체를 반환 (bodyBytes를 포함) } + // ✅ 공통 HTTP 요청 메서드 - GET + Future?> get( + String endpoint, { + Map? headers, + }) async { + try { + final uri = Uri.parse('$_baseUrl$endpoint'); + log('>> [GET] $uri'); + + final response = await http.get( + uri, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + ...?headers, + }, + ); + + final responseBody = utf8.decode(response.bodyBytes); + log('>> [GET:res] status=${response.statusCode}'); + log('>> [GET:res] body=$responseBody'); + + if (response.statusCode == 200) { + return jsonDecode(responseBody) as Map; + } else { + log('>> [GET:error] ${response.statusCode}'); + return null; + } + } catch (e) { + log('>> [GET:exception] $e'); + return null; + } + } + + // ✅ 공통 HTTP 요청 메서드 - PUT + Future?> put( + String endpoint, { + Map? data, + Map? headers, + }) async { + try { + final uri = Uri.parse('$_baseUrl$endpoint'); + final body = data != null ? jsonEncode(data) : null; + + log('>> [PUT] $uri'); + log('>> [PUT:body] $body'); + + final response = await http.put( + uri, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + ...?headers, + }, + body: body, + ); + + final responseBody = utf8.decode(response.bodyBytes); + log('>> [PUT:res] status=${response.statusCode}'); + log('>> [PUT:res] body=$responseBody'); + + if (response.statusCode == 200) { + return jsonDecode(responseBody) as Map; + } else { + log('>> [PUT:error] ${response.statusCode}'); + return null; + } + } catch (e) { + log('>> [PUT:exception] $e'); + return null; + } + } + + // ✅ 공통 HTTP 요청 메서드 - PATCH + Future?> patch( + String endpoint, { + Map? data, + Map? headers, + }) async { + try { + final uri = Uri.parse('$_baseUrl$endpoint'); + final body = data != null ? jsonEncode(data) : null; + + log('>> [PATCH] $uri'); + log('>> [PATCH:body] $body'); + + final response = await http.patch( + uri, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + ...?headers, + }, + body: body, + ); + + final responseBody = utf8.decode(response.bodyBytes); + log('>> [PATCH:res] status=${response.statusCode}'); + log('>> [PATCH:res] body=$responseBody'); + + if (response.statusCode == 200) { + return jsonDecode(responseBody) as Map; + } else { + log('>> [PATCH:error] ${response.statusCode}'); + return null; + } + } catch (e) { + log('>> [PATCH:exception] $e'); + return null; + } + } + + // ✅ Multipart 이미지 업로드 메서드 (MIME 타입 명시) + Future?> uploadImage( + String endpoint, + File imageFile, { + Map? headers, + }) async { + try { + final uri = Uri.parse('$_baseUrl$endpoint'); + log('>> [MULTIPART] $uri'); + + var request = http.MultipartRequest('PUT', uri); + + // 헤더 추가 + if (headers != null) { + request.headers.addAll(headers); + } + + // ✅ 파일 확장자에 따라 MIME 타입 결정 + String mimeType = 'image/jpeg'; // 기본값 + String fileName = imageFile.path.split('/').last.toLowerCase(); + + if (fileName.endsWith('.png')) { + mimeType = 'image/png'; + } else if (fileName.endsWith('.jpg') || fileName.endsWith('.jpeg')) { + mimeType = 'image/jpeg'; + } else if (fileName.endsWith('.gif')) { + mimeType = 'image/gif'; + } else if (fileName.endsWith('.webp')) { + mimeType = 'image/webp'; + } + + log('>> [MULTIPART:mimeType] $mimeType'); + + // ✅ 이미지 파일 추가 (MIME 타입 명시) + var multipartFile = http.MultipartFile.fromBytes( + 'profileImage', + await imageFile.readAsBytes(), + filename: 'profile.${fileName.split('.').last}', + contentType: http_parser.MediaType.parse(mimeType), + ); + request.files.add(multipartFile); + + log('>> [MULTIPART:file] ${imageFile.path}'); + log('>> [MULTIPART:contentType] ${multipartFile.contentType}'); + + // 요청 전송 + var streamedResponse = await request.send(); + var response = await http.Response.fromStream(streamedResponse); + + final responseBody = utf8.decode(response.bodyBytes); + log('>> [MULTIPART:res] status=${response.statusCode}'); + log('>> [MULTIPART:res] body=$responseBody'); + + if (response.statusCode == 200) { + return jsonDecode(responseBody) as Map; + } else { + log('>> [MULTIPART:error] ${response.statusCode}'); + return null; + } + } catch (e) { + log('>> [MULTIPART:exception] $e'); + return null; + } + } + + // ✅ DELETE 메서드 + Future delete( + String endpoint, { + Map? headers, + }) async { + try { + final uri = Uri.parse('$_baseUrl$endpoint'); + log('>> [DELETE] $uri'); + + final response = await http.delete( + uri, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + ...?headers, + }, + ); + + log('>> [DELETE:res] status=${response.statusCode}'); + + return response.statusCode == 204 || response.statusCode == 200; + } catch (e) { + log('>> [DELETE:exception] $e'); + return false; + } + } + Future sendChatMessage(String message) async { log('>>> [API] enter sendChatMessage: "$message"'); diff --git a/lib/main.dart b/lib/main.dart index a4f3b76..8c36b1c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -10,7 +10,7 @@ import 'features/auth/screens/login_screen.dart'; import 'features/auth/screens/signup_screen.dart'; import 'features/auth/screens/reset_password_screen.dart'; import 'features/auth/screens/home_screen.dart'; - +import 'features/auth/screens/mypage_screen.dart'; // ✅ 영상 관련 import 추가 import 'package:guardpayfront/features/video/screens/video_category_screen.dart'; import 'package:guardpayfront/features/video/screens/video_list_screen.dart'; @@ -86,6 +86,7 @@ class MyApp extends StatelessWidget { '/signup': (context) => const SignupScreen(), '/reset': (context) => const ResetPasswordScreen(), '/home': (context) => const HomeScreen(), + '/mypage': (context) => const MypageScreen(), // ✅ 예방 영상 관련 라우트 (오류 수정 완료) '/video': (context) => VideoCategoryScreen(), '/videoList': (context) { diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 8be520b..1d8dcf9 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -7,6 +7,7 @@ #include "generated_plugin_registrant.h" #include +#include #include #include #include @@ -15,6 +16,9 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) desktop_webview_window_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopWebviewWindowPlugin"); desktop_webview_window_plugin_register_with_registrar(desktop_webview_window_registrar); + g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); + file_selector_plugin_register_with_registrar(file_selector_linux_registrar); g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 0245e78..29b443b 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST desktop_webview_window + file_selector_linux flutter_secure_storage_linux url_launcher_linux window_to_front diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 33e77f9..3df4e30 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,6 +6,7 @@ import FlutterMacOS import Foundation import desktop_webview_window +import file_selector_macos import flutter_inappwebview_macos import flutter_secure_storage_macos import flutter_web_auth_2 @@ -17,6 +18,7 @@ import window_to_front func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin")) + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) FlutterWebAuth2Plugin.register(with: registry.registrar(forPlugin: "FlutterWebAuth2Plugin")) diff --git a/pubspec.lock b/pubspec.lock index fbca669..740a750 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -89,6 +89,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.2" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "942a4791cd385a68ccb3b32c71c427aba508a1bb949b86dff2adbe4049f16239" + url: "https://pub.dev" + source: hosted + version: "0.3.5" crypto: dependency: transitive description: @@ -161,6 +169,38 @@ packages: url: "https://pub.dev" source: hosted version: "7.0.1" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" + url: "https://pub.dev" + source: hosted + version: "0.9.3+2" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "19124ff4a3d8864fdc62072b6a2ef6c222d55a3404fe14893a3c02744907b60c" + url: "https://pub.dev" + source: hosted + version: "0.9.4+4" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85" + url: "https://pub.dev" + source: hosted + version: "2.7.0" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" + url: "https://pub.dev" + source: hosted + version: "0.9.3+4" fixnum: dependency: transitive description: @@ -262,6 +302,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.2" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: c2fe1001710127dfa7da89977a08d591398370d099aacdaa6d44da7eb14b8476 + url: "https://pub.dev" + source: hosted + version: "2.0.31" flutter_secure_storage: dependency: "direct main" description: @@ -352,6 +400,70 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: "784210112be18ea55f69d7076e2c656a4e24949fa9e76429fe53af0c0f4fa320" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: "28f3987ca0ec702d346eae1d90eda59603a2101b52f1e234ded62cff1d5cfa6e" + url: "https://pub.dev" + source: hosted + version: "0.8.13+1" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "40c2a6a0da15556dc0f8e38a3246064a971a9f512386c3339b89f76db87269b6" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: eb06fe30bab4c4497bad449b66448f50edcc695f1c59408e78aa3a8059eb8f0e + url: "https://pub.dev" + source: hosted + version: "0.8.13" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: d58cd9d67793d52beefd6585b12050af0a7663c0c2a6ece0fb110a35d6955e04 + url: "https://pub.dev" + source: hosted + version: "0.2.2" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" + url: "https://pub.dev" + source: hosted + version: "2.11.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae + url: "https://pub.dev" + source: hosted + version: "0.2.2" js: dependency: transitive description: @@ -473,7 +585,7 @@ packages: source: hosted version: "1.9.1" path_provider: - dependency: transitive + dependency: "direct main" description: name: path_provider sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" diff --git a/pubspec.yaml b/pubspec.yaml index b2c9d2d..032bb51 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,32 +1,12 @@ name: guardpayfront 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 +publish_to: 'none' -# 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: '>=3.4.3 <4.0.0' + sdk: '^3.4.3' -# 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 @@ -43,60 +23,17 @@ dependencies: cached_network_image: ^3.3.1 youtube_player_flutter: ^9.1.3 flutter_inappwebview: ^6.0.0-beta.26 - - + image_picker: ^1.0.4 + path_provider: ^2.1.1 dev_dependencies: flutter_test: sdk: flutter - - # 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: ^3.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/images/ - - .env - # - assets/icons/ - # - images/a_dot_ham.jpeg - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/to/resolution-aware-images - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/to/asset-from-package - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/to/font-from-package + - .env \ No newline at end of file diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index f93749f..049d850 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,6 +7,7 @@ #include "generated_plugin_registrant.h" #include +#include #include #include #include @@ -15,6 +16,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { DesktopWebviewWindowPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("DesktopWebviewWindowPlugin")); + FileSelectorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FileSelectorWindows")); FlutterInappwebviewWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterInappwebviewWindowsPluginCApi")); FlutterSecureStorageWindowsPluginRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index d342571..f4f7a1a 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST desktop_webview_window + file_selector_windows flutter_inappwebview_windows flutter_secure_storage_windows url_launcher_windows From 71e44d9ba34af4f02ac47d6761fe02d8b48a3a4d Mon Sep 17 00:00:00 2001 From: ch0412 Date: Thu, 13 Nov 2025 11:10:50 +0900 Subject: [PATCH 26/52] saving --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20605 -> 20537 bytes .../assessment/models/quiz_model.dart | 57 +++ .../assessment/screens/assessment_screen.dart | 362 ++++++++++++++++++ .../services/assessment_service.dart | 120 ++++++ .../assessment/widgets/result_dialog.dart | 151 ++++++++ lib/features/auth/screens/home_screen.dart | 2 +- lib/main.dart | 3 + local.properties | 4 +- pubspec.yaml | 14 +- 11 files changed, 704 insertions(+), 9 deletions(-) create mode 100644 lib/features/assessment/models/quiz_model.dart create mode 100644 lib/features/assessment/screens/assessment_screen.dart create mode 100644 lib/features/assessment/services/assessment_service.dart create mode 100644 lib/features/assessment/widgets/result_dialog.dart diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index cd4c374843243efea44a741c306cd9aa2b9ed992..783f0ad57cd91dc7c76ca5b5bb4be7a40a4486a8 100644 GIT binary patch delta 2706 zcmaJ>X-rgS6h*`pr)YNR;^l#3Pwa^7#2Z5c9b2*U13DPYEUS_<5FyB zYo%IgaS4q3My+)vNKxF2#F$i#ibib-^|l9- z0#udFe>Cl|p^x2j7z)(rSgf{_k~>iuFuIRSe~l{w?S@65z3`dMYz-0x+7Ad+hw}m* z#h(J5z{o)EIE@&A8c`@U`5U~9{GG$bIo@_T(JfXC z4zf1Dxi{ z&WxZ!6Y7y+gvsu_IhfJ##9C| z$Yqd^omU?#)#^$Tx7D7_Vm>5C|X-H?V2wyQsMI(bGbSq%2fr=B6%peZi z7{ua&lKEQ!qe7`T9t#*Gpj^o`D4Dh|wNQo0tM1B%M;JBaAd*2kN*HA01cOYx%-5n{ zI5lLzHJlom>|yE~5ttb!_%z%uwUFv7@SG3*PqI2B2{ zi*bXq`N);Bx+uyj4d`O( zbBvA_nRo^pQNf@Dqt+8uf&~mVqI|s;(__d}B<9Bu9f{2h*5VX{t#}cm)f8zQHv~9t zE=&w;`cyT-rqafy*Up@1s~Ngjt!CA_hKQDZ?ylRv*?si;=Ar^Y))Q&&2>$L~-x^KA z?hj0zk8kw)k8H@4CrT32yWp;+-7-7lPj*ZEgw_-c1whv&kA$*!#Y7e!J!31ou-|s zt@+H$;ZoVRGkovYdkF5aq$;?ZlITte~(wv-vjzMT8R_H zO5}d&-7AqjTW88H@PY$B3Ur%@@uRY5X%zUQIf3>$4ON>6_$zY$a-HT%=Ev=S^)F4l z6Rw)sx1S+ExJZx{-8zglGurC>FWj8FttGhoZkr(E*y0!)j15#fm9KQMPIgG&@2E0P zxxDwBQbR7BlE_889Jr;Z2UowbF@CsenC~rJ=!!c^C97$6z*wY4ev*9It?`OWYDF9C z7*J74htSi3@0XIgo<=#8QDC58Z!!gQafaU}gCa+@n!dlUHSX0d3Ai^k!zb*u%Q4|( zqO7V3|0u|Pb(Zh;B|n|8`{Cq4e?g8X(h!pH%ar;<#v`jcV-FmgEd7V3dorG;wxrNh z4*H~0Fb>00$?|x`0?``($_qAS=O;G1PurC0|1v`*guG}<4;RjZ$Q~}7hxE$QATL_B z%hTnrUSD|}yU^UY@akfR?LvP9FWYmva^bubTOM+o#;?`0wdh1uvHw5aM=lObapg9P zl_p2r2(oo?-O+fZHLHKsM4dRi#Uhhfut+|y6v!`WIR{ob2;4LE?WC(|*P;$OKDqpS zip>O}*~wOVc}jo1$4NgUrLRu@4o;YG)_lApP?vW)r_W7mY@X<_2(LUu;}>|$c+1@V zJke#V^MjMk4&sRRWT%ARe|zjoqpb`iU*cBSQ{b9TPiO#|w`gJDz+PDgmzX)5gvNBO z=1I$-l;nQ#s_S2bl!niKxI)Y;pxyNF$V^1`@W@QcBQueo0~zFJ4K8GmWs~BC>6w{C z=hE?3a*$2IJ|z%uKrYFtvZy{29$6%ptH@;&y*taXw{+2PJj+MEaMgImW!1z^%BJQ$ zFl1A6HHsPRfqn;N_Q-XbfJJwjwcYN+(#~E!)TMss4ezAO3g;YeyH?LJhcPEd>r}cq aHoiT%cA@6H=2unfC$G4wyDmScan!%ww_I-k delta 2860 zcmaKtdsI|)5XS)_PXY<-8p}n6Re=;2L`4H1fDcd}yYdzm76VBXl!qml(t=Gr!9pon!YLc0co*neWW}e)qRrIB0g^ zpxOT98P=711ALrJ@G*Y?;aUki%CfV-RoFa3!RTTy{lmx=JZF;E72fG3=%us0)YD7D zgDJxe)V);7=q+gJrS4wRFIHfO!>L2-3hXc|ggSJCRUsbcd72ToU{EMR2dF|hun3j% ztL~O;)!mw372MGoP>7(lhK5iNt2~X?iiD*~Xje)$gh}`)?HgbpCWLEkU?u?v%LweD zj$i<^5lF#SiNO+>N?-@?D^c5)wBzL1^eH8Z4}xnHHV`aTm^c_F5ja66!6?{C;0ae$ zDCI#?cJsh%xdfbNp_Br~&q9SUFrQ#FY$fo5O9Ug~C4oD5g=6ptNFf*k8wuoao?s|E zB^UjmeWCgkT!v6HJAAf`bWRjU+Ncpp7^5WCVk40SBkam;pb=V1Xd8jzyRPegpxKP2dlfg&Z7@ zMO{C*N~>Xz$*;<1GFx{nj({#CMKp^vYoFT0(k-_+tDbqkt<3oI(OGS^*)~3 z&YTC(Iq%_W&l}s~@5k0mo7C93HIO-*;AFaoIWN%!0ZCl2ZlaA>)2Gstr|YM^EPcJp zoJH-U9T=qGzdgqAAHwyQ3x77>B?c|fCuI%Xy(#l?WvZ{5WgLX=6x2N|=*n!={jGHa zjy*`uDEfK*(TZ{w6^O0*<&|>9kYD{29kg-|MMAZLRJ??+1 zuMw*Yz&X3w>sktOYArIGH@$fBt=S4DAH(kt|CqajO5-ZD7cX{If?dg;m_EvBHNUg# zmz&3?+YGH@X*t+cs&C~|y=K^``k2=2Gn`idb7rD5IWAXcVO*cSa>>p=XRIptoH@$` zS-78ud!d7G=HOmrfT08-ODwO$@~g-FE=>wB_&ocqYp7Lcu_F^H5Gn*W)IFTuPhKf2 zzxPE&eb>jEm@}V7au&Y+^B&wa9vc~RUy-rie{Q^A#L)*VV*~bNpNu`B;e0(|?DJy( z>*bDHZyR$pjr{*Qe215kw$)t7ULk?y$r549J`{Tf)M+D~Jlut=f4z8_(h&4VmaW-W zKm68F#&njTGpDhk?CC$}BdRf!!sU*=qoGW|=j9X%R*QqWioE%d_XiY4`6)H&LZ z>v`?;WbI?`s>)@z_ei!gopdacA7mNRcJuISR;??H&Djy+A*G@7@QtLul#TE9+a^DM zwjrSK1*SI7 zwSygW3HFOwp)j#m)RisiE<0%#GS2^6neivj(IyL7R5Z4;hAvD5>`cS$UxkOlt`Qkd z^RZ(Ue6xXra5AFA600%3kygv$(tJ+FTdLuj+3#}9S@-dGvn delta 118 zcmdnFfbs7F#tkMCnszNt?`xi9E`P@W1|BE>LqW?9L&JKdH=+>n0P)SP5(>-$fAj)Q zrc6Ds4k{Wwxl~#~faB9f@k_q^#!x}a&ArmWOpFgVD*h1PXka0<+0o+%`(%G_7Xaz& BD*ylh diff --git a/lib/features/assessment/models/quiz_model.dart b/lib/features/assessment/models/quiz_model.dart new file mode 100644 index 0000000..4f0f10a --- /dev/null +++ b/lib/features/assessment/models/quiz_model.dart @@ -0,0 +1,57 @@ +class Quiz { + final int id; + final String question; + final Map options; + final String answer; // 정답 키 (예: 'B') + final int categoryId; + final String level; // 난이도 (예: 'EASY', 'MEDIUM', 'HARD') + final int point; + final String? userSelectedAnswer; + + Quiz({ + required this.id, + required this.question, + required this.options, + required this.answer, + required this.categoryId, + required this.level, + required this.point, + this.userSelectedAnswer, + }); + + Quiz copyWith({ + String? userSelectedAnswer, + }) { + return Quiz( + id: this.id, + question: this.question, + options: this.options, + answer: this.answer, + categoryId: this.categoryId, + level: this.level, + point: this.point, + userSelectedAnswer: userSelectedAnswer ?? this.userSelectedAnswer, + ); + } + + + + factory Quiz.fromJson(Map json) { + // API의 options는 Map이지만, 값은 String입니다. + final Map rawOptions = json['options'] ?? {}; + final Map parsedOptions = rawOptions.map( + (key, value) => MapEntry(key, value as String), + ); + + return Quiz( + id: json['questionId'] as int? ?? 0, + question: json['questionText'] as String? ?? 'No Question', + options: parsedOptions, + // ⬇ 새 API 명세에 없는 필드들은 기본값으로 채웁니다. + answer: '', + categoryId: 0, + level: 'UNKNOWN', + point: 0, + ); + } +} \ No newline at end of file diff --git a/lib/features/assessment/screens/assessment_screen.dart b/lib/features/assessment/screens/assessment_screen.dart new file mode 100644 index 0000000..616dfc8 --- /dev/null +++ b/lib/features/assessment/screens/assessment_screen.dart @@ -0,0 +1,362 @@ +import 'package:flutter/material.dart'; +import 'package:guardpayfront/features/assessment/models/quiz_model.dart'; +import 'package:guardpayfront/features/assessment/services/assessment_service.dart'; +import 'package:guardpayfront/features/assessment/widgets/result_dialog.dart'; +import 'package:guardpayfront/core/services/storage.dart'; + +// 1. 16진수 색상 코드를 편리하게 사용하기 위한 확장 함수 (클래스 밖으로 이동) +extension ColorExtension on String { + Color toColor() { + var hexColor = replaceAll('#', ''); + if (hexColor.length == 6) { + hexColor = 'FF$hexColor'; + } + + if (hexColor.length == 8) { + return Color(int.parse('0x$hexColor')); + } + return Colors.black; + } +} + +class AssessmentScreen extends StatefulWidget { + static const String routeName = '/assessment-screen'; + + const AssessmentScreen({super.key}); + + @override + State createState() => _AssessmentScreenState(); +} + +class _AssessmentScreenState extends State { + final AssessmentService _service = AssessmentService(); + Future>? _quizzesFuture; + late List _quizzes; + int _currentIndex = 0; + String? _selectedAnswerKey; + + String? _accessToken; + final storage = AppStorage.storage; + + @override + void initState() { + super.initState(); + _loadQuizData(); + } + + // 5. ✅ 새 메서드: 토큰을 읽고 퀴즈 로딩을 시작 + Future _loadQuizData() async { + // 5a. 저장소에서 토큰 읽기 + final token = await storage.read(key: 'accessToken'); + + if (token == null) { + print("🚨 퀴즈 로딩 실패: 저장된 토큰이 없습니다. 로그인 화면으로 이동합니다."); + // 토큰이 없으면 로그인 화면으로 강제 이동 (optional) + if (mounted) { + Navigator.pushReplacementNamed(context, '/login'); + } + return; + } + + // 5b. 토큰과 퀴즈 Future를 설정하고 UI 업데이트 + setState(() { + _accessToken = token; + _quizzesFuture = _service.fetchAssessmentQuizzes(_accessToken!); + }); + } + + void _nextQuestion() { + if (_selectedAnswerKey == null) return; // 답변 선택 안 했으면 이동 불가 + // 1. ✅ 수정: 선택된 인덱스(0, 1, 2, 3)에 1을 더하여 Option ID를 '추정'합니다. + final currentQuiz = _quizzes[_currentIndex]; + + _quizzes[_currentIndex] = currentQuiz.copyWith( + // ✅ 수정: userSelectedAnswer에 선택된 키(예: "1", "2")를 저장 + userSelectedAnswer: _selectedAnswerKey, + ); + + setState(() { + if (_currentIndex < _quizzes.length - 1) { + _currentIndex++; + _selectedAnswerKey = null; + } else { + _submitAssessment(); + } + }); + } + + void _handleAnswerSelection(String key) { + setState(() { + _selectedAnswerKey = key; + }); + } + + void _showResultDialog(BuildContext context, String level) { + showDialog( + context: context, + barrierDismissible: false, + builder: (BuildContext context) { + return ResultDialog( + level: level, + onConfirm: () { + Navigator.of(context).pop(); + Navigator.pushNamed(context, '/home'); + }, + ); + }, + ); + } + +// ======================================================= +// 5. 최종 제출 및 결과 조회 로직 (추가) +// ======================================================= + + Future _submitAssessment() async { +// 1. 제출할 데이터 구조 생성 + final List> submissionData = _quizzes.map((quiz) { + return { + 'quizId': quiz.id, +// userSelectedAnswer가 'A', 'B', 'C', 'D' 형태로 저장되어 있어야 함 + 'userAnswer': quiz.userSelectedAnswer, + }; + }).toList(); + + try { +// 2. AssessmentService를 통해 9번 개별 제출 및 최종 레벨 조회 +// 이 함수는 9번의 API 호출을 수행합니다. + final finalLevel = await _service.submitAssessmentResults( + submissionData, + _accessToken!, + ); + +// 3. 성공 시 결과 팝업 표시 + _showResultDialog(context, finalLevel); + } catch (e) { +// 4. 에러 발생 시 처리 + print('역량 진단 제출 중 오류 발생: $e'); +// 사용자에게 에러 메시지 표시 (예: Snackbar) + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('제출 실패: ${e.toString()}')), + ); + } + } + } + +// ======================================================= + +// 2. 퀴즈 내용 빌드 메서드 (상태 접근 가능) + +// ======================================================= + + Widget _buildQuizContent() { + final currentQuiz = _quizzes[_currentIndex]; + + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ +// 퀴즈 번호 + Padding( + padding: const EdgeInsets.only(top: 7.0, left: 13.0), + child: Text( + 'Quiz ${_currentIndex + 1}.', + style: const TextStyle(fontSize: 27, fontWeight: FontWeight.bold), + ), + ), +// 퀴즈 질문 + Padding( + padding: const EdgeInsets.only(top: 28.0), + child: Text( + currentQuiz.question, + textAlign: TextAlign.justify, + style: const TextStyle( + fontSize: 18, + color: Colors.black87, + height: 1.5, + ), + ), + ), + const SizedBox(height: 30), + +// 옵션 버튼 목록 + + Expanded( + child: ListView( + padding: EdgeInsets.zero, + children: currentQuiz.options.entries.map((entry) { + String key = entry.key; // 예: "1", "2" + String optionText = entry.value; // 예: "수취 은행명" + bool isSelected = _selectedAnswerKey == key; // ✅ 수정 + return GestureDetector( + onTap: () => _handleAnswerSelection(key), + child: Container( + margin: const EdgeInsets.only(bottom: 25.0), + padding: const EdgeInsets.symmetric(vertical: 17.5, horizontal: 22), + decoration: BoxDecoration( + color: isSelected ? Colors.green.shade50 : Colors.white, + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: isSelected ? Colors.green : Colors.grey.shade300, + width: 1.5, + ), + boxShadow: isSelected + ? [ + BoxShadow( + color: Colors.green.withOpacity(0.1), + spreadRadius: 1, + blurRadius: 3, + offset: const Offset(0, 2), + ), + ] : [], + ), + child: Text( + '$key. $optionText', + style: TextStyle( + fontSize: 17, + color: isSelected ? Colors.green.shade800 : Colors.black87, + fontWeight: isSelected ? FontWeight.bold : FontWeight.normal, + ), + ), + ), + ); + }).toList(), + ), + ), + ], + ); + } + +// ======================================================= + +// 3. 하단 버튼 빌드 메서드 (상태 접근 가능) + +// ======================================================= + + Widget _buildBottomButton() { + + return Positioned( + left: 33.0, + right: 33.0, + bottom: 40.0, + child: ElevatedButton( +// 답변 선택 시에만 버튼 활성화 + onPressed: _selectedAnswerKey != null ? _nextQuestion : null, + style: ElevatedButton.styleFrom( + minimumSize: const Size(double.infinity, 53), + backgroundColor: _selectedAnswerKey != null ? Colors.green.shade600 : Colors.green.shade200, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + ), + + child: Text( +// -1 빼면 마지막 제출하기 한 후 이니까 거기서 마지막 점수확인 으로 바꾸기 + _currentIndex == _quizzes.length - 1 ? '제출하기' : '다음 문제로', +//if quizzes.empty == 점수확인하기 + style: const TextStyle(fontSize: 18, color: Colors.white, fontWeight: FontWeight.bold), + ), + ), + ); + } + + + +// ======================================================= + +// 4. 메인 빌드 메서드 + +// ======================================================= + + @override + Widget build(BuildContext context) { + return Scaffold( + body: FutureBuilder>( + future: _quizzesFuture, + builder: (context, snapshot) { + if (_quizzesFuture == null || snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } else if (snapshot.hasError) { + return Center(child: Text('오류 발생: ${snapshot.error}')); + } else if (snapshot.hasData) { + _quizzes = snapshot.data!; + if (_quizzes.isEmpty) { + return const Center(child: Text('퀴즈가 없습니다.')); + } + + return Container( + color: '#F9F5EC'.toColor(), + child: SafeArea( + child: Stack( + children: [ + // 1. 뒤로 가기 버튼 + Positioned( + top: 26.0, + left: 20.0, + child: GestureDetector( + onTap: () => Navigator.of(context).pop(), + child: const Icon(Icons.arrow_back_ios, color: Colors.black), + ), + ), + + // 2. 퀴즈 헤더 + Positioned( + top: 80.0, + left: 0, + right: 0, + child: Center( + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 74, vertical: 20), + decoration: BoxDecoration( + color: Colors.lightGreen.shade200, + borderRadius: BorderRadius.circular(15), + ), + child: const Text( + '금융 역량 진단 퀴즈', + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + ), + + + +// 3. 메인 퀴즈 박스 (Positioned로 위치/크기 지정) + + Positioned( + left: 33.0, + right: 33.0, + top: 180.0, + bottom: 140.0, + child: Container( + padding: const EdgeInsets.all(24.0), // 패딩 조정 + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(15), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 5), + ), + ], + ), + // 퀴즈 내용 메서드 호출 + child: _buildQuizContent(), + ), + ), +// 4. 하단 버튼 메서드 호출 + _buildBottomButton(), + ], + ), + ), + ); + } else { + return const Center(child: Text('퀴즈를 불러오는 중 문제가 발생했습니다.')); + } + }, + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/assessment/services/assessment_service.dart b/lib/features/assessment/services/assessment_service.dart new file mode 100644 index 0000000..965b8e8 --- /dev/null +++ b/lib/features/assessment/services/assessment_service.dart @@ -0,0 +1,120 @@ +import 'package:http/http.dart' as http; +import 'dart:convert'; +import 'package:guardpayfront/features/assessment/models/quiz_model.dart'; + +/** + * 진단(Assessment) 관련 백엔드 API 호출을 담당하는 서비스 클래스 + * - 퀴즈 정보 로드 및 사용자 답변 제출 기능을 포함합니다. + */ +class AssessmentService { + // 백엔드 API의 기본 URL + final String baseUrl = 'http://10.0.2.2:8080/api/v1'; + + // 1. ✅ 수정: 모든 퀴즈를 한 번에 로드하는 함수 + Future> fetchAssessmentQuizzes(String accessToken) async { + // 1-1. 단일 엔드포인트 호출 + final url = Uri.parse('$baseUrl/diagnoses/questions'); + + try { + final response = await http.get( + url, + headers: {'Authorization': 'Bearer $accessToken'}, + ); + + if (response.statusCode == 200) { + final jsonResponse = json.decode(utf8.decode(response.bodyBytes)); + final Map data = jsonResponse['data'] ?? {}; + final List parts = data['parts'] ?? []; + + List allQuizzes = []; + + // 1-2. 중첩된 parts > questions 구조를 순회하며 Quiz 객체 생성 + for (var part in parts) { + final List questions = part['questions'] ?? []; + for (var questionJson in questions) { + allQuizzes.add(Quiz.fromJson(questionJson)); + } + } + + return allQuizzes; + } else if (response.statusCode == 401) { + throw Exception('인증 오류 발생 (401). 유효하지 않은 토큰입니다. 재로그인이 필요합니다.'); + } else { + throw Exception('퀴즈 로딩 실패: ${response.statusCode}'); + } + } catch (e) { + throw Exception('네트워크 오류 또는 데이터 파싱 오류: $e'); + } + } + + + // 2. ✅ 수정: 모든 퀴즈 답변을 한 번에 제출하고, 결과 ID를 받아, 최종 레벨을 조회하는 함수 + Future submitAssessmentResults(List> submissionData, String accessToken) async { + + // 2-1. API가 요구하는 'answers' 리스트 생성 + List> answers = submissionData.map((data) { + return { + 'quizId': data['quizId'] as int, + // API는 'selectedAnswer'를 숫자로 받으므로 String을 int로 변환 + 'selectedAnswer': int.parse(data['userAnswer'] as String), + }; + }).toList(); + + // 2-2. (POST /diagnoses/submit) 답변 일괄 제출 + final int historyId = await _submitAllAnswers(answers, accessToken); + + // 2-3. (GET /diagnoses/history/{id}) 제출 결과(레벨) 조회 + return _fetchFinalResult(historyId, accessToken); + } + + // 2-2. (Helper) 답변 일괄 제출 + Future _submitAllAnswers(List> answers, String accessToken) async { + final url = Uri.parse('$baseUrl/diagnoses/submit'); + + final response = await http.post( + url, + headers: { + 'Authorization': 'Bearer $accessToken', + 'Content-Type': 'application/json' + }, + body: json.encode({ + 'answers': answers, // API 명세에 맞는 요청 본문 + }), + ); + + if (response.statusCode == 201) { // 201 Created + final jsonResponse = json.decode(utf8.decode(response.bodyBytes)); + // 응답에서 historyId 추출 + final int historyId = jsonResponse['data']['historyId'] as int? ?? 0; + if (historyId == 0) { + throw Exception('응답에서 historyId를 찾을 수 없습니다.'); + } + return historyId; + } else { + throw Exception('퀴즈 제출 실패: ${response.statusCode}'); + } + } + + // 2-3. (Helper) 최종 진단 결과(레벨) 조회 + Future _fetchFinalResult(int historyId, String accessToken) async { + final url = Uri.parse('$baseUrl/diagnoses/history/$historyId'); + + final response = await http.get( + url, + headers: {'Authorization': 'Bearer $accessToken'}, + ); + + if (response.statusCode == 200 || response.statusCode == 201) { + final jsonResponse = json.decode(utf8.decode(response.bodyBytes)); + print('✅ 최종 레벨 서버 응답: $jsonResponse'); // 로그 확인 + + // ✅ 수정: 'finalGrade' 키에서 레벨 문자열 추출 + final String finalGrade = jsonResponse['data']['finalGrade'] as String? ?? 'UNKNOWN'; + print('✅ 파싱된 최종 레벨: $finalGrade'); + + return finalGrade; + } else { + throw Exception('최종 레벨 조회 실패: ${response.statusCode}'); + } + } +} \ No newline at end of file diff --git a/lib/features/assessment/widgets/result_dialog.dart b/lib/features/assessment/widgets/result_dialog.dart new file mode 100644 index 0000000..cbc0e7d --- /dev/null +++ b/lib/features/assessment/widgets/result_dialog.dart @@ -0,0 +1,151 @@ +import 'package:flutter/material.dart'; + +// 레벨 정보 구조체 (변경 없음) +class LevelData { + final String title; + final List stars; // [첫번째 별 채움 여부, 두번째 별 채움 여부, 세번째 별 채움 여부] + final Color titleColor; + + LevelData({ + required this.title, + required this.stars, + required this.titleColor, + }); +} + +class ResultDialog extends StatelessWidget { + final String level; // High, Middle, Low 중 하나 + final VoidCallback onConfirm; + + const ResultDialog({ + super.key, + required this.level, + required this.onConfirm, + }); + + // 레벨에 따른 데이터 반환 (변경 없음) + LevelData _getLevelData() { + switch (level) { + case '안전 송금 마스터': + return LevelData( + title: '안전 송금 마스터', + stars: [true, true, true], + titleColor: Colors.black, + ); + case '금융 방패단': + return LevelData( + title: '금융 방패단', + stars: [true, false, true], + titleColor: Colors.black, + ); + case '초보 금융가': + return LevelData( + title: '초보 금융가', + stars: [false, false, true], + titleColor: Colors.black, + ); + default: + return LevelData( + title: '주의 필요', + stars: [false, false, false], + titleColor: Colors.grey, + ); + } + } + + // 별 아이콘 빌드 메서드 (변경 없음) + Widget _buildStar(bool isFilled, double size) { + return Icon( + isFilled ? Icons.star : Icons.star_border, + color: isFilled ? Colors.amber : Colors.grey.shade400, + size: size, + ); + } + + @override + Widget build(BuildContext context) { + final data = _getLevelData(); + + return AlertDialog( + // AlertDialog 자체의 모양과 그림자(Elevation)를 조정하여 겹침 문제 완화 + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), // 둥근 모양을 더 크게 + elevation: 0, + contentPadding: EdgeInsets.zero, + + content: Container( // ✅ content 속성의 값 시작 + width: MediaQuery.of(context).size.width * 0.73, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + ), + child: SizedBox( + height: 220.0, // ✅ 팝업 내용의 고정된 높이 (이 값을 변경해야 팝업 높이 고정) + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // 1. 별 아이콘 영역 + const SizedBox(height: 20), // ✅ 상단 여백 (이 값을 조절하여 별 위치 조정) + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // 첫 번째 별 + _buildStar(data.stars[0], 55), + + const SizedBox(width: 8), + + // 두 번째 별 (가운데) + _buildStar(data.stars[1], 65), + + const SizedBox(width: 8), + + // 세 번째 별 + _buildStar(data.stars[2], 45), + ], + ), + + const SizedBox(height: 15), // ✅ 별과 텍스트 사이 여백 (이 값을 조절하여 위치 조정) + + // 2. 레벨 텍스트 + Text( + data.title, + textAlign: TextAlign.center, // 중앙 정렬 추가 + style: TextStyle( + fontSize: 27, + fontWeight: FontWeight.bold, + color: data.titleColor, + ), + ), + + const Spacer(), // ✅ 남은 공간을 밀어내어 버튼을 하단에 고정 + + // 4. 메인으로 버튼 영역 (GestureDetector로 감싸고, 내부 Container 제거) + GestureDetector( + onTap: onConfirm, + child: Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 13), + decoration: BoxDecoration( + color: Colors.grey.shade100, // 버튼 영역 배경색 + borderRadius: const BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + alignment: Alignment.center, + child: const Text( + '메인으로', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w600, + color: Colors.black87, + ), + ), + ), + ), + ], + ), + ), + ), // ✅ content 속성의 값 종료 + ); // ✅ AlertDialog 위젯 종료 + } +} \ No newline at end of file diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart index 0392355..401614f 100644 --- a/lib/features/auth/screens/home_screen.dart +++ b/lib/features/auth/screens/home_screen.dart @@ -141,7 +141,7 @@ class _HomeScreenState extends State { title: '역량 진단 시작하기', imagePath: 'assets/images/checkBox_icon.png', onTap: () { - Navigator.pushNamed(context, '/abilityTest'); + Navigator.pushNamed(context, '/assessment'); }, ), _buildCard( diff --git a/lib/main.dart b/lib/main.dart index 8c36b1c..0327ec8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -10,6 +10,8 @@ import 'features/auth/screens/login_screen.dart'; import 'features/auth/screens/signup_screen.dart'; import 'features/auth/screens/reset_password_screen.dart'; import 'features/auth/screens/home_screen.dart'; +import 'features/assessment/screens/assessment_screen.dart'; + import 'features/auth/screens/mypage_screen.dart'; // ✅ 영상 관련 import 추가 import 'package:guardpayfront/features/video/screens/video_category_screen.dart'; @@ -86,6 +88,7 @@ class MyApp extends StatelessWidget { '/signup': (context) => const SignupScreen(), '/reset': (context) => const ResetPasswordScreen(), '/home': (context) => const HomeScreen(), + '/assessment': (context) => const AssessmentScreen(), '/mypage': (context) => const MypageScreen(), // ✅ 예방 영상 관련 라우트 (오류 수정 완료) '/video': (context) => VideoCategoryScreen(), diff --git a/local.properties b/local.properties index 58f8aaa..ffa8286 100644 --- a/local.properties +++ b/local.properties @@ -4,6 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Thu Nov 06 13:50:29 KST 2025 +#Tue Nov 11 00:20:25 KST 2025 flutter.sdk=C\:\\flutter -sdk.dir=C\:\\Users\\Kim\\AppData\\Local\\Android\\Sdk +sdk.dir=C\:\\Users\\ASUS\\AppData\\Local\\Android\\Sdk diff --git a/pubspec.yaml b/pubspec.yaml index 032bb51..c2ffc12 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,19 +11,21 @@ dependencies: flutter: sdk: flutter + # 🔹 외부 패키지들 flutter_web_auth_2: ^4.1.0 flutter_dotenv: ^5.1.0 kakao_flutter_sdk_user: ^1.9.1+2 - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 - # 🚨 서버 통신을 위해 http 패키지를 추가했습니다. http: ^1.2.1 flutter_secure_storage: ^9.0.0 cached_network_image: ^3.3.1 youtube_player_flutter: ^9.1.3 flutter_inappwebview: ^6.0.0-beta.26 - image_picker: ^1.0.4 + + # ✅ 이미지 선택 관련 패키지 (갤러리/카메라) + image_picker: ^1.1.2 + + # ✅ 파일 경로 및 저장 관련 path_provider: ^2.1.1 dev_dependencies: @@ -33,7 +35,7 @@ dev_dependencies: flutter: uses-material-design: true - + assets: - assets/images/ - - .env \ No newline at end of file + - .env From 1ce80392d04d388b089e9a29ba88470929a1f8cf Mon Sep 17 00:00:00 2001 From: minmin02 Date: Thu, 13 Nov 2025 12:08:55 +0900 Subject: [PATCH 27/52] =?UTF-8?q?fix=20:=20jwt=20=ED=86=A0=ED=81=B0=20?= =?UTF-8?q?=EB=B0=9C=ED=96=89=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/assessment_service.dart | 56 ++++++++++++++----- 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/lib/features/assessment/services/assessment_service.dart b/lib/features/assessment/services/assessment_service.dart index 965b8e8..e4eeeec 100644 --- a/lib/features/assessment/services/assessment_service.dart +++ b/lib/features/assessment/services/assessment_service.dart @@ -12,38 +12,68 @@ class AssessmentService { // 1. ✅ 수정: 모든 퀴즈를 한 번에 로드하는 함수 Future> fetchAssessmentQuizzes(String accessToken) async { - // 1-1. 단일 엔드포인트 호출 final url = Uri.parse('$baseUrl/diagnoses/questions'); try { + print('📱 [Flutter] 요청 시작: $url'); + print('📱 [Flutter] 토큰 길이: ${accessToken.length}'); + final response = await http.get( url, headers: {'Authorization': 'Bearer $accessToken'}, ); + // ✅ 응답 상세 로깅 + print('📱 [Flutter] 응답 코드: ${response.statusCode}'); + print('📱 [Flutter] 응답 본문 (처음 200자): ${response.body.substring(0, response.body.length > 200 ? 200 : response.body.length)}'); + if (response.statusCode == 200) { - final jsonResponse = json.decode(utf8.decode(response.bodyBytes)); - final Map data = jsonResponse['data'] ?? {}; - final List parts = data['parts'] ?? []; + try { + final jsonResponse = json.decode(utf8.decode(response.bodyBytes)); + print('📱 [Flutter] JSON 파싱 성공'); + + final Map data = jsonResponse['data'] ?? {}; + final List parts = data['parts'] ?? []; + + print('📱 [Flutter] parts 개수: ${parts.length}'); - List allQuizzes = []; + List allQuizzes = []; - // 1-2. 중첩된 parts > questions 구조를 순회하며 Quiz 객체 생성 - for (var part in parts) { - final List questions = part['questions'] ?? []; - for (var questionJson in questions) { - allQuizzes.add(Quiz.fromJson(questionJson)); + for (var part in parts) { + final List questions = part['questions'] ?? []; + print('📱 [Flutter] part의 questions 개수: ${questions.length}'); + + for (var questionJson in questions) { + allQuizzes.add(Quiz.fromJson(questionJson)); + } } + + print('📱 [Flutter] 총 퀴즈 개수: ${allQuizzes.length}'); + return allQuizzes; + + } catch (parseError) { + // ✅ JSON 파싱 에러를 명확히 구분 + print('❌ [Flutter] JSON 파싱 에러: $parseError'); + print('❌ [Flutter] 응답 본문: ${response.body}'); + throw Exception('데이터 파싱 오류: $parseError'); } - return allQuizzes; } else if (response.statusCode == 401) { + print('❌ [Flutter] 401 에러 - 응답: ${response.body}'); throw Exception('인증 오류 발생 (401). 유효하지 않은 토큰입니다. 재로그인이 필요합니다.'); } else { - throw Exception('퀴즈 로딩 실패: ${response.statusCode}'); + print('❌ [Flutter] ${response.statusCode} 에러 - 응답: ${response.body}'); + throw Exception('퀴즈 로딩 실패: ${response.statusCode} - ${response.body}'); } + + } on http.ClientException catch (e) { + // ✅ 네트워크 에러 명확히 구분 + print('❌ [Flutter] 네트워크 에러: $e'); + throw Exception('네트워크 연결 오류: $e'); } catch (e) { - throw Exception('네트워크 오류 또는 데이터 파싱 오류: $e'); + // ✅ 기타 예외를 그대로 다시 던지기 (재포장하지 않음) + print('❌ [Flutter] 예상치 못한 에러: $e'); + rethrow; // 원본 예외를 그대로 던짐 } } From 4ac814400067e0f126f6ae76f1bee3779ae84c0f Mon Sep 17 00:00:00 2001 From: juno Date: Thu, 13 Nov 2025 13:37:41 +0900 Subject: [PATCH 28/52] =?UTF-8?q?feat:=EC=97=AD=EB=9F=89=EC=A7=84=EB=8B=A8?= =?UTF-8?q?=20response=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Podfile | 43 +++++++++++++++++++ .../services/assessment_service.dart | 7 +-- macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Podfile | 42 ++++++++++++++++++ pubspec.lock | 20 ++++----- 8 files changed, 103 insertions(+), 13 deletions(-) create mode 100644 ios/Podfile create mode 100644 macos/Podfile diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig index 592ceee..ec97fc6 100644 --- a/ios/Flutter/Debug.xcconfig +++ b/ios/Flutter/Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig index 592ceee..c4855bf 100644 --- a/ios/Flutter/Release.xcconfig +++ b/ios/Flutter/Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 0000000..620e46e --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,43 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '13.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/lib/features/assessment/services/assessment_service.dart b/lib/features/assessment/services/assessment_service.dart index e4eeeec..c6a7cf4 100644 --- a/lib/features/assessment/services/assessment_service.dart +++ b/lib/features/assessment/services/assessment_service.dart @@ -84,7 +84,7 @@ class AssessmentService { // 2-1. API가 요구하는 'answers' 리스트 생성 List> answers = submissionData.map((data) { return { - 'quizId': data['quizId'] as int, + 'quizID': data['quizId'] as int, // API는 'selectedAnswer'를 숫자로 받으므로 String을 int로 변환 'selectedAnswer': int.parse(data['userAnswer'] as String), }; @@ -112,7 +112,7 @@ class AssessmentService { }), ); - if (response.statusCode == 201) { // 201 Created + if (response.statusCode == 201 || response.statusCode == 200) { // 201 Created final jsonResponse = json.decode(utf8.decode(response.bodyBytes)); // 응답에서 historyId 추출 final int historyId = jsonResponse['data']['historyId'] as int? ?? 0; @@ -120,7 +120,8 @@ class AssessmentService { throw Exception('응답에서 historyId를 찾을 수 없습니다.'); } return historyId; - } else { + } + else { throw Exception('퀴즈 제출 실패: ${response.statusCode}'); } } diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig index c2efd0b..4b81f9b 100644 --- a/macos/Flutter/Flutter-Debug.xcconfig +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig index c2efd0b..5caa9d1 100644 --- a/macos/Flutter/Flutter-Release.xcconfig +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..ff5ddb3 --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,42 @@ +platform :osx, '10.15' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/pubspec.lock b/pubspec.lock index 740a750..68f3a9c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -508,26 +508,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -817,10 +817,10 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" typed_data: dependency: transitive description: @@ -905,10 +905,10 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: From 46a28b97f743ff006f32008b17f7a7e76a6a8d0f Mon Sep 17 00:00:00 2001 From: minmin02 Date: Fri, 14 Nov 2025 01:09:43 +0900 Subject: [PATCH 29/52] =?UTF-8?q?fe[Test]=20:=20=ED=86=B5=ED=95=A9=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20537 -> 20639 bytes local.properties | 4 ++-- pubspec.lock | 20 +++++++++--------- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 783f0ad57cd91dc7c76ca5b5bb4be7a40a4486a8..96bbd52d344a6daff64352997f5fc097a8365429 100644 GIT binary patch delta 1102 zcmX}oTS!xJ90%~ZW>#yZJC=IVmJfNsW=Id^Lxl8@wmF?n-I{iNhzQh(=s}0Bgop^y zFIE;l2xrub6wIDNq8nuy3DHA}taY)g({*u~**fR<+c|ss{C~Ie`)zbsKRT?xb-3Jg z`9@i(MMpnF1kMftbFJoNilV>Vn$R;%O9|y+YXxWXa7Yt0J<=4@RJfNr^5NBVF`)w7 z)fCm#bJ9v17V?IsOSECDjW^84Ia{&87po~nj-9XrRdx}{_H-rMs7Ck8Q6=r$13y8U zM9^Nm+82{1cyPJ{VTaILDacjQ6f!E6av2qjX|yrkVTkb-Ax0Q!4k~_w-6~EwXm*Ha zdva;%`wklZ39q^ABaBtl_!&D@v@l{AWX$7b6^)wbQRbs4X&11mnnwM?_G+5&2geu- zxW@R6=Zv3-Gk&1NNyXoBgz*i1DjqXtu)v6*sD_H?(8P$Mn=y-fY9w?;gsE2fs{?v$ zu2mWW%g{iOmT;aUdfeei9MN_WDK4c!`Ui`P8gy`~u((7FsOj4-I((52FU>}{Ux2=j z4*!a*I%+n+##jj-V+C$9Rw1mStwV&hp7vaWA^CBDA8QekA3bU&ty9DUewZ*>PaiPC z)IdnVE)^#j%VG437-^un$#})lRJ6#^TsIv#jX^(kr{TDpupR@9b$Fp7$wR4hZ1X55 z2LwKOi-c&SfKHEcav&A)GgOv=lCy*?EOKKetotY;AI8W=48iZe K-=ME~tmr>Uk2eY46Z}o4aYh1q|tHGy&)8KU5e98JG+r z3Jqm)bge>(u5Fj2xpZa+_afIPQkm1E7qaCXz8r9CD zN;{y72-w*`quOw=fhL@RkI{kq3@?@$t;nj-nW?x1ZH$w+&2ZzL8u_cD%0k5+G&4?N zRE@k=BOCWbXsx-wI^Bs~R%!^q&hTNF(TO>RAE}6lO*U#ciybyi%z^Wvg3+5zWmYpX{@keeLwuuwg3xA1k00!l{k_uw{*)e$ delta 45 zcmV+|0Mh@Tp#iy|0kAX}0X(xc7~lc3EgDe)la?FTvxOX^0RgeGA@~=uFlZ99K}h%q Dg{=`j diff --git a/local.properties b/local.properties index ffa8286..0c7530a 100644 --- a/local.properties +++ b/local.properties @@ -4,6 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Tue Nov 11 00:20:25 KST 2025 +#Thu Nov 13 13:43:02 KST 2025 flutter.sdk=C\:\\flutter -sdk.dir=C\:\\Users\\ASUS\\AppData\\Local\\Android\\Sdk +sdk.dir=C\:\\Users\\Kim\\AppData\\Local\\Android\\Sdk diff --git a/pubspec.lock b/pubspec.lock index 68f3a9c..740a750 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -508,26 +508,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -817,10 +817,10 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" typed_data: dependency: transitive description: @@ -905,10 +905,10 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: From 74bc4d084073c17acabd1b709b677c75ae29c8bb Mon Sep 17 00:00:00 2001 From: minmin02 Date: Fri, 14 Nov 2025 01:12:44 +0900 Subject: [PATCH 30/52] =?UTF-8?q?fe[Test]=20:=20=ED=86=B5=ED=95=A9=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/assessment/services/assessment_service.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/features/assessment/services/assessment_service.dart b/lib/features/assessment/services/assessment_service.dart index c6a7cf4..1f58352 100644 --- a/lib/features/assessment/services/assessment_service.dart +++ b/lib/features/assessment/services/assessment_service.dart @@ -73,11 +73,12 @@ class AssessmentService { } catch (e) { // ✅ 기타 예외를 그대로 다시 던지기 (재포장하지 않음) print('❌ [Flutter] 예상치 못한 에러: $e'); + print('❌ [Flutter] 예상치 못한 에러: $e'); + rethrow; // 원본 예외를 그대로 던짐 } } - // 2. ✅ 수정: 모든 퀴즈 답변을 한 번에 제출하고, 결과 ID를 받아, 최종 레벨을 조회하는 함수 Future submitAssessmentResults(List> submissionData, String accessToken) async { From 38ca8b91bc8233dcaa47afc1da09fffa2e549cc5 Mon Sep 17 00:00:00 2001 From: ch0412 Date: Sat, 15 Nov 2025 02:46:37 +0900 Subject: [PATCH 31/52] =?UTF-8?q?feat:=20quiz=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/auth/screens/home_screen.dart | 2 +- lib/features/quiz/models/quiz_models.dart | 116 ++++ .../quiz/screens/quiz_category_screen.dart | 234 ++++++++ lib/features/quiz/screens/quiz_screen.dart | 549 ++++++++++++++++++ lib/features/quiz/services/quiz_service.dart | 111 ++++ lib/features/quiz/widgets/quiz_dialog.dart | 90 +++ lib/main.dart | 6 +- pubspec.lock | 20 +- 8 files changed, 1116 insertions(+), 12 deletions(-) create mode 100644 lib/features/quiz/models/quiz_models.dart create mode 100644 lib/features/quiz/screens/quiz_category_screen.dart create mode 100644 lib/features/quiz/screens/quiz_screen.dart create mode 100644 lib/features/quiz/services/quiz_service.dart create mode 100644 lib/features/quiz/widgets/quiz_dialog.dart diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart index 401614f..0389f32 100644 --- a/lib/features/auth/screens/home_screen.dart +++ b/lib/features/auth/screens/home_screen.dart @@ -148,7 +148,7 @@ class _HomeScreenState extends State { title: '금융 퀴즈 도전', imagePath: 'assets/images/quiz_icon2.png', onTap: () { - Navigator.pushNamed(context, '/quiz'); + Navigator.pushNamed(context, '/quizCategory'); }, ), _buildCard( diff --git a/lib/features/quiz/models/quiz_models.dart b/lib/features/quiz/models/quiz_models.dart new file mode 100644 index 0000000..501e925 --- /dev/null +++ b/lib/features/quiz/models/quiz_models.dart @@ -0,0 +1,116 @@ +// 1. 카테고리 목록 (GET /categories) +class QuizCategory { + final int categoryId; + final String name; + + QuizCategory({required this.categoryId, required this.name}); + + factory QuizCategory.fromJson(Map json) { + return QuizCategory( + categoryId: json['categoryId'], + name: json['name'], + ); + } +} + +// 2. 퀴즈 목록 (GET /{categoryId}/list) +class QuizSummary { + final int quizId; + final String question; + final int level; + final int point; + + QuizSummary({ + required this.quizId, + required this.question, + required this.level, + required this.point, + }); + + factory QuizSummary.fromJson(Map json) { + return QuizSummary( + quizId: json['quizId'], + question: json['question'], + level: json['level'], + point: json['point'], + ); + } +} + +// 3. 퀴즈 상세 (GET /{quizId}) +class QuizDetail { + final int quizId; + final String question; + final List options; + final int point; + + QuizDetail({ + required this.quizId, + required this.question, + required this.options, + required this.point, + }); + + factory QuizDetail.fromJson(Map json) { + List optionsList = json['options']; + List parsedOptions = optionsList.map((opt) => QuizOption.fromJson(opt)).toList(); + + return QuizDetail( + quizId: json['quizId'], + question: json['question'], + options: parsedOptions, + point: json['point'], + ); + } +} + +// 3a. 퀴즈 옵션 (QuizDetail에 포함됨) +class QuizOption { + final int optionId; + final String optionText; + + QuizOption({required this.optionId, required this.optionText}); + + factory QuizOption.fromJson(Map json) { + return QuizOption( + optionId: json['optionId'], + optionText: json['optionText'], + ); + } +} + +// 4. 정답 제출 결과 (POST /{quizId}/submit) +class SubmitResult { + final bool isCorrect; + final int gainExp; + + SubmitResult({required this.isCorrect, required this.gainExp}); + + factory SubmitResult.fromJson(Map json) { + return SubmitResult( + isCorrect: json['isCorrect'], + gainExp: json['gainExp'], + ); + } +} + +// 5. 진행률 (GET /progress) +class QuizProgress { + final int categoryId; + final String categoryName; + final double progress; + + QuizProgress({ + required this.categoryId, + required this.categoryName, + required this.progress, + }); + + factory QuizProgress.fromJson(Map json) { + return QuizProgress( + categoryId: json['categoryId'], + categoryName: json['categoryName'], + progress: (json['progress'] as num).toDouble(), + ); + } +} \ No newline at end of file diff --git a/lib/features/quiz/screens/quiz_category_screen.dart b/lib/features/quiz/screens/quiz_category_screen.dart new file mode 100644 index 0000000..52ecb95 --- /dev/null +++ b/lib/features/quiz/screens/quiz_category_screen.dart @@ -0,0 +1,234 @@ +import 'package:flutter/material.dart'; +import 'package:guardpayfront/core/services/storage.dart'; + +import '../models/quiz_models.dart'; +import '../services/quiz_service.dart'; + +class QuizCategoryScreen extends StatefulWidget { + const QuizCategoryScreen({super.key}); + + @override + State createState() => _QuizCategoryScreenState(); +} + +class _QuizCategoryScreenState extends State { + final QuizService _quizService = QuizService(); + final _storage = AppStorage.storage; + + Future>? _categoriesFuture; + Future>? _progressFuture; + + String? _accessToken; + + @override + void initState() { + super.initState(); + // ❗️ 화면 시작 시 토큰을 읽고 데이터 로딩 시작 + _loadData(); + } + + Future _loadData() async { + final token = await _storage.read(key: 'accessToken'); + print("토큰 읽기 완료. 토큰: $token"); + + if (token == null) { + print("🚨 오류: 토큰이 null입니다."); + return; + } + + setState(() { + _accessToken = token; + _categoriesFuture = _quizService.getCategories(); + _progressFuture = _quizService.getProgress(_accessToken!); + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF9F5EC), + appBar: AppBar( + backgroundColor: const Color(0xFFFDF8EE), + elevation: 0, + leading: Padding( + padding: const EdgeInsets.only(left: 8.0, top: 18.0), + child: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), + ), + ), + ), + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + //const SizedBox(height: 5), + const Text( + "학습 분야를 선택하세요", + style: TextStyle( + fontSize: 27, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 30), + + Expanded( + child: FutureBuilder>( + future: Future.wait([ + _categoriesFuture ?? Future.value([]), + _progressFuture ?? Future.value([]) + ]), + builder: (context, snapshot) { + if (_categoriesFuture == null || _progressFuture == null) { + // _loadData가 아직 토큰을 못 가져온 경우 + return const Center(); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + if (snapshot.hasError) { + return Center(child: Text("오류: ${snapshot.error}")); + } + if (!snapshot.hasData || + snapshot.data == null || + snapshot.data!.isEmpty) { + return const Center(child: Text("데이터가 없습니다.")); + } + + final categories = snapshot.data![0] as List; + final progresses = snapshot.data![1] as List; + print("✅ [CategoryScreen] API가 반환한 progresses: $progresses"); + + if (categories.isEmpty) { + return const Center(child: Text("퀴즈 카테고리가 없습니다.")); + } + + final progressMap = { + for (var p in progresses) p.categoryId: p.progress + }; + + // 카테고리 목록을 동적으로 빌드 + return ListView( + children: categories.map((category) { + // API에서 받은 progress 값 (예: 75.0)을 사용 + double currentProgress = + progressMap[category.categoryId] ?? 0.0; + + return buildCategoryCard( + context, + category.name, // 서버에서 받은 이름 + currentProgress, // 서버에서 받은 진행률 (예: 75.0) + category.categoryId, // 서버에서 받은 ID + ); + }).toList(), + ); + }, + ), + ), + ], + ), + ), + ); + } + + Widget buildCategoryCard( + BuildContext context, String title, double progress, int categoryId) { + + // ✅ 4. 수정: API에서 받은 0-100 범위의 progress 값을 0.0-1.0 범위로 변환 + // (progress / 100.0)을 사용 + // 혹시 progress가 1.0을 초과하는 경우를 대비해 1.0으로 제한 + final double progressRatio = (progress / 100.0).clamp(0.0, 1.0); + const double barWidth = 300.0; // 프로그레스 바의 최대 너비 + + return InkWell( + // 탭 기능 추가 + onTap: () { + Navigator.pushNamed( + context, + '/quiz', + arguments: { + 'categoryId': categoryId, + 'categoryName': title, + 'progress': progress, + }, + ); + }, + borderRadius: BorderRadius.circular(22), + child: Container( + width: 347, + height: 140, + margin: const EdgeInsets.symmetric(vertical: 15), + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(37), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.3), + blurRadius: 5, + offset: const Offset(0, 3), + ) + ], + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + title, + style: const TextStyle( + fontSize: 25, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: 22), + Stack( + alignment: Alignment.centerLeft, + clipBehavior: Clip.none, + children: [ + // progress bar background + Container( + height: 10, + width: barWidth, // 최대 너비 고정 + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(10), + ), + ), + // progress bar foreground + Container( + height: 10, + // 4. 수정: progressRatio 사용 + width: barWidth * progressRatio, + decoration: BoxDecoration( + color: const Color(0xFF3ED597), + borderRadius: BorderRadius.circular(10), + ), + ), + // check icon + Positioned( + // 4. 수정: progressRatio 사용 + left: (barWidth * progressRatio) - 14, // (아이콘 너비의 절반) + child: Container( + width: 26, + height: 26, + decoration: const BoxDecoration( + color: Color(0xFFCCFFE8), + shape: BoxShape.circle, + ), + child: const Icon( + Icons.check, + color: Color(0xFF3ED597), + size: 18, + ), + ), + ), + ], + ) + ], + ), + ), + ); + } +} diff --git a/lib/features/quiz/screens/quiz_screen.dart b/lib/features/quiz/screens/quiz_screen.dart new file mode 100644 index 0000000..159a799 --- /dev/null +++ b/lib/features/quiz/screens/quiz_screen.dart @@ -0,0 +1,549 @@ +import 'package:flutter/material.dart'; + +import '../../../core/services/storage.dart'; +import '../models/quiz_models.dart'; +import '../services/quiz_service.dart'; +import '../widgets/quiz_dialog.dart'; + +class QuizScreen extends StatefulWidget { + const QuizScreen({super.key}); + + @override + State createState() => _QuizScreenState(); +} + +class _QuizScreenState extends State { + // --- Services & Storage --- + final QuizService _quizService = QuizService(); + final _storage = AppStorage.storage; + String? _accessToken; + + // --- Navigation Arguments --- + late int _categoryId; + String _categoryName = "퀴즈"; // 기본값 + double _progress = 0.0; // 기본값 + + // --- State Variables --- + bool _isLoadingList = true; // 퀴즈 '목록' 로딩 중 + bool _isLoadingDetail = false; // 퀴즈 '상세' 로딩 중 + bool _isSubmitting = false; // 정답 '제출' 중 + bool _isAnswered = false; // 현재 퀴즈를 푼 상태인지 + + List _quizSummaries = []; // 퀴즈 목록 (플레이리스트) + int _currentQuizIndex = 0; // 현재 퀴즈 인덱스 + QuizDetail? _currentQuizDetail; // 현재 표시할 퀴즈의 상세 정보 + SubmitResult? _submitResult; // 정답 제출 결과 + int? _selectedOptionId; // 사용자가 선택한 선택지 ID + int _totalPointsEarned = 0; // 총 점수 + bool _isQuizCompleted = false; + + String get _progressKey => 'quiz_progress_cat_${_categoryId}'; + String get _pointsKey => 'quiz_points_cat_${_categoryId}'; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + // 네비게이션 인자 받기 (최초 1회) + final args = + ModalRoute.of(context)!.settings.arguments as Map; + _categoryId = args['categoryId']; + _categoryName = args['categoryName']; + _progress = args['progress']; + + if (_accessToken == null) { + _loadData(); + } + } + + // 화면을 나갈 때 현재 퀴즈 진행 상황을 로컬 저장소에 저장 + @override + void dispose() { + if (!_isLoadingList && _quizSummaries.isNotEmpty && !_isQuizCompleted) { + // 퀴즈가 완료되지 않은 상태(목록 길이보다 인덱스가 작을 때)에만 저장 + if (_currentQuizIndex < _quizSummaries.length) { + _storage.write(key: _progressKey, value: _currentQuizIndex.toString()); + _storage.write(key: _pointsKey, value: _totalPointsEarned.toString()); + print("💾 퀴즈 진행 상황 저장됨: Index $_currentQuizIndex, Points $_totalPointsEarned"); + } + } + super.dispose(); + } + + // 데이터 로딩 (토큰 -> 퀴즈 목록 -> 퀴즈 1 상세) + Future _loadData() async { + // 1. 토큰 읽기 + final token = await _storage.read(key: 'accessToken'); + if (token == null) { + print("🚨 QuizScreen: 토큰이 없습니다. 이전 화면으로 돌아갑니다."); + if (mounted) Navigator.pop(context); + return; + } + _accessToken = token; + + // 2. 퀴즈 목록 불러오기 + try { + setState(() { + _isLoadingList = true; + }); + _quizSummaries = await _quizService.getQuizzesForCategory(_categoryId); + setState(() { + _isLoadingList = false; + }); + + // 3. 퀴즈 목록 성공 시 + if (_quizSummaries.isNotEmpty) { + // 저장된 진행 상황 로드 + final savedIndexStr = await _storage.read(key: _progressKey); + final savedPointsStr = await _storage.read(key: _pointsKey); + + int startIndex = 0; + int startPoints = 0; + + // 저장된 인덱스 복원, 유효성 검사 + if (savedIndexStr != null && int.tryParse(savedIndexStr) != null) { + int loadedIndex = int.parse(savedIndexStr); + if (loadedIndex < _quizSummaries.length) { + startIndex = loadedIndex; + } + } + + // 저장된 점수 복원 + if (savedPointsStr != null && int.tryParse(savedPointsStr) != null) { + startPoints = int.parse(savedPointsStr); + } + + // 상태 업데이트 및 퀴즈 로드 시작 + setState(() { + _currentQuizIndex = startIndex; + _totalPointsEarned = startPoints; + }); + + _loadQuizDetail(startIndex); + } else { + print("🤔 이 카테고리에 퀴즈가 없습니다."); + } + } catch (e) { + print("🚨 퀴즈 목록 로딩 실패: $e"); + setState(() { + _isLoadingList = false; + }); + } + } + + // 특정 인덱스의 퀴즈 상세 정보 불러오기 + Future _loadQuizDetail(int index) async { + if (index < 0 || index >= _quizSummaries.length) return; + + setState(() { + _currentQuizIndex = index; + _isLoadingDetail = true; + _isAnswered = false; + _selectedOptionId = null; + _submitResult = null; + }); + + try { + final quizId = _quizSummaries[index].quizId; + _currentQuizDetail = await _quizService.getQuizDetail(quizId); + } catch (e) { + print("🚨 퀴즈 상세 로딩 실패: $e"); + } finally { + if (mounted) { + setState(() { + _isLoadingDetail = false; + }); + } + } + } + + // 정답 제출 + Future _submitAnswer() async { + if (_selectedOptionId == null || _accessToken == null || _isAnswered) return; + + setState(() { + _isSubmitting = true; + }); + + try { + _submitResult = await _quizService.submitAnswer( + _currentQuizDetail!.quizId, + _selectedOptionId!, + _accessToken!, + ); + setState(() { + _isAnswered = true; + + // 정답일 경우에만 총점에 현재 퀴즈 점수 누적 + if (_submitResult!.isCorrect) { + _totalPointsEarned += _currentQuizDetail!.point; + } + }); + } catch (e) { + print("🚨 정답 제출 실패: $e"); + } finally { + if (mounted) { + setState(() { + _isSubmitting = false; + }); + } + } + } + + // 다음 문제로 이동하거나 완료 시 팝업창 띄우기 + void _nextQuiz() { + if (_currentQuizIndex + 1 < _quizSummaries.length) { + // 다음 퀴즈 로드 + _loadQuizDetail(_currentQuizIndex + 1); + } else { + _isQuizCompleted = true; + + // 모든 퀴즈 완료 + showDialog( + context: context, + barrierDismissible: false, + builder: (context) { + // ❗️ 새로 만든 QuizCompletionDialog 사용 + return QuizDialog( + title: "학습 완료!", // 기존 제목 + content: "총 ${_totalPointsEarned}p를 획득했습니다.", // 기존 내용 + onConfirm: () async { + print("DEBUG_KEY: Deleting progress key: $_progressKey"); + + await _storage.delete(key: _progressKey); + await _storage.delete(key: _pointsKey); + print("🗑️ 퀴즈 완료: 로컬 저장된 진행 상황이 리셋되었습니다."); + + final checkIndex = await _storage.read(key: _progressKey); + print("DEBUG_CHECK: Index after delete: $checkIndex"); + + Navigator.of(context).pop(); // 다이얼로그 닫기 + Navigator.of(context).pop(); // 퀴즈 스크린 닫기 + }, + ); + }, + ); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFFDF8EE), + appBar: AppBar( + backgroundColor: const Color(0xFFFDF8EE), + elevation: 0, + leading: IconButton( + padding: const EdgeInsets.only(left: 8.0, top: 18.0), + icon: const Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), + ), + ), + body: _buildBody(), + ); + } + + // --- Body 빌더 --- + Widget _buildBody() { + if (_isLoadingList) { + return const Center(); + } + if (_quizSummaries.isEmpty) { + return const Center(child: Text("이 카테고리에 퀴즈가 없습니다.")); + } + if (_isLoadingDetail || _currentQuizDetail == null) { + return const Center(child: CircularProgressIndicator()); + } + + // 퀴즈 UI 빌드 + final quiz = _currentQuizDetail!; + final double progressRatio = (_progress / 100.0).clamp(0.0, 1.0); + + return SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 35), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 학습 진행률 (동적) + const SizedBox(height: 25), + Center( // ⬅️ Center 위젯으로 감싸서 수평 중앙 정렬 + child: Row( + mainAxisAlignment: MainAxisAlignment.center, // ⬅️ Row 내부 요소도 중앙 정렬 (필요하다면) + children: [ + Text( + "$_categoryName 학습 진행률", + style: const TextStyle( + fontSize: 22, // ⬅️ 22로 변경된 폰트 크기 사용 + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(width: 6), + Text( + "${_progress.toStringAsFixed(0)}%", + style: const TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + ), + ) + ], + ), + ), + const SizedBox(height: 15), + + // Progress Bar (동적) - 수정된 로직 + LayoutBuilder( + builder: (context, constraints) { + return Container( + // Stack을 사용해 회색 바와 초록색 바를 겹칩니다. + child: Stack( + children: [ + // 1. 회색 배경 바 (항상 전체 너비) + Container( + width: constraints.maxWidth, + height: 12, + decoration: BoxDecoration( + color: Colors.grey.shade300, + borderRadius: BorderRadius.circular(12), + ), + ), + // 2. 초록색 진행률 바 (너비가 0%일 수 있음) + Container( + width: constraints.maxWidth * progressRatio, + height: 12, + decoration: BoxDecoration( + color: const Color(0xFF3ED597), + borderRadius: BorderRadius.circular(12), + ), + ), + ], + ), + ); + }, + ), + + const SizedBox(height: 50), + + // Quiz 카드 (동적) + Container( + padding: + const EdgeInsets.symmetric(vertical: 30, horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(15), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 6, + offset: const Offset(0, 5), + ) + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 문제 번호 + 점수 (동적) + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.only(top: 7.0, left: 13.0), + child: Text( + 'Quiz ${_currentQuizIndex + 1}.', + style: const TextStyle( + fontSize: 27, + fontWeight: FontWeight.bold) + , + ), + ), + + Container( + padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10), + decoration: BoxDecoration( + color: Colors.green.shade300, + borderRadius: BorderRadius.circular(15), + ), + child: Text( + "${quiz.point}p", // ⬅️ 동적 + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + ), + ), + ], + ), + + const SizedBox(height: 20), + + Padding( + padding: const EdgeInsets.only(top: 28.0), + child: Text( + quiz.question, + textAlign: TextAlign.justify, + style: const TextStyle( + fontSize: 18, + color: Colors.black87, + height: 1.5, + ), + ), + ), + const SizedBox(height: 30), + + // 선택지 리스트 (동적) + Column( + // ❗️ quiz.options를 사용해 동적으로 생성 + children: quiz.options.asMap().entries.map((entry) { + int index = entry.key; + QuizOption option = entry.value; + return answerButton( + option: option, + index: index, + selectedOptionId: _selectedOptionId, + isAnswered: _isAnswered, + submitResult: _submitResult, + onTap: () { + // 정답을 제출하지 않은 상태에서만 선택 가능 + if (!_isAnswered) { + setState(() { + _selectedOptionId = option.optionId; + }); + } + }, + ); + }).toList(), + ), + + const SizedBox(height: 18), + + // '정답 제출' 또는 '다음 문제로' 버튼 (동적) + SizedBox( + width: double.infinity, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: _getButtonColor(), // ⬅️ 동적 + elevation: 0, + padding: const EdgeInsets.symmetric( + vertical: 14, horizontal: 0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + ), + // ❗️ 상태에 따라 다른 함수 호출 + onPressed: _isSubmitting + ? null // 제출 중 비활성화 + : (_isAnswered ? _nextQuiz : _submitAnswer), + child: _isSubmitting + ? const SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : Text( + _isAnswered ? "다음 문제로" : "정답 제출", // ⬅️ 동적 + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.w600, + // ❗️ 선택해야 버튼 활성화 + color: _selectedOptionId == null && !_isAnswered + ? Colors.white + : Colors.white, + ), + ), + ), + ), + ], + ), + ), + const SizedBox(height: 40), + ], + ), + ), + ); + } + + // --- Helper Widgets & Methods --- + + // 버튼 색상 결정 + Color _getButtonColor() { + if (!_isAnswered) { + // 정답 제출 전 + return _selectedOptionId != null + ? Colors.green // 선택함 (초록) + : Colors.grey.shade300; // 선택 안 함 (회색) + } else { + // 정답 제출 후 + return _submitResult!.isCorrect + ? Colors.green // 정답 (초록) + : Colors.red.shade400; // 오답 (빨강) + } + } + + // 선택지 버튼 위젯 (상태에 따라 UI 변경) + Widget answerButton({ + required QuizOption option, // ❗️ QuizOption 객체를 받음 + required int? selectedOptionId, + required bool isAnswered, + required SubmitResult? submitResult, + required VoidCallback onTap, + required int index, + }) { + bool isSelected = selectedOptionId == option.optionId; + + // 테두리 색상 결정 + Color borderColor = Colors.grey.shade300; + Color? iconColor; + + if (isAnswered && isSelected) { + // 정답 제출 후, 내가 선택한 옵션 + if (submitResult!.isCorrect) { + borderColor = Colors.green; // 정답 (초록) + iconColor = Colors.green; + } else { + borderColor = Colors.red.shade400; // 오답 (빨강) + iconColor = Colors.red.shade400; + } + } else if (!isAnswered && isSelected) { + // 정답 제출 전, 내가 선택한 옵션 + borderColor = Colors.green; + } + + return GestureDetector( + onTap: onTap, + child: Container( + margin: const EdgeInsets.only(bottom: 14), + padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 14), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: borderColor, + width: isSelected ? 2 : 1, + ), + ), + child: Row( + children: [ + Expanded( + child: Text( + "${index + 1}. ${option.optionText}", // ⬅️ 동적 + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: isSelected ? Colors.black : Colors.grey.shade700, + ), + ), + ), + if (isAnswered && isSelected) // 정답/오답 아이콘 + Icon( + submitResult!.isCorrect ? Icons.check_circle : Icons.cancel, + color: iconColor, + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/quiz/services/quiz_service.dart b/lib/features/quiz/services/quiz_service.dart new file mode 100644 index 0000000..8b9bd65 --- /dev/null +++ b/lib/features/quiz/services/quiz_service.dart @@ -0,0 +1,111 @@ +import 'package:http/http.dart' as http; +import 'dart:convert'; + +import '../models/quiz_models.dart'; + +class QuizService { + final String _baseUrl = "http://10.0.2.2:8080/api/quiz"; + + // HTTP 응답 공통 처리 + dynamic _handleResponse(http.Response response) { + if (response.statusCode == 200) { + final body = json.decode(utf8.decode(response.bodyBytes)); + + if (body['status'] == 200) { + return body['data']; // 성공 시 'data' 객체 반환 + } else { + throw Exception('API Error (${body['status']}): ${body['message']}'); + } + } else { + throw Exception('HTTP Error: ${response.statusCode}'); + } + } + + // 인증 헤더 생성 + Map _authHeaders(String accessToken) { + return { + 'Content-Type': 'application/json; charset=UTF-8', + 'Authorization': 'Bearer $accessToken', // ❗️ JWT 토큰 전송 + }; + } + + // 1. 카테고리 목록 조회 (GET /api/quiz/categories) + Future> getCategories() async { + try { + final response = await http.get(Uri.parse('$_baseUrl/categories')); + final data = _handleResponse(response); + + // 'categories' 키 아래의 동적 리스트를 QuizCategory 객체 리스트로 매핑 + List categoryList = data['categories']; + return categoryList.map((json) => QuizCategory.fromJson(json)).toList(); + } catch (e) { + print('getCategories 오류: $e'); + rethrow; + } + } + + // 2. 카테고리별 퀴즈 목록 조회 (GET /api/quiz/{categoryId}/list) + Future> getQuizzesForCategory(int categoryId) async { + try { + final response = await http.get(Uri.parse('$_baseUrl/$categoryId/list')); + final data = _handleResponse(response); + + // 'quizzes' 키 아래의 동적 리스트를 QuizSummary 객체 리스트로 매핑 + List quizList = data['quizzes']; + return quizList.map((json) => QuizSummary.fromJson(json)).toList(); + } catch (e) { + print('getQuizzesForCategory 오류: $e'); + rethrow; + } + } + + // 3. 퀴즈 상세 조회 (GET /api/quiz/{quizId}) + Future getQuizDetail(int quizId) async { + try { + final response = await http.get(Uri.parse('$_baseUrl/$quizId')); + final data = _handleResponse(response); + + return QuizDetail.fromJson(data); + + } catch (e) { + print('getQuizDetail 오류: $e'); + rethrow; + } + } + + // 4. 퀴즈 정답 제출 (POST /api/quiz/{quizId}/submit) + Future submitAnswer(int quizId, int selectedOptionId, String accessToken) async { + try { + final response = await http.post( + Uri.parse('$_baseUrl/$quizId/submit'), + headers: _authHeaders(accessToken), + body: json.encode({ + 'selectedOptionId': selectedOptionId, + }), + ); + + final data = _handleResponse(response); + return SubmitResult.fromJson(data); + } catch (e) { + print('submitAnswer 오류: $e'); + rethrow; + } + } + + // 5. 퀴즈 진행률 조회 (GET /api/quiz/progress) + Future> getProgress(String accessToken) async { + try { + final response = await http.get( + Uri.parse('$_baseUrl/progress'), + headers: _authHeaders(accessToken), + ); + + final data = _handleResponse(response); + List progressList = data['progress']; + return progressList.map((json) => QuizProgress.fromJson(json)).toList(); + } catch (e) { + print('getProgress 오류: $e'); + rethrow; + } + } +} \ No newline at end of file diff --git a/lib/features/quiz/widgets/quiz_dialog.dart b/lib/features/quiz/widgets/quiz_dialog.dart new file mode 100644 index 0000000..b0cb807 --- /dev/null +++ b/lib/features/quiz/widgets/quiz_dialog.dart @@ -0,0 +1,90 @@ +import 'package:flutter/material.dart'; + +class QuizDialog extends StatelessWidget { + final VoidCallback onConfirm; + final String title; + final String content; + + const QuizDialog({ + super.key, + required this.onConfirm, + required this.title, + required this.content, + }); + + @override + Widget build(BuildContext context) { + return AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), + elevation: 0, + contentPadding: EdgeInsets.zero, + + content: Container( + width: MediaQuery.of(context).size.width * 0.73, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + ), + + child: SizedBox( + height: 220.0, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const SizedBox(height: 50), + + // 1. 다이얼로그 제목 + Text( + title, + textAlign: TextAlign.center, + style: const TextStyle( + fontSize: 27, + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + const SizedBox(height: 10), + + // 2. 내용 텍스트 + Text( + content, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 22, + color: Colors.grey.shade800, + ), + ), + + const Spacer(), + + // 3. 메인으로 버튼 + GestureDetector( + onTap: onConfirm, + child: Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 13), + decoration: BoxDecoration( + color: Colors.grey.shade100, // 버튼 영역 배경색 + borderRadius: const BorderRadius.only( + bottomLeft: Radius.circular(20), + bottomRight: Radius.circular(20), + ), + ), + alignment: Alignment.center, + child: const Text( + '확인', + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.w600, + color: Colors.black87, + ), + ), + ), + ), + ], + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 0327ec8..614bfc2 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:guardpayfront/features/quiz/screens/quiz_screen.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; // ⬇️ AuthService 임포트 (경로를 프로젝트에 맞게 수정하세요) @@ -11,6 +12,8 @@ import 'features/auth/screens/signup_screen.dart'; import 'features/auth/screens/reset_password_screen.dart'; import 'features/auth/screens/home_screen.dart'; import 'features/assessment/screens/assessment_screen.dart'; +import 'features/quiz/screens/quiz_category_screen.dart'; +import 'features/quiz/screens/quiz_screen.dart'; import 'features/auth/screens/mypage_screen.dart'; // ✅ 영상 관련 import 추가 @@ -89,6 +92,8 @@ class MyApp extends StatelessWidget { '/reset': (context) => const ResetPasswordScreen(), '/home': (context) => const HomeScreen(), '/assessment': (context) => const AssessmentScreen(), + '/quizCategory': (context) => const QuizCategoryScreen(), + '/quiz': (context) => const QuizScreen(), '/mypage': (context) => const MypageScreen(), // ✅ 예방 영상 관련 라우트 (오류 수정 완료) '/video': (context) => VideoCategoryScreen(), @@ -113,7 +118,6 @@ class MyApp extends StatelessWidget { title: title, // ✅ title 전달 ); }, - }, ); } diff --git a/pubspec.lock b/pubspec.lock index 68f3a9c..740a750 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -508,26 +508,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -817,10 +817,10 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" typed_data: dependency: transitive description: @@ -905,10 +905,10 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: From e0ebee9db32206b429db0643143900fa2bca52da Mon Sep 17 00:00:00 2001 From: minmin02 Date: Thu, 20 Nov 2025 02:26:47 +0900 Subject: [PATCH 32/52] =?UTF-8?q?feat=20:=EC=B9=B4=EC=B9=B4=EC=98=A4?= =?UTF-8?q?=EB=A7=B5=20=EC=97=B0=EB=8F=99=20=EC=B4=88=EA=B8=B0=ED=99=94=20?= =?UTF-8?q?=EB=B0=8F=20=EC=9D=80=ED=96=89=20=EC=9C=84=EC=B9=98=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20639 -> 20707 bytes android/app/src/main/AndroidManifest.xml | 20 +- .../main/res/xml/network_security_config.xml | 11 + lib/features/auth/widgets/bottom_nav.dart | 8 +- lib/features/auth/widgets/material.dart | 61 +++++ lib/features/map/models/bank_model.dart | 63 +++++ lib/features/map/models/location_model.dart | 31 +++ lib/features/map/screens/map_screen.dart | 192 ++++++++++++++++ lib/features/map/services/map_service.dart | 127 ++++++++++ .../map/widgets/IntegratedSearchBar.dart | 217 ++++++++++++++++++ .../map/widgets/LocationSearchBar.dart | 199 ++++++++++++++++ lib/features/map/widgets/bank_search_bar.dart | 63 +++++ .../map/widgets/location_search_bar.dart | 199 ++++++++++++++++ lib/main.dart | 2 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 48 ++++ pubspec.yaml | 5 + web/index.html | 2 + 20 files changed, 1243 insertions(+), 7 deletions(-) create mode 100644 android/app/src/main/res/xml/network_security_config.xml create mode 100644 lib/features/auth/widgets/material.dart create mode 100644 lib/features/map/models/bank_model.dart create mode 100644 lib/features/map/models/location_model.dart create mode 100644 lib/features/map/screens/map_screen.dart create mode 100644 lib/features/map/services/map_service.dart create mode 100644 lib/features/map/widgets/IntegratedSearchBar.dart create mode 100644 lib/features/map/widgets/LocationSearchBar.dart create mode 100644 lib/features/map/widgets/bank_search_bar.dart create mode 100644 lib/features/map/widgets/location_search_bar.dart diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 96bbd52d344a6daff64352997f5fc097a8365429..89d669ef5843bb055e72ca52f2a9197243409a7b 100644 GIT binary patch delta 2722 zcmaKt3p7-D9LLf7VX4v1%$1C!wj`l!w%XXOlr$*M5Q!wBwMV1ZO0rTh^vf&cSt3GS zc?{u5ls2oVwg^Qpl}hhjd++am?>T!qXPa|o=JWf1fA2f@PE)Z$Q?Wup$(oT#iz;`4 zn)y5i0>Q$Zf>GuwjFG^do}f<|xvw9B88G4~#9wFJ_kE1m+y_4KNZcm<%f9s>%&j=)(6 zCr|*D1oB{TF9l<)F(4PztuY`UtO%T=Pbf&{r=dhd^%|LKxI~BZPyA3k9uCDvaMjcuf4lVQ@1W zK+6JUMbe`TdIFek#M30M`V~eNG^A^F_f`d0)ETVo zH7%@;W|N%#TJ`L&RBz>~|H-5mc^rWObl2x_sp#-=|*uHaZLu-G`0Sxyeu z6^01}@8w_mUme+>alfZ(g|cQk8&-*3sc3lTzS7lsdf>^9MHeHjn_00OMK=eDbW~xK zcj(Tvp;ck~%UQ7lcQLRPcX10^U2zv>kbD@Sf-8RumvYGPm5Pf=veCyUPc1sX47vC=B@mwuxhUDfR0a;vHON) z>nfjf5!e&o4STwah3#J7h-hCDH%lTjTOdCpLZ9`lflY4MX9L$Kxi8WSD?`!0q$u*k-}d!;|H;%#g}DFR!#gGSb7G%BHn{79?0 zl6Rm`s>(NfH@g1Epw|o2>P}&oxH}-_;zIBU0r>-?X1@sY$%-EcJ!b2R=lFum=IuZMq;RYVb7uzpk5AmA*&js)O+68~aJ+mKUvHWc+6Y0lN zH`#<-9Q{v&DoPsDA7H@4l4V@in8g+?|p`na_Hm{!pT{X0R+2RCt_ONX+0$|{fC zApMNGO9sDtyc}ci#%?i=bYTp2KC_sIWeg1XP=eofzAhiKHExsh`#fYQ@m$P0KVb?9 zUM^B~{^nwbUCKSzvDf{k%>1t?@(R(rHzZFjkVrP$YKNF`Pl`TLW}h{5d-C|R4;W3F z-|*8yzmPhkyYD!kSg?qrz+w}Q@f1s?yT4KDF5{W>-q+v0Nd1~4Db*wap|82%-Lt^S cGnzs_A zk(NhGNtUStWYIL8fRzk9g(3!e;4A~bLMH>=FgXU3yC6~kTVs&BlW`{~K)Xu{H)D|e z5BQm-{SIOc7WTqo0TePY3db23fi?|NjW8;YEC|{u1^-y2dI`a?$S?*u47`S~71Fq05fTCR-%wCH+C&5`_Bs0SeI*CyxL?-X%pq?2L zc(fK9h(QvMzzMu|`YaC{F|Plnue2;PPY2ByGW z0Zd51kSEMfpd(jG*~qg@Fq9~T-3fH$N_VjB#WWcN?L*)N31GH*5XvRpF^rSnB3EI(Z~Xw2TS{k!EBpRwWCkuZ^H!j}c>Ezc;UysV{j z>%4s<<#G0Nx0!7{HGHrS&L?@x!mpn_wM6N5=fKxX!#ZjM_*gGQBvX3AK)cV?Q%#m9 zuw2i3S$9hxQRyuk2)W{IY`xZ{Gb{IUm(m%B)$4znTV?;* z8K2zMm)W~2dHN~r5S;@+qYtDTlL;%K_2k|Z;~tmcQlB#;5)DNOMj|n-KN}4dw5H%b z!=a)Cfl8oL(L8x$?t9&@oJ&*Nb&_R{PTCc`iWJJ|KWI3$w6jKa>p}G4wiw$Z@>-(n zx9XY1c_IjklFANl_q8r^%lXz*VhC-hsuyxlg)9wKBx9=#sk`Z=$S~^zpRk9D)!WDm zl(9i-8Y)W`lwmq_vRW;am10U9kXE3>T)E@pj|^3c zEh~OmylL*5Vc&~<_h8B@*S)Krwj(d>$d)sg?N45*R`J0F7}Un5d>>kS-f&^ZSmL>h zi!%NR(&K2$z^)5WfWxN?ssHz_46(?3U=j55cX|!b>t$Lz^T#k&<-5^Z=ZY ze^3I12SrJ#{e7QpeKFkFo4C>3ys>Gs+Y!F@9d;Cf5#*7_+oBX&2GBBjW5E(GMEghGKXpN9SFJAxxB>PNL7 z7wc2olt0$-icg>hQ61dOQ_?qv3HtLmx#n?ZZ2xsfkDTC=es^8h=X|mW8?_z5MklBd z6+V`>D1M<~dh(eiyAQdBx(Jz!wlItQ{_8+T^1Dlya)y(Qo9$m^pFR~S2m#Ge)Q!CI z6 diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index 214aea7ea4621fae7c7df2172d4105ec47659308..c2ce2f612e19757c7565556f43d32d83691042fe 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~3qF001?E1kV5f literal 17 VcmZQ}=bo_Q-nZT^1~3rG001?o1oZ#_ diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin index 80ae9e2b48f0f5b4700084991edcd81f4138b924..e90c4ad8dcf4cf4e284b0b1fff91acf06e3e39e6 100644 GIT binary patch delta 79 zcmbQgkn!xR>Ozs2(AP|^95 cZDn6Ev1x8p{2{*4;Dg|1M~^s;$^PCh09#8N0ssI2 delta 41 zcmV+^0M`HGp#h(v0kAX}0Y9@f7@z{P?HX_blXV^90tNZ8A@~=uFd!1MK}cQ*QL_(j diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index ed2b6b3..dbd5702 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,12 +1,20 @@ - + + + + android:icon="@mipmap/ic_launcher" + android:usesCleartextTraffic="true"> + + + + + android:name="com.kakao.sdk.flutter.AuthCodeCustomTabsActivity" + android:exported="true"> diff --git a/android/app/src/main/res/xml/network_security_config.xml b/android/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..018ee3c --- /dev/null +++ b/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,11 @@ + + + + + + + + + dapi.kakao.com + + \ No newline at end of file diff --git a/lib/features/auth/widgets/bottom_nav.dart b/lib/features/auth/widgets/bottom_nav.dart index 19f8988..417c6f5 100644 --- a/lib/features/auth/widgets/bottom_nav.dart +++ b/lib/features/auth/widgets/bottom_nav.dart @@ -2,6 +2,8 @@ import 'package:flutter/material.dart'; import 'package:guardpayfront/features/auth/screens/chat_screen.dart'; import 'package:guardpayfront/features/auth/screens/home_screen.dart'; import 'package:guardpayfront/features/auth/services/api_service.dart'; +import 'package:guardpayfront/features/map/screens/map_screen.dart'; + class BottomNav extends StatelessWidget { final int selectedIndex; @@ -35,7 +37,11 @@ class BottomNav extends StatelessWidget { // TODO: 송금 화면 break; case 4: - // TODO: 지도 화면 + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const MapScreen()), // MapScreen으로 이동 + (route) => false, + ); break; } } diff --git a/lib/features/auth/widgets/material.dart b/lib/features/auth/widgets/material.dart new file mode 100644 index 0000000..df34eb9 --- /dev/null +++ b/lib/features/auth/widgets/material.dart @@ -0,0 +1,61 @@ +import 'package:flutter/material.dart'; + +class BottomNav extends StatelessWidget { + final int selectedIndex; + + const BottomNav({ + super.key, + required this.selectedIndex, + }); + + @override + Widget build(BuildContext context) { + return BottomNavigationBar( + currentIndex: selectedIndex, + type: BottomNavigationBarType.fixed, + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.home), + label: '홈', + ), + BottomNavigationBarItem( + icon: Icon(Icons.quiz), + label: '퀴즈', + ), + BottomNavigationBarItem( + icon: Icon(Icons.video_library), + label: '영상', + ), + BottomNavigationBarItem( + icon: Icon(Icons.assessment), + label: '평가', + ), + BottomNavigationBarItem( + icon: Icon(Icons.map), + label: '지도', + ), + ], + onTap: (index) { + if (index == selectedIndex) return; + + switch (index) { + case 0: + Navigator.pushReplacementNamed(context, '/home'); + break; + case 1: + Navigator.pushReplacementNamed(context, '/quizCategory'); + break; + case 2: + Navigator.pushReplacementNamed(context, '/video'); + break; + case 3: + Navigator.pushReplacementNamed(context, '/assessment'); + break; + case 4: + // 현재 지도 화면 + break; + } + }, + ); + } +} \ No newline at end of file diff --git a/lib/features/map/models/bank_model.dart b/lib/features/map/models/bank_model.dart new file mode 100644 index 0000000..020476a --- /dev/null +++ b/lib/features/map/models/bank_model.dart @@ -0,0 +1,63 @@ +class BankModel { + final int id; + final String name; // 은행명 + final String branchName; // 지점명 + final String fullName; // 전체명 + final String address; // 지번 주소 + final String? roadAddress; // 도로명 주소 + final double lat; + final double lon; + final String? phoneNumber; + final String? businessHours; + final double? distance; // 거리(m) + final String? distanceText; // 거리 텍스트 + + BankModel({ + required this.id, + required this.name, + required this.branchName, + required this.fullName, + required this.address, + this.roadAddress, + required this.lat, + required this.lon, + this.phoneNumber, + this.businessHours, + this.distance, + this.distanceText, + }); + + factory BankModel.fromJson(Map json) { + return BankModel( + id: json['id'], + name: json['name'], + branchName: json['branchName'] ?? '', + fullName: json['fullName'] ?? '${json['name']} ${json['branchName'] ?? ''}', + address: json['address'], + roadAddress: json['roadAddress'], + lat: (json['lat'] as num).toDouble(), + lon: (json['lon'] as num).toDouble(), + phoneNumber: json['phoneNumber'], + businessHours: json['businessHours'], + distance: json['distance'] != null ? (json['distance'] as num).toDouble() : null, + distanceText: json['distanceText'], + ); + } + + Map toJson() { + return { + 'id': id, + 'name': name, + 'branchName': branchName, + 'fullName': fullName, + 'address': address, + 'roadAddress': roadAddress, + 'lat': lat, + 'lon': lon, + 'phoneNumber': phoneNumber, + 'businessHours': businessHours, + 'distance': distance, + 'distanceText': distanceText, + }; + } +} \ No newline at end of file diff --git a/lib/features/map/models/location_model.dart b/lib/features/map/models/location_model.dart new file mode 100644 index 0000000..209c205 --- /dev/null +++ b/lib/features/map/models/location_model.dart @@ -0,0 +1,31 @@ +class LocationModel { + final String address; + final String? roadAddress; + final double latitude; + final double longitude; + final String? placeName; + final String? addressType; + + LocationModel({ + required this.address, + this.roadAddress, + required this.latitude, + required this.longitude, + this.placeName, + this.addressType, + }); + + factory LocationModel.fromJson(Map json) { + return LocationModel( + address: json['address'], + roadAddress: json['roadAddress'], + latitude: (json['latitude'] as num).toDouble(), + longitude: (json['longitude'] as num).toDouble(), + placeName: json['placeName'], + addressType: json['addressType'], + ); + } + + // 표시할 주소 (도로명 우선) + String get displayAddress => roadAddress ?? address; +} \ No newline at end of file diff --git a/lib/features/map/screens/map_screen.dart b/lib/features/map/screens/map_screen.dart new file mode 100644 index 0000000..4de8d8a --- /dev/null +++ b/lib/features/map/screens/map_screen.dart @@ -0,0 +1,192 @@ +import 'package:flutter/material.dart'; +import 'package:webview_flutter/webview_flutter.dart'; +import 'package:guardpayfront/features/auth/widgets/bottom_nav.dart'; +import 'package:guardpayfront/features/map/services/map_service.dart'; +import 'package:guardpayfront/features/map/models/bank_model.dart'; +// ✅ 새로 만든 통합 검색바 import +import 'package:guardpayfront/features/map/widgets/IntegratedSearchBar.dart'; +class MapScreen extends StatefulWidget { + const MapScreen({super.key}); + + @override + State createState() => _MapScreenState(); +} + +class _MapScreenState extends State { + final MapService _mapService = MapService(); + late WebViewController _webViewController; + + String _selectedBank = '신한은행'; + double? _myLat; + double? _myLon; + String? _myAddress; + bool _isMapLoaded = false; + bool _isSearching = false; + int _foundBanksCount = 0; + + static const String _webViewUrl = 'http://10.0.2.2:8080/kakao-map.html'; + + @override + void initState() { + super.initState(); + _initializeWebView(); + } + + void _initializeWebView() { + _webViewController = WebViewController() + ..setJavaScriptMode(JavaScriptMode.unrestricted) + ..setBackgroundColor(Colors.white) + ..setNavigationDelegate(NavigationDelegate( + onPageFinished: (_) => _checkMapLoaded(), + )) + ..loadRequest(Uri.parse(_webViewUrl)); + } + + Future _checkMapLoaded() async { + await Future.delayed(const Duration(milliseconds: 500)); + try { + final result = await _webViewController.runJavaScriptReturningResult('typeof kakao !== "undefined"'); + if (result.toString() == 'true') setState(() => _isMapLoaded = true); + } catch (e) { + print('❌ Error checking Kakao SDK: $e'); + } + } + + // ==================== ✅ 통합 검색 핸들러 ==================== + // IntegratedSearchBar에서 은행과 위치를 한 번에 받아서 처리 + Future _handleIntegratedSearch(String bank, double lat, double lon, String address) async { + if (!_isMapLoaded) { + _showSnackBar('지도 로딩 중입니다.'); + return; + } + + setState(() { + _selectedBank = bank; + _myLat = lat; + _myLon = lon; + _myAddress = address; + _foundBanksCount = 0; + }); + + // 1. 지도 이동 + await _moveMapToLocation(lat, lon); + + // 2. 이동한 위치 주변의 은행 검색 + await _searchBanks(); + + _showSnackBar('📍 $address ($bank) 검색 완료', isSuccess: true); + } + + Future _moveMapToLocation(double lat, double lon) async { + await _webViewController.runJavaScript(''' + if (typeof map !== 'undefined') { + var moveLatLon = new kakao.maps.LatLng($lat, $lon); + map.setCenter(moveLatLon); + if (typeof setMyLocation === 'function') setMyLocation($lat, $lon); + } + '''); + } + + Future _searchBanks() async { + if (_myLat == null || _myLon == null) return; + _setSearchingState(true); + try { + final banks = await _mapService.searchBanks(_selectedBank, _myLat!, _myLon!); + _handleBankSearchResult(banks); + } catch (e) { + _showSnackBar('은행 정보 로딩 실패', isError: true); + } finally { + _setSearchingState(false); + } + } + + void _handleBankSearchResult(List banks) { + setState(() => _foundBanksCount = banks.length); + _webViewController.runJavaScript('if(typeof clearBankMarkers === "function") clearBankMarkers();'); + + if (banks.isEmpty) { + _showSnackBar('주변 5km 이내에 $_selectedBank 지점이 없습니다.', isWarning: true); + } else { + for (var bank in banks) { + final jsCode = ''' + if(typeof addBankMarker === "function") { + addBankMarker(${bank.lat}, ${bank.lon}, "${bank.fullName}", "${bank.roadAddress ?? bank.address}"); + } + '''; + _webViewController.runJavaScript(jsCode); + } + } + } + + void _setSearchingState(bool isSearching) => setState(() => _isSearching = isSearching); + + void _showSnackBar(String message, {bool isSuccess = false, bool isWarning = false, bool isError = false}) { + if (!mounted) return; + Color color = Colors.grey[800]!; + if (isSuccess) color = Colors.green; + if (isWarning) color = Colors.orange; + if (isError) color = Colors.red; + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(message), backgroundColor: color, duration: const Duration(seconds: 2))); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Stack( + children: [ + WebViewWidget(controller: _webViewController), + if (!_isMapLoaded) const Center(child: CircularProgressIndicator()), + if (_isSearching) + Container( + color: Colors.black12, + child: const Center(child: CircularProgressIndicator()) + ), + + // ✅ [수정됨] 통합 검색바 하나만 배치 + Positioned( + top: 50, + left: 16, + right: 16, + child: IntegratedSearchBar( + initialBank: _selectedBank, + onSearchCompleted: _handleIntegratedSearch, + ), + ), + + // 하단 정보 카드 + if (_myLat != null && _myLon != null) + Positioned( + bottom: 20, + left: 16, + right: 16, + child: Card( + elevation: 4, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Row(children: [ + const Icon(Icons.location_on, color: Colors.blue, size: 20), + const SizedBox(width: 8), + Expanded(child: Text(_myAddress ?? '', overflow: TextOverflow.ellipsis)), + ]), + if (_foundBanksCount > 0) ...[ + const SizedBox(height: 8), + Row(children: [ + const Icon(Icons.account_balance, color: Colors.green, size: 20), + const SizedBox(width: 8), + Text('$_selectedBank: $_foundBanksCount개 발견', style: const TextStyle(fontWeight: FontWeight.bold)), + ]), + ] + ], + ), + ), + ), + ), + ], + ), + bottomNavigationBar: const BottomNav(selectedIndex: 4), + ); + } +} \ No newline at end of file diff --git a/lib/features/map/services/map_service.dart b/lib/features/map/services/map_service.dart new file mode 100644 index 0000000..5a9cd66 --- /dev/null +++ b/lib/features/map/services/map_service.dart @@ -0,0 +1,127 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:guardpayfront/features/map/models/bank_model.dart'; +import 'package:guardpayfront/features/map/models/location_model.dart'; + +class MapService { + final storage = const FlutterSecureStorage(); + + // ✅ 백엔드 URL 설정 + static const String baseUrl = 'http://10.0.2.2:8080'; // 에뮬레이터용 + // static const String baseUrl = 'http://192.168.x.x:8080'; // 실제 기기용 + + /// 주소 검색 (카카오 API를 통한 검색) + Future> searchAddressList(String query) async { + try { + print('📍 주소 검색 요청: $query'); + + final response = await http.get( + Uri.parse('$baseUrl/api/location/search?query=${Uri.encodeComponent(query)}'), + headers: { + 'Content-Type': 'application/json; charset=UTF-8', + }, + ).timeout(const Duration(seconds: 10)); + + print('📡 Response status: ${response.statusCode}'); + + if (response.statusCode == 200) { + final List data = json.decode(utf8.decode(response.bodyBytes)); + print('✅ 검색 결과: ${data.length}개'); + + return data + .map((json) => LocationModel.fromJson(json)) + .toList(); + } else { + print('❌ 주소 검색 실패: ${response.statusCode}'); + print('Response body: ${utf8.decode(response.bodyBytes)}'); + return []; + } + } catch (e) { + print('❌ 주소 검색 에러: $e'); + return []; + } + } + + /// 5km 반경 내 은행 검색 + Future> searchBanks( + String bankName, + double lat, + double lng, + ) async { + try { + final accessToken = await storage.read(key: 'accessToken'); + + if (accessToken == null) { + throw Exception('로그인이 필요합니다.'); + } + + print('🏦 은행 검색 요청: $bankName at ($lat, $lng)'); + + final uri = Uri.parse('$baseUrl/api/banks/nearby').replace( + queryParameters: { + 'bankName': bankName, + 'latitude': lat.toString(), + 'longitude': lng.toString(), + 'radius': '5000', // 5km + }, + ); + + print('📡 Request URL: $uri'); + + final response = await http.get( + uri, + headers: { + 'Authorization': 'Bearer $accessToken', + 'Content-Type': 'application/json; charset=UTF-8', + }, + ).timeout(const Duration(seconds: 15)); + + print('📡 Response status: ${response.statusCode}'); + + if (response.statusCode == 200) { + final List data = json.decode(utf8.decode(response.bodyBytes)); + print('✅ 은행 검색 결과: ${data.length}개'); + + return data + .map((json) => BankModel.fromJson(json)) + .toList(); + } else if (response.statusCode == 401) { + throw Exception('인증이 만료되었습니다. 다시 로그인해주세요.'); + } else { + print('❌ 은행 검색 실패: ${response.statusCode}'); + print('Response body: ${utf8.decode(response.bodyBytes)}'); + throw Exception('은행 검색 실패: ${response.statusCode}'); + } + } catch (e) { + print('❌ 은행 검색 에러: $e'); + rethrow; + } + } + + /// 키워드 검색 (선택적) + Future> searchKeyword(String keyword) async { + try { + print('🔍 키워드 검색: $keyword'); + + final response = await http.get( + Uri.parse('$baseUrl/api/location/search/keyword?keyword=${Uri.encodeComponent(keyword)}'), + headers: { + 'Content-Type': 'application/json; charset=UTF-8', + }, + ).timeout(const Duration(seconds: 10)); + + if (response.statusCode == 200) { + final List data = json.decode(utf8.decode(response.bodyBytes)); + return data + .map((json) => LocationModel.fromJson(json)) + .toList(); + } + + return []; + } catch (e) { + print('❌ 키워드 검색 에러: $e'); + return []; + } + } +} \ No newline at end of file diff --git a/lib/features/map/widgets/IntegratedSearchBar.dart b/lib/features/map/widgets/IntegratedSearchBar.dart new file mode 100644 index 0000000..5cec1e5 --- /dev/null +++ b/lib/features/map/widgets/IntegratedSearchBar.dart @@ -0,0 +1,217 @@ +import 'package:flutter/material.dart'; +import 'package:guardpayfront/features/map/services/map_service.dart'; +import 'package:guardpayfront/features/map/models/location_model.dart'; + +class IntegratedSearchBar extends StatefulWidget { + final String initialBank; + final Function(String bank, double lat, double lon, String address) onSearchCompleted; + + const IntegratedSearchBar({ + super.key, + required this.initialBank, + required this.onSearchCompleted, + }); + + @override + State createState() => _IntegratedSearchBarState(); +} + +class _IntegratedSearchBarState extends State { + final TextEditingController _searchController = TextEditingController(); + final MapService _mapService = MapService(); + final FocusNode _focusNode = FocusNode(); + + late String _selectedBank; + List _searchResults = []; + bool _isSearching = false; + bool _showResults = false; + + @override + void initState() { + super.initState(); + _selectedBank = widget.initialBank; + } + + @override + void dispose() { + _searchController.dispose(); + _focusNode.dispose(); + super.dispose(); + } + + /// 주소 검색 API 호출 + Future _searchAddress(String query) async { + if (query.trim().isEmpty) { + setState(() { + _searchResults = []; + _showResults = false; + }); + return; + } + + setState(() { + _isSearching = true; + _showResults = true; + }); + + try { + // 입력된 지역명 + 선택된 은행명으로 검색 (예: "강남 신한은행") + final finalQuery = "$query $_selectedBank"; + print("🔎 통합 검색 요청: $finalQuery"); + + final results = await _mapService.searchAddressList(finalQuery); + + setState(() { + _searchResults = results; + _isSearching = false; + }); + } catch (e) { + print('❌ 검색 에러: $e'); + setState(() { + _searchResults = []; + _isSearching = false; + }); + } + } + + /// 검색 결과 선택 시 처리 + void _selectLocation(LocationModel location) { + _searchController.text = location.placeName ?? location.address; + + setState(() { + _showResults = false; + _searchResults = []; + }); + _focusNode.unfocus(); + + // ✅ 부모에게 [은행, 위도, 경도, 주소] 모두 전달 + widget.onSearchCompleted( + _selectedBank, + location.latitude, + location.longitude, + location.displayAddress, + ); + } + + @override + Widget build(BuildContext context) { + return Column( + children: [ + // 🔹 통합 검색바 (Card 하나에 Row로 배치) + Card( + elevation: 4, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + child: Row( + children: [ + // 1. 은행 선택 드롭다운 (왼쪽) + DropdownButtonHideUnderline( + child: DropdownButton( + value: _selectedBank, + icon: const Icon(Icons.arrow_drop_down, color: Colors.green), + style: const TextStyle(color: Colors.black, fontWeight: FontWeight.bold), + onChanged: (String? newValue) { + if (newValue != null) { + setState(() { + _selectedBank = newValue; + }); + // 은행을 바꾸면, 현재 입력된 주소로 즉시 재검색 가능 + if (_searchController.text.isNotEmpty) { + _searchAddress(_searchController.text); + } + } + }, + items: [ + '신한은행', '국민은행', '우리은행', '하나은행', 'NH농협은행', + '기업은행', '부산은행', '대구은행', '경남은행', '광주은행', + '전북은행', '제주은행', '카카오뱅크', '케이뱅크', '토스뱅크' + ].map>((String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), + ), + ), + + // 구분선 + Container( + width: 1, + height: 24, + color: Colors.grey[300], + margin: const EdgeInsets.symmetric(horizontal: 8), + ), + + // 2. 주소 입력 필드 (오른쪽 확장) + Expanded( + child: TextField( + controller: _searchController, + focusNode: _focusNode, + decoration: const InputDecoration( + hintText: '지역 검색 (예: 강남구)', + border: InputBorder.none, + isDense: true, + ), + onChanged: (value) { + if (value.length >= 2) _searchAddress(value); + }, + onSubmitted: (value) { + if (_searchResults.isNotEmpty) { + _selectLocation(_searchResults[0]); + } + }, + ), + ), + + // 3. 검색 아이콘 또는 로딩바 + if (_isSearching) + const SizedBox(width: 20, height: 20, child: CircularProgressIndicator(strokeWidth: 2)) + else + IconButton( + icon: const Icon(Icons.search, color: Colors.blue), + onPressed: () { + if (_searchController.text.isNotEmpty) { + _searchAddress(_searchController.text); + } + }, + ), + ], + ), + ), + ), + + // 🔹 자동완성 결과 목록 (검색바 바로 아래 표시) + if (_showResults && _searchResults.isNotEmpty) + Container( + margin: const EdgeInsets.only(top: 4), + constraints: const BoxConstraints(maxHeight: 300), + child: Card( + elevation: 4, + child: ListView.builder( + shrinkWrap: true, + padding: EdgeInsets.zero, + itemCount: _searchResults.length, + itemBuilder: (context, index) { + final location = _searchResults[index]; + return ListTile( + dense: true, + leading: const Icon(Icons.place, size: 18, color: Colors.grey), + title: Text( + location.placeName ?? location.address, + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500), + ), + subtitle: Text( + location.address, + style: TextStyle(fontSize: 12, color: Colors.grey[600]), + ), + onTap: () => _selectLocation(location), + ); + }, + ), + ), + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/features/map/widgets/LocationSearchBar.dart b/lib/features/map/widgets/LocationSearchBar.dart new file mode 100644 index 0000000..f183242 --- /dev/null +++ b/lib/features/map/widgets/LocationSearchBar.dart @@ -0,0 +1,199 @@ +// import 'package:flutter/material.dart'; +// import 'package:guardpayfront/features/map/services/map_service.dart'; +// import 'package:guardpayfront/features/map/models/location_model.dart'; +// +// class LocationSearchBar extends StatefulWidget { +// final Function(double lat, double lon, String address) onLocationSelected; +// final String? selectedBank; // ✅ 부모(MapScreen)로부터 은행 이름을 받습니다. +// +// const LocationSearchBar({ +// super.key, +// required this.onLocationSelected, +// this.selectedBank, +// }); +// +// @override +// State createState() => _LocationSearchBarState(); +// } +// +// class _LocationSearchBarState extends State { +// final TextEditingController _searchController = TextEditingController(); +// final MapService _mapService = MapService(); +// final FocusNode _focusNode = FocusNode(); +// +// List _searchResults = []; +// bool _isSearching = false; +// bool _showResults = false; +// +// // ✅ 은행이 바뀌면 검색 로직을 다시 수행할 수 있도록 감지 +// @override +// void didUpdateWidget(LocationSearchBar oldWidget) { +// super.didUpdateWidget(oldWidget); +// if (oldWidget.selectedBank != widget.selectedBank) { +// // 은행이 바뀌었고, 검색창에 텍스트가 있다면 즉시 재검색 수행 +// if (_searchController.text.isNotEmpty) { +// _searchAddress(_searchController.text); +// } +// } +// } +// +// @override +// void dispose() { +// _searchController.dispose(); +// _focusNode.dispose(); +// super.dispose(); +// } +// +// /// 주소 검색 +// Future _searchAddress(String query) async { +// if (query.trim().isEmpty) { +// setState(() { +// _searchResults = []; +// _showResults = false; +// }); +// return; +// } +// +// setState(() { +// _isSearching = true; +// _showResults = true; +// }); +// +// try { +// // ✅ [요구사항 1 해결] 검색어 조합 로직 +// // 입력값: "강남" + 선택된 은행: "국민은행" -> 최종검색어: "강남 국민은행" +// // 이렇게 보내면 백엔드가 카카오 API에 "강남 국민은행" + "BK9(은행코드)"로 요청합니다. +// String finalQuery = query; +// if (widget.selectedBank != null && widget.selectedBank!.isNotEmpty) { +// finalQuery = "$query ${widget.selectedBank}"; +// } +// +// print("🔎 검색 요청(조합됨): $finalQuery"); +// +// final results = await _mapService.searchAddressList(finalQuery); +// +// setState(() { +// _searchResults = results; +// _isSearching = false; +// }); +// } catch (e) { +// print('❌ 주소 검색 에러: $e'); +// setState(() { +// _searchResults = []; +// _isSearching = false; +// }); +// } +// } +// +// /// 주소 선택 +// void _selectAddress(LocationModel location) { +// // 선택 시 텍스트창은 깔끔하게 장소명으로 표시 +// _searchController.text = location.placeName ?? location.address; +// +// setState(() { +// _showResults = false; +// _searchResults = []; +// }); +// +// _focusNode.unfocus(); +// +// // ✅ [요구사항 2 해결] 부모(MapScreen)에게 좌표를 전달하여 지도 이동 트리거 +// widget.onLocationSelected( +// location.latitude, +// location.longitude, +// location.displayAddress, +// ); +// } +// +// @override +// Widget build(BuildContext context) { +// return Column( +// children: [ +// // 검색 입력 필드 +// Card( +// elevation: 4, +// child: Padding( +// padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), +// child: Row( +// children: [ +// const Icon(Icons.search, color: Colors.grey), +// const SizedBox(width: 8), +// Expanded( +// child: TextField( +// controller: _searchController, +// focusNode: _focusNode, +// decoration: InputDecoration( +// // 힌트 텍스트를 동적으로 변경하여 현재 어떤 은행을 검색하는지 알려줌 +// hintText: widget.selectedBank != null +// ? '${widget.selectedBank} 위치 검색 (예: 강남)' +// : '지역 검색 (예: 서울 강남구)', +// border: InputBorder.none, +// ), +// onChanged: (value) { +// if (value.length >= 2) { +// _searchAddress(value); +// } else { +// setState(() { +// _showResults = false; +// _searchResults = []; +// }); +// } +// }, +// onSubmitted: (value) { +// if (_searchResults.isNotEmpty) { +// _selectAddress(_searchResults[0]); +// } +// }, +// ), +// ), +// if (_isSearching) +// const SizedBox(width: 20, height: 20, child: CircularProgressIndicator(strokeWidth: 2)) +// else if (_searchController.text.isNotEmpty) +// IconButton( +// icon: const Icon(Icons.clear, size: 20), +// onPressed: () { +// _searchController.clear(); +// setState(() { +// _showResults = false; +// _searchResults = []; +// }); +// }, +// ), +// ], +// ), +// ), +// ), +// +// // 검색 결과 드롭다운 (기존 로직 유지) +// if (_showResults && _searchResults.isNotEmpty) +// Container( +// margin: const EdgeInsets.only(top: 4), +// constraints: const BoxConstraints(maxHeight: 300), +// child: Card( +// elevation: 4, +// child: ListView.builder( +// shrinkWrap: true, +// itemCount: _searchResults.length, +// itemBuilder: (context, index) { +// final location = _searchResults[index]; +// return ListTile( +// dense: true, +// leading: const Icon(Icons.location_on, color: Colors.blue, size: 20), +// title: Text( +// location.placeName ?? location.address, +// style: const TextStyle(fontSize: 14, fontWeight: FontWeight.bold), +// ), +// subtitle: Text( +// location.address, +// style: TextStyle(fontSize: 12, color: Colors.grey[600]), +// ), +// onTap: () => _selectAddress(location), +// ); +// }, +// ), +// ), +// ), +// ], +// ); +// } +// } \ No newline at end of file diff --git a/lib/features/map/widgets/bank_search_bar.dart b/lib/features/map/widgets/bank_search_bar.dart new file mode 100644 index 0000000..5a7c2f0 --- /dev/null +++ b/lib/features/map/widgets/bank_search_bar.dart @@ -0,0 +1,63 @@ +// import 'package:flutter/material.dart'; +// +// class BankSearchBar extends StatelessWidget { +// final String initialBank; +// final Function(String) onBankSelected; +// +// const BankSearchBar({ +// super.key, +// required this.initialBank, +// required this.onBankSelected, +// }); +// +// @override +// Widget build(BuildContext context) { +// return Card( +// elevation: 4, +// child: Padding( +// padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), +// child: Row( +// children: [ +// const Icon(Icons.account_balance, color: Colors.green), +// const SizedBox(width: 8), +// Expanded( +// child: DropdownButton( +// value: initialBank, +// isExpanded: true, +// underline: const SizedBox(), +// items: [ +// '신한은행', +// '국민은행', +// '우리은행', +// '하나은행', +// 'NH농협은행', +// '기업은행', +// '부산은행', +// '대구은행', +// '경남은행', +// '광주은행', +// '전북은행', +// '제주은행', +// '카카오뱅크', +// '케이뱅크', +// '토스뱅크', +// ].map((String bank) { +// return DropdownMenuItem( +// value: bank, +// child: Text(bank), +// ); +// }).toList(), +// onChanged: (String? newBank) { +// if (newBank != null) { +// onBankSelected(newBank); +// } +// }, +// ), +// ), +// const Icon(Icons.arrow_drop_down, color: Colors.grey), +// ], +// ), +// ), +// ); +// } +// } \ No newline at end of file diff --git a/lib/features/map/widgets/location_search_bar.dart b/lib/features/map/widgets/location_search_bar.dart new file mode 100644 index 0000000..f183242 --- /dev/null +++ b/lib/features/map/widgets/location_search_bar.dart @@ -0,0 +1,199 @@ +// import 'package:flutter/material.dart'; +// import 'package:guardpayfront/features/map/services/map_service.dart'; +// import 'package:guardpayfront/features/map/models/location_model.dart'; +// +// class LocationSearchBar extends StatefulWidget { +// final Function(double lat, double lon, String address) onLocationSelected; +// final String? selectedBank; // ✅ 부모(MapScreen)로부터 은행 이름을 받습니다. +// +// const LocationSearchBar({ +// super.key, +// required this.onLocationSelected, +// this.selectedBank, +// }); +// +// @override +// State createState() => _LocationSearchBarState(); +// } +// +// class _LocationSearchBarState extends State { +// final TextEditingController _searchController = TextEditingController(); +// final MapService _mapService = MapService(); +// final FocusNode _focusNode = FocusNode(); +// +// List _searchResults = []; +// bool _isSearching = false; +// bool _showResults = false; +// +// // ✅ 은행이 바뀌면 검색 로직을 다시 수행할 수 있도록 감지 +// @override +// void didUpdateWidget(LocationSearchBar oldWidget) { +// super.didUpdateWidget(oldWidget); +// if (oldWidget.selectedBank != widget.selectedBank) { +// // 은행이 바뀌었고, 검색창에 텍스트가 있다면 즉시 재검색 수행 +// if (_searchController.text.isNotEmpty) { +// _searchAddress(_searchController.text); +// } +// } +// } +// +// @override +// void dispose() { +// _searchController.dispose(); +// _focusNode.dispose(); +// super.dispose(); +// } +// +// /// 주소 검색 +// Future _searchAddress(String query) async { +// if (query.trim().isEmpty) { +// setState(() { +// _searchResults = []; +// _showResults = false; +// }); +// return; +// } +// +// setState(() { +// _isSearching = true; +// _showResults = true; +// }); +// +// try { +// // ✅ [요구사항 1 해결] 검색어 조합 로직 +// // 입력값: "강남" + 선택된 은행: "국민은행" -> 최종검색어: "강남 국민은행" +// // 이렇게 보내면 백엔드가 카카오 API에 "강남 국민은행" + "BK9(은행코드)"로 요청합니다. +// String finalQuery = query; +// if (widget.selectedBank != null && widget.selectedBank!.isNotEmpty) { +// finalQuery = "$query ${widget.selectedBank}"; +// } +// +// print("🔎 검색 요청(조합됨): $finalQuery"); +// +// final results = await _mapService.searchAddressList(finalQuery); +// +// setState(() { +// _searchResults = results; +// _isSearching = false; +// }); +// } catch (e) { +// print('❌ 주소 검색 에러: $e'); +// setState(() { +// _searchResults = []; +// _isSearching = false; +// }); +// } +// } +// +// /// 주소 선택 +// void _selectAddress(LocationModel location) { +// // 선택 시 텍스트창은 깔끔하게 장소명으로 표시 +// _searchController.text = location.placeName ?? location.address; +// +// setState(() { +// _showResults = false; +// _searchResults = []; +// }); +// +// _focusNode.unfocus(); +// +// // ✅ [요구사항 2 해결] 부모(MapScreen)에게 좌표를 전달하여 지도 이동 트리거 +// widget.onLocationSelected( +// location.latitude, +// location.longitude, +// location.displayAddress, +// ); +// } +// +// @override +// Widget build(BuildContext context) { +// return Column( +// children: [ +// // 검색 입력 필드 +// Card( +// elevation: 4, +// child: Padding( +// padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), +// child: Row( +// children: [ +// const Icon(Icons.search, color: Colors.grey), +// const SizedBox(width: 8), +// Expanded( +// child: TextField( +// controller: _searchController, +// focusNode: _focusNode, +// decoration: InputDecoration( +// // 힌트 텍스트를 동적으로 변경하여 현재 어떤 은행을 검색하는지 알려줌 +// hintText: widget.selectedBank != null +// ? '${widget.selectedBank} 위치 검색 (예: 강남)' +// : '지역 검색 (예: 서울 강남구)', +// border: InputBorder.none, +// ), +// onChanged: (value) { +// if (value.length >= 2) { +// _searchAddress(value); +// } else { +// setState(() { +// _showResults = false; +// _searchResults = []; +// }); +// } +// }, +// onSubmitted: (value) { +// if (_searchResults.isNotEmpty) { +// _selectAddress(_searchResults[0]); +// } +// }, +// ), +// ), +// if (_isSearching) +// const SizedBox(width: 20, height: 20, child: CircularProgressIndicator(strokeWidth: 2)) +// else if (_searchController.text.isNotEmpty) +// IconButton( +// icon: const Icon(Icons.clear, size: 20), +// onPressed: () { +// _searchController.clear(); +// setState(() { +// _showResults = false; +// _searchResults = []; +// }); +// }, +// ), +// ], +// ), +// ), +// ), +// +// // 검색 결과 드롭다운 (기존 로직 유지) +// if (_showResults && _searchResults.isNotEmpty) +// Container( +// margin: const EdgeInsets.only(top: 4), +// constraints: const BoxConstraints(maxHeight: 300), +// child: Card( +// elevation: 4, +// child: ListView.builder( +// shrinkWrap: true, +// itemCount: _searchResults.length, +// itemBuilder: (context, index) { +// final location = _searchResults[index]; +// return ListTile( +// dense: true, +// leading: const Icon(Icons.location_on, color: Colors.blue, size: 20), +// title: Text( +// location.placeName ?? location.address, +// style: const TextStyle(fontSize: 14, fontWeight: FontWeight.bold), +// ), +// subtitle: Text( +// location.address, +// style: TextStyle(fontSize: 12, color: Colors.grey[600]), +// ), +// onTap: () => _selectAddress(location), +// ); +// }, +// ), +// ), +// ), +// ], +// ); +// } +// } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 614bfc2..f06f63b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,6 +6,8 @@ import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; // ⬇️ AuthService 임포트 (경로를 프로젝트에 맞게 수정하세요) import 'features/auth/services/auth_service.dart'; // +// ⬇️ kakao_map_plugin 제거하고 webview_flutter 사용 +// import 'package:kakao_map_plugin/kakao_map_plugin.dart'; import 'config/theme.dart'; import 'features/auth/screens/login_screen.dart'; import 'features/auth/screens/signup_screen.dart'; diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 3df4e30..f06feec 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -14,6 +14,7 @@ import path_provider_foundation import shared_preferences_foundation import sqflite_darwin import url_launcher_macos +import webview_flutter_wkwebview import window_to_front func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { @@ -26,5 +27,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) + WebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "WebViewFlutterPlugin")) WindowToFrontPlugin.register(with: registry.registrar(forPlugin: "WindowToFrontPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 740a750..43b5a59 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -720,6 +720,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.4.1" + shelf: + dependency: "direct main" + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_static: + dependency: "direct main" + description: + name: shelf_static + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 + url: "https://pub.dev" + source: hosted + version: "1.1.3" sky_engine: dependency: transitive description: flutter @@ -925,6 +941,38 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + webview_flutter: + dependency: "direct main" + description: + name: webview_flutter + sha256: c3e4fe614b1c814950ad07186007eff2f2e5dd2935eba7b9a9a1af8e5885f1ba + url: "https://pub.dev" + source: hosted + version: "4.13.0" + webview_flutter_android: + dependency: transitive + description: + name: webview_flutter_android + sha256: "9a25f6b4313978ba1c2cda03a242eea17848174912cfb4d2d8ee84a556f248e3" + url: "https://pub.dev" + source: hosted + version: "4.10.1" + webview_flutter_platform_interface: + dependency: transitive + description: + name: webview_flutter_platform_interface + sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0" + url: "https://pub.dev" + source: hosted + version: "2.14.0" + webview_flutter_wkwebview: + dependency: transitive + description: + name: webview_flutter_wkwebview + sha256: fb46db8216131a3e55bcf44040ca808423539bc6732e7ed34fb6d8044e3d512f + url: "https://pub.dev" + source: hosted + version: "3.23.0" win32: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index c2ffc12..c903479 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,6 +21,10 @@ dependencies: cached_network_image: ^3.3.1 youtube_player_flutter: ^9.1.3 flutter_inappwebview: ^6.0.0-beta.26 + #kakao_map_plugin: ^0.3.2 # 혹은 최신 버전 + webview_flutter: ^4.4.2 + shelf: ^1.4.1 # ✅ 추가 + shelf_static: ^1.1.2 # ✅ 추가 # ✅ 이미지 선택 관련 패키지 (갤러리/카메라) image_picker: ^1.1.2 @@ -39,3 +43,4 @@ flutter: assets: - assets/images/ - .env + diff --git a/web/index.html b/web/index.html index 7379ea4..f50cce9 100644 --- a/web/index.html +++ b/web/index.html @@ -31,6 +31,8 @@ guardpayfront + + From 021e511d62746e7c885683476ac82988178a15d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=A7=80=EC=9B=90?= Date: Sat, 22 Nov 2025 21:57:37 +0900 Subject: [PATCH 33/52] =?UTF-8?q?feat:=20=EC=A7=80=EB=8F=84=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/map/screens/map_screen.dart | 286 ++++++++++++++------- lib/features/map/services/map_service.dart | 5 +- local.properties | 4 +- pubspec.lock | 24 +- 4 files changed, 216 insertions(+), 103 deletions(-) diff --git a/lib/features/map/screens/map_screen.dart b/lib/features/map/screens/map_screen.dart index 4de8d8a..ed48b72 100644 --- a/lib/features/map/screens/map_screen.dart +++ b/lib/features/map/screens/map_screen.dart @@ -3,8 +3,8 @@ import 'package:webview_flutter/webview_flutter.dart'; import 'package:guardpayfront/features/auth/widgets/bottom_nav.dart'; import 'package:guardpayfront/features/map/services/map_service.dart'; import 'package:guardpayfront/features/map/models/bank_model.dart'; -// ✅ 새로 만든 통합 검색바 import import 'package:guardpayfront/features/map/widgets/IntegratedSearchBar.dart'; + class MapScreen extends StatefulWidget { const MapScreen({super.key}); @@ -20,6 +20,7 @@ class _MapScreenState extends State { double? _myLat; double? _myLon; String? _myAddress; + bool _isMapLoaded = false; bool _isSearching = false; int _foundBanksCount = 0; @@ -32,29 +33,44 @@ class _MapScreenState extends State { _initializeWebView(); } + // ============================ + // 🚀 WebView 초기 설정 + // ============================ void _initializeWebView() { _webViewController = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setBackgroundColor(Colors.white) - ..setNavigationDelegate(NavigationDelegate( - onPageFinished: (_) => _checkMapLoaded(), - )) - ..loadRequest(Uri.parse(_webViewUrl)); - } - Future _checkMapLoaded() async { - await Future.delayed(const Duration(milliseconds: 500)); - try { - final result = await _webViewController.runJavaScriptReturningResult('typeof kakao !== "undefined"'); - if (result.toString() == 'true') setState(() => _isMapLoaded = true); - } catch (e) { - print('❌ Error checking Kakao SDK: $e'); - } + // 🔥 핵심: kakaomap:// 앱 스킴 차단! + ..setNavigationDelegate( + NavigationDelegate( + onNavigationRequest: (NavigationRequest request) { + final url = request.url; + + // 앱 스킴 차단 + if (url.startsWith("kakaomap://")) { + print("🚫 카카오 앱 스킴 차단: $url"); + return NavigationDecision.prevent; + } + return NavigationDecision.navigate; + }, + ), + )..setNavigationDelegate( + NavigationDelegate( + onPageFinished: (_) async { + await Future.delayed(const Duration(milliseconds: 300)); + setState(() => _isMapLoaded = true); + }, + ), + ) + ..loadRequest(Uri.parse(_webViewUrl)); } - // ==================== ✅ 통합 검색 핸들러 ==================== - // IntegratedSearchBar에서 은행과 위치를 한 번에 받아서 처리 - Future _handleIntegratedSearch(String bank, double lat, double lon, String address) async { + // ============================ + // 🔎 통합 검색 완료 처리 + // ============================ + Future _handleIntegratedSearch(String bank, double lat, double lon, + String address) async { if (!_isMapLoaded) { _showSnackBar('지도 로딩 중입니다.'); return; @@ -68,33 +84,48 @@ class _MapScreenState extends State { _foundBanksCount = 0; }); - // 1. 지도 이동 + // 지도 이동 await _moveMapToLocation(lat, lon); - // 2. 이동한 위치 주변의 은행 검색 + // 백엔드 검색 (기능 유지) await _searchBanks(); + // 카카오 키워드 검색 (선택 은행) + await _webViewController.runJavaScript( + "searchBankByKeyword('${bank}');", + ); + _showSnackBar('📍 $address ($bank) 검색 완료', isSuccess: true); } + // ============================ + // 지도 이동 + // ============================ Future _moveMapToLocation(double lat, double lon) async { await _webViewController.runJavaScript(''' if (typeof map !== 'undefined') { - var moveLatLon = new kakao.maps.LatLng($lat, $lon); - map.setCenter(moveLatLon); - if (typeof setMyLocation === 'function') setMyLocation($lat, $lon); + var pos = new kakao.maps.LatLng($lat, $lon); + map.setCenter(pos); } '''); } + // ============================ + // 백엔드 은행 검색 (기존 기능 유지) + // ============================ Future _searchBanks() async { if (_myLat == null || _myLon == null) return; + _setSearchingState(true); try { - final banks = await _mapService.searchBanks(_selectedBank, _myLat!, _myLon!); + final banks = await _mapService.searchBanks( + _selectedBank, + _myLat!, + _myLon!, + ); _handleBankSearchResult(banks); } catch (e) { - _showSnackBar('은행 정보 로딩 실패', isError: true); + print('❌ 은행 검색 실패: $e'); } finally { _setSearchingState(false); } @@ -102,91 +133,172 @@ class _MapScreenState extends State { void _handleBankSearchResult(List banks) { setState(() => _foundBanksCount = banks.length); - _webViewController.runJavaScript('if(typeof clearBankMarkers === "function") clearBankMarkers();'); - - if (banks.isEmpty) { - _showSnackBar('주변 5km 이내에 $_selectedBank 지점이 없습니다.', isWarning: true); - } else { - for (var bank in banks) { - final jsCode = ''' - if(typeof addBankMarker === "function") { - addBankMarker(${bank.lat}, ${bank.lon}, "${bank.fullName}", "${bank.roadAddress ?? bank.address}"); - } - '''; - _webViewController.runJavaScript(jsCode); - } + + _webViewController.runJavaScript(""" + if (typeof clearBankMarkers === 'function') clearBankMarkers(); + """); + + for (var bank in banks) { + final js = """ + if (typeof addBankMarker === 'function') { + addBankMarker(${bank.lat}, ${bank.lon}, + "${bank.fullName}", + "${bank.roadAddress ?? bank.address}"); + } + """; + _webViewController.runJavaScript(js); } } - void _setSearchingState(bool isSearching) => setState(() => _isSearching = isSearching); + void _setSearchingState(bool isSearching) { + setState(() => _isSearching = isSearching); + } - void _showSnackBar(String message, {bool isSuccess = false, bool isWarning = false, bool isError = false}) { + // SnackBar + void _showSnackBar(String msg, {bool isSuccess = false}) { if (!mounted) return; - Color color = Colors.grey[800]!; - if (isSuccess) color = Colors.green; - if (isWarning) color = Colors.orange; - if (isError) color = Colors.red; - ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(message), backgroundColor: color, duration: const Duration(seconds: 2))); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(msg), + backgroundColor: isSuccess ? Colors.green : Colors.black87, + ), + ); } + // ============================ + // UI + // ============================ @override Widget build(BuildContext context) { - return Scaffold( - body: Stack( - children: [ - WebViewWidget(controller: _webViewController), - if (!_isMapLoaded) const Center(child: CircularProgressIndicator()), - if (_isSearching) - Container( - color: Colors.black12, - child: const Center(child: CircularProgressIndicator()) - ), + return WillPopScope( + onWillPop: () async { + // WebView 뒤로갈 페이지가 있으면 WebView에서 뒤로가기 실행 + if (await _webViewController.canGoBack()) { + _webViewController.goBack(); + return false; // 앱 자체의 뒤로가기는 막음 + } + return true; // 더 이상 뒤로갈 페이지 없으면 앱 뒤로가기 + }, - // ✅ [수정됨] 통합 검색바 하나만 배치 - Positioned( - top: 50, - left: 16, - right: 16, - child: IntegratedSearchBar( - initialBank: _selectedBank, - onSearchCompleted: _handleIntegratedSearch, + child: Scaffold( + body: Stack( + children: [ + WebViewWidget(controller: _webViewController), + Positioned( + top: 8, + left: 16, + child: Material( + elevation: 4, + borderRadius: BorderRadius.circular(12), + child: InkWell( + onTap: () async { + if (await _webViewController.canGoBack()) { + _webViewController.goBack(); + } + }, + borderRadius: BorderRadius.circular(12), + child: Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.arrow_back_ios_new, + color: Colors.black87, + size: 20, + ), + ), + ), + ), + ),Positioned( + top: 8, + left: 16, + child: Material( + elevation: 4, + borderRadius: BorderRadius.circular(12), + child: InkWell( + onTap: () async { + if (await _webViewController.canGoBack()) { + _webViewController.goBack(); + } + }, + borderRadius: BorderRadius.circular(12), + child: Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.arrow_back_ios_new, + color: Colors.black87, + size: 20, + ), + ), + ), + ), ), - ), - // 하단 정보 카드 - if (_myLat != null && _myLon != null) + + if (!_isMapLoaded) + const Center(child: CircularProgressIndicator()), + + if (_isSearching) + Container( + color: Colors.black12, + child: const Center(child: CircularProgressIndicator()), + ), + Positioned( - bottom: 20, + top: 50, left: 16, right: 16, - child: Card( - elevation: 4, - child: Padding( - padding: const EdgeInsets.all(16), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Row(children: [ - const Icon(Icons.location_on, color: Colors.blue, size: 20), - const SizedBox(width: 8), - Expanded(child: Text(_myAddress ?? '', overflow: TextOverflow.ellipsis)), - ]), - if (_foundBanksCount > 0) ...[ - const SizedBox(height: 8), + child: IntegratedSearchBar( + initialBank: _selectedBank, + onSearchCompleted: _handleIntegratedSearch, + ), + ), + + if (_myAddress != null) + Positioned( + bottom: 20, + left: 16, + right: 16, + child: Card( + elevation: 4, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + children: [ Row(children: [ - const Icon(Icons.account_balance, color: Colors.green, size: 20), + const Icon(Icons.location_on, color: Colors.blue), const SizedBox(width: 8), - Text('$_selectedBank: $_foundBanksCount개 발견', style: const TextStyle(fontWeight: FontWeight.bold)), + Expanded(child: Text(_myAddress!)), ]), - ] - ], + if (_foundBanksCount > 0) + Padding( + padding: const EdgeInsets.only(top: 8), + child: Row(children: [ + const Icon( + Icons.account_balance, color: Colors.green), + const SizedBox(width: 8), + Text( + "${_selectedBank} $_foundBanksCount개 발견", + style: const TextStyle( + fontWeight: FontWeight.bold), + ), + ]), + ), + ], + ), ), ), ), - ), - ], + ], + ), + bottomNavigationBar: const BottomNav(selectedIndex: 4), ), - bottomNavigationBar: const BottomNav(selectedIndex: 4), ); } } \ No newline at end of file diff --git a/lib/features/map/services/map_service.dart b/lib/features/map/services/map_service.dart index 5a9cd66..5259c85 100644 --- a/lib/features/map/services/map_service.dart +++ b/lib/features/map/services/map_service.dart @@ -3,9 +3,10 @@ import 'package:http/http.dart' as http; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:guardpayfront/features/map/models/bank_model.dart'; import 'package:guardpayfront/features/map/models/location_model.dart'; +import 'package:guardpayfront/core/services/storage.dart'; class MapService { - final storage = const FlutterSecureStorage(); + final storage = AppStorage.storage; // ✅ 백엔드 URL 설정 static const String baseUrl = 'http://10.0.2.2:8080'; // 에뮬레이터용 @@ -94,7 +95,7 @@ class MapService { throw Exception('은행 검색 실패: ${response.statusCode}'); } } catch (e) { - print('❌ 은행 검색 에러: $e'); + print(' 로딩중: $e'); rethrow; } } diff --git a/local.properties b/local.properties index 0c7530a..3f554cf 100644 --- a/local.properties +++ b/local.properties @@ -4,6 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Thu Nov 13 13:43:02 KST 2025 +#Fri Nov 21 12:44:03 KST 2025 flutter.sdk=C\:\\flutter -sdk.dir=C\:\\Users\\Kim\\AppData\\Local\\Android\\Sdk +sdk.dir=/Users/kimjiwon/Library/Android/sdk diff --git a/pubspec.lock b/pubspec.lock index 43b5a59..c738e41 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -508,26 +508,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -556,10 +556,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" mime: dependency: transitive description: @@ -833,10 +833,10 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.7" typed_data: dependency: transitive description: @@ -921,10 +921,10 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: From 68095845c7ee0984a5f06fbbeefce00e42961f05 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Mon, 24 Nov 2025 13:58:42 +0900 Subject: [PATCH 34/52] =?UTF-8?q?[Fix]=20:=20=C3=AB=C3=A3mapScreen=20?= =?UTF-8?q?=C3=AB=EB=B3=91=ED=95=A9=EC=B6=A9=EB=8F=8C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20707 -> 20741 bytes lib/features/map/screens/map_screen.dart | 1 - 4 files changed, 1 deletion(-) diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 89d669ef5843bb055e72ca52f2a9197243409a7b..1b658f1fa8d3f2d4ff8e598671bb751d5d9da016 100644 GIT binary patch delta 2468 zcmaJ>do+}J7#>!Unspg_jHxi^xYW|c*2$KYlujkNWRT4zAw)EtBMFu0>|wQbyrHzt zZo8eWRYFW1w-S~6mK2p`$nKu4F(a*zF82H0_nUwAkLH}2dEVReJn!$jv{q@iR%w^Z zx9U{c^@PJhkEJXK11}E|%Ax}Zx zHUZP6yb7k<*mh+lY$0$1QV7&SDS;YL5U2(tPi(#p8wgy3L{H?F6L+8(e2xmB(G$s= z;0d)g!dx#LybaC-?mz;8J~&6<33PiQRWDH)M}b4C04%+css|jskwF151p47Dfj;OY z@CarIJOl?HZ0?3|0}F#AdA2Ys3q_hjHQY|SAqk7f`tSJ{sA8Xe=`{o6jON^?>ZGdy>?DPl^Vs{|WgJJ@+ z;T{29&{)Zl(xaccQ;~2;9k*m38nff)OpKC-51JB2X8CIEd|0=QBVA`-0d> z^(nX&i`hbO4HZEbWpm*<^%lTbI5)(Ug_mS6)1nU~UEB12!SuNIgbRSDx@NXd*dDubXi6_9?5Tvmakj3{X3oVMmeKO1v}C=a(yh67TYk6aOrL@) zPLRdrJaBLqnC2##e^_G>bH#)&b!xlN#Pz&J7pA+>#S}_K2n^4^=1J`jEpT}(-hS{Y z*EtShyV2RC#@Qs!Dri;#vK%b;;gbD1$k>N11}8C4U~nNEgI>6acaUm8L)VY$vj>hy zFNhCp{=<3iGT(9YYEHd^Wfe-k@UTjbb167*xmM?5UAY@qEW@IY_paMcRTa|f$)QLOEJ+JJZZNdB?HKYF&1u+t^+{NAv@ug6(H; zLwZnDr@043b(WpAG*>3R8gG9dv`5~#r(?fC0XLgZm%_%CdF1hKDbh$5q2z`ho1Wvf z#TjnzX0EsBM_6!U0l1joBM)tJi^9(Ko;bZ?N3mux3EBvb!d)b|*kTz5{%qj>tMkO_ zj_CV4%1vIhshxPMI8HCJqGiMUFI~a>EM~r9_G`FnRfD|drMo!gM*OVa4?!v1gulkC zA9;1JmOhrxsKd-pnGM!;8E{<*XeW#A=U6xwjb{~$zPP(Q9s`RQG#Le5c_Q$kV4p^U z`sI{;3!O0{;fwBh5#hR_{D&=~vqaoDd9)^TXTNJD4HmMxn4 z9bJo?CVft1g@kq6K4{<^r=ka512o3jvT}z&6(D_ArR!J9yUS50bl)lp(t}~Hn6QY>^|6S0DeM33xMbeAy`*o(GFO_WI zCX&Ic5Pc`Jyuu#`1B-oE2AufW@!7yg+cVDYNGh1cdkC#=*_mB!G5BRXFHuMKu#|fn Mj3!m4#dp~K2b$pguK)l5 delta 2723 zcmaKt3p7-D9LG_5TWYjsu4GiSB}&S&)y8h6hX&;tQXZ*@)*eO=D`87w=vN*g&k_;x zs4#>h(POhpX+1)bo+RnD+ur;8-+RuU&e`Uinfd(w-{1Srz0*)E*HA21P_k}xl41EC zP&3nIAOOtGD3CW(W{d>x^dx=C$i00K%zzQ^C={9LPNE?~24Bh|=o0act>-af6sW96 zFA1z65C{7RoPaz6$Dxw|z+@3RAA_F>#DJd&b4y5WdkwG*;z5lFlP5qcaZ7-S<`{Sq zmJvt<9|BpBM&JxIn`5feB-IoT(A&=gp#`Qo4c}W}hHThD;4CB($by>$GT}3U4A8Sg z=L~QqkPIgXBtboaQ}CWZ3TSUY=TvYakOmU&q?$lFbjDMlu#sN15w8F=H)22`*b+Dg z;RFhxoIoB7?x$d^6$a#jx)lcGgC&9U^a%yYoLpjsgXfUJjiy0Y0uSV@aquJ%SYz-7 zSV!O@1QIBPd;*uCi-UbZ6zJGs*)qtZ4QFChKqqa)5ThI>AE2O?bNkB%3tR>TTZ9r= zPM{cm;b3Ag1yWngTLgE>sT6$ZQw=*jjfb>gjIIPvJA_(DCQuE35U2rJdz7j{-yTQ4 zLPnmK34@M2IAD(>OX2fDHiKRWLLGc0fpws>2~VzqGl6Rm!+~}vN)6ydpdKWl6qq<* zf3aZifO0HE5U2tvfxGaEhQ#E?BcS1ka2WJHhPlRwVai*ZjQJL`zg?{1}4uh_2 z04?*C926BKQ!8G&c!jh_m&YELk&!(~yC>6WDgL$ociYAk=jxTMX#6(cK*5g{6QR&a zRVCo4KoCL&eF)D!H0xefDyucnMKOINR-eBat0#czW;{*es$XYheqFj|S5HN7S&jax z9@E0g7&ghduT{_fO7$kL`kzdCq5F~O8Im=^;qLh6grJ+&x7hS&$rT)@3Fe!%nC0Yf zU11oX|4w$m_r~bHjECJ7E0t!Zvti}fm9mCs?(6wF&kjD_ZFnWhs*x2hqv&EUmdF=I zdxrU^4X-|Q;4&-T!(F`Cj=Q)IO7J}%|3!E0q_lVqb0PoK@4^f*+N zO;XQPSex(Z+6@ zmTxG3$wgpKDlXVl8y2=5x)a&5G;X$7x^|K5tjL9|XBBL9!9MG_KG7XINo*BPo}B`9 zY5}n`>jnJ2C0iW6V`HT#`j!+$z5n|vuU>Yexl@ni2Ucvw78E0~g$HP4xuQ`HRpdun z$(4Kng%VX2gOM?{KL!mgPLJEyo5f3E^IXItN-=)EyWVxLSw4EE=yR&?JytA1@luEL zTT#ij38ysb>xxW*|6#?uShU#_;Pjztrjh9)ZAZvHOFTO;is=?S`KY(xe#5;%F_0&n05T51t;J#Xh#7@N+O?rBoH#CoDA zJQ{r8LfWB{ldmII)Jh29ZYBDDV_tG*FzClq*&i4q=k2{L>7$+MfIzT^yPx>=>8(!0`}f{`tIxs^S}Yx+MIyyt5d{0aBa?#E*JJC!HV&!sN1 z37I(huLd7fkGP(Q+e%Mty9>t@6QdK2Y-03sY5Op(f*1OCfTkC2;vts~W%ZQR?zuq= zGit8t|L#68*3O09VjSth7;3y`Gf&GC@WPAY|K>k*dDzCdS;ptnuz}cP3G4inDa0Qz zRCW61%01hZ_ATRX`%KmPuPEFRqSrnwODz(MU2U{OOt?oyFDVmf1zjFIl{p8ECNHS_ zX|Yd8jZxbO=MxL&aTJ(u#W9{?sdTqDid`3ZCOr=q?lM%ra`h(X|O#vgeeFlAOl Z*vEX$TF>iw0oII|WTbqiDA41YHn2gA->VzgWzUIk3}2+ Date: Mon, 24 Nov 2025 19:26:52 +0900 Subject: [PATCH 35/52] =?UTF-8?q?Stash=20=EC=A0=81=EC=9A=A9=20=EB=B0=8F=20?= =?UTF-8?q?=EB=B9=8C=EB=93=9C=20=ED=8C=8C=EC=9D=BC=20=EC=B6=A9=EB=8F=8C=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/hana_logo.png | Bin 0 -> 29086 bytes assets/images/ibk_logo.png | Bin 0 -> 8949 bytes assets/images/kakaobank_logo.jpg | Bin 0 -> 4526 bytes assets/images/kb_logo.png | Bin 0 -> 23566 bytes assets/images/nh_logo.png | Bin 0 -> 14382 bytes assets/images/shinhan_logo.png | Bin 0 -> 18028 bytes assets/images/toss_logo.png | Bin 0 -> 925412 bytes assets/images/woori_logo.png | Bin 0 -> 26244 bytes lib/features/auth/widgets/bottom_nav.dart | 8 +- lib/features/bank/models/transfer_models.dart | 69 ++++ .../screens/account_selection_screen.dart | 281 +++++++++++++++ .../bank/screens/mock_transfer_screen.dart | 335 ++++++++++++++++++ .../bank/screens/transfer_success_screen.dart | 58 +++ .../bank/services/transfer_service.dart | 143 ++++++++ lib/main.dart | 3 + 15 files changed, 896 insertions(+), 1 deletion(-) create mode 100644 assets/images/hana_logo.png create mode 100644 assets/images/ibk_logo.png create mode 100644 assets/images/kakaobank_logo.jpg create mode 100644 assets/images/kb_logo.png create mode 100644 assets/images/nh_logo.png create mode 100644 assets/images/shinhan_logo.png create mode 100644 assets/images/toss_logo.png create mode 100644 assets/images/woori_logo.png create mode 100644 lib/features/bank/models/transfer_models.dart create mode 100644 lib/features/bank/screens/account_selection_screen.dart create mode 100644 lib/features/bank/screens/mock_transfer_screen.dart create mode 100644 lib/features/bank/screens/transfer_success_screen.dart create mode 100644 lib/features/bank/services/transfer_service.dart diff --git a/assets/images/hana_logo.png b/assets/images/hana_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2ee34389e8b61bb4abb24d2d67dfe3a698333136 GIT binary patch literal 29086 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

%5&$A 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 ZIFV*rnlPhvHrO|C3bLv)wNhrG{|6~u%gX=& literal 0 HcmV?d00001 diff --git a/assets/images/ibk_logo.png b/assets/images/ibk_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..53408a63e0739ef85d01611132ecdff82e4bcd07 GIT binary patch literal 8949 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 P00000NkvXXu0mjfr-?kX literal 0 HcmV?d00001 diff --git a/assets/images/kakaobank_logo.jpg b/assets/images/kakaobank_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c62e8dfcc01e936afad5f6a1c29ca23db2cae6e GIT binary patch literal 4526 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 literal 0 HcmV?d00001 diff --git a/assets/images/nh_logo.png b/assets/images/nh_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9633e8a99a8650cf4c5de1405d412f56274084ad GIT binary patch literal 14382 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 literal 0 HcmV?d00001 diff --git a/assets/images/shinhan_logo.png b/assets/images/shinhan_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..020c3c851d26feb3e636d8d8dd4bdc69f0d1d339 GIT binary patch literal 18028 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ⅅFDv9_ryl3gr9%Rs$J>J@5%+d@55N;SSSuuOu6 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

a!qgT8BRg_c#?m6 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

$E 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 |`GzQ;a3B&U4t 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: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

-MebqVzcQHm&$KSZ+607V~c!I6TLp7WIcLNj1>leInpxw8M#3s_fv#Lh-NUcQqUHLe{`bXA#nRMa+v#ZVY z=)@BH`a`T+*V&gu-aQE2vs*ceZJymfK}(g$bE-;KRZ}vOKi4I*hK_7Z9}=YJ`P?~k z=Wg{qD4klCDZSQa|FfRP6_nFGdJB{<8S7P%@3U=TX2yFzy^RytVQtxFV(R{W79&3` ztSoOK>+Mz&2dxSFvx3v(yHRBq4A|g5X`-O*1b|0dz<}m$M18*L?h9Or7>pzeYdehgt{99HhejhEQxm^Mud~^^(DIIK`4;1(0 zA7ps5C+~TFm6jG}&?KVmgT#Ff^>$|%d6nMHv)r;qNhBfVl+%HQ% zIFN*VZ^~Gt7FLIK`ZicjNl~;B>3)ou`Qv;3ALW^^KE`&F2R!jQ76*d}a?eSTw>Ugi zRpQ1%RXuF~w|@x;^p7zpjozTvy<}8x$w6GM-Iehk;g+wSysR6oj`74jaH59+O z&v{(XJ>}6|@Jcj{dz5&?+o$|mQ%(*DdOP7(-@uhR9+zNryHE7;GDSyGJ)(BTilz!a zUZzNzT7-D;6e$k@*H9MMzh?Bfc|LD;>Uaf8-;~LA=sNrGz=4lpm1ZL~v(@?Vg+gCv z`H1%5XXvl2+8{W3Y`t#S^|F;A=fP@acOxVpH1lRPYg}%OgtgIXPrmBVT!(Z$x&nyyP z;$c+4-S&v8P5yKGT?33FulZ-w}F3Av#&}*OK2WL*Es- z-Tmc%hrb)9WOZ1@Hi@XOI~f!42jni%#o?!L@Pw&r!7>Cw(4dZ zJUA$lAj@=!f0e)JHo#_8D z#rMCd4t=m-d^Y|+T7X(OM0@+^B=nDSt=yowc&NL2ZfMw9r0*0G*i^*E)p+E3Nd6W1 z2ppKfAWEx4dNAX*xLv;1AZPW~QMmBlAUL7;95AzaZ7*6$SqqZM6u?+}uG=`nSUlY& zjYbmvxZfB0D&wOn{9t8FO}sjod*w}PNGpW$t)J{nqZVI+c!~AVzF<9ywt`75A&zpf zCZ2HEQPZq*e(m=6mPU(`u&j1JxzU!LPWsBGX1DL5(K!m$&CtdXDI49q=u$jrF3XY{ zI07kW%OI_BPu*ib3hJqhIVsuJKDFH85u3cb+LTSS8ATE;4BU@(Mhujby2sWsQfFF~ zMo(YRcZtLLh=jnqlh%l7C`w83$7rQx+>7R3Y!txN%!hVo{`b*;f_5qdPz()%nJ^?s zAKd=BoZagZIUXk)G?{g$1-;UkGzj%ciHd~NDorE;txo=qAsf8eMV=4R9{P{6yE^8D zufMvvF>Y{fP8Bo#wuvy6`h9e!Q`R_3&>Ye9Slbrd97E9bUiNsWNTyTIg32Ea`-Y`& z$_j?uKMesbo!?l##6@EYs`_Mx1uh1+6@6J-#;yLq!Vp1{QvRFUS}>Dvml%c(8aVTU zn}!+m8}r8KH}^X{H&cb5tFig#@M~Vz(4kQ_<>gLKkqhK@Wxd;cxUUjn)n<+hCX)~_ z@ba{Y?WUg3B0JW4ex12uj7UBTbtyssQgGJXEOSzS(^~TCnsImbEbS)!_O8Ju6S1Z8 zJG+*ic)_4qNaA4L_mREf!;Zh?3e4TeGoMX56O{W)J~?;Yg+pj8!-t|&ZV5OnUu7&LvlmD*Z%G-l1* z+CsnLF8BWrEVQznL!RCF5CC)k)fk+>;AeXKR(# zpW}J*iQ7ugL5xG0j5UZ~a}q};3`>*2v~S8cw5lW98;Yw4TOgCBupOVKTpUmu0chAs zCeh73T;8@iO`8@9@vr&f$TUF#xXxT|Q_!y9OK>&6tL&hG9Fz63A;65D?@*s}5hC0= z1EyB40Jx3fEDA{wNJ5BHLOMg)K(Cb)2g8hZ``MLDi%P>$lc}qjHA>u2#F7V1k{fmM z3*^4hjQ(+SXvCOlPUoGbIP;zbEO(D#MXSL>^@a_+H<9!z^PIPHq~p*K$vD4yZ;|ONyNEH5`uLXgxgjlbtnlLARb%&A-1_9PfDU-y-#w zfD_1W-|W%ul+Ng}Uc>r;<;0BZ>F%o7GvQjHH8y*q{E6Fo_C@=8H@Vz1^%(eYPNaktk%YO2oBFyq1Mgclu1LaIRjoaYs7Q=5y0Z01@Sov{x=3^IK-y@hOqa1*f#$ zm9C9h>DhTSglr?#`{t}9q`=tz8GnB(YGMmu$IBpInAK@$=`+ks(02Oc5^`JIfM}UB z@K&_1>%#Z7pWlJW0YQoW7^o~|=LT0JwGDc2&(D6q{@Gu=YkzdDed@i+(U}8YmOPK3 z2Wg`B$d{=eC1LxYAz|{>|8!PfoeVoPNo#avqvglO-MB8&3^r4Zw5mjYq=@xtS5TsJ z+$|-?TC$67;g88Xm;xt{e)6Di+;WNnXz9!)q<+vE9UD`@!-zgHwMBN3HVloZ^%+xo7|7 z)^U-_J!svC)<-dai_(AnQ9{&%j-=qrj}8>A%Vrh9;qRn@nuH`3+D}c^?eCd6htT4IBMpJe5W)N0Q(d zGaRxguJ&a!ab`Qyuc*gorutj6V}S6Rf5tS!&Ze~rsl*8;Xu$^5x2O<(Q?{JVH86>Gt^i;Lu7G}Frcas65Q~46 za=CpES{5`#a_cfVXBlV;R(!ajgwCj0VS-{tE6BOu3v3Z19y*`Z>}i%Rw z$S#0mzt5m|EyOU&ONc48lA=?V`*iQ8(oHFDmn;qmi#WU2&(qrj4hm1Rd;{2zZ)}+p z^9N%~tsUplxlbebQ2ZCS0;|%UQy4bH=twLXYLK@x!?pNxs4zvkn=bKeC+*70zRSm7 z+V;=;i&bpsF$J<|R7%)d?Y}}J&r+@<^3mF4Fb5epM@`MKwm|zoX2);)oIga-dyx&tler&;PPfcK312 zuP?-hYie+z5OvYY7DocaK$T}V6LV#5M=41g~ql|ns zV+1eFJF)0kRMWg|l{w|AkQ?a6DXRXyQg>yAO@1rX(WBD4B!MLBDh)uOdR{ukMVcs) z-?{x7&Ua?YYd*@p`h}HGL+v}#3Heg6%sT0*90z>;rwO_y3kudy0+=DiVUOo+cyI3| zp{HWTKAdU`HYL5CQL}6XC06a@Tim~ zg{%U^JX>l2`CsrEr?E{AdE?kC1Bc3fM6d#pti$FNCZKttc<1 z7^O#5b#Dh;fx`s-lJo439i{-k1w)Wbi!P@ax~)07KN`{v*gWQzIM;!i9hocXQ&{KJ zh@X*i?^^r^Md?O$rk+@(z-4CmqS_8Uejs(@#+XAC<=~PHX1B)VN77ZjPj3CzIXCae zxSlGeo>1AMP8%rQbGowFH+0Vs*_dwa?_sJu*9J2wY9j-;B}6Z)U>}#I)7_7D)?jP^ z{vl*iufF09rT!y_+saU#7LJk%+n?L^>Q?Q z5^bL2QxWBX=T*e%PM}7O)J?h-uXmFBvO@7C1+~N9VTdV+^67H@=HU%;;(tMT+Dgf= z?%#`Y%Fh$_l}1nyHL0}4wdoo+nots$}8!kw-{Zthdw2 zj=Yi(eAA|YwSIhKnK}!#@GOxZ+)JNq88>m@%^(Uv#+=h#xcrJuimMy{Dn=(XDJ;>p zK#1;un!Vt}rK+7tuN8ZR(`qgpboS7^7+)XlNuw^Xxwl3xXFS?qu={FD7@fheXj`W(935) zyCPqygz`7exYXR`d(nM8R>qcb?bdg7O!a=cho)E_Sha2deNSziDZ&2wdQ_5gaS<46 zW}I$%!@?yQYnuR^G&u2I68{!aWwE-)uJP9E#EXrYpfC@Gc_uO>ILCOwJVLfj8F)R- zlhQ(;l#FfmbhPAgw4fdsrsrHG4E^QBt|cQ*m6;0IP(qFG_;%dx+ubxM9D6Q4Nh#6m zxsG1Y`H{2Yq=y>(T_$4W(uAd&r4asT611So+GIbba;39ogvEO8Jv6B(hun0uHKDhu z7)Gv!!0ifmk5=vWcQ)A)S4k8KzLp9)-LyO^KvyQT82sO~9;ISQV;T4&xQ?_>zMa9C zFr|?EQaRtoZMMi9K<`lpb1cK12vO`MJ9_1}+KsectrLTt?|lQkbF@Vz=5I3H8>UIR z_#)P7DIPERN*?emKHGGe){BBOP)VPn*Nosf{i9y%@}Rlju$hk}@b1ro*2ysH&$#Id zKfoo&*Q?23ve5@6HYw#oz8U+M>I3RL>4X3(Os8YmHRK=`M#(oeHx6-!eUxPY!J-0;|yr z?HIWVsmX`@b5+3J%KI}R*~p*O3#Y$4t|)6)uT`^6`jh}p=DaMg9XJ@6EK8R2x~Cbr zuX16Yq=`@RlV9y#&h$Gg3<~mUW&vvu9btWFA?3enPk|viLSu4-du{qqz-yJSFhm=; zPXwi0uZ)9s*`7IH@a~Wed;yu#K-ZyS^dYsz@Gb2cTH2xkW<#XxxpTePnqIIzeU-Al z?bYW>J=wjk_EjR{r@4b48NT8x-rw)~aC75-f)!4m9CWvKJDFHXEi4gxjJV0}zkTIb zWX|-<8>%u{VPc=|K5W1EJ7rbnh6btfaJk_8T$P4qm|J2PR&Dk=o#)D9vk=mBqVgmw z!}15yh%_9~KVuaVHa{nzbF}IvMYmQ>q8)uhe5=M}`B3K-!cQgW%Hz&HlIVzzQ@)KX zU2U_C{0KMunk(9e@$g%hmEth~)lSZx(LK;E_#?~G^-=kr5@aA@ z1prrpp9h0B75fI(9$kWI{|bV(Zj~xe zWhfGw&yo*@5dlQp)fVHZpl;>=bDag=H({vYVm zqEMy&FX%(lu%e!{9^bG$K{djTZs3T^!GDM;`vl()w?=sl0zA2NvmY~|4H>g2WxdWR ze%&7T9jaxXE(Ga~IVrZlf!uDJPanLCzZU=cvhG!p^!&a-Q=%{8V~anE)rW7YsAoQC_$aog zXqY&rr{V0YlRkK&!nJFF?stui=A}HGQPjw-g$+7@!mTgxsBOM+scF_d*(o`%QC+Ef z@bRp9d%flm&d0&lzf54pRirt9Y}#t}0xDRMkQJ{_=%+j%Ni((1+J;34jQ&`Z*EH1d zt_uQ*e_$!NAtQrag|AO8IJDe040wt4u52QVju6h)bMvBqZr{rD+0M4L6ck-H$R)py zap)rpp!`$Twx~vHG?5mUwZ02R)~MyG&v&m(18E?d@E*)0=M(DwRQi+HyhW=7f@Bue zOsjjXAx(0BI~{y|$@_68TeC@U()F%#ec&Eu`?#G66m(;2KT&X~`5Zjs-X&yNjnV|I zl5#YP>E|2I8~dPCX}ddlrN8&a<5P1;UvFc4tD@~_j0&xgQ>QWM`W|H1XJ05=(ip#D zcBfb1R+DfatU}>0L3*=1D8RAvDiOwM*oYo&2s65F)u2)Br6aXQszEXiRfj8%l)B)2 zHh}=L!O8xjHvRWz56vJS6C$Y`jm*t*Y9Jr5+!TLz8dwt9wCHssbie%c&_8;q&c43J zT@GtvB;R7B*-?TvLEi~b!nxt%JuO;TbQ%W?s%b3vriA#v%(T5TvabD-? z_s~UwnfI6DHyBW}{^A6r_>9+d*I%PV2YFu1U++_1v4t#b{1kk@lJdUv(y20WG`X#0 zpQr6rxn6Y?=ahrx=_$qjpqeen?Fba~@9`{I>&LF_=>NwQ{xU%Ng4zM%#N#09?;C3I zPy{GU8OV5NB3I?pcz)Enpn*$m71K8vPm&=)wn(5QeeGR(ZeP1s4l{pkfljW?mg-V& z`ddOF2LX^+JLTQqLiUKFp|f*GuOg{Uj#!-~aN!ttu;$F`oQP~!LP{a@lFzR7V5gAG z#8}PvKjUNGgDVqnv(0-{S!|ChksJ5r9$5JuG zsPeZb)d&{NQSS(8u9X{XZm(ED%wqOU&0o--=7Uv!k(>oU6|K34i7ovpyQq>bS? zINhl5toYcV*&Q%b-r_&onX;_yT99!^TLyFUGLU&t_A7WR@L{zeKVJ&-2m@HdvN}kC zVQDM9OK43rgpi4A9U#kNld5yN_VF|WGcJn-(UMBFZ1DUWxDCfLBf^$G)vOsSVVx*%=tO(*0J^K za>I0wN}gAXUIokk-HQ`v>=U}fqksVcHol`z_0KA_Q-dGG$UnpV#EcxN(y0VeNvSGU z4#^=iTQIk2f^$pxro0Y=-|w}_RAA!!=HiNL%(55{`jr|UrJ^tEW)P2yxmAb0Z3 zxb#T)j^sPDMSm}S9clXIQtG>x64J%}>Z|2i+$rDdGKI5f-LB9Rdz0?SyDGkaOEgtieq>Y&k8wtq&*2Xs4j9Q;gdg%~1aDI>yrHe`n*>;eT}{LDmAtCx4}n zqfQ?lZwkR~4y76a$=}1vWWko?Lm( z3(1F_i*gd_|PxZx5`*H!4_!?I7(IqHh%~Z29G*ph7JB7uHHME?f#GZ zPi(4mSM63+71h?N6W>tF02HC_(Ji5;JyCZDS>|_pA{?#7biO zrPuZSo%`JPfBwih&WYsh^Lo9X&&R_pc<8og>O(~ZYdgO(J}4`7Z@+|9@sy z&ZXpLI!ShIs`*IQxu|r3 zV#tnCQR~~AvW{#tZ=2i#ZYrd&x;zOOpG^#5gf=fGIcZj1>%u^|{6Vy3`;~zDTnqQg zoRc+hzvdc}N+j|AMJVB{Cxxoj>MJZ!>2vaxFf*EH2NyqNA=M^%1cJ(CD8T~&nrWCq zx@uQap#FpXAW8MA!xhm|F!+fP1f)v`7pQb64I5xxaL3{*e%yNXH>uvSjrD&XFozyK zbNjX^Q8~xjvd%1VM&pT4`!#P7q+y!dwol@2ujz; zs>5&DUqDjHt$TBLe4Gmt;niH8DbId=kWH43wCyksfD^a_G4?`5Lte1NS(-7?W>_ zfYmW)=I<&rBT%;P6PwgR@~K)*Kq z`hkGK=&JRZO0}-#z)yP#GBB@{ywnxfv(G?06C&5(7IO|)3TDK*f=QK>90=!R!O64D zVNGcF-bJ^rS|) zGBsHL#-E#Cv>x$VOxGT5>5pG8{3WVlTI2NeG4KxCZ~e?ml7+IZkhO(&yEekpvICcdkjp4@XLv*DgTa9tl5$l9UaBs_8$$6#>F z?Jz|2r7guYUD#t`_y-!p9h&LHG-Hj$dvNi61ItZgYI+?x3x%)|8JD@vN%hz1*wtX=ahuKs&&nVwt}s z17;@Z`yQaL?sFtr;JQM3bt+XHmKPejf6=C4FVo|=i1YJOfhzpsvqMN_NN5hiZ)cwb zwtv*8{CTvt*2Q_q-}P105h?DO-Oj)-!}c$Mbk;8Y6C?T;(8TOdNu5nH=FDCCcf^$! zw}RLjfW>kTJd*(K;d5LW%z_rT7!6RsEA-ABm!8)D=e{m@{%KjRvsdKZTy}yHOMG+i1KDDW+V*89( zeyB{2Bxme9Sq4i$5nFEZ>;|$Qbl&k~FylsPYs|RLT!@Bj*ZD1m`;|i$xX{BX5}1*H zdQ=!tvQ;H6aQWO9;#LUHe4?!Nm~nfsX49~-us-3~-)RWUOG^mr3&k;3C4ZT?BI9}v zR{wYV{>a>yt@pT_8vX6qsb4|E2H^;$hNUQNJA?m{=~%j2=LQC)m9~RyDjBp}Q52dY z*y_1t#_xYk7U58&bJ4WcrTPb2@nOx{#*W}|i_nU)l8J;{3O(wT5ms75g+R385mg#K zLH3W4I`QY+L29fBS%g`h-j}1H1C>2rKjk#R11LdnUFoh&(lm^@)x5Rr>5R!h)hW4{UmE%b(KoE?Al8Chz!}9wT3K{S zx2l_$b1w{6kqS@a@7%zKM$viFPsI=Ke_$x8B86qazT6ZawCcp&d+GsXH_~GycB0L-ECQTU_Y) z?4Ii+7<0sR%f;OeVH;MXdOYNrARRe0;~LCpsstjg`Ft=^iFbs8*1IEACFA26 zfv}fbvarASC&MNO(zkp6-GAD*x&JNa@74GHZE}8ApdHR77l>>}tV3%2=8!ZxI;k&SY9iE;FtT1mMg_V8ur}Dhaqg8Ju_xY*q_^-IYbG}nS0@M zNNH&7?Z_YcA@nOomSHlc%q{gU%|l54IbGUv^`EzQ&^ace(m85miFO7M&>#R_KgXMe zzQw+!XuiBI!Y;2S3Sj2Dcdc z_LmE)glQ%O+_Xn5Q?M|j`APR^TuXF|O%Akf7HkQ4=rDd#EKn#_P%vP*;F}Tpm%_lP zMl~5d*X?3 zCTIO|xks2UZVJdP{zcrSMk6W)>#`=Vm$s0vQb4OtQr=fMB2*8x?Fz-U5WR1HUU_hO z(Qr}1H_(Ukp8K_}96>?wpWy_c_D&2vvF3xmlJKkjzTdZ+p9BSUTRvH-siX*d!`ugV zA2DR8<|pKfa6$SoOP^zR@J76lP;?%;F(x=zHe63sd22^_V^LWeIW4vev)qgzI$2XD z#zP7<6}o=#jGH5UZ5#O)xt_0F(_iDQaS`4Q6v(`t?}0qDNLRU*Qu?X_N1ddsO*QPt zoLBq1*`HF_`*`T_x5bQc`wMLklTUj$%@GkmFF|Y2fi! zbLMA>GXb38$gL7a)GN?HuO;~5u^>m6&nmQp@_x*HeD`+W(r&)KX25txbAXGGFuV`mrr0r{?R zRX}{^Ly@n>onP0(FkU?Upuo>`K3?A3HUAF3#y5sjmsnx4z*UODi3firCAThJ?FwUbT4CI8PCT!;=RP z+uMVs?94l9YvtpLUh|kw0$ywRM70bn%+oj}^TesdJi{|D6YjSwNSv6J*GUODiXj4p z$6ZcfSkCt;PoF89h@NQ}Sd51zwqEq?YQ(be3P=CArQ;?i$-xca&%B#m-z$8sbxkMx zNki+Yn3I6C2=8`=QgHItLt-iD#`_Y?4R3R0k1R@YL#~(66G`}pvFNK$pya3zSO+Gq z$mu87{GKj>mv}eKj26*MzmFUl_e@9Ip3XbSyg-TRwpYHNneTm*v&_hQbJ1~9jBRF` zwSL|zOS==1%qJ=YhlS&E)cz>n4;l`cdjK}};`@gsOE(kq0kqg#-tW8e5~2Bx<&S-Z z37|!d-m$`7V;pXsu)9dVO@A2CBRG;VCJD^xDM9oP9M7KnICIBKbMAp>s6$eA?QZBJ zjmMs`i&I^zx*vAz4FtH7a0Ti@;?GW1`DOrz`8OIH&%t<<2^N*|v|YN~#>V0LVuOmr z?0y9K)i#u5EqNWUS;sV|66!JSPN3%#hbOKv0GQOr4}l?GVkgYNTjE|zR7KW-wf#vb zcDi{_XCK)_FF`chCH*bqKG}2Y<68;QF%Vw*PUdasNK9V1ob7T|Af88AO^4 z`iv-gBD)*UKPx_ymXmHZWYEaL?I|NFq)K@laNDvJ+#@mqSH!z#&S)n^j2wxoElc5_8eEP7Rq|k*wUN)8 zn%lseXTgt#(_5YG+wR{`8o@$}NO(yquP-d14tcxpAa2|dv&^8z(|7Ow!vpsI6beC# zVqriyW%4^-9ek!mE+t|+P~+6yriPT)gZwG>`bZHJ%Hz?D$5sAIs8Eb&J@4ISmerdw zg}7>U^4ZK{YL+`-?dY-fgF2R5&Z^>v{G$v~Wc1yF!*(+(bQ{J88p~~w;o<^OkJ-_I z#$M2ct_PMs44SZ*N^1elo>iIU#h1%~2`6F%)p^w!wO|C2hWce@5~g%iJ;}ElyF~Yp z!#z%Qn4eyNBnbpxOj#i4oYKVxRbN7Qrb$&3?_6cft~k$-_J9U$jy6f1Y47d2zKyPJ z@ml%nTe9+%)AjF*i}Vy^3al`N(MQG77kn-ke7--y!*JxFzMP*0XIocQTQOA{2Ov1! zFodW>X`DrUmrvAXc^T%kGYX~n%dZ9`d2-9Dh-|I7#Ve0z3Y>Tj(4 z%A7+@Q+bv~8gT6_MpyxTf;dUc2tN$+0pklx2hUuEct?YfXa2PDc@`a(kt% z_s6TMqd-KBI`dRHk}15>AjU0oufaecKsz&1oEcZpmEiQOX--b|{!`|b$FI)LKr)uq z?un|a2WaQB7yUr^ACyD~FQk!JV80xg%FPV@c)zgE+A@7Xd^l#@iRyAe*zRC)%o7e7 zkWZj=T0~37{MoUUog7%$gUq|XSyGtRZwe|M#Dw0y-rjO!KNn(_VH1pyI5$9>!s%WA zT!3H?yt#;bn+)hRNDIz@4Je1lu(XYjLmqD9+<;b|XY3q7Pr{fzV#z!A;&Bq5W=;LI#M#!!) zm~j$VlZ0}r*%%{!3WFNwaQ5FBf6yOCuTipSHc!~nJjbTfov*3V0yzcnGlpkCIa+>@ zhTZSvq{jjAx37e(h*XBM^;~-H{78uUYoo5o^-fUIi=YFCKF;YTfAQDkc%D4Z;St~_ z>Z#Dfiwm-|5j-`VmL(mx0rnMHnbqhmhEl9(;2t|4o+!HVc}%N$fYHk_N_x>Un4s-& z`9%7Tu+PbWkr$vahw5XsYk{#}0$)1to9%Ggvt9K%G!)7J#euvmCE)kbDG?#m<)CD@ zvTtP5{dgf%Q+({h5?B$%OKk8r$4Aal?td|US24nb-n`A#vtvIldf5&d zPXPd+u^EUf5-kF(-s8M2p)Q^+enY@XUX6{Jt94x#V#o=9o2gSyvlFFXM$qwQ9!Uu?jDh38*kwV_j7A*^j-v&8?T#mbZMG*>iwKE zkGINhW-#q`n(&l;>qBZh?^MIMDi*@c220^V78r7Qz^M#W_QaV~si^sm^Tp)`Yg-6(`T79WNJ5G1~`84s{$7mBsOcYtfUq<8jQc zZrC5>J|mymY$lw=ctZPsBGi8WmP%~E;~}*{UUZZKcq`N}X@xuT?u%O@kz+SE;#9sC z4P}hqNOY5iGH`ruY5gc>mMDXX-LVDmoY5G#4+t8IYV}ys{thk`Kjia>5^V9iR(e7u zR_kVg??;=0JEhgBi8ar=FTEU0UC>8aaTYEfz2x^p=Y-rdgQ$+o94-5y zHmrCH$iKZWjFLy5AzyJnJMz|G&AZGD?Ka!*ChR!?_SIFnS|S4{#{IVw`zs;*K0D|3 zHln6yhdiQ1!nHjSW)qb>L#|00(WfSb`mfTJ3nN`P`|`IcIl#O%yIT)Ys?*Rt={awO zEpp%?kOYa_&&2!_drb5Ox?1~t^8P_{nY%-cjgY;0#9Ehe_hXf!s`pezB7F3w%<9X1 zthMFy%?qyQxVJB$M2Rx~uJS&vvr*%6NSFz7z}Ty|yMG0kwp>ti>Ni*&G)^D$nwHy7 z2`l}N+^0H~Y6o-lKe$3Y&2mZzpt2}eAS-#29;acG(&$S~;Z5Vgh@9m8%aOJD+rp1N z=mKmhi^^3R59jIFyCU<|>4-J4SSG3a<&Y}AD;ev8gYCYt%l$8JwQDPh$ddY3t^!sc zsK@dzz2_RfPR{aT&=haUn_yi3Nm>(9J5}HvRdOnoqeW~_@bj$pw9cX7+3y|<#2(#>c@m}Z zK!EVZTWebRt-5Y`+lAk6P^`L$Ehy_}>dTe92x3qQokts5H5UM1-kOSLEGO8L?zBp$ z!Bw7>p<1soI%yq)r$U$2?h@oUL?OJiu1?zFRjhKJX@xg!N`ya7lBwI z`b9l;LxnEv3O&i+=>x0MS$SlDD0Eoz+k&(s1B{uea_kUYtXu5QmZeYq4a|_b8w;tn zCW=22tnM?36wJK)p88va0%lr%scVBi-S?E2fC21>~O+60CK)sZ8pz>03g*=9CPcL?wj%w`bE2WtU-6f%y4| zF$j!WN<=Uce>%?pR zR@3a%Y5fD+K1yEiO?%&%*F@*JfPKG6q5(oGnu@Q}m?7<7gs@f~OturAz_;s*jPCaM zHl@=d!KLFIFJE!dm94olq!O3oeD)YoI+$nK_p$XBwyLMQ`hblZPBo><#+!Ay&Mxb= zK$q}wXHxy0z|t1g?UOJ>1PM^>(%sVBLJy+<;cvX#8swYbeVe{!-)7;&!!i;Nuxj^A}P9Cc0 zjNAdE87CN$p#tabjfr#E&a~dm1Ply`7+VDg+-8D5eB!~g6KTrLASha+K zfkp20xE`>Sfd<9n(03`t*>UBDiB7NY6--ILJpsYsfoPm#w-fB`Y5jz z(1o5pg4MUaRjSxg^D=vVM9_qh?WIeMgPUE)XpXW+>uVMz<&^!g|1S1U{_mo?y8mC< z?cZB!SP$A!>~sAkLwpPS}rnsO;uTIMV!+_Bhwm0%*-xnt&sx> zzN#X-+~2^HOL#JQZiBC?E_4EkWeh6OpQo}bboyM)YvXG;?5)jZWs;zdFmM79ag{fm zR>+ptuxV~#%h{OE*$c`ZbZXj^o3Yp1$QV?e=5`v7W1jU8@avsrz~{BmY(v^;mMW;I zG;^(CLpormZr%AH2VEqx`;(oaA6e)7oH58vfL&UMef*r8+Dl+}HdJNZD{6W@nRB3A zFff20K{fE!*{2;a8+1}^B0GZW&pq%DLzf~I~HQmMr&*SI|52|fc* zr-~2}=ntn!01~jc66w@Lod|1(H~_*S^R=ctUm?re&)Woe@qr0fJPLZZ^slo&F(U`C zy69_O4O}lsl6k0QTSdLYzO=u2nNnZywM(wH;mbDWrwiv#na?#vejg_Cj*2w6pFjba zKF_rq-uj(Mz(V-|D5K*xBEbeYfWfX z%K*Qfza{;DrG;i6{;dZDMEzF}2o^iXD8T@FC5UUB*^8fb<|HB$?YZX8Bm#E$6SHyp z8vgPMfk_pdq^T&$nPk&D*D}?=JqC-}|UrR1g{;`mPNnN4uJe7Yk)7?gN?11htHrD%8vD zv{pF^RZT|U*WQeI%=YEtd@ZepeN*lhUUF6}+)zbf45WXI>3VTaO)_F;+1-DVqfyp` z6egb$cvjVUip;mE?P| zvaB<*d3`#?$}oC4Rb?r@K0=gtoqC~uG5jf9O`X34&vL5vg1S9(gF2w$+#ud$#sdM9 zijmMQgQ^gJKRkSHQ+;2DwX2CEG*;2&N4dqgo!&0y!VT~%lOJ;5)d^V@K_5Kwi%E@y zY^tlqy;H5<9Bh~Z7)H*rg|}9+75ZXbdM5Tc@P{H@NmsrONZ12tEt`D@ex4>&@MYF9 z+!@W7fhA|LySUy(Nha0%(NS3)rX|?-^lQyteBYe`YIB^|V_pV;Db&_}tL$@^roJYx z!B)*!MM2EC%iGSlqOx+)JR4%wLJ)c5=IgP%U{afMb46#22{C9dpxx+ztXl@F(#@>B zmx?@Z5wRODXj;8et3XEcoyT0YR@1>Yw|!nP*4q1&!3;`%?(cM}zKYWoADjQyVv;-j zo5ozjWw;S>?~hxQ7R}b>V=Z>yfLw8sCR_8F*<;W1(f(fO`jk?c0&JS~;yGPa-tFz| zcUBTBj;V;|;CXO(!y7k>0qmIZ-sb~$3jO_ZTJjjy&6ztKHu3bGWmy+HQ-F=ox(@qvm579-MIpRD6Gms~}j$=q$fq9U}% zC;dcVE)b3!M=%r^dy#lkE^5>x&Qr4K4d#?t#SOlRsmXaCVE{ob=0cP`8$*fp@q)-Z zTb}TnZcs$tb&vMfgy0s{wFKJ(ykG*i8{vmenA)(23m~X{0Wh_Vl^2e(>AHdoP%?8= zAJUY-Fs&CRs1~(08HR=Mkl|2%NI5~0FzXe@7u0~Tz3A(75LAhqrF~D%kZnMiI78Hr z{8ULw>QVLJV6+zdezyXnA5Xf(fpk1U_WlGJu?=^s+&=i^REt>tHS#LmmnKxvfbi{Z zQCOMZn8&eyPk{XcrHpp_^r((DzWOShBfCm80_Y6pfYjO2Y00`hH$R}C+{jang0WTW zJ62xITf3hp9b=$1P(9|RL<&5{-kAqw!pDTe($>g_=&V+ZCh_p{ksn#ZLj)Ws0;LR-VKrs<*Nur?C-2axo6FP)$OP6p1zv7*MO zzP`QO&sml#)*p3r>P5=1h?j)V;RbDjxS|E3G7C0>R{yptIFsFNVj-y3K37v!!0g&?6ygudE^n`WWK^4KQCr7>OTF>{6J*G#(A=@>R^C|OsYD+!09Z%ii?x3Hm zLpD2XzT6^Ri^NeaBN-G5z=y-9ZV2M}IW>=9jTzWGjl^DD{N9@W@I58o9neJbxuxdk zcwVccDNP3ko%|tg_zXu{sW-@iktrJnkrd|IUty9{6>+4;!oh){UyzGzX{}h;o87pY zOUYWk7>Z*u97}n?AJ9GR9p>90FZ(MWhuIfQJPbUfVT zdeHQgQPqMTyYL*ZBf@;?6x*<^reg%-a9{}1P8M>`&YocYOK2*{50WdAvEV2D4Qw@I zpvQYC`@VO;FKt9pSR9r}J-tBAkl5WnGi2a<^0}mjKEbHb9|3~bh;fvH)sHq5?OB{2c~iuaF@YK zjRI8CUK$dqa&4mE%myD}cdLh{Qo6jar~LFO%ZZ2f@|#DAqts|@WzpWqHD*fn+m=-0 zv4Z&SzO4+84z?{~$oA?t`|ug@bncc&jbSB%Z1vXG@u5&1IKY{aBVZ)5kj?wt z2!<8l(iU&1Y|1V{Vy$4*HwXL501`imBW7u=re;l#znU2Bp_Gg_l^w0$=+uDLaXN$s z7av_80SQ=$!yWLb_^s@+MUHkv; zpD)M-9f((?#;51BHC2&|&zh`pmuWNf^DHO=HZCHx>alYBA2ksM{Z-l)j^-^Gv2XRe z_nldk-EvaIs}eHCrgkJUU(F!9Th_@Tt)kjrGS6yP5U)4$GnbB82npu;IEV%&?&V>T)1@oetl#iB`7N#4|0w(ag2vGdng#RWCLMJ6i@f#i zIM+2*Ba3*Al$mE#rgQ&Y=qDZGoVB_`Y~wHG_O0V&Q-e06BPrgHb|rAU90IK|6{~SU z!d0!N=%oJ>FE6~tmxgO=eQz;GU$1nSP(loP(*m6@^jC?M+?emP6c-+rXY>JHqKFx( zffH`TM^Oz|-IH2u!0eh9yUsaAvf}FP{ik!tKZSR!F1_aBg>{;So`rX@e+hBONTk-P(3{pLtG_FDqLfUR;WUZd9*~<7ZCcLS4(D>L! z+hM4POxc&t$O$<8iTLYO?3avhQl%C4Rn->J4Y^R#vrlM?^N;|lnm&e) z`Ouj-#=yRsUl^Yat(aDDxSVtP@b1*4JS{zJmP&wZOs-M7>%W~=gNte*!#8`(o^UWV z?$2#s!cCjme;r`e4OJ9#1J6@RNO3&%sQg!91Lc_yykov@UdhxHEWw+QZhVvUYw|4> zeEYL^#X#RZ2SavL$*%a!-$dS2nd#)s>gcOsfRB;RV(XLgmp7f{Rr0)ae+Ji(W!_xt zWNvYWIV(Qob@=uIw2|INfanD$^_o*BBx0Y4h?R+FA0NDRub&$M<$I}&ejNi1-r~)w z!Ff6rw7Guj1{JvLUaePvo;XyDHgFMeb|x>XL=SoXb!)2UWg43-CGamQvJR$*n3W)# z0anmlf3JGZGGSmy#>=;tNorxFT9M1!L-KY9-%Y;DO+TvNMO_XGUq7Q)^v(=QvFafG zz;dkSG8f_W53IpnH0Yk7VYu>@rYtkpyD`mm*nqa{?3su|7h%)%(CmHqUqYpbfkMgl&EEeNFy8L}rT9JR`ETsMd$4fo2W45g#AQNcHQRUkfy;!y zGRH4h1kNXp9o^DwtZwTi!_vsna#DF+2(S4}szrJp;Nj#WXqLX{t~Ce$lk=;7ag?co z8N;kb^kVKlIW`??AJtbZ_qFb;{FIZ>1))=ql|$! zsZ3h4r-5JX1;DG=>X%+L!*05%-+yaJkm@O+>CMT{n<{c&IlrHbsbSH1!pB8I8LVm~`B0RLz;*E$bL2R?0>*?lFr zl8uBju22Y{KdN(Mzs6@!gEZBJ3^aYhiQ=ZP`*qmwF4Xf`$^f$kz8RTndW#op)E7!b zaB2ngpowRu-W!?Y3@9eHp zY~1?8gDYlyKi*(p81Oys9$%Qb_FRvaJmEg&*T2#cD$^A9m@W=Z?o3?s$~*Jky061Y zP)SNf;FPafII)3UzD;5xYN{!dAsz4N``scA;islAG~z_6DLFMk03sEdeb`5F#5MQH z=_};~Dvn+lA8;=aI8#q=g6A&47Dhv+7ZS_^C-TUUOI0b1s|N z5kQt=drDXy|9b};u@5u+ly~QM`HD&#G+C?W&XMcQRQrdGb2<}KhpsrTosL{^`bl0; zJ#+q5m{8Soq0WXRuI=Hu6>f})5svca78#$_?Q1~a0SyKb z56l(HLL6oL=+~1jeHt>{=5Wgsub8ai7*}x!nwLQjF$B&ZG!ge$&rd<~-rDod^x%Y& z!t?Rkqo+xHwc2kGSdNY%`GEIhM5eBu2| z;z^dVq(j2N)kkXFhMz#PySXY@%#cH>;rI*5A*ZUn9^=45E#U>iS*chMul&RIZ0rf8 zmpvc!`0&*O7Y*W1C*G{!PQvmp{YhXyibQ4JUD>JEK_U#bCiQ{FQ>*5CC%^maDeffQ z$b05uVlc3EUB#R_iH5B_QLDSf*ZG0W|ktQhtyVA`?Q|77OC64^WS!j%Wesi&7$ zYUoGT?}tN5g4P7O0%tP!@SxTV_M1ND`>@4^W#;`_d8mHO;+Q>GRq~Y>#@GI&`uDlM z7^aLPYv|-bi~M2e;&A_#9b@lF3qcN+p4e{_-HzYStRh7zSq0~&L{&|X**BjER)4Gu z?l-R4FK^n>Zg8k(NLDaWe+PO!%7qfi2?kBc!*KQ}saH0P((f?Q6m|$t>J$NqxPL|D zu?`*G+VqWKukLN)|7CxYiZvofTQ4Z|1rs~x_7<$arI}U04>RB2D7dLIY)wQniUGkb z#MC9}0)?JII4T&tt^dINbL67iR|vE;21jmEAt~79ZKXa*2fJRC+gVPwkWKURF{J7* z=ebPZ-+Z`IfLN&RmO}>AO|K>=Kgl?xE<@a#9dpi2+HFRmbc@gdL#3w4j8Z%l6nMDd z#wmq*;uT`_;W&>|gYV81>s# zps1L-L)e2Ac;(a?lumMIvRkS{^ZNessG|^}d2+<~pnO<^aDPC#uSV|JH+hjciqNlY zG>fOOAL5sr{+wR9BjBDn4O7hK&~AoP@#AY_?~Z^)r<~tYo=!DpiL-X!BqnyA3-ps$ z7p|G3>65_53;0~WpLIvIDKBQ|XVlBlwN<}@k|IlH2Y%Pj+aE&Yx}JM?`{8n$SppfQ zh=oeEkaZ8)B8aDRf;j`28d4I*u+aVLlp4HGLAzeTQCoX4^Jj-uT|`A(#}w?KMfNIz z_J`ZbJpvU9dnyH1tHa)b?<6AU7Nfg#T4XL|JGONI-gd$oA1|~g8EtAs-U1y z5E7L(bbpwZ$9*+!u$<@*5%nyJ4RVDP3?oxf5dWl}#W9cLK`;W-{n;Utc z!Nv0#A+GqAOJCel(ip-4wIH87X%h&-rm6dJeQQ96T1=&F;uu6EGm5H}!3dV3c1bw) zQO_90xrm`omuu|*RU3>oZtGFF{%>krn81Hy;#3vx*bNGy>QC*Sv1|+P6D$*M{YvyJ zQ)7D95R%2CsRy0~RJIO~2e{qdB zobg}BlL+iu72CfA7jjJ9zf)5be)uO;l9488>y!d^>5tv<`hZuqzEVIK;opIg7W1%7 zznk5tJ;{K6$Tr_h!}23Q+QT3?=aE!m_=|Pp{exPz7WZ*)69r;954-@d6HgOI-ipm| zxI0bm4&8(+(GFbfr`70da+TkB`)&_wx(GA&X_`d3KFNw@hC$E2kP_5}OtE5^Ml;On zkTlNl3EP@W#&8imYfy_cdqXSnzNJ0i;M*SMDZ!xLeep+={eLT{#)g36^JS$G3tXBx z>BIRfN#9`Y|2RD44fkPd@cz`k!B5B$cT{Gc)DA22m$MvSTlH;+J?`OuLsL-ZO|!7) zd`Y-6z{$bhO8d$mDiA^9e@~7e-%w?L4GrHHlmQMk8<{gV$PSt?eJ8Hkj$y7@R1^U2 zYI?{a+9R+PTt@KFdB67A1mZXL>~f?0RHH#6uwPgdju{NGzz~yTZHhn*O!2|7(_T}@ z@cYG;i^GELl!#_Juw`({39~{}q!gjVkJUA;T7AF`=PaF(i}PR4P29v`2au-kWCpWf zeYiG*4A=n@BT{E1BsGW~c8#AcoF1n}_j?_$IUJKT7T|b2%Kv|_3fxY7QgL20%;w+E zn5?4V7UMUNkE-**Q^Q;B@07MBf88-X_Mw4L`DGa^ycf*aASzBq)gjX=m<(R)C`3>< zUJ6D_JtB|AAu4*ypcPjKdT3_5|B=|e_r?J z$~i=U)sF8rK|9cNX_-+In1U$mgY2*2zDpLCa1ft$GpEfIowMf z8?2W8z)tudxqOJmux^y}mfL{5Qal<;q2z@#MOw^16R{w+aU2#>#NFpC2F7O!?(HYkP0)5^^WMmoNfPN?}$NQ z>9+~XN;TAIiOHn2(wLs6Ki}&FH(TVzewrv%GVckml}(}y5Gvh9?VFXTiS$@@*c2fv z4Eoz^1aW1~ssE^$N{cxR4+-O=lKecCbTD}kdp9qNU7@D@_(FiFS;;h`^EP2YnY7)k ze16es9;PvHk+T2jn=TIq54<&`X1uZbN;Pp|D}<~^Q?5@XuUiHmy(;>r+x1oHIYS&w znwstxIGj+F^f+tsDso0Fa@(L5Z(kft8x+tUETHSV8oduHKra}h$h1*XCA}H4*SdDN zHVisSym-88zNJUG^WRBceB5dCHzXSzxy?A_!zA9Uue8l>+dSpaU~K(b&wfYQn!4Mp z@Vcu%jd|U~3lx=#zyq3d)UIt{Y<mMww9{jZ?vUw8qlCDgORHAHdhW zk7tK(aXiA{w0x>BMXZ5?Z&v%N@77mR>`(eu$(&{;+9TIJwiP3|H@lrg0#_d)ZK+8d zhguC-rZQk56fIkB(zk&=9r?Cfsuw2qQr<6%ooP7a*^fV8FZ#_!5V^Q3jm0&_aq=oU z`;Y8>Z|nRlM_=6#`x2kl84M%)<5r>*QV`WPcLna zpTR`!Fg`*QZYO}o-s1P2AXJ*;$x3P3a36CVO1p9jv>nC4Blq66IBTj(OcPGyZkcOj z&rl-!&qLq0{rvsp(%DlsD~XXr;AA)5EuEnOW6PMX`Mn`-9(*%t*-q|uPg{%M5x4ub zMqBpbRlIu~RH3H;uxr_7>mE3F%yLJ`6FS2F3PsFP0>1MDFpJ8!C;%o8c%H38OJh~= zk`KE5zx2Ro&;4<}9TH3I-`O0|t{JMq?<=udXibIayAN&!Zb~E!%U1uQ;;HIZm|;_q z#dheh(Upi_5<3;XQz!@%Yj?`cpbNKVO33HR9zP1fTO=(&bJ5;y(2Vd#Q1Y5=8UoQ@ zWXC$~2g={lPWvfCaJT?)hWu64&RUIEt%4P*WT*?5=mY2 zYEu8MIw;%)vtEIs!6)Aj7T&*RUo-o_sL~b`?H_FTIoj$?1>no!Wy^+YK6T+eHEaDB zxOiy_Z4KRZfq!4S-J{$XJe;Q0e62FlxRO-8abd&Edhkx%?zQ(oe2;PKH22K8Qxnlo z*q`>_TY>>n!9k*mE5Jm}nS23)w|U*`AAmN6RAH5Bb-FrJo6C%i*s|3VvE@tQ#P&dx zG2r*^e(C1}gG)22kE-OT39W8J-(1O;q%AZ>5WM_B&Z2h^3_(?Y<$a{`7?PhPM~DVk zWCmC4YF0o*e=w#?>Ybf1PDec9@c{{vC^nwF)cD2MKo21)>;xG=T=hC#&N80_7~?Or z{kY~>EHh)rq?sJD>2_)JICaV!?+N}q^gYeL9Gw**=01YWJ0#NV5!NapBYz%H7hk^} z#O6CYDMmepRPktR;rhJ6PIjc!+UQK;0NHTd=I#lv(sAy4f#1K78{cys>x`2Q#E0K% zy-UTJ+E7B%D;;dYLv0E#z)Eu+y~a;o;=}tG0E(2y(#UeWj&dvM(R!%Sfu$hUE(L4M zBzKSqFjOhM+HO-UPg~^BICGoC?MQTDeZ+?Z%qW{qFlUZ?2Cx-0>|k>nZyDrNC#nH# zcR63t#R$EgoFn8tvCqpnALh*QS+@lH+1@4!-&0;s(7lrkcoja)f8V~+1j@5`dWJtG zqh)zRSr9+-_(8MuccM@p8cn)J7e^oR$tUyM!`A0D#hdl07}@e1TCIJp%eN`!cH=whSiqeB> z(;(H+jjnyNW{=@{#sxDlO!ohy>OAAwexSDBt=gh!OUgsx4v%F&h;tRuDpX^1tur&HcuQw~^oPoO7M)T;GEBdRq0`JMXEE zu`YI%q@KOu61;AvijFzw{Jp>9n-+;dFWChuv*V~SZ%$N&#kZFVSU4{WxsB0@P$Z(5 zb}B~JMR0vW9pPF9GiwNoe~VxgxYBQH;t6RcGu;=ZAZ>99KY>(R9&A_82iLzT1Z*wtU8`7bIvR4tJ7)AsFK-DER4MQOg;WKf{NkrFw*@ zh|Vax$q;No?q}yCG?Vjd9&m-isQCjCsnig029@Laf%ZizH_Z3{^NxX6sJ8lw{p9b4 z%7Mpu)Qs_vmev!|ohIu`x);7))+YYiX1ac5F_@&drhalgjZnBp;x8|`)w9d+K!%9Y z3~AQ)zEIXEx_lw7mg@qR3VMjWLd}aKuTXdQcVnE*r?wb)E>ArFh68iG+S&z}&P=mS zRpc}F>wfeD*^KrD>K^hi>@X6{Li`dPPWUe7{q%h_5D;udUs!Xmt&Of>Q4Gc=c)b= z=W6pLe+vDv+`$|%3hT1mfYok{g=Nt zHHuwsFQPc!^n7rw2KdgOc0Anhh8Ps2^eUZ@y7^NXS@1omLWy{>Eid~p8^#l%A$GbZ zHFCJPZ4(>%z6W{n7Y_D3z~ketuW@MVt4A% z_&eLTnPrloxkSw-|8QLFQ4ZbGfG@Bp$`Dypy|SpMf7#}W&T`h9qK+<8RwwuAD(6+Y zi0>6*r-+iGEhTQ(_}R!1rX|!O;uHQc>|E&=bQN2!R3E+QC!^=~Q|xNh{R^g^3zwU` zsQbrje^@Sf7GCdFU`|^ax4;r=z|^AE)zm}We-Y={Oo+vDsn*g|mKhYfLz$^1YK+^X z!lhoKKkFiB=b}%o+n9Tvn_idl*V4n!p=7L05eF6FY?(KB|Yl7 z;{j^$JZ>jT6Dw@CK^c1WF73GBn8qjYgFN>}__eFQ-lpIUS9M*63KiWgA6Nfr!}z?o zMhM6$vM)Qc1;ij{1kr|rj7sa&hP>GL$7L|%wiWr; zXbdrqNtiku?D2Lr8{bI&+If{OBR^_EqLYddBF2a? z8ab<*lC`*yE1XL=i^^!cpaMsU$vU^qx0p#ZzMgVd6^%<$D>*SK&LL6X%a&D6Q1Xmk zl_k@DGC0^+xk(e%QoB&Qn}27=zwIYi?H^$!;*ohFS|s@&o@Ky`&2M|Ux9thMNBi}F z_)=NbeC^w+FYCk$loQQ7m3%^`K&-*UmrS;X{%DngN9O-N+SKBv-vWf}v^%t8w?uc} zXbCapEh}injOV7k87f<=9O+==FOPNy{E5c5&wR=zg%(zOoCevOa!&yZ&fKr`-`CT+ zLLSaM@UxG7;|95}oAKH1hF|SzBTkh5lSj&mvJ3qP)>GD^St(7EBgGhr;eD9;K|aI4 zH*U`YQDSJz3Rhb#D*RG)aR$(DY(UpfHoJ%GEiu=VWI^O+ok^yW` zG(*nKHA*h{L5@A~$iXpo^=#x0q1>=)Vs`c>(dP_x9jkb4I1dxnt`)REFG!x-P#lnr zRl?dSPi_ z@AHjDR_LOl>2y)E@*!TUM7nIzN%`Y&yJER5oQ}%1gcx;H~ojha}{VP3s5&9JIYpAk~EK>Z94Fq5;2g; zWD<>wkR)(7XpIkRs6M&H8u(N1`ZKp*_Z+7Apd$Uq3zx!e+@@aFKV-e9`Rmu^;(r3q zS84cAksr7->_2_rUU_N%_M_yVI@`^? z)iNR{Lv`BWUD;Y8 z@lC?PhianSiu`t!aDcmsV6W~P<|CUBzTni7t!v1L5AZp>(6sy*psUck!)vr-o(Iuo z6xZeZy!WWECW}0z-m1AdzM{tGa^c&#cW0}E=<$g^ecREv+?XD#zQ-h|8nstVxkI5^33RvT zpV^*bAYoppy+Yb){LB4QAquql{!{L8WO};kM$jrY{*g0x=kS!LTdlG==hh0@K`?&i z_%lZjPQo=fl2URlP^Tn^?Cle9J^rVAv$cVqOvRU_+m43Ie*4Fsr4>0L*T4KQtSOSV z`V}zlFXMu{8N5omFN6js_$2jhd*$S(1YD;aRfWr?^CPBhWJDT6$F~C5td)!48{WdN zXgKB5pA5Z}6q0;8$-*G${dggg>)cSDIf})~{F-aF;fAlEQe!ZZxmQr&BKz3P&e&O_ zA%G6d|NLP37dmAsRK9ISAxUep20)F#SgBN(h59zUjZkLLmG!Hgnr%XXet|twx_{f- z*_qKUHqI>i!^gLIZ1@0lyFqHYmFyVY{zt@YE4I{9{>SMN{UA>b4cgi?c{D zEEGZa1+l9JJH*p5x@qB~qP%mMQb z3Y!e#aL%ToGu+|Zl2P=3Bl4UY={Cdx&je$deb#97gz z7Cy~Rhg#X||IjjrE)_{mt}#+G7=ZncwDRaLSC#ke*n%{cR*L#~u_k7BDMmZ$$RI5yHWKb9%#^I)gWfa^Yqp#CE(Ix28&TX5z!da6j&6M4<8t zq|>L9fe}}*N|Z|)y(GDx{guV@xPj?*P^<7ocj1owD*VqtordZqP$;l7_I;88d=FPT)mlINPGWc<#KyHHjwMhYIgoGA$vLNQ| zuk*0dEYxRdE~=%c@FRiMQAIP~lDAKaJS)Pulv7bKg0Fh*N@9u%-U{c7yQ0ieuu#UK z4@%MY5>KcLH-6~NTcyM#{D$^K?)j55nq$C!IbS}yr zUI!ff(7Y#XuH+0mLB(qMrp#v#ue1uUNfm(Ctz~jV8FUPQNlIjlH1E1*7(b>Gv!bz| zT0@%@w1!;jF%0bvAyvTV&a&4=sNdZ3qdzK@C>>J9ntwOE(rU8hKP0P04V#0A~K%58}D1 z;F0rjTai@2HpiMsw!POA0cDJY)CFWhJa2)&A2x%UoU6;-PnRS*1anN$A)1h};F#_B z9a_@!O5sY9>8!Z#nS^*6v!+24zvbr5lRo=53jBNAl;a?=Igy>GOB1Rx3b3r~G8@39 zq8H=E?zKWo7193uc3ch$L60X`v`}qwCuw{lZC=6NhaW)!^3@l*2(yI{)p?uHg#8X> z%-bFbag<`vo=+*om>eisOGtFg)Y@W>R5U~k5xaVjKsWG+!$RW|J()FM?CA;ZyUSNS zkGFihz(F>0t?jo?!ldR3K=8Vb%`}ZnmByJXwT}4>>C=aOd&yq6)wy^+jF-xuH`Kex zhr~U@hgvipZ3ajj&1r%a1fwX@?x5wc?{LfgbEEVg+9fz?G9XG&4gCAnO0GaON>DMG;e1{svG0zz~d7^V8#Kwgq zl!NFyJII|Z=~-WRU=~&J1P&gGKS#rrGqf8)74SI#UnS#6{^DFh=>lnWg2&sHOKw5+`j zlkxgvqfo{&GloTp7ar|~d6ee}!tQGVC@W)UGWjC=gXSAunz8pf{*<}%kP7G@&XFkXO5ovAatQu=*w3Z2e zmlGf+^%x$!-0EJXw@<3)tBgL%aOr@q7at&atcEFhwyBJua@&dkt|>*ug@uH%n{G zj9L5RcQufg&E^Ki;w~gIhFn7^kjFnMN(?UT3(Ta|0VDEL6zZY!0eKffC#5IWj^FGN zGZ#SIt!HwcM3 za7N5vbvV^8Q?W77Ry;>VD5Uba%(JwA(RCN@0hNAdoh*8!;PjcAeso3mi#vYZ3BoR*A+w)FwfnV)>~?Dbot4}A!^QnYZk^Qmvh-yvs65i zZe+1 z|1l$KH^bmIF(`)C=NI3Et?9{Qq3tEBT*{AEy!A?#Lbe)^*=mr~+w3<_AIEEg|1=Escw&-Ku_t6sab9h3h|plwo1W?u&j~K^uxbe4V zb!lA$+>X<<`ok_%9XqdV5MO23uP#E6l&LH7TJSJc6&=z2OhZF;IgRfd-Ll*B^sAbe zug+VC@3ygt>|-FihY~IRA#T#Cpp+&`--H15j}{X5MS$kTpp~n79*im2R*}msW)>Ek zhxZVzS663peOzn<#O$^lJNUZf-a<<%OmsQrBa}76^E4X|d(OE^sz9gdFMS05>8b}b zzl`5Lt?!RHL-k&IkgQ9P+RN$qt(=1VSE{bSzLv#6z0-ik-*3<_Ty zvftbEZySoo44bnRk^3)PtN=NU9hb$ENf+mWcFfZFqCKKVueE~bZz?9u)A`f_2y>26 zbOPAq&ti^oL7k{ovmCVwN%M z{gZHIjUOKHDKk?);zQUQL#bv^IjZj<=p?u@5v#jM&YA6An|Vu*7z)sPuw0w8T67?p z|9w;*pawVoNu?C$*A+#|n;t_lw{s%g%5hoD8wiVqk~m3MmBN`-@GyCl^kwvT7|9=u zkKEr4l%L9{ugAo_Syglbjn(bsh}Pz(5*{SWX?cUK{U)XG%x>Sq$xHI_i1!S^r$*O} z?<;%h_*M>7<~LokUzYf;lGrNJ6D+}!Wh#^~#6iFMEsQ|pQfO71 z$$iM9vp5(%pj;)yCw@$ab_aK*uP_7tLCsn&8%}H?bBgHcMEvFC@`-*;6%snWXGH@vlo?6Wt*cumsuF*xE7`B z5_6U#n$ICRLFii8p;hh28mojjkALw{UYUpt*7I!Lwy=zPL@nJ}5YC>uxBynWK!`wd zra+80|95Fw?8xESaIAyUdI9i_JjTe>JE(j~`PuZjJc~X%u&mx1%4VptuBrnbmo^N6 z*av&|M&!7L!;PEk=Z1{+cU$NJmCW-$;oJ0H_3ZXmS92vIgt&gPvzXfHW`ue)9X zZl6jb{R`-j9Uj_?sq)^J$IN6W4!mYVC(ekJsRnvZIlYiYekoTf^f!1qdoTP+p_&%O zYqAWaxMdMKHLzVF=M}rK;iVUKs;T3eFCAf()2(D^3tPbK$|VKqxQwe!!eQ0aGX?e1 zyee{~OKBn{f1ymD!1#F{GowoxvJV%@0lDN9)>r`w_FEh{zc$8R;XiN1eH+1-I%7}b zyyie5l^c??nKXxvfl7uw%WLDl0!WyjNy_g0%kfYH65#7^O*n*kAuQ=aguW6wYi0pB zW_&p?wua-R12^omX2G6~X9(13r}zLS=!@z}^LJa>ww-oKKG?%a_d^xx#WIG%t#Y=r zz5qW2?E3cfvs9YJd)B}G^xwSU|7CcABc!NZIV5z7`}_h(|KpT|?(%g^8{KGk+PLiY zUlqWr63r&o^8qg`bn(vhtWB-K$!_x6YwS?jwaQh<7~NH_AKM3}SVe&pA<*PI?gtoTpC61$x|u6KFVWw=i6fW2 z?zAM7aXtuE*^_w6Se^+P4rl97JY+hyEG1MtRGO)~)>ve^Aq+#{JmM>CcV7%Ya)5 z#N4}Lx}iTc{oj$Y4yrj|c5RQ_b58N)njrA1YsR+;9V+7RmOD2YVn;(xjmh4qskaWv zmALkeP|X$avv92j$h|D5{cc^iLLH4gZHo^2uG>GY_`>(He#-DlV9V_k% zT+KlnHGXg<9=uP~CRgHf&Sp^q z6FGBDv>%M1+k4Xd{?tY$LQe2S_P?}m;hZfbZzV5&L@O$!fbI^tvcUdtn@$4wvjX;G z=={NF`+2i~%jIP1Vo<>bd*}DrI%}FDMqj*CEqGPzcacX(*>Usa)V4l9wb`z=yZZm9 z?BotDZY#>m>r12)+zw@F_*@$%T+Q@3#?JqWe38R7oj+)6*K2&GEe>j!=oYEmr3WRG z47Lv^G9fx48(a4KS0&^$!HjjF)i7bxOF@xBCSy~qT+fexii zz3b8BFlm8I6cgjEU>z=WL3$Mmu34F?y=&XsE~)nmW`rt2&za;VugP=Ln$+Y8ZR);j z1+l9D_m9)o-U%zmZ?|-W^VRqoRNG#|tM%Es5PW`-Ye7)r~1gWt#wW4ahecR|tbn{|!3Dxp&l4FJ`4PzjML zu#c1NBueY1y4MDQH@)>zF#9F$v0SDLuAqXmg4k;x+#l`amg$_0cfZAod}pU=vL+T| zgxe%REPSYw%r(+g1p0pBrraKBwiZye7Q(HW-G#?QaZm>ucE9HPF|Tc%l}%v*hlN*U znJ?&S7mZ%3@dH(ti?MdjTYnF7tYBL4B_ZsZ#VZfzsnu|X>k+FCP^J6TqA{EFObI~18WY~`lQ7k(CWh=XP%`M2v&z~ zS@vG9R)2(N+~tzH(Ykx=klvzP%Nqqh8T!+B&hcWuLF=b$1~fZ5h}onj(YU9~VE+3r z;+wC$;?sZ^su*pMMr@jx1`qtQxZ0F5p* zNljD^A&G%5ION*=d*?A|u)OM|^v$TI8M)gTeJetL?pC67={UZiZubRc@2OQXId!|F z6@guXiO;W{4fUWa&*~l`?7FDJDDUK*En$;1s&BvjlmGcNal6i%$n6FPoO+iapJ=;} zOXH>UebKIR?dh&%V7h~d@JUTPx|q~Q0M`JleQVV-^29O1_?cz5s&ShQcwYOYfD%h_ zUI@$J#61;LciOsZvY4AB*9uIKd=Gb(Qv-QTv-)^;-u!z|COsARFRlg%>QAw zE;X$L#h|*p_L+M|Og0wWuK}^yoTQ#a?f^O>s%s=1$Bx5mx3u5gh=r3grt{m)AHorn z0VUGpVtDS**z6HvvXKG9<7`O{j1U=6p5sprtT;TjV4>J9P280k7>Eu)^o`_PN4S7| zK;jdxXj&{bEciGb8YbUHa18w1-Yknt^|jlyYR|&kSKgB&>7&bLL;C%3^^#s?QoYBl zu(7hcRmd^P&5-pBXnY&Mbt_>r_(xLd3DR4aoZLOwvvc0Yb5=Q8QwiN& z`tODMQv~sMBQ9Cos+!mKKRNSfvgUy3ujy|!`o4CRiYB=}{qxHQf;B856G^KyC@ zbj=%E(s7wr0-pfb#aW3Gz24ks&6=e^h3lTMU*RH&n>x9d^}4|e{1CH<^;Y4e$hUhb zw0M5?Lr|Z)K%s7+&Yv2sB#Z+v82G1d{dI1Z%#Bt53;fH|G_XIS8j6y%TYZ7c?PN5C z2ai}wTNyIfzlZzG$<;i0esJA$YIj8qB+j##`fXIF0bV=ui*Mtu6qALF-0a=0R*Do~ z2Wo{y+qGvq^9g*cZ~1@;%U{#1nT1{xnSPbcZ#P498A7vF18QvcYOhrApQE;skX?xR z8PD)SR*)Q}y-_=KAt*zo?4))2fOu-Y4SHm}WA#`dlZ=G2lY#8?3e=xaZv?G)4!5BA zY39J;e4meX@3Qm<7DZJ5&Evo<7RR^9JMmjr~eS?1U0v;uZ0jDx18&#s=q_y3*V>apnFk{{M5jKbbYeq zh&69VV|&71yM_&t<7kO z{iC&zTjMzcy6_HsZw`)yxsj{UlJD2Y(e4&w=-S*%nHw)?Hihq3ewK?1xPo*)+mYt4 z0dUs3`;3#GSLMI$qd&I^q`rjV%}#!XDh#Hf5R!P%>C(jZ1ixv}T=oBzCLI4qnt-rm zp1&M}oZDfgR2255Cz-Deo9JNUHa}+yzRu89WU2nNano@O`y|}Swe;$JtNM`oqEZ5y0G0T6ici#k)J`Fn;B-3Ba{V4TjdXC z3-eEyl16_o+|2>FUk)hs&fv=K>1k?cPhIEyAZie`H7!#skt{meUMsrqtnyZH;PQi~ z^+!MCmxac4OSaFy)u^1^62HW}Tq<%q#6pjoa@W)C6~KT836vO!BsS?2vA_%s$TnyOMDFUsY+u zeS_k22tlwFXr8&!7p3{c1Qnxqve&4n=@$#r!#0N3X|HMRKSmnHLHs4ozl0fPx!zry zX||U0eOzRL0VZ8+4I+G3!Me(f`Ru;Oy(!Bu;p%yY5yTm@Yd_ioX)3H{+_*&MT!vP8{ioz`HOOMQ*-sp53TofnY8K& zu?KmpkHKBbWO|Iaf-|KHvtY}+Ml1Q;pzdA3t7ozkK#$k`kPGnFk4a{h*?EJR0tFvn zzT@J~;$pWqI(KI>+!auvnF1%{b^0X}olg>W-4(i_I#Mtswb5?c;ZGvNw&q9-38t(% zH!xf51=`zYT8bf>{XQW3fZ8l8&5G?Oo=SU9=7lpMuBnv4u?K?FZ+Q9EK64&jwX@hr z2D=iCZ@fQRAWS(uOtKe3y6j8CP`aYrzFtl1E|xVO<_c#KO71=KpOnQFvkRJ*%MBO) zHLL`zQ4-(?x0}NoUAh;m2>j+6O)00(_R4|u_53ZZy8+Uz`d+f8@{o|CMdeu!@co5< zZ;(DY2$j(ibnDnpoB04yYwlA6>ZaVSIK&-)yomGP=d3D19?8yM<%tNTgq*b+2LH2n z8rx_~GHG{FsrNXO5j$h(ynWV9?IYUuD=N(x|M#gIY+?GZkM7!tg{icVZ9~DQqBkiX z7VKwcd1m-mI?h3v^0WL{z~U#QRD~mANYa=gzx?*U2W9s=d6=dj{Ax5H=g*HqbdqWn zF$y%#mG^lPZJ%7snYbz5OXL79q#~}pEiJPk3hj?Q@=W<>F$Y-iqNjg(X7wFFbt}{= zyLYM_Qpp~f1wb~b_Vm>iFVe}gkjZK8QPydO-h3jQd#q{aeT2bLKYU5>WXOK0{m0F{ zsc+wx8_8zmxV-Q{S}vno0Tb!Lq=L#u^F10wKX50=ZVwPFLd{!yUM1C!lBh@r39?*z40Wg7LWJ&YC;IR3RIcxR{WuqQo$oo?C_%>>IT0BWA#cjz)wah zy#YRYYaBn$X9IB6;Ahc=pEi+)#mjQMXw=~EJ{S)5X2qX*)=zNG?Td4`pNG&z`JJuH zPvU>AVH<-hol4SC33#xS*)ds2v=^?Xa}u5VdT&+)Y2D(Rb$k7%d8yFGTIk#>ory~I zdO^!lOMsdQ6`h*)$k{k})smeIsrz>VV2~E_4I5v~HTc`zwLhcIr{I?3CnkGA^!5&ZW8LkUDY<`|H(!WOC@?fNYo21Lmn%Vx zYO7jGwz7ZdE(!*3GSr7!dm7X=30jtcay)iy?ONQ%nrSdWdI$X*=&#GK(|QGM7+r?c ztpN6%@WwX(5N-@gg?eEDeK<+fzxXq@n5h0oirLytYeTBXS@+=s{J7yBYT`c?NLBU@(L7_59^D09JT0PbY)_d%EZ%k+TejWsO z)&BEv?UT_Tmwr$zf}ITf_uz0>CDfx8$PyALuV`KufbRve#}T(3SfPZLt_vwZD2^SY z!WzDV6%J_ouP4SYNu3I{{O@l#hN?58c9pY9Pu4aS4l;MTK8qtGU5PqvuaJJ(rtPC| z>-9V~tW7IVHJ$0C3!P;W=h`CF^`KPQ`5@v+nu7qE{Li9QDY=TR+`kX;w~Arj4S7+qOGIfyvWW&Up)LsyO1HO{td^?JSHy? zS1dCS<$X=d)ft&IE@+2XGk(^n=?hyvn#c4R9U!(vSAz98MV6a26YRGH)|Ru!cjieZ zc?;>A*JQyLH-^z^!rN@@RbAQKE|tRpu3d)jRwuT3vhH|k|W&r*)f3(&_q+sd61Q%~~6 zNy7?q&jkayx16h)uIkwlUpy8Ukvy)9?k)IY#~(EmRV)m;@Jhip^7CogmDt$_v;wz3XHh5Kb3C-S%PIwDYYuuu({ zR&jK248B#t#RIR$NGtve?2LMM6W40-(wlM%>IRg(#{1*-9lwYD#HPht*#mbD==bCq zccOL%_;6rjWms;{!p;agbdNta0{f0HK2KlMAn*}me1UTssWKg{d&VIepU9SNy;tp& z8T`n4Kx(h;p(WH*CBlj{bbm(I!8cX}<96YcKEuOP2%Ax^VYJ++X|gd3{qxgLbPqb3 zu1-PmKw#tIKOpn27!dXla=f+6us}YxKjO{zne^5+U{F zV9Pkz=SENi0xS|htMfpz+80<;CTdT$LpmFEUV)$v0c zXq;HV4U%gy^k6~ipixE;|E}^H*{Z#H#x$G3s59tg;30-l=MHe)=S$&DndSwHHNP*Z zT&*UTIdNHK{Pg4N2=NNUkoWv4F4QAOS86Iigx}J%eRvA1LOR+;M5=F#4Z16%u=bWZ z3+_(S#91g{sks+-;QF0mT8SDCPSMWdu8Odu+h7EHVtp0%*Ku)8&PF% zhkQq=fSQ7)buOKQAz%Zjf>>o2>r;g!S-&bZ1qe4**R`jzDO0lhGbRS0%ZNz?!2e~$ z%+t(CBTUnx6($QVWaVLn{g9+lWL0Yg{E2Zb-cYO#MiiW-8ds{psSCyNnoG&>j<(p* zQ_+v6Lp@=n*=1>^w#FEs{=9-3U6x7q0!zwYB-)R&ee#KoyrC{ZRjVY6seV_$vT9z| z`Ri!YMrkM1aMbUq$EMTSQLCRy?_WvmB(U(|21RTQ63c1R@^ios7J9TLzIpZ!2Dhe+ zym9Ti!To&MVd%q;zQuUqd#FO&hFu#Q)y-Qjm2S-YiAM7bNLfW&uysHfC& z!HP}cQz_2vn*BJ1q8gnywH(Z&7fzN@eec04$-=?Ty52Z5NTbNfTKqPEu*Fmj;5|>j zbJz=+D_(r=>wiVL-lbixW`=Jkb)MvUsB|9<>6>SIL8+EjYjsoX?*71k1@f{|ofX6T z2eEBsi9(NRUPRi|zUKWk0qCn@5&~olB#27ZdW6&?qU(z&TufQrb9}>$9|2Ts^tQ}* zVtI5nxox-(KI5s{wCb{dyi$X}9XvV4DujroU62tL=YZaqiS^8pb)c35y8Q?akL&VGyHY%WZx@e&MVR+XQmbc#0hnf zpM4N}xYkuX7nBZ*(mtlf6?OiUxtS_-X_m=|`?tp4+MAnmgWi|sd8(6HWd>gQ>|b3% zUGe?SEjd&8S$V_clO$j45C<|{)#+GHMYj#y z%tZ_`mb<;D6IWJ_Z$}28*yQ1;>_R`{nQ}K&k!?;ZCHPxc1`G+!pxpF`Lj({; z&lLd$3Gw@e#GunL$U8w|_+>jfAuxqFqu4qFH{$#KR&cZeia<@6_6AZW3@eS|-mD*G z6=+qha)j@zXakON2|pVf2WgL)hE;T_ned#Il=1dC>9e2XauM4W*sRx>yz{f@{kfIh z3k}ZiL<+!h=S$2a(K*ZE@RR5nJ5IMue8fN1S3Jbh8RyUmLG-;K>crJR+HE!Z*8&wF zaiZ_`d0M`t-W)ih`4e>^Tuk#Xw1skukg9kMkwM1M`s&xCPy-clSJRWS7MAMhE}6-w z_QtCE+xThBb>=D*dsV&cs_1g^JyOdfha-I7Z#?|O7i+ol- zq+_pLk)3hDX46sL>5pl&X8>zGU7UJeqjq8u)Upx*d8nk>YLpK> zMf)4y7w8xWBnvRaV%<+?eXwg+twh!{LXD_YyCO#zZj;Ei(?Gi<%e*USZg3YZG(^u$JuK?RwJj+?ig2ea4p-JE0xADg-}~Xw*D+S z|L{8|A7DBM@nG@5a<@6Rwxwh()>VzsfzPGBkNxvwZ>?NMP3gvn6kVWVE;mJ3RfP;uT0YfU+ zhG9TZ*d6idG~n3vgGTvz@bDRaQWwLvnn)h^9^62;jR(DXiWP}(whEga>kOXWT0GTW zk*+M8N4|cF-9SThdVVmp316%VY_T7%auCO$G}@6$8j4(djZZBPIq8De8ERONEya$6 z=rh(6*|uPLcr4h%mh-)R?)_mDvn!Oo`1$<3NbgCS07BJXnjmbPD(BZ4&SC}y(LnjF z8#yOE57DTUBHeaST?~!K^G)PP5!dtpflFerc!Ix5<3{qRM4&tnEW<+k=V7Zk8@dtP z@bHEd`$+9~eiN9fiA~+YpmX?Yb;IFdn5)d_wKXvMLHl;0?zYlyHyXheg$*$-@;r;bqXpVcaV>@&bQc91c?2g3+GPQA^Wc-J&I{@9@qq+TX1m#~9%;=u zYH$;VOs1?AWXs8(%yJn#(I_kU|I z36AKv)cQRxzk%@wXSkOL#}DOodw6lkv3g3goH&4guf;^1;``gWkI2*lZ9GG%dzB!4 z2+AoNHk#MI$NB9^PSA@lh!e**IwkZrC8AJ)y6hrCvi+a^T#-qcytr;i1u-lv zaJ0)%C&}dN3C7Kp5vzgy+ADV>43UCuC94h7kD(gC9q*{`9C@3D_yAg3Lj3x# zCsPl+zn(@yw+M&$DwfJ*-=x)p~j+dSg zWtcilXbXUO>PQ^-h6B^-?3)z?^uYeFa_?Sa(jvbCmw8P4k9y4q3n`H{quln!#?6K3 z#DiWEg!uq>-ngHU@i!j(4B&i zQ4V&oCr_3yV1inoR{rFtaD z)awiFzk9P^e8Qsgi9&SHsjTI|biDq<4#wo{SRsuJ84&MyCM2@};{0Tq5w56v_IuFt?l&9yGW~IfpQ-RhF}}g}exnrzI{xVAM}Iw%b=6IBhOGYK z@J^#c@fEWvTVX9;0`YUNPhKKjGRIWd`6k9FfirNBuuzrq`=sVLx{w!sLKR9E7SbZK z_?)Erl@a*m7A@D>Y%Av)LVP%a&I-)lnf7PgSqv)#QZEOIKp*)#oP$oD?px@xA7IP-`}OH$CIiNizJJYcAjAOE?oePb*~Q83=C zrrZ>5hSkBlN7*>lZ2QgfTafI90S%G&Xn+YIm8J1;HBfS z$N1r-#YSn_im=1NsgwP}QCI4TLG(U>BPyhYcKQVEsf~6-ts0em459Rm=d`t_b$wAY zK*!0i>H;$tq?4f)VnycjCc=`7h&4nnhC_Vc^^m5j;?8kMYOEM6)&jJbFq<&5%H|s< z9k-*&3Eo13N+TQxMan)71vkflo-lf?v;h?Sm{!zs%QD z?bq_$AlS%q$w~vwZG0Xlxg0TsxJK3EfV#vcv}-{v+zLx&OPxG^U79*{rLkW;**^Q1 zsZy6hXPMC1R3KtS*0>lw;evTaoM|7A=s=)akro7BG|Lul!q-q*WUK;?UyoFqA1gT+ zMU4jeht$wlRW_2pL+aXP#0#2Mtj=4WP4a8AYv6&u!-C!}Q2*zaGYtVP^pInBNlTj6 zq>D3o#mR8zoa^LJ4F^n|pn^uzJ?>C7xRxF0q%baoe^{sY?YD_Kh@o&CX;8XB2H0nJ~ROKJp zfsc{bj;(no(tkST&WZ>Q$guQ`Akz)oGBxa)Ttc7n?89W(v76FGb%dx7q{!WvEAEwA za}TPq?musfa>SCDpmSuNM>MX2Qe)nrT-rt<9pjjV;A(ynv|OYa!!R zW3_YmTHd-Fq#Tr3^QWdiajKcBy(}kCp|p@b>&Rr*XMupB^_By1Z*sH#DO$d-ik|`4 zBzH*!LsnTE4P!Tl;86qGF5;stDQCg%Y8{~Jhn6F9!N-k?sj)6m9C_-z!V-km*J;T; zCEHIF+sA+oIx$2qcibV<^sP&6(hQHwz;Jn<6lMzf*NI=KD?E0Vp)M4G&4e}-B2?Fb0YmTJ^#8be54R-y z`0u-IOHC~`7v*f2W+rYZEw_24m71$^<-mnokxFx9?mfv|xpR^OtsH2Iq$nh)P@zl;Ou)rTcdKS z{H+%*IZXt9*q?Mp#3AK$fQkPZRm&~hwu{_{Z~Su==X{~8H22Y&73P|8eE__@wiG_^ zO?GLVS3SK`puFt)Qw8X-at37yKRpw$8<U;Bmu%_!(niojW;mSsPBOM_fjmMHeTjP(h((?g>5LLQlBL=xLc_*0@e+i$4g| z6lGXHueJ^Qn8@AB9WtP|lgZz%SdaN5P}WDPZk#y~G;1&u^}R6r#XSBnDh&K9bL@df zZVjJ;CjM#Z%#Dzx7yjizlOA#sM+cQzxc8(6(vXQ%8#;KV)OURon`?nJ{a)D4EQJG24{Ribee@lP#s$Y9%790>;DX?v-OT#lm!7AE8Z>MiiAe zwLHMAPMhZs3tHUvYg1WIG)EW)Q$;!v$uQXZ=48xo?)B-!nE)TT0=~$76gk9Xd*$oo za9e$DKzz{JuJuSw8p@^}y3h1HOd)m9hU{SUL)&!g+E_wV z!t!T2^ME_!!ZrI_b73vJ%nLA2Gim`~5~fMQAeZow|wB?1Syk zmp7p2)Lju~3|i_eSnIHgEZ$J#GaO=AU*##BClpD8y~KKoUK zSr%+qb`i6`lbLebB}Q^+;bI!@nz%H>kb)#B)eDo?j*kVbl*n0ygDM6}W}CMGm$+VD78}?sQWTeCMnQN}bJG^~UWB&j~YoJSC+soMzWJia) zDP%*}Qe=+a7bv(oR!qy5WWAiKjjun6xa*Ufz=;Mfs}pr>s5pftzDQ}Dqmw-bTCc)k zEL^!toYhvo@OWT0n>XnzIW9QsT0Hevg5|{)jvYWB-Ctb_>y~)#?)fOahN!T%uZ_SE zeAAmt;fDnq;ad98s<=U)L~7`Bo`Tt2T`m`vSA#dkTe`o zx$VeO=Z|>f_y`+Cu>>`VppOS4ePU<6X=La1>BL`1K$i%gO}3qUkO)3LqanQoTG~LE zPso;1;ERo3gV1&B)M|atLK{vs07LAE?1bd^uC-+1_Lc1B zXGjV+oj@CQ5|r-FI>NET*yx3x>fj3!KC6k?Q5$t5OJJ$Q?H+87->B||8CL`)VpVSM zQ5X4$GQ6$1Z7<||H`B(tuzeT zA7i^3`WsdlM6%(zv%+u4*_W(Tt z!38{{a7o_r)VkL?m=Le8JRK;gd^z{D*ZR1zL(M!o2)=Vyb)`ZAJj{r@7xKpc#O3R?$s8Xw}gY` znI)Q_i?*&%QQq&y=P4H%??P+x%-8?;LJ2!9RbX`~K{dRmOoRcaFAZIo|r(PJUd zQ&r8zTpzyaAd#!WtK_g5RB6Zd5QjPZ4%zMheatxk;8up2+Y0^X<}PeG0sg{x_hUjx zgz3x$RZ6nD;rA|g9U$Lg*51PahDSzNQRI*Eq@^t5WKll|U%}eiu{9yLRwu2dZ56>Q zLt~M=e_5c@FUO1=?0_ol-5kAa9w1)t$C+rBck^iV(1h($VB9n8yl0NXZfFB!KdNCR zQM(*^veYxmRvN8II@0TEd>RAx#A zBqG>-B-&3I<#*MzMdv}fFFAdLJx=m$s5~3~@%WDvZ}wx{)7W%+G^C~@<3KD7KW{Fv zfVF(_lv$XNkb3=UNKNxK-GZpBWkW=o(;Txc3!bki_DEXeyiL;=?z+(U)89CEM8BlE z;w12!mJ)@6xx=XfiKy;Z`H{n~l;qD6_?->WgA0&a(+lmGFfobK>qBHO7X_u@%mq=#kH~!aI(y0f z9J6wo8H28HM{_5svNTG?p-}$%J5h&#L=MM%H563-+8VAw=5x-9MfCNFs~lDB#`<*gY9N%}74cRJM8$jkgvy`_Fzs-o1T z^J%qC&%<|>S?)rAoj>aSmGH?m!*qHCx6h~}QuME@MAZ*YWS>guund_z3aGbQK^1borJ-omv$zdVFkLa~+D^5e5TV|a)A3*t&` z))D$7Jbgg-mMhs10*V^e(f;Tb?U32n zIB?k+33rylvQzZ6(=Wf`|5bO~tKPPM{_wwIwM*UV8Hf2d>_RZ}8#LFI-qrPA? zWukz8hO_@_0EhytptTkxEqx@$!JLGs}T zRZ{u3+%-%Tg=w0VJSf%VA;G-!^{x_4q#CTy8cNq_b)t}*)K^+dYv%c869~g2NDHs%+7(_nf&$eE&-KoMOKwTnjhWf&!8aPusLi=f}0l#yZ#9n4>Bq{&H zW;e+G-qJZIE%WuQmU5d{4)W^pJH|==EE6j< zo$}hJR5bX{;HLB=qTrb@2Eeb+`{UfxbjQq3p32&it4uswubH5gDXp3$o5*a1K)po@ z@wcp>x9;5;Tk{`U1A)t;d&C$hKT;_kuoWdpyb|@CLc|VKf`Fx}$(q&*%Za{8Q2 z@Y^x0quzrDE_S^YER3Ugwq+Cn+<{~^T`2_>=B>}UXRwnL_t1TimE$WJiJtg=bUck+ z#`=W~gUZDP`y=X%fhk2_-#xngWb?jXXpc~$u7A)G{WYF7?zgjm#*-E&XT`ueElP7lBO3p-Ts(u!manZUEmYxi4z9rv5RJxr78?1n<**0m+W0V zqbz9OY4^5nytUmn>mw#77^GI@TGnA!je>uIFD!~Z_DGMf;1aR#5L6R0d88kjkV#!T znR0hN9+pl8a;L7{YE&p25Q$m2?}%!LGDZ$b7k;ZnGOsKEjw7Yg){h&W@sdi!lpHL* z!w!4bj`OPLnNGVHS5n(Vs=+xq{)#nHsz({3-D){k>AKJ#7uEOq)lF(P8|O zYPtpC4?6ZzqqmN|^#D!;K9%^b87RDwO~a+cN0~@~kl%k5smT8cE>h$BTUkFcf6IOO z6*MljCTUJ1k|ej%aX#=t^D&3!Uw2}v)t(}F{~DAlJ|4V|A5CZcO=1{yZIj1O!H8m1 znYvKP@9YHbug2=;RQo#A>Zx;A*EY&{HoV13P6QgK>j(F~77mZ`Oh=u& zY+FZdv5%KEzqa?Woj3@QYBhL`-TM-jzuc-Ex!=B;vOUx@(!|>!L?h!2 zv?|Lso4euW*ecINJ|rxEG#bJ_SCGh~-$~bQN2$Krx30@U_%*seG;~KChs{q0z&#}* zU-dyJB|c*}YaK!!Ri~ab@JpMFVI$uy_cUXag;ICQ;Nu}T-Q90B#_b1?Cf4jcTj!lIrsej77ove| zeKpU=z#&cPCgI|{S(z$uUviF z6FYTS{Pw5=a0ASbwkIw)HFQIJ85&=pdRn-&+*;x(l}%$;VDb5 ztda;cJkd^bCe4Vb*M$Q9VTJ;38`6)Ng!zC>U{Rohb(@giixW{AB-v7XM=M#Y@~UbF zFljoZFf-ag_+Lz} zOa3F9fpVU7DW4~lZmTQX;x7%7`oxl4ooKV=wE>XZ5V_%iQ(=I1BPF~0 zp8z#Ds4(4feR5Q$ewmF^$+?3KPR6b|-$Lo(J?&`$$_0PM4<6pLlljfzaD9OAD zxbf)RS#oP0B1}L@VG|yAPuH$}vTdX!@nJ|AX8ZVdP8xG;cIyUH@ZPVj)}`AyCB}3I z3oeK~Cse#O3D2h8)n~4WmQ66VgQNXOPoTMP+uZ?v12a(;gtotD?^tB`GIUVx0Rojs>I*icu12BBHpPTFpT_BDg$d>bADX1FEeyv)B^bABED z9h*d;wR9S`Ru*4-CA6N{81#F=2fvzz{L*-I(>8TSTvXNcTj{XCb)P)gX!|C-174R! zkfvN*{XOR4YnHK{W4V&uP5yeN>Lt>pP|i4j+cFfNy(%bQYD#Iqji;OH%b42Wbe5r| zWRo)vVdTyH`x+(;k*NTsgq6|M*|Y2Hm#^Ns3=DU&Djt~?YjZ=U%ZY^He;uZ_b7#|9 z8_E)}Fc%ibdR8bV)wgak8$M2MUE9&jp)Q1YGS+4Zne_Z)>X|sH^#_g1J#LhPO?3qJ zddJ~?G0^>VtSHgJ);hGTk#P9H{+M}xwnUdiwvH7lcm^Wyh+J46xYXXbag0I!xNdFL@;VkP$T{+ zB}Z)v>Uq?h3P$#ubu4@DrtxfSU7ooPBL#D zGuNH_p7h`2dNRj?xgX)b!EBMP2)wvZAL22>qG6>N??*-rw&0z$1iOne}CJ zUb4b5ObG12gBhGz@vpV%h|P!e)`=YV|EFT2;^jc_On?HWLS3v3Jh_g8z1I(ICoJ@Y zCq0>*_c8Fl{urzRwayNR)D7)KL|v(WjJBkFnmx{F2^{m~=J*{SQ@flzben6^_S{l`W zMK_1MzHM36_#>)a^o&~?u8B7rh*zex%)flyqvx{^E`|Er=GaTNT`$+*Z9>gT)KV?*Ro(u$z=x7L*h1`Y2|~_&i4c<57zgB*EH@t z?fXZJ8=)*M4P|N|njvAf(uZbt>4@!=0*8%erQXJN|JE|BK4<=_2Zb~*G_8T9d^BUt zs#c*WA=JUklj@xPL5c{!>kfCB(yjV-T37Z3^re z+%_Or`}|FVA&OCIy10!7*cDP&4s+vSEb;Ys=Ie}Q z3~L92G9Q1Sp9^UqQqKOlW#haL`&HNN&N9Av7KE^T(yk#u1eUmaB16t;JHPDp6tOMZ zOJ3MsP1$;1@EAf|d-!OH$qNTLYsbpDSFD|P%l>_xmF<=VzT zl(Yp-Qd|T+qsaFsze6HsP;&RTBrn*oIiGJ!=q-S;+J!Cfj1eS1@~vatzU%aoudp6H zGQ+3_vBDyz5da@Ewq7YCG?4iQ4-4`-QBZcIigh)GYD9u(_Qb0bcc)zJMvazJng zK|87lKG-A%MQ~BC=9988OzL+p-3@zuRaaAXV*jzYAByv2!rNhK4T!o-a31Nc)Qsun zybPjh4^!8;CSJD?d&v-}|03o7BC4k~{;ugntF!^suJuu%#=cm|x}(y0-Fg}GsQ~$! zmP7QvKgE5a3IFproB!8$bMx8wF#tS}+Sx(xfG?8;xuW3IjcyFUSG_DMl)>B(m#J^D z5r2Jegvzu4z!vVGmA86=R}x}{?uvhGnmFxMv74#+A>X6{uV*lsAUGmrq4Kz}uMU`wJ21*k@SFBNV6=e`#27`M3#9~czKQU} zg%v*Lmk8Chq~g5?>ZU5&utbP6A#OK9!FwrCYGvq|IQ5e4p}DBxX=oMNyj*_up)nNP z_}>1x{qK|^AwsCg!3zb8W%ku*hCPHJl2V(<7 zOmTseYM~3#p0(`{%}T;)cL3yv*|#m#hU<^x!;H$=RE^=mS>@1o6VGAWB@->HH8&0X z^2{#!=e^ijiVMFsX$`#iHn%Qn_p$p|Ymp)km*DNYD;;KZBiuF*A z0MB2G0U+#Nj-)wvpD8p7jyf|F^f!p&EX=IQxqGEz_Ol0KtM6FBTfH6g_5ed-+Q80=z9`Dd6&|!C5!Ew(wVSfAF-pee3RJf7cx5Rx9U< z%L(QAH_Y(a`GDz?VsZj{+(a{AKP(;_y!r`{kmOgF?;ReJlOeh_D04s{8)uKc#ReeV zDoJ7d?X3PN@V7uD^DjH^6ZZPwDO+WfC8gKEH{6~X5KsUT)6BoVcPR~!% zdPQGce`|Y8H^H7WhT!*Yb>pGna@uhtFU6x(YE0OQRr2vMG4zPTmaTBgT)CORd9MLC z`B5<3edKc!%D!=7Q_6pXZPLA?Z&}~p)F|CdD4my~JHto#^&FaPwh)e*c7_M*CT?}^ z9KghU(ZvNr|KB}iLwEka>vxDf?X4}`vgikjI|^l3wfQyfd=p#Xc@%frN+7)g8hS&t zW~`<_+Pr^ZDvkK9A4RK(WJ47_;5G6oL}=qEwhCoik1A?vnP#Nu;cel`v+27tN&CeL z^|C9NzEOABcI&EP8Qde?^^=U2=AUj-+(f7lqPy+P!p6hQaRh2zcK*bSY;gy=^;kZW zb-?#;TscZWK^7l-n{3_mOwC`|;qhieVt*GhtK;wBjH#t<;2h_rmh0N}_g@PWF5KFC z6064EImxfo!}lfKaPAkNYPJtWJb_KkU(`7-Kd6Kn(4^GvFGwVduzqt{j+jK<`g62w z5G2XVip!LSDSm`(?g|&O*m35qsh!`#3=~8zUd9KmoMdka;b>XK)$%u6il^Pb6Mn^9 zwKo_tZs!*DG>9Z)c$LDJNp%xOW$!uG|aa&!Jd9{!K@D_oY^8RIZk}R zaONqw%jG0p8O2^_knUt9yA%JUm-?GL@S7}YGNcUwBvr(JUaj!a5Gc=KYGr_+8izv} zXp5~g2!();+2fmP-~e|+Ww$^Y%GoIHtK3*CXIoI{>xDq-<@N^f^2R4>H#N_JYf`73 zI1k!2YmIbWziR{xS$~v`Is+jfx|R$4MQb4wiB>{LkKobTZDxmu&`^My2d?>tx(70r z{vN?{=7QhenUaUI6FUhdlT{Yp9Ts~(FWuyQc8u-EvSJVH^l-a9WzZhLpG32(^WP>f zHesw-VM36TrXNYoRg1%idb%IgIvW>sjhhEwSanV{)YBYf&Zmz)R4#nIRb?FQ7ph}G z!#F-_w~vyu-5Kf$R?TBtwEC9Z8qM^m%U+GP#t#2XHYy`)kANxA(y$O}U(R4%@Jwzw ziljyempCW>r#`$%VeZ=q&^&J(f%}YvB%f4)ggk?XTG7rl`5I+ELXq-6Gg_>b+4Fot zMQV>I=&D+MDlwOo*fcp{>I)oIpse4bKdlq0Q`2ec9NK9uT|^^G-cUkLe4_TELSmQZ z>_g#0Av`-S&;4s`nCYR@?M{0zOnq_Ku^U#c%5oElzJxeK`bp21E`8#EO^5faebnqM zZ1U^c@FlCi)d^(70NY_JDuTt zQ*gJHKR$>lSR5)ooS;0FdVSt^{{orQ3#?+z6b^Ya;|J0`FQ=}!^CNq{Cvs*ey9qh< zRng7kPLQ-(i6r(#WAqO1ZQC~b>)^-6_hX}_;u+5dZY4rpAFo>o4#-Wa5f5U0ldfpF z>EAL>yHy;LXZV)18mY^UL_|X%!ninuc#l2H)4@PU+GT7{knTymaOQQnRW-{nn5pf| zwj&6w6z}XrUjwWH^9s0vNt^o~Ia*};^xU~59zQ3x|py-mPXI3VM+DCm%9g(JByQIK z;zTchyeNOvg@gi14^tTIto_d9r+<=F9)>X@H2S*_ms#7)+n*b?X_tM10nWlkKs3`q zkTiMepNkFVoaC*&TExH0^1wZ4sexsWs5i}R$WSbuzBf)!p9UM`Sfx|>LNObPEl zu=}%>f4?%E9FqD~7S;I^E{*r&yk8iogz{g^`qJ(r>Ajkl?dOx)wp1}?y+=x<8bU_$ z7ll~W+kNYDvZaiT0AxReoMA_&2>F2P?w#S z%awYI4Ox5+RAfifn@nu?H%Ac@EF>t*pIX{J^5GKwe|yw1KbrotEL{G1A*=&@p3KeK zqgvj0LYV9Jk2A+@-#h=afdFt>^Ng8i4n1LHgORZ>?Vvfw2J@Wdha*`W3f6U{lC4YgO$tw065gr|*0)=cR}Vc#fsH}X#vRL8-*3@s z9gq_aXTC+YWfw{OFgeKJ-?^-2oA89tB;@kcDmCF;b7xEuhJ=;+DOjVGO}~A&BqF#B z7{n9Gb&wL6@)_B3tom#kq1ZZd0x#DWpqNpOAUWhl_5`leV-l9 zKex069B>|S%b!gyM4ILKi!-#rVO+C1?fW&Y3R=gGE;T$9bZm zg+VoTQN^6QqjjNi22-42N_G!^l$tqDgN83&hm`jtbxyp`9vh-P(o=rR_IK6( ztf*asMYjJo>2n^r?wn_YuV~ZVN`TS#au-71d_+6P>k)_>e+0inhy2?Q-{3zula%b5 zIn_{c+`*a-JozxOF^q#|r&Ygbuz?F)$ALOb{Ci$B+~dUAlX)7?+9`_)QloyILpG;T z=xSlsKi`ahQF#r{y)v%prj&^Wn8ZO%nu~R+lOwaZ2r=|%9DCAE) zM1(()dn@2%_}H@h{Xfn>nwk>JX9(B89-hih$_U5@wYNlZxXVivY3>2jzO*q<`+Aky zX?N-G=r0>U3zBinM$!tXFKf)=a9kS~p+MA(xIV^pEM!!nJu&-%7~XKh@BDuYI~;d%Kd9(0Of+S4?%h#;(A(BCX+jI@2H!l;=grF5dxrg zb7zhJfrOqBm92nG`ew;SZ%t?B*;@#AuiLMv!q!XXyq-tG z%6yaHrF`)^ORj$`rKU4~$9H*%_j|jqHFrMfh#!)uFgy`9oUyMj39~JnkSMsHUdjv> zpS<6$I}La3KfdDTpy2M-RfBx{4sl;;xUJ!B94l8M6gw0o_ZU;O$eZfmre?6tXJoO= z?g?9Gb-TCRe|N?g7UcwZVSWZGe=N6#2SVVKD(2)ByKWoa-dbxT8tZW*S7OQUz&Bqo zpIa@zwn~-gggo3#sn|eH2G%h1_8wRNTS4(5>ihpSrgQxGKhaUA3Hhu!YJ?$NJAS#i zVjOmF`BR9}z|(d~w)N{VE*H|J(Cy4gu+k-~v_B#1lQb>y6-pzhhr!h-F0YA^=VazP zJlj+ruDBO$=Qo@&a+ALD8nThiGQ~h6%{j(#Wo(z3t!k;3?l0e}qgeZ&Dk>+{>7%v5 zYE))lm`jy+9`~byYRIJZ>na~n8Dv>JQKivVC6ryQKzEHMxMmVUO}_)E{S^Q>DSOUv zCB))+IIP>p%jUakGCby^xo{5nxX5Z8b{zSnG>5?g)|94RO1;N$VzLb(F2)VNH&B+v#u5Ax1TEW;5xghZ&5V?wvKK7zgv*R{hzE zccwN__OiJORTNA5EpYv>;oR|E!Na(gX@!a4oQL57q|(~l`{ZmT0#L-NHI(w2DgSjC zuKLT)n2GLeG(64@-&la|>nq_)xeYe9dD%Y_=9#9ik|Ewn0Ee?uuPopj&E8-VVeQOH~ zZgFP+F!{I&`>^B9t5A$rl|Z%H-dJbwCD+pV6xvIx?9~XzjV!<5uz`n>ohI@(`Ia$= zJ~J?ivCbVg9QmE}>ptF{F|KpO$j&%aUXMIY$%e61*?C~XO8c!fB0%jnmyL#%)*I|w>IhJ1fQS0OQu98O z_MV`;3R1q9IHgWiS^%Ky+tcGmilGb^(|Sftv9yAPT6!qqVfLonZWDMZT!xo{a4Uv zqDSUJglx2TZ>Hr_t~Vz37n|qCcs`||NBmpOMwkyJNA=g8koBw#bY(}DC9X{=d2VPe z_4_kZu`WM-{-Q7gOqeDWHIeuE0C~AA{=g~77fBrQPd7Ie-RKSZq|=n)ipbb_dX>EX zfhoP7_RYyOs~|!XF2_T?^73hX4E4D%GQ>gYz-c;%N!Wj!Op^Fag~p_szsmKy(R{w+ zV&Zj7n#}UviB^rUgx_ERgTL5CYJSjnd*^3a+nt6oH6S^uABO8Pl#;v}cJw@i)Re;XP&&(Q>OJm?)H)Yw5b@9k(6aJwEP7cWfxm~?8=(7Ww~Q3=#F$idu!WRW{R z5b?#cx=3wVjB#N(CDt0(18A72zU+91oC~ZDh+pu1)D7DCQ3c})%J1ZLsg~3v2y}Q3 z@GM%k9Db;b&thSQ@#;KdvdhJ0bYHxKs!fZf_`Amx5%gd5rW!p-;ui{t$G~s?6>#@H z?DUfak${cLHpym(jghVCb{p-nxp*-LrJdkn;mjSKTb=`XyqDYoVVtlv?zNM$ooaNu z2kP3019m+^UwZ(S{WD^+be#AbfL5|mUv>yo8qg#M83kNLVUy+*T-5i2Fa7hOI?L+Y z=Bz^K&qF9r?|78oPe4M%=t8Dx>f=_0kahJc z)aImbCHF~d($s6b&Ft(R8`C^vEZ7H4y*=-I%X#+q`g!tk)cZfTf93sZysID!iYR>F zUhm%u&_7obzXnTGw??GkGF?AB@wmyt)UgisPln2OHX`q>6`!Go{%xP|5M0ixz(Vce zmp(bD4yP1y1q)_xt}C2u?fq&k$Yv?_zS~%9VtwJ*(mRUv9}rgn;k8PyZ4aTps`h!Z z#a4D5&njl91%r=g7IynGnr+Wz@JE80@=U*Z`U?w3vc43$m{7ZO79i9Mz z0O>ko+@-nsPmQB?((||%OnMh|J*_w-+tSsUcPw^c{>g&TpPq(aL4bvM{|3L-HhE-_ zOR-_oZRv)_oLv!ZtHrv})UE7lQJ2XvE)e=)b257vO<~jxzt-*FH(Dg-49LgHnole_ z=hN60JuO>=d~R?KX~U8dN6je?@LDB#Y$@P}!?)G>`?pkY6u%+_XolfKGMQmhfo=XJ z>>`SA`JntI)y>`w)pxm&QSlDccG-5 zxZCkR%j5W|e?_ZdA!Zam4Zww-;=o5>(`lIHKt$MSJ=E{w@7W2-g~e(MVnwM_5t8P- zx$wZ-mT`FWNp-V79~fz4gyVuG-R=;B6y~wS zRz(U$6Te^GkpTw)&oe9G&*b-a{t=60mBF2@D>RcS8GLtCmb^S(b-r-YMQ9{EGBcog zxC_H>jHnaN4OAHCCsE=jYVF>i@XYqur$4O8$x0uHJOi-MeT1I} z8b(|@{WlPvtK+TP?6ePlXv(BJjrf@#%O(Bca*eb%in)eZ!oW-<{kOn-g6n%P>mDER z*C%lHLi-dc|;=W|$n-?<%rG8rU4LQWZuGz_)T^OM_FRHG*MXXB+ zD+M~Zm(43-t@;E$&GYqq@poMZNNu&UKa6r#W8`jbhtz^!&-y4Erswig+ok>;QXd~e z|Jm5p6~q8xItbf>f!g~1ZJp~36pFQaz|najEaZR9d86O|Ez@V;i6#EB30QVvJ3mIb z6XapD+(Chl_+Q{Rd-&=C%;Y``R!_C~< z42}f~?{9$GeSgA{An8&iQ&EWEx%P8QW*sIllwRm)S#Vl3o6X=w()%Fbd*_}c0eB-Y zX>oyc@w78`aG^rmbsJUm;8kH<;r+C~Y=@;)->dj1H4_(J{2{1NZ#<^oz>ww=s_4l9H_s3klbwu}YIzw8rF^(FVBP-F}JdvWP*e~9Gi)ZFWMxWPCb5W-5VSx$z!~bzL9Q)VYwxxOp`JF6z9-9cfz*})LQb?#9r5~Sw$%EfTi~eTi}B9t{mw3=S1_; zGqPfGn@j!P^ug5~M=cwo0P{fT!iLf00MFdq!Qw%=L!wS}w((3UFB{#HQP=03{#3D-nxJj2IeC!t2FYk z?6rdeb{08nuIq7G^;fMkgnLQfzUY65_B6&0(jJrA7C*<&_zAitHj)0Ey1Wo~y(&BD zG#M1fGYuj9nXkJ%H-z^$rez)Kh9F~o3KC+sSfGz5?(i>?Ap2K;Her?=8pW)%Tr*se zOZ&&8yYMqD_@1FYBVeGLk4U2i{_Ui+R*wGc%5!4Lp(?S3T#CIi+}Oc;rSk&o9>h!P zt0f?1Ek90SX>WuJZXwXaW@DK(B!E^@xT;a-L|4o@u*zr8v#zsRL~ziLwcdFLd9v*du($S6`=ci^3EXP++e0SILc8>IxH3u% zy^ zvd^!}V|BmUrnzii<5^Hfu=T-%o}SY?h1#Ew&!A>5u*Ts@YfmRN`(*()=VfBWmbc>G zOwj7THoI53*q>1QjJ0ne;#Hn*q*NH+RwP+B*~jf%%Q+MY^P&En|J~518*eatk(vGO zB0QjVKU=ST_FU`ha1nm1r0OTQLr*#H%EmBqJWLgHjd^u^_H{x5sLqqsj?trKaE?%E z#59X|9>UZUZH;0_lO*EX(<@FZ;lKrlpCUXMCQ zcZ`>Gv3_$GwkJLDM6&AwPYcLo*`#{L`;P-mwsQD_L{^nCR)w-ew#t;bhT_Ega<~x( zfdXj0X3dYl!U6mM(5b1m1onz8FOi~fm)&T9Cz3@_ycC{(EqCs7(ve2)>Ky6VeI{&9Y-e?SLZ6SL5UW_RiJ zJ6}fQ+N}Y3=;3v3JpUom$Wzcq6@*OsZ35*bnZfU|!aX;~_@#>^dX4}Jjze7|ouxd_ zZYakts{fOll6&NoLe}#6Zq68~J1LMGcd2mw_#Z`8x+TYOvYdX&%}x3yWbmG9o*iBF z=-SwK^*6}9h6ls!T8_{kl6Pml2KPiWYNU35vCzi9wLD7CbE+031c>+kh4*TM6RgNs z3&4B?xqoAg!}0)B>mgQ?%y3T_S`UZFakG2rFx+8F9c@ejFuOb>3a9wr9{#2+KVFEP z{LZXW`fc8JvF&hWFNA-^JZEi-eEg+HI$_FD{PYGwQ@S2b6;Mp{lC1VNiav2m7r6`$5k!J)fo9AEusg+LMB)(G8h* zen-~&tonQIi}_Ao30(fkvU2gH19$WQi0ha>BvtvmI!d)y~yOL^_1bOPt4eK7W@yn(iS z>7}`_6?C_iu6o;_j}TAT@_QI90pS4hCUslY&S0E#2G%OLszR#K1C@c+j`8f+x3x%x z+R@&+{HZ_jEHurGwCQA@GqD(YK4j+kLXr{LlI^|c-N@ZS3Co^ex4^-i(98a*<`0HL z?MC`uz$4o+y(=C}-;XW-+WY^7V%@YA`*$KomDIx9U2+cnT2Z@>4FRp+c5``x zT5}!PpxtHq!wYXuAS8P3KXaQ^<0HQLr6tFh{Kn$(2I;0k;nGWE0Syyr=jqWb^gCT6 za>-#XSDM-9NeRmRuh~+Ty=lD+A%&_UHDHaL(U4MNZ{%n@ql7ap9L*tVZmqIu)AXdbe|I6J-9sx}Sg+-%{f&@;&~hY-*z#lA72%FFuU{~6?ot<+$p~c7G@6?1SnlHjhe^A{$cwS%0-qz907|=zi{48u_>5v-NfgZ>thvR!%q_lyHy0c~tB%CRp=x9?5O7 zYcDs@Ut^1md;H;sJP)f8^tkCdqwPdvoHKg)MXPct0jv7YouC*nlxEh&uSL)cI|%!m7fmi`gI4EUYOJB8AY+~?n{25B6-vZoZFE~p5m6Q3R;HbWeFw6{ z!)~+u|L4nZ3wTYq>?$XdRfGnV;Fv@tegWX|#SeKAQ<#rOiv z^PBa_bBRiZie17rl@fAU;m=O(zpLdGU(5bSlY5(@?Xkz%mrdna@vUTS(X8n3Tq_Oyj%Vbku z81CUa$B;#Ox5f|uj)b~$gj+_Z469&(T&wz>>-5zkNhi}_4a5^GHb=F zZR#9d$&iI9q4PFk*v#+D$q)(v7Dnn>z=Gz9%bsyjje9&6lW97unMIDPho}~>V~imB;Nn<|8e!^@lf>v z`+wVA6cs9EEo;gyG}emjOQB@Xl6{b|k1>jpgzPbv?Aezw_N|m9#@GjA$vPNgFf+zF zzNhIqT_&DLdpf2cE93!mF{D7^M8=9eS1Ikq9LB_BC~&Rl}m01a!!H zi8}PU9okQ5)bNKCb-(A@b zdxO>WQK8ec;E;=z%ydr7?GSOmmFf8!1E;3=j%K>KM=g!E#T$5X?UrI5CC$|qD7Pe} zZ!w8aSf5hC?)Sf3PMDgZwznoSKttpQ>E<1lv# z*k_BH-3k_gXX{t;DS@0b!<#CF_J8E^3N_)oS4fw%0h>yI(g_}3&tUuALBy;QJ*%{8 zb`MxmrO>s2H;&-a;JJ@i87p=wrvJWy?55q^xTg#Np_S;Uxq!nrW(JK)Bl}DV_)KPx z2=}6x=fp01+~asIS#&dR!&Gfz^LvBOOL3LG2SMNy*G>ru)bLlZQ2pPrGJbqLgDVOi z)<5pN{^ho&jZkI7n4*s>_qJ^}qs7W?D`CAEBv6)}h|ye$U6>NKdHB&^v3D)0?j7$} zo_cXmaA<`&JcMx&)GrcjuI2aRd9UwurR0+Vmi@#SE7-gKIUg0}>h!LBSQpC8#WMp` z6#aB;1j(_kbnzdy;qw*ZP(?^)Cx}=8&LmDc0rC)?HqWVF{SAYE(ya$NzYt+3k_bJ9doVCB1!SZyLX4%!g3uSjqPbV;$w>3{QB|p|=3#{-v5ps^; z*P#^yPrCeGh(8m}H<$raVHxGw<9;tx64-x~l&1+tc{)xsym7CFOO8lN*xs)#*BgQ= z9U(xSX9#L|A1 zh&OyA2XRWKic#aDqzgieAY8~*Z89kITLvQLK&JzcaycO)tps7Pj6n33k}`3{`JUS_|2XK&)i!X>rt zWy`Evk-w?9?R@0PcJ^*@f4{!+qfo%7Pf(A8jL8=X4(eIA*Gyx z)U+^z2M126>`nik`#=l3$$+5qZvbj~|Cc-mbXQcFj%-M@j!S*}ymQyt z90aS;QGc4nI#(ckMpY`$Cc#$wuZR5f_fIxt{ANCfq+c#oy-B<~sz#bW=3t5WC$Q#W z`TG!FOV;gYCm8`>qZ)$ZF5qr1Hx#1dpzS=OdffX41Y zY+H-|NxeMe(bMNz!yYN!-qZ{{x7?ShvDej}xyM!jSh0=5{frWE*leF+fdMVQp4xpt zJ0;lc<`B&MAyH#d72||UBHab}d+xZTNEcY{4RhE6_$E#N*?R zDbSpXK2!cUF>&bjj2tl!Kg?BxsphF~i(j%*lWM@bnES9Mo)vi>1^Ca*U0)qadnCF7=S`hO*9+Cb0kGz z@_+fp3jF!y7<@M1sU`n!*QkN~cb3-9hS#}xg$X8m%l42oi$slyRIbMFp?03y$0)vU0BNW@7a z6Sz+5Gl4a;{)Y@l-%N3&d4iRf>D%Hfw~A=dAfrre_t@R%ob{SA4IIOc@@#t?gZ*)H zPm^)mbdmjZ#(>Y80UGlBBA4tCL_9eTs3kO+b&c3?E?s_j@lmGCw?r*fF1*uapGr#u zfdbIS>R+pU{ZXvD+Os3Ve`oi2L*|<|mHA9yBCD2my-|NcChq%Z?j8>noT(|=04ef3 zEgPVnk3L_qXM)U++kkLhZ}z`~DhmlhNZ&J>>HQok2kYu`f)zqwq&`2-aE$n@GX2Pw zp{=C={NDx536RLI-tGJAtFqSq`_|{5=6E1qwi@D6YH{eO6YZL;LYmQ2N2{^QrN8Ay z{cd=!P#6xBo-9u%eV6TP3Bo(dx!9Xk!~~%Y7$uP9fz0N*xDw_50rMrue!V_XQpdMj z8R&url$~wdaRQaS*~q6qn=oRA5HYd?sA*BvPKAfND_`nuie>`K-Z$)4ifE~)l2H%N(?XjL&kr`ujL~W>QD}P~h`luX8t`NE(mKzk7 z@he7VJZzYU;L;h(Eum2Jr zS8vDvN#lLD?((V}dko)$3yv>i`x-qFViiRt4hIb{y@4MOD^67G4}-pgz`2b z(i?1Co$29xKqBjxrN$gcA0r0#o^^o21Hn(V8S$VAPy_49{;uR*mAcCXAt~WmaF-4*6w4!%*A5cYXi1u^JTfy z!O7z%l8uksKK?OZnyKP=*xyCfhR>qlUQc2hnv);4o&>T21>J{Su$f?C5zU&kod5+*h))yJS?$v&bP62vyB zjOwvqy6!jf`=%jeqsHeHxuFcTYh-AQ2LrX+^%BpUvi)Vb6G7l0J$a$+=G7+FUMR`N z8Sme?ib_~d43#Y?B*FH=>RMaOddOER?)?Y6`X7)u>{m(jU(`g$+atSSqRO~sc$-i2 zYU{Mlc@yLpp{qp^vKfj-0$8n^Wv9!#(!_<^&_hm?(S2LXj*?YATL88%vi)Agp$NN` zYFrO#N{#ON{6l%{gNMeA(UYK>z@lo_J;?#I!bD0-x1AH+P@a~S70*zVL?C&D;Erg8W2~Y7t zb;WhA3UbZCod}XZ!cw-O!d|d92ZS!Z0F5EZ(lyWfqe#)(glICgJ;u&>G=xt`A~c9PWLr}W%M>=qd~UWeJF%+PLWsEWGowoi9Byp z{k3Rc=R$#O1Bfs22rE@p8lNfqW0?P?@Cqlul% z@oSId%OgUvD9-0i^j$81^bwOaVX|ctTWLcdjMJ7A-`@L8J&<$5t2l>oQwhG0uBS;Q zDbSbYY9P#H?P&_2cfnuToO<7eb~n<@7)BvyJaD*yIyRe0Kc|jL!w_cR)hq@$ORf?t zDdLf{=h!M}kaQ~-qihM5P5WH?fkF}c_fO|1&aQ*+x7zAM@9!mgxZj*HJ|d%C^g2Y6 z_I_y<*CBL~k}s|Yslh1M1>upA+>yJIl(9ccPq%T>W);;5Y4}2u^;}r|$w;0RO&yK? zSaRZ8I{$Q2ZHvLCj!xoly)S}q?;AELgNwOl^IIvqVzr7utzUicUC{Gdqr9Onv$O;%;b2<%I@7*A9n ze-;tsiLd%er#dARXkf`XKks34pIdw$H5uQ<-FxlJVBD&lD9;B#w&Pm_`rY?Y%| z=M<53k2sxBBLo9y`W(59$R@|*a0#AV$KQvuCJrT3>0Usr**y8**5O*S(7(c|k13IV zgZ#a%2vgOX%Hzs5PzXl!aGc43l&ELNXF#COoO{9xqR45ym6-%8n85w!zPh(LT+1;$ zILinLeOb+!)gYn9xZmf9{nj~E5y8sHB-xXVI0Gc`lTLvW)zkbbpyE_F zXQ)7MoqnD?-D%#M&{kI#jha?wt)A^_wLH#%@t&P=qKABidgC7>)fH(`FR-9k_o`)8#P2hR?gK zKAyS*mc0GA^c!y_aqn-EbqLk!Yf-y-$LdJ^2-2eYNEpuEP?3@b5oHW>+V`rVS0c09 zY9)QHz26wAI~?{qSln=zz^=;nvg-#vG;<4B<5S%a!d{bjphhy9^{K*HFqB8T8K@pt zTv)OZ4EN&uY4Fp3Sg0Bl?#NmdBX^`Y9LU#pqmwJUSoi z*BJKZ44^6&s1Hn+QfQSz&ioj#z%h^cHEF$cYas#p);-{l%eZ;kaTRCZb{a0ZdKt0w z%aI~`a~q!3gP8bvF#-R@I9i97kZZb@(H8S<6fOR}B=%FtYDnFBDqD{~(&Tio&Xg-6 z9{*JQMOjEdHTyx5YdK=hEDfuO@7{jlsr0G3p~84OSmetIO?^nK=h%$I_WlA|tD7v7 zXL5Ij{JIC3$JL+|{mlS@if{Y;Dn30Ml~?FDG@DQ8B+IjO4l7UvHz9!{IwXg+SQ?Y~ zo)<6XX~yuRzuByfj_*%h-~^CsfUdwR*kIK1x|V>lrBfQeL%+o14>N!I4*H4?tfK5K zdA4jO>jww;*VQwR0RgdU^}h?#t;s)k_mTd8>nE*2|Aw0v)po&u4Qj*3Fyv;cnL*Co z@4w)8Z{(kNc-G-0&sAxWipLzs*mtnfcUzN5@i^IP3u29xv3nL-iZv0$m?gG-A^Tzu zH_SJ)|0GU?TVB^e$UX3kC|mcMF2Khu%&ThEvi5>#>y&25`@ z($n}mA)IldA+&PL@sb^<1>IP^VPp~>b}h)WIC?D+bh zH2gjYGanBmytLAIQWSq_V`rZNp>_|Q$=?6)`OlRf(na3lMb;l5Z0EGxw_D@N0Q!zC zH4IjduG^`DhTcI1&h=8Em%mAkDjsY$KI&OxeG^?9cY-(V`s0~hfg6*l0yGDN(72bo z3y34tF4Q8~L;2wR6DqepB0Q8Zan~>9@?1via~h~i(UfA;sb21y-VH8IpDg90 z1bn7UDyy<*6Dl%f^>qqW;%U==nav+u8os3Yae@Q-Sl$VAHWCKw3beP0B0nW(1s<@h zynPa#)5n4XJzUPm?Q}n%U?8ej-Z`1c)?q7<_1ZGGe$MdYJ;Uvr zwyB{SikddU@VB=bEntiIlfC%Ci9lB$ilN`aY}^Y(Jau>rqL_o`T+4EwL)M-Ay2zdo z);M>bKANefP_g+8oVV9=AkvI~u?mT-w5p!#Mdq3@x`qU`%how0^cameq-ZokStevb z@9HMLQZk>VL8q_02-BD$1Ad8r_Eo}Yb3+HJgyEH)hUhmCP8e`bRl0B;-USFzCP8-Y z;y+>y7xzdoV4l_+i21vxwEI=^_Wv_VU9I5$8;>Yo*eM|v>|r0(@4k{L65C&%Udy_B z-}m4;V=bDH;a28jT{xeH*DFUFs3S|b$0F&L6#$xe9rZp?`(pLf#^_V{=#yfJ5Caec`#XCkC7_L-@uhBU^5-mc&4Y%2dO} zz)f@k*s{V0U7wui4P%lOJ$FW0O^<^Of8gYO(mHqU^~q#4*7i0foAW(Eh| z@Rb4c)m=nvpzOd?Qt*m}o4ieDYl`q}j3clw2AEmZ`-Dv-P6c(DhBL=)0MFhU8C~)p zu0)B9%Qxv$-nD+6n*Fi#f~2&gE8F+@5;))Iy2RvbORec_vqk-gQz%d)wd-7dhrvXLy9< z8kF~B%c9FuoyIlGzguyr1{(#Seh(|XKxG*JD%5w@t}x|nUWWHbcph4(fj2CM0#kyP zc$6$qlWX}P<#Q01NjD5tP^B8aLTYK+JP60egqWA4AJf*NQx3PPFTHN6%dRoOr-MsK z`Bfds@&>hC_!oF*k%z|=r}w-q2jn9f9oe?Oar~;a3qa7G{Xb9Wgec$%{W#{IgXn^$ zLtmuA;4pC`#l*=O?4x`Qrn6X6`=YRhMTYhQ_aD9OQ8J@A|GB>l&L2oFH(ElbwYEe6C_xMQOqZUKXt9LbSRyT72WyZ z;%R)s!7MB08U74d5F{8kD(qp;4LMU^C(_Q}0i3Id*goeQOWA3=;7az%dQlxX_sW)$ z(VFj5%G(2|!)x@I6<8+u@;IJ?efKl}3qL`5B0lTywMRNUTxe_3$Wiia+PkNG?m+n! z_~t2Y8g8hQH^VqqsS5&IsQ{0k`(MrQbmRjCf1#lkxt9lv&Jpa0p4s!UqUV$zJ<#5X z7wv^QG-&#zTpQIra*G;*JaE`2sDGIKC#@g@hyvxw+P*TqT3`oZlCRggel{PSMIHWQaTGA?-Il8pn)hTe0Cm3I<(asZnk+Z*W;d%|fp`SW~f81AJ7 zI77DvT7QZA5_7CWW>|ceuGTJVD*DetDMX}bWAE3ZN3^@A|p`TDbo6%7d|!Tz*r`HngH`Df5%cZML- z(6$%FPU6Z3Q_yg0gdi(oDaqZGwOO5VSEqVLsfc+;A5+1)gJMo%D!tlr1d#}#P+HJ` z>!Le<#pxro5a4w6|KQc;ssE9&9H)=R(sokNlUYPRw1uOHZ1vd1v&%-T{I5Xt3e-t^ z=0&y4-*=cqesj4jQOI2Tu*2^YyarMHR(uoWE7ijod#jyC%uYN}zcH^oC=SUK#dA6* z2u>=zyG*Jtcti#sUWOEV8=7iM_yqXfmsKcqi~x^|_IRiHA&V+Di=HF6gR;-b&g)Va zZsADi+LS<>7eKC@=Hg}Etq zzcwhE;caANgz20NE)FaA4rVICsX13OP~&a%Ifom=E^As0pCMezKp|}1$%|s{eQCL7 z^)&@B7DCzZ>pW=PvU4DqYVYo*K)7W4>4B!cPo5)5&O-ZH>y6x>d#B1{s6JbgPy30f zmTBpwV51aE2SoCr5_KsJKk%B<`M7Bf>KrQ2NeQAA=7XJ0LFHg{Z9V$*P&~xdSIDSA z*$|z+?sc4)sp#O%^Ar>A*Ep+T1(=`BoVZLIJvF(P@M1ozu<4SDz9L+cmCWy3Fl8Js zJfar82x28JV>m0K-QvgreM1Fa`U&XPLJ<1ZVc>0e*@S=Vb5sU#RaSv!N%1MRJ{yZP zX-ey=S#0RW7YSML7p26{oH)SeKgI5CIw)u8Bihap0_R@`VK3mYZmdBRPlMckxjm8x z`_Xp!uyme|zq8jjTv?^?_M zmy`8AzwqDf{%&-vO8vg=_5C)Fxm{0rzr!ZSSJJ=xs)Jfl`%Nfn4rDC;i%FN$q4O%u z_Rz9~`=1<3_-9vhKjf9389%f;vsbxie{KKwk|!KhCbLr|vCPt`k>D6Fjkc;~)a6m0 z<>eELsQ7*!U_f9~{-$3A7|ro=JprD+)8^TDBUg9`rKG~@Z+OBjeoNf#l3A(bIR%0< zFZSJm$OPAi#GSP%C)g$9>QuKYP|lYx-I`V1A)MB59#g`I{8-us3L1l*J#CY9!nJv-1nWVj4QkJ!O)h0CbxE1F!8t)&PW++FMJAp6KpjdaINo+&Pldw0fq ztth%R>2mJh%MNrM4iqTju8|p%?PP0@&Gj@P2bL9mPSJ2j0nD>8(TvkX#r@HjWV~eUyKGRt zV=O1gOO#1J-mOt96Om!mK+;StU>1&_0_vvkgYbI0?*}Zdb6m()eVke6=vVsr2cV=m zMeP0tz7qOLHx#;_n96)K)2V<@)^e+fbxjl3m8ei-n3VbC%E^F6IT7LxGzDe(Rjc1LmyxYzO8>BtX$p8r7 zKBsyLwn~mCWA@h@40|+dk~Ze{n+M5p?upbOb=lI~X9T^;XI%$iJSYB{w}zjGSv8(>(D$shbK&2ViAJwc%ya^Ib*4lo^zX5ZypxE(jm z^ofl$wwY9cA3DpNY^r*)wO?1I#sWEDgBzyp^B#_5wd@}KPmqS?tY~-p@mF?JT7T)U zX#SEK16*-@^C(31u)Xy7srHWLc4yQR9)499<=;`}48qd2NzN`5;PXGc*`rQQ<1=6j z!lay1VTM)KLKt?+dnS{@)j1td$}DeQantmRn*_vJa5|!4r91nC7cE+Zp(=A5p`|X+ zqygh@-1XT5g-JQuL*m2M#I%qebK&4q*{Vz;8445vh)dg-uRzl%NKvq4!jMOi?az7z zdv=e5FWB;nuFxp3o#VD{WET~zVwphiToufj5siDj#!sNMtM9SiE-D*5;t3%CfU(S= z(5GVukDon?OuU<~tE|b+@S@zayISuBCjYI&1c-Ge%GrkXsSQ7U)I$*>5n#3{hx(F4 zT56vfhgcom{-g!4WL_Aj{sC1VT1scI>nXSS+NQCGwzLYy|59AeR=?uY^u3XrFM({& z?#V3-ZXCBZKM~Py%E)o+Vt~2?+c4M3@)HgH3W+Cpefi9}w8 z)UPWf^G|f-Es@VI?Z)) zYN21V5B+*RK1h2*y!HFVL!)Z5S=HUyDWMla#VsF#Jk#^FAcw@qUQlcp>*41xjBCV^ z?d%N&`N`SdD?cG$X{E17rBGaJ;O;|)xw^lVNW)~xziZd472PZT*Zs z(wj$HYXJ}r-|~`vn6jd|npIn_uIq;s*KTYp0kG2MPc9Z4;yjE!r-q|;(!iMGuAktI zT#2S@`yjx5C&8^)H$#IRJkx2gCif1T7SC<;c$bkI%t^AU6Pg>ezhq(>9wBw-Fne(J zCj$jxh?Zj?=2&qox~O1OPbR038iL`*Tot{D8=D4ktJ84lu?K((!WpL$c{km%xA{4) z`K+>Pv&dWa)E3H-j>-vL2U!^4rARC67_7LYU`n>6S~vUlxn{Ic%h-1&R70d!X~koY zu?ma2uUdkZ9E)NauxJ0gK+73*VO_tfU0hVeKJ>(8aMLvF0I;+?aT$pLBXK|JCdYt4 zb3gl01yeKGPyXB$l+%_f9q6E`aykV&q0 zG*E{;`N?-|%g6S>uGuO3uVJ1emm|1(kzB5JNKwLq!eZ%gpV0omb51sb39dAu>&9_x zmf5v!1)g$Lf2vBe!hEGov0?vCgJZpld^5*Nrpiv#cg%Ie^5+NyxT7vUm~M&qEjsby z{<&Qs;fNiAb4$|n%6qnvDprtQ@TIPL9v@uL>KdX>J83pbN46^#yVvxIPK1d^Pea+~ zNqKcrSltv7So8t!^pg^-S8Zm^G!A#1xW{~*;)iK)H0`>A3-StFNTB&$0?- zSlEpxINofC)y%${JM=x>?IzR9;0`vv9oP?3nx1@5w=OtcZq=W6f8d_yW7Zq1(}u?- zq6ynNrNDxE?4CS-k%u2&Nr%%lw<6Cn7r32mfUxds6-wL*yuGurU6X3?>ur1aRZmAY zJ1+3brAk=EH2*JrxAz8)x3w~=ZlB@`GUJAk*$<|gbDvkw!^aw4iSMScPTe0kj8$)9u)OG zJD0GNw%?GKK)TRWxcBzG@P($zlYhRXD6}}lx+SFe1XVL-m`)MuYny7fU{7Gzbq%^- zDEI9xq9pXy+SIe=#hGj3}4=nIL$Ajc12cEw|^}cPb&m?^TpBu@aB&KyT5cRywZ- z-ZEkL-aE2giM?jv5ZI;)%v-n_!|JU&DNROB*`MBo+;Ley;}>?`{eswOt`iI zrVT$-rIg9)m%?LemP>iT=A11qZ>bUD{d+|rfx|pGmi09Nsw??-3(lQbuNng^Lgik- z8TdtF?5FeYZKxTN zYi<~~%TsQ8OqQ9AH&OqXoy~(bHS~#l*U0L#8-F9P^P46vcAjMaKud7l&)s2*8_LR!CO(j$y_1-_$gL#g z5n;2ZtQ7rjxXjH2HmqT{9*~j3Mxfc+DHcGp;ztL0v(&j_dNh;gOtuCX4-T2;A^8Ab zCStv$t8P8HRc zCuOMCKmpl61pYD1wk2qzq0RcjdX{{l5-nI|clsQ$i_n~*{aT+HL+U!bxN0T5CLA_f zS2GnZ|Gce6-|}FhCGcp0$aypyLPp?b_jfx=;P;X&tLCXc{_QwydWTH>2gK0q_^YTn z1U6I0c7N%@bDMqcyG@RBGF<1r`ye>l1m_XoFD!E`W~)P*(6}EjBhRF?Iy(glj_x7H zo@l}=Y5`wOr@~M%q%;t=CNJ)&b%af65t28R0j#=fnOs;7eB)ZEMoO5Hd@rLz@9aT3Cw0_)frbdUd?rY{ zPPpl3Vbhq2jrs9WRZh6aX^F`*n+)rM`!`EqNi~iZh+Y>9Mx9Uy4ixur1}ND>ICLhp=ysqsa zglU+@!VgHSS(;Yv_*!$g;M$E+Hj&Xm>k?AT6y1qHBby)w#9$^Psl>@wS zT&1io11p2wpULkIpitLhp?|gnq*Y??X;Ny(3=QLE=t`AYdYO0?yuFhhSC=k{Ij$a) zJ1`NlEfYPAz}zptm(0re4Ugt;8J*n)%_e?bct~_rDHjk7BQ8O@5chr~WT+6L;(Icr zpZ289{xDVBGO3AK$9L6jvs}1YHGsssYguAw-Ks$d*`oeI8&9eyczVCINeVtU0!Nh~ zn63v1-yMBG3%0ZA+Iu}_HnXd-J1yVVa1{GLhTYbn0NIe~|1R-!U4PH#D1Q--6;&M( zjz_eJ*5iXa5O$+33rO)%=qDCKWA8NF7Xhd0R-Bw!94%^TX()V76y-SKLyEUvbO3yC+sGpk*A{2=M@t$|g# zhGH+^0^_es(zBgCfQd(apqSoJo1Kim4Y?Wa_^3G6fmS5O|La^cJAm&qj9ZPK7~ZZU%Rdb7-BLK89s6_@=f=4YTfTI_jgxynxm?A4d{HNS<0X|>2@iu9P@px4T!33lgC*F4SD&NQ*}P1fMz)-ProsvqBw z=+Ylz8Of<%|EitjeKpUZXdUls+FTtvu+8_tL*jQtr=l8ftWWO zMQH?gAw1U^>EI{at{1!o?b5pP{9HE~upm2&BNH=;-?IlEfsknQnYw5{Q>d&r$EKEt z#M%_H&^QI@df(C#%qN~ z9WN7ZQ#^2=imEzKq$GF~n; zJ}^jAw8S#Pyq;IV zX{|XPcB~@KvJ;V_vCTIbbiY>omYHj8*KdJZjelIPu=U#7jzuMJ|6w6In`Tuq1e48< z=3lnG@MASYdA<9JW3Kq8%EM8->S7MAuhWNQpSL4Yd}uj+D^Cj&BOU944TEL?A|U%V zptn4KE5xJe*6)l~fp394OJSB!qSkMD{rk}n`49t#qrP{69}ReWTnUCpEEyqRC~lMB zPcI5D^hMp|-9H-7;%{dmdgy1SwM^gZqYoJz*Ee4h%XAMgxr#N`^#r}V4^>!G!pyPQemaB+p_)DrOSYW@QZe}TPEU3^$2 z^H7<_r{z4}X-Ld10z1*`UdWeEZ?gC|dDUBg2M&@JIuW;0{sED|?RTPkpmJ#N>qRjE#sl0eI)nv{jZ!S#xEh&9Wh|%C&#+9)FEo#EW5-V z9&AG0t=yWYUy~;y7@<2YiSd~*Z|W`ksh2wx3HN^FZ=<%VSmD0m;VhT+!s8zc&Bz`3qMg01&h>dP5@85QMHt2j3c*x&8&;;X zcA-8;k?__V0hh*=kCdi@(_XxtOZ>=@w`aM(b8zOG1u8^Y?!jik2P4p_Lky?TP0WSH zfz=7gUiJ+9KGx?>y}*x>^Or|>2GLZ^)h@)}rkMwv=-(X4_8q8C%QmM*{|wN+i0Vy! zFl%|yui1dO$te8|-Z}w}uRut2$;lvX$DI`7cwj3ufCFPbO#k_Qfs_BnH1Kcuu3ciU z0|McEY;uVkW^ygaEI=aM?oxHGF^+NP!*GZq^jKaEq7#QG$A%E2idi@ zGAU!BhKQvf4tg_FfVjsZcor|Wi>6Ma+ET9GewEULXS{D6(Ps+VSeXj&+xVE)kNb?R zdsmlTzGxv9rl+s!BMy4rD7VXtXr`?v8kf@cm{`OFSdD#JzbQb|7OJsE%H6nN2_`;5ZO)y*k6GU+kXr>y|x4BiLwb+TaZ`2gi{U|t`v zbr>)fev<>JBBVUw`;A^^WbEDy9NiiEAueG@czcibjFr3b$%Uh3B-)|s#Z&Xo5@PN) z&A#c;KJcqg`A1&&@sGvIBjT=T!jp&Pk})5^uD~!@3|Ra!WW56Oo54Ry*Dd?Z|Hx-n zJ7kqbTg06ZhTSX%{>P^W=N`1z;oN}Pni*&B9hZyMll-;zle85z2KFsDU+#fgu$Hv# ztY6qWuQ--neV~H=9O@uH`J#)?r?b zUEnw3Y2bTWEqXnK;Z)|+wA_QY@zp4&O6yBJW_`rEiIL|)1yCYHpoLc6=|HvI5eX@r zBd_n_SBL%iHVEKr>P?U2gCz$s-;U@jep$GkXo)tO<}qEBT9KmJZ1;=sA2-$(@FkU2 z{;mI>`d3embV&p1+?^t+C2yqRG*#0RCmm^=??N~w8~X71LM7hTPLV zY$xI9WoV^SRwrn}@IXyPu`9=ZrO-ifvO$7|_gOAx3rQ0+;tYAUN^2@I(3eN&-RH$N zE*C?}GklAfy8}5nm)D!m*H=9LJ#>nVVESVqs^6-Z?Fc`KDpNO429V;$94YMCzf=Ol zS1pfet;3U?Bz;%_!=E7Ln(lyRZQ{7YdqV4Mp-=LWiUX|!{i^ZOHtkOUQBx>8>qh@3@J)c%ty?^U!;V_fDyLrOQMzQ_(IC~@J~2Ge6u2-rHOoa6h$YHVRu^DDLE29%Xv zV8|3NaP<4BH9WhnfXK(#8Y%1Y2rh|4-xuoBE)}CYu$J+_Bnh-apH*R)UbiM(zOZIR zsu-p>H>35NW*oFrpq##3)61}VQ)2XfzsvNkSdKM&F<*)*OxxNI4LLEZtDkR`AoiU< zocf|jWsjA67-}uv8`uA>*Gh*umaawYhYcognDzMQ`8sXG4$`gQaK^ZF)R_evc!(pUo+%yt#6;}6YvuW@273o>+*93?In_mx zA-tR(=)y-1w?JL$lsVJZGGIo>H=}BsK2Oh(tNf-o**xI)dDj#>O-|cfIJDg9CKw?? zQeI-Ah2L7jHeV~7-Z6z%6z%1$P69{BvW&RK$S|sRtAvWjnRD`fP)cREv^zsJnN0M7{bgWk~@ zGb?jJwY5yV{1$L)#yhH4o34FAS;_1Tj@2Z`t%;TZ!W(gKC00LruYL3tjH@$={5T=v zMMueKgrm19rdP{|qWyg7e!N$yr#|@n5B{8wnUTrBc zh0Gdw1=(;oE>6sp6Fv{D#viDPUOp)?vcQ~ltU)jrM4Ewu*R^F5^+h!(_fLF^R zygHTH6=n}k;q7?+>9r9&#FWl-uul5Z*YlA}H>ZPi_g$m7xc8NfA@qqmC0VjdwHn2e z_varUNNE2mibKo#u=g(Va6CLjlQ>;uIA$%VO)~8H4#^4lBU`73%on~0XriY;BWqcB zZ{M88+CRT9kUrD?i0NRsuZ zEqMzgV`QNM0dIf0eMw)4{r&EZMG#%X$_H~XxVyaLGXF$w%&nexy|=MkVyvT@w0&ma zt!=Sm=52n&O};*aT)OomfE*r|cuCFEvBhlo%f#}PSFMUD3qRXmK`YZP;{NvG!Af8F zCLo0ceUD2OL+tf|L7SRDGa`7VWuKZ`DzhQr{UL9UiSq}`PAp@EhP)cVoPck_#U2Z9 z%b~ts3wDT)dBp}waZOCwXpzlPSsiIyK?C^Vi3pC3o-C#6MvuZ9k^X=XPbrJ->{@mS zc;r>YMIlVKOsoC91y9_n=`BN4{{RqQw^w5(yO6T9(vJ&$svZ72#%@oM%tBGRZ3``p zvx0i^8Y4#%w`Ldr9K04!bRTWF%Q7sxINPz*x(U6F{ixX_AF@-mlUZCHWEmNRdR83Q zfBeU-b=ASuUmWrVdzSOt8|&XQCvH@XDU7K$TG?OoD8=o--Tnu)MF>kd?)CeZAJ=TO z3k-;}06fv?CH^>-L)^9Zvn?0mJe~`EI>+Z*622GdO!A99;CEk98#B!vNo{`aoEOCW z@PqOS?D1Q3>DzH1Ye8NkFEzY8$bRjdij%-x&`gv0k;hxDF$Fvr%J=-P8^Zm<_4m86 z{I!FfwaF*EbuwuY>CU{l-!7P`1*)CG5>E zKv78SiukDQPbtjv=-Z}&G0wJ7_YMO7;lbG95QBG36;~lm1FD^6*4!yC5&1xMCa(>M zvc$h!{&Z}pbrRpyUQaCeD7kC%B+p5{x5rj!tN}J-u#bznM_H^v^IvbaZyvYepENVz z@2%Ho|C4mT$cpsgrc>gF_oe_k@CPcfmb+T7_)?eOA>#X@KjY0`_IWfDr|TSUX)i6$ zaSMbnw4jLMP2wE`FK`=uX$0d%ilYD?hkhw_>gZl4`sFooe%oM};G4TD&E@;62>dccTe9OA{A>4_tn>l@>G(nQHPBD4;*M$2iT#HpJ^zb_;$+ry| zj|XZEFSe-P|Cg40_3FRR!j3z`*Vg6JHny?6Kh9!Ru#IcqihiTe=EKqBKARq zIAv)e&B)NLpk!)ja#_^0q=a6a=Z}{|Hd_%sKnEI^GsVVAe19sd-ak^@PoC6O08Re| z`zpLHds7ae4xR^>g*2Om+Mn!IBdf-<%3`V|B72j$5ymS3XIoqX4y_Ye&$w+p16zP>Zst9}wbM_3k&k=K8e9!{lo`vhJH4A8=;ggE(mdubbd10Eu zn;y%Gi-BUr`{@b<-Jw?gSALC`@~^DrEBt}9LSUZiE-7opP#E5|vTG-C8&|??Q*7E# zA6th^28yA7$o|P@-&`vuTM8TtiL)QLm3i-eMGXaRD7WO>r-?(wlN8*=wHvI1Jd)Ru z{em!0py~O#haA5pota?`-Wt+iQmzXSZlC39*r48BU62FrQv$9LR47TOd9Y>?3YNJ; zo4dDF?6lFsMNkFUM?i=Q=t+RjKlqDe>#F&Zuz&CD|NB&IC-OHVK9+H-J;pbUXaKKS zdLEuxatlsLOMc*m9oC|Y?H7Ftc{P_=se-30ak}20QuNbg_CMvlm@$lWtx#o~))|nV zD^XWwixRZZdsLD+^ySNdV~&mQ9mcYs8~=~1_YP>!AQ@Jm0R`};fY<9_{@gFhVcJf5%X zIB573XgeQ8(TBy3vRlxYI9WKw<{_W34w+x#)< zzl3yky|L1_M-zV=?#(;M8(i3bcC|sE+7pXBpWNrHPdE^2ibE7mO-RZf9wOC-kJk~! z!qaUndfiGL7n*f*v&bYX*dwc`Rbv%O*8hs!?Eq=mgGuLLb-Cy*dnV@>5EJOd)j&5a) zjAY`U&x=T!$(YLYdb>ZvO6QeJ0cDp#(}*Z-#&v-r%uDsJ(f8@k0s=Gj%5}x292?%>S^sJG1;a_t z8?rZYSfjuK8>4C8yc$@n1P>P3I8<7XRQc9<&f{-lKPfS%M_UUv1E>IsMHMp^e2Bbw z^7IVgic_;O&@v(9zkK{c)O4HH1xw#J-W2kbeS-U%kN{bd9OMri1Fsim9Zsu_d+!{z zy>lx{&Mfy3d0zc7qdv{fm zIzg?soECU~x}o#vz$DtYN)jv5Ry;A1!;3s?Z$Fp|39+K(wb_UKA49^w`1xn*L8nH* z%n)?>v1gWCdwsYeWASEOt3=P*cQWDUCFR0!?SK4gQmnsgbl=*t)l~z?_!}(5`)cLz z*{Psfz_I~`JhM*K(zE``@$l({-q&d;$HkD^pV#w!H}8Fge~qK+h#ZdewqwyG*z!@$ zbeNjpM^l;X;~GxP8Mk>CkC{Vljl@yYS*LqoM#KBom0i)VH`H?Df_Z$Z^PGRu_Oa~n zmiX>ti8mTGtGET_B(tF0#ubGV$3M60mZw5EBe{(a)Q9_Bv(s6O5yRD4gNn%MJShHj zhbQ#R9&#?#96OWO+fl72UPV=Us)~8hd$yx*ZUPPwSa_O^mQY~Py4w+*{p74E-jp{EVYaqgLHQolkTdNPzO_-CgSQn6td?cty}y> zwTr<6Pq`B^rnX&^M8DD`S}k@Gd*?_xS_O0Epq|54so?hIp3G&fav2EsSoN6TaPr*E zS8hJ>VvN+o0#BA`;t!<>NzV$63)oG0G!J9HN24m!95($_)!ltHGV!|Sw5F>3K6*=8 zWp2}?_h#JO^llNChJulc5vx8e*Gv~g6qBQ@{TVa5Xo?hsvKp68A%-3wiRm<4F6*){ z`M`ao4R@^oB^2)ylxSTUXFxT^rF6RM?T@03SD&`bRrF4+mz4L#qQgn^&^+WC(2{_p zJX%^IMZ1PK&E?&7aZWycnVvMgHa8Y4Jh-bd_=B1frWPA8qZb!xT|7q=EdqJom-8F2?xB6hl4jcA3jx9QMBo>kP_=T%jc#8f1cKxp zEWau}bWeS8DpoynE-R1GUWB--Kv9neY^}?@?O!=}7!68s-}u>-GNWqjX*?MjN$)Os zZwg3Y7wbZTgD(pgij(B$*8(f-0iQ=Hf0RRJkb#~k5}$|U>-ja3>+p_x0Y)Qe-FG{` zIGf^t4$QTkJ@F@@cN!#dTfrN&soQBH4oFKA;r{Ph#j|7B_J3TH{>wXm`#a`{o#Wf_ zA#FbwNkb7l={a7;x1WfrMb$O^G~NxXD|`3;eUuM1@p>3%A1`W+4I|B?Z&3EN60Z9| z+=K^t(D~If{z}z^N!5gVyZFP+&Z&0J z{elq_>OvGDBr4*}B|pAz#*wzN+R+f`bq4p5cT zT*a(OD2a<>#JHO3{SMVql~vee+x+$3zH=n2=7;gEy8SLwg4Dpom2~!gdz;S~?HBgp z6WS~6zvdJ7u8SE2(k7*iwLRa_x7x_=jx@x$zE8zijC_J>p!ju&5{2mi0b>O;YP+(}X@m*?8}6Ya+W@AbWIJIgWukVCk5x6mq&d17R+ z;0^yTGwAM2@2Uz(m+M{a&yY3vtp_;}2BOpDC2{Zdrg5cLdz_2-pMn~V5zUEJI$Ql! zO>wu}9e@aY!D5P&ZeZNQ*HBXzHtOCSL{-f&SF+-LJQ5J(NLDOr&B@ajXc52x;1auI z#D#mG9ZVpB`Zv^#=31Q0bJUS)R%)J#mVsv@eivt7%#(+eZ=Kk8YiS_$*Q`Y*R52U+ zc#pLf^M+aMZ)_LA9*(8z{=W&GLo0i`@89^GSHFQD|Fd&UJKATzrNVLbKh8!vcP~3r zL$+y%mo-_+%=rcvl|PJ-v!dmTK|;$o`J@?5o^lPtgb(Kkq?ak67Uv{uyXd{7GoxpM zK}{MgX`iNlvU^||U*Iw}(S2_OBinuka4@iWXuW#h&9id*fi0+Z^$M-nreF@a3P;2`am-3RK z9p`)E)K_tPb$q64Uy;!P0tITk8TfP5g}kJ|^K0(EFEfHoXYDU2Va;S`TW6Kba2#Vw zR0o%Az+E6kSFiv`Nh>P09H-SxJ5RBh=xS#NzUai;$*c`6AcN9VwkOr6{xZ1BcWlnh z)%w8pE*fF5Z=()!vwR(mur_0dR{KgU(s!p}oiXZ{6%7EayFk1JtMgOK{OfYo&^i1P zhI0y;XitTUC(YjNBG=T5)0wrk-?;MiPBe(opieXSB#3wZQEXO*oKauj)>qH`(;s)P z&Ml;W!#zr8q^b|ZJA7N5Y~Qk$iJ?rhm?D$@SDHd z(?@>$=`ABSncx^}=?PN{mn%!p?*j7Y68tip%5k@KhAuJ-ipz?7xdjl_OW&ktA5x=1=m4tb9^mh=fJE*cP9`#=Uq z!8RHwG-&aNQDSZ_c#z$O2CVptHe+`*TA*1tr~Y<>p8`8*u{rH7zk=&#WzVdyu(k&o zI|%eO$v0yxzkg6i8>D8glo)MK$YZR(1J=tVOJ7#jZvzh1P0JkMTDdgin-d@a0ELYk zV5ZltW$cd2u4Cs@wrqK@V^(D`!#<5u@ZzzWUtS}G3BWTex{CV~nN^9Oz^6k8A$R%plz6@f&;pu$1@525!2xo^-Mm6F^2J#{veF1NQYf|8|L)Gl7g@gtxcDyYENEIA; zI$aNo{BiaNQG^RIOUVPw2755xL|z@b&zM!Lo& zMWYi(?4cAIuU=?c)lYj<=#(PFsvzpDWyCoqTm?}v(_}#d^?ZT=<8DlV3cAGnG{H}x9vy)1>K4jgqYDS($c!RDP zY#j!>0$SZ)PXgPVgjj(*CPk)3*_UYr<(yKnZKSPnkIkrOh4}EnFzuhWgT@=5a_#~v z0z<3po9=)_rw%tAgKL9ZBLxJ!hd-{j0=W*3J3$I>14aTC>+okv%H-MeJ0~j}UCB?e zWtzu;>_dwsq5QNapMZ<^RH4Jz)(|+*_vdjzQxZyZ1liu4WY`)HOt9JG=gXo8# ze|c>VDl*#S-LG2PcOqw_uQ;pe3W(kN1!G@JtMwfdxe*F)U_fNMwE%auzD`rh(o%wN2|9OF58IzTXH>Me%RA;fK0-UZ& zN(BZ0VkWq~9|hm2qNfYy@OPr=r0Ftrm2244P~BPY6Nl=He>k0#meRFca@_f@6STYn zWMZ92G)5#%U?^#A8m_+Y?kl{fhBgQhN?O$_lbPa*K5*30`%vzg*>F2~oz=6=HB!>? zRzU13wVT!smW&OR({4(|2;M2~)!#V2>9&AXv5iN^*#I;y%_&$c$8cR@!iw)ls)cjd zbNx30&9o_Cni?);Qlh{6tU}RP5D5q_Rrfqmx`Ss~baMb{%C94#nHTB(` zz7xRRjUMXv>s&QDut6Qwb3tz}-BbOL=6TJh#(HOkfT0$T+^))Ex z{|HR`iH8U@r#{~o@iWmN-b60j(B(E9br#iC}TP1+cC2E zT1jl;37ZG++K7VB(3r(%T z5o{%o`VLEfyP*Bk%S z(~=Kb&d7}~bnTqnhQ^yNLeZ?I%P-%QyDD=~%$G#~Q7 z>FjW9+e>OLw{LMwxOt5NI!mraD{4@Ct`;j@7+?Skjv~EZN%6{wCXOVq%EViZS+^)5 zgx8-$1{-4R0n}jQ0tHk6P5|@(cWvZSci^LamjGPfh9l8s+X3b3oNqsVTQW``Tc^Nj^hm=bg_r_Q2rTHO}HOQ_a>;!4fBZf0?f*h z<>;6-GX+pnDm|dCyQag&2p_>! zxmT^J4g8gH!v{^h_XB8hXMudzcLwAl2wQ5~pqBW&tCnZ|I&B}I4t{rIbp-EtF2#wa zv*uTMNdV-wIPMkT-2xr2tL7Efy*>KvGn;W?)0enJoDrl$56;WSu}Ly*{ZlE-XjSp6 z(w_^MA2`a77mGqW$-QD7p{&+5FU^H**m@s>_##$N0cAK4sqp|w6Uf0jir}F-{LNzR zXV)Xgh|OCSYXKXKLZ}~7u3bO5qIVI?!YDuU=cD$a*8-O;(wZddAB&(!73myFw}c zFw#*4ZJ^7wgU~jfXY57G!#;c*!H)DgcKtxEm&s7NwE2H!InLaA>u%zT?z*qB9|*+S z@i&>k>$84E1bfD*2G!DX2stR!Qgq;t9*XOQqcv^8^_g!(y<7#O;1AJGWC_HWqNn~1 z{46>%4Oyl$5gdKit3-wwQTP}5DC(* zY{*CHvB^-P_aF7#T%%PULEi(bkEgk6COzNj;*IF8AM_Jj4zmr2xebyPrIjUZFbKsv z-hb@T)m=^rV)1?}o>&mBpm8=~ycKM*m*eAq(3znc8T;%*P=MM}w=xTM+LE0y!HQ-) zAfEHyQIQQgkS_@!xK@G!Z2yu=ByrJ8O>&2f8*2Y;^)OfehovgYec`XYZI2eD6GHh* zo06?LCGDxG^^UC`8CQr`NWC!v4_yMlEV?aliyYD3`^cG=7$kZUCFO$hM`90;~z4*FNo=?ud-gJ ztRCuZ326BVH`_sNAD1J!&YI`d&0k7r3$OPB=&bil%&p>?)Ug(@lY8%AVwW>#KQ06l z5+KdP?!j+8Z|KTwi0|iogl7X)C+u@VJi?sv_%M)1Hb@>xd2owP+#}1^1_hxyzS!|l|oc}QzYF-ZP-mcY{W9-y>yb=zS8F;YJw{*XQ6vXXP%~EZ2`@~iRBr?A7UcqHT z&pYnM3Vzv)9v+SoY!tXpUjKzH__Cxp4ZuW`pdyJA4LK~^g9LfN@EGdK_Vmj6SZTXK zvh>m7l!zS*#cl)#` z$pJLIf+=r0Vs)#w)wKl{0#)L_&OsW0)y=EZ7%|w>oSAspFukhyGl1L(;C`Wt%CV*`N@lgvKy>&hD7}RzLa4&Xq3q5!ImAY+B4&F+ng(74 ztN95ya5qaF4{DXlA3g{FW)n4#Y; zZ;TL3PV?L{c@R%FX2j4>dB!FI3_c!iRu_#g-gY`2*BMl|WrTP#LIRO0ci+u0xI}eT=OKwvoJX zLmTa)r6pdOok5lI5c_R`elLa{vz9cL_vL=-lf`CN?`T)ZAKA|C6qcfWP8;L!;XcDt z>X!lXMQcr2V};0df%;a;lCrUhPD1M3wKVshF*u;dLbDXzh!;Bka!5z@*o^=XTE0Nt zK({fsk3V)+g{8GX!w~677C@UnbwT+?gmpa)kia2PL?#oF3Vt2C1nQ@>xlZ z>%izq%Rg{*(Nb*#-NR@aHB0~b8v&e2}L}h`I=`$5-Hcg zq>}wO>WtLjl*n?cPg2k5xx)QRE3oQvl`fUl zV#s;;^;CpgVR8cCNB9qCtGGXK&p&W2vGWGJS>k;2ZN3SimP!JtuywJ-Sp!4Z^pW~< z;`-b>&us&mMex~PHa?t6>hs`IINnaA>|`w08udHQJ$$k^#+P;gZ%dgxl-K%kD$rex zH!n3h5S@;jIwh{@e2ffjpqsC^df|3|ZQMm6s9BOqIdPy|C&{nVJl7igYK2QMN&)yA z#zDO17w3;*@X>?GhSN0~An@$WlX76+ysD8~O*ssHOh{YPjp9+N#wlgn~=umM*S zVoaLl!^+WfJ>&>=th?f!kb;-rKZrUoyU-E|zVcRJnZUyR>w1dbe5P&xC5ptouZR;p z@L}C;@k&a%`)fP zRt@XpN-l(<*ee=Zm9eS7s=l0J_3dZ9jQ6wK`1mZ#qlR)a{%wE0fv+b^rqY4wb9hJA z8Z=E;sXnUB?XYb~G3|5Hv|9Vc&sTP~Db5r_r=zL-m8d5gf!;CLVi&(V6ea^EyN=z? zavfh{K=v&S?Q-Cf0%_rvsl*2J621Hnj|E%4)3xK}z=lT3sg-mXm3ZaO9k>N!hpCn_ zMiZa7kZHs_3Mn9`G~3<7L7Mnmii6#=HkqyFibhFNhD>g%gZEz@m4tofF4 zVxNU&Swp?r#KfFF`be~9cE|5uk7QC8NZ%?CbV$bJMZ$0V6Luf9Ts}DhB`AE6XN1XuN*rQly z5TwWc5sLHBS53BWct@5LDrkZ$Ob9@|i~|O}_JqSB<4O(s>QC-W;Bm|8icuCxAh|$U zlb%Ay>OB4LQ2u9;Z6n$|2k@&1iA2k+*>{0=ldZ;upeu_DzD?++)=T<4*?B_ic~@LF zywn(GLdYER&^NEWHc>*=`i^*?IzSMznvv7;kJ^31Nhg>HSZdhG+_&B5lN>`ae3 zG|uHC#A#v!kZ{_(2`^3AvJUX*%+v;nV6)FNhM?x>0`rCgMeN2-rP?DpAHJ4`ZtopT zIrOe&;z@R78~S+jX!ASw0*a7Rq)?^U%nI%<^^))_PXzP*`712zl{kvVw`w44E6ugF zpH(n9Y7+Q>pJtbHdTddD4B=~|R$aj-vkB~9Dsv>G0Ej1!L^ek~%s0Y-b-tJ3x%p}D z5kKEg#_giE92TGh6BaFx-WM<2vrp-*gmU%=uJ&|WHAyo`v$L_()HnUOlTY{OhBUV` z`-b^CaWtZCODo9y46VfG$n>~)-QNaV1fL0&a@To~wW)mcRX1?%#i}x!J5$g)t}ZeK zuI3vxdiRosYX*37#hHKn@;Ss2>!QoK9>JXDRXTT_y*p9T$2T<@TfXAH>Id)M-`l;2 zo&4Dbj=I;GE;Uulkrg78Z?wpHlh_pf)uf%pv*w0REzyE7*QM;|;$?lx^N6GS<52AS+VViw{F`(EH{k(+t)35w@`NWlo3*DE{~^51CD=77kHc zyBwFAAdF)n`X^l?@3y7Mc8sZkPeX*O^`R?}OdO$f+xCOHX9?PSn+&yeQzbT6OX7ZK zm}It*C*$(~nI_{6<1Iyp7RDD2QF0}z;%jeMjyMM?7WMMVw(11qgAi3@Q;@g;@h$8i z%6w~C#x~x>UV+(S7@s_+kT&e7kFm>gfXupr)-v~IPuenq8S68S`4rsrI_(by9&PYr zkGqIl=ZPjr+>Q3b1xbw)p@6MVpLjei;6J|cF4jshp`BeU?I3cm!T?@1qj$c4@Yk^D_VIxYhB*?srNYhgWf&k)npTM z9N(HSbl=X6=bvjrETuTa@t?cjxb%GN0#yl>Ii#+!O0bGna1(+?d##%oAV-83GVl~S zQaoL_>)d9fnQp9Vz5B9Jitqto;yBwc5`61}WYrqbHaa8%RM>m;Y*2Tex~1|LPFK{{-Ee*&)y z+qKx9*mqj*W%HsmMBg&oc4>JNtKZzDfp$oGx#nscom#oc4BTJzd8s;RW$5P3HeJr>^>OmaW$wus<7#l9>okM*0f2sTsQ>m@?CV&5Irr;}s%%(6 zp8TA?gX|u);VYzPzwE9a)h(sNAw5491KKSjaRC22FW3Ak5(j2hq`y{r&RGY@BM7PF zprR|TGAaZuS)w%Y7{YrvG$7WxHKUP8Jw(XmOEg6FF8GJGc71-3+BFx8Jjts z#;unsjZ+q=uu6`{!pqI|{bB7IVj%wK&B05T)ae^UL->L;OY0XBFm2a5&)K%BoS@0r z1BpUH=Gh2!4`-r>c>V^;cTA1kkV7Z6L|4{68d)CmG|5rB@zc|j@ z_!_4LALAq{C4qJCR;zig_7$ACXJ1?EFV@?T;wgTr=V~khc%^X!(Gs0X+k#+S<5S_X zuWaHYztsW?)P;%xK1UH@uEef?USaEc4{Wo7s$b0jL1{r}<-b_>jkRgQEOj|)wvI_( zQZqfz?fcrJf!{iF_C-A@1AiaF{RS$|!!Ckfq7da%nM$ zm-UYnCCymYp;pMuF6;`caaz?!9Wf%&Af_#dNs)zpa1=iiaY3j@&dlEC9Om}-v4htO zD&Hku0hxfU;)(O{nkr7UQ!A}J7CJk6rUhnIhL)f2ERk%N9qo9r`5st#x_bp2exG!N z(EN4{C&~rL=r_Js=1dOu9-19%%?D}~xL-$`t?z4v_pH7I#Vm}($shf0&ieM7h3?Nw zI~AR9d;qPYfylC$g63atIvd>4$kJ?~>pXX!_wZO6(ej>f-hW`9jUrr@+h8(^zbze~ zxZ*1_{2_1RS}qG-F!kRk5HH^v(ax0j)tgiFWI;0^99Wvo3tML6e`&k-ti|(5hE90z z=lq$v#c6+Jem_#%$`#zPzv{ZeArwi4T zN*z+5IysOhUAA07eB5t$J&qdNyhBtXj}B zP<$4{wsWm#>oh{Or>;lN&P(L76yUt%0je~68jSERb-nQdrCsb*YGjYnz%N(xL<=w+ zn1gT^WT`{}qkTE~g1JUZ-Suyht|e8j?K;owfPn_AZR4z8NDkHd7gCBgB#wFY7{Krq z@dQ`)^-KvRglVb7XX^NV3qaj900&^77ohrrvc2L7ugtkcT^nH?8!6rka#V7ie};Tj zm}DkRt8n`c-~epNA&7Fyt3b2gz*F3D=C7_iS((SjMq$7&Jh{k(#8aiW*_~X9aJ>Ge zMn(c?vKWF5NrFd~Qjf0BdONm-Zc!KX2)1Dx`RyVG)|J+f(%3Jq{$@?(l0K^MXDr8@ zVZJ4{MY7^AL2kY%RY~X>Zh~d`-9ip2 zDq@_!_wnC<@1#DgDtRa{A}RvE|F`J&yyJLkB85QGZU0o2@Ifi@)7@}lZqceIRx_Ip zWAk_?l=y{_Tl%j~UPm1Y>_HjQqTb#4*ZA(nhmzQ{=CrsC{Wv5bqDoNU7(W+}9^H zfP&w$y+`}!mb&yBFMA4QWp5VM5@zz8S#MIjnV7E{z0OXNUy)dnE{Q)3oxp##tnzuNN6U9f zWxSL`3#3@s5N9P&5|DH3r)C1QLx}$Re-5GE|LXigS3<6RsM5~s_g-WsBgXs~jvc?9 z+zLzhv3)f6aIMqH?y*4&sOa!lZ)q%MV%=0JPIHVM4|33LK5UtMG&5 zR=u_1UX!(HrLV;ki_6u){Wsoj78@cYsP`YK*t>-cpo_UGPPO0jmnppzX5Hk^Xc7!F zq$SB8m0t9o3aL5IeOmDA_cPpyib#7J1^8vE$YT3K$hip3>?Q6Jb*5Es$z>Absg0nw zq*M58tA|L;+pHUKq{352wFqc>A}jduy*u{{fw*jj7$@b=V-;q~uPDRjS^_)952O^NbXrU=#r!&%4GT%THvd3e?93R$<5{Jh0W4invgMe2Lpi8RBmkcCw!fE7 z4IBzswvDk(qf4hDRe!xe3G%!vi1V=N_V1fs;hWkDR45EBc07@(;)swh1T;ve)-gO@ zElRe_7yuB!~HuV%_T==pZJ)xIGy`@+;2^YE$&v$NuOak6(%$S8DVGr3+7Lrs&n15UOH z6f0n4ryyqqlE(AX>y<`M2Pe5O!mR2?6{b{uZxOx_C~E>`q7r;#C-?{)+M^FHpIRXWNnGr}htqBWmQ3~9!|RDi!R>~$2-`GZccX7x-!1CN zR9fYS#bDz?X}k|w>t9;vNm5nuLt>BlhdfH$0KOu3Jy<=Doh)7@T~Tp(`U@#~fP^l- zK50&D00*lLY-knf!!WSc?IoXrxM*a>N(;KUTy(4kh-te}k?Kz9{XW~ZGfQmf)Hrf! zKiN6^im5Cq`CJn8Qd_$x>p1V--||@dH%EuA3HNN!{;zz(Z?+J%h|_3Vv)4lo@vv?E zbD(&2b($6uLt)$z49Ro-Exnh0xp?Pnhb&>-TMn>Z-OrPAYme9zOoE~+Jd6^h#Mh+F zTTD1+cS9lQY{ zC@BIl-9UX8!iNBNYE@4giU28V7mUNeZQjPd{bbpE9fbqr*I~6BzDM`R98memnDYmk z@&aGmWx4g|-r4zXHGm7QwLkXE?(?d&f?t~1Hal*aT=Ic!&i-D3UAD-=pEWrYQXa+|3pL7fLLJNxo8O82$;K@B6kbwZ%d}ygq=#nL zB`+z3>Jw(twbD#Rmxj3~mcQtEb=wJs#(e;Fru>sLaE^CfEvcR?rNW(m8S@}=%H?sN zteDZU6lF<$t)Y~t&cEfAm-`&X6 zeaCn2Th5B3rKEg%?TV?dOvDu}(Sg02p-L}V8>n>q z%V{e|Me&Tdc_txsV$^Y_=1A4J zc+%?|E0KF!$m>|~-}+`3?= zDf3>nnvkHwzgn@l3Bd#r*j?1~>7`M;K%XA?MTV5%D@(qj=vDOeU~?fshB=LF672Ov zONDIWq{7s-5B(I&!xs(Fq36X4|B(roW(dksxX9+0eOui@Wr~nbcIj50y1-0U(XJ>n#m$HH$; z-(gRV*pto%|Iz3NEW#Uhz{vtrdR+p9ed+9{?c(;5#oq29P?^9p`_Mjq; z!M|TPA9!JXEisdd6LKr(x&@hrM{D%R(q*&5A>O|(cdtrwvI!^9^)yHKF~UDcBeWjU zV51;r$X3fw>WQ^to&GO2g`|{Cfxy~F{7pXMu~(xTIr;j84_f&L5$XD2x_LY#NMGj0 z=y|~*I3TMZwiq}l%xkFwsk(O^c6g`!S9Xc~x1ikMtf+Zg7vt?@2K{da%sINiWG+a; z#MJ?RS>2>_4l>&*r>dSeJ~P#UA4uwY4C1x-q;=otq2iFEIAWCFwv2WT5uBvJK1BFc zYkD_90EX;8BrEkfodpr;QxSN#ZA_5rvXLz$|AVo0W%OJc;pv{L{)_-`>wc@~K?R7u zWw1wQE>~j%^Le4#6O=vOBVTdDQ*yA5;5W5;x9Z}QC0wKLil@2)YQ=0I&_lCjy9DaG zc%Bf6otR^UMS)KnTl^J*TH9cKM8$TQcig??;nj3hcnY*+;p@X9%`ZI-X#-FbuUr-IlDw zP?DxsI0bUZg>YG;fJ#7RoO!(id-Aw}B-t93iCK5G#uu+>O{;x04;HUGevrJD=aS+* zg;}o)v8LcTPeb)D=Pd37jVlvYFf5pd#m9g(1v)2`ZPMCH-;kzHvj=L9?!K?U&I$X& z`sdrGtgatpSUfBZ)*KA*RjE~@a+gu0x&XWrVC?2Z!3F|uK z;Z;CHyYbtKy_V38OaOxy?`I|HVV_YYCXG}E{QUINj3D%K$26hm&`zRet3cdiQ)c2) zA<*QskVgQ+9y!H#-B%f}l>n!P z{r9?aER99Ymryx}c9Cq=mCc;^(%KDxGHpYuMnOlt=5>eIl}SeX7|SQeG5<8VkX$Q#yx?0LP+=?v zyzpS+EBq*(KUy^UHE5HaNfbMXxXdo=1uEUVWopZA9=&6~r<>LO>``fmzI%H-{7T+4 zRM6SgAAv_!fzp@BTGt>+lW9&0JRgdRjpb{94%D}5RGc*g570&&o~P9P9aYy{7XJ6f z6nsba!(u$^TZ(<{89#MmC8k5+19_XJmKCp0qGgI-ATwJ9f71K!AWk{)yZ9zBrr&zD zuzs5UM{S^?7pE>db-@3)@FFx$>^{?#;;4@bM(#5gvrp{9_%X|*jNAZDllrNR-fLUJ z=jjvYm!4f`yt(*q=L_?F2v{a@mHnrBs$9np9?&*@L|abcM34IUKOVdt@3q(!K*>P~ zD%WQ}pK$hiYYnvc@*-W9j<4|fX7r2*F&u84bL8QTxY2cwtf>|F$<}=o2Tvb}zJkA? z0L4%ep-D!@O9nQs!}0y548?kj0-A^}tXsEiB>$iT>#hXUp&HQ-+-lSIxH7&{;1q&LHvs>x%10G- z>{Cs+4BeUg;+427_b zp2&5a8t$(!>j}djhh($Inzfh*{CJrcwe>Qu4)LB-?#2rPr16(q+l3F@02I7gONN;v z{??SU8?p{1kZ8|~!SS!bQ>r-?1zXAfukTDO6Fbc7hz~Nhb5Oa&X6t4@k7Tpl!GP9m z_dRg6R*8Ab>R8AQ1PABgyI%PoaYNU7t+fI>bd2|b7B>_(6}&UE!*F9q*7x@2!Pefn zk8=n5B@KR?Y#piUXGIk1V9W}L#8RqYN!$?1z_kc60JQHJYaI-JqnaGwnnj{@B&V+_ z{z@i*yDerMb~P>Nxl(0W;|c-~>&(-!cShqD{VU9g|8Ppu?>TygjLrY~?zv5sJtF(u z)OCo|=nH9NKy+w zm+mV9aNL#hxQ6rL>z_@)ATD(+uxHf-uBC&edcyXbG(*lAUQ4Gd0C|Yrbkr;ToukPX z9}Uh$Q&+9iSM)GlUr1->1uADDowhcLEQ2RpS(w7{Khl6t# zNxebY1q|Gpl#sq331ueZj6B7hA=fiL3*{a8so%c3_d#AwkEb!uTCI#DLiR@Py4`o! zgWKK07h4Gr?ii68lNf@x?>|*TaM3a?GKJky#PD>X%(_m@X}KNyFo8#ZCWWZy6N$Ql=F z>z1bNB->qMnGti>fu5x6!TovhbMty@ zUi3I&r8i1T@Eg~QC4$~Q;8jX3>h&Frwva~Cr6%kUG;Qhmm8Ld%^=gH&Xj)bH`@o1o z$ejH$$>#fz-pp$YwrHj!>+%7+Mw)PDj8`;+a)-sKjfCK z3vSB|2E+sc`RZi9<+#X0SUzJu-8o)aQnK^A^?sNjE>o@N;Uzrdhsn>xr^)=eXqilXRzefcS(13k=(@ljr(QQCS{1M8VCQ&DQmFNsXQbbeUCK#EQL@7PV&(q*bF@joP&-wTYdI zSu6I66)~Q>pYQMYdY&2C{=9!E68d%YMQAmtt(`)KsC&e{2*(+ZW%-nEf;~RwUWLYd zeCGdTnCfI`N?Lc)zkD90j+%jEGtUYA^k&f01$z(6#CLvR+ELPB(x5TBOCQz?Wu3WJ z-5I$v_U^(nFV0WOP5NWkO3ZFL+G}xoUlZwl8+~tKzDA&}6DzP6Vo8&R&jO$CH#+%Q z(K?>m@%oE-hVc8Q(Fnv>lWrBQV!?5;cQs=j=!iSTmovARQUgl1_8-IZni&wT6LKrIbm8 z=Upb0>n4kjStVWN#jpCwUFUb%Bc!rGH<3A}V%ITm1Z1tMqrpiZ?2zvTgk4@AWBaeK zNE>5hO0yoclA|NqG7ageEN8DtKoeG2o0DVDI|CLDUWASnM7UTjM=og#vSYd`U*ScS zajo9T_yybIxh?jX?3^zCi8dW;aXExpJ|**Sf8hSrd{Z-dlFJNEF;5}Aknb-d4ZUkZPK zRQK_3_v)P$GDZVM*%{K6YZt`omY%G8pvsYeQ9@1^LgRkqogyjKqJ;SPjTRfvSP{NJ z=qbbpBtvb-ypX7sJnx5v+j!2OJg-El2;g*{5X6Ou_6%e9Gn?p7{o44OWnr+-dN3g5TV} zz-}++(ONUO%L%RSY-WIK%Jl}#%zv8d*MjU5X_38a`sZf5S5n}B?1j+$B(~S?V~l;M zBOn1H2H5)&1x?+TKdr&;-d)ZGP6h*0hl(V{nHSFJaj_JQ8&1o@PexZ4?SG@($Cl-J z89{Ra+dG33_WQbI5G8(nBS)zrSE+FrCsHIx+?*}Wr!T%C|MYSh0HGnD~)Xg(Pz4&Ai_#EvO zGR#ZloT~FLtk1^>d=U%J7wsF0Cs`i*6)L(E^@^_ABX0)8Bdq+io$GS{h)EB1sv%D8 zC&&;c-J@2bnL}(hd4{O&fGi&1LgCoQo@?BB*K}e+!z+K*cQSfp6be{kio5eYp&NsZ zs;%ARz<(I_SaP+$#pM-=8wHr)^%y@=l|!VNd-+ESq$G zuJtzGX2Kei`O>?>MqUF z2CF!HlI2K*{VSbW%!(SCwG_1(ihS+Q0P$ae_H+xBd`Vd648aA&b1_(%8wJ55JjZkk z6?qR#FCw70x<+Z0GH@e^HfAk=RfS@DWKM%2qHf{Hb)8=HWU?V8u~%Bfr_*!UC`kp9 zV&Aak#cWBx)fK@TX_E*a9)1Mq;Qzz}bX)LB_S z+LaoYoeZo#3S!%5608-O!*{H_Nn?o#@Lsi8v?xMuIiAJ&ajc;3B$= z`{`AIo!3Y`diwXha z6)5`|A2~14J>No5_MPn5My*ydp`@sp^QQt`(qLqqhe!YflmrgRe3OMwl3OxN9jcHq zxZ`@~)3vR_Y%YV(luoBoOXg6uE9m5Gg^hfvwa!#pN7N$5y|sl--0y`<;6cpNT^ewn zWtDd5%)x_+n1DFXb)kgmcPs1qt>m;C=m>RiZ>C*1+8wt{+LdvlX5FcXf+mfX!1kg; z$GOG19d~XWC2PtPT=|>cnRZ*AtGgI+>$*n|*+a0nB-u=UwV>PY{Mq_Ieg3ZB{BoPm z_-?gUKI#ax*MivDB@CS@hQ-YJJ;!!Onr4GDj|Ugu<9;cmQ2et$GaUT-Z53LeRPC_jhlQTk1ABYdJAC}C6bq^3x%y<&e5 z9EyS$9>H)kf<*zT+sOw6e|076438;B;dZje9fLd+_F}K?x~cWDZ(;xmZq8Lu4x*$k z6Lhm|W4Zg8uzd|IfvanGPlHGUNoq>{aNuHFckkcFXnXMy*PVY?!-K=6&QHAlhgkqU zX>s_EB}KT6A*kEwr}NFLytJgp=cj+Y%a`SWod)&v;M}G{%P)J>{fKL#c3p#gN=ev{6amIN!e9heIJJzkbdxw^_`d_nF z+$e53f+7K$C=*ipQU7k2G=uw86(BkL1hVz+BtAR3cHW$wZPT*%H-4!!NY532o84$P zN$;ndh0nK1WubXIosVKVUBsJV@tECj9G2~4n?VWx@f!iUeU43XbmFNB&F zRne*B!+nb+tQb79r?S*NELm@X*uGyZka`LuWJ{TQ-O5-{ERv*wE~SX!RY^ivIG#pMiKVhNTg#{2roYZh2!EyaldWYBho!9|> zRZPxrggj~JH*hL>#7xdhWKc(tEv~;)`C^RHkxC%8wSKyc7-W^XF44bNq9I3gi5zB_ zOq-q5fWtrcj z8WzCngSG!&;HQ&00vgl6%rO^=wl_xxE*F%ice-s1?bv{Hf?=g;O8f#6I*1r)174N3 z0>5qlSalgw)lJx>=a_TDrZDWHtcenI+%CW-0aRZ=hO>2Mvve~ z$5rvGJFAi7GafK5mhuAuvp9;X2deLW0{$!|10>D&(wA?C$s?%@cJ7+IoK zT`Q;ljkKh93IWHfZ6Y-0{3CcmRG>~1JYYcLD#ydVhq+|}uYHVpQhLYLf2Q+w^FO|P zFot1Tv}UQ})#xK_HgpSkh}2}O#dVWE-bT=j&ClQepyoHk&915pXC5fmdmyi5g^G~b zNm5tj>Acj_X*7iraFyP{BoVGX?k*PGDF|DNyQrp-+`SLf6~-I#Dbp!MsRI-Ow}ujG zE&Hcw2L*IzBjdDu_}z709|v7NbL;Bi@OfZjc3h9T!jTDWr#Sbd`4WLGBRx-DW>u@k zIkvU^J7bx8d)~D*iwLzaM%{32=2e9wg&TJ>G86g*G4}oE^uAmsTcgc~yeZS90M_y>@x7I{pEI9zIP ze6V$GFYv+Eq`#RK07^=H+mYoTwTOH|RGRWPi*YRi(YD$g*LE+sBo#w|Nj~06k1^wI zP3%eupA4Puz0!KX-5$@kG}K0&W})gk_>P7F)|jC6bI>NzE`CPS>w4Do$9cqDtA+Bv2rlpO1E9kK)l6 zb{6l)xW}rIv;@qcsDigv&}5=Rkbu9XUOfI+({qP@TL4W-7?%x&APARv5% z7F293PE|+K9M!QgxCvjL676&#Xnjuj;q^H3#YmTq;v*C|T$Eh1|FTVH0u=LfeE!4U zC+4BN23SLKo1t$Ibu2Mbt%h_o$UEj_Klk%X3~cr+(boCxv;(N6_!m{fX>8MiRC={V~;t{pij9mV$#DQ?pHcQMqr#PhH9zI-kP3Rq|Uw-nT;Vs zOiqbz$#+q|xbECH9S#1h)fCcPhL~@m$ht ztYm!v59)jEceY0Wg{*#{t)cThpt0K&yy2exGwZ|2#>LzaY={ylfb9?XhW|7Gs=4NR zU0sqRK6p<@AFHt=4fG@JE*9)Usw)eI1q=2iJ(Q~M0!-u7=SuQ})b6(q@5MHqxjgQ{ zbGpn6V#(c0zoyRTC2u5&L8#c#eHHyTfmhI#rlL%EmI3-tzn1UZEq9T-Kf#-J?EA~0 zs>mOYwr*ssQ(+(RDAQYtS*+cUek3(R9XOE+}yJf2Gk1!wL}8kV{r3J!Kvg-&4iJIcVTaU zKMtZ(W;W=ILOvaQAY3bmaN+w@t!VmsPWJI}h6HnYiKeNCc95w992VoJbHyQJX+n4< zl+xOsyC=BUm8T8m(H_slDUzQJULjh7$hj6Vbk+M;k^)ox2TOM*_Qt;N_LwF1S9g;( ztyiXhnb}Y1x0~=6=jjsCQ2u7f%m)n)JMu=RPMCv7;0_+~Ag`{*+66B-o|8LU?YK2) zI7sI3FiLu-E@!qk=l^He?rg;VtM5{=hdQ@7o-%&)iVLx($z(mBsUSRwyqUD6UzM3O zXEY{~h5V-Y$0KQ-lcQe65ySUu(*YTIZxI}ExX^k>xU!IOChf(jy8Uw1t~p6#zj!%@ zbc#}Ug`5hOnjPiFXz>5a)6M*ydaiQf%J;T>@H2*jMGdZ`wMU5rPU@id$$+YBMHx&R zjbDKiRh*=5lZ^=qPdbmoPK28_EKVC#Sx-FnM$D)-PbSbBEUE(4<9*$XxVTlG?8}KJ zw{R$|arMBfv&apDpsWbe%mMp8HGoZeQ{2TB9@h%=!c>mBm03mwOk0~M8?or8mCpgDvOj;&hc(P_I+2r ze#_q<#yECmBBKjVy~l|Ea9-@W2-6WjU9fwl!w!30d#yf@?WZ~1dw4NU*M^BlPDpLxtY1&3(pb9LS4}rNvUQqNFsk*4c&>fn3!{;q5oegyGoJM@&f>D;iez~1T%!|d=FRK0U zR`EiES;4AO>&2r2$;QXgnH&)$^Z*<{B`RAPq=H(VBbL|PD zjD0{zV{0(S!(J~9WCo)#Q|(B}>8<$e>E!GOnQ@~>kn-Y zb~5hbR>vSOa|o_Gbkjzq-eVm=y~D?<^X!~89AQi%W?u>tb_{rnu-DUzM)EEkK98iq z^JNR#*IoP7AXI8R3;Zyu$|%Q<&s&1%#IV#;IFw1mhm9skTct6YkUFqK@Y;E_uN{zb zVVK1yI}Vg|R9C#CXfFI!`gN6|Q0EzoCKrQdfZd*E!d~$kpwL!2-w?7stdLdOjHx;o z^8_DZ-8&`nIs=biaX?E;)#d?eQ^VbO#=7XZ!fOw)2@4bSh)*B)b)NdlEW%mYHs8f< z*2^5{X#%|^f4TosZQtWVfip=_hEC}QZ3A;C1;Y++L}Z?%_oHDv);crisuff@mqvTz z=y}x;>y|MdV$34a+16u)5qr8^xz;+Ei>1+0H9pnD)1nmxI0epeLbdjtxpnK87pfJ5 zHAp57UkxAui-=nItFo5dl}) zQW}s9?)FJtpX+xcS7VY)$52JZDccQs?;vA2(8DzEY5yyNH+FFb^GAa}ce)9FH!5?p z^4vegohCP*IQ#o<=4B@=HrtvXp=HT!7u|j7wy*GrAiVK_|i{p|mkl4YNO4;^b}Dt(>Z>I> zj)@xw>ZM$)%&t_kS9>?;8pfkD=IPqf^~NXiOH1NxxcVoreDA#)am)0%D`Qo4oVa_Z zO^5I5t?!rbyi@6;r)8&Q4_^ups?|>8ajCTbLm^W24c+o?ik6|iFA%V_wBz9n~)c~dR2gLPo>w&vf^-YnRO3P$R;>9`O8dL}WPcS1ghu3c`p3D70ZDe9(JkE_X> zB6am}){-ywWCyF#;n93wefdm$)-->QR&CbqFKGtH!drnwlpD6|1=W_8U4$v5zRZDy zaGnnrR0xqB-8(N^!N0y`W19x{%3K*d(>wGTY-$%+P1W~Bo-ByZpIL7EL6yYT6IG>x zpsh^pq^}2$0|zJc0hz$e7aXrR{n!(`x4q?ioH2_NA1oTp7A@sT5v{*$k86;LF~F(5 zS(JDFY99qBOc2O3dxx8!at+J}Q;D1BkBw$L7pl#6$_(2OLtcS>nt1*Yb6BrfJ?+lX zpl(gy{9b4AW)8N#d-b1QF%#1|v=mP1cp?03{)Z<3*`go(3*JD-&z7J46~heuBe#GS zg3Mn9_W*h{GvG{UJA3cZ!g}+#cP4z=mFujeXwxWkW=>_+RnlaXWSSY@b&NtLBqNera|agj4JE5*%=SJ|&ikQGUVy-?=rU;N>ywmU?_)kkmqk!Z+8?Lf^^V>pb+FG=&l%(4L| zur+ThBaDlJUP{CeXbJPiFILtMu&=baXQQ>DSwG}@ix5Vk8=t%L}b z6xQqHr@wqDC#-NuPOZvT87leurSJslV9j=4NoS!hNYo*V(ism2f)NA71Mx4*5 z=6hdh5b-6x7`I3IKz#AW+=P?RC1T+uk*j2OK*8WyFw08~M0GFOC-G!;&pQCxFu13M z?=|h%lHNmQ!}Ip@!2a3Z|R|;A;eaQcP$R^s7D=|!Lucdf9Pa+j; zZa3rcqqzMbXRanQ8MP<1bw*z^+T;|xZ*~~7FL`WqWxJ}I|I6PN#Ak2h|MnmN8a;g4 zXP0ue24D}L*pJLz(SIVxj~HJaD@nJVWtaSUj~ArzXDGT~b|f;ZtKlKi@erT!y8QcM zi&5z@HmqhB7Ao*cy41fgh%du-pl3~KMP&wigMS3ITCZ{)sWeGfW`}erj!Ew-$|^t# zzs_<@6dh9n%~{oQqu>UL8>i)-~WFn>u3Nkrym9X5tDu}F-0 zaVh^8rd=ynVY>n>@G?$k+n}$!>K+*=!!cdbKmMo;S;jPKg_L6{g&zY|(16%pJwwRjTR4A7aKhej;}7~)*I2u$ zf+Yl!X+GCZM)d))1olRM1&ZTuCk}i*3ebqP*5>rkQ4t;lD0jjLvp}=7@QvOzX!546 z>-7rlgxUE5fdkD3-UDgjg~%`v5WfSMz0z36eLg8;VO&s2J?M12`1I{2N+Li`IAy-)IpOw$*BeMDdfbH1V0QrfB)6^S0!=Mo!0Sk9>JEv_;2bchy3Bx>{tCwpNjqe>6BQpPW{l9%i)e z51#dr$4{NxfgS^J1$RoV|N5WZeEF zhVJ0I$X+YqYXcM8pD7gq8YkXUIzx9s%Wpx;Ro$n$_VvhGZow1xLRe!iZ)5IPv2l#D zM&t2Qk6u(;;B&j0t%5~zcUYnszkN=zsIW1W%V}z}pVGnNlt!euaN;RIRenHf?;7$9 zI5J#)?kZQX!_m6Qaa^UlXMMCk*&;>H4UoI-E`FEO=7(+YUyX>Inl(#aZ&UR#*CVPI zi3$#iaBqEi>}p|(t4l8~^ZHA?JpPDoF{5z4*iqNoDe02Wu6O6D(U#!`#>=i|Npf8t z4@0$Ut`|mEp*#>t>ZBQi>r_?M!6i5w6{xjln$)n*bPL%KxO66&j=x@_`_X&eKS*&; z_vG-DQ+qsjwZ)i91Ae1}dC`O|tHBumM*oKaWI3)@+ZQ4(G%23@Ozz_t2M~<%3hBwH zPn!jpIHZ=^ppULF=KEq1?bQ**k7=_);bthl99V!WM%vVguerL?TLW&oUy&QyXHW=J z(s`(=Sv&v%#Tbw<`W1kq6OmobSkR_7$VuGyHYZVB6f$IX)CePeyqlOV2*hV4TNEQ2 zCdjZ$Mt&|r1QtQQt@>dGUnxCypU>4AlKIOjlO>+hp*%Iiaa!)JEh}yn>PfvWEbz zu&q-mZ0M`bL6?KL=+00;y0hN) z*oXh>C_uUD&gPe^sE&o((lCtm6v%XKySo<4Or{F`q7{UGWat6HT*l|LX5GQ6%5%*c zK~>N_%Cu3(Bb*6aDAi&q8|3A~3hHS$IH=T*KI8u(MPouReKd?xpU>MjY*f)gb&ax& zo`Y;iLsP)#pP;4B9f~wsO|npnwtqLwuP~R_{l|Li@lP2GgT$5fUueO8Y3^*=UT_kz z+Fy%d(n2+dw*7#ux;otQ_o~PQs}B^42j6%z9k<8o`g`qO8M7JJOR<2t%WVYZ@}lQ& zMzhEJFSt*|o@#32^GXe(R$=F=9PhSkFHe}$KMeer2M^ls@{~>O*m&No5-8L3z3R?D z->Tc|y0NQe5!)ZRgm{^~3ImZzk^6uA`Mx5Mw0LOPW{s==q)M=E?vZ*bDX_!l3ZuR$ zs{FTLN#8|Rs(Y^$PXuW)A6NzOEsS%J5o`CgIF~9P2T^E%<^XGm4mdL;BxI!#D7q^5^rei-P_wXuLp@QZ8u=I|pFc;UdnlkBg~m8g^mUwhB$5{du(gSqkFor1Doz(JMG6X?hP{xUeS!{hL`iqh2AQ`pO3E1X-w+WEXvC;RVia^QgCSC9v_sE?xvY{_KjEY%9y_?- ztXd$%KWN#J1I0X~^DD==8Dxg%mq!V+oYAgxCLFD@ zHy_6gZ3fX!ds&VnZ_=^LH?iL>pQMkUstJP|A7arRF0D?3%DVVjsyU;uQ(3hiA@o-i zZ`Up>$Nu4LGZ9Mk*ZS&|g^qCLNzn=OiVoz2vmbSWjvjL7xyJE04GB!6do|YQOLg3I zl*ESY;R&M(lfHuracYfYKFR*oCYti`ieH4s^Kp6;utlgV+9W9Rpn4dyt3j9#=!V?# zQ~8~Ut%47EEerFq<~<|&F6Fs85GKjoF=ufcLtP-i252yDp`?Vt_Hr?nZ?kG5)o@XB z!?Uib8Cfek4c?T&`;St$_azs=2N-qxUfb9_FV;ZOPB$k5zjnF3sb70jK9i^br({AW z$?cL`PXPf$ZWw;naQ6ui%P$SEL?|5ZSTde}Gw8Gyx}lbIF5c67dUvC_xYm9BMq{I0 zpxc&~FIE4V)7i|L-f{Rikhc%a=K6HD?@b3lwouXkWZ^_5Aiw?VI-7+>>kX|QP#>QH zkH@J~+4`Bpt3WYTN?B#e^qZLJ-7LR*8tyll|1_(evDPF5|nsCqh@Yn^m|OiKI^>QL$`|GjdVJJ-K5SqYVv*i450D)?S`o{r$n#DcE<(B zm>2Z10m=OlZp%^UV%jAW%^cF)dEe%Hg0!dK}Rq=U;HZQu|_8a&;?eX_P&Tzxpcn&M(PDO8sSdq zcr)2o1JmFyZAF`F18?^C-I`qNVpp)#=5}=A_CY(3t)ZUPheeM+7#JJXjdom+)5)z| zi#lkDbcwlV&WATY?Drbow;1m?5w72Ik5t%xz+Uld$R?)lp#WfP3#2GA$-f{nStbQFrXE*bumGk}=m2S7R>_6#it55!fZ#=%)F$#(-Y z!+pxVt%M=VdBTafngoBIis{HFGM=IA^a5(5&OIG9b$U!{a-CU=K|0u-+eCNhY>~-I z0jZ%7Dpiai>ygRV z%m{BRbKk`|cjxr%GSw?y*H8A2v^q6pp_Gu|;JA(qp1+7}Pf z$Yi2b^&*=R+s?%H{&6OJZXR!B&(C|10KTd(4@4?03ix&|4wCad7*?;W<+p5D9Ph2u z9-O^tZoE_VpK9#TecR?#*hKH&wXOgE&nON&`Hlv}ZdFqM<9GajlK11l2x-6+nq zoLew;@D(S$W1o57hAA`KqLb|W5;B;1Zp};gK#O3-U;Hc4Oh|2M=)M)f{WVwXj7{M< z_4~!4PPdm{Nbq-0&u5qjkB0spwj%(?#6GqjFgI#Sjq1z%4OoQkAO8IDO!w~Hy{CLU z^WOfp1xrYL>WwM0MV|$*K%tJ_2D}rids*S6ro>gCiR5*WuPO4H?tJy5D`*ZqC$u>8 zs)hRUgtb(K$GXa;B<J{R$r2%i7N>lW5zp!$v*4)Jg7?A^- z@aH3a4-fOt0y-+1SBcJ*8Ug6GW;woMh)+@7Dn}H%Dc_HToJq^w2ksGes->kEN9&*N z_Y)VK05xghwq?lDLD70$kPg$&!%vmndOb*%`du#E^c-_Y{k!A4Aswq^x-4$N;;}`N znw6yRd|`B(Hk$r$d(Q8n&@cN;PVean{4uJ{$_AWg%J&m_Mhf)K4;F8Yys%hED2zTP z9%$((CkD;OK?`05^zf7KM^@MQgb+v+(dizk=?@Z((S+#|ypb}Ke$ zPa=8a7iS3UocQz$Rgd|$w|TZr{szI&e8CQ1c*Kr0E_3ky3m&|q18znd_i){JhKtu5 zQgt`rp6T3#uFv!UK~q1lkg?k0L4&;gCa+omNy{F6b=~KTt2TUN^IvCsO!N8w;OLmk z|LVUF{z}1m+i#oxw>XRTo|Yq_YT4GStbIKSQ?5?LJTV`9Vjd-vzH>uX=xZLBoTww` zT)Uh8Wbh_vELmac(nteDx^crFXsulpBb-$qm){u)9trbb=&neV}M8D{KOJI916F^+0S% z06ycd0B4a}lNBUnXKk2$)Y%@Ph36Zz-fc9A_C#lHoM5d$an}oaY4y313*Mrb-s&xU}WqWU5JW8rB{vvi;BISAmcTrL~a^(8tXL)eS;718eP zd1AE^DDnLK z4Rk)UF}7yMM;C*4+Nq1uJ?C2xk8>r|d22p0^$UtWMXhulu#KViPjf7g7Wpyhoo<~QH$^Zmzrke8-A=863P z1_2DlvbjS9SI5<95t7fzf|MSsfD#UXQ80Xaf;wX;S=f5d8mSOkrZerK($=!HG99#! zUxnQX?JP7Ca1U{^GePz3 zTL*Ry#r4J@pp`SKl|Vc@nf4(TFINC`A@uJ5&w@Yx#m2U&Pfm_k#CR`4O2HAS(HDOIBZM@Tp{@lG$>9CaN(80{Lr2*czXpRR0>(!t6uQXFgAr* z_fb#;0GoY~9`uoaYHhK#C>5Ml-lBm7#-?_!zE}-CpnawJT+zNMswTufySoNJ0)SWL zC%0EqY@5Ku%YthgCPNv}p=pDL?tK2gW<3(+-cAC0AeP$!VF{To=g1rV?`~Y3I3J^D z4qr!1zwY&%pgdo91iE1gH+#o|Tb|y}b3$=0)j9e>KGZtdKvP%Tif*)bzgf+MUzo}n zqjSeIfNg1iis!p~^8abq&riCMja6tXY4|g58@4H0gkWxm%c|ZN9ucnJpsTEYcm+KW zDEH^%bTe3HYw~)V(4;F~_2&2T4e(EJ@8^&yD)H}qeBMbNKJxim^h}?44StSS@7KhT zB=1Ly3=gFx_Em@T9*O8@t*HK3p66g~XQPT*I@#rl9H71s0R=wImGI0@cy^i7{93Je zHAYMBiN)ZLF#C1OT^BT+N%4ei+>%I<!V#7>?MXYfq{ML-0qb_?sgzVy!p1=LluJ z?5xSJbD*jzszVqPtak_aQYX^2RfP(?)!M*+iQJNp)4uKAIB%)AI`R z%G^K~L@Nc-?Uav9WP{Hpyf~8(JCJyh5s?&m;R@?7UZONv5l))&-xTkD#_sA)p#(*6 z?al3t0v!4)QI1{1E0XmPe0yqxgV7i_Y+z|(@vAyl=E|xV^JJJ{0J1k*LD;a3Sm+Mw z?^+=DV}U${>^NZBGd3$}CG#_CUz3=%79Up{@>N5hJzT@H&*|sL z#_3jV+tss~;~NL&K>(H;6anyHxPSh`?LvMlz4)K2ZYjI;&p_U$%|@Vywpjx>|F_s2 zhmIjlr&3zpYv64(aC8Hnz4)+Pt;W8KvKsLQiZA;#4xaxKF?Id6p@lRS;a8u9N%Jwyr`}zA~gJ2 zw>|yW7iu!FHRTt3I!Te-*H5;N2F1oOF%JFg0Sr!IxdP#w7{sKh!YI@OWH+xWb3jtDANrbl6j*&pP)=EyeLuvlD3Ak)UuM#x75d*B&Ml2z;-g@;@lhK zhH6O2f`eN!kSC_qCGX?R`EL_R5@%TZ3|w(lX)lYO86Q@6vTT7As>J1EUN9A6CLGeR z7!bueNj`8jQ5*Mvc$(TL?{e&qZxh6fB>Ll}dSINhZl{ZA3m_{;{VZ?VC#iEg(=Gt1 zocZW1fLP6eO=l@*|0{>QZ(Y!&V6Jg!6 zsS(~uHVz6BrC4fuuh-y2x!Zv9z%YwiKz=iVv`kI~^ST5q%i;?AXW zB5)n|`4Y$`F6g05Y=;n&B9$LEwN9&>U&7Jiz~V5TlO}Pz;;s5-t;rlAKT0|<`GQAG zZswwTkYSuj8bZ>?LZXiro^-qM#@}3n{Vbv6tmPt_L*KYw0Z~ z8k!G^n!}nJFWL1Z|pxeZ08Ye@%(;s zSDUCMI9neGAi|To6k|QPUf^Rgh>!ScVg!PK$bAp$h*~W^&Tw{cL<#+s_*5^2=*X?m zw;m^llhn)+fl8`h)dYTyw1DMX`&*(xQW8Q2$!3!;;@DLiU4lz$B~~W+Vr3YnJ-&0H zDatFC(+a#XZI&kK5i#v}<1cfu8wqVMo&+1d4;Fe2PAW=#ks9WjZ8`Gv7hColGkKfX z_FO_|m>;|PYY_@mcqd0W$My|U!zuE@mWnKzqh!-a;~b9~oK?0^i|a;*P~2x>bOvr% zZAD3~wm?hRenTJxryI?Rl%6y0BP=Hoey+}b7^|KV+AzxzL%{q4Uc-v7|P zO4tA1!o8^K5LbBGgBzW=NM#M-LKD{6NaTaE4CXQDJ+^m zd=AVAumKFA*6cGj0BV1_u_)}&=$l*NA9d!D;xBnRCqbNlvvS1o3K&#eA)$SD{Ub){ z@?pKza?Ny54l1dqWRs5&#a7a&-8284kyRsb|8r!OF8$EjVAqY%g@zG0RF~PNnNv=8`-xvc+pVxXx^Y+;;}DhOK$?5obDeUI{A~leV_#q z^$}LHk_473<7lB(*GAqc6T2C9war9%C4+M6J9sH>+ktN^+$l}JOm}%jje*oVR$pR1 zvVU1#ekx|yb1OmAHT)F3mp7877NQgi=e@qy z0IQjVe^|DL-Ef+UJH{@@B%PfTovePQY9(EjuzB7Z;ezeWTJP3YLyEd;qwA7?W**=u zxA$}{XRLRo@<%>xW|;jD;2=X#o)tCzCZ$+z+d^!4uM*4@xjqFAGFv)@gJBKWUm0r< znA|K3no_z{r`eWW`>OZ83TfLz$#1?)2WpE~2!$a#DKngl#~C@6R-uha_v#DOF;;#X zsKA)TO89h${W=vD;G&!S82$Sk{h>MxSE+r5W$qsoDmLIt#UJLT=v8MX zNprDi=I(bNfwu2h`4oOzG+6$P%1RF6$W+ukceH8C5jD9!4a-1&*U}s_(KgP>m9l#UsEh=9Wo+#q`(__0 zo@B9#`ZTA5E}$Y%y<=3G%MFG?l;q33a1AmG^Ao;)h^)oUNM}BRbVm*R!eL^4UZ9zb zl#-=4l_ln%ai$P$D=#4QOnFJN8k*`#6L|2d$pzhwR3csgPPlJM!JEYc<-J8b&1o&e zC<#<#+OrGZJGZ>ik^A1#2}jLdc9oBInz@~u;pWi+le#X+Dc_lk%yqDUk*5IOJWZ}dtFz7{i4_0F zyQyu*LST#SX(0adc17)1T^P;~L7Vl=D>9k5d4rIzFosh7j^x@k^?NS&w)bs1SZ9Oh z=>H)$C7zIfzJDM6H&o%nzj=5{Q-9AkBo$l4;pIw+%{>|P8MBtZqn5vx$h6NT@Xb7n zq;u8RW5l|1Hx9esB#ld&QZhRB^!<*UUO0HB(_|AI_NaQwdqo!HctLo!DsY9Map1@s5wbt^oMGcE4Db;!>=x(l)4SDpzE@%7*$S5>tDW=RP5*oA1c8dQCH;d!ZD1el{f@#>+yTMUEcB?I}ayXkGoPb(3;h%y|+?3MyMcG zt=K^j+xMmC{r>zu*XNf%U6*j>dcN{{Js$V_{dNZv+>Mk6BWZ#l!`S3N#kaIRWrjqY zEEtWe&P!NY*Upv6+Bo>!!bN>$NNw0RO#N#7p1)YJ&oO6}%36EBj_6HKx>Z{PeeQ7W zDlq|wCi9GIq)|+Grznkhs(L2cCe^sg*}9iY4L?6TJSgy>5r%A~c}$$C6N#PgqaMuJ znc}^ntW2UE?9ZBx%0Z#FG@{y9(Oa@-SnO_(laJ{$PlMv_y?g`vmzO|37zmml@FL_C%Kn@qKR6j8!PDOXfUo~nheA@k8CMEpKs^+T{+an&0(N%TncrnH)X1G?8CEP>V+WBqG zpM87+JjojF863#5oULPeqb)y77kne3BHSBORN{UfE3(8Eu`F=L0Yy10WA&FB$XQXK z0{0yUqjZ%$*Ovac#+rY$;ywUq@Kvj!V4^HUT4~1dy%~89<~)Z29037Ku#=~Ix(EbI zvB0>l!bW8WalT@|b#V|#Ec49st%!nuEWj^$O9q^?o zU7L8hc?Y$c#=)VvJ>9nhl^YZxY`s~CE4*Wsyx4K@s>;<6s-wS`<0AZ44@1=00@)eM z#m)x3v||009b+(G1H?%)F69~3yEL*|N`Lt)j;O_lO>R8-oaU)r`-^&&z&Go6thqcP z&e|DaGG#~;BrnS1J_Ol6(bg8U*qz`4ZTqfnSFnfb$S(peYmU+O+{3J?T5+aZe#xF? zVFb<@h3)6aIUapqJKL4PH5Sj<_8YVy0gX}*O-DZYHf=K^oo7QXy{8@31D7zOb_l)NfrQjcXFSws~_B!>lV4WQJA~z zf(L~!gBDIWTpW?z`Z}gV2&SlspFAC^6h*Flefim(tz|p8DOpwI060iyTJfWsrmV&i zS$Held4Dt*xqMf3_b4467$GTK{MO9XPOYf<+-+QY zm?+1{lCE(#jOj*-+hl;zk+;fwXkMvQ{_cWiW}R(!!mlBkK4a1%`U9WH?FuP;`iM3h z8MIjS7;F$bNhSXHuN}FcF#F+p1UTt>q{B{%c|z{?n$t$ic+W+*v2;p~un(mQJ1i4B zm9qtN6~*7D6OB)L^jI^IylDEge2MJO0V=M%__16IaQOyt0|?sKU(_K~BQ-kQ zY28ulc_y1(Z)n@4wVm;lh|hE(qdc!g(i8{~&6t_itBCaQci~{V{aYtj)RwLcf;u_4 zj8b4^XZg13o4oiT=G0EVRi8Q8gMBTdz|DwyCz;hN+tfVY9Rdfq86sweAFK30jET&n z5g(+f#9nF$_mQdcmUh>k>@Z$IcX7r3P?QK-{Qie+GG0lf^&IdrXss-8NQ|Aqj9RT| zk);?gUj1|W3(HnQ5=u%Lega{0TTfprjxBoo(cBuDJAoH*KXX)g7fbbaFZq0)9)pGwSOENqJMN+ zAiv9bN0mVTakuE;n*$h>goy2!&t+zJa=uUFq1@BPwgZ2dYQ> zeI+9`P=3Sg{z-=0JLuWFv$VbR6M}f#G?&cUZ#0xi(67IE|FfF7V^Z9?!wuS>5)Ini zIkV#kR@Mx{nvu(HC3|qNHC;sG>Vw-i36^hjUABVYlvqOgvyp1*f@D~3%IZg#zhr`UdZrh?f6cwjPA!l- zRbkO4rN_YJSswuF`w za=B;g%2FRDuELN7>w?+%K%>j+yz&xtccTX5 z*ITUR`ZS{C`oZH1(M8jBtP7$9Akc@)-K$&hhAqI*O-Yccg?2^LFt+XbLLcSXrcfMh z{ahe!!qAO;aaTF=j2j1;K{b~R-avK2?Ueese))<_-9-LLdscdGyaQfV_9lz~bmil- z-(a-*3;%=jX|}40IvCr~IC4VUEAp;0R&nC)m@a9vpQY5d&WCqq-6iQG`qll_f&(>DK77N9BPd|Oc_ z2mAVizcfjWb&Y>Bit*TdvjBwQY4jsrdo-;~EvD?z%2gdix`tPlMPEa8O%?YKPBeN5 z90eJ_T+65;%6~SA5w#{)N^HjgFlku^Ny#3vgD4D3E4m2rIDi=;aRzW?UUNZSYzXJGd4^_uGhkrh%mHB9ne9LXyf951!7%LbZXIOvIAZ_Lj0r9f*$2T;Jua#+Hg8dgVgc+vyHR8 zzW&v7DYB9N|3(Mj;Umr;r-M0pr)1iXgMx=n6Z^-xA4DXG@aopZAh%Bd;bPYJR>6T^bw7+xp<<4M-roPx3*D*xY`VDha*?LI(MovE%3e6_2$f>`z=t;RP{(^P%jd)vMgKVgciH| z{+BAG9UbC`?hb3v&km?h#TBxt7O>11Kl3W~@00F7@E3{QZxNWWUZRO$3(Uc!aJThj?&L*N zwFTf7SbKgUks=iFGtTe@5|jpBT!_1hLO3@Xow3{W-qO)_H$(>-1h~LEA{;I#)3J-| z?R{24h_ZA7y_9FTQ3vi+z~wEfobi22^Ru6%;k?=*RB%-)SZ?IQcIn1ycV*dYsq8)W z3+eH7IX*5CYjr!5YdD1~N=>NFXQvDzv2)usjXS+}4jLUX$2asyJaO}j>T(pTMwf{N z`RD6?qN%6cW1o~r!E@W56HCd+jM?gvm2NEw|`UQuAPW0WgP&4ZheFV*cjsM7bO(D_swR z-D)KRzb!k76N%Uc^yCEepl0}y(8ZIujGVooW2^`pR+1YVos&VFvtPznNN$y$N;W+x zLg$$f0nOVyJQ-~@13scni(5QnPFx-A00`Dh>%#|AH`Y*?iG@2OZ{)3V( zA70HV-_F??lG8N9%f9~5NGLP(=ohofCX0t$zXbVeho)Ih=cx?~`gO<9xUvg@NoxkX=Td=eJ^ma1? z5!V6YRfWwqKi+U|u5s(I+4GJsR`A(fV|{5*9s!_PZy0q`z;PnSS8U8X@nw|f zZkKiaxjLxp71Nk&eHQcEjlcZjsvOIP|2m$(iI2BY$dRr7C+y5(1E3frvZ52g!HLP`+>(}r^blzDmAe)@hjZm&_J8#)5nrQX7BEZ zst&>MJ7495xEiKVxfy*CM>ocLx~`!K+{<5L9E<|fLb;zn+WGyIjfyZa%Lz)5AI=4> zr+&!X&)&)-#^vpo%w5vrM=>F}$b2ZvlozHbEzzr4%5AIOT2hd7AkJnY%F6G{uGbZG%OQ z4f35mQNDp)^`F{3OXdGc0|v%a@k+Ni$RN(^$zS@3yDb_uTF|15o%7xRd`Js2w?QDQ#7)LSWbqScSUs!b!1-z@<%_}`_Wz^`71Z^%N;(#GvyBg! zgAvU+zG6@~MV4~%-RVn9racHePd`V6AjdHxbEod%dacRXtkPMD^3K`uaa!(wpQYu0 zvkT9y`m@F@=S@bS{gbWfU^0NcAXQhMd9Zj+KPLYKV?{57{72jtdxw}}kr>|>*>x!2 zXGh-x^)1uHM?MwR_zHg#7eYZyEpT55`9OG4ilG?#IM~a1^z$~$nJT>x`3EwZ&qYbZ zryR04;L>SgaKKJ-=7|3die0|tW|siA zEHYIz$AZ~X5HRmxw0dAh0TCb+kPCP^ox?rTbNx- zU}tyEn_n|SN`~Wqv`V~$R&euTN$)uG)5i;cDhY0WzW450zw_VgET68>DiGRuuO|(? z@_QFfWSOdQuhgMYip5HpMXhb^`A@{r-_^?S3{)|wDb#rJ;(~cP$$uU(Zo<>UZ<%!5 z=+fqzpT4HdkX3om^4*jfOx>pbP7nb{3~6q138;e=cr+5ZH7`syCx?Gp)lA#*iR6(H zf@}@6$cNDb$}_<+L)tlVI+TPv*tynD+cwageD%cLErhPUbBAjrttFW{(wXgmTPaeB zy7zvYAJZJpFLKgamJhr294Js&zbb2wfx)Gq>i3#HhlaVa?-zzn%36cDRRq3Mo>XJG zpps&PH{-iTcrVZ+Xa=Hb?xdj^GpDIP$S?4=)KGy!#rB=;RGxKo4e2*ZL)^GzqkBiB zr~hh@dzg0LB3s(?I4$qCy+NeQX=fBv$V{1gPW{@?9vUQO?327WP?5Bz@P+&RyvPZE zU`LyTvSW02XWpL9I?J)Jlt-aYCYoHz|K@ShiJvJ#H{A$bj&5!4Ed55w-lB^F=qp5U8_TL}&LD5?1d zzOM^XqN}*$LFM!ZhzPJCA;*8-dtV9?%vSGVDX_kYWoT635_D+$HMo&#NRCoElwGdn zhgcCn#g29%E{s7a865aB_`l#RJRY zC~1$G@i4KygHiWJTiCp;Mn(oe{*baojOKMZzhe~)c8mAM3OzswcM9Ou1nm(E{_ZHIa|p}SA3uL?ZuPkL(l!qrW@056zS|z zDOcoO`!?pD@7m%Nv?lalBZ1uD9q-(h^uvB;PQnDA#cs*HeG%tWf)kIMmz_-br;f$? zw4Fp958xkiP?O;cPNuERJ`N|R_x-6t{J0%QduV2{SC^UXQn;I=aiHtAVXhnuSdPf*4*U&nrZGn*I5CtP4AJuf zONX4?f_HTEcjP-)_Z-#-ucw=(8VfJT7v(J@M4gLaoi!g$VOAA2_`l*}1`AO}fe??n z>piK9IsS2osh?rSCr|r7;4qy|3xIuLmR;9Q=tQIvHEHamRnLXa8hV@hrF)m<@5WOTGX6s=9X_&F?>D zrR6HptKO~E)UkJZ#Uq1BprWLAWU_O+;^P~eMxLO(+p#^(in#ZE*hSao^`YUA@FmWN zg@gqBg)@W8+iTZHdDYUzm+Vr~7@veEKaI(2;b zcCJHP08GvWo;BkJY3gVizNXz)3#iu^IU#*@rHV55unouLZV+E-eT|NK4T5&nXJ|A` z1g}5ebd$F@BdQX>xX&C311pLu9cEcbZ#=sH%3HW}lE@fmPr>DI@rtU#v~V9gnavY$ z3l!7{Q+D5$YQOuK;JA&6-319`rZ0vbj#^HkSw`Z9QI8>C^37T6*lmE4sO(K44qUqC zu(5(a27fnpH*QJvpmlXS>W>K#?x7&wK8Z1lR2jEIU7B*u&K{(!>TMbO4@LIzd6t0V zT+&BJ-X(t}KV9>J2+JTlm1sma{{u?}Zrru1hmbmc-T6%+Ba6Vw&BOJE1KEx7VBkgr zUzbH&Aelea=4r1z@<$dRXr1jTICzTk>cOJK)Fa@&*!Y*#@!_EK#e}KL1{M8ywF8SJ zNT0La!s2)9z~x}#?BuUUHk;@y`zOG2Es8!-wBU2+IY8p#`Pn-^iN7QF_ccEUw>~ES zZMW$TL|GZzGK#NRU7nf>9=p29Dlu7`^eQb+k!ZFE^LF^+mH(27Cnt<3KW<~7N0wZZ z;8(U%w3h$>1 z!GxXeipG)I_g`M7U%%Ip(50VB(?qgnmr1O+PHS}_L>|B7Wsqtpbj*C9V1?PG{%~n)+4-OD>0grb9Qn6Rhc*^={ZdUWrPn%+ zs9@Oc>upkQBSy6r1U?J6yueUr{6F$JFFY!3G%?11n5E#7y0b@W^yDQN z1(`iFn|>lm_)y;RjoR884R!uVxYoYT@>V=fo?Vgy-`;AW^#??En{3XMJ$(T z`c`|ZY;4YX#ut*sTm`;QB|GXd0_`}NW0jj} zVI?dhIW0_+Vwz~?xe3WEk-*a?mq>w}x4uHD3QEJXUccT9WS`oFf%{n0n5!!25n3v{`P zSUw}M?z4%|ox5qFd%w>$_YzqwH)Y)T&Wn80z9v-R-EU`J7V&8g5*c|4c?r{v?~U2v z(+|z|Wy^k4v>5KjR$z^T)va>^pK!?t+H}dJv!@-QhrabB43kaPB`lN@0V@yR@w_k8 za^13-sFC|lP#GpPbkLBPVO(l~n^>esV+Bo7eR(66x!!o3T~8o#`3B$a2sVDG^4P{?m+)`}cb04~C~?_Wehuxc9AU zukCw_-YQZWGjxtFr!dPwFP)z8{SE@|m7W1v0_n4h45tgX2mb*sBmRHO!k}s27XHmn z{rP7R%bWq_T%0+Nig$#+cO;z6fj1cm$;weoR+mE&3~Z;=AeD0Eo1ry3VNC7{PWFb* zxokEKn#K)ROA2F2^_;TN_NcwcR=v5@&U^W427DV=rLf^X2Cu_Dta}VC&vfVcv)0&hc!U?0iCft5b;}tE`u&{v$ffz(XddIl2q}YTEaC zotM$~88)H7!H;9tA{%b$kp&@nAq#MZd(#{v>LEAiUb`d81+{b+40a`2un};sl=N%y z>nyig01(T7g^bo~P4HSQQYb36)3G*iJD@S^;+ojl2Ya@^1peHg^^LfVzc!bTycE|P z%fnhf#`Or-8SGyuxAie+HSzLp>CG^{<`HXy$o6Fqu-LOiK_iZG8~Il`mV%!)5fH*n zR-p-NzAlQ`D8I!E@l7z!`WwfU@-$UP<=kLFIyw;A*}%3LW9~!c$v18%Cbn^HBrOIi zANSl4eTT^r)6CSK-jb>mImQ>K7|j=P(RSkdM>U3PwCc8b;_P!EwKgQD6m~rbisc$~ zk25>=3l0CIr5-BFcR~RxMiThrq~ChBRNTl~qEdiXhu^yhnv3fTV7ON48U87hMfASV zEJ8cG-1$nV+NR=)!clskzd*>4ELNR!$oETKcBmW2eGSvTu6z^CY#(_8>HC9e(qEIe zYBO9ulCjh(BjiQ)6&PAy($)-VV5c1{_fi=j)6X(Nj#31gPo|u*t^C)5vYP8f+`I-Z zwH44ApqX!XD|&EsBA@l&5Vl1Hi#k7anIn>w1tHi1VL_RNlXq2jCwnCI_gMW;B?i1I z@x#G4Q;FqUYPQbst2X+n@QC`@1wXadm7bcFKM!$zggDZvQLBST7# zKy2AlEpCy_cz>ZpyLu%1sE~tn>E8_D`9(oFhvfmU6Ksl>)+DwydU)EKusAjTD(}bPWuv{prn5=vAq(INnbf5r9=N`yR4@DS^b2| zA%-cW-S8dfdy(qUieIXZpqT~ZU|lcST{Z76ZUf7n#ypZlxB1q?xbeZ&1sbkDEo&R; zje0C>-~D45&WfjZy+OtNBZfb-!GuEAj5Fkul`s`irgqNKQWg<1qvJUo^LF8oaZ7ma z5u)Nt*oDh*YCh;f$)G_1k^b7ISuR!5H51K@Fr@iw2ce)Nv>0r%FM^!VezGrcn->Dh zpYY$2rFgI#YrFX;1TZA;3`%9@HMyBQNE3Zb5O9uU>#~F}SiZ^rzz6HfQn@Nz#6a??}$-a|m3q;+QteJiGc(;>_LJ_1$bG_%Xr8;2K~!1v%FHYwX9G=Y4kP z!mhLM=05cX_%Emrog3wJ2dkO}H5{X@G%#+iVS zQa*4PSjoCKpcX}rqH3n&hprm3z^l#K$3$pt@`kgpM8zvPz70XULDfo|0{MXl~$e-+s!7ILdr`iM^j4F z)g2#9_d+He*u7JSaJ1kJHaDIbmJ=Y2zVvhjMi@}>#wjjz?#nHA7EyIW#3)6Q+}m}0 zs}A2yTw;He3I~g5XJ$+{p*9lPBmPK`dGGA^bBTPgn{bNrC{UM1wP$O10d)vm z!KdkvuZ9Or>ILNT)fZ)Hkxz-c`@U{^L1h@dqQ3sT$^(Pbq{y4oEkEim|IG6BsPUgK zEar&Wt3QkC>A=$crqyk@13}00b<6vR^On*JzhOsr?jUb?Z@>c`(~8P z6X_z~-7W5!?JfM@`Y-fXk40p2-WUF~*!~0nh!hMb3oAsIOW`*?0mn^VZW9xyi=PYo ze5$3~Zk1+e8s!IK;biE0+?q?Naj{NE_S+iQqMtw8`(s3%n_L{s%nssmkAx8LG3F}4 z4&;{;A+&Ex+{j_ixZ=eoL)r*QI?!v8*e*NMKq{|CHFK?GwFzjwBt6_|yyw~@ZmS>b zh~(i@*8f31eoSajbII@^p>?Pyef^noXlv^=`QJ7aK4cGQcGsqBFr4>Ov>v6yC_S?c z=5S;ymaA)DA1V`{Rn!Yc70bcy_NwO^cY718HH*ntznWh+8Tq-RlaIMpUgNm5w_Pm? z6*anBF&w6c?~~!{lx#>X{Nl>#O|%8qa=s;lf0h69)DG?tNm7DJYSRh z9tu-h_gN+<8>N+ZQN4p2N z?6VA4{f}&vJ5&6m4k~C^L}oDrTon&3FFDa}&Zgs9PHSDWal2eKiQVZQlHD^_7I)9H z!{H@Gy9}%3nkj_x8;g5Cvb#j2I=ck%l|!Ul06AUJZ+gqp4XZnJ1%=4zPfpB%2Nt|c zm&xahU*$)5ve)H)?K{d1aM_uvv6K(v%#t?Hcd;nr@285L8eUA8k~!<`h$nq=Xb8x+ zDcptYQd^Fo1`dCnB<}R#pS|kw=fOb4@cXBC9?zZibbSnjAk8T_-7BARECL8GG$d$E7jRNq_D_6cvZ zL*Tb>nzr!LQxTedT(aL8dqmICqWx{b{fgQbW#3sJLZec4MY|lMJ`-tvv5FV6tjBGN z98{>g0-9IU5}tlj>Tnh)89lfi`xE9zFk}E2Xun#1@8_DF z-CK5MMLoa1{qowEiXZbf8JFzWtIg*ZFV75HCOHG2vV%owOB1(ScYjqSqEsM*Wr`d64Z1l#f9agocsj zKQ8$h6oj>WcM}oFggO^^{5o1S@sQ1+Km5e;!ZbcS5Rh=z$|5#tKWKa0DKl4?cU%b# zl38SJY)Ys1V5*V>@&%u!qh9-_01cSZZ@JK9AI*1$>h%a(Jk-1Z-51~TYvm%K7MWz4 zuVz@m_-*|o)}R-4lDm<75%-RW^J0|z;mUGT6~c#R-l>IynNy&?h&M-S+w1`^O0J~$ zC<(4yb>HJ_n&23nAOsZ-AhwQ#RC!mVApS^hQA(MY2THwZLa}(bf3^8*+@>h(BWm+b z+o4(g+Wj>X+Jw3tpi?Zz>4~#}pETzeEn+C!T-;}T_#V!~^HQM{+si3SfE=g1*TiCX zT=yIM-9h(%2h@k2k>`+Iy5}}P8YTQFd_T2h|BLvd<@uO8b6VVlu#T)D*0nY)p*x&B zCOg(+(zE0UkbsX36SI3-{eza47eLvxb;FwYonC)A{9k#Mif2BQQjF%_996z1_&)E{Paebf3!FMLLeC{o3tMh zoyYu@%gQ$FC^4T<~naHO;o;__7#f?Ro?Gnp1wIS)%1GW>XsiJ z!SxrjjBMa4>ye?mHCp)lbCn&g2nNHi@wv`o6P(ZYM)=)>y{PBd`6lf?Hl5O-Vw$2) z1RsGoC)#JGkGQAB-G1oqQ(OC8je|L~^j|j;+Q!WP`KlwKFjbm%@Z>dgNa_K+|GMY> z!Puj4q@DshGrgL6Bz5Gj9if^2je4$qoRGJ?p_)P4!x5Fd{`%h05b%qYEl0FbL!Gqs zXkM*Ops8WQ>Ucu#L75ZCY`G+wdfT3K;?=~qjOK}zLsMcijwUo(WtkPFrN#xG!jv2fl z{#}}>k=ZycVFR)K$H@B35w&YPu9zT@S?3PGpiKI>3Zv*-R)A-#@AZ?B#QTufOzv=Qn`%u4XVm!B6X>(Y zKnvv)FgyZWWZlbe{kCK}+>t}fi!t(2R#Jd^z;AJ} zKPDQz^Vx~u^hN4YyHC>Ego{NVVr95>|4#24N)`!%t86}L=0lJN>XsE9Z?4O_^bp9k z*$vo=9~IN=CkwAd$37sskoGqWABpVZhAP@ge@mnWrf*DCbg*oh8wRCsJgE}wu|G10 zl9VT{N@?YO{`xTfs}))3v0kUXuN&pCp@6-MZPKgIr~E3oRaDfo2{hKK02muYY(`L| z#H7N(-PNQGx9xP;u9UEQ%7(>JU&VONB(A|?uPk8?;T(T~k`|L=ZyaqSoRsccYPp>9 zIAA2vRYW7yW$x!8idZ_FZY7w9gz-PwPK_lda}RaTgK-M_g>_zi+9b@t8bj*0v;7vs z!?SyU)%I@^!0qq2{QCm-Q@ix?KW5uIjiXn_SI%P>WUwcTojL%8@{Ft|Nn;Uq*hf*$ zQ;5T&4CvJ1`wn-f;P17+xTLF{WEh$Hi@56c9xur3m-lrad|3=v6wMhvc-AJOypTVy_IJA zrab?4NKm)4Y3ozoJT?y>n>7VgV)&oi2MHnyZg*zhAF50(%_t}&3bTm9vJWgEAhy`v zOC_;wk}TpE#2F46ultJah3J?oXwqcRKj&Fa9BOAc$SxP**%xs3W2POEn@=FA8)@z% znO%ItOQ>g@%%R>^q(JC#l3psVAU@lm?Vpuh z0_@EUDZMYX7?!ExGv0enm=1wvASCD{w;DC|J3ekBIrCGw_G7uXOw9rrzC;!TJIXEO zbR^H8ExhrDObKyXRra*a-rxIEq={xG_hXJl(?D)qVQW-^N*o)&3G=UlI{Qa2>R`X*51m2(zzrb3)z- z>$Q*hkWINaj?wxfOfJG8Lr%!5w5ul)#wWR}wk{`Bn5chx7f1*yUaXDOrc8>DiDVTY zB$p%kCuqU#m6#ckil6lRbt*1BT^^}ymND_`B`QgxFXPA6D~EjF{ec3?0~h#Hx_P^# zwk<2OP9278U0$9#a;Z)!k#JHhRI8kat9Q#OqAYKj+T|XD#1HM^(wTEX-96T6jMv(4LA}bLmWrWmIh{S!1YYsoJSdcHz}~rzTBJjo%k1TB?7| zt-nzVX0vLuF1#`aUzP4ZBA|gh7-i{-<8SYQI{K>RX6hT-)0l9wI+HVvp|$#RIo4Nf%Y}@_>h&c;Uk>-2sqNsy{?WEJUM%R6yU z*jLS{&op8{IQrzC#xP6y=N^9CUmSIB%a^#RcC`37Z{_I6u$2HMyD2g5VKWgl9wARb zY(SM%6Yd0rkh%Sz51+94PKR?3oyaYCI34Ro{F& z(30%PIrMn?;yx9Ky)C(2!D~`|$I$-BdZ?X?J;v>2>{?|d%-)~Im4oFxVclNItGcSi zL7Phz$zkMGdw==Vk?qp6Nd5j-P?ic>>Iac369$LGGC8;2t+J2en-+9-7Ttd0FpoHzkw!kfxj@rU4Yv zZOL{N1VjJf>AzHQaq%IZ{f3AP`{s)q`Q2x_+NEZ3?_iW$Q%eP7D$FPgA-+bAOwSD|fViE=H7`lBD;x>aHf0IbZ^6~i=Vdl(t&PmG#; z`GMe*NQG!@f4yGZl8erAj(pBi;M7?v5=SeIU;qp_Yujdb+}Q8;;N5sH>;_lJRqVK>r9rUFby|FI^3V^!fHPD6Rz8tBMRLv|q)^`y zryx3ZcRAT5fEZGEt8XYBe)D;LOWzUBYZCwTBg$*g;m%H+zNrW?+oVX+5Oz{DC?&ca z=Ry`biG7TN;TH{Df_Jz6o|u|85Vc!(c>gu#3`8U$5np5!C`VsSo{Bm-G*XWrp{ftE zl$#$R55)`5Hsz|N5B7fHRSy?H0v2Ro#&0FxbtPGyk9y~ik>_tgI6{r}_w?ki0Y9tL za^kkC58Uzu&o{>Q}H8X#!j>0N#9 z+Si`2Uxn4XuB25+URqjXa}GC7s3CD&`;pcyI;FEG$@*Yq0pZ$bR8CqSavWj4NtDl{ zxkG%v4s(!T6vmrOTIP0#eO=TJ{`+f3M<3#1=~Nx<7tx^|>O5~JKtCFOf{SK6htbe@ zh_4y{^KwJp!VoLn?8_|X9EHAm%TQ<_-c{Rxy8nooTE%R!^^@vQG(K@yMKIDkM<1tL z-jF z@3Z&SFjJoIp*Ng+q&lO<^5~DMLnqe;rxim8A4U$D#DgR%1oiT<9Rccv#)({PeRc2v zU#*@o=WqOq=Qm$>^kMECzZ*RNdSB1BZ17Ikm2Z&a6Ns1mGl!lYs+UqX|Lh13>FJ0_p69!9Ceq{g&g)xH1c=B7 zW%0x$TS4ASWk^22G)L_6mtt08MRC5SkCKFAxA`xmQ#2NE0yYr|NzzH$UOL_6z25~x z8~MYl>_Q}pknO~}*~IbS-}OO3&b43f+8Z5x=zdDR5KE}kM_PJ=nCvFME}Qw(!Mys5 zfZ=L^WiV~UwiKP&2R|ZkTSPUwd-|QWb~(DEm78|4RZW*c;xo*4;nP65_|~luK)CM! zoflO!)hXWZ_{~r#kUINXg><9@*Sipmc}gd^jmGyJ(Wg_1DuSESzRU8X!A5(6J3;|P z0Fmy9fO#MAdu;}^{3c9Ssb|A&F~P_`2QKW4Wj!%Jo6+MRFU#m~NL4axUfin)D5p}1 zn{=V~Hpm?Mu52}&chSq>v$34u$tA_wbbOwj3gB3}w97yHiu(zhe)UMNI#&F zOS#_Htm**N^e9IKJ)kvxVRG?;xFwY*aKi0&w(j$62(V6!>WiSuhmFVVhn|cAQi)YG zJpC*Komr}!0*K`GF`ir&?ykz%v=X#Dl9SO=IZ94;s5&8u;IpMWWzpa0BPoUg|l znP23^1axafe9o1}fQjo4N*4rOqDJ3)}{ zu#@*)mSuHe*f%Y}vZ`UAgZBlicJ|oMjz?SP>#gaRa$~)hyi^4HrHst4O>g2-ba@v(TEd4_$yP9J7G|bkJHebdV!wM zoW4b%BukQ*eaJrX#zgP}L0afln&`8kSNjWrDJFTJcfOJ`K8;bi$7f9+TtGzJ%WKL> zD6Bt8{ak89Bd_|NEBMCtCmLZ$O!3tkLB!+LcsDT(U^Td(bs913IKO8y&BBsaI!NnL z76pzDXI%-Dm5iX_=IyaKx)S#FI?stONNiCecFwN+P+gbc6r#hjU3m%EL)54+AaIYF zEp#t&bMds_m2}fRfpSVbUtS+BJFH~XB>g}QQ~5JD{a58a1Lsrt)b)d4bs zMg^+V{mY|w&+vV*<+o(`Fc7?hl}q@7jOy!*2hQZyp3JMN4X<$|+x+!a$j^nEdn|J~ zy&`$qTgG!APP%>H7$cnR55`xY0)WMPs*UeQ&B0*vA4SI|M?~f0zARE&xR+ z`nvO$LO@_s(}w7JyEWXCc~ZNXq+Ij8RrvrMMtl?w{Vx3kOvg|K#9q9)tCRzx7w?UY zVm!8HkNO8O88Nj>TUoHBWjOUsSZt)ueF?^a z^*&FsR&WTpYFZP_1Y&16vKcS7aSfCGfPI*UR{$Y%7nC>^k8PUwS~hA*_MTC!-=FSn zLfVskBGeUEi#*b)n@>CxwfU-B^ue=d9>>QMU`4u3Ma{pe4|enNxAre{E1noLpSA7j zz#Y$qWNfCnL9N&Rn){GB;4CiVcc%w{G%Smy&LEpiTI!4Ed&f$bsrS`e)@U?p2LT88n~dRf=HL=8$4rBl|TZu4jGO}IvI1^cTPvqhnu*+;Pymk779)?y0X2jZXNJ` z&LMATr|Vr7Mv@k*G(6F`uNlF8C5y_IdUfsd-y0x?;wUu+T9DG!zPQS&n^)>}?Dq$9 z{k=I}L!<4H)OH+THmbJ4Mg9;Do?QP(+3cq;*lf_@V5KXQ;4UcWsWtjqBS+VsUx+wC z2&eRxODu47k&~W_g)zwY@~T<$W3XRx`z;0;u|?MQi#%rP(^LXVeojy;Q-25&`F97&J%a^>6qTQh^T|nMi&GjI-?9i)I@Ki4nfqINl1)7`h?NP z=);|Sf4_VG_gVMx#`1!-SjYM7v(G+zPr=;10zwsB>dXGwmhn+m+v$Jvj&iA=Y}a#( zt@@i@CI$7qqou#dj|6geye80(HrKugujZ?a;X6(I?{R~as3K)p1et{t-Fmx5#gcXR#rM2|U+<8iZ3O!nCR7e$D5rz4yJzWR9i8xKK8Aa5$mqx{ z`CsqPxSLq_QT`E*jNgM;+wobyHPQ%RNVNBRLs2Pg=W9YxC*gN243kYKfn0$<{v1h08 ziNvFyuee`a8LrNzDAN$?J<%qe^=!(`~>YUnk#xqs#VUb9WhNRYvb6rlP z9>g+X8^pyPR9QHBvk%%mfxUgvOp{=CX!sCt@^ylT!X%cBVV@ zBaTW^R?qPjTA(Su?YnIvDz%AH9k}KYYK1H0A94-g?zOJefMcUg)}z8_9#vPxK)p3wLFFIL)#-RbQ<33ZvxP9XrD`BBA{$JmmaC z-_?7DIoJuocjU67);=Gj>mF|muut|E2f5FR2#T%X&}K?6Npjra=Dv|7)$mWa|>9?!t~B>bJKIlv@Yk4tdl!5yV`@;GmevCAy~ z;7-*(Y;Z@U-g5pXBn;-W_Tzj>Bct0rW20&vC}A59b$`*rxqt5H{zh9NL)wvVk$^8{ z43RoHNz3K4xw;SU{?u)dOZCX1^$@r)aIBzp0adKk=gN_8{8};<{beh17bwuzb*3UO zNs1^XeFSGep*i@k8_RoXfj%w0l$RI{wMbdw^2opulYLkiczc`6b-M{VDpC|S(?oxc zXzvR113Pnp!@!7Ey7}I%S*2H-j~kkfPG@>M@&3FY+oyZ^+RkJrM|$z;&Fx)?w=*7# zj4`moAmI_f`NeG=DH7k^FIvLR-KL!nbR@q;C;m311@N&m3^0{2U)YKLVNK~rbsTB@ z6R*VU1ZtYp#MJ^oViftY>%aVn+*~mng^c{V-bYm3HY6bxJNK-pj&HlQU~^gMDP_21 z!us_XYNb-L(zZf8*;Vb_wNE65+!b#B2t$cPc=Jgk!tOPw@?Y(40+M9L<;2c^78Vsl zAAJfX>@ohFH^`=(omf1@sDC@z_7)x@C#hK0$QDdE?MMnU*;nT>{B*pd6NN$fcfSca zy;(mG;6G*f8FbgFcc8symK4N9k5-g^l_33!+t(}PSn2A$2Kg7Ud#$d-ftx#4WLK4B z7ce5;!QHFNXP0bbeo4G)NlY*7gl{0;#D~f*h3@WM;F`IDmxg8)b+akO1$kaZMNqv> zYVf;fbLEh@xAWLwxq96l$=0SzHQO&V$&mhmj9q4vGX8ei;XsrWmFBkM>T?k9eGS`Z z@Nq0_$b5H`ouVHnRfZRlusxj^kB)l-jo*<=P5H!{BKGOq@zPPn8#Vn(`~{$bUbue7 z-|uwftPHSgozJ(QhAVPi;JPsw)8qh&Ymqt3BFoU8CWW4VG;Cl|yBkBX-*R zh|{s`v3(57UhjhwW9>9wcTK*0pO8d(9WL`)lewSr)ti^@s;M(%MFuJBjh}{v_h;Fa zT=L7>JnY3hyx;rzvxzU1=~v8gk*(47^M)^^m<&<=R0`+l_geGWlBHYbX20vM`a0iJ z{B({1qGZ7y{_^_bb&{7;q;X$Y9oZ|Ync`df)JjbA`oNGh>dI zPD^@gE3^t0eG_sglcApPRZ(g(-eJhTvlc~|{xf;k7*KB|sQa0ZWlZjNu5LSi(8oDm z@t+?p)POBWqK7e;;9A?XgP6{{T;~gi#(;f#-3wD~^`s{m_N87-UmssVu#uy%;lV@p z!=Z2bRCsb{axOEj6tjuvZ}Om_!tetQ8J$Kq9itd!P|-`(1akSSHPg zSkMyy+Jh<_r`Z-7ytn;rK=ZVdFErQHj4xlvMgwsd!6(#6&Ygex!oqCqyGGa%&NTh*rU*m9_ogO0X|YkyuCAWHTJTF|M7*v> z3WNXq1uBw;V{fSIBH;75jg4H<8RKq7L1+R_GZ?wH;$oI*;$b^_x?peYC?x9v?MZ$sQ|h?heQ<*&h;{HsZpV_V|c9nkTll zq-ojds2p-$db;bT+3PvT`3Jv$aM`{6&-GIX?JJBE2RU3H4Sz=z3j|Doa~TkSbBlj$ z?z`-eq!=@0k%e-SJ=}U%4oTd{tcH3nkHmU@f%+qr1#M6KK8_D&7etC3ieq1!-s1L< z|L%iK3(KyZhtc18&oypaQD{RUrcqp4{Y%CAw#0gg3C9s$YSKoO@>eFVYrLcCr>$l* z^e5u?^$wjNrrNN~yCXEC3?u`Q+Rl!ci$hYVIdbN4fo{m&!WMf8eP7GBwezXF6U9Ov zV%7(T9r}pGK&%O6h;l;8Y3?<4a8@HS=7GG#gIPQ9{HsYZxt#Oi;sC}+;~tw={|!%j zxWq|1lKBIA*y#&1w)b|A@BMv^bRQ$|j=_#>I!Ngch}SSmGAYL|_kp1KvY(lU8>9UU z3CZz`RUK@tc3Rw3sChA_DRw#M_u|)VX3C#*4cL)%(@@i)RgEeSI%L)Tt~;pOxB7RU zgB&Z5H-N7`Y&}h}H1%D}#F2Q2>*tZPYz#?5x;A?iB;h-?dXjRag;@Mt+#2#i(&K|+ z=Fx=GRDLAtr}d2MvQ!g#ySK)m_x$--XBWd8)YYnU$EF`A;OB>R4yK2;E~o~sLAfe* zcrP|De|=h&jK?F958(HL+<3GmmOAfkF`~Wepqo_#h|D8CW1yBDa#6UwNktR9+ z)$_M?$1+#XDKhl;^L9UB&KBXA)3q5)=fx*nT(VjiRwC*0*w%60FX+-l-L4fJHsuBxW~5=fi-rIE5-v3b!2 z4Ym~RhmOqu{n^ByJ4DYMKjtB{sg{WmzrPBYWd_m>VQl_*3MI3*wx=mFopw zX^N3))gw0+ymjmu`^RQQ&Zr1{LctM&9Eb1lu64OZuCt8#A(Hoay@{tPo2j;?xdsvR%n2B4=YT-O3PjxxHt z3Ir$O*g?|X|6oKYrWEh}@vo)-*WsTys0+`f_9Tm4B!AVxnG{{|J&TegN_HPh8unne z<5|AZ^U}`xn!VCruLFPgfj2(!qmXIkp19M|sSpyG(Q+tontR?`^oLMvfiM=n(CeAm zBTsKc!C9W7hK_ol3)Y?GGW<1$B)OaZb?ulTxkEC@`o!8rzIM7!gF;C5H(w*iqRJ)74Qpj`7+ntE@ zauJ$wu2?AP;#{;4jDQaM+t_CAojT|yJ{N*Q!cxhggcaDE!^Tmn9AkrA`W1Bpp_$dr z!n>$?DNH&4$RG&7H#@<}Y{8spDa!ca$I9w{@EbpL(J$yb=GODu#E$o)Q1ZO6(CY1a z$cAGqc!ToCnZ@v7&y35Kf%{32_PWKWd%oZfUX+8VuKOSrodazheSSV{+;lm@*oFVo zW$9Ex>b?U^|BuRubO=LHQUH|^#XTB`l^6@f#tP{6LSI(4-h2>j$Az~kq>VnA<6m-T zKTp29YWL9kbWn@D0ya$7!h2+xt9sRnBT|zi_gCw-O^txlGLi%DR@&P4i!x9TLi0OGZ)E8|Tw5?A)Ds?eFNt?Ig!_^< z*IrnKX}vMrAQ=;pLRQDy4>?Yxene$Y41kq+qIMQN#*Kfjf{Xf$`czB2ZO85#i$6^> zA_cbVGOeyCC7WgeZ+f;oa-Or-Tc6I|>OLP5U(uHc25T6{Apl$^fqSASEDsX1pzCIk zoR|5b8D&B?X{nZ_??u|>cw|Rej2%ID`u9p%w>h1qi0K-SG%FC9w_g~{N#LCEvb-hp zuP?s6EN$FLcgaH=RCp`N_=VSzBs%)|Aj4>$PZ9S8E7P`5v#LAR&1ZOJi(@_EUeuvU zq}*-G`7D#qlrkP!(@HaUQA3)XJtRRB!^|w%9^F?`kdU1fqbsnFJ$!I%a6mGl^Wj16 z&xhK(Y##DQeD@}vz}GDsnqzk0;T+zd-N(EAc{ck?edazG`^qqXM#MDnGBNyA5`Q%7 zalMldt2i1lSB&vGkSbGCvPcv-I9d95uqn$>n=W@%uVU*#)C}oFCf%gT75yMnA*)Ok zB|ajX@s!rbhUB_+rd}Kdpa)QiZ9r(j)z6XRgJ7+KPn8ALmuo{}oMJVo)mtqE+K*gA zGPVKJpr^Q8l;)+R31AewFWHpAw7yRI+xOywXiiY3=HR#18#?$42Wt)EdOjBvRyWgi zpVR79BwV_L2YY0l%4Pn!izi+n}*s#bXnKB=JCjPbXKlw8-`ZwMOPugE- zzAV-dX-8Zit+tp-zYY|t{p*52x|k?WnX`S^7YjPp(D2yK+&UH38<_pTai)I>Bc)b) zbbyPq6ST^x4_0s8N|K>7ZSzB`uzkxK0`m$yI?r+cGns{)_DR0<6?p~RC>1MGm6ke! z(>Fs&PDFsX(NC=j|C~ypKYeo-oUdR&xBatrWu$gMFFj^T5I~ai2-u|B_zR#Q4rgOU zDm4b$nn@1vnoSlq47R)iF*oIM>^eN{Tj>rZwbkWZg5N9hF}I-l%5k|g!oPeU<7AV7dUp8tba zcwFpHp(~8`%|da!WXlm*Gr6KnTXl?{?(s64;IZXK5cSar?S2IAHh_Q)?;gfzU%i*)=%0NbNLfXoz;xN%&H-o z)3fK3!Qi+FKHYh@)TWUVVsS{Q8dXJ&RY6)W%nBQI2dz?8=gC88?Nqzz9U6NqiqYfh zYq>7pCQTkboyUh}J9=yL(g0~TjCVj(%p;5H}7=14{=tKG% zxOXSUyO$N+p4nn>MfF44sXnp)6U4eFM`gbwW6e0|>Jvbx#Ng=jDAVGWtB}XTkhNsA z8c3|m_2)|JpEZPwaO-9gJY$D-`t@Ceb98|de`nH=9KAM->)PFR&!!;uP}ie>VQ=*c z* zOEOUaWLF~eXn3Dokl)4k31d39$*H2Q#6KAsRV05}uk%1iLGo=l|3No@_tESI+l-6= zCwIUEk^1Q4=k1Emd8+cEYUZtSX8nn?L1BrNF~}C&1!V+1;Vf-o3Xw-^(1eYZYPNS*i`}|5P;6 zeucj6L&Fi;aU-9btWy5o)yjAdnOYA<`+>C>cYXe$*){Q%8#HK>9E0L}!@Hh2`bY0> zCu%%O>#@=boy_DzSfq@;_pS!U5?<-1(uq%Iysaz=P8SZNzc816p0GpdV(|VXr@RI{ z*g(-`_OV?1R*=Gbw?%^bL*k^>wylCVLn3=jJ zwo;^%C)K*{Qc=#a^pp3K0a8yxDG~&9Lau_kUy69~(C`a=o8)i2Cd)uw4?xnjl}ioT zS6r-tNq+8f*u&^I(xm9tTN&Gx`I#<-_sF<)tA9VF|iCqT>;$0$qtQD1lur2rM{V;HtbyniPuWI zcO);TgxJ0nRs_CZw#=CO40e})CXpUobuhnQ^$@}U(lv8Sx!`*XoIo`xDpb3>l>f#+ z=Y^W`3L!L9!&h$9F)g%fKjoP>a5V%PH{vq=WBu^nDSMrg><9TMHN8s-_~8m;xW ze8_g0F5OK2meIdo(tfL|oez$Hg>9!z`xL9e<@vtd_PLsdHLN`233-X#-KxAYT6bO1 zOYKD-1mM{=Y1E|8;J^rX+8A6_0FWWc0Lkc zYOJf7_SGjiKsg^3NtGx~G)x@f`xvGoka+M^C6UeUmZEok>?iAAOLGEuRu1<{Y)SBM z=T?m$ZTDRK@)*d-#}HzD?I)7&cZp@aS>FWTp@_xYa9SX5f9v@gJ=rg5mi%a$`ut~W zR!}{a_VV#;wVI4|L(3tAOHcgscR+0ub&ra%FL65hGS$yN6elXIM9QirfYi^W zB6?z}RT+9a3Itvs0dA3k4fP#=srA?}d8U7yQ{sC#=Zuo&kT>F?DbY zA&7nE>vTBmEStSl-TW$(v$tNI?$L^Za$}(KPlq+1D_B8emJ(CXd_4$!rbf8k1Fj46 z^Pw-J#s!&U>{Yy#<5{A;3wo{08CSAi8YYp-7nt z@}hx9Dh(x-pH}r_9e2Kq&5d)I+^YX-*U2!c+ji*sDr3ul*~%kv+JslWMO_o!66S1b zLscP~8RA8pMolzy`37IxkR8JAl_>JPJ)P?K2VFB{+j_sq(e#2BQ;F_pTj8Eq2K`R^ z`8s^R+EUYg0x|4=-B!2lCMlm`dtW7l{OI|F3FO72Z|%Y8_E7gvMo&GRZLEw@WH>rE zDt5Is5HW6Dny7TS?G(016-GD-t8mW!x6%W`-Z1z?Q~com^WVCE58}QYz9by;walM` z5aMTLH4$@8tIGKk0<-JN(vZ;srQ+BR%cqx7CJ{C)>xLg0YyM;n9Vk2;w#YZWW)T{! zub=Cvfd_g8C@&rFtC8M?KO=H!nC=|qKMXogtz&YrUY@z_H+9u6VoxXM(o!zgqXzhR z%=o%-YKvA!2Y;Y}bQe#gG!OAqekWh8KA)~q9cPYpRZE;L29CwF@j~-#8{8Xz1yu#F z*KapH*^&Hb@hobmb48-!r*w@h?l7F=mJ_k^5mt^&UYw837eE%}r5y&9=?r?fIAu*C zH?vn;E#0RoF^A7Tm+duKJL*1OqsddEOlXb4a2XENES`lj5H1)NR~Cc18kN>~y#nL6 zcUd9x=~@EwwnAl2_~UC9BLnCDq)ILIN4@+`1Ayi!hJs`|xfTOW8d$`CeVs&;96XAC zWGZq19YaB$fx(pMxx5p*%`5h2H{z_SF{`1pU)x3Bt+v272EAKLTQ38*H|n*b9>4}H zY~4&xrQ@u(yLkP#!bZfhLDtB)gD(gw;8D#%8a@-g2Et8~=5>t_y-P`oMuK5$@$BpN zP0*Li(?FXIxReBHcLae(SZ(ZtJVEKJL!rB}sL4Rs4k?!iKT%I8+$l96>bEOc5*v#) z2K`;F{c+ZkA?27+D+Iv^>n)WQGUWC9&o*5t95N+CNmd>7oiVKF@;6^7VHX4kinG#w zQ%skBc8fOs-iuowueANAM@BE@4qR?(h8`6hM-r7Znyir#9y}>4{WrgzXt94UoCi>; zNc<3qK=wfrb+V;s4l?VjE^1+-{NKo2g}fPJ#jeeK0G}~0P3}mVn14Z%R}P!jItdI! z__FU??zy>Hic{b`x0w4&OZb|53r8HwkLE(UeHtY+r>GbtQKZeuD`m-HzxwC>Lxoeo zR^wIk4bOEl>!h4=Q1r@Z94o#|mk}-I`35q7MTUoHQ6T=~*b#BC{bYY&l_}Gi%40Eu41J)FO^a?) zm+L<{u-EXDU&KXhGWAlUL*B94Q0~eo3PootqkP;#9&!h@AauDgU(JVIJ-(|a z0KWQBdJ6`L1N!!^py$3$I`hg$$2-M<1szqQKViO3`VW$ld|)?WgnN&IjUCL<0@#|A zaXa3!2-*DY`@HRYwcFac)GF~JSNxkrlvH92l$fgV4RUQ!^h##QUqwgJf>Ku?tgM{C-6W7MEWx~)4X_tTIQ_=ie~Gv_MD!0Jl0g*E)f>b=t` z%cQC>mRU~mZsk)YpuaAct>4i}ooZB=_ff-%G;!f9XUD4WNih4rm8l^Uko4cO{QGI1 z%4-;NBD(2)eCYaeUv0qGf*$;-Q?ewhsU$K-P1^k$Os6!Cz%9){C?v*UPuBWklIPR1kc?bf5^!3=!`RM-T$JC_?Rs}_XSP0}? zs{r;ifmS`Ct-sKrH9I^E&QdeK6|b!$7$~LBoKHqIVKW{7WSi#qWEY$nENk*H&KZ<+ zhO;~=^e?GJh@^Sd91lfh+3u#H;t1pN#7#$~nV0+11ZSFW zIce4!??-B@fVAH%AB+DKq@Cc~MNthyklE*;Xd7tr%Fg&Fj4)^Oxf_!$&>i0YERuD_ zq>kjbU@+f%+HrlvX<3e;8&)twN7knB6mz4f)2E*5OVfH=u2v;V;0HLdR%*2HSM=LJ z2DC@Q?f{*2Vf*9-LTg1Lt_nAX|`jpMeR`mtBkn2>7-( zF;%OM0)C=#_fy*^`n5VJwaZcXww$x{6tHXg}jC6t~FH;b#+)DOt4@2D5A$%D0dwFl0IQm0-=B7K9ev2S{=$1W?6U2j z|Db&My$3B4tl{rGU;G#N2Y))=hDwL+UBqv9O=}*5w4-^A!)KoI`g8%Y8d&_jp$O!n zK^Yu($(RTdhuy;JV*};*u)DOAn$nOTBBgK+;#{s8Ph4I{@vWnvc(c6id$w6XZNR6D zo1Hov;FHA&)-_hYkhvGM_h63-pJk^Mq`s6s89T|sN7xPK=;=?yDp0ozVJpiiW8H=z(KsG@#i%efk3V+W~=gNFRgE{zEjk_)7pQ3 zcw0nsN6Ic>t1gU91|hksAfHlXy`RH%7Fhj2y9q+%Ipq*_UvHn0*~ATY=9>{jtn?ugchywYq@f&7#HaB$|3BU44DdM%v-{6VG~yo?wA@ zPW2sK*R(?)Bu^g_w7SO$XLMe{zM>Z2*EzgHg)dJ-X$lZgZ?StX93b!6`u$?ZfwiZY zwr8ivpyIoN|6J?3Hn`5QbijsivXGpz9~;XWH(@J-*H+)WJ;l(Ect~r!aLU_H7dy@{ zmxj)oAHBd5i(;u_-JrL@B=u$#%zp%MXljGqv+mx$5bsG&8Nd5Qs2yU2jI)q(D)^&P zqyLLU8Q|<5zcu(JTz_ZTyICAJRNvO2!(i|h60coNW2OHVZHEP3*a|)c3hxI-K1L{) zRviM1L)9+{Yvj(R$Q0OFrY&LCO3>bM=2T_yF+G&}d}0!auG-dZhT^@Q4Sm%i9SZ%x z)01BTd?wZtoe%lL?pTC5+fSTLwm6PI$MLrP+Gbw2?E=9S-~HZc3bY4~l#OsboaUn7 zs1{oV$SeWF1TRPbg~1@S*)7)hN0Ix{v^o)_iumU*7XHuE65Mb+|3dmwtl)BKvFr4g zpQExLN1OULLd^WS^-vh^z{$C`ohJEhZ^-@5^&Eye}zp1DbXK(t%ECqG?< zVA>rMYJ8nA8m+Cu2Q0YPIyU|pQRmFiX&``J*2XUB`7XbyYnNVSZO+?F1PxVVL=1Ji zHfBzvWS->CssHv>kMV*VU{*|3S?|R7We7NaC;?FW&gVO1kZB6SAMFSu*{+I3(owmNsK1^K zrGa}~U-Szy+5 z#ZjEhrbx_*wjx*I6yOD**38u)$OJMmqOO%`ef1kW;#n9oqe z5rUO>VnIwPbh+xml)=ig^il==!6O(Q2l7gN$IWH)(_|EvvuP&!NUlrFQqk;a$^3MF znBF?30dW|df^8|NI^0+J1u4ckd2OY+jk|Q+NClpnm6en~7=f>Se8+7%XEu@I2tv3QeDdns z2fZ`nOmpRuYikE!PC`NthzG_A^kLXb0$=dO4&0RlXuieVKhcUVS`fO3EB=@K{1@%K z2PVrS&MMrRyt8bz)U0dlXLHnQ1aAB!sg4rK_A7_!PZH<_DO{}$wOfG0*DMgv;pb}| zYvSo@Yr*s8g0ZHx@uxYsy#aTI)%-N;LEn$T=g5l2Rc{XzalB>BusFW8e2@$`USyQX zhXX>MI)*9e3u;c-3O=(0I9eC5jh!=3`ir9A8cXoF4Mlx#4L(;@!tBs4e4+%R#tVQ< zdfZdCV8_{2QY|d{JBy0{VZUy7isvOET9~O-`oy;~GTdQ9g+`pu7$}047DTftlw+(#f zh{a{!3>$o{%IHsvJD+rX`~)J9NdlbOOOP`{NW*q6wUXfQiB+CNr*^cAM9^k~m2pXp zFRxd{@jR#Ij1ATRsvRUS-%>Df^+tuVbaA1D`$5Ifg6oxAnrUcAG5&KW?9;U02~N!Lh)n@Bmv)2j3{<{QzshlE+t{Ps7xkzM2T678@ak7SogrxF z3l(?<#CC-qfsb*6<1=$=>Ye)0NV zEA^Ue(E0IfN%BoX>$7583W?sK7%gqe@H%Z;Pzu#%!}lPh!_l@z<)F9o_@ujH34y%e z#ug#QmzIM!=gR#pkO9-A;4sk60jT{CwC>bux+$O9d)|#7_w!x2dy(@OHvey1DTt2sj4pjVn5ceJy#-}fcP z>*1Rzp9+*HeYCr|BDn<uR|#ChXnS#bCIXAxYwxq<$-_saCBk3|Y)rrCD6<_q(Q#bYGSK zC~60EeaJlSdxjt7#y;AS{1s&>Fyq>ey$#8aCp451-IfEZe67;nncP5yc#PJ~{undq zMx&sT%z>_n!V$BapMq_EanZUI?VDV#PS+^OT4}}0RAVR!@7_wPLi6pt>8hFu@?abw zG;Y&lDvj98Is#vqI92!=N)No^>2A;C{L0z}I;XXU#!tC~4IxPxmEIqki)4S19xBO# z&H*hVo%qq<#QA6vW~@KM=@qv;gCy`_^#1`dq%zo} zUuw5S1lv`fESXLn_WSslPR9EV1VwJ5`a9W9M|yS5XKqrXj$HJ2m6D)O zP=}r$x%PVy(?F%7e+V-G8E?{Yt9QZyaAeGftdNXR6f4q@L=_zg*W$6&3q9FW zk2WbQdG+PN;KX|si=B{eMQh{5N%6`M@ib!7THRsVQx>A6_nVOyyr#Lu04K=%9>wm- z+VU|l?FeJW*8RmP$4;V_LmG3iO_$g;T8u_op;srDuvn5OC-!`eqqq`Ti)5>@}s#abJwDj1qj@cV$NANJCX(JZ}Y$o(@;#bm@ZJ3^N2HR6ZP`py-7 zQ07@+h~!Lhz3^iZSp-Awosnxa(rA`1O%)(Sru%c%8HXa+{YOVdl~*U;dsdX!xbL;5 zj`3gX3Fe_ih^}Ve0exsy2#anU8L4}AisqtsPzCgJR=NHX)EY4_UQ$#lxG4$rWe-Dy z;+{-!NP3%0R}`o#Kte_uw%C|knjnjev{E{vC+t?!+`b<+K}?egX6Y2IDaAL`7sfa< z96R)j2n?xQl9q3DfEC1aht}X2xE9jDsvSft$iTP`-$ra*_QLixj~AhgJ09*8|2Bc8 z-d!3BIugV8-^EAt5{1U)`OTxtX(hX?Av`ykGCz#03mBH{t9siQd;z|SZBk&^Wnjlp z5P68zPs0|fZv5#dx8wJ%u8Sn6SjzGY*gZLxyHiQ`1x3m<`L!yy(@Hn4!9(;$`a1jO zx58LN#WMF$g=kamTa9g0kCX{K%r+=r zdF7+lEzzuXj!M;xi^t)bbiZ>B!R&{K1Zhk58M|QIqCfXiNcXW+x9?HxxKQOkm0b^L zIYN&(#nrOK6u(YpbNgSFsd*VyLx)bWU2a#}Z4Za#lQWU9a5|NbalQ~8hn`qYgYql? zOV)lw&%rjweg{)&(Eio&cBgoCvqbCxZNElLMD74+QSJIWK*n2+l%6a0s>3%ujHoGV z3Ot&Sf4EsLTpgS1NCct0C&E*IvU;eRu1m>a`=!k_*uV_owGOp`Ip~elJ-|q7KBht1 zxBSpMv{T@gbd-8k%`5m^l0{QS2!4$m_hHw5juAy(?*T6CaMOK9DTQ~0S` z$SP@Jh=IE_joZaXzN>d2<5Q)=-Du&T(`9DX)ut@tRr_pHi07gqi}ZAab1!v$#IGod zNZcS|~miH5wv%ci^3Xb;N|5I=*p8=qAkF7PTZxvxZ zGtnURBK00;{+Y7uTBTmO(!J5Nv56<0>vPoTBbnFtV1Gxt&4Paf+gauU#1nVhWiH)^ zl9YRV{jZTDwS!>uMXG8#v>er{0!Ho8yQ6WjAi+rI%}_MT<s0>$76m2EvUeV z%d0Pk`lq$eYZO3LfYd8pZkRS+LY9lI>kPD7cTTC`3-;q-g-&xb^=Z|G>#tl#%aFkj zv{m$UWKTf%-b|%)30e{{Z-M;oGLgWtVa&t?* zh}8V}uC89Y@t#8D#|_&5fkek^yK~aE7pphJHg*j#=^;qh{09J=Ujw87qt207`wG?0 zQP0l%%CC#Bm|rub6#sGZKnA^b?2<=f6+O4OKj(pS{bRyCi)1#7<(mF57^cfdv@!G|L-tz4l~l0&k{VC*qGTpl zKLs1H3R=H&hkov`^m?&oS5@R%aki0ku9G({I^w9_JTlNkk%ViwtXu%CLNk^Z5gTpw z#?_c%2_W=m0A1ybz&ATHCG6+?f*DRS(@!u#%Hp`*ma~&-!tR;BUSVXNoBVfz(KEJ+ z55C3Mm8AHkm8L3JkWBqo*>Ox|dN|~y$emzi#{*-vC7-u-41@WDCmm(i4**};V_1c( zF0YL5(VuTKOyvEUb`adQ|Fduk=VFESC{b%Kt}*QJ*7M`Au!~!h zg%g7IKSkwByE|f_&l(8CuLy%&$IwRseuquBCeiL2o)cAwW1E#T#l+}FDZ5G3^Fefv zA3UE?GI!tNmx&D;)og~?%~ZGO(lN3PeBC^}@ncz%ulnQ?(X!H|7Df-ug*I>eM(qKg z!2g-v!eBcZ=PZNjJ=FW#3fkO9UWXL?UVrYwj39V8TD5OiE9rS%_$SNP&c)7=&b^Gg z{#?|*b0hHvnnt&5%b&0Y_s}W-pO;swQ29YWAFF$rzxQG*XaYu}Slk_ekzdrW49 zRfCJK-f_C23a$H4qz#O@j}49M>-qp&P*i(o0C9oq#Y<`-63T8M0g`xKhcNM)Gm?#D zpH()h;dCB=RufbyTdeepEV|XQtD>uY|^`ajRJcSl>}hQIBX|xty(9% z=Ek604WuGQUS>!Fp9t^n^L?sZ0E!Yzy@dHlABF6FnDC&%*kCQ83vGml5%tLL8#bBt z5(wyFlU5GREGDhKCpA2w&BM)vv+c3|c+QT90dqkl`JI*4HPwIFqNSso|DTP7Qq)f9$$nhjT0E#e zi8X@z5oxto+gnDrOlyIRwSSms9$MTfoCp;7E|T!is_)g1gN&E^+_!|k`y71PZ`gY# zZ0Jv|_qCeZHGGI89(JeH{%OHL%CNBP_YG2llg41u)Gu9uKdrn4pBOj%1ja<-Zo9jM z42JO$S}Voe^+Za9hvuo!&teQ&YlrhkTBIxJIvpMyiV>|O?9p4u{`%x52Ea-7U}osm z6;`$q<$I8{o8D48C~Ck*QJmxPUaA2A%R>OYHc^2Tzj@hiXO=qdmB=e@qI?V!N>)$s z+Euj->Q{F7!5HI*f>15L?$OM(aK!XZD}&}`WSSqmrxYI@Q2sI;v~rgm|1Ml!aP(3C z>#nvWZ-#3>^TArky(I;!!B_SX9SE6XZ4E|yM0MnI4}Ti7F9vVhbX@T7axL$7CR7NP zR#a|@Sz|iNSF>Yl+=qN0J@U{Gz}{$mcyvo*_rn`te|K6^V_(E!qp1N5{k1 z(}7exa5B&ap6^b;6x3g4Qk=6{eL+uKJ%@wbAC_;~wE0!hi;gK?T4R)|j-K;Kmdw+Q zSzZI;^e@`K6IO}KZBZ9P2d@5@L))(lJK~UkhwyJZe0QVTwaDL4`~Pp{k<#10CGjm@ z)A#t2sC@bv{BeK<`>^a1|8yIFGRy6qbpu;X*$;Pb@BQMNk84n?GOa^nI)}=5kHmR!64^Tspipy#lTlGGJG9pEERxf&rw?n zXFzOAh{WX`vg0{kJD8FywclIt$C{Uq5a2EAiFu_(>KI6C~Mpt0ZxP9<6` zNgi{H1{AJ$plou1&(Y?yAwR>eQhLX$>1uo>d|U7-*8X9qr>u4y9L$j*JjfyEa3<12 z8o9LD+n#s!_U5pXqLwR#ope;rzVkJ;Kj_{oiNR1-OArT!q!k@iKVIJj3fG_K&TMYS zJ%bW!jW>-Sr=uMRY$^RjH>PEUlP5EkaUN3xW(CmL{fR6GqGZv1W=_&5<4MFdAbN*B zbzRGKc=(j;1Rh9*V z)-c^rjlK8+JG$L=GW!DQzPo6=s>!IdeO|_)VYg|bPg|X}zu?jgjIC&X5-ag4^Q*6S z&Pz8X6x3pa6zFP`5JO!V*_GKE=E)WS&*dPh)ouu^WIh{2*eYnUO-R=zNz}= zT3l-tRyBGZh_2qg+5H<)T{vIq>rPjYW8U>`UXrVHzRc!JC^7LR#zUkDu9)34|Dwu2 zqA{ofW5yReCtN2*v%^L%b(XPX3)p6Jo_~v@UmH;HJK7@+<~*Sgv%JfB!o=UPW%S-( zZucGyNtyLOZv}!Q_-F)rIrg_Lgatp!mD>TtSfV7xm<-JQRglyJt#>HAhVeVC?!_`i zURSK7V-KHb&?SMiFNm!q0$t2- z$X!3WVMI)lqjhsXfR8xK`aIw=BLS$}KeA`c0i;7*Es!wuek@A42v{_y?G zn5l=FUut=*u(Aj)CoYdeanx2p_oP2qlc%yExs)h(RQX8k8w56jRmhgigR9GN!;+}Q z1ouq2|B5SwoG2G~OoC~#lrJf~55nt6u*7J3W+E(qv=>%4~YDIA16D9O}wBG3){{dOPq{ zLlUx$Rk%H1fq{?NwjKidf;y2WR<8LjxmC5ZBUit^`a35MGa9C;r z3YCwSbz{mRfE{p%8tlE(hWyAw`G-gg9uEYv%H~tEcnwx$(5V_{U@>QQ80I<&aTXG* z5BnfIZ)xm%Yai%Yv27N*7pUGmmgQEpmtziX_8%&StzDbm@w^3^=B}dim@@vjppV4CueuHC*fe!mi0A*Ygx(_p~8=0EHnz zv+YTds*uj%wo@JDkK)NF#{RIGRIlS7@eIH3z0$4V0;V|hP8{++ z%?$->c#E=RpJxIdTM#5Q`_O!=RmLBaXR!H|xarjg0H$5<;7t}5qTf1(;4GSh>?$8g z+T8yXEKpy2eXG78=lf^<=!t90zMxzya zSdjfqEBBIw!fD7-%2~bh6jhI{MfW+i5iEO#fZujSPd-txQ<*Q5eJ@;~XWF^PZ=!Yt zmI5=T37T97l*y-H#W`A}1QOT=g-nE(=3B~Q$I&AJ$?C~?G+is znNHl#4F^@oCVGVhQKo~nJjtIPDB?LuX1p`K>{OEkZZLzl$`qqWAa_T+iA9nainsw^8`mg`zn<`#EyWRoE-OJ9Alj1+OA~ zUIJUHavCw43(R*7bM+-kCg)}~>!Hm0600;;d|e2pEG_V&49X5sFWiL`PZwjeqIyWV zCZVmu3m5pNa6ZZmRGWP9J6B?3l*JbV%>B0Ufno=2P1I0tlR7^o`tSZ`L|pF9z~RsS zU6SrCcL#M$ke;^xP0n~pAkJ1t#QK++9_?O%4@_pi-<*3vMSO}6x7OFUU6NFg)%#cjO8tLJE`Vu(L=Ls4F+Q4(+aS?#S0 zbA{#$WuvWY6*imX|BJ0RkB7SN+y8Ba5?LyhC9`Ow~%`{{ioDs6` zWSJC6_I0c?LKuT7+t?@TV64Mf#`gVmUe|ryzw7t7|K;JInYYj9^*)a0alC|8153lQ z;`rc*-_)efIg7VT;njak=d^#y!o~Z5UXF= z+#`icq6By2X`OAnn8>_aTHp0B4(nE-+Fm^}x;HjjG?HJSoa!8{V#0jB~nA<5$^umNW>%Mk37}@+o>{x(w)s{L9hd9`VOUsTgXKdv4#z3o{nsPnRq;jg4fAD zLYby!Rl|jT;V3IaOEttA$c-}_@;FpH`8s2n+S_t9sO#jX8^Qdt!RG;=&(IwiLkeo$ z_PN76*~k~;zbesGx=Z;Iclls?T=mh!S7L$99*j`B#7GHxX2O)6yjeRQG>rVr{|DXj z%K2+gNNt^ez;iOV>(0L?W8+)@>#zgPyXRS7-0A-M74_OjrXM37A7sVTntbUR^i#1r z`E8lFjE$J`DAhosfPr>yn~mb?5W$FOPw3b6#y@I)lesqu3r|?wT(h!CUL$WvUo7I) zX*#0$IJwwVLp5*ak)Sq(oJflIte;3mp7iK=q4k$GIA*oN)~2Fwb}C*TDG-iOo?r-B z&N&mI;%of@3YjQy=N7k0uL!>U+h4rlS3y-)&^P995~&1<_quxH`hv?R(R1V(Fw5Ow zSzkBiDC@R1+nZDQpDIi{p$#?9BAXBVvyWUPfp}C?*i0>gbQXwD-s{4&H>yD<>AR)l zBFReT0AvrD#I0a0&^O8I8)+C^6t%zT z?O!3a?EN|{wv71+?43~qj4xJ1jezlBkanz{`;XB=Hvi$K3JhtB(KGCE%&iRlu|}>P zG#~*(=CTd38sDAsQB!Km-T>-MGU7U?J};bpH+d|-rVP*QnJ<>*SfAYFPCS(Id9%#cRv(_E32u|X1RdygUezIv+|nO}|8M0@8fRrs`!op`v{ z;_mACJDX#k4SIhi!2`i~#}ako!#(m)peSnNo^JV#gYVU88}|B;?mPr%Gr^t z^Gu_0@Wy*brOsgRu}Twe_EZxC{pSe>hvb0(Sy2P}ANo)ogxVX%f{#~;zJ!hSRm9;J zYJyh71Z`otJ_t|;liF1c!++8~;CpRnm|NY}w-Ke~EZo?!qwu*Y%T9xr*Y@ljl_#2L5NDpC<878q^r;#J9Jzccn)xOwP|cV}v^}2v_V~v)I1aXS zA})B>jj2m@x2cHl$9z8M19GvaJ>7%)x!slCvF0fiF-^AA%rtGHfSFYXJShj zXZKkEXkI&KW27V=)^R&LS^IQ{_YW)2G8I#I-3f52A@H!;?C9*sbuaR!TJmaPI1O(3 zDora)G+(I~Zdehg@TPtWepQZr^hGtWPih#f0gL)Ae$c$|<+ABcUD*ZR^z50yTxN%{ zG>nXC66Y_i7u6+qNLX3(^fle84?)B_*@%W6^zP?jMSL=J;97Et=tf~|YJD`$_L$1>v@TE~KHngw06Vn=+YMg`{Ro*U3 z6qr`<9yb-C1Cseqv`*1s-+?fEIvd)zMG-h0`&*j-$9S)<_UCmNyj%?)4-VeTJme2{ znJ~z{&NfezUw;z9W32I>t4=X)C;8^ZLe*1A&`(-r(e`Hj1wno+A!gGf#G8F2i>C|o zFb9~(1io)bv?W|7i-gAj<9Q)$z+2K;SeYoocuS}e_NqVHnw(Q;H{;&}n&zcz!<0Qq zvciuhUC(is1%3G2np$wQ@C3Ip&~v57HTUuYXwOqktlxK!)?08Pkk=&RUL!VPOLoJ9 z2hUGILgEP5EHXN^(bkBxY~r!C()l^b)3k5KdTljr70}El3$;B9GJO+%OAe+d7+?V> zpP#9dCEJaSL_w(zCX$bw{q*-y8V9*HOxvDX>D=8m*fs^HRdyY!(NEiH6gkIfb{fY; zP@w-fxkO`EL7$+_^d>?&4m(cQttfIrd*cTKx_Z9-yWp9(cXNJIMWL)aY9)7OMoQ72 z0~aoLf1F&Mf@@~)cKca8>D$u!bpi6pzmx72y$b96pQ|GM_T&0s z>{j+YUXg^^F~5#PrZ%NT*(;spL*w$9Rzz^R01h-%-+RX9?V2peTr+5JyMv;&+BjV@ z^ve~dR5T`hpudMdSfpJ(yu2cl8Zc)yCdpiD!8>UJ#vcB~=Q&&u%PWlBPg{9Y48-7% z0!X>3Cqu_W9eFI4Q{?KpO8Nd$V!!FP_ocfqF#o51kJ|Fj9!K!JT+XYQ`ODpn6j(BD z##E)ONjuH95s{A|d7b|7C@%NUu?~oLYsu;-V2E({yag2pSL+N=EGt-_w%-?i1iLT> zs7vsHyuduoN1L3RIPibwuDtzrMu%R03_Iaq$R~5jrwL1Rt!YErw*9F1_87)f#e7fG z_hUZJ@;&~85E0mowGE-yj_seXVF((kJ3nKqo}Jz(J1Lp?yFe|-&NdiC^eOQmvXR5R zq}&^%>M-;E*sko=tBFGQxb$W7dM7~NZ!mw6&~!Fb9W9V7-n3+}nhNGkLxwlPqwBwR zRU4Y+N-0%cZ3X=d{bXcIRS3+ceK9Zei6bMF982Ggkva!;$YfHGPE&wf)H7meuGK<0 z*9)(Dy;m`j+64qgKnnE(7k6Xq9eC`{R%Ow#h?pVldudz`$B-;@K7jSlEm#TQ(h9A9 z{du|e4}CfT1gSrO`-)v}R3PFhu}p>CA(?nV$PY|_o|R^%nTiK(B>3eTYVEgwNVoOrq39?O|-&7qpGfvxDAGz*9rDBMB|9&-{ zg!~043;#2Q=k0g=F-Z~J(EzDGXzciyW6lGaLu`J>(ucZ@IG5*P)zq&YEMmfF=?O8S zg?q~ICKp}$!qd|-^W9*ilzICHJe6Ke)Fexexwos+!~=3Q&gwQMw07L!lWEOW{r79N z`~`gYg^Np*@f0ni=1-Y1RQkEF(uea1R#PeSEsw@_N` zBkw{i#OhOY&Xedv{I(WBdY-#>9Mg?qDV=_-WKFuqZ{Fz7d!OqbyLiCTo3FG8=_$^= zXVq_R%y9Q9WLwGc9IYHD`Rc3j_6*KhF6ROj?YF-J*R*u6XZT%-k)dbb!3eZVWYJZP zKGDdBfAMx=o7Z(AywaJoQaJY_Bl9aR&nja9)w^EOTd%9tlow5GwAcQd^Oa8-Upez{ zxh9{S^6cYc{Ds7M`DL4x)RT!IZ%e%o7?fpJs7rX0oAF-XxM#!t%t(SM!IMC!-KdId z)^SadNj<0!yIk3ei?)oM(Z`AQ_@Spv)dMWP1%STnX{$*#jA_meRBw$>x>Eu$i>38D z&8Xpc>IP7zQI?FZI`A2Q-==%&Z%B#g3 zKA_cwLco1b#gC>=)Q{gM5&yYv9ew}%zu2E;@4ch=4Y>X3Z*V5vRDbic#h;T+CQfH) zbLkhr#`Y?E4Wvjj#j>zBwiJ2J8}??z5u1MB9nN>mAZ2=*sqaoA*!F}3&CZz_r9H*( zut9?=+=JQ78^)nSvsUYk4EWS?{NS(l4LV??mNwhZl#;*9^j4ck!YCfj8fsKG`|^s( z@upW8=@vsXscq7Exe%=%$w^UbsXlKWyf+&uP2(%|HOTjtz(Tx~+N{}=bycHtVrW(s zm6n^fN0KG#D_!2D+@-1M^2v2F(3Akun2=mrVI;ePu*VH<0w zvXDgQcUZcaXHx8f-fbU$dg+_<7Iv5_tMrapEH>n7LK}N0s&ij5BxQ{c4#-jGmvWo$ zvxstUGXamR)GS(%PJV{&lzU`~k+(+wS&#*{+zlhHzo%h*ov)>t^jUX#cugh+B53Az z0bBkG)fTaZDE8QvKAUo1JPV@F*S-|d2f-a}E)N~4s;9{&d z)NH3Y0h^S)h&p)Fl1nCMO#m}=a<;1j-cf5HZF5b&-r(KibambEMu3I?*xS-ik~z~8 z%KJ|IXx4eAQF5Y^FPczgD{?a8P=fhBYs-V>f!MmeCC8U1BFT#?5+^T-hT432ks(~zmNYm6(|RSg#?Uu>~)Ehhd*ct&)wUCxA|a^K`i%_QBn z-hEoAQRHq_J?4Veu0S%qgcml!t;^5AZEHK%_ec)Q=>$Z1v4k%FLQ{$MbNsddVXxHh z+ohwU+&q%sG+L;~Z>j;+{ET#g&dRri4-bFs3utsQQs6pztGx`wvCMY)2@qh#9fk8B z4HHin7Bc@8*4|1!`^UfkpXb>uXFGSGsNq3!gePO95;({(xcZ#h6PMR$xlI-7*9kDN zEj#JqoaIM!)*6Mxwr21lf)>bbILfo|RTC`h;Z{L@#AYJg(>u_QMnh=-^-lD)9A@XT zEg@Ill0webF(v<~JdV$7+&Gn0E@vBMAIdNLwz$Z%;JI3liyU2r|ZQ-LL6ZBts zPu11@d2BBu*3n93OxMaLc-u6spkT-mL{fOm3b#?}(xDGKhUYx9PNHi%44DctV`3iz zPb5Qo+#7ONAIBv>ibpSeuDLT&ZCn;?q~KGuU&ARLRhch>2&(WfhPksj*bZI;n$u&O z8OeMAi*KY=c5}n|)56s@jFguDIpgj{%;(_QU*Kho4*|%odQD9YD6oW())NMy+)(3% zUzY`cPPS(p7V!719kWQ&$AARRTzr(9D^SP|icL`o^8DSXQoqiC&jCP6@4z$osXX-O zz8fRL+=thI#B1}ew9ns_oK}iAvQ;UU7|*eT?~G?M#1FE1kI(GvJBeWdyKnb=B~Kyp zd3y(FSv)>7!9YNY;jXQNo@q~=LDhqyu9BZ=LEVjT&&#JIsIXgr*dCAswNCok%<5=u zbnj8}D;^sHRrU&`n)&dFr_k4~zLWF@S!XS$hAYvC0m61PPUgv zY))4PzC~od;Y1$oLYH}%?n9~_FcCtRx3$RkTRtjJ_J2HhxZgH^_bqYWRK;<6g1B(( z_bPYA_i0cWj4-)ki501^F&>C0H9TXvaT&-YNu(NvLhf-RT*pe{T?vKAyND@Xce<7J zCE|9l{ZXvvvF52~(F%}11f&UYy)+0Nyd)St%XU5HVDt3We{eea|KFwWi9)7$dIN4Q zsvC;FBcz=A>vY@V+>TNrkRH+RI53U$714-zM*K!xcE2CIC(>1^Xz-EW_AI@fK*xFW z_3bT3X#;ia5iv$tiYi~DJ0YF&b0uc*bJy{euJCT-P_6~Q=ZlnHHH(B539`_$FH}iR z%qy=3WFN_btD!Ew|z#I)66rzqD>mc9#_pEkPd}6Hn zhuOK`>vgUb>g!uN*ghs4OrG9d6GQmqEY6E)A`^ zAVcCBRE9tN<${BVU6W|JOv}xt?8j;>SEpvel-AN43%eATSdFjHWnj;P@FG18l84L* z4_Z(Ps%%MIY4bjY+}IQDB(pSzH^t2&2;utNov5zccu(tR{ZK60zoe?fvHYoVnw~BY zOdWGtOI~gAkUDg6*ZkTggnzPjTCmFjn;6+Ij}5{umTIll`k`tG5>{E!rQUUAeWeQE z%a(J^uMI75JEhJ6q@YR)OZv;4;-D#);6Bma;_1Lv$I@84Qor#JD$^<5r*$jqx7?c6 z?ys&F5}FUqPp`oD7uvzE0=@vJ1KjX`1&NHKH-acDw!u{BRQe&~o>U;`uCXnB6Amy; zpC2gwx$luKu7dzer#taPq3q&PHe(L71exNI^xAOn2ypl6GZN`%Q__PULYW-&cD?vE zxpckx&h`Z4{%xIe6UYYpFh+jlBT&s>XQyqh&djG*ppLCGF0BX?l)|4E?uuD(pYH(D zTalZKUX?UrS%se?Duute1?wD)M7@z*DAU(RLC3Cm(*3?zv6|dlY-I1S_WbdppR=V^ zyk4mC-EHA2jZfOG8|(COQlN+<{Td4m>7Tq>W^g$f`PiuPjHtt48=S z0{fqM5Z~*W-bM;LH|{~KtrBo4*LD&ZI z7K1l(9>18dWJxmqoB3HLpXNKCcn6!+5!bhPrR2}qI@t(b+446=SIZRjZ+T{VX5+2z z#LGI6;7Qk+RyOBL58sk%A?oQ~MB*OZ9!_D5Kvn++RU5n?2T`*i77zv^^znx3oU>+3 z8~(X22#bcVmg?34PBlGX2H2tg?hAC4x{hs8`7_sS*daBLG}#qX>6kq2Frk1Xf5O&! zpIBgB=%JV!K&zre6z-7;^w)D{=Yg0(^0mRq}qoLo5b6OB0M z&8h@G3id%1psRy{>mnQ4WC2LS?!RUJ2Y0(L^Z%j$5f}gD**G1xsx{!$BDeeOpVYKX zvbPBaf$7@^t2h0O!f!D;UGkTjXfC{$$@4(qx?ZkaKHZ~tFM;hCoegUT!8(=?+(il+ z`qohi3*>g+$2Zb=B-ED>F2d9CEC+m5?oPyk~Rg_Ia8%D@Cbu z-VSm!f}hOS4A-_bQPrAO971sX;0I||5YDGhYyCDxx-O;gm2n3sghve`d7JVy z*C&0E9H~lpferk?JVN|olMh8+I7=P+DJu@g7PO~V=W6{(SJhCw6<9->TR2}#urJ1wT(p0()-$B#Tbpr*bp zaD(KIv^}QJlfHgWO_RU=*d0e+mcboNJMwLeUpZ)=37nIlh~ra1gCvUId{zu?w(th+kjsk zJ|TZ7QUtnGqdb?<+TW0F9!Y_Zy4nPq6VH0Q}EQP+el3l|Tj)*>IgHt?6AQbLSUrjN$QfF%>lq z^PJ?I)WIJj5mvaUl-~vea$7y$wyEt$%ZZTOL7juzK23Nj*7BP%iPNlLoeHh8y1h}B zcZt_dA2W8lSn<}-^^2o6?$u96+Acrxwpk=10u}gKNCO7@Z|1oY9$(b@B%12~{(KSq z%ilQ@?F`E4D$8Of8J=fZ*Z9;z{M@xvZ1vNt{Es^M>`S3#=eDgRWxNhxViTL+m-T(gT1!BJY zHj3^VQ(Ib2f$>B-Ui3zU$z`J}L$BGF5J|EwV){Gu5BYYKJct_3Lk*qojNI9>VlU`p zg#VUgVgAQt`Q6A|mX!u!B}qba^fe>(mX?>IUak*le&Oefi~J1S{o3qgcma%GvnV38 zXWfP;-HX&|vi}e}$+W~+0cK1a)M zC(1FkM-o9UVjjYODWWKLK+<1$L!9#-$a3Bdh&JZ#wM{>4alTPNtr0XBoM(T>H(@^&)?ck{#M{PgcdXK}?Aq~IQ^~w1!0l`YrgfYd-t_=#cMa$lv5V>2 zq!@gO2;mXCa_@uZbhdA|_s4+S0rNZOyvM)8_{#2F>8e*N8VmY(aYMjC86}Vk7e6l= z&VolR+_&e1f&3fag=fWE%vhf*IRS` zR{eFQU9+MS=`VuUL=ov-N0#p@3KMoDOw^xcC6B0MWboIYg(PiTeOmzmnBkG-x7W+% z&58{{r7z2w_s0vB-Tb+G?sFd;xvE9G2-Xb;tMq(7_!4fZu-!f9x;CvJ8hA6xI=Ne( z79N$c=(@0%jvPSDUKe{I)Hkw81%UFtSbUc3Zqov$e{AT-t z+_Kyo;m01ypq~vnR-Yj}_GSdd;>!CbIomC{gGZhMinH55gKL&A`1(ogKWLP^Fz%m= z-hTU;J|MwH^MU?Uh#NL+_1C@TvAIHoGEA&vOYuvai1L6WTR=%o8Q` zU`0356vm9WE6CPydgCvHmWaFZML+P`Nvx~RhHiR?r2rp_T=ht$Eyxy#w_KwY7xloUxb;;yS zRRW3TCqejH(`Qsdk)aW8@n~Ml>9Nh`Ga$3A#P65wBfU#e%_q|6{>pjGh*s?O)=(Nd z2xN4yZ676eduJ#*tfu+X08BRM5q~G@9SQNaJ#?^{yQ6Y)a^^0OP# zyZGVKA}G~bQP@PwhH1O8q@-}bS0J)4aB5_&A%-;MUZ82KS>{^Tfb!hdRKRyt#T=%b zR0I7p>kYGoC65oE?6o{K9#5rM9;Z9&O|PQmrDS)SvhOg1f=fZE(1C9g_0)EAY zL>!o$dOu#ix3ztF$o2Q*13%_c%68>f#9ArJg6OekIpSVhOt3FKSqLbCiwt> zLw`+e)pGv=XTsO`PgkPBr}k+;m}yp&v**fft}}lCs{ei7Z7pw3ZJ>{;_Xx}ANw9D5 zqQh!_q_CC>KYhN2v$p?x5?jv}L)hc{aau9Z>mn^s@pG@$({@R0KU)tXw(q8et$GWl zg2M4%D%RnikM8t~;gHtsj#_8E-@FoJZ9r8rm+5m8s1NKv*ztzj`vz(9NEG3G?8TBJ z=L}H(tcu1$w-T51!iEYaR|bDco=BVb1KkwB>rt=&?w#(U)4`i#^YGc1INeu8n`Og^ z_P6|&^>2~ZDsU265;bjd`us1<>~me!MGw=}q1RtEJ@v&dUd70**=Jk5%)eHskZ-0q zax=VQRBnWR42Z@aNeYAmk1K#eU_JJT-27-@3*s~w2*w#A_DF7($&g=A+XCJ?{0u+vtQg??c@M?ScTN4WCbb@ zoDEG;Ex}bN2xg005$Ht{a0g-8Sk`Mjo+x^QziT-mmqC-9X{t-)Mxs({?{yYP-0OH4 ztG5tc+S9`wUxC~!=q^=GiY)QqLq^%>Tk|Ob(1L2U_2{Sb-ueEZO1cx(UeF)?{r*!6Py>@L=l#Yz6*X`ZHdbOKGx~1MmK}G6?$M{6=JXw4tNmSmE znV>u|V%YQB9|iQHAg#ToB&n8NdwmI=`F6)npcs#JcYCv?wtPSe2rt~#*PZ>%aqvsf z&0=P}VXa{EJM5Nol%?KBef#Axk1b3um~?_+#pdtH6|v6qIFWfiCalsd#=}cgk^SGz z7)c9V8eq4Ky4J9eLaB|IBC1%rh-;6BbD{&G6Av z!u(v)dS8AoBYDHbuNU;Q&n0K5a+5Kk(Qf;=z(X;(N8|<2iGlr zh}wP%o{Bt?JTX1Jdt&&Xw-4KY3y!lG;t67#aa#utraC>JYSe6%0;z;kRpV0VdCij7 z@EQ-0GJk}ePxKR7aV%IPhBr2ltZHiZqn;?YH2y8i4(+C1$#dR%D4LQT>(eXsBDd?* zzXAzsn00@xO}t*xIWEn{nwePIQZHPoAuaNg_I7KCI%K(T0$wY*vmlQ)4OxHW4a;ij^F_9$5)to)ZB^v`uJT{;jez+j)9AkzV*$v&{eTerR;D>Ge0WZH!zcQ+RL5(9CQ?Pe z%E+0 ziyUe=L!o+%oje>q9Jya+%3oTwOPyZ#jNVTtRcJTje;K`)8ZRupAVytcy`o87|KW{^HB!$na6gx?wAU0SZ8jPF7Yt+- zz`dF|fE(RDDwUuEs%eV4Kx?GzrMt)l>I2Pk)+sAuRw^1K9`p#Go9tuoa=+yv|A*rN z(|1^Fh_7(~clF!K%($CG88&Gr#@?A8cg2U9*X?+V+UE9IfH6ATj)%R+`x8|x_KC+L z4^S@^b90u9U6ek<9uwrjVl74D04Cw4n3GD)`H8FRqO`81#WF7G*QA=bJNMgDbOm@2lzE9 z`%72vTRE)1b;moLsUwJ4jePL+EB893j2CqYbq#-b>_B`Xx80y89bl2>qsQxQ_R7n3{ zr`q_I4}>#*AX-)dHy=&wIvze;|D?g6caOibh54b${!~rVY*N!9zc;UKmXuvq;s1w zvUQOPXXCNuyWAGw%YX6g?~~}8Uv7>$1WTrF6Gj}Cb*MetcwRc73YWwG1b~&ob?Z=u zUilB(h}ig(7}M+P#z_to`4>r_>O>zgp zNt;(|u>q|ta^C8DiV!WFzDXFm`8SX2jP6g5=fm|$(qSRgqz~|tB_C2*W z%+2gTfj7Mmsb_y5@{O#qcUF`f0;7zNSMl<|+d@`0)bt?f zjNWwj1I6MYM_bCi@FOW=^s)0Nb3SatY@K{17VVk^F={YU+x7PV_Iw$XcfF1cN!xYd zf6*cl45UwP@B6c)|MY)XVThUr!YbM6oxQj^{o~eMxgY$dKpq?X`F~gg@AD@Mwn2wkhs1SUpi7g9 zMDD>{MRz!y+8E{%e{-04MD*@0zPKK9%S09%zoJdKMUA1kDAU4Qc_=sS`8h+ADrn_L0W9`h0n zL>HP^%-5+kfp6kJ|CkBw_C$+*o;=wfkn;N#D}3o-J(p@v$tIl1<~uHloZI!e^dN^Q zz~WQTR?=RImDQ6S>cK2nJiV=cRWfJz&435VGdI{A&6<1%I}chuH9vkS=KN-MbIPws zrvXEIgQ=h}lmgukTXp{Xx^&t~W4}XSm;IQi8A1j~bc4?`b*Z^s>3DN1CZOLw7f857 z`eFQN$b4cT?f?c8w$_JcJ3OJQ_Axp4if}z{)%3kL2Wkqt&umsGTufZ&qg4(4>*K@q z?K6rV@m$MJbsie$j3dp!kGKQs5}{k1VsuUsJVa#-z?+Z1!sNvTYQ966jUTKkhxyt}O^~g4C3E!d;j^kK=J?d(1i{qq@w88hXNqE``x_+j zJjkiGk)RP5si$M50dB5Scm>y|N2a#076~xP_0gS*1-073Nr<7ygqtg{eLh!!xAEOPy@lW#L>wjsN?0?9) zE8TCXhGV$A1R}qi!{X3vq_8nnLfS**So!(X@yU3wXc6j3Iv(iw6vCAn7dINb28s`> z{hLQyR+%|Rxvu5*K&mzmVPLI+F}c~IOD_10x~}Kqmw$lR>3u5iwBzZthOjaqJAmjAPbrU|o-A@>AXg+IiXdFWfz8Vus z`1Q-mv8OK=WOd|{+zKor)$r-|L*E*L(%JDsuGvrWbp~*6gjkIj^5_WS*b|@`<$7P{ zE~fc?n*4n~CRj~GaAcz6b&z-z#gv!S7f48nui&8u!VK?~DU5KDQR=vp>UfA+U8m5- zgrm`Ih+&*_i{!Ss`Gu>JP4bKqo8yTO#y(`s`%45M-7<<4X;SR28zQA~? zlI=-aSRKXe$yDd_{&bW`R%z48CG|5dSS@9CvlMWSp7_-yweU~3Y>Qj|04k4uRI|y~ zyZQ2`)midykv4x>p+(Y=UQsmVsVlX!zF42qz|tVJR^+Cct7gvHR`XT;FeEG>zZ}`;N?;y)pHSXvBXwDkGCNbyf&LMq$AziUdw^lKI7+%`mhE*7|lH?$&B+ zdX7o$^)}eH)={lST-`N_Z(ee9A4nj*Cbd*ie9xyVXmkg2UcLT{_X|Ny)gV~0;0XCg znVHse(*c}ZxI9V|Bko__uK%7=UDK1@S5gLIPUMJC8I^wgXUNSdqh#zwjV0?qhyz!F#MUqx27D@h!d@>^u ze#bL6VP#Un#P(h2qHO>0I&}caa|g*!7^v;`w(V|IYTX$4po=+dKoGmddZC<=URV{u z>7aMs?E}7Xd_WU}e!kE96zn906Y`0?Wo@>Ir*M`a>{g*J@$6z-u`)y}UVC|IcgksRP;D=FZ%%J@*kHq@N+g+j<>bm{c4X z&GUjB1O#a&^|M8DqO5k)*UA)gONL2~k6S<7D4Ebl%!|;MwL^t5-_vH(+c)&RS}dO8 z7Lq=usSnv#yFyIroWUgGeOG8~Ho;QicDMI~EV15KIvzKEV(*`y47UnPuRi{` zK4*dQvI(%n?OIZcZ(40a%{|t?>b?4CgCn{2EWmBYvGPBNj)!U1yNTEp-*6J{IEnO` zFCs8vy6Sr;!1G5TSSxrpXRpjjfe#%PZI5+MyKtv?@DX`tPtx+yzhX=gynke8n!Aku z=|E5Z9bnsX6#b|B(KDE{?(>aaVZVN2ThxiCB1&vwaDsf=qErgaMM^g-Kl>y%zz{aa z-h_)hqk>}T{KILtqS@HgjdhYJ?`EpRUH9O?#d6RLpjxYk6l3HQmEQ}*_(^HHc7{u6fG=LldqBRM%BCGE7 zJml#*klz$MpYbuFp>JW-^^+`1ctx7R3to_qdHJw$vB%V+iCV5Anz0j^f}PqJFcHCX z#9LBtxSPE35r42zaBBXj?*XZRF9fLZJTW)xG2t;)51%XXQltltn35VQbmRDwKk{VC zpayN@*12`HQM8=BiwJbjyr(ajkO~T)}(63Pg=? zcB`)3hs}*5)k!Kz4^)59mLZ~oL@0m3A6!C`Yy}F5#ja_Z_x~x}Cp8)vKy9mHF!PX{ z-oTs(*2{&ei@R>db?F_}EpchC(YyY|6GI2z77i?aO#v0U<16R|2Q_1egWgnn$H=Jg zxk@yvUNEL`Bzwq#9N^Dp^#QGa>~>&*Bvc)s>W3rv6(y~kE?aC@Qq+&R134A0QlJg% zg_jOOu=Q{fDv1G(T`%yxcg#2G&uBBAa^u(3RRd4_LH}IF){j#=YAn|_;^{14t{&Cg z`@iu13#h~6bToMu?Ypm!=&@0y_0U1b+TQtj3^Zw_HX5Ww+)NM*w|4$p#3;m3e!SOJ zU)DOQUgCKg`3oXJGlWn8B)AQN_ZVhgGc1Vr%Vlb5DM#1?Nu(&xzo@W5t2&XdRfoyZ;GoQdoDF68x#TDQEaFl*KbCs>I!NLP7oZyDGge_EgM>@5}vYHW^wO zxShPnCGUeHc+_GCSAp1n{xXeOk0ERIy?$FM(BP{W6*FJJVB3GI{ej1hE@oMGYEm1} zqIiBQ8}C)?=^Oc&23mSvCO}_%wPa%Uns0SmD_#suRV~@R<0w0kfUnd}syz4M-Z#8! zi76wpM_=n*^S*g;sbkCK{I--KGU?~4TQw^Eg{_;;t|i_wq8N;JeqkGLf}Ec~7h9#ZL(wC5uXtrM~|@E&A8w1ejsEllwU1|A8QZ`hDEV33RV`w69)1-9>)sOsD>BE|E2e?su!Fwl=*8&@Fjyw8sOP~{!`q*~~|HrXk! zn{zGw;ab_;?qyj<7KlC0#}UaYZ=4U$ zI5dVXSp-}@J4zKg62E?K6fZ${6xcuFFa@mo@i43*e9J8%YH>u#ihCH244>eIo~qU9 zpVUO&Hp$%%#9bG)qFYcd58B&SJ;N>6inE`L_3rkb+R8ljW6O9Lc>@V_`Q>vv)1j>B z@zF|@ZsEKByEXbh{JqS4?>`Xc4Iv#?@mXtS`#7!}gne)R)s}7NPGfLuiqwQkcKBU#itK8{0)T_Bnj_iTI%1u$g05vQ1g_rt@-LWt^-|>Od(8xKd$_@J!ZFVYl@0B` zAMkIHGVg2Ne^zk--+3V2pN0Ubm>;;~dg^)6)<&o%ZwB~z*ItdUfRI}pEokwnvly%M zi$s~;-lhZR>)y|W71?_YOz91NC;4Z0yPLj=Mv32PDN2~opN+=26!9>Q=bM+FBTOaB zW?ot?c~0C-Z+nQ>%2G{Z;7ug&8vMeOs~7eTlU`WPn-yE7xhD!%*+dHoCbfSzd&Z=b z7~N!g+k~Ii-~+-vtvmmTqC)#9%MB)qayqR&k25@gZLUrBS+OBq!%iY#K>}a=ok7}B zkC5*khA$e_$Ob*h=(C+agA$&H)h>Lg=F`RW1#{-DJCoJgrHCP#J(kAA`DPC>&rB;H zs9AsmZH6wG=E0KhU-?AJ1HDnS+B2f41{+{17dEBLxSsk_5UI6IiRu;yVyB=bU)1ClVs(Xj-9HD8A z*!_XaQ*6Z&3cA%`Mm_i==s;5@g{1rmH z!{37(zxqsFsOjXWxmVx6Og*0FxsgEDx}6+R&ABbC9f{9~gNsx)@D1lx?E+NRii!hg ziN0=L!YtQpZNf&=q1XM4p)k3Lrm)MPXT?p?p3GcrEiuajU4ahgf7wP16$eJ}*+AuUCC5jh&VI!^*xb1uD zRu6bvwG@%Xm|ql&?rorag)*uC+)dxzrrfdU8erDRhuR*E+aO_w{s!sY{Sv}8tCk}Z zE>en*-4e+hwcmozuMx+6rX(&Y^kEuik)~IWTwNQ*A5jWj_@6GexKsbR`xEzD9=Txg zmWuLj?zinMC%Z};P{_ps3SWKxIrKa_yD-fJRWM|$O?=sGSzgN6(6D4Or8J=CloJXg z2gyC(dreI}d3Cf0={fx!VXNLeQS~pzYPRtDe+jRmAu{{?>-_4xp&riDt2-3slz>=q z^`Fp}J`=U=>2zA3uou^lX0q{00t3M%4vuDdQ?AXohvtDI8 z*%A<=iYaNGdv*h&A5{X+()@{7#0BJQ%mX-mA85HS)2y%#*a-IECWP-|r?+VXSd>nD zou-e5XEfU-+FX@#V_f%f30olS4MeB_U?gQdBL>l zE2KRqceFMamU4sGyCIc4fbS+-G9P5Waj;SkP^?jK#-JANpIN@=3cZR?&iBc5pi1Ds z1`@jWbXwR;>af4}M&&7fzM^{2s;#xtll|-9?ehnOqc!vvuxw|uID+tRc<|g0;f!qD zDKsCLb-!njK-d2#e(_%apBnsGBKpn#1i!0j?h;a{?;omp$x7)Lp|Jd*{s`d_cn>}J zWa!zPrQicn{3**xEALsmQyy-c9K6h%Uhh>yZVn$rI56(AgoIyYyVnM=UqI=m`9%9$ z+m%6?;W?|>5)&{===nG-d_FBq>JDyh{z@D7$A=_?Z}FauPYDJ-`fYgyNlgLXe~M-A zkfVv=sRv0+4gbD2#nF~f(@!?mu}Y3XyRKN|hc`t*NeiuhtcU(F1Mh^sTLy1?jv22Z zYpijJCARU}BdHEaLC8)7-S0o~>q`SQQk169RqtDS23oLxZZCNjqE(p_P+P4VXpuHm zR;_NS>kMC6-ZA^HfO)W5hwUNDQ`M=|G(7`+PNd!I0D~^YfAx9_h<@|z)zDIr_S6!1 zK1n&&)PzRD`fGEEeRMo=IeM+8r&gw%?`VEEKE@DitmVuR$4M{?Eiuj(0~S1So>Edy z@mI@<^KY1wtyp1ezHzP*Pr6m zQ(L(7fQ>3zU*szLKbfAWL}&tLX{4&Lx9N!Xjiie_BXnYqGFi4I!LRZ2w`uYdl@%nN z=0lVmACLEBWBg1JP=^RE*+zQK*;i%Gzj)h{=yTd~lQ~q4_%tk19PKOQfHI$%U)EO^ zE3Yh%?ex!XUc7v%o>J`}^vvxtxagE??YZ0;!KHT0Cl#TvWb2_tAa}$5{G1>Pb ziL7O^M-l^< z`>p)3^SrUHteBkN>$s{%y<){<*raV6HC3qEgPLAP2+TDG%f2@+8I zq$@FwBllb9z#q_a-6!R7rSi+ma5=}@R7!_dEIqS1IfjzetKkqt=4a7fOBs=((SVUO zPxDrKjI0?Rjw$={1|bmOm9O(y0S}GyJaQAxjMUYvP(plV@0X1gBcw+nwrzO3b((z5 z_h(H;eB*6u(2WK1AbeH8!>X(rH0-)H$-Hs>Wc-8YKqw*Y%r!dDg{(RJZOD5BR{h)l zak;+;8~o5W8?T3d>cvqd8|8rd5aRW7lTIXD0 zIGGhcR`#>8%o{sh$KUYWXI%&}AW8GXNdBLOufLqUe?3nB4!Z*X#>b#l;;WcxL!+*M znCm-ACEalxJh%v2?&1Slb*Y)5NSlNg>${u!U-VdQ-u)4i3>_7SK*ElVHz(s*oP&)> zOit>ckzjm$1cT5#5AhAM_-@la)!ALVT|}Ur=U0N~i-;ti_E$OjUT;lL1yXPAE#9f& zO>AP>;G2pSV-!!(kITAfN1Y|f)FP^QAURF3%bbO*sww4Qct48q9ZV{4I_`6tYAxMe z?>o+Z1f`wzPA+@P><>g4auiCmHK0-y0mZw^&9stoBdf~r_y;L=d&=!oha;g-{hS9H zc}JQCzV0SD@|P$_&O)WkDV&umZL}W$29J7W^)T)rTa=fXJ7Y?@~`%ucKKmW{p@S*TeHF> zoTi6iNgKs)mM0)|l%{vhJj?Yk5_!S!2eV*1HA9U8>`pIRwjw9(iS}v`p{rfk(bo^M z(lmF_A%<`&j!|!fPKNn6QVY!s+-))1a5nH9&TB-xu4QS~zNWJ7@16cs?80XQ`m8QY zpc#QDafIc>p@PNh7MO+$bn-YPaIDJy5zEiwH>r6N`I}bq6>ui=H(RdBuU-fAhE6l3 zeM$(VpLXY48;#*mbO`~>caJu$Z14SboKy1jhCt_H(pF;Vy3&sIXL=}2fZ|)&p;_Ny zR=qxqHJ4V0fk!Lh9fvfL?XvCq_jh$~0-TAnvRUkomIiiA>s6zyVhd`9SrMC>I%Al1 z#wDAY&Qp*HB9q;sSw8dK+eorrplBFg@}^nV)zb0ORmM&YVt%b<+F7TS@v@WpYL3zYs>)J7*c0O*mGvPXE$ zX5I-?S-knl|A2zbd`l)EKh{58tvOne7+`pUJ^xK$INxgi_3w%`=KoUfxi35K=97BM zcz;%jsFKC|sYcq3B}}xbL@#8~JRhUDsWlWk#+~!lE5Q%_bJ6MExg+*es_b1lnhD4l zn-|*n{l>FQv+MumoA~oiW{c9RTTi0Ne&Z(=p!wVJ@d9`PV7J^=GW{kz6R6K8Y!+r1MOmoTg00S< zzd)6)30)k@9@7Q;8WojnKcV`_u?1wM2BT>a6H2Bnc%O@>vhi-5LDr1d#g^lTT~usz zbf2}-70%O)+M`w7O%|~5$6G%Nl`5Y0K2c}f)PK&d$kh5vV(0)MzdM@PFs@eepp5^Z z(g&Vfe_vQzjZhi#Y-ocr|H?b`;V@bt){MJGci9MWUu(Rb)BX2n5=}np#WZ z4^PFtGJP85E)GPq4_q+}3~yaz!&y(W8;ie3xH!bracN6ZyXioQ`itU@IWer~3{{#7{;( z_ygHmLh@Nk85l=A2)v9MqYTT@HFS)jetwCmB(Mc9`BQ6e=`rs(xno%FFI1;hvO&K~ z+sjeF7Q?|6p#r0GKTkU%sO1eS)N^!O-Npla9w3)__wjBXo`Xk?02o{VaQjXHE}6nh zt!C9!g@H3XpQ&b)_Kz12}4X*b-8^1y5fgo4@jU1%OH2 z1j-07mjEzN3AW)@mt4G=5H1>ME^rzEj4;3b=SHK(GB7cDWK&eH#nbA|iAi z*sH_BRX^{r?4dln4(Xo0pArZr?RYjpu&MRwr6jIaX7aL&i?^wnFP`q4ZTl@o&Yvep z9*6(4&RK*P{~aaB{%1y|2ak+u|FhRKN8EP8Kld{t((x6#Ceu2Yg1oD8Nid zNfX6Kc~>U_BEoE;2H$!PFHb18-##s&QKa*_cr4rGBm$R2r1PfR2wbe7a<%gixri$j z>~=*p(ZG(%&2L@+x^n+Q%q&mk-Bc@nkQmouCW&5C;=i3DKO{b7F!?;;x2haKuXj6O z<K>pOB^4>@~%eBeIa!K4JEYCH|>Bb!C_s!Wif_>h^i_ z_5J%1%(J!eAg|G;casYcGsHBkiFv|g?@r`ky?-&95;D4j7bsq)j@t_fZzw z#7z_ZP8Pogd(F3PP2<`My$*f%Ff0qY&-VBKRoI1E{i`|!?6gWJO8;`BOh^zdB#+C!Dgbu6Hw+1X z8NJ`Mh!aNtGnU?F{!gB=u*W>_`Z`BX{&h60L;-gEP1WEamhJXxXq6nKmK1V5;CE9$aY(SK`94=$ayM?FU7%CD$%eUzx~a^4o@ z%a~X%p+i4Juu;oEABI@te>EK<=SBj&IvIGKAWtdZhWlec&qS)5Y6=;+C*bC{19!?Q z0T7EGdhy0#!!xf@`wB#xAk@)o5p#u8%)67qFV^fObn!Ya^s(QIHZyV3Q=dn(ZK+T> zEAQBIJ2fAEqSGm|{l*>y+qKelx@5u7RrPNR${VAL|2>aB3qH;|Z#D9e9M$#j0%DPu z4^Ix8<6|;_%c$bel&xBT;C0HTerK8RBsGbKwBUAvb;CqlF)5uuL9bqg46L*fGdjg& zKhjB{_*SaFg^A`;^?3NiyjJ3yf(9(xo7|p$)6-TNpEEE&)G$nGE}|cv zkGDSJTfRY8uj!(-X^-GBl9sMxsjZ=!(&|2j0l?a`F%a22a z%nd%d>Ub4$6$>I4zFBfLeIgFXmdO;QFlUA7MSl@@5ohXkIq6wl$(wnfOY=wGhwQh( zg@B#St84l(HQGP3JKT$jH|vDAo2dWT46N(nlg-M83>5Uw_SYH2+ouZ!p4goErLP?- z>G9Q7pQ{K|FC>r8-RB`J_LPp^9hXR)o+~FU2O+5EZ3y0nk$RzaXqJfNQ(~n5D0ceu zE4`M+^bKd@ng+ex9c%2+v`mE8%4K|iTm)vZ93hS>tO`G13<2|eY9CHbNH}J1FPo?- zd3QejFNmm(>AxP-E%g6&dHCzX*LPIoIpsx0OD}YaX9nJQ0%&wTS{k7HoBL-eQOnwI zo?B>!t{;(1PdlSwDyZ!;C0L}V06E*MxSjhrJB%{1U~(;Q-}cTpDJq9hB)I`3-$Q9w zK)?Q_aVBa6U!K0zlEOR>D4$NXuRmRMOuuk#0&ro2(l4AGkHh22?dDKGLJVlGU)f1> zR4yOrb^I%yT5O)!bsvn4y$Kz1iV72rtUCuPjRwja0W-ID?CCmp0Scf^9=7E5e}5BP zZIjTlCM}3^p|{d$_D*-U0eO4X3(=vAs$9PWm*1;--yz+#P2+YoP=-ur^%Cn!+KTU> zbHQijR*TAHM=L;H`#$!5O=7Ji#?mu!BCV&?;z!1H>Q5@POx zR`s_lsRB9@>SFe9*@oxrXHC2!Kf!a{;VQX<#&IZ*uU;)f)(e`jIwdCruBkm5@N2lb zJuH}{f5>vNjm;5BhA?i$IEW!84&9pJPSdy2jf#H67T<>m+=M{QX5t-(D-IvyO=~RX zm>*5svf?%img-rY?9e0YZ8o}=;$BlLQoc=oQ&s3!=oBokFMKT`CABotN-IU{G+In4 zl=D!nI4WwAq{ohJa7rY6-M1SaxTxgLt=k=a+xIeh@oPVL)Y)}2X6>dIGQqYFVR35BXFkwm+1CU!LPYH;3ZxwHqvHtG^3NCAf^7X*a0@{PO#R7d z0PZLhteSg1?sxtc9<8&V|F7fDvEax5&3I%5Mu)Y+sH6RMY;f=qJW{v4Qb{%P%9hF} zRPqD@bKVcQGB&o`A|mv<>`?S;V{i7YL+Kyg3qdHauM9g{2GRq3rN6JpOg?2Yb~;u) zLd!WBKL=v8fXPF2t=oEgyRFvbQv&%trMR`1q>W!d6BhsCnSGsq*uieN=P=JH=d z-HJ#%Bem)G+nCb;6^W@#(zR>)OkV9pI%j|d_Ch?l=BTpB6i`D1qEEst1Qzn9)Hrfp z`?Ylgo{8E{LZ$?K>fi8+i#4IKgbcWaJ&urF6#`tXZ|^VmwgDePfK8g1!n_H>x?eb! zt;|*L>@SK7gw~W-37K?;<8n^99gObF4hMO{IrKzUJv=34`Hb^C9JaH&rArPHWD zWY2xMp+IYH8FJC#dq(ZH{2E_!9}}k6>Bjnz_MaxR2o=AqKaD^1LN*gyR@s|Gz(SF; zn_aRh1*v*b_BhRg%>8Jelug_mfHq3~b_<2s=N`w)61bD5ZxTQAqAuGU`=35$+GcF3 zscOSzTWPU-_&iU8BY>9A&PPxb3_E?;4sac}6;Q3)WH0-PyF#Z9@!uSb|N1>{t0@1Y zPW@%oe*B+x>~im(>ZxkSsYOB5ugKQ$^|K#FPJYIj?HNq@!zU|uAql4T1K^KW|9}9+ zGc;O@`}127r-c*sCSq-rA$790^D9ih5@)9HAtQ0I=fgGs%>iiIjf{m;%CX?FA+UH^ zn?^0d3E3~tl8{jQC8pIkn0jDV{7y5oXb_%!qHYz&g?eO_H;t1;lxEu+C7p_=1o77E zT(cm)+xDQ-_?+se2ZE+%#$&Xbwt`E!V~DF^NFO$Cnvjr}sE_tSEX@JYjK#?FrN&daQEq^@wn+h!tbNT{nx+c)L8xC*L# zi8AIoc(>m4GKN_!8EAN5UmeJ>=NtEt$G?oZx6Lv>dH4!fRz~N=zZP5A3rAD7j4>t7 z|FDwUajXQH)_qP}YReqp?=nveus?LQow1kiD?YwD+?O#u_oX*&IIJURv*}v@n{EfS z=9o6!{{`O<(I{|(UC8y}qzJ(PG8iTSA=mCifB zQj+p)yv?uV1*{nx)}Z^K_v`+xJ43wZ;<)*9;z=}g;@S4!tl*V@kwE{JkpCwu_@lr3 zw<2gw6<0KB$}is;jBrgZsH88uXEk>$DKxYjAW>^+of1Kc}P^ zBwv7Ox0)F^ygE4SAZa`oqj!-j^El&?`-?8cIDnz;A(E%ta+I?mN`nUny^I9-ceOZh z1)QabSEsm5pG$A5>HsVf?8oVAeJa>%3XMS0%-UtXmEH;xS@q93>JbX%RCeL=_w;k* zXlRgmP>3f}3P{ne6OH2gzOpbqk}KDv_LW^-p#6bmx|!Y=pExTIE=Rj!0$(_*k*csu z_s`H(a!GQaWen&Omw&QzWx4T_(iYjQq^s=#^ubuiNeR7}?^t!ZfIs*ke$qWR$Sz?x zCWyqc`Dk30yzQWHtOjFFy>oh|;=tfK5uU_aHR$D0W=?@vsth%}7tz%inyCFAWA(}l zf`7dQm2I{eSe||r*H#sgB`JRL6SoHR#y8avI$4SdEI264H(AU9BRfrFaJJIj1oP#^ z)ikxror?_wqQVx3n`~7ZPO?#Ncz(^5m}H_M)xjL-KiBwd70Fm{EHO-AcT|$1@w40* zn909D8Z*vh&skgd#r(OQEw0qZuNh|y_k zi4(YfY_?gFQ5$t+nne2)SHk`P)#vhRBwt1=kRs23 zbT)02*~9CjbtVxc2UAI?+&f#oS{s*WWb@Q{Rx}oDI6YfWklOZ(U+5s~hz>cn!R&?2 zTPq&!Rk;unlA|$f_JtH<(d$V;F?YK~)7YO6w~=(tb`h6U`Fs z{C71^YB;XAS^qC;z>id>|GIDqD?2CLC{oYaw`jEb6-zDEL#YaQZ(_j5vg<_!*9_VE zuGi;HS(BBInO?A!PuOKSBB%ML(4hb~8q&^uDRrru8ysBA_VMTTGa5B~Dw`h_3aRj;%)rj7bH{xxxK{JHk($^OodYyP-le-58PADG@i;?|K- z8HiFj9qs+HXVh@FU4TfrtU&^TDU4Ah;7`eBllW)#$z`nk9-K!u%XsK)lf;XK!M@Mg*CSi*LQlQwcfqVrw+v^ zeO~c3ufsYdhC*79)K z*U3vCs#Yx#ie%$%i~VTN6c`O^Le*t3qxeRkM31T)v#H5DohCxH+i z)v@yLw%W93e^H*Xf3tky6aP$`J@<8w+PLnowG*CXZoeubx~Y}{li#nE-DkG1w*md~ z?LKf8;&wzboC6v$6BAOu8CBf)E^c7<@St=7i|F^ZNvUYIfcUfPjLW2plhR2#xB?&X zuUluJ^m*V0_(gF9AL@vkkYxG^FXzeJoC~5zj=X|Ut?7HZZi|I4;jzDiJ&auvV%4zi zJCv;TZ2cA*IqRf5D3Thpra9R3Twh;?*NF01MCu%{n%b-*W&j$->=S;&M#WcCfBYkw z;^>XY|3(6V?OHLH0|nokw~|L0!Sn4a}~n^zXXBQ@v-Hr z5Om&dgea!@)U^j@i|N?x+9_M>%H!5)M*NO)AL4roq6t3V} zyPAx@K5lM$kh&DskcLJgBT!@M&%NcB-J_Nc{Ca+)ET;ZV@j*#^$cvUfyH@dt7}fIu zPk?9sXE#bt_P-7xf5~#0r?wdzduF&oDD}Z@wbu3&?E@Cii(w}}Rry9eYxlMl0p&W& zX`%h)Xogu?vrqZr(o##>?+guez!^_hJ43^T@O;{iXoaO?92w$zeJ)8!DNgfk6n?p7 zGV@QNA#mJqDi`VZh}=uWyzf|BMF2oTnV#IlXDWiYX!Bg!;w2!STqkUtnz=3IS)V!^1d*M_zIWmP= zI^G4}{d_@;Bue84b$D&*e2H%a3E(oViFy-Uz82cgoC}je?+7$wzC`8)(SGY+?cCDJ z8a#2U@1WN-La5Zd_Rvv-4s7dfdtJ!wEpQNlqy>5A2C7CFSeLjPynt%^i}PQAb(@FukQLio+Uk$HvP0HP{N0$Wfjv@&+vnAYN}cjb0mXtCcZoJ%uSvP8m`ex zgHMNjnlMLt1&SX^6ymE!1p*B0H`@hKUX6?7h-&gobcTizQ*AU?G`a!%-GPu0eRy(y zRDbcW%{PMS{|6Oh=nd{V$3;h-=buGGqj%0m`e$^m>9Gc%DHhyLCTw_hV|4+L(>Z-v z2XOLu^Q`BZwoDwhwytvR0*DfPeRph!*vrDPTjnT6+2XaKU~UidSis02j0(GK zrHq%yYYsV^jI!HkBRBH%b%NUCKG46kdrivI75CYJAG%JECB&kTRDdDlz45@j2{d^S zPAa?Q9(GyEZpa!m0%G>(d=ipB%+^2?9+?71IF$h_gy~fq&Y@Gr^4>t&U#sY|o+k)P z3g>wg-xuZh0HI<9vRQa*7eyLgG9}<`@1qbrGu7$ob?g(&77wxrrHRP~cenfAr#tH?yd!Wg!LjV;Fk4^F zR9FV$qvl7SbnmL4D^&qHIYWWtn}i4h=JqCrj;vBtJ<)mwd%BqBI$o$?6wCp~rp~!l zDC7541e!!^2;nIIC~ejQn@5C!5Y(CVerS13YTdrd7sRWrgyd7e`EvV9?2D&T1KI^#ykMJ`5@bgO|ozAXQ=$K0W+h{IR8kU)KUPPJ9vaqobsp@?1>EsIZ9L#k(#`i~4E1d% z_s<*jqb%`IP4ICb6!1All0`4q`Z}0F(x)4xxY&9ZR2wYFr^!J(H*la_+pQ2Dcb*^A z7`lKtc+tEvog~w)qNR+eJpGzd;pIDmC0El-)C@U=2hi9I{h-W@$O0gsa8jyVUnrlF zEZJNLeh(Ko)kgMt7{#?n4S;$AeKoTn;YF*LsD`#9MFuT1r;@7)#rSG=x_tdeYakC~rWm*1U{R#rY-zv_hH>@7=E6=gAjEp%BMrEsbt6nm zRDW_oY@H9+(`BB_G|NY6Pr@s0euYU)m7KB+BHOgQ+P88S=u8mlE?pd2BIn^G`qqnm z7XUR?aV2*TQ9#tkSEwGJ^{Td4mHz8t@k5^W|1Lp+i_iVK-H#wa{6R4%nK zK!q=#04C$~WoeB7YqdfIPhjgsW4zcY?Bn5H=cS63x3@Ch6F!1js*RFzb`JjB&{Sl? zxI633mmFj{2wx3laMb+Gl>X>6184w$dIfRIvM@(rF>9#(`dN15I}+k)IVA>GGV1l+ zVOV10TupGa=(`ut>u0;J6USaNmAd5OdU{VSyZpBxCgDYLlR}$r1-@FRo($6kYra~U_1koA=1IM9S2a#g3IIUl{ZweA zm{Hzo@xzPvHTMU@VIzrbX=;KO?w(q`?E>HJqtT{op~eDBnk%v&0-EU3b-A@jw6jLZ5Xx+^U2;d6WpBy zsYO#Hgd0zvm!SF~T!3ZxMy|i;$xy2i#={;6(w_JzuOG2Q89AXqsiEi3b1*ZSgZ;XJ z^lReAXmj+w$PWN~jj?5Xmq%s0KJgwCQ{$fB+wpjsrU?iv=eYQ-SwmC?kGgBkck%FR zuPiFAT+pLGcx0C5;zB0P@*d zo*RYyj33qUj{yTzz2}0Y#7DutTwQFA`8Jb(mNY<Xzl$%W`O>z z^GMq2^zp-+khQIeQUgI7_&f`Fq=$L}FnSipEJ5e_|Dk~ZNLbR#|Lug}AsU^33O*10OVLYcMn|ms zB2@Z8KQRG6b+F6q(k5GsEt)?|W-SR`5Vf4Zci^ueo1-jW#?_sV64>%er)o%1$s9pI$aIH|jZU zs6o+hJ!B5$A~NAtoys`49r1qt!Eh^aLb}SMKPPCJ4cl~_;-avm=-NNMq+SX^gm`ZT z3T_)R?3Yx1^ohJrK**~+ZYN|xG4%(h4Ur#Cd#YvV*JV!GOni9`#>(bkG)ZmeCgEm~ zd33*rJX3GY(=FewtIME_QGih0nz&L?>N6G&SjO`z&O$Ras-4zP21Ea%{L9=mX5Iw& zO7Lrmey?S_jcsS6^zRb<)`AVW$ugx3X&BX0X&#ce)>jpFsJyGP>WxH*MP*&##k5t0 z@0mL+mYtQhLC28X0*&iu<4T>_o5zm^f|tz&uEr3tg*l`9vYt=cqVUbs{?#_~9-|0Z z)#gPZ9Co^0b4(Mte)FFaB2s(Ybu^iyV)t*U^AP}yh${QLPV0&|?wqgs8#!6def9tA zm}UKc7#(-QjaL=qxjrmjh_VRyh@d&xyAp4kYFZFYG0nmVfP!;J`KI4{&R{Q+OI#1w zvs)*kC)%$?!SC#K5RbxXogeCJF<>T&4XGrVy#1@aAbIP_%%Zkhu9)2cvx4I5p6Vu{ zseaqV5lPO*4d9j_^DIK-;3osQFXB*$igC!UmDu)prJO`Ag)M|-yfB~(a&$Ku(^jUX zDpDgXst9R~5|c^(WXHU>B}BlU#@(|%jc<1=g?w+cLTw5n+D=1quyv7zYFvT&i|+e}h|u+z5Hw%C60 z{>{P5dVj)>z+T&p+KSD_HHp^OZEHHiIs<02o>(7AfZGwCp4Gu(?!i^NS&_Ch50o81Xg9eRYhnU@QFd3gZskrJmClx#?ob^=u2BU-%xYF zVT;I=TeV(x4vp4suX=V8_~vaG@vu`s-b~8URb0IZtt}9i^G3PLD79Mg3@C9VT7Xsx z&;G*gprcuTXND--f6g7pug-M7{@XkS{7}6J&^PJ?O-i_9n9(D9Yxh@ME2)@!)S@22 z**E&^x{!W~W;?Gr^6SLi_$24gU0trX9RlV(0A(_AQ==ti%x_KC9oO=ZQzg4Mmtdzr z*o9LnWzIv?Bv5Y@`l}kVGwn{MUI+|>Tq0 zC1bfFiQjT2y_@P(dS`6od5#>5ZO5cY@AA-bJOfB&$5$Y_5ZSSu}QY*gRs$o!#1{v#o}Kx49;s{M@YN-9CX)7&W9SF*xlt zV_k?K556V5E++`H$aLb>qJo8)Sd&DzrS&cVl4}1xI?zBUMu3 z??JxS+*pGL7GjUqG-&WtP7>GxT$yb3`BP}KnnHre>NDEFKS#`Sl#O(L^m);L z+>49ST8{Y2`3M!)znVqOM<*oZD2kC9RIBw2r1g$gPAL&(@o|2!=r30}n#)~WmY?YH zis(SvBJ~18Xdg7cr~S}BZ*m8Ex%Ow{ppRv_A$s*8xjj>r0d17#s&Uuzw9m@rKT8?F ztRZ9rpbIA&Ujt-#v>et2ur~$Yh9&tTObg{=iVhmbvZ3cCzXSuzJ_ zvam3ndHSUp>>msCFmWuJy58CIR}7Z9>N zCaQ&1>#S@7yQ%M}%F-czz@^?`L2auoEjwyk~u9 zvj-xCgkvn}Hz5c651JdGCei)3?)M6gXE;;j_7b2vCBKbo%^%!lo^JgG{65vri ztkH(~GIDrelYs`RdhC&^4$)h|NassoCOw~#Y!t4YML*FpMO>Fm3LEAYu=s3Z^M@2J zVasFE-FfjqtUZT+#6~)kaKnnWDlo_atK--F?+Kjo_q)RVOCJ5Pdl7gU@9-$Ri&j!l ztY~`UWmH{1B{0xgpQi9%n;=b;U!4LU9}y$~O;3LvSW{EK%vbL(`{Bmnkw-#?5;pSf zi1ZYPzc^ptUk^|@YHzf?QEq~6>&{tCbISC(ew?KcVzBFjo^myL$hczSGjqpAxZr`8 zcnaES&EqXuuNOlX7|@OnUHKEF6fL2Jp9JGd8Jy9(YcjmP%D2rzkIZV=ulBo_C~4iN z`8yHb+jc_o3*+K z6q`Wjdru@&dnN9;l+=Dfyq!0l_q7~~RQ=YXyk?Bb{~cUbDuIdR_>!6jaIxVo9a<>` zb15}h0WiTW{xZ9dn0F#-QG!@x)GRAsq6`3No_^7>UiJ2dbY;UqEJDjGQzt0~t@2@E zojcU<&KmsFjdxy;YeFwO3$Hfj72XWUq)d&EtinoxYH;@D@|gpnU;PtpJ2gj9CLP26 zldb{!Hiy;MUF{*ldO-vI%EqM8a=G=_H%=S-I{%}h)31oBk-uG)8K*##q(Lz8GGUR zI8YGqpKTU5$6rh2g`XV%IcB`U_u*k-CpT2jfApfxCWAl>ZS&WP#D_uWCmHP#)*@Yf z&|BW^m_L>;RO4h~RXXmV>A1jsotOI&#Zf%~GHyc~=O_qgU;wgtTv=gAUePFY&`&zkTal} z#G0=Ke24Vx%YhZS0Xwzsd|tuI!SN*$vcr&LO#$ehv^_udHXJwWspzGnrT{`-fbEfO zG&~u5;Rt@AC;il|G=#(9+n7c(#xTh!$Q)v$nz^-ceRg#p+*${itkIJO9KVAIKLlfL zi7Me;xAv#%Fol^kk>;>ME|enxQI^qfmYO^V6iAKh@v+=2g)L%a=X{^2Wq*NLbZ0yMha+ctv3-cHYPi29%$O7X}|ToaAuhX2okV z8wbDii;@<--7a$gDCywb5yq33! z!8zJuEQZsoCmO7PlYyqxE${sri<5S(O8T4m%$&>t?>Fs0NvyWjm0VyD5^oT> zXdBFPD=4p$r{}MkVaer&tf=re3X?`X*1(+vj6bs2&?u=bm&EI^{gqoq@O;9mGf!J; zOl~-0t~6R@2Rqcl)|Y_<77;ydU>m-1J?#*B{Gv%M4%PIvV{A|aZ82Rl_1a&+#I?d# zPj;4u*FpWXsnkV0bd;1K0vU5XMsoSnJlSeYe=(OPt^DfR^sRws7=JnqMo#>*_WPbb zwEDf&U3$N5*Ck6V@$He9J?I!-l6`OzJddwe+5sHUA5wyA7e}1nh@x5W;jw})lN8Xzz0j!-w4Ns%|h z(qfZ}lwXwd3J)<$NjTqsRU_~sj5Uq*mcPxi(Kwnu!wLvgN5zO0XtfrjX@g*tv> z?a>=cMd=_n^ZW_?r*Kk?hU>#V{9<;XA!(&+dVZZd5V}I(?wpA-@vFN1rkL1L99C59 z0;I%>f#3dq4Vk_^E=O$l$Z7M=OB6ka{7CDC%7~Wa7Ne{~=B=z2j3U={^ROJO%{v;Ns^=8%T8;;&UQ#22sX2z|t#D{tplIcW5G5L(Xo}@j6;WXr33Hf+? zNY7IWXXk)uc8rsEiuu)7;zl{93Q@WtSp&}SWlEJvnLIPF7ozqNpek_ zSRPA0dkTK}dqdq#pP>s{8+7`Ujj^eBhMzKlnrc4fB#j~>M+B}qI&VUH_j18-pN`{t zk>1jr>-^1z-LWSfW-MThmnMxX=%%Z`OYh%Cr(qNBF|m0qx8|LfKbl?(8&Yr`I1DgY zy9ePx*u5Ed?ea58&U(lDXSh|Vlyu`kYndLtWI+)I9l{$T;WZ6erQv8PlK7Mep|Vt} zr38x$t|Kn&Mw&BqL)Lj1ga%QxYb3MwgjW5iEYCurm@|WK=hcp7ApDgyOh+Gq>4;#>}~6pM4aSw`igUqF^Pe!#VMn9|V3G2S7l`<;wV@s7(kE1K%2)_`aL z99(+*?9FfERXzAh9%I|BvW0R+;UL7&hGUF@I5_5_*PV*XLi=HXyd`o$qimv@BlS_j z3zKn=t1T36dWG}#r>&S0BHABcG@9T>%C|DSluXGaqsfJQd{Fgz>W#4MFrHPayCm%WhVvg*Cd;;iq;e+ z2k;CJsd!@dE%lby$8)%bg?SI^cK%4bn8QEa-tBch+R*x8@;s>&WM4mBs&Z@1DGj`R ztLZkCj)sbYKqFDvzIrW>%wbx>?y!l%2=|jdX|3rsUFzlG!k$K2e5((GB`Ucq{E!RQ za1yqUzl&)7=WXP03D!NL`LDMW@ZG_BQI-YU=_|CQ!i^`pNi(}MeNrY6Z*!yPSQP)~ z-F`%%ruczXNQgYV%6i>Oc9cB90^t^TDE*34zgjCgALvuWQp}CU{LUY+P$@x6YbbPw zcBBp;yHA91*n^g&p~Cp!=c{*6$kum=_vhVR=LElmmKD%q>Ij#dr# zfD#gdkugZ*`fUaf95U@|3iGGmqkrW4e8}1Nno{Bt3~Fh|KxXalBii?klM?{$ajhw$ z{p(*lnHE^n6cyIwj>L}n^!3(h_a5HMtEEH0vF~e!6{L;ClSId}?V0{qPNqBGtypkV zdPEP-*(Y=Mlj7Q0Qb?72&WexmQSNiPf-qk6XZb=}>hTT_p4Wd3RUyV_h_Pxv&rXnzf2?-QJ<_Ve1Z2N&qMjdQ!Xh5K(dI2dCWar zb;N!qyugJ_z!Z71@Jx{wmhLHP#xl737aiO~-?~-@?zD4t@}OmE*5o8OH)WTqMMZwx zxAGINIT4kQxOJyz+;WY>Yk67N_{?BkvSzeGuzpCLL9ewkv{J7p-{H-36Ud9kg?8)J z7o~{qx|uD7-@5@SV0I=Ac7nsU@8%<uUWi4ZLIjvtv$Cht7y^dkc_cBcN)H#=A3U&DA? zpeH=@J}?1}0x{0}OgzS%ay>u2#%_$xd}~(r9_AfYjjzK`mTfHIBX3Gv4$d@H zd}ZS~|NL3SlmL)RwnBb>w&TAw5s|!+S&JsTX7zQt$+(d_Mbozk|K8fc#mGC$JJ#qI zsk?(KN13tcyhEQpf7I>Baoby|Av#3oMdQZcFM7txja{umjUZ>N)5z+RRODTFD|NfT z9cd*~Nt91o1Go#H;zjI#Gt$?bv zysX;{H*KxuqaPL&1RqQ~#q3O%ARrvpAtN93ib3=K?HC!!TWwqlTMMQf+OQd(|)|4Q8v zgPDAYBA7g@C>{X4l;tIq{;6j^>tw0_fW5}{Dwk0C)^7cG)0NiVa;}8Mf*r)~`>msp zo?D8PSe+I*Ws}{GKjRoyrQ}iGA=ehL^WdnV->zT?uqpI+e z2FtF3dSV?|QFeOV7P2l*_=-$QU78HcB2rGo|i~~ew;KtZyF}9uUUgO zsZxKeagbJo@y-p>tPBU)BGC+Xk

iyCk?n7y4|U6#(}G6XDtMHDI84$E{^1VfHRr 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 A!~g&Q literal 0 HcmV?d00001 diff --git a/assets/images/woori_logo.png b/assets/images/woori_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a65292158fa8b6af03f1d7043daf7687f94724f7 GIT binary patch literal 26244 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 ajbbxkmEZ;4_q{wqq5fLyRhhCy;Qs(zGEkBL literal 0 HcmV?d00001 diff --git a/lib/features/auth/widgets/bottom_nav.dart b/lib/features/auth/widgets/bottom_nav.dart index 417c6f5..6685848 100644 --- a/lib/features/auth/widgets/bottom_nav.dart +++ b/lib/features/auth/widgets/bottom_nav.dart @@ -4,6 +4,8 @@ import 'package:guardpayfront/features/auth/screens/home_screen.dart'; import 'package:guardpayfront/features/auth/services/api_service.dart'; import 'package:guardpayfront/features/map/screens/map_screen.dart'; +import '../../bank/screens/account_selection_screen.dart'; + class BottomNav extends StatelessWidget { final int selectedIndex; @@ -34,7 +36,11 @@ class BottomNav extends StatelessWidget { // TODO: 쇼핑 화면 break; case 3: - // TODO: 송금 화면 + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const AccountSelectionScreen()), + (route) => false, + ); break; case 4: Navigator.pushAndRemoveUntil( diff --git a/lib/features/bank/models/transfer_models.dart b/lib/features/bank/models/transfer_models.dart new file mode 100644 index 0000000..75ecb31 --- /dev/null +++ b/lib/features/bank/models/transfer_models.dart @@ -0,0 +1,69 @@ +// 1. 내 계좌 정보 모델 +class MyAccount { + final String accountName; + final int balance; + final String currency; + + MyAccount({ + required this.accountName, + required this.balance, + required this.currency, + }); + + // [추가] 서버 JSON 데이터를 객체로 변환하는 공장(Factory) 메서드 + factory MyAccount.fromJson(Map json) { + return MyAccount( + accountName: json['accountName'] ?? '알 수 없음', + balance: json['point'] ?? 0, + currency: json['currency'] ?? 'KRW', + ); + } +} + +// 2. 송금 대상(수취인) 모델 +class Beneficiary { + final int beneficiaryId; + final String bankName; + final String accountNumber; + final String accountHolderName; + final String? nickname; // 별칭은 없을 수도 있음 + + Beneficiary({ + required this.beneficiaryId, + required this.bankName, + required this.accountNumber, + required this.accountHolderName, + this.nickname, + }); + + factory Beneficiary.fromJson(Map json) { + return Beneficiary( + beneficiaryId: json['id'] ?? 0, // 서버 필드명 확인 필요 (id 혹은 beneficiaryId) + bankName: json['bankName'] ?? '', + accountNumber: json['accountNumber'] ?? '', + accountHolderName: json['accountHolderName'] ?? '', + nickname: json['nickname'], + ); + } +} + +// 3. 송금 결과 모델 (성공 시 리워드 정보 등) +class TransferResult { + final bool success; + final String message; + final int? rewardPoints; + + TransferResult({ + required this.success, + required this.message, + this.rewardPoints, + }); + + factory TransferResult.fromJson(Map json) { + return TransferResult( + success: true, // 200 OK로 왔다면 성공 + message: json['message'] ?? '송금 완료', + rewardPoints: json['rewardPoints'], // 리워드가 있다면 매핑 + ); + } +} \ No newline at end of file diff --git a/lib/features/bank/screens/account_selection_screen.dart b/lib/features/bank/screens/account_selection_screen.dart new file mode 100644 index 0000000..e79ecfe --- /dev/null +++ b/lib/features/bank/screens/account_selection_screen.dart @@ -0,0 +1,281 @@ +import 'package:flutter/material.dart'; +import 'package:guardpayfront/core/services/storage.dart'; // AppStorage import 확인 +import '../../auth/widgets/bottom_nav.dart'; +import '../models/transfer_models.dart'; +import '../services/transfer_service.dart'; +import 'mock_transfer_screen.dart'; + +class AccountSelectionScreen extends StatefulWidget { + const AccountSelectionScreen({super.key}); + + @override + State createState() => _AccountSelectionScreenState(); +} + +class _AccountSelectionScreenState extends State { + final TransferService _service = TransferService(); + final _storage = AppStorage.storage; // 저장소 인스턴스 + + // 토큰을 저장할 변수 (처음엔 null) + String? _accessToken; + bool _isLoadingToken = true; // 토큰 로딩 상태 + + Future? _myAccountFuture; + Future>? _beneficiariesFuture; + + @override + void initState() { + super.initState(); + _initializeScreen(); + } + + // [중요] 저장소에서 토큰을 꺼내고 데이터 로딩 시작 + Future _initializeScreen() async { + // 1. 저장된 토큰 읽기 + final token = await _storage.read(key: 'accessToken'); + + if (mounted) { + setState(() { + _accessToken = token; // 읽어온 토큰 저장 + _isLoadingToken = false; // 로딩 끝 + }); + + // 2. 토큰이 있으면 API 호출 시작 + if (_accessToken != null) { + _myAccountFuture = _service.getMyAccount(_accessToken!); + _beneficiariesFuture = _service.getBeneficiaries(_accessToken!); + } else { + // 토큰이 없으면 로그인 화면으로 보내거나 에러 처리 + print("⚠️ 저장된 토큰이 없습니다. 로그인이 필요합니다."); + } + } + } + + @override + Widget build(BuildContext context) { + // 토큰을 불러오는 중이면 로딩 표시 + if (_isLoadingToken) { + return const Scaffold( + backgroundColor: Color(0xFFF9F5E8), + body: Center(child: CircularProgressIndicator()), + ); + } + + // 토큰이 없으면 로그인 유도 (간단한 예외처리) + if (_accessToken == null) { + return const Scaffold( + backgroundColor: Color(0xFFF9F5E8), + body: Center(child: Text("로그인 정보가 없습니다. 다시 로그인해주세요.")), + ); + } + + return Scaffold( + backgroundColor: const Color(0xFFF9F5E8), + bottomNavigationBar: const BottomNav(selectedIndex: 3), + body: SafeArea( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 30), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 15), + const Padding( + padding: EdgeInsets.only(left: 20), + child: Text( + "GuardPay", + style: TextStyle(fontSize: 40, fontWeight: FontWeight.bold, color: Color(0xFF49A65E)), + ), + ), + const SizedBox(height: 25), + + // [1] 내 계좌 정보 + FutureBuilder( + future: _myAccountFuture, + builder: (context, snapshot) { + if (snapshot.hasData) { + return _myAccountCard(snapshot.data!); + } else if (snapshot.hasError) { + return const Text("계좌 정보를 불러올 수 없습니다."); + } + return const Center(child: CircularProgressIndicator()); + }, + ), + + const SizedBox(height: 35), + const Padding( + padding: EdgeInsets.only(left: 20), + child: Text( + "송금할 계좌를 선택해주세요", + style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500, color: Colors.black54), + ), + ), + const SizedBox(height: 15), + + // [2] 송금 대상 목록 + FutureBuilder>( + future: _beneficiariesFuture, + builder: (context, snapshot) { + if (snapshot.hasData) { + final list = snapshot.data!; + if (list.isEmpty) return const Text("표시할 계좌가 없습니다."); + + return ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: list.length, + itemBuilder: (context, index) { + return _accountItem(context, list[index]); + }, + ); + } else if (snapshot.hasError) { + return Text("오류 발생: ${snapshot.error}"); + } + return const Center(child: CircularProgressIndicator()); + }, + ), + ], + ), + ), + ), + ); + } + + Widget _myAccountCard(MyAccount account) { + return Container( + height: 135, + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + ), + child: Row( + children: [ + const Icon(Icons.money, color: Color(0xFFFFC93C), size: 40), + const SizedBox(width: 20), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text("내 계좌", style: TextStyle(fontSize: 17, color: Colors.black54)), + const SizedBox(height: 6), + Text("${account.balance}원", style: const TextStyle(fontSize: 22, fontWeight: FontWeight.bold)), + Text(account.accountName, style: const TextStyle(fontSize: 13, color: Colors.black54)), + ], + ) + ], + ), + ); + } + + Widget _accountItem(BuildContext context, Beneficiary beneficiary) { + return Container( + height: 90, + margin: const EdgeInsets.only(bottom: 30), + padding: const EdgeInsets.symmetric(horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + ), + child: Row( + children: [ + _buildBankLogo(beneficiary.bankName), + const SizedBox(width: 15), + + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, // 세로 중앙 정렬 + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 1. [수정] 예금주 (은행이름) 순서로 표시 + Text( + beneficiary.accountHolderName.isNotEmpty + ? "${beneficiary.accountHolderName} (${beneficiary.bankName})" + : beneficiary.bankName, + style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 18), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + + const SizedBox(height: 6), + + // 2. 계좌 번호 + Text( + beneficiary.accountNumber, + style: const TextStyle(fontSize: 18, color: Colors.black87), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + + InkWell( + onTap: () { + // [중요] 저장소에서 꺼낸 진짜 토큰(_accessToken)을 다음 화면으로 넘깁니다. + if (_accessToken != null) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => MockTransferScreen( + beneficiary: beneficiary, + accessToken: _accessToken!, + ), + ), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("오류: 토큰이 없습니다.")), + ); + } + }, + borderRadius: BorderRadius.circular(20), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 13, vertical: 8), + decoration: BoxDecoration( + color: const Color(0xFF49A65E), + borderRadius: BorderRadius.circular(10), + ), + child: const Text("선택", style: TextStyle(color: Colors.white)), + ), + ), + ], + ), + ); + } +} + +// [추가] 은행 이름에 따라 로고 이미지를 반환하는 함수 +Widget _buildBankLogo(String bankName) { + String imagePath = 'assets/images/default_bank.png'; // 기본 이미지 + + // 은행 이름에 따라 이미지 경로 설정 (이미지 파일명은 본인이 저장한 대로 수정 필요) + if (bankName.contains('토스')) { + imagePath = 'assets/images/toss_logo.png'; + } else if (bankName.contains('카카오')) { + imagePath = 'assets/images/kakaobank_logo.jpg'; + } else if (bankName.contains('신한')) { + imagePath = 'assets/images/shinhan_logo.png'; + } else if (bankName.contains('국민')) { + imagePath = 'assets/images/kb_logo.png'; + } else if (bankName.contains('우리')) { + imagePath = 'assets/images/woori_logo.png'; + } else if (bankName.contains('하나')) { + imagePath = 'assets/images/hana_logo.png'; + } else if (bankName.contains('농협')) { + imagePath = 'assets/images/nh_logo.png'; + } else if (bankName.contains('기업')) { + imagePath = 'assets/images/ibk_logo.png'; + } + + return CircleAvatar( + radius: 26, + backgroundColor: Colors.transparent, // 배경 투명하게 + // 이미지 파일이 있다면 AssetImage, 없다면(네트워크) NetworkImage 사용 + // 여기서는 로컬 에셋을 사용한다고 가정합니다. + backgroundImage: AssetImage(imagePath), + + // 만약 이미지가 없을 때 깨지는 걸 방지하려면 아래처럼 에러 처리가 가능한 위젯을 써야 함 + onBackgroundImageError: (exception, stackTrace) { + print("이미지 로드 실패: $imagePath"); + }, + ); +} \ No newline at end of file diff --git a/lib/features/bank/screens/mock_transfer_screen.dart b/lib/features/bank/screens/mock_transfer_screen.dart new file mode 100644 index 0000000..f472007 --- /dev/null +++ b/lib/features/bank/screens/mock_transfer_screen.dart @@ -0,0 +1,335 @@ +import 'package:flutter/material.dart'; +import '../models/transfer_models.dart'; +import '../services/transfer_service.dart'; +import 'transfer_success_screen.dart'; + +class MockTransferScreen extends StatefulWidget { + final Beneficiary beneficiary; + final String accessToken; + + const MockTransferScreen({ + super.key, + required this.beneficiary, + required this.accessToken, + }); + + @override + State createState() => _MockTransferScreenState(); +} + +class _MockTransferScreenState extends State { + // 입력 컨트롤러 + final TextEditingController _accountNumberController = TextEditingController(); + final TextEditingController _amountController = TextEditingController(); + + final TransferService _service = TransferService(); + + // 은행 선택 드롭다운 상태 관리 + String? _selectedBank; + final List _bankList = [ + '국민은행', '신한은행', '하나은행', '우리은행', 'NH농협은행', + 'IBK기업은행', '카카오뱅크', '토스뱅크' + ]; + + bool isTransferReady = false; + bool isLoading = false; + + @override + void initState() { + super.initState(); + _accountNumberController.addListener(_checkValidity); + _amountController.addListener(_checkValidity); + } + + @override + void dispose() { + _accountNumberController.dispose(); + _amountController.dispose(); + super.dispose(); + } + + void _checkValidity() { + setState(() { + isTransferReady = _accountNumberController.text.isNotEmpty && + _selectedBank != null && + _amountController.text.isNotEmpty; + }); + } + + Future _performTransfer() async { + if (!isTransferReady) return; + + String inputNumber = _accountNumberController.text.replaceAll('-', ''); + String targetNumber = widget.beneficiary.accountNumber.replaceAll('-', ''); + + bool isBankMatch = _selectedBank == widget.beneficiary.bankName; + bool isAccountMatch = inputNumber == targetNumber; + + if (!isBankMatch || !isAccountMatch) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("계좌 정보를 다시 확인해주세요"), + duration: Duration(seconds: 2), + backgroundColor: Colors.redAccent, + ), + ); + return; + } + + setState(() => isLoading = true); + + try { + await _service.postTransfer( + accessToken: widget.accessToken, + toBeneficiaryId: widget.beneficiary.beneficiaryId, + amount: int.parse(_amountController.text), + ); + + if (!mounted) return; + + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const TransferSuccessScreen()), + ); + } catch (e) { + if (!mounted) return; + String errorMsg = e.toString().replaceAll("Exception: ", ""); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("송금 실패: $errorMsg")), + ); + } finally { + if (mounted) setState(() => isLoading = false); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF9F5E8), + appBar: AppBar( + backgroundColor: const Color(0xFFF9F5E8), + elevation: 0, + leading: Padding( + padding: const EdgeInsets.only(left: 8.0, top: 18.0), + child: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), + ), + ), + ), + body: SafeArea( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 10), + const Padding( + padding: EdgeInsets.only(left: 20), + child: Text( + "선택한 계좌로 송금하세요!", + style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500, color: Colors.black54), + ), + ), + const SizedBox(height: 15), + + _selectedAccountCard(), + + const SizedBox(height: 40), + + const Text( + "어떤 계좌로 돈을 보낼까요?", + style: TextStyle(fontSize: 27, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 10), + + TextField( + controller: _accountNumberController, + keyboardType: TextInputType.number, + style: const TextStyle(fontSize: 18, color: Colors.black), + decoration: const InputDecoration( + labelText: "계좌번호 입력", + labelStyle: TextStyle(fontSize: 22, fontWeight: FontWeight.w500, color: Colors.grey), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Colors.grey), + ), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Color(0xFF49A65E), width: 2), + ), + ), + ), + const SizedBox(height: 20), + + DropdownButtonFormField( + value: _selectedBank, + hint: const Text("은행 선택", style: TextStyle(fontSize: 22, fontWeight: FontWeight.w500, color: Colors.grey)), + icon: const Icon(Icons.keyboard_arrow_down, color: Colors.grey), + style: const TextStyle(fontSize: 18, color: Colors.black), + decoration: const InputDecoration( + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Colors.grey), + ), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Color(0xFF49A65E), width: 2), + ), + ), + items: _bankList.map((String bank) { + return DropdownMenuItem( + value: bank, + child: Text(bank), + ); + }).toList(), + onChanged: (String? newValue) { + setState(() { + _selectedBank = newValue; + _checkValidity(); + }); + }, + ), + + const SizedBox(height: 50), + + const Text( + "얼마를 보낼까요?", + style: TextStyle(fontSize: 27, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 20), + + TextField( + controller: _amountController, + keyboardType: TextInputType.number, + style: const TextStyle(fontSize: 24, fontWeight: FontWeight.w500), + decoration: const InputDecoration( + hintText: "금액", + hintStyle: TextStyle(fontSize: 22, fontWeight: FontWeight.w500, color: Colors.grey), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Colors.grey), + ), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: Color(0xFF49A65E), width: 2), + ), + ), + ), + + const SizedBox(height: 100), + + GestureDetector( + //onTap: (isTransferReady && !isLoading) ? _performTransfer : null, + onTap: () { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const TransferSuccessScreen()), + ); + }, + + child: Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 16), + decoration: BoxDecoration( + //color: isTransferReady ? const Color(0xFF49A65E) : Colors.grey[300], + color: const Color(0xFF49A65E), + borderRadius: BorderRadius.circular(10), + ), + alignment: Alignment.center, + child: isLoading + ? const SizedBox( + height: 24, + width: 24, + //child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), + ) + : const Text( + "송금하기", + style: TextStyle( + color: Colors.white, + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + + const SizedBox(height: 30), + ], + ), + ), + ), + ); + } + + // [수정됨] 이전 화면(_accountItem)과 동일한 디자인 + Widget _selectedAccountCard() { + return Container( + height: 100, // 이전 화면과 높이 비슷하게 맞춤 + padding: const EdgeInsets.symmetric(horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + ), + child: Row( + children: [ + // 로고 표시 + _buildBankLogo(widget.beneficiary.bankName), + const SizedBox(width: 15), + + // 텍스트 정보 + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.beneficiary.accountHolderName.isNotEmpty + ? "${widget.beneficiary.accountHolderName} (${widget.beneficiary.bankName})" + : widget.beneficiary.bankName, + style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 18), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 6), + Text( + widget.beneficiary.accountNumber, + style: const TextStyle(fontSize: 18, color: Colors.black87), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + // '선택' 버튼은 이미 선택되었으므로 제거함 + ], + ), + ); + } + + // [추가] 로고 이미지를 불러오기 위한 함수 (이전 화면에서 가져옴) + Widget _buildBankLogo(String bankName) { + String imagePath = 'assets/images/default_bank.png'; + + if (bankName.contains('토스')) { + imagePath = 'assets/images/toss_logo.png'; + } else if (bankName.contains('카카오')) { + imagePath = 'assets/images/kakaobank_logo.jpg'; + } else if (bankName.contains('신한')) { + imagePath = 'assets/images/shinhan_logo.png'; + } else if (bankName.contains('국민')) { + imagePath = 'assets/images/kb_logo.png'; + } else if (bankName.contains('우리')) { + imagePath = 'assets/images/woori_logo.png'; + } else if (bankName.contains('하나')) { + imagePath = 'assets/images/hana_logo.png'; + } else if (bankName.contains('농협')) { + imagePath = 'assets/images/nh_logo.png'; + } else if (bankName.contains('기업')) { + imagePath = 'assets/images/ibk_logo.png'; + } + + return CircleAvatar( + radius: 26, + backgroundColor: Colors.transparent, + backgroundImage: AssetImage(imagePath), + onBackgroundImageError: (exception, stackTrace) { + print("이미지 로드 실패: $imagePath"); + }, + ); + } +} \ No newline at end of file diff --git a/lib/features/bank/screens/transfer_success_screen.dart b/lib/features/bank/screens/transfer_success_screen.dart new file mode 100644 index 0000000..3699052 --- /dev/null +++ b/lib/features/bank/screens/transfer_success_screen.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; + +class TransferSuccessScreen extends StatelessWidget { + const TransferSuccessScreen({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF7F3E9), + body: SafeArea( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 120), + const Icon( + Icons.check_circle, + size: 80, + color: Color(0xFF4CAF50), + ), + const SizedBox(height: 24), + const Text( + "송금이 완료되었습니다", + style: TextStyle(fontSize: 20, fontWeight: FontWeight.w600), + ), + const SizedBox(height: 8), + const Text( + "100p가 지급됩니다", + style: TextStyle(fontSize: 18), + ), + const Spacer(), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 40, vertical: 40), + child: SizedBox( + width: double.infinity, + height: 55, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF60B862), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + onPressed: () { + Navigator.popUntil(context, (route) => route.isFirst); + }, + child: const Text( + "메인으로", + style: TextStyle(fontSize: 18, color: Colors.white), + ), + ), + ), + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/bank/services/transfer_service.dart b/lib/features/bank/services/transfer_service.dart new file mode 100644 index 0000000..80ecee0 --- /dev/null +++ b/lib/features/bank/services/transfer_service.dart @@ -0,0 +1,143 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; +import '../models/transfer_models.dart'; + +class TransferService { + // 💡 에뮬레이터용 주소: http://10.0.2.2:8080/api/v1 + final String _baseUrl = "http://10.0.2.2:8080/api/v1"; + + // [개선된 응답 처리기] 성공/실패 및 다양한 에러 메시지 포맷 대응 + dynamic _handleResponse(http.Response response) { + // 1. 디버깅용 로그 출력 (서버 응답 확인용) + String decodedBody = utf8.decode(response.bodyBytes); + print("📥 [API] Status: ${response.statusCode}"); + print("📥 [API] Body: $decodedBody"); + + final dynamic body; + try { + body = json.decode(decodedBody); + } catch (e) { + throw Exception('서버 응답이 JSON 형식이 아닙니다. (${response.statusCode})'); + } + + // 2. 성공 (200 OK) 처리 + if (response.statusCode == 200) { + // 백엔드가 { "status": 200, "data": ... } 형태로 감싸서 줄 때 + if (body is Map && body.containsKey('data')) { + return body['data']; + } + // 백엔드가 껍데기 없이 바로 데이터를 줄 때 + return body; + } + + // 3. 실패 (400 Bad Request, 500 Error 등) 처리 + else { + String errorMessage = '알 수 없는 오류가 발생했습니다.'; + + // 에러 메시지 추출 시도 ('message' 또는 'error' 필드) + if (body is Map) { + errorMessage = body['message'] ?? body['error'] ?? errorMessage; + } else if (body is String) { + errorMessage = body; + } + + print("🚨 [API Error] $errorMessage"); + throw Exception(errorMessage); + } + } + + // [안전한 인증 헤더 생성기] + Map _authHeaders(String accessToken) { + // Bearer 중복 방지 및 공백 제거 + String cleanToken = accessToken; + if (accessToken.startsWith('Bearer ')) { + cleanToken = accessToken.substring(7); + } + cleanToken = cleanToken.trim(); + + return { + 'Content-Type': 'application/json; charset=UTF-8', + 'Authorization': 'Bearer $cleanToken', + }; + } + + // ------------------------------------------------------------------------ + +// 1. 내 계좌 정보 조회 (API 실패 시 더미 데이터 반환하도록 수정) + Future getMyAccount(String accessToken) async { + try { + // 1. API 호출 시도 + final url = Uri.parse('$_baseUrl/users/me/points'); + final response = await http.get( + url, + headers: _authHeaders(accessToken), + ); + + if (response.statusCode == 200) { + final data = _handleResponse(response); + return MyAccount.fromJson(data); + } else { + // 2. 404 등 에러 발생 시 로그 출력 후 예외 발생시켜서 catch로 보냄 + print("⚠️ [API Error] 내 포인트 조회 실패 (Status: ${response.statusCode})"); + throw Exception("API Error: ${response.statusCode}"); + } + } catch (e) { + // 3. [중요] 에러가 나도 앱이 멈추지 않게 '임시 데이터'를 반환 + print('❌ 내 계좌 조회 에러 발생: $e'); + print('👉 임시 데이터를 사용하여 화면을 표시합니다.'); + + // 백엔드 API가 고쳐질 때까지 사용할 임시 데이터 + return MyAccount( + balance: 5000000, // 임시 잔액 500만원 + accountName: "GuardPay 임시 통장", + currency: "KRW", + ); + } + } + + // 2. 송금 대상 목록 조회 (랜덤 4명) + Future> getBeneficiaries(String accessToken) async { + try { + final url = Uri.parse('$_baseUrl/beneficiaries/random'); + + final response = await http.get( + url, + headers: _authHeaders(accessToken), + ); + + final dynamic data = _handleResponse(response); + + // 리스트 데이터 처리 + List list = data is List ? data : []; + return list.map((json) => Beneficiary.fromJson(json)).toList(); + } catch (e) { + print('❌ 송금 대상 조회 실패: $e'); + rethrow; + } + } + + // 3. 송금하기 (POST) + Future postTransfer({ + required String accessToken, + required int toBeneficiaryId, + required int amount, + }) async { + try { + final url = Uri.parse('$_baseUrl/beneficiaries/$toBeneficiaryId/transfer'); + + final response = await http.post( + url, + headers: _authHeaders(accessToken), + body: json.encode({ + 'amount': amount, + }), + ); + + final data = _handleResponse(response); + return TransferResult.fromJson(data); + } catch (e) { + print('❌ 송금 실패: $e'); + rethrow; + } + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index f06f63b..ebb765e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,8 @@ import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:guardpayfront/features/bank/screens/account_selection_screen.dart'; +import 'package:guardpayfront/features/bank/screens/mock_transfer_screen.dart'; import 'package:guardpayfront/features/quiz/screens/quiz_screen.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; @@ -96,6 +98,7 @@ class MyApp extends StatelessWidget { '/assessment': (context) => const AssessmentScreen(), '/quizCategory': (context) => const QuizCategoryScreen(), '/quiz': (context) => const QuizScreen(), + '/accountSelection': (context) => const AccountSelectionScreen(), '/mypage': (context) => const MypageScreen(), // ✅ 예방 영상 관련 라우트 (오류 수정 완료) '/video': (context) => VideoCategoryScreen(), From 5324ab0f2b64772a2c337de2d1fb8983d9764215 Mon Sep 17 00:00:00 2001 From: ch0412 Date: Mon, 24 Nov 2025 21:54:23 +0900 Subject: [PATCH 36/52] =?UTF-8?q?chore:=20Git=20=EC=B6=94=EC=A0=81?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EB=B9=8C=EB=93=9C=20=EC=BA=90=EC=8B=9C=20?= =?UTF-8?q?=EB=B0=8F=20=EC=84=A4=EC=A0=95=20=ED=8C=8C=EC=9D=BC=20=EC=A0=9C?= =?UTF-8?q?=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- .gradle/8.11.1/checksums/checksums.lock | Bin 17 -> 0 bytes .gradle/8.11.1/checksums/md5-checksums.bin | Bin 27597 -> 0 bytes .gradle/8.11.1/checksums/sha1-checksums.bin | Bin 87503 -> 0 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 0 bytes .gradle/8.11.1/fileChanges/last-build.bin | Bin 1 -> 0 bytes .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 0 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20741 -> 0 bytes .gradle/8.11.1/gc.properties | 0 .../buildOutputCleanup/buildOutputCleanup.lock | Bin 17 -> 0 bytes .gradle/buildOutputCleanup/cache.properties | 2 -- .gradle/config.properties | 2 -- .gradle/file-system.probe | Bin 8 -> 0 bytes .gradle/noVersion/buildLogic.lock | Bin 17 -> 0 bytes .gradle/vcs-1/gc.properties | 0 local.properties | 9 --------- 17 files changed, 2 insertions(+), 14 deletions(-) delete mode 100644 .gradle/8.11.1/checksums/checksums.lock delete mode 100644 .gradle/8.11.1/checksums/md5-checksums.bin delete mode 100644 .gradle/8.11.1/checksums/sha1-checksums.bin delete mode 100644 .gradle/8.11.1/executionHistory/executionHistory.lock delete mode 100644 .gradle/8.11.1/fileChanges/last-build.bin delete mode 100644 .gradle/8.11.1/fileHashes/fileHashes.bin delete mode 100644 .gradle/8.11.1/fileHashes/fileHashes.lock delete mode 100644 .gradle/8.11.1/fileHashes/resourceHashesCache.bin delete mode 100644 .gradle/8.11.1/gc.properties delete mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock delete mode 100644 .gradle/buildOutputCleanup/cache.properties delete mode 100644 .gradle/config.properties delete mode 100644 .gradle/file-system.probe delete mode 100644 .gradle/noVersion/buildLogic.lock delete mode 100644 .gradle/vcs-1/gc.properties delete mode 100644 local.properties diff --git a/.gitignore b/.gitignore index 70cf99d..d6998e8 100644 --- a/.gitignore +++ b/.gitignore @@ -43,4 +43,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release -.env \ No newline at end of file +.env.gradle/ +local.properties diff --git a/.gradle/8.11.1/checksums/checksums.lock b/.gradle/8.11.1/checksums/checksums.lock deleted file mode 100644 index 1c0d64b1aca27acca5833e64daf49a365a04b3f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 VcmZSH&HW+boW$aT3}C>*2mm$_1YrOG diff --git a/.gradle/8.11.1/checksums/md5-checksums.bin b/.gradle/8.11.1/checksums/md5-checksums.bin deleted file mode 100644 index ac84cc7cce20878064e2d383513144bedfab78e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27597 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 vb4~vgLgPECWGso@l(O>7b?Hk9@vA diff --git a/.gradle/8.11.1/checksums/sha1-checksums.bin b/.gradle/8.11.1/checksums/sha1-checksums.bin deleted file mode 100644 index bcde87ef8d5ee7ab3ab745a26ba7c8772246bca9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87503 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%0D4fAb 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 Mg(x}_YuIb=*E(rZD102hQK9^&@cieG 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 diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock deleted file mode 100644 index aca20325888de13233ae8876fda24e22018aea52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 VcmZQ}=bo_Q-nZT^1~3r&4gfYf1%?0s diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin deleted file mode 100644 index 71f5f14d511589a740c841369a8ad8798793fb68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20741 zcmeI(Yc$k(9LMol7AY--V%-+4`#rffOKcf)F+!10DU~d3iAq%NkyvC~xeQ{vi4+y9 z-EE~S^oz;*gfU!`8o%4UOwl?yyt)BiJ5OH6gjCe;)C-3 zL-zemxCI5E02F`%Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3jALREE&HeQ_-D~ z(-Y#~klae47)gxZu#2(l3-9tj{0#k=R*(OG5ZC0b6}o41J94L8*yHKtyy?UHQjs$c z3B1JXOQCE}O=4ezJ#lSLQkRsw9o|z?T z5c>@5z4w<@4tVeMK<<12`}4ttf7**?%tg*zfxW-n&pcUK?G16x8|*{czAUK>FXDP* zv9J#>Qc5edmtdehn}L1AQZ!btYM>iAYe?WW-@GlYcPFk-_8|7x8vsW={11!e?U_llgVcs?!nX$mu-nl5O7)X4MJpCOjIuRQE}P ztQ4*ia^@rKD)JVQi4W^*kTa%XSKFXyC1$^)f;dMByL#ZZ%~H{2VZ>fv;PH6_R8wi< zezA11e{EWwpEs7~P3-Ro{ECR?_~pz&?z|kkq4+EA$fYR-$e9Y*&5QjjxEorC>z0*@ z-J)Q-woU25duUHD!cMI}SahNIn)@khYyLKF>Ln_4M;>^Lm#76BAwc3Sv{$U4VUtMJJ zqUyM2A3BFg#lDu(CbPv@GzvLw0rnu{>=dDv{dvggHrO{MJt}c>2%m!7DIa@C=ef2r zm5OTQjCAaw0aNu;ep0)EoUJYJYi@lbRYJt`Jgpb|u7bA*Qcfh>66afE$KNRw(FN#d z@D&O`0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU00p1`6o3Ly017|>C;$bZ02F`% zPyh-*0Vn_kpa2wr0#M*n72v;UT7LX<2LDs4!B?p-=IYT-CfzNV$s4j8N9BJm^ine$ zygD^B*K@1v3gcT1$%|T<>cnNKrt!8Mqx6vCrTkZSPdFoHUC}h>B9;D-()*#Jx|C@0 zqNwSGN6Z)7BVtsiyN1w~sF4@+o0c9)M$%`uva;7knpriI7k|0Y*oHHT?bENg5A~0g zHjx)nkE10%n=6sMEK=L>VpWC$jM?MZPO^?@>h zy1t6`V9ggg~n%oYHD-LnLjb0=#a{C;ba|%Z*=bbkT=OoG)lNa;cX${G&HRpzf zPoLw4_E?h_1@6z%_O=B)DGCr*+(CW5l)QMIkYjnhvGALxzucmoI8Woh3uD6LVi2NR zQhlpCEq%^vsgv^D-Q>mkYY$=rP7DmRi^tmDRq#JdUgYZu`>A&v+oN07aPm@b^Kn@G z`yP_2<>3-})yX~v*7MsPOd82e6&iX6vOG-+HCG0k{BcH^OI|qq80TPWN_SB*8Qfo| zzaWCVu-h6GaPQ~!JvI4@Q_lQg8bn_BrOq}|)oBW;_j?v0yHTr-yogFL{w}L>w3FB7 zE%z>|mH%q-3D?-cV-633d5Sx~a;oWdZI9-^r)9$831xU@oaJVfp&;JUGF|zu3{U_7Hqr!r diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/local.properties b/local.properties deleted file mode 100644 index 3f554cf..0000000 --- a/local.properties +++ /dev/null @@ -1,9 +0,0 @@ -## This file must *NOT* be checked into Version Control Systems, -# as it contains information specific to your local configuration. -# -# Location of the SDK. This is only used by Gradle. -# For customization when using a Version Control System, please read the -# header note. -#Fri Nov 21 12:44:03 KST 2025 -flutter.sdk=C\:\\flutter -sdk.dir=/Users/kimjiwon/Library/Android/sdk From a0747eba2f14d1aa0fe7da7efe320e258b6761d3 Mon Sep 17 00:00:00 2001 From: ch0412 Date: Tue, 25 Nov 2025 01:57:27 +0900 Subject: [PATCH 37/52] =?UTF-8?q?feat:=20=EB=AA=A8=EC=9D=98=EC=86=A1=C3=AA?= =?UTF-8?q?=EA=B8=88=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/checksums/checksums.lock | Bin 0 -> 17 bytes .gradle/8.11.1/checksums/md5-checksums.bin | Bin 0 -> 27597 bytes .gradle/8.11.1/checksums/sha1-checksums.bin | Bin 0 -> 87503 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .gradle/8.11.1/fileChanges/last-build.bin | Bin 0 -> 1 bytes .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 0 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 0 -> 20741 bytes .gradle/8.11.1/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .gradle/buildOutputCleanup/cache.properties | 2 + .gradle/config.properties | 2 + .gradle/file-system.probe | Bin 0 -> 8 bytes .gradle/noVersion/buildLogic.lock | Bin 0 -> 17 bytes .gradle/vcs-1/gc.properties | 0 lib/features/bank/models/transfer_models.dart | 22 +- .../screens/account_selection_screen.dart | 319 ++++++++++++------ .../bank/screens/mock_transfer_screen.dart | 87 +++-- .../bank/screens/transfer_success_screen.dart | 96 ++++-- .../bank/services/transfer_service.dart | 114 +++---- pubspec.lock | 24 +- 21 files changed, 403 insertions(+), 263 deletions(-) create mode 100644 .gradle/8.11.1/checksums/checksums.lock create mode 100644 .gradle/8.11.1/checksums/md5-checksums.bin create mode 100644 .gradle/8.11.1/checksums/sha1-checksums.bin create mode 100644 .gradle/8.11.1/executionHistory/executionHistory.lock create mode 100644 .gradle/8.11.1/fileChanges/last-build.bin create mode 100644 .gradle/8.11.1/fileHashes/fileHashes.bin create mode 100644 .gradle/8.11.1/fileHashes/fileHashes.lock create mode 100644 .gradle/8.11.1/fileHashes/resourceHashesCache.bin create mode 100644 .gradle/8.11.1/gc.properties create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 .gradle/buildOutputCleanup/cache.properties create mode 100644 .gradle/config.properties create mode 100644 .gradle/file-system.probe create mode 100644 .gradle/noVersion/buildLogic.lock create mode 100644 .gradle/vcs-1/gc.properties diff --git a/.gradle/8.11.1/checksums/checksums.lock b/.gradle/8.11.1/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..1c0d64b1aca27acca5833e64daf49a365a04b3f6 GIT binary patch literal 17 VcmZSH&HW+boW$aT3}C>*2mm$_1YrOG literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/checksums/md5-checksums.bin b/.gradle/8.11.1/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..ac84cc7cce20878064e2d383513144bedfab78e4 GIT binary patch literal 27597 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 vb4~vgLgPECWGso@l(O>7b?Hk9@vA literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/checksums/sha1-checksums.bin b/.gradle/8.11.1/checksums/sha1-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..bcde87ef8d5ee7ab3ab745a26ba7c8772246bca9 GIT binary patch literal 87503 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%0D4fAb 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 Mg(x}_YuIb=*E(rZD102hQK9^&@cieG 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 literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..aca20325888de13233ae8876fda24e22018aea52 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~3r&4gfYf1%?0s literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000000000000000000000000000000000000..71f5f14d511589a740c841369a8ad8798793fb68 GIT binary patch literal 20741 zcmeI(Yc$k(9LMol7AY--V%-+4`#rffOKcf)F+!10DU~d3iAq%NkyvC~xeQ{vi4+y9 z-EE~S^oz;*gfU!`8o%4UOwl?yyt)BiJ5OH6gjCe;)C-3 zL-zemxCI5E02F`%Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3jALREE&HeQ_-D~ z(-Y#~klae47)gxZu#2(l3-9tj{0#k=R*(OG5ZC0b6}o41J94L8*yHKtyy?UHQjs$c z3B1JXOQCE}O=4ezJ#lSLQkRsw9o|z?T z5c>@5z4w<@4tVeMK<<12`}4ttf7**?%tg*zfxW-n&pcUK?G16x8|*{czAUK>FXDP* zv9J#>Qc5edmtdehn}L1AQZ!btYM>iAYe?WW-@GlYcPFk-_8|7x8vsW={11!e?U_llgVcs?!nX$mu-nl5O7)X4MJpCOjIuRQE}P ztQ4*ia^@rKD)JVQi4W^*kTa%XSKFXyC1$^)f;dMByL#ZZ%~H{2VZ>fv;PH6_R8wi< zezA11e{EWwpEs7~P3-Ro{ECR?_~pz&?z|kkq4+EA$fYR-$e9Y*&5QjjxEorC>z0*@ z-J)Q-woU25duUHD!cMI}SahNIn)@khYyLKF>Ln_4M;>^Lm#76BAwc3Sv{$U4VUtMJJ zqUyM2A3BFg#lDu(CbPv@GzvLw0rnu{>=dDv{dvggHrO{MJt}c>2%m!7DIa@C=ef2r zm5OTQjCAaw0aNu;ep0)EoUJYJYi@lbRYJt`Jgpb|u7bA*Qcfh>66afE$KNRw(FN#d z@D&O`0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU00p1`6o3Ly017|>C;$bZ02F`% zPyh-*0Vn_kpa2wr0#M*n72v;UT7LX<2LDs4!B?p-=IYT-CfzNV$s4j8N9BJm^ine$ zygD^B*K@1v3gcT1$%|T<>cnNKrt!8Mqx6vCrTkZSPdFoHUC}h>B9;D-()*#Jx|C@0 zqNwSGN6Z)7BVtsiyN1w~sF4@+o0c9)M$%`uva;7knpriI7k|0Y*oHHT?bENg5A~0g zHjx)nkE10%n=6sMEK=L>VpWC$jM?MZPO^?@>h zy1t6`V9ggg~n%oYHD-LnLjb0=#a{C;ba|%Z*=bbkT=OoG)lNa;cX${G&HRpzf zPoLw4_E?h_1@6z%_O=B)DGCr*+(CW5l)QMIkYjnhvGALxzucmoI8Woh3uD6LVi2NR zQhlpCEq%^vsgv^D-Q>mkYY$=rP7DmRi^tmDRq#JdUgYZu`>A&v+oN07aPm@b^Kn@G z`yP_2<>3-})yX~v*7MsPOd82e6&iX6vOG-+HCG0k{BcH^OI|qq80TPWN_SB*8Qfo| zzaWCVu-h6GaPQ~!JvI4@Q_lQg8bn_BrOq}|)oBW;_j?v0yHTr-yogFL{w}L>w3FB7 zE%z>|mH%q-3D?-cV-633d5Sx~a;oWdZI9-^r)9$831xU@oaJVfp&;JUGF|zu3{U_7Hqr!r literal 0 HcmV?d00001 diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/lib/features/bank/models/transfer_models.dart b/lib/features/bank/models/transfer_models.dart index 75ecb31..440f272 100644 --- a/lib/features/bank/models/transfer_models.dart +++ b/lib/features/bank/models/transfer_models.dart @@ -10,23 +10,27 @@ class MyAccount { required this.currency, }); - // [추가] 서버 JSON 데이터를 객체로 변환하는 공장(Factory) 메서드 factory MyAccount.fromJson(Map json) { return MyAccount( - accountName: json['accountName'] ?? '알 수 없음', - balance: json['point'] ?? 0, + // 1. 이름: 서버에서 이름('nickname' 등)을 주면 쓰고, 안 주면 'GuardPay 머니'로 표시 + accountName: json['nickname'] ?? json['name'] ?? json['accountName'] ?? 'GuardPay 머니', + + // 2. 잔액: 'point', 'points', 'balance' 중 하나라도 있으면 가져오기 + balance: json['point'] ?? json['points'] ?? json['balance'] ?? 0, + + // 3. 통화: 없으면 원화(KRW) currency: json['currency'] ?? 'KRW', ); } } -// 2. 송금 대상(수취인) 모델 +// 2. 송금 대상(수취인) 모델 (기존 유지) class Beneficiary { final int beneficiaryId; final String bankName; final String accountNumber; final String accountHolderName; - final String? nickname; // 별칭은 없을 수도 있음 + final String? nickname; Beneficiary({ required this.beneficiaryId, @@ -38,7 +42,7 @@ class Beneficiary { factory Beneficiary.fromJson(Map json) { return Beneficiary( - beneficiaryId: json['id'] ?? 0, // 서버 필드명 확인 필요 (id 혹은 beneficiaryId) + beneficiaryId: json['id'] ?? 0, bankName: json['bankName'] ?? '', accountNumber: json['accountNumber'] ?? '', accountHolderName: json['accountHolderName'] ?? '', @@ -47,7 +51,7 @@ class Beneficiary { } } -// 3. 송금 결과 모델 (성공 시 리워드 정보 등) +// 3. 송금 결과 모델 (기존 유지) class TransferResult { final bool success; final String message; @@ -61,9 +65,9 @@ class TransferResult { factory TransferResult.fromJson(Map json) { return TransferResult( - success: true, // 200 OK로 왔다면 성공 + success: true, message: json['message'] ?? '송금 완료', - rewardPoints: json['rewardPoints'], // 리워드가 있다면 매핑 + rewardPoints: json['rewardPoints'], ); } } \ No newline at end of file diff --git a/lib/features/bank/screens/account_selection_screen.dart b/lib/features/bank/screens/account_selection_screen.dart index e79ecfe..116a9f0 100644 --- a/lib/features/bank/screens/account_selection_screen.dart +++ b/lib/features/bank/screens/account_selection_screen.dart @@ -1,5 +1,6 @@ +import 'dart:convert'; import 'package:flutter/material.dart'; -import 'package:guardpayfront/core/services/storage.dart'; // AppStorage import 확인 +import 'package:guardpayfront/core/services/storage.dart'; import '../../auth/widgets/bottom_nav.dart'; import '../models/transfer_models.dart'; import '../services/transfer_service.dart'; @@ -14,14 +15,21 @@ class AccountSelectionScreen extends StatefulWidget { class _AccountSelectionScreenState extends State { final TransferService _service = TransferService(); - final _storage = AppStorage.storage; // 저장소 인스턴스 + final _storage = AppStorage.storage; - // 토큰을 저장할 변수 (처음엔 null) String? _accessToken; - bool _isLoadingToken = true; // 토큰 로딩 상태 + bool _isLoadingToken = true; - Future? _myAccountFuture; - Future>? _beneficiariesFuture; + // 내 계좌 정보 + MyAccount? _myAccount; + bool _isLoadingAccount = true; + + // 수취인 목록 + List _beneficiaries = []; + bool _isLoadingBeneficiaries = true; + + // 송금 완료된 ID 집합 + final Set _completedBeneficiaryIds = {}; @override void initState() { @@ -29,31 +37,108 @@ class _AccountSelectionScreenState extends State { _initializeScreen(); } - // [중요] 저장소에서 토큰을 꺼내고 데이터 로딩 시작 Future _initializeScreen() async { - // 1. 저장된 토큰 읽기 final token = await _storage.read(key: 'accessToken'); + // 1. 완료된 ID 목록 로드 + final String? savedIds = await _storage.read(key: 'completed_ids'); + if (savedIds != null && savedIds.isNotEmpty) { + final List ids = savedIds + .split(',') + .where((e) => e.isNotEmpty) + .map((e) => int.parse(e)) + .toList(); + _completedBeneficiaryIds.addAll(ids); + } + + // 2. 저장된 '계좌 목록' 불러오기 (캐싱) + final String? cachedListJson = await _storage.read(key: 'cached_beneficiaries'); + List cachedList = []; + if (cachedListJson != null) { + try { + final List decoded = jsonDecode(cachedListJson); + cachedList = decoded.map((e) => Beneficiary.fromJson(e)).toList(); + } catch (e) { + print("캐시 파싱 에러: $e"); + } + } + if (mounted) { setState(() { - _accessToken = token; // 읽어온 토큰 저장 - _isLoadingToken = false; // 로딩 끝 + _accessToken = token; + _isLoadingToken = false; + + if (cachedList.isNotEmpty) { + _beneficiaries = cachedList; + _isLoadingBeneficiaries = false; + } }); - // 2. 토큰이 있으면 API 호출 시작 if (_accessToken != null) { - _myAccountFuture = _service.getMyAccount(_accessToken!); - _beneficiariesFuture = _service.getBeneficiaries(_accessToken!); - } else { - // 토큰이 없으면 로그인 화면으로 보내거나 에러 처리 - print("⚠️ 저장된 토큰이 없습니다. 로그인이 필요합니다."); + _fetchMyAccount(); + + if (cachedList.isEmpty) { + _fetchAndSaveBeneficiaries(); + } + } + } + } + + Future _fetchMyAccount() async { + if (_accessToken == null) return; + try { + final account = await _service.getMyAccount(_accessToken!); + if (mounted) { + setState(() { + _myAccount = account; + _isLoadingAccount = false; + }); } + } catch (e) { + print("내 계좌 조회 실패: $e"); + if (mounted) setState(() => _isLoadingAccount = false); } } + Future _fetchAndSaveBeneficiaries() async { + if (_accessToken == null) return; + try { + setState(() => _isLoadingBeneficiaries = true); + final list = await _service.getBeneficiaries(_accessToken!); + + if (mounted) { + setState(() { + _beneficiaries = list; + _isLoadingBeneficiaries = false; + }); + + final jsonString = jsonEncode(list.map((b) => { + 'id': b.beneficiaryId, + 'bankName': b.bankName, + 'accountNumber': b.accountNumber, + 'accountHolderName': b.accountHolderName, + 'nickname': b.nickname, + }).toList()); + await _storage.write(key: 'cached_beneficiaries', value: jsonString); + } + } catch (e) { + print("목록 불러오기 실패: $e"); + if (mounted) setState(() => _isLoadingBeneficiaries = false); + } + } + + Future _saveCompletedId(int id) async { + setState(() { + _completedBeneficiaryIds.add(id); + }); + await _storage.write( + key: 'completed_ids', + value: _completedBeneficiaryIds.join(','), + ); + } + @override Widget build(BuildContext context) { - // 토큰을 불러오는 중이면 로딩 표시 if (_isLoadingToken) { return const Scaffold( backgroundColor: Color(0xFFF9F5E8), @@ -61,7 +146,6 @@ class _AccountSelectionScreenState extends State { ); } - // 토큰이 없으면 로그인 유도 (간단한 예외처리) if (_accessToken == null) { return const Scaffold( backgroundColor: Color(0xFFF9F5E8), @@ -88,18 +172,11 @@ class _AccountSelectionScreenState extends State { ), const SizedBox(height: 25), - // [1] 내 계좌 정보 - FutureBuilder( - future: _myAccountFuture, - builder: (context, snapshot) { - if (snapshot.hasData) { - return _myAccountCard(snapshot.data!); - } else if (snapshot.hasError) { - return const Text("계좌 정보를 불러올 수 없습니다."); - } - return const Center(child: CircularProgressIndicator()); - }, - ), + _isLoadingAccount + ? const Center(child: CircularProgressIndicator()) + : _myAccount != null + ? _myAccountCard(_myAccount!) + : const Text("계좌 정보를 불러올 수 없습니다."), const SizedBox(height: 35), const Padding( @@ -111,26 +188,16 @@ class _AccountSelectionScreenState extends State { ), const SizedBox(height: 15), - // [2] 송금 대상 목록 - FutureBuilder>( - future: _beneficiariesFuture, - builder: (context, snapshot) { - if (snapshot.hasData) { - final list = snapshot.data!; - if (list.isEmpty) return const Text("표시할 계좌가 없습니다."); - - return ListView.builder( - shrinkWrap: true, - physics: const NeverScrollableScrollPhysics(), - itemCount: list.length, - itemBuilder: (context, index) { - return _accountItem(context, list[index]); - }, - ); - } else if (snapshot.hasError) { - return Text("오류 발생: ${snapshot.error}"); - } - return const Center(child: CircularProgressIndicator()); + _isLoadingBeneficiaries + ? const Center(child: CircularProgressIndicator()) + : _beneficiaries.isEmpty + ? const Text("표시할 계좌가 없습니다.") + : ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: _beneficiaries.length, + itemBuilder: (context, index) { + return _accountItem(context, _beneficiaries[index]); }, ), ], @@ -140,101 +207,147 @@ class _AccountSelectionScreenState extends State { ); } + // [수정됨] 디자인 적용된 카드 Widget _myAccountCard(MyAccount account) { + // 3자리 콤마 포맷터 + String formatCurrency(int amount) { + return amount.toString().replaceAllMapped( + RegExp(r'(\d{1,3})(?=(\d{3})+(?!\d))'), (Match m) => '${m[1]},'); + } + return Container( - height: 135, - padding: const EdgeInsets.all(20), + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 25, vertical: 25), decoration: BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.circular(20), + borderRadius: BorderRadius.circular(25), ), - child: Row( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Icon(Icons.money, color: Color(0xFFFFC93C), size: 40), - const SizedBox(width: 20), - Column( - crossAxisAlignment: CrossAxisAlignment.start, + const Text( + "GuardPay 안심 포인트", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.black54, + ), + ), + const SizedBox(height: 15), + Row( children: [ - const Text("내 계좌", style: TextStyle(fontSize: 17, color: Colors.black54)), - const SizedBox(height: 6), - Text("${account.balance}원", style: const TextStyle(fontSize: 22, fontWeight: FontWeight.bold)), - Text(account.accountName, style: const TextStyle(fontSize: 13, color: Colors.black54)), + Container( + width: 45, + height: 45, + decoration: BoxDecoration( + color: const Color(0xFFFFF59D), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.stars_rounded, + color: Color(0xFFFBC02D), + size: 30, + ), + ), + const SizedBox(width: 15), + Text( + "${formatCurrency(account.balance)}원", + style: const TextStyle( + fontSize: 28, + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), ], - ) + ), ], ), ); } Widget _accountItem(BuildContext context, Beneficiary beneficiary) { + bool isCompleted = _completedBeneficiaryIds.contains(beneficiary.beneficiaryId); + return Container( height: 90, margin: const EdgeInsets.only(bottom: 30), padding: const EdgeInsets.symmetric(horizontal: 20), decoration: BoxDecoration( - color: Colors.white, + color: isCompleted ? Colors.grey[200] : Colors.white, borderRadius: BorderRadius.circular(20), ), child: Row( children: [ - _buildBankLogo(beneficiary.bankName), + Opacity( + opacity: isCompleted ? 0.5 : 1.0, + child: _buildBankLogo(beneficiary.bankName), + ), const SizedBox(width: 15), Expanded( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, // 세로 중앙 정렬 - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - // 1. [수정] 예금주 (은행이름) 순서로 표시 - Text( - beneficiary.accountHolderName.isNotEmpty - ? "${beneficiary.accountHolderName} (${beneficiary.bankName})" - : beneficiary.bankName, - style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 18), - maxLines: 1, - overflow: TextOverflow.ellipsis, - ), - - const SizedBox(height: 6), - - // 2. 계좌 번호 - Text( - beneficiary.accountNumber, - style: const TextStyle(fontSize: 18, color: Colors.black87), - maxLines: 1, - overflow: TextOverflow.ellipsis, - ), - ], + child: Opacity( + opacity: isCompleted ? 0.5 : 1.0, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + beneficiary.accountHolderName.isNotEmpty + ? "${beneficiary.accountHolderName} (${beneficiary.bankName})" + : beneficiary.bankName, + style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 18), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 6), + Text( + beneficiary.accountNumber, + style: const TextStyle(fontSize: 18, color: Colors.black87), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ], + ), ), ), InkWell( - onTap: () { - // [중요] 저장소에서 꺼낸 진짜 토큰(_accessToken)을 다음 화면으로 넘깁니다. + onTap: isCompleted + ? null + : () async { if (_accessToken != null) { - Navigator.push( + final result = await Navigator.push( context, MaterialPageRoute( builder: (context) => MockTransferScreen( beneficiary: beneficiary, accessToken: _accessToken!, + + // [핵심 수정] 여기에 myBalance를 꼭 넣어줘야 합니다! + // 아직 로딩 안됐으면(null이면) 0원을 넘겨서 에러 방지 + myBalance: _myAccount?.balance ?? 0, ), ), ); - } else { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text("오류: 토큰이 없습니다.")), - ); + + if (result != null && result is int) { + await _saveCompletedId(result); + _fetchMyAccount(); + setState(() {}); + } } }, borderRadius: BorderRadius.circular(20), child: Container( padding: const EdgeInsets.symmetric(horizontal: 13, vertical: 8), decoration: BoxDecoration( - color: const Color(0xFF49A65E), + color: isCompleted ? Colors.grey : const Color(0xFF49A65E), borderRadius: BorderRadius.circular(10), ), - child: const Text("선택", style: TextStyle(color: Colors.white)), + child: Text( + isCompleted ? "완료" : "선택", + style: const TextStyle(color: Colors.white), + ), ), ), ], @@ -243,11 +356,9 @@ class _AccountSelectionScreenState extends State { } } -// [추가] 은행 이름에 따라 로고 이미지를 반환하는 함수 Widget _buildBankLogo(String bankName) { - String imagePath = 'assets/images/default_bank.png'; // 기본 이미지 + String imagePath = 'assets/images/default_bank.png'; - // 은행 이름에 따라 이미지 경로 설정 (이미지 파일명은 본인이 저장한 대로 수정 필요) if (bankName.contains('토스')) { imagePath = 'assets/images/toss_logo.png'; } else if (bankName.contains('카카오')) { @@ -268,12 +379,8 @@ Widget _buildBankLogo(String bankName) { return CircleAvatar( radius: 26, - backgroundColor: Colors.transparent, // 배경 투명하게 - // 이미지 파일이 있다면 AssetImage, 없다면(네트워크) NetworkImage 사용 - // 여기서는 로컬 에셋을 사용한다고 가정합니다. + backgroundColor: Colors.transparent, backgroundImage: AssetImage(imagePath), - - // 만약 이미지가 없을 때 깨지는 걸 방지하려면 아래처럼 에러 처리가 가능한 위젯을 써야 함 onBackgroundImageError: (exception, stackTrace) { print("이미지 로드 실패: $imagePath"); }, diff --git a/lib/features/bank/screens/mock_transfer_screen.dart b/lib/features/bank/screens/mock_transfer_screen.dart index f472007..8964699 100644 --- a/lib/features/bank/screens/mock_transfer_screen.dart +++ b/lib/features/bank/screens/mock_transfer_screen.dart @@ -6,11 +6,13 @@ import 'transfer_success_screen.dart'; class MockTransferScreen extends StatefulWidget { final Beneficiary beneficiary; final String accessToken; + final int myBalance; // 내 잔액 정보 const MockTransferScreen({ super.key, required this.beneficiary, required this.accessToken, + required this.myBalance, }); @override @@ -24,7 +26,7 @@ class _MockTransferScreenState extends State { final TransferService _service = TransferService(); - // 은행 선택 드롭다운 상태 관리 + // 은행 선택 드롭다운 String? _selectedBank; final List _bankList = [ '국민은행', '신한은행', '하나은행', '우리은행', 'NH농협은행', @@ -48,6 +50,7 @@ class _MockTransferScreenState extends State { super.dispose(); } + // 버튼 활성화 여부 체크 void _checkValidity() { setState(() { isTransferReady = _accountNumberController.text.isNotEmpty && @@ -59,38 +62,73 @@ class _MockTransferScreenState extends State { Future _performTransfer() async { if (!isTransferReady) return; - String inputNumber = _accountNumberController.text.replaceAll('-', ''); - String targetNumber = widget.beneficiary.accountNumber.replaceAll('-', ''); + // 키보드 내리기 + FocusScope.of(context).unfocus(); - bool isBankMatch = _selectedBank == widget.beneficiary.bankName; - bool isAccountMatch = inputNumber == targetNumber; + // 1. 입력값 가져오기 + String inputNumber = _accountNumberController.text.replaceAll('-', '').replaceAll(' ', ''); + String targetNumber = widget.beneficiary.accountNumber.replaceAll('-', '').replaceAll(' ', ''); + String selectedBankName = (_selectedBank ?? '').trim(); + String targetBankName = widget.beneficiary.bankName.trim(); - if (!isBankMatch || !isAccountMatch) { + // 금액 숫자로 변환 + int transferAmount = int.tryParse(_amountController.text) ?? 0; + + // 2. 계좌 정보 일치 여부 확인 + bool isAccountMatch = (inputNumber == targetNumber); + bool isBankMatch = (selectedBankName == targetBankName); + + if (!isAccountMatch || !isBankMatch) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar( - content: Text("계좌 정보를 다시 확인해주세요"), - duration: Duration(seconds: 2), + content: Text("계좌번호와 은행 정보가 일치하지 않습니다."), backgroundColor: Colors.redAccent, + duration: Duration(seconds: 2), ), ); return; } + // 3. [추가된 로직] 잔액 초과 확인 + if (transferAmount > widget.myBalance) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text("잔액을 초과했습니다. (현재 잔액: ${widget.myBalance}원)"), + backgroundColor: Colors.red, // 빨간색 경고 + duration: const Duration(seconds: 2), + ), + ); + return; // 여기서 함수를 끝내서 송금을 막음! + } + + // 4. 모든 검사 통과 -> 송금 진행 setState(() => isLoading = true); try { await _service.postTransfer( accessToken: widget.accessToken, toBeneficiaryId: widget.beneficiary.beneficiaryId, - amount: int.parse(_amountController.text), + amount: transferAmount, ); if (!mounted) return; - Navigator.pushReplacement( + // 성공 화면으로 이동 + final result = await Navigator.push( context, - MaterialPageRoute(builder: (context) => const TransferSuccessScreen()), + MaterialPageRoute( + builder: (context) => TransferSuccessScreen( + completedBeneficiaryId: widget.beneficiary.beneficiaryId, + ), + ), ); + + // 성공 후 복귀 시 처리 + if (result != null) { + if (!mounted) return; + Navigator.pop(context, result); + } + } catch (e) { if (!mounted) return; String errorMsg = e.toString().replaceAll("Exception: ", ""); @@ -143,6 +181,7 @@ class _MockTransferScreenState extends State { ), const SizedBox(height: 10), + // 계좌번호 입력 TextField( controller: _accountNumberController, keyboardType: TextInputType.number, @@ -160,6 +199,7 @@ class _MockTransferScreenState extends State { ), const SizedBox(height: 20), + // 은행 선택 DropdownButtonFormField( value: _selectedBank, hint: const Text("은행 선택", style: TextStyle(fontSize: 22, fontWeight: FontWeight.w500, color: Colors.grey)), @@ -195,6 +235,7 @@ class _MockTransferScreenState extends State { ), const SizedBox(height: 20), + // 금액 입력 TextField( controller: _amountController, keyboardType: TextInputType.number, @@ -213,21 +254,14 @@ class _MockTransferScreenState extends State { const SizedBox(height: 100), + // 송금 버튼 GestureDetector( - //onTap: (isTransferReady && !isLoading) ? _performTransfer : null, - onTap: () { - Navigator.pushReplacement( - context, - MaterialPageRoute(builder: (context) => const TransferSuccessScreen()), - ); - }, - + onTap: (isTransferReady && !isLoading) ? _performTransfer : null, child: Container( width: double.infinity, padding: const EdgeInsets.symmetric(vertical: 16), decoration: BoxDecoration( - //color: isTransferReady ? const Color(0xFF49A65E) : Colors.grey[300], - color: const Color(0xFF49A65E), + color: isTransferReady ? const Color(0xFF49A65E) : Colors.grey[300], borderRadius: BorderRadius.circular(10), ), alignment: Alignment.center, @@ -235,7 +269,7 @@ class _MockTransferScreenState extends State { ? const SizedBox( height: 24, width: 24, - //child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), ) : const Text( "송금하기", @@ -256,10 +290,10 @@ class _MockTransferScreenState extends State { ); } - // [수정됨] 이전 화면(_accountItem)과 동일한 디자인 + // 상단 계좌 정보 카드 (UI 유지) Widget _selectedAccountCard() { return Container( - height: 100, // 이전 화면과 높이 비슷하게 맞춤 + height: 100, padding: const EdgeInsets.symmetric(horizontal: 20), decoration: BoxDecoration( color: Colors.white, @@ -267,11 +301,8 @@ class _MockTransferScreenState extends State { ), child: Row( children: [ - // 로고 표시 _buildBankLogo(widget.beneficiary.bankName), const SizedBox(width: 15), - - // 텍스트 정보 Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, @@ -295,13 +326,11 @@ class _MockTransferScreenState extends State { ], ), ), - // '선택' 버튼은 이미 선택되었으므로 제거함 ], ), ); } - // [추가] 로고 이미지를 불러오기 위한 함수 (이전 화면에서 가져옴) Widget _buildBankLogo(String bankName) { String imagePath = 'assets/images/default_bank.png'; diff --git a/lib/features/bank/screens/transfer_success_screen.dart b/lib/features/bank/screens/transfer_success_screen.dart index 3699052..2c12678 100644 --- a/lib/features/bank/screens/transfer_success_screen.dart +++ b/lib/features/bank/screens/transfer_success_screen.dart @@ -1,56 +1,82 @@ import 'package:flutter/material.dart'; class TransferSuccessScreen extends StatelessWidget { - const TransferSuccessScreen({super.key}); + // [추가] 완료된 계좌 ID를 받기 위한 변수 (화면에는 안 보임, 뒤로가기용) + final int? completedBeneficiaryId; + + const TransferSuccessScreen({ + super.key, + this.completedBeneficiaryId, // 생성자 추가 + }); @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: const Color(0xFFF7F3E9), + backgroundColor: const Color(0xFFF9F5E8), body: SafeArea( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const SizedBox(height: 120), - const Icon( - Icons.check_circle, - size: 80, - color: Color(0xFF4CAF50), - ), - const SizedBox(height: 24), - const Text( - "송금이 완료되었습니다", - style: TextStyle(fontSize: 20, fontWeight: FontWeight.w600), - ), - const SizedBox(height: 8), - const Text( - "100p가 지급됩니다", - style: TextStyle(fontSize: 18), - ), - const Spacer(), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 40, vertical: 40), - child: SizedBox( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 30), + child: Column( + children: [ + const Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.check_circle, + color: Color(0xFF49A65E), + size: 100, + ), + SizedBox(height: 30), + Text( + "송금이 완료되었습니다!", + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.w500, + color: Colors.black, + ), + ), + SizedBox(height: 5), + Text( + "100p가 지급됩니다.", + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.w500, + color: Colors.black, + ), + ), + ], + ), + ), + + // [수정] 버튼 영역 (Expanded 밖으로 빼서 하단에 고정) + SizedBox( width: double.infinity, - height: 55, child: ElevatedButton( + onPressed: () { + // [핵심 수정] 버튼을 누르면 '완료된 ID'를 가지고 이전 화면으로 돌아감 + Navigator.pop(context, completedBeneficiaryId); + }, style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF60B862), + backgroundColor: const Color(0xFF49A65E), + padding: const EdgeInsets.symmetric(vertical: 16), shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(12), + borderRadius: BorderRadius.circular(10), ), ), - onPressed: () { - Navigator.popUntil(context, (route) => route.isFirst); - }, child: const Text( - "메인으로", - style: TextStyle(fontSize: 18, color: Colors.white), + "확인", + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.white, + ), ), ), ), - ) - ], + const SizedBox(height: 20), // 버튼 아래 약간의 여백 + ], + ), ), ), ); diff --git a/lib/features/bank/services/transfer_service.dart b/lib/features/bank/services/transfer_service.dart index 80ecee0..12d6635 100644 --- a/lib/features/bank/services/transfer_service.dart +++ b/lib/features/bank/services/transfer_service.dart @@ -4,110 +4,83 @@ import '../models/transfer_models.dart'; class TransferService { // 💡 에뮬레이터용 주소: http://10.0.2.2:8080/api/v1 - final String _baseUrl = "http://10.0.2.2:8080/api/v1"; + final String _baseUrl = "http://10.0.2.2:8080/api"; - // [개선된 응답 처리기] 성공/실패 및 다양한 에러 메시지 포맷 대응 - dynamic _handleResponse(http.Response response) { - // 1. 디버깅용 로그 출력 (서버 응답 확인용) + // [응답 처리기] + dynamic _handleResponse(http.Response response, String endpointName) { String decodedBody = utf8.decode(response.bodyBytes); - print("📥 [API] Status: ${response.statusCode}"); - print("📥 [API] Body: $decodedBody"); + print("📥 [$endpointName] Status: ${response.statusCode}"); + print("📥 [$endpointName] Body: $decodedBody"); final dynamic body; try { body = json.decode(decodedBody); } catch (e) { - throw Exception('서버 응답이 JSON 형식이 아닙니다. (${response.statusCode})'); + throw Exception('JSON 파싱 실패: $decodedBody'); } - // 2. 성공 (200 OK) 처리 if (response.statusCode == 200) { - // 백엔드가 { "status": 200, "data": ... } 형태로 감싸서 줄 때 if (body is Map && body.containsKey('data')) { return body['data']; } - // 백엔드가 껍데기 없이 바로 데이터를 줄 때 return body; - } - - // 3. 실패 (400 Bad Request, 500 Error 등) 처리 - else { - String errorMessage = '알 수 없는 오류가 발생했습니다.'; - - // 에러 메시지 추출 시도 ('message' 또는 'error' 필드) - if (body is Map) { - errorMessage = body['message'] ?? body['error'] ?? errorMessage; - } else if (body is String) { - errorMessage = body; - } - - print("🚨 [API Error] $errorMessage"); - throw Exception(errorMessage); + } else { + throw Exception('서버 에러 (${response.statusCode}): $decodedBody'); } } - // [안전한 인증 헤더 생성기] Map _authHeaders(String accessToken) { - // Bearer 중복 방지 및 공백 제거 - String cleanToken = accessToken; - if (accessToken.startsWith('Bearer ')) { - cleanToken = accessToken.substring(7); - } - cleanToken = cleanToken.trim(); - + String cleanToken = accessToken.startsWith('Bearer ') + ? accessToken.substring(7) + : accessToken; return { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer $cleanToken', }; } - // ------------------------------------------------------------------------ - -// 1. 내 계좌 정보 조회 (API 실패 시 더미 데이터 반환하도록 수정) + // 1. 내 계좌 정보 조회 Future getMyAccount(String accessToken) async { try { - // 1. API 호출 시도 - final url = Uri.parse('$_baseUrl/users/me/points'); + print("🚀 [내 계좌 조회] 요청 시작..."); + final url = Uri.parse('$_baseUrl/members/profile'); + final response = await http.get( url, headers: _authHeaders(accessToken), ); - if (response.statusCode == 200) { - final data = _handleResponse(response); - return MyAccount.fromJson(data); - } else { - // 2. 404 등 에러 발생 시 로그 출력 후 예외 발생시켜서 catch로 보냄 - print("⚠️ [API Error] 내 포인트 조회 실패 (Status: ${response.statusCode})"); - throw Exception("API Error: ${response.statusCode}"); + final data = _handleResponse(response, "내 계좌 조회"); + print("✅ [내 계좌 조회] 데이터 파싱 전: $data"); + + // [수정] 데이터가 Map이 아니라 숫자(int)로 왔을 때 처리 + if (data is int) { + print("⚠️ 데이터가 숫자로 왔습니다. 객체로 변환합니다."); + return MyAccount( + balance: data, + accountName: 'GuardPay 포인트', + currency: 'KRW', + ); } - } catch (e) { - // 3. [중요] 에러가 나도 앱이 멈추지 않게 '임시 데이터'를 반환 - print('❌ 내 계좌 조회 에러 발생: $e'); - print('👉 임시 데이터를 사용하여 화면을 표시합니다.'); - // 백엔드 API가 고쳐질 때까지 사용할 임시 데이터 - return MyAccount( - balance: 5000000, // 임시 잔액 500만원 - accountName: "GuardPay 임시 통장", - currency: "KRW", - ); + // 정상적인 Map 형태일 때 파싱 + final account = MyAccount.fromJson(data); + print("✅ [내 계좌 조회] 파싱 성공! 잔액: ${account.balance}"); + return account; + + } catch (e) { + print('❌ [치명적 에러] 내 계좌 조회 실패: $e'); + throw Exception("데이터 불러오기 실패: $e"); } } - // 2. 송금 대상 목록 조회 (랜덤 4명) + // 2. 송금 대상 목록 조회 Future> getBeneficiaries(String accessToken) async { try { - final url = Uri.parse('$_baseUrl/beneficiaries/random'); - - final response = await http.get( - url, - headers: _authHeaders(accessToken), - ); + final url = Uri.parse('$_baseUrl/v1/beneficiaries/random'); + final response = await http.get(url, headers: _authHeaders(accessToken)); + final dynamic data = _handleResponse(response, "송금 대상 조회"); - final dynamic data = _handleResponse(response); - - // 리스트 데이터 처리 List list = data is List ? data : []; return list.map((json) => Beneficiary.fromJson(json)).toList(); } catch (e) { @@ -116,24 +89,21 @@ class TransferService { } } - // 3. 송금하기 (POST) + // 3. 송금하기 Future postTransfer({ required String accessToken, required int toBeneficiaryId, required int amount, }) async { try { - final url = Uri.parse('$_baseUrl/beneficiaries/$toBeneficiaryId/transfer'); - + final url = Uri.parse('$_baseUrl/v1/beneficiaries/$toBeneficiaryId/transfer'); final response = await http.post( url, headers: _authHeaders(accessToken), - body: json.encode({ - 'amount': amount, - }), + body: json.encode({'amount': amount}), ); - final data = _handleResponse(response); + final data = _handleResponse(response, "송금 요청"); return TransferResult.fromJson(data); } catch (e) { print('❌ 송금 실패: $e'); diff --git a/pubspec.lock b/pubspec.lock index c738e41..43b5a59 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -508,26 +508,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -556,10 +556,10 @@ packages: dependency: transitive description: name: meta - sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.16.0" mime: dependency: transitive description: @@ -833,10 +833,10 @@ packages: dependency: transitive description: name: test_api - sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.7" + version: "0.7.4" typed_data: dependency: transitive description: @@ -921,10 +921,10 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: From 00713083cd25ce4b82ea6bf4e4b3d29f62d6efd3 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Tue, 25 Nov 2025 13:40:30 +0900 Subject: [PATCH 38/52] =?UTF-8?q?[Fix]=20:=20=ED=86=B5=ED=95=A9=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes android/app/src/main/AndroidManifest.xml | 11 +++-------- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 1b658f1fa8d3f2d4ff8e598671bb751d5d9da016..545c48dcf9037efa6ce2911a2e129c03a0ba69a7 100644 GIT binary patch delta 591 zcmX@Ph3VuLrVU%YS#}yEYfYB*(E~9wCj0wHO=k5G0dXQ>qA?&*g;yuk4n96Mx1C9= zM&VbnS~mj&?ZQ8BTVL zm-6bj5is1oOyuC<^)CN=IbX9tRjGho!62&(r1gw}geDLxg0R4~Sof@n@dYwVX5@dK zo@x~h)uA)_V=}_r$?37F;uSrTlFd@}zdBd8t6bl|0HSc|W1zhtg-f4;957iwt^&k) z4s@3EG}lL)f*4i^##n?+bJ^HJRv|LDYCqub>oEW*0P0PJ=z;~LM{9Q zR`fOl6bVcJO}>~g3B>ph7Hv#Sk$ACjk51TI-JA&yDN*)8yWc@Q#0pj*o&?gij2+DJ zOaj@uj04QMpOhj|v~_de&%eink241Q$3E`2f@);|E8y=1Yh?m+mM4R?vVb_7ZBveL gN?i80|5)kRZqWHC_=rh_;B|=JMH@Fu<{9V!0O7jkPyhe` delta 476 zcmX@Ph3VuLrVU%YS+;0jOP(z2qX%LnPWJban#}4W0^(G`L~B8!3Q26H)I&Z_P%rFz8>fQ9oiZN1? z&!&noy_-7OFw2l}%H)IDhK$oEJH|^X2w%G*)_ng9O0Ch{~&U1ut|99BJ)T0-kf@L0AkIXn$41V208$6ro>7B diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index aca20325888de13233ae8876fda24e22018aea52..3b96bd71818fab9556ee239f001b86e0c1803af3 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~3p81pqZ#1f>7~ literal 17 VcmZQ}=bo_Q-nZT^1~3r&4gfYf1%?0s diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index dbd5702..e699237 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -5,16 +5,12 @@ - - - + android:usesCleartextTraffic="true"> - From 5c7d6794b0e39c15254296f13cb576cc99086aee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=A7=80=EC=9B=90?= Date: Tue, 25 Nov 2025 16:44:09 +0900 Subject: [PATCH 39/52] feat : mypage mypoint api connect --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 39997 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes lib/features/auth/screens/mypage_screen.dart | 952 ++++++++++--------- pubspec.lock | 24 +- 4 files changed, 518 insertions(+), 458 deletions(-) diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 545c48dcf9037efa6ce2911a2e129c03a0ba69a7..1c6857b8610be385367aad6f81fe37f48ab08e7f 100644 GIT binary patch delta 699 zcmX@Pg=y~&rVS<%jO#X=N_=1wSi{O}Te|MyVg@jnRlQkOekTjRq;x>n^xJ6=!P%vo z&njy&@_TN&eAV#tYpBY#o8PLOU>11#YJ|w&3KW=9c`;Hr6`tw{$_Z-<A|rppm#yaRd8iM-Pr5J!7CU zO(0eTVF6Rc3$l*7cWZCn_~077eIn4YjI;DQgie6X;<}~TM0*D&929O%Yqqnmr7d8pYOFdbdWpVmO(VMQkxrS3uL)1vk0I6YM6=$3LF-BN^ z$$sri^4fg)nk8i9`Q9ICz7~d}Ln8DzrjChnUY?iVul}O9b1qxwR^tF<9rX;`ti>_4 zoX=QsQb*NKK2G8To)&0zyMKxD)ZoX!e&pJ8Q!f^63 h3-QfYEiBn5t2wyy{D%St2KB;?iVHY4J9=;g0Ra27Ajbdz diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index 3b96bd71818fab9556ee239f001b86e0c1803af3..183ad12436240e4eb6e3199d7677033fff046c77 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~3p;1OPQ=1hD`B literal 17 VcmZQ}=bo_Q-nZT^1~3p81pqZ#1f>7~ diff --git a/lib/features/auth/screens/mypage_screen.dart b/lib/features/auth/screens/mypage_screen.dart index e328281..12ef21a 100644 --- a/lib/features/auth/screens/mypage_screen.dart +++ b/lib/features/auth/screens/mypage_screen.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; // ✅ rootBundle 사용을 위해 추가 +import 'package:flutter/services.dart'; import 'package:guardpayfront/core/services/storage.dart'; import 'package:guardpayfront/features/auth/services/api_service.dart'; import 'package:guardpayfront/features/auth/widgets/bottom_nav.dart'; import 'package:image_picker/image_picker.dart'; -import 'package:path_provider/path_provider.dart'; // ✅ 임시 디렉토리 사용을 위해 추가 +import 'package:path_provider/path_provider.dart'; import 'dart:io'; class MypageScreen extends StatefulWidget { @@ -21,13 +21,13 @@ class _MypageScreenState extends State { String? _accessToken; final TextEditingController _nicknameController = TextEditingController(); - final TextEditingController _currentPasswordController = TextEditingController(); // ✅ 추가 + final TextEditingController _currentPasswordController = TextEditingController(); final TextEditingController _passwordController = TextEditingController(); final TextEditingController _passwordConfirmController = TextEditingController(); String? profileImageUrl; File? _selectedImage; - double fontSize = 16.0; + int _points = 0; bool isLoading = true; bool isEditing = false; bool isUpdating = false; @@ -38,7 +38,6 @@ class _MypageScreenState extends State { _loadUserInfo(); } - // 🔹 사용자 정보 로드 - GET /api/members/profile Future _loadUserInfo() async { try { final token = await storage.read(key: 'accessToken'); @@ -47,40 +46,36 @@ class _MypageScreenState extends State { Navigator.pushReplacementNamed(context, '/login'); return; } - setState(() { - _accessToken = token; - }); + + _accessToken = token; + final response = await _api.get( '/api/members/profile', headers: {'Authorization': 'Bearer $token'}, ); - print('🔍 응답 데이터: $response'); // 디버깅용 + print("🔍 프로필 응답: $response"); if (response != null) { - // ✅ 서버가 MemberInfoResponse를 직접 반환하므로 response 자체를 사용 setState(() { _nicknameController.text = response['nickname'] ?? 'OOO'; - String? rawImageUrl = response['profileImageUrl']; // 1. 원본 URL 받기 + _points = response['points'] ?? 0; + final rawImageUrl = response['profileImageUrl']; if (rawImageUrl != null) { - // 2. 안드로이드 플랫폼인지 확인 (import 'dart:io'; 필요) - if (Platform.isAndroid) { - // 3. 'localhost'를 '10.0.2.2'로 변경 - profileImageUrl = rawImageUrl.replaceAll('localhost', '10.0.2.2'); - } else { - profileImageUrl = rawImageUrl; // (참고: iOS 시뮬레이터는 localhost로 동작) - } + profileImageUrl = Platform.isAndroid + ? rawImageUrl.replaceAll("localhost", "10.0.2.2") + : rawImageUrl; } else { profileImageUrl = null; } - isLoading = false; }); } else { setState(() { _nicknameController.text = "OOO"; + _points = 0; isLoading = false; }); } @@ -88,6 +83,7 @@ class _MypageScreenState extends State { print("❌ 사용자 정보 로드 실패: $e"); setState(() { _nicknameController.text = "OOO"; + _points = 0; isLoading = false; }); } @@ -98,82 +94,107 @@ class _MypageScreenState extends State { showModalBottomSheet( context: context, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), builder: (context) => SafeArea( - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - ListTile( - leading: const Icon(Icons.photo_library), - title: const Text('갤러리에서 선택'), - onTap: () async { - Navigator.pop(context); - final XFile? image = - await picker.pickImage(source: ImageSource.gallery); - if (image != null) { - setState(() { - _selectedImage = File(image.path); - }); - } - }, - ), - ListTile( - leading: const Icon(Icons.camera_alt), - title: const Text('카메라로 촬영'), - onTap: () async { - Navigator.pop(context); - final XFile? image = - await picker.pickImage(source: ImageSource.camera); - if (image != null) { - setState(() { - _selectedImage = File(image.path); - }); - } - }, - ), - // ✅ 테스트용 이미지 선택 옵션 추가 - ListTile( - leading: const Icon(Icons.image, color: Colors.blue), - title: const Text('테스트 이미지 사용'), - onTap: () async { - Navigator.pop(context); - try { - // assets 이미지를 임시 파일로 복사 - final ByteData data = await rootBundle.load('assets/images/TestProfile.jpg'); - final buffer = data.buffer; - final tempDir = await getTemporaryDirectory(); - final tempFile = File('${tempDir.path}/test_profile.jpg'); - await tempFile.writeAsBytes( - buffer.asUint8List(data.offsetInBytes, data.lengthInBytes), - ); - - setState(() { - _selectedImage = tempFile; - }); - - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar( - content: Text('테스트 이미지가 선택되었습니다.'), - backgroundColor: Colors.blue, - ), - ); - } catch (e) { - print('❌ 테스트 이미지 로드 실패: $e'); - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text('테스트 이미지 로드 실패: $e'), - backgroundColor: Colors.red, - ), - ); - } - }, - ), - ], + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 20), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 40, + height: 4, + margin: const EdgeInsets.only(bottom: 20), + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2), + ), + ), + ListTile( + leading: Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.blue.withOpacity(0.1), + borderRadius: BorderRadius.circular(8), + ), + child: const Icon(Icons.photo_library, color: Colors.blue), + ), + title: const Text('갤러리에서 선택'), + onTap: () async { + Navigator.pop(context); + final XFile? image = await picker.pickImage(source: ImageSource.gallery); + if (image != null) { + setState(() { + _selectedImage = File(image.path); + }); + } + }, + ), + ListTile( + leading: Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.green.withOpacity(0.1), + borderRadius: BorderRadius.circular(8), + ), + child: const Icon(Icons.camera_alt, color: Colors.green), + ), + title: const Text('카메라로 촬영'), + onTap: () async { + Navigator.pop(context); + final XFile? image = await picker.pickImage(source: ImageSource.camera); + if (image != null) { + setState(() { + _selectedImage = File(image.path); + }); + } + }, + ), + ListTile( + leading: Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.orange.withOpacity(0.1), + borderRadius: BorderRadius.circular(8), + ), + child: const Icon(Icons.image, color: Colors.orange), + ), + title: const Text('테스트 이미지 사용'), + onTap: () async { + Navigator.pop(context); + try { + final ByteData data = await rootBundle.load('assets/images/TestProfile.jpg'); + final buffer = data.buffer; + final tempDir = await getTemporaryDirectory(); + final tempFile = File('${tempDir.path}/test_profile.jpg'); + await tempFile.writeAsBytes( + buffer.asUint8List(data.offsetInBytes, data.lengthInBytes), + ); + + setState(() { + _selectedImage = tempFile; + }); + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('테스트 이미지가 선택되었습니다.'), + backgroundColor: Colors.blue, + ), + ); + } catch (e) { + print('❌ 테스트 이미지 로드 실패: $e'); + } + }, + ), + ], + ), ), ), ); } - // 🔹 프로필 수정 - PUT /api/members/profile Future _updateProfile() async { if (!_formKey.currentState!.validate()) return; @@ -195,130 +216,48 @@ class _MypageScreenState extends State { return; } - // ✅ 1. 닉네임과 비밀번호 수정 final Map updateData = { 'nickname': _nicknameController.text, }; - // 비밀번호 변경 시 현재 비밀번호와 새 비밀번호 모두 필요 if (_passwordController.text.isNotEmpty) { updateData['currentPassword'] = _currentPasswordController.text; updateData['password'] = _passwordController.text; } - print('🔍 수정 요청 데이터: $updateData'); // 디버깅용 - final response = await _api.put( '/api/members/profile', data: updateData, headers: {'Authorization': 'Bearer $token'}, ); - print('🔍 수정 응답: $response'); // 디버깅용 - - if (response != null) { - // ✅ 2. 이미지가 실제로 선택된 경우에만 업로드 - if (_selectedImage != null && _selectedImage!.existsSync()) { - print('🔍 이미지 업로드 시작: ${_selectedImage!.path}'); // 디버깅용 - - try { - final imageResponse = await _api.uploadImage( - '/api/members/profile/image', - _selectedImage!, - headers: {'Authorization': 'Bearer $token'}, - ); - - print('🔍 이미지 업로드 응답: $imageResponse'); // 디버깅용 - - if (imageResponse == null) { - // 이미지 업로드 실패해도 프로필 수정은 성공했으므로 경고만 표시 - if (mounted) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar( - content: Text('프로필은 수정되었지만 이미지 업로드에 실패했습니다.'), - backgroundColor: Colors.orange, - ), - ); - } - } - } catch (e) { - print('❌ 이미지 업로드 예외: $e'); - if (mounted) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar( - content: Text('프로필은 수정되었지만 이미지 업로드에 실패했습니다.'), - backgroundColor: Colors.orange, - ), - ); - } - } - } - - if (mounted) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar( - content: Text('프로필이 성공적으로 수정되었습니다.'), - backgroundColor: Colors.green, - ), - ); - setState(() { - isEditing = false; - _passwordController.clear(); - _passwordConfirmController.clear(); - _selectedImage = null; - }); - _loadUserInfo(); - } - } else { - throw Exception('프로필 수정에 실패했습니다.'); - } - } catch (e) { - print("❌ 프로필 수정 실패: $e"); - if (mounted) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text('프로필 수정에 실패했습니다: $e'), - backgroundColor: Colors.red, - ), + if (response != null && _selectedImage != null) { + await _api.uploadImage( + '/api/members/profile/image', + _selectedImage!, + headers: {'Authorization': 'Bearer $token'}, ); } - } finally { - setState(() => isUpdating = false); - } - } - - // 🔹 프로필 이미지 삭제 - DELETE /api/members/profile/image - Future _deleteProfileImage() async { - try { - final token = await storage.read(key: 'accessToken'); - if (token == null) return; - final success = await _api.delete( - '/api/members/profile/image', - headers: {'Authorization': 'Bearer $token'}, - ); - - if (success) { - setState(() { - profileImageUrl = null; - _selectedImage = null; - }); + if (mounted) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar( - content: Text('프로필 이미지가 삭제되었습니다.'), + content: Text('프로필이 성공적으로 수정되었습니다.'), backgroundColor: Colors.green, ), ); + setState(() { + isEditing = false; + _passwordController.clear(); + _passwordConfirmController.clear(); + _currentPasswordController.clear(); + }); + _loadUserInfo(); } } catch (e) { - print("❌ 프로필 이미지 삭제 실패: $e"); - } - } - - Future _logout() async { - await storage.deleteAll(); - if (mounted) { - Navigator.pushReplacementNamed(context, '/login'); + print("❌ 프로필 수정 실패: $e"); + } finally { + setState(() => isUpdating = false); } } @@ -334,19 +273,20 @@ class _MypageScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: const Color(0xFFF9F5EC), + backgroundColor: Colors.grey[50], appBar: AppBar( - backgroundColor: const Color(0xFFF9F5EC), + backgroundColor: Colors.white, elevation: 0, leading: IconButton( - icon: const Icon(Icons.arrow_back, color: Colors.black87), + icon: const Icon(Icons.arrow_back_ios, color: Colors.black87, size: 20), onPressed: () => Navigator.pop(context), ), title: const Text( '마이페이지', style: TextStyle( color: Colors.black87, - fontWeight: FontWeight.bold, + fontSize: 18, + fontWeight: FontWeight.w600, ), ), centerTitle: true, @@ -358,248 +298,341 @@ class _MypageScreenState extends State { key: _formKey, child: Column( children: [ - const SizedBox(height: 20), - - // 등급 헤더 + // 프로필 헤더 영역 Container( - padding: const EdgeInsets.symmetric(horizontal: 24), - child: const Align( - alignment: Alignment.center, - child: Text( - '안전송금 새싹', - style: TextStyle( - fontSize: 18, - fontWeight: FontWeight.bold, - color: Colors.black87, - ), - ), - ), - ), - - const SizedBox(height: 30), - - // 🔹 프로필 이미지 - Center( - child: GestureDetector( - onTap: isEditing ? _pickImage : null, - onLongPress: isEditing && (profileImageUrl != null || _selectedImage != null) - ? () { - showDialog( - context: context, - builder: (context) => AlertDialog( - title: const Text('프로필 이미지 삭제'), - content: const Text('프로필 이미지를 삭제하시겠습니까?'), - actions: [ - TextButton( - onPressed: () => Navigator.pop(context), - child: const Text('취소'), - ), - TextButton( - onPressed: () { - Navigator.pop(context); - _deleteProfileImage(); - }, - child: const Text('삭제'), - ), - ], - ), - ); - } - : null, - child: Stack( - children: [ - Container( - width: 120, - height: 120, - decoration: BoxDecoration( - color: Colors.grey[400], - shape: BoxShape.circle, - image: _selectedImage != null - ? DecorationImage( - image: FileImage(_selectedImage!), - fit: BoxFit.cover, - ) - : profileImageUrl != null && _accessToken != null // ✅ 토큰 null 체크 - ? DecorationImage( - // ⬇️ 여기를 수정합니다 ⬇️ - image: NetworkImage( - profileImageUrl!, - headers: { - 'Authorization': 'Bearer $_accessToken' - }, + width: double.infinity, + color: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 32), + child: Column( + children: [ + // 프로필 이미지 + Stack( + children: [ + Container( + width: 100, + height: 100, + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: Colors.grey[200]!, + width: 2, ), - // ⬆️ 여기까지 수정 ⬆️ - fit: BoxFit.cover, - ) - : null, // 토큰이나 URL이 없으면 null + image: _selectedImage != null + ? DecorationImage( + image: FileImage(_selectedImage!), + fit: BoxFit.cover, + ) + : profileImageUrl != null + ? DecorationImage( + image: NetworkImage( + profileImageUrl!, + headers: { + 'Authorization': 'Bearer $_accessToken' + }, + ), + fit: BoxFit.cover, + ) + : null, + color: Colors.grey[100], + ), + child: _selectedImage == null && profileImageUrl == null + ? Icon(Icons.person, size: 50, color: Colors.grey[400]) + : null, ), - child: _selectedImage == null && - profileImageUrl == null - ? const Icon( - Icons.person, - size: 60, - color: Colors.white, - ) - : null, - ), - if (isEditing) - Positioned( - bottom: 0, - right: 0, - child: Container( - padding: const EdgeInsets.all(8), - decoration: const BoxDecoration( - color: Colors.blue, - shape: BoxShape.circle, - ), - child: const Icon( - Icons.camera_alt, - color: Colors.white, - size: 20, + if (isEditing) + Positioned( + bottom: 0, + right: 0, + child: GestureDetector( + onTap: _pickImage, + child: Container( + width: 32, + height: 32, + decoration: BoxDecoration( + color: Colors.green, + shape: BoxShape.circle, + border: Border.all(color: Colors.white, width: 2), + ), + child: const Icon( + Icons.camera_alt, + size: 16, + color: Colors.white, + ), + ), ), ), + ], + ), + + const SizedBox(height: 16), + + // 닉네임 + Text( + _nicknameController.text, + style: const TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + + const SizedBox(height: 8), + + // 등급 배지 + Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 6), + decoration: BoxDecoration( + color: Colors.green.withOpacity(0.1), + borderRadius: BorderRadius.circular(20), + ), + child: const Text( + '안전송금 새싹 🌱', + style: TextStyle( + fontSize: 13, + fontWeight: FontWeight.w600, + color: Colors.green, ), - ], - ), + ), + ), + ], ), ), - const SizedBox(height: 30), + const SizedBox(height: 12), - // 🔹 설정 섹션 + // 포인트 카드 Container( - padding: const EdgeInsets.symmetric(horizontal: 24), - alignment: Alignment.centerLeft, - child: const Text( - '설정', - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.bold, - color: Colors.black87, + margin: const EdgeInsets.symmetric(horizontal: 20), + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [Colors.green[400]!, Colors.green[600]!], + begin: Alignment.topLeft, + end: Alignment.bottomRight, ), + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.green.withOpacity(0.3), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + '내 포인트', + style: TextStyle( + fontSize: 14, + color: Colors.white70, + fontWeight: FontWeight.w500, + ), + ), + SizedBox(height: 4), + Text( + 'My Points', + style: TextStyle( + fontSize: 11, + color: Colors.white60, + ), + ), + ], + ), + Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + '$_points', + style: const TextStyle( + fontSize: 28, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + const SizedBox(width: 4), + const Padding( + padding: EdgeInsets.only(bottom: 4), + child: Text( + 'P', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.white, + ), + ), + ), + ], + ), + ], ), ), - const SizedBox(height: 15), + const SizedBox(height: 24), - // ✅ 설정 전체를 흰색 박스로 감싸기 + // 계정 정보 섹션 Container( - margin: const EdgeInsets.symmetric(horizontal: 24), - padding: const EdgeInsets.symmetric( - horizontal: 20, vertical: 20), + margin: const EdgeInsets.symmetric(horizontal: 20), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(16), - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.05), - blurRadius: 4, - offset: const Offset(0, 2), - ), - ], ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ + const Padding( + padding: EdgeInsets.fromLTRB(20, 20, 20, 16), + child: Text( + '계정 정보', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + + Divider(height: 1, color: Colors.grey[200]), + // 닉네임 - if (isEditing) - TextFormField( - controller: _nicknameController, - decoration: InputDecoration( - hintText: '닉네임을 입력하세요', - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(8), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + child: isEditing + ? Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + '닉네임', + style: TextStyle( + fontSize: 13, + color: Colors.grey, + fontWeight: FontWeight.w500, + ), ), - filled: true, - fillColor: Colors.white, - contentPadding: const EdgeInsets.symmetric( - horizontal: 16, - vertical: 12, + const SizedBox(height: 8), + TextFormField( + controller: _nicknameController, + decoration: InputDecoration( + hintText: '닉네임을 입력하세요', + hintStyle: TextStyle(color: Colors.grey[400]), + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide(color: Colors.grey[300]!), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide(color: Colors.grey[300]!), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: const BorderSide(color: Colors.green), + ), + filled: true, + fillColor: Colors.grey[50], + ), ), - ), - validator: (value) { - if (value == null || value.isEmpty) { - return '닉네임을 입력해주세요'; - } - if (value.length < 2) { - return '닉네임은 2자 이상이어야 합니다'; - } - return null; - }, + ], ) - else - Row( + : Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const Text( '닉네임', style: TextStyle( - fontSize: 14, color: Colors.black87), + fontSize: 15, + color: Colors.grey, + ), ), Text( _nicknameController.text, style: const TextStyle( - fontSize: 16, + fontSize: 15, fontWeight: FontWeight.w600, color: Colors.black87, ), ), ], ), + ), - const SizedBox(height: 20), + Divider(height: 1, color: Colors.grey[200]), // 비밀번호 - if (isEditing) - Column( + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + child: isEditing + ? Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ + const Text( + '비밀번호 변경', + style: TextStyle( + fontSize: 13, + color: Colors.grey, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 8), TextFormField( controller: _currentPasswordController, obscureText: true, decoration: InputDecoration( hintText: '현재 비밀번호', - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(8), - ), - filled: true, - fillColor: Colors.white, + hintStyle: TextStyle(color: Colors.grey[400]), contentPadding: const EdgeInsets.symmetric( horizontal: 16, vertical: 12, ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide(color: Colors.grey[300]!), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide(color: Colors.grey[300]!), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: const BorderSide(color: Colors.green), + ), + filled: true, + fillColor: Colors.grey[50], ), - validator: (value) { - if (_passwordController.text.isNotEmpty && - (value == null || value.isEmpty)) { - return '비밀번호를 변경하려면 현재 비밀번호를 입력해주세요'; - } - return null; - }, ), const SizedBox(height: 12), TextFormField( controller: _passwordController, obscureText: true, decoration: InputDecoration( - hintText: '새 비밀번호 (변경 시에만 입력)', - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(8), - ), - filled: true, - fillColor: Colors.white, + hintText: '새 비밀번호', + hintStyle: TextStyle(color: Colors.grey[400]), contentPadding: const EdgeInsets.symmetric( horizontal: 16, vertical: 12, ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide(color: Colors.grey[300]!), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide(color: Colors.grey[300]!), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: const BorderSide(color: Colors.green), + ), + filled: true, + fillColor: Colors.grey[50], ), - validator: (value) { - if (value != null && - value.isNotEmpty && - value.length < 8) { - return '비밀번호는 8자 이상이어야 합니다'; - } - return null; - }, ), const SizedBox(height: 12), TextFormField( @@ -607,70 +640,84 @@ class _MypageScreenState extends State { obscureText: true, decoration: InputDecoration( hintText: '새 비밀번호 확인', - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(8), - ), - filled: true, - fillColor: Colors.white, + hintStyle: TextStyle(color: Colors.grey[400]), contentPadding: const EdgeInsets.symmetric( horizontal: 16, vertical: 12, ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide(color: Colors.grey[300]!), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide(color: Colors.grey[300]!), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: const BorderSide(color: Colors.green), + ), + filled: true, + fillColor: Colors.grey[50], ), - validator: (value) { - if (_passwordController.text.isNotEmpty && - value != _passwordController.text) { - return '비밀번호가 일치하지 않습니다'; - } - return null; - }, ), ], ) - else - Row( + : const Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: const [ + children: [ Text( '비밀번호', style: TextStyle( - fontSize: 14, color: Colors.black87), + fontSize: 15, + color: Colors.grey, + ), ), Text( '••••••••', style: TextStyle( - fontSize: 16, + fontSize: 15, fontWeight: FontWeight.w600, color: Colors.black87, ), ), ], ), + ), + ], + ), + ), - const SizedBox(height: 20), + const SizedBox(height: 16), - // 포인트 내역 & 쿠폰함 - _buildMenuButton('포인트 내역', () { - // Navigator.pushNamed(context, '/point-history'); - }), - const SizedBox(height: 12), - _buildMenuButton('내 쿠폰함', () { - // Navigator.pushNamed(context, '/coupon-list'); - }), + // 메뉴 섹션 + Container( + margin: const EdgeInsets.symmetric(horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + ), + child: Column( + children: [ + + Divider(height: 1, color: Colors.grey[200]), + _buildMenuItem( + icon: Icons.card_giftcard, + title: '내 쿠폰함', + onTap: () {}, + ), ], ), ), - const SizedBox(height: 40), + const SizedBox(height: 32), - // 🔹 수정/저장/취소 버튼 + // 버튼 영역 Padding( - padding: const EdgeInsets.symmetric(horizontal: 24), + padding: const EdgeInsets.symmetric(horizontal: 20), child: isEditing ? Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - // 취소 버튼 Expanded( child: OutlinedButton( onPressed: () { @@ -678,52 +725,52 @@ class _MypageScreenState extends State { isEditing = false; _passwordController.clear(); _passwordConfirmController.clear(); - _selectedImage = null; + _currentPasswordController.clear(); }); _loadUserInfo(); }, style: OutlinedButton.styleFrom( - padding: const EdgeInsets.symmetric(vertical: 16), - side: const BorderSide(color: Colors.grey), + side: BorderSide(color: Colors.grey[300]!), shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8), + borderRadius: BorderRadius.circular(12), ), + padding: const EdgeInsets.symmetric(vertical: 16), ), child: const Text( '취소', style: TextStyle( - color: Colors.grey, fontSize: 16, fontWeight: FontWeight.w600, + color: Colors.black87, ), ), ), ), const SizedBox(width: 12), - // 저장 버튼 Expanded( child: ElevatedButton( onPressed: isUpdating ? null : _updateProfile, style: ElevatedButton.styleFrom( backgroundColor: Colors.green, - padding: const EdgeInsets.symmetric(vertical: 16), + foregroundColor: Colors.white, + elevation: 0, shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8), + borderRadius: BorderRadius.circular(12), ), + padding: const EdgeInsets.symmetric(vertical: 16), ), child: isUpdating ? const SizedBox( - height: 20, width: 20, + height: 20, child: CircularProgressIndicator( - color: Colors.white, strokeWidth: 2, + color: Colors.white, ), ) : const Text( '저장', style: TextStyle( - color: Colors.white, fontSize: 16, fontWeight: FontWeight.w600, ), @@ -732,34 +779,32 @@ class _MypageScreenState extends State { ), ], ) - : SizedBox( - width: double.infinity, - child: ElevatedButton( - onPressed: () { - setState(() { - isEditing = true; - }); - }, - style: ElevatedButton.styleFrom( - backgroundColor: Colors.green, - padding: const EdgeInsets.symmetric(vertical: 16), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8), - ), + : ElevatedButton( + onPressed: () { + setState(() { + isEditing = true; + }); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.green, + foregroundColor: Colors.white, + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), ), - child: const Text( - '수정', - style: TextStyle( - color: Colors.white, - fontSize: 16, - fontWeight: FontWeight.w600, - ), + minimumSize: const Size.fromHeight(52), + ), + child: const Text( + '프로필 수정', + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, ), ), ), ), - const SizedBox(height: 30), + const SizedBox(height: 40), ], ), ), @@ -768,24 +813,39 @@ class _MypageScreenState extends State { ); } - Widget _buildMenuButton(String title, VoidCallback onTap) { + Widget _buildMenuItem({ + required IconData icon, + required String title, + required VoidCallback onTap, + }) { return InkWell( onTap: onTap, - child: Container( - width: double.infinity, - padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 20), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(8), - border: Border.all(color: Colors.grey[300]!), - ), - child: Text( - title, - style: const TextStyle( - fontSize: 15, - color: Colors.black87, - fontWeight: FontWeight.w500, - ), + borderRadius: BorderRadius.circular(16), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + child: Row( + children: [ + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.grey[100], + borderRadius: BorderRadius.circular(8), + ), + child: Icon(icon, size: 20, color: Colors.green), + ), + const SizedBox(width: 16), + Expanded( + child: Text( + title, + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.black87, + ), + ), + ), + Icon(Icons.chevron_right, color: Colors.grey[400], size: 20), + ], ), ), ); diff --git a/pubspec.lock b/pubspec.lock index 43b5a59..c738e41 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -508,26 +508,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -556,10 +556,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" mime: dependency: transitive description: @@ -833,10 +833,10 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.7" typed_data: dependency: transitive description: @@ -921,10 +921,10 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: From 4501732a96e0eeb287e22bddc23dbe798042bd9c Mon Sep 17 00:00:00 2001 From: minmin02 Date: Tue, 25 Nov 2025 16:45:22 +0900 Subject: [PATCH 40/52] =?UTF-8?q?feat=20:=20=EA=B2=80=EC=83=89=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80,=20=EB=93=B1=EA=B8=89=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 39497 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20741 -> 20775 bytes lib/features/auth/screens/grade_screen.dart | 146 ++++++++++++++++++ lib/features/auth/screens/home_screen.dart | 106 +++++++++++-- lib/features/auth/services/api_service.dart | 21 +++ 6 files changed, 260 insertions(+), 13 deletions(-) create mode 100644 lib/features/auth/screens/grade_screen.dart diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 545c48dcf9037efa6ce2911a2e129c03a0ba69a7..218d49adec529116a95b13d6c4cc4e74209ef9d7 100644 GIT binary patch delta 882 zcmXxgOK1~e6b0ZkDlTe;cH(PLw2LkzBqg{I1yOM&olZJ7X_|)8g@}k?QSgCDY|}*T zLygI?^kvleqH5AqlU9Nh)GVZ+h=>bu5wdk7F2zM1@9E4Y-+#}&ck<72$-Z2&&o8#E znX9<5Lu)mEUGQou)@hqedsl0QSu?Yrn-SC8Ys&@Y5{jC8gNchac^o=wx{_{J7;b5o zuFE(|#1SS2kteR8YN1h=<|vL35uDd$cbL0_%`gTOyw_#zI5CV5#3=p{ zV{jgm<{RiGZX#(_-VwJ@omA1#>G=Q2GHB_Pf%^y$lNcfH;SDj3-w_q-eKIhGojw`3 z3xk+3D=IQpyx^0IPw?XVwxc$s!0wle4`Z8Oh997fc#0_T1O;LiH7g1asBm@3Yo8%+ z9{PBAfvR~(@$ejtgDNUk+m9}J!7LgAg2y;WJi=MxA?jl)mIAUji*Kyv&~H|oyQLaO zHYU?~obDF9LWY>fXW}L5f)W+5$HECBhm|3Titxk*3;4^Z1Xs^$rH^=xlm%x(qB44k zMI;j{4u|AF4IvnkIEFD|4ogI(_$zdwX=}^=jc=>1!7sZ<59QAF7=D|rZn|7>%F|6=kM?Ry|IWT7O~tIsmj~g zyd4|$9mabbT)K)CdZ}UGzuXZcXVk8pM?kN%MzmBv!g^(qfj*NwB~B!rN^iB2D-K~@ zwRDAXkhqI>ViY0bHWI`w*qzdR69Fn9aP;qFo}?v&*dm}lEK3SBaIAA5-h zXeHtpB<3;Wl2tFcs<;J?4h5TQWYr7ou8|E193vLcPsA}z%ppt6!r_+Y88j0yTp}hh zNj%09F$L|AG(SNj@eDo0G{%VMNL*H7t1Zd>vX9tWD+4Kbi6kx%pD;?i!(xYue2)yg z#U_soe1MyHZ)8*qu>1zY9=Z5yUVP66B(Es2)XBvkqO4Aa)2Jf8qVqql6F-n7zN5WM zMMb?F`wJl>Xkzdi2_pzHScd(KiU|fwh}X*jKVkCR_!t!(JgnycS> W+pNLa&?}S4+!xU@r^B5mrnJ8;s&(}M diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index 3b96bd71818fab9556ee239f001b86e0c1803af3..a62175858bb1281cf63959fdfc325739a412c944 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~3rM2LLs+1pfd4 literal 17 VcmZQ}=bo_Q-nZT^1~3p81pqZ#1f>7~ diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin index 71f5f14d511589a740c841369a8ad8798793fb68..2c9919c1bef8b5aa1dea0bc30d80747ec4a93302 100644 GIT binary patch delta 57 zcmZo&#JGGB;|3E6M(53@5+@i1PT7QM1gAW3U;u+a*3Dlft63N$H!A)R-)L|^aI>Sw K5su0J-bw%%hZ4a6 delta 36 scmZ3!h_Q7M;|3E6MyJiD5+@ipi%J!M0O= createState() => _GradeScreenState(); +} + +class _GradeScreenState extends State { + final ApiService _api = ApiService(); + String? _grade; + bool _isLoading = true; + + @override + void initState() { + super.initState(); + _fetchGrade(); + } + + // API를 통해 등급 가져오기 + Future _fetchGrade() async { + try { + final result = await _api.getMyGrade(); + + if (mounted) { + setState(() { + _grade = result; + _isLoading = false; + }); + } + } catch (e) { + if (mounted) { + setState(() { + _grade = null; + _isLoading = false; + }); + } + print('등급 조회 중 오류 발생: $e'); + } + } + + // 등급 텍스트를 보기 좋게 변환 (예: "주의_필요" -> "주의 필요") + String _formatGrade(String? grade) { + if (grade == null) return "정보 없음"; + return grade.replaceAll('_', ' '); + } + + // 등급에 따른 아이콘 색상 (옵션) + Color _getGradeColor(String? grade) { + if (grade == null) return Colors.grey; + if (grade.contains("안전")) return Colors.green; + if (grade.contains("주의")) return Colors.orange; + if (grade.contains("위험")) return Colors.red; + return Colors.blueAccent; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF9F5EC), // 기존 앱 배경색 유지 + appBar: AppBar( + backgroundColor: const Color(0xFFF9F5EC), + elevation: 0, + centerTitle: true, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black87), + onPressed: () => Navigator.pop(context), + ), + title: const Text( + "내 등급 정보", + style: TextStyle(color: Colors.black87, fontWeight: FontWeight.bold), + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // 🔹 등급 카드 디자인 + Container( + width: 300, + padding: const EdgeInsets.symmetric(vertical: 40, horizontal: 20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.2), + spreadRadius: 2, + blurRadius: 10, + offset: const Offset(0, 5), + ), + ], + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Icons.verified_user_rounded, // 방패 모양 아이콘 + size: 80, + color: _getGradeColor(_grade), + ), + const SizedBox(height: 20), + const Text( + "현재 나의 금융 등급", + style: TextStyle( + fontSize: 16, + color: Colors.grey, + ), + ), + const SizedBox(height: 10), + Text( + _formatGrade(_grade), + style: const TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + textAlign: TextAlign.center, + ), + ], + ), + ), + const SizedBox(height: 30), + + // 🔹 새로고침 버튼 (선택 사항) + TextButton.icon( + onPressed: () { + setState(() => _isLoading = true); + _fetchGrade(); + }, + icon: const Icon(Icons.refresh, color: Colors.black54), + label: const Text( + "다시 불러오기", + style: TextStyle(color: Colors.black54), + ), + ) + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart index 0389f32..d8f99ca 100644 --- a/lib/features/auth/screens/home_screen.dart +++ b/lib/features/auth/screens/home_screen.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; +import 'package:guardpayfront/features/auth/screens/grade_screen.dart'; import 'chat_screen.dart'; import 'package:guardpayfront/core/services/storage.dart'; import 'package:guardpayfront/features/auth/services/api_service.dart'; @@ -17,7 +18,14 @@ class _HomeScreenState extends State { final storage = AppStorage.storage; final ApiService _api = ApiService(); int _selectedIndex = 0; - +// _HomeScreenState 클래스 내부 변수로 추가 + final List> _searchOptions = [ + {'title': '역량 진단', 'route': '/assessment'}, + {'title': '금융 퀴즈', 'route': '/quizCategory'}, + {'title': '보이스피싱 예방', 'route': '/video'}, + {'title': '마이페이지', 'route': '/mypage'}, + {'title': '내 등급 조회', 'route': '/grade'}, // 새로 만든 등급 화면 + ]; String? accessToken; @override @@ -55,20 +63,92 @@ class _HomeScreenState extends State { padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), child: Row( children: [ - const Icon(Icons.menu, color: Colors.black87, size: 26), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GradeScreen()), + ); + }, + child: const Icon(Icons.menu, color: Colors.black87, size: 26), + ), + const SizedBox(width: 10), Expanded( - child: TextField( - decoration: InputDecoration( - hintText: '검색어를 입력해주세요.', - hintStyle: const TextStyle(color: Colors.grey), - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(8.0), - borderSide: BorderSide.none, - ), - prefixIcon: - const Icon(Icons.search, color: Colors.black54), - ), + child: Autocomplete>( + // 1️⃣ 검색 로직 + optionsBuilder: (TextEditingValue textEditingValue) { + if (textEditingValue.text == '') { + return const Iterable>.empty(); + } + return _searchOptions.where((option) { + return option['title']!.contains(textEditingValue.text); + }); + }, + + // 2️⃣ 선택 시 이동 로직 + onSelected: (Map selection) { + // 키보드 내리기 + FocusManager.instance.primaryFocus?.unfocus(); + print('선택된 메뉴: ${selection['title']}'); + Navigator.pushNamed(context, selection['route']!); + }, + + // 3️⃣ 입력창 디자인 (기존 유지) + fieldViewBuilder: (context, textEditingController, focusNode, onFieldSubmitted) { + return TextField( + controller: textEditingController, + focusNode: focusNode, + decoration: InputDecoration( + hintText: '검색어를 입력해주세요.', + hintStyle: const TextStyle(color: Colors.grey), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8.0), + borderSide: BorderSide.none, + ), + prefixIcon: const Icon(Icons.search, color: Colors.black54), + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.symmetric(vertical: 0, horizontal: 10), + ), + ); + }, + + // 4️⃣ [수정됨] 자동완성 리스트 디자인 + optionsViewBuilder: (context, onSelected, options) { + return Align( + alignment: Alignment.topLeft, + child: Material( + elevation: 4.0, + color: Colors.transparent, // Material 자체 색상은 투명하게 + child: Container( + // ✅ 너비를 화면 너비에 맞게 조절 (약간의 여백 제외) + width: MediaQuery.of(context).size.width - 90, + constraints: const BoxConstraints( + maxHeight: 200, // ✅ 리스트 최대 높이 제한 (스크롤 가능하게) + ), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + ), + child: ListView.builder( + padding: EdgeInsets.zero, // 🚨 여기에 있던 'ㅇ' 오타 제거 완료 + shrinkWrap: true, + itemCount: options.length, + itemBuilder: (BuildContext context, int index) { + final option = options.elementAt(index); + return ListTile( + title: Text(option['title']!), + onTap: () { + onSelected(option); + }, + ); + }, + ), + ), + ), + ); + }, ), ), const SizedBox(width: 15), diff --git a/lib/features/auth/services/api_service.dart b/lib/features/auth/services/api_service.dart index f1979d1..a9f463a 100644 --- a/lib/features/auth/services/api_service.dart +++ b/lib/features/auth/services/api_service.dart @@ -260,6 +260,24 @@ class ApiService { return false; } } + Future getMyGrade() async { + final token = await storage.read(key: 'accessToken'); + if (token == null) return null; + + // 백엔드 경로 확인 필수! (예: /members/me/grade 인지 /api/members/me/grade 인지) + final result = await get( + '/api/members/me/grade', + headers: { + 'Authorization': 'Bearer $token', + }, + ); + + if (result != null && result.containsKey('grade')) { + return result['grade'] as String; + } + return null; + } + Future sendChatMessage(String message) async { log('>>> [API] enter sendChatMessage: "$message"'); @@ -366,5 +384,8 @@ class ApiService { log('>>> [API] non-200: ${response.statusCode} / $responseBody'); return "오류가 발생했습니다: ${response.statusCode} / $responseBody"; } + } + + } \ No newline at end of file From ea4e3c5f0eb1665786a15654aa213848f079c699 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Tue, 25 Nov 2025 16:53:49 +0900 Subject: [PATCH 41/52] =?UTF-8?q?feat=20:=20=EA=B2=80=EC=83=89=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80,=20=EB=93=B1=EA=B8=89=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/auth/screens/home_screen.dart | 3 +-- pubspec.lock | 24 +++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart index d8f99ca..ac107de 100644 --- a/lib/features/auth/screens/home_screen.dart +++ b/lib/features/auth/screens/home_screen.dart @@ -152,8 +152,7 @@ class _HomeScreenState extends State { ), ), const SizedBox(width: 15), - Image.asset('assets/images/alert_icon.png', - width: 26, height: 26), + const SizedBox(width: 12), // ✅ 톱니바퀴 아이콘을 GestureDetector로 감싸서 마이페이지로 이동 GestureDetector( diff --git a/pubspec.lock b/pubspec.lock index c738e41..43b5a59 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -508,26 +508,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -556,10 +556,10 @@ packages: dependency: transitive description: name: meta - sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.16.0" mime: dependency: transitive description: @@ -833,10 +833,10 @@ packages: dependency: transitive description: name: test_api - sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.7" + version: "0.7.4" typed_data: dependency: transitive description: @@ -921,10 +921,10 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: From 7b316983cf830102180d477b97f6edce979565d4 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Tue, 25 Nov 2025 18:14:08 +0900 Subject: [PATCH 42/52] =?UTF-8?q?=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=20=ED=99=95=EC=9D=B8=20=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/auth/screens/signup_screen.dart | 155 +++++++++++++------ lib/features/auth/services/api_service.dart | 33 ++++ 2 files changed, 142 insertions(+), 46 deletions(-) diff --git a/lib/features/auth/screens/signup_screen.dart b/lib/features/auth/screens/signup_screen.dart index 484be0c..fd57a44 100644 --- a/lib/features/auth/screens/signup_screen.dart +++ b/lib/features/auth/screens/signup_screen.dart @@ -4,7 +4,7 @@ import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; // 분리된 서비스와 위젯을 임포트합니다. import '../services/auth_service.dart'; -import '../widgets/email_auth_section.dart'; +import '../services/api_service.dart'; import '../widgets/auth_input_field.dart'; // 회원가입 화면 @@ -18,46 +18,57 @@ class SignupScreen extends StatefulWidget { class _SignupScreenState extends State { // 1. 서비스 인스턴스 및 상태 관리 final AuthService _authService = AuthService(); + final ApiService _apiService = ApiService(); final _formKey = GlobalKey(); // 폼 유효성 검사를 위한 키 final _emailController = TextEditingController(); - final _authCodeController = TextEditingController(); final _passwordController = TextEditingController(); final _passwordConfirmController = TextEditingController(); final _nicknameController = TextEditingController(); bool _termsAgreed = false; - bool _isCodeRequested = false; // 인증 코드가 요청되었는가? - bool _isCodeVerified = false; // 인증 코드가 확인되었는가? + bool _isEmailChecked = false; // 이메일 중복 확인 여부 bool _isLoading = false; // 로딩 상태 - // 2. 인증 코드 요청 핸들러 - Future _handleCodeRequest() async { - setState(() { _isLoading = true; }); - try { - await _authService.requestAuthCode(_emailController.text); - setState(() { - _isCodeRequested = true; - _authCodeController.clear(); // 새 요청 시 코드 초기화 - }); - _showSnackBar('인증 코드가 이메일로 전송되었습니다.'); - } catch (e) { - _showSnackBar(e.toString().replaceFirst('Exception: ', '')); - } finally { - if(mounted) { - setState(() { _isLoading = false; }); - } + @override + void initState() { + super.initState(); + // ✅ 이메일 컨트롤러에 리스너 추가 + _emailController.addListener(_onEmailChanged); + } + + // ✅ 이메일이 변경되면 중복 확인 상태 초기화 + void _onEmailChanged() { + if (_isEmailChecked) { + setState(() { _isEmailChecked = false; }); } } - // 3. 인증 코드 확인 핸들러 - Future _handleCodeVerify() async { + // 2. 이메일 중복 확인 핸들러 + Future _handleEmailCheck() async { + // 이메일 형식 검증 + final email = _emailController.text.trim(); + if (email.isEmpty) { + _showSnackBar('이메일을 입력해주세요.'); + return; + } + + // 간단한 이메일 형식 검증 + final emailRegex = RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$'); + if (!emailRegex.hasMatch(email)) { + _showSnackBar('올바른 이메일 형식을 입력해주세요.'); + return; + } + setState(() { _isLoading = true; }); try { - await _authService.verifyAuthCode(_emailController.text, _authCodeController.text); - setState(() { _isCodeVerified = true; }); - _showSnackBar('이메일 인증이 성공적으로 완료되었습니다.'); + final isAvailable = await _apiService.checkEmailDuplicate(email); + if (isAvailable) { + setState(() { _isEmailChecked = true; }); + _showSnackBar('사용 가능한 이메일입니다.'); + } } catch (e) { + setState(() { _isEmailChecked = false; }); _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { if(mounted) { @@ -66,7 +77,7 @@ class _SignupScreenState extends State { } } - // 4. '가입하기' 버튼 함수 (최종 제출) + // 3. '가입하기' 버튼 함수 (최종 제출) Future _handleSubmit() async { if (!_formKey.currentState!.validate()) { return; // 폼 유효성 검사 실패 시 종료 @@ -76,10 +87,12 @@ class _SignupScreenState extends State { _showSnackBar('비밀번호가 일치하지 않습니다.'); return; } - if (!_isCodeVerified) { - _showSnackBar('이메일 인증을 완료해주세요.'); + + if (!_isEmailChecked) { + _showSnackBar('이메일 중복 확인을 완료해주세요.'); return; } + if (!_termsAgreed) { _showSnackBar('약관에 동의해주세요.'); return; @@ -94,8 +107,8 @@ class _SignupScreenState extends State { ); _showSnackBar(message); - // ✅ [병합] 회원가입 성공 시 로그인 화면으로 이동하는 로직을 활성화합니다. - await Future.delayed(const Duration(seconds: 1)); // 알림을 보여줄 시간 + // 회원가입 성공 시 로그인 화면으로 이동 + await Future.delayed(const Duration(seconds: 1)); if (mounted) { Navigator.pushReplacementNamed(context, '/login'); } @@ -109,7 +122,7 @@ class _SignupScreenState extends State { } } - // 5. 카카오 로그인/가입 처리 핸들러 + // 4. 카카오 로그인/가입 처리 핸들러 Future _handleKakaoSignup() async { if (_isLoading) return; setState(() { _isLoading = true; }); @@ -119,14 +132,9 @@ class _SignupScreenState extends State { final isNewUser = result['isNewUser'] ?? false; if (isNewUser) { - // TODO: 신규 사용자일 경우, 약관 동의나 추가 정보 입력 화면으로 이동 _showSnackBar('카카오 계정으로 가입을 진행합니다. 추가 정보 입력 화면으로 이동합니다.'); - // 예: Navigator.push(context, MaterialPageRoute(builder: (_) => TermsScreen(userInfo: result))); } else { - // TODO: 기존 사용자일 경우, JWT 저장 후 메인 화면으로 이동 _showSnackBar('카카오 계정으로 로그인되었습니다. 메인 화면으로 이동합니다.'); - // 예: final token = result['accessToken']; await saveToken(token); - // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (_) => MainScreen()), (route) => false); } } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); @@ -149,8 +157,8 @@ class _SignupScreenState extends State { // 리소스 해제 @override void dispose() { + _emailController.removeListener(_onEmailChanged); // ✅ 리스너 제거 _emailController.dispose(); - _authCodeController.dispose(); _passwordController.dispose(); _passwordConfirmController.dispose(); _nicknameController.dispose(); @@ -187,15 +195,70 @@ class _SignupScreenState extends State { ), const SizedBox(height: 30), - // 1. 이메일 인증 섹션 - EmailAuthSection( - emailController: _emailController, - codeController: _authCodeController, - isCodeRequested: _isCodeRequested, - isCodeVerified: _isCodeVerified, - onCodeRequest: _handleCodeRequest, - onCodeVerify: _handleCodeVerify, + // 1. 이메일 입력 및 중복 확인 + const Text('이메일 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + Row( + children: [ + Expanded( + child: AuthInputField( + controller: _emailController, + hintText: '이메일', + keyboardType: TextInputType.emailAddress, + validator: (value) { + if (value == null || value.isEmpty) { + return '이메일을 입력해주세요.'; + } + final emailRegex = RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$'); + if (!emailRegex.hasMatch(value)) { + return '올바른 이메일 형식을 입력해주세요.'; + } + return null; + }, + // ✅ onChanged 제거 + ), + ), + const SizedBox(width: 10), + ElevatedButton( + onPressed: _isLoading ? null : _handleEmailCheck, + style: ElevatedButton.styleFrom( + backgroundColor: _isEmailChecked + ? Colors.grey + : const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + child: _isLoading + ? const SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator( + color: Colors.white, + strokeWidth: 2, + )) + : Text( + _isEmailChecked ? '확인완료' : '중복확인', + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + ), + ], ), + if (_isEmailChecked) + Padding( + padding: const EdgeInsets.only(top: 5), + child: Text( + '✓ 사용 가능한 이메일입니다', + style: TextStyle( + color: Colors.green[700], + fontSize: 12, + ), + ), + ), const SizedBox(height: 15), // 2. 비밀번호 입력 @@ -315,4 +378,4 @@ class _SignupScreenState extends State { ), ); } -} +} \ No newline at end of file diff --git a/lib/features/auth/services/api_service.dart b/lib/features/auth/services/api_service.dart index a9f463a..4171047 100644 --- a/lib/features/auth/services/api_service.dart +++ b/lib/features/auth/services/api_service.dart @@ -384,7 +384,40 @@ class ApiService { log('>>> [API] non-200: ${response.statusCode} / $responseBody'); return "오류가 발생했습니다: ${response.statusCode} / $responseBody"; } + } + + // ✅ [추가] 이메일 중복 확인 (GET 요청) + Future checkEmailDuplicate(String email) async { + try { + // 백엔드 경로: /api/members/check-email?email=user@test.com + final uri = Uri.parse('$_baseUrl/api/auth/check-email?email=$email'); + log('>> [CheckEmail] GET $uri'); + + final response = await http.get( + uri, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + }, + ); + // 응답 디코딩 (한글 깨짐 방지) + final responseBody = utf8.decode(response.bodyBytes); + final jsonResponse = jsonDecode(responseBody); + log('>> [CheckEmail:res] status=${response.statusCode}, msg=${jsonResponse['message']}'); + + if (response.statusCode == 200) { + return true; // 사용 가능 + } else if (response.statusCode == 409) { + // 백엔드에서 409(CONFLICT)를 보냈으므로 중복된 이메일임 + throw Exception(jsonResponse['message'] ?? "이미 사용 중인 이메일입니다."); + } else { + throw Exception("중복 확인 실패: ${response.statusCode}"); + } + } catch (e) { + log('>> [CheckEmail:exception] $e'); + rethrow; // UI에서 에러 메시지를 띄우기 위해 예외 던짐 + } } From bbbc63c317cc77cfe76372d313de216895c1aa27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=A7=80=EC=9B=90?= Date: Thu, 27 Nov 2025 13:59:41 +0900 Subject: [PATCH 43/52] saving --- lib/features/auth/screens/mypage_screen.dart | 63 ++++- lib/features/auth/screens/signup_screen.dart | 241 ++++++++++++------- pubspec.lock | 24 +- 3 files changed, 221 insertions(+), 107 deletions(-) diff --git a/lib/features/auth/screens/mypage_screen.dart b/lib/features/auth/screens/mypage_screen.dart index 12ef21a..617da28 100644 --- a/lib/features/auth/screens/mypage_screen.dart +++ b/lib/features/auth/screens/mypage_screen.dart @@ -261,6 +261,49 @@ class _MypageScreenState extends State { } } + // 로그아웃 + Future _logout() async { + final confirm = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('로그아웃'), + content: const Text('로그아웃 하시겠습니까?'), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text('취소', style: TextStyle(color: Colors.grey)), + ), + TextButton( + onPressed: () => Navigator.pop(context, true), + child: const Text('로그아웃', style: TextStyle(color: Colors.red)), + ), + ], + ), + ); + + if (confirm == true) { + try { + // 저장된 토큰 삭제 + await storage.delete(key: 'accessToken'); + await storage.delete(key: 'refreshToken'); + + if (mounted) { + // 로그인 화면으로 이동 (뒤로가기 불가) + Navigator.pushNamedAndRemoveUntil( + context, + '/login', + (route) => false, + ); + } + } catch (e) { + print('❌ 로그아웃 실패: $e'); + } + } + } + @override void dispose() { _nicknameController.dispose(); @@ -699,13 +742,19 @@ class _MypageScreenState extends State { ), child: Column( children: [ - Divider(height: 1, color: Colors.grey[200]), _buildMenuItem( icon: Icons.card_giftcard, title: '내 쿠폰함', onTap: () {}, ), + Divider(height: 1, color: Colors.grey[200]), + _buildMenuItem( + icon: Icons.logout, + title: '로그아웃', + onTap: _logout, + isLogout: true, + ), ], ), ), @@ -817,6 +866,7 @@ class _MypageScreenState extends State { required IconData icon, required String title, required VoidCallback onTap, + bool isLogout = false, }) { return InkWell( onTap: onTap, @@ -828,23 +878,24 @@ class _MypageScreenState extends State { Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( - color: Colors.grey[100], + color: isLogout ? Colors.red.withOpacity(0.1) : Colors.grey[100], borderRadius: BorderRadius.circular(8), ), - child: Icon(icon, size: 20, color: Colors.green), + child: Icon(icon, size: 20, color: isLogout ? Colors.red : Colors.green), ), const SizedBox(width: 16), Expanded( child: Text( title, - style: const TextStyle( + style: TextStyle( fontSize: 15, fontWeight: FontWeight.w500, - color: Colors.black87, + color: isLogout ? Colors.red : Colors.black87, ), ), ), - Icon(Icons.chevron_right, color: Colors.grey[400], size: 20), + if (!isLogout) + Icon(Icons.chevron_right, color: Colors.grey[400], size: 20), ], ), ), diff --git a/lib/features/auth/screens/signup_screen.dart b/lib/features/auth/screens/signup_screen.dart index 484be0c..2af5f52 100644 --- a/lib/features/auth/screens/signup_screen.dart +++ b/lib/features/auth/screens/signup_screen.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; -// 분리된 서비스와 위젯을 임포트합니다. +// 분리된 서비스와 위젯 임포트 import '../services/auth_service.dart'; import '../widgets/email_auth_section.dart'; import '../widgets/auth_input_field.dart'; @@ -16,9 +16,9 @@ class SignupScreen extends StatefulWidget { } class _SignupScreenState extends State { - // 1. 서비스 인스턴스 및 상태 관리 + // 서비스 및 폼 관리 final AuthService _authService = AuthService(); - final _formKey = GlobalKey(); // 폼 유효성 검사를 위한 키 + final _formKey = GlobalKey(); final _emailController = TextEditingController(); final _authCodeController = TextEditingController(); @@ -27,126 +27,149 @@ class _SignupScreenState extends State { final _nicknameController = TextEditingController(); bool _termsAgreed = false; - bool _isCodeRequested = false; // 인증 코드가 요청되었는가? - bool _isCodeVerified = false; // 인증 코드가 확인되었는가? - bool _isLoading = false; // 로딩 상태 + bool _isCodeRequested = false; + bool _isCodeVerified = false; + bool _isLoading = false; - // 2. 인증 코드 요청 핸들러 + // ========== 약관 전문(코드 내 직접 포함) ========== + final String termsOfServiceText = """ +[서비스 이용약관] + +1. 본 서비스는 회원에게 다양한 기능을 제공합니다. +2. 회원은 서비스 이용 시 관련 법령을 준수해야 합니다. +3. 회사는 안전하고 안정적인 서비스 제공을 위해 노력합니다. +4. 기타 자세한 내용은 본 약관에 따릅니다. +"""; + + final String privacyPolicyText = """ +[개인정보 수집 및 이용 안내] + +1. 수집 항목: 이메일, 비밀번호, 닉네임 +2. 이용 목적: 회원가입, 본인확인, 서비스 운영 및 고객 상담 +3. 보관기간: 회원 탈퇴 시까지 +"""; + + final String marketingPolicyText = """ +[마케팅 정보 수신 동의] + +1. 이벤트, 혜택, 광고 정보를 제공할 수 있습니다. +2. 수신 여부는 언제든지 설정에서 변경할 수 있습니다. +"""; + + // 약관 팝업 + void _showPolicyDialog(String title, String content) { + showDialog( + context: context, + builder: (_) { + return AlertDialog( + title: Text(title), + content: SingleChildScrollView(child: Text(content)), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text("닫기"), + ), + ], + ); + }, + ); + } + + // 인증코드 요청 Future _handleCodeRequest() async { - setState(() { _isLoading = true; }); + setState(() => _isLoading = true); try { await _authService.requestAuthCode(_emailController.text); setState(() { _isCodeRequested = true; - _authCodeController.clear(); // 새 요청 시 코드 초기화 + _authCodeController.clear(); }); _showSnackBar('인증 코드가 이메일로 전송되었습니다.'); } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - if(mounted) { - setState(() { _isLoading = false; }); - } + if (mounted) setState(() => _isLoading = false); } } - // 3. 인증 코드 확인 핸들러 + // 인증코드 확인 Future _handleCodeVerify() async { - setState(() { _isLoading = true; }); + setState(() => _isLoading = true); try { await _authService.verifyAuthCode(_emailController.text, _authCodeController.text); - setState(() { _isCodeVerified = true; }); - _showSnackBar('이메일 인증이 성공적으로 완료되었습니다.'); + setState(() => _isCodeVerified = true); + _showSnackBar('이메일 인증이 완료되었습니다.'); } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - if(mounted) { - setState(() { _isLoading = false; }); - } + if (mounted) setState(() => _isLoading = false); } } - // 4. '가입하기' 버튼 함수 (최종 제출) + // 가입 제출 Future _handleSubmit() async { - if (!_formKey.currentState!.validate()) { - return; // 폼 유효성 검사 실패 시 종료 - } + if (!_formKey.currentState!.validate()) return; if (_passwordController.text != _passwordConfirmController.text) { _showSnackBar('비밀번호가 일치하지 않습니다.'); return; } + if (!_isCodeVerified) { _showSnackBar('이메일 인증을 완료해주세요.'); return; } + if (!_termsAgreed) { _showSnackBar('약관에 동의해주세요.'); return; } - setState(() { _isLoading = true; }); + setState(() => _isLoading = true); try { final message = await _authService.signup( email: _emailController.text, password: _passwordController.text, nickname: _nicknameController.text, ); - _showSnackBar(message); - // ✅ [병합] 회원가입 성공 시 로그인 화면으로 이동하는 로직을 활성화합니다. - await Future.delayed(const Duration(seconds: 1)); // 알림을 보여줄 시간 - if (mounted) { - Navigator.pushReplacementNamed(context, '/login'); - } + _showSnackBar(message); + await Future.delayed(const Duration(seconds: 1)); + if (mounted) Navigator.pushReplacementNamed(context, '/login'); } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - if(mounted) { - setState(() { _isLoading = false; }); - } + if (mounted) setState(() => _isLoading = false); } } - // 5. 카카오 로그인/가입 처리 핸들러 + // 카카오 로그인 Future _handleKakaoSignup() async { if (_isLoading) return; - setState(() { _isLoading = true; }); + setState(() => _isLoading = true); try { final result = await _authService.signupWithKakao(); final isNewUser = result['isNewUser'] ?? false; if (isNewUser) { - // TODO: 신규 사용자일 경우, 약관 동의나 추가 정보 입력 화면으로 이동 - _showSnackBar('카카오 계정으로 가입을 진행합니다. 추가 정보 입력 화면으로 이동합니다.'); - // 예: Navigator.push(context, MaterialPageRoute(builder: (_) => TermsScreen(userInfo: result))); + _showSnackBar('카카오 계정으로 가입합니다. 추가 정보 입력 화면으로 이동합니다.'); } else { - // TODO: 기존 사용자일 경우, JWT 저장 후 메인 화면으로 이동 - _showSnackBar('카카오 계정으로 로그인되었습니다. 메인 화면으로 이동합니다.'); - // 예: final token = result['accessToken']; await saveToken(token); - // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (_) => MainScreen()), (route) => false); + _showSnackBar('카카오 계정으로 로그인되었습니다.'); } } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - if(mounted) { - setState(() { _isLoading = false; }); - } + if (mounted) setState(() => _isLoading = false); } } - // 간결한 SnackBar 표시 유틸리티 - void _showSnackBar(String message) { - if (mounted) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(message)), - ); - } + // SnackBar + void _showSnackBar(String msg) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(msg))); } - // 리소스 해제 @override void dispose() { _emailController.dispose(); @@ -157,6 +180,8 @@ class _SignupScreenState extends State { super.dispose(); } + // ================== UI =================== + @override Widget build(BuildContext context) { return Scaffold( @@ -175,7 +200,7 @@ class _SignupScreenState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - // GuardPay 로고 + // 로고 const Text( 'GuardPay', textAlign: TextAlign.center, @@ -187,7 +212,7 @@ class _SignupScreenState extends State { ), const SizedBox(height: 30), - // 1. 이메일 인증 섹션 + // 이메일 인증 구역 EmailAuthSection( emailController: _emailController, codeController: _authCodeController, @@ -198,76 +223,113 @@ class _SignupScreenState extends State { ), const SizedBox(height: 15), - // 2. 비밀번호 입력 + // 비밀번호 const Text('비밀번호 *', style: TextStyle(fontWeight: FontWeight.bold)), const SizedBox(height: 5), AuthInputField( controller: _passwordController, hintText: '비밀번호', isPassword: true, - validator: (value) { - if (value == null || value.isEmpty || value.length < 8) { - return '비밀번호는 8자 이상이어야 합니다.'; - } - return null; - }, + validator: (v) => (v == null || v.length < 8) ? '비밀번호는 8자 이상이어야 합니다.' : null, ), const SizedBox(height: 10), AuthInputField( controller: _passwordConfirmController, hintText: '비밀번호 재입력', isPassword: true, - validator: (value) { - if (value != _passwordController.text) { - return '비밀번호가 일치하지 않습니다.'; - } - return null; - }, + validator: (v) => (v != _passwordController.text) ? '비밀번호가 일치하지 않습니다.' : null, ), const SizedBox(height: 15), - // 3. 닉네임 입력 + // 닉네임 const Text('닉네임 *', style: TextStyle(fontWeight: FontWeight.bold)), const SizedBox(height: 5), AuthInputField( controller: _nicknameController, hintText: '닉네임', - validator: (value) { - if (value == null || value.isEmpty) { - return '닉네임을 입력해주세요.'; - } - return null; - }, + validator: (v) => (v == null || v.isEmpty) ? '닉네임을 입력해주세요.' : null, ), const SizedBox(height: 25), - // 4. 약관 동의 + // ================= 약관 동의 ================= Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(8), border: Border.all(color: const Color(0xFFD0D0D0)), ), - padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 10), - child: Row( + padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Checkbox( - value: _termsAgreed, - onChanged: (value) => setState(() { _termsAgreed = value ?? false; }), + Row( + children: [ + Checkbox( + value: _termsAgreed, + onChanged: (v) => + setState(() => _termsAgreed = v ?? false), + ), + const Text( + '약관 전체 동의', + style: TextStyle(fontWeight: FontWeight.bold), + ), + ], + ), + const Divider(), + + // 필수 약관 1 + Row( + children: [ + const Icon(Icons.check_circle, color: Colors.green, size: 16), + const SizedBox(width: 6), + const Expanded(child: Text('(필수) 서비스 이용약관 동의')), + TextButton( + onPressed: () => _showPolicyDialog("서비스 이용약관", termsOfServiceText), + child: const Text('보기'), + ), + ], + ), + + // 필수 약관 2 + Row( + children: [ + const Icon(Icons.check_circle, color: Colors.green, size: 16), + const SizedBox(width: 6), + const Expanded(child: Text('(필수) 개인정보 수집 및 이용 동의')), + TextButton( + onPressed: () => _showPolicyDialog("개인정보 수집 및 이용", privacyPolicyText), + child: const Text('보기'), + ), + ], + ), + + // 선택 약관 + Row( + children: [ + Icon( + _termsAgreed ? Icons.check_circle : Icons.radio_button_unchecked, + color: _termsAgreed ? Colors.green : Colors.grey, + size: 16, + ), + const SizedBox(width: 6), + const Expanded(child: Text('(선택) 마케팅 정보 수신 동의')), + TextButton( + onPressed: () => _showPolicyDialog("마케팅 정보 수신", marketingPolicyText), + child: const Text('보기'), + ), + ], ), - const Text('약관 전체 동의'), ], ), ), const SizedBox(height: 20), - // 5. 가입하기 버튼 + // 가입 버튼 ElevatedButton( onPressed: _isLoading ? null : _handleSubmit, style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFF6AA84F), padding: const EdgeInsets.symmetric(vertical: 15), - textStyle: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: _isLoading @@ -275,11 +337,12 @@ class _SignupScreenState extends State { width: 20, height: 20, child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) - : const Text('가입하기', style: TextStyle(color: Colors.white)), + : const Text('가입하기', + style: TextStyle(color: Colors.white, fontSize: 16, fontWeight: FontWeight.bold)), ), const SizedBox(height: 20), - // 'OR' 구분선 + // OR Row( children: [ Expanded(child: Divider(color: Colors.grey[400])), @@ -292,11 +355,11 @@ class _SignupScreenState extends State { ), const SizedBox(height: 20), - // 카카오로 시작하기 버튼 + // 카카오 시작하기 ElevatedButton( onPressed: _isLoading ? null : _handleKakaoSignup, style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFFFEE500), // 카카오 노란색 + backgroundColor: const Color(0xFFFEE500), padding: const EdgeInsets.symmetric(vertical: 15), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), @@ -308,7 +371,7 @@ class _SignupScreenState extends State { fontWeight: FontWeight.bold, ), ), - ), + ) ], ), ), diff --git a/pubspec.lock b/pubspec.lock index 43b5a59..c738e41 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -508,26 +508,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -556,10 +556,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" mime: dependency: transitive description: @@ -833,10 +833,10 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.7" typed_data: dependency: transitive description: @@ -921,10 +921,10 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: From 9b8f2df8a75a46bc263456d289f223ff0a440216 Mon Sep 17 00:00:00 2001 From: ch0412 Date: Thu, 27 Nov 2025 14:11:18 +0900 Subject: [PATCH 44/52] Merge stash pop: Applied shop feature changes and resolved Gradle cache conflicts --- .gradle/8.11.1/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/8.11.1/checksums/md5-checksums.bin | Bin 27597 -> 43197 bytes .gradle/8.11.1/checksums/sha1-checksums.bin | Bin 87503 -> 150029 bytes .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39497 -> 0 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20775 -> 0 bytes lib/features/auth/widgets/bottom_nav.dart | 7 +- lib/features/shop/data/shop_data.dart | 32 +++ lib/features/shop/models/shop_models.dart | 25 +++ lib/features/shop/screens/shop_screen.dart | 205 ++++++++++++++++++ lib/features/shop/services/shop_service.dart | 0 11 files changed, 268 insertions(+), 1 deletion(-) delete mode 100644 .gradle/8.11.1/fileHashes/fileHashes.bin delete mode 100644 .gradle/8.11.1/fileHashes/fileHashes.lock delete mode 100644 .gradle/8.11.1/fileHashes/resourceHashesCache.bin create mode 100644 lib/features/shop/data/shop_data.dart create mode 100644 lib/features/shop/models/shop_models.dart create mode 100644 lib/features/shop/screens/shop_screen.dart create mode 100644 lib/features/shop/services/shop_service.dart diff --git a/.gradle/8.11.1/checksums/checksums.lock b/.gradle/8.11.1/checksums/checksums.lock index 1c0d64b1aca27acca5833e64daf49a365a04b3f6..7228d7a4fcb89cdd843122ec5e266ec08ed68917 100644 GIT binary patch literal 17 VcmZSH&HW+boW$aT3}C?i9{@KM1!4dI literal 17 VcmZSH&HW+boW$aT3}C>*2mm$_1YrOG diff --git a/.gradle/8.11.1/checksums/md5-checksums.bin b/.gradle/8.11.1/checksums/md5-checksums.bin index ac84cc7cce20878064e2d383513144bedfab78e4..6e275463ca501d258f909deb4f41df899c45f307 100644 GIT binary patch literal 43197 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 H81erAfk-j@ diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock deleted file mode 100644 index a62175858bb1281cf63959fdfc325739a412c944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 VcmZQ}=bo_Q-nZT^1~3rM2LLs+1pfd4 diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin deleted file mode 100644 index 2c9919c1bef8b5aa1dea0bc30d80747ec4a93302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20775 zcmeI(Yc$k(9LMol7AY--V%-+4`#rff5nIMw+;a<+sAOqNRHAZ^#3I|uU2HdzqGGkX zt&~YuQAy*nB$G;#P|0$B|KD`B|AQXvZl~Szb}B#s6)7+MN|CdKv7cO_lBL?bTmv~{Bla`Csf?-sZFS=O5bQO|MHotDTQ1+X{v z-PUkwFkgb)))D*F%*~%~sa`@4 zaZUyHM^u3#+Tg-6VxNh<|Gr1{koOLE>}8hI)~+MtE+q=uJ7>jks>@hq1p} zFCW~MueclS?WD1ftG>S1VdfNu+`*LR1yRQ&=GE>ed@gn&iC_Fyor*L@PUm75ZU1gK zyMb>P;W607dQa$Nr*hUE>0^#&XmD! zTpCctS>H-rx2!bmCPmxSEy@qvLwkA&b}IWo$@$V3+mYMq^1LnBv+0hl0O4n_TXNMk zm}XAI>j|R@yA^+Dz0YBz*=Wxg!@e{-vT&`-3<>0{Q`qTut@7;-DiF_$Lq7Ip7D^AP zwNAwAl6?^N)g>m+YmTW7pmUg1>}x3P5}Wk}qmk1VV-MEPN#$$ZSAd*ufqi50!!kRY zh-t{}3bBWFpKY&DsH#QI$iN;JI9)sSN2MFc?bUgH&1GP$hL3ptr}bmsS@dRq>hTmy z;(T-L_$!4X=z+cmpP>L0fC5ke3P1rU00p1`6o3Ly017|>C;$bZ02F`%Pyh-*0Vn_k zpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU00sW-0#k2}mY%%Ln!1TK`pON&UOm#yq`QPL zxg%DSDF4@mR$5l0SGS7lI!=vMaYCCec~LJ>o8*yZm|&T&ml0a(I`uB@_s)o2TQb9; zL}4(r{C=3ACMAZvC~1D~9{a_%$XLah&Y`qrO5_Form1_fp7@z9teiDbMrJMK#UCy- zd)-;3))`maMg}L!o5>5YM=>Iw%@@h>h*HLhJ4hl((^uA-yy(lglP~$UF0aevicS2l;}^(_yaAh*+~V=-1?P++@{=U= z$%_SUw8j*c-`P?AQ)fA0edgpvk=xVsJ?(*yO9F*uw^N_Fk{7QMb4{-|6)$@7^DWx( zbF``d!g%j_(FxTotG(5mo-uE=*a>OQF7jgCwa&P}<3mFo!f}>&WdaV77lm5<{>oiP zcWYKOp19cGats!KzlW$|WrRpUZHkYM`N9qxgC=rQna2L1Y)^w?)s-Ozzn_-pkQX*T z#M>Ae(w*cChW9mSFODQHthNLP-ur1?UtOVN>gn$dgUJj3w7GhU8qJ|>|EH0X8`K)e zi|9oCZ?mh%ySeS&Qg4&n7LykTj@opFaAkLVWmnhl+!2#SUOc9Z&W< const ShopScreen()), + (route) => false, + ); break; case 3: Navigator.pushAndRemoveUntil( diff --git a/lib/features/shop/data/shop_data.dart b/lib/features/shop/data/shop_data.dart new file mode 100644 index 0000000..60b8221 --- /dev/null +++ b/lib/features/shop/data/shop_data.dart @@ -0,0 +1,32 @@ +import '../models/shop_models.dart'; + +// 상품 목록 데이터 정의 +final List _cafeProducts = [ + const Product(brand: "스타벅스", name: "아메리카노(ice)", price: "20,000P", imgUrl: "https://i.ibb.co/0jF5yPt/coffee1.png"), + const Product(brand: "컴포즈커피", name: "그린티라떼(ice)", price: "20,000P", imgUrl: "https://i.ibb.co/tJcZnfw/coffee2.png"), + const Product(brand: "스타벅스", name: "콜드브루", price: "20,000P", imgUrl: "https://i.ibb.co/0jF5yPt/coffee1.png"), + const Product(brand: "스타벅스", name: "라떼", price: "20,000P", imgUrl: "https://i.ibb.co/jfmVY2H/latte.png"), +]; + +final List _convenienceStoreProducts = [ + const Product(brand: "GS25", name: "바나나우유", price: "1,500P", imgUrl: "https://example.com/gs25.png"), + const Product(brand: "CU", name: "삼각김밥", price: "1,200P", imgUrl: "https://example.com/cu.png"), +]; + +final List _lifeCultureProducts = [ + const Product(brand: "CGV", name: "영화 예매권", price: "12,000P", imgUrl: "https://example.com/cgv.png"), + const Product(brand: "올리브영", name: "기프트카드", price: "10,000P", imgUrl: "https://example.com/oliveyoung.png"), +]; + +final List _dessertProducts = [ + const Product(brand: "베스킨라빈스", name: "파인트", price: "8,000P", imgUrl: "https://example.com/br.png"), + const Product(brand: "파리바게뜨", name: "교환권", price: "5,000P", imgUrl: "https://example.com/pb.png"), +]; + +// 전체 카테고리 리스트 (ShopScreen에서 사용) +final List allCategories = [ + ProductCategory(name: "카페/음료", products: _cafeProducts), + ProductCategory(name: "편의점", products: _convenienceStoreProducts), + ProductCategory(name: "생활/문화", products: _lifeCultureProducts), + ProductCategory(name: "디저트", products: _dessertProducts), +]; \ No newline at end of file diff --git a/lib/features/shop/models/shop_models.dart b/lib/features/shop/models/shop_models.dart new file mode 100644 index 0000000..2a9c68b --- /dev/null +++ b/lib/features/shop/models/shop_models.dart @@ -0,0 +1,25 @@ +// 상품 데이터 모델 +class Product { + final String brand; + final String name; + final String price; + final String imgUrl; + + const Product({ + required this.brand, + required this.name, + required this.price, + required this.imgUrl, + }); +} + +// 카테고리 데이터 모델 +class ProductCategory { + final String name; + final List products; + + const ProductCategory({ + required this.name, + required this.products, + }); +} \ No newline at end of file diff --git a/lib/features/shop/screens/shop_screen.dart b/lib/features/shop/screens/shop_screen.dart new file mode 100644 index 0000000..4b6f458 --- /dev/null +++ b/lib/features/shop/screens/shop_screen.dart @@ -0,0 +1,205 @@ +import 'package:flutter/material.dart'; + +// 가정된 파일 경로 (프로젝트 구조에 맞게 경로 확인 필요) +import '../../auth/widgets/bottom_nav.dart'; +import '../data/shop_data.dart'; +import '../models/shop_models.dart'; + +// ShopScreen을 StatefulWidget으로 변경하여 상태 관리가 가능하도록 합니다. +class ShopScreen extends StatefulWidget { + const ShopScreen({super.key}); + + @override + State createState() => _ShopScreenState(); +} + +class _ShopScreenState extends State { + // 현재 선택된 카테고리의 인덱스 (초기값: 0, "카페/음료") + int _selectedIndex = 0; + + @override + Widget build(BuildContext context) { + return Scaffold( + // 배경 색상을 상수로 사용하거나 직접 입력합니다. + backgroundColor: const Color(0xfffaf7ef), + // BottomNav 위젯이 정의된 경로에 따라 import 경로를 확인하세요. + bottomNavigationBar: const BottomNav(selectedIndex: 2), + body: SafeArea( // 상단 노치 영역을 피하기 위해 SafeArea를 추가 + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 20), // 상단 여백 + // 1. 타이틀 + const Center( + child: Text( + "GuardPay 쇼핑", + style: TextStyle( + color: Colors.green, + fontSize: 33, + fontWeight: FontWeight.bold, + ), + ), + ), + + const SizedBox(height: 20), + + // ⭐ 2. 흰색 배경 정보 컨테이너 시작: 포인트, 멘트, 카테고리 포함 ⭐ + Container( + width: double.infinity, + color: Colors.white, // 배경색을 흰색으로 지정 + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 10), // 포인트 박스 위 여백 + + // 2-1. 포인트 박스 + Container( + margin: const EdgeInsets.symmetric(horizontal: 16), + padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 8), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(30), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 5, + ) + ], + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.monetization_on, color: Colors.amber), + SizedBox(width: 6), + Text( + "1300P", + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600), + ), + ], + ), + ), + + const SizedBox(height: 20), + + // 2-2. 안내 멘트 + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: Text( + "금융 퀴즈 풀고\n모바일 상품권으로 교환하세요!", + style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, height: 1.4), + ), + ), + + const SizedBox(height: 20), + + const SizedBox(height: 10), // 카테고리 아래 여백 + ], + ), + ), + // ⭐ 흰색 배경 정보 컨테이너 끝 ⭐ + + // 2-3. 카테고리 메뉴 + SizedBox( + height: 40, + child: Row( + // allCategories 리스트를 순회하며 동적으로 카테고리 위젯 생성 + children: List.generate(allCategories.length, (index) { + return _category( + allCategories[index].name, // 카테고리 이름 + _selectedIndex == index, // 선택 여부 + () { // 탭 이벤트 시 상태 업데이트 + setState(() { + _selectedIndex = index; + }); + }, + ); + }), + ), + ), + + // 3. 상품 목록 (선택된 카테고리의 상품 리스트를 가져와 표시) + Expanded( + child: GridView.count( + crossAxisCount: 2, + padding: const EdgeInsets.all(16), + mainAxisSpacing: 16, + crossAxisSpacing: 16, + childAspectRatio: 0.72, + children: allCategories[_selectedIndex].products.map((product) { + return _itemCard(product); // Product 모델을 인수로 전달 + }).toList(), + ), + ), + ], + ), + ), + ); + } + + // category 위젯 (밑줄이 있는 탭 메뉴) + Widget _category(String text, bool selected, VoidCallback onTap) { + return Expanded( + child: InkWell( // 탭 영역을 지정하고 상호작용성 추가 + onTap: onTap, + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Text( + text, + style: TextStyle( + fontWeight: selected ? FontWeight.bold : FontWeight.normal, + fontSize: selected ? 16 : 15, + ), + ), + const SizedBox(height: 4), + Container( + height: 2, + width: selected ? 35 : 0, + color: selected ? Colors.black : Colors.transparent, + ), + ], + ), + ), + ); + } + + // itemCard 위젯 (개별 상품 카드) + Widget _itemCard(Product product) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(18), + ), + padding: const EdgeInsets.all(12), + child: Column( + // ⭐ 텍스트 왼쪽 정렬 적용 + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // 이미지를 가운데에 두기 위해 Center로 감쌉니다. + Expanded( + child: Center( + child: Image.network(product.imgUrl, fit: BoxFit.contain) + ), + ), + const SizedBox(height: 6), + Text(product.brand, style: const TextStyle(color: Colors.grey, fontSize: 15)), + Text(product.name, style: const TextStyle(fontSize: 17, fontWeight: FontWeight.w500)), + const SizedBox(height: 4), + Row( + // Row가 필요한 최소한의 너비만 차지하도록 설정합니다. (옵션) + mainAxisSize: MainAxisSize.min, + children: [ + // 아이콘 크기를 텍스트 크기(20)에 맞게 설정 + const Icon(Icons.monetization_on, color: Colors.amber, size: 20.0), + const SizedBox(width: 6), // 아이콘과 텍스트 사이의 간격 + Text( + product.price, + style: const TextStyle(fontSize: 20, fontWeight: FontWeight.bold) + ), + ], + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/shop/services/shop_service.dart b/lib/features/shop/services/shop_service.dart new file mode 100644 index 0000000..e69de29 From 213d2cf7725e742965b81a7b3b15b4818d9cac0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=A7=80=EC=9B=90?= Date: Thu, 27 Nov 2025 14:35:50 +0900 Subject: [PATCH 45/52] =?UTF-8?q?feat:=20=ED=99=88=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/logo.png | Bin 0 -> 574928 bytes assets/images/main_logo-removebg-preview.png | Bin 0 -> 180294 bytes assets/images/main_logo.png | Bin 0 -> 1277412 bytes lib/features/auth/screens/home_screen.dart | 2 +- lib/features/auth/screens/login_screen.dart | 27 ++++++++++++------- 5 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 assets/images/logo.png create mode 100644 assets/images/main_logo-removebg-preview.png create mode 100644 assets/images/main_logo.png diff --git a/assets/images/logo.png b/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..69eae600719958b6b51b5cea50d93f6c2372af4c GIT binary patch literal 574928 zcmc$_WmsELv@MD|MS_IlZb1SRDee|1P_(5;(Bf9yB?R~4PJtG8C=NkOfwr``Q=~W) z4RX_S&$;*A`TG0+**nnqgq+sgV?Sd~B!ouPgRh z>g0R<_0NLV*Z9?EvkQ$|d=UVs%L#q=wJG^UV_5CLq4dbY+#n$ z^FvS#OQ!vw-I`O>a2dPUx7m?3BY9CBGLjzpSjJLtuVkYPIklW#nR{90tJ*A&EU{Pa z_fYJVjw|}-Wz;zAdkJ5bshv)iDM4aMA})suP>q)mFHkG<61=BfI5fdJe9%C3h^vHr zlf|MO>%+kg)e8hRi(R4`Cv%?e;d-T8zclSK#bSSDgz8X+Y2kR_pA&`u%ZVXM_7Qy~ z376;hufH8-`mowG+!cQd?irfy3H~=XM2Gt*)9O&}ys5a$?jNGUaS9` zWSqlS4nX|v-!u|FCn<@X?5yJcb97Ep!9>eA_ zE}1$Co@vcmuBx4kvi}eVT$mO3pT-2C<~sxX2>h7-&-bqX%=r(8CE+Zo z%;oN$iA7y0&_1kj{MYO}kQEbq{6qMa zt8%CLN`k)C~ zgsR#G@m^g~(0!v^fYl>>8b^Zh>EX`ne@g&`s*u^}b#Hc$ z?L!`XbRLISMJR8oKuBLE)cRv%hsr24v)KGwJ5+a@0#R4dqN9GY_L!2|pxxZ)r=Zy5 zP*JXX(!1`yXEztemp&^9$=KN5357!NjdTQyDl)HO&3kw#7W6qy2W8L6l`T?$N-71- zWKD`ppL~kOf9vr$RPBnL(tk2!_|aV3x3@^+V6{;MGsd~}&2O#6E8FIs{(p`_J={x= zOVOWbfkA-GzP#F)e*DS_PEJ_HeS^>TNX%gUG7i&U{UP+ibR&* zD{upJ*L_ZXbr@cE&)dbgo;uo?go_G(s(LKjtD};u@s9+@kFfjT8>IZN)!$lG?x$$r zM7HNl4RX`?x&=w~q~D3K#?a*(g~=Z$?=~qOH!_u|*|=ez=;YxiVu9Y_4=-q|L(;o; zHfbqL@d%E@OC0&zlgP;P@c2&h2+_!SO|z2aQrN`Uz5!HE6s&!>ld*g}n93QdI?gp3 zzvh#8xnSXCZ*tE0DekY{{y2RedSHPklwbJAyUE#|xy&}o`eG@CO;VwR z*z(&r!>aP=9ewJtx+XSB>>xVrKyXGVad9Ypf8QNbb{r*VdMF{Y?7GsZY((;E@dH2g z)4MrwW&#(ra9knD#Af2ZW>2`n5NP?qBVR*gImCBNU_Vxy6{z?QboG+NdM~N*XEMnk zSl@dL+u{z>{AR<_?w{aKBwOUNa?Ob-z|8i;xjxT5*o`oOJ#S!+c1H!zj|0*f_r-I1 z73(sc4s-)n|Lqx_s6FFRh3Xn=tk-Kf@lw?sU2xB^Dde;O0 z#&C5#E`R7$=Qr$!%1m~aGS(Ycp;-Z*`@^xhg?Y%KJYoUDd}%9IB*EPcf%sdt4Bu^ z<{C$9N$$=f>#9U9(MZhvEnIMLTuA8n{Hf+=Mm`!TL5@>$-E|h*;Lr(S6N;H(WysvI z(%iA!oU2htAwtCzp>vYY1@)zprv!&(g%)o@SYQ~(zElZ}JI0q$SVXGiHGfXEDZsAd ze?hpu>c8%)#{--H%6TT93$^|cg&X+gW8XJ<)qRE*0b?zlCuFKG1*y>peNK|@aaab zBCnb6+WV}SZw#frF=W(2?(Scv00m*|)2F{;fg@66iW4!w+eZnqO$G5jWg_R7jqq$+ z1zU-@EWhk5iBo6<y`{IC<_}@?Ju4o2b979aq=_dd9W#>o@lZQLi8x> zT|IQe0<(i|j2M&c9di)S_>+(uKC-jGCi6Sa>amrG7G>|APR9akrnhML641WGfx(R0 zq~KKI0aIAqs*x22EC$#cpglUh%1ky``|RSK(!oOkiWG!sYas4u)o(qFq5qIo)L3a; zIG{H;-q4J6MBn~7$BAR_%KTng-Sk7kg&5n<-%SGZS#b5qE(C(`LYUMYy@)s&aG7fe z3akc^Uh}he#XHFS6@GYhJxaol6~^D-(8cpBf}7#QJY|>}PGY3yr?_@NqWOmA&jAE` z^I(IyfBoJPBLnn@%Wb#Yi+=BfRR^2-v$-pTXUDyHcuH>80GS9Rvr^S5(G%JinnIA` zXNN|{zl9L#am0~UDhYE~bA6%8lIL1e!z%|gVNhVbT-#qy!e`+CM+^*U5*hT>TQSJC z{%zZd{F&$W!3k}d+IP?XOq7qhnFSV-`K?29Q3aWIOl#IiEBm;KWYx9zxOOyYtj}tbuwO-rPfii zK+DM#1uKel*m|lVlC#$3UG4(cr*;gF(y&lI0OTRNX@V!~J=j~UW3b&!rM_NlOvIRw zo3k~FcUczN;i;cYJ3?7tw@_aRnyHOsxGvj%Ub0Co3&-{_6^R32{EQq6BIof5{Tcq? z^=Wa?R00}#5}_=W)QN#+3VEU(q{u-TV%j(Dz7-^@R4p6bo5Yi9JUtn4;oC9e5t*4b z)XLWyv{V^>DZ$ABHC~O+Vb`2cAn;V+c>ip3Rz6vt-O?*$YlK&Kl=m(Bj&HqFdmXDJP3aj#`6o7TV|Bf% z@6~mtH-wFyF#D$JIA)#=#c5Yu86^m@dNjxK;Mu%iUq<*DP&i}*gwzZ9bP>s+%-eMo zoN<}TN<`T92Nw;Ye16yx{Ll@P=i_Yb1+IVd?9gtGM>N(@zB-_#a8KDP^i2csC0P!IDa~n;fqM+qiXM9on5rX z-P0F=K_zJ4U1mL4Ip#JnBH~hf)vW^yM~<}4g>7R#v<5!@c-RQiob*Eq>W;cWX=)>p z1^&`sdlR<{qruU#3jb|<&svR0-CekNQCJm(b3U#h!dvb6TmJO^hT|JKD>)qSWIEGL zN{;yBiNNlS0t{mz3vNkM(uOt5O?E!34jQzooQFqQbaR|v29zXk%_kd|N5o%eSC-QtK#YwYm&Nw1 zcyEs%DT;$Mp^u^F{_vFxTU^%GL#>jdU%|)q0byHf`RU%h7B;rGtIC0SWymdBZ2S1F zO)5!m@U{DirtfU9$?8GVhot#6LVK8usgG&)}z-1J>JWR4tu+)RaCg8 z^fsI7&_6}s(Y><9f7W&(2=`gm|e8q}_S9bG>fqO(k7F_pD4LR+NRd#md)eHd; z1;nZccQVDw_miI5CNr{>!k9Y80*qsKl|Jmc`X}el`zsarC^heb%p8V=?Lm&BoKWAl zzkPBKNrP-$4*rrZmx;*!#=)AxX`D>Nhqu_&jRl zd&6|Bv(R}s(KB&P3ZVrjA{z^+j-0UhC;~g)a8w6hW5O*IVvFIO zu+BK68PHB_V_*~6R3Vw$_^t;L!dW1c=`_X>#}G*Prk4|M`! zWPN&7WE1Tj@Sf)QU4}8SFL~620vis9Vw&T5`p}mzzV+fHzplr7mG;05pm0Ku^Y89vaTYV9yz| z?I-&6G%P!2aX^{qc*OFzHHsx*D?v8=#@dW1!GG*xJDa;@Q;$?N@j7d_bNT=g23q(P zpLO~|qRkmiM^9AFd?gskP|%wVzj}G%q+LzK^J|dIQRM{%SSoEW;pw)Wg#j4=9s^_; zee{6?`K_C;iso3}RFA+f0VbS;Eb=xXC}@*qB(FXha*d#amre(zMkY`tw0{du6mKBf zJ$np>q-VE6KY=MuN~Uq>-JG!?ha6!Oev*Mo{|yolR|k#Pg37` zf}n4nS1c{3MwEgOM5V&Emb^D~t&kiXLQJsX*FnvxJ6gXf+m>W?WOjEwoIgRXP6Y-t z59a>a3*4|VU%CPP8W|9d5ot~Z?<|yky*#}UYLJg}Co3(e!>3Uv7qUh|w2*Y~dWczz z1#Ao8>+IH20L61_sEaLO{ufQv@Avlj#cLApm)TMV=n>Fb6EGmbcstG96Vy%#rNQLq z;${`K`#7N#|EG)+07geGEDj9oDOzeF5L03YVPgkp!@l%4o4ALEkV1G2Ax6*P`H`Zh z3O+c6nvwhyrBD|qEZ2NGNN|Gcom%}I6LxhnR)z%gW@rf|_(3cNczESoJ?kDemG_^z ziHu6B%fc6;!^=Q@kc&GFVUIC!NOi>;@l?kTJ*l*YIZpzq9Sj;O$gmP|;d&qDgs-BY zfIK`Cc-m*649FYtC&kjGA1$vHX=L`DFw1-jb&f~zKZKm5{3zSQp&v~Y_9e}#Duk<= z09JhYUCdO$`sLR<;Ex^+P?i2rDo;VUCo(l$d>p4s9wCS>EW6lT&t(4m9|94k-f7RK z&Nm@D(oM?-oDDx(lm?>WfUmgVQ(Ws9k>*G*A~jRC*sKl+(UXiAbPo8RX&!$!)2Hm`MW6h6(XcV#1D!T6j1V`HL*GMBLy6c%IhnW;97ByB2XDD$!B(z%$ zzz|qYI8|0TWfh(~$xSZJ7ONJ@wZxNi>zkg8nW_-hM9D%}ej|DsMAKP*phJP1&eWYK z1g1#$?7#F;ioX=U=bR3P0YQrjG*slmLeJt}uV+?}>69~LJ42ekwG2?+F8E zo83c2ZF4(QipJ`i0p<7?%_kFKQkdD7>>1hk-dIYs7_pRQ^B74Y#D&&2BkH;{4;(@c z$z6AOI!T)zbB~0B*ztWD2&q47v)2-;J0MA)y*pNSc^Yn^XD1TOx9Sw1KBPHW$}N+4 zF|y7DO^zRBpuZ(BdrQvXP96@m84)L~pTMUXbB*3=VOC?wz~>0)`s?KKe&X)5>$V~yaQwe8$xpnMqDtMhsKH? zx>WdsjQ%q8z?iZfjNNjfFjEe%_%^FZXuHYp&UC3CS-HO(Wd? z@&3@XKV6i(fyHlq2W))@(oS%`p5Rt6;qd8%8*`*FB zQC0RQKKB|Fg4LF0mn>?Jsw~4(nlZbpSlH0i!b!k5Ry%3BR5Cj`4;FTX8HX`^uGeP% z3x*UA34q&PgOrcRLn4=zqxssC0Bi4VYZjg4Gxj__vp6QR5N606j;sCChZ7MDOTx%x zN{oF!U1f2=s@G&Cja+sdaC>VAD<$WriA6{^{-OKri;{a#JleAGsO}_Arbrl#4PEWD zco(y9U~D#azZ25LLUT5cIMr#B<4HO?6IgX57YipMkY9SSbp%OU!LNLDEVM>o97 zH9_0(Qa9WYGM%A#w)3Cs5)a{Ubr9$4Ner0Ub8~~{{>9FL#<%C7&wyK#ZQ}a)xGYj^ zD~dJ2{(*p}#>d#S78<|bYDa$Lj0#S=7&>7}ylQmw)!B(+xgjl6-F{wf8?b#*!xo!~ za3V8Lp}PA)ia~{kks+uHXvXX*A}*-Jp4??SSl68kA9Rc2Tuag$p2AUgSJ1UbqIO;L zc8b15ljPBgk0VMbHpPD288yvN@yNC?H6W9;6=_~SaKtzWZ=;QPpaxQzS%{pF1A1JH z1Mg1=Y~MH7$n)VRXTh_-sC|Uthf~Y<4+={)1cdXLViWZ2J!=k$@E(=thZ?JA3k_n$ zzZ4o|po@4W623PrSpJ*YxJ-9K?PYTKofI>(=C7&70~H;2#hcu1f`y>7;x!dquO}(? zJ3BoP1;ibao;QJR4lsaW z2x3h!xeHuc$G=v130fQ)zffEIF_4xN2jt<6BLsdn8m8{|6-8ws9z++eP^V6?EAu}( zf>Ij(7nQ4tOM*+L1O#-b3NJz!>k(4i?%|>ImNqbqKtB_exf|Z3o?7I!SQN zKb~yX6M{spr*JZT`_my#+&dK?I$It4$vRgj7-XfjG6uEiNcHOZWFOJis|o4SnNMWu zOee=Z^`-LuA1$(OdUa7!9-b?4*UCcyD#yk{Xz^Gv~< z5%|o9pv;bVO`>O-*~Y0{-*1X>oEtIC#xQcl6T!tKiW{0l8dHL#zTx0gO3*mzQf#)3 zLpo`Vi=>HP_HLW}NtHBqx|T(gfs8hp;xSnnnh%+Axw^MJ(R0hw#Py*W#k~DJIV3M& z!HnkH!vMTV;I(__Bg-)T@(C6P^UF}s%hp)KbMDdsT%put%OEvhZs%3M1>neapXG2rg$ZrW%ng zz?CQl0ZY9%*p}4lrtwII9%~h{T11i83xR%-+k!_ zUd-zjSyn1FFrl+;gJfa-8Z^1oxFj^&Q%sXopkX~1G*>Q{?2ko(3o5XbDr`?`5?Gi% zgCuQdzO(n!jh>{&G2NFDZ1?wA|Pehh(F*#lC z;;qC&5DitbMeD!7rv59~or05C)Se1fBj$X%rWT7UFz=8cuIsfIHWw%`+)DEwW=IaPrJk3J~DNEr`VS#|Cp5W?8=k#`H@cM$(uAL=-d@1@(u-; z%zto6hx-wt{s)&VoBvC|23l-Thuq;5b#tR+h<3@jMGJn}YI!erV@z)B?+2d7OmROB zbW_9+Rxx5?w>$(m%tmoU`ag?tSVN(zhE7>-?>2XDj_b90(PTmQZTMJC%>KuCI z4sQzGL)L`ozT@5XzojzO4V5rDD`E%#UkHfB;DAk)EL|%_xFY3nbyeHr@MDLk53foVH)>_o*1^1FbPrXG_n12v|L3D zm|?+C5hiP^QTufnJ?`sEiz;_OYpW9?@z>Y69)v2^N^t|m!qZcZnmWV2&bHYFik)jy|e6^TRVG9R}*Jk{`{ohATczUKDB#Y@@&QIDkjBHjpjda-bAYuuWqA+wWt%Mk~> zo$#EmM~NMDhsY0Vu|_MLuf8?R{NLe3b!f3s$l(R#yQ4n2zs`1wVBv4)lSW~NX|-x8 zL~5T%KsqHaMU-h`Wy%bOE>p3hv=IK0#V0rXIFXJZ95S3|l?#F!fr*3kow|P2q*1*# zMSrhMs~=iOUq2Wpm_P3w{`%lqkFC1);koPlfWxrgnBoSOy8>VW#Dqf?ecZNH7-Iat z;!0eW^|ooT$UPp!Sf{l8bIupK?yP4G{)svyFGn%Box&(u6cS%CN2!J8Fps9;B}b%+ z~@_TvJMzZm!vkk(1TN9mobAn>Q(Ec?7*lp}b z`wt)N-n<8@-2G1t<>gog@1E=bq*&J+d`{Q>7jro1{v>*IDE_gV348eyX1=#Q%ZGfv07mK-hV#ZEf&q2cX zG58(pdgZ5xKx)pqhghwVs`}d`s6GSVK#r`&$<3HU)=~aI@-e#<86k#K$oHGGL>86J zwKmWL^3lMf}njljJ__{5qQ&&j~EU3Fw&srHx1*Tw*TbBTohC|rp-`*qo* z$D_r#eb)?w!Fe4&x$SrI^qO*k_zf^@$871JoiwayFlHv8Y`wGQr}uk~op_@Sl; zO+=lA>vFSC((^`@e;xDcxQSr0_x`q6{-zf=+e2a$APKG^8lcay5S^I$G1#N?6Mxq8 zCBlHZs>8wx9el#kj5I|)qRJ)C4U}n3@81~57=G^?Z}(NF5)^q6wUQZUANJ=4+a>Pn zLBk*w7R!&5hQ=)Qc9u=IsF5|Igg*6zi*doFaY3nZuE2hGync1Kyu)s*AX)XOS0d+x zP^@!^LZM*^JVqWx*NE~N6%dJLUs$sqq+-rwW0P+dHMVBTSbJpvQJhWnL&gcYtkf2l z#DbWp9BwrvR!Do|B8EtCw;*{f^^y#w*sUhvXGFp8-w>!_ZsAa|ke#Cqt8z9B>&Kb~ zJ#WnYo>KEdHKqrxv$J*M*Bm?K26wInl5n4DZHZ?cG#N=WbuHxRz{9CY3byp9C4k6OLwFay%_p#Zwb<8sf!?m(T%rKPJ;Ry(S+t!h*@IBWzEXd zybB|VpS}09SN92{XDsbGY~U zX}*H~0REWjdIKw>@kH30EPU{8;NQ6V^n5CNjDB1?;y6?1$*l{&TkhkohcH`S<& zIw_Hv_9Z(`-xUgH3K8tG@dlnzNX60|t+DYkpJ0u7q%l-nmu^egJQH^fIl|ZKrxzNe z$q5yfLbtO{1uH(<{(f?IwddN&-ss4#tJpf$WfWF}&|~89j27f!W@Q%Uger&<`4?I} zcH~e0{LQk7s2G*aMqg%}uY7J8U-#N)L&1lazHC=<+29c*LN(7lTp8_(+ru6S1Z-WUde;-q*@#7Ycm3 z*<*J75u!l}t_};-M(E)G4t%|rq>i{V;BqS;!ee$)PCAr&eArV#bb(0EA|CUx&6crtC3 z_D&(|=0d+?x1K5%Ne8=f_NSyY#z7z_R+|POU-3Y~5rKzrt!FZ4>N=|$8Y)5Odhk*wCknEQNp{`Ud;3<3&!AEnY~wu%n)WquX#D1TjE{dO2c z^x7V^U1A6blQLDv39ytTWxt)iPYaT%f$M6SZ!99+Lu4P=S9}6Xf_f=X%!!JM0=$q> z`LCWym+G2{d&Bzq$IAzj?bTqm~^Sp|D`LF}a~)WA#W zk@_Ttn{%>9&G>8cNU^PNe2=vV-AOmjtWoogCMo)mXbI@Q}xFK-V}eD8a{0UwtkhB zuK99|C;hf^J*VFFw?x2C$i4lr%nS#HjqtN6UHc+*`o2uZW*PT=36E|oTE2?B^m(5% zx0KV1p;i3iKT$e3gunkC(0y%YO8N*+Ju^9=x_1~}Y zzwa9seQqGigh>h>?ZXO%5}HHiB^0&ImcsL{-kfruHT&N;!~kmuX~ed}0K|I!bN+DmR62}Pia4xRe*EOx6n>rA1Yf_R4rX{MSGGX+!-rx%RJGby zJeY8#_CB1L_-A!3RlQ|Q&o+LPD>BPzg3uxP5mE~OHjEpW z5=cjF8FqEohN_csMF|Y3GApDHIQ8mCRac6VJARDB4acP>u8LlHVgKdCXxd41B}Iavt%QCFDwW9GXj#5} zTA!aGeb8M`j12=-e?nqOT)Z8X%nthw@S9ui!p;{U29l{G;s*x9Sr=p-LbI7H#2YNq z#-I7J`a(wQ@2MT}jMS`6jBQ7#^I!tvLyX*bPsknoW?pC8o~+K2=D?DOi&24OmGd$r zj8vZ8KZKqqjYW*FkS-d-4JRY6GWmkXh9j%VbmQck-}KZbqLJ5gL)ndqe3~g)9`iy> z_am7zk|KB0Dg_56k%S`wvu+OtlJQr6-0p^tulK%_1$rJi2L5cp?UZb_vYQn>km{!F zoN^lM5tej2IbaC%IYmn}dqhu2a&YVD1-#&E%RXu4Rs;dm615-`Y}Ti9bR`m8SvxV_OMH>i|!}Ce(+z=g(Z&cbJs5SRf3tSuyHt8m0G=;WB>_X0{5rW=W6Pv_;qLA1opVwVJ10 zKI{F}GC?Ch9iJ-!!1H*ui7-8c&Tk+>JZBu?#1g;nL0+J3P&bX#t~s!0d7?23@g)zw z?%8VXF_7kTqJr8I{0K)}9>R$eescZX*MWi*OccRS%%wx)O6@F){Y)%9vOV3!x+?*R zqihTlO9RI~AxarN6v`J8T$Nvxbe%;F3wef5JA2nUuFyfu&s|WQ?-(%N)6RS|V|(w% z!XYXNDu{_80p61Y$@Zu=pQ5S->!y@V)}$W~Q8YK#1Vzkzv}dA>9A8$}za1PyUOWF& zgi29Gyn#+5SI4HLkjm+ysfQZTlkawA775rJcVFhI>(_4j-iVlg9K1TjJuz5(a&WX1 zE1kbsU!keEBYI#EBW>5KIwiR=6|)>)!}B)~*W3GOpf>T%+;Rh9z@j(Qd{H~_XDcD@ z^UJlWU(0i|%>dN#bhC|6c75W9cNV5TixTfvv!1q%t5j)U6QOpi0)&Nw6jgaf0szme zIU0x21wB7=5YqAIVeEX>YXNnD{DCRbM62p)YHb^iee97;F?J>D=kwd~=VrsbOQlTg z15We=$NQQ=N0D^*D;2xvGX0@fG!f&AINbt*TR}0FFXE|zP$|1QnlqWfGVtiOKMC>l6ZjysO)cznY9aPgdCma=45 zU&f1*K*zrkFXPzf!#SV6TTyFTPErp3;ILBdJE1G`$zU7sJv(#mx^__u*q?pBSMoD4y6e=Y+lnyZz9 zkvv;1wnfb~q>KD6D#&Dfk^`~noj|w@^3C7*qoOHq+V0E6-G)_Lmfeg)ezS$6%@2p@ zX0I4Guq^}NMw27E#a9J>7=&NF$yJzRUxI`c<-uPMv#C_vj|^}xTV11TnW?jh3z;^pT0Z=vC2BxSSw{Ls9%Q{;W2jtxlBQt`>zA0b_xw1n}r=XA((JE^OsXg(1F z0lqxJ5jk>xel;1M!QVTQvX9prK!EAQ1UoF})RtxYK18+W#i*MCEo)ao5?`=!;`D%{ z1_DF`0KalHI28DhHAQRZ0K$8w^(dYCIQ(5+ECxZiQCGD5K!X1UOGG&80JfKsK~d>O zXrp})7g>XY+s?<)fk=Ky;@E09`YcvM*xu&Ha8J?k)iUCnu&ia3CEyb=Wu-_)Ps-0> zz3PGhGnj@I4bSd3omc`z?s4J|T*B!^5c6=oAg~7U5EnSTWKIXh5+o7(bX;di2X=N# zUR^6-$s76;CRF_`)9PIi&A6jRL(6Z?yxViEVT{2ORMKeRD~9|h^uneI8yh)(u2|f# zQ6ii`frjIOCloXuDY}m|9v5$&3>q4HNRiLm*1cW`5C4{F54XK$XM=BXeC)STTXDTJsPmw7ySgFi--Y_Yo8<`B*~>L#)!*m0lIEKgw5uCCxvSvd&lh~bT^Gc` zpWgvxSDzyo_Eu$A?if%PI_knlT{N;wcVwzAbp0v&tLvi|uI^j6VkrBrt}lkC?7Qkl z(tSd+#SohHm0NH-eqWUcP%Wyug!gqR)2kv5XIxulPBTqygTCo{jqw6q6$=8EluaXHiwksbL$ zj@E_|?XUSRIlLc>)UX1@PfFnK2D-bwvGnA*@N|jhjlv3Br>kMCuy5YQ9^7Bm#q+ zJ7)>)<$L-%siZX~;dCa(SK|nw*LTdRQ}aNthY`M;y@l&e`TJE>WPWdRS4hg~idE88 z*W)Tl!#ND9v>2ew`}}=Q+2$$9O<`2H?Z5bygwp6>hGihsn?9Ofa-*es@DDFT1ZUzx zwfK!p)cQz0FLO0$^={N7yf9@u7T;OeJeMd~l^Xpm7&}R<+>VePY8r9DHs_#6x zKfTt_SuPpOdC#KXLQ&k%3m#Y{ht$`8Lyf|UF2sNuj(egJN#|DXcqRTm8be`)o{+`JL4Zc=#C4s zrJtPnKE0~a`KcH4Q^}F?mspLRjp^V~W_3~+F@x4Yt{SPJ zEoW31y#X`b{o|>lpBqtM>t%HrY%+-Fq8P%^1T7Z;dK{OM3zE0%Yg4us&pzM{k5tTcd@i|stZ&={ zls&7Fv%N<-5j2>Qq74xuQ`Ghk#P&b>Vw7KsaB}{+FK|P6d&m}-AtrAECKp&54OJ=! zwVOOD$Q6XWVHip1_q^Uao1L3!#mT4{;&QDxuffYmP_7iADp}GAJ%a_N&+e3T$NQbY|1{&|S!h*+9h~pRJOzCejb|LtJlpRn#@X<2jlQpFa>e zzWUNo-T?eru2B7K+o~JPxKHF~Ts1ZHG>D&v_Dp9XdFlv!15?;~N|<6bt|}iSBbxK8 z=v7xW%h0%$F)*E-G z(+yY|0gyxdtr_tbj_>z~!JMCi;f&18Xv%*TQ@c;1^MM|h8^e7zBGR8!mj|uHFRr0!iN)Zeeh7>(ay4tt7qIlPx}~2v9pJa-?N8a@-b-g8nluA&TO@qS!1=Qv^hPkW^vjh0wbFsh==gl=uVLi7mMYzVE1=qqZKk~02*RdPr*e)_l{Jwp}kxULJAB@N|+aX3K` zH_rt-&tKCa9To5mWOkt_+DCE{v-LA1~e05 zUR?{d=vo=VD%y6q#NuKsem3a+$A?w)FxzxCtnirMBn{|(sJhiFsEtG;y^GCL)*gmt z88N6Gl6q9)Gl9vwLd%Q?K(*kV!1s9GwH7j~x+mxbZtEiHlR#_{X%L$?y#!W9#4zbSlNM6oL${SYL5}{&> zE3dH0cb+Mr zycnyTS&t-ABvCzt(S;~~8!al2eU!+?jw!*HJ?cCz56-8Bc~pO^Q)%hJ z*pJVcn`wSp*rso(=}9S?ZDD|g=igt{DEaeI({vEiO#j?o`_f7* z?!Uvil-CtrEGLkc^0xh>QZ)9RsT20S_o$4+tHd~9j^}sB0HV#!90{^>lOGjoj<-(Q z2-BcAxaAd{x0yQ`tBxqgUfj)pM4ICFm%7QkFORYAbF00i@v!piu}4gLr^9|o>Yyk@ zYcQoJ#h3DP?OyVEV%`*kUh?b~-eiMw?nZ|PlKGZGrp{pOMq--Lw-fSao=?tlf26E7 zre>s2w%C-Ev69%lQRX@Z$r)7x0j{(dkT6XRcI!zl{<-dLQD`&i6(inCD({rj87}@?zFg&~<2t<_}VBPX{+jkixvC`uW?GYFW)&287b`>0w1JccH4_?akjy$rJ&qGjhQ?=EP6NC*LF#F;@;&ubVpjF zQaBL_5jGcu0=$9uWkIkMR)p&@gXx2a-8oVfcR%*g7t=3_q$+=UmJK&Ce;sw(Ir44C zZ=4PjyKyGzVza(S^tLDQ!hTqZs1Sc}-NqKB%g_29H;iB)oo-Nhp;xHfBR#5Oa%eg> z{hv_(@tez(M?~iNsQ`($?!+75r_kcC)IY~UU_jC5w<}JNb6)7z9;vE6JE(6NcNefb zy7e{j_4;3Cy4|Irobs#u`7w!ZO!NGekK_S8gy!!K2YM#+=N4Nq1AvPSosP8L;8tkG zc%t@(rjuQgWPPclq<6szY(PkG zK1RX>2`)if*43;SQx4E~)Y^wt4|{P0H$o^xY=zv@>dd1sq@~N7CiH6EDbI2ZS$h4j z&vImy4L2*Q<2g#XiL+5$!evsPpHQ?(XF4xzpqyy;>5n2u)2M-AgVEwu$4NO`PtnHL z9w|R^;<|p(ZMC41+%Za|_#Yr!Gg}*R@A-D!Wo>N?wn7mauGV4{9@VMPd$t*oLlq@2 z;mnW5OoMbqcTYxTXxSb`*f=ayz}rDlj;z!ti(d;H`kS8&Rh;SSWDW@l&hwd!I#0rC z8_@Q(4Ca<^u@m#|2}Wvz<6yEO%3spbcKtu7E}r{mG33h)-pd-3d=;a?c`<7Zu>CP?VrR{TzVRg@2 zOWQd}vY%BMuL3)&Kg`z2`44K8iB&_BXlA&~ued9Mv4x1Ml9hMfvgTJ6GSB|yK6`3Z zRK!mFxfPV&yi?LFP4dC{hU@Luh*}BU&)ZHE4W5E&`O!C8d!vrps%BPC&mgAFJ0jIe z-pd-7CPLaZ3b$iZCwr%lgR$n1j2ekHgKkLbF1k*fBv-uf5OQ=&0tQR+A7RXJk_(7*NQ30EOCuf9B1nVM(j{HO z(kUR_4c_PbyWh;++|Atm0n9MF`>tm^UX|Pg<(j+(B=s2K?f1mpn~-8|SyveC>8}db zT3vI7;#V@JDPZ=P9qjr*P9H_0aZB#$CXqliIg2|Sy1luAwsw5me$tdIT;2CWYRzCK zgMQSC*`1<7S*ldvQxc`L{!vDq3bRhh&mYcz}-gqu&85K+>n!__t z(t=x2&D*n(WnEGETm_IQW?w)uUBKTo`%0(wA>MpMtDje6_IvCtsZ^1-+_wzGflx*T z7k^Q4rOg}92h!l5PtRvFhIC8Em1LJ4_i$_eO_}E~9CUscMCDe`R1@fqrs{%It-uME ztGG&=1IYLHcy<}ZQx6WPM?<`=*RSpnb`|F7$ZYOBm}JhE>D{x5JWFYhOr^K7X85HB3`Tzq*h zj9*n)(&pl9psL+4hw)wC-!9JYS96;Ki&(W^oJ9=9{z4`TmHgh|Xkw6K2EBvIe}^9i`%0pW@ASu(UAEBdMaKeE6tIk7QBqTH{aOa#dz>~#1{SGq^es<=qDmE zST!o|En}M@l##gXcZ)~ganB~1C$?tzk&7`dcc8p%pSotXC;yz}j-Kdr%9~2(tLyqv zFNYc9p5^GZ+=_U_;a9PO*LhJn3#o&pEG*~T^()Us{#fe|zkl%Fky@gb8@HRlCLy(Z zUAU`&)H(8+nb4vUlk(gyw0l%0IsYq14nFS4iOtr5q=nkPaY!}K3RSD?8(*i48M%4`7 zpnQ|^GF~(ZyL@YlL>i3!s1_sx)!di4TB9|dhJ3cO=8aoTl!-l+KJtLHUvO<3#JCHs@*cqcKHJ#L<-7okEkt90|Dx2y{ zPHC1SQM*<=Ei4mx*-87?2As8Kw26{z1e=Vdw#Xi zwe|MF?M_g(y0SmZMzW%kyDLjyvO?A*WGFeZw3J(!CUt*mRrIvO!dIHi!UBmH?qR6G zMI+|GgLY69CJ@0ddG#}J;@7T_eh-0%g5P2}K>3(KfQ;sNzM~wgLT$An3Or1R3gASt zw7Yx$VJ)p6EtMYMdw=9{$gfjm;C)`z;REFAN!9OU&8>lJfpf8PY#Oi&U;)W$@c;5A z-UEHF1NFAj-+6t`&&ibWTi*?GM~A(nB45Q<4CdPBwi*+ysECJ+nUF+_v%o6dcsFY> zqreoj5faj!IPSal`dy7SC39t(?I>4`tZ0JcSA_yM#FdXfke*kb6%Kp~el{dSSsy^o ze7*g%A~%2T8mWmc6bTni=Jf*G)kioqDZuYJ?FLt4deYk!Rf^(M9sX*XfWTXpaRt;C zdGo+`laYB?MG?khy^Rs(d2aLxsNw?8kR&GuuAs*z1~DvEr+mOcaN`S zGi>uZSShs~x0wqs(I7kKpoJbfdty#Glz;fMg#wnl=?m?MKJ654NY=T0)y@rHzjfc%Hu!BEYep*cA&+^n2K6?jOY#S9b{3EO z!7K^BZ*C7mjx{Eg)vp2B0Kv6&8O-;vv$x9lMBAiC690fOGYcDv?iwd!XeWMl%@IY( z`bomZZ-w6t=2q>&xUd;TR3qtgYYw$$l~*2G|Mp?ydo!- zNQS}|w{vrVQ~fbAjDV#pIuY=9HAg1+C|hR#(AMsEuo_F6h=;FDk zt<#LG%a-M-%?`83jZmWLt(>gC`Mam^n)btB^|)e{EFH#==9|5#T%emrW6B;){joRH zd`^F6RR$JE;0P(0t9AZ1L1kkTBtm=iS-E3}W~tyMya0e1{r_zZ`F6jW1z=5h^K>ej zoss#gi2QUQXs#%W6(%bc7EDLp@=k@WyMPAdL^=E-kVKe{ayL3_os*T`6&gK`z}D%a zYIs-EP1Vqc=q>QTaP6(Kj#SHx5EH^7>IXlz5K*a_B6-+ET8%QIb!UwuNR?zoMU2+x z99OMbC-689GCUJ;CnW~WiYY01Vcq3pAFxm1@rb-{`3{S;&LG{?~JSUY?AdOoclVq4!f0h(KPQI zMZ`2o`B7YRRd06n5=dvXA+VCgPC5e_t_>J9mpdP+fq0K=dpK5uocp3T11y&o_(4;& z(0btW$fMZ4yGUtPS1JQDwT`*=XIhcD=)CRBOHOxp+~9H1GV7`QwcjN3fx)MwYP0H= z_DILPFC0rC2U-;$q;p$fQPW25K6^Yz@fJPx zh}IL#65|G2(ar#jFxGXo#0Y$o*-!h)3*@80CFmIwNu@7_hn-`Btb|*F5+K(X;-W8% zgwfy!S$xnLJLdAxyYMsJWwTJGWBT66Q%?M$>vinw9xBFg>Ku9XOhvepH<~{7r}|9w z#-FQpi&AX3@f-SdkW;~P3?>h#aZsfLRE9IYRQ<26- zu$Ulc>g!ASXvul>^L)+4O`Gs%Xj@Ba=dZiHFBbl_!!v!xZxayI=G|&PNueZ+X^#+g zf#MK6RFm=;(Wb!746iHeiCg-gV*|c_0z-_(?svVH)f(?n{M!;HHiKea#@VipU9R6= z_#WjC_|OGCNl~Ay4!EsxtD@~aTWk((5D?^-9%wqj-wfrVCX(*=T_foSv;tb+h=NYG z3oOP0t`q9zSgu_hX_bV3IR1}NiYIcm_8n>hY5R|P2mNX?^TfCM+MS0;!WvDq+!23vb?;U&mWmCwy}X-H^o>+dKI%9em)t6c^;&TKm<8%KN)> z-z=qR@y(~_8i6b3acA3RyQadr6KSD*(>&168aU=RRLJEPnm2D|t!#$hr={{2tQ7W3lmCWpboMzni6haoC(vGIMQmh; z9SAFtbFL@%TP5GSdp6<8nawBQ3cbw7AX1_{+xMtFo^r{daq3AC$4@f5g$gJ}Gime^ zSwJy=R@s-f`k>NXIzp^Ks+k4YsW4K0>!Up7j&$W%iI=@27=YYR4+SzG0CA7{IUqd{ z0)0K}|K)7W0Hm&F@M?nx05af^NeRWdFI&lGWWc^Xz`ph4#vow8uQSldQj!lx`IYJ* zOP-Hl>Bdajwn8U^z;Bo}xW&;j*P)kl)`MR*BFGD^!VCvV@X$58fcG1X^FRS!Yi+y3 z2eaPYX87&nozJ;4J`VLaEBom-lkg+_2y_zRgX2CQBSK3pPaIr8?Q3X+~yJmDj%?EM5`nN$=cVQT_FLzcPumY}sC-G`q;dgM^c z1$!|?wTIC%NU;Q;6L#|u_VCAdv&46?#CsOIi$lj^N9;A--u3sA=S;nzFW`>F!gBY! z!*BoT_l)CG1>^)$%xx!@AZQ*eeQ7ga;#zgshd0M?)qd59%@<0diKPl=pzirDNEjnd zST0W3Du@|i84E-;h}*&9L7RM~AMOX%Df&&Aw^9ezOK7MS?gGi&5c+&4MTbF$M9h3} z>}XVS?#?%bXf_CUm_hr0L7# ze5^{3q3-K4Tz9yFRBz(M>O5t_3)VwY*8PrIVRcogql)XIT`2@?BuYKlWl;#!TjP#| zJWMLgUuDkGCM0-C4%oVQ54w1PB&H)7VPcXf;|CyVYCW3B<4f|udczw#=aVthwICUS zRY&2#YOb{a8N$_l-5dKTn$UR?c)bnwNPHI^LpZM_p*<9JY>+*NM7W1Sv_~mzMgJ!Iu#AAeArCe{51z7qjpk}eN2BuX^tG-+`N^irQt#$Q*4AH>;W>`eX0 zpA(}Cqjt0ZV_{+*4wR>5C} zU|^rcjL~6WZpX*Una$Q(12S8xR4YrAojtd<8^@;EJ4k}1_##~SKk@`9C2~EJ8dp9N zj>q-{TqXU99kXAVaGRKT0#4R>ZF?>LYR+QZFxuxDOf}{R2PCUSb3B4t+sTqG?~H+R zDb|=1mOFm;)0g4IlSL_$rZ47&+9a!NVVR;e}Ay|9nsv*S*TYmR9qNm_yrxr_|)w-L60>AYDq@?2-* z*7%&0sdSUjW0|TSQOUs3AjLG_hDd)KatVNBL`OL~cTzi|YFy|??k%eJ2f3VAQ{^lo zv}edNoESd>2p!+FlxhpGqg)v}`+gC|4kxS=Tr1(n$-m}gjwTX@?x^0mYj#C&-~Y zVgj#GFy{|R`ZC`jqd$KI_zfZdKR&6E3q&u zs;xo%;!=X{1M-LJfi*uF)SUyteU7@pqLHdOK7vlZ%O1YVE>B<^8UCu7vlr$q9-7Gb6C0|efvG5kiE*z-SvieBn5k$Mv zdRUU8B*8QZH#98h_C0xBc@)fFF?uYXC9UQp4D}1qOLh>kwI4}r!V))B)k_YqSy*pK z2+)ZMZb(=LlzxpK8F(a8TE4S_ZI_nD2(oZRtl@jQ6+2vdCsAUmf;kd8D`G8$#KRD4 z*!@aHzBImof@@g8sr$tOvDDxN74_%|+k^1{A@N9>c~ptLzF29LfOq5#yVxUL!J06C zFv;I8^&1Ws)3NmgEV&wt&r2)+uO*D)E2Fh?^t;4BG894vsj|ZPKJsy z(pud=G%>7N%nz%?hMHm5C+eriEvI`Ide#smZwR7#2^5w*L7r*6c;-5TU>wJrkrfXm zfW1%2)_}P1*s5aICw_zV=Y~LWMJE7y-p)t;FW$QJ@P`z~X}LL>xl8 zMF+ba;8wzclQ_n9_wH6r8295YYN?@SAH6`1g_+ELfPaSBVev0G7oJJ>lDtL$WPRth zwKr!xr`NCXYv|1xWZpOg2ndXgQ-NPx#E*V{Nu7HuO45_R`o)7G>-Av~^KS%vL-oa$ z9Sv6Iff+Y((VA&(d1w;BCu^GoR*aV{SX&eLP+U$${s=`EHBOw5z2wr7F53BW~zTha;j=36>Ka*tf zdt326W;-&GL1bQoj8$Y=Kjc;U1qzSUmI*&@FE@NgLB=+(E#vZ@?Ke~ z5rb(d?4ZKxgi@Rn)sYdUM=L$FTMlEUJV8&pC>|c^2$*T2lxAgq6-h!U-W3p(H{&W*7MhRn~{y7X&n?uHI zF44iK_v!7qVo$LFPbc#DEm%$faVh0h_nW2LF z%4?VS5BOA^DOP5mr4#o0gZ`?J-?qYDH^&r}lzJ*m1M-06(zW`J}C( z^U@zzxS9)m?vG03EarBwG7c)6V`=52yS)n}pWWJ+NR??4n#F0A#+G<7dWE&z${lb- z7~e&I(Di51J22pbfCep|Ngl+|Mzjv-xtyPAe<%83ZAKfBK+sxzc%c-3w~iRgU%bcv zL8N0D?*5!d^UJx)NDnRkjd>?o?uN+?Ap2GSe_Y$=liYOmJHJr~B3NN>FM@v*$EK=I zvbnzhaw|ldx&>!9=cDiIhLL;{ynQus%tMJDJ`I5rTZNJ~$Rm) zgtpr>ROiSFC>wt)<{fhD?nC9Dij;~%5vKBN+?v`l`qiA(@Zs>!HIbw$_y}^@@d&)k z|1f^hC}F5}cQW4u5)@FlFlzT|6maXpFK$c!!E%zEh$+Gh1N?ryg}B$IZooIxlyR6z z@tNr876+z{j3n8@MV zT5SVpi?iE@Ls~~f(l z`NIVHZV4V`6V3CQK8?N)eE1DFJxMJb%<_uT@Z*)!|h!E%L=bae|8eVXkMvlBzyXzIWs8 z&wv;7QHZ6~PC6;FXKW%ZE9}CxhUtE-G~>Uy*w2L1Xd*HsKD8&LX8`LOVA~hj zq5yb9!(Sa4tnpWc=J=KBCIEyzJ?&rEW_feX4@FKhFiIWxuRogT#xO zb+^W3^d?ZjgG}LD$|_w}s29SR!!^d65qwStkU{}*9x-ekMeJ-AfG*e|BZ>0Si@tqV zyd2@9rnVj*-$}yI3oXW4?!tO^P~Fuqoelg2w4T6A^=@jct0e6Q@WobBQGYBdk(?h!{%jJO!FcoT#mnAa`*8rl`!27J z(~8H{=8p-v^x2sN&oshhd5Zl8k|=A@Hj`j-^3B$QeW-LK(k!eLCp)af4I(eNWgoAw z*(K|xl~HrtPX)^N13Lwe@KiWGkpHXx`){D6-?h1hP(b=)Hytal2@hWJCpx@+7G|`l z!~`L=Eo}hm)W=YcEs7T@E0<@;M8eSa%jD-|odm7ZHeCOQ?iKThGP+3nJ&WG>Fr6|! z0)N(3`5aVet{H&k{^ctg-KFhd^;^VJ|9IkZ8>-2jj;_^E)YC7f-P~q8t28{zp{>aI zA*pd@2&NJ#Xn50pbP!CUgbFT(z(O%yB>no;Nd@UrNDR;;*ihhZJ!k&-pC3n&v+W42 zJb_vJ{3clj3Xyqnj}JsuaXy`e7fSxlYT|o#JQL?cJh=(%j#=Gy z4Q62M)r6ul?u94$-BM$0^R=qV@OV{%X0BCL2@PFp`Qn60Ht{bvO+Ny(!THb+TDBnI z*nSznqVWc=w&VxB#oL9rfGa6#Vt+yQ3v1)uF8D+^0M6MAWr@9qfsYtM=cNd_Y*#_~ zL|DZ5IM}?Xg>`TflU_#?bfnF*dd(4EVmmw{ZS-({kQ2BYg=3@lyCB@L$iAkb4BrGW zc;CJ4vzvp?+1tFDwv*0nA`&2r7J|+XZ(rBQcERbaQzBw1j^>g9S3i2ym5bsT9;CzVNFzzN!{GvxFWhy2Db>LIo^z z#Q`_E;oh6SD{8Eqy-{!di@Yy<^9th;86p+M=|W(3YrRbB=f`rv|CPM~Ad)G-R<;hc z&?Moy?KU_46hEL>-zoZ>>(iCd!G`vOj6o+Kdg=}~3NLC{BnHuo37uGvV)*Av*9j`G z#P(ezl?X=h`+8a4$U23RkT{VC9X9zdR_i#v-8OEKYHQd8UElC6HU9P$U*K+Tc*f$6 z3zGYW1^;97x<6XaJSKeddaH2XL=xrtF;YVxC;Fm!&~;FiQ6wl&eE*IunQHJ6s!#_^7FVJ<5fejk#-u$x{5FlCL`UiVGK}=A1_uZz%$26 zh@fn@;A0@__YrFg_*yGbtr`B|Fhh8=f&O~Ur=sA5r4rs`#_A$P= znzbD0(*jL=1rP7?WhvMc%HQc%yr_^jc*E_YlV?AstmlSX2(?oL?#~J>EW)K;i9;0! z*f%em7MhnUOrt424H~A=?)h&>9o_w0-oO)bjxs}~(JMZJ)SR07_bx=Z0=F;Ae9 z!6l6Mlelc0SN)GK*b`eD-ph*fR?=vtfNT4hwMK6oGT(Au-OqGBsaBPlG5 zrmK^^aD%*i3IOcl=S~pc$y~b!*I;0c9rxaC{|1u8wGto>0uxZFmXh}&&laE=c8HQi zeihO+OOBk%aw4CDDj6k57H0A7(t4O!(4`Wk&Hfid&LhZqTP|Sly{YE)vnAv$B3NhL{$s;=1m4|u(Rsb%+#Qe(V=eksnW` zGU3nyUhUHeEq(i=NN`I4ddJcuO2^70VaMttI?Dr4f1U~J=-WTbXI3)k;cRVcGlq6Q%lH|@kr~(g= zh!P!)L%+{bsJp&YYLKOSV=B5?c8l_$*$b}-jMJDY&L``FV+~c{u^yaQllpM+Z+>-L z&HvU+8W|TkDEx=zTv<}MugO|A{AC%Ftf_S2lfXP-f^{gHIO5j{Gk<(;|D4g4f<2F7 z37C#1PGYcPysL`0)!o0C!OoAEHIt#{UTU1xuZZ%(FE9V83+yyeZFdCygNS<^uHfSQ zdmmh8vL@wc0AjHFawIo)TH|2lXv_ zg-M3UzMccTWgOnS`rG`$NhMp!f)iyDlL-T>4&#ZqnZyJsDC{v+cc%tm!Ys2YUlUqQ z$-v!>L#}UjW!!Pt-vTQN9w7T)CO9>!(`;OLjF2oM~z4yXD%S`Zx=p)=5SLen=Mjjmp9Uxb`@6| z;DK8-CD^7b7D0@l-ut-T9f?84m)#{ys|Urj31xf;JSU!QOf5pDe2Jzu|8Ji_Wm%L4 zB8@}8e3kqP;RTu)WY1YgsS1LLiP#ZqVK8NUJZj@K*!%mxNl$5bR&^3z`~xMPA(Zh= za$)F(M;o}N$PkGIoi{Dt<`aj_WJG#D!n~$&E8d$R3}EAsNwZi_HZ8yiiX_goR8&nX zDM)<&{F1m-2Ggl3-qL0x6^A^Hq%hT$^toY#3NP#4gq)q#b6wTYFn5m#wx(7x;I$P@ zMJn_?OY_g$+FWWoh3BW6U52GEPgHYuKl@{E9@-!wYOHn~xLLAFs?%Qw-x-H~sHA9e zZAG% z<~r+FGX@VH_W>2oRq_aKCJwD;(DY8-t+Lj*w$;ozZm=QaOKl(RSt4>~uAe4iFzIR} zWLmF?u>2yAr7|uZmm`{bmQ3kSvL`F-y1&K~A;bz?I}#QgJ#kpvrMav@uLk4k1U?i8 zlPPT27S(C){9=c?(-*9N=lml-dN-fKprHA-Dz%#78m3PQ{d7#fZh)( zX4XD)%o?hx^%KeF{a$2)*6_o%bEon*a^gGfZ>>MTW>VC|!ld$H9#p}Gk}^6}sIljT zT&g4CV)_@lpG+mFT>fxI4UIggFZ-S@gvWuTy zq7{oScBUsOYO28uhzRC4$xwaytYYj_MN2ncIZz_JUsLNSBAQ#(yDe;RvoV4hxYB@P zA?n;8+VHb!A^@`iP9wXgU-St))D0&!$HQd?Wn9L+Mhhn)-C*3dmU1=D>XOKlSA6vWx^-KDp_Eb1hNFl`wp`7}~7Mp-+e+XbY{#qJRh zAQLY)FuplZj#XRIj323WJLo#3g3`u@J+m#3FQQGWcSfIcDis)j@yeq_^gD8%I_%unLBlZ!_S2v3K`Cng{JaJlLN< zyV_|NK^-%ECqLUNfNZZV217V7T1!;7;PKyoyrGyRFX<q|>r68XQbI z`BA^we`UnX5*i!s*}htATm5bJ;ADsqwMe?So?3Z=`TPV{lCgYTb54<~{eZx-5j)-4 z{jkLNGn%d^-TlJ}EB|#~Ph{@2`1Lo2uNL3)&&zNQbqE0Z8d1+rveJL&L^DfI1Ou)Q z5vx@}QF;7K-Pcs@-C{deYx}~jHUBOM5B3*eZ(sCIey4P#9nv*5iU@0w-tJ6(t3$RW zoMfM`3PfddhPr2kEjllTLUjG`8Q(_`=;B~jrkxqwU?Zq`qFA?;HN}EkUdn)NM?Uk- zBIUTOVV_h+EL;z`NR;A@+o12Xdj;>!1jtw)k{~MhsWuodoleI!j+N%4YYtRXh6X{| z3LQGy77DVB3ehcA$pfcIkEl%YiHhVU%q+VO+{}{k#FZPGsjTTl7j-2+PjGB?{CeuW zXj^?zVvjxqB>yFoXCx<76SLF^wzpHZlqf4qa9A9S)BYSJ&L_we3`R zJG^a>)8P$9aUfwzw$U2WzlRQkPQWRzM7xh@7Me{@Jk~$N(4K_U1OC4l}7(vc`|f%a5y&fMYTG)NCJoig@M13EUwdQ~+2EEE$}Ns7lgbUaAdbVXsUX&9)K z>QH$_?}Z_BvjUPO`rYm%;eeV+<9>SV;YCl~*;KT*YLvJOb-Gh!N)Bo`8Vk|+j$^92 zo}6BznIOkeH9s2`!~Ivam40}V0j7d7Qe)f3zZ3*mqv3O(V&_sKNuVQ`=yt=JKdnZV zGb_ZWs5f#Bxl8J1RLF&y^|}_He1Y-l98<=CQQ0pyf5Xbm9%OVNcz733 z+z-ABwN3ikhXJPHld0hZSe=s8m5gHH-+wdm8mV6nY%-n6Ej+uE(>-rm zdbwi%>eZB%4GDm2lN!Fcsf$^w2BZW!JJBE6VMbZu>)R-_l|spI-5W~{pLe)y!ZJ-4 z-|;@?+>@yB)7!<>-U}S|wBrTTUO%`T$hMNTwgBjlopd1OhVf=mbbWX>?xxTWO*H#k z?XMk}PE6yuX(GTLDD(7ciEvGc`AQDn5ctr-Pa7XD%wP=bIira$XD44Dl}*6jg0tlFv{ zw2g)-13?!c@A@iB>hk+c)W!Z)Aunr^6ur!+AK-ER zhzu>T52Wyn@bm}6W~hr9!{6?zDgnrQKE*0-viavUgYUF#%3J?x(F_Vf3)^b3f!;K3 zV~MuS_9b(~1Uea5VW>Z%bR41KQDV$ZGTaLuwk1;jHO$Bzpe(EjLjDPtk#QQsc19DK z8ZL}FEJ8NasJe@$N2RB^lk_+TWQHU$U?*Flcv{sf1t90x&c!NzQ?cbarE2jS zi*l>w#S65GZlqqL>|cu35%gxs(cqFy>ig zo8#c|*%F;oM4}!ayr9qM?#XNg>U83UVunC+nd%m1CR)9HenlYeckP2e(iW0Fw6ETa zzML4g6sh5N*adH-Vp!H1@fYm@iV^Yn&>yzU1Bqk))>ZgEmffpy&kkLAri+3;L*}$= zNVP>5w;wS`YEha{FIP&xd;}gQ^uLg(u=j!m#>^l)L(ILr&tW@1Xk?C}c71I-pQ;X# zNaH@Iuvgh<1;VyUU&j?~l^Cyb=i$lM32ROrIAUt!8&5YB(qgNM)t9m`yIjkOTk_?r zd*2ry&>H*4*1IivW5>1E%BuuwLUXY8&voAo+IWU~?0e|ifqKTO1l;$=bbMv~Xb4wd zfriADhZ^A1#L9H&xPh6AjE7?HA9nJVX=uCRLbU@w`iqHXS+jCt{rT#dzdxcJ?1<@g zhynV`%u=M}PRAr~vh*o*>dGvoamz-_2Heo-tY~jRR$`veNm0ux-z6h*I*iI{{me>~ zXebI2QiW$wTHh=@qoazNIzsO&F`rV6Wpwuj;tWzWT;>{ddLsWDm&e-3g7#)nOgLR? z=7PDxb+`FuD@$H z1A`h!Ivks> z_VF6=Cmv`)i~O&x53ttL2o6|{jeBeGq}P3J(=nrz@l!J(vmu74XrIC>CGTI8Y~p53 zy81<@WnUuoJ1FwRoICGkMM~e7Ln~Y=JNLG6D_nS#zLce;A|~FyjZ}!j{Yhy1Are&1 z5e+eY1OJqTN8iOIDV=Sz&u&u+c(N15IFUDyqg7-3<{7xc(}{1iRU4#YTO zJ?`4Nn&8qIU%Y!%&BB&*~N^5g8RsxAtet-&}KnL*f} z&@zcbSkamB0xfMdAvNZVXUB*)#eWz_C*mRoK)ULPvmr_Vdc^TdE%aLe?!qWLTtKQZ|7h|heoM7iaI>*VJQ#CS7)+HrBiz6{Z z^UmXGr&k$YVgh(#48VpsxaoTQp}sgQh>Q>+jE_*Hu`5vCGEzdwZurEBR$iSQ$*VC~`^0$LX z!R*g=gp9oMb_!YYGr(lD{Xd=v0|Wf2c)7}*Mr<-O&Z^8(ytZmqGB)}ZMX~GKY9nmT zhv?2BlNmAJ(okP#;?|5oVwa!4nfN`8?g^zn!WOxiR!m@0Kvbc%FiPiS#H^apuwm3M zk!Ho}4x$DxJ(Aj6WI_xq;1yXqiMDs-G%y`V>3H|i^c(PQaF;*6#jD^EJ-ejKbqV5< zeV8)v`HY=B^L%@MH)05ALe|^t9M79UV%zJxJ;x{AAL(*;sTHlH3cYl!Fj-!N_|lFM zB^1! zlaw_h+o|dH%k^1Rm8P!GJZwUP8Up`sIX=B23hw`N@@k{~d}sS$850bT+8??|rt~Po zLzg8+oV*nM`T>RR0b0PjIG-qCF*sDxcb&!5<@*P{UAmpo@sa}cH8gqj7UaS&@9xQ> z0kotRUc>A96;m>Cb*qGouJa8x)VY=D`;yG$3~CQn`|o*M#lO!Oz6_(gn4qTiF<~qth>Y-HZeb zIw8;GLD0PS18(_rs}^!0-zaf2gdroGzB^W*5!=0hhg!gI%vz+`#u1$%5yi!+=X)}O zMn%e2y9$hmdLN>dNt^X>c+I+T4eovd0Q|Pb8J(UFyd<6PW(OBtrF-K@FCjF-6XB> zV0!o@X%lJq-JuFoM5CUXZCNWx)$f!pOU0!4Wd9tt??jpNA)f&ZYjA&5zNw!dk*!tO^od%@dKY;G^+4R;@|*Qp zl9U%ILL@!HU_Ydvi&T~c4S3@?D#5G-8AzPPtti^!5@8+yK056An@jmxB#mV;1(8$b zwB>EbvYHYZS6S}v{5?kG>Xoi66+E7U!PNz=ik1Rm6XaAi89)x^+qJK^R+mqPaL$SH zkg*S2wS9`K%)DEiE z$NZiY7b^WMdh@LF4||A-p>5`*{t`sZwK?78uvul5P@_K)8>B*gbQ+qv=ZxUHRu%%yF5-fLU zNr2vus9FV4W+!_kAu<%yN$7nVY-t)r_YR0S+QC z(|831ctE`W-(nCj(}<7GI$n$2+?w5d4Y+u>TataOs+!U>F$tlMzR4j4@5(bnZOgwt zZmYd(HV6O%b6K9MXy`eKGmXfn+u#x_0(;cUTfZKdzHdRsT+j$W5I) zLxY%eZ&liJ0aZ_%i$i{i@r^ zio)x>w=sM&w$^otu7g(mwtZhcPWJOwHxSo4$e!1Cg;&<4VIio0B2`9s1AUz3Jbw;N zf30oL(6iy6&C+ncS#kk6^Ru~=)Wy;h8uHn>{6+s8Pd7-Qv>&&wp zX6w>|Y)x#WCS6)tz6bex&97Z?OES?2)c4p43+ssZ&9Y<4c-aTW@;J#9YFuL?wc4_0 zwk50;&gGr`)4%`2a7?K(MB`%sy^MibPYd~fXY6;tlnFM%E`f>nq7vG=OemkF0*#9g zzD|kp1jMAap9<0NuoY?QiLa>*GRX@P%R};izas^c6LaCy+Oi)p@z46ANr|CZ_JADr z?kniRtEk?6EU;(g9M9-d(R{;srfFh4*OFBkk>G2=BL3=LLnfCG^1YU{mKcYQ=c5%3 z;J^Gdumk3-QD{=(Nw6>&E| zrZK_~0Est}_(LtqXW&F9m`j?I)%3l0Z)l_dWWS{83`EmjtYtLXp)8a2~D8zdk9DYed0<#i1+s|j%$AGU58%VkakCz#W# z=cX95Rp(g#O922Tf$O~%OSRVbqzL}`NKmEiWu+V#pE)QgX#_Qh+gvokpaNCfzTD?4ZD8bOew7_TwWS;dCf{1feEO_benAId!Hp zY9%Y-^AH2O17-!1F+jlO3A3d3ZTY{c-tVl!@`E>N02B^86t>^%(LEhMe_=3}4FTYDyDh$M6 z=KK|1SG3^G{^enFA$_E2*8le0U@5yDhBZs)yU`TRRVC+czb&b`iFwdgizfk~kiLy8 zx&(ainjVB9v9^h=#Vmk zB`Q^jL9&r99a9QC$_bkek=Y~55U{?nl*x4f3`(~sZiC)LGQ%)93rdd=7$x`TnjP*^ zT{=efcOikvVm~n@y^fi(1jTsddV;oJNYxO<;2Wz=>tuUboS(EZ)qb+he?9Bf`?GGSl(@Gzdp$Npm^Gvf3wuKrN!J- zhLZZL#{c6T4KL!HO_>#znx?CRUkT$%nXHv}DR}HL8oh1ag=X?+g@f0R2U6Gho!)(e zVq!=<|2ya~49(==(Uo?;7L%@Dvi&LFh3%TbY1O?FV@D320}Xk&q5o#g3bPaKfp5no zl4W;(&ESp3&>QR)0>=-Ew?qyAehvM;rh(I+yepd2-PGTIPac0L0lg`lh6#4Mv~Qpk znsa90UvkQ}56Z|P15+FbC&PbPKzbn^2vbqj0fWy3z1umZtT5j^R#?>s9(VkDgJ7v{ z6ujc>08UbJtV0o5+aJ#^&5~_FO4#*1xQxzM-IKAcWQtzm-_8~pfT6+4i5U)HNpfNN$C(gG-q*N zJ1*XjMJqK!lnlefuKP&1{&jFq=>(P$61UMQTx>T)Og&*5;Hlw*r3oZ7X>f?hhuS9| z*bt0pfMtklg3u?T`8+Ot-wjLG6J*sxR7DbGvD=W(9kA2s`5j#80D70A_8|{6nZf^% ztMmvoFsUYIqkLc=174cc8MW-Udl~6`5-|YglT|v8(MK*cP^OMX@+DU|j&$v9Tj%UO z5y(tN)%;`(krKjpbwdvoq#=#%reTOU1mYm^Vw)$am8DLcNg1$*elK!S=*HTQ&rRa9 zn6DCJs11*3ycA}8UQFAo3^REz1O#6pGXC`ZKhPon z4O>eizyS_O>hUEijOr*0E6gd*!3>bzC)K5J>Wd`G7I8=;3hxg$%Ro;%OmJRT7!t8DnUd6wcQ_%<7O znnTMOxK}-tjA3k&xI6pqP4Ym=@TIRM49`we8PmPbkHlhCCPMlfTlJ{jgd7cS|m2 z^as7KebIA)QRV!QCiV5{1HZ&E^pTvNH=4k}@nfs5k8LO!b%M}ZO@23a^MjMg*UqG| zP87L#G(c1Q&II-+2avMuH0?t$0P@Lg!*;A;dOAV(EG#Tr(TqUPfdsZiMUCM4 zjuYj1j|*|X*O$9Q1xBc&6FkOZaCxS6f&UM(&N8U2@ZI*s9f}8s;93&gi%X%nd+;K~ zr3H$+I}|8htT@FzxVsm3N^vhe`+x78b7t=Sz-K0Vl6ODvv)1~p!}cgLgoLTcn}6rD za@eK8e6k{xGa%|!Cz$;cDiNxFo4%QhSUtU$mg%tMc0vi+SHG9Q~d#K#C&9GRnU;8O<$JK~E- z(gm_EZ`Cl`50tSZwVB@QZ&0GFF`SN}D_MtR=KO4}4&rYvhKPRc4DQHTtzD5pqK~d^ z{Q=TekzJb83fyq=4gS2(?%apHVSfxMkj0~Tu59@=qBLmx$|<9+fJ0MmFe-!sXDml9 zfg?Fpk!6GhK7^hOVG6V?IMS#@Zl9S&UsqYY^@+j1z>q^y<)&-zZoa0ZA0fm>{!?gQ zgllTNKK2-lX#h}|vf>b>QE^R}@n><_Q+iJfxnby740?1usAQh}b7~ z@iULUzQ5YZIji5BiQZ!eo-^R3>D7$eKe4`|qa&oxjr589SaoU<+YW%L)D`?7j}Da( zqMglUUPnk*_j`>(?E#lzLnGG?NzB_kM`kj zj}|P1$tn^Yn*i&0d5yu;!&T=I9Q%!qUKl4tI`Ut~Gm3NNKboP6{hjzSn3b%YW$4S8(45dC5{HfO)NQf7*pD>uCmycoi46@G`8}l8p0G zyi#1~)4C+W&Z3iN+RULEP&gzrcp|U)eNDnY%22^YNXA!@@G$rfwh^k*%nJ)KKDI_= zVH139E*5}mf=aQuXLz=W%#m*nt))$oeN_&R5O&*ykE*t^P-A zw{lG8@whuHz(QWE39aG;Q%&t_+!_$P5`6fwte5DWynA zFX`N(RXx_T!qzKNnH!<9F{xIhjR>XyvzeY`$!0V>C1M)r%KH=Wf2)b=9TZ+ek~V=> zoR@~-Ay{;rDH9MlN#2wStjut#WG^?D*s!*3X-w-WXchCrB zsG|o^9_#%2kuyp@;GPI7CEhR`Oq6_hCGkilagY8gWxl>hFA=t^V@6WA^QTfmQ{!KF z#(u2sVH$_z02w#0?`%Rva9tPA?T|5~CKK=nC2!)aH7KdFpSwVKRN+RyMjyTF$aTOQ z83;Mz6xwd!5+uznb8Wbqgc3*a+rN}VLxUs3haKKmV)ZodS<<6~GF%Q1h*H#iGSGr# z8gJg;6QlVu01Y-wmI{?>0fTi|y9KgWZ%R|*k(IsCtFyhPpDR(@fbDl4Kh_Z+V4Cq~ zocW-WKbP0Hn0~v}vLg;ubn5j5H(N-=oBsI{T%P8-`&B8yibXCh@ROzc{pFZ7<(GRx z>d7_O9(~Fl9bF$&H2YdgfKHK6`BxG*>K$njJ8c8=zud!s$+L!@C_~-RMzK4Am(ro=-vQE-jK0)D<&Ut>&i z6Osjk8f)h5gztzJI41ANQh(Ksp)QXk<>d$Hmt3-VV2Ytk;_EuSF!r#%_<6c$xZF)g3DkI(ueD)0!;B)w&v z8WNsS{;K8&B+BrS&H-CGB*%_R-e=1Sk5jib1OH-m2ZoA8#ka{do)pVC_*g{9aE^00}E>;D3`1_6q##9!BS%&CjBKbA>Sc} zOv9EkcZiz_ynaZ@Yd&ZQ}z@G&I&qv;*G=>k2wNATL8;c`@^0-CO*E83HS0diJv$@>Gea# zvQ$tTt(!AF8uSg(H`1tY-=3mQ!6_PE6aHE=>{tyoZ-eE(XRbGL@&-Kpe0TqM z@}rs~o0Ode31+NaWmEB5!eq$(ujp0h%}XxI_J*%GjnDg+{=Qxw5}jQy#GM^26svEl zq^;x;E=70}R#W5JC$Nb!SO^J8A(jWqTwlgmA*X?$9CI>VPvY`Nm!a}qE)&a00GX5dboZn%)MJcX)91XSd^*xZm z_G4|PBRC!9m3xksib~Bb>%%IO%UyFWK$Pr3_~E+pkm703pH_)JsuM!o8^)b#z)cww zacY*9t8Rsg4_44=)xuJ(Xk{};!z0gFs--7t9A}1EB@o7gewt|<%6~S+B7|5CV5Ve^ zsFlC5uD9y!Xr|B&TQ$SElSEgof1Ab^S0Rc1W2U~2uJJTt%@esXJH`s896ICxB+v)2 ziOA~JtzsfGJo%S}fsaKNnQ;XQM-ji;AA}#k;rm0*-@%x>-ed$nYB1}t{H^4OA-MO; zKa(O6O^f##HGJbD1w@CHhCcb;O$$v${3Z1&IM?Eb+LxvIqs$zOOFQ|Icp5K7-I^eM zy8zx-<_ke(wr{v%8i89@N2!Bxbo+p-C3$q>``bCKxJ8}VeSajAPt?6+)HdT&b4YIi z8LYlp2th1qhfr(=6OyCq>xtcD#3U)z8xjo)vVk?PLnhS{hw_ss#J_~CO%N$cC9I7< z`!9q`|2e>o-MSdleg?uZDT(7w#;825LxqvMOjHXE)%}4dPcEJXRAMjk8FXkZ`aGi} zEWC?grL>xB{bA#1DDPY_5FfnhR;C9v)C6QASM!L5`Tyg|Ci~F0b%ORE68mYG`)(FA zLB9zxQ~n_jRQuLQu9H$`;+IrGO_T% zFkc)A=hBq^a=89*eCeiq#_PZ6qy8*o`C~|-GT4&(a@z1I|B_4z23+Grj2JZ2{Q5S8 zHUs{=XDwVz)sp-?CY(^_nTy$PXct3XgmH(+aP-u*>DoFe>w{NTio=SNF-K|=PVc|< z$2Z*;_9o!vK&T$Vw1;M^gR1Dz7;hc`2)c}-ADz-kw3?1-%sh@&DSwK^k1|TY*{nWo z6i}cuLSha6qs)ZaT9+ZcyeQzcGvbX#Ir6&AW-^M)`ic_ACzJ0l&|Rn;|KYqveH>on z3Z>#-&>fEi9RQs&1y&|zw{rM|!FBPL3FlP@x2DYh;~nto?DECt0K<4Y3{KbPUMBui zqBO@q75`=EpY4}~ZPV_$&WK^?GKQqHWF8bWKc{lcJw^(kx;cXqkF+8dWu08o`CZcI_+ zZa{!ICiuX!&f3h)`4#oP8J{UULC{UAeNCmV6$g>? zv$)t&&7b(^ zxAlm$U*y=x)b&Y(csp`4Fk-6U=gR@ ze)>K|v0Vs1!3aHqNOUwo7A1Qyj(O$x+#P5+ z-ux}Na#|CKxau%oGApqKvyYu)1D@)0tfq*57`BW0>^M0qpx_>!va=-ZnqzJ1BX%9m zVhYt%=dupyQ)}N|lWCq;W)v;y#S^H+f1mfIlX41gAB;||9@b0T<+unr>U&IBd$9i84%5a zXJvusBwnbbdk&nt_}y%{b;#}IGe&r1M+}xXW0lR7k9wA;b$tE&1WtBF1&Zh8zEx`9;sI+paS5!_iKFK@jX>+?iQ0;GKrfHbkVJB9&;(@)FX`s0 z$dk*uFUiD|AlRIg*5^E{GFRFp!W<1%baMLq9GRbdF>g!{&@IJB2P&(pW%~Z^9Nvi! zDi4i~2+TXmTkF?mP3^e{1rbnf>oy2 zZcK?}Y(z(9FC&63oWfwM;bJpMX{40yE25z#vwxA!bR zvmYpB8y*++VxS$khU68~&qb&mJa}~NKYM60178E(>uq}9B29muBgEB_)j?wu3|wV0 zGw`zr-L77Z7+_{b3_A|Xm}}y)eT{NCf5y$G0V+4>@TJArd|%mC%EZWEkI!x{_$mDGwp9qtA};qR2UPRixE$41K?(`nCB+P4iQPQN)l^Bc2zh zuFLU-y06P89zrVi=_t%^?qbHt*^C*FuhTK z)u03iQqPH3^ratof+zK&+%*wqRD6c`iSw4UqJG;nZQcLfaCW@r_>>cGmK;tePB=Xs?tspdkpb6T^2>x@8KDgW*p|FWn`47NufCoS2GcnE6d}EF z_yQYy!qhQ;#WRE6J_C}8ENP9Gd@a9uanpD9d!YG*mHKP-mV+r)oY+0FY3>t2Yl%kX zhoN4ZFziaGC9UQp#iN(IW7x%!ON_$gX8ybj!L}Auf&J7{`bYCz=U1{J2AF7Y^OPGo zMXY^hg}ylj-n}CHa0OFs!6*u<$*P3S$ihoht{>=NO_yUoBJ-0KNk2C8{`3%&=p`*Y z4vi^B-?Wy1Bke}h27S6CGL@|Cu8bk^l9X1G$hwDLqB_%pE)yexP&-2=h7?hZl+!u7 z&)cr+=3njIw{^!{{aF^lE(h^3{ev-|gLc)XU^wO505hF54tBJ6X_mvwbw7qe;FKwD z6Oph9vN4$nTJ8D|rUD9>Nrq=mWvgfV;ReWx0mx^~Co7E=H3wq{LqF#F)V?BEIHI~b z9O+p=wpXK{oa+y=-7nYNEb0_CcTN+&$S|lGb(=l5C8QswxKkDHNV`hwin?$Yj$ghO zt$u`%IQDgvjov@>G=awf^?CBQej28viGYUH^1gJ57Z|LPifQaP%Tv3ER6);4=DWeRZ>UEg`ji3Nabk$o$T)#Ojw%d zHTD#F7hy?BBM+yUJ=uf#5iyIAEaSo~JUc?Kv+?P1A(!VOug}N24|JHQs=8Ui{HU5C z?zkHpf)Tw?u^1}`$nX&R`$61QVP4*^+yr){QWLoD5e(Ux@~5^MC1klo1hcdLM zJdHT-v;Ns z)zr5p4!ov^K*01rK9k6Cp!#aEfz;?Z*7CbiC>nr&5blg=GC%O8y4-7uB+5!QL%MNU!I7jt^gGnSw;_`;9(4 zudczzR-7T|N#eLe78FUmS}%NnguRt&a?3|{c|POtLZ3k>sKJ{mOxKky>@{X=)GR?x zB8*}G#4rlZkRdK-pq(_vwW|v{-?L}1mWe>=1HNFt78PPDQ{LM#SSNO)AGuAMO`LT5 zc89jS5`m1c@#&E^ZmO-&+&@y^Yte8S)6fq-k)O2PinvJ*tny089)rgTXth|r_BQX6kVc^ zDE5ah+KIu}N=VT1y8L>G4U;@&cxRUmqx%_WnB*1z3N(I&!HNb*L!Z2mIiq? zZC@PXWaQ=yy1lGHbCUjw3xgMSRx`y#WL}D)9=F z*rY-E3x`K0ro#2}sSoK_+S#$&*<{gNo@@-#b{Yy}d4+_e2IMuv}}*oXGe(C)*? zEahD-vP8qo=XNEiw@cQm&*k$Twf^HYt~u5M7Bzfm62*G#X-X=!+ZY; z!nYWR`$t;KBXujfLL|{1LR&qKPRmfLM17}PN%mamR7pRg_k40$l$Q)t} zEE|>T91r;DMAI9)6%D*@=?Ofxwbke$r(?2%Q~SPANrQv613Ku1smoeNLl7&NqrUhE zHKlypj!=mdd1T_wyG#nWrH*TM|GHuNerAUc%~OE)s82(T)$?~)Cj40d{8DiDJ@Dr? zJ9m*(;b_Or3MAB%?QvsulV4CN{WEqXMdvQN48+*Ly-G_ZGEFerxC0PHngW zF?;JZyT%HcDjT~tf}^c|v!MTV zk2#>n=gTXMA?)hZ3ci5s0N=O1X2Qq$ol&>d4J8=t(P>|zJr&Mz)H~)x5?V zkexv&CE4LM<`a|2=srv?yCe`)^94i~HZA)IA$RDXEi){2YT6w7Q61u5^cDNQhyjHr zopEPp8<`>dy-XkgZbt=g zcWoTR>&aSDAExxNrwr>89r?hENzwB^fxzIiNs735C>p)M^vQ=FOXt^BEs*9+^*-G6 zp>=O;m*ROkH-zZ``SHQ~^$6q+bUUO;|1QFwR~XS)2toXf*)-=u_!#%EFI%>}G_wY{ zh+=W%fM9c^*qK5NQaqDW_hkX7ZNf?Vc$k49+a!<|_ffZ)zAuZ3Djxifi(mIgA1RI@ zPzmQm+2Mlz{f}S#<&(U*|2_K%%}bQ&N5ANgRaEd?tTr{R7R==ZBg>V#M1#ao276%w z71ksP_<84#n-leyYa3DOu9!$$wDxMbO`D%szpGogyNNCIeZJ4dtz#*HZ6Lg>fzg~E zOSW7|i1TX6aSlhlmTyfHF$#wRMBTVBIZ(K>-12#B==;X7Qm+;lyb>J)@IRN1apy9f+#U2p3kph&6ZYU zS{GbTyBee?5`!?2Fxl&BN7ABIe$LH68;t@UO4^W1K%1Tv+=bpCPv3j-JJu*Q>n)Zdbu$&_D}*P z@&49FaQ3HLp2z2LXL-4K4|Qy{xwW+P@Pd4K4jQEvGNnVV z_{6Cqg;n7kRp3zzdgiRg7)9gir@0?0&06XdpPo(Hl6Ro!y1%9-=uR-U#y9}YDYe1narjLlKOUt)p zaJd_}|ZAM>0=SWV2z%5$YFw#QwM^QW)knj z^Dhz-NxTr-S3YnXK=TB?_uT6c^x2nWbv!;P#vC7Z`j~#6jOf~UV?p+>M~?~eFE*m< z@ULCoI!j2mGfN7>ml3`wOF2|#6pnJC=W5#EwAxBM+@5fudMGOjW#38jh-!u9FI&5u zQvmitIPXeVKnRUF{_eri_X?#RU6v|(vwdXklmPBOaB%679jTV(lL+k~PcJ%W_p_<_ z_e@>+!zkF-Q2g>o3k!75+~&7U^OR;V$siK;gCX~(qg>YkDLDUl}`oozH`8ViSG zq3ntG$i972;L^cAHx1jXhG@i*tWO|2;>e)}2KvdQ(7!)J^!7ypmZDb`r-;)-y|&m8TNvxVCrhFh<$zgAhbFJxqX$-|oY{n`Txj*52k z;uor%IHslGzs_T^J;dr7wDCjm68r)quH8h01Ly8wg`s%0?&!RY;Jisrcvu&`i#lz- z8!h>!C_=PtqjAQC)B}w)fpH>!;ygC$%DMA1DqGfQ&A}-@k@ha#Xi6NmCfm$NQld^$ zOyvyrZt6+xN>Z@LPfA}C!w_Q|0hrg0^{IHhHu_ZBz+_FQzZme5BPHKPu@WklxHEi( zCTJxErDy`vwSd{i!|xhViMT$I~Ot&Qt!;MZtd z?cE61X=fc0z&z=W<5_jSKTU6*bs@9hS;u0KGfq#5IaMLJdWwv3H)3JGndm)n=~l&Z zSmXdZ86eI2#L0?cdH?wjsaDh>@xWu^t~~pR%%%*!=Ul4d52{pKB!E zxwuCGSeta*5&?&zj0MT)+;l1;cuz}YSm@m*6}+?~ zqKOX3NgRgw!Z{6U+)$?_I48W%YN$NFFz3c>bOSB1FwJ$g-6i*-I;&o@nc+3nzIRxk zO1||<44REY5;x_72qR{A`&DNV+60AX242pV_$Zq%7%%Ow5@9NGNk^KXikaG{V;eyc zqflV^14EoSY7ReJZad8Ei2k*V2H5PRs-N%;)|=E9J;_Z?mSQ~Smy>vsO;baC>k&+W ztCqd=0fd-ZMo>8TfmUR=J|kK=T2_3V_r1geO2rSKArgY*M;(HleIL5@lZ|&UEnVlW zyMIwnAD{pFla1cv4L~CwKFU1H{!tCyV1g(S^dHz3F;0*ToMZ+JzN=V=H1`$OfhRWW zr_Iphq#Qxmjd>E+1b+GHAWRQ4!MWHiH9R?~4iL^w4>ftWw=FthzPWN(*j^Yv6?qRY z4H_DRn6lfwhGzEC<83E1Q!r8n`mF`W65i(;yuu#p7-W$P%S#f6@#3YGbFwJ5t3=b( z=%5iJqUFn)Mko5QH>z7OQ_d>9?4G?}pNx*n`$KQpvhDZ_x9l(`#M%1SOAM}YBmxF` zXc=PNsQq&JeZ5XzUzT6%>EGgOIARRdFwienCL>?EQE8J$lBMM-%ED5rL~`LQ0(Fau z*j+P6oToYu#L&5sXB;K_{efc5-H2-o=v<_^DdCFEpUqERd?VD)EIdN??9mBU{Iq4F zNEp^6rkM&H!*7p=-H9?W&*ww`HVZi;{QYHJi@_9_ze>2iSRhXD-L8jyrLgYn07t5j zNOpA?H^J}joujWTUp^s;|TVLX$u=QvP^SouD=JnONnM?u71yb{Q+C;5sJ0 zh{*?Z&m^EXC2`*6XD^=s=I2rh&NzA7(^5F_6}8a(ZLphJpZ{h&ph}SVF$o(q>M>M* zm|#&LB#o-0U8|Wuf5rPi{4i885nd~d7gkPr$X1{D0T}ODjmzs2jI%m*A*tVS^q$$>i#}8Bm85)j zadMQx)cagSmELCWy!%YLWK>HcYvnV<&IfD!fo{(R6c&9T?rc97Qp)v>wnx%FbP?^& zXhP9^aZ*Nk+A{#af_=)~1he@V%BXVO+s87CW16C%mXM@y3G4Y3?^xV4*!X6m2P6Q@6O8BYLq?Z%Ce}=jaQY} zwB{xr3d#WE#lkXI7mH$w?warwI|(Crc}p$v=uF){ui-?NtRg zDnnW>NJOz%n_>BA|L+6LC4fpJ)AU5fb+=$P*)q;jJ{DFBC49uBa&;71T5cv5_%sQF zuZK;og=Dyfu=W*Grc35BaGwTD#+y$qMvWrb)c)?}2bC`=D$CU!X%fx5=I&vMx|;Mk zH=yvii8;%*ZpB`A(;S6Lte|Z?zY;whL|$=etj3h*I_rKcrzFxkOwdgX6-}lNul^Fr z9(=%!PyN=`iQFw;pYcuH`(en`w*U2AG6>HtHAVAiRdI|!f2Zs6h2l%sf7U9&|GQQR z%tYrL$qVPAkSn<8YAh>&}ys$iH+*7l-FKSvk^TqhhU*P6S5~@RwZA}HuG_{zf z>q!X=slzTxb7i8%Yx~gDeSIiMy;>bTH$g^5O#f;m3y!OkJop3$R;8q8CUxdsX4KG9%upGNOlKo{=>ELkN8|Vo zo7>H$^}^;U!+54aKWuqnZnEF$#2=Z5sf}|ixy*Dh%`+)3G@vpfu=KG>=eV#sSz-Ig z(XT^zLIV9gH!jG}wPg8)!lsG&WBk&QJdSx#(~Cy=2BIrCx>~ zYK2Oab)%=98Cvjx3e*0YrE*wO(jynltt|v79OjinVLh<7Rs9is#Gy-m)>!`SF6hLQ z@3(6IVxq21LI_X81Ox-}zJScDjq5?WtGvAl@50D{XMGBv;`cRsWSrpFuk92?3#((W z)csETU6{CKLCc|vvv+Sx*!|Nt3x=iOEi-{IBx4W;l=i1QH_5Ti=G}|Qm^Z4GWZqPbmjM?Z0Kdk*-7+sXOw)OA6>14At_kyxyp`DSrv z+@`Rq&D%|Fqu*lj^*{KyB?LnYb-M;$>P2db&BYcLNa?!7Nm~uXW-6|yv_Z8co=BZ7 zH&hdz-z2|P6Y}J%3oUp%MV{oSy0u%}CJAn+M6ONmHDOJ6PWw}%o!q|l5+=l8WUrmM zW)&9$S_KWi2G7QK_9Z-pW?+RFyIbw@JA;+M^r*N>`*1F8>{A`Z#ehLb4r=B>ffX~x z#dO%5A}l)}UwPsNAWC_ph(D20*kdJXCSpiyqt;alSC;7mRrfT#gioBxkDvAgG386< zDb39g%_q!JexHYHsX2#Vv3?M7&@*f!Iao898_?h8Ig zLwk*hLq||j7D*L&$Rc_rossGO>j|L^)E%JQL&u4(_W$J0B#m_udCxf`2;jJ8BlHnXZUDyBrDU=)- zTCmX<7xTzbx55}2CEZip^E-j!XF|p+o_7P>A`&qN7I$W!wSt0U+iEM!u{=%gDGlE^ z!uLlh&X@OMmp_2U*Lo+p5jt#~5;iEujmxpB_oWW3s_J=6Kz$Lb?BmwZorHh3(hr&x8$?GwTr+W-V zAW|@*{50Ww`qB&$hhdqjhsz34TQ|-+f6OopS9GLJZ&AmvU zCjnNx#)>p-l{o}G0LEXN`~4N&QhVqY3RdphrXj88Y{u`w!mUb7*ANIi2G zs%+sx|A_XV8_0FIoW%(;)ks&U;$8CFP?>@M(fO{e_U9+Qm<7tiF;q(zC%A*mr%Z%a z4Wvs>l>162dR&ubcGspbPpmU+Q}`&xh<2{U+;Sw@A6n6rTkniTNjD5~YQfjIEFrei z?6NK71GwscXh7-OHc227rw`Q8R1Dt(78-w@6B(t<$~;bOeGdF=vFKbO&cggbL7rT^XwrI?(eC^{eKiwa#Yxop^774+n^jweaJKI?61fOR zvxqzO@7X&D{%HU^?<-Sh8PtJb>bB-<)2zWoye%}jli^0dN%0lrkh62eTkt>XLF32-|q zP|4Kb&^yum2OtdFfUrMCQ0#C1%@C*bvk+Qp*@2ZihB z{La#N;gWF|)(N{nUS5G(BD|bq7c-LA%)*b(GkZDUFKN@(P~)5P^;o3)t$p45tpRgi zuivz|rjLl9Cms6IR&MlkwIj6WeOO9|W#2n;U2Dr(>h7DXtfTsR{Xxq<5(_5LB^;3M zbB4Z3TjbB&i*Dgc>J|(cVzGZvJQ|uZKDT~Cp)6lzKeJRUj#S{ShL3D_!TcP#l&JmU z&F|ch5&I&V2k<@LkMbqvl)bhI6=a56=(TE*@7lCe+r|aKlB6&)!4RX@Nxm7IA%fVr zG6pVH@koC~)U|SOq-BM#QyE?fJBYNQSgES!TilXS2GVhUw>GHrP}uEDxd}Txmk-;@ zI2o)THe~VnM2V7$qQLik*f-->O4J)JCpkxZ$fMZgChlEyqT-Z53}9|%|A?*7a=y1U)B<7x}bfW6mfBOEI@7KC%xBOwr~pqH3YlaOKF&`Q01y;Jxx zDPu-77B1RnX=@t@cmBoJ?a0WmFR(V8rZ@&oyXg6!sV6z`%o6iCSAejJBdI|U-%|*G zy8A1C8xIG%sOt_@|L*fEryEna7b!0IfRsujo(cS*1=bz!X zQ*6LLI8YS#A{82o={l6cV?Ky!a0**yTo2XmTG;pTQ+D0)RNdxER-Xt_Ziyr7pDPvI zH&{-|NK=-7OM)%36G#z+DE{{QAR~8LN2X9tET`UvEQ=eyDq}K$yCfihyLA;dnedT4 z;8#{Owi~~O%BM{FX+s=ty=(9e8SI}9cO~&7EQsAe9#wOKSYw*UNo>`5$$8wU}w9?Ef=P0=^T zP6GRzlsf6d0k9?5`Akzx;XU&{l(hGS5+p!@U3sg%d51z@CaZ@3*$hwcLqz zMw~fw-V|%?rVz}4CHl&;D(7@{AA=ax0Qr?ia~5j;83f; z{&<@6De#fhx)Ms3px#NK&!;%0%iL$CG+?70+RW!}Vom;h`N&s(o~X5>is)npS0o`Eo05v63NWog~7?pbm|4(_M&6UkkvzdVcx_Ke}kgL%GhB7 z)g0I?M53)%5_N1|{zA-%7k$yc?6;)Wp>FvZ)xcBtC_(q*TXkt_oy7wS4;&t6*P0P) zINLjZov*Qa7JRT+PBeQqxBg2n4;3!Vie;fuS#uSHg@vk~g#pg{#{qmJ>ec{UQ=Sr* zp53wN^g+Q`$lR-DK`y12)MI!=W4rDNJY+etB_R05v|FuQ-qi;)>4%~M#{)9O@um9X zE*kb{1z6Z?&sh51Y`GyadiK*+WqOV}wU?O12~ec^B0`dA>Q#|~a(4wuNON8f?PO*P zLi_nz-w~;Vg)yf{5ZRP&v81V_?i;br)<;IJTVAuFRoteGlJktL1>r0u4HC@cC0q;F zDvGAC$(<*|@I=GJU|zTKkn)+v->deYT?(slcV76B!Sn<&l-Dc$^D+AzYkzq2oMq+v zPd8y+RGp$tNGPJ!cHCy~(v>s)7Voy#%#h@IJCcqFad{3t7@WYd3;Sgs67)lF&VgRN_RGhABSw7fhUt&3%VL2X|F%TIw|K_hVV!rRyTr^6yNO=83YxJ zdT(t$8)@{c)H~moc*uY3qe1heRmK1&c=uB<3Io3pz zHf-r17eS%Mkts9ebjUf>UnA;_PF~>5a|5n=@C80mZVa{2upJNoRg~Q0ZcxOOS|uYj zj9J8e)dSG}cp`%kDA)uxPe#MlH#9W0^+8EH?y)~UI zlcuG>^y^?xSV}|8@V@UKC{6$NS2yOXLQwo|!Rj5N*J--?MIE+0pygymH4gFby|sbq z%EebkaU433DX^=`gt1~QFSu9!80k;T;=3>KN2+$d4jQ>Odu!C#)d?UJz=cvokX{DGnr;0?pWC8 zP2Aa;1zb~GqwGVylo4^fDa34@=@cB7y>EX$N^uMvagfqeQvR}jZFYB!HOHT6`Bu2U zo#3c3a;Q{Au0#j`4q&-h+>6Q~0%wrR=4bUVA_kZbC*<7+k~nkEMcd>~1v40z)jL3C z!NiCHjt!I~!z@+q$n}GS>Qnz|$^i3tYKib2pS9VG=sHf$mRujjHE~I6&@zPbus`~U zxzxU_XZouI%%;zi$lxl$(EKfzo5C?x!s6RqAmBv$FfT`>MW&`@)m{DpNoVoAf?789 z6Vb{wOC6}Dv+k7$g}_ews%c?oe~kRCJqWj9_&FoJN;jA8UaXJpdlY z@K=E8kEu1R004yeyti(HzO&s<3`$L7sAPFTJ~_U0c^t+Aop%O=Ga;Nokd2ZFG+2#6 z6ZI|3d-hXe!FldBb8Bi#g_gzcygL`*9FU0xslr&wQfPdbuyaWh!Bf?58ItNmzOpIp z;%-_pkp}?F#w<$J6+3M9rhN;t=gG`qE$3>ZaBL^^Clc3;Wi4iai~TlxBWmp!*r`Di z9cRsh8EJ~|{NIl5sx$*X^P0l4TMv#eBPtrC+1=QEmWAtrtNQe0%I<#e1d3_b)1s~~ zc~3h!(QMF8Ae7ec=Ze6P{ETb|j7SJYqGO4O8CxBo(0ZHL-%VK&)B~#X>iB0x@0W1{b1Kp`t;ok}f{GR+D*1%!$;D{vPF7RnyEvM|v~otj!^Xghh;oHe)! zg4ALIOyh z8N>B;F@J+=v>H#}guDIJ7Jf0hPA};3M4@-~95On|VN1~*N~Rl6H1_M9;j#TU76ViM zu7%6JBCB!W>5Thn#YWK8k5mvaax~+#7?bWV=#-$_14BGx`Gh~pkn+w)q{c2Pw@SFgFh(l zd3YvF1M;>u;{~3|I(l}IS5p9DqI%wLbP&U4|sheeBsEZna3OD#*tX?Oh6tG ziDI$R7>mF!pu{St3|*Wg`)Tgd{1pes94Z{aZhTNv?es?Di^?E#R~4N3yUzBGsd(=P zL+bYczPw|C)cGNN(`|Xns}@P1I8IU^QlQO+^8TB;^uMeJ$&B4FG9z)>T-y-ZdTu8x z{c(#GVluh(J0bthf1C?*#Nhtyh=wf7B3&l>)vUlD#3$-EMMPq82N^iG?=sjJL)QKU zZdO`yx^&IYN8a8Jb6BQRm~mSvG6%Mhw(Knrz2Pay6Qz*d zldI&K>}kCeb>QB!NN#!cbu4s=<-IOo&`FK&9dRIY7%v+RsO3Uhz9A!M{#i~(K`}wJ zeZ^y6`@@AExT(gh9{`Jy2gjw){vxza?D3ScmhBD zxDi=sgsv!KPlf+o#4JoE+S#}r-f=ss|i60UOuito(BN$CmKL?rM=IITUBAqn z^ANdyv8Xd!jtn8g-b}jTnXS)vleA!@%LY3g=}Q>#*d%b#E@H`k;|xCZDy91{e3^F| z6K8L*r4ruIf}t!gf9}3d{a*YT#on6H2oUwv4EJ7OCzm%$ZCD?dFz`E*CeQy z&WSk*k>mjTlY2L*3mx~LAOR?QehfpQcx#(WfGO}CEna6NnZZGkM;ShGBk5M$1~+5;1`lq55eTBwiwChD761BvVK zkA0-$_$VC%_h#mv+=&>3AUP-+WFRos^wDS~$xckMJej4&6QTzfmYurKbxQ1-7UZG&yK|@+pcgp zRO5F(d=bmC{u9;ivae0kULA&?O_NMkyyM~k)I){)3>F!2y=#*}d&LM{GE1()?86$}A$%R(K)MafP=F-aMuml__b4rqHYl3X3i_QGYdchMfG!Jm*1wxDH5xgBbXq*}F#da*L=( zl`E-_dYmuE)_zPvPSO}?w{2~+tE|2+o6ABKWjDPv$HX9o37$^i!=;J}HD%Z-g3Z6h z#?haHcn^Od3Bh$Z^ze#iuJ_2&_Iqez3M!H1UNch<}P49~xR(q2*Y`&&6#4E>aO zI{W^Ty#JQjSZ6w0o05+U3T3d(j~hfa*Bp_1pQQ|A0T+G@J%=<13Jv+(fHlA0QP#M> z96N~{RD}mTJ?j((-2p-*4N0cd9hn_Ln8N*E8@}(-_|tz$nzp2orbjdQB*h{CpWfy4 z=+EY}C&Q_b?HO73WF*n$AW}o>=ARFKnQhOBtx?NeqG3n`HE*}qX3Pa=fxhb*xi&F6 z6~=&?N70~7UdXoFSXv{>=zzNko_*|;b{B@+jyrB#FCX~@Lcfxvb;rHy_!Zf46fYmR z{vwm{cYww2dI3f>0-P0^D5%EBuQA2OcjkG#p=ownJFHB9sHwOa3ahNmqxe*jjek3F z%YG!K?;pJ$h>QP|UaZDq=(-lS#N?IDm@u%h2qL{_)wAN79~n=S2+WR$2{ZXuDkGBblJ= znA%o3Y$SriI=ee6zd712A5*=7uy3Uk7V!AWs%>%*znE2N4Xun zvUby8z*b-5qft}3;1#2BzeCOuqvE4ET{Qc0{A&D9xmiCWF=;Jx$rqtyZ(byfLuFfA zy6Bb`2m?Pjk_#cLF87uA^Fi>5lv9b;zJbrXf^dI#GsDdi_3xuskAqh2c4RG_E%4d3 z_f$+Prq@=1VaO;uEM13rfB9pT19VUR=G`;yTN@(N{oOISV-mQG5owxbH1HjW3=@~# zEw<13Day&H2+GWy)hPGAMXP(GK3V^1_)}t*@#iMw1m6T@epV|31-b@2OH$&!1Z~w0 zWoV^bov%%HdhV*W^c6aweEekLi?*fKpg*OYDD=nG;k7f#oVXH5R{5iDwu^a^#?JHt zT|_kuh8ikn09WrW&EmLfQA**=Sgrm>##i`1=sHjg=sVT>aQTiMO9#nA)ix+2H7mvz_kI3Zn z;i}}Y?A!cFJ-Tlq{a4%#@zEMYEO*@SNwST-$6)oi-hmW$1(OQ#&IE`Apy(AN-AU|S z&Zlr<{aAS+fN|v&@9VDY(M3i?XeW2jYyzR9UY1Wap2zP>pUGR zxr+8`?stp_F?rR&fPp8KoqyO^((oG(4D_mu@egdpa(&e|54_tOnjU67dQ8K9g)Xf- zNe}a5pXaSqW46*6*Ay`tE=FRWO<}P;2&>2>H1PfKBq_~j>pmYTQj#=AHQ1gNTmFRsM@n#aHU8>|G_R%qi{*?-FZx4}Ti2s%GAb~)E7C#T18y>9zL;t_m) z*&<@2sP2Kf*Wmt3Q?M*>pTPpQG3E_?fF)gVHGBS7womxQ8XKcG36BAgu$LNpf3Ccq z=<+9imiazOeH(v?Y05%Z>a;6Gr?D}9@Y(zB`9heDpMrjn5u=-IEt2sK&p>zRi=#N_ z&!?f0Wgc-ej!mVW@_>&tRrQWRuU(R;*Ks1xW|YyyaG06zEq22(xKO9+>(PzmXX`sg z+zguN63!wpgyA^^RkE1k?(i_D{IeF1WrU9lvCknXsVVN==@XCHsXlmIhFH#o;6{cV z*o4{ACY2%Wwk2NS=0q3=TnK|75G@M#TeA_~uVEwP>qo1fyEHb|fes!}_R-)rG>$SA zW4`>|AzgJJ?$#NJxW1TS;0YTd^0htjG2bgD;?ltRN>hcSx?jk5l6JDDopOni#4i+} zkzqBAJP_sK4~hQpCa%}M4#pDb-~b=oFW!HTulk27rl`9FjpIJ0@D~O>C+&C8h_qs0 zoc$@?)e$XD-kez4XhMbR#*RI~;zcaS(5pm$j>z1b%sdwIXD|dpz)Xy5jBuTOR<=q7 zCceypF>Jp6e7R-a%D1^D3@gInT>2HCQ}f97P}jI3V_UH!DTbyyJ1-(d<5 zMT|EAO@PMNaCsvI*t)7_1jTCp(Og88`8nEj(~Aa&y7o}IKSjD*n7GtcNXEl*~zeurH*2D}g@Z`?f%COJ1H3y{zu&NxmVGnxScdvNY5Vf-5F?+0;eFD`c&lN z^hxmD={3)XhAEj>D6h|2$9SGvPk)Pi*G+mpvF~>GCJKLqPt+-^w};!%O$=;<3d>|* z=%$_nV~Kx#3!2A2C^fJf(ENf`Io+L}x|^LglGVSRo5o78X62Dc06hHpg#?~YpLIx0 zy{xvaq?6IO@>Z=ZRH6E;v0z2z_yY5~?~D+R&hxkMT;ZQ@e`5WwtH#gQA(9U~h{0#e zWIN&;-q%l>?ir+4xvKiSbT7px}l1BqoN&X#G|*V>gQ!Gn|i-t#B8i^2x%amlrg{ADfeai#wpM^KhOGcT+|) zwqnL4P)5ssQGH;l_vc~^@ZR4RIC_^!6EA>Acf#Q~oSx~}Gf_gCENSj9Idc*#!hxR@Q=|5b6vZa@}0c=nIg0+^=Hu z6{qhh@n{XY_*dgGGK>~Z0>hg<1SA@Jh~oKKp)blV`H**r7+yOM1*v1(U+8^%RNTzS z^-i|2FkJjD3x(#f_>`t=j_bbHg|%@-cJn|k1HqC{H0Rp!)~^8ulql5;nANF)wBn)o z0$E6k!(4BdPzctM_^C%nH+pK^1$1Z=?TF@MRlBvr+|Hd@{6is*e5|F@33XMQ2G~8{ zCU2&y)+TdwpT@%h!n%`w-ANj_-8`cinFjJpH7-<8l4rTGI%NqP_yb7LXp?pP^cAwK z?!F3k-E8lCaQg?2fYE9dTN1kH!iB7Iq=@-tt2mhtgK~}V9Fum3!Xjdh+N}g7)9dPQ znk`?FEe#JbrRwyd!@`-XjCsArh;fE%g0ic!td|_N?#C(PHwN(qaun8oeot;hi9~x| zM7FAM!TOzxIbP{8Bb8q5@Ab>TL1IQRp*GhBh8JUDCK;UAOE+Zicg@B~H>eVbyiQBT zX*zMtoBC)vUdpaYM>{%_dVBB1Yo`bbM=U&%GJ4QIeTukz;$rk*z$Rd9l)#j?C&HYk z2a1QK`I%+fEaogdG&%XPjBJq`7DzWD*t_fsGSt~+4;-F}1=5lIqC+ZVtr#V~q7-^l z#R@AE3n2Y`B9+LECE4?^Qr{jC*#JcayQ_l}>qg6aB-&Vy{>CVD#a*hi^?D>DYUgGc z6Nu_P@|5->6KOMs!}dg;w37UZz_V1-W&J?%Y z^LRh#hDr_7-{wbj$)Pl1n0huZC!zrBeeQ!&1iL}Jy1NrqirHo|=U-nC!BtRYWp*M$ z-TIYSBt?S~zjyZAIU*wg21v8!Oa%$x%?ttl__JTqiqNgT&VHr;zeE2W(=Kn&&({(v zf&Z=Zux2)e1R25GCsiY6Vu~M}MwZ>kn*MB`l%EE4(4_3)g!!a6CXx4K(Iu94UHP{y zdzjJhk2;tTR_$rnMmP%Rm-Fn40#ef9heHB|K|#nd)v};jMUdOtWGkhPH{%UmgFB|l(R z@v$CSV^m0x1himnVVciU0f*?@CDhT<{HT_WgvInp;no4RuOc49Z?K*1vd9N@I?=JL zmwJewI0RTj-X^jUGDLDd517DFRM<)kGY7E3(0_-dmpF#E3eZTgGEhdbD(8TSSBYlk z2&|nOEbVI)Q8qzWzpeQBa9L9mCb{}DCge%g6{sl(JP3z^nIAOp+_`hYrkjCnrP$9hediDSd4UU=l zApv0&Eg!|h%swIvi9(}9^-;N9l0zsGik<;qW$p|4`>?Kfek@*PX!Z7(;6^Sfe}(dl zh{R1H%Kk=akNYPf-4yAA0G5d=@>+JJh6{ER5v;BWqRN828LsB2S^9M%&lzfLzim}Z zCVa~cjL`&K+rnzJP~vo_M6V|jS64F(7qx`0mtMtcCJY2j`>cxkov9NB(d$s+k6%)) zgDqehLJIs^%ET3oi`E9dMEI7X(SAp23?c9)6z^fm8MJC5JT^|>IkALu%~k^k%)@{t zyqq^5@9LhtUE4s~wwg)j{RfHud-2m3SN7ptHNN|| zt?_zx_>Nf%*igxnl28?aZ|i+)?3d#dZ;A}esRE^XsTX&0^|7wL{fq%mCNJ`EmO-=| zF9_Cm@~Ow}%%m+Iig$l~Au)C{Pd0ngkd|v!K%`J@hBeeH>LcS`91+;CJ)USJ#9G>e zYO3?zgtFC`AlOlTTYh0$lz;$PN*I|-QPk!2kAc3}`YoTa@`}%(NH|e4A|%0JS+O#Y zB+UfQD7=qG{KbGExE7;lL%Q^PA6BriP#1`8uvI=d?r{plk?^Y|wBHS3QV>3q~ zh`E#(Qx*aG`@CC2gd3G#15@r4vR9Roh{NkJm8kM>?&-&9pnqj{YXns}F-X$VB6 z>Z#i5`db9DQm%+C(Ou}9>v!X)>YfoaTsJM>C^97w(#i)Y{tV=l2(Upqi=Hwd6Ct!Y#C#kX-flsSw= zjpZ91zE-Ao*D@dX|C36;?ksPgh2%sAxXd#Uq$5wi1RqeiJzBO?wClzjGO$DTJ@;-t zBPCDZi5r*U zOW$m5jdh#eI}2UlTMSip;t<*IU?MR)F$C^}Bz~)D{;6WP+)Sn=@f?T{pijLoV|}IX-^UNv1fbv^fHX+NKJ-y$5EC7vJPvY#QVa1 zytE*-8JY6l-bYKQ;_Wr_1B*rJ+g-{YR=SFUn^&##2XEWOEy{g6uxOu3iphO~-z=Q$ zb7_jRL`6Z@X-j(xxPmUfDZ4m{6+zB3CJGKg6Bh)HH(Zlr?XEOoe?Sr!L?Zoixp)ND zliwqhNPrQ`Me3@4H~9%GkmD(YEfF)K<&9B_c-_#urKxwCj}3b#ECJ47z&MoCoWX(T zjnGWBh@2!d$VO7wJA`7A48JmSYTfY|C3kJHx5*NvMU!_z9~kJN`1(N2M|qkRt_RuL z?gpajbIjoJLKb4P3U-vUF6GMtu;R4Y1Mu~%VS2vpJMaHk3i_@8x1|6d0c4E<$?hd~ z-xYrVtjt3ext4vXqjr+UZ>?9 zTPg8xNp(iFWNnn_D`^_XEB-oqNe`a@@X`(__ciBr8Zf1yv7dAVAFeDYsG|qVhY=Tf zC$gBu&MBN$Vtah@&^Inw@g=0TAh*zr?x%}Jb&u}L#QGeO6eHq$;X^`|lcj>ccpGf7 z9an(SR40aULUY=v9I=&N4bPSAT3ilq*5=(HN+&#+0gn|a+LEilIG#km4{64wv9Jdj z*sH16v3~QygQq?8yZU3j(!ZzSDh@#+retPjLc+cL7k5tw8WG{B?>O&kQZ93qC#!C@ zNtI8kl#}VVB(G_vA$EK0uWB+MBF;c&F4{RVEHM%MCqd_^$L(|h7Ru1w*1nyP*|*A7 zXwaj{UhPjWH9$xA$}QQCp#}TBv@H2D<41~-^PZG4)6Ou^Qd>H zn6e+Gg{H}EY%z3&{>{bv0~J|Je3LMOnAux4%5#fk|JQhL0 zH+JJmi)ESLfUJ2n{g?E_dFPew3*e)`O!(a60R7Z-XB^rH*YoTTo_-D_&=&Bhs~`I@ zH_vG}FX4dtiCcsAOS2}fc|%vzHeq0mkDHv|4C=$B)uq^+|4K!5KXR7aD}7)6(vIoa z{1h+!&aBe913?bUV%dXfsD5W=`M_*s&nr&nH$rVjr5zQz7MAPwBq|o>NwT4>c)xkw zYTxSCy41aP(?fH%Ff4trBXhPitQdGtl|0Ysc^HUBRq{sXv5#h%_mlRrtD>(9GlwaM zRj8AkK``1Wkn!lK!Ec{^wQ=4bKbOZM;`C-NBB(fLSFC0Z$dIt5*VvCCPLh&9=PZlE zFkQnxAhQc=^+)tE<8r54hB{M?yFPm+TxPM#Voh0972?H2QIW>c!+gA^S2<;)TI;{U z0)V?X6!}61RT2z|%1zRw|K%*(ljPQL)YQ+XfZO>9?!(BV5dF%bffcpEF!i!Z@~nq!;u3Np!K(Kkb>3zAGITq zod2;GZZ-Yitcw5l)r+^~5jv2^y#2?twD>idpsLbGS5)EMoKN(_GKZdB zCWy&X=_%B>$-Fixo+A8+)rAx$5LFzjGX?R@%snA1-E*SBA>+vq$SnxOJp+gAK2pbd zxLiuGMAC%N=}j$zkr?JW`JPfYOLBi{Z0?grl>dqyyTUz`z?YZQl;7Y%Ys9f`ZnVRs z<*qciQcOCa(-Iiy4>zzvsGs#wTV9e3`l7!Ix7a za~>|LRc050+P$k5Ss}%gWZT2b&Pwk`xkN)CbPnb}58@*jBcX|~jIU0QtA%Dhdg|a; zgKbn_jd#aXAz~DoWnB-gi5gXsF!QAy^L?K2{J?kr^o6yi@pm4x17l548BL3^|71;ialE)SX{=@`(yYz8IAl{pN7AAT^68f;snt5EL;X z3=4Mv$^4;zY6uJH>-UHawj$`D72S>d$F? z&?DB8+M^120)^@dREU{UoTN-mdDDTRPhadMM8L(djG9uRq!sIXkvOdV;LM6` zDr!LDWstYjuWShr*Xfh}rCYHAYb(ip=B)u$bF~;jef^D&c3#v-oy3Pao}trI*$?kI z5Iu>E9~zBg@Hz~DD8~r8OPN*C#}_V~*8nIXe3>l9_)Rzr%wwZ+Oms|c02jKfs3|&FS(2J*QqmXwd03-ZyLwb{op>!K-!TR`Rb!6S(o4`hnHrBFpK0_)l9`QFok2FCJBKwq5in);iT^ z7pg>t|H^%|Cy|Eqo6lsY9pilE=vQDq{cXrZJ^GQ*j2@Dip#gox52Hwl1Dp)3q`9z3 z4y~953CgttC*wESao2GZpLa~bkRCJ0+DFX&>q2|0D9JnrE}YkU`NJl~974CXdb9~cyywGN7w9kn=0Y$_S6eF)6NDq?8Q8V5`WooTn-@cM7RiWTJQt1)D4QsIJ$>_A z+7HBSx3%VVcg>9C^H<=~Uw%sGcQgi=6Y?w_?`-%X7e~SgNrZ-YpAuA6Fl{cAVm_oZ z@qE~tIIO!9y$e(x5o~#XtuHc-2qfaBPd8`7$7mhhE~7+hRbjECFZ`K20T-~EaJ3?A zjgXo_58lE3JwkLktX_+uH!P(d`vBx-hxBU+G9oP0?}N54e+})Nj=)-J^)CEiXy1S; z#z;=4_PfKCu>FG8vd*+gP@3DP;nNn`!mv9Wi=GQ>wuMMf(}#y1zLS&Tu3ij32jN)z zbqL>j;?|nI&%9un%_-$KmXcDtYlwxW6e;V#M1}vA)g=qvug%vt3!yNvb>N+^u)mCo z?qIpA?u}-+j-BSLBByFDrhB#scbY|1=l|}K^r5sF;5ljVTv4&6DW*S4K0Z|Ju3ljd z#kmi#B;;3}Hb-)+G$7=$%iHdGec-<6=7hERphNxlva_Ol; zCB>mJrc}jltdkv`#f+uQW|2_YlBLY^CSre)Oqo~fbu}}V*cen(zv@KxuM9O3B%;;0pxLL;eB4ZjJb^U3xya!{yb4haQS~%oO7Nhn!`$m0 zW|a5Y>XoJ~Y0h7mK8}R90R$jUyvY{IQt_gQzeoORbR>4>nW&16<1%?K@dVg@k~m2E z7Ln)hi@s!IDv%!%Vjs?>n-`&p(1D=_UwWL9r$|aA8f3*N^Jpl_Iw2EJ6T<`eiMp$4 z&ZP%2a)PKop9H1kUA{0Aq$@4RB|WdeY-*hhU+vaWj}1at4E$PCIR|{WqAL>n`bR^K z0;QALsc#!;M}80AfJ%PGiK}*VXlP}s#IELiX^R|x(IWDC?d9fomhD{XVaH0GBk{Vc zgFIT}H}JTSH{{o@V*7c&0ON8_mskKk$xaw*1+XVLT>}5-asfL5;d=zi&=$BsapVk; zI?G`v*1NsT1^jyNxD)QcVPo9V2!4)Lv^@T_3AjRhJ#Zr+O^IjtLs|t+j?%9o4ZUiw0 zXHjA-gYW8))iv*0hSd}%5~e9Gh?TZ7Z)Za*e>0?YASz!8Icy#ESXlb(I}!~u?_ z?Ezgq@x{YI{#LSR-Cp6A8Fq>RTTR~VH+o5na?3GEzTRta5E=28Gxrg|l?Zp6o={a| zk!rTvws|8a)m+8!o{>Z)TM(R8LqD6H@+(o$c2##jqfr3fFUz*HqxS=C}rooUAJ=fd+~vhCuMl zx^`C4Fqz1tUD0-#8op)~-oQYO{*7e)mx#|_9JBNKiGX|zCJ70U*PJPGvK}kl`ct=TzpvR^d_#09%YB1yW+@+e27^G^2-84s~C17_8PsW z_x327TaT3U<3C3(&Z0R5xo-F%YPM6f<#{i}8@xx4Z~BIo!~A@2Z8UzE9=j+QeHwjZ>usCd{vQKAKEhJ}d(7R}L1{;ot)*q4jH4GUJRy{74dhG4PICP!F4qe9rl@U_VBolhknsOQhTe2YiT#D$&u; z#*j0K1|lHFDq0ONA_>=z;6YnXFU*c9oyrx+L7#Gk&(8y8e~sU< z2zKgU+Wg?!9K*@U2)v9&AwvR-gCoWrEJ=UyedJT1a#{ zCp(LX7DC@gK^|F#+gRI6xeY0ld#ZSi9ddaz^8@ov#UgVCW=^#X`J5vDaa*7GHTPRP zEGSaIV9Zy`njVRzHcrH3qbgFWuODJn#-8c8TK*4H)nLt1Jjx$+tv~m9^bKM}I8|B~#Y2T4sWj-Cq?iJx`|yM6QnC&;(!Nh4ugA4(nG7i6bEh8%e-W z^4tZyK7IdiG`IedvA(34c(26jv3uhA^lP8>yt|zu2CqI1s;QKy5l8xlTvvozuVM6C zZ2PLeH^D$pJAqQe&r!HqFyO!8F@bLZsDj|LPAjcZ@^kmq$Ra$T57L^XL&$Y#MS!~L zU?a#?su!P{DzRyx?!|iD%Fa^z&r8Q`Y%^~Z%)$Jj@Ec~TH=IoziqO;6w9ln+bJaPF zuT~PQ74ev*kcwHs4@g2Tiq|TfPQ$(SInP*_GF48<6wKfmZ&}x3QA@?zvgce>h+ha_ zO^jDdt~li^yW;1gu!vD30?a&PC)HtW7i_8aN~&=?x zaep(b2%Eo8pRW_P(mO!UlUXzD#9BWUwpQCTb#1VWnx|UXZXItoeq$LO`Hg0O$zfEx zCayT@>JXQvtB0B*$b~`~SLHQg-kr3OXRlM6r?=A+ci%g-t`fLSKBNr}{uOe^wRm09iY71+*4+Fj5NmF$ zc21z^-ppFOn(=P{zaNR6mge@2Kmq(s5rMhEs}_!y<{o>Yfu5F^{<)(2PBGH_jGJps zCEi}RqrNs$$Kz%TG4Uc|y7twFgHP6eWfRr}zjtKc&w0^%w_fySRVmZ6GQeXVt^-!A(ocG%NOCv~jyL!T9p=F|Ui`?A z7qEGiNQ*Ibm)4D*4*JHc^+`R!+nwfiGCVzF^B<)`)qlY@*$GV;JDzBj7)^J_OC$6- zt5q%H(K1gv7mk&2oTyWuEnVFP1rKEjaBH+*PJF8ok_IM3v7|N zolKNv2d$}cr{{@m#1$RVNi`;D@b+5GuZ#&gGSQ8`3*?wnXQ=k@Nk_yUxACcdO=*v^ znz*E_tso{G-XsIK^L+TW9iR{K5-bVU&ErqF@Zx3=wivk2;UAX6kYY!Mj34@U|V0_4-`QSIVH13UC5k7u=wAEFo&X41%w zm;2qMs+x62KtOlC3v-=1&6GcJGs&78}6!!G%7sb={6DTb37AGw9fkabEI&s%QN$2+5!MOM@_F0CdRp=8= zU2%!5fgXgzGJ9yn4BJJGl8f7p&&Be-|6?~Q*=$v`jf!6MRoM;c77jv< z*PHOygt`|DsH~a}tsd9hWZlIaUXGHTDuHFYt3RnHVkdYqs3MbiV6y8mG#8HTZLGC* zai^d^dJKHT2UxV$?d>l_Wr3@+%iP#bf#uGpO9ci#LJ?)gl8u;ENJICk(TtWL#t@8_RsQKWSczASZm%}A?V~+v>en`_7iNkAW?m-g00ol zVB6X#R+oQZYj!5j3D+5H@2f$#$eCVNKN~*4kAn7! z3Ez`N@eFZSo~h&nW_JI_&QH=RXeigtK?+BCP=&H0ar%tQrwma(JkQPnIKo`R+Ph6 zoOBO#dn%Xg#Sbs{-v439kJ4H=eFu9r&-ClAxb*8IDNyPHx)d&xz9bGEw)crM{Y>Vr zU?eZsMYg$P_$xO5GljE)Wi6g$nV%2F`U07wjMgRdgWN0#vtK^v52Oc0>oZAM?BOG@L#qqrs8 z@QTB~%CWD3&5E%^ko{nH!Jc2kP{!sptk-4YTq{n%n;afm!Q}vNs)EKBwi}N1T17Mbw7nyUfkUxA!mFI zFrZr`K%3kH_?6!c!1jc^4llR&qe`@m-AP4F6rFa{HD`E%r9bXdt7T_)KTcTgU1dKY z8>b8ykp*R)Ghr#HbF?(W>ZLE`w(xy=Ey`!_aX+TiIQmM+_3okdm~(?}{j52LXt;}c zAqgKk;`jcFU(`&a+Ef0E2@p>RRO-Dc8NE)p)qE;i|Mxqq;CqyC!o=ff++gm2XxA*x zzXFBXf_UFI`V7BW1Q#np$;n^i6oI;jxlE=U=9J_QXeIn5Mw)|_;6_mSY*7-*Y(d-H zFQvTGh~avm4!o0SRB8^9X2njq#u%v0pJS}4Cb1tHpEq1NSyFqGI%O$8-DsDsO{|Df z7pBEIF!+}Y+r=x*RpWJ#o0yLQB@mV!jz|jjc;8ER>yat~Rk5mG2{on<zT-eCkuCmT@p2|m;BsiNP2116)YF5l#1 z7Ue55S(!}I7?s(z6jV((bXC8k>E=gdF8Tx(n&l_%FOq_@s_B~ru~cv=xzuEw134C_ z7t?gIV`o}?j;EE21>kzsauz1!*wc8%E>jahE&wwPyScd>vw+jcM(ww$YvX#jxr5Z` z)=kM?63(0dVEs=4S1+jOvMcQFcmTpIUuKidAu~sTt1MKP(?{89fuS89b?_g-Chm+W z2SR)tn<^@EZmg@>^%_bF$qMDY-Jyc~eF2Wup73&gm9j~ez62sqmbNH(#~27V@R*BT za2!dI@)sEB_9F}gL#nWV+dz19x~*-NgU!GDP?0a2@pB#+K^5kp!n3jCkU`Y%n(~ih zNJ(hCoh6)NTpo%_K<6aXZ!RTIRJ{5~5h5uaNs0bp?#iDD;7xw|$%6RpK}zDyl$%E# zY2%LBaL*u85#=$12lZ;un$(n25*iTc#JM*RB__@@D8e!ihv8Sxn@g)Zbl22Rp1Yss+4{qXxk*y9 ziugyNp?-M+``-&Q&s!(Z?VwyKB9CKuSGufEb{^7iLGK3=q@}RUtJXr z^hkOfEQelF$_a`wdGQkCS-7kjRG9brC<%GT$24j3Ttu^M!(dRpg^1V=)pMr}hKM}T z|L9J3qmGc>%O8y%%V9(|aHN2vRY`k{ESU)~WYp1DN@1#E&)A0jb#}s$K4Xh&M)P=P zQj5}H>F95e-mrzIZsi%(l;x@m}`lgX4MKFfTz0 z^xpw*)8mt7h^MD8zNI*QYvxh#>F3jsNXkzkOn$yUD)V59>1;O{3hg3lfnwnC6l>Av zoI<02lhA{oqjCM60D1Ll+xOt@j4 z`+7XX+tjX-eod=*VR445Z7K2_WC%o?{L5)|wd`rG$p|Ig+W_LwE%K0eN1Omeihe3R z9G3x-$5uNtHjI;qfW`DO;}yqSt?l4WHTB*ez?vqsQU}GiKAO_<>JZzYflA>#rM3(17^9VO} zwE0D^gptMG%UDi6u8z^CzP1>a_f_VdljefKrtWe^wx|_1=3Qb-;cpv%jOIg`ytHf? z8%1ye?Sl4mfAQr5+#=(aG`D5B#$hWVz=skJ=Lgjjb+4H1o7|+mos|Q!>oHW=faYYJ z7gx^lX~NJt^aoXlVJF=is#n$%d9$mb?wq&9>;DPGy9;BIch3(DH2s07gBuU%tQR4v zy8vf7CmUaPFS8#kHOu<)!7anK;PaUz)Ms; z7Z|d@)iSK+rS0u!9&Y>mu_&7yG?}O@hy0zk?kc#1wnPjo=8qnPl(mPBM>d`Oe4JJ+ zxHmRSqJ562Emp6FyocrVA|bzmO)qELf|Gbp=-#vg*!M&sB6&@wJDS+?zrT?1qjox%?0i{R`tiX!#H zd)}y9mzcPr>ZBYjAr`3khIZoyatzmV z+7x>Uow%klky1u&eu-TVJ!OOL#M#NB6E6(vmy72QwF_B7+FRZ5iaVw_ILZyi*Yx$Iv#n=EFC7unuymUVFOme zNzR_nFt?UHR1sKfDT_+1&2ze_{p_@q2P%^sYQv`9JfG6w_*t$d^i%j-{~PNU@o;*HZ@!f}nnSQXnH2?i31w)ygI@dx z%@7tI7)k9M80YmLq_7F!otUr=@}ugg*3}m-(D@1-%e&<;16Wc8C=?zJm&9}_W}~fF z>yE_(shSwfS{fkSHfzBp_6am@FB1_Akh+L8kmkS@b9kfk#Vomf`7BMROwKg4ntn7p z0S{Q!Oe+ZqwTuGbN(H-d1lVp7>v8D97AGDaB0ZHPr@|YR1XeV=5G=1q@dtuN3&Hxr z?26E98^CK3U74WF)|@_0I>|$bOqsC0N_1DYs;js$p;3{rHU^Pm>AO=Pz5j-TfVzdcSymVCvttacH?kuh4cqy8N4gzLz5bDd{ALY8N z2Wv$II85G)aK_d|BickQOV2;Ee-Lhz?MR^gXnTC3X+I}-pJC(p$AhJsV2l2U&wzqO z5i0Ax#oHDrJxA4yLqj*AUP{r~Gr!ZThLHvcnN?h9oZKqPZOn{Q`Qf&D$cw5Oa6S8> ziyrQ-6@xei2a?FoI`Wh>({tqF;<^IdKUg^W21=G7mC7?`e^UOWbZ%q-fiHrXfJNd| zAlacL|8yIKv75B@j#ujGIeBnuKnpX0NX>>hlxQ=ACP61*8w|0@#l+t}SYj&d^CgX` zY0VNh39J*zq*UeixV)z5TF@Z=f<=MT^X~QBMCennih4;Wne>)aBmg&47Gjq9kEL&r zDzp+366*f4!CxqGi5ax({2g5W1Zy)|?%))cI={F>H9ILpz}|vB-qv(2g`iglkFf>& zP*rJZmG7@z`ERcxCzkwu=p8!B7A}fBIXL;AdI-&ZhjG_;eW;t+nQQIbJhTCg_+5q7 z!Gf=mGyIUw7L$dtssTo+v2qc^noc5Vy1bg!)fXyQST&7Vm&~#H<2Ovv!bDZ+#?9?Y zSvnE;UI!*(dgXPDf6;DWV)@$?>qcY}r0s zAlslCNEB!K>iPDLg$}kcGWuCOeeW6(Mxgb>|7tRfI(6KAZwdiq-~z&{r<5G?!Xj_i z9FBd2RJPgeVxqSEKJTX9^*|2KhNA}wzC_5(pvF}m`^6|J7*1}hHMF&YY>&caA~Uhj z8NXombvmu1pH|0y)3pt*$4Bq?CeXa6seO@mT@JbuN^VB zDM}+yu_r$$RrTv$NHAe!eS@o>3-=I%7kYwL&Mv z!l$RAQ}A)8dA^6hPmW>D>FF2_tx?CaY&($djyO zbA7M`artfN4@a~*xG!-DpyM|tZm_XV0tZwo`CO*!8iem2`K#&K)$&@Xv5N)DUneGh zE$XIfD9XU#y<|Qhc@fdd+NOB(NyIJn(R+tUJUa!jpJY-Bx#>8aY>=pss;Jw7P@c(` zgx@sPJbQnro0Li6#!>W>`1G6jMTpBUVwTarm>zU#l}VLB>wAdu_@Z_AteAy8pvF0A4mN-(ZsJdx#w3?I-Q-S3KtG_+p3fqgsu^EfMJyGREohOxgzD z`y>MO1j^yscQ5?W-FKFX^i~a8sn@AHtf$vz@18cQJE1q-$!bkV1#=%ptH-}52%H`G zUcI{!_6#HGuvmTSZ8{h^TJ^H#>@eGi;HL10uE!J+cXgg|^)doPn)9R8Kz9MZ;`QjF zqgTM8hX?#9*?|LGOuOfsZ)OZb0xxh12SU}w#EV76%i)wWkH8SrU|W^zhn+)FD5&IO z(pz15cwkYYXs|wzsXS)l>2n z52{{_EuXSS9~K>Zw^fu?QJrxZzTY12QMdhSpIG$sD9gq3?KUw>Um`+VRbXO4Yt}@o zNSy0a%}y0s`#$bp7iHXGci2ptPBD0_WCbti2hE$pq`kl)Lc{djpYAlWGF6JunJHy< z4Fz`-`~gvK!cK8sYZi%0OkC#JVWNN&C`BneCf$i=CLdGBBr0f0b&YvKPaRgut`oBf9kW2cmVCj*8jRQrASMbr-4zh{T`Y#g1q^o`6b42+U)#8H`HZ60*v;f<8PXIai0 z9&r`Od|0OCJA_cW55z)(_vqb|%`!bq(8E<<@HYAjIwru%H-FPqPp~#m=|+cS;E%Tm z?q}Lr^>7=DbNhW~Pt)SSs0CaMx#2_UbHU4wcsr?@9M5sITm1HO&G{Vu<{y0c`tJ?=H>% z#noGeMfrvQzS4~_NH+|fLrHfG-Q5jJmvq;_&>;& z-shbC0-lR`!Hc=pdhUCz`}_TTDSt*tdhDvgaTTh3wmh@)mV0)3wt24i0JeexV@WIG zzY#PsabM3y)D7PEKJxWG`hXk0N7g&(cTjkh`*#5cJFpW+R8TQOvVYuMru>(pNQ?SB z5JIJPujlP8gHU?i*VD{tkz3dVOf&_9 z7B)tmSd7>2@vD;1C>4SBPhMAVBO# z*+B(AFjR8ma5%#HNJ2eY@VlSrP6cb9hM(?uPahl^rm|Va_#Ne}b1@WLS@Bt1`Lo{x zR4F(&;Z-gRL!BFopCea>Zb{^&Kxa}V!ygCE7Hvvk!bEN*UfPc%!E}KS&|SKn$r>dI zyU!(Z?g}QETnN?eR5Vc`99nNSPDQ&jZ~`l`P8Hd|9pk>PagIeQ6~z;;za8Tg7|8NN`7lix2yj z7;|2c;ZgLbdf-@4qLM`6A{AciXZj~CBQL`yjmBEuLYTa_uZ?8rx?Q%tb+lRXg_6w+ zSjJ(?y*pJ(HE*5+TXWg-6$mYzY-68cC%kI3Qq*Uk-%WcGVAvRRnjWQ|7ATTSsC{yg zI=Rw%{dWm+xXp5B? z4&b@IrgdInddCsS#Qe)oD(-d;$L-6DcVpRc>%eZxaa41zx_5=F_V7U{_j`>5jqPA3 zy5M+_ZAZy#J&SOs0tHcKw7}UnC@OsP{jbzT1TnGGBI2m`^Y~JJ^6b z9eUie_bhaPUnwo|zxEqpUH|we@axp+3@RCog`;^9%$B&SvW+hz^X!fS76iF^#%RI6UV5AQYU# z!njbBdL%&mJ^SbGVf;h;inmr$qfMY%EApH7f~|@XnHZj8%F7hg_EpM)ctLU4qm9h8 zpY>obUP4BY09O9bU46Mp?aETyS>1;^4UA`{J>FoA+cCBO^bzheQjt`xw9^r_A@I&RJem)bXdY5fpBD(s^b75M@oiT-v7;WTi(68le` zd6apE75NF;L(S@S#!PLpWnE0^-~^)6OXe-=Xc+7dz6O=>9l=8YOkjZRzVN9TvnA(oR@=IQ-Q8mkL$8(Th=4T1j;gvOFe;@dK3h8k zL=z?tYiGIC+oia8qpp(^z8MH^5T%mch^k!`{SM+!1-oQU^3goELyn`YaY5?Q4nS{j zr6&)e;{SD+UMBd+qhuHU6uujBD+P|{x&cErH*Tpq7K2Po3m9kDU$?hAz)eIk3Az-Not zWGQCpwFY7TJZ;;f_zu-L5)6fcKJjxk5iL`N(5ru3+yp~fN=0XgD2*{G+XyR~IE|qi zNjyqWjb09NnRLXZRgAC4i-up-1w6Q^iLr@J&nG3y;cATEhYiczMyXPj@bq=Ic z*cmu?qePd4LnpMcGcx#|4lkySnJJR|wl!3E{+6u7bthRk82&1&8Tmx+)nfA;=EQe8x9$&pn{3Tf6PU#haBqYl%z(V zbGx-RDBXV2YrQpts18mjVNYEuIwDR3OLTpD`i0iPKH2E;q%g|Up8lLDPGD?{8LZBf zsTrZva@z=P4vl>=F~JRk@*q)@2wwxN#GT`rK=E*_tVcRVi0;HvE;N5-9GtZ>wkVn_c@x#PbK{E_V%M$ph(26VB7!M3%%Q{&{pYAb zb2M2y&Dn@k3QKWMV)YW_dK~V`!k(%+U7f8B!S4sOcKj5Va-H*FZ z83T7#l~nvw5;I!!$#B(-YLF(ST(sEM8mKA|Zij>t4*}dVCcJ_@6|m*2W96{a=jt}t zWPaJvKvcAnz-I#yGHtsX@s7Xq1Y8pr)k^pRNwpX07A27e=1F73c#}al+w(x#i6EFZ z4qz0R#zxv@r?j&Pp<2flQ&O>bk-6fRFep4HMNHfgzz0ZMhInRv!bgSf<;X_xefJ)B zcSiZUvm2CDAc8XRUN4D*RW2Y(qD!>;x4XE*ioiQAt>F@1;2ymfz*RAWFF0R$*w<8^ zpP;mT)dP{--BLR!|81Vw-5aycd?tXA*Pg2B%I`9eqBl>RCZ8MAAD!1U?RZzl4D|P8D-$h z+1uSi|5k+$8+N9f`uh#TjxPhKAdbyWrR@;MEe)syzL>a^rpqqo$>-#bE*EXKoD*V# zR)UnM_5K$5#0m@OQx95>K{aBuK%S`bkbAp~KgwOBhn$upRi;LSQs!+$y4?eIO%7MO zgQjAV7=}2I{rK^<*TDcpvamaWBa?zkEH=9t&eWd;s#a$jdX18HQdyk0sbFV!of3gd zZ^GLPcjQ)*bcKxqLOo`t@DRWULtYahvEjpfFDR=z%DTNTdxy%3*vYE1Y2HyUX^Ta4 z=Y>V@UWY4%tD;=8G7C&${?fptP*1rzn2@tLkc!!sC0{3AoqF}X7T8DY((ocRW@(;B z^l?WRRHit($WH3-%cFtYX=S+LKgd@xIFYgDBBz+~D=|fJWC5c4HLjQTE~#@2!qxeO z!n8;?MNb+4{6la1*RZv}Dc=|0`?X!}^8Ap+dq0@G;o7SIYU85sxfIg-^WFN%NY1fu z`+6AN+pg(dA7qflA;a{x*(jyOZ^;<-VuJQ%!?fh$E8vlk{KLQf+Zu!7W#|lL(TR96 z-XEmbr#o@XA3b?zYuiq9JH>MSyR!XfjT=!&0QIehG~1X%q~-NLIt4Dk_v;`=)PF zTB6**q3+<%u?T}U?BM!&pUA>5diwZg z8B<&@)m7m{`7AT0|1R<-wUT5Ts#Ms1O8z^WeraN88JT?!e!oItQy3-xS~}J0iST)X z$3PqqmXk7c^$NcsNXaE{dncbh#@U0WB*;#_^SKs5Y6oNzbkP_i^G11eJM*^M^`D;N0XP_87qsuP5Oa{WzNo7 zfmmI*kUUEqwz>HpjyNLU8k9PDNVz_834yZW`8+v5 z_G$Qo)Z2GnK;?{c-cDVe`yGUPv0%UK#?}9-j_@|u?}drqvPlQwPtBh$&(jgJ?93&I z^llEML<#bqR;Hr#$LBHj5oX%Jo%VRo(h0|ri2pH1aYK7g1>0n1SZauI+~ zG#krdv!d`o8a~z&dy(Y?Sub?Cc&B+Iv%}?%n4^(u-^9`D`TRT};Lq+lRfhF35S^pf zB^+R-^uZ$t&(>c4f6qH*|DAVIPG_D~N|d}f-@(@!AhrM~K<^67Pyp+ACdqDKG|6>Z zMN=#GN|l8}K0LZ8Q@7QA^FGf9U(Sv zuI(<{whl}c?@!k6O|Lf*iFJ5G)6<(Nj4GoiBV}3BHkK4#{&ta##eWc|_5XfEenJbI z4!9Iwn`Lt`^y0Ye1dLiP3MXz7n6y9gu2vjJR9loC{tm**HfuggFA%GLtR78-&rfk> zg0h8tKqMgSly>g->3xL1abMZI)!8=-OA>bA@|v9Yym&ux z1*3&tucMn)mGqw<3Bg%ujdCNBVh_;4Ml85;R{FaCv4r>!PGV*1QDse+y@!jcPym|j z;=ui>PYVt~pQfE1GWTBVYhwoQYcHoL#JwNVyuN|=MTd4g4_f}d#-6E<_trhR=#p-N zM+9DHHy^2_CU9C-N!XUWuW+aYy=zK&v*fHhZ}k#{Bh+EL4+G6=&c z&zNZ{JC)Bf45nT|ZkvWbK)v0ast?uR7vKVaiUIGhKthdlBMnK#_e>WuJf{ZZ0cBXh zcB5@(t*P*nGBbWAC8)JbARYT3O)cKn3vRnn#dZ>H=f>T&5bN?XqcqaWhyk?=>*m3K z#74`~a`JIZkQE?4)u;z2_rvfnFUcsbHtC-`pV~vFA5k+cW z#68*0VWJHF&f&WV!JXv&|L6x_Z;(WNVY~m~(-RXntxja`hktJZ11a<;{4LE$o{+c7 zHZ<=d8Ts;fR5WdF_nQ;L2sG6OZMnk!dr0#ZCyz z@10#A1$-A?BQS*KJWWq;|6MEm0>X{kF*yCrOG4h41bdDknJaU9r7dz8@0~@k84yvo4B0a=*Vj-03pnJl{X{CQiW0Cga3|8fH707rd0JwqY6r>ao9t z6h}E522%%U%Xz~s_W0M|`q5R$MaSY`((1Lx$!EW1PYLB0s>3FLX+;jFvuxI7x z+PaWNQ+$G3f|72ix9*cBMG=@^K93$%!z|DB#Hgm8ImG3*yfAc_H!~G`JLSUbv?>C$ z_i5VFo75Bu65{dSYet(S`INt?CTM?^9!RRqF)__yA0e)Dk82kTqzmxGik9o5;re#q z>lAhDY!PPcBcOC|`1aS7?@8E>e@C&|$`cQ$qQQ7Izz&73ATGp14LUjVrgv!dfQho( zX`*wwT;a<~WQyUT*X72w%MlPD=t)Wy%sDq}8TF5l>y?>ib+Bnt5_u)?NIf7U;WXE% zW-!xi`rJc%Z>dyANyDAbt23#{iqXdZzC~N4EuTSpLE$LdlQieu5*`2-tQEt37;pZmkhLgHAdrS_V z2)R-^8iD!!xGo^t!(u6sugPrN&=`^2OmtY~V4=xu;`y)FD$Xx6DRN@u^_bBfQ1+** zZ>0ik-;*flofN0ve}v5vt#4o6C>cg;y?G1jSPTxe_(vZ4iV=28!R1zJ7blFuk?Xg&?9=?ominOZ zBgLi25DAT}D1UU~Oe&Eo{0sKLq42=4$gzs>UFDyO<(+=>W5&L?8?&9~Q8&TAHsLqr zxBnTL1s=r^o|}R9eLE5TIRvi1hv`jDNIZiozM4b>7jh-U5sV=xfnPO&0`(iAqcuXP z;YG!}>iOy={^!AAY6=$gQ0cWh`#fC2GWUH-t&JPfAQj*AFiEVDg`hDGUfGRi$xz?p zCbetA%OrxjCHo~K$kU_mQOX}0EW+`CK&!1f32UZ0PLe16`@ZJ#dlE2N1g@nwRlphR zidEc(jRfmpj92_98Ro>>Os<9iwe8VCc>&z&GrG965p>%wD2u_htn1b$;m`M#4r-p$ zLH8ndLr2YSCD-`VH0iM}1F7d>>57iH9%gEGYez6;p_k@-HEHT|_@vd*LglX=h(8O2P#B9om$>wfHE{RCTE0%N|?a&pbQ-q~GB zOELKnf1*zM2X}RMxp%1_HB;sSvcztua`(-CxrAK7Iv19fBr`b5-JADDw*)Rss?@#_ zK~~XVg#G|TZK?2|(2a7Pw2Btbox!;dG(4S;m1bX7?FUM;=bH)%2LA8}f@Qmp|7C<^ zPs=T%L?AGb>n}PbKZ*vNu#0@Jk89vYTMYG{5wN9}}?ts^1s z$Ca_RUl}UN8$Pr?6aMo(0)X>Hn_qD*o1>9D&kt`FuceIdWq-dxh&~E@Uw+RFH{Fv* zG3p}`Mvl^0qgBd%r|?*vH9?p^ub#U&*w~5TGbhRK9P#(0&d|TQnjtLl(Uzy_h|_x~ zEag<@03o0d+y~qt<=8&PbyO^i$ufNvgQTG`rjanF;n}v45T}t4He(`U1FK2GP(F19c~>T*-2Vc%a0#tsA`9)8 zAaYC~Z(JA*-Lj==Cuwg>=CAV2r%pe&sC1ibjhaAJ0$TYCk=5yw3zXJ2zvot@iY|!$4SaZM@t$ zQ3u%CSF?STp5MnJr~&8F$xYeSExq>iHE(wufTxTNCeKbL#<@czc^0};PuhIH3~LM zu}bYp>zk|+r!SgM=-Q=v6$m+QpAF6g)pM|a^~Ato4og9F--d%o?oIhMR#4%r#E3WR|Qgze>mzpngt zmVvjQNi&)02f=iEfk79DyyqPALII;srNL_fJ=Y6&HF>ijCOtqzsMmrzK3vN5`|<-+ z@&N~wBr`Cvquo?~LlSCMemagSO&V%OGlUyzR+LCuS!1GG5T8@|8_KPz;6s^_>Y$IA zIhhY_abOy!QozjQoX^n9h!RRBhZ>UwaN*ZJoYr8geLA~kLGUHhSMCyQN4pO=up+&><6fL6rjYFRz~1 zpRSZ5DSXvD6jp~=bo{a-)Azz^t;RpY&XmIIMT!&=AcaV1sxaO{@-0HXKpuC7VoUa z(RV(x95jCwBLOTAjrs<7?BrcHhgDzbH$<;D`TpPCa&~q0KUmmQpvd$BTHeR4Ks?y( zC~kcpo@WsA|0zDY!9eku`ZM!v16`4v{!qXrF71VaM&NhcuO@h9~2P zr*Qk|h*q881-hGu=+*EBuUZHHNA0V8=dBz@%Y!vjzZwr1r;(_vL{#-#AC4{?t+GUo zF`4MHQrI6b7h)dPltOdH=Creo9axTVvYI+tF+f>NXU+d z5Iu zaUXW(-}*h!xDMpEPS2cTBG&v9V-i8MH>UQ1og<%FXLZx`wd$jKCUx7yvsWKjIMVZ2SW zo!c)!k|33eu!C{l{xvLQH2w8rWV)~ttSrbn>!9EINEVHFP+oxdgPo#VRXuWbzN1}* zG>^BC)qOp0t_43oOiuRNS=9~{2*nc29&S;Wrz}jTcsm((6 zBa`4gR_s(t>&ve1A9d=iVqqL8h>krscu($Z7vs(|{n@C@^DhqSHcD)mLSlOYaX<RbC{H#}P9mFH(m+tT>=pG+$rBb-No1kvHq{I zDA0ug8zHf;<6(t}YoE;M*;}km+SLAM$`*fql>|lcF8TTeS&ub&w$)L_ z9208X{2P`_2!8@AoZao73{$U}qp4~nf55R`mj-gr@$dU09{SEAO8;>^2Jh&U>dUxeY|J?BPlmDBs~<7# zxQ3HxfU;pGTUt78XZCK`a3}GNk&(Ho!!OhqSDZ|ONJ`@tj%(3}zhGXr8d2-U<^x^(Fa*x_z&x{wruf+Z$`^DRDnQobi3?j`d8f(0uD`LSA3odcYe! zFQoZ2d}ICP30m{aqd7P}9z(rU!534>!D;JK>npcKX&v4u?^7bd2V>^LJE6VD%#?c) zu`ww}#qYnl^QFc`i&Hgr45$ROtC%hva0RqjnI9B08U6%<^wQXvt`tF;+N_MfzcGPe zS>sUg{FcbQEDoqxM)Wt58mL4@^d$+$m}Chmtv3@XCEI+uw*W2WhnomN^iF-s+2Zev zhwlkHtpzg9+{FV7j}(6-bHe|1ZI_k;q>dw>KRTngSQ1D(u<|r9#^PtIZma4ea{ttE zV=?5n=nT%mMJBZI<3q5rDJ*##{m($qpGBJc?g5VGnlE=DXQ7vLykEYR_m0C?$sMc1 ztdio{9NRbjiDUGqPJ{n2Wf6pkj_xZmNG7i|(OPZyw353c|@JOtXx4Yu=ZsgV&xzK^<-L8C<8X?1-cGR~J$*YaAqOUAmr z!@~L!`{;p&Xi4G83Gu(Mhd?*Ab{NL|`1J5UX|4Zr_@_K0ue?sZDO@YXmbYqM^dw{- z-6zh?q+oH?8Rj>>42vReM~wl}o9tQV)AD~kbK1v*kWdbCUofKv2+!7Ml*jQ;MWA}R z`A#EZN9K-$VKFb$7^aF+o(_?HJA8fN(WHI#v5&EU_4Rs7-dRd{=*OwzC=q_`pu~Z$ zl2|e!C1??>&MoS|Z!Udp=iPG?LdLp!`gd@5m^X6Fzg4S$GnD32yCr+4%%pvs5^4pQ zu@gcr(rw%fCn}$wqj!Iw8KT&JLcVJ(4@CQXht;|#epB&IN?Vs!3 zZ@rLy;2?M!eNMmqWL}i`#4&^TFpT+PMS3VD<25K?JikWAM#HTG>A)Y7foRH7;n32- zJGmnQD~IjBRD~D$nkB?LVc_Rl9F4ei&{4s>gQ^_qrjMx+9aUyDU4PLCOV`p)cxeZ& z-}a5XF;3k&e4XHZv&u-*8$hIzScm0xgL}q8XuZ-G*(gNQ`Gp><@y}?~p*rxHg-j&c z65&=^yaMpMuFiU=uI|qJ<{&&Y%wMLrr-gpg@)opdEfMMINi+B#+vZIh;cnMj!Woc3 zc@x!sMGy{dh)6!+3r9N~@>!?vj^mgpEziPk0g75UY5vVK^mvnbm?=P|FX;Za*{y{j z!y^;#p@Qiu-7o@;`ODVpN5S5=%s?6ri|>& z9`mxZ*_O|B-C?nxOpf~}86h;4K>XrqG6PA7eb*n~7dc4gHpR5)OgA^-MwP29fy)r9 z!6_|#@`{_6%doS#V^d4!ZyIR<_1@FGcB2NZ&!3Na?(FT_3#?_E^nF* zE1D~tU~`8LNz%zt=^8TI<@sx6%^nW^}|814HhTkLuRpTD$i%>t_mA_ZO6==W3%+U1(HAicYCoZpS zZQZel5)blvI0#5iqv~PLmn-PpOW&#x_5BdrT0MECa#pdhywOgAk;_#7<%L~EkZ^!; zc&h$V#9+_HS37|%ycEV4i5Yn~nw+1ZcHcG)evnScF`0RnCsKQs*P1iGcZ9{NN?C!~ znimI5yl-F9zrNt0Kk%;4vu3C%Xps7nRyj8R-T|V=%2j_JvKVFlYu=U60z`OFwWpyv zRj?y@kCxQc`{ZBdt?kl6xbLh54EoxAvvoXLrHBA~gLK&36=dmjmhxScKA8 ztY93=FLC?gENi93P%8TSDfiPf<^XOUj|3C)oY7Cpb`Vw69@lnbG1wP+^BW_f%?bKmk zq(ozLWFfyRP{fyBo9+0W|Grp!w`FF;&hxs5-xvHuIlOk+9z7j@HpmUI%xSfOu}*qO z2P->>8D04kqj3w=|Dz7_U@gtmaFXi-)RClN{fS~#9Vyp|*{M+Br4+vn#~+}jjeX;R z9W}--&nUqZEX^D)T6rP_)jzL z6n|R>sp*vYMOg`79SHy^A6?~rUnse9m^3CLb?D(0I@&wH<5e^C_U*NTaY4#^0a`t` z6{vtCV{@LML_UAXB(Ys+$QGz7S_(KdJC1lvYnQjWl+yGS<1E6=052@n8T!v_rpJ@+ zmw>M4I_2i+8tebe6rB;)*&D!2ao|DUCJIqqE?t7CHq>AlHR(3>9Znyb2tdCNxCyH` zbv^w$la0aQ`yAVFxu-+>kr?6mW~09-iWtA$d`{runf7So?$1lj`=^zVuYcPcSWIpn z2d_)=5R;ktjFV!jTB6Ox6bSsPJXNQB_k09D*cD7rksVxm@Of$Sd#;99OIFe0^D7s0 z!Ge`0BjY#zR}W`ek~Dp>1LNit*Vl>aW|1c;B<+q0TJl)b2f{g$@DtOAl2XI3mHQq= zzVvKA`mK(ew<-SO(hH73(a(HahHE?D2ZQ}|a)j8@BbN+NwrBR*q0G`a_*^f|HfIjU z)s*+GUaO9mP##3ERtn?wXq|uF>&fRdJ?M5#VEcjn5l!7UVroz)%y@~84QU<*AW&UU4gsP zoP5A=eB#Ljk1#CLl#ksRrzVR(ozul3s-0Xjena~Q?5hiA#1s(p#R!8*Oym0Je}CDF zmWO#M-eLItrA{NXm*)q2sbKL?5NRl4@sk}U_{!n;Q_@BzN03k=+M^&rsi>tVsRVXR zB8g`=3?n-V6v@x+C8c9=(2j5TS>dHAqwzrJV3&lG(^QMDrZl51DaBx=G08aY1hVfu z77kMV>rV+D5ltIkGJAGk4EYLON%n1G9cTMxG6@A3+ zfV{^4o3jL|6;;sJ_Bx*?z7PE+5xVk-BmFvz-ug>KY!6#_f1FC+(C-L*>p(@$cakM~ zDQ)Q#R_eW{)nj8LyJ+o@Ae27KJIcC4BgWSebn{TVS9s~B`iXF<+p#snL|Ov#IqwfB z%k7SNAb^KMR-C7K}&f|loK54YmDX@V8L-Dk8CUm zB=pEfyI$>EX%k*wc2rbKI1c_=pY4raj((>^bBg5->euBJqx(H<@*d0not1`i{1$AL zpVS~z)kv({_R0{m8aF6^gnOVi$Dr5mvuD)ZNuOe-S8adZsIu`~V6Q1l`4AnWo=n9k zG#Wo&MF8f~p8%arwh7b&zb(1puiA;pOHCUjaW0J^dCXJaC-CkiLgL3&*e7CJu!<7H z#E4VHh#i!^S5N-44-E&=C{x14iIY0f^~7Llj0|3kiinXt=f@k0&@)KjF0VH&9^yrG zGvua%_oiISb?+@DRCgmmEs32JA9A#fEYhwfr?0yE$^fbD(|M4Vb10GD63&=&P|ost z5N|cgU1AoS2an_pzfYVK4LvH}wt8hS;A+IU=+KMFV&+4W{Tt=vH{^tf4!)s?9Lf@% z3&U19Y1<8aBf%>r7GKg#orn8;kiH6#-B52V9sJwxp|8x&zJ86s@N`4p6?_N;b*JQF z3E!Ol>KfZDO}l(pfi_OaIccK!a3<@tx4odQeYv$HD6_qKYO0|=3^lYElJ2U#5%^6y ze+YZ`jGs0EA?{|S5HwkTcg8f-iNzyce>Q84&&6>oXkx%*FJ+ZXaQJjrxJv-Ll^6`} zCZqhW^=nQ-mx8hW9r2espG!V46NW3wb)4{%@!M-iRhUKp0VGTaw zmYP=?;@u~A5rfluwq;oge9U}PnRe)vvo9nD0}#yhxHbFB45e%r1nlJcawXAXhc!Qa zIkSqhMQYR#lIM2AG|}hRvhv>@GYx;26`*8qy1dXLqU3_j_gu|p>fOqq!?Q%cb~ zx0auuRk82KZ6<;5oqAs_Dc9pbtu$wh8(-aUWd4IFv!PT4U&fHtFd+bujB)%xgsV-R zslyUys1qZkK!+7=g%xd4F&vk9-Ho>(hqXSS3&%*<#wO?|JBZ`CL2s~m4ydFP_ul4S zN~YCEb`qa!GVS>@AF*sxD2N^pULNsdGF{L97Ek5Vj)*o)Ast&Sjk}!Ca4tm&RTBKM4UZxn|pkhzQ?qMo5H;N!k*y1lf7S$(ENNRrwDakz@4S zU}dZ{wc3G;efj@nGlw8`eHN)gc`$!Ub$^V>Y(>GCHF3r^=7>#vO85G`LOu2^El9_^ zQxeUvuhffr>ml!cvPDi$*%|uV;euR#aKvqK_gyXOOc$WGkC{t5_2HMfCXGa{$fMts ztT-Hz7dm1pj>p^ctjr@cv0Nv73I{q_1y*xS%~{N&UyAWgRJuwBr7_FLg%j?siu+S*G~7m9JI6cmmUJEvj9xG?wsRfakl z^vP!n3U)6f-UUukPy5d>I45H$*%_SHy4OvC<1x{XZ1J*wVbLa@e`+>k?$MM+!O26< z*(R3DD=kLDbQJHQ)HVAbF{#zL{pxnA9;(z zWv7tO8FQ0gRuJ5X{CG;oc6qk7`MWefqIVhEeIoYhGyeI&72;b+PIu}R@;i(PBTQ=I zP8bva>%*Quqxc_L#I9_tVGo0&g$Funw{_68Bz8g=Hii_oE)_dyhC?wrOYbxB8$p1| z{DLy0B(n^Uu8%~T(gxT>MTR^w2`E{oEy1*mQHFY|H3IQ@O?hNY%&Ht}E9Dhlh+wZ3 zZ%~NmJ$wpFq^zmr9O9T!JT>q^c-Tb0kIb6x>81Fw$h$W?tW^pRnKalpIBcjWMwzTz zF3{(Pi=t;c8{q| zbd5^!{<>z^PH$^I3>_&ue)%4zbo{cBz^Nl!tbZZuW2Oh>2Dw=`{>@&V=HALIQh;c$ zIX_b~n<0vLocN{Grky+bL4?2k$GVf++^7oqqd<}YiK&RKb9cSIM# zv9pSMqN_x>sT1qZGhbj164%%i^p{T6B(h{N_*juKK$4)ZKtr#Sk%j!VL@neL$N{hG zogi%R`*<@ZC{l9q4dR;qToamOXeo1W6{yjA8-LXqOm=x?AAZjbZWLU&6Ef8O*1zm< zQryWlc^wBsQ0Rb1C`9XiCepE$TdfY&so~EEXF(2niFm$4w+w`{8M<1O z4N}p>%xK@{cLqR@hwP~OXZmXsJFR{-kmF~SU37=+`Nv4Jz8{Hu(fsCU|5wmAtF@Tx z=g0lE`#EEcT(U;~A}w5k8C@@_e;QWa?A#z-x;A4&b}gCa@Z;R)^~des#W!|tlWGi- z>+yONWY5(6qa4jzDlj#w!s?i|79_{IxPGS;FH9Fq%Ac8vdU(R!gt@Jn7ja$RXTJAr zFH|0Q`-l2{Z~UjY zRFmieYG@`VuVv2*$mE?uQ#+3RtLo3X)!-b5k{_^~9(NT#_5Oa6dW*=bRI56?a0M&B z_ay@jF=%6UQR(EMI29P4QWI#~uueve}sy#iCioh^L3P!2Pu2=!#dtv@;M4X$n49J1f__oJ=? zt5cDE48v*OuhCk&L0>lmM1O0`RNIf|yVAiMfwCeB95dB4GZeBqUs_L3Hm6oWa3+(sPRx z3gxeld-QcmRT5W=HYjM})YsYR6cxAwCn@0yk13lo!fON(HlXkZ?_O1O)3`HjW>AsH zUk;W9k{UYN9uwE>yWu7jq<0p2*6Lc|J^LTrrqK*#_L0r=M|><&xt-PN+ODOO{-!(P z)OELkJ_%{%;S#;<#oTx8Unt@hG1ynEBNy+~&#W#)S~pz#f1DlW!PA&%j2Fd?a@v&> z2t;P;@@DUX;>ebw2r$NW$)#IN(VERDK)?zxTS<)f<3 zB7TnQC0iL7OWM0nck4QKIm~B>C1~pmluwcHwHbA&@gT2uGiwXZqMCrCrwS=$CYh8W z{}U43DvA+~b`Y|7Qa*hl$}}l|Sd078xx}7+lMN?D+*$l?rr&IwY;r)_mSE#!s)DkU z7;)^y)lFv-Lyau^ibFjbxsqaQ-CNrNn+ZA@TD~s1y0X0$a7cr)HF4nK=H#%2UGwP- z`M={ZD+b1=Uy`?p!oep^}l9tzj0 z&l`WYVkj_@FR(*bb5~~-n$kLg6(L5}j#+}i#TZ1lM^(<9G0XaV1#*BsCG@)?r zK#L<27^5wt_Z(o+q`C^Wcrk?@zv|4S>M)7?i04(e9a{Y0@gXfIqc;zi8v11UqfZnmL|+c03!55PYtU=SHHJj}gws-}ksc$458W zQi>e-w;pFp6QWNf_9UzkF*E`9Fetq?Yow_1E!)`CZ>Uo|b(VVi{`%ynt(5ePr(?qV)Z%l1(eSU2OtP>i=Ek>x5Ohh~NT9fv(c(ZNZB>2oW`E51W*@P% z9Q3I2&HvBvS;$noL?|8MjDq*6ewe26{Fs5E(Kt=9g)Ir+XKnzgcq7IU z_u~`h{ts$gJVU$vfpi+yDaOm)jztzO-5|31sD0n&exx~mI>nf?&78j zs9FYUMdiQpFImw7E;XeFHSdIr=tWZmV@ADK!pW|GEZJPkMDhv51{P&%fQbIKaf5?2 zsbY1?r>;a*Z6=50Qj*{%Dr`T5K3m>Xg9Pcp{l2yQ5uG5x)buxl43JfJXH@9{QB*v{ z*i7`*g?WT$oUoO(n~Cbg|JrDHnG}a|mVVr)%4DQK(?Py#N`7RW{J!4J7Ig>|G9Sk= z*T=9D;)~Wg;lp+Z-sj7HdI5En(e2=e#?oL76^MGL%;g$RS?W+Kc#I^CHJyOBO7&93 zlu4DP($MXBqg1;$lC9b<{@G+Ue!$7i?D(w|D9OQRPISNC*`|ucr3SLw*g~Sy!thyP z8a}{~#mZ6eN`sb8zh(n$0lQ@Vs%etNx)X%HPdV@v6?vB5B>hBS_1{God4lkmHO07e zqO%+e758;Idb^ojjjgJ*)JLYgYJNQ@=kTIdp3*0)Qi9h_w-zRw3rtamX=Znshh_hY z)%w9p43;UnimXTaIeW5!s2h2B$II+R8FFyt5ZkmXTPA6CvI$$l7JRWR^l!h`f~g!* zzM%z@r(fj5CX04&LFmel3I1ufb+#$Ul9-^SQQvn4xCgJ#{r8XRSfNe4_9Q|UoXa2J zlP_5xOk!vHsX-UPXYq(`Ov%IO2QG$GBTU4>(mb95Wjy?Pmqf=Dec`0h|o8OFQwN{{>WsV=5@5tn($bn1k5fch>Cdh&4h0`1C*f9#cJ$36g zR)HJ~zpOo|>c+@cRQ&I-C*U z&oAD(VN3p)$rwC07Z%Iw zeN1L@0YpBAOj;8h_TJD;c1f3@{GjkmjS|h2t^erShAj&R@MmbZ2XI%=h%(b@WBrn1lJyh5DrNR(av+>i%l|`;BXF0> z9jtuurFO9T5$91$V$_TH3oo$Ln^cXC>{ac$@zC$H^_#i>AiY)PbKVERk(m_!p&hze zzr31CepHW{)bjiMkUsgBcS2(qP8(i{6U8P}(w|I3`Pp>($0W&A!}%wNDnrzY*pT#~ zthUQ8Fn0p*AEcd13DZ8eN6mdP19MDLuqC+i!f&GzY@#l1G)zjLFdJ$9AFAFms?9d& z8f|fxV8Jc826u`R+@;0cy%eW7f#6b{BE^fA7AQ{8Qrt^%m*Q?G&w0Q1Tj%_^;a}Fe z*FD!GnqAb^s9*;Ej-W0x~C*t_ZZpdp);E3y@2XUSk4 zJl151D^M8kUl`~~kHT#Est7|3G}J03v{h~Ih z{LLRWe!N^&3D}~HCO!B96BaI#M(+6+5#{sixKMvwzd6(gu_6qdh_}bJf@K)-gg(<= zhMerX$-o%LrYU2;CK4{;w|(c6yE;b4 zLHpkOM`6G1|L!0Z#hrWz0~*}>erEK^$xhWR!3I^IGpG6Y_hGNVq7V|Mt8Y>vQf%O^ z#4B&37vKL-sQ3gp_}xdigI9$bPC5fUAPb?*mUCBdl7HuR^#cj>TY}_d{Ulx#LWZc; z`|sTq_JLxsezQ>U4t&K~YIg~f4|AKhwL9kq$LJ=ti)v2Ny}{xrzm3rRs=h*sw2&q| zhmIEy1$XGq!RgTJN@rCB8NQ6B63{R_S4jMN#nHv6eQhMjyq^ja5VW;Q^-!}NBGc#5C$e!T=Vfa zrv;W2ayj^}JmPXat=`{GPjC1TJ*Yt_lM1xknei@`wQ@PX!A{E}Yv-vMhv@00lfQoH zV%Zw_mJIwsKv4&U^XiHub?-eRD6eWLihXKUqeMsg$!YCUdRNh1)=?TVu|;FN6q33i zFysRx8ma(BJvJhdzepm^CC{s-(W$NE3>=-Wr2}eqsbdy7Lq@bLkkMtQ5!oa}!t>s? zh1{iP@-x|}*JTZjio3<*aQ$QiU{a){u~`+*acqwe>utZnSv`=qk%o`j8Ng12^B_fa;yI8aYGoe9QD%ozmci;tqDsur$UULd&m1CSJ$yWl?&Gs7tB(p2e9MZM+Q@d9x*=?KXAm2qzL`a-0XXCoM8tWqT-%f_Ybxpd2L(iPK$rW(5?i24{Z}d>{LYY&vpTNVf{>s|Gs?^RO?p{l#MH)<m@aM7|2ds=f-EnRXD^y(a?|D?v;i-xsiiD?dAbG-Wn?excX?daX^s{j zdPeqTia-?0I<96fS&lp%{EaI0yRSdypM+%t07P4}moCkf09Wg2_Rd(F$tC#r7@odzGde4 z5-zCB0?;SrSCa(4;Qmitztevhk8@}rO0z?~I}Z~E?Fg!cD_UT08mzc zp*&nXA@&0nq0}5`z(IaKHz$?F16kD$b2eEuU`3ZbeU$1c4Wc%+?kqd>k%7q$(6>44 zoSJkC*!$Saa3Rn;mWg84Zlfy-j9X*mv7DO$)8v~l1dZAQKWstyXtLr87 z_fv^b_11-87`?VmgmBuHFFgWrRFG5>@?CQLX(x?g? z$I6^qe{G}yoy*SI>ZNx7r{etdMz-opo$ub-q6B7>&slQI}`rzCEmgZ{L9w@e6kzzqfoC5g0t~$HcKrAbR#P+HCC)H;~q1 z_?IsbwyH_DwS59CPssxf<5cqxn~{rUvl$^cZiQP4+(C(-i78MD>hHv) zNNecK6m2Xb8d{YzV3}+6Fic-&Cb*^}WK9H}bmOWLE0>N5abecEZ_`i3L|9i++E58! zD}epzEw#67DV`?;kc!w!0BL#T{Du@oI|P*pD_QrhE{~xF@T|I@QMEmx4jxz1AB9nN z`aipTAaC!Col!+?y>E>x_22^EGvj1uhtsGz4hi=qqKx9%RTW7>EH0NST%)cC6!9cT z>)Godu*YZGfI{-a{`S}D8{aB!F#6ue5Rr!=cDD_oFic`bG9LMZ4YTh$CXt6!NWW$Y z%7+NkkJ&om&;Ik6JGmMk1q~zsF=6fiezPc%n{a>Ul_s#X#%(;JGa$tltKBZx%a)g4 zGdR^?RX!@Q7P9TAvFmPu?Yxv?XZzEPQUOj=>q9~gPrhc6)$#DvfVTa!KIED6KPQPc zRi9EQ4^&5Al_7qt)95R9?0WFlszJY_=SHD_e!cRM@{) zG^v$A)mPd*$Ts;6o2f|O&7~)qa0nR5LzSlp+LDQsz9AnMRED`3*={G=7>~sa5zm@X zn>PE4?a*@2FAY4^Z99RK?;B7s-PvE)p-7Zzk2tE$W^Q?!Spq+c=94>MW+(_X4^Zsdv4Tdg zf}eBl4lMtgzi{r{xG?J@W788V^PdekK^^gO$*Vp%Qdy>wjH476U`CcZ4)BHnZ&br) zxeCY@cL&!lCiwzQ)^L+YPaC`ht!WdETvsr!a?bS)y-D#elE#1asA<)7OYi3vAt?Ub38 z@1z0$k`+DgC?HKrcikEnzDOY2kZ<#oivw^iaKnU+oOCti(ib&H`zJFd#*%5AYV`C} zHdWhau3>B_Y|=ixVr8#8;5m@kNO%^-$1ztX(W{mI(modLZzJId+E7)}CvUfwqEA&mf2%M!#;k`wzHe?*wvmAw6l?v zy+j&yNzocEs|l>RHJiQgnRXi8m4(w;wI}+SLJ520_gc9I2LncZEWVyacejgis+px` z{g8TR@$~TWq3B+}m|nb?p3&1l@x(*%LuU57-?oeb~Cq3u*=0iRu7;=GXw3p72%yb@5^mFm02SE@nYlUze~3}K>NQLCJ&9? z8~RipM(i;+kh!TPB_MWHdZzMCnAKS3{`s1*x84zOQev6EAq~YRRG><1Dh}y=< zt_x7{l$!*<+24Z^+wWK>LA#NM_I~IX>u|m*+rx;N)19VQRxvM(ydfvUaml-Z5J5bjtGzWkOPVJw$(!%pNHZH{1 zgwgPt+P;=rMK?DR0Lf&{KIx6L?m(pDLzg~c6+|syq-Y-&ir9>0$#_^@m>`(vq<>qt+(_XDB2D)q=ca)t^RRk*L!HSO2mPRp4qva8bec@@XAY5 z$5U&aVdC9d zZC$%z?egxFzCfy4;TINbUOPtwzz8%BP!q}r)ixH9NhHkdbbC}_-9nU!SNvfId!T%rZ zwTlylusv=|I&#jZLL~)bySZQKF<0 zGxSk?U`U-U`rPMj+-LE<%`UBNXQ=}7?1qApySg(Mqt#Vu>^8Q%n{TpodvEA0Vx%oT z4W3`fkLRTLYXoVct7LFmPRTFAtDV@9xiQ;7kTUUoV45GTZ6>FW)dsDuUt<0OD*E}2+MrE{1B*7~> zGf=B|b*TBN)=HNgfI~pv=k~&&PVJQWn0?mW2JA^*Txrf=P>KX50SN<9sglnJJ`yrr*8o^X0OZ+WFK^SkuVGhf_zb)d>4a)EX5`0 zDT4@E5KUW=N)6iG&D=;N-lhIPc(%BL)i+h#T_EUhg&E5Kr*LR8i!mOIosX)Rhh}Nw z(!{F_=o+UwvCy8uJ}CxgR1%Yu*&=NymRSys;}m~ZhAjmFmc02#Px_EnKD7%eo9GRU zvzZ6KMt_tEES3=_wi}q^wV8-exl**SL5e_98P;o7=n%FYtf7CBl(m9|kQ!6sKq3X! zbpy&MsL46c-X^B3LAtQ*sXZ_%aJ36@`CpeCxnKA-A`yKuD z6PcXl&zET5t(O57rsVrPDE!-HY>Mdfs z2;v2?92w`m;S>oIc|h!Tmt*_Er(|gbnIX`5z3EMkK?yMHlb0F)I|Wjthtva_nhTf= zL;CCg)rFE8oS$<7Fhz7T2JOR$>x3<_^R~$<(i<2br`Q zU4v-;g;HhHmG;x|4Om-AK`oC?4+5>sNO_*#VpHvQF(ROsd5nvGYc5R=&c`3|_-I~7 z@3k+~9UAtN#CfTISTYD9eF!2>^RoU^y06P8nQ0--#x`M0t6-Hbo)Es6aG=2Z5-deI zw=0dfW26t?%ZsgBIvS&{udlJnu4|(dGoC6%ujAtPQBp;(x)U+<^$V)(XBrBk>o9+& z(!jCGaY!^QeG?m28Rk1?=N>{!id0f1SyNDfLzD}7qGt)B7Z0)oOlaSh2%%W{qHN-! zl=z}B`qB%^*m*svJS#%pcB?v4kiABeJFfyg=a$*h#& z>y{|t$QWqogjl$Yy=b;w$lx(TtmN(r80c$RYuGpn!m==3ot1jdtPH?-E^*ZuTx&-pK2IE6+B7u%#R>tCDbH}yB>YbZw_r9C-U^`@qi z4A(<+w-s;?XCGjT>ngvx^{f=ws};==N*<`+LM6m_J(C4`-5foF|aY6hmo%0Pn(xd{ECNu=zcY^=kzi`Py7M@URnXv0Emw)i>iE z?||Rc{{|2PNb%ReZ3d=PYG_+OVGjJ3ky}m46_|u?>03yZtZ@4B6e6!~+d0kdn@L5+LX{8@MJQnn*`BJY$%~-g z8$!bDaNL3k-htwX`oViJ;G}O)jn-u{M5Hg`RMFUXd!RD>&_>HuK=43)gpSYK^^-X> zhG~2MiLGTY?IY(htR+mz_{%wd57E(}kI$=V{s@o32QbZXpL~mXm0`NCmO)v7rk*tu zt?GbIj?{b7q?>exz|_AfY6nRC+OV6R&6@kPbpAwvi1Q~El0gqR6xKuey@!ZAibV`b z(+9Y6i_zXBO-U2RBZ6h#&CKM(eZS1P4FoneM19795hhb)jxGxX zrPq5D?K0CF6yw+^t|#DHi%ESP_QM~rP6CskLGUD&?m|%=^@yi|IqgNBJIHvRZTo zl~MiEE7|VI)L&zy#0+=*BW?ujbSu`npT7-qm#}wAgb5KQ%d1S#lLXa5iYii%A4@pE zc7QY>*XKD3u~6-t>TMekuY_U^T+3;cX1d}CIgPzRp&x0xh7euWlPtUmr?gclsaM$9 z(D{QO@yZ0NL?@wNuns#tV>2o=Hj=FYi6dM3VVaj!7X(I`P``3%VDu7lR>WV5r>1sQjM!a=SgyLZ+>Mz> zE)~|qSnlC?De+I_=h`KHFOdb>>X#}azU5>T#ZSvuHuls(-Vw8jwl5}t60VPux=+CO z%L7mA8p{-tG4IAMTGl0!{?w}a9d(ACO}uJf-g-n}X7Q@m`MezEiTLQl`)UPz7+Ql0 ze2M@RpxAljju?cLNWCB^u_dtb8Nr0x6WfCO_@PWU5ULF-@e=;)Gio6lQ^r3^83f`= z_d4tm9)%6cwzY!|oNyM&BM7WZ^ajnZIzdI$!#<>@=$~hTt2xPpvBjFeCCcGj=aN0a zgG|dFd5WJ7LA5O!YdIIh|Jt}M7J~7oJLwlk7wOcH3APv+JTg%GFT=$BsmaAu;N3z;kqj)M<8zT7)sPY~S3yB8oRTyum?ba(h8 zu#&Y8d*2nz-fp$Xk!?4<{3#asIhMLJwrcF2f$>xY)gPnaG#(v221Z04lA# z=ePVl3<;N0o8>hdt=y@v_{bSM(#@I^8)#D=zDPSn^j)CHP5<4ySnl7f%=O!7O^{kO zy;T1j#&rrzYp_&{ieAHAvT?_l_UO@aV0HX@AV~s3OJuiKL)~mY^&Wl4XpaBCB~(0| zfUm+>bp%HayKa?!&Du1D+)J|i?w@r;8d;iGT2u^$NHW+%(aMOoG_9_edrKpBlLd=- zozMlaw5?w!4ZTsz2-YF5h`o$iAcpUx#Y6kTV0VPYpGhdr3zOqOB} z;(uzre=l6s79w|%|2FU66LrK2dKONCGIH(SKnGD46BJWKUWx=OLB&5uAFH!0=as9T zK_tB5vs_Bn)=mi%Z2(0R12}rNyaki(Tn=+l&ksYlf&M>zjmUfSq=DM?f(w9~sCbme zUk~4nfaftcus5Uh!CL2{3G|t=sqpkSeIhJg(oC3YsY5{ZKG_N?gdtBc zf^?fxd))8-sk852?aAq{tCRYRgPV%|rHFSWWb5bG^s>eX-}{7UeasNnatz8b+bPBi zuiup$u^<2$NxKSKfJRztE7HYA*ac;~NKNjD>~1)oXXN6?b>rJmZH>$dI8c&=Frq!y z#1McTEs*i#Ku^|Ak6tDx)FRgh#K-F;If{@xMJaiX0baki9{PYE(fJd2xvGt^-2W!I zC80}d<6Sl%W0R_}6~K^W@Q`c7@T)CP4|LixL9fBy*%;lbhyVGANeK23;Ay|bFn0Br zxJvtdOe%NxEvJ1Hw{7bh=i{ceYPL1xXC=K z6JY6k#xlB@m&WGs_m_fd&jLMZ5JM6U@U&TO5K|bY(qBIjKWbe2Ys=~9E7m{nU~yG| znpN|#drp6?1=Zz9?+JyEb~GA)}0@2&Mm8k{7I1%mQ#y)&;g84vg= znqI;{id5a<8h%KOdo(SP-^Wyf^nM^yR?k_O{&uRVHjl^0>x}966w>cHFDSy6h9%0x zA$&;P#~CPrB=AaWP>EEoL4JF+A}no2SvnV9fy<$&E|}|11XAphwv#+&Ak4+V?Izii z>3R?vTNVHKeJr>_;*9Y+{|Pg2>?!goUwm>(KdPG1-XdNqEcZ25U|_HBqK`tkx;4_- zsAl*o%lvC~vl$D?))1VI4yW@E77`N?wd=YI+CT830ulbuX$g64R9kvGR;Ev4d454a z#)3hNL1nm)!6dHc5Gwv}P%#cERqX9z%$D-y+l~c6IJ4bB)*zTDSH*~(-zZUuT!i1j zpfJKlG1wi~Y{dc$E>!N6dfbHI2adLn?yxt(lot{R{=V9;B_@}nI|%35`6w=igxF<< zyyCV@d)TW!h-yMEncyAKwdv=MjwkKb8y554AyhB^`=Fr1Nu`{UyCmMF;D(ktf5?gZ z;8|FN2>+!xH!M&7(YDr02V)1s5{7+v>l*%}7@{$}BXspROgX5tJ|ck%Nh{ekgX*{BO9^KnZOl-1c@K8Hu2lf{I%OzLx5Y_~M5{sZx(Bf1rzk{u2q zIm6chF6HKaI$jkiXM|Fp?U(^Tet70@+MT$`~-|QO{ArcHdNWGSTT_P8Wu-iX*3l07F*V9o!jjJlfwbPB^<(aeEQv?`=z*`)EV zCQ)<0SesCZ#pyr9Hw5hhI4e!!LiKt2x~@6pwDmE?+TKk_KfPLSL1^wEqdss<9$U_u z1MRk66@zg2sr#;b=0y+Z9!l{f=45(O>jUpW0LGsMIT#F)xBc<^#sWRmrNRcK8RW0r z=|6zcc8ntkg3T*N+fnP-M82(*KsRl1v;0mdC5dF?vV(;%#Hyoa9ys==c*|IAr!cY! zX#Ck(voGcML6=siSVyOd0_i3yJ&)elfV!g28-=|V+e;XT9Y1rNdzagIJvXrC`SH%` zB>TuZ?+H+zn@XhHpe+*7u~*m@|1H?$@jEFgsWTxdi3ViayoE4)&5nd5jjs5l@%E(gv7ktv@!)88@h!jDAu%V z=i~14&yOHQ+@`H1SqLpA#c(_W7$lgU1%+{Jh4a*Gb*QO%Ccsb@l(ysr><0BpX_J=c zwSxVHSDgPOHa_)NRB-i=Cd2O&Ue7x2-#V&K1{zqGb}8(Hko%6V zKs-ItduGs}+Rk6vgox%>+OH<%1#sGp!iVlnyivylJ`H_r*=MThBn$s%+CT@MRz8`o zx%NiOmHqfxG~vxvF?+>s+_&stC8|9q<--Ls#?;1-a#fjO3n*^*W_>ICKO3riNxYoA zQvN1K^e#!%RI&Awp|AFJ49921-t>}DD|SnV*Uv|14MMXJ<0(A2o<4cWi7j3jISFP? zz+*I=lewm}KMoZEayciz`1+|3y!aSlb|dCloo5tN#Ev$&YN3OuAB8jih{Jl$(ETh< zdVjBDw}=M3{^5$)2^oSLym_;Bj@NB(M8&^0H*WZke}GqkKLu=(y)zQ*H$^6e#+Q|% zo<&GWlV~RQE5qr?VL4p?eYMtPJC^PH?S;7p>Yv=t;r|etN*p{@A!SYDPiFX@E|zo> z?62E!Oo#v_d+uQ2 ze?rLB4X-VgrqOC@cw~%K!791&4R;fYj~@G!%Rc5|{Cuq0+EV7Ncc%@L#3P&5$r5f( zATU1~G-b`4)GT5Yl=CvXQ*3|A8mK{|iiQSyMWs^ibGm-p(vsZD80;tFi#lr`3je9^ zto;~_7U#SB+2aG=$TjgsMCP%`!r$1Q1v#}*gp;eaIZSnk4Slwuw4KKC(73w$_erJwCm(w zb`27J-TdUNb)f6-WzYpvfkJfEADqzQptoHK!1 z0fG5JT2EFN((%c_5Zp%LZai}jqkz%^*eY@5=rQzHi=gN09|I(ANv81Q235>u@~%g{ z<@}cLhqU<#$=NGeKi=6WC0*e!CvVoZI1D7ECPSN1H+SxzjjrN|=&zJ##H zqA!*bjZo3f68EFefojmz1Nv=+HKowp*WQCAKE0XD&)>ekQV{fKt*}%OAZisPKX4YL zwWqHWLPvdn$Lh*DP*sNI;$WQco6EVr*`L~1z`a|E`p?-_LsG+G?@dK(13Egb;CkF4 zRhy(RFEA+f45PZ$L{6{1Ce={aDnUaY7tj|t6`=m4&%0_q7wAe~(FL9pNmF}kn3J9! zziSK$Y(4QXXDA|!h$OJr6D5pWMD(>i9nkpO;|=_UrN-B&58m2STCp4VNW}A7*81-; zugzXiZ{+6JvW|OZU<_b2yV}_CuB73Z;G@J{5P#Fm!bn1_KIr_U9Em39q0YuWRuEV96{q{D)Q*1DU=-Iu40P!7k2jTfWB(-($R+a9tor{$^N??$9PWgu~j zR!A#NKRKzGa+F@_a-rO)Y%Jqy5npp^1mM9`HNkdGJCatGs`Dx}HibgIC%| zg?Rn84w>!!SgFzK#Uw5E68vbGw=B8C{qCnsNE~J%2_y ziII16;Iamrh##>Qt=GndK-cF13tyQipGN>k^J7A}5N7?~Ga1+*Ixit*H>l~G3}xAu z6D#60dP-(SUo{14kCO z7qj>594ctEA%eivCEM$p58E_84iq$5EF^9gKYDZa`4SRcWbRe6rq7Yt){S}STrSqcpU5HKM99&ET?_Y z(9I_~@%qg@()M57-gEF8(M*1I|8dW|(*cRon1nk+MV`nSN~Bu)s!-XhYUA;ILYEQA%~Y8NobNsW znQW5^QNeyXy?Oe}ZqiUF({)0_yuU?kmyx|| z25~V`NCdB21(n%D9(In@u^*p}C*YHLkvVb_0Nyc@zsw0;hVxFTeol)<44xJy)Av{3 z(pCR@Z9;eX~Th@}_iJtqHgB0Z98CP2}YIm}?r2q!=Z^DW{JDMZtQ zxZ|IAMb~%ylOL`M>+YhgH6t>U&r~&4oCBX?qz3j2`aJs4!N0R>7^ z$=|t_K`o%Ko05UKK_md{p@wvvUzeh-5QG;@;)2JjC$9Q@b;DPGqLD)t?Ik1F#*(ay z)8a?k@t}yG*T1r`aOgjOhfKDeg6%|)s$QUN6MN_C$Rn`7Ie#U}-W@aC1q*6xQK@66|w z#@E`8scMsaH|B;EB!K(jf1l*pb!w7X0e!g8%p8|0sxY2XWwpau$pu7xTTOAHHCYf7 zHz(mDRgblr_e5-XRBnlXNeA5agt+C2$+7${aM=?UT9Tg_!J)v6bCG3#=y8cRk;BPx zye6<5Na`|_&m2DZ4y2@;A1lbM$V1+ z{grZJ!8BrJFBmqC(?@ALkW876;Gg)FQ$Q1N3sGXQn_@DD4sJ10)|*c@duzi(vJLx2 z%!g3zKa-IuX@j@0YbE>yr(* z1^Q7D4HMb9_q1+g;Z0ntrLmkzIO*-3>_nkL3XqF%OR{Kre)M%FGjCph&!Q+e#i}w8 zGR%LQgV1Fh{~`~nz&V&khQE;Jz>_Tk`iM@+LD7w*+r8x&2_g8}XpJ)BRz-yH5;+e) z_e~e~T$>y3YVYL9WN6KRfQ|4MhH^F%fAwruhY?vz-RmHM-Oqde4#TDd{l8mT9mnL1 zbzhI9hZDIt~+_iW~Pk3iJKa+H*=`+x4fCU&^h8Q&GR{iYDeWY-jiZEc@u|Kjwx!} zGRIXlYU$)gOqC&}e>_}HPaXyV!LxPAQW$I0B+v@C#C4oDL z0@PE2DQ+GS5qXSoSCG^ew_%$_vDH7iqKuL}ePx=McKf`%yD(vp_;`=A)oja9E{ME{ zyFc`&FsyDoBwXV`yQNr@AU1)4s#p|fRh%hMrMMglO9m#%SY`PY!Bmw;Ba?yBf#o0> zB|r%jb`Y43d5H<=>!f)f%nm4-Ta!PJy1AqR^c^liJlGbci z38_vb!-+b&HhosXdB@_3O_EBU-*-QN`9)T}QFa6IHiO1xe6Fe9*lWgwA&bm=6W9mh zt(Qu?#0E)TY|&{*yA2L29g93~5hP;at?iZAQH3tU(j>o%{QaP%MkrR8C%?K7tacl% z&j<5N9F=RrOd*U?^1&&PX7>0SLh_U6SYE*zvyoydc``E&mZ`TTXt$Z)_s-M#oR3+A zM{$V2lq|cVfOnC7+(WzK0DdMjx(AIog`YnD#mmzR{Z?6$-W9A+#`eS2+t#l-5!uBaVMDAerQJ-*x7 zFS%>0hK>#<($^tWx3WRz3%}e7FBc}Xo1{Lyi=O=Zfjp*8p!lB-6MNkwbMD#7FKNrw zFSPY98#fhgr;<)Q&oBhcqvahUTqXXYq>XDf!smy9b{c;gMmCRFiEnIo@ei$ zlU@yI!Vf$uT}ds`5N2(CD;q7wW5om&wZmpa)@{V9&hgToEQr_t>c0?R!PF^!!B)Gd z0YME9Lnrg=AY`?wL`Yw7g;G*>(Mo?!)gWQeuX!^Q6s5?zEbW2U&TN{0iPTAyN6#{H zkdH2jJtcWMKXQh&-J=@Na`wixF)2H1WUwpSsWS_GtC8u8V88tB)Axk_1#6@y3PlFD zO*f(C{;{7mYHjDJiC#kv2~%qpu|9c}K3mobCxKsB+x|0;jFpa4rnQ1I7T?lzvT!5L%xf0B%3=k)wg5_8;>E@b2}#R*#xNg4B}@;<#*H(l~cP~ z-{8iiQstdun3i~yLu~W!U09MvM?#65Ykd@LJnmNpyJ4*9b_=MVBAuN=YPVDB_#M>% zodiH9qMfa=4x(-D;x%w_afD{T8=`qbbFi__U8Zacx<(toond8q}*G2vIriU2LS zI!E%Pi|lmV?u+_{yKXY1cqWf~$Q7dC=8fg`PA7TL;)^J<|8L_V=P^YYT_LQTrsUPs zFodeg=6xwcH6v;(`c(329^2xQyJk?#*mHaqOp~E|q#VrAuV%HO^IP4(%CF{;K7YSV zcQd`pE45<8a|Yo>fxqs*-LdsXL@N5ta@d(x*JZoUa&2E|Vo2Qkt7B1QnwyNX?Kfc1-5@#2DEU3TJEU;#zA0NNN zaT%CPOjwv|pvnC+Z{>YR;o?%&eIJd${di;*)1YtWBl*p49npl?@8s@I?NV$se1?m*NM(vcm7VQ*&Mm%Tah=;9H`WYM|@|+Tu zwEf_o6dGQq8C2`>$p5&zr*wOM`fz)+_Vf1fCh2UkA?a**6905^{rL9sR4B;v(lsdf zQ7-8Ht@Y#MgK*33EpappEhB*^eedhyO8d9_N*LVwB+>6={4PBi7e5_g3v&d++7md5I-I%_16*;RQuU)YATX63A_;%}U zP;iE*_99U;nAsI}rC4NR3W30`Qw@_XwC{B*@SE4e4%u_u^{iBXp`{C@e{T7L5|z-u zFw=l3{UL+}6g}5^hQa@JC!zOSQC2wLb)-j1`4`N0|fdu#SHToSKMs>{*n>G>_)Zj35QULie?%7 zmJ!Qq;Iqf6y5u`G(Ea%&gPzwzvz&7T*A(vT%~}1GJk^53_M0PFrwfT(aNlU&B&_Wr z@Dvn)U2DWs#@NUA;|=<}$_Tu!hE9yYTG3R>fjS&hovYVg~6!OCYFs*Svx^vPV7vpgN6dBEyJe|b1>Xm#Qea}(M)yXCsw@Qt)uRyxKAP>M1+H#&VjhnwzE zw8rM|hRXZPf%zz>l24y~>MK`c^x3XxpJ2H{t5 z+8^shhwN|N46K}g1*B`M%)N#6?pV2qwGc|1-{Rev81j+>3a^9dWWz%4?c2v3wJm)+h7X}=UK~xyx*1VNRcbc> zRQ2H=h}SwYj~lJp9;(%l!`mhbY}Br=enoj*qqNx^fP)sWhPNoM$|3U&g=W)=`Ayxk z+o0_?lhyd+uhk7Y%4#$Q%{$ib2HEMsKU~VegnKdqcBy}$q;J!JOgxs!bx4|AQC0-C zjS4ky6@ZUXj#+EzgOe554Ov7f81}z$=m{v^@Ct>$@zGl@D7~kj8z2IRi1Y=wh`xU< zoeHO7lT&%(qvxx9|0~5bH~Rf=+lr1Klt~Px9&j2FvvpNu~e|)hGi+My~E-YoBCqYRpv+!NW-D?v3PL-q#^b^ zSjmFS(89nrA6yPTC`Ffw{=8qRTQKUvViFuyQM+HU^*dQ0r8=sPkv!M3vxtR$OtMi_ z#TInrr%8iDzGytDy*%zG`QxzhfQblaDZfOcR2?W5Pgz}RPM+tXFar$A2q@y~U$YXt+?tI*qY+SoZoR0j=$ZE^j2VeM3M;7if;f=(AnRE909Q`H-7 zZ#Jx4EbW=BnA9?f^tY2WT61~QWL$Tw?zWmsCVJmU$K?ET!~P$#&MGRZKi=XhDc#aI zFto(b-QA5e%n;Izq)Ib%N(%xaC0)`mq#!BX-Q9i9|E_hP?!$RGYt}rRwa)MSe*3%k zXUEbeQ!&Zh21=EQXhi5z$>8gGC8O)rr9xGWnDrXo&FwjIK_}7-nd8m(3zJ4&?+~xw`zb5~rdxqyYB)m|dEaJ=%;t)-r#+OU8 z|EHYxUvgfJQ0|mK`XN07a-`+prLA!$7($zpq;$HlUPeC(c8wMnNq_(kCwK(6H7;`R z6(CIKHYQvY1LHZix-VBTXFQM4lBeIm{|Wx$B`#(laCcsdyvT!NmQI7rd7~8Vu?cja zqDSF&e=d?@Z7aTZ;GM6HKf3}k`u{94gKvRYehO(qGFdBR>xr;t9%*nW=}A)LTVr5} zeRJin0IKTiGKr}+tNy1$HlkzGK-~T5m7PNtf#8p;F;{f`)eJ}=1OMLw_U*m|q_n#_ zUyT8`*piZYnuQh@<7S)e;vwBMaqZGfxFegr=FpF$|Jyn_kanL#a09vhR^AZIfijL&QxVXgb4-gP)gPmF2kv0bcAR>|9ybG)hD zJZ8&Lj=xGZB?AKd#PsU7VD^11{-3wB7izORy(@7O8dqa~)R+Tqnd~q_SHs%s_Q1d> zh3`!3T;$Ty05=#XBp)Xv&+8WGtH*=S<3-{iXpX}97ot`UI3GNI!K+yiD>I?y-dIm* zn6U~RPAcE};!Mn-hu^gdCfQ{TAGHdm*`=Kv$@yxNzi%z6iJ+T>vCUzBEYQayX3ETO zHjdXNQ!1t90}Tg`at0yWynsh#sb1O)yhGmPW1MK}nM=%Z#Zvps0gSa$OQIMc=~TOU zw+vMVlmz*fHbche-bpR!@Kw>3{N`+`^;Jm^b+7Mxb50ILM)156hYfTx)7XEa%BRC) ze|L6%1&f}ccczWkl;-M)T01AZ&1ePS0G8=ncw#Q8IDlOQeQMg(*Eh$S?K5VQLhOgg z=#@agVp5-?uNl)=1AJ2O2&6?@L%UB(s}1x!DSpIdbaTE`DoeY{8OaXk%RZb!(Y ziFfufiuEuuiho^-RgY~AABk;`8&PlJ$2H3WFXe;-gyD#a;rFLwBK|&GbPx9j#{L0Y z(*6NqX5zi6HsXpa``izAATgn4s?s%S!s(Q0}rvKrSaa2@!($1Ba1=E8BDt*&BBG+fYV*y8f;kC0r)~AFb z=1gmpH?O$WkZp|7hlTLdJUa+!@XwQ~KHyTGQe(+BpLTr2wn4?s-MUlr_k0LwnW#sl z0DK-9qH@40=?E?!=-dm_0`3yGXWfyc-m4+_9%X!ye>1#S9D?GLwVI|SfFbIoI&M^I z3^-d0%C83sOR|a|6Su=O_HnMw5|GaB_|c<(W6)0Gm&ATN-m=Gpti^~`Ndvnlz z&t%6Wqom66^&ea3_*O$@*)3ZE51XWyI}3 s@zQziN0L@GpVB7A`CoBHO{riFXc zkd&exa`zBe6Qps>IxLwFK%yee!wHgq`ttwf+lWA<$)n>nVT2M>9$Hu<`3tdM@hSPChFx>v6SAGQ>r}LOb zuHQMyK-75N0Cd`O&QOeJK|92`6Muv~&f|(SdTfTV|+JET>5lTaEshcZc zpQqIv9L>VtfgsAE-N^^0vAFj7YdgOJTtb}?Zw_TSxuP}F0^|SqDj|I{OGvAX)3|C( zgj<;N+tiqAIAM_xh11h{7Z}rX1xZ-Gh;zvP(0oNv&tDFxH!uIpMQY4xMLUM`!?rhR zMn#wC>%+JxN100PmF0MM2GLmvXDQkJ)dnoF?x@!~4z2zFJ+Mz5nuYS}{&;U>6zN$< z|6X6etZgdU!qHQ3N=MJ!WKyZ@S6N5KAGfmdcd|aZAPjrAgo&(}=z6Sz+8=N07TA`{s5pb;kb#{n?&Yf^M_1 zg0Y385MM)b{?;%@tw<3I#H5{t zK)YB$MQ+lq;LsrQW1Ms6%i?Ykxp>Qj?S0&ckJU_H zM0tL_-nNcW!g1Wy?3k%pD^4MM35FOX=33;1+mAN<6z?2(;`2~931oY~D_6i}SeHH- zo`X=;APC(%DBK4`$s=Ovn9?L9hF%Hub%Ugx;2OzaYm;Z0W(jMiYcDVVMniqAWwsP& z>C`##8pH38lm(s&@PR`=#xd3V@JVA#iW*HBt_iJ(6zm@}H$$vt$ja!h6kkD zac->fKfLhIr6 zS&N^3D#D3-H67aTZQaPI!Io>?pRO1^s}mubGXA`l@2{e3zR@yX!~oHkO(OMt__sZ+ z7!|4*4Q7k^ZKaYsE|B~A4CIw_gF{pA0Ek+3-W4!HF@Z{A8p?%8z#6iW?S({Tbn4W{ z*D_y4bxgAmh>PRY7mil{S`5#jC!9*rU!~R=-{03oSWKvr__)Ej>mH5I!syz^C5&RY5q|A8En?2+e;u zEUc{rAens+^#~TP`+4Cw9Vqs>Pf10bTFtm;sZ`v;eV*L%$RJiFxSQy?3F~+|d9DAi z*(%mj2*2EPsRcbZzF?xEr4ZA+$3xT^LlM{N3hm( zG3GFawJK3B+Zdb?RdqPZaL{xi+SFIBNQ3(`rzRo8fQ8;x`{j?F)tHf={=1V>>V6-L zKDBp<2i%+01^t_ii+d(p4mn?Cp|5r9ebst=s2q~kj~Hc#Or7$K4QtJqIcv?sBQkdq z4=zXA4-2fY=f*fg#QprQRRJyk@OE@UtzATMs( z$^C~MJam$FmO+|xBp>(4a1>+Q^=s9=k=L7qA5DFIYlV4%S}bOs?x*X#7iz5IC(dW`w)8-&U;8P*kswK4VcZG#gE#{PI^TNS#v z@ePsu-M*{S&I@)d%FZ8c`Hgd*wOoE2gV}Mjx>7nPUipZ)kWYsVuilNK0M%9znZc>9 z%U(!yOQzm70=)jlu}S5$0*|6QV7M)dtkNM@*$1=OAtW$_Yy=G1D%%^3Cl%wj)pY0| zP=MBEMS}}J(POaG#OtQyDGV+B@IJoLqdagdlrGFebMGPb-aa`N0eWW!oa+AON? zulNH3T=8=F4~XEy9?>r5P-{}$SJS79DI=A8=J?g*2BC`5pR^hNP(+^G9_Ij4Uf1Yn zi_{XvxISY77>^92LUa|il9e7IHEcMM=ZW=<5m{rQz?d|{|BJhN>`IOFv4xc?z8lMg z=4d<{lVg8htaN78`8dD8*hJ*ZV^tN|JG{tPrOjlLeK2@jT+-D80G zZHEw|u>EE#8j)301$pr}$(&y*U8pT4f_{Mb3^*j9PZYFCU`SJy=2_tCAw=ZSagt zzpBd)y@JER?&=bqccrS5O42OA>^Z?CHLPrp$Wn)UATctlM5WB`T_1n8*~*SN#hp~c z>bKo+4lxX~2rj5nvbPz;RvIPDZf)E1?+c->r#G*gbUjUcnQldZ*aL1MPZFu=x92W>p4%5)7xEuWf@G7(bW)=gao>7|&zJMc%F%Z{Z53=4dw}BI zaVv|ygueitBplC1chQEs-tm@l(O9Zn zH)|+P;q%K;M^(xq(JByxpM%UDNLSJQ z@JZj(hez5HFQ^eLG(IhogwKt{ zVm>ftX7-lqNVp<0pPcc#w%w0~gq_&J4O=*N_fFDiI)~HHQ5xan67_=XVh0tO*T>fl zy~3^&t{BsfjAOjM7}EeP72%4{pPlMD=!4%t`Nm~%37&bSW?Y*sah^n8CfZ1_8)N%^ zu9iqS^Q*b--}ZQenpej;3(*-z*#i4QA!^gdJ01_QYV-KU^^dWoSFoLGnm*n6<3?-o zNcKM01()nD>^`#p0=)P6sgQ%CFh+sAtwwbC_x-N`1c5urE_OKJUYEz~5K;JblF4pJ zR??mi!|<%K5Juc4a8JfAIQ-fGvs=+vpl3Epp@Y?lD>*@ zc1=34Z1&;7ZV2| z!FtHVGjcXvUu8)#GOJxG3xPW)(yS^NvMJ!*j)R05PfBGz%m`7WMUX*8=phRVU24VM z3pq`(EC5r@EWKC(%f{-!DDqk@zMBV*%t1uMU+yT&mz=LPeyPm(VvFxz`wN23UqOi< zSzhI@;@VbnNspIeV`3$tNY`5pN0*ozpy*AlIGuhE<|V#yP0PypyG_tyTf|_YN4(?m z=Gr~B2mEwWB1poW1(%^%?I)GO4@X{HjljnL!%+8+tE@nt++q%k}Erpwz#7CzG^sKPvNNCGRNnl_zKTAFqLky zv=Y1S_OJ*^M<@%!V4Hlr5{I`Dhjwh=!4d2>2Yb52Gqaa1M(G_GAXTm?~ zT8c`s$5KEOKliyQo|tb7>S%=Wsp*0yi&`Y&`wG>~T5yDn9K8nd1a`0ki|x<5jK-(# zAz88}CdE?xXywGH&wad#f`wJb3ERx?ww37JyxRo9GXP=0#*6f72Wi12r>nfYqVjf> zWn=36X;{ijn#9e%TC<*mMm*;hWBP+P0Xd!<{WkO^!MP1wC9%7xRbH2in7KBQRJCjS zKZyAUOm_o!o%rGJU5envrj1(*yH3KKxFk$^vB2d*5xjK2b6v8GjeN9bu|lpUEL6F9!cv^Lg#i?bdQDC0_CHSWdm-WT zU2RE?ns zH_7NYjxp&NR$hjxx(n((G$GsGe|_tIY{WFzfHl7#IqGV|=zz~xbg972uZZ=_Yqt#? z{MeX_9+GVMDVP)a5}U%^j`vlyug<>CsfipM_ML0^Da zL;WC%uVo^3v}dQ84!<3qa5gL1YI|!){2tk?nwar7j}b8bQClWqH;7U2k6qSDRY*+y zmL152%9&l@$U$)}qQnv<-P~`T$kh#J{u#4U zn9hJB%{m`h)${|)e&^MMM&M)&tEQ$|;P{+dGJm;@&jgE3M6C<)6i<0i?-n-T6T{E6 zn})exqWaH0fq)TjkHiLkVcKaVDY-j0-1c2(BsnJB76f0-N)wI%XdIJG7d8oLzYRUD zAR?*VoEpkJ-_F`Fg*i#cJ6Z=yi(2Y2_xD+d;KgeAYng4%={iuH3%)M=U3mdD#vitz zoe;0Mq~qJ?=v5a*vdt(-D^E}9G6v{?Slz~BKF>96-?%R6pACX@`Q$9s>UI+O27PSz z&>26xNo=I6W|w1=mMQI5R!Q9oAX`S%Sz3(f{@>#kY9 zgF$539Wmf@?_`u;>Vvl-T>j$xNp?xZZ&Ei<#Hvs=*uQOsckf81u@vz{i**6Tn0>8d zgGH^?6vTC*3O2`I1sZ;U+CgvTaU8olzoCj;d2|X3hs;D1o<>+44h4XcRbu<=U>9sv z14jG-%Ibwf*xWq#$;4G|%!ND$BNY1E^61eRGn@W3zOoH+I2g&GZloQ|#je#(Ie)J! z(S&BJDVw*Y5X|4$f=mlJ!Rol}!NJ#i7U$w}qi-Q2v|Jp@AGYGtP71zMi%_fUK5p&P z)3>y+EA$T$qr0QXA34)0s1uM1c_qXT({oC##e5@>T`^G9^@D;%*w|B(RzcAr)abhp zPYdmunnv%qea7v_tMd3ziglTpN(OtTx5awnw%a?l<(E^wjb`mpT25KhwQ^B~V&BeO z-7_4tH)Ez6Gjft2_UaUwWlSQHIeiw15(gz_R?6IM{>&0* zZZ0E5z@?Ssao8xLn+QKnh6wW0R=Iyjna1n_b6p!!B= zO<9{=I7R|3{ICe)z2%=q%W%?z+3wiu;TfL??^E&jvpQiv+S@{t1C-;dj@gI~fJp>) z=!f6em|-xJ6QE0!h$7`1T)>YhD2y;kbITgFgQ8Y>1mm96cvVaQ(YmIy`Cp8myyLwK z-g+RYQ^p*RFz{tGn%^phc&|b&g+67Urq4Q~g9Dqq0gU~RK*Bf75A#9?BKI^PNYWEX zrcrTd0DN8rJ zDWu=2*_1<6!c2L3_OYW5_8~BQ!7Iv{9ex@`V+bm%R?YOgnmUzDaf zv@vZ%_miGba44@Xb$wzYXQk!vT^Q1%)Jzaa&s>L|fgtTG^FmcFIaGj<6rnO2N*3IG zk`=bTPMYN#L5PdH9z4}hRoz6?Qyc2kuaCo?HK}0~R6PfjIi=(k)RS6a_Y~!>D?73) z+0|%jrLrBVQvTDQ(u*J{iUL*t*uTO2Nw zOWFQktTJ9e$LAhq{Jcg)OE2xlB=Ps$dUSd~BsMT&KXPNePB!;@l;c?}mvY`=FNEf! zYv^;#dIWc4(e#w`t|7w*1iIyhhQRRjrr`bqpge@C5j{ci3Tgn%PspT#$ZZn4Jr29W z?l6dSfXBdxJ?mNAUu4WK3OQ`Wc9B7qARxr_1HWjH%JA!%v(YKIO!61;)U{1dR(r~I0h}iD>te(p*k?1NXI+&5 z(Fcaa`J3FVEeJC?jmX%YKg;@_8}%2NM0RDo^LN`2r92j7iaGx_`ZnkZfAhU17W?G% z4~7{brerZBLiqPUv_%Z&T`g%lMQAVBycyz+)1Li^)59yMP;45s8KW%grZZz4fg9T% zd|tn7fhjI=gWKFl;)ac1P5bD%*Vt?O`ELbRL)hO%23lCZ|0S=?S#JkF)6rL~8C@EZ z>5km@!`vTiDl6{1g76!_?^;|b4yyWgJg5*KQ=elJd;QaWzm3HQmW8R1%{8`qQUNk+ zcl`CsSH|mRui=`avXR{?1AaQly*J{oXUl0JQkK9vYDp6#c$!N-BPgJ+>yg+OO-vd* z^Ewcqe*ZOk9kLkF&A>@TE%*G7E$hG$F#_mPg;TmrMZ;3ox)|f7`fpq9P|ixYWWOz( zR+7u-@O;0TV<$s5dY>J4@dvAHCMPI511q_fX#Eg2U%9_`Eig76Yw;YQ5+0u1)Ardo zj2+egzxF2No|V4%ubCyNEY_N@^(Mtj#hmj#1L(c{V|f-{)QgO=P0JFRkK~}?;(TTl zRnt6JM0Xz^{5N=2>7$h4qC7MSy|3|_(CL4bZ9jT?(qx!Vi!tPjmk}mcNIM z191B5>;K5O!1cfWBOCLfz%dQe)s~eQ3E4aOMg>mNl|oL8|KeTI**zcMv`HCgGk<-! zBGJ=fm-O8v*wAA`WZY5yTezhbO<+y?wkr*`mKPC;B@6CQm?%T`W*_UX26+Ij+kk|* z7FI(zowe;U>4~GiStXUaPFp??$822Pkx4zLEdM>c7J2^;=YoH&dC&~%Y5zJh(@kSM zBWnCk1O#aw{uJzl#`cxj7PbP^KKa@;(%Oa@OQxR1lTTl8*yuc{h)F)ifa%^6x4J~}Rf z#wzp!IuOd&aQDQW;`>V1z^+|_AsCZh^ntbK=TEV&+c9nE#DN8!W7^+GrIN0{$x*z| zZ;){G%z2;>&soicIUPF}!2Z%78OYPpxx4(y#3&%wQ*(**hLN#kuvAw2&?`|WYc3f_ zru?F3B2=C;POjVd-qMP`N!7DgDpDa4q3Wt!e{qsryZyaZl!pEn3X?6fj9|`kS7#wT z)W>L4C+MLNy21bEd;GMd5m{uWvc`hOJ0y*1zA~coP|y3p6R$%dp2dZzr4F`%4wT~W zIr7ltEC)eVQXH$drObr(hJRdhn{ggV2w;C7idRPF&QISFyM%i?n??5Unp!iL^Mg4h!%B84;D=(M%c3PMJ%<4-B#6^RWTdF0BCF{c-Y+n+ z=z5tdsCW?Jis+w?760mYhV@)OODmnX$LlpCqfDmXY|S`UkIRYieQoV1{9P*@(0Z_aSZQfSO%!38OmpSTObLq zPsw?G84w;I4>(970$Fk+_Kz$Z-bbj2*cbaF?wi{=ep*omAB)L|N0ixnt*YsE0D9!HW;n3myrmYWA#a{J(tFW_23jm;Zlt-iL5EfwQ{rmeX zgZ3x>r61n8`ha;$;|RQQ1cdEw_ezA@W@21fDhQlH=_K&4TCNvDMk$ech*eMXK5n5G z%d#Hu6e-1dV|pTlMB}K?hU#y`INb~HW}Xl zUL`@9{X0Zh@8rx(BMt?{G%R4Lups-&2R>e_CM-;-k1z`7HgfG#s;Z*eUk?_$=MAz{iEXfaN!U69m6rF02J8$E1| z%`j>oaAhhQkkeBw`EO>lBwUA$b_duquDUh2$cSf?gipEYF*&R4ouX+$YAWSNb`GuwR$;Yy*k(xfO#Roxv|D6`T3&vS?#-Sm?;@$dfDpZGs+`z(oj zoe`+J!v!YzDWC}Qoe!1@p6XGjl;ubm{zo`aL)uns0x zGA;q&t@`cdv-HpXy`&9+N|>I~u5JAq@B?DEA0Yq6115L|F+Ff-MJabNK%oV^bsfVk$QUS0TR59D3&flvV{@uX~j#fYr6 zG|4zQSHfaiu<@`;F>9w^_>$!0Wk92Yc-*Qv?t*59K9iJewW1)!aUJ-*B$<5opu{IE zd=6ICvP3l)!v;d7JI;G1Jfi9uRRKLTt+*s&W`|-ra-nbSRWUdnIVlMv>CcTkMS;s> zp|sHlLx#l~XGVgRjCgQba%wLEC|(5Vc@ce>V6XZ4uzqsOxJoCvGDqlUK|2#%TEG5& zS}Sa*SI3fiKGf|l@aUInKWW(|3f3v)ck zXRRne#|^pT=hPG}`Rb|Wf{u16s^c)>7GG2bNROTK-G=`ti}1k7J~_dgQs01NO?k#hr3Xv$UedD6Ix^exVD7wDS_|ZhLO=fXOn;ci415&M81FGLuDPRD*#l z@8GMkWrH=42f>uZ7Mz)@CutrDh(a5-ce&?O1`QC7U6d>B%Vs5>U`}HXO7eb6+setSqXJN)K z_pnI%+5^Vqjf?2?BgI|{N8GJxts+d}_xgU<>!h=EW1!)A{zhkU0sbdbxav8qORSTaRX#Qoftn!Du?XVk&b5kSF;7>A_RuQUf{WVS=4 z*OiF=S%OL#P{`^A6XXPE2Y#W#cO@0V-Z0d3`ww9oJgQ)qZ{9=YhRGF})9!V!_&Hz! z3Uf|&4N}~R?$BhT6iH~&X5mHROMwBEmjx|deP71oUE8<_U^)$3e1hkn^vZ4L z*wYlOTXm1&3|v^gmN!56lsFYavpymz62RzLpQ$!P0Xz6Mf;s(zQV0}~GyTH`M)90t z%sOJ1r|C)sQ3mIqLW$X&L3N*)G4|b0HjC8(4}$ZdS>R0M$dV zeMCvG%q)T+TO#ez6Ld8YZNbp>BBAx;!S{cUAwJgPlSE z>Ay&asA`a!2u+W|#!Iyr>h5hDF^Q=so`T6j+Ey`>%iaUkp4fWqqV_iV4a=tp7`4x> zGf=mf5z6pdTJzNouOuNUtUj?``fHsj$_#YRoDXBHTx(po>k$F!lPtGSz!pq-7vC4* zaV)-C->MjBZ6 zLb^*BpXe!pxO9o@UxFOU@$jnI*|gqpac z;4FgRzv16|0KFCxr)*G8l_v6tUz%_5*2c(b~d@j1O{KoCg%Eg>b>AW`xQ5^($d!0g<{27 zat^(oqcGC97^%x~+0f(`LW^7L8a;00JQHT0*-7?7-*yZi74%0>y^mW<*k|btenjsk zEl>lIWOQM@@omSP`1VP})wHLz>b!AXEUI~8+r{sU(n&3=@7HNm<9b_AbJDcSU;tSI z1IOy{1^vRMakt4a{lckPuj(`L!ih*eGRw8=BdB%F(Id>*0Qg+EkQ99} zfttg}e!PLVLzF6j5bOKyy2aM%3o&?H$;=U1{Xo{7Bn#P;&%(N!5if?Da2Pu|q{ju7 zryy(L#Ec%U2xh|CQ7RQ$`txLPX~6`BM`QTPXxWNchaG5?;8X4~w^CMwce}8~kAMR! z#x|Ucn~z4{I>mm3&L?i-wfJf;itX~a;#6=Dy@*KV9Rj#b{E#?WXur&(J zxc77E3y|F4d}0b8jU|_M^Jy)z4t`cDg!^ZRh;^RtSCe;*H-`uqqw9xwXGa zLHVA@DYexL;lQ`|#84ReBP0x-{!-+^MEX2mspb6My5P_xmgg#?im{L#Q_yexbaw2c z>w_YNLtr26aVmafL{PaQ~*xv)N-A#`0R(pU5%S?h_*7PkGzSt`7K! z1K6wgG2_k5q9^~_pKPXcjCxd{raJyS_1+_qd(67$MPEK3eZ^g(9t!4>fv5KKD{?Jx z>9bRxyrn*&ReGb^j%GnVF7tpM)_M~Db2SRg%5_I>eyNl|YBdFtBYVjK{S>EV96_X? z9TlR>I}npI{S~bSLQc~tlYsa0S8Lfz@N$WrG%Z3Ydim#_a`Hd*#nR*;`5;6ZhFAx7 z-|@_hUi45ey@GHh)-FIpn2iTAp+5vXev%-qHxzKlD`2e?D>B3ld@*n~N1mvm+o{g! zDUVu)2l!f>2#p(#Cro9;W))Jl1XxlWsThYcLZzeqUM}b0D;ISm8Wk4T%DPUP&SMp; zlb@y6&}T~((w2d~k{Dn*r7mGf+dD92wbL!oNLJKMmb_Stl!=Km)_Zg9bt4SkiMC)=AJ11h|6{Cz$q*+kj6^7aK41?*?kEHY94g`UL0h-fhtm5X=6YkR64o5M*oP0o4{*+G*lYWqMo<+nvjz z7sh@0r?|)_e-MQ1k`+LB1RZ4X5KV5F%g@XC`|g%Gq$$aPK93jo%2f^PwX%bWELF4Q(AouWt z&#%S^TbUwpe+SZNWMBA*X?nqojw3Epp@i$)IMIJ+AY!m^zpz*r#NKUkXTQ5Zw^}DR zEcjzs@S%VaOs2ry-|;D~_y(N;7IOMP8vd*5kF1|Duc{bPEu6Va3T$l!DCd*xJ&E;J z@5d5?{sALxdnT#DRy&dO7G}aOz$+qHS~yVPhjR>)g+jwV-R**V(ci0lMr`{@^Fitx z#RF8y?-ikudozSd>`vOnDT60R#lHjuW{~}o-MCPllBGB+$L5@_20r+NB$y<9!`9V} zmr&8Cx>)|eW#Lq81Y=SQ2Ve6;o*#TO)y+-gA!e?!2Lt9uH8^9R0h1u z-}sl+)w{C)wuz%WmtgSc<}}VbpTt<1e>L2&k&&|4y1h$t!rQboy$`!U6{j7x&WaC_ zz8K%dMA;WnThv72te(*RAks>E=~v}r)g(nDJvrK@e>zgQ%y6t*#6IB|;rzlUNSdp{ zDt1&(n5x8*#r}P>HS}hOQY>&_)`BeP%^5D;9z}|0&;YI~G#M%FPk#xSiJa%OOB8fj z323~U?kmBX9*1~8sHucI>|{3v!*GqNT0KR9xlX*+Z=%5~j)d0lja7IwIsP<LIxc|gNr>g;gp1Hg--h*B&)~*ERAue;m zuDKg&>Z4FGB;^~x z$HmNMKP<0l1YwyQ1guJ^{-4eQbWHA1e){3&`kk@J(Z)gexI>B!C?3E(uAA?Eme?sN z@e`iXQq#gu(cu=yEULDzEaF1DKNOd`ooY`VuM>n1-7%cXcZ4_Q>?asT5iqbCm-?&t ztH2m`IvxH6&!*b~=|ET6OS!w%C>%H;8QQNu8ctW;H|c2>iOCz%*{}qGGgC~gE<*n= z!o&G9Q>H-&VF2yN53~5!V7zG!W$AvD>xL5*YM*oQ%W{Mu4KTrWpg-Em(&YDt*4m@nO{$ZP?06bd{L4*A=kQp0TXT0gZ>&*w1;2o zT&8GMzc@Z^Crha6tr!Wuy#4&K1t|P^wLmF5=$x2RjJ?FPPNCi7qwU&1K10(g!0$%- zEO^a~VRv4c$3@I4Qwn6-GdwI$!%B<-vzk;K#A{KeO;T41Gv8#3dR%G0l54(jm_fQ8 zoBfQpO!G`i?B}LooK7zzCkUZWKw$TJXX%c##d=sy0*h@%xlT`i35S#+jE~E(CVt{; zObhUbL>>s9eS>4PCa}<|X35`Y_eIV-`7z~}-!V$+84RZ z1p}S{gJPdNDFY*l=3k1Ra}=wS(6NvlXw?(bx+_IM{*k!~qjc>ylh*9;ghKmZk9RE5 z5(Wy+*%jtzrqikZkpcA9 zBLsSkDoI9kZ+s)XNlV}A11*=Tj6{IrBqO~KhoeCP>p{-FvG5P#zJ=xMI?k-0S}%C( zsosYsGU%a=CupX!bE{#Lo}D`F>(wq5%T^qhHwwE^RRMck5X7C3V$ViMGI#0*8IJ#x zuWtE7EYepuMN_w^cNJGyMywl*ODIPDZCl&{{XsHn#X=xhos-9h;`(6QwY&leyWx7} z9`m{PzOUY5J#g|r>L7l2z|?kLBS=5O+0=wjuTFO*N&7gzt{Ig-d)oq6j6@mAaqZkr z-djXKs$$B7_P6-tMHs-G0hqTe6_1hEIBmhzOGk6j zo#5a$dId3c1~00xGr?&}sl;GAJlAOvpNSwK$YSIA1J%5+Qi66n^6oD{LGoeNVoilw zd4gh>fV|@k)ofI^qDomDHo^Kw49&}-xiPEbZuZ2qCRzZ6IQaIk7U1f|cT+AzWd08T z)<7x06PMuTd_Hk7H4-j{)1mY>vv)QzDAwqe;yU1UA>?&RZ?xZQdqZMgGv1JxKLMH1 zV(9rrcTFUidvZEEgB1=68;;*c+rw&XYhQ=#sw|{dr6IjG9eLFm$gAX#D^(ih^xlE+tK&ylhOQX2c9(Y%0-!-b^Ut8Iu_ZVc0PJ zM?bDPj$`-L|6pw!9kjBL-;#lnW=_%0!s@y_Y;GvWZ1DE;85{-kgf8RyF}< zBD*#V`Rqg5pO3Kwn01;) zNSt11OUtq~7espdkBX#&j&!1HX9iJZZZ0uKp!*Qmz{}=cnF&EMGmS{hgHUW5f!Kt| z34&~%k2%HqGCn(jI7!Ux1R^tIvY|wyF3d#7@JD0)a36cY5 zWVC=@LK4%u1k2i%VR_v$6xZjY>CS#Ua$gq`;}4U> zsF@jRqPmd;kQph@A~7lmU5Lc+dtcZFXQYnVw zL+?%4!#z^Dp*^`P+%Fgl_sh>5pAoL%nc^ zdf*E6z!7=^N9eIgLY<+9aE2aW*nbzJ!EV@Te;$5}(NGVZ!G4jsa6J*prgu`28D2XQ zye(2dI0yQkCUG(BpiKj9d7c)k#He$iq<%{7r?Qo-9$PCh;;6OIjF?4)N?w>Gi^iN3 zUUMQH;^1FiFTuySWIv7#ZL5&kn1S>I8A$I)LqXIae>xb@-F^G)e%0{V|T=Oy@Zwx+?oyfS%$Qbn9$KglK_~OKeD5=gvZf%BK zx0yAm$gj@A>V^`0bYwdk@9f1T+c7-x-GD9fNZi7vW?5lnb(I0D3qcN)otZ#*#x01< z@ZKMnI30dw6jL+9a7Ftt9O%aViAy-tU4tJ^e}b*e z6)11WK|y^wa+u7i%|t;}9@f>Z#;@mo#HGR0a76~h;DpI9>v@rLGw+&vdFaf)x)1m> z?IOk?(;za5N({-gniZs^P^yoEeP=$-DU*u!AjaaoaKs*CH2e^Qfo^oWui?_j2^_iK zfU3(s;hU2m;hlpUu%@{LMfEwzug^q5V-|`Ub5LBLi;9Lq8SJ~UWgWgc`vuw_HR9p) zO^oq)M4if#SnRF!J)-s`nH?rd0XFN8!XE6w-HEGcxl@ZTj(sdMy~>-4QDhkKWHhBA zi^Gf?GEi2RgU!w5`1s%!e0TCw{MPv$8n5renZ84~!+uTw1K5LH*M>30}VfKZ{b0$ycb-Ob zPb0p*{1r-COOV~jKA9}!)@R9v{?pm7aM#`mx4#z=N?Z(&biG0AY@<33+CJ9g$ds6E zp{!zcR*W+YW=LwJQP>EIsmG=iY-SX`Kl(8mzlGoXs`1H*EvRTN5E4_^nuXGqER;56 zqP!*>>*`DK&6!Veq^AW#;cj^UupvSc6Zc>?;!*P|DA%GjwG0YXffqNmWZXx(ubi7ygL5@JGajnVzMh&nJH z9gv=&>RZ2x6I)S3zGRHk>y{&d(rl&7VQt~aDaGJukf%Q9S`cz z_MjH+209+r3HaFj^MxMsE7AIpuU(4+59)B_em#!dtHa@YHR$NBLF*d3>cO#<;&2BnDzGxT8bpp1g+E`!)FF=sPkHQAkWfid52z z8*{L_r5Nj5%kj~%9oT*Cd;H$tiW}}u4218)Jv#{RA6!3qzdI24!-*gxI>x*A&>S7U448hp^a72h5G9F-S$q4j1RPCYz~Tf>*&^z_Pg zOyxs_cJdr?z~=stYOW`!jt~O`aZyZ?7`;Br+$Wq5j@3G(6mehWoqF{-6?P`wwC?_z+%J6JxAQI^bosQX2COn`icCk=Xg} zqjT^eHno(CWp!Hfa_ReJU)IXXVw`x`j*-c3SzCNk@ih8gMOncS7n;PJ$F2*C#AMZH zBC{<+`h~L_(y{sQdYqp)iT>CFIO6@VGtm@&0#~FL&S;<5th-_Za7G3&&bf54Q6>E) z*`hNo$rp)?keK;__FoBW{Q5jtpZ|Bq8xr#;pn`Xcyv3M3A~t(0J4T!mv~l|U(cTt( zapHXxR^~|gJ-dzzV4m3OZm285%BmdMs5p-#uOc+cQ6+3!*pa&Yytzm zL4-KFB{Tw0pbz8z$FTb!!WMXh(ZFNa0#D%Z_rm4t!?oTyWtpeYj{Q|da=P==WBGn%uWz5nW^cE!cbQCuvk4k5f`MfmnPB@d#}sJ%$~mA~MVf%m3CD7$Yc8x}g{@ zLzH-MN^qnPS4U3b*Nfkxgm#S8E0EHdf|RCIAu%}(xmew{2AexJW5>bm;xWJV@Fr|I zvL0KGuEEyBtMPWnI(*Wy4ULz6!`+cfnD7m$>E>cBsg9Ql-Z>D@j#$7UGjdpAVRmOG zNMna_%yOd(*zrf$2E^=`rQ|F&3V(D6lfgbXeUC8gxr-;0*U&wF0e4;JaL>_+`;H6f zc3#B8@hf;T*@XemE$O9lN1nhR8$cvBf>?AE@i2AAqtbv(9WobvZcfaKDP1&=QS#iX zdw|yiwZ9Aw9dP&_3?~v`v2npw)|f#ZCxtTvclRtG~C{YhZEP}kJ}6qqq5>c zVoas^KTBfxJxR<&%y1{Wy$73G*PytuKy0y@xule`w51*oDZ* zXH8f>zd9&aKb1L_*%*|R8rIl}47VX26XOrgT#=a>6Yzy;1FeXRA}aIU$yC#@{yhnZ zax+`#G4Gidg&K0Fr`D6iuv$oGFxsb&sGhD6rDP)rMn^C-eFw*%v|?T3DrDE?AgetW zneExgsLw)aeK{(xRpE~F7JM@#XEdSU1aSKt5<{XSM8+U7GU;CCMkwj6s#>c`BZGLU z#ITZYO#G(V2s6BnaE~~pk>q}K;%%&ID?xrkCUR@jkXN5BS$|F|uV^jCmc#4u@3SA_ zx2xZy?QRu1`wydQ_#|$Pp2a=qMLe3ghTh4W7?{3;q3L@Vp1zOa$@>^|-^IYhZS;=a zMDO?w^tf-}@pu>RIy!N6=mgI6cHm%l9cpj<|LpzuTU7bBEsTHvz4xB8dv{RDIcLnV zjjgTSc54T7Bvv3RMnpkCKnaSHGgJ`@ii%W*@qNbptOB%qckg}ozV|)ny!(gwQ~^b( zV%1u6%sIj}{L=I-PCVF$-4&V0(#0c{e@7`DA|sGo9EHr1L>#W#gX_(|pmF#iCT)YT zF=&_+BCYZL6u|t`AVzz?D-9;?{MFCnaVe%PUT%6-U}sqSC~kXVK*KGjO~4GbZ`24` z{nPlc(1AzqD^T2e374OLhwmFs;K;qb*j1H>oQf=D7}Jnu2Za5Sr zQj8V+q`A#t&OM0!r8Wu1Ebh6C3$3Sd=+PeJR;44YJRaHlWaR2okgrQYepxE=N>Y(u zoQ7Sx9MNokQ-2iSJvfDn_2*FBcny71ybg_v3nI0E8$f0wIzc&(36+$8ua;#+a~z?G zhAH!!@SgN4yT^nT55@P>aLHy}Ix}T2|_xIvz z(|HWpyRZ_Pk;f7YIZ4^_@EUA^lbf;t%Pc|3j|Pn>)Mp5_JK7k5SYtF|??wrwyK&?` zX6*wKv%tS$BT7N*#i+k=P!nTn!qt~QBeRTjGHzmG5mOZ<8F2YES-9164YdPCJQ}FQ z;}6w%GEjqtp;|Ny-$TQ2J)Vs`K*P`jyqRsqlw$xkx^$9_ARvZjPMSOF?=;%~Z`P;% z>z~!9-~V5|{taUOH);dK2;x`U2B8ediB|ESIrZYIdf48LTW!DKVD&Dflu&4#fMhno zl^OW)#c_Q1@Bj`;uwfEXba6;5iA82nGJa_}kG91I%mhBb8W@9PbpkHOI9BbG@H(d9 zU8OK^Mlxu)?&J!eQ!us0XD$M#Pc#NlB68XSaw_WbnZ<7Kouw6Jy*DIfJ(ijreKaD= zqmfgcE#?AU=I5}mf%2H(r9f4?aLe-#>w>}*GYPxYp1(}RRQj`WUec!RGC|uE0E+_@ z8zcVBq%(wOFz^3>CQ~IYzC4DkvKXZ4;)H*lTa}8!$}|-4q+OOEYxF`x2F^VC8qa6y zG41Kc>blZ!_!^Nx8?S~R zU}~uscGt9O0yjAP8a>BlhTmm^-%VE(?e!zQi!?8Bf8v&A1_9qRe8EY$I1%#nW6bs% z@61hTpL~SI;cDFfPy%E3b(D5oLV3qk=sT{#*m(n0Jw>?xL5GIX8nn+m7ALfE+iNT^ z1==%$RqrHxz8Ux^wB)o|6AR5Fo@Z3OZr!U7#@!VF~KPexVlmLHVk5tCI2X? zDi%rPl2;}my)p?I6$}hbLZ%^6!b3UX%&tgQL8694Watw%zQ)h1&#BMkZMRk zl0E@Rx&)+_B_gXh0a-=y$S96OQfVyWc=0T!5l1BAOCyx4V9^dl-Q9tRyOD?}ibd4* zSmYPw;@MCwX6${Un_7tAKJ+a6NP{oYBk^=t4Dv z)!;P7tZ#7deYu3X#+M}^u9_ew0nz2L$kJt_yr&!=Ebrh962wrP&p=(C57oJl!v+oc- z0?&r3(Ku9##(`Qi^jG7_he|x`Gva=q4s~zKP~B4mUFUV&YW@iqAD_a>+WpvHk%t09 znry-|tCEmb8HXf86cWlJkWw0hoU&vbs@#d2FMmPP*dt6i2Vs*yPrCcjaca}L{L}jM zIQxfc1H|zEOAy1)heKiK1;DsSDdO>}fpMYjI#%GfS>dzMp^H>1tLWDjy%T62euPU8 zzsG^Qc__G(hWyf02Vab|BPqj z)#$UfV$MG(bUcq=^#pA6B|pilekV7D;y5Vp0d+2u;Tmbf4rO?uuAv0P)JalHGKp!= zd%Rs~!Lyk<-08WBbB(8PsCG9FR2E>jJ_~szDag8;h@9eN+-Ruwg5ZJ zbC7={17F|WgXaEvm~8{1yA(>Nn3ROgJ9xcR@d?WOKyBf}A(-LUo)mF{7+&v52PTNI zd1hoAqnIgb3(LHf5o<5%`gF*=6^|WP{(^`*e?|1|FOhUJ5=Sa_;q7uOmZ|UZ6TFy3 zcOvg0?;;!l3micU9Dz9uTHc_#w-|Y)sfaDwF8Wm3D<>4kVUMl=O%sn`b`1&mlL0EP zFYLiI$}_2>4!V=gzQC2HpO8_KhUk(Q#8k#2t|k@7; zsW|wc5ckIKqN49IE<8SrUF6y_$E7$1iMOJ0^xi(`-rdH4vja<^5xMAkSEt}}OvCS( zMTl!*j|ndK44kX8aB4XOJdr3Z%93bLg4)!IjgL?%ycC4aV93&r%HBK3*JUEQBnsR0 zk=Vu@l-g{ZZ#{>ug(g_sL-2WKRio`>KEmeIQ2`lcEy~wJt@y*uLs)1TZnna%M=Cgr zCr_bL_!i;vlgB+TVN`S*Gkmy);}3TttvC{yxfAs*;dVn~cmlRuZ!AB}--B zPmx=GE~7Sa<7@nU_;Y_&>9t8ntxZBgO%f8SlaNfnq=BL|LpeX4x@^Rk#Ur*V9x*jBl0cuW z&p_pS1BR^c;0p5nFb%hRN;cu#@TeS^d9h~a7Skh+XQZ=O;G~wwrCgVo$0F9g+H0WB zn~HL#+>NyNIZa>!CM*TUG4AX|+w2n<`flUQv*ReN&XxgJYDFy4NUg1oN46mjx%zk% z8j`T5G97!XvSiv#;r-$J1vpy23n%LL;8guSoW6emXX*~(blpLGbMGKd+&>`Km#^>b z!O^-s__}r%4%ZamKvf=gS7srvA`O|9bi+zUN^KI7suPfCj6;ep0fokFeAjRS#9 zrjH3*gR=?eP)P!mXJGM-W6C{%KI?0|oN2(legkeb{etgmkKtfRKJsp*A?r>uvdWT? zU6YFJx>VUbraxbd;%8^}~g6N`ch&Ap&yj}s}uWNRrd+8;X{1bA` z5d#eE+{SBUhM}#v;Bt7KxP!$TVgn-%yC144Bpz zVwa%+JBW z^_%|nPwLa}|F2&E1~LB|rJ8azxpz5Da?;@@Mm+k(HEL0`EN|ypq3^nbLsh$xqt8HQ zMXEHx1vS|?-+U6C)<E7wZ76MK|aZ8i>(E{<7_$^O%IosU}n=#v6`DY$`O@ zBaaHza{3qH2rj^}Hiv1?09wtDak2R%c2%Y!wIm9;#xxwR--Gi_-=L`H5`KMo24B+^ zrZNGk`Uug;oPB%<4~EJyvHBLY2zCY7(2~!q8YzaNDck3;*k73rgefzsG1fL{{C|4P zu=%FZJ@XQG+pZw5JQMMyF^JX2Af_}5>G~8Le{=*5ll2&OyoJR-30q(mcHaza-YM98 z6fBMlWy`fXhE?}CeC{a(+|vlqZH2F8SQ8{oJ1-;}&4m|Y@^?8=^e@Po-R_@($xU~b z7kDzLM^Wc5xcK}OPCnR&gH;9CW6VOKAszXKR52mQD2bPg1{0ujOEQpGmW2X+E_NI9 zaiDT1j@RwS`A5fb`{f1Hblt(rkvfdqyM+_)UNgf*hb$k#9GzYiErVfrbeRf?pj&~M zRi_zl*DTztCYYQ9crkTf12KQWe;WUS&j@0QKSxqYJW9K7;k~6@teh#p-wI;FKt|{% znx0`Rh*6Cmo1ZQJtKZqga0^LinUU3ZFuW}mu6|Z&8q&&>#5IVw>AECj=#!CQNJ6?H z5$VQ6WK<*~vocAVHg0IrjRYJCa?8(WRq=C)0zy}YrBqOe^Ti5+D-5Wy- zl6ojKE{zfyZtgayep~AI8o=Lt?vo0?o{IL#*H~%$l!l2-1_6u)V)!_*G-i{tEZY|+ z-`5&|;rlKOVpJwfxVBJ9HG#kS|9^Tvd|asiH;=cE&+L0-|UwDb~*Vj;>%MzR5xXO6MRmUQ>EDE{04Ac!6F=BhG(I6T8OFHiq zd~WK;!a#=i31XNS4a2Oh#U1G72h_ zv9lr-yN&7CW5~oFLzX&URA!-|GE-`2Wu^?!c2%TH6&TZyYfMGDAqmOcDsm%PlZm~L zcH>ObNueM=9;-&*a+_!d9CX;D?!(8eU3e=W2Cct!j{EeO3;*B#-V%_#0kqY1O^#9O zAvQ{Z7)9BlW0tc04UjVBB9&`Vv?oiUDfBM3LI36s_7&$L^JW4v@5UmtI1<@qQOGwY zV0T>}jy^ez^UdGm?webv@2^Jt)N>43-oWH|FNPh?AcsKHYS+pIW+564)a5n{#gdM0wEllL*M_o=>q41JERK`_ z>_mMGQcL1-xMDXtW}aekby&h+$p9hv6C)pPO}BuUj_F2ResK|5bY=~Mn7UZR*TjnR zTe>j|Ifi`X=?jsk&quC47deI;V?`~R!gzd_9ZM)|~Mj|az`G;=c1&@Q~R$908Fm~y|zqrpo2 z@Z=lpH0B_uA|2UP=}0Y2!q*QDpzPfZjCx*Ue6>q~BJ1LWSy05tGvv4^$QBfxm7AKNC`3cRzsl@c6)6saUSd%;Im~Wobou?`<5cDL`gf9Ma2TrXnO^+OpBKY2<7^#ela5JsI z_@)aHw`bvW?r<}sEX{c=QnRq)Ghx~@geODyaPjf?IC<|VzOFlnBenZ+xN0xHuHJ{E zwfk_WdbiL!57g|!!J1t{%{WxI2M0;fsM&=B)jOpQaY9|UTOK10e^UHfA@)}lV1HHk zHhjMjd#iS0XVosL-Icqr&#(*o^@Z4DC_sKi9&##kkyXj_K{j%D(Ui(Ywjl>udR76_ zZf0TEtzCHBSBt6TK6rej`l%cw0RbB2PKGH$)lvYDRF$x~#zy0}#mqu|&+k|G>*9tc zU{y_sC0|L7PnBLCWMJ(^Xf6LQVFxpn@UDV5!;XcUc^;(Ige$z2kn`onl>U?Z;jN8S z7^M7h@o@qQv}_v*%wx(rg~PNUCTBh{2iKYj4osnE?gj3&{fdI}Y$TN?N^&MZQ3&K6<#zRE1@ugbyx zs$A@=&cp7STohL2Vs}j;PB)&!jqWR`pR7WU{S{{X1F$hWM>eaZ@GL6#Eo$f(bgBVX zx-W)7s{pkv$D|x{@<0E_K#cnS&EqwEY={l+M-`?UDz_{GTLujag^vN31dD647vVg>a#)%umw%91|~7*9m1%+Thizs3>a~@^9p`wI*SvJj^IGmF6_FSjbr6|al7$n zj5&IQp2q9HoAfRAFXFDJ(e5?^Zb`vb?_s6i+;k!3xj5)q5l}8{6v@4!B{5w!H4x*p zh<)NG=agl;3|^_noW+V~239|H zva{%&YejMUHRPA2Be5hJiPWW*#|YK?WX(YdrnY*h_0h7BHy>cE1Z**8iHCzMfPd+_;d%#Pn_xc~3hZ~NCjtp759_upT?4`ResCG4>B zuddA`?Eh1xILn*Vr#~w>33BR4Zlg5*8aH*rfkq2Rl%|{)b!q`L%T1ZcDZs!Lrpq@g z_Nh(N^|;jXo$zOKE7Flwk&0|%n((i$wf}-nOEZ?mJADiz_Dba1 z7YPyeYt#rfpW$YgTLu*XMXOVaT4|-I9?wMb)wLxog{Cp+?nUK?G915u2syeGq?N`Z zqdZQU@}FOx!;`5RjCy*}ZD|&p(Op#;NTy4UJ`y>)MC>X_$C=85Xd0`>lxqOa^+mV? z%kcPD;Pu)yUb+G?VS8X{M3`m3|GjLO)N|l#N)XdM(~R3Me?@jlvbc`L=%Wx>6oItz zRGfNr0xxHtW5zuy0#4;A&*={*=4xurkNsf{ftU(tO%Es7auHCIVjtJ&nmZYfCAZTA zCn48E;CjgytfaoBJGJBxFWUy_Ex@>J|KX5v6)4vtjk0J6U+UuI40l}hb^9~6sRM35FpH;PTz`% zhiQpQJ%)(Ny-V=2q2vY0PR*4v)Y!;!(wf1oTN|Yt+q6XvdFB!1F-+qPNpz=GEjO(y z99AC722uN6;b6tEBN;U?)XNB`Uekz(PDJQsYAd0d+fD0k0uWW&xmFv(g!LpF^-0L3 z3eQv}-z!$(6ynnnZAs3Tbcu2WNKsL?y4Lk6yqbQ7%g-;MusjbbB`HWOPex*S0+R2> zW1pb_FQ)1-v-$z9AZbE$h@6JU#W1{i1evwMtviLi(kwAIjK7yTRm<>^zT~n?9*2ba zxoKT%gIlw%_VSpO=26oMYR$czzv*V>qsC|v%icLGcxS|Rd(_s2-i7CQIa!Ok_jgd- z`3o*Jox`^ePU7UfV>niO1V^g(<51-;9H_{{eq$!~SES=WMLG^uWZ`f{E)G}Z;{dCY zRMTBJTD2P|Yxdww-F|#u|22MXIE~w_7ohLCC2oDsChy~&trKIb?_u%{V>v+DF1Iht zu~KwX{=IJBvNky4gr3L7GS)mR8^@g-d(tp-Fv9E{3j%zvGs9-X%~C57W`_a!<~3$( zsm*}W#cb3Tp#IVKX+|zA(!U+9S+UIKId&;9iV<5E9`zZa@3;kB=S@5ru0Y%DL-Z~+ zW7OG$SygX!>k`>P?4(6A(uO7f|EhWfoUxJ#>KvU%H5A4=UcqBbf9CV z32h@!@pifeQ!9P4jc|v|vh8zHhsC~uW;VlZ=g=*Y7(lKAEhimn9&%I1Y)oXAla}RgwO~36v7-ZMA#WIM}p5r2yAwfy2LmK{>&cVwZtbiU`CSw#&4H z8>91$XT(!|-Z?HDZrQM~adC#XE8zx6T}+fEs}_hSV#PTGg*HXKhkAY4WXc7Fw**sx z1xcMB_k2M8NF{!F{w)ghS;*8SA&m*pWl1ohwM8i;>P(Un9U}jzd!IE4MRCBD7wCTiUmi!9-eRLI(HL#1| zFbravaGQ3FrAcDX8)b;Zj-nk%C5U-^5-(?7VAeIJE@oosX@*Y%%v3_ROorKzg~LF@ z+Xd2Hyf$%%QOBzSF+mS?1}Zba>6ylq^Bo#TYjEksIqcMBAg!3rbx}wvj}U9m!pcm1 zQ-1^(pPa+>#$Qm}dJ~mhWqA0Z2G2(xp<&E z3@Xx5XrK@@5e51reEake41G88cCi(6t`V8A%5%^Fx=aT};7OAQ)woe(#S0?C)gDjO zB6$PE{8d2A7bTw|p(F}7-~57B(-Vxl-eJ=59#i%Yn6~v}%K8D*EB% z)+XR!7Kdnul=yU$`llKZCE#Yx4u!hR9HP)v*?iNcb7j?xB?&X6Ny7{*9$pk@M1aa$ z%jzT+S0}OHVNGE{`}jBI9#%I}%~gIZXf!h&a7 z{$7GHx;;@JCBup^$Dhwx(|iah=k`Mr($fliD~OTz9aE-%r^%D;?1s)rfg=TEJ~o?> zi6+BNy-Nsr_`9{&n~e&A3Uyr6A^7JccY{bIe6=t-6;Dig~t4Uv%#CgO2CZez$}&nGt$h= zhsH4z8p4zDI(+}+H1c#g^1e>dry`|12`P6Iu-{mSm-CM?9e59GXdElP3D~`paCoNS z@Xo*~0kz7gLabJ~4Pz7MWQZ<<6$xVK_GA}oncJ*7O!WY;=QE}BlaG# z`n7U98)VZ=6Bce57S(n@ta{Zs-4#xHCpaU>UR_3r$BH)i3LCn}bL4e_Iyjo)NZ{e8 zAZ9Co32*ZM2*_vvT%$Gfb00lkv;5}ICRNEL!Na5;&q#16fy}V=4c;%b;ltu9Ot{`* z&d2NQglz3R%rFZwXNxo`QWRB5SR+G;B?C#($HX9o0EODCEkK4_`T)0?d@Rqc1TdtT zaY#T5^-lndfEaP_bICPvh_8-DT5S>zJl>7Fz1LCMr$hByBP!n+VAQJmLltU1RHLr18g)HYXrFAx zlxrAE3`(Vjlsyi6M&_y6dH??gi20qq`ft>4fyDpI^*hh$kLuIc>(lx-h!J|2CLE^2 zjKd7K<6|%rUhVSaD-;^{w6f{+%qq)GQUH8rSUjWXF*l>4_YRKT-;2Vk3~@I~E{#J* zDIHz*LieT^J#@ARG8uRYK3L&dTf~BY1g(<~aJ}h!>@(8Vl2(p!NG6ymN((fuyB-AgE&cKr*rRG$xa$ z)wM+tl2-H=<8_W?ABaB@|xZ3n1 z&OQDbhiYz%baRr=*HkXDN|(j|A2kPJW6Napa6|7~ zM!;u9&~HV+ZKg64=7ZhWMPSo)n(u5I%5t;MP7*3|UBqkIADW`#c= zrjKm>oqR3?5*~sWZWR?Ri46#?eI4?=`5Gw@!v>Sbn@q$127uY1pM~`q9DX=v;dRWw z>zq}*d1*M8#9=AG&5w5(c9$6z=M?4~V=%df#o~R|J%CwvKW10^G2`jSlxF~w-XTnS zMliiPiW&D9W?W;Kl>od^m{v!mX5Hc9&l$!H%Qc7@*8rxS1DJArz@+`RHDP(I zN$VmVjI=81DA#6S4^6_cHU-!EEZpm6dG6k|c?5zB2>N+$Ce@3SVGUSFDH_QFuM2#wcU4-Q=EX9(k~HPy8|(Gk%-Yn z2>rR!{1i*>A$Z+0@Hl4Sp-Ga9LmLhwX0YO$#mbr)T{Eq?{roEOZe$?+dVSflbm-$s%#cWPbk#o;)f^Sp=IK^T*%$)R;;d(Qnf58>z=iF%sSuU z#aIPS*5x6OBKwL6q*ug>V3?T~J8KJZzV&-ljTrIP`UL1T!bG6SFpI4F&f3S6_T&tft(fM@0hxYThGyDRc#I+9~ZLt1Gf z((fi=pJ69z-s>>5(j)fC!F4-AYc`=Wyj^KS>DwFlx_%#aR_7qMDib-?naHcj#=iTz z@NL6M7~bB+tC^>=(I6efONx|Bb6OJ+qa2pl7%*T`wx$fhkx5lOhHspc}FGqTTciH6KdxW8-n`tI9-r2?JJRkfTq+{+fLJ^x`a@ zP29t*ZwPjevdv_(?6xz^OXL3X!p7r^Q#s$fQ23rq)QJ<$=Xd`DpBw)ZUsnAmzBK#? zc9j1W=@rS?cYildJUxcvPmYQ)!g1!N+&_pD_YO$r&({wQ;%MC=eE;Ayp1r@1$))#L zC2fKeesPyFOEa~~i~0t|i5D&vy0~dis?i=aD{w`ZQkytwyySwdY_*j|IH?hvR@(vy zv{ZFcEhPO}zNR!MoA))FaS?NGroxNR^&cz&W*gd|&H4x&Y0VSQQ_|>Yv?-pmB$b-9 z5C)a<#4npqMMVie_EP{OI)*K^v60an=)&|z(VMWLBB&zh^Dkk=JBN|^K6H-1MB~6i zJRQ1^CnL3ZGFpu%qm@#R$1CxWHBpU66ScDScrtbmPsZ-!@mL)meN?ql4@bjQg9js3 zQuV`?s2eb#Zb1K=s_kbusa69FCRJ6_Uy7Q6Qq&BVp=zic6+>k(4wa%}xD>{bQs_sD zP&{-4=h{vpzcvfW6$wbFj6-}?EaDAOh%Jqf?fIqN^C%m-3B%xBl)t+R-MeDw`$|#X zR|3PkGTiU4#=FH%m|P>GBjf*HOim=D$__t;j(|o%Z#hI8KtHOAW;gJpLK124>*mdwz{!e)DjI6wOGC2m;isOu!KshuuGh75@aR zT2c2V6`I0Ia7u3Np=mfn(-Mrkx;7_+H7_^Wp=CwMlP!xfWnmbi1U7OQTBFi! zY;0%*a4YM5ab#mNBCd4H$_77RlkX1)K!$58Xi>H0_|+Hya{Pt^5jVikmQBJI4TqFQ z%i?iN5W}XMdK9;x8?{L|eB*HV$KVQ1z!RE=Cq%j&^)9pU(cXS_7Qt0BLf!?0e2YRQ zqz2OOBTZ}$A=05(fq4W2W&{Fe_$b^Ds3NEddFK)G&LK$6q|XE&^)P;ul#hT$&S?um ziDEdc*T>Q}UkoY@amz9%ahSgLC3yA=aY>sUo(PH9($xchTR3j+BHS_qtOe8NyJ)7glTaCr?3xsuYdV2`M;DgYW?&1Mu(D=?ZH>CAIV^`vSPF8J zJBt-=L%C(yJrgCJ&+Af`;fR=h3>F#=*D z1jLZq)n#tQqH{tn0AUal6c9szqI5Drhh?)w)USaU*+Ouws#&sf3&QZPfC4mW4P1)GoB9UF=p++^6DT~eUtEdXSFpx z!Rw-It<(febA}Ojn_0Y_X+crj711X}mq#G7A_Ch>cOcb}hHsvnLd(>1m>i?ZhFIG` zNsh-yASO(6*a~9Uh)@`;KovoZn;IBWUwktdxA)=s!~>jrb_#hFbViFtLTMC|%VH!O z;!w>l+%0~?x$J2Wqu6XZ&>Y)lvC{g7FJ&8%k-y_Oaj-rm4B z5BDRhBpw;%@yIeHNp{ixngZPJx{NnV%~)I=7oe^<(#k&4$4RqYZD;tNAsuMiIf$nd zb;vAD#Fuye178^a7rw0eU-+`}Kd{aC8KU)(NHQiNy)px-#x$9Fr|FZC$rNyL3`<0+ zJ_#u_vnb0)^_y~xEcVLgO`ca^UQt0%9}=DG4PMU=Y5qlGZmruLXlT=Tym%Ls{+qGxZU*hFZ5R1_%Nu zH0sf&L4^V`>ZH$eT6p;Kw*ibKV}AlRao`3+P%) z@bkkTC7AOPT_phDV%Tq20t{P#>J*@aq-1jTzqj3KfL%B z=U;q_@1@RsRNp;koyNK6rz8*KT;oZcd3p?|pB(*7ee;<0wW=qZA*HGg;S@th8xG_6 zv%@&vcmyX{&yV2vi$nPO#eVF1n1i(HM8sDrZhTBtB%+Nw5UtxG;^94y@^R$pJ{)^; z5Jw&y#Nh{raQNX79DevUjy^b!9~;i2Ve|n;tZ%VG!8YIbV%ovLKw7+Op@#C>sp+(j zg71JC9%*2eUV>BPFi2zrO1tpz)SWaLK91sWp9sbIeX{~!WQ!1*fqQ)p?)7=N*B9Vf zpNDsS4!$)rd}}6nNrzfD%VV5cxunc+!2~Bb_}E%>ZX?ZkL56G8Ev^QwaI*rc_^~Ir z3{Q}BT{g&zvaw(@?Pmr_Z~?2q1+iY1qSK;K2kEl41aDvkzJN^{W^SlNFC?!QUpGZZ z3s-o99UcH}9PiXM=<9ZfZ6i_i~a#v z0)toz3}GoS0*h}LOP*n@xQAh19fOOeI;1EEsOy`7U1|!B0JFO$<=RaU}yl9JreL4nvwIpBRGo{R%jNsb(8!*?F6fVaVfj}jnsJ2NsXH$b)HZlW(97~3S6sJ zao7`QPikc3b=3fhHq_yehpYu^YX~@G6T^+UOKoU4Y-H$aW$#@9G0|mTA-ZMTkw9aS!}Hbt(|hMoOg}N z-@xbayC8;a0&c9<&3I>O!kw2tVW%-0skF|niAO?3G;(XwB$sK}*#kSboV?};eNs^< zxoPE)!a@CuSa{C~&DWvjLdnKo>urS*@H;)`AJwN#`=8hE0E7Qd^_%DO&(*&{%tomf zBn)C)P71cRG#5Mx@+2%GQ7dc#3l{yenDh*zd8Pq3+b>J8eXaT2TUW?xf(T zejjwN?x1h}HCFhB4cXxjI1vcC;1Am24_dLlZbcCEMIT1r@>7()K956{X~-*&M}|IL z-gNQ$c*HY3S(k!?HG6RF8hv`AVRpOf3pt&9ROqW6)>1RKwJ z3@=a9$I2A>Jtv+V zLS=u6XkDmJ;07b)wM$T(-?0S0os=?7Ki@x4 z)&Gg@RiDciD^kK#W5q@|g5j#AQHU?2%M2?DG38N+z8#6|J83X<6k%wg7v8mHq3cn1 zv>LQ1S_>U$NQaOqC@B)Gpw?%}_)2r1@1zC_=Os(0FL z-%5*oePFo-gHo*+vbAB*-i85|tquKBuh4I6-z zW9+?+tg=Kzm3)P$svU@`ijo|r!pc0f&NX1(H>M4zXsWXaCjpFOPBbR+|0cNSxnBl! z1Z$IUtxXEx=5UTy%tGnoIZHO}id7@jbsj4mO!^lPSYJTDsRhL?m$17s4`~(2NUBLd zf-wep)fu?ZbQ;6XZUKQpL0eTcISI=Z`*hVm$uL{nx{DT!uY>0B#=uJo*Z&bc4C~XT z{7>ssQ1IWaK7Bs_Wc`l>G2|P6+?23k`PdchW9P9gQ%yGdTN(+b>k4?`27>@5v<%1E z5={PS^se;6I8cFe&%Z-{Wj@k$DM;2ON+=k`>1ns)vFmm=il1LY&qRy7;R0(81VT>u z{SJiuF08RJ5844){aWDXge*9Y0ZTJ#`)=d(z5Uo}$drqDd|4dg%Xu+o7CcjZu;rFP0U5@U_moTji!Omo9NulQ(%Ys!0lcB>@IK^Wfo_mAp?h@o1G7(cAi3lSz zD<00gJvd3FYKg>S+BzH@rkE_mX&@%Dd^<9XsrdHENxYhD z#GHLZn#%CBTQ*)=ZUHZxTQ9omcv4O_3@Qx~$hZk)=u%?>bA_h7{dhE5jk8ZrO0G#% z(GKh={t7Y0JCIkEf$y8XLF3GQj5vE?4KQen8wob=oIa7Rrzj4ROfCuK)9`p1zQz+X zSN_bQScE-f#-#T>>W2;Z_VL%^o|jsYh~%mS#Ok7vrc1^*507GCrAq|b!e?hbfO`cY zQe_;9>n_jBJC7OX0G^H4BD*vZ+wS}?e5v08Vk*BtgfSA4`dCDk$6-fl3?fQm5LrTp znHVILs){X*M)Zv+WZ%qyv9$z4GrihHLZxqu2vvI>xtZW=Dfd4r)wqNy5aO&8Zicj= z)i8%X9H1GdtjLz~qjQLIic%M@PdWSin>I`66I)7wkxes#KP=I&kej|q(NQ1&w!(TH z5fl^51?aw|rj6VJ(%FYwl#qwcZOfv)qK-uwZ)^tFZB611Q_1ADlqOuc!ik%dP=QDt znTOp=>+v~Q113zmhEUsEg|jthkaIm7*>|&$S(1*7vJ|A3CnCK(0qMGUq#NRq!CVvO znCKIct4l%-w{M1Iq#KiwT9J%Y-fER%Op+We7V~zb^n5?Z3K03dqSb0bS-7I563e1Q z=NDfdfmq!R;o!&Wq7bi-Mxr4GiH2yzm8;;rcw;1@_1h7}GVDOKUVD6b1Y$}f5nUXK zsJjt}yc2lay_0kh`EI!7o`NwFPe~hMuCup!V;K|ZcJY9N% z=ZlZgy!Z$&7ayUCWqE|=rN?-=`~)q_PtnF&dWu#Hs{tKL&(X2`0`1E$@M?+Gh<1K{ z@hM)_!7LQ@t)6pcE$)k=E<$f)ZxK@6ST#57_9kZS`aEilruI))GP z9Vl(NiEpZoV`p&zb{lu2u%Zxo#vBw>W@Be%Hg;9#Vs~8u_ONR5vA?rswPj9e7gs5EH^a3yhr#97F!tO= zR&k<)UB*-};5P^)M^O>mPY z>8H!uoY;^%__vFONTV|PmNhD)q7aAO-2!VC^v|}Vq~$7h8S~|QlT?$41VgO!BIlo- z5<7KnKN*=peGdB>_BtM$S+qgSvEgusx?lxXmf&&{%<){Qt}SfRKkY~VtUhhZ|Fk{@ z1^?aZ)93R~*8fNl^C^G{*Ve~;1Y#unMB`*i6QVXRBAEAb9li*sZyqZi6Xx8L7_|+e zd8!G;-6c5r>z@6I@!tx@&a?Lvx*|>MlmU zJ`>Rl+M{s2BmxTDk zO@rTxkbebh1Tel8P2ft-_8b;`qj){v1l_y4IQ{fE@+-5ER2GZ0%6Mc{#UrOW0ekDx zaO%-6{PgTNu01`A>h{~{9C-?}V@Up|4o>vM;mNA;&XF#Q_F_S*s=;Y%pL~Wn+pv~v66V6PDGfK+v~dnQ4yjb>&Coywh?)`9^f}bSEcqrd=*YLsd8WvI#C>Rw{s1h{tgijiu(5l2b+AP7S z{?%CtEG5^PG$TGY9?RCyG~O&U;ZE0O?5fE{N=1Ss7e^VQ5M30B-TGV+LUMX3IY_cq zT0)Q+0z7F8h*6mqvyOfNF=`X@ANW$}WdDILEB}HW6<;BxHU&BN^HBI;Hwx-^qp*HA zcGmC4p8DO`SHBwv9_+zBR`niyQ*#1OdhTJ;JOHnRCMs?{FHCBapt)g%9kBvii!>Y- zZO9jdnxmY3R1S>{B*c}6^r(+ZET1)Jtj$td90~uFQXea7fhu0GZ9ck2ktfZKnn`E} z%n$hcN~N8Xn#z)Mjg-2-wfH%vSo8hmkUS*1fw2Kmu6T6Y6C({d7U;%D5W|FWP4^Q9 zFdGg}YWotV%&NwZR8Z}h*0daSJ+o^-#_BhTGta}mI$XGa9=q@C#ICZP*s0G)0h>W% z778jdP*9nUf~s^eH`!I0fxQ(OV(Tqoixrv3tIR}BWtLXFuPVEOW+Vj!xXo1iqLm#0X!R|=~<1t~fPsAeFmG#iJE2T<8nj`!wH*jA~ZprBm^ZBl; z$IrOc`7>_3{sq_H{3>l69zVbO0ax07!mZZJC~dukmazsg9ie*`UFrn*Q9I~l(Bg`OEe4&-2nvW%+raQ} zNFATy3^FyaAYch^V$?Q90dfU+xM5d8rE_k&hBo2Svma4doQKHEQHZ<~i|s|x`0DNs zY%kh|?L}W%gu4Oc^-0JzCL`C#+s%@&Qe(Z*6gbbRn7!r`7Pe7(VQI$?r zR(XTY1hrc8+pr$6Va>Y?`lB;oZq2uZ^^kHC35J%%MseKHgU5pv`1#ox?AB+C zb5~+nJQ9sbNHnA(xil5YR}yikWH0VMyNUr*7p#tHwTBvo;5Q9>&x&5m*Mks8?%g1z=}0GOi`3ik!8pN-?{}$!AX3uy@s)`7-t(!BEKR_ zQr6R}5|CAwh@JOSv9~TA`-~YVyqbh>%MPHb`4%RZNiQ?O&Na4hfqAkfPkRxAGjCAQ zeiyrp*+|eu3y6u)(SkY!-x0)2G+=&ZSep!n=}Medg*P$EUOG%MBY06FNP^+2;s6r{F=MsJEJ;wB7~_B9i^{*?3&UqZ&)N5EFTQI(hs!;e zaJlC)u5@3))$S{}-gOx_yRYC@&o$iYy@5M#ZldB%IeI7BvA8@bc{<1T*b1k6Nu19pV&yi*>>5YQ@N<+l-@*CXv-tkOS)6-x8fTxJ!r3P$ zaQ4YDoPBy!>bs{$asJ6s{P^f7E<8GhA0Hma*+<84=Fu^H^Z2+{$8hTL*Esd)7*0Jp zij$9y;N-)jIQj5voP2l$CmtLYBZ$p9h~p0qY}`Lqe*nko)$Q^6132|Sn`A#ah?9>F z;KalIQl}ps!s$nc@eNHS>NvgLkCXQg;Y9smoOrb&lSwoa%hy(Ia!cBcJGcO|dl(fRcW}D$ z0P=4qpr9lk`Q@?5)x{uBACEj;BJy-8C@9ZBVObV-mStmCSr&GcWnx!Z1`2hV$k%5e zSD%h-((QDqa=uI}OGIi}JW@(E>-CZdB=THQ9D&55NF>~iM8cgY#NUlUOi?U$6vtv) z2`dH>MG=U+y8}^ox68IyRRm&-Bau)NiImbPq)Qf69I|!s$SzMrc6rj4N=8n3vgB6f zmnUIoSt9n9C16ik0t!igE{~O_JG(LsxrPiBmS&O{>(3c%-p3P)>?@8mZWNRjH&* z>f;cvk3y_IQYeueym7Ng%6Lp!6k_j2A@O=NGA_mAX5&TlTRLFlW`o08X)qbmYKO;Z z$EuS95C&5(W5rAN)oCnxCb8_Dh1EL)t9J^v0BaIf|G4N|NL^eEjY@Sdy+BFtWn>Wi zm3)P`$_PYPMk2Cg2Xc%VqKh5zzQbH#9CN;L%zG!W;GM*>e;O7a?~h{MKL)dJ7_;7f z%z8dxX0;Dfu6G!cf8@Wi6lft8 zmw^O*B4UjRh^dG}RCzR#bxGJ;y9?LbF5|`cQ%pLCVGq$=#3})gfuLQ$%o;ZffhDZ@ z7O>`?L(o2lHRmGMXiq7&uuPpNfSSa#<1JpB9;5X2FF0{;H`0q^g+38o9F6E(F-X0h zjPGi{!Q;0zFf9+j?J_B0{YK6W9f!E4orB9k&CKk^CMM62ji|C%?9j(xdr36XjafMR z>|3;(UW#yC08pz9h7bVaHoM8NZJ!?Z4n){a)l&XCkADT8{)|8xoOUmW(~O)9_>E zQQU7Y!K|%cChXk4I9FHTblc!`6U-)o#DujkoC4C$S=l&q+oDV%#5sz(5{DH5hgHI{T&rf$_`F(bz|XB`k#aX0vA4cL z?5%Bxza4?3+tD&neKGe)g4d{@Azzn%`Yt+~$?qW$UXpAE1!nj^SBc`X`JthJghDdU zK?MMsS4Z%2_Aw6L+leGYEMlsn5NV7=R8b`I%d+t3y#bS!Zg{!PkpR;L1hpv@*X^qe z6Z4ueM%e5-D)>A;+1)`+RTk; zH9y14*(Ye8eY{akTk6H^BRrpdgcmapwR(W()Ae{heIL)K@8S8>J$3sx?l-a~Yw=90 z@cjnfPN>?vUx#Po_wj7x0Xj{s7ix$Bybv~uN>df*8KA5`2p{#BEIa(&3;pJolS|*>M zb@DM;am_>(Rtp`S>AP#vbA&?~gvf%W+jL;}7s^{2^YAJwn^) zL$nOnqjlsFTF0K?<=9g+k2j!s;+a;BcsbFCmhlF(j6Frm*b}^(Y(U%O6SPe|M(1n; z-pn-M?Q|2S7yDp$OiPB&y3>YrhYca;ilX8L6o@gtxr39n`;k=~kDQ7GWLCu@y*e5h z)iKDdjz?xSo7z+f8s=1(^v+yk8uE;3$T6lO%b0=;V-ix0iAXYXfE9~GV+;~2Vh~>u zEzNR_F#^$s2r)$1On&Vs&wd(I+6vn25-VL_}03V26Q2t4Qq7M<7B^y;>xq z^bGWkK)fLm$rVvZtBgiwRSdGL;*eb#k8C#Gl}X5!zcURvRq4p7&XCHhNk>6V8uDvX zkyn?B?0ad*zLy~Zg85Zh*k#DU0evA(RUAf5PZ`FY??87nu?l9;BhOt<3qp=1sUT}B zh|%bdValUWjWi%5l(LUBUfN^CVUKz~IzKYEsUO`0F;BlkUU3$7T-|}~cO&ps$##5E z_9Z?q{tRCfe}-)(pJRK`m)L&yE9|(l4LfdcM+EE64n*FKL}U>|kE5{TZUna7*@kU* zzS`K}L~x5!vK>(++Yw!|1F@ylR7D}NG#bgJ)M>>by)+(~<%!7R21P5iSxG=9H!Y-K z>f@22OW3G%7AcynvUsGICde=|?IUfN(u5_K#2~RW2JyvFh!bEMf!Lx*#PDyw9f9Z@ z5lFZih0I?PaHHWzyq{~u%Idfb#Apxf*J1&@ENWrA^H}yyVZ!kN!;W4II(eRcject< z239&SWNXLZN*e~Ot@yCgCK{l(E6wP&H{$aB9CFfNwz?YjCx_7!{SZtQY`qQ5DkLuH= z{7>ssQ1IWaK7Bs_Wc`l|S71~z31#Bj>ZhFn05 z$0RGtx5KYsY$(R*;-e_In~k)RWF+e15wDL$bXgQ4RjUKgxAZ;0ab6EGzVa+j*HOB(h__v7-CG#SfY`*|^fPs8{c(?cz z_lNG{(yMQA|GX2~k9AF~*qe~qdh zYGQH`T^5fBLp*kr#3Iv}gYTZ5L#L?)X6LAEq?CYJ<qOb7P-R(%$C5tG(_Ir9$VaYuv?pjKF!HF|VC7%z>cA>Jf1iOv-NYuq4md%1LQW}i& z4JXkt@f7pcL3vG8MgcT+#wVlV6wjXeHPm+QDj> zLjszW8ynAeZeBD*qd^d(*`{s;1hRQlz%(fKy_yLK=}@aSta|KHZr)#|$X5&4q?pw` z536ey3(iS7Ps}<;FzXzKS!xg_=KxI3L6{u_n6nRHab*A&D{Bz*wqenene4+_4XLsX zVb(UNRrvnEme27%s~@wr4;%MqY#%Vg+ZBF(K>eJRLCjhQFlSRWZyUg(eF%%TK`g8c zVs3c==H)?{mxo|l8NsY=3^TTIOxwmVWgEq`ZB&dqOtul2?IT!pk72<%gn36l7G3>V zat*-h9EQU&CFj0%_X=RQORYI?_Tp_~B_FR>ASSgc8tGNh$f$}& zR#hyr2xKafkX@0AY$NUPGm&l7s)D6a|0>gvE#M{-xs{m`@XYPf-r_tQFWWDJp^=qt ztkA8ClvttHE{HLVa=Huy7zJX&w6TvtjCwr3{wau|K0Ut=WZr zb$hV4ZWngf6=GLy0ruQ0z@GaB*vqOf#J>7M?62R61NFOcsD2NQ)bGVnYFh5^!}0t3 zar{0vhWl~6e&0qNd%)U@W1^$kgQN02)W1**!^ct=qwMI9-P@0&S{=E!4~OsV#i4t9 zaOmD{sU!E*eQIO&*A!x3bs_dt7h-2+0d^Yl#R2kg(Jts)ZeYaH38!ZgerA>NT)>T( zb}i%UZL$ucd$I|2J>}4M-+`|8Hp;qgqU_Ce2~^d+z5?Cr%P4<+8M>}(D1CDUMQ<*l zq~|g&wV%cDhCN6zMkCtrC8DanL`3CRh}3UGvLOzqpMQ-@t>qjq!jlgVFku^l8&J zU4KLi!=!AL6iwln#WjWZW1Y}Hy@MmS_afy69cnnaA`g~)*(f9y#h}oTg)6TvqIK?> zq9{a_kUGZ6mzr)x--$#@Ns{D+=-=JNu%idI;1qm(p21mo z11uAK0osY0;g$4b+LF$}D?nxefxsey1cFQw53FFFh6(F-xUh`HbrS~seW)3!z_*W1 zA@_C$@@}Q$aQQA=dH6kE^xuQoIRK}R&7T4n;xgj4z`@W!3j0mnsCZL`J(W9=tfviY zto*MFn4{Bh3a=*{u&^>D08xO0%PP0x48^U5YYri&D&AMLGSV5B;bRb<-436_4j&uD zz!K(sqj)rK#My?!NWB}0w4x}a-iboS?HCl6q~qqRpV7VCjHTd&IE}eIvv7K*;quPH z!-Qx_4c5}a$<60Rj{%dTwR*DZsnAxh~>7b6lCdC!zotL<;qPCea`5xR3wSZ|6tkXDI6~^ZvC4)`rq6U~Qx{yh zz;0|}G!U}^U=)Z636PnS!G~;Pw8xW5CL0(DHRQ3hgb=rU;Q(6+)}sY4-Q!eAmXBzX z$Y)pg$up-WE8tO~fZ?#f%}ksH(IY9#T%Lb9MA9^gq+#;&;m1gknrYs+rBMmb+3K;R zII4*}sloic5=Q7*5Ib&W3yGCFuNf}pmuNXa9xGhl6*#$*a|P>mJJ#(EtT~wxW0iFG8OIQcny%xx@gNFIv$4A- z4~4Z^$g4_|bIGpCEbOVwk!{6pLoW6h@~}^zi+%bW>@(zGe?<;E?6zs0emaY21+C4Z_vkwQW z_e&k9-Y0stz16$1r)HOk-zkDWQo9ewYYyU=;Q&sQ9l-bc6S&t=j?twa$-{E-ye=DS zZ5tTQ9uokgj?plPA(iYS5F_W^k3me>q=F!u->)9SbMGu{jxmfabmL)91&Ug);ZoBD z{M>RLKfn4OzjS^l4L65_m)g$aO569i*7hTAy!r_@Uj2-luYSR;SHI#;`(+fpzK)Wv zTPW$diQ?`XDC)kB;+`8Q?!7Km!g|ZPfzr3PQ2zEdbiH?A2v^S?=(=u0*L4fJuA5Tj z-K-m0U6(5BV%Qdid{)S-U7D~HrqPXh@?si?r-L7jW>bi!qo*O9Z zzKPN|H&EPh6?Z$X;daM0+-Sdw>n)dX{l%}i+jtqx{q-=}KFIl38_Eql0zKWgLYskkQT`uGQC+G#9%|bFix{SLj~5D|cd7 zWg&JN^RUy9gPrUc2z)3dPN%2YSWOm0b;(zh~vE&PDlW<&#JUPk|#z@p*nwlEKyhzg9AEQ z3cH6a1?eaMF^95GoAN)cPeH+dxBB$?{FC)>5ThjuD|fO@?E;0pVGy(8HNj*Z!SikdEg&`G)lX6dhwFIAd@0;KY&A_wHMBxcoL!&S;4cpm=3CBCk zxrbn-kG+qS5+zI%?Sg#)9{W7p4lT=q+a+4?24*q3+>QHvM(on>M0`;)qDvAHeLEgG zrMWo&@GQEfUt-ZYt^{_HL!m;bNFfqEjLVErczZ-~KPM3$GiIFwsQX|LUU~e@80@&V z4cl*QL*(u4h`GH38O4b>R7JP2U(r1E5R;zwqG@q5WGx)x6<{vHoMgIqB^1mIZ;+|Q zw7H&>hK;s~3>^#lmX+wATBD!?-nA7t*DY9Npr&sa@0MTV(Lfy@ysyUdp$F)lX~nd) zUxFOj^zb4ov?ywY`2Y5pL?`opt_u}CI_$66kBrI;q|~G!#gKsA)j9aN@muuHHe<;# zrX_AG5W^{!y7(#(v+mGJfDGw6%Du?%Sb^7W!>Yq3_M*(*FnNdZm>}lqA*9}pKq^7Z zU2b7wvA;YAC7oCBex(hTz_@@IT0}eCQ&OY{(i&I79GSJ?R8Cw0Y9d6OxPV|dKScvE zbgd$I7`FFFo(Ct9dfj8@>qGc? zGy!>KNvg_|QCN|V0wY0A3i6C8$g4<3ZiObMtw=@=?^jUx&Emva-OsFGhD|Jzb)94%yIg_RbuAl|(5Vav}FgYO7@*oIEBs?!%N`t6!C+6VL>{=Zz-kR0t!;g{T=SZhi zw+{EL`X2e1#h;}tvBg$CypaxT)Ofv+0ASMNmSA@*i0;SjU4hHD0*B8EyKf0jpGAbm z1W=MsBzCJa@On+~c~uHK^C(C$3Ak1ea@rAcI;6zW$-9hs=Omtecm#b%32wJt6)XPR zuP>vx>k4$;H=uic1G@I>C~Lch^0w>Hzq$bfZ`-ax-+mRwH`j5k`8-bCKY%QKG7=53 zLLrMYL`ydxLdw+tV{}!r06yaWf8SW40@L*7f2gBufFj9{Ck#gK0(c%7x9`!>8 zJQy(G(ST9v-g^dwmZN5*9EOo1TzGXBd+YMWz=VK?+lg#L5{^CDi>qBf!Z=WjdxQKL zRe1QJ8jn8I;_-)CJnXN<{r8oq>ocOhzY0%=>(Dq_kH(>TJbhn>Cp|T2>U)6qQ|*|y zk0<~mTX4-xVvED$@6}d!vP}@PX|=5KVi-iLf*ZLR-vmSK59VNV&%opu#<-o-sJ9q$ z^l(Ty^%j%u2?VVLAGgTGV!{E&R_{OSni+#@i%MqqNQ@10p4 z!qn=ZRs$Gc{eZF6_j1dRr}?+Jhs6GV#x;a#_b?{hLl}1rN$R}GIf5nk1e_dDxlA&U z49WRG(MQl(@{;CA8BFZzte30%j#25@ZYUIeLnwW{f`4N|0tbIff#OLl%Kp3zN-r}w=txX zv8i2hPosOP4Mi?eq!9)yoI!5gCGFv~2dy=?4# zOyCVI%Fp4HliCP1g`(q&1zraa9JNKEl_HaL-GNz*S-Nq*SC8E#1xUD_h}fI)h`kbv zoLgDqbk;TA1dDx4B?yZVLRe!%XENokMGD;d28iK_Zw?mEn7CeXf|XyAftX7Xh`%0< zobn7Dd$1puTE0hhUkSQRFEH!;AOT%Wm}an)C%6C~!_ycB>SOSv89s))(e{vGhXDm- zgjyzHhYG|5eWd5vBn6t3J?_ZPuID;N zR^MQmKKUZ-XSmq3G*$fjg-#~!NH)dc755YsSjgjww!2ERL)%HKq=UNxa~O7XTpOnzAe3_wXIFVTc9y4Ow=qj5+MML=G^V4l zA{7NvoZ_V-zcLm1+WovrR+`-AR?;PiZdZu{Xfi93wA(+r|Myo`C5uz=Kfh0XL_v8L zcHb$$<;OpxdE^=9JY&k}ft$)z0vNMU8btHrVWK*P{hxrCzey(xgBS%`sIei?q{9=n z1woeyA+1Q$@e$avv6sOQb%f!qiV8P$`Ym#7yXZPZU6X*KO}lDIU6n6;AIm zoZclkycU&@!{?)gB@)PZNpBSZqk@vv|;+^Fc1}q&ITe)q+tD~&gUii7Age4D zu_aNWdxtBDd(Y%9m7mn6Zo*DJx8{ ztCdNmPI zS0WL8Hx|)%;}Ly34$-$_5q~=tiMQjCd?yi!x08@~I~hrLQjl^t4JpOxNG?f5TuB0A z=;&4+ix@*ZV##da(5XBPS>>6?D`&<48A0a0R2K5fvr(wa5y~5NE8NKJsVKx=ZhxwF z;Q+UMwYzbsb}x?99>CGsgE)TgAWl9wC?*~ZxINu?3}>F4z|W08pk?wIrd`8uVi683 z3W&MgepNt>xDeJPBeg0Kg#u#EX&{E1UJIO_1qrisxLE`;9CWDK%m^chSr96ja&Qf^ z6vBa>|A*>RQ1IWaK7Bs_Wc`lm&-Lv9|M6Nzh&`$>M z<4ENJ9K5#|7uvtYy@@jP+FoEG)DQ3aEP`tb2nCqgp{Cz!1TkJ4!1B>ui!>;;Xv6X3C<<<7U|(q=&ObSgst+aT zn13c;C)o24n6Wu#61886_oYa=(=tyK;0q^RD*(goP&n+6kEL@N%kQ_sAF#q7qS${K z-t{GTu>|kBRf+r7SKy;I$!`^E6#*|NbfWi=4Z$Q_s}peeXYqj`=Cuw7^m~z2oQ{l= zRAk;s!XbSjZalkyL30Nj?iqxb#qm2JhK=ExlV%O7*etSf6z3;lSl=oi4sJ|OlZsT~N^KyeU3$Fke+FoAFKWeeV#?)E~jO50Bt<{ULlq7b~fQIQ4*zRxEY@ zq|`y2co25BI)D>&xq7r;ZjZAb@5k}Sy#4t8iN^~VL#tPK93qOcm>2TKZu)Oo8&tDeZqdFq=SXaT`>i-hxeF%K^mFkpF&vaZ|6C`m`e-AF`~M~L`5U7vvO8joSn*$EpavAV7X zT;8AwUT!@@6Y#8!!?VtsfOmZwzR)au+-`F~;F*ET%XIiDEU!;sdVK(OBL*D1e+W6c zbfK7K7?Y82%)q6N^Juj^mM}~==7ebwpe`{;%CsH9bqD9fl<^42y3BR^K@6zA145&zI{cwdtk2hTZ zXi~ysPX&ivb3ij!L-bTwp>ph73-n zNS$UplKsTM2F3Ux(J`XvD zeB>GmkZ&l&Zo_UIsMsg{)RC(FI9hc8$Ey$GRNWDLbMF{V-#>vf^`~(5(P@1D+ZJ=*l~BI&;e=WGSy~>whqa z`EC6zi{+0%j8GU%u(RAI*xY8=goZT_i+2jcD{t{+um+DutI@X5fRWWMSc1b?U8fkG z8xu49Y$&7&Uq*mi0-qJ@1R8z<4gwEy%I6XA%?m(TuKwuf(fCavQMH+hM z$E?#{SZHXudy7>;qraIwR8Ao7?c%MZeBLZ(}W=NY-4SRS6?exxK z**}U8=9hTfql50nHPpQ>6HDR=XCIaV6L5uQ;SZV-@R<>yuv7TzbR6S}S_^K}c=y!3 z1Q>QjJ5H|&tE(oVe{t(0CwiX+KEHasd_gt?OLBqrGh=3b5xzBT(#2dE+BF9?5aVSN z!`Fq4J}+Y24ot$c$_$oS49s_-`n3*6bqBHYZVn2Ivas`3I!=`B#hoWVVQ}gd?2ai3 z6(oq^#7_k(vPn`-Pi)eI;pw)}6}7-HEkuyiM+q4VE@I99x)u(Y5jd3xN^YT#?2lB5s~IX?g76G)VEmd7O&|ieC4cK1xm5mf?5uV!kZy zdrN_FbT2pI=)K)Y)5S{gUyLDA>{qi&(oplR9OKq^;{N8Q)`71xK_fL68V8scJCl11 z&!(Rs-I$5LmT$*rwGsHdCIVlSZbNE$GO9n6VRWSjo*<{#oa!q8LmTJ~y$=5uk}$t4 z`9>5^%7vcv5DA@~hr?^aq~!y;$6L@b`W!7IPti2;2+v0z;MvH1JR81`7j&r_eSjCk z_tDs2i{}G%crkbn&xh{G=lHdzk%wp+;cdNk`|9|8K-1JCG)+C!>Tlm~o_vhv@yBQydW@c_R!mwyz^XM@+=$S2 zoLMny(4byRZe#uti)FdLB^_Pmb7*0j+Iw99c{r;>@{zQ_LbnY8H%0Aq=c4{^MZgT3 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

beZ*nr*{;U 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�<$w{_1p4$tQa2AruFY(R+*bONW_n9>W}hLl zRAy#`w;S8obuRKHC99B=V?w{{0pgWl4u;QgJARLN^w%*85-OX%e0RF4p^o#eJD zIWH0JK!O+9x9=oz{Sp8|a~kd$Nx$Um@3jd;(U`9=d$wo^oylFu#n12}quBwZ_SD>? za)n~RH3G>Hd8rWn)IJ2XHSit^Lx!O78+n4cV(%oy{kb*Z((F(H($YZVXT!vtM1XRxP`Z9o||`+5PA1B|^{^%@t_-W|I?xIHOK2Ea;VJ<>hi{dLm~^;snJd_nKQ zX^nw%!*^ED#|2b`G^Sp>XHT+q>?);uX9G{g@d{Gk|L{bX83t3H7!C7i1Ljo^LCU%wYjKfSEWS8nuzeJ@B8 z`KY%vFVuxmes$G6>LZ>S(is__urWem_4B-ttRMyyA>sH!yrl6)RsqqwJSvkirz9~q zWjyH!Oa1N1dv$oSl*bM=mrK>*fGp8L2xa0W>DdRKuf8zGqJ~iC`nv|5VdhuD8z^)y zJ(X>gkeTbM=V^V%=vXRz6X>Y@t-BfYLqtGhtIA={yM5@PgZQpXC*ZrO`uatM=($G< z-E1+t`)}?-=#envYIj5pW`5T16Qq;E4ayNZlRc6pKD3buMd}wBdLU^@LK+Q}40_b{ zDN;H?{7R4o12rY%3j;)WDTtBb6Xdx&<=pEi*~aq(V|_bzcubyJ6A`0@q|~Wt=>7nf zkd*SCT0kI_v4pS$gKK-lS@X#!D_gwl5`Zt`+2VDB#9gVckTywdwO;wk|KUxY(KGA} z*ot%ub9$+jK&`WK|G*G>AaCkjpR;0QbS#;$a9m$FBr-OVl9@lTk4?E>iZ3~xk1>dP zxo1n7!5J0PIbpkz4U^cIoV_=u&$!=$qotOxc1eEm*rHMc&c~nC_twsI?jlr{DX(w@h!7oJrS zz1ebawVoICE+H+@zFh9pr<==qG@j*$0$8R=xCk2fWmi$ccB4B+zAymN7yj

FSxVoeo#-rQx9K?zl6Ruw9$~ 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�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�Z^jCGkS=W$J<@ev(~ZGl?XrsI&4*F(j#e@RdtkZ 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

|a`vyAU%3DTgG%ui0~0_F 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%0AZzi=YJ?Lbojdd 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�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ν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 literal 0 HcmV?d00001 diff --git a/assets/images/main_logo-removebg-preview.png b/assets/images/main_logo-removebg-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1b35488ac3d5a9ed5c24c170c758a2713d584b8a GIT binary patch literal 180294 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�W+9GI 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 literal 0 HcmV?d00001 diff --git a/assets/images/main_logo.png b/assets/images/main_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a8e203f4892740194e39584eedd200de7c74f53f GIT binary patch literal 1277412 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�U@pedGd&Sf&AnJz_h6DVU1r#6vu}`27 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 z

|0;KTIq9_g`F{^x)m{T9_jH>_}W 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≈?Sa{oyTNmC;(fvrbzs zRV`ejZ4>|1b%<9Cpyqp_Z>k*PQDl-9s5hADQMUK>A!>cy?M zr9;mrP&RmzKvhXtLgzP+N(UP5bkDHg8#IlZJM)P}v}vdGDnO;4pjZ)>utMKd*-&2b zn0xb$E$Ua_aqBsm)tc2YsX$dS?3K9-P{MSc5PLFq3j}w3Ia{&z^yHnF8oWfO_sxLH z_@v-*Y%bg^+UR(KkLF zJ-Y+vlahc}!8Z!Uyu6r}`qYyvv!!iqMY5Xe?%S#94C>d89Rbv>6beP~PNk(rU&imZ z*epnl`uNqIIdMY2N4c;8P{lfcl7#k0>KtAZS#%+{*k@_7P*2v~-~?~;&h;ID0*4-f z@Y{!$axAO)d3NmT8>6ph(gef?nl{z8i2|zZ3Gj01qovAT`1o10yn24@_sfCK+E+ry zSdVQ7R0UM6z)cQ%Dxki?{p-FHzlE{y*m~{wgK7~wxsSezdVs0{vzH-2kd~TQMHHxL zHY{W=ttgrvCbh)~Rqq5;eIe{bAgmxlA5=4H$F7`j_U&4})|QF(_ad!|ERWejwHiF5 znjTP~E43?VsgR8yZMMZo-4WUAXISgfs2j?Xdm2zJ@KY%C$9-wE6jSB1Nrj`A?Umid zyjNXr5AvFO0?i57t38rJ5vu8UnYX>Z(obfs&rl3l9H+qGX{zTw0;o>-DHLj)bjFpR z!^f%m+I-8O{N9qCa;kz?rlu&*Uu51_*8l~-yQI#Bk)vJcXklD*p3tg+XyUNslH?Z3 zsYm9016LqTn{e({D8xlU(NPCYX3pctUi>FgW0zoFwr{-2ZR{)R660Ygdi@#a~EsML!h zj6?2CZ9~wG24CR^cqT#Z3Oq-s##I|Nxt{N6oJ{c#o8OJX`8$4{F@`E3hV)k&`@T>h z77zHo{SPU~>jplR-NLG-#$@=)i=Es4F1O5EYtmU=aD|_YDHOr|9<7(zGvB)R{6~88 z7_4vYsuVMv?K}eQx$wBgLFGUQ2&AR{?tfVbm*V{j&m^d^SVJFF+4#GE4TnqdPLNx&X?xIzE|5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_@Gl6I z5Mp(kXL0PDaCsu`Qq3uQ+C|ANseavmTyuHCddS5+i3%BShU5n~M_%zg4Yj@xmY=G~ zZI$_XKNIC3pX`6v@LjWWJ1aTmN)QkiH_nftWsUCxcB#g}&ez*5t;{Z~`| zI0AWU5vsyUP;Qo(q8UQIz``Lx3aWaTQAd8VTvzg>J+UknEEha7@A&Tv+0yY6p8A|Rb!@zGb90YTVgpC zm+=mJak~=YdlhXUQFoLw-84!)8*3X3Q6s9dt`?=6s$s)QNFjGIA_f)NTxqMH$xLq{ z*8X|_!!wEN+SwL#;O>WK2sdJ<^j%SR=vwXK$&+G9W5>Iexodi+B geIE4{oH$wZY-Bc9$lmkf{aAeR(_X8^{9si405h1vAOHXW literal 0 HcmV?d00001 diff --git a/.gradle/8.10/executionHistory/executionHistory.lock b/.gradle/8.10/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..f877778f8d5a4c5cfed953615bc1029fb186f6c0 GIT binary patch literal 17 UcmZSXaNmFJ+0#I71_)pV06J_0k^lez literal 0 HcmV?d00001 diff --git a/.gradle/8.10/fileChanges/last-build.bin b/.gradle/8.10/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/8.10/fileHashes/fileHashes.bin b/.gradle/8.10/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..1497509dd9311f6e91fa32ff51d1b6a1ba0a4975 GIT binary patch literal 29147 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 literal 0 HcmV?d00001 diff --git a/.gradle/8.10/fileHashes/fileHashes.lock b/.gradle/8.10/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..40a4b25ed5fbc6387f1d51a02e74ef9b0f986c7d GIT binary patch literal 17 VcmZRU;pqMJ=+lZ@3}C?F4FEb11yBG0 literal 0 HcmV?d00001 diff --git a/.gradle/8.10/fileHashes/resourceHashesCache.bin b/.gradle/8.10/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000000000000000000000000000000000000..2292ef80216b06817fa51ca1821a103ce8ff33ab GIT binary patch literal 19449 zcmeI(Ye-XJ0LJm-#LBdqIKgOXNtxzlGgHf47fn2yhIu!!BDITIL719aP&pedQFIj) z-V&DyUa}Nz85J2Nb~RJOrj;Vv&CH;y+2p)$QRj1C;u&l^{P*yV{l0En%P`i$336k8 z->iOL;tB!~fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwx`|3x6e@Ij_?AI92QFnKX6 zjbWtbh6}OMcjUl8V#Pb|Www=me~{~tpQDl-S94vlh4#F(O#6at)i~D!&1f$^ueJ!X z4{f&O7Hx_QABD^|9&PSF@muoUf(5F)lB#A<@N=oRds@OVQNRuZyj3 zaGkCA)$2A39Aw5Jq-WFKHq^N|^v()@a!v^C?Moati*m%>Tvyzty<=Lx?Qoc`o}3d; zyIxVV_;an*BXZ7D+F!{`%Ggn#8q!bFK3c!kE7!*E8|mL@pC#9)PS-a-=X&5?+U<6V zy{GzRHgH`rmv+}+pD4}xK_jwnpxvj(rYPZ5-5A+t(JpH}qrFk}F_Y_Z$*e+&+C$=FA~ss>B5r|Qw1=jfWORC&W|6&y_H9hBXrJ4ZBV1?K z(7wm5Fi-IGL@C!5t7zZ5f90;^EX(Vp57VA{KYZkiPLR%Z_BHMFnPCKV+-rD*00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1RwwbcLTv}!`))?E^LdNJEFW-*&n0`PYxRXJq6Yr7CiOzff-1nyuH`j;7Q;OP%7xO#Z(7uXoXQe27-gOh2fcKO-!K zjj-b{6pxli=SVFZ)7BMkJM8KGgui$h&IU^?s{Ax}qdtvJ)OPR}!dF@5M(*Z?8xA{4 zT68Bv`3t}AUX}HhQkmQSi~fUex2pJy9{GcezMP}>t-D3Lo#MoP{Kb%_tHkQZ&Egl! z?gkvaHr~Qt6psWvDJmbo>~YoeK#5x9#$R|uv2D5Q5}H06Uux2)4z1uX%A(#C9Pdqf zqfIguXUg73@)uu^6)k_zUcU0}mB(!LRd({<8Gos}ra09!KOQX5EQl9gn5{p=U+lR5 pJUgj+Y^={Tdv*7m#0vhxBl`BkO&RZV2R6l4Nz2DtvG_M0KLN)Pai#zO literal 0 HcmV?d00001 diff --git a/.gradle/8.10/gc.properties b/.gradle/8.10/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/8.11.1/checksums/checksums.lock b/.gradle/8.11.1/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..05c4753c99b99c37ba9a5916f1da51e23d1da327 GIT binary patch literal 17 VcmZSH&HW+boW$aT3}C=$0RT2a1eE{) literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/checksums/md5-checksums.bin b/.gradle/8.11.1/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..fa452ab44c3c9e733269ab2accbd841e039a28e9 GIT binary patch literal 20897 zcmeI3`#V&51HflAGZHQ7P1L9?kyVIvLD5RhxXg?+dKH_9O725sy0}!xtranY*mm1m z$|aZNlHN*U({8U+v~H10!m_(5vEFm$d%nBRJIC|>0q^tuKF^$)=i_|ld(P*aIrD=# z+b9%Or5R#S{vM0|eu-Y80;m8gfC``jr~oQ}3ZMe004jhApaQ4>Du4>00;m8gfC``j zsKEbA0Y0`P^T5uiu9m@HD27rfh6>mV!-#L9PP;e{MS(xFbKw6EBC{{ODzGYC4Y<7~ zq{4vkYCaO=dvO1HsZQ-t6K?fTL*bh zNKIgKZbJ-M-#!NNz5#Pzp-1fy@jji954zl{P^}7S2b>oI`AF)y9?J!LmI2PX0{PfL zd#<8HtYfZGp2Zt`|Cr#fy} z9&pwR$k&^@&Z*R@IS#npUdT=7ewtqWPK`LetgVonneMdzBK!mktj~T5xz)Ag$$;S+ z6~H+qkZ-%ctnU7BAw0gdklX1UcQc!rd<52a*bF&md-X?+$jx^Fx4rNef3Ds7#rtFn zz36 zVh;`cp_DDQWthlzG2I^r>&=b|S|Kp5@_?~0m~8Zx%9xd9++{!Dh^}_? zKg$3{9`=k6r5o5nYO9i5+G?GBGo0&#;`%Zp8nHF-{m3to2$aQp$j0k>SDoPa_TCs# zZ9c>D&Hyle-~z)qnQX*dTi&>$yRU!i$O5&cFXFJf3-CD#@+5}Loouq9c%Yy0o9WP_ zt8u?Fv`${A14dyPnByP#{S{LCp*?1Cin&hQ;yO8Q)y;g~42&Xki9vmpPd1jge!I+9 zdu@1R*egb(VjcF|aeS+au>HY@;zw*DHAkM;5!=|I(8mLwr?xYr2bAAMG}F+&>|bW5*>vD52raFBQ3lf^abODQ9~F@$;KLS z;>H64R@&~qsa~rc6%~YWpD?hkl-?@#lTGFGn-mQE%%5=i^De$74D77O$2|P5390?K zS^u-qb^l?}Nafq4rNz4LgwY@oC~`hzu^u$5-6fxx(}DKV(>!(<~z zuP;zsY`Ch|l$Ycl_7m}mx_tu7!F*0Ox|YPN8H)n>k&mC!>ltIjo>$U=A-j)kB<;Gr zG$SKkGd^g;?iIpb6pbwIbguCTRhm5mK^^Dtii{@&Q2;aexw zYV5s@Uc)o5c#Q@bwtPw!aiy*#TG78E8wue}iFWGjo8PPShgW^jm;!TDxnXN!gKmc{ zq~_>#j84e@n0c@6T0;hZl8M#Cx2o!$M4-^{E1i_#Np;#YP)_UN8m79*@|=n#M!?}r zV93sLEpb0j%Tf5sr*fjI&te&eD*%SKIxu7c$aBUCSARG0X9hj^_21I!Ub?1!us+4$FmXC5lG!8cD>gaDm2WdNcYV6C1L?XD~p3eY@dH!S;L9*fa#L3vc}K{Af>C;Qfnd zQ=|;++d+D(QseTNW;f1Qe;d8x{Jri$updJI@4y^%H?lEa$RC%bKgx61c$(_FI}`if zpo+Q{so-ZIHs<2TUTV)vI`dy1_VOv|@augr@56}^U@Sf+5h(VvTp9FB(m0VWVNRO! t&3ldy_D=#sbvH2NW;u6bM(n~ZAJ$|lq^}zEv)m^HhMFuel*jO``VU57%vk^c literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/checksums/sha1-checksums.bin b/.gradle/8.11.1/checksums/sha1-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..16c08b215b7a959e546f600f1cc6928043f61a6f GIT binary patch literal 32105 zcmeI4c{EjB{P3@Nj*4We%w;Ibm}Dq(=FGE5=4;59%9IExr4dbJs(6s0GNjB=3Y9S` zO^75)diS~eoby}jUaj@6)^ELkyvtsz!}>h?bH4k0&z{b`$FrM2Sj+JTErkCmT>tay z@^8x-SkAz529`6hoPp&GEN5Uj1Irm$&cJd8mNT%Nf#nP=XJ9!4%NbbCz;XtbGq9Y2 zJI zvtv9aF>z?7ysiXtM-QBjn*6ydE{=o(WzQXq$JvMqWEP|`LVoZW#uL_VkPDoaWr5tg z1mlT6axc{A2N5ARJBRTT1iz6-G0t9)o9AFW`DQF{`d~^iQ)8}g7K zoZD+APQQQH2Dwin&O_b}dh4_6KyJ^4@l@|$V`-@q6Ofx|;oMh|Xcl%v9df;U7(bcT zKYmN)E1J*nOpK>()d?y))=UHIyEI`ueFg2?v)?yYL+|*&Bw3$NeC;K7#Rcy6u*+e&$V(J27GW{O40b zcP>9?gWUK!#xHZGI1FYI=OOoO!?}&w1@WtI(7ZXE#CYb}n(hYip(0q{wHxOpy)RtC zcofj{IAJ_X#eYamaheBm;tz~x3srJEH$(B@2Eg--iPs=&7V#B;@6i!?&pv5fi(yCG)`ZH z+{+i|UpOqxeFy(Q?(hraxl;bx6Gk^AAP*VB_|2a6-}gFm>9~j!}`Gu7%x1^Ex;G3vH@~S zJZ=#`J(bVoFqjvR;_iUeFWNZizj7=P?VpE!WBhiLJ5|(vf3*EUpD|w2!k!z*tCU*^nFF`k0l%mw3j6Os!$%#Wh; zhOr{fr=nt>ahGj@^`o|7yh8EgQ`&ExKOwhM#rb!=PXRZY(RTVrVZ5@+Z2IVWhE`bL z*%0Rg?h;Q0Qa3|xUxD!|KHdUbh4j^s`|IGmye{RcPOvZJdspK8{%!-Qo!1^iZmx{+ zd%3jHWjBcFkbB|d?!Lt97xe7L;gBB^#p>UeIkllcNk0Q}D;12_aCoXK7BT&XJQSZF zY6oZr3iUrXL++2ar-AwKiD|#B8z8sK$IjER`of*->$i+TZiDxqhLXWv?LA4yAomf# z>OY=u-mVhmj;tx5SPfvjanHmb;rh3WkelH1d^4>zO=5`mCCJ^Tu=>qE4}P%Rn|>2= zqfHoZaZVeeOX-(^-02O*+aK$<`?~r^LGE%2<4>6fPCcB|_JllWHO9MEF(tj0e>M(z z7(QP;@BJd5<2W+}x&KG3{`0xc+%L1gS3>TJ_p9!7xwZF|tgVadDQf*^v9;_x;uL298M~dUUpo>hmd zyCJu+!s-v~ZtkMxk)?xN_ZH4iyUo*n%b0~c0-xsxQ-?prELs&n?v1Z&gAWC}3f);J zAvf^G&NCF+cI#N_*XNLj;Nxgm_T6Kzo6QrD>*4otSRv`OSnok}9C^IM&huuqf#%h3 z$L_%TL3%jfYV2x!|J7N@Eid4_LHlW!e<<3Xpd%O`$^R+BDyQ%Z*7wEdhtVF9Vg1v@ zt&qEBWA)#!O!jKPkEsZ$9Gr0{LEip84cUm(8}KRt|E5UcCM}vGG@n zdrKh?#_#W^|IR%qjyZx}S18`!K7UJ@UForVJFI`e6g$tjh)GqYSH&C113GcOZ>aSQ zvuiKpVKz8#H}1TVJ28Ut#~7c8dAW;?DNzz~PkcO1oJks0UunAzay?_b{<)deYpboU zLvB%z@kwIp{zMw3@@p<*D8&$Bk-PPNW zJK*h~`Y>?COP%{Z(e1FU6@I|ATD7_J$=Kvpe9wyoHqvoqt>p`wNigWi`QSI(AOUO-Y zah?}ldeV~TJ><^Z7-#*nv%RXa2hCgLB*s_J=JRi#%thB7Qvr;#e;up3&sih_&l91B zagLaAQJ#|@(0!U755`wXRu8qFN>~BwJ7(g1D2d}Z11CDZ_T%&L>HwQu;;UT`VSOvS ze{ycw%+4peO&N0Qa_l_ZoeQ;-t%Bl^n?1q!T7@kW%~NvddKZk3N8YFv+&u}NLa_e+ zt5|*BQ%bi+7*x=C+r0(je6go}o%e4tgY{kPaQ?oX{sJQh7v#b780V*98;KX#kM4{1 znMn8Vyjs^_eUDvO{dJr4zF1tQL)&kKkKgqnT$au&LmOcIefa&|5O({jyP-!a zA1uyH%YMlw>M%yEZonNS;o;l)|bv@)3ConEt|I@&yZQCKpZJ%LWBxQ0olUUmX zxlb*|MdfL&49WyeAUFJmaq*HfDsu7hNsu4Bgz=3pA2qN|h#Z96K^Wtkeu+55?NU~S z+!n7du^~>&^T50=dj1DkeF>4i%BbBJ(RsiSpZ_Hz^KJ))TcXz+%7xXJ%vS9x+Tzm! z&*NN$^A}&Q8zr1Y$FCtij->cfb;KLm5@CHad|XS38F60mttx`t#~eG)=BQ2j3M)j= z{dpihFKzzsY2wV2;uKilNe!znx^4#A&z3gg=ufBlyF z!ZQHdqZ^8G6|Ompd3tJeUGTx%sUnxVahKRTXIS6!EM7nGve0>_0}hazjN$xCP0fiL zWekw-!_U8C(rlHJd0Ri^F2Aw*s=Vi-L?4c_L2iVfUsboh`Do>iDaiNBWA)XC*p1b$ zZ%49eM&k3QmRbuJk5&{FJdZctPOUnLX7M%?biQ)H_Z!-6l^Koe zx1jqXQ@mekcfZw5%4QXW=ZPr9;_80)C+e4sjX`csgK@n-R=mb^LEj(`HNd#OvS(sI zx)RzCbv1DANWFKce;D20nnYsUfSuN`HpRZ;FmU=UOHNuWmWBs{3MX26%-w{hT6`ordY7;?RMjN7gZ(Dx}YLFW@+eBH4PZkWYey9oK`(h8>bDJzgKWFg9@2}fJbffj`cJw)VZz)#aeeYJrL#nan@H}3MICuX3 zpS_jVj2~#cY(7*U-3vL<0^^=x3r}R564fBL3&QzGLnm>M z0s6U<#Se^oHb)YGBrUS@doGa+(iVo z*E5g@;P=rxlCSvKg8C@rHuHG>mV%aWIxi>4L-H~1W3)1WPMP^X$ldXI&!@6%)#YcK zT_D%Ts{irbG2RfWdJcVF!_)T1SB=#*>(HJ(u>OGrOz>^k74BP*j;`axdYnIzQIys5 zJp$_om18`>c6Wute~x~T@BN7J;G2x0Md~-v>oUgY;e)?InBRLIbYD0U70*EK#)I+56Unw!e@@p!9;kxxLkxX- zB3EUtAh+zqc+_!)y^*eN=(=ymfN|_6fxwOKeWAI0T+YC929`6hoPp&GEN5Uj1Irm$ z&cJd8mNT%Nf#nP=XJ9!4%NbbCz;XtbGq9Y2_43q}{M3H}-=M$*| zB)wA)dNEwiJ@w)VtL1>$T>^pX!l3_!VNd}S>U?n6`oCehOlUAO#XDVT=v=Yk&MA=# z(pfp$Fjfxw4IINc%2@wqd0nolru&rpxbID(-NB}sEUIIL;1ZDQx{1EMu{xMC*1uW1 zuGwt}`EGp4V@vWr;*nn+wtMtqV61#&5CfEL$T!GjIkec^|7OAHanx!KZ3$4OZBog=r$rc>QtbdF3 zZ`U;{9iia2VJJ1Nf0s;2R%FWQ>v`ZkFXXyz7mylAU6V=K!hf?Y{i&O!&sz3<(_j2y z{fj@Qv1St^jCH4+6pO&Qn=)2zp|gBorK#9Y%{>`ScMMowD&7P+Lt0q8gJeAzuFZZ`+Dtvc0w@L zf3dKIS;)J}WOrFbuwPHrQM6Uw~lR|aWI!>|(>~ATp|Ch1y!dk_$j?8Mf zb;(RkiF&<}i+!35TUZ8LNOckUj+^Yd{>@syjn7e{Zp+HSog(pWf5vB-*(m(FbGWT2Zl_FfD0rI#u`0Sr5@DMHrFE2rt$mWeDd5)p zZsr?3 zyzwt6bUmEyjam;-i;vP8+GXbHVBVFQExcPl-mQn}5A$FcYBiviGNsl3+~xJFl(0GF zDYkIp-lM`d6Q6>&14u1I|N4R%d25dBF01966+co-QA$r6lYcq#aaLaVkql~qIT$HS zKHxxRso06rK7L$$@>Oc&=-q>j<41xGgrQXheu6^9GEQm94pnCz>CVf%c4XdQT;SxR zs@4xbQ7ejM5%_y3tvP~;e~htX?}JW;&$i94D)(J>S%g+K`u0Bq^0o$93*8ilY`(^@ z-kiVT;FYM}-`+;`YXY_8VJy0jl$KNIOPx#sayiT@#-}E;&daB)GziV+m&=?*!VXOyhpk?SuY2~JT?YFL~-EWjJsMizpja`H@2J~^HM?FA#EhuYE z!GS!Mu567pbFSbAt{B;0y=nS)!&V7zRZNd1s6)mg-F6tcO?{_7&4?(Mjmt;|OEwTH$rt&^#W#)LIc(&yHm9tL<8#ygGQ46d{NZE$G z6+_m-{=Mha-k)Hps$BDcc2e0b`Px~rT+~t_NmPMg*FtWEou6@$71wXJ@SK#HcON~N zDtHiN8o90-u%ALoU?w<_#rnRT&tQf$j=QT!+b#ru96zzU=0p4e2Jn^-$r^#ydSt#QYhlpw=N3QOKNF;$ zC$v`-Dw(_;zH$Uwb<`w_x1f#E$|{!baQ$jM`TnY4C!y0JKQv1m-DB4Yk}NtMr04Qmu}LSGzYCu4oE1Pu$M?y$TH8TBzfI2F3q_m zv-!1JeDsDBVn$$B0y0nZ1X)1}!xB5aH>2G_>*G0-?l-@Pp4A@V-+SS?0<^pYphXR4 zI`UZ7tS@Q8G4?fDwgTfqD>zR;%LlA2plp6POKC|k^6eWfouryByma$KzCeF; z7Dpbm{LxX#?{BfJAq3rC6o5 zmYg^-`H%fcC zYxa_t8I3g#Eqbsrk;nSC751+dF$jGJdZ~4}(L?=@L449W4Pg!*I)b(9)0GbsVGD!q zz!uWRQnrvsez<0jW2It`CU?Ee`X`(CPYozSD;U`^fbze$OZn^Gh8TPn##(A`b8uFk zzr#<`Na(xKkZt&G<@Nk^J+OrbcS4K)J@`p>mxpipHcTI9Hw|FxQOGGW+RmCqXoptl zJ~WmGrS)%XT5KdrMeE zvmT-=Q6wCd)cPAJTgYcjf1aaY;f#m&weY>gM*gi$(Qv;(j5I`I5$Jw`XIk>>VxDD+ zOlq*vI$Ym*N$$ZV^VQ{>@4{?Ef?YEx)Qe!nCAS>YYNlN40}p<%-jTBYwOd(ouo>vB zNDd?SlPsDeOYC5Kynd{{Jdzdl_en0n?IY9TvU zP?|Hqfvkm(a`@i(#Ia;#_0r!L?T+M)Aw~200sb!gJQYj6XWj+1!2JrKLiUBAh`j*^vKC(K z@ixe~lOp7knV2T?s%U^ifMy(8)Nnsfuw|jNOqn8u7in&82~H6?*WQu2u;uG^3)GTC zA`u8GOTjBB48UU+1c{Yx=OnvoB z(d}W+UvF5svh&!^)s67kA%OZ3jJ16erR5ynp1mdKJBPuB(98KJ3;6ZyDyGm_Ezp{< zrLNHsky;pvTA;6xTZXfe!p|&^+QfwJ_u_T-@aLpf22X?} zD*;*=$ZSd$D?3BTQnNgWAFpcXgk#=cGNlrE&Y5->q^|!CT3@ie!k9iSvUQ% zl1wu_;S3N!1IHIlF%_j1v?IQL>#j2wc1cNyZ)UgAbLl7pJ&Dx9C!|{XizI3bbgMNEXdEE=mjholaj-%}(tO5ml}1Gj1Lgt6bo!7eI@A zVhf6YH#m@GV^KR$x$H0lQ}v~(k&g?lg^jKEh0s`QND@JJ1EnP?@Np{eTk!nLE3<5D zQ5L>G8rb0H8v(T3(2|R%wCda~c%}_c-w~p2JHX#tZ<#s!sRxY}NV2H>tSK$A)?|ye z{_?;zY@(eNmYgf|>u@I6o9=hgxt3U^u(P zsyC!l_Sy57!WsHRw=;z1k8M91`lV3oC5+WLP8my-N}w-$t#Y@Ag1WsfJL3UkluUS`o&fo~3ud~S}xOCRXZW)e1 zVDSiHDP2f6TzD|G04;hXcc4h_00%N_^;h|U)WbULbKeBLShTmvCQSQ& zhZe&jl0;Aecb(kou`J(GbWeuwME^SVoZEyGo!gu~q84}p28Bi;h0+>K-Rg0{^1>Z? z5A{w4CSHPf^uX=NM-^=X(l?X&xD{PM4?=Rtc$#FL|{r?fWH7St`epWZby z?ohL5qw+IJA1`1 zIs4BC&Rg>Q&=mpS9U?hgK}(9ot?-J{8mqcDnOXUk^TZl+2@ls9&5zGNJ3)&pj%4vV zQd3&P+KuzR-cmewK92>YVtwju4rYO<8()KUx3=kb%`T$E`jh#1+0SPng8Z_ zTGpXKyXnJYlLR(F&0wEE4l!tHf$Ib1$n<4OOK;MU#jN?5oj(Afg@Qg>n_?-L5~0_gc{zgk ziC=oVS;Q}jNn4)Q2nV@CGG7fdPyKF*e#q&OAQi4Z!xu0-RX}&MB);+RqfBVs2de}q z)D~wcW9^9)_~N(Gh?8huR&P^PVQSiH!hu>~*Nl{X3gAGN4ff*eaeG@VOFOd!KK&k1 z*V$Lt2i7a3g%AFaBtj_I!;xF%-@3KBt4(%F9w;1|&F!TU zRW^yC_ui~-314I04(jK7${&KK86;L6BaCHYL1~3&3_i8obZRvJM|qps=EY5l`%A(7 zAz8@NH7E`~;6Qd=Csad>kDpBu{KaIz@73_dIrn@K7*~i@kE{wHhe{=s*3iL(>LJNe zAI5gMyE(E#swZCNZ-iC@==-419oj@`>CCN^EwJJc)p-@WFwkP4-`gcU2`#YgAQgqR zl$LKr`d67}64VyE^9$m|BG_#z?N&kSF_?ovq3<|DX*HLh6AAKJr*QXC_U-GHoO!mN zr+!1LsgPt*wQ5sZ3xZ=CT!kl$RP^en&C4b_n7qrvpw+yaWD#~HQ(C*uXt4N=E9_r? zTCROY`%N0V^PeZsYC%Q_7?o=Fl-5celLl9(?4i2@mPrGV3Y)qfi@_B(tQA@9K%tfb z2eSJ$N_|9O@^Xu|iRvnyV_G3}^ja70z*w!LB#A}&8>PjQV?y_HCin$4pGyz7=T2=Y z?t;D0Y7-_|1k%$sS*+Z`nN`vU{5%>MW^4uMe7bsWTa}|0_z4PA;dgK(v#tx?mEYlc z`&T-%JO7&8@7FGwm=!_m2{Nw0{n`>iY4INYn#{z+TgiRNyu`=!OzH2Iy&|Xu?=nG0 zg3{V^=XF54jm0J9{+AbXWI`ep!>7<}bfC|A%Jh`h%ByV?ycvfKi)DU0)dslx+!#34 z0AqFfg4&=&1%U(Eb)}rl<Ky2C2uYS zl&@zkTbbyfbyw!qyG~Kui4>rKNq-I-~u_;5FjLNB)YFea_E+6oX30yzznyTDoAhAdl7dQF?Zw zzD)C@5Rdzuvfib)#RtSts~=jNNKCR8#xedhqvb4^R-;kBxNU*$&OM^+A!v1jRRSrV zir_$IDP5m>y6&xV)qUULH65(NPRaFq<)GDbmLw69WhgDia;9l_&(%%wlQF5mhiuK< zjIP5^mcn{^Nfy?*t0b*Wr3Tp=XQ%vyBEHRHn-rk8xEl@DV{ znp4IKv0w3abwq!nX}0ywQyf)F_n!%Y`5kE?@~{R9bvv?3khQRE@ny|GY?O@xp8?$p zu_1fyjciTOdc_K@)+I9UowJLJ{&3onv@F$D?Hl<=@?UDTK&xMnWNkGXp^PP}@$={X ztyK*zjT=R!$LdmF2X%v;IMTv?SCU2GU1A0peNtG{-I~H-FVebePO>UghnRRBwZPf} z3hM(fgOgtuTfIeFaYJrS;PI7@lH4?WW2rXkL2CfXILOATc1mk*;PrLkExVFk?4zZf za+2O&=B#;xT41jY3f+o>OIYtty^+dMb`E;OY(%^paWyko#09mgNfsgT0Hsy5xZ-5> zkwaq->77F~Lqqs94{idz70JfH6tt-5C@qnQF}-kxm=VuU+rAt6{;@W)IQku0gGlZ` z;kE_`vb((2Xx)H%&F|s3X-1ixW5(J88QnWj3+c6Be`sGzX}utxXDH1pf3e%IOm)=? zs_K2}O2g0^(m^BwK^&Rk$YOQgnsMh=IUEpOGoYowXTEveq8aE5$aM{CkR-xGLrQDf zfFb`xN0jgWo(Z3Za=RJ3_j+KuL992(>X(!R?uA?ImtNCt+nM$e%$gupI4kJ;AQ`^v$|x=Ei{gcb ze#6J}Ou5VtONLg`5TxFctVpw9#3B$jQGo+l3;%6}{i_wZcLgcblI!vbJ8IX0(>qmX zBVN)uhc<{iZ@&O`uHd>NEzt4Bl}Xt`Wy?qZy_{t%AF)dQ9s7w+xJ6ZZ1GFrYNwElA zORTVg5uLQxr;j=t7Dw>=3I{7>eU1bp1c_x0_K8RlMAl5QY&vj52ZEhWc(^&;OP7l9?AUqH`OuUe3frN%MQ)}tK^oL*;?~TYc5qC z5*p%MeNJyyJNM#TofWj~K}=An{D_pXh$_d;!|F#GZ*&Y)*D1!c4u*aKEkmx$evD)h z_H^-s7R+*PCP?_(AmJ_lQ z0%Z}*kL0l)rFCT7Iq3QP>x;F|4b{u;1QOHTP^*9391Ol^}FoL$p2v!1%bIV#e_izE>wqA0DL;0cL8(;JI840(&T z2S$f)^w0vIy&|!E;0!=G55^mLtm=|YEsI(FBC%@u8Ijuu?@sB|w?WGvj2NWQIfDaP z3;*qj*+Q$YK5;6UD>~Zk23SK#7PteTP$eUGfXt#lp71SEiI{Hmd$yo$|9UQipVOrM z{4f_Ue3Bw?vQSzTNuNgonZ9aDT)ph)bRu?OYk+qGjK$l7gaUu(bP62EVvRXpNNc+( cEwN*49~JLdR&-UGfhn~3_K+k3ix6V{ALmFeOaK4? literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/executionHistory/executionHistory.lock b/.gradle/8.11.1/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..6bfb5df8c138b68d4cb4112aefcb5fe552f515eb GIT binary patch literal 17 TcmZR!PA&TJ{`aL@3{U_7LXHKb literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/fileChanges/last-build.bin b/.gradle/8.11.1/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..f9fe537e125a40bec9588886c7d674792fdfb22d GIT binary patch literal 28847 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 literal 0 HcmV?d00001 diff --git a/.gradle/8.11.1/gc.properties b/.gradle/8.11.1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000000000000000000000000000000000000..440d621642642c5000fe9bcde73cf4272f9bde50 GIT binary patch literal 17 UcmZSf{F|zu3{U_7Hqr!r literal 0 HcmV?d00001 diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index a2fb51b..99148ba 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -41,4 +41,4 @@ android { flutter { source = "../.." -} +} \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index 399f698..91333a3 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,7 +1,3 @@ - - + \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index a3c597d..5dfe282 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,8 @@ - + + + + - + android:name="io.flutter.embedding.android.NormalTheme" + android:resource="@style/NormalTheme" /> - + + + + + + + + + + + - + + - + \ No newline at end of file diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 89176ef..58af68c 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -18,4 +18,4 @@ subprojects { tasks.register("clean") { delete(rootProject.layout.buildDirectory) -} +} \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index ac3b479..6240499 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,8 @@ +# ? ?? ??: android/gradle/wrapper/gradle-wrapper.properties +# ? ?? ?? ?? ??? ?? ???? ?? + distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts index ab39a10..0a3effc 100644 --- a/android/settings.gradle.kts +++ b/android/settings.gradle.kts @@ -22,4 +22,4 @@ plugins { id("org.jetbrains.kotlin.android") version "2.1.0" apply false } -include(":app") +include(":app") \ No newline at end of file diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 0000000..fa0b357 --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e2847c8 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..f5feea6 --- /dev/null +++ b/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..9d21a21 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lib/features/auth/screens/signup_screen.dart b/lib/features/auth/screens/signup_screen.dart index 896e3db..484be0c 100644 --- a/lib/features/auth/screens/signup_screen.dart +++ b/lib/features/auth/screens/signup_screen.dart @@ -1,11 +1,11 @@ import 'package:flutter/material.dart'; -import 'package:http/http.dart' as http; // SnackBar 등 Context가 필요한 곳에서 HTTP 라이브러리를 사용하기 위해 필요 -import 'dart:convert'; +import 'package:flutter/services.dart'; +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; // 분리된 서비스와 위젯을 임포트합니다. import '../services/auth_service.dart'; -import '../widgets/email_auth_section.dart'; // <--- EmailAuthSection 임포트 유지 및 정리 -import '../widgets/auth_input_field.dart'; // <--- 중복 임포트 제거 후 하나만 유지 +import '../widgets/email_auth_section.dart'; +import '../widgets/auth_input_field.dart'; // 회원가입 화면 class SignupScreen extends StatefulWidget { @@ -44,7 +44,9 @@ class _SignupScreenState extends State { } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - setState(() { _isLoading = false; }); + if(mounted) { + setState(() { _isLoading = false; }); + } } } @@ -53,14 +55,14 @@ class _SignupScreenState extends State { setState(() { _isLoading = true; }); try { await _authService.verifyAuthCode(_emailController.text, _authCodeController.text); - setState(() { - _isCodeVerified = true; - }); + setState(() { _isCodeVerified = true; }); _showSnackBar('이메일 인증이 성공적으로 완료되었습니다.'); } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - setState(() { _isLoading = false; }); + if(mounted) { + setState(() { _isLoading = false; }); + } } } @@ -70,7 +72,6 @@ class _SignupScreenState extends State { return; // 폼 유효성 검사 실패 시 종료 } - // 추가 로직 유효성 검사 if (_passwordController.text != _passwordConfirmController.text) { _showSnackBar('비밀번호가 일치하지 않습니다.'); return; @@ -93,22 +94,56 @@ class _SignupScreenState extends State { ); _showSnackBar(message); - // ✅ 회원가입 성공 시 로그인 화면으로 이동 - await Future.delayed(const Duration(seconds: 1)); // 알림 잠깐 보여준 뒤 - Navigator.pushReplacementNamed(context, '/login'); + // ✅ [병합] 회원가입 성공 시 로그인 화면으로 이동하는 로직을 활성화합니다. + await Future.delayed(const Duration(seconds: 1)); // 알림을 보여줄 시간 + if (mounted) { + Navigator.pushReplacementNamed(context, '/login'); + } + } catch (e) { _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { - setState(() { _isLoading = false; }); + if(mounted) { + setState(() { _isLoading = false; }); + } } + } + // 5. 카카오 로그인/가입 처리 핸들러 + Future _handleKakaoSignup() async { + if (_isLoading) return; + setState(() { _isLoading = true; }); + + try { + final result = await _authService.signupWithKakao(); + final isNewUser = result['isNewUser'] ?? false; + + if (isNewUser) { + // TODO: 신규 사용자일 경우, 약관 동의나 추가 정보 입력 화면으로 이동 + _showSnackBar('카카오 계정으로 가입을 진행합니다. 추가 정보 입력 화면으로 이동합니다.'); + // 예: Navigator.push(context, MaterialPageRoute(builder: (_) => TermsScreen(userInfo: result))); + } else { + // TODO: 기존 사용자일 경우, JWT 저장 후 메인 화면으로 이동 + _showSnackBar('카카오 계정으로 로그인되었습니다. 메인 화면으로 이동합니다.'); + // 예: final token = result['accessToken']; await saveToken(token); + // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (_) => MainScreen()), (route) => false); + } + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if(mounted) { + setState(() { _isLoading = false; }); + } + } } // 간결한 SnackBar 표시 유틸리티 void _showSnackBar(String message) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(message)), - ); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(message)), + ); + } } // 리소스 해제 @@ -126,14 +161,13 @@ class _SignupScreenState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - backgroundColor: Theme.of(context).scaffoldBackgroundColor, // 배경색과 동일 + backgroundColor: Theme.of(context).scaffoldBackgroundColor, elevation: 0, leading: IconButton( icon: const Icon(Icons.arrow_back_ios, color: Colors.black), - onPressed: () => Navigator.of(context).pop(), // TODO: 실제 라우팅에 맞게 수정 + onPressed: () => Navigator.of(context).pop(), ), ), - // 키보드가 올라올 때 화면이 가려지지 않도록 스크롤 가능하게 만듭니다. body: SingleChildScrollView( padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 20), child: Form( @@ -153,7 +187,7 @@ class _SignupScreenState extends State { ), const SizedBox(height: 30), - // 1. 이메일 인증 섹션 (분리된 위젯 사용) + // 1. 이메일 인증 섹션 EmailAuthSection( emailController: _emailController, codeController: _authCodeController, @@ -164,10 +198,10 @@ class _SignupScreenState extends State { ), const SizedBox(height: 15), - // 2. 비밀번호 입력 (AuthInputField 사용) + // 2. 비밀번호 입력 const Text('비밀번호 *', style: TextStyle(fontWeight: FontWeight.bold)), const SizedBox(height: 5), - AuthInputField( // <-- AuthInputField 적용 + AuthInputField( controller: _passwordController, hintText: '비밀번호', isPassword: true, @@ -179,7 +213,7 @@ class _SignupScreenState extends State { }, ), const SizedBox(height: 10), - AuthInputField( // <-- AuthInputField 적용 + AuthInputField( controller: _passwordConfirmController, hintText: '비밀번호 재입력', isPassword: true, @@ -192,10 +226,10 @@ class _SignupScreenState extends State { ), const SizedBox(height: 15), - // 3. 닉네임 입력 (AuthInputField 사용) + // 3. 닉네임 입력 const Text('닉네임 *', style: TextStyle(fontWeight: FontWeight.bold)), const SizedBox(height: 5), - AuthInputField( // <-- AuthInputField 적용 + AuthInputField( controller: _nicknameController, hintText: '닉네임', validator: (value) { @@ -233,24 +267,46 @@ class _SignupScreenState extends State { style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFF6AA84F), padding: const EdgeInsets.symmetric(vertical: 15), - textStyle: const TextStyle( - fontSize: 16, - fontWeight: FontWeight.bold, - ), + textStyle: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: _isLoading ? const SizedBox( width: 20, height: 20, - child: CircularProgressIndicator( - color: Colors.white, - strokeWidth: 2 - ) - ) - : const Text( - '가입하기', - style: TextStyle(color: Colors.white) + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) + : const Text('가입하기', style: TextStyle(color: Colors.white)), + ), + const SizedBox(height: 20), + + // 'OR' 구분선 + Row( + children: [ + Expanded(child: Divider(color: Colors.grey[400])), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 10), + child: Text('OR', style: TextStyle(color: Colors.grey)), + ), + Expanded(child: Divider(color: Colors.grey[400])), + ], + ), + const SizedBox(height: 20), + + // 카카오로 시작하기 버튼 + ElevatedButton( + onPressed: _isLoading ? null : _handleKakaoSignup, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFFEE500), // 카카오 노란색 + padding: const EdgeInsets.symmetric(vertical: 15), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: const Text( + '카카오로 시작하기', + style: TextStyle( + color: Colors.black87, + fontSize: 16, + fontWeight: FontWeight.bold, + ), ), ), ], diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart index eda0bd7..e778795 100644 --- a/lib/features/auth/services/auth_service.dart +++ b/lib/features/auth/services/auth_service.dart @@ -1,10 +1,17 @@ import 'dart:convert'; // jsonEncode, jsonDecode를 사용하기 위해 필요 import 'package:http/http.dart' as http; // HTTP 통신을 위해 필요 +import 'package:flutter/services.dart'; // [추가] PlatformException을 사용하기 위해 필요 +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; // [추가] 카카오 SDK +import 'dart:developer'; // 👈 1. dart:developer 라이브러리를 import 합니다. + + + class AuthService { // 실제 서버 환경에서는 여기에 Dio 인스턴스 등이 주입될 수 있습니다. final String _apiUrl = 'http://10.0.2.2:8080/api/users'; // 기본 API 경로 설정 static const String _tempAuthCode = '123456'; // 임시 이메일 인증 코드 + final String _baseUrl = 'http://10.0.2.2:8080'; // 안드로이드 에뮬레이터 기준 // 1. 이메일 인증 코드를 요청하는 함수 Future requestAuthCode(String email) async { @@ -127,4 +134,89 @@ class AuthService { } */ } + + // [수정] 카카오 회원가입/로그인 처리 함수 + Future> signupWithKakao() async { + // 1. [추가] 기존 로그인 정보가 있다면 먼저 로그아웃 처리 + try { + if (await AuthApi.instance.hasToken()) { + await UserApi.instance.logout(); + print('기존 토큰 발견. 로그아웃 처리 완료.'); + } + } catch (error) { + print('로그아웃 처리 중 에러 발생 (무시): $error'); + } + // 2. 카카오 SDK로 액세스 토큰 받기 (기존 로직과 동일) + String? kakaoAccessToken; + if (await isKakaoTalkInstalled()) { + try { + await UserApi.instance.loginWithKakaoTalk(); + kakaoAccessToken = (await TokenManagerProvider.instance.manager.getToken())?.accessToken; + } catch (error) { + if (error is PlatformException && error.code == 'CANCELED') { + throw Exception('카카오톡 로그인이 취소되었습니다.'); + } + try { + await UserApi.instance.loginWithKakaoAccount(); + kakaoAccessToken = (await TokenManagerProvider.instance.manager.getToken())?.accessToken; + } catch (accountError) { + throw Exception('카카오 계정 로그인에 실패했습니다.'); + } + } + } else { + try { + await UserApi.instance.loginWithKakaoAccount(); + kakaoAccessToken = (await TokenManagerProvider.instance.manager.getToken())?.accessToken; + } catch (accountError) { + throw Exception('카카오 계정 로그인에 실패했습니다.'); + } + } + + if (kakaoAccessToken == null) { + throw Exception('카카오 액세스 토큰을 가져오는데 실패했습니다.'); + } + + log('🚀 Sending request to backend...'); + log('URL: $_baseUrl/api/auth/kakao'); + log('Kakao Access Token: $kakaoAccessToken'); + // 3. 백엔드 서버로 액세스 토큰 전송 (기존 로직과 동일) + final response = await http.post( + Uri.parse('$_baseUrl/api/auth/kakao'), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode({'accessToken': kakaoAccessToken}), + ); + + + // ✅ [로그 추가] 백엔드로부터 받은 응답의 상태 코드와 본문을 출력 + log('✅ Received response from backend!'); + log('Status Code: ${response.statusCode}'); + log('Response Body: ${response.body}'); + // [수정] 성공(200)과 실패 케이스를 나누어 처리 + if (response.statusCode == 200) { + // 성공 시, 정상적으로 응답 본문 반환 + return jsonDecode(response.body); + } else { + // 실패 시, 서버가 보낸 구체적인 에러 메시지를 담아 Exception 발생 + try { + final errorBody = jsonDecode(response.body); + throw Exception('서버 통신 실패: ${errorBody['message'] ?? '알 수 없는 오류'}'); + } catch (e) { + // 응답 본문이 JSON 형태가 아닐 경우를 대비한 예외 처리 + throw Exception('서버와 통신 중 오류가 발생했습니다. (상태 코드: ${response.statusCode})'); + } + } + } + + // [추가] 카카오 로그아웃 함수 + Future kakaoLogout() async { + try { + await UserApi.instance.logout(); + print('로그아웃 성공, SDK에서 토큰 삭제'); + } catch (error) { + print('로그아웃 실패, SDK에서 토큰 삭제 실패 $error'); + throw Exception('로그아웃에 실패했습니다.'); + } + } + + } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 5ed9bf9..466c9d9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,10 +1,18 @@ import 'package:flutter/material.dart'; +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; + +// --- 필요한 파일들을 모두 import 합니다 --- import 'config/theme.dart'; import 'features/auth/screens/login_screen.dart'; import 'features/auth/screens/signup_screen.dart'; import 'features/auth/screens/reset_password_screen.dart'; void main() { + // ✅ 앱이 시작되기 전에 카카오 SDKS 초기화합니다. + KakaoSdk.init( + nativeAppKey: '6cdfe8239c6cf5fdbaf793f4fc9581e3', + ); + runApp(const MyApp()); } @@ -16,12 +24,15 @@ class MyApp extends StatelessWidget { return MaterialApp( debugShowCheckedModeBanner: false, title: 'GuardPay App', + // ✅ config/theme.dart에서 정의한 테마를 사용합니다. theme: appTheme(), - initialRoute: '/login', // ✅ 앱 첫 화면을 로그인으로 설정 + // ✅ 앱의 첫 화면을 로그인 화면으로 설정합니다. + initialRoute: '/login', + // ✅ 여러 화면을 관리하고 쉽게 이동하기 위해 routes 방식을 사용합니다. routes: { - '/login': (context) => LoginScreen(), - '/signup': (context) => SignupScreen(), - '/reset': (context) => ResetPasswordScreen(), + '/login': (context) => const LoginScreen(), + '/signup': (context) => const SignupScreen(), + '/reset': (context) => const ResetPasswordScreen(), }, ); } diff --git a/local.properties b/local.properties new file mode 100644 index 0000000..d120003 --- /dev/null +++ b/local.properties @@ -0,0 +1,9 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Tue Oct 14 00:48:57 KST 2025 +sdk.dir=C\:\\Users\\Kim\\AppData\\Local\\Android\\Sdk +flutter.sdk=C\:\\flutter \ No newline at end of file diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index cccf817..724bb2a 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,8 @@ import FlutterMacOS import Foundation +import shared_preferences_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index b910700..10438a4 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,22 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + asn1lib: + dependency: transitive + description: + name: asn1lib + sha256: "9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024" + url: "https://pub.dev" + source: hosted + version: "1.6.5" async: dependency: transitive description: @@ -41,6 +57,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + crypto: + dependency: transitive + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" cupertino_icons: dependency: "direct main" description: @@ -49,6 +81,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" + dio: + dependency: transitive + description: + name: dio + sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9 + url: "https://pub.dev" + source: hosted + version: "5.9.0" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + encrypt: + dependency: transitive + description: + name: encrypt + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" + url: "https://pub.dev" + source: hosted + version: "5.0.3" fake_async: dependency: transitive description: @@ -57,6 +113,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" flutter: dependency: "direct main" description: flutter @@ -75,6 +147,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" http: dependency: "direct main" description: @@ -91,6 +168,46 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" + js: + dependency: transitive + description: + name: js + sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" + url: "https://pub.dev" + source: hosted + version: "0.7.2" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + kakao_flutter_sdk_auth: + dependency: transitive + description: + name: kakao_flutter_sdk_auth + sha256: "028d8803b7545cc5f41d20cda43b813683700e45c6c13aa4ca56f4b9c673305c" + url: "https://pub.dev" + source: hosted + version: "1.9.7+3" + kakao_flutter_sdk_common: + dependency: transitive + description: + name: kakao_flutter_sdk_common + sha256: "1c4944cc50c363d4626e9006ab39ee496c8f5ca602b96154272b90d40544aaca" + url: "https://pub.dev" + source: hosted + version: "1.9.7+3" + kakao_flutter_sdk_user: + dependency: "direct main" + description: + name: kakao_flutter_sdk_user + sha256: "5157feeafe58d677d314baa5ccdcb435fd9680c485c3b23e9ad7d97a0c93694f" + url: "https://pub.dev" + source: hosted + version: "1.9.7+3" leak_tracker: dependency: transitive description: @@ -147,6 +264,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" path: dependency: transitive description: @@ -155,6 +280,110 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" + url: "https://pub.dev" + source: hosted + version: "3.9.1" + shared_preferences: + dependency: transitive + description: + name: shared_preferences + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e + url: "https://pub.dev" + source: hosted + version: "2.4.13" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" sky_engine: dependency: transitive description: flutter @@ -240,6 +469,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" sdks: - dart: ">=3.7.0-0 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + dart: ">=3.7.0 <4.0.0" + flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml index 60158fb..8c9195d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,7 +6,7 @@ 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 +. +# 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. @@ -31,6 +31,7 @@ dependencies: flutter: sdk: flutter + kakao_flutter_sdk_user: ^1.9.1+2 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..f3f8c2f --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,17 @@ +pluginManagement { + val flutterSdkPath = System.getenv("FLUTTER_ROOT") + ?: error("FLUTTER_ROOT environment variable not set") + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.9.0" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} +include(":app") From 13f9ac641c9f71e28aa018ae4b985bd0f0f3a490 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Tue, 14 Oct 2025 10:39:39 +0900 Subject: [PATCH 09/52] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/gradle.properties | 2 + lib/features/auth/screens/login_screen.dart | 123 ++++++++++---------- 2 files changed, 64 insertions(+), 61 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index f018a61..6996107 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,3 +1,5 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true +flutter.experimental.enable-impeller=false + diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index 3b44dd5..ac02734 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -59,77 +59,78 @@ class _LoginScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - body: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 60), - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - const Text( - 'GuardPay', - textAlign: TextAlign.center, - style: TextStyle( - color: Color(0xFF6AA84F), - fontSize: 50, - fontWeight: FontWeight.bold, + backgroundColor: const Color(0xFFF9F5EC), // ✅ 배경색 추가 (theme와 통일) + body: SafeArea( + child: SingleChildScrollView( // ✅ <--- 여기가 핵심 + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 60), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Text( + 'GuardPay', + textAlign: TextAlign.center, + style: TextStyle( + color: Color(0xFF6AA84F), + fontSize: 50, + fontWeight: FontWeight.bold, + ), ), - ), - const SizedBox(height: 30), - TextField( - controller: _emailController, - decoration: const InputDecoration( - hintText: '이메일', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, + const SizedBox(height: 30), + TextField( + controller: _emailController, + decoration: const InputDecoration( + hintText: '이메일', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + ), ), - ), - const SizedBox(height: 15), - TextField( - controller: _passwordController, - obscureText: true, - decoration: const InputDecoration( - hintText: '비밀번호', - border: OutlineInputBorder(), - filled: true, - fillColor: Colors.white, + const SizedBox(height: 15), + TextField( + controller: _passwordController, + obscureText: true, + decoration: const InputDecoration( + hintText: '비밀번호', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + ), ), - ), - const SizedBox(height: 25), + const SizedBox(height: 25), - ElevatedButton( - onPressed: _isLoading ? null : _handleLogin, - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF6AA84F), - padding: const EdgeInsets.symmetric(vertical: 15), + ElevatedButton( + onPressed: _isLoading ? null : _handleLogin, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(vertical: 15), + ), + child: _isLoading + ? const CircularProgressIndicator(color: Colors.white) + : const Text('로그인'), ), - child: _isLoading - ? const CircularProgressIndicator(color: Colors.white) - : const Text('로그인'), - ), - const SizedBox(height: 10), + const SizedBox(height: 10), - // 회원가입 이동 버튼 - ElevatedButton( - onPressed: () { - Navigator.pushNamed(context, '/signup'); - }, - style: ElevatedButton.styleFrom( - backgroundColor: const Color(0xFF6AA84F), - padding: const EdgeInsets.symmetric(vertical: 15), + ElevatedButton( + onPressed: () { + Navigator.pushNamed(context, '/signup'); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(vertical: 15), + ), + child: const Text('회원가입'), ), - child: const Text('회원가입'), - ), - const SizedBox(height: 10), + const SizedBox(height: 10), - TextButton( - onPressed: () { - // TODO: 비밀번호 찾기 페이지 연결 - }, - child: const Text('이메일/비밀번호 찾기 >'), - ), - ], + TextButton( + onPressed: () {}, + child: const Text('이메일/비밀번호 찾기 >'), + ), + ], + ), ), ), ); + } } From 4c93b82f4265693f36ba0246c1b7b8cff5da0482 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Thu, 16 Oct 2025 00:42:36 +0900 Subject: [PATCH 10/52] =?UTF-8?q?feat=20:=20=C3=A3=C2=84=EA=B5=AC=EA=B8=80?= =?UTF-8?q?=20=EC=86=8C=C3=AC=C2=85:=C2=9C=EA=B7=B8=EC=9D=B8=20=EC=B5=9C?= =?UTF-8?q?=EC=A2=85=20=EA=B5=AC=ED=98=84=20=EB=B0=8F=20ngrok=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 1 + .env,example | 3 + .gitignore | 1 + .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 28847 -> 28847 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 19313 -> 19415 bytes android/app/src/main/AndroidManifest.xml | 12 +- lib/features/auth/screens/login_screen.dart | 32 ++- lib/features/auth/services/auth_service.dart | 76 ++++--- lib/main.dart | 11 +- linux/flutter/generated_plugin_registrant.cc | 16 ++ linux/flutter/generated_plugins.cmake | 4 + macos/Flutter/GeneratedPluginRegistrant.swift | 12 ++ pubspec.lock | 190 +++++++++++++++++- pubspec.yaml | 4 + .../flutter/generated_plugin_registrant.cc | 12 ++ windows/flutter/generated_plugins.cmake | 4 + 17 files changed, 343 insertions(+), 35 deletions(-) create mode 100644 .env create mode 100644 .env,example diff --git a/.env b/.env new file mode 100644 index 0000000..acaadfc --- /dev/null +++ b/.env @@ -0,0 +1 @@ +API_BASE_URL=https://nonsusceptible-hyman-periproctal.ngrok-free.dev diff --git a/.env,example b/.env,example new file mode 100644 index 0000000..5df15e9 --- /dev/null +++ b/.env,example @@ -0,0 +1,3 @@ +# 이 파일을 복사해서 .env 파일을 만들고, +# 본인의 ngrok URL을 채워넣으세요. +API_BASE_URL=https:// \ No newline at end of file diff --git a/.gitignore b/.gitignore index 79c113f..70cf99d 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,4 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release +.env \ No newline at end of file diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index f9fe537e125a40bec9588886c7d674792fdfb22d..49064f00139afca57931edede4badc1faaf4ad4e 100644 GIT binary patch delta 867 zcmXxjZ%7ky7zgm3xr*F1){R=DaD>g!x+|r>AO=ztyUjn%>}DcSFOs0BuwInVyBNNR z{1Oqh7g7+thy}ymRMZGF36Wuc7*e(hJOukMl@+#ozI3lX_dMU5yKS`Z0sX7~)JsIwGxs)rm$Bw$3OF7Vq zq!})?RsAtCrtT>sD;<|VhC)p1i)v1D5X+*)C#m`nb`!5~h8V+bB8LfL6uy{*N6FLV8VfPNsvDC6{T-IK%7LYb5EbYlRv}HSL4gQE+bdxmJBS*b zCJfvnsxeMfL2Z+82=zocjuR_zoe1Iuu@MXQIbl7ItpZ~cjt~t<5%m})wnMRGavf?d zXPt~~T&J}+@MXV-bC$DDMlCKgwiCld1iy)0SeK9qCOU~GTujKQ7LM{>L(bChCLyEZ zm|-l2%656rm#~QE=oJ`S@PIg+`P6=DNuZ-Y@bG@FE09cA`1%e#^2$G7#KX8#1I-({tMo=y)pqjU=27#8M9t2W_lY!?1-)WAw3AS5#=q~i41VJnFupBbk`jnn$8 zOz(Gb)@SBvj#kCec_n19AS`2p-*m{NR>-EwZ@02?)N1)<-uqm9@!PGeT;htkD5x?2 w*?~{E!a3nDeFj!R=ts@T%-rkqqv6__rwg+otN8Tc>}uVKmZnhsu}w+;0QHM#k^lez diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index f617a080b75dc197a2c12c1127fcf2e142b9a2aa..29d08cc778834df2e3dd1e69923db7ab9a4b8c31 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~6b*2LLtA1uFmm literal 17 VcmZQ}=bo_Q-nZT^1~6b=001?;1snhX diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin index 9c28aa1c02d6ab74513c25704018de500575db7f..cbfd463c0111bfea58a87f6e2fcc7eee2ad65662 100644 GIT binary patch delta 106 zcmex3jq&<)#tkMCjM9@$B`O3q#jDL!zY?v*00!QLo0m#-FbX)l)YS5^3gU!{Zk?};n1t(7qmC|OMxl!?l_(p>U(anw?2F#QFy_H}X0L8T+ivR!s delta 43 zcmV+`0M!52mjUsX0kAX}0T`1t7t B4}|~# diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 5dfe282..ed2b6b3 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ android:label="guardpayfront" android:name="${applicationName}" android:icon="@mipmap/ic_launcher"> + + + + + + + + + + - @@ -44,7 +53,6 @@ - diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index 1a55d7b..7a7a9d3 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -1,10 +1,14 @@ import 'package:flutter/material.dart'; import 'dart:convert'; import 'package:http/http.dart' as http; +import '../services/auth_service.dart'; // ✅ 1. AuthService 임포트 + class LoginScreen extends StatefulWidget { + const LoginScreen({super.key}); + @override State createState() => _LoginScreenState(); } @@ -13,6 +17,7 @@ class _LoginScreenState extends State { final _emailController = TextEditingController(); final _passwordController = TextEditingController(); bool _isLoading = false; + final AuthService _authService = AuthService(); Future _handleLogin() async { if (_emailController.text.isEmpty || _passwordController.text.isEmpty) { @@ -56,6 +61,28 @@ class _LoginScreenState extends State { } } + // ✅ 3. 구글 로그인 처리 핸들러 추가 + Future _handleGoogleLogin() async { + if (_isLoading) return; + setState(() => _isLoading = true); + + try { + await _authService.signInWithGoogle(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('구글 계정으로 로그인되었습니다.')), + ); + // TODO: 로그인 성공 후 홈 화면으로 이동 + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(e.toString().replaceFirst('Exception: ', ''))), + ); + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + @override Widget build(BuildContext context) { return Scaffold( @@ -172,9 +199,8 @@ class _LoginScreenState extends State { const SizedBox(width: 22), // 구글 로그인 버튼 GestureDetector( - onTap: () { - // TODO: 구글 로그인 로직 구현 - }, + // ✅ onTap 프로퍼티에 _handleGoogleLogin 함수를 직접 연결 + onTap: _isLoading ? null : _handleGoogleLogin, child: Image.asset( 'assets/images/google_logo.png', width: 70, diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart index e778795..363e5b8 100644 --- a/lib/features/auth/services/auth_service.dart +++ b/lib/features/auth/services/auth_service.dart @@ -3,6 +3,9 @@ import 'package:http/http.dart' as http; // HTTP 통신을 위해 필요 import 'package:flutter/services.dart'; // [추가] PlatformException을 사용하기 위해 필요 import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; // [추가] 카카오 SDK import 'dart:developer'; // 👈 1. dart:developer 라이브러리를 import 합니다. +import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; // ✅ 이 줄을 추가하세요. @@ -11,7 +14,54 @@ class AuthService { // 실제 서버 환경에서는 여기에 Dio 인스턴스 등이 주입될 수 있습니다. final String _apiUrl = 'http://10.0.2.2:8080/api/users'; // 기본 API 경로 설정 static const String _tempAuthCode = '123456'; // 임시 이메일 인증 코드 - final String _baseUrl = 'http://10.0.2.2:8080'; // 안드로이드 에뮬레이터 기준 + //final String _baseUrl = 'https://nonsusceptible-hyman-periproctal.ngrok-free.dev'; + final String _baseUrl = dotenv.env['API_BASE_URL'] ?? 'http://10.0.2.2:8080'; + + final _secureStorage = const FlutterSecureStorage(); // ✅ 토큰 저장을 위해 추가 + + + Future signInWithGoogle() async { + try { + // 1. 스프링 부트의 구글 로그인 시작 URL + // 💡 포트 번호(8080)는 본인 서버에 맞게 확인하세요. + final url = Uri.parse('$_baseUrl/oauth2/authorization/google'); + + // 2. 웹뷰를 열고, 스프링 부트가 리디렉션할 때까지 대기합니다. + // 'guardpay'는 AndroidManifest.xml에 설정한 scheme 값입니다. + final result = await FlutterWebAuth2.authenticate( + url: url.toString(), + callbackUrlScheme: "guardpay", + ); + + // 3. 돌아온 URL에서 토큰을 추출합니다. + final Uri callbackUri = Uri.parse(result); + final accessToken = callbackUri.queryParameters['accessToken']; + final refreshToken = callbackUri.queryParameters['refreshToken']; + + if (accessToken != null && refreshToken != null) { + // 4. 토큰을 안전하게 기기에 저장합니다. + await _secureStorage.write(key: 'accessToken', value: accessToken); + await _secureStorage.write(key: 'refreshToken', value: refreshToken); + + log('✅ 구글 로그인 성공! Access Token: $accessToken'); + + } else { + throw Exception('로그인에 성공했지만 토큰을 받아오지 못했습니다.'); + } + + } on PlatformException catch (e) { + // 사용자가 웹뷰를 그냥 닫았을 경우를 처리합니다. + if (e.code == 'CANCELED' || e.code == 'USER_CANCELLED') { + log('ℹ️ 구글 로그인이 사용자에 의해 취소되었습니다.'); + // 에러를 던지지 않고 조용히 종료할 수도 있습니다. + return; + } + throw Exception('로그인 중 오류가 발생했습니다: ${e.message}'); + } catch (e) { + log('🚨 구글 로그인 중 알 수 없는 에러 발생: $e'); + throw Exception('로그인에 실패했습니다. 잠시 후 다시 시도해주세요.'); + } + } // 1. 이메일 인증 코드를 요청하는 함수 Future requestAuthCode(String email) async { @@ -109,30 +159,6 @@ class AuthService { // 서버 대신 성공 메시지를 직접 반환합니다. return '비밀번호가 성공적으로 변경되었습니다.'; - /* - // 여기부터는 원래 코드입니다. 나중에 백엔드 API가 준비되면 이 주석을 풀고 위 코드를 지우면 됩니다. - const apiUrl = 'http://10.0.2.2:8080/api/auth/reset'; - final resetData = {'email': email, 'code': code, 'newPassword': newPassword}; - - try { - final response = await http.post( - Uri.parse(apiUrl), - headers: {'Content-Type': 'application/json'}, - body: jsonEncode(resetData), - ); - - final responseBody = jsonDecode(utf8.decode(response.bodyBytes)); - - if (response.statusCode == 200) { - return '비밀번호가 성공적으로 변경되었습니다.'; - } else { - throw Exception(responseBody['message'] ?? '비밀번호 변경에 실패했습니다.'); - } - } catch (e) { - print('[AuthService] Reset Password Error: $e'); - throw Exception(e is Exception ? e.toString().replaceFirst('Exception: ', '') : '서버와 통신할 수 없습니다.'); - } - */ } // [수정] 카카오 회원가입/로그인 처리 함수 diff --git a/lib/main.dart b/lib/main.dart index 466c9d9..2009103 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; // ✅ import 추가 // --- 필요한 파일들을 모두 import 합니다 --- import 'config/theme.dart'; @@ -7,8 +8,14 @@ import 'features/auth/screens/login_screen.dart'; import 'features/auth/screens/signup_screen.dart'; import 'features/auth/screens/reset_password_screen.dart'; -void main() { - // ✅ 앱이 시작되기 전에 카카오 SDKS 초기화합니다. +Future main() async { + // ✅ runApp 전에 비동기 작업을 수행하려면 반드시 추가해야 합니다. + WidgetsFlutterBinding.ensureInitialized(); + + // ✅ .env 파일을 로드합니다. + await dotenv.load(fileName: ".env"); + + // ✅ 기존 카카오 SDK를 초기화합니다. KakaoSdk.init( nativeAppKey: '6cdfe8239c6cf5fdbaf793f4fc9581e3', ); diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index e71a16d..8be520b 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,22 @@ #include "generated_plugin_registrant.h" +#include +#include +#include +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) desktop_webview_window_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopWebviewWindowPlugin"); + desktop_webview_window_plugin_register_with_registrar(desktop_webview_window_registrar); + g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); + flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); + g_autoptr(FlPluginRegistrar) window_to_front_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "WindowToFrontPlugin"); + window_to_front_plugin_register_with_registrar(window_to_front_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 2e1de87..0245e78 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,10 @@ # list(APPEND FLUTTER_PLUGIN_LIST + desktop_webview_window + flutter_secure_storage_linux + url_launcher_linux + window_to_front ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 724bb2a..29d895d 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,8 +5,20 @@ import FlutterMacOS import Foundation +import desktop_webview_window +import flutter_secure_storage_macos +import flutter_web_auth_2 +import path_provider_foundation import shared_preferences_foundation +import url_launcher_macos +import window_to_front func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin")) + FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) + FlutterWebAuth2Plugin.register(with: registry.registrar(forPlugin: "FlutterWebAuth2Plugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) + WindowToFrontPlugin.register(with: registry.registrar(forPlugin: "WindowToFrontPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 10438a4..0c53f80 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -81,6 +81,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" + desktop_webview_window: + dependency: transitive + description: + name: desktop_webview_window + sha256: "57cf20d81689d5cbb1adfd0017e96b669398a669d927906073b0e42fc64111c0" + url: "https://pub.dev" + source: hosted + version: "0.2.3" dio: dependency: transitive description: @@ -134,6 +142,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_dotenv: + dependency: "direct main" + description: + name: flutter_dotenv + sha256: d4130c4a43e0b13fefc593bc3961f2cb46e30cb79e253d4a526b1b5d24ae1ce4 + url: "https://pub.dev" + source: hosted + version: "6.0.0" flutter_lints: dependency: "direct dev" description: @@ -142,11 +158,75 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.2" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea" + url: "https://pub.dev" + source: hosted + version: "9.2.4" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 + url: "https://pub.dev" + source: hosted + version: "3.1.2" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + flutter_web_auth_2: + dependency: "direct main" + description: + name: flutter_web_auth_2 + sha256: "3c14babeaa066c371f3a743f204dd0d348b7d42ffa6fae7a9847a521aff33696" + url: "https://pub.dev" + source: hosted + version: "4.1.0" + flutter_web_auth_2_platform_interface: + dependency: transitive + description: + name: flutter_web_auth_2_platform_interface + sha256: c63a472c8070998e4e422f6b34a17070e60782ac442107c70000dd1bed645f4d + url: "https://pub.dev" + source: hosted + version: "4.1.0" flutter_web_plugins: dependency: transitive description: flutter @@ -172,10 +252,10 @@ packages: dependency: transitive description: name: js - sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.6.7" json_annotation: dependency: transitive description: @@ -280,6 +360,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37" + url: "https://pub.dev" + source: hosted + version: "2.2.19" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" + url: "https://pub.dev" + source: hosted + version: "2.4.2" path_provider_linux: dependency: transitive description: @@ -445,6 +549,70 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + url_launcher: + dependency: transitive + description: + name: url_launcher + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + url: "https://pub.dev" + source: hosted + version: "6.3.2" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e" + url: "https://pub.dev" + source: hosted + version: "6.3.20" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 + url: "https://pub.dev" + source: hosted + version: "6.3.4" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f + url: "https://pub.dev" + source: hosted + version: "3.2.3" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + url: "https://pub.dev" + source: hosted + version: "3.1.4" vector_math: dependency: transitive description: @@ -469,6 +637,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + win32: + dependency: transitive + description: + name: win32 + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + url: "https://pub.dev" + source: hosted + version: "5.15.0" + window_to_front: + dependency: transitive + description: + name: window_to_front + sha256: "7aef379752b7190c10479e12b5fd7c0b9d92adc96817d9e96c59937929512aee" + url: "https://pub.dev" + source: hosted + version: "0.0.3" xdg_directories: dependency: transitive description: @@ -478,5 +662,5 @@ packages: source: hosted version: "1.1.0" sdks: - dart: ">=3.7.0 <4.0.0" + dart: ">=3.8.0 <4.0.0" flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml index 8c9195d..6a1cc17 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,6 +37,10 @@ dependencies: cupertino_icons: ^1.0.8 # 🚨 서버 통신을 위해 http 패키지를 추가했습니다. http: ^1.2.1 + flutter_web_auth_2: ^4.1.0 + + flutter_secure_storage: ^9.0.0 + flutter_dotenv: ^6.0.0 dev_dependencies: flutter_test: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 8b6d468..66aef1d 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,18 @@ #include "generated_plugin_registrant.h" +#include +#include +#include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + DesktopWebviewWindowPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("DesktopWebviewWindowPlugin")); + FlutterSecureStorageWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); + WindowToFrontPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("WindowToFrontPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index b93c4c3..59e47fd 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,10 @@ # list(APPEND FLUTTER_PLUGIN_LIST + desktop_webview_window + flutter_secure_storage_windows + url_launcher_windows + window_to_front ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 6d2f28d0eb6db91ab25d58c7d9d1c750d9d20de9 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sun, 26 Oct 2025 20:02:24 +0900 Subject: [PATCH 11/52] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20=EC=88=A8?= =?UTF-8?q?=EA=B9=80=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/core/services/jwt_util.dart | 0 lib/core/services/token_storage.dart | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/core/services/jwt_util.dart create mode 100644 lib/core/services/token_storage.dart diff --git a/lib/core/services/jwt_util.dart b/lib/core/services/jwt_util.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/core/services/token_storage.dart b/lib/core/services/token_storage.dart new file mode 100644 index 0000000..e69de29 From 3c45290600fcee12d8ed57f22bdaff505abcfab9 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sun, 26 Oct 2025 23:35:05 +0900 Subject: [PATCH 12/52] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=ED=86=A0=EA=B7=BC=EC=9D=B8=EC=A6=9D=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/checksums/checksums.lock | Bin 17 -> 17 bytes .gradle/8.11.1/checksums/md5-checksums.bin | Bin 20897 -> 27597 bytes .gradle/8.11.1/checksums/sha1-checksums.bin | Bin 32105 -> 87503 bytes .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 28847 -> 39397 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 19313 -> 19789 bytes .gradle/config.properties | 4 +- lib/features/auth/screens/home_screen.dart | 58 +++++++++ lib/features/auth/screens/login_screen.dart | 45 ++++--- lib/main.dart | 28 ++-- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + local.properties | 6 +- macos/Flutter/GeneratedPluginRegistrant.swift | 4 + pubspec.lock | 120 +++++++++++++++--- pubspec.yaml | 4 +- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 18 files changed, 224 insertions(+), 54 deletions(-) create mode 100644 lib/features/auth/screens/home_screen.dart diff --git a/.gradle/8.11.1/checksums/checksums.lock b/.gradle/8.11.1/checksums/checksums.lock index 05c4753c99b99c37ba9a5916f1da51e23d1da327..1c0d64b1aca27acca5833e64daf49a365a04b3f6 100644 GIT binary patch literal 17 VcmZSH&HW+boW$aT3}C>*2mm$_1YrOG literal 17 VcmZSH&HW+boW$aT3}C=$0RT2a1eE{) diff --git a/.gradle/8.11.1/checksums/md5-checksums.bin b/.gradle/8.11.1/checksums/md5-checksums.bin index fa452ab44c3c9e733269ab2accbd841e039a28e9..ac84cc7cce20878064e2d383513144bedfab78e4 100644 GIT binary patch literal 27597 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 vb4~vgLgPECWGso@l(O>7b?Hk9@vA delta 171 zcmX?mopIq}#tkMCf(8u>n_6NbUpFy;f#>|mu@VZCk4i{Pwv{xPyi`hJ@>UrjEh{mZ zRZe2Eubju^qjCn5x5^t#?p2VOycdW~6(uIuDtb)53#8{NNleyN2FfWLPQIorKABa; zU~(!D=c)qbfcUJcc K;mwX737i1YwmMz_ diff --git a/.gradle/8.11.1/checksums/sha1-checksums.bin b/.gradle/8.11.1/checksums/sha1-checksums.bin index 16c08b215b7a959e546f600f1cc6928043f61a6f..bcde87ef8d5ee7ab3ab745a26ba7c8772246bca9 100644 GIT binary patch literal 87503 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%0D4fAb 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 diff --git a/.gradle/8.11.1/fileHashes/fileHashes.lock b/.gradle/8.11.1/fileHashes/fileHashes.lock index f617a080b75dc197a2c12c1127fcf2e142b9a2aa..3608a421f6afb7b15be7a07ee0301656e695a4ab 100644 GIT binary patch literal 17 VcmZQ}=bo_Q-nZT^1~6bh3jj6p1x)|| literal 17 VcmZQ}=bo_Q-nZT^1~6b=001?;1snhX diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin index 9c28aa1c02d6ab74513c25704018de500575db7f..86138f1f97f59780268b3ab718f6b3a7807e1d59 100644 GIT binary patch delta 741 zcmex3jq&U(#tkMCj%qDV?`xi9E`P@W1|BE>LqWUOmY2LgdM84}eHO#SyVBXyc9qD`SSM$;vF}^T8i=4TCrt6Cc(s}8SE98b;@*Xmmr4W(oNT%y-O~GICe(zZ zlix~Y2z>bJddit?sxeeBezLD*fPlcW4SKWt@5(|2pHH4D8Q`GYzTmU1iEsx*&{rE~ zm#WF0g$w>qiiL=KUx$h7bAG$~^BBh>s3Fpm?*a{Rc&Vx7V->^+RlF6Z*opbU(YO_6 zLQwIaF!AK27N2&lR(}sQ#CEc(l!ZX);~n=l%5U8RRXllesFW5H^TLgaKg2g0RETVL z^e|wa?C-6Fg!$_E6}QyzEZEZ*r)O<*-`(gEP_rD!*OEXi2*Lu=r(b`b9c8pcJ)zj> z&^Ecdm@3?-wYi&^cm>HCeVuYb*Rd8;g;RN6_N`?ZFAgsZ?B6!QBoD5l9%Kaw3#3jI zH&E2NQhGA=U9D)o#tFC*xQeDu!<^YW|2}?sFIM7T&uvFc6|+{kKPY}FQ>Wl}_;v98 gW>A!(dFBnn51}^8BKhxmFT*B*i}B+$#tkMCf)XuG?`xi9E`P@W1|BCTmr7(z=9ToAoGY0y`6-ZgmGYQ;6^K)% a4JNOZR$^ib+^G0Ne51h$(anw?2Fw689UD9V diff --git a/.gradle/config.properties b/.gradle/config.properties index d09ba4e..e5f0fde 100644 --- a/.gradle/config.properties +++ b/.gradle/config.properties @@ -1,2 +1,2 @@ -#Mon Oct 13 23:48:21 KST 2025 -java.home=C\:\\Program Files\\Android\\Android Studio\\jbr +#Sat Oct 25 23:43:00 KST 2025 +java.home=C\:\\Program Files\\Android\\Android Studio1\\jbr diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart new file mode 100644 index 0000000..d0639ea --- /dev/null +++ b/lib/features/auth/screens/home_screen.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +class HomeScreen extends StatefulWidget { + const HomeScreen({super.key}); + + @override + State createState() => _HomeScreenState(); +} + +class _HomeScreenState extends State { + final storage = const FlutterSecureStorage(); + String? accessToken; + + @override + void initState() { + super.initState(); + _loadToken(); + } + + Future _loadToken() async { + final token = await storage.read(key: 'accessToken'); + print('🟢 AccessToken from storage: $token'); // ✅ 콘솔에 찍히는 부분 + setState(() { + accessToken = token; + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('홈 화면')), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text('로그인 성공!'), + const SizedBox(height: 12), + Text( + accessToken != null + ? '토큰이 정상적으로 저장되었습니다 ✅' + : '토큰이 없습니다 ❌', + style: const TextStyle(fontSize: 16), + ), + const SizedBox(height: 20), + ElevatedButton( + onPressed: () async { + await storage.deleteAll(); + Navigator.pushReplacementNamed(context, '/login'); + }, + child: const Text('로그아웃'), + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index eb6805b..d510a82 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'dart:convert'; import 'package:http/http.dart' as http; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; class LoginScreen extends StatefulWidget { const LoginScreen({super.key}); @@ -12,7 +13,9 @@ class LoginScreen extends StatefulWidget { class _LoginScreenState extends State { final _emailController = TextEditingController(); final _passwordController = TextEditingController(); + final _storage = const FlutterSecureStorage(); bool _isLoading = false; + bool _obscureText = true; Future _handleLogin() async { if (_emailController.text.isEmpty || _passwordController.text.isEmpty) { @@ -37,10 +40,18 @@ class _LoginScreenState extends State { ); if (response.statusCode == 200) { + final data = jsonDecode(response.body); + + // ✅ 토큰 저장 + await _storage.write(key: 'accessToken', value: data['accessToken']); + await _storage.write(key: 'refreshToken', value: data['refreshToken']); + ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('로그인 성공!')), ); - // TODO: 홈 화면 이동 + + // ✅ 홈 화면으로 이동 (로그인 페이지는 제거) + Navigator.pushReplacementNamed(context, '/home'); } else { final error = jsonDecode(response.body); ScaffoldMessenger.of(context).showSnackBar( @@ -59,7 +70,7 @@ class _LoginScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: const Color(0xFFF9F5EC), // theme와 통일 + backgroundColor: const Color(0xFFF9F5EC), body: SafeArea( child: SingleChildScrollView( padding: const EdgeInsets.symmetric(horizontal: 26, vertical: 60), @@ -76,7 +87,6 @@ class _LoginScreenState extends State { fontWeight: FontWeight.bold, ), ), - const SizedBox(height: 80), TextField( controller: _emailController, @@ -89,21 +99,29 @@ class _LoginScreenState extends State { EdgeInsets.symmetric(vertical: 13.0, horizontal: 15.0), ), ), - const SizedBox(height: 13), TextField( controller: _passwordController, - obscureText: true, - decoration: const InputDecoration( + obscureText: _obscureText, + decoration: InputDecoration( hintText: '비밀번호', - border: OutlineInputBorder(), + border: const OutlineInputBorder(), filled: true, fillColor: Colors.white, - contentPadding: - EdgeInsets.symmetric(vertical: 13.0, horizontal: 15.0), + contentPadding: const EdgeInsets.symmetric( + vertical: 13.0, horizontal: 15.0), + suffixIcon: IconButton( + icon: Icon( + _obscureText ? Icons.visibility_off : Icons.visibility, + ), + onPressed: () { + setState(() { + _obscureText = !_obscureText; + }); + }, + ), ), ), - const SizedBox(height: 20), ElevatedButton( onPressed: _isLoading ? null : _handleLogin, @@ -122,7 +140,6 @@ class _LoginScreenState extends State { ? const CircularProgressIndicator(color: Colors.white) : const Text('로그인'), ), - const SizedBox(height: 13), ElevatedButton( onPressed: () { @@ -141,7 +158,6 @@ class _LoginScreenState extends State { ), child: const Text('회원가입'), ), - const SizedBox(height: 7), TextButton( onPressed: () { @@ -153,14 +169,13 @@ class _LoginScreenState extends State { ), child: const Text('이메일/비밀번호 찾기 >'), ), - const SizedBox(height: 18), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ GestureDetector( onTap: () { - // TODO: 카카오 로그인 로직 구현 + // TODO: 카카오 로그인 로직 }, child: Image.asset( 'assets/images/kakao_logo.png', @@ -171,7 +186,7 @@ class _LoginScreenState extends State { const SizedBox(width: 22), GestureDetector( onTap: () { - // TODO: 구글 로그인 로직 구현 + // TODO: 구글 로그인 로직 }, child: Image.asset( 'assets/images/google_logo.png', diff --git a/lib/main.dart b/lib/main.dart index 466c9d9..a1f6210 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,38 +1,40 @@ import 'package:flutter/material.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; - -// --- 필요한 파일들을 모두 import 합니다 --- +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'config/theme.dart'; import 'features/auth/screens/login_screen.dart'; import 'features/auth/screens/signup_screen.dart'; import 'features/auth/screens/reset_password_screen.dart'; +import 'features/auth/screens/home_screen.dart'; + + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + KakaoSdk.init(nativeAppKey: '6cdfe8239c6cf5fdbaf793f4fc9581e3'); -void main() { - // ✅ 앱이 시작되기 전에 카카오 SDKS 초기화합니다. - KakaoSdk.init( - nativeAppKey: '6cdfe8239c6cf5fdbaf793f4fc9581e3', - ); + // ✅ 토큰 체크 후 적절한 첫 화면 결정 + final storage = FlutterSecureStorage(); + final accessToken = await storage.read(key: 'accessToken'); - runApp(const MyApp()); + runApp(MyApp(initialRoute: accessToken != null ? '/home' : '/login')); } class MyApp extends StatelessWidget { - const MyApp({super.key}); + final String initialRoute; + const MyApp({super.key, required this.initialRoute}); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'GuardPay App', - // ✅ config/theme.dart에서 정의한 테마를 사용합니다. theme: appTheme(), - // ✅ 앱의 첫 화면을 로그인 화면으로 설정합니다. - initialRoute: '/login', - // ✅ 여러 화면을 관리하고 쉽게 이동하기 위해 routes 방식을 사용합니다. + initialRoute: initialRoute, // ✅ 토큰 존재 여부에 따라 첫 화면 변경 routes: { '/login': (context) => const LoginScreen(), '/signup': (context) => const SignupScreen(), '/reset': (context) => const ResetPasswordScreen(), + '/home': (context) => const HomeScreen(), // ✅ 홈 라우트 추가 }, ); } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index e71a16d..d0e7f79 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,6 +6,10 @@ #include "generated_plugin_registrant.h" +#include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); + flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 2e1de87..b29e9ba 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage_linux ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/local.properties b/local.properties index d120003..5a41174 100644 --- a/local.properties +++ b/local.properties @@ -4,6 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Tue Oct 14 00:48:57 KST 2025 -sdk.dir=C\:\\Users\\Kim\\AppData\\Local\\Android\\Sdk -flutter.sdk=C\:\\flutter \ No newline at end of file +#Sat Oct 25 16:28:25 KST 2025 +flutter.sdk=C\:\\flutter +sdk.dir=C\:\\Users\\kimji\\AppData\\Local\\Android\\Sdk diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 724bb2a..37af1fe 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,8 +5,12 @@ import FlutterMacOS import Foundation +import flutter_secure_storage_macos +import path_provider_foundation import shared_preferences_foundation func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 10438a4..6c1db72 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -142,6 +142,54 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.2" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea" + url: "https://pub.dev" + source: hosted + version: "9.2.4" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 + url: "https://pub.dev" + source: hosted + version: "3.1.2" flutter_test: dependency: "direct dev" description: flutter @@ -172,10 +220,10 @@ packages: dependency: transitive description: name: js - sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.6.7" json_annotation: dependency: transitive description: @@ -212,26 +260,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -280,6 +328,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16 + url: "https://pub.dev" + source: hosted + version: "2.2.20" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738 + url: "https://pub.dev" + source: hosted + version: "2.4.3" path_provider_linux: dependency: transitive description: @@ -340,18 +412,18 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e + sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.15" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b" url: "https://pub.dev" source: hosted - version: "2.5.4" + version: "2.5.5" shared_preferences_linux: dependency: transitive description: @@ -433,10 +505,10 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" typed_data: dependency: transitive description: @@ -449,18 +521,18 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "15.0.2" web: dependency: transitive description: @@ -469,6 +541,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + win32: + dependency: transitive + description: + name: win32 + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + url: "https://pub.dev" + source: hosted + version: "5.15.0" xdg_directories: dependency: transitive description: @@ -478,5 +558,5 @@ packages: source: hosted version: "1.1.0" sdks: - dart: ">=3.7.0 <4.0.0" - flutter: ">=3.29.0" + dart: ">=3.9.0 <4.0.0" + flutter: ">=3.35.0" diff --git a/pubspec.yaml b/pubspec.yaml index 8c9195d..deb63f0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,6 +37,8 @@ dependencies: cupertino_icons: ^1.0.8 # 🚨 서버 통신을 위해 http 패키지를 추가했습니다. http: ^1.2.1 + flutter_secure_storage: ^9.0.0 + dev_dependencies: flutter_test: @@ -63,7 +65,7 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - assets/images/ - - assets/icons/ + # - assets/icons/ # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 8b6d468..0c50753 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,9 @@ #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + FlutterSecureStorageWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index b93c4c3..4fc759c 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + flutter_secure_storage_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 9749eab50ed784d000b73cec03be026c24203c51 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sun, 26 Oct 2025 23:58:45 +0900 Subject: [PATCH 13/52] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=B9=84?= =?UTF-8?q?=EB=B2=88=20=EC=88=A8=EA=B9=80=EA=B8=B0=EB=8A=A5=20+=20?= =?UTF-8?q?=ED=86=A0=EA=B7=BC=20=C3=AC=EC=9D=B8=EC=A6=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/widget_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/widget_test.dart b/test/widget_test.dart index 2b736b2..2537abc 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -13,7 +13,7 @@ import 'package:guardpayfront/main.dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); + await tester.pumpWidget(const MyApp(initialRoute: '/login')); // Verify that our counter starts at 0. expect(find.text('0'), findsOneWidget); From 99c3ebd40103108dc58ec34a044a22337866ae34 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Tue, 28 Oct 2025 17:48:28 +0900 Subject: [PATCH 14/52] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20api=20=EC=A0=84=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/features/auth/services/auth_service.dart | 21 ++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart index e778795..cae4786 100644 --- a/lib/features/auth/services/auth_service.dart +++ b/lib/features/auth/services/auth_service.dart @@ -45,10 +45,10 @@ class AuthService { required String password, required String nickname, }) async { - // API 주소 + // ✅ 백엔드 회원가입 API 경로 const apiUrl = 'http://10.0.2.2:8080/api/auth/signup'; - // 서버에 보낼 데이터 (Dart의 Map) + // ✅ 서버에 보낼 JSON 데이터 final signupData = { 'email': email, 'password': password, @@ -59,24 +59,29 @@ class AuthService { final response = await http.post( Uri.parse(apiUrl), headers: {'Content-Type': 'application/json'}, - body: jsonEncode(signupData), // 데이터를 JSON 문자열로 인코딩 + body: jsonEncode(signupData), ); + final responseBody = jsonDecode(utf8.decode(response.bodyBytes)); // 한글 깨짐 방지 + + // ✅ 성공 (200 또는 201) if (response.statusCode == 200 || response.statusCode == 201) { print('가입 성공 응답: ${response.body}'); - return '회원가입이 완료되었습니다!'; - } else { + return responseBody['message'] ?? '회원가입이 성공적으로 완료되었습니다.'; + } + // ❌ 실패 (400, 409 등) + else { print('가입 실패 응답: ${response.body}'); - final errorBody = jsonDecode(response.body); - // 서버에서 제공하는 오류 메시지 반환 - return errorBody['message'] ?? '가입에 실패했습니다.'; + throw Exception(responseBody['message'] ?? '회원가입에 실패했습니다.'); } + } catch (error) { print('가입 요청 실패: $error'); throw Exception('서버와 통신할 수 없습니다.'); } } + /// 비밀번호 재설정을 위한 이메일 인증 코드를 요청합니다. Future requestPasswordResetCode(String email) async { // TODO: 실제 서버의 '비밀번호 재설정용' 코드 요청 API와 연동해야 합니다. From 091522a02ea9e60030f0800f7d913b9d300d0bd2 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Thu, 30 Oct 2025 13:52:15 +0900 Subject: [PATCH 15/52] =?UTF-8?q?feat=20:=EB=A1=9D=EC=9D=9C/=ED=9A=8C?= =?UTF-8?q?=EC=9B=90=EA=B0=80=EC=9E=85=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linux/flutter/generated_plugin_registrant.cc | 8 ++ linux/flutter/generated_plugins.cmake | 2 + macos/Flutter/GeneratedPluginRegistrant.swift | 6 ++ pubspec.lock | 96 +++++++++++++++++++ pubspec.yaml | 2 + .../flutter/generated_plugin_registrant.cc | 6 ++ windows/flutter/generated_plugins.cmake | 2 + 7 files changed, 122 insertions(+) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index d0e7f79..0b73116 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -7,9 +7,17 @@ #include "generated_plugin_registrant.h" #include +#include +#include void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); + g_autoptr(FlPluginRegistrar) window_to_front_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "WindowToFrontPlugin"); + window_to_front_plugin_register_with_registrar(window_to_front_registrar); } diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index b29e9ba..e9e1c1b 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,6 +4,8 @@ list(APPEND FLUTTER_PLUGIN_LIST flutter_secure_storage_linux + url_launcher_linux + window_to_front ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 37af1fe..dc781d2 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,11 +6,17 @@ import FlutterMacOS import Foundation import flutter_secure_storage_macos +import flutter_web_auth_2 import path_provider_foundation import shared_preferences_foundation +import url_launcher_macos +import window_to_front func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) + FlutterWebAuth2Plugin.register(with: registry.registrar(forPlugin: "FlutterWebAuth2Plugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) + WindowToFrontPlugin.register(with: registry.registrar(forPlugin: "WindowToFrontPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 6c1db72..dd3494f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -134,6 +134,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_dotenv: + dependency: "direct main" + description: + name: flutter_dotenv + sha256: b7c7be5cd9f6ef7a78429cabd2774d3c4af50e79cb2b7593e3d5d763ef95c61b + url: "https://pub.dev" + source: hosted + version: "5.2.1" flutter_lints: dependency: "direct dev" description: @@ -195,6 +203,22 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_auth_2: + dependency: "direct main" + description: + name: flutter_web_auth_2 + sha256: "4d3d2fd3d26bf1a26b3beafd4b4b899c0ffe10dc99af25abc58ffe24e991133c" + url: "https://pub.dev" + source: hosted + version: "3.1.2" + flutter_web_auth_2_platform_interface: + dependency: transitive + description: + name: flutter_web_auth_2_platform_interface + sha256: e8669e262005a8354389ba2971f0fc1c36188481234ff50d013aaf993f30f739 + url: "https://pub.dev" + source: hosted + version: "3.1.0" flutter_web_plugins: dependency: transitive description: flutter @@ -517,6 +541,70 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + url_launcher: + dependency: transitive + description: + name: url_launcher + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + url: "https://pub.dev" + source: hosted + version: "6.3.2" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9" + url: "https://pub.dev" + source: hosted + version: "6.3.24" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9" + url: "https://pub.dev" + source: hosted + version: "6.3.5" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9" + url: "https://pub.dev" + source: hosted + version: "3.2.4" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + url: "https://pub.dev" + source: hosted + version: "3.1.4" vector_math: dependency: transitive description: @@ -549,6 +637,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.15.0" + window_to_front: + dependency: transitive + description: + name: window_to_front + sha256: "7aef379752b7190c10479e12b5fd7c0b9d92adc96817d9e96c59937929512aee" + url: "https://pub.dev" + source: hosted + version: "0.0.3" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index deb63f0..6e0efff 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -31,6 +31,8 @@ dependencies: flutter: sdk: flutter + flutter_web_auth_2: ^3.1.2 + flutter_dotenv: ^5.1.0 kakao_flutter_sdk_user: ^1.9.1+2 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 0c50753..25d8f42 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,8 +7,14 @@ #include "generated_plugin_registrant.h" #include +#include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { FlutterSecureStorageWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); + WindowToFrontPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("WindowToFrontPlugin")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 4fc759c..7fcd0fe 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,6 +4,8 @@ list(APPEND FLUTTER_PLUGIN_LIST flutter_secure_storage_windows + url_launcher_windows + window_to_front ) list(APPEND FLUTTER_FFI_PLUGIN_LIST From 37be45fb2ae055c5cb08ab3e7ec6c7581c249c79 Mon Sep 17 00:00:00 2001 From: ch0412 Date: Fri, 31 Oct 2025 02:38:45 +0900 Subject: [PATCH 16/52] =?UTF-8?q?feat:=20=EC=9E=84=EC=8B=9C=20=EB=B9=84?= =?UTF-8?q?=EB=B0=80=EB=B2=88=ED=98=B8=20=EB=B0=9C=EA=B8=89=C3=A3=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 2 +- android/app/build.gradle.kts | 2 +- lib/features/auth/screens/login_screen.dart | 36 ++-- .../auth/screens/reset_password_screen.dart | 174 ++---------------- lib/features/auth/services/auth_service.dart | 172 ++++++++--------- lib/main.dart | 21 ++- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 72 ++++---- pubspec.yaml | 3 +- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 13 files changed, 185 insertions(+), 308 deletions(-) diff --git a/.env b/.env index acaadfc..57a8102 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -API_BASE_URL=https://nonsusceptible-hyman-periproctal.ngrok-free.dev +API_BASE_URL=https://semialuminous-countryfied-pamala.ngrok-free.dev diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 99148ba..9be0d78 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -8,7 +8,7 @@ plugins { android { namespace = "com.example.guardpayfront" compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion + ndkVersion = "27.0.12077973" compileOptions { sourceCompatibility = JavaVersion.VERSION_11 diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index d4ea078..e58ffb2 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -11,17 +11,29 @@ class LoginScreen extends StatefulWidget { } class _LoginScreenState extends State { + // 1. 서비스 인스턴스 초기화 final _emailController = TextEditingController(); + final _passwordController = TextEditingController(); final _storage = const FlutterSecureStorage(); + bool _isLoading = false; bool _obscureText = true; - Future _handleLogin() async { - if (_emailController.text.isEmpty || _passwordController.text.isEmpty) { + // 2. 일관된 SnackBar 표시를 위한 유틸리티 함수 + void _showSnackBar(String message) { + if (mounted) { ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('이메일과 비밀번호를 모두 입력해주세요.')), + SnackBar(content: Text(message)), ); + } + } + + // 3. 이메일/비밀번호 로그인 처리 + Future _handleLogin() async { + // 입력 유효성 검사 + if (_emailController.text.isEmpty || _passwordController.text.isEmpty) { + _showSnackBar('이메일과 비밀번호를 모두 입력해주세요.'); return; } @@ -42,26 +54,20 @@ class _LoginScreenState extends State { if (response.statusCode == 200) { final data = jsonDecode(response.body); - // ✅ 토큰 저장 + // 토큰 저장 await _storage.write(key: 'accessToken', value: data['accessToken']); await _storage.write(key: 'refreshToken', value: data['refreshToken']); - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('로그인 성공!')), - ); + _showSnackBar('로그인 성공!'); - // ✅ 홈 화면으로 이동 (로그인 페이지는 제거) + // 홈 화면으로 이동 (로그인 페이지는 제거) Navigator.pushReplacementNamed(context, '/home'); } else { final error = jsonDecode(response.body); - ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(error['message'] ?? '로그인 실패')), - ); + _showSnackBar('로그인 실패'); } } catch (e) { - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('서버와 통신할 수 없습니다.')), - ); + _showSnackBar('서버와 통신할 수 없습니다.'); } finally { setState(() => _isLoading = false); } @@ -170,7 +176,7 @@ class _LoginScreenState extends State { foregroundColor: Colors.black, textStyle: const TextStyle(fontSize: 14), ), - child: const Text('이메일/비밀번호 찾기 >'), + child: const Text('임시 비밀번호 발급받기 >'), ), const SizedBox(height: 18), Row( diff --git a/lib/features/auth/screens/reset_password_screen.dart b/lib/features/auth/screens/reset_password_screen.dart index 52a4b83..24e6257 100644 --- a/lib/features/auth/screens/reset_password_screen.dart +++ b/lib/features/auth/screens/reset_password_screen.dart @@ -1,8 +1,5 @@ import 'package:flutter/material.dart'; - -// 1. 필요한 서비스 및 위젯을 임포트합니다. import '../services/auth_service.dart'; // AuthService 사용 -import '../widgets/auth_input_field.dart'; class ResetPasswordScreen extends StatefulWidget { const ResetPasswordScreen({super.key}); @@ -12,103 +9,43 @@ class ResetPasswordScreen extends StatefulWidget { } class _ResetPasswordScreenState extends State { - // 2. 서비스 인스턴스 및 상태 변수를 SignupScreen과 유사하게 구성합니다. final AuthService _authService = AuthService(); final _formKey = GlobalKey(); + // 이메일 입력 컨트롤러 final _emailController = TextEditingController(); - final _codeController = TextEditingController(); - final _passwordController = TextEditingController(); - final _passwordConfirmController = TextEditingController(); - bool _isCodeRequested = false; // 인증 코드가 요청되었는가? - bool _isCodeVerified = false; // 인증 코드가 확인되었는가? + // 상태 관리 필드 + bool _isCodeRequested = false; // 버튼 비활성화에 사용 (발급 완료 시) bool _isLoading = false; // 로딩 상태 @override void dispose() { _emailController.dispose(); - _codeController.dispose(); - _passwordController.dispose(); - _passwordConfirmController.dispose(); super.dispose(); } - // 3. 인증 코드 요청 핸들러 + // 임시 비밀번호 발급 요청 & 성공 시 로그인 화면으로 돌아가기 Future _handleCodeRequest() async { - // 간단한 이메일 유효성 검사 + // 1. 이메일 유효성 검사 if (_emailController.text.isEmpty || !_emailController.text.contains('@')) { _showSnackBar('유효한 이메일을 입력해주세요.'); return; } setState(() => _isLoading = true); + try { - // AuthService를 통해 코드 요청 (수정된 부분) + // 2. 서버에 임시 비밀번호 발급 요청 await _authService.requestPasswordResetCode(_emailController.text); - setState(() => _isCodeRequested = true); - _showSnackBar('인증 코드가 이메일로 전송되었습니다.'); - } catch (e) { - _showSnackBar(e.toString().replaceFirst('Exception: ', '')); - } finally { - if (mounted) { - setState(() => _isLoading = false); - } - } - } - - // 4. 인증 코드 확인 핸들러 - Future _handleCodeVerify() async { - if (_codeController.text.isEmpty) { - _showSnackBar('인증 코드를 입력해주세요.'); - return; - } - - setState(() => _isLoading = true); - try { - // AuthService를 통해 코드 확인 (수정된 부분) - await _authService.verifyPasswordResetCode( - _emailController.text, _codeController.text); - setState(() => _isCodeVerified = true); - _showSnackBar('인증이 완료되었습니다. 새 비밀번호를 입력하세요.'); - } catch (e) { - _showSnackBar(e.toString().replaceFirst('Exception: ', '')); - } finally { - if (mounted) { - setState(() => _isLoading = false); - } - } - } - - // 5. 최종 제출 핸들러 (비밀번호 변경) - Future _handleSubmit() async { - if (!(_formKey.currentState?.validate() ?? false)) { - return; // 폼 유효성 검사 실패 시 종료 - } - if (_passwordController.text != _passwordConfirmController.text) { - _showSnackBar('비밀번호가 일치하지 않습니다.'); - return; - } - if (!_isCodeVerified) { - _showSnackBar('이메일 인증을 먼저 완료해주세요.'); - return; - } - - setState(() => _isLoading = true); - try { - // AuthService를 통해 비밀번호 재설정 - final message = await _authService.resetPassword( - email: _emailController.text, - code: _codeController.text, // 백엔드 API에 따라 코드가 필요할 수 있음 - newPassword: _passwordController.text, - ); - _showSnackBar(message); - - await Future.delayed(const Duration(seconds: 1)); + + // 3. 요청 성공 시 알림 표시 및 화면 이동 + _showSnackBar('임시 비밀번호 전송 완료. 로그인 화면으로 돌아갑니다.'); if (mounted) { - Navigator.pushReplacementNamed(context, '/login'); + Navigator.of(context).pop(); } } catch (e) { + // 4. 요청 실패 시 에러 메시지 표시 _showSnackBar(e.toString().replaceFirst('Exception: ', '')); } finally { if (mounted) { @@ -117,7 +54,7 @@ class _ResetPasswordScreenState extends State { } } - // 6. 일관된 SnackBar 표시를 위한 유틸리티 함수 + // 공통 SnackBar 표시 유틸리티 void _showSnackBar(String message) { ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text(message)), @@ -126,6 +63,7 @@ class _ResetPasswordScreenState extends State { @override Widget build(BuildContext context) { + // 버튼 스타일 정의 final buttonStyle = ElevatedButton.styleFrom( backgroundColor: const Color(0xFF6AA84F), foregroundColor: Colors.white, @@ -154,13 +92,13 @@ class _ResetPasswordScreenState extends State { crossAxisAlignment: CrossAxisAlignment.stretch, children: [ const Text( - '새 비밀번호 만들기', + '임시 비밀번호 발급', textAlign: TextAlign.center, style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), ), const SizedBox(height: 65), - // --- 이메일 입력 섹션 --- + // 이메일 입력 섹션 const Text('가입한 이메일 주소를 입력해주세요.', style: TextStyle(fontSize: 15)), const SizedBox(height: 10), TextFormField( @@ -176,87 +114,16 @@ class _ResetPasswordScreenState extends State { borderSide: const BorderSide(color: Color(0xFF6AA84F), width: 2.0), ), ), - readOnly: _isCodeRequested, // 코드 요청 후에는 수정 불가 + readOnly: _isCodeRequested, // 발급 요청 후에는 수정 불가 ), const SizedBox(height: 10), + + // 발급 버튼 ElevatedButton( onPressed: _isLoading || _isCodeRequested ? null : _handleCodeRequest, style: _isLoading || _isCodeRequested ? disabledButtonStyle : buttonStyle, - child: const Text('인증코드 받기'), + child: const Text('발급'), ), - - // --- 인증코드 입력 섹션 (코드 요청 후에만 보임) --- - if (_isCodeRequested) ...[ - const SizedBox(height: 30), - Row( - children: [ - Expanded( - child: TextFormField( - controller: _codeController, - keyboardType: TextInputType.number, - decoration: InputDecoration( - hintText: '인증코드', - filled: true, - fillColor: Colors.white, - border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), - focusedBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(8), - borderSide: const BorderSide(color: Color(0xFF6AA84F), width: 2.0), - ), - ), - readOnly: _isCodeVerified, // 인증 완료 후에는 수정 불가 - ), - ), - const SizedBox(width: 10), - ElevatedButton( - onPressed: _isLoading || _isCodeVerified ? null : _handleCodeVerify, - style: _isLoading || _isCodeVerified ? disabledButtonStyle : buttonStyle, - child: const Text('확인'), - ), - ], - ), - ], - - // --- 새 비밀번호 입력 섹션 (인증 완료 후에만 보임) --- - if (_isCodeVerified) ...[ - const SizedBox(height: 50), - const Text('비밀번호 재설정', style: TextStyle(fontSize: 15)), - const SizedBox(height: 10), - AuthInputField( - controller: _passwordController, - hintText: '새 비밀번호', - isPassword: true, - validator: (value) { - if (value == null || value.isEmpty || value.length < 8) { - return '비밀번호는 8자 이상이어야 합니다.'; - } - return null; - }, - ), - const SizedBox(height: 10), - AuthInputField( - controller: _passwordConfirmController, - hintText: '새 비밀번호 재입력', - isPassword: true, - validator: (value) { - if (value != _passwordController.text) { - return '비밀번호가 일치하지 않습니다.'; - } - return null; - }, - ), - const SizedBox(height: 35), - ElevatedButton( - onPressed: _isLoading ? null : _handleSubmit, - style: buttonStyle, - child: _isLoading - ? const SizedBox( - width: 20, - height: 20, - child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) - : const Text('확인'), - ), - ], ], ), ), @@ -264,4 +131,3 @@ class _ResetPasswordScreenState extends State { ); } } - diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart index c0fae18..8ea8461 100644 --- a/lib/features/auth/services/auth_service.dart +++ b/lib/features/auth/services/auth_service.dart @@ -1,104 +1,94 @@ -import 'dart:convert'; // jsonEncode, jsonDecode를 사용하기 위해 필요 -import 'package:http/http.dart' as http; // HTTP 통신을 위해 필요 -import 'package:flutter/services.dart'; // [추가] PlatformException을 사용하기 위해 필요 -import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; // [추가] 카카오 SDK -import 'dart:developer'; // 👈 1. dart:developer 라이브러리를 import 합니다. +import 'dart:convert'; +import 'package:http/http.dart' as http; +import 'package:flutter/services.dart'; +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; // 카카오 SDK +import 'dart:developer'; import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:flutter_dotenv/flutter_dotenv.dart'; // ✅ 이 줄을 추가하세요. - - - +import 'package:flutter_dotenv/flutter_dotenv.dart'; class AuthService { - // 실제 서버 환경에서는 여기에 Dio 인스턴스 등이 주입될 수 있습니다. - final String _apiUrl = 'http://10.0.2.2:8080/api/users'; // 기본 API 경로 설정 - static const String _tempAuthCode = '123456'; // 임시 이메일 인증 코드 - //final String _baseUrl = 'https://nonsusceptible-hyman-periproctal.ngrok-free.dev'; + // 환경 변수에서 API 베이스 URL을 가져옴 final String _baseUrl = dotenv.env['API_BASE_URL'] ?? 'http://10.0.2.2:8080'; + final _secureStorage = const FlutterSecureStorage(); - final _secureStorage = const FlutterSecureStorage(); // ✅ 토큰 저장을 위해 추가 - + static const String _tempAuthCode = '123456'; // 임시 이메일 인증 코드 + /// === 소셜 로그인 (Google) === Future signInWithGoogle() async { try { - // 1. 스프링 부트의 구글 로그인 시작 URL - // 💡 포트 번호(8080)는 본인 서버에 맞게 확인하세요. + // 1. 스프링 부트의 구글 로그인 시작 URL 설정 final url = Uri.parse('$_baseUrl/oauth2/authorization/google'); - // 2. 웹뷰를 열고, 스프링 부트가 리디렉션할 때까지 대기합니다. - // 'guardpay'는 AndroidManifest.xml에 설정한 scheme 값입니다. + // 2. 웹뷰를 열고, 리디렉션 대기 (콜백 URL scheme: "guardpay") final result = await FlutterWebAuth2.authenticate( url: url.toString(), callbackUrlScheme: "guardpay", ); - // 3. 돌아온 URL에서 토큰을 추출합니다. + // 3. 돌아온 URL에서 토큰을 추출 final Uri callbackUri = Uri.parse(result); final accessToken = callbackUri.queryParameters['accessToken']; final refreshToken = callbackUri.queryParameters['refreshToken']; if (accessToken != null && refreshToken != null) { - // 4. 토큰을 안전하게 기기에 저장합니다. + // 4. 토큰을 안전하게 저장 await _secureStorage.write(key: 'accessToken', value: accessToken); await _secureStorage.write(key: 'refreshToken', value: refreshToken); - log('✅ 구글 로그인 성공! Access Token: $accessToken'); - + log('✅ [Google Auth] 구글 로그인 성공! 토큰 저장 완료.'); } else { - throw Exception('로그인에 성공했지만 토큰을 받아오지 못했습니다.'); + throw Exception('로그인에는 성공했지만 토큰을 받아오지 못했습니다.'); } - } on PlatformException catch (e) { - // 사용자가 웹뷰를 그냥 닫았을 경우를 처리합니다. + // 사용자가 웹뷰를 닫아 로그인을 취소한 경우 처리 if (e.code == 'CANCELED' || e.code == 'USER_CANCELLED') { - log('ℹ️ 구글 로그인이 사용자에 의해 취소되었습니다.'); - // 에러를 던지지 않고 조용히 종료할 수도 있습니다. + log('ℹ️ [Google Auth] 사용자에 의해 로그인이 취소되었습니다.'); return; } throw Exception('로그인 중 오류가 발생했습니다: ${e.message}'); } catch (e) { - log('🚨 구글 로그인 중 알 수 없는 에러 발생: $e'); + log('🚨 [Google Auth] 알 수 없는 에러 발생: $e'); throw Exception('로그인에 실패했습니다. 잠시 후 다시 시도해주세요.'); } } - // 1. 이메일 인증 코드를 요청하는 함수 + + /// === 일반 회원가입 & 인증 === + // 이메일 인증 코드 요청 함수 Future requestAuthCode(String email) async { final emailRegex = RegExp(r"^[^\s@]+@[^\s@]+\.[^\s@]+$"); if (email.isEmpty || !emailRegex.hasMatch(email)) { - // 클라이언트 측 유효성 검사 (실제 환경에서는 예외를 throw하거나 Error 객체를 반환) throw Exception('올바른 이메일 주소를 입력해주세요.'); } // TODO: 실제 서버 API 엔드포인트에 맞게 URL 수정 필요 (예: '/request-code') - // 현재는 성공했다고 가정하고 true 반환 - print('이메일 인증 코드 요청: $email'); + log('[Email Auth] 인증 코드 요청: $email (시뮬레이션)'); await Future.delayed(const Duration(milliseconds: 500)); // API 지연 시뮬레이션 - return true; + return true; // 요청 성공 가정 } - // 2. 인증 코드를 확인하는 함수 + // 인증 코드 확인 함수 Future verifyAuthCode(String email, String code) async { - // 정의된 임시 인증 코드(_tempAuthCode)와 사용자가 입력한 코드를 비교합니다. - if (code != _tempAuthCode) { // TODO: 실제 인증 로직으로 대체 필요 + // TODO: 실제 인증 로직으로 대체 필요 + if (code != _tempAuthCode) { throw Exception('인증 코드가 일치하지 않습니다.'); } - print('인증 코드 확인 완료: $email'); + log('[Email Auth] 인증 코드 확인 완료: $email'); await Future.delayed(const Duration(milliseconds: 500)); return true; } - // 3. 회원가입을 최종적으로 처리하는 함수 + // 회원가입 최종 처리 함수 Future signup({ required String email, required String password, required String nickname, }) async { - // ✅ 백엔드 회원가입 API 경로 - const apiUrl = 'http://10.0.2.2:8080/api/auth/signup'; + // 백엔드 회원가입 API 경로 + final apiUrl = '$_baseUrl/api/auth/signup'; - // ✅ 서버에 보낼 JSON 데이터 + // 서버에 보낼 JSON 데이터 final signupData = { 'email': email, 'password': password, @@ -114,70 +104,59 @@ class AuthService { final responseBody = jsonDecode(utf8.decode(response.bodyBytes)); // 한글 깨짐 방지 - // ✅ 성공 (200 또는 201) if (response.statusCode == 200 || response.statusCode == 201) { - print('가입 성공 응답: ${response.body}'); + log('[Signup] 가입 성공 응답: ${response.body}'); return responseBody['message'] ?? '회원가입이 성공적으로 완료되었습니다.'; - } - // ❌ 실패 (400, 409 등) - else { - print('가입 실패 응답: ${response.body}'); + } else { + log('🚨 [Signup] 가입 실패 응답: ${response.body}'); throw Exception(responseBody['message'] ?? '회원가입에 실패했습니다.'); } - } catch (error) { - print('가입 요청 실패: $error'); + print('🚨 가입 요청 실패: $error'); throw Exception('서버와 통신할 수 없습니다.'); } } - /// 비밀번호 재설정을 위한 이메일 인증 코드를 요청합니다. - Future requestPasswordResetCode(String email) async { - // TODO: 실제 서버의 '비밀번호 재설정용' 코드 요청 API와 연동해야 합니다. - print('[AuthService] 비밀번호 재설정 코드 요청: $email'); - await Future.delayed(const Duration(milliseconds: 500)); - } + /// === 임시 비밀번호 발급 === + Future requestPasswordResetCode(String email) async { + log('[Password Reset] 임시 비밀번호 발급 요청: $email'); - /// 비밀번호 재설정을 위한 인증 코드를 확인합니다. - Future verifyPasswordResetCode(String email, String code) async { - // TODO: 실제 서버의 '비밀번호 재설정용' 코드 확인 API와 연동해야 합니다. - if (code != _tempAuthCode) { - throw Exception('인증 코드가 일치하지 않습니다.'); + try { + final response = await http.post( + Uri.parse('$_baseUrl/api/auth/password-reset-request'), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode({'email': email}), + ); + + if (response.statusCode == 200) { + log('✅ [Password Reset] 임시 비밀번호 발급 요청 성공. 이메일 발송됨.'); + return true; + } else { + final errorBody = jsonDecode(response.body); + throw Exception(errorBody['message'] ?? '인증 코드 요청 실패'); + } + } catch (e) { + log('🚨 [Password Reset] requestPasswordResetCode 에러: $e'); + throw Exception('서버 통신 중 오류 발생: ${e.toString()}'); } - print('[AuthService] 비밀번호 재설정 코드 확인 완료: $email'); - await Future.delayed(const Duration(milliseconds: 500)); } - /// 새 비밀번호로 재설정하는 최종 요청을 보냅니다. - Future resetPassword({ - required String email, - required String code, - required String newPassword, - }) async { - // --- 백엔드 API 없이 프론트엔드 시연을 위한 임시 코드 --- - print('[AuthService] 비밀번호 변경 요청 시뮬레이션 시작 (서버 호출 안함)'); - - // 마치 서버가 성공적으로 응답한 것처럼 1초간 기다립니다. - await Future.delayed(const Duration(seconds: 1)); - - // 서버 대신 성공 메시지를 직접 반환합니다. - return '비밀번호가 성공적으로 변경되었습니다.'; - - } - // [수정] 카카오 회원가입/로그인 처리 함수 + /// === 소셜 로그인 (Kakao) === + // 회원가입 & 로그인 처리 함수 Future> signupWithKakao() async { - // 1. [추가] 기존 로그인 정보가 있다면 먼저 로그아웃 처리 + // 1. 기존 로그인 정보가 있다면 먼저 로그아웃 처리 (클린 시작) try { if (await AuthApi.instance.hasToken()) { await UserApi.instance.logout(); - print('기존 토큰 발견. 로그아웃 처리 완료.'); + log('[Kakao Auth] 기존 토큰 발견. 로그아웃 처리 완료.'); } } catch (error) { - print('로그아웃 처리 중 에러 발생 (무시): $error'); + log('⚠️ [Kakao Auth] 로그아웃 처리 중 에러 발생 (무시): $error'); } - // 2. 카카오 SDK로 액세스 토큰 받기 (기존 로직과 동일) + + // 2. 카카오 SDK로 액세스 토큰 받기 String? kakaoAccessToken; if (await isKakaoTalkInstalled()) { try { @@ -207,27 +186,22 @@ class AuthService { throw Exception('카카오 액세스 토큰을 가져오는데 실패했습니다.'); } - log('🚀 Sending request to backend...'); - log('URL: $_baseUrl/api/auth/kakao'); - log('Kakao Access Token: $kakaoAccessToken'); - // 3. 백엔드 서버로 액세스 토큰 전송 (기존 로직과 동일) + log('🚀 [Kakao Auth] 백엔드 서버로 토큰 전송 시작.'); + + // 3. 백엔드 서버로 액세스 토큰 전송 final response = await http.post( Uri.parse('$_baseUrl/api/auth/kakao'), headers: {'Content-Type': 'application/json'}, body: jsonEncode({'accessToken': kakaoAccessToken}), ); + // 4. 응답 처리 + log('✅ [Kakao Auth] 서버 응답 Status Code: ${response.statusCode}'); - // ✅ [로그 추가] 백엔드로부터 받은 응답의 상태 코드와 본문을 출력 - log('✅ Received response from backend!'); - log('Status Code: ${response.statusCode}'); - log('Response Body: ${response.body}'); - // [수정] 성공(200)과 실패 케이스를 나누어 처리 if (response.statusCode == 200) { // 성공 시, 정상적으로 응답 본문 반환 return jsonDecode(response.body); } else { - // 실패 시, 서버가 보낸 구체적인 에러 메시지를 담아 Exception 발생 try { final errorBody = jsonDecode(response.body); throw Exception('서버 통신 실패: ${errorBody['message'] ?? '알 수 없는 오류'}'); @@ -238,16 +212,14 @@ class AuthService { } } - // [추가] 카카오 로그아웃 함수 + // 로그아웃 함수 Future kakaoLogout() async { try { await UserApi.instance.logout(); - print('로그아웃 성공, SDK에서 토큰 삭제'); + log('[Kakao Auth] 로그아웃 성공, SDK에서 토큰 삭제'); } catch (error) { - print('로그아웃 실패, SDK에서 토큰 삭제 실패 $error'); + log('🚨 [Kakao Auth] 로그아웃 실패: $error'); throw Exception('로그아웃에 실패했습니다.'); } } - - -} \ No newline at end of file +} diff --git a/lib/main.dart b/lib/main.dart index a1f6210..dc344f4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,6 @@ +import 'dart:developer'; import 'package:flutter/material.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'config/theme.dart'; @@ -7,15 +9,26 @@ import 'features/auth/screens/signup_screen.dart'; import 'features/auth/screens/reset_password_screen.dart'; import 'features/auth/screens/home_screen.dart'; - void main() async { + // 1. Flutter 엔진과 위젯 바인딩 초기화 (비동기 작업 이전에 필수) WidgetsFlutterBinding.ensureInitialized(); + + // 2. 환경 변수(.env) 로드 (AuthService 등에서 사용하기 전에 필수) + try { + await dotenv.load(fileName: ".env"); + } catch (e) { + // .env 파일 로드 실패 시 콘솔에 출력 (디버깅용) + log("Error loading .env file: $e"); + } + + // 3. Kakao SDK 초기화 (네이티브 앱 키 사용) KakaoSdk.init(nativeAppKey: '6cdfe8239c6cf5fdbaf793f4fc9581e3'); - // ✅ 토큰 체크 후 적절한 첫 화면 결정 + // 4. 저장된 액세스 토큰 확인 final storage = FlutterSecureStorage(); final accessToken = await storage.read(key: 'accessToken'); + // 5. 토큰 유무에 따라 초기 화면 결정 후 앱 실행 runApp(MyApp(initialRoute: accessToken != null ? '/home' : '/login')); } @@ -29,12 +42,12 @@ class MyApp extends StatelessWidget { debugShowCheckedModeBanner: false, title: 'GuardPay App', theme: appTheme(), - initialRoute: initialRoute, // ✅ 토큰 존재 여부에 따라 첫 화면 변경 + initialRoute: initialRoute, // 초기 라우트 설정 routes: { '/login': (context) => const LoginScreen(), '/signup': (context) => const SignupScreen(), '/reset': (context) => const ResetPasswordScreen(), - '/home': (context) => const HomeScreen(), // ✅ 홈 라우트 추가 + '/home': (context) => const HomeScreen(), }, ); } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 0b73116..8be520b 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,11 +6,15 @@ #include "generated_plugin_registrant.h" +#include #include #include #include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) desktop_webview_window_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopWebviewWindowPlugin"); + desktop_webview_window_plugin_register_with_registrar(desktop_webview_window_registrar); g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin"); flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index e9e1c1b..0245e78 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + desktop_webview_window flutter_secure_storage_linux url_launcher_linux window_to_front diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index dc781d2..29d895d 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,6 +5,7 @@ import FlutterMacOS import Foundation +import desktop_webview_window import flutter_secure_storage_macos import flutter_web_auth_2 import path_provider_foundation @@ -13,6 +14,7 @@ import url_launcher_macos import window_to_front func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) FlutterWebAuth2Plugin.register(with: registry.registrar(forPlugin: "FlutterWebAuth2Plugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) diff --git a/pubspec.lock b/pubspec.lock index dd3494f..c5ea8e6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -81,6 +81,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" + desktop_webview_window: + dependency: transitive + description: + name: desktop_webview_window + sha256: "57cf20d81689d5cbb1adfd0017e96b669398a669d927906073b0e42fc64111c0" + url: "https://pub.dev" + source: hosted + version: "0.2.3" dio: dependency: transitive description: @@ -207,18 +215,18 @@ packages: dependency: "direct main" description: name: flutter_web_auth_2 - sha256: "4d3d2fd3d26bf1a26b3beafd4b4b899c0ffe10dc99af25abc58ffe24e991133c" + sha256: "3c14babeaa066c371f3a743f204dd0d348b7d42ffa6fae7a9847a521aff33696" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "4.1.0" flutter_web_auth_2_platform_interface: dependency: transitive description: name: flutter_web_auth_2_platform_interface - sha256: e8669e262005a8354389ba2971f0fc1c36188481234ff50d013aaf993f30f739 + sha256: c63a472c8070998e4e422f6b34a17070e60782ac442107c70000dd1bed645f4d url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.1.0" flutter_web_plugins: dependency: transitive description: flutter @@ -284,26 +292,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "10.0.9" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 url: "https://pub.dev" source: hosted - version: "3.0.10" + version: "3.0.9" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.1" lints: dependency: transitive description: @@ -364,18 +372,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: e122c5ea805bb6773bb12ce667611265980940145be920cd09a4b0ec0285cb16 + sha256: "3b4c1fc3aa55ddc9cd4aa6759984330d5c8e66aa7702a6223c61540dc6380c37" url: "https://pub.dev" source: hosted - version: "2.2.20" + version: "2.2.19" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: efaec349ddfc181528345c56f8eda9d6cccd71c177511b132c6a0ddaefaa2738 + sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd" url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.4.2" path_provider_linux: dependency: transitive description: @@ -436,18 +444,18 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "34266009473bf71d748912da4bf62d439185226c03e01e2d9687bc65bbfcb713" + sha256: bd14436108211b0d4ee5038689a56d4ae3620fd72fd6036e113bf1345bc74d9e url: "https://pub.dev" source: hosted - version: "2.4.15" + version: "2.4.13" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "1c33a907142607c40a7542768ec9badfd16293bac51da3a4482623d15845f88b" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -529,10 +537,10 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.4" typed_data: dependency: transitive description: @@ -553,18 +561,18 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "5c8b6c2d89a78f5a1cca70a73d9d5f86c701b36b42f9c9dac7bad592113c28e9" + sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e" url: "https://pub.dev" source: hosted - version: "6.3.24" + version: "6.3.20" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "6b63f1441e4f653ae799166a72b50b1767321ecc263a57aadf825a7a2a5477d9" + sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7 url: "https://pub.dev" source: hosted - version: "6.3.5" + version: "6.3.4" url_launcher_linux: dependency: transitive description: @@ -577,10 +585,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "8262208506252a3ed4ff5c0dc1e973d2c0e0ef337d0a074d35634da5d44397c9" + sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f url: "https://pub.dev" source: hosted - version: "3.2.4" + version: "3.2.3" url_launcher_platform_interface: dependency: transitive description: @@ -609,18 +617,18 @@ packages: dependency: transitive description: name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.1.4" vm_service: dependency: transitive description: name: vm_service - sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" + sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 url: "https://pub.dev" source: hosted - version: "15.0.2" + version: "15.0.0" web: dependency: transitive description: @@ -654,5 +662,5 @@ packages: source: hosted version: "1.1.0" sdks: - dart: ">=3.9.0 <4.0.0" - flutter: ">=3.35.0" + dart: ">=3.8.0 <4.0.0" + flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml index 6e0efff..20d7bea 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -31,7 +31,7 @@ dependencies: flutter: sdk: flutter - flutter_web_auth_2: ^3.1.2 + flutter_web_auth_2: ^4.1.0 flutter_dotenv: ^5.1.0 kakao_flutter_sdk_user: ^1.9.1+2 # The following adds the Cupertino Icons font to your application. @@ -67,6 +67,7 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - assets/images/ + - .env # - assets/icons/ # - images/a_dot_ham.jpeg diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 25d8f42..66aef1d 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,11 +6,14 @@ #include "generated_plugin_registrant.h" +#include #include #include #include void RegisterPlugins(flutter::PluginRegistry* registry) { + DesktopWebviewWindowPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("DesktopWebviewWindowPlugin")); FlutterSecureStorageWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 7fcd0fe..59e47fd 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + desktop_webview_window flutter_secure_storage_windows url_launcher_windows window_to_front From 7103d59d6caa14bd7f1eca42bd14826bd0f3e931 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Sat, 1 Nov 2025 00:19:37 +0900 Subject: [PATCH 17/52] =?UTF-8?q?fix=20:=20=EB=A1=9C=ED=9A=8C=ED=9A=8C?= =?UTF-8?q?=EC=9B=90=C3=AA=C3=A3=20=ED=8F=BC=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EC=8B=9C=20=EB=A1=9C=EC=BB=AC=20=20IP=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20URL=20=EB=B6=84=EB=A6=AC?= =?UTF-8?q?=C3=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39397 -> 39397 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 19789 -> 19823 bytes .gradle/config.properties | 4 +- lib/features/auth/services/auth_service.dart | 41 ++++++++++-------- local.properties | 4 +- 6 files changed, 28 insertions(+), 21 deletions(-) diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index cbeb305002a17afc7115c31ecc5cf47f19fef936..63a7610ebabde9401de2f4e42c291d85eb684f12 100644 GIT binary patch delta 5215 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 PcvvTE`|?e$_Z9&Flsy!K delta 36 scmaDqi}CC%#tkMCjB1-rB~CDI7L~fp$hdH$;t%nS1{ETk9X)th0sjsR(f|Me diff --git a/.gradle/config.properties b/.gradle/config.properties index e5f0fde..0c23249 100644 --- a/.gradle/config.properties +++ b/.gradle/config.properties @@ -1,2 +1,2 @@ -#Sat Oct 25 23:43:00 KST 2025 -java.home=C\:\\Program Files\\Android\\Android Studio1\\jbr +#Fri Oct 31 22:56:21 KST 2025 +java.home=C\:\\Program Files\\Android\\Android Studio\\jbr diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart index 8ea8461..00629e2 100644 --- a/lib/features/auth/services/auth_service.dart +++ b/lib/features/auth/services/auth_service.dart @@ -8,8 +8,13 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; class AuthService { - // 환경 변수에서 API 베이스 URL을 가져옴 - final String _baseUrl = dotenv.env['API_BASE_URL'] ?? 'http://10.0.2.2:8080'; + // ⬇️ [수정됨] 1. 소셜 로그인용 (ngrok) + // ❗️ .env 파일에 API_BASE_URL=https://your-ngrok-url.ngrok-free.dev + final String _baseUrl = dotenv.env['API_BASE_URL'] ?? 'http://DEFAULT_NGROK_URL'; + + // ⬇️ [수정됨] 2. 폼 회원가입/비번찾기용 (고정 IP) + final String _localBaseUrl = 'http://10.0.2.2:8080'; + final _secureStorage = const FlutterSecureStorage(); static const String _tempAuthCode = '123456'; // 임시 이메일 인증 코드 @@ -17,10 +22,10 @@ class AuthService { /// === 소셜 로그인 (Google) === Future signInWithGoogle() async { try { - // 1. 스프링 부트의 구글 로그인 시작 URL 설정 + // 1. 스프링 부트의 구글 로그인 시작 URL 설정 (ngrok 사용) final url = Uri.parse('$_baseUrl/oauth2/authorization/google'); - // 2. 웹뷰를 열고, 리디렉션 대기 (콜백 URL scheme: "guardpay") + // 2. 웹뷰를 열고, 리디렉션 대기 final result = await FlutterWebAuth2.authenticate( url: url.toString(), callbackUrlScheme: "guardpay", @@ -41,7 +46,6 @@ class AuthService { throw Exception('로그인에는 성공했지만 토큰을 받아오지 못했습니다.'); } } on PlatformException catch (e) { - // 사용자가 웹뷰를 닫아 로그인을 취소한 경우 처리 if (e.code == 'CANCELED' || e.code == 'USER_CANCELLED') { log('ℹ️ [Google Auth] 사용자에 의해 로그인이 취소되었습니다.'); return; @@ -63,14 +67,16 @@ class AuthService { } // TODO: 실제 서버 API 엔드포인트에 맞게 URL 수정 필요 (예: '/request-code') + // ❗️[참고] 이 API도 실제로는 고정 IP(_localBaseUrl)를 써야 합니다. log('[Email Auth] 인증 코드 요청: $email (시뮬레이션)'); - await Future.delayed(const Duration(milliseconds: 500)); // API 지연 시뮬레이션 - return true; // 요청 성공 가정 + await Future.delayed(const Duration(milliseconds: 500)); + return true; } // 인증 코드 확인 함수 Future verifyAuthCode(String email, String code) async { // TODO: 실제 인증 로직으로 대체 필요 + // ❗️[참고] 이 API도 실제로는 고정 IP(_localBaseUrl)를 써야 합니다. if (code != _tempAuthCode) { throw Exception('인증 코드가 일치하지 않습니다.'); } @@ -85,8 +91,9 @@ class AuthService { required String password, required String nickname, }) async { - // 백엔드 회원가입 API 경로 - final apiUrl = '$_baseUrl/api/auth/signup'; + + // ⬇️ [수정됨] 폼 회원가입은 ngrok이 아닌 고정 IP(_localBaseUrl)를 사용합니다. + final apiUrl = '$_localBaseUrl/api/auth/signup'; // 서버에 보낼 JSON 데이터 final signupData = { @@ -97,12 +104,12 @@ class AuthService { try { final response = await http.post( - Uri.parse(apiUrl), + Uri.parse(apiUrl), // ⬅️ _localBaseUrl이 적용된 apiUrl 사용 headers: {'Content-Type': 'application/json'}, body: jsonEncode(signupData), ); - final responseBody = jsonDecode(utf8.decode(response.bodyBytes)); // 한글 깨짐 방지 + final responseBody = jsonDecode(utf8.decode(response.bodyBytes)); if (response.statusCode == 200 || response.statusCode == 201) { log('[Signup] 가입 성공 응답: ${response.body}'); @@ -124,7 +131,8 @@ class AuthService { try { final response = await http.post( - Uri.parse('$_baseUrl/api/auth/password-reset-request'), + // ⬇️ [수정됨] 비밀번호 찾기도 고정 IP(_localBaseUrl)를 사용합니다. + Uri.parse('$_localBaseUrl/api/auth/password-reset-request'), headers: {'Content-Type': 'application/json'}, body: jsonEncode({'email': email}), ); @@ -156,7 +164,7 @@ class AuthService { log('⚠️ [Kakao Auth] 로그아웃 처리 중 에러 발생 (무시): $error'); } - // 2. 카카오 SDK로 액세스 토큰 받기 + // 2. 카카오 SDK로 액세스 토큰 받기 (생략) String? kakaoAccessToken; if (await isKakaoTalkInstalled()) { try { @@ -188,25 +196,23 @@ class AuthService { log('🚀 [Kakao Auth] 백엔드 서버로 토큰 전송 시작.'); - // 3. 백엔드 서버로 액세스 토큰 전송 + // 3. 백엔드 서버로 액세스 토큰 전송 (ngrok 사용) final response = await http.post( Uri.parse('$_baseUrl/api/auth/kakao'), headers: {'Content-Type': 'application/json'}, body: jsonEncode({'accessToken': kakaoAccessToken}), ); - // 4. 응답 처리 + // 4. 응답 처리 (생략) log('✅ [Kakao Auth] 서버 응답 Status Code: ${response.statusCode}'); if (response.statusCode == 200) { - // 성공 시, 정상적으로 응답 본문 반환 return jsonDecode(response.body); } else { try { final errorBody = jsonDecode(response.body); throw Exception('서버 통신 실패: ${errorBody['message'] ?? '알 수 없는 오류'}'); } catch (e) { - // 응답 본문이 JSON 형태가 아닐 경우를 대비한 예외 처리 throw Exception('서버와 통신 중 오류가 발생했습니다. (상태 코드: ${response.statusCode})'); } } @@ -223,3 +229,4 @@ class AuthService { } } } + diff --git a/local.properties b/local.properties index 5a41174..f5fe754 100644 --- a/local.properties +++ b/local.properties @@ -4,6 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Sat Oct 25 16:28:25 KST 2025 +#Fri Oct 31 22:58:57 KST 2025 flutter.sdk=C\:\\flutter -sdk.dir=C\:\\Users\\kimji\\AppData\\Local\\Android\\Sdk +sdk.dir=C\:\\Users\\Kim\\AppData\\Local\\Android\\Sdk From d356919bb5e095227e2e8a53278f0ee45f1f24e9 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sat, 1 Nov 2025 21:59:42 +0900 Subject: [PATCH 18/52] =?UTF-8?q?feat:=20=ED=99=88=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=C3=AA=ED=8B=80=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/AI_icon.png | Bin 0 -> 734 bytes assets/images/alram_icon.png | Bin 0 -> 734 bytes assets/images/character_icon.png | Bin 0 -> 4476 bytes assets/images/check_icon.png | Bin 0 -> 2601 bytes assets/images/home_icon.png | Bin 0 -> 652 bytes assets/images/map_icon.png | Bin 0 -> 1000 bytes assets/images/money_icon.png | Bin 0 -> 800 bytes assets/images/quiz_icon.png | Bin 0 -> 2480 bytes assets/images/setting_icon.png | Bin 0 -> 597 bytes assets/images/shop_icon.png | Bin 0 -> 1076 bytes assets/images/video_icon.png | Bin 0 -> 2792 bytes lib/features/auth/screens/home_screen.dart | 271 +++++++++++++++++++-- lib/main.dart | 3 +- 13 files changed, 255 insertions(+), 19 deletions(-) create mode 100644 assets/images/AI_icon.png create mode 100644 assets/images/alram_icon.png create mode 100644 assets/images/character_icon.png create mode 100644 assets/images/check_icon.png create mode 100644 assets/images/home_icon.png create mode 100644 assets/images/map_icon.png create mode 100644 assets/images/money_icon.png create mode 100644 assets/images/quiz_icon.png create mode 100644 assets/images/setting_icon.png create mode 100644 assets/images/shop_icon.png create mode 100644 assets/images/video_icon.png diff --git a/assets/images/AI_icon.png b/assets/images/AI_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..53f3dfe095475ef79cbd9529096c447cfbfa54f5 GIT binary patch literal 734 zcmV<40wMj0P)>^600009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP0`r;$fWp4fy#QXsgbgcy%O(>j}?SI(POtha|52$QsdfB@n#I5oPc7) z{=;MX_(vm-`;64{1PnpG>wWLF#0EMX&oCveFi~L*eMO-9d7(gSaK9-5hG3!-1cm@J zh`RF427dDprmli?`Fn_Z4uQtu?kyz*j81$^DJ$GF1n9yp@eLOgDA|<>cpr_W&kG2( zRRbmt^#Oq*WycA=@gHsMv<^%hYFYdg9>*F+gm1cW0g!57Jobt2-~uYuxW=#_BAaZ% z-+~9l!~GAHZ(Yv>SQkG+py`3KMY;`lQNM?Ya8uSiY@}YdZ$%Dc5upxnK20z4fU!Ui z5Y-cB@iDlkgwA``jB;GlmW18;5)EV84 zfV2LP<39Zam17utXb%F8QMLZ`2h3z#ZIN%``q8BE%BJKkq8&yO<{P5PyJ@m%nL_2> zjLLOO9baYI^IS!MFXCwwOr0o@3i-k6TGy(k4smal>!0BMG7>~{;uV zLwK8b7iPuS1y9NX#I%g6Kf;r;0QD%$gt#5&)0RqUfe5f8Ue)tKcuHH^^+*>?4Xx-o zqcbo5i;PMO#G2_;2rKSv+Ym)9mC~fFU61pL>t1?W8lYZnJgEWk8(cP>0S~vtvHr## QF8}}l07*qoM6N<$f^f4y1poj5 literal 0 HcmV?d00001 diff --git a/assets/images/alram_icon.png b/assets/images/alram_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c7e7900a6c0b68ebfe489ee4a0c0c7f7cdd612 GIT binary patch literal 734 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 literal 0 HcmV?d00001 diff --git a/assets/images/shop_icon.png b/assets/images/shop_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e00c1948b81ea3f923e27e00abe799750532c6c2 GIT binary patch literal 1076 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 { final storage = const FlutterSecureStorage(); String? accessToken; + int _selectedIndex = 0; @override void initState() { @@ -20,7 +22,6 @@ class _HomeScreenState extends State { Future _loadToken() async { final token = await storage.read(key: 'accessToken'); - print('🟢 AccessToken from storage: $token'); // ✅ 콘솔에 찍히는 부분 setState(() { accessToken = token; }); @@ -29,30 +30,264 @@ class _HomeScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: const Text('홈 화면')), - body: Center( + backgroundColor: const Color(0xFFF7F7F7), + body: SafeArea( child: Column( - mainAxisAlignment: MainAxisAlignment.center, children: [ - const Text('로그인 성공!'), - const SizedBox(height: 12), - Text( - accessToken != null - ? '토큰이 정상적으로 저장되었습니다 ✅' - : '토큰이 없습니다 ❌', - style: const TextStyle(fontSize: 16), + // 🔹 상단 검색창 + 알림/설정 아이콘 (이미지 버전) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + // 왼쪽 메뉴 아이콘 + const Icon(Icons.menu, color: Colors.black87, size: 26), + const SizedBox(width: 10), + + // 검색창 아이콘 + 입력창 + const Icon(Icons.search, color: Colors.black54), + const SizedBox(width: 8), + Expanded( + child: TextField( + decoration: InputDecoration( + hintText: '검색어를 입력해주세요.', + hintStyle: const TextStyle(color: Colors.grey), + border: InputBorder.none, + ), + ), + ), + + // 🔔 알림 아이콘 (이미지) + Image.asset( + 'assets/images/alram_icon.png', + width: 26, + height: 26, + fit: BoxFit.contain, + ), + const SizedBox(width: 14), + + // ⚙️ 설정 아이콘 (이미지) + Image.asset( + 'assets/images/setting_icon.png', + width: 26, + height: 26, + fit: BoxFit.contain, + ), + ], + ), + ), + + + // 🔹 상단 노란 배너 + Container( + width: 358, + height: 85, + margin: const EdgeInsets.symmetric(vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10), + decoration: BoxDecoration( + color: const Color(0xFFFFF8C6), + borderRadius: BorderRadius.circular(12), + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image.asset( + 'assets/images/character_icon.png', + width: 60, + height: 60, + fit: BoxFit.contain, + ), + const SizedBox(width: 25), + const Expanded( + child: Text( + '안전 송금, 퀴즈로 배우자!\n퀴즈 풀고 포인트를 모아요!', + style: TextStyle( + color: Colors.black87, + fontSize: 16, + fontWeight: FontWeight.w600, + height: 1.4, + ), + ), + ), + ], + ), + ), + + const SizedBox(height: 16), + + // 🔹 아래 카드 3개 + Expanded( + child: SingleChildScrollView( + child: Column( + children: [ + _buildCard( + title: '역량 진단 시작하기', + subtitle: '나의 금융 이해도를 측정해보세요!', + imagePath: 'assets/images/check_icon.png', + onTap: () { + Navigator.pushNamed(context, '/abilityTest'); + }, + ), + _buildCard( + title: '금융 퀴즈 도전', + subtitle: '맞히면 포인트가 쌓여요!', + imagePath: 'assets/images/quiz_icon.png', + onTap: () { + Navigator.pushNamed(context, '/quiz'); + }, + ), + _buildCard( + title: '보이스피싱 예방 영상', + subtitle: '보이스피싱 수법과 대처법을\n영상으로 확인하세요!', + imagePath: 'assets/images/video_icon.png', + onTap: () { + Navigator.pushNamed(context, '/video'); + }, + ), + ], + ), + ), ), - const SizedBox(height: 20), - ElevatedButton( - onPressed: () async { - await storage.deleteAll(); - Navigator.pushReplacementNamed(context, '/login'); - }, - child: const Text('로그아웃'), + + // 🔹 하단 네비게이션바 (이미지 라벨 포함된 아이콘만) + Container( + decoration: BoxDecoration( + color: Colors.white, + border: Border( + top: BorderSide(color: Colors.grey.shade300, width: 1), + ), + ), + padding: const EdgeInsets.symmetric(vertical: 8), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + _BottomImageOnlyIcon( + imagePath: 'assets/images/home_icon.png', + isActive: _selectedIndex == 0, + onTap: () => setState(() => _selectedIndex = 0), + ), + _BottomImageOnlyIcon( + imagePath: 'assets/images/AI_icon.png', + isActive: _selectedIndex == 1, + onTap: () => setState(() => _selectedIndex = 1), + ), + _BottomImageOnlyIcon( + imagePath: 'assets/images/shop_icon.png', + isActive: _selectedIndex == 2, + onTap: () => setState(() => _selectedIndex = 2), + ), + _BottomImageOnlyIcon( + imagePath: 'assets/images/money_icon.png', + isActive: _selectedIndex == 3, + onTap: () => setState(() => _selectedIndex = 3), + ), + _BottomImageOnlyIcon( + imagePath: 'assets/images/map_icon.png', + isActive: _selectedIndex == 4, + onTap: () => setState(() => _selectedIndex = 4), + ), + ], + ), ), ], ), ), ); } + + // 🔹 카드 위젯 (오른쪽 하단 이미지) + Widget _buildCard({ + required String title, + required String subtitle, + required String imagePath, + required VoidCallback onTap, + }) { + return GestureDetector( + onTap: onTap, + child: Container( + width: 358, + height: 137, + margin: const EdgeInsets.symmetric(vertical: 20), + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.15), + spreadRadius: 1, + blurRadius: 5, + offset: const Offset(0, 2), + ), + ], + ), + child: Stack( + children: [ + Positioned( + left: 0, + top: 20, + child: SizedBox( + width: 250, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 20, + ), + ), + const SizedBox(height: 8), + Text( + subtitle, + style: const TextStyle( + color: Colors.black54, + fontSize: 15, + ), + ), + ], + ), + ), + ), + Positioned( + right: 8, + bottom: 8, + child: Image.asset( + imagePath, + width: 60, + height: 60, + fit: BoxFit.contain, + ), + ), + ], + ), + ), + ); + } +} + +// 🔹 하단 네비게이션 이미지 아이콘 (텍스트 라벨 제거) +class _BottomImageOnlyIcon extends StatelessWidget { + final String imagePath; + final bool isActive; + final VoidCallback onTap; + + const _BottomImageOnlyIcon({ + required this.imagePath, + required this.isActive, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Image.asset( + imagePath, + width: 45, + height: 45, + color: isActive ? null : Colors.black54, // 비활성 시 약간 어둡게 처리 + ), + ); + } } diff --git a/lib/main.dart b/lib/main.dart index a1f6210..421ceca 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -16,7 +16,8 @@ void main() async { final storage = FlutterSecureStorage(); final accessToken = await storage.read(key: 'accessToken'); - runApp(MyApp(initialRoute: accessToken != null ? '/home' : '/login')); + runApp(const MyApp(initialRoute: '/login')); + } class MyApp extends StatelessWidget { From 8733989b0e19417c5723b1551705f5f2c7b4f401 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sat, 1 Nov 2025 22:03:05 +0900 Subject: [PATCH 19/52] =?UTF-8?q?feat:=20=ED=99=88=ED=99=94=C3=AB=EB=A9=B4?= =?UTF-8?q?=20=ED=8B=80=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 421ceca..a1f6210 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -16,8 +16,7 @@ void main() async { final storage = FlutterSecureStorage(); final accessToken = await storage.read(key: 'accessToken'); - runApp(const MyApp(initialRoute: '/login')); - + runApp(MyApp(initialRoute: accessToken != null ? '/home' : '/login')); } class MyApp extends StatelessWidget { From 367d17437b30c48860fa66a00f512867750c0e61 Mon Sep 17 00:00:00 2001 From: ch0412 Date: Tue, 4 Nov 2025 15:43:42 +0900 Subject: [PATCH 20/52] =?UTF-8?q?feat:=20home=5Fscreen.dart=20=EB=94=94?= =?UTF-8?q?=EC=9E=90=EC=9D=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39397 -> 39397 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 19823 -> 19857 bytes assets/images/alert_icon.png | Bin 0 -> 9607 bytes assets/images/alram_icon.png | Bin 734 -> 0 bytes assets/images/checkBox_icon.png | Bin 0 -> 12682 bytes assets/images/main_icon.png | Bin 0 -> 34806 bytes assets/images/quiz_icon2.png | Bin 0 -> 36035 bytes assets/images/setting_icon.png | Bin 597 -> 0 bytes assets/images/settings_icon.png | Bin 0 -> 12862 bytes assets/images/youtube_icon.png | Bin 0 -> 8618 bytes lib/features/auth/screens/home_screen.dart | 187 +++++++++++------- local.properties | 4 +- 13 files changed, 119 insertions(+), 72 deletions(-) create mode 100644 assets/images/alert_icon.png delete mode 100644 assets/images/alram_icon.png create mode 100644 assets/images/checkBox_icon.png create mode 100644 assets/images/main_icon.png create mode 100644 assets/images/quiz_icon2.png delete mode 100644 assets/images/setting_icon.png create mode 100644 assets/images/settings_icon.png create mode 100644 assets/images/youtube_icon.png diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index 63a7610ebabde9401de2f4e42c291d85eb684f12..fd4a7a246bd9cf1baa640a6352b30e4690867311 100644 GIT binary patch delta 2126 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 f7biYzwGGz)y=>{Ff_29-PX&t0ecpbcsx0;R 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 ZdvOU%c7KWf-hW^PfHscSHC8^?{|gmt!~FmN literal 0 HcmV?d00001 diff --git a/assets/images/alram_icon.png b/assets/images/alram_icon.png deleted file mode 100644 index a7c7e7900a6c0b68ebfe489ee4a0c0c7f7cdd612..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 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 AjQ{`u literal 0 HcmV?d00001 diff --git a/assets/images/quiz_icon2.png b/assets/images/quiz_icon2.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd3accb43cf2e558c2771ad924657a29de0066d GIT binary patch literal 36035 zcmXt9bySqk*MF9UrCYi|LQq(wyF;ZEL6KUz8|hd|LL{U+M8Gc~9g<6Thk(Qa(%rSd zyZ+93|Jbv8o}D|-oqK0K_s-nUL~3cM5aQ9|0RTYwLRIk%0AQehVgNW0^w*i!)D8Lz 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 literal 0 HcmV?d00001 diff --git a/assets/images/setting_icon.png b/assets/images/setting_icon.png deleted file mode 100644 index ef5d852b3edc2b777a5590e3871199c2f8be829a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)pfKnSRimA7#rxJ=wD3Px~~g(rxUu^y>0?PR7u z!FllLq`NDxs=E4<2w|uQ7lmuWC1E6d7d~j4paf9#S{SQ<$&v6z9r1$qM8(Krlc;lE z@SdoM9An;rR0HOn3RmHd_z{z}_I8AZFT!tOTLtUFJMBvxTG1s&k>C8^LJ!nf9}XqsQ15Vme) zU-*Xb8t9tB4dkClS+cS(@HacmTFcX(b2gAM-iCe4#41q3G^*;5E%Kp?PSp`Rb{)pH z;)^V{blO=*MWU~87vP7*ekw{|%;o(+21CpMMzfFNblGkuq5}I)*vYe}(K_74b&mXt zg?%m9>w~|&g-n(=;lCYP8F5B&7GU2ng}WX`rZHRIVtq^w6kq$EDSU+4Z=euTqnV~D zZDW*wUQ?V0(8yfqL-nXEFt8KkY)M8tKzV8ABct%#-~bDa2LYcg3mB)S1OH2e&!oEA zwYBdV9*0$wX$fwhOV|sLW7$h2a*6mLy#$It@lxK^3H}iw!i@N~U@X?L(*DBG(PiO^ jw#-6bcrW}!z;^rrk-=hqkh#5y00000NkvXXu0mjfK4S{H diff --git a/assets/images/settings_icon.png b/assets/images/settings_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bfbf3264460b3c879a96fd0a9985789e3f24880e GIT binary patch literal 12862 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�C5pnSvt}2I_X2~43~R?FZw3?=`v$E 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 VIwOAB5B%>3L@>2BDL+cQ`ajT>LWTeU literal 0 HcmV?d00001 diff --git a/assets/images/youtube_icon.png b/assets/images/youtube_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5abdb7b454d7a7517691c791513490743855e486 GIT binary patch literal 8618 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 Q-%<~M%IajrUmn;0A5D{si2wiq literal 0 HcmV?d00001 diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart index 63cfbf6..9ab6803 100644 --- a/lib/features/auth/screens/home_screen.dart +++ b/lib/features/auth/screens/home_screen.dart @@ -34,6 +34,7 @@ class _HomeScreenState extends State { body: SafeArea( child: Column( children: [ + const SizedBox(height: 10), // 🔹 상단 검색창 + 알림/설정 아이콘 (이미지 버전) Padding( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), @@ -44,30 +45,38 @@ class _HomeScreenState extends State { const SizedBox(width: 10), // 검색창 아이콘 + 입력창 - const Icon(Icons.search, color: Colors.black54), - const SizedBox(width: 8), + const SizedBox(width: 5), Expanded( child: TextField( decoration: InputDecoration( hintText: '검색어를 입력해주세요.', hintStyle: const TextStyle(color: Colors.grey), - border: InputBorder.none, + + border: OutlineInputBorder( // 경계선을 보이게 하여 아이콘과 텍스트 필드가 하나로 보이게 합니다. + borderRadius: BorderRadius.circular(8.0), // 원하는 만큼 둥글게 처리 + borderSide: BorderSide.none, // 경계선 자체는 없앰 (배경색을 사용한다면) + ), + prefixIcon: const Icon( + Icons.search, + color: Colors.black54 + ), ), ), ), + const SizedBox(width: 15), // 🔔 알림 아이콘 (이미지) Image.asset( - 'assets/images/alram_icon.png', + 'assets/images/alert_icon.png', width: 26, height: 26, fit: BoxFit.contain, ), - const SizedBox(width: 14), + const SizedBox(width: 12), // ⚙️ 설정 아이콘 (이미지) Image.asset( - 'assets/images/setting_icon.png', + 'assets/images/settings_icon.png', width: 26, height: 26, fit: BoxFit.contain, @@ -76,35 +85,48 @@ class _HomeScreenState extends State { ), ), - // 🔹 상단 노란 배너 Container( - width: 358, - height: 85, + width: 412, + height: 160, margin: const EdgeInsets.symmetric(vertical: 8), padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10), - decoration: BoxDecoration( - color: const Color(0xFFFFF8C6), - borderRadius: BorderRadius.circular(12), + decoration: const BoxDecoration( + color: Color(0xFFFFF8C6), + //borderRadius: BorderRadius.circular(30), ), child: Row( - crossAxisAlignment: CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Image.asset( - 'assets/images/character_icon.png', - width: 60, - height: 60, - fit: BoxFit.contain, + Padding( + // left와 top에 여백을 줘서 살짝 오른쪽/아래로 이동 + padding: const EdgeInsets.only(left: 16.0, top: 15.0), + child: Image.asset( + 'assets/images/main_icon.png', + width: 80, + height: 80, + fit: BoxFit.contain, + ), ), const SizedBox(width: 25), const Expanded( - child: Text( - '안전 송금, 퀴즈로 배우자!\n퀴즈 풀고 포인트를 모아요!', - style: TextStyle( - color: Colors.black87, - fontSize: 16, - fontWeight: FontWeight.w600, - height: 1.4, + // 텍스트만 원하는 위치에 배치하기 위해 Align 위젯을 추가합니다. + child: Padding( + // 텍스트 주변에 여백을 추가합니다. + // EdgeInsets.only를 사용하여 오른쪽(right)과 아래쪽(bottom)에만 여백을 줄 수 있습니다. + padding: const EdgeInsets.only(right: 13.0, bottom: 11.0), + child: Align( + alignment: Alignment.bottomRight, + child: const Text( + '안전 송금, 퀴즈로 배우자!\n퀴즈 풀고 포인트를 모아요!', + textAlign: TextAlign.end, + style: TextStyle( + color: Colors.black87, + fontSize: 22, + fontWeight: FontWeight.bold, + height: 1.5, + ), + ), ), ), ), @@ -112,33 +134,33 @@ class _HomeScreenState extends State { ), ), - const SizedBox(height: 16), + const SizedBox(height: 11), - // 🔹 아래 카드 3개 + /// 🔹 아래 카드 3개 Expanded( child: SingleChildScrollView( child: Column( children: [ _buildCard( title: '역량 진단 시작하기', - subtitle: '나의 금융 이해도를 측정해보세요!', - imagePath: 'assets/images/check_icon.png', + //subtitle: '나의 금융 이해도를 측정해보세요!', + imagePath: 'assets/images/checkBox_icon.png', onTap: () { Navigator.pushNamed(context, '/abilityTest'); }, ), _buildCard( title: '금융 퀴즈 도전', - subtitle: '맞히면 포인트가 쌓여요!', - imagePath: 'assets/images/quiz_icon.png', + //subtitle: '맞히면 포인트가 쌓여요!', + imagePath: 'assets/images/quiz_icon2.png', onTap: () { Navigator.pushNamed(context, '/quiz'); }, ), _buildCard( title: '보이스피싱 예방 영상', - subtitle: '보이스피싱 수법과 대처법을\n영상으로 확인하세요!', - imagePath: 'assets/images/video_icon.png', + //subtitle: '보이스피싱 수법과 대처법에 대해 알아보세요!', + imagePath: 'assets/images/youtube_icon.png', onTap: () { Navigator.pushNamed(context, '/video'); }, @@ -197,23 +219,37 @@ class _HomeScreenState extends State { // 🔹 카드 위젯 (오른쪽 하단 이미지) Widget _buildCard({ required String title, - required String subtitle, + //required subtitle, required String imagePath, required VoidCallback onTap, }) { + // --- [1. 상수 정의] --- + const double imageSize = 50; + const double imageHorizontalOffset = 22; + const double imageVerticalOffset = 27; + + // 💡 [새로 정의] 텍스트가 차지할 최대 너비 (카드의 패딩을 제외한 실질적 내용 영역의 폭) + // 카드 너비 (350) - (왼쪽 패딩 + 오른쪽 패딩) + // 카드의 내부 패딩(16)을 고려하여 계산합니다. + const double contentWidth = 350 - (16 * 2); + + // 💡 [조정 가능] 제목과 부제목의 개별 위치 상수 + const double titleTopOffset = 35; // 제목이 위쪽에서 얼마나 띄워질지 + //const double subtitleTopOffset = titleTopOffset + 55; // 부제목이 위쪽에서 얼마나 띄워질지 (제목 위치 + 제목 높이) + return GestureDetector( onTap: onTap, child: Container( - width: 358, - height: 137, - margin: const EdgeInsets.symmetric(vertical: 20), + width: 347, + height: 140, + margin: const EdgeInsets.symmetric(vertical: 15), padding: const EdgeInsets.all(16), decoration: BoxDecoration( color: Colors.white, - borderRadius: BorderRadius.circular(16), + borderRadius: BorderRadius.circular(37), boxShadow: [ BoxShadow( - color: Colors.grey.withOpacity(0.15), + color: Colors.grey.withOpacity(0.3), spreadRadius: 1, blurRadius: 5, offset: const Offset(0, 2), @@ -222,43 +258,54 @@ class _HomeScreenState extends State { ), child: Stack( children: [ + + // 1. 이미지 (왼쪽 위쪽, 미세 조정 가능) Positioned( - left: 0, - top: 20, - child: SizedBox( - width: 250, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - title, - style: const TextStyle( - fontWeight: FontWeight.bold, - fontSize: 20, - ), - ), - const SizedBox(height: 8), - Text( - subtitle, - style: const TextStyle( - color: Colors.black54, - fontSize: 15, - ), - ), - ], - ), - ), - ), - Positioned( - right: 8, - bottom: 8, + left: imageHorizontalOffset, // 왼쪽 위치 + top: imageVerticalOffset, // 위쪽 위치 child: Image.asset( imagePath, - width: 60, - height: 60, + width: imageSize, + height: imageSize, fit: BoxFit.contain, ), ), + + // 2. 제목 (Title) - 독립적으로 위치 조정 + Positioned( + left: 35, // 이미지 공간 확보 + top: titleTopOffset, // 💡 이 값을 조정하여 제목 위치 미세 조정 + child: SizedBox( + width: contentWidth, // 카드의 폭에서 이미지+패딩을 뺀 나머지 공간 + child: Text( + title, + textAlign: TextAlign.center, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 23.5, + ), + ), + ), + ), + + // 3. 부제목 (Subtitle) - 독립적으로 위치 조정 + //if (subtitle != null) // subtitle이 있을 때만 표시 + // Positioned( + // left: 0, // 이미지 공간 확보 + // top: subtitleTopOffset, // 💡 이 값을 조정하여 부제목 위치 미세 조정 + // child: SizedBox( + // width: contentWidth, + // child: Text( + // subtitle, + // textAlign: TextAlign.center, + // style: const TextStyle( + // color: Colors.black54, + // fontWeight: FontWeight.w500, + // fontSize: 16, + // ), + // ), + // ), + // ), ], ), ), diff --git a/local.properties b/local.properties index f5fe754..efb2919 100644 --- a/local.properties +++ b/local.properties @@ -4,6 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Fri Oct 31 22:58:57 KST 2025 +#Tue Nov 04 11:03:37 KST 2025 flutter.sdk=C\:\\flutter -sdk.dir=C\:\\Users\\Kim\\AppData\\Local\\Android\\Sdk +sdk.dir=C\:\\Users\\ASUS\\AppData\\Local\\Android\\Sdk From fd3ebd90f5c7cd5641ef070b5a526ff0dc981164 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Thu, 6 Nov 2025 00:30:41 +0900 Subject: [PATCH 21/52] =?UTF-8?q?feaix=20:=20=20=EC=8A=A4=ED=94=84=C3=A3?= =?UTF-8?q?=C2=85=20=C3=AD=C2=86=C3=AC=C2=8A=20=ED=94=8C=EB=9F=AC=ED=84=B0?= =?UTF-8?q?=20=EC=B6=A9=EB=8F=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39397 -> 39397 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 19857 -> 20265 bytes lib/core/services/storage.dart | 13 ++ lib/features/auth/screens/chat_screen.dart | 166 ++++++++++++++++++ lib/features/auth/screens/home_screen.dart | 125 ++++++------- lib/features/auth/screens/login_screen.dart | 58 ++++-- lib/features/auth/services/api_service.dart | 164 +++++++++++++++++ lib/features/auth/services/auth_service.dart | 89 +++++++++- lib/main.dart | 40 ++++- 10 files changed, 566 insertions(+), 89 deletions(-) create mode 100644 lib/core/services/storage.dart create mode 100644 lib/features/auth/screens/chat_screen.dart create mode 100644 lib/features/auth/services/api_service.dart diff --git a/.gradle/8.11.1/fileHashes/fileHashes.bin b/.gradle/8.11.1/fileHashes/fileHashes.bin index fd4a7a246bd9cf1baa640a6352b30e4690867311..df0d93b624a27254b7a9ef97e1def0f81f269eeb 100644 GIT binary patch delta 4549 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 SLn*<#EpX$HC~u0@v-v-LBK0o- delta 3910 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 literal 17 VcmZQ}=bo_Q-nZT^1~A}^2LLsQ1mOSx diff --git a/.gradle/8.11.1/fileHashes/resourceHashesCache.bin b/.gradle/8.11.1/fileHashes/resourceHashesCache.bin index c156c0870772712594e625dbc09fe966ef8d8d88..57ba1d986924298cd7218a7494661b83ca2b725b 100644 GIT binary patch delta 410 zcmbO@n{nkl#tkMCnkFqy?`xi9E`P@W1|BE>LqXe>SdFrdzm*Vizxv6p5()zC>tdvs z=0vGO1rJY-1qybx^0YL+i86x<#!fDk$Pid{Gnh5zn)FwQpg;TMs}cbMyOjT4(Tn2m zg$Vjyoh&PvA#iqT2}|K!9TTYbr;}?X6$Gwqaeij@KYcw^W&Y%;k_wa0N+xLhv}9}5 z+4cDuRN_0#xxcdH@*d7t?0}jgIayWefq?m%%&m8`ZbFUrojCcgRD*!q?AnFtA>1NR z6E;sSl@1Un?0LS<&%K5Ns(s<)z0wvc^^5*Y?_b;J02Q=`*#)B+7+5}TRQw^n(Lh6Z tv!h1<>tuiLAOX{e;}_zpKJ-0_i&x$5O`24`GChdVR diff --git a/lib/core/services/storage.dart b/lib/core/services/storage.dart new file mode 100644 index 0000000..e1978d7 --- /dev/null +++ b/lib/core/services/storage.dart @@ -0,0 +1,13 @@ +// storage.dart (새 파일) +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +class AppStorage { + static const storage = FlutterSecureStorage( + aOptions: AndroidOptions( + encryptedSharedPreferences: true, // ✅ 항상 동일 옵션 + ), + iOptions: IOSOptions( + accessibility: KeychainAccessibility.unlocked, + ), + ); +} diff --git a/lib/features/auth/screens/chat_screen.dart b/lib/features/auth/screens/chat_screen.dart new file mode 100644 index 0000000..f44f629 --- /dev/null +++ b/lib/features/auth/screens/chat_screen.dart @@ -0,0 +1,166 @@ +import 'package:flutter/material.dart'; +import '../services/api_service.dart'; // ⬅️ 방금 만드신 API 서비스 임포트 +// 필요한 다른 모델/위젯 임포트 +import 'package:guardpayfront/core/services/storage.dart'; + +class ChatScreen extends StatefulWidget { + + final ApiService api; // ✅ 주입받을 필드 + const ChatScreen({super.key, required this.api}); + + @override + State createState() => _ChatScreenState(); +} + +class _ChatScreenState extends State { + // 1. 상태 관리를 위한 변수 선언 + + final TextEditingController _textController = TextEditingController(); // 입력창 컨트롤러 + final List> _messages = []; // 대화 내용을 저장할 리스트 (사용자/AI 구분) + bool _isLoading = false; // AI 응답 대기 상태 + + @override + void dispose() { + _textController.dispose(); + super.dispose(); + } + + // 2. 메시지 전송 로직 + void _handleSubmitted(String text) async { + if (text.isEmpty || _isLoading) return; + + _textController.clear(); + + // 사용자 메시지를 목록에 추가 + setState(() { + _messages.insert(0, {'sender': 'user', 'text': text}); + _isLoading = true; + }); + + try { + + print('>>> [UI] call sendChatMessage("$text")'); + + // 3. API 서비스 호출 (여기서 서버/Gemini와 통신) + final aiResponse = await widget.api.sendChatMessage(text); + print('>>> [UI] sendChatMessage returned: ${aiResponse.substring(0, aiResponse.length > 60 ? 60 : aiResponse.length)}'); + + // AI 응답을 목록에 추가 + setState(() { + _messages.insert(0, {'sender': 'ai', 'text': aiResponse}); + }); + } catch (e) { + print('>>> [UI] exception: $e'); + + // 오류 메시지 표시 + setState(() { + _messages.insert(0, {'sender': 'ai', 'text': '죄송합니다. 오류가 발생했습니다: $e'}); + }); + } finally { + + setState(() { + _isLoading = false; + }); + } + } + + // 4. 입력창 위젯 + Widget _buildTextComposer() { + return Container( + margin: const EdgeInsets.symmetric(horizontal: 8.0), + child: Row( + children: [ + Flexible( + child: TextField( + controller: _textController, + onSubmitted: _handleSubmitted, // 엔터 키를 누를 때 실행 + decoration: const InputDecoration.collapsed(hintText: '궁금한 금융 질문을 입력하세요'), + ), + ), + Container( + margin: const EdgeInsets.symmetric(horizontal: 4.0), + child: IconButton( + icon: const Icon(Icons.send), + onPressed: _isLoading + ? null // 로딩 중이면 버튼 비활성화 + : () => _handleSubmitted(_textController.text), + ), + ), + ], + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('금융 AI 챗봇'), + backgroundColor: Theme.of(context).primaryColor, + ), + body: Column( + children: [ + // 5. 로딩 인디케이터 (AI 응답 대기 시) + if (_isLoading) + const LinearProgressIndicator(), + + // 6. 대화 목록 (ListView) + Flexible( + child: ListView.builder( + padding: const EdgeInsets.all(8.0), + reverse: true, // 최신 메시지가 아래로 오도록 설정 + itemBuilder: (_, int index) => _buildChatMessage(_messages[index]), + itemCount: _messages.length, + ), + ), + + const Divider(height: 1.0), + + // 7. 입력창 + Container( + decoration: BoxDecoration(color: Theme.of(context).cardColor), + child: _buildTextComposer(), + ), + ], + ), + ); + } + + // 8. 개별 메시지 버블 위젯 + Widget _buildChatMessage(Map message) { + final bool isUser = message['sender'] == 'user'; + + return Container( + margin: const EdgeInsets.symmetric(vertical: 10.0), + child: Row( + mainAxisAlignment: isUser ? MainAxisAlignment.end : MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // AI 메시지일 때만 아바타 (아이콘) 표시 + if (!isUser) + const Padding( + padding: EdgeInsets.only(right: 8.0), + child: CircleAvatar(child: Text('AI')), + ), + + // 메시지 버블 + Container( + constraints: BoxConstraints(maxWidth: MediaQuery.of(context).size.width * 0.75), + padding: const EdgeInsets.all(12.0), + decoration: BoxDecoration( + color: isUser ? Colors.blueAccent : Colors.grey[200], + borderRadius: BorderRadius.circular(15), + ), + child: Text( + message['text']!, + style: TextStyle(color: isUser ? Colors.white : Colors.black87), + ), + ), + ], + ), + ); + } + + + +} \ No newline at end of file diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart index 9ab6803..d519205 100644 --- a/lib/features/auth/screens/home_screen.dart +++ b/lib/features/auth/screens/home_screen.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter/cupertino.dart'; +import 'chat_screen.dart'; +import 'package:guardpayfront/core/services/storage.dart'; +import 'package:guardpayfront/features/auth/services/api_service.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @@ -10,7 +12,9 @@ class HomeScreen extends StatefulWidget { } class _HomeScreenState extends State { - final storage = const FlutterSecureStorage(); + final storage = AppStorage.storage; + final ApiService _api = ApiService(); + String? accessToken; int _selectedIndex = 0; @@ -22,9 +26,17 @@ class _HomeScreenState extends State { Future _loadToken() async { final token = await storage.read(key: 'accessToken'); - setState(() { - accessToken = token; - }); + + if (token != null) { + setState(() { + accessToken = token; + }); + } else { + print("🚨 HomeScreen: 저장된 토큰이 없습니다. 로그인 화면으로 이동합니다."); + if (mounted) { + Navigator.pushReplacementNamed(context, '/login'); + } + } } @override @@ -35,7 +47,8 @@ class _HomeScreenState extends State { child: Column( children: [ const SizedBox(height: 10), - // 🔹 상단 검색창 + 알림/설정 아이콘 (이미지 버전) + + // 🔹 상단 검색창 + 알림/설정 아이콘 (팀원 디자인 적용) Padding( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), child: Row( @@ -44,28 +57,28 @@ class _HomeScreenState extends State { const Icon(Icons.menu, color: Colors.black87, size: 26), const SizedBox(width: 10), - // 검색창 아이콘 + 입력창 + // 검색창 (팀원 디자인: prefixIcon 사용) const SizedBox(width: 5), Expanded( child: TextField( decoration: InputDecoration( hintText: '검색어를 입력해주세요.', hintStyle: const TextStyle(color: Colors.grey), - - border: OutlineInputBorder( // 경계선을 보이게 하여 아이콘과 텍스트 필드가 하나로 보이게 합니다. - borderRadius: BorderRadius.circular(8.0), // 원하는 만큼 둥글게 처리 - borderSide: BorderSide.none, // 경계선 자체는 없앰 (배경색을 사용한다면) + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8.0), + borderSide: BorderSide.none, ), prefixIcon: const Icon( - Icons.search, - color: Colors.black54 + Icons.search, + color: Colors.black54, ), ), ), ), const SizedBox(width: 15), - // 🔔 알림 아이콘 (이미지) + + // 🔔 알림 아이콘 (팀원 이미지명: alert_icon.png) Image.asset( 'assets/images/alert_icon.png', width: 26, @@ -74,7 +87,7 @@ class _HomeScreenState extends State { ), const SizedBox(width: 12), - // ⚙️ 설정 아이콘 (이미지) + // ⚙️ 설정 아이콘 (팀원 이미지명: settings_icon.png) Image.asset( 'assets/images/settings_icon.png', width: 26, @@ -85,7 +98,7 @@ class _HomeScreenState extends State { ), ), - // 🔹 상단 노란 배너 + // 🔹 상단 노란 배너 (팀원 디자인 적용) Container( width: 412, height: 160, @@ -93,13 +106,11 @@ class _HomeScreenState extends State { padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10), decoration: const BoxDecoration( color: Color(0xFFFFF8C6), - //borderRadius: BorderRadius.circular(30), ), child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - // left와 top에 여백을 줘서 살짝 오른쪽/아래로 이동 padding: const EdgeInsets.only(left: 16.0, top: 15.0), child: Image.asset( 'assets/images/main_icon.png', @@ -110,14 +121,11 @@ class _HomeScreenState extends State { ), const SizedBox(width: 25), const Expanded( - // 텍스트만 원하는 위치에 배치하기 위해 Align 위젯을 추가합니다. child: Padding( - // 텍스트 주변에 여백을 추가합니다. - // EdgeInsets.only를 사용하여 오른쪽(right)과 아래쪽(bottom)에만 여백을 줄 수 있습니다. - padding: const EdgeInsets.only(right: 13.0, bottom: 11.0), + padding: EdgeInsets.only(right: 13.0, bottom: 11.0), child: Align( alignment: Alignment.bottomRight, - child: const Text( + child: Text( '안전 송금, 퀴즈로 배우자!\n퀴즈 풀고 포인트를 모아요!', textAlign: TextAlign.end, style: TextStyle( @@ -136,14 +144,13 @@ class _HomeScreenState extends State { const SizedBox(height: 11), - /// 🔹 아래 카드 3개 + // 🔹 아래 카드 3개 (기존 로직 유지, 디자인만 변경) Expanded( child: SingleChildScrollView( child: Column( children: [ _buildCard( title: '역량 진단 시작하기', - //subtitle: '나의 금융 이해도를 측정해보세요!', imagePath: 'assets/images/checkBox_icon.png', onTap: () { Navigator.pushNamed(context, '/abilityTest'); @@ -151,7 +158,6 @@ class _HomeScreenState extends State { ), _buildCard( title: '금융 퀴즈 도전', - //subtitle: '맞히면 포인트가 쌓여요!', imagePath: 'assets/images/quiz_icon2.png', onTap: () { Navigator.pushNamed(context, '/quiz'); @@ -159,7 +165,6 @@ class _HomeScreenState extends State { ), _buildCard( title: '보이스피싱 예방 영상', - //subtitle: '보이스피싱 수법과 대처법에 대해 알아보세요!', imagePath: 'assets/images/youtube_icon.png', onTap: () { Navigator.pushNamed(context, '/video'); @@ -170,7 +175,7 @@ class _HomeScreenState extends State { ), ), - // 🔹 하단 네비게이션바 (이미지 라벨 포함된 아이콘만) + // 🔹 하단 네비게이션바 (기존 로직 유지) Container( decoration: BoxDecoration( color: Colors.white, @@ -190,7 +195,15 @@ class _HomeScreenState extends State { _BottomImageOnlyIcon( imagePath: 'assets/images/AI_icon.png', isActive: _selectedIndex == 1, - onTap: () => setState(() => _selectedIndex = 1), + onTap: () { + setState(() => _selectedIndex = 1); + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => ChatScreen(api: _api), + ), + ); + }, ), _BottomImageOnlyIcon( imagePath: 'assets/images/shop_icon.png', @@ -216,26 +229,18 @@ class _HomeScreenState extends State { ); } - // 🔹 카드 위젯 (오른쪽 하단 이미지) + // 🔹 카드 위젯 (팀원 디자인 전면 적용) Widget _buildCard({ required String title, - //required subtitle, required String imagePath, required VoidCallback onTap, }) { - // --- [1. 상수 정의] --- + // 팀원의 상수 정의 const double imageSize = 50; const double imageHorizontalOffset = 22; const double imageVerticalOffset = 27; - - // 💡 [새로 정의] 텍스트가 차지할 최대 너비 (카드의 패딩을 제외한 실질적 내용 영역의 폭) - // 카드 너비 (350) - (왼쪽 패딩 + 오른쪽 패딩) - // 카드의 내부 패딩(16)을 고려하여 계산합니다. const double contentWidth = 350 - (16 * 2); - - // 💡 [조정 가능] 제목과 부제목의 개별 위치 상수 - const double titleTopOffset = 35; // 제목이 위쪽에서 얼마나 띄워질지 - //const double subtitleTopOffset = titleTopOffset + 55; // 부제목이 위쪽에서 얼마나 띄워질지 (제목 위치 + 제목 높이) + const double titleTopOffset = 35; return GestureDetector( onTap: onTap, @@ -258,11 +263,10 @@ class _HomeScreenState extends State { ), child: Stack( children: [ - - // 1. 이미지 (왼쪽 위쪽, 미세 조정 가능) + // 1. 이미지 (왼쪽 위) Positioned( - left: imageHorizontalOffset, // 왼쪽 위치 - top: imageVerticalOffset, // 위쪽 위치 + left: imageHorizontalOffset, + top: imageVerticalOffset, child: Image.asset( imagePath, width: imageSize, @@ -271,12 +275,12 @@ class _HomeScreenState extends State { ), ), - // 2. 제목 (Title) - 독립적으로 위치 조정 + // 2. 제목 (중앙 정렬) Positioned( - left: 35, // 이미지 공간 확보 - top: titleTopOffset, // 💡 이 값을 조정하여 제목 위치 미세 조정 + left: 35, + top: titleTopOffset, child: SizedBox( - width: contentWidth, // 카드의 폭에서 이미지+패딩을 뺀 나머지 공간 + width: contentWidth, child: Text( title, textAlign: TextAlign.center, @@ -287,25 +291,6 @@ class _HomeScreenState extends State { ), ), ), - - // 3. 부제목 (Subtitle) - 독립적으로 위치 조정 - //if (subtitle != null) // subtitle이 있을 때만 표시 - // Positioned( - // left: 0, // 이미지 공간 확보 - // top: subtitleTopOffset, // 💡 이 값을 조정하여 부제목 위치 미세 조정 - // child: SizedBox( - // width: contentWidth, - // child: Text( - // subtitle, - // textAlign: TextAlign.center, - // style: const TextStyle( - // color: Colors.black54, - // fontWeight: FontWeight.w500, - // fontSize: 16, - // ), - // ), - // ), - // ), ], ), ), @@ -313,7 +298,7 @@ class _HomeScreenState extends State { } } -// 🔹 하단 네비게이션 이미지 아이콘 (텍스트 라벨 제거) +// 🔹 하단 네비게이션 이미지 아이콘 class _BottomImageOnlyIcon extends StatelessWidget { final String imagePath; final bool isActive; @@ -333,8 +318,8 @@ class _BottomImageOnlyIcon extends StatelessWidget { imagePath, width: 45, height: 45, - color: isActive ? null : Colors.black54, // 비활성 시 약간 어둡게 처리 + color: isActive ? null : Colors.black54, ), ); } -} +} \ No newline at end of file diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index e58ffb2..deff67d 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; -import 'dart:convert'; -import 'package:http/http.dart' as http; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'dart:convert'; // jsonDecode를 사용하기 위해 필요 +import 'package:http/http.dart' as http; // http 사용을 위해 필요 +import 'package:guardpayfront/core/services/storage.dart'; class LoginScreen extends StatefulWidget { const LoginScreen({super.key}); @@ -15,7 +16,9 @@ class _LoginScreenState extends State { final _emailController = TextEditingController(); final _passwordController = TextEditingController(); - final _storage = const FlutterSecureStorage(); + //final _storage = const FlutterSecureStorage(); + final _storage = AppStorage.storage; // ✅ 교체 + bool _isLoading = false; bool _obscureText = true; @@ -52,21 +55,51 @@ class _LoginScreenState extends State { ); if (response.statusCode == 200) { - final data = jsonDecode(response.body); + // ⬇️ [수정] response.body 대신 response.bodyBytes를 UTF-8로 디코딩합니다. + final responseBody = utf8.decode(response.bodyBytes); + + // ⬇️ [디버그] Flutter가 받은 응답 원본 확인 + print('✅ [Login Success] 서버 응답 본문 (UTF-8 디코딩): $responseBody'); + + final data = jsonDecode(responseBody); // 디코딩된 문자열을 JSON 객체로 파싱 + + final accessToken = data['accessToken']; + final refreshToken = data['refreshToken']; + + // ⬇️ [디버그] 파싱된 토큰 값 확인 + print('Access Token from data: $accessToken'); + print('Refresh Token from data: $refreshToken'); + + + if (accessToken != null && refreshToken != null) { + // 토큰 저장 + await _storage.write(key: 'tokenType', value: 'Bearer'); + await _storage.write(key: 'accessToken', value: accessToken); + await _storage.write(key: 'refreshToken', value: refreshToken); - // 토큰 저장 - await _storage.write(key: 'accessToken', value: data['accessToken']); - await _storage.write(key: 'refreshToken', value: data['refreshToken']); +// 저장 확인 (중요) + final checkA = await _storage.read(key: 'accessToken'); + final checkR = await _storage.read(key: 'refreshToken'); + final checkT = await _storage.read(key: 'tokenType'); - _showSnackBar('로그인 성공!'); + print('>>> saved? access=${checkA != null}, refresh=${checkR != null}'); + _showSnackBar('로그인 성공!'); + if (!mounted) return; + // 홈 화면으로 이동 (로그인 페이지는 제거) + Navigator.pushReplacementNamed(context, '/home'); - // 홈 화면으로 이동 (로그인 페이지는 제거) - Navigator.pushReplacementNamed(context, '/home'); + } else { + // 🚨 서버가 토큰을 반환했지만, 필드가 누락된 경우 + _showSnackBar('로그인은 성공했지만, 토큰 필드(accessToken/refreshToken)가 누락되었습니다. 서버의 응답 구조를 확인해주세요.'); + } } else { - final error = jsonDecode(response.body); - _showSnackBar('로그인 실패'); + // 오류 처리 + // ⬇️ 오류 응답도 UTF-8 디코딩을 시도합니다. + final errorBody = jsonDecode(utf8.decode(response.bodyBytes)); + _showSnackBar(errorBody['message'] ?? '로그인 실패: 서버 오류'); } } catch (e) { + print('🚨 로그인 요청 실패: $e'); // 실제 예외 로깅 _showSnackBar('서버와 통신할 수 없습니다.'); } finally { setState(() => _isLoading = false); @@ -75,6 +108,7 @@ class _LoginScreenState extends State { @override Widget build(BuildContext context) { + // ... (UI 부분은 동일) ... return Scaffold( backgroundColor: const Color(0xFFF9F5EC), body: SafeArea( diff --git a/lib/features/auth/services/api_service.dart b/lib/features/auth/services/api_service.dart new file mode 100644 index 0000000..7c541a7 --- /dev/null +++ b/lib/features/auth/services/api_service.dart @@ -0,0 +1,164 @@ +// ApiService.dart +import 'dart:convert'; +import 'package:http/http.dart' as http; +import 'package:guardpayfront/core/services/storage.dart'; +import 'auth_service.dart'; +import 'dart:developer'; // 👈 print 대신 log를 사용하기 위해 추가 (권장) + +class ApiService { + final storage = AppStorage.storage; + final AuthService _authService = AuthService(); + // ❗️ 안드로이드 에뮬레이터 기준. 실제 기기 테스트 시 PC의 IP로 변경 필요 + final String _baseUrl = "http://10.0.2.2:8080"; + + String? _jwtType(String jwt) { + try { + final parts = jwt.split('.'); + if (parts.length != 3) return null; + String norm(String s) => + s.replaceAll('-', '+').replaceAll('_', '/').padRight((s.length + 3) ~/ 4 * 4, '='); + final payload = utf8.decode(base64.decode(norm(parts[1]))); + final obj = jsonDecode(payload) as Map; + return (obj['type'] as String?)?.toLowerCase(); // "access" | "refresh" + } catch (_) { + return null; + } + } + + String _mask(String? t) => + (t == null || t.length <= 12) ? '***' : '${t.substring(0, 6)}...${t.substring(t.length - 4)}'; + + Future _executeApiCall(String token, String message) async { + final uri = Uri.parse('$_baseUrl/api/chat/financial-advice'); + final body = jsonEncode({'prompt': message}); + + log('>> [CHAT:req] POST $uri'); + log('>> [CHAT:req] Authorization: Bearer ${_mask(token)} (type=${_jwtType(token)})'); + log('>> [CHAT:req] Body: $body'); + + final res = await http.post( + uri, + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json', + 'Authorization': 'Bearer $token', + }, + body: body, + ); + + // ✅ UTF-8 디코딩을 여기서 한 번만 하도록 통일 + final responseBody = utf8.decode(res.bodyBytes); + log('>> [CHAT:res] status=${res.statusCode}'); + log('>> [CHAT:res] headers=${res.headers}'); + log('>> [CHAT:res] body=$responseBody'); + + return res; // response 객체 자체를 반환 (bodyBytes를 포함) + } + + Future sendChatMessage(String message) async { + log('>>> [API] enter sendChatMessage: "$message"'); + + String? access = await storage.read(key: 'accessToken'); + String? refresh = await storage.read(key: 'refreshToken'); + + log('>>> [API] loaded tokens: access=${_mask(access)} type=${access==null?null:_jwtType(access)} ' + '/ refresh=${_mask(refresh)} type=${refresh==null?null:_jwtType(refresh)}'); + + // access가 없고 refresh가 있으면 먼저 갱신 시도 + if (access == null && refresh != null) { + log('>>> [API] access is null, try refresh with refresh=${_mask(refresh)}'); + final ok = await _authService.checkAndRefreshTokens(refresh); + log('>>> [API] refresh result: $ok'); + if (ok) { + access = await storage.read(key: 'accessToken'); + log('>>> [API] new access after refresh: ${_mask(access)} type=${access==null?null:_jwtType(access)}'); + } + } + + if (access == null) { + log('>>> [API] early return: access still null -> "로그인이 필요합니다."'); + return "로그인이 필요합니다."; + } + + final aType = _jwtType(access); + if (aType != null && aType != 'access') { + log('>>> [API] guard: access.type != access (type=$aType)'); + if (refresh == null) { + log('>>> [API] no refresh -> deleteAll & return'); + await storage.deleteAll(); + return "세션이 만료되었습니다. 다시 로그인해주세요."; + } + final ok = await _authService.checkAndRefreshTokens(refresh); + log('>>> [API] refresh-by-guard result: $ok'); + if (!ok) { + await storage.deleteAll(); + return "세션이 만료되었습니다. 다시 로그인해주세요."; + } + access = await storage.read(key: 'accessToken'); + log('>>> [API] access after guard-refresh: ${_mask(access)} type=${access==null?null:_jwtType(access)}'); + if (access == null || _jwtType(access) != 'access') { + await storage.deleteAll(); + return "세션이 만료되었습니다. 다시 로그인해주세요."; + } + } + + log('>>> [API] call _executeApiCall with access=${_mask(access)}'); + http.Response response = await _executeApiCall(access, message); + + if (response.statusCode == 401) { + log('>>> [API] got 401, try refresh & retry'); + final currentRefresh = await storage.read(key: 'refreshToken'); + if (currentRefresh != null) { + final refreshSuccess = await _authService.checkAndRefreshTokens(currentRefresh); + log('>>> [API] refresh-on-401 result: $refreshSuccess'); + if (refreshSuccess) { + final newAccess = await storage.read(key: 'accessToken'); + log('>>> [API] newAccess after 401-refresh: ${_mask(newAccess)} type=${newAccess==null?null:_jwtType(newAccess)}'); + if (newAccess != null && _jwtType(newAccess) == 'access') { + response = await _executeApiCall(newAccess, message); + } else { + await storage.deleteAll(); + return "세션이 만료되었습니다. 다시 로그인해주세요."; + } + } else { + await storage.deleteAll(); + return "세션이 만료되었습니다. 다시 로그인해주세요."; + } + } else { + await storage.delete(key: 'accessToken'); + return "세션이 만료되었습니다. 다시 로그인해주세요."; + } + } + + // ✅ 응답 본문을 미리 디코딩 + final String responseBody = utf8.decode(response.bodyBytes); + log('>>> [API] final status: ${response.statusCode}'); + + if (response.statusCode == 200) { + try { + // ✅ [수정] response.bodyBytes 대신 미리 디코딩한 responseBody 사용 + final map = jsonDecode(responseBody) as Map; + + // ✅ [수정] 서버가 반환하는 JSON 키인 'text'를 사용합니다. + final text = map['text'] as String?; + + if (text != null) { + log('>>> [API] parsed text ok (${text.length} chars)'); + return text; + } else { + log('>>> [API] parse error: "text" key is null or missing'); + log('>>> [API] raw response: $responseBody'); + return 'AI 응답 파싱 실패: "text" 키를 찾을 수 없습니다.'; + } + + } catch (e) { + log('>>> [API] parse error: $e'); + log('>>> [API] raw response: $responseBody'); + return "AI 응답 파싱 실패: $e"; + } + } else { + log('>>> [API] non-200: ${response.statusCode} / $responseBody'); + return "오류가 발생했습니다: ${response.statusCode} / $responseBody"; + } + } +} \ No newline at end of file diff --git a/lib/features/auth/services/auth_service.dart b/lib/features/auth/services/auth_service.dart index 00629e2..faab74c 100644 --- a/lib/features/auth/services/auth_service.dart +++ b/lib/features/auth/services/auth_service.dart @@ -4,7 +4,7 @@ import 'package:flutter/services.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; // 카카오 SDK import 'dart:developer'; import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:guardpayfront/core/services/storage.dart'; // ⬅️ 이걸 써야 함 import 'package:flutter_dotenv/flutter_dotenv.dart'; class AuthService { @@ -15,8 +15,7 @@ class AuthService { // ⬇️ [수정됨] 2. 폼 회원가입/비번찾기용 (고정 IP) final String _localBaseUrl = 'http://10.0.2.2:8080'; - final _secureStorage = const FlutterSecureStorage(); - + final _secureStorage = AppStorage.storage; static const String _tempAuthCode = '123456'; // 임시 이메일 인증 코드 /// === 소셜 로그인 (Google) === @@ -218,6 +217,84 @@ class AuthService { } } + + String _mask(String? t) => + (t == null || t.length <= 12) ? '***' : '${t.substring(0, 6)}...${t.substring(t.length - 4)}'; + + /// === 토큰 갱신 (Refresh Token) === + // JWT 갱신 API를 호출하고 성공 시 새 토큰을 저장하는 함수 + Future checkAndRefreshTokens(String refreshToken) async { + final uri = Uri.parse('$_localBaseUrl/api/auth/reissue'); + print('>>> [AUTH] enter checkAndRefreshTokens (uri: $uri)'); + + String? _jwtType(String jwt) { + try { + final p = jwt.split('.'); + if (p.length != 3) return null; + String norm(String s) => s.replaceAll('-', '+').replaceAll('_', '/') + .padRight((s.length + 3) ~/ 4 * 4, '='); + final payload = utf8.decode(base64.decode(norm(p[1]))); + return (jsonDecode(payload)['type'] as String?)?.toLowerCase(); + } catch (_) { return null; } + } + + Future _apply(http.Response res) async { + final bodyStr = utf8.decode(res.bodyBytes); + Map data = {}; + try { data = jsonDecode(bodyStr); } catch (_) {} + + String? newAccess = (data['accessToken'] ?? data['access_token']) as String?; + String? newRefresh = (data['refreshToken'] ?? data['refresh_token']) as String?; + // 헤더(Bearer)로 access를 줄 수도 있음 + final hb = res.headers['authorization']; + final headerAccess = hb?.replaceFirst(RegExp(r'Bearer\s+', caseSensitive:false), ''); + newAccess ??= headerAccess; + + // 타입 안전장치 + if (newAccess != null && _jwtType(newAccess) != 'access') newAccess = null; + if (newRefresh != null && _jwtType(newRefresh) != 'refresh') newRefresh = null; + + if (newAccess == null) return false; + await _secureStorage.write(key: 'accessToken', value: newAccess); + if (newRefresh != null) { + await _secureStorage.write(key: 'refreshToken', value: newRefresh); + } + return true; + } + + try { + print('>>> [AUTH] Attempt 1 (Header): Bearer ${_mask(refreshToken)}'); + + // 1) 헤더(Bearer refresh) 방식 + var res = await http.post(uri, headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer $refreshToken', + }); + print('>>> [AUTH] Attempt 1 (Header) Result: status=${res.statusCode}, body=${utf8.decode(res.bodyBytes)}'); + + if (res.statusCode == 200 && await _apply(res)) return true; + print('>>> [AUTH] Attempt 2 (Body): JSON'); + + // 2) 바디(JSON) 방식 폴백 + res = await http.post(uri, + headers: {'Content-Type': 'application/json'}, + body: jsonEncode({'refreshToken': refreshToken}), + ); + print('>>> [AUTH] Attempt 2 (Body) Result: status=${res.statusCode}, body=${utf8.decode(res.bodyBytes)}'); + + if (res.statusCode == 200 && await _apply(res)) return true; + print('>>> [AUTH] Both attempts failed. Returning false.'); + + return false; + } catch (e) { + print('>>> [AUTH] Exception caught: $e. Returning false.'); + + return false; + } + } + + + // 로그아웃 함수 Future kakaoLogout() async { try { @@ -228,5 +305,11 @@ class AuthService { throw Exception('로그아웃에 실패했습니다.'); } } + + + + } + + diff --git a/lib/main.dart b/lib/main.dart index dc344f4..470e585 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,6 +3,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +// ⬇️ AuthService 임포트 (경로를 프로젝트에 맞게 수정하세요) +import 'features/auth/services/auth_service.dart'; // import 'config/theme.dart'; import 'features/auth/screens/login_screen.dart'; import 'features/auth/screens/signup_screen.dart'; @@ -24,12 +26,42 @@ void main() async { // 3. Kakao SDK 초기화 (네이티브 앱 키 사용) KakaoSdk.init(nativeAppKey: '6cdfe8239c6cf5fdbaf793f4fc9581e3'); - // 4. 저장된 액세스 토큰 확인 - final storage = FlutterSecureStorage(); + // 4. 저장된 액세스 토큰과 리프레시 토큰 확인 + final storage = const FlutterSecureStorage(); final accessToken = await storage.read(key: 'accessToken'); + final refreshToken = await storage.read(key: 'refreshToken'); + + // ⬇️ [수정된 로직] 토큰 유효성 검사 및 갱신 시도 + String initialRoute = '/login'; // 기본값은 로그인 화면 + + if (accessToken != null && refreshToken != null) { + try { + final authService = AuthService(); + + // Refresh Token을 이용해 Access Token을 갱신하고 저장하는 로직 호출 + final bool isTokenRefreshed = await authService.checkAndRefreshTokens(refreshToken); + + if (isTokenRefreshed) { + // 갱신 성공: 새 토큰 발급 완료, 홈으로 이동 + log('✅ [Auth Check] 토큰 갱신 성공. 홈 화면으로 이동.'); + initialRoute = '/home'; + } else { + // 갱신 실패 (Refresh Token도 만료): 로그아웃 처리 + await storage.deleteAll(); // 저장된 토큰 모두 삭제 + log('🚨 [Auth Check] Refresh Token 만료 또는 유효하지 않음. 로그인 페이지로 이동.'); + initialRoute = '/login'; + } + } catch (e) { + // 서버 통신 오류 등 예외 발생 시: 로그아웃 처리 후 로그인 페이지로 + await storage.deleteAll(); + log('🚨 [Auth Check] 토큰 갱신 중 예외 발생 ($e). 로그인 페이지로 이동.'); + initialRoute = '/login'; + } + } + // 5. 토큰 유무에 따라 초기 화면 결정 후 앱 실행 - runApp(MyApp(initialRoute: accessToken != null ? '/home' : '/login')); + runApp(MyApp(initialRoute: initialRoute)); } class MyApp extends StatelessWidget { @@ -41,7 +73,7 @@ class MyApp extends StatelessWidget { return MaterialApp( debugShowCheckedModeBanner: false, title: 'GuardPay App', - theme: appTheme(), + // theme: appTheme(), // appTheme()이 정의되어 있다고 가정 initialRoute: initialRoute, // 초기 라우트 설정 routes: { '/login': (context) => const LoginScreen(), From 568ee594021e068ea257adbdc10a2a4bc5882320 Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Fri, 7 Nov 2025 22:32:01 +0900 Subject: [PATCH 22/52] =?UTF-8?q?feat:=20=EC=B1=97=EB=AA=BB=20=EB=94=94?= =?UTF-8?q?=EC=9E=90=EC=9D=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 2 +- backup/config/theme.dart | 58 ++++ backup/core/services/jwt_util.dart | 0 backup/core/services/token_storage.dart | 0 backup/features/auth/screens/home_screen.dart | 293 ++++++++++++++++ .../features/auth/screens/login_screen.dart | 208 ++++++++++++ .../auth/screens/reset_password_screen.dart | 267 +++++++++++++++ .../features/auth/screens/signup_screen.dart | 318 ++++++++++++++++++ .../features/auth/services/auth_service.dart | 253 ++++++++++++++ .../auth/widgets/auth_input_field.dart | 69 ++++ .../auth/widgets/email_auth_section.dart | 114 +++++++ backup/main.dart | 41 +++ lib/features/auth/screens/chat_screen.dart | 191 +++++------ lib/features/auth/screens/home_screen.dart | 170 ++-------- lib/features/auth/widgets/bottom_nav.dart | 108 ++++++ pubspec.lock | 20 +- 16 files changed, 1866 insertions(+), 246 deletions(-) create mode 100644 backup/config/theme.dart create mode 100644 backup/core/services/jwt_util.dart create mode 100644 backup/core/services/token_storage.dart create mode 100644 backup/features/auth/screens/home_screen.dart create mode 100644 backup/features/auth/screens/login_screen.dart create mode 100644 backup/features/auth/screens/reset_password_screen.dart create mode 100644 backup/features/auth/screens/signup_screen.dart create mode 100644 backup/features/auth/services/auth_service.dart create mode 100644 backup/features/auth/widgets/auth_input_field.dart create mode 100644 backup/features/auth/widgets/email_auth_section.dart create mode 100644 backup/main.dart create mode 100644 lib/features/auth/widgets/bottom_nav.dart diff --git a/.env b/.env index 57a8102..8813f46 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -API_BASE_URL=https://semialuminous-countryfied-pamala.ngrok-free.dev +API_BASE_URL=https://semialuminous-countryfied-pamala.ngrok-free.dev \ No newline at end of file diff --git a/backup/config/theme.dart b/backup/config/theme.dart new file mode 100644 index 0000000..0150b45 --- /dev/null +++ b/backup/config/theme.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; + +// 앱 전체에서 사용할 기본 색상 정의 +const Color primaryColor = Color(0xFF6AA84F); // GuardPay Green +const Color lightGrayBorder = Color(0xFFD0D0D0); // 연한 회색 테두리 +const Color lightBackground = Color(0xFFF9F5EC); // 베이지 배경색 + +// 앱의 전체 테마를 정의하는 함수 +ThemeData appTheme() { + return ThemeData( + // 앱의 전반적인 색상 톤을 설정합니다. + primaryColor: primaryColor, + // 배경색을 베이지색으로 설정합니다. + scaffoldBackgroundColor: lightBackground, + + // 입력창(TextField)의 기본 디자인을 설정합니다. + inputDecorationTheme: const InputDecorationTheme( + filled: true, + fillColor: Colors.white, + // 힌트 텍스트 색상 설정 + hintStyle: TextStyle(color: Color(0xFFBDBDBD)), + + // 기본 테두리 스타일: 둥근 모서리(8.0)와 연한 회색 테두리 + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8.0)), + borderSide: BorderSide(color: lightGrayBorder), + ), + // 활성화된 상태의 테두리 + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8.0)), + borderSide: BorderSide(color: lightGrayBorder), + ), + // 포커스 상태의 테두리 (주요 색상으로 강조) + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8.0)), + borderSide: BorderSide(color: primaryColor, width: 2.0), + ), + // 비활성화 상태의 테두리 (인증 완료 시 사용) + disabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(8.0)), + borderSide: BorderSide(color: lightGrayBorder, width: 1.0), + ), + // 입력 필드 내부 패딩 + contentPadding: EdgeInsets.symmetric(vertical: 12.0, horizontal: 16.0), + ), + + // Checkbox의 색상 설정 + checkboxTheme: CheckboxThemeData( + fillColor: MaterialStateProperty.resolveWith((states) { + if (states.contains(MaterialState.selected)) { + return primaryColor; + } + return Colors.white; + }), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(4)), + ) + ); +} diff --git a/backup/core/services/jwt_util.dart b/backup/core/services/jwt_util.dart new file mode 100644 index 0000000..e69de29 diff --git a/backup/core/services/token_storage.dart b/backup/core/services/token_storage.dart new file mode 100644 index 0000000..e69de29 diff --git a/backup/features/auth/screens/home_screen.dart b/backup/features/auth/screens/home_screen.dart new file mode 100644 index 0000000..63cfbf6 --- /dev/null +++ b/backup/features/auth/screens/home_screen.dart @@ -0,0 +1,293 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:flutter/cupertino.dart'; + +class HomeScreen extends StatefulWidget { + const HomeScreen({super.key}); + + @override + State createState() => _HomeScreenState(); +} + +class _HomeScreenState extends State { + final storage = const FlutterSecureStorage(); + String? accessToken; + int _selectedIndex = 0; + + @override + void initState() { + super.initState(); + _loadToken(); + } + + Future _loadToken() async { + final token = await storage.read(key: 'accessToken'); + setState(() { + accessToken = token; + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF7F7F7), + body: SafeArea( + child: Column( + children: [ + // 🔹 상단 검색창 + 알림/설정 아이콘 (이미지 버전) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + // 왼쪽 메뉴 아이콘 + const Icon(Icons.menu, color: Colors.black87, size: 26), + const SizedBox(width: 10), + + // 검색창 아이콘 + 입력창 + const Icon(Icons.search, color: Colors.black54), + const SizedBox(width: 8), + Expanded( + child: TextField( + decoration: InputDecoration( + hintText: '검색어를 입력해주세요.', + hintStyle: const TextStyle(color: Colors.grey), + border: InputBorder.none, + ), + ), + ), + + // 🔔 알림 아이콘 (이미지) + Image.asset( + 'assets/images/alram_icon.png', + width: 26, + height: 26, + fit: BoxFit.contain, + ), + const SizedBox(width: 14), + + // ⚙️ 설정 아이콘 (이미지) + Image.asset( + 'assets/images/setting_icon.png', + width: 26, + height: 26, + fit: BoxFit.contain, + ), + ], + ), + ), + + + // 🔹 상단 노란 배너 + Container( + width: 358, + height: 85, + margin: const EdgeInsets.symmetric(vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10), + decoration: BoxDecoration( + color: const Color(0xFFFFF8C6), + borderRadius: BorderRadius.circular(12), + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Image.asset( + 'assets/images/character_icon.png', + width: 60, + height: 60, + fit: BoxFit.contain, + ), + const SizedBox(width: 25), + const Expanded( + child: Text( + '안전 송금, 퀴즈로 배우자!\n퀴즈 풀고 포인트를 모아요!', + style: TextStyle( + color: Colors.black87, + fontSize: 16, + fontWeight: FontWeight.w600, + height: 1.4, + ), + ), + ), + ], + ), + ), + + const SizedBox(height: 16), + + // 🔹 아래 카드 3개 + Expanded( + child: SingleChildScrollView( + child: Column( + children: [ + _buildCard( + title: '역량 진단 시작하기', + subtitle: '나의 금융 이해도를 측정해보세요!', + imagePath: 'assets/images/check_icon.png', + onTap: () { + Navigator.pushNamed(context, '/abilityTest'); + }, + ), + _buildCard( + title: '금융 퀴즈 도전', + subtitle: '맞히면 포인트가 쌓여요!', + imagePath: 'assets/images/quiz_icon.png', + onTap: () { + Navigator.pushNamed(context, '/quiz'); + }, + ), + _buildCard( + title: '보이스피싱 예방 영상', + subtitle: '보이스피싱 수법과 대처법을\n영상으로 확인하세요!', + imagePath: 'assets/images/video_icon.png', + onTap: () { + Navigator.pushNamed(context, '/video'); + }, + ), + ], + ), + ), + ), + + // 🔹 하단 네비게이션바 (이미지 라벨 포함된 아이콘만) + Container( + decoration: BoxDecoration( + color: Colors.white, + border: Border( + top: BorderSide(color: Colors.grey.shade300, width: 1), + ), + ), + padding: const EdgeInsets.symmetric(vertical: 8), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + _BottomImageOnlyIcon( + imagePath: 'assets/images/home_icon.png', + isActive: _selectedIndex == 0, + onTap: () => setState(() => _selectedIndex = 0), + ), + _BottomImageOnlyIcon( + imagePath: 'assets/images/AI_icon.png', + isActive: _selectedIndex == 1, + onTap: () => setState(() => _selectedIndex = 1), + ), + _BottomImageOnlyIcon( + imagePath: 'assets/images/shop_icon.png', + isActive: _selectedIndex == 2, + onTap: () => setState(() => _selectedIndex = 2), + ), + _BottomImageOnlyIcon( + imagePath: 'assets/images/money_icon.png', + isActive: _selectedIndex == 3, + onTap: () => setState(() => _selectedIndex = 3), + ), + _BottomImageOnlyIcon( + imagePath: 'assets/images/map_icon.png', + isActive: _selectedIndex == 4, + onTap: () => setState(() => _selectedIndex = 4), + ), + ], + ), + ), + ], + ), + ), + ); + } + + // 🔹 카드 위젯 (오른쪽 하단 이미지) + Widget _buildCard({ + required String title, + required String subtitle, + required String imagePath, + required VoidCallback onTap, + }) { + return GestureDetector( + onTap: onTap, + child: Container( + width: 358, + height: 137, + margin: const EdgeInsets.symmetric(vertical: 20), + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.grey.withOpacity(0.15), + spreadRadius: 1, + blurRadius: 5, + offset: const Offset(0, 2), + ), + ], + ), + child: Stack( + children: [ + Positioned( + left: 0, + top: 20, + child: SizedBox( + width: 250, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 20, + ), + ), + const SizedBox(height: 8), + Text( + subtitle, + style: const TextStyle( + color: Colors.black54, + fontSize: 15, + ), + ), + ], + ), + ), + ), + Positioned( + right: 8, + bottom: 8, + child: Image.asset( + imagePath, + width: 60, + height: 60, + fit: BoxFit.contain, + ), + ), + ], + ), + ), + ); + } +} + +// 🔹 하단 네비게이션 이미지 아이콘 (텍스트 라벨 제거) +class _BottomImageOnlyIcon extends StatelessWidget { + final String imagePath; + final bool isActive; + final VoidCallback onTap; + + const _BottomImageOnlyIcon({ + required this.imagePath, + required this.isActive, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Image.asset( + imagePath, + width: 45, + height: 45, + color: isActive ? null : Colors.black54, // 비활성 시 약간 어둡게 처리 + ), + ); + } +} diff --git a/backup/features/auth/screens/login_screen.dart b/backup/features/auth/screens/login_screen.dart new file mode 100644 index 0000000..d4ea078 --- /dev/null +++ b/backup/features/auth/screens/login_screen.dart @@ -0,0 +1,208 @@ +import 'package:flutter/material.dart'; +import 'dart:convert'; +import 'package:http/http.dart' as http; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +class LoginScreen extends StatefulWidget { + const LoginScreen({super.key}); + + @override + State createState() => _LoginScreenState(); +} + +class _LoginScreenState extends State { + final _emailController = TextEditingController(); + final _passwordController = TextEditingController(); + final _storage = const FlutterSecureStorage(); + bool _isLoading = false; + bool _obscureText = true; + + Future _handleLogin() async { + if (_emailController.text.isEmpty || _passwordController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('이메일과 비밀번호를 모두 입력해주세요.')), + ); + return; + } + + const apiUrl = 'http://10.0.2.2:8080/api/auth/login'; + final loginData = { + 'email': _emailController.text, + 'password': _passwordController.text, + }; + + setState(() => _isLoading = true); + try { + final response = await http.post( + Uri.parse(apiUrl), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode(loginData), + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body); + + // ✅ 토큰 저장 + await _storage.write(key: 'accessToken', value: data['accessToken']); + await _storage.write(key: 'refreshToken', value: data['refreshToken']); + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('로그인 성공!')), + ); + + // ✅ 홈 화면으로 이동 (로그인 페이지는 제거) + Navigator.pushReplacementNamed(context, '/home'); + } else { + final error = jsonDecode(response.body); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(error['message'] ?? '로그인 실패')), + ); + } + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('서버와 통신할 수 없습니다.')), + ); + } finally { + setState(() => _isLoading = false); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF9F5EC), + body: SafeArea( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 26, vertical: 60), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const SizedBox(height: 110), + const Text( + 'GuardPay', + textAlign: TextAlign.center, + style: TextStyle( + color: Color(0xFF6AA84F), + fontSize: 55, + fontWeight: FontWeight.bold, + ), + ), + + const SizedBox(height: 80), + TextField( + controller: _emailController, + decoration: const InputDecoration( + hintText: '이메일', + border: OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + contentPadding: + EdgeInsets.symmetric(vertical: 13.0, horizontal: 15.0), + ), + ), + + const SizedBox(height: 13), + TextField( + controller: _passwordController, + obscureText: _obscureText, + decoration: InputDecoration( + hintText: '비밀번호', + border: const OutlineInputBorder(), + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.symmetric( + vertical: 13.0, horizontal: 15.0), + suffixIcon: IconButton( + icon: Icon( + _obscureText ? Icons.visibility_off : Icons.visibility, + ), + onPressed: () { + setState(() { + _obscureText = !_obscureText; + }); + }, + ), + ), + ), + const SizedBox(height: 20), + ElevatedButton( + onPressed: _isLoading ? null : _handleLogin, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 13), + textStyle: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8)), + ), + child: _isLoading + ? const CircularProgressIndicator(color: Colors.white) + : const Text('로그인'), + ), + const SizedBox(height: 13), + ElevatedButton( + onPressed: () { + Navigator.pushNamed(context, '/signup'); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 13), + textStyle: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.bold, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8)), + ), + child: const Text('회원가입'), + ), + + const SizedBox(height: 7), + TextButton( + onPressed: () { + Navigator.pushNamed(context, '/reset'); + }, + style: TextButton.styleFrom( + foregroundColor: Colors.black, + textStyle: const TextStyle(fontSize: 14), + ), + child: const Text('이메일/비밀번호 찾기 >'), + ), + const SizedBox(height: 18), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + GestureDetector( + onTap: () { + // TODO: 카카오 로그인 로직 + }, + child: Image.asset( + 'assets/images/kakao_logo.png', + width: 70, + height: 70, + ), + ), + const SizedBox(width: 22), + GestureDetector( + onTap: () { + // TODO: 구글 로그인 로직 + }, + child: Image.asset( + 'assets/images/google_logo.png', + width: 70, + height: 70, + ), + ), + ], + ), + ], + ), + ), + ), + ); + } +} diff --git a/backup/features/auth/screens/reset_password_screen.dart b/backup/features/auth/screens/reset_password_screen.dart new file mode 100644 index 0000000..52a4b83 --- /dev/null +++ b/backup/features/auth/screens/reset_password_screen.dart @@ -0,0 +1,267 @@ +import 'package:flutter/material.dart'; + +// 1. 필요한 서비스 및 위젯을 임포트합니다. +import '../services/auth_service.dart'; // AuthService 사용 +import '../widgets/auth_input_field.dart'; + +class ResetPasswordScreen extends StatefulWidget { + const ResetPasswordScreen({super.key}); + + @override + State createState() => _ResetPasswordScreenState(); +} + +class _ResetPasswordScreenState extends State { + // 2. 서비스 인스턴스 및 상태 변수를 SignupScreen과 유사하게 구성합니다. + final AuthService _authService = AuthService(); + final _formKey = GlobalKey(); + + final _emailController = TextEditingController(); + final _codeController = TextEditingController(); + final _passwordController = TextEditingController(); + final _passwordConfirmController = TextEditingController(); + + bool _isCodeRequested = false; // 인증 코드가 요청되었는가? + bool _isCodeVerified = false; // 인증 코드가 확인되었는가? + bool _isLoading = false; // 로딩 상태 + + @override + void dispose() { + _emailController.dispose(); + _codeController.dispose(); + _passwordController.dispose(); + _passwordConfirmController.dispose(); + super.dispose(); + } + + // 3. 인증 코드 요청 핸들러 + Future _handleCodeRequest() async { + // 간단한 이메일 유효성 검사 + if (_emailController.text.isEmpty || !_emailController.text.contains('@')) { + _showSnackBar('유효한 이메일을 입력해주세요.'); + return; + } + + setState(() => _isLoading = true); + try { + // AuthService를 통해 코드 요청 (수정된 부분) + await _authService.requestPasswordResetCode(_emailController.text); + setState(() => _isCodeRequested = true); + _showSnackBar('인증 코드가 이메일로 전송되었습니다.'); + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + // 4. 인증 코드 확인 핸들러 + Future _handleCodeVerify() async { + if (_codeController.text.isEmpty) { + _showSnackBar('인증 코드를 입력해주세요.'); + return; + } + + setState(() => _isLoading = true); + try { + // AuthService를 통해 코드 확인 (수정된 부분) + await _authService.verifyPasswordResetCode( + _emailController.text, _codeController.text); + setState(() => _isCodeVerified = true); + _showSnackBar('인증이 완료되었습니다. 새 비밀번호를 입력하세요.'); + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + // 5. 최종 제출 핸들러 (비밀번호 변경) + Future _handleSubmit() async { + if (!(_formKey.currentState?.validate() ?? false)) { + return; // 폼 유효성 검사 실패 시 종료 + } + if (_passwordController.text != _passwordConfirmController.text) { + _showSnackBar('비밀번호가 일치하지 않습니다.'); + return; + } + if (!_isCodeVerified) { + _showSnackBar('이메일 인증을 먼저 완료해주세요.'); + return; + } + + setState(() => _isLoading = true); + try { + // AuthService를 통해 비밀번호 재설정 + final message = await _authService.resetPassword( + email: _emailController.text, + code: _codeController.text, // 백엔드 API에 따라 코드가 필요할 수 있음 + newPassword: _passwordController.text, + ); + _showSnackBar(message); + + await Future.delayed(const Duration(seconds: 1)); + if (mounted) { + Navigator.pushReplacementNamed(context, '/login'); + } + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + // 6. 일관된 SnackBar 표시를 위한 유틸리티 함수 + void _showSnackBar(String message) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(message)), + ); + } + + @override + Widget build(BuildContext context) { + final buttonStyle = ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 13), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + textStyle: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + ); + final disabledButtonStyle = buttonStyle.copyWith( + backgroundColor: WidgetStateProperty.all(Colors.grey.shade400), + ); + + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios_new, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), + ), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 26, vertical: 20), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Text( + '새 비밀번호 만들기', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 65), + + // --- 이메일 입력 섹션 --- + const Text('가입한 이메일 주소를 입력해주세요.', style: TextStyle(fontSize: 15)), + const SizedBox(height: 10), + TextFormField( + controller: _emailController, + keyboardType: TextInputType.emailAddress, + decoration: InputDecoration( + hintText: '이메일', + filled: true, + fillColor: Colors.white, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: const BorderSide(color: Color(0xFF6AA84F), width: 2.0), + ), + ), + readOnly: _isCodeRequested, // 코드 요청 후에는 수정 불가 + ), + const SizedBox(height: 10), + ElevatedButton( + onPressed: _isLoading || _isCodeRequested ? null : _handleCodeRequest, + style: _isLoading || _isCodeRequested ? disabledButtonStyle : buttonStyle, + child: const Text('인증코드 받기'), + ), + + // --- 인증코드 입력 섹션 (코드 요청 후에만 보임) --- + if (_isCodeRequested) ...[ + const SizedBox(height: 30), + Row( + children: [ + Expanded( + child: TextFormField( + controller: _codeController, + keyboardType: TextInputType.number, + decoration: InputDecoration( + hintText: '인증코드', + filled: true, + fillColor: Colors.white, + border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: const BorderSide(color: Color(0xFF6AA84F), width: 2.0), + ), + ), + readOnly: _isCodeVerified, // 인증 완료 후에는 수정 불가 + ), + ), + const SizedBox(width: 10), + ElevatedButton( + onPressed: _isLoading || _isCodeVerified ? null : _handleCodeVerify, + style: _isLoading || _isCodeVerified ? disabledButtonStyle : buttonStyle, + child: const Text('확인'), + ), + ], + ), + ], + + // --- 새 비밀번호 입력 섹션 (인증 완료 후에만 보임) --- + if (_isCodeVerified) ...[ + const SizedBox(height: 50), + const Text('비밀번호 재설정', style: TextStyle(fontSize: 15)), + const SizedBox(height: 10), + AuthInputField( + controller: _passwordController, + hintText: '새 비밀번호', + isPassword: true, + validator: (value) { + if (value == null || value.isEmpty || value.length < 8) { + return '비밀번호는 8자 이상이어야 합니다.'; + } + return null; + }, + ), + const SizedBox(height: 10), + AuthInputField( + controller: _passwordConfirmController, + hintText: '새 비밀번호 재입력', + isPassword: true, + validator: (value) { + if (value != _passwordController.text) { + return '비밀번호가 일치하지 않습니다.'; + } + return null; + }, + ), + const SizedBox(height: 35), + ElevatedButton( + onPressed: _isLoading ? null : _handleSubmit, + style: buttonStyle, + child: _isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) + : const Text('확인'), + ), + ], + ], + ), + ), + ), + ); + } +} + diff --git a/backup/features/auth/screens/signup_screen.dart b/backup/features/auth/screens/signup_screen.dart new file mode 100644 index 0000000..484be0c --- /dev/null +++ b/backup/features/auth/screens/signup_screen.dart @@ -0,0 +1,318 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; + +// 분리된 서비스와 위젯을 임포트합니다. +import '../services/auth_service.dart'; +import '../widgets/email_auth_section.dart'; +import '../widgets/auth_input_field.dart'; + +// 회원가입 화면 +class SignupScreen extends StatefulWidget { + const SignupScreen({super.key}); + + @override + State createState() => _SignupScreenState(); +} + +class _SignupScreenState extends State { + // 1. 서비스 인스턴스 및 상태 관리 + final AuthService _authService = AuthService(); + final _formKey = GlobalKey(); // 폼 유효성 검사를 위한 키 + + final _emailController = TextEditingController(); + final _authCodeController = TextEditingController(); + final _passwordController = TextEditingController(); + final _passwordConfirmController = TextEditingController(); + final _nicknameController = TextEditingController(); + + bool _termsAgreed = false; + bool _isCodeRequested = false; // 인증 코드가 요청되었는가? + bool _isCodeVerified = false; // 인증 코드가 확인되었는가? + bool _isLoading = false; // 로딩 상태 + + // 2. 인증 코드 요청 핸들러 + Future _handleCodeRequest() async { + setState(() { _isLoading = true; }); + try { + await _authService.requestAuthCode(_emailController.text); + setState(() { + _isCodeRequested = true; + _authCodeController.clear(); // 새 요청 시 코드 초기화 + }); + _showSnackBar('인증 코드가 이메일로 전송되었습니다.'); + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if(mounted) { + setState(() { _isLoading = false; }); + } + } + } + + // 3. 인증 코드 확인 핸들러 + Future _handleCodeVerify() async { + setState(() { _isLoading = true; }); + try { + await _authService.verifyAuthCode(_emailController.text, _authCodeController.text); + setState(() { _isCodeVerified = true; }); + _showSnackBar('이메일 인증이 성공적으로 완료되었습니다.'); + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if(mounted) { + setState(() { _isLoading = false; }); + } + } + } + + // 4. '가입하기' 버튼 함수 (최종 제출) + Future _handleSubmit() async { + if (!_formKey.currentState!.validate()) { + return; // 폼 유효성 검사 실패 시 종료 + } + + if (_passwordController.text != _passwordConfirmController.text) { + _showSnackBar('비밀번호가 일치하지 않습니다.'); + return; + } + if (!_isCodeVerified) { + _showSnackBar('이메일 인증을 완료해주세요.'); + return; + } + if (!_termsAgreed) { + _showSnackBar('약관에 동의해주세요.'); + return; + } + + setState(() { _isLoading = true; }); + try { + final message = await _authService.signup( + email: _emailController.text, + password: _passwordController.text, + nickname: _nicknameController.text, + ); + _showSnackBar(message); + + // ✅ [병합] 회원가입 성공 시 로그인 화면으로 이동하는 로직을 활성화합니다. + await Future.delayed(const Duration(seconds: 1)); // 알림을 보여줄 시간 + if (mounted) { + Navigator.pushReplacementNamed(context, '/login'); + } + + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if(mounted) { + setState(() { _isLoading = false; }); + } + } + } + + // 5. 카카오 로그인/가입 처리 핸들러 + Future _handleKakaoSignup() async { + if (_isLoading) return; + setState(() { _isLoading = true; }); + + try { + final result = await _authService.signupWithKakao(); + final isNewUser = result['isNewUser'] ?? false; + + if (isNewUser) { + // TODO: 신규 사용자일 경우, 약관 동의나 추가 정보 입력 화면으로 이동 + _showSnackBar('카카오 계정으로 가입을 진행합니다. 추가 정보 입력 화면으로 이동합니다.'); + // 예: Navigator.push(context, MaterialPageRoute(builder: (_) => TermsScreen(userInfo: result))); + } else { + // TODO: 기존 사용자일 경우, JWT 저장 후 메인 화면으로 이동 + _showSnackBar('카카오 계정으로 로그인되었습니다. 메인 화면으로 이동합니다.'); + // 예: final token = result['accessToken']; await saveToken(token); + // Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (_) => MainScreen()), (route) => false); + } + } catch (e) { + _showSnackBar(e.toString().replaceFirst('Exception: ', '')); + } finally { + if(mounted) { + setState(() { _isLoading = false; }); + } + } + } + + // 간결한 SnackBar 표시 유틸리티 + void _showSnackBar(String message) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(message)), + ); + } + } + + // 리소스 해제 + @override + void dispose() { + _emailController.dispose(); + _authCodeController.dispose(); + _passwordController.dispose(); + _passwordConfirmController.dispose(); + _nicknameController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Theme.of(context).scaffoldBackgroundColor, + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios, color: Colors.black), + onPressed: () => Navigator.of(context).pop(), + ), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 20), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // GuardPay 로고 + const Text( + 'GuardPay', + textAlign: TextAlign.center, + style: TextStyle( + color: Color(0xFF6AA84F), + fontSize: 55, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 30), + + // 1. 이메일 인증 섹션 + EmailAuthSection( + emailController: _emailController, + codeController: _authCodeController, + isCodeRequested: _isCodeRequested, + isCodeVerified: _isCodeVerified, + onCodeRequest: _handleCodeRequest, + onCodeVerify: _handleCodeVerify, + ), + const SizedBox(height: 15), + + // 2. 비밀번호 입력 + const Text('비밀번호 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + AuthInputField( + controller: _passwordController, + hintText: '비밀번호', + isPassword: true, + validator: (value) { + if (value == null || value.isEmpty || value.length < 8) { + return '비밀번호는 8자 이상이어야 합니다.'; + } + return null; + }, + ), + const SizedBox(height: 10), + AuthInputField( + controller: _passwordConfirmController, + hintText: '비밀번호 재입력', + isPassword: true, + validator: (value) { + if (value != _passwordController.text) { + return '비밀번호가 일치하지 않습니다.'; + } + return null; + }, + ), + const SizedBox(height: 15), + + // 3. 닉네임 입력 + const Text('닉네임 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + AuthInputField( + controller: _nicknameController, + hintText: '닉네임', + validator: (value) { + if (value == null || value.isEmpty) { + return '닉네임을 입력해주세요.'; + } + return null; + }, + ), + const SizedBox(height: 25), + + // 4. 약관 동의 + Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: const Color(0xFFD0D0D0)), + ), + padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 10), + child: Row( + children: [ + Checkbox( + value: _termsAgreed, + onChanged: (value) => setState(() { _termsAgreed = value ?? false; }), + ), + const Text('약관 전체 동의'), + ], + ), + ), + const SizedBox(height: 20), + + // 5. 가입하기 버튼 + ElevatedButton( + onPressed: _isLoading ? null : _handleSubmit, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF6AA84F), + padding: const EdgeInsets.symmetric(vertical: 15), + textStyle: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: _isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) + : const Text('가입하기', style: TextStyle(color: Colors.white)), + ), + const SizedBox(height: 20), + + // 'OR' 구분선 + Row( + children: [ + Expanded(child: Divider(color: Colors.grey[400])), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 10), + child: Text('OR', style: TextStyle(color: Colors.grey)), + ), + Expanded(child: Divider(color: Colors.grey[400])), + ], + ), + const SizedBox(height: 20), + + // 카카오로 시작하기 버튼 + ElevatedButton( + onPressed: _isLoading ? null : _handleKakaoSignup, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFFEE500), // 카카오 노란색 + padding: const EdgeInsets.symmetric(vertical: 15), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: const Text( + '카카오로 시작하기', + style: TextStyle( + color: Colors.black87, + fontSize: 16, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/backup/features/auth/services/auth_service.dart b/backup/features/auth/services/auth_service.dart new file mode 100644 index 0000000..c0fae18 --- /dev/null +++ b/backup/features/auth/services/auth_service.dart @@ -0,0 +1,253 @@ +import 'dart:convert'; // jsonEncode, jsonDecode를 사용하기 위해 필요 +import 'package:http/http.dart' as http; // HTTP 통신을 위해 필요 +import 'package:flutter/services.dart'; // [추가] PlatformException을 사용하기 위해 필요 +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; // [추가] 카카오 SDK +import 'dart:developer'; // 👈 1. dart:developer 라이브러리를 import 합니다. +import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; // ✅ 이 줄을 추가하세요. + + + + +class AuthService { + // 실제 서버 환경에서는 여기에 Dio 인스턴스 등이 주입될 수 있습니다. + final String _apiUrl = 'http://10.0.2.2:8080/api/users'; // 기본 API 경로 설정 + static const String _tempAuthCode = '123456'; // 임시 이메일 인증 코드 + //final String _baseUrl = 'https://nonsusceptible-hyman-periproctal.ngrok-free.dev'; + final String _baseUrl = dotenv.env['API_BASE_URL'] ?? 'http://10.0.2.2:8080'; + + final _secureStorage = const FlutterSecureStorage(); // ✅ 토큰 저장을 위해 추가 + + + Future signInWithGoogle() async { + try { + // 1. 스프링 부트의 구글 로그인 시작 URL + // 💡 포트 번호(8080)는 본인 서버에 맞게 확인하세요. + final url = Uri.parse('$_baseUrl/oauth2/authorization/google'); + + // 2. 웹뷰를 열고, 스프링 부트가 리디렉션할 때까지 대기합니다. + // 'guardpay'는 AndroidManifest.xml에 설정한 scheme 값입니다. + final result = await FlutterWebAuth2.authenticate( + url: url.toString(), + callbackUrlScheme: "guardpay", + ); + + // 3. 돌아온 URL에서 토큰을 추출합니다. + final Uri callbackUri = Uri.parse(result); + final accessToken = callbackUri.queryParameters['accessToken']; + final refreshToken = callbackUri.queryParameters['refreshToken']; + + if (accessToken != null && refreshToken != null) { + // 4. 토큰을 안전하게 기기에 저장합니다. + await _secureStorage.write(key: 'accessToken', value: accessToken); + await _secureStorage.write(key: 'refreshToken', value: refreshToken); + + log('✅ 구글 로그인 성공! Access Token: $accessToken'); + + } else { + throw Exception('로그인에 성공했지만 토큰을 받아오지 못했습니다.'); + } + + } on PlatformException catch (e) { + // 사용자가 웹뷰를 그냥 닫았을 경우를 처리합니다. + if (e.code == 'CANCELED' || e.code == 'USER_CANCELLED') { + log('ℹ️ 구글 로그인이 사용자에 의해 취소되었습니다.'); + // 에러를 던지지 않고 조용히 종료할 수도 있습니다. + return; + } + throw Exception('로그인 중 오류가 발생했습니다: ${e.message}'); + } catch (e) { + log('🚨 구글 로그인 중 알 수 없는 에러 발생: $e'); + throw Exception('로그인에 실패했습니다. 잠시 후 다시 시도해주세요.'); + } + } + + // 1. 이메일 인증 코드를 요청하는 함수 + Future requestAuthCode(String email) async { + final emailRegex = RegExp(r"^[^\s@]+@[^\s@]+\.[^\s@]+$"); + if (email.isEmpty || !emailRegex.hasMatch(email)) { + // 클라이언트 측 유효성 검사 (실제 환경에서는 예외를 throw하거나 Error 객체를 반환) + throw Exception('올바른 이메일 주소를 입력해주세요.'); + } + + // TODO: 실제 서버 API 엔드포인트에 맞게 URL 수정 필요 (예: '/request-code') + // 현재는 성공했다고 가정하고 true 반환 + print('이메일 인증 코드 요청: $email'); + await Future.delayed(const Duration(milliseconds: 500)); // API 지연 시뮬레이션 + return true; + } + + // 2. 인증 코드를 확인하는 함수 + Future verifyAuthCode(String email, String code) async { + // 정의된 임시 인증 코드(_tempAuthCode)와 사용자가 입력한 코드를 비교합니다. + if (code != _tempAuthCode) { // TODO: 실제 인증 로직으로 대체 필요 + throw Exception('인증 코드가 일치하지 않습니다.'); + } + print('인증 코드 확인 완료: $email'); + await Future.delayed(const Duration(milliseconds: 500)); + return true; + } + + // 3. 회원가입을 최종적으로 처리하는 함수 + Future signup({ + required String email, + required String password, + required String nickname, + }) async { + // ✅ 백엔드 회원가입 API 경로 + const apiUrl = 'http://10.0.2.2:8080/api/auth/signup'; + + // ✅ 서버에 보낼 JSON 데이터 + final signupData = { + 'email': email, + 'password': password, + 'nickname': nickname, + }; + + try { + final response = await http.post( + Uri.parse(apiUrl), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode(signupData), + ); + + final responseBody = jsonDecode(utf8.decode(response.bodyBytes)); // 한글 깨짐 방지 + + // ✅ 성공 (200 또는 201) + if (response.statusCode == 200 || response.statusCode == 201) { + print('가입 성공 응답: ${response.body}'); + return responseBody['message'] ?? '회원가입이 성공적으로 완료되었습니다.'; + } + // ❌ 실패 (400, 409 등) + else { + print('가입 실패 응답: ${response.body}'); + throw Exception(responseBody['message'] ?? '회원가입에 실패했습니다.'); + } + + } catch (error) { + print('가입 요청 실패: $error'); + throw Exception('서버와 통신할 수 없습니다.'); + } + } + + + /// 비밀번호 재설정을 위한 이메일 인증 코드를 요청합니다. + Future requestPasswordResetCode(String email) async { + // TODO: 실제 서버의 '비밀번호 재설정용' 코드 요청 API와 연동해야 합니다. + print('[AuthService] 비밀번호 재설정 코드 요청: $email'); + await Future.delayed(const Duration(milliseconds: 500)); + } + + /// 비밀번호 재설정을 위한 인증 코드를 확인합니다. + Future verifyPasswordResetCode(String email, String code) async { + // TODO: 실제 서버의 '비밀번호 재설정용' 코드 확인 API와 연동해야 합니다. + if (code != _tempAuthCode) { + throw Exception('인증 코드가 일치하지 않습니다.'); + } + print('[AuthService] 비밀번호 재설정 코드 확인 완료: $email'); + await Future.delayed(const Duration(milliseconds: 500)); + } + + /// 새 비밀번호로 재설정하는 최종 요청을 보냅니다. + Future resetPassword({ + required String email, + required String code, + required String newPassword, + }) async { + // --- 백엔드 API 없이 프론트엔드 시연을 위한 임시 코드 --- + print('[AuthService] 비밀번호 변경 요청 시뮬레이션 시작 (서버 호출 안함)'); + + // 마치 서버가 성공적으로 응답한 것처럼 1초간 기다립니다. + await Future.delayed(const Duration(seconds: 1)); + + // 서버 대신 성공 메시지를 직접 반환합니다. + return '비밀번호가 성공적으로 변경되었습니다.'; + + } + + // [수정] 카카오 회원가입/로그인 처리 함수 + Future> signupWithKakao() async { + // 1. [추가] 기존 로그인 정보가 있다면 먼저 로그아웃 처리 + try { + if (await AuthApi.instance.hasToken()) { + await UserApi.instance.logout(); + print('기존 토큰 발견. 로그아웃 처리 완료.'); + } + } catch (error) { + print('로그아웃 처리 중 에러 발생 (무시): $error'); + } + // 2. 카카오 SDK로 액세스 토큰 받기 (기존 로직과 동일) + String? kakaoAccessToken; + if (await isKakaoTalkInstalled()) { + try { + await UserApi.instance.loginWithKakaoTalk(); + kakaoAccessToken = (await TokenManagerProvider.instance.manager.getToken())?.accessToken; + } catch (error) { + if (error is PlatformException && error.code == 'CANCELED') { + throw Exception('카카오톡 로그인이 취소되었습니다.'); + } + try { + await UserApi.instance.loginWithKakaoAccount(); + kakaoAccessToken = (await TokenManagerProvider.instance.manager.getToken())?.accessToken; + } catch (accountError) { + throw Exception('카카오 계정 로그인에 실패했습니다.'); + } + } + } else { + try { + await UserApi.instance.loginWithKakaoAccount(); + kakaoAccessToken = (await TokenManagerProvider.instance.manager.getToken())?.accessToken; + } catch (accountError) { + throw Exception('카카오 계정 로그인에 실패했습니다.'); + } + } + + if (kakaoAccessToken == null) { + throw Exception('카카오 액세스 토큰을 가져오는데 실패했습니다.'); + } + + log('🚀 Sending request to backend...'); + log('URL: $_baseUrl/api/auth/kakao'); + log('Kakao Access Token: $kakaoAccessToken'); + // 3. 백엔드 서버로 액세스 토큰 전송 (기존 로직과 동일) + final response = await http.post( + Uri.parse('$_baseUrl/api/auth/kakao'), + headers: {'Content-Type': 'application/json'}, + body: jsonEncode({'accessToken': kakaoAccessToken}), + ); + + + // ✅ [로그 추가] 백엔드로부터 받은 응답의 상태 코드와 본문을 출력 + log('✅ Received response from backend!'); + log('Status Code: ${response.statusCode}'); + log('Response Body: ${response.body}'); + // [수정] 성공(200)과 실패 케이스를 나누어 처리 + if (response.statusCode == 200) { + // 성공 시, 정상적으로 응답 본문 반환 + return jsonDecode(response.body); + } else { + // 실패 시, 서버가 보낸 구체적인 에러 메시지를 담아 Exception 발생 + try { + final errorBody = jsonDecode(response.body); + throw Exception('서버 통신 실패: ${errorBody['message'] ?? '알 수 없는 오류'}'); + } catch (e) { + // 응답 본문이 JSON 형태가 아닐 경우를 대비한 예외 처리 + throw Exception('서버와 통신 중 오류가 발생했습니다. (상태 코드: ${response.statusCode})'); + } + } + } + + // [추가] 카카오 로그아웃 함수 + Future kakaoLogout() async { + try { + await UserApi.instance.logout(); + print('로그아웃 성공, SDK에서 토큰 삭제'); + } catch (error) { + print('로그아웃 실패, SDK에서 토큰 삭제 실패 $error'); + throw Exception('로그아웃에 실패했습니다.'); + } + } + + +} \ No newline at end of file diff --git a/backup/features/auth/widgets/auth_input_field.dart b/backup/features/auth/widgets/auth_input_field.dart new file mode 100644 index 0000000..f9097ac --- /dev/null +++ b/backup/features/auth/widgets/auth_input_field.dart @@ -0,0 +1,69 @@ +import 'package:flutter/material.dart'; + +// 앱의 모든 인증 화면에서 재사용할 수 있는 범용 입력 필드 위젯입니다. +class AuthInputField extends StatefulWidget { + final TextEditingController controller; + final String hintText; + final bool isPassword; // 비밀번호 가시성 토글이 필요한지 여부 + final String? Function(String?)? validator; + final TextInputType keyboardType; + final bool readOnly; + final bool enabled; + + const AuthInputField({ + super.key, + required this.controller, + required this.hintText, + this.isPassword = false, + this.validator, + this.keyboardType = TextInputType.text, + this.readOnly = false, + this.enabled = true, + }); + + @override + State createState() => _AuthInputFieldState(); +} + +class _AuthInputFieldState extends State { + // 비밀번호 필드일 경우 가리기 상태를 관리합니다. + late bool _obscureText; + + @override + void initState() { + super.initState(); + _obscureText = widget.isPassword; + } + + void _toggleVisibility() { + setState(() { + _obscureText = !_obscureText; + }); + } + + @override + Widget build(BuildContext context) { + return TextFormField( + controller: widget.controller, + // isPassword 속성에 따라 가리기 여부 및 가시성 토글 버튼 제공 + obscureText: _obscureText, + validator: widget.validator, + keyboardType: widget.keyboardType, + readOnly: widget.readOnly, + enabled: widget.enabled, + decoration: InputDecoration( + hintText: widget.hintText, + // 비밀번호 필드일 경우에만 가시성 토글 버튼 제공 + suffixIcon: widget.isPassword + ? IconButton( + icon: Icon( + _obscureText ? Icons.visibility_off : Icons.visibility, + color: Colors.grey, + ), + onPressed: _toggleVisibility, + ) + : null, + ), + ); + } +} diff --git a/backup/features/auth/widgets/email_auth_section.dart b/backup/features/auth/widgets/email_auth_section.dart new file mode 100644 index 0000000..4e47626 --- /dev/null +++ b/backup/features/auth/widgets/email_auth_section.dart @@ -0,0 +1,114 @@ +import 'package:flutter/material.dart'; + +// AuthInputField를 임포트하여 재사용합니다. +import 'auth_input_field.dart'; + +// 이메일 입력, 인증 코드 요청, 인증 코드 입력, 확인 버튼을 묶어 관리하는 복합 위젯 +class EmailAuthSection extends StatelessWidget { + final TextEditingController emailController; + final TextEditingController codeController; + final bool isCodeRequested; + final bool isCodeVerified; + final VoidCallback onCodeRequest; + final VoidCallback onCodeVerify; + + const EmailAuthSection({ + super.key, + required this.emailController, + required this.codeController, + required this.isCodeRequested, + required this.isCodeVerified, + required this.onCodeRequest, + required this.onCodeVerify, + }); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // 1. 이메일 입력 필드 + const Text('이메일 *', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(height: 5), + Row( + children: [ + Expanded( + child: AuthInputField( // AuthInputField 재사용 + controller: emailController, + hintText: '이메일', + keyboardType: TextInputType.emailAddress, + readOnly: isCodeRequested, // 코드가 요청되면 이메일 수정 불가 + enabled: !isCodeVerified, // 인증 완료되면 비활성화 + validator: (value) { + final emailRegex = RegExp(r"^[^\s@]+@[^\s@]+\.[^\s@]+$"); + if (value == null || value.isEmpty || !emailRegex.hasMatch(value)) { + return '올바른 이메일 주소를 입력해주세요.'; + } + return null; + }, + ), + ), + const SizedBox(width: 8), + // 2. 인증 코드 요청 버튼 + SizedBox( + height: 56, // 텍스트 필드와 높이 맞추기 + child: ElevatedButton( + onPressed: isCodeRequested ? null : onCodeRequest, // 요청 후 비활성화 + style: ElevatedButton.styleFrom( + backgroundColor: isCodeRequested + ? Colors.grey + : const Color(0xFF6AA84F).withOpacity(0.8), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 10), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: const Text( + '인증코드 받기', + style: TextStyle(fontSize: 14), + textAlign: TextAlign.center, + ), + ), + ), + ], + ), + + // 3. 인증 코드가 요청된 경우에만 코드 입력 필드 표시 + if (isCodeRequested) ...[ + const SizedBox(height: 10), + Row( + children: [ + Expanded( + child: AuthInputField( // AuthInputField 재사용 + controller: codeController, + hintText: '인증코드', + keyboardType: TextInputType.number, + readOnly: isCodeVerified, // 인증 완료되면 수정 불가 + ), + ), + const SizedBox(width: 8), + // 4. 확인 버튼 + SizedBox( + height: 56, // 텍스트 필드와 높이 맞추기 + child: ElevatedButton( + onPressed: isCodeVerified ? null : onCodeVerify, // 확인 후 비활성화 + style: ElevatedButton.styleFrom( + backgroundColor: isCodeVerified + ? Colors.grey + : const Color(0xFF6AA84F), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 20), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: Text( + isCodeVerified ? '완료' : '확인', + style: const TextStyle(fontSize: 14, fontWeight: FontWeight.bold), + ), + ), + ), + ], + ), + ], + ], + ); + } +} diff --git a/backup/main.dart b/backup/main.dart new file mode 100644 index 0000000..a1f6210 --- /dev/null +++ b/backup/main.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; +import 'package:kakao_flutter_sdk_user/kakao_flutter_sdk_user.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'config/theme.dart'; +import 'features/auth/screens/login_screen.dart'; +import 'features/auth/screens/signup_screen.dart'; +import 'features/auth/screens/reset_password_screen.dart'; +import 'features/auth/screens/home_screen.dart'; + + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + KakaoSdk.init(nativeAppKey: '6cdfe8239c6cf5fdbaf793f4fc9581e3'); + + // ✅ 토큰 체크 후 적절한 첫 화면 결정 + final storage = FlutterSecureStorage(); + final accessToken = await storage.read(key: 'accessToken'); + + runApp(MyApp(initialRoute: accessToken != null ? '/home' : '/login')); +} + +class MyApp extends StatelessWidget { + final String initialRoute; + const MyApp({super.key, required this.initialRoute}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + debugShowCheckedModeBanner: false, + title: 'GuardPay App', + theme: appTheme(), + initialRoute: initialRoute, // ✅ 토큰 존재 여부에 따라 첫 화면 변경 + routes: { + '/login': (context) => const LoginScreen(), + '/signup': (context) => const SignupScreen(), + '/reset': (context) => const ResetPasswordScreen(), + '/home': (context) => const HomeScreen(), // ✅ 홈 라우트 추가 + }, + ); + } +} diff --git a/lib/features/auth/screens/chat_screen.dart b/lib/features/auth/screens/chat_screen.dart index f44f629..6225c52 100644 --- a/lib/features/auth/screens/chat_screen.dart +++ b/lib/features/auth/screens/chat_screen.dart @@ -1,11 +1,10 @@ import 'package:flutter/material.dart'; -import '../services/api_service.dart'; // ⬅️ 방금 만드신 API 서비스 임포트 -// 필요한 다른 모델/위젯 임포트 +import '../services/api_service.dart'; import 'package:guardpayfront/core/services/storage.dart'; +import 'package:guardpayfront/features/auth/widgets/bottom_nav.dart'; // ✅ 통일된 하단바 class ChatScreen extends StatefulWidget { - - final ApiService api; // ✅ 주입받을 필드 + final ApiService api; const ChatScreen({super.key, required this.api}); @override @@ -13,11 +12,9 @@ class ChatScreen extends StatefulWidget { } class _ChatScreenState extends State { - // 1. 상태 관리를 위한 변수 선언 - - final TextEditingController _textController = TextEditingController(); // 입력창 컨트롤러 - final List> _messages = []; // 대화 내용을 저장할 리스트 (사용자/AI 구분) - bool _isLoading = false; // AI 응답 대기 상태 + final TextEditingController _textController = TextEditingController(); + final List> _messages = []; + bool _isLoading = false; @override void dispose() { @@ -25,64 +22,61 @@ class _ChatScreenState extends State { super.dispose(); } - // 2. 메시지 전송 로직 void _handleSubmitted(String text) async { if (text.isEmpty || _isLoading) return; _textController.clear(); - - // 사용자 메시지를 목록에 추가 setState(() { _messages.insert(0, {'sender': 'user', 'text': text}); _isLoading = true; }); try { - - print('>>> [UI] call sendChatMessage("$text")'); - - // 3. API 서비스 호출 (여기서 서버/Gemini와 통신) final aiResponse = await widget.api.sendChatMessage(text); - print('>>> [UI] sendChatMessage returned: ${aiResponse.substring(0, aiResponse.length > 60 ? 60 : aiResponse.length)}'); - - // AI 응답을 목록에 추가 setState(() { _messages.insert(0, {'sender': 'ai', 'text': aiResponse}); }); } catch (e) { - print('>>> [UI] exception: $e'); - - // 오류 메시지 표시 setState(() { - _messages.insert(0, {'sender': 'ai', 'text': '죄송합니다. 오류가 발생했습니다: $e'}); + _messages.insert(0, { + 'sender': 'ai', + 'text': '죄송합니다. 오류가 발생했습니다: $e' + }); }); } finally { - - setState(() { - _isLoading = false; - }); + setState(() => _isLoading = false); } } - // 4. 입력창 위젯 Widget _buildTextComposer() { return Container( - margin: const EdgeInsets.symmetric(horizontal: 8.0), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + color: Colors.white, child: Row( children: [ - Flexible( + Expanded( child: TextField( controller: _textController, - onSubmitted: _handleSubmitted, // 엔터 키를 누를 때 실행 - decoration: const InputDecoration.collapsed(hintText: '궁금한 금융 질문을 입력하세요'), + onSubmitted: _handleSubmitted, + decoration: InputDecoration( + hintText: 'GuardAI에게 물어보세요', + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + filled: true, + fillColor: const Color(0xFFF3F3F3), + contentPadding: const EdgeInsets.symmetric(horizontal: 16), + ), ), ), - Container( - margin: const EdgeInsets.symmetric(horizontal: 4.0), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF7FB77E), child: IconButton( - icon: const Icon(Icons.send), + icon: const Icon(Icons.arrow_upward, color: Colors.white), onPressed: _isLoading - ? null // 로딩 중이면 버튼 비활성화 + ? null : () => _handleSubmitted(_textController.text), ), ), @@ -91,69 +85,34 @@ class _ChatScreenState extends State { ); } - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text('금융 AI 챗봇'), - backgroundColor: Theme.of(context).primaryColor, - ), - body: Column( - children: [ - // 5. 로딩 인디케이터 (AI 응답 대기 시) - if (_isLoading) - const LinearProgressIndicator(), - - // 6. 대화 목록 (ListView) - Flexible( - child: ListView.builder( - padding: const EdgeInsets.all(8.0), - reverse: true, // 최신 메시지가 아래로 오도록 설정 - itemBuilder: (_, int index) => _buildChatMessage(_messages[index]), - itemCount: _messages.length, - ), - ), - - const Divider(height: 1.0), - - // 7. 입력창 - Container( - decoration: BoxDecoration(color: Theme.of(context).cardColor), - child: _buildTextComposer(), - ), - ], - ), - ); - } - - // 8. 개별 메시지 버블 위젯 Widget _buildChatMessage(Map message) { final bool isUser = message['sender'] == 'user'; - return Container( - margin: const EdgeInsets.symmetric(vertical: 10.0), + margin: const EdgeInsets.symmetric(vertical: 6, horizontal: 12), child: Row( - mainAxisAlignment: isUser ? MainAxisAlignment.end : MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: + isUser ? MainAxisAlignment.end : MainAxisAlignment.start, children: [ - // AI 메시지일 때만 아바타 (아이콘) 표시 if (!isUser) - const Padding( - padding: EdgeInsets.only(right: 8.0), - child: CircleAvatar(child: Text('AI')), - ), - - // 메시지 버블 - Container( - constraints: BoxConstraints(maxWidth: MediaQuery.of(context).size.width * 0.75), - padding: const EdgeInsets.all(12.0), - decoration: BoxDecoration( - color: isUser ? Colors.blueAccent : Colors.grey[200], - borderRadius: BorderRadius.circular(15), + const CircleAvatar( + backgroundColor: Color(0xFF7FB77E), + child: Icon(Icons.auto_awesome, color: Colors.white, size: 18), ), - child: Text( - message['text']!, - style: TextStyle(color: isUser ? Colors.white : Colors.black87), + if (!isUser) const SizedBox(width: 8), + Flexible( + child: Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: isUser + ? const Color(0xFFF8F8F8) + : const Color(0xFFFFFBF5), + borderRadius: BorderRadius.circular(16), + ), + child: Text( + message['text']!, + style: const TextStyle(fontSize: 15, height: 1.4), + ), ), ), ], @@ -161,6 +120,50 @@ class _ChatScreenState extends State { ); } - - -} \ No newline at end of file + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF9F5EC), + body: SafeArea( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 40, bottom: 16), + child: Column( + children: const [ + Text( + 'GuardAI', + style: TextStyle( + fontSize: 50, + fontWeight: FontWeight.bold, + color: Color(0xFF7FB77E), + shadows: [ + Shadow( + color: Colors.black26, + offset: Offset(1, 1), + blurRadius: 2, + ), + ], + ), + ), + ], + ), + ), + if (_isLoading) + const LinearProgressIndicator(color: Color(0xFF7FB77E)), + Expanded( + child: ListView.builder( + padding: const EdgeInsets.all(8), + reverse: true, + itemBuilder: (_, i) => _buildChatMessage(_messages[i]), + itemCount: _messages.length, + ), + ), + _buildTextComposer(), + ], + ), + ), + bottomNavigationBar: const BottomNav(selectedIndex: 1), // ✅ 통일된 하단바 + ); + } +} diff --git a/lib/features/auth/screens/home_screen.dart b/lib/features/auth/screens/home_screen.dart index d519205..51c0ea0 100644 --- a/lib/features/auth/screens/home_screen.dart +++ b/lib/features/auth/screens/home_screen.dart @@ -1,9 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:flutter/cupertino.dart'; -import 'chat_screen.dart'; import 'package:guardpayfront/core/services/storage.dart'; import 'package:guardpayfront/features/auth/services/api_service.dart'; - +import 'package:guardpayfront/features/auth/widgets/bottom_nav.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @@ -16,7 +14,6 @@ class _HomeScreenState extends State { final ApiService _api = ApiService(); String? accessToken; - int _selectedIndex = 0; @override void initState() { @@ -28,37 +25,34 @@ class _HomeScreenState extends State { final token = await storage.read(key: 'accessToken'); if (token != null) { - setState(() { - accessToken = token; - }); + setState(() => accessToken = token); } else { print("🚨 HomeScreen: 저장된 토큰이 없습니다. 로그인 화면으로 이동합니다."); - if (mounted) { - Navigator.pushReplacementNamed(context, '/login'); - } + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + Navigator.pushReplacementNamed(context, '/login'); + } + }); } } + @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: const Color(0xFFF7F7F7), + backgroundColor: const Color(0xFFF9F5EC), body: SafeArea( child: Column( children: [ const SizedBox(height: 10), - // 🔹 상단 검색창 + 알림/설정 아이콘 (팀원 디자인 적용) + // 🔹 상단 검색창 + 아이콘들 Padding( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), child: Row( children: [ - // 왼쪽 메뉴 아이콘 const Icon(Icons.menu, color: Colors.black87, size: 26), const SizedBox(width: 10), - - // 검색창 (팀원 디자인: prefixIcon 사용) - const SizedBox(width: 5), Expanded( child: TextField( decoration: InputDecoration( @@ -68,47 +62,32 @@ class _HomeScreenState extends State { borderRadius: BorderRadius.circular(8.0), borderSide: BorderSide.none, ), - prefixIcon: const Icon( - Icons.search, - color: Colors.black54, - ), + prefixIcon: + const Icon(Icons.search, color: Colors.black54), ), ), ), - const SizedBox(width: 15), - - // 🔔 알림 아이콘 (팀원 이미지명: alert_icon.png) - Image.asset( - 'assets/images/alert_icon.png', - width: 26, - height: 26, - fit: BoxFit.contain, - ), + Image.asset('assets/images/alert_icon.png', + width: 26, height: 26), const SizedBox(width: 12), - - // ⚙️ 설정 아이콘 (팀원 이미지명: settings_icon.png) - Image.asset( - 'assets/images/settings_icon.png', - width: 26, - height: 26, - fit: BoxFit.contain, - ), + Image.asset('assets/images/settings_icon.png', + width: 26, height: 26), ], ), ), - // 🔹 상단 노란 배너 (팀원 디자인 적용) + // 🔹 상단 배너 Container( - width: 412, + width: double.infinity, height: 160, margin: const EdgeInsets.symmetric(vertical: 8), - padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10), + padding: + const EdgeInsets.symmetric(horizontal: 14, vertical: 10), decoration: const BoxDecoration( color: Color(0xFFFFF8C6), ), child: Row( - crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.only(left: 16.0, top: 15.0), @@ -116,22 +95,21 @@ class _HomeScreenState extends State { 'assets/images/main_icon.png', width: 80, height: 80, - fit: BoxFit.contain, ), ), const SizedBox(width: 25), const Expanded( child: Padding( - padding: EdgeInsets.only(right: 13.0, bottom: 11.0), + padding: EdgeInsets.only(right: 13.0), child: Align( alignment: Alignment.bottomRight, child: Text( '안전 송금, 퀴즈로 배우자!\n퀴즈 풀고 포인트를 모아요!', textAlign: TextAlign.end, style: TextStyle( - color: Colors.black87, fontSize: 22, fontWeight: FontWeight.bold, + color: Colors.black87, height: 1.5, ), ), @@ -144,7 +122,7 @@ class _HomeScreenState extends State { const SizedBox(height: 11), - // 🔹 아래 카드 3개 (기존 로직 유지, 디자인만 변경) + // 🔹 카드 3개 Expanded( child: SingleChildScrollView( child: Column( @@ -174,74 +152,18 @@ class _HomeScreenState extends State { ), ), ), - - // 🔹 하단 네비게이션바 (기존 로직 유지) - Container( - decoration: BoxDecoration( - color: Colors.white, - border: Border( - top: BorderSide(color: Colors.grey.shade300, width: 1), - ), - ), - padding: const EdgeInsets.symmetric(vertical: 8), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - _BottomImageOnlyIcon( - imagePath: 'assets/images/home_icon.png', - isActive: _selectedIndex == 0, - onTap: () => setState(() => _selectedIndex = 0), - ), - _BottomImageOnlyIcon( - imagePath: 'assets/images/AI_icon.png', - isActive: _selectedIndex == 1, - onTap: () { - setState(() => _selectedIndex = 1); - Navigator.push( - context, - MaterialPageRoute( - builder: (_) => ChatScreen(api: _api), - ), - ); - }, - ), - _BottomImageOnlyIcon( - imagePath: 'assets/images/shop_icon.png', - isActive: _selectedIndex == 2, - onTap: () => setState(() => _selectedIndex = 2), - ), - _BottomImageOnlyIcon( - imagePath: 'assets/images/money_icon.png', - isActive: _selectedIndex == 3, - onTap: () => setState(() => _selectedIndex = 3), - ), - _BottomImageOnlyIcon( - imagePath: 'assets/images/map_icon.png', - isActive: _selectedIndex == 4, - onTap: () => setState(() => _selectedIndex = 4), - ), - ], - ), - ), ], ), ), + bottomNavigationBar: const BottomNav(selectedIndex: 0), // ✅ 통일된 하단바 ); } - // 🔹 카드 위젯 (팀원 디자인 전면 적용) Widget _buildCard({ required String title, required String imagePath, required VoidCallback onTap, }) { - // 팀원의 상수 정의 - const double imageSize = 50; - const double imageHorizontalOffset = 22; - const double imageVerticalOffset = 27; - const double contentWidth = 350 - (16 * 2); - const double titleTopOffset = 35; - return GestureDetector( onTap: onTap, child: Container( @@ -263,24 +185,16 @@ class _HomeScreenState extends State { ), child: Stack( children: [ - // 1. 이미지 (왼쪽 위) Positioned( - left: imageHorizontalOffset, - top: imageVerticalOffset, - child: Image.asset( - imagePath, - width: imageSize, - height: imageSize, - fit: BoxFit.contain, - ), + left: 22, + top: 27, + child: Image.asset(imagePath, width: 50, height: 50), ), - - // 2. 제목 (중앙 정렬) Positioned( left: 35, - top: titleTopOffset, + top: 35, child: SizedBox( - width: contentWidth, + width: 350 - (16 * 2), child: Text( title, textAlign: TextAlign.center, @@ -297,29 +211,3 @@ class _HomeScreenState extends State { ); } } - -// 🔹 하단 네비게이션 이미지 아이콘 -class _BottomImageOnlyIcon extends StatelessWidget { - final String imagePath; - final bool isActive; - final VoidCallback onTap; - - const _BottomImageOnlyIcon({ - required this.imagePath, - required this.isActive, - required this.onTap, - }); - - @override - Widget build(BuildContext context) { - return GestureDetector( - onTap: onTap, - child: Image.asset( - imagePath, - width: 45, - height: 45, - color: isActive ? null : Colors.black54, - ), - ); - } -} \ No newline at end of file diff --git a/lib/features/auth/widgets/bottom_nav.dart b/lib/features/auth/widgets/bottom_nav.dart new file mode 100644 index 0000000..19f8988 --- /dev/null +++ b/lib/features/auth/widgets/bottom_nav.dart @@ -0,0 +1,108 @@ +import 'package:flutter/material.dart'; +import 'package:guardpayfront/features/auth/screens/chat_screen.dart'; +import 'package:guardpayfront/features/auth/screens/home_screen.dart'; +import 'package:guardpayfront/features/auth/services/api_service.dart'; + +class BottomNav extends StatelessWidget { + final int selectedIndex; + const BottomNav({super.key, required this.selectedIndex}); + + @override + Widget build(BuildContext context) { + final ApiService api = ApiService(); + + void _navigateTo(int index) { + if (index == selectedIndex) return; // 같은 탭이면 아무 것도 안 함 + switch (index) { + case 0: // 홈 + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const HomeScreen()), + (route) => false, + ); + break; + case 1: // AI + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => ChatScreen(api: api)), + (route) => false, + ); + break; + case 2: + // TODO: 쇼핑 화면 + break; + case 3: + // TODO: 송금 화면 + break; + case 4: + // TODO: 지도 화면 + break; + } + } + + return Container( + decoration: BoxDecoration( + color: Colors.white, + border: Border( + top: BorderSide(color: Colors.grey.shade300, width: 1), + ), + ), + padding: const EdgeInsets.symmetric(vertical: 8), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + _BottomIcon( + imagePath: 'assets/images/home_icon.png', + isActive: selectedIndex == 0, + onTap: () => _navigateTo(0), + ), + _BottomIcon( + imagePath: 'assets/images/AI_icon.png', + isActive: selectedIndex == 1, + onTap: () => _navigateTo(1), + ), + _BottomIcon( + imagePath: 'assets/images/shop_icon.png', + isActive: selectedIndex == 2, + onTap: () => _navigateTo(2), + ), + _BottomIcon( + imagePath: 'assets/images/money_icon.png', + isActive: selectedIndex == 3, + onTap: () => _navigateTo(3), + ), + _BottomIcon( + imagePath: 'assets/images/map_icon.png', + isActive: selectedIndex == 4, + onTap: () => _navigateTo(4), + ), + ], + ), + ); + } +} + +class _BottomIcon extends StatelessWidget { + final String imagePath; + final bool isActive; + final VoidCallback onTap; + + const _BottomIcon({ + required this.imagePath, + required this.isActive, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Image.asset( + imagePath, + width: 45, + height: 45, + color: isActive ? null : Colors.black54, + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index c5ea8e6..9e71aab 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -292,26 +292,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: @@ -537,10 +537,10 @@ packages: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.6" typed_data: dependency: transitive description: @@ -617,10 +617,10 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.2.0" vm_service: dependency: transitive description: From f2dbb755deeb52e36a083f55dd7a364cefc98bad Mon Sep 17 00:00:00 2001 From: jiwon0412 Date: Sun, 9 Nov 2025 00:26:47 +0900 Subject: [PATCH 23/52] =?UTF-8?q?feat=20:=20=EA=B8=88=EC=9C=B5=EC=98=88?= =?UTF-8?q?=EB=B0=A9=20=EC=98=81=EC=83=81=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.10/checksums/checksums.lock | Bin 17 -> 0 bytes .gradle/8.10/checksums/md5-checksums.bin | Bin 20547 -> 0 bytes .gradle/8.10/checksums/sha1-checksums.bin | Bin 41393 -> 0 bytes .../executionHistory/executionHistory.bin | Bin 19583 -> 0 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 0 bytes .gradle/8.10/fileChanges/last-build.bin | Bin 1 -> 0 bytes .gradle/8.10/fileHashes/fileHashes.bin | Bin 29147 -> 0 bytes .gradle/8.10/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .../8.10/fileHashes/resourceHashesCache.bin | Bin 19449 -> 0 bytes .gradle/8.11.1/fileHashes/fileHashes.bin | Bin 39397 -> 39397 bytes .gradle/8.11.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.11.1/fileHashes/resourceHashesCache.bin | Bin 20265 -> 20299 bytes .gradle/config.properties | 4 +- lib/config/app_router.dart | 52 +++++ lib/features/video/models/video_model.dart | 65 ++++++ .../video/screens/video_category_screen.dart | 193 ++++++++++++++++++ .../video/screens/video_list_screen.dart | 139 +++++++++++++ .../video/screens/video_player_screen.dart | 94 +++++++++ .../video/services/video_service.dart | 48 +++++ .../video/widgets/video_category_card.dart | 0 .../video/widgets/video_list_tile.dart | 0 lib/features/video/widgets/video_player.dart | 0 lib/main.dart | 32 ++- local.properties | 4 +- macos/Flutter/GeneratedPluginRegistrant.swift | 4 + pubspec.lock | 186 ++++++++++++++++- pubspec.yaml | 4 + .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 29 files changed, 823 insertions(+), 6 deletions(-) delete mode 100644 .gradle/8.10/checksums/checksums.lock delete mode 100644 .gradle/8.10/checksums/md5-checksums.bin delete mode 100644 .gradle/8.10/checksums/sha1-checksums.bin delete mode 100644 .gradle/8.10/executionHistory/executionHistory.bin delete mode 100644 .gradle/8.10/executionHistory/executionHistory.lock delete mode 100644 .gradle/8.10/fileChanges/last-build.bin delete mode 100644 .gradle/8.10/fileHashes/fileHashes.bin delete mode 100644 .gradle/8.10/fileHashes/fileHashes.lock delete mode 100644 .gradle/8.10/fileHashes/resourceHashesCache.bin create mode 100644 lib/config/app_router.dart create mode 100644 lib/features/video/models/video_model.dart create mode 100644 lib/features/video/screens/video_category_screen.dart create mode 100644 lib/features/video/screens/video_list_screen.dart create mode 100644 lib/features/video/screens/video_player_screen.dart create mode 100644 lib/features/video/services/video_service.dart rename .gradle/8.10/dependencies-accessors/gc.properties => lib/features/video/widgets/video_category_card.dart (100%) rename .gradle/8.10/gc.properties => lib/features/video/widgets/video_list_tile.dart (100%) create mode 100644 lib/features/video/widgets/video_player.dart diff --git a/.gradle/8.10/checksums/checksums.lock b/.gradle/8.10/checksums/checksums.lock deleted file mode 100644 index 31569d746ea2dbaeccbb64b9a9eb269e10924474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 VcmZQRdZ6iT&P$;m3}C=`9RNg81}^{r diff --git a/.gradle/8.10/checksums/md5-checksums.bin b/.gradle/8.10/checksums/md5-checksums.bin deleted file mode 100644 index b259a3e2c4e7e384a93612107dd937a574ac622d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20547 zcmeI3{Wnx;9KdhGj1-L)r4*yB47F@UY%1g>gOOy|nUG$U?FBVbN^E-55v{jocMHj$ zSsP1Q>4l=Gl_+g!OSDUEMbdj6W$&Hmd3H~8`wKeX=N#9ZkNff5=kv^rAIx>7C?mZA zJgEPN;r|ce5fp#|Pyh-*0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU@TnA#&w^M#p4wUfr8AB(if{||P|QaDZPO2|Uo^D^N{SBs7nF281i zxh>)Q6b4I@9^ZYBxJL`&sfs;Mck^BN_aq!V4m(@*Vm?D-fR-OZd^aOTkgLx^;+qFC_d|+t-KVhL>m{?vYP; zapj8Nlbe}9pyox7~*2gJS7{^MN} zzDg7uzd_u)k8rM4!w{-tNjN^=n((2Yjqok***zR_pHjm0^YvrH`vgxA7oQ}2)TQpw z((biY`22Zk_61U;sGnR0>7?J&` zVvAbDMb`+Q@la1|mE7eS=4%Ld6dsT0n(*Eeaqncp-8e6v4McA(KzyEvaQBrLZYiq_ z-eO)zxaf6G-WS}F>kt=92>0ig3EjeT4kGULitu2k3)2m>x8Xh>>j_`6Hl_QymK*+G zo7ZB(<+2X*>7jwRv-erTqZ=Cvs~eC;$bZ02F`%Pyh-* z0Vn_kpa2wr0#E=7KmjNK1)u;FfC5ke3P1rU00p1`6o3Ly01A9c1*Xx9VLo7N#(e3W zH#9!6??Gu=R{tKSR{5{q6g5b3M`xBhS~2Hm`n%PK#-3qzcSon0wF!75kG(d}If;xp zX~@uG?j=w&UY>1e+gg;Ay}7aJ_KUqea%8ylBSU{S+bA~KK4kpV-1@A6j=`Z%zK%!6 zTx(?TnX6NqxQ>khWEdo|4XZ${iUpVE6!hLq*m-7Rb1O33 z@MrfOO4)|Hj>eV*XaD>uCGA^GdjlpR!z)HL2d6BXZTKYzzAv~aQx4P4^W#~X(Vzck z>U!I$49X~lZ9F&X({HCDD&`yEm;SFT?l&FkB8$MFEZCS$Ka)-VQ*_5^|&fjgM z?@M5=%BKg<5yYM&(=XF(e?WEd)Yz7QnMxsUwIBq|5gEodQa84)ba}!H-fYnr(p-Q0 zcV>>Zo0ZIyj~+u!>4Vyy4|-`Bm9jTOGsDL4aD+k>hYfr;%XDTZ)r`eeM;%H|oisD5 z@zV$wMwOv;_@7~BpeXB!^g+#VI8n?C3vBHD+Lu#4xWM#2HXf-2io2I>c=Uf8>v%|i zw1H^u^nf!R`Pg`l4DBekalHOiSoM*#(?g=7r4G$j3y~qIL2}vm$I%(`V9Su#7&a)y-6vq>0=8G_ppt=y%KOzx>e9 z)@2)`0t1|zdM+LK>2SJdzHKtSV&<7B!FTj%?qnOXdp@p_jxSe_)7ZD>baxMZ6)K~X zK9e3}+UbMZRoO=@nAEo|oSQVT-}0XD1b#1((0k8}zEt|4X3Ut=-mjOj{H?(F$PbU| zT5jSw9;gJ0_Z8b%)T(eFJJn^jPoc^0KMF>@L`DGKK`vve%~4f+x%9=pYj^Ue1jIHT z8lYdL%sPmnwTNx(FEO~9aeaTruwCt`A!80mv4LChKJtoM?5eXaW~Ene<1hEu+f)S2 z#YQb!2bbANwX3RIZ*yR7-38hB<8My*{WV#M4C!iY(0@3v|qw+19t(%`4*3cT>?T*VUotVut2NUQspQhYDwy zPjJ7OUSPhqcQsnMt}!v{Xie>^+yudn*Kb%q&yI@IRmOS`MROSAzqOjooorVB0#A4Y A5dZ)H diff --git a/.gradle/8.10/checksums/sha1-checksums.bin b/.gradle/8.10/checksums/sha1-checksums.bin deleted file mode 100644 index 9faf0720389a3b7b3b9db31762d98cc4f82d1cd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41393 zcmeI5c{Ek;-}jH1GMs}_5tSq&Ln#`~l1w2XA%s%qA+s_QB4jF*(m<4=GE<@uQB;m8 zNkv3Tg=g<`?Y)2NKIiOv-FNF*&mYg~TI+jG>+SQp-uwFOYxwM~em`{rVHt4&X@vi@ zCI9*3zd!xUz`qRq%fP=3{L8?<4E)Q$zYP4#z`qRq%fP=3{L8?<4E)Q$zYP4#z`qRq z%fP=3{L8?<4E+C+0TXB-i@;!(Nio8I;PD|4WH|{0hJujg(x&gU*ENG52dSXHKL|