From 7d67868635a62ed0595b32afc05b1a6b3fdc355c Mon Sep 17 00:00:00 2001 From: callmeyan Date: Tue, 15 Nov 2022 11:48:30 +0800 Subject: [PATCH] init project --- api/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 58727 bytes api/.mvn/wrapper/maven-wrapper.properties | 2 + api/HELP.md | 26 ++ api/mvnw | 316 ++++++++++++++++++ api/mvnw.cmd | 188 +++++++++++ api/pom.xml | 95 ++++++ .../me/xiaoyan/point/api/ApiApplication.java | 13 + .../point/api/config/MybatisPlusConfig.java | 16 + .../api/config/SwaggerConfiguration.java | 80 +++++ .../api/controller/WechatController.java | 29 ++ .../xiaoyan/point/api/error/BizException.java | 18 + .../xiaoyan/point/api/mapper/PointMapper.java | 10 + .../point/api/mapper/PointRecordMapper.java | 10 + .../point/api/mapper/SignRecordMapper.java | 10 + .../point/api/mapper/UserInfoMapper.java | 12 + .../java/me/xiaoyan/point/api/pojo/Point.java | 21 ++ .../xiaoyan/point/api/pojo/PointRecord.java | 26 ++ .../me/xiaoyan/point/api/pojo/SignRecord.java | 22 ++ .../me/xiaoyan/point/api/pojo/UserInfo.java | 58 ++++ .../point/api/service/PointRecordService.java | 8 + .../point/api/service/PointService.java | 8 + .../point/api/service/SignRecordService.java | 9 + .../point/api/service/UserInfoService.java | 14 + .../service/impl/PointRecordServiceImpl.java | 10 + .../api/service/impl/PointServiceImpl.java | 10 + .../service/impl/SignRecordServiceImpl.java | 10 + .../api/service/impl/UserInfoServiceImpl.java | 106 ++++++ api/src/main/resources/application.yml | 54 +++ api/src/main/resources/db.sql | 45 +++ api/src/main/resources/docs/er.png | Bin 0 -> 137798 bytes api/src/main/resources/docs/process/login.svg | 4 + api/src/main/resources/docs/积分系统.jpg | Bin 0 -> 75597 bytes .../main/resources/mapper/UserInfoMapper.xml | 7 + .../point/api/ApiApplicationTests.java | 13 + 34 files changed, 1250 insertions(+) create mode 100644 api/.mvn/wrapper/maven-wrapper.jar create mode 100644 api/.mvn/wrapper/maven-wrapper.properties create mode 100644 api/HELP.md create mode 100644 api/mvnw create mode 100644 api/mvnw.cmd create mode 100644 api/pom.xml create mode 100644 api/src/main/java/me/xiaoyan/point/api/ApiApplication.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/config/MybatisPlusConfig.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/config/SwaggerConfiguration.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/controller/WechatController.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/error/BizException.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/mapper/PointMapper.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/mapper/PointRecordMapper.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/mapper/SignRecordMapper.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/mapper/UserInfoMapper.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/pojo/Point.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/pojo/PointRecord.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/pojo/SignRecord.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/pojo/UserInfo.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/service/PointRecordService.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/service/PointService.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/service/SignRecordService.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/service/UserInfoService.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/service/impl/PointRecordServiceImpl.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/service/impl/PointServiceImpl.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/service/impl/SignRecordServiceImpl.java create mode 100644 api/src/main/java/me/xiaoyan/point/api/service/impl/UserInfoServiceImpl.java create mode 100644 api/src/main/resources/application.yml create mode 100644 api/src/main/resources/db.sql create mode 100644 api/src/main/resources/docs/er.png create mode 100644 api/src/main/resources/docs/process/login.svg create mode 100644 api/src/main/resources/docs/积分系统.jpg create mode 100644 api/src/main/resources/mapper/UserInfoMapper.xml create mode 100644 api/src/test/java/me/xiaoyan/point/api/ApiApplicationTests.java diff --git a/api/.mvn/wrapper/maven-wrapper.jar b/api/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..c1dd12f17644411d6e840bd5a10c6ecda0175f18 GIT binary patch literal 58727 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%0ANsA|A3-jj|r`KAo%oTajX3>^E` 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 YM{}PByk10KD_nuQ4E7Du?}+~TKh4V)`~Uy| literal 0 HcmV?d00001 diff --git a/api/.mvn/wrapper/maven-wrapper.properties b/api/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..b74bf7f --- /dev/null +++ b/api/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,2 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar diff --git a/api/HELP.md b/api/HELP.md new file mode 100644 index 0000000..22eb08a --- /dev/null +++ b/api/HELP.md @@ -0,0 +1,26 @@ +# Getting Started + +### Reference Documentation + +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.6.13/maven-plugin/reference/html/) +* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.6.13/maven-plugin/reference/html/#build-image) +* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/2.6.13/reference/htmlsingle/#using.devtools) +* [Validation](https://docs.spring.io/spring-boot/docs/2.6.13/reference/htmlsingle/#io.validation) +* [MyBatis Framework](https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/) +* [Spring Configuration Processor](https://docs.spring.io/spring-boot/docs/2.6.13/reference/htmlsingle/#appendix.configuration-metadata.annotation-processor) +* [Spring Web](https://docs.spring.io/spring-boot/docs/2.6.13/reference/htmlsingle/#web) + +### Guides + +The following guides illustrate how to use some features concretely: + +* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/) +* [Validation](https://spring.io/guides/gs/validating-form-input/) +* [MyBatis Quick Start](https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start) +* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) +* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) +* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/) + diff --git a/api/mvnw b/api/mvnw new file mode 100644 index 0000000..8a8fb22 --- /dev/null +++ b/api/mvnw @@ -0,0 +1,316 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + 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 + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/api/mvnw.cmd b/api/mvnw.cmd new file mode 100644 index 0000000..1d8ab01 --- /dev/null +++ b/api/mvnw.cmd @@ -0,0 +1,188 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. 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, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% diff --git a/api/pom.xml b/api/pom.xml new file mode 100644 index 0000000..1ebca30 --- /dev/null +++ b/api/pom.xml @@ -0,0 +1,95 @@ + + + 4.0.0 + + me.xiaoyan + point + 1.0-SNAPSHOT + + me.xiaoyan.point + api + 0.0.1-SNAPSHOT + api + api + + 1.8 + + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-web + + + com.baomidou + mybatis-plus-boot-starter + 3.5.2 + + + + com.alibaba + druid-spring-boot-starter + 1.2.14 + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + com.mysql + mysql-connector-j + runtime + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + org.apache.httpcomponents.client5 + httpclient5 + 5.1.3 + + + io.springfox + springfox-boot-starter + 3.0.0 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/api/src/main/java/me/xiaoyan/point/api/ApiApplication.java b/api/src/main/java/me/xiaoyan/point/api/ApiApplication.java new file mode 100644 index 0000000..31d9a35 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/ApiApplication.java @@ -0,0 +1,13 @@ +package me.xiaoyan.point.api; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ApiApplication { + + public static void main(String[] args) { + SpringApplication.run(ApiApplication.class, args); + } + +} diff --git a/api/src/main/java/me/xiaoyan/point/api/config/MybatisPlusConfig.java b/api/src/main/java/me/xiaoyan/point/api/config/MybatisPlusConfig.java new file mode 100644 index 0000000..a057b41 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/config/MybatisPlusConfig.java @@ -0,0 +1,16 @@ +package me.xiaoyan.point.api.config; + +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MybatisPlusConfig { + @Bean + public MybatisPlusInterceptor paginationInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); + return interceptor; + } +} \ No newline at end of file diff --git a/api/src/main/java/me/xiaoyan/point/api/config/SwaggerConfiguration.java b/api/src/main/java/me/xiaoyan/point/api/config/SwaggerConfiguration.java new file mode 100644 index 0000000..861bf8b --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/config/SwaggerConfiguration.java @@ -0,0 +1,80 @@ +package me.xiaoyan.point.api.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.util.ReflectionUtils; +import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.oas.annotations.EnableOpenApi; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider; +import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.stream.Collectors; + +@Configuration +@EnableOpenApi +public class SwaggerConfiguration { + + // 创建api文档信息 + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("me.xiaoyan.point.api.controller")) + .paths(PathSelectors.any()) + .build(); + } + + // API的信息 + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("积分系统 API文档") + .description("积分系统 API文档") + .version("1.0").build(); + } + + + // 解决swagger nullpointer + @Bean + public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() { + return new BeanPostProcessor() { + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { + if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) { + customizeSpringfoxHandlerMappings(getHandlerMappings(bean)); + } + return bean; + } + + private void customizeSpringfoxHandlerMappings(List mappings) { + List copy = mappings.stream() + .filter(mapping -> mapping.getPatternParser() == null) + .collect(Collectors.toList()); + mappings.clear(); + mappings.addAll(copy); + } + + @SuppressWarnings("unchecked") + private List getHandlerMappings(Object bean) { + try { + Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings"); + field.setAccessible(true); + return (List) field.get(bean); + } catch (IllegalArgumentException | IllegalAccessException e) { + throw new IllegalStateException(e); + } + } + }; + } +} \ No newline at end of file diff --git a/api/src/main/java/me/xiaoyan/point/api/controller/WechatController.java b/api/src/main/java/me/xiaoyan/point/api/controller/WechatController.java new file mode 100644 index 0000000..0f28de7 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/controller/WechatController.java @@ -0,0 +1,29 @@ +package me.xiaoyan.point.api.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.SneakyThrows; +import org.apache.hc.client5.http.classic.HttpClient; +import org.apache.hc.client5.http.classic.methods.HttpGet; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.core5.http.HttpResponse; +import org.apache.hc.core5.http.io.entity.EntityUtils; +import org.apache.hc.core5.http.message.BasicClassicHttpResponse; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@RestController +public class WechatController { + + // code => openid等信息 + // 使用wx.login获取到的code进行登录,完成登录后下发用户登录凭证 + @RequestMapping("/wechat/login") + @SneakyThrows + public String login(String code) { + return null; + } +} diff --git a/api/src/main/java/me/xiaoyan/point/api/error/BizException.java b/api/src/main/java/me/xiaoyan/point/api/error/BizException.java new file mode 100644 index 0000000..27a9e35 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/error/BizException.java @@ -0,0 +1,18 @@ +package me.xiaoyan.point.api.error; + +public class BizException extends RuntimeException { + /** + * 错误码 + */ + private int code; + + public BizException(int code, String message) { + super(message); + this.code = code; + } + + public BizException(Throwable e) { + super(e.getMessage()); + this.code = 500; + } +} diff --git a/api/src/main/java/me/xiaoyan/point/api/mapper/PointMapper.java b/api/src/main/java/me/xiaoyan/point/api/mapper/PointMapper.java new file mode 100644 index 0000000..433364c --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/mapper/PointMapper.java @@ -0,0 +1,10 @@ +package me.xiaoyan.point.api.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import me.xiaoyan.point.api.pojo.Point; +import me.xiaoyan.point.api.pojo.UserInfo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PointMapper extends BaseMapper { +} diff --git a/api/src/main/java/me/xiaoyan/point/api/mapper/PointRecordMapper.java b/api/src/main/java/me/xiaoyan/point/api/mapper/PointRecordMapper.java new file mode 100644 index 0000000..6e7211b --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/mapper/PointRecordMapper.java @@ -0,0 +1,10 @@ +package me.xiaoyan.point.api.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import me.xiaoyan.point.api.pojo.Point; +import me.xiaoyan.point.api.pojo.PointRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PointRecordMapper extends BaseMapper { +} diff --git a/api/src/main/java/me/xiaoyan/point/api/mapper/SignRecordMapper.java b/api/src/main/java/me/xiaoyan/point/api/mapper/SignRecordMapper.java new file mode 100644 index 0000000..fc06de4 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/mapper/SignRecordMapper.java @@ -0,0 +1,10 @@ +package me.xiaoyan.point.api.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import me.xiaoyan.point.api.pojo.Point; +import me.xiaoyan.point.api.pojo.SignRecord; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SignRecordMapper extends BaseMapper { +} diff --git a/api/src/main/java/me/xiaoyan/point/api/mapper/UserInfoMapper.java b/api/src/main/java/me/xiaoyan/point/api/mapper/UserInfoMapper.java new file mode 100644 index 0000000..9aa6ef8 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/mapper/UserInfoMapper.java @@ -0,0 +1,12 @@ +package me.xiaoyan.point.api.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import me.xiaoyan.point.api.pojo.UserInfo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface UserInfoMapper extends BaseMapper { + + public UserInfo selectOneByOpenId(@Param("openId") String openId); +} diff --git a/api/src/main/java/me/xiaoyan/point/api/pojo/Point.java b/api/src/main/java/me/xiaoyan/point/api/pojo/Point.java new file mode 100644 index 0000000..deb6759 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/pojo/Point.java @@ -0,0 +1,21 @@ +package me.xiaoyan.point.api.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Builder; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@Accessors(chain = true) +@Builder +public class Point implements Serializable { + private Integer uid; + private Integer total_point; + private Integer valid_point; + private Integer expire_point; + private Integer expire_time; + private Integer update_time; +} diff --git a/api/src/main/java/me/xiaoyan/point/api/pojo/PointRecord.java b/api/src/main/java/me/xiaoyan/point/api/pojo/PointRecord.java new file mode 100644 index 0000000..ad088e9 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/pojo/PointRecord.java @@ -0,0 +1,26 @@ +package me.xiaoyan.point.api.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +@Data +@Accessors(chain = true) +@Builder +@TableName("point_record") +public class PointRecord implements Serializable { + @TableId(type = IdType.AUTO) + private Integer id; + private Integer uid; + private Integer point; + private Integer currentTotalPoint; + private String reason; + private Date validTime; + private Date expireTime; +} diff --git a/api/src/main/java/me/xiaoyan/point/api/pojo/SignRecord.java b/api/src/main/java/me/xiaoyan/point/api/pojo/SignRecord.java new file mode 100644 index 0000000..a93284c --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/pojo/SignRecord.java @@ -0,0 +1,22 @@ +package me.xiaoyan.point.api.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Builder; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +@Data +@Accessors(chain = true) +@Builder +public class SignRecord implements Serializable { + @TableId(type = IdType.AUTO) + private Integer id; + private Integer uid; + private Integer point; + private String ip; + private Date create_time; +} diff --git a/api/src/main/java/me/xiaoyan/point/api/pojo/UserInfo.java b/api/src/main/java/me/xiaoyan/point/api/pojo/UserInfo.java new file mode 100644 index 0000000..eb0d9d2 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/pojo/UserInfo.java @@ -0,0 +1,58 @@ +package me.xiaoyan.point.api.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Builder; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +@Data +@Accessors(chain = true) +@Builder +public class UserInfo implements Serializable { + /** + * 用户id + */ + @TableId(type = IdType.AUTO) + private Integer id; + /** + * 微信openid + */ + private String openId; + /** + * 昵称 + */ + private String nickname; + /** + * 投下给你 + */ + private String headImage; + /** + * 性别 + */ + private Integer gender; + /** + * 省份 + */ + private String province; + /** + * 城市 + */ + private String city; + /** + * 推荐人ID + */ + private Integer parentId; + /** + * 第一次登录时间 + */ + private Date firstLoginTime; + private Date updateTime; + /** + * 状态 + */ + private Integer status; +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/PointRecordService.java b/api/src/main/java/me/xiaoyan/point/api/service/PointRecordService.java new file mode 100644 index 0000000..16c25ee --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/service/PointRecordService.java @@ -0,0 +1,8 @@ +package me.xiaoyan.point.api.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import me.xiaoyan.point.api.pojo.PointRecord; +import me.xiaoyan.point.api.pojo.UserInfo; + +public interface PointRecordService extends IService { +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/PointService.java b/api/src/main/java/me/xiaoyan/point/api/service/PointService.java new file mode 100644 index 0000000..7128169 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/service/PointService.java @@ -0,0 +1,8 @@ +package me.xiaoyan.point.api.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import me.xiaoyan.point.api.pojo.Point; +import me.xiaoyan.point.api.pojo.UserInfo; + +public interface PointService extends IService { +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/SignRecordService.java b/api/src/main/java/me/xiaoyan/point/api/service/SignRecordService.java new file mode 100644 index 0000000..1dd8966 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/service/SignRecordService.java @@ -0,0 +1,9 @@ +package me.xiaoyan.point.api.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import me.xiaoyan.point.api.pojo.SignRecord; +import me.xiaoyan.point.api.pojo.UserInfo; + +public interface SignRecordService extends IService { + +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/UserInfoService.java b/api/src/main/java/me/xiaoyan/point/api/service/UserInfoService.java new file mode 100644 index 0000000..26a59ac --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/service/UserInfoService.java @@ -0,0 +1,14 @@ +package me.xiaoyan.point.api.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import me.xiaoyan.point.api.pojo.UserInfo; + +public interface UserInfoService extends IService { + + /** + * 用户的登录 + * @param code 执行wx.login成功后的code + * @return + */ + public UserInfo login(String code); +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/impl/PointRecordServiceImpl.java b/api/src/main/java/me/xiaoyan/point/api/service/impl/PointRecordServiceImpl.java new file mode 100644 index 0000000..0d4009b --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/service/impl/PointRecordServiceImpl.java @@ -0,0 +1,10 @@ +package me.xiaoyan.point.api.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import me.xiaoyan.point.api.mapper.PointRecordMapper; +import me.xiaoyan.point.api.pojo.PointRecord; +import me.xiaoyan.point.api.service.PointRecordService; + +public class PointRecordServiceImpl extends ServiceImpl + implements PointRecordService { +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/impl/PointServiceImpl.java b/api/src/main/java/me/xiaoyan/point/api/service/impl/PointServiceImpl.java new file mode 100644 index 0000000..59874db --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/service/impl/PointServiceImpl.java @@ -0,0 +1,10 @@ +package me.xiaoyan.point.api.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import me.xiaoyan.point.api.mapper.PointMapper; +import me.xiaoyan.point.api.pojo.Point; +import me.xiaoyan.point.api.service.PointService; + +public class PointServiceImpl extends ServiceImpl + implements PointService { +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/impl/SignRecordServiceImpl.java b/api/src/main/java/me/xiaoyan/point/api/service/impl/SignRecordServiceImpl.java new file mode 100644 index 0000000..34e2ff6 --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/service/impl/SignRecordServiceImpl.java @@ -0,0 +1,10 @@ +package me.xiaoyan.point.api.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import me.xiaoyan.point.api.mapper.SignRecordMapper; +import me.xiaoyan.point.api.pojo.SignRecord; +import me.xiaoyan.point.api.service.SignRecordService; + +public class SignRecordServiceImpl extends ServiceImpl + implements SignRecordService { +} diff --git a/api/src/main/java/me/xiaoyan/point/api/service/impl/UserInfoServiceImpl.java b/api/src/main/java/me/xiaoyan/point/api/service/impl/UserInfoServiceImpl.java new file mode 100644 index 0000000..26181fc --- /dev/null +++ b/api/src/main/java/me/xiaoyan/point/api/service/impl/UserInfoServiceImpl.java @@ -0,0 +1,106 @@ +package me.xiaoyan.point.api.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import me.xiaoyan.point.api.error.BizException; +import me.xiaoyan.point.api.mapper.PointMapper; +import me.xiaoyan.point.api.mapper.UserInfoMapper; +import me.xiaoyan.point.api.pojo.Point; +import me.xiaoyan.point.api.pojo.UserInfo; +import me.xiaoyan.point.api.service.PointRecordService; +import me.xiaoyan.point.api.service.PointService; +import me.xiaoyan.point.api.service.UserInfoService; +import org.apache.hc.client5.http.classic.methods.HttpGet; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.core5.http.io.entity.EntityUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.IOException; +import java.util.Map; + +@Service +@Slf4j +public class UserInfoServiceImpl extends ServiceImpl + implements UserInfoService { + private static final String LOG_TAG = "【USERSERVICE】"; + + @Value("${wechat.app_id}") + private String app_id; + @Value("${wechat.app_secret}") + private String app_secret; + private static final String CODE2SESSION = "https://api.weixin.qq.com/sns/jscode2session"; + + // 第一次登录的赠送积分 + @Value("${application.point.first_login}") + private int firstLoginPoint; + // 推荐人的赠送积分 + @Value("${application.point.recommend}") + private int recommendPoint; + + + private PointService pointService; + private PointRecordService pointRecordService; + + public void firstLogin(UserInfo info) { + // 先新增用户基本信息 + save(info); + // 新增积分信息 + Point point = Point.builder() + .uid(info.getId()) + .expire_point(0) + .total_point(firstLoginPoint) + .valid_point(firstLoginPoint) + .build(); + pointService.save(point); + // 新增积分记录 + } + + @Transactional + @Override + public UserInfo login(String code) { + String openId = getOpenIdByCode(code); + // TODO 获取用户的基本信息 + + // 使用openid查询用户信息 + final UserInfo userInfo = this.getBaseMapper().selectOneByOpenId(openId); + // 判断用户信息是否存在 + if (userInfo == null) { + // 不存在走 第一次登录流程 + firstLogin(userInfo); + } + // 首先 + return userInfo; + } + + private void updateUserBasicInfo(UserInfo userInfo) { + try { + this.getBaseMapper().updateById(userInfo); + } catch (Exception e) { + log.warn(LOG_TAG + "更新用户基本信息失败", e); + } + } + + // 使用code换取openId + @SneakyThrows + private String getOpenIdByCode(String code) { + String url = CODE2SESSION + "?appid=" + app_id + "&secret=" + app_secret + + "&js_code=" + code + "&grant_type=authorization_code"; + try (CloseableHttpClient client = HttpClients.createDefault()) { + HttpGet get = new HttpGet(url); + final CloseableHttpResponse response = (CloseableHttpResponse) client.execute(get); + final String content = EntityUtils.toString(response.getEntity()); + ObjectMapper mapper = new ObjectMapper(); + final Map map = mapper.convertValue(content, Map.class); + if ((Integer) map.get("errcode") != 0) { + throw new BizException(1101, "换取code失败(" + map.get("errmsg") + ")"); + } + return map.get("openid").toString(); + } + } +} diff --git a/api/src/main/resources/application.yml b/api/src/main/resources/application.yml new file mode 100644 index 0000000..8b232cb --- /dev/null +++ b/api/src/main/resources/application.yml @@ -0,0 +1,54 @@ +server: + port: 8001 +wechat: + app_id: wxafc2a812fe936d88 + app_secret: 3e5f5a577cb06b7d1815db146d552b95 +application: + point: + first_login: 200 + recommend: 100 +spring: + application: + name: point_api + datasource: + name: defaultSource + url: jdbc:mysql://localhost:3306/points_sys?serverTimezone=Asia/Shanghai + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: 123456 + type: com.alibaba.druid.pool.DruidDataSource + #数据源配置 + druid: + max-active: 1000 + initial-size: 10 + max-wait: 1000 + min-idle: 10 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + validation-query: select 1 + test-while-idle: true + test-on-borrow: false + test-on-return: false + max-pool-prepared-statement-per-connection-size: 0 + + #监控 + stat-view-servlet: + url-pattern: /druid/* + reset-enable: false + login-username: admin + login-password: admin + allow: 127.0.0.1 + # 是否启用 + enabled: true + web-stat-filter: + url-pattern: /* + exclusions: /druid/*,*.js,*.css,*.html,*.png,*.jpg + filters: stat,wall +springfox: + documentation: + enabled: true +mybatis-plus: + configuration: + # 日志接口 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + cache-enabled: true \ No newline at end of file diff --git a/api/src/main/resources/db.sql b/api/src/main/resources/db.sql new file mode 100644 index 0000000..6c814ce --- /dev/null +++ b/api/src/main/resources/db.sql @@ -0,0 +1,45 @@ +create database points_sys; +use points_sys; +create table userinfo +( + id int(10) primary key auto_increment, + open_id varchar(50) not null unique, + nickname varchar(30) not null, + head_image varchar(200) not null, + gender tinyint(2) null default -1, + province varchar(5) null, + city varchar(20) null, + parent_id int(10) null default 0 comment '推荐人id', + first_login_time datetime default current_timestamp, + update_time datetime null on update current_timestamp, + status tinyint(2) default 1 +) engine = innodb comment '用户表'; + +create table point +( + uid int(10) primary key, + total_point int(10) not null, + valid_point int(10) not null, + expire_point int(10) null default 0, + expire_time datetime null, + update_time datetime null on update current_timestamp +) engine = innodb comment '积分表'; +create table point_record +( + id bigint(15) primary key auto_increment, + uid int(10) not null, + point int(10) not null, + current_total_point int(10) not null, + reason varchar(100) not null, + valid_time datetime null, + expire_time datetime null +) engine = innodb comment '积分记录表'; + +create table sign_record +( + id bigint(15) primary key auto_increment, + uid int(10) not null, + point int(10) not null, + ip varchar(50) not null, + create_time datetime not null +) engine = innodb comment '打卡记录表'; \ No newline at end of file diff --git a/api/src/main/resources/docs/er.png b/api/src/main/resources/docs/er.png new file mode 100644 index 0000000000000000000000000000000000000000..a593e1e4a1442a7b3b3a50f1855be12957e538b6 GIT binary patch literal 137798 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 z + + +
登录
登录
登录流程说明
登录流程说明
小程序执行wx.login()
小程序执行wx.login()
授权失败
授权失败
授权成功,
获取code
授权成功, 获取code
是否授权
是否授权
获取用户信息失败
获取用户信息失败
获取用户信息成功
获取用户信息成功
1、使用code到微信服务器获取用户的基本信息(openid/unionid)
1、使用code到微信服务器获取用户的基本信息(openid/unionid)
不存在
不存在
已经存在用户
已经存在用户
2、判断用户信息是否已经存在
2、判断用户信息是否已经存在
失败
失败
成功
成功
3、新增用户信息
新增积分信息
新增积分记录信息
3、新增用户信息...
完成登录
完成登录
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/api/src/main/resources/docs/积分系统.jpg b/api/src/main/resources/docs/积分系统.jpg new file mode 100644 index 0000000000000000000000000000000000000000..71fe676b1da15362645b3a36bc90963422dac053 GIT binary patch literal 75597 zcmeFZcU05O)-W2yULQn2x>6-H5d%_vR05&`Qj!p=bRiT8Jpp<25v2wL1f(lPLPCfk z1`MGny(2Y*`cOjez4LMIz2|=K`Qtn5ocF!!yYF4=?yQxWUuN$;`!_RtX3w5IIqW_B z3-H@x9X%buv10(hv7-;*upjUcz;XO<@V9S{BRFyD#NXh|sZ%FUojr5z+}Sf{&z`$* z`NFyLm(HI(dy(_vrOUtl#`)X13s<Z|Lt!~j{S|2c^yY>@8}eN zU;^{O#uw7Mt|=Lt+Ihc8_?%6VxPz3GdZ-;5o0-+kcT@K#SjWuX$@$MORbxv>bqO5F z@HbKZF2_;IapL%?)5lI872e@IYEF)0Cppfa1aSPH7)OF|o;Z2shN97_`(9jExp{7z znA&1v+eMW?l%KCZFCF#)E^r*NM>;At_-oanWh%13a;yvMU-=LF)$FLXXkJ5rmq4Z-@C^-{OUXdg(_a^5_JbN;Zmu2z)E^3~^GbXyfTw)Sdfh!R(K0~R9^udTmswhF z1b)^dt)y&g_E-0`JnYdoWRXx-_`OuOr1UH-Y5fK=8yjdkSw@=QV!Q=|pv4_~mylni zPOsLs&dD#X#Wv3+I#oES=4DUKbQG$xWA9*%=CBg;i)=Il2aC%XFUxb3(Thv3Eujls zpbefJEVF0#a1{lN$6C>;AaNa9p$st#$2AmF_d=-Qo>hq%b1Y7vupu>4Mu})j{iDvj zsVArf?41eEtC4j_fw&v%R0X5K$Xwy4D4UzYNj4Q0Le@Ri%>LNYmrcrf2@#C4K+U^? z)bc{@DD-|$nPoI&OZxtR%fnCY)1hgec^{KY$ZatR=g}vqjwa!GEHf5&v4vfUe4VTp z2r}E0W$KMp7sAur1%!AuBXcfQypC8u{oJj*T1c>^lQt;CEYaPy|40&a2i_8o_K`(=-@6%G(Z)8mJQI_1m%IeO*X>t96?yDs^H*UA zVLrs^$seLx@uL+#9S#AIzJumq>6(x?4F^Qpev&*OY{w+x5O6YXABNafT+8J?I4`wR zz}#^7eq3zYKxU7}aNUYLSJ#mW+mg+gVc4)@|N4Kj5{`2T_97p!zo1FeG8RLWCa%#C z&lpXzwzWoXy4E+PN6~Rbz_kTXh2y(@9ZJKpcC3@m_~ep|H9q_MacUNU;Jgj7R!V5U z*V@qxz2o^VWNp4;-~41Mrs26FAG)_0qmxUrziiu+r|N(dH!e}pAeztE z_>rL4>lb|$8ah9%-j`MKiG;-J4Qz`S%{e@Ax1N;29dy=_h6e~`gZmBZKrWW`$F)@z zVV5L1h09_aYV*XzBpRO}bHwvZkG_nN@S3*v7;gEeGXVBtO08Di{#Ca*t!}ep`wsyUQI6jb z<{8GKqEcOMw@xA}4DXbDFp4OuuvVpf?5;L0jac*`8CmpEbUiby@c6LOtnJA*jqU5# zrwra(@32KH7!t*xD4(XXNx?}<1fhox9WL#HsTvU*(M@BGDQAvtg;&0O^~ZlVH8=sz zC>ijanyqN)TZ6^byIktp)luNB`;O$jGhKqv!i#JPm5z#QsFM7l&8&{mjLvm zt<7}5OLP?#1)|PGF8d=1gm>$w!e=}ixeOAWXdQAPc{>Y~*ig=-fr%$l)&x5{WFUs& zk3RA8p+%NIuq}dWOBUx>$m? zU9O$(iRQ?+NMeHa+B9y5);?KXjqsFe@E@az63wkW<^xT!divv5mch2->v? zDe65cWp2^N$l-Se^iW*1i5%~Y?-lVRK!4T)Cw zh7_Q+Gpu!n9s4xO4A1=2Rs-0tb#BejOWem6nkD=c>cVr6-g`;XP#kV zIk8!M5c%OODQmOna>w06K;NiDy?$i?a3sm8x%u5S@~@!SN8<>yF4`3Wf&5n6Fn@o? z{mUyA+mO!DgRfj*dz~%kLx91Nws(K=>~vRJW}H9B;9U>1x~vi!D?8rKo>o&;@*Ap? zcn4G^kX9nw;*U>V=HCQbESM*JPASGL>Q61)yLal_wvJI4ji+DwXm) z<1BCH>;>JTC%?SKFPK_$w}6+|kA1se>AyK+)H#@8h~F7CG~6Wq+Wy@sUypxR+{4f@ zx>>uVJd+*};;Ark?+wyZD`y?Js;p7_+PQ%LvcYUIr@b+iJ)nqnwi7K&eTv% zbSWCMQXXgs@ciICsP$$2^b68gmz~Sd5_H*weUB4eXQK@ARjsV3Nzi>gv0qjvVxz1T zJnt%6oX!;WOV;yiix0Kr;E92GH@wLaq{8aWY8>bMC}{;`*~IebT#^8UP)J{ZHrI?L zNC7_&U7v`e7Fjx^Y36n3PaFayUv0S7pbe`WZeKB_K)xDK$bOP#FVI$Ec31&fJtg?y z5TTZC0(adGE@K#+8c%yPD77w&Sk*hx+fsPfx=2Ar0+E|Oo3}yFtHV$A@Rs zFktg%tYsVSo{NY$;_vxwRjr9_z+(g+)`!U__Hx)Tn783Q@;UqLsEV-s|(~WcJa3<{^#6)3m5`zjIKEaQ`2anI0dc%wWH9mZSkUX%pK}*W>B*{FYIHCOq_0 zcQwc&W|Yd++Yax|9bhw z0Mk|W?;U9mhySWwkLbxOTwmQ(tEwWK9L;#;q7^i=*qV2b$~I>k3q~k)BN3_IlcTWJ z!Kam@bF+tl2jwu4Co8;uf>vj59rPElHj-D(9lWI+&7%^l1ljBY11%|SDsNPbgrt*( zuhVcc4=lFhL08f;$a12VJVrNz1(kH|l+8j5L9w;t z-s0Lwg-Zx5H}7af82(h~wsxPDf@){NtbopCy@=x04^>V*&@aOIPuJ{r1so{`UHX$V zo>`5{BP~1Y1^z@n4NG5TQX~nbGj@sQLVt0qdnYM8*1|-G2_iZ8F5PMn`;J}bthq71MaTT7`KNwOa5iVuRUtwRxABt^S) z+Q$@GW6CQzZ@~x*c<uAxgK%lC6D1Wpz!ibaeuC^h5pCd`yynT7+5MZc;ddshADS7(U!2&tYxjf*r{$^&n zBwb={bPeZ373pmc>k*49t~+C}US~agi&5fcb*IXzSZnv4UrucDH+k&G?J{k1X3o5! z7q(6!9!7p^YWFI5@aywiyU;5O^smn_3o2sgi7c{|W}(jbh)Mj2QONPk%*-V`{);~U z%dzSE4+Y1xL*noJ&ba|Vi&Oh1!71)D@0=z?_?+TIsIyD9 zv(*iQ0%;<4?L^rENOXa&N?G)rHH6zpNO~n`Z4tqc>@*VYvk+z_G#Kl?4Eu^2inAWl z%9VY*ws&*P-pT9EYA-RsGUgjvZp!M!P@B`^6+hLx)+{@3>zc7y1lDB6WR@?gZp4fB zax2-(H0Lo7jC?|W-oc2%NkW*+XlrX9SMkn+9$b{RCUHk>C>UYP9PKn?72UNXn4lma zFu>G=cT;hiyj9i{V#+-Dobm0|#?KvHkzGse@7x&!bzdq*H{tsxHal;$K=39fS9*{c zfS>BsuF~{PCDns&!r`RZQp-(iZ|3At`1F)~_mF z!G*T0*(-i$ILszW&|R95oP>K~rT0yw3ZU+JJ)r?Cx#nb8kb&v9twF(Os^TbB0h5YG zRYHxni*Ak2pLyT+Yx>n`5rjH0^iKGo6Uz}=A}x-h53UC!5obhEhMQcp5cc<}=ch-# z>oUT3{@bji9K!oM-}`2r1|oV^qFq6RNzJAa{+`@KAo(X(eZ{LHWg@8$mBo+m(l)T% z1TOW^xEkpYBTlYSg01}&oZ_g&_f8b9ZA!M{7VOKni9n|FfDMcM_v4ovziWJ|wPkYA8nVLk~6p;Jg>=$svYB>u*bs)%;kX( z)jj@ROOtO`904-?DpmJ({Du!mvh4q0Fn@yokRE(8Q;X|(3JGdm#6?6~80%e?4{BGm z5wr6NtIZnfMlyQ4PcOGb};m z!#G@#tVtP1x4>=1d{~{BU>creALvROVBpxQ)^0z}G%Iu%NbZ1FowXLT=B#tslZ=Y3 z?_(>;Xf_&Duja|$bm7YLi8O>`Y>xp7_pyOfK!EM&x~gxho=Br8y@k;uCLVV|zpUMw zAEEFr8aE8pm{7g>C(Ci+&k^kW$zs~908Z78Ud~H1iC_AJw9SWUX0!x9HeL#a2T@N?e+6qdTgVnbyca&Zm8__pqNC zlY!+^4onDdtWB3@S&*>MRKd7;>0-qB5caw;xwcFq&uRAhBnF#ihO~d zG;U^BXwP-~(Fn(A?m2rLVS+Y%6$~woH;i$8bwbh0e1qep-0Zcd!uLev4J!Lfc4$dl zBm;a{VIxU<5tS+GuZ~+@=1BM3<6(Ceq)i3tJKNVoo3$MBG%eK{;>gwA!(tuT2`-Lu zHCIrIS#T~Z5kwG;YslUHKBX&Cz>k(Y?%nS$sHLj{Vs>x7p{8B3wzn^G+%J?4+`R zB9Dnovc1V$=$dBv`!(neNWte%y}~H(p>%vFW%Mv(M%&HZ$hd zIUAbH*TE2M!#eHAxxc46h6yyi?e%eHi(u5AUjU`zyoXB5b?J~+bmFXcDuHcNNzi$I z2-v7$`Gsp#iSd-HYGsofWpWI6m||9kfFHew0BN=VtuORntL!byA+{ee>zh8&go7!= zKmlem#WC=`J(GB7ZA8ZDN8LN&g_o_g8w?T7sH_xpSl%I^9baQzV|bt15sg(LXc8$~$OU5NFOFVBr_Ri-qu@^qhCfe$QlZLx)&oTdiST#vD=O7qSy^;( z{50=dPsP>7+?$bqCI3QUzxYaB7B(?vEzw~`*Bt1V)Wx`I_-%o~>3RxbgIuGL30x`% zeEUzl>Jdq3pA&8^v&t0POijcAK`l0lwRoaT=aOG-%t#1Z#$;AvlWr^>RiJNs*ttVu>zWT${@Z}0f=tJY2iYySls;-KZKphCzXCnl*le>PG zJN0_7+=SPsAZvU*>aCiDAowv+_Hx^N2xu7FuE4@wf8>PBYHygzioItfhRRCCcnZv% zft#P1ttLaYtL@Q4lZ>|pT#2d>NC=QXNGi-G_`jfLv;Fv%2{rG`REP&ZA(0gfx&|ocb?2uUK6d|%Mbbjv;Fo8G(OfDV*hCkVClxNSOBu@#})^zNZ zgW)zk<@>0884#hOf+nWhpO9ZjSQ%2c-PzjusKzuxW!>|2Cw^k+2MYN;8l^%P1ll(s zA-&_+NUV3?xa;n`XGj8}I2~=QWV=?9^rq5>Y0mWSm}N@5d)nO+!-o=X4h}SDzdi)q zRg_3~N#j=T(q@I?{bYuQ){mWc_X}xacDPPfIj)mJdXxxqwj~0I#+)Xch8a)rk z4Yoj!M)q^o>_Xkc%cbM1!AiZi4gtEdMP=LxQU2R#;zOXW`b|Ui_CRbaEK^zBj>0{) z@NBhaI!WV8H_bC?-`KUJhpmHxdd<6)51L;yOHZQ}q>@SZ5R4>&VC^|lqYQRWd(y>0 zX;5=W^0V@~fl#Ec$x_h%ekFK|bUA1Z66FF(Kwb1p?R1fJMaMHD!@MX{*q4+J5CRB8bb++(3AxY+1 z%Et!x2P`Xt$=q2c!~iY6Hnia{^%HG5zL(4GA#|ZQc}Ct}iZ~URKlpgj?0T8Ad9BXQ z;EED6p*isB(-76=zRlZ@aw$p-PVOnH43oSQ7+(E+ElOGDc>l$^pOC!c@EWRsg6sC? zOyM<)^QC0jM@f~3093@uu>aiDa71^mbtglbn7wPmDFid^EKz^))*9wK zN+Q6Bzkw^g+q!!t7yO6nV?E?mvfg?E(%5K+<$E9K>?rZ5AWeEd*k;&<=FwWc$Mc!B49u$yGzYINPK#nPkz>{4cwT@55 zFFbSsoJ0+ga8y?dPS4$oPLJ2owxRJ1F|ZBI)7RJk?2-WlwvuNHfG+zXw@6q}X@L>) zS%0oXpLdf0pHi^&wFa|;Y8^UPPqaB!LEpiLlTgPW*TUc?!IYOD4z5(b66EL@OxYtWKyJcMVUN_Z9#@~ z-{k9+wHsCBrYvH`6O@Tx;`YQ_AwDsOfNz_sAyIArmK^8mjLSz0@1=`OeuOvvhy0I! zi_71TZRHUc`k*TYO~#Mod7%AYsnpH_%Ib_bX7ZiiQrW#{sJKTx#HLZI8Ilpv+y#RgFS0C3c70>Mr|_iVVjIJzPh61Jn(H_GCokQ4N>(MP+uxbC@N=)P`iB>GN=1! z9PEFFSXcM+vTR-jJ!xaOaZAPv=bYo! zgjoNIbb($H@@TtKxmtIcA#WO+Y2%2ug17H9+}7j)#bD5ka-q_|$&nwzKO&gQBpa{V zFV03R#lU7%S-V83d;MJ1&~PMr4B{!>h)msg@-H^t7)}W;yzI7C7UI0l)wQ-gzj$=O zzB-oi{yO>(K)!?4c7Vt)cu1cjJM|wP{#|`Jc9I<8Z`0(Q*yLump>}lIvG5$?d2lXSo(jh>jvK4~L(g68rkW#LQiH1@hZ7TdE>6sBKCbUv$b5Qd* zqv;8&B~4ZPTq=~8e($nf!@zL!0`F4hu@}-TOrcMf6>FkXSu1n4H>!)XN+xgoHfIm2 z2x4Pc+-0hJWR8|}Lkuh$rI6n41=|vDR3%^AV&`&xdLEE;Zgb4S{m}pkm4B{0%ZOVGICOX9)wu}EORiHA`;(k;eTuXj>8(2ZFK%C@ z@YOHc%arSAil#f@UfxL(k@LBUuXprL?ScWl8)*Mvki8Drn6d6(^(?wSpPopbJIF+( zXK0q~R|pRUc`uFE{hU-pOWu}kkL$MpJz zZ(EjWQ5#w{0r>`-);&nyPiCJ?^|IYMU~ZoF=w!kK-J&vcwQ|M4WEd3mrNYyt$~r?P z^2;R1&ECb(OKN_Mjws?$?cu_WeZ)>Ts%puZ8W=ZD$wbav>JDw3O9IkQmEGMY>hStBg55k9arw1%oy%T|R7r>stGkKcx88 zTlsm%5EGU8RMSU2I&~M?$(I&(Wz5(AQW4+x|3%O)QZOEr{?To)J^zAUef#Bd#cSj9hdFi33LnQosAp&Ht3PPfkc-0`Z|7VHdYqy`jak& zz^3XdAcjcV)?>`+am6ijpB4I(Bmr!7IEeTvh9t&p+(dEKiAc8z&+?~h0UrHpnp53$ zTh9w78gVukJzL*Xb7A&G48(P*r#>R0PT{9uL`39d{8(JfT0j4W7~ zQA98w`Er6z9I3|>A|gi~tD_VM_O}vlp&WWZXB---N>(p@2@m4ul$C4CqYPg!Wm)!+ zZ%z$1mNhjh2%h>py#6$_On~owm2NBvDwO``3p-X?a%%G4?cQ+siD_uSpjc{5^zwrR zo)a+9r$g7gTid&ubK80(c6_O(n7G0MOHIZ5I-pTtLb?fyHXu31Lc7jgANf!GChYp*iuV%88H$3Tk}YkFT1Pp~D? z9PmujNASy@S(wtz|hjq?kw&5obqJ*3)#YNQ>+wmqduoo zb7|2!iuJL*p)HFL-Ao19xxXQsgIa0o#js~@7wW1|IK`dMlrmz@q1>-7e;i7jqMH4r z>MXX5=eMl+!HcJ+9?<$3XhLmRHxll$w|k~#IoSiq!P|7#qf(L zvc28wH3`^Had#*gv1Oy*)RrKs5|h75?GQp%C-P1T=D&oKv1DtaWK4V3eEqQ163whs z6;fcju%NS3C@STedHpEXFXiiaVe-K4rPWdgLf5>Xby*tBpT;F$h*|+(s4pHopA99@ zg;>)nl_e_3A(h&ZV&BBm7OoZV2i6!yh-XECe3G9LG{HkaAZ-xns0z2>r?lGWbG@eo z7zF4chNawr^HDnPELn1gn>u!B&P18SXtOpa5c+TFSrHeCY4+if{7CGMJ503AO-Q!R zY54+^;1-y#1=O3MVDt14nzs?M>Dl2L2{&R**@Hv&K^`NGVR=;nXPzpzcV7tJtA^LL z_e)l5e$adO6VY62h0?36bBrBm)Z%@BkJ-BfLBt(dyN?d0Eiw)P)P?t&H!Zt>HrMDm{M!fH(yp2ratu>bGWLjScRxwFz@rKcZ;GWz3V~e91 zk98)Md|tLQy~*9UdyH7-7xo-UERiLi{G#2AP)kf{RWT?Mw06dafM%Jl?y4s%jQ64K z!+B1M0lfm&XWUr+%3}5AY1fz(@nqhm0@q@i;JW|sZaWDf_fYBq1$ei3LIl;;<6Sq^Esv>fgX+Kw%{+OX>|wjX+HUB z6q(~jl1%A->dR0+rT!}?#IxA73MX6Hjn1$8kbE=C6q#kdZLyfCN?Op#qacN@_pV^@ zyMw6V9CKv>kIM^|TxbbbpjfHBNya6c^NoQ@+0%Xo`!DcwRgVE9z&qII zA^6_Zug1}X5o`8|p}Od>uyHW*CK622l^{>f*jbf(MBZWeP7I(%Hs<2Sldy)>k*?9- zuNSSY^$j6vu7*W}{oiTw+UuI!9!%aa6fi->$-xv~S3_7CiN%-H@-M$j&R6#8L7sJ- zA}8z0B5TALUp6xa2gV0B)lPpJM|wLc^!JO?&w$S}e z<`H=IQK%E-mF<*d;wdW@eq|TgYq7R+roj)<@uLvxrXMXHx{~j`@z(-u&sMH_OqI0S*f-ShNXbbIT%r=&v#wq$Eb#tp8K+4p2+7h2tBKW-Nlk0aM}Gdb zsRo_XQ4iJ7>&z5O26~Eh!4abba(y7W9#g6yuNfDTu>p(b$FpLYF%7$CF|= z2Gf&kqVpmmE?75&@SVR-9>T8l#nud!KFVwA9(bARHTi*=q&M$ouBF_H$o=Ijx7Y&D zp3!`0>Eo}sA?lrl6?Ia3yYwgw`*aF z!31znd+)B)rm4qdsM|p%P^xT@4ZBqF`?{qE=gtrZD7o5>WaUd-2bNHi{N%^YW;7i` z7a~gCU3Kb5%y!{p8Tl9ETNi3K_lwWAP0DO+ntz+uH|o9k4iY+36LdEzz3ycxk}3K! zZ;Si}n=aNnx0{Nr&~9fu`wY$t(BoSoPfWBNS?bN6=PPaS7z}m3e`{L}KMo z-iVy?9X$u;3byPJU`{J~K{VOIwH^Z062AUxw$1;)DzC%RPN= z_+VxVcF-92mPcuq@uF#*w@JEC&?f|2KMVyMw$0Q=ZkrkW@jp5I3%O(9*^r@%I~m5i zw-wl6ipWjt2nCCS4Ze&vi;a(wzmDS%5?)aI>&HDtY)}hEu~i@jQ;MqbvJp>y!{><3 zu;w-euVq4&;@JWX2*3l|wP+>lCYv_I4u+R6u90r@YF>@=p=PlRuCcJbHY?j20vm#? zl*TB|4_I23ZhoV6)+Z-KK(^2~#Eic@fZe zij5b?cBZR?5>$mQ;Mmc@b+udFf;HM~Ro7fOi0euOzVMHWF0tDhK23^VtP8mvvrwxO z-NAY)ZheIN3c~q%`^-@lzv2X`lCr$UfQM=^4@P;>fAvd4@S9AoFb$)t21=PV*KDrXzZ8ON%N(+9{ejD}IU* z1d{z-1SC)!EPE~0(M?{t9GIGranecL&6kMm!x`OUKaoijW3JE}znJ|CUGh&+jwcmP zeC?J0JiD=))#VL~YrbJcw*G$195Y;_`^TC8B=n%kL(l(QP2bJ^?;~~vBlCd`=+U!$=J5C}r7DR^m(+hQo3u4@X9z%Yf zpo+CcLsowM-h!@OgVsCH$H5pW0u-aw0BKU6viKfHkaJ#I^X|isj~H=7yk6duEXc8c z*?m*58!uCG1{-;Sr^wUb-j3WF^+R1{$gc?HgHs?4-V3}2sMiJ4C10|PHSO2~;u|D} ziXVIWO3r&Nj|RBO{5-ND9phH?5l?I^0UMZtCO+rSeQ%&N6oX^yd#Hs?@6*?X$!;Bb z=8nk*y|Lf0+6{ant~!K5bp6nRRYPZes?;g6b-Y_IBu9(a%W}?lMH)wmZmaI8k)WZ| zw@1>ceBzg3nhT>kZ6bmo3Pp3g?|MKV-8kL_)c=eb4WkLkw1>C-#Wqx?rYZ1sB){WR7{HAR^!R}kRxHrTwYHf zheXt%nlWbLBSwWf8<{eesavL|&tw6i9fd_oB_5|$yo{Xd?SXwblLJdEsOb<85%>E) z9hLuA;pK2g%(dY=WSv4~Vk&z}RI0|X@Uk~L(Te(51*nJh3D^Jz89AeL2pLI&#J%5x zU6vmWoJ4!mER^rJRfsCo@Hoq+5f1^C7@b1^OEM-wk#Yq19vbI==D6{yb@Be3(!KQJ zc}3pL$eu$$**oXep8YSPYXFWE6s_kKZARVtXTkIJ(mOPEoPdpponXowJm+eMWc_9%KR-a9Vw8P(?It8!Zzb0=?5fvprZ4rYJgQ#W!mA7_V)O6*+UxVqph zn^c<0(`O27RB z&T&SUV2_1$mje5x0lsN@$A}sHUFeQ%P%I^EvbK)WroAvp6YjRwy6I9e7>N&gbPyG+ z5ZPCD*`{KXlcj!lUH#r<*?{-{A;8mlUp`2{nLx2geApnVz~w3Bf+5TL%zz4#eI1UR zXw}H9KvVF_k(a#&!i7^k@W76L8M5h;m_D_ar0b^NCK}ZLg?uJ1J3Z!`T!q_~l&AkU zucI@j;sFjXJGG=@#<7T?w7aeId@{G5?m}PQ>LePd)TxhdS<(438B_*EcwKvoT$Ryc zkr%8TY-we+`FR(5dp;?}e6TNeOx8HO6-g^3+A+kNV=&x9V+>VO7*Gm1o3bKr=jn=5oLk=n>z)V({v*W*%Mh`+h8%RMa;EZ{WeMI zd@3PXtmI*iZTdA=3O{2udt1)&X>ul**HzXv#teI{ONZJVRuwX01^T%tJsbZqvEXUf7RxD?E&iQ}~c^ z!`c~zOO4Khs+%;x55`h^l&{&0s9Q7zcsPYXX%*7~qhr(aP)buw-ebuLFP`g+6!Y$E zDD799Ad-FsZcbPM0`ImQx1iY~AOUVBdhe60tG7VLx+*lT(7!eYD64Y< z1|lFHT-SVTYVw?$dz8GnKB~%Q7D%RnHm1nvxX`t30?9hK)_Yu{#G)&>*m2NvR(0J&N{82OJ3wyLV&o}AB69`wM zi@nokxL+fVsH=Y@5F#u0^aK;1N)~tQI~zBT&R8}(u8`^--PBLc&t4>++jiF%=rQXc zCdZ&Hlv3F`nTq-7)E+$A_LVV++VAtd)Cm_)e;Xl)kgV^hw{tJdiHwtVUr#$Zxm!x) zdIxG_3odXIm~x{-{)nbI7Rl3;7M{0i^~h)gc{Mwwohs^2X%IwGnbGh@8T4nUDjq+X z_1%L`%~b*Mz%&t@MHN0xs7>330=XNGzBx{yHxZQy0s>>MwMvUS*Rd>XZw!hVm1K5RAkoSRx1(y7GrzZ|_bP!R_U!-(U*7 zp}XvTy;X!IG{-j%mRwR94GAxH4w|=t2ikKMSPx$^cwEFJw|cs&C7R#H--097KYcCCRB$ZnMu@-W&ucD=c2$o* z@;pDlIse|YkgRq7GQ|fWmXT2I4cscnndi9<$)8A@g~yo{i!Yj`=3SvL?dr-#a~0_@ z{=8IhTJec?!)T$93hj@2hh^-{-2o4-voeH+JKn190}$dlu=&}XI64_Cs;ii`Cv`JS z=xzi?8yUo{`fzPeTPG8wbtd(OO>yq7Ri1mWbg%8YHF<5MtgjYXy3{ql6uy4_8gn9i z(C8=AEgBC0qp_@cvJupCQ&eG@Xm#Ky2j(eaV1BNvb80%nlUqu8Oqf*Hs>uXx_Xwf9 zfpu&CwAK;QNZvrHC^Bd2?@P$Jx+e!4$%#`y5$abe4wJY)4^sGLde7O``R^G2G`-Jm z_i!_Nih4nw#9yVl->n)G^F4?Wwa;qp6G^Mg~FEr^W*h0_l5ODk0 zzZi>kL8BG=HcbF8(TJYuI zczDs-tXN3zMy*43ePL(zJ84ljgP`9uJ2agT{H?7=hjJ06vA!xq$ZD?@+V#g?i@j#d z6K;`t>u;}myB3mT8MM3^P^xAra5Kx%RC~_)!N5g}lvxkmi(Mx=xpFMHOQNaVyyKr4 z7+p1&?>>eYYQA{K{oXj$jw~aKsfs~sri`~@nq@^?Prj$Y^a4VJ^b_1Omfl!c(-gEk zozMMZ_u(Lau4XHWGPk?{^p|;P&+&k@4JlMMEq;=tez6hig_|pBB6Vd((UnBKpU*MG zugJcLJ2DEpv~@xC-L9Jg55K54?L_99^hy0NuQbPX+((EwnX!WdM^S}3{f$J84?fS~wieU-25+{3zmS@t2*f|Mo-{Chd>uWe@b z*YY127u7(Y24AR2;nGKlbj=Mtc##=L3l=B4GVIWa#WZJ_vZ*eRRzD6_R2EKL=hs&{ z*10FK-x@8z3C;0KSD(0?d=u(0uV{E{ zjCrf_ef6&CkMAvzyDR0Wg${m~e`hq5g#MUTp8KV?wua5UI3ghCY~DO=AsD#N%PBMf z*_!QW9Ld6cC=2H@zDt6_2uk#*dHXSBF+IwahW;28yY)}C=U*-Shx5{Zc=$Vq|Ee0h z90Htb4dZQOVi|TF3L|#)q@$<^I_;fD)dx$1(_(R+{ScyTi}n^Vx!crmbt!m6aXP%} zSxxbX!MA528*%w~xqtS3rd{3G49u^t%gTN~v2~4^+cRXOs(qkkD7ZOTMA{~Y-05gN zC28&!8f4Y5e5c=I?&YJMUuxQRPk{QB;QNdh{qQ8X z*B!^S-sZ}|4Ji1^&sEnS4g6E1Fo|~{{`xeaX3PA?O25yYP5r_#ohs`bGBh_MIMO|U zbNgP<_IT$Luw&9RKh&=?tF_s`goPmWB;JIr8O*`Kk5-x`RIL^N74dD#Rm2R@k zxN7=)^NHY~4PduL@pIbXB{le`!i74iFIyF3T%iUqj8;M54*kZL84oOnD3+CjcC4-W zxXTUCUdwwlL5pjQw%gH%_}A>0^NH?>p}xsoCwP>>rZWuqyN5Ohc+Rdopw?XMZ?C)4 zp1D+jk+9z8$`GEB<}zWQ{}s9IG$QRA^E7>|0~C#&n5B!u=;l3&QwPj4h*mqHz`!Ja zCH39UQ>UEOBbl=gJ>?v2BWm!{wRv1a1<5V~g6<=DBD+<4@~_ktLiqR+%Wn|&wC;<| zOBTfpC?l$!PzbXpUMUM4DO&+b$y9DlW}G|m6_jctO^)lzCv5m;8E6+P{T0KII}a)F z^arlNyaj@5MixhiO#zSvPvxhHCf{VC!UaE-+l*_~*5Qj#if+l6B!wN2Mbm zB?&bsRT64KuVVqF1q0ICNGBnI009F8lomQt5;}+>bVBdNFZYl8&AjjL-uK@7-S7O9 zz0cX_>~nT@S!=InJ!@(I1@pV8L%e(^&&*njS(ucWwr~zHK+`Zdm@WN`rF+4`FS2(9 z(jZmVt`>0wP@0k62Nc{wrHCe-M}-92j!nl)H!5I5{h-*b-oh)e)gb1j)BCq9zDKOg z(^+OAe~9+=(%{J6IG-Dr%z@iRAEX~iGt%GW(^O@H;&f>8+UfWiG?W21r{o?&x6KZ< zFeF7o(+(t}YtAe1_=Ovzq(sJ?c;*3BIEXr6AYva|2jmPUwPhS}WPyxTUS?gkE`V^q zrdV`2m4m#t?zS$JSQ6#zB6#`~S^H3CELIOo%$mtSsf|E+RF}}xbw19dLO%jL9`E$M zI{Tg;i(iVz$h^LoAD%+ew0t8Ou z0%gI9mOBzTdr0f3DAqWh{=MyAEF&xewoOSw6W?r_7KPu9_2E$VqHIpk!TXP4jhFsx zpw~Y9!B$tx<&9kyVSvON*S!%Ieu^mvzV6yL zcE+cwbaD~7d1eg76-|1AuAMwTP2pO;(=Oj$fQkv1G7 z6GC-SJHQpc(Ol01-MrOImG)=bPgFwWzSQ2rwE`P`5vMg4rhk_2unDj42)khTdux9+VbfgW>iP- zs9JGfm4$Y=8$Il+QjRAsC)xl8k^mFEZ?TrNg3ql@al^j_FmX;ukc<6JM)NP40(D3P z5dS>~EkS*`h7Do?;d@h~c?++lMlpAC2wy(Q3nW_)5)jVvbtej!P~qLK$+BFzxKo^+ zO~$suxyB$6yUIRD4mOJOt%SIkN3{f9b|vU@^ev-NhL*D=6^Va4f(@19bP_DbC4FoS zXf@Fg&dAp?SB`e%*z>?;`!|)XMA6m#_LIG3y&Y}6km<4MUd<6@GEcHA1$Tmaq3qb} zkn`Rx{YpfI=uq1Z#l}g;OO|qJLORSDcJQJE1nn`#@HMu6d0G5u2TXH+bDt0`Y*QhY zBrkz!W}IND{?4!fD8o>#{M0Gh)p$1x9nV0D8IiwLi-Kq|jBqDL&a7yHR$}8I(&wYF zjlt{&s>P!dmDVv9DGCOKFR;lYa)kD%kSFl?)rv0)*X%!HIgYgrE(!yzXp6A|Dh&?-(Kl806jh4PLk+Iy==fB2?^%3p+x ziOi3`YI>fyrbEz))6!{~UWTe&)imVf?zqcD-dnYGPOxg9{A|`MdpWc>ix7A$nY#!n zy=V>%aqptZgyM}^u9@#phtS|fw{y2XefQPzB=H{BZg9&9j%|u60thosrT2@r65;py zk@J%3VV5Fhx-~Gmz1%W6jXXF?U=sRzZK*Rn!P9TGsM2;YeDb zd)5rfy~z0G8volV=~D-nqz|=JDiSlSZ(6r@O(cs%rr(5S-gPmJXrg=fvlPC4QG`s7 zR`s%sZ=s*MTZj1PihrMFe==VPn;bAXKJ$3TmkUAYXYIciMv|J|9kFOXY5sX-LRqX zsqXs~i7|i4{Qv&WY;0%F;n(s}ADo{-073obe&Q|Mqrw~d3SxtLD>}|p8Lr8}X{Xnc z^DGCj&f$5G)jkQTei2RfI2?8gQ}r0Nlm0zm$h-HI!f>Q;VwYwRFLMU|Y2#g;xQg^p zBYz@Q%HFNR=bY!qxFOz--I1tb{(#JgNic56=siRup+CtX>dyFH_GnvT+wk}nnCJkC z#_P5E6&(0d5<;B;F_}Y?t#YH!$aZxx%dRE%Df3xWdvry|yV*6SVEym2%na|bpO3UA z(){$dTv_ZOQUQOqE=o1wf@p$qSuyp*R1tJy(w*^DFYDgd${83cZ9gmW`Q61GSzwI^ zOt)~z6SAy)>hT#>rHwAUCes(h)xzr^E5+%p7%)fT*^ zL!0k9n8Xt~-Te*EtWrV%Vrkm zZzUE*^5wx5Ari_1aBSMLQ7O&Z`?ooTOFlep&TR(r4Gj>|d|>I0e`seQST%G0WUi;R zF{AYS36!=i2q>(P|2f>6g)_G++bSM^@&-sCTA17((ZYrpwxMyLX@3@1QQYUZOmYsq zre0elxm7_-Y`hR=k#%A@F}FkPL7KM^M2>F@lNV#0;ilPt@cv*c(M_AGFjET4oj@XZ zX9%wQH+gW&C>_NRiFk=4E*F+gyO-xh3NW<9ijaKH_ShE;`Wgt%09PGcDVHy&_SbaD zkK&p5#9SCIGF^l-?qyFTxmdVHON6s!&XVfM8-77%bVreBmlhyp$Utv&s;ok7CCka6 z4b{+U)s8x0aTQ@6?gJl;gCxs+4R|0oXTgEEPM1w8QuB#5t1i+INp@k(IdK^(zyMoQBPtSVn~BfKMufy~oL zsDE6XSfv->nk0_IRDbtPR^gKUz%`C^64QvdAh@{wv1*YzoaBJeLU<YP2gNWLlX+ zH7>cZVSv)45Hwt7$ZjX-w-NMClD{!#Fp`>zfIMA`X;K*qWLBqgMQ z*hN|UXYmuHl7^8yB>#?TKe6fG^6^=ofWvf+SEDbUq ze#^*0JRWdCcn512c~UABlm`KzGsXT`sQ*~vEIRC2>DJ`3os{7ks@Fxu3^A|^kWx`p zM6IH|>TpW)uJMC42YRKADQD>Ae96bxyCI`VwKItufzlO#yv${7k})bMg9&2i4qrJm z(>V2n;WKgg?6bR-+84rN8vfps!XAb15!%i&BNwTdCXVk(WFn8I(_%qL z<#h2LXq@@R&H+4SSRM!AOX{>Re-;X`&LY>r+Vw1EB5kD>EL0@Q2=N;810;5Ss{JUX z+S6vCDgoWDn@D=)5Z{eZdDAD^FXpnMHRy`ew-H#-6*1;1nj?ZZ(Y4=OF~Lm(AtnMO zg}0Q%ilkUa@2jM=S|_q2S{YgfPJ%qVhz&;a@zzP?_=9E?d!3u*w{T(NeG0Gc|{GP&gXi^Y5A5MOL_Gh)qW{kB5QOoq@UXp z{Vr7ENy|666m4!GYn1p~rg&RA^UQRE%m+0Rh%pK%`$Ar>pbK!TP8d(>Is{*!H6iT? ze_r7zs>`LzDuV{CX!`l7jt7mSy$?kCGt3lqfZewvYR0Kx)4ESrk4y_9Q4k;}Re(2V zV=kzzh`~ZJn11H>NS#l*o>giuVpXt{mloo8CbX&S{%@uOrIH;p&^bqASD7BTRd0oe z2$BSmQ8e}VpH4p2PNq5JTfJ6MCtn5(;L<9bw?1ClFdxPp0KYRtVj}_8F&a!;B0Zab zv+;TgK5KsXBBxj2PJUEVf1#J`FSJ&wqfWXbFK$~|Sc?b=r*}xJssH>_=l^I%V;T}} z!$Z5DE}X>qbhp9dTPkK8SVk1N!H3O83&oeZXEc^5Nz!@PyArJ-qshQwYw`CyVVyE z3|r|#FQCvLIxM;^n#f5^UH;8_a{E%1F5Nz*ok}3%wnv9N6TBA1;Sc;i^-SG4&>iq! zzy3V==|@r1o=&8ZtdbRC)IP|e>}McS-$i&dIBkuBNV;uQ3ZNoxqX6%y|W-5PPmY0CInKS2HB=kkZFJo3*u%)jf#1T-kr@H2dXAp zRe)OrYIx=v>|Bq0Ou46gVq{c$BA;dKbU*;HZOGn3^dAYCjnYr9_&FHPrs9`E> zIyJWSX@mXsyLKGDx=DJ8ALnrw&NSuO9Nc4u?dL%mZxePU=UgvtnN}$ws z=0!zoG;1Hiy#QcS^87+*a0iq)s|bf-rxR(ClLzauk6@##s*o&IQcmA#ERCfnIhom<+R znU=Kj^a85ANL=JC%0&F&HA`1r&Lc6uN5p*4E-yaqra-fCZPw0iDyNc7c4)NWl!S7Z<0y}ZB zDttG7!fzZ4#-;@M*zozLi;j zE%TE}+qnt$e*p)>EwGlHFm2%>yDF}>sOU~h%utSSVO?vf+5@X!PeI1^m0u)#1*lk$ zkS7QXhicKuh^hF9+qk#nRjnbE(~wq9TOH62j0q`MPMpiY$L6M|7%d|P% zq!zM>VyOELV64`z5|1Q-UD+u%HZW93!uInG%VRN$30W`Lw=bhupF_*iJi{B>Id7jW z3QaH3V!U(;?#S%yD%Y8WGFCS9r?*_8M63aJvHIS3)i7gbo3@CnjZdUXedkQs$aRav zU~E2opG7V$e9N8GBQJ4MaUp@YRt=v#oDo75u8KApgOHT#+YpZUk{$Se^b(lVb3rU;xyS1)= zQ$dD>gwnc`8y$Dj&a#~-CH$@Wzh2~@Q((C%-_hz>^3j04qIqw~7;GwSchlhS8kce4 z)NWbVN#Imv^FKm8|M^k>jr~`&9~(n6$Q?;Rr=D7nsNhq zW#frkru|~S^D12Ft--yainH!2J^@VdN3Yv&hclHE2?Zustud2Z5S?ZnD!Z|5=kJq$ z^a-dgaf3H5eP~V%QSx;sw{`gUney#mE?2GlJ2cG;CdUyA*0E zbnZj%=TFQSXX$6MHzpTNz}?S;VEQsTxK!TAc(CquVFIURQ3*mqLK@*4F?}|=XS)#T zJE0e@>zU?s*Q;;5O}mONuyQ{Q>s6X&A@Zrsf=>V}jcfbCX7L~p5#Q1}24v@nZIqB0+%@_T8%27OnW@I`UrSuCOj5}*Bs)>viftBw z%C1(0-*s#oB@gM)oZJsO_gcNCp-!tRiF!+Oj=L&v>4lf@E5mVrr<4hZvL_rN9& za1|^d$X{b4G0$)iv@Nv595p{q$MRJLiP&1S!w<+$LM&y~l8{yeU%F$KSkUOMcHr4U zSfR&x>Ku!%#q1R9)I+yp*rFg|U|inIX^2}~?Mr;KgH+9Hk)mN(eP;-m0vEACZ_dkQ z9qLmM>*IB|9#QKd%FvdqFLq0=qpl0d6{kY(x_n<$wDayG%;ViDa`Xh^BF;Hymt@)` z(6}bxedR7;JAv=2?=nwz;yFzjkX@p^n`ENXF!AT=rc}|`j^?Ntgz^uzTo0kEDu^n> z6dyjm%E{`;WSq@|@l{cm`#_@q*yXa;=%xt~)v6AXA~LuTCO*`A_p__#KaD2Nzat|6 z0@8=0Fxx+iLVFr}{;A-9l>J%3q2|*>(B1c%({R%?2l^T@isi)dCr_HuHJZy9%XT`I zWHpsNgzjfC^N%GI2nxpAd)+6rWr$h!eWCndyJW0>)cWi{dhkD=UZ6 z^CO0$iS1LDJJIFft7duc{8q2A?rD@L6?=rTvG&_wsK3u++ zzJ0A&F-Ees;i*^`oS6U7(bn(QS*|Ni(ZdY*ZLlnT^~mzwOz?3OW|e42ePUf`z3D@c zIsi7nLUikovg8#C;skhX^v;b(De@^xIWQoBtU18|1rr8#b|%*Ir;au}*_E<#?sOum zz4xBeBghk-5*416^HT{v16uRsd@H?kMBZ3LP9DO4?pvMk@zXvf+`BeVaU!L^ZRrL% zSz*)t9z8Eh*~el`;JmFnSRT5YXR73*w+zv$YmFAkI9EWSp5)n9ye8!?JSje%B)hfx zv~$dE!paBGQ=gm*N+8UmV(~D_bIzrvkU=ON3O}~m*ES$L^Qy}0w!v{}-5&EM-{~+$ zZOL|(pyLg9vCmyykx)wR%?^d-=njBwdD(>2cm?Mjr}CR{-WpmvV^gyEi)BeQ7>+b( zHXVj^pR;Qcho|!?qdPmD46j(_9i=K9+shTqmAIreOSd?@u=sS~>m^9#

Qr<5h; zBMP(pKQU}oN*bol_I@0aii+^_C?t4qIz(Mmyz~p*fp8C4ra4c)3IB@zIviZrP_CUz zR#=M%avB?3j%7vGuB09@^`T?i)`o&qi5ulI%6zHGxA+O>-rX9AcFQyN=;yZQQJPGn z+ayxqHsC?>EmFQU4tZDJO3}TEY2xEl?;2dW*axd}Omu{E3C>}!s~IoGnbFfr4P^u# zM|*WS`{A59A{~aUZ7xp9GbTb61uiXP4>R^|v3BgS!M=dt!mGA-UY7s<*TDEMQdiul z_)PoijHHU&9s;**g;+et6}@r6YWdzME#-RWLjIf_AWj>RN$#X1%Ilm$%S`ZR;dYqq z{fb3qZ)Kj30C1n_E6(}wd&5bW2IGA@C4jv1V-kv4Uw3lBw>JhMN88+mF6Fa37ku0^ zmQ!^SfSe;t$KP0#@M9MIoa8K_ES^~%T1`u_$g1Y6`?1!Ov{G^CABqr-g~lzSyoG0t z76qF(+(v&bmNY;h@x9w$R;M|rYb7b)^YHKpPvlbLnau$f(#}Em_3V(qs;&@zC#_6d z7Y9E{*l%Bw$SZ=$9NjkiFEZvwF3V`erGdwGgB-$_I(v%PkX5EPshM#v4nTi=>2Du> zeJz&6rPspeuORg)zn<1|MfuLIxKt`1z#%h=ru;$MFIU$Uvu2 zLQ>kftD9W%!LAhMtPLOVj-nJ|hA`4<>F6kO>oyw_|K+jIM1G@g-HYRg!(J9qiUD&? z-!`Hn^a#36qSz~Vw?Q}+uo2bHzl)gLo8~l~9)%h`AE>f%mg^%|$i*hu6@6G&*3zpo zoKULol>#_IHrxG;}J;d-zmBAS7{We*5t)Y{gx4Hqi7;fNfMmW=Nb??{9(k zSgv^+`a%Ln8-!*|RGs4Z+7ln{k7@P25V?fc1^V#`Rzt4zF?2gUsb!oz+e#xmLupuW z5_USs^MkrV5&-reY_8s4Pi1)6;~mPpWio}Sz9Ayq7~SM9dspz6_S5m|Bf%OS$ykYs z!K`tdPP`a{plFWM^x*7LJB1ldB*Ot`;l)B)cJ{@fTCt02BYFuFm$Gl9%*${|lKPc^ zNE`9|QQEqA4wL=Zj%^@Bn~;?b8HO{~(@&G6^6{z2+NqwgW3=M51V&t#r2WGauI#m9tw}Zv>FQ?PEltdwBy{=#NDYe3LZU&=u zM?qpi!ws#}M_p`h2FiUmKAkUYd(w^@%IfC3&e~~+x7@5hN9I^$dc*31RT3QS3&ZNT zSlst47WYwK{lBe#Y;6Clb^O%?cdc!FdDymN6!F2)UCDJq*cu`sPp~5zSi*T<(=7cC zMR`NiOII3jTH@tM{5vs416@ykmm9?{N>Mt!O~A9 zadU6?XIYk+ztaCKr2MB<{D&8KMkJGzuRUsoNQV-6K_cEX$&o~Y=4Ce)NiDhK9W5sS z1e#`RKi6eKx$l~GlTQ=@#jUE%lcfO&d%#bX2~0H?u^(C#Vf3j?zBaZ;-IGCn$rP~C!e6y z0AIf|8f=nXTlYWW7cAr3S^>sPxFW+Cv$Ii@!J@xd|6TTBxV*a_0vd3*(xQ z$Kjvum(ZJ*QV_Gy^bk-OAIX(UMp${|0UdY;z`NiORv$Mhn5*q;bc|KgpC7e47nkl{Cg#j zTc`b0Qo`vm{>g|6srq{q|41g%lIc(HOqro)1&7)TpUM2Hwe%!50l@Cy>Hz`b=^ert zVGMG6Ej#tifa>72s|N^{DNsKNcXniXYDr2U3?`d(6rxsZEiY# zit#o;0HCIyuwq<c7Xs&}pT(xXS4M9b2Y3{?R5QeO`=cmqqn2eKHrQhnC zH+-?RBKDvjC@;(EExe}zk|`S#6jB$P_wscJ{xo(8Jc#%rDvdH6L9+Kf}lP=dotz^N-KHnkSTgPErNTJj#Iyv8!5aW6>T+AP1ZdqSww}C$duek}v z(Q7ngDBlaeZXNrb`OrOmtIgb9nuF81{sx%XE<(2x#yTLXiJiT7Rt35L82RHr>%#xy z{5esdrb1r9ChAx!F8!QW3^q)N!`05G%dsW6pXL`<%1d7vBMB4uOJdFE69yQayt&ps zB%_|KY|T-;gXBue1G)DOuGDHN$=7^9v!ptA6mX0B0O7fdh+`W1Lpk1@O0SVCna@-j z$Gd~Jm5s2Fn;D&IRy8NG7sh~)&n-KKcT9*jAqr%CgbqE9)HyOf>0l)fkgAxL;jj~` z*iPVd&n>FL^Gc+}mvl9##Jv0!nJ#BsG^@x>%jAETu~C<9a`nw3r%=MHSgf}f#LG_x z=ygM)zfk|?6?{t>aqNt*GMO2Rhv+S+Y*P4BmNxwR$bhG}ojt+UzKZ=yHfhTPL>Ik% z;jLv|k-~6J2dIf6Z$?Nd41)>3-j!g!aF$Toi}4sLhWpJnE#J5^^_DNx96OLIxbKMd zd0!>wXP>B=OAHpjSa&~yw)DJUv})`;7)*=p4>|Jqb-bH@<}q|I@ka-VBg^9p^yyMqGk zhzBk-isQ%nm1?0T$Ft0IE%Gfoin-w!a$8xS8kcSpj7#rV=xJhhFv(HxNZxT-v~5 z3Z*k)dN24F-706EXfb@I^K@i!XGVNK%RyM=rV=SkR=C)S%`DK$w@Tl{S1X;mz2dmZ z(aeAmttk$!0G3-#7N?4I{5a^qvsD{Ef|3`p9G`XJ9W-QTmj(N4Jo<;l;D5OU5o{et zD`@Ip%JXecTH+GoPF8-fMJhd9a<_1wTgG7WQZ?aW!m{Tr8pHTlaZyfx`xoQ$uS*yI zCX4`XuGYF)Z9-36@-zM_!Ghu06b?+tXEh&_fAg~JQQS~cNn8+e@Af4>@b=V|%a|9o zRkw?^>;*9QO`6$C%oegDV>_(6z5_9zIxWt2jCGYKnyFG9wrY(8t7Iq?qXCN%(8#L&(7%HBgePRDh6dR zmhCf2A~{!C=Fwc^USviQ9%Rz`_jde$NK*rQ!8OPdYTLKXF-IjotTR%uIAxM zcC*oof!92dwcYh!xJIX`AN8ITOARzkUJ5HjhOH=zWt?}j_o68%#ZOWp!U@$$Rb6tLqDC(#>LiQW#bQC^ z7&GMf7}{u}@+fO8eP~8^NrCfSJaxf7Xkt;{?YTL2PYdI#Kuzqx)a9o2um`X454~J; z>dv0bqi$x}56JuHpgw$BTv;6Vp9vv}CSqC*qFcZr$w4KWFXwTFv!z!d;_j1e%nj{2 z>%zB_N|7GYmf)QwBrHKQVikeqX_uC}CR&1@BaRy_l2oZ?APqA$_*N4x?2#vLsCH1l zcww~f-P@&SN$xjo1S~!VrHui67ABgZ{AI$5VPt1DSzpxq?Q3^aD=MBJptbM@B#0Gd zJ=~t}N`U=N0H5;sf@o^rXY4|r`^%^;O?2trpC;=9=2OL6E0xt(0{d0>tO7dr-GZL! zSC0q;8E7WytWYeXT6c*-Ar{KRR1es$FRG9!p!<0R{NnpT-1|bVP#qae$MJ7HQ;xR} zOmvqZS&9>v6C{H0I>ssi)BG)7UJd=R)wklhzhS9g=r0}?4^us_x@*CuQ_BINy)Im} z*TswsvX;0EK{l(w*Yu~v_hen(5R=EMqDOf5rQO?m1&31dPxaX+@{bbfl_mIh3%oIK z5NC;|X5a?-i{^wJS)(E7MzM>1VI&Pd95P3De=b@_Ax0{RS6M~DmN-<;VKbc+c4gWY zZccRiWNU6#OZix!D_oN$Q>`;(t8fDSinFP)FJqC}e7+>=1UU+Wit5;@ZuDy6>$A~b zNCNj%9fui}z9;kfbgi793X_&1(OQx;7k~q!iH?2}L!Ouu-bjj+;YIMZyiCwgU}A|b zY)4x;y0xoXyykFU+RmPwNAU|kNKqIKaFi!NZza5XIGw(yoT&oC_JB0 zt_iQh$f^^6MoMR}ST3uW9%9f~KUEQ3aWoGVk%JKjY_CP1*eRio^JYq9^94#d@AoV6 zw8{@CXEFAG9NB>BVDapWMk%S*ApS|ER)CmI0=R-N7md=ey_kW>ei`=j@$V0}8dhD3 zLtlM7RKCPgY5v0O{VQ#d-)rz*>1seM_Sed)Cn(v>Alb)IGC(>UXKyo_IS~~#C(Vy3 zRRj4?tFVugxaiT}S8&zNc2)(omEERh--XqzCs0>8j{9oD_jU=PmDvYPyIPCf^vRZk z{;(zXfG%%%XoCy6+t%Fg*#o1$UAi{GS7aL(#J!};!eFV)Dhd9NN&mkCaw9W#YHytay_@lXrwavvqTZeG?-Y6bjw~o0 z9RKjZVDS}8?|nE-Z?zZcsCF*pBd6uP5LD0n(RNl6g zT=CLMYvEIi#N5bMZBvo(Xl|3svDmKVSlYKvy?vXeG@Ox_a>h{mB(075!sk6;LcPa; zurS<(E11#;aQs=Zvi?ONJWIUhE@r;7HFFSjfQE!mt4m+nkIU`oG(YGkY#)Eb+oSEKv5VqD@Kw*OP(jEaimh?b8iIRL zC!W^0;3qF>>0F{WUsZ@Dpv};{t@ZNsp=4p5UIRheL98<}v2M+JgxWn>b#Ee=RvP_U zHIDd*r^w!Ixcz8x?3a?Lw#@n8%Q{Dglu66xEO1#++9Y%$EPh_ADea3L!MjGfs3smV z!gp2rSq1d`Z_$WBkCIvWI{DN^;yZ>$q_Sy8;JZ5Eo~01g$x2uEFI*fClTEC4?*syC ze4N=?F$e*qc)cHN8B0yP!nG)-@G2_|h;_zG4sGnj3zDssIpPLkMC$eFk>B>lBS@QR zvnxQ}3cYeu;&oFk>~Qp=ctOnW{#;UZ-a>w5@z1vA;NF5Mi|3j;G(%P9pzWQ>0D86x z|8(h=I+m8>@LK61%EDH#51Rna7S5E;#z*^#-_DE;_Z zNX4w4(1V~bV$l82>gof*fvM5V$FMK)S~HO zbBbX@tUb_5vCsdX>w09-gqN+XCO}H_zRL8ANLnW~BRn&9NTRIo=0{{m1na_*Zn~Gq z(+&CVyP+FWO%r-W4yWKJtSz?1V*1NtIwdUr@k!24S^wVFo?I=v4-}W$qXBZ{2zb2@t>3bHOBn(+5JG8^3x8B+~;fN<{><@ z&SM%2oIG(J3=hA%`^MKgCe-^D8;9)&30F1t>Mgz6cBQA0Btc7;?uL zieb)n^X~e2|MGM0z!j4a1;`U%hW!iO6}cy670+r@JnEUC1=VIuvUhafOj z-~PEh|Ht_f@73K`Qw!r$hlcIW00HIWZ`B8W3MT{Q7N7tAtP=0P$vuUY0!A2L);?dW zG8S!GeD8Mpx00Hz>yk1hQs4?QG>Xabh7qcQFbcW6$inF?zCBqUI{A9ZsrZm`?bwwy zBN*+GANoYf-S#Q&U6Pi z4rg|!O2{|BgQ&_umY8S;f87tZe)=My;Vzdv^xX;wRIW(FP%Py&w(KYOZ`IPR@gmImhV?)Enr)Yrm3tx`kjyfu?bt3}*<#F!aJq z7AqL0V3>GXlhgh26N29vlS?$aj+%_julkESTRb}|ZvAw&s&c>C9w~^go_$_EHYUJr#(w+d3zj|? zFOaR2s&7-2oCr;js=Y(=%;H-VzZgX>?v>!mDD6y_gGRO)Hbbp=| z4k3c1%G!myJ2FEnh!ew*NpxKO-soc#7eNK7VR}87!ewTu-4ljz-f*pO@ z>|g|eX%MIXK}Xz^G6A30g}f!e-DBaBCyo6&-?9y=B?$_B&R2p4?hGQ)DiXO?9ml$B z>h9ijOp?4n9BjB+MIcpbf%coX^A~!__hm@gf`AD0-4aJ>__Xl~8WVlIN;}5{FpT@H z%wNa`NMX;Nj!brEq5jKfF&3p-+9K41dhZ~s zyd_~`5r~~aiRf`y2ppTb%p}S)whD{9 zYQ+$Vyj0?98UsZA&np@Nu14|};gKOdPp`(eFjK~9V=04#N@n-%iw{C-He@2f ziZh0@G;KdWB{MtX;=9Q~_*f?idOq_t=0OScu@Nr9?FrSULg5~#6t#wms-?dQ5M)}S zv@uF&?5dO2Fmq<7I;&4HLb zEscgh5+{H#C4-*uMe`xmZGy50jIes>qU@E_2VFfdgtCIV6!E#+ys8|&TT!!obvTt* zz5gw@-8rQu7R(}r(k>#*WO>r=sur<~KSl7aFl$7W%rCB7O3v{<*7)apPc$zE@b=Hl z60diS#5W_9l)mQLKn*#Q9JR$S(X%clJ(`ruO9yY}I9nt}n++EkRZrWXh;}9DF>T_# z{s>E^YYcMMTNcPW1Ce@5RR5{4#s};g_GF&6C}2?rDO%>brwl0D*1q+Q0!^*3vQM?_ zkavD82VF2;C)`5M52B%4kY5EX-YkaHp+@wd_G}Hf&~OfzVItV|!>5s3iDi;5A^}); zXOa4jNky3O{)U!g;Bk>=T&F(n`A+vMCXj}ua7yXRNCm7k;_W}`%M1pGt;d1^XzOQnWAQ`RVlm|cPKx;+ibN7i10 z_iRfb`C@2q2;wJI$SFAcgA zN(kU)IHOccv3r9GAH^YZ({?b@2_FK1rshNPm#>*uOD8buoWj)6Pp)zTM|ohMO5jr> z-_4?UaEBVbyAIw7Z4?P0ep!p4vf6DBm%kA)wLp#JGhuREc%MxS4ubd;C3a*Sfgj`= zbv2)Im$B8HfuG^@Z-WE6EV-AXmexd zUv2FhZTOSq`yw(WC5Gu_uh`4KMd1(4a(i3}54kb8x$Dyv+dZj&-(hPen0*i|u@*fI zG7fF{{KoldB@S{5w{$3v^#Di(kLoeI-WJ5!0gcrz8*(fi3=(~`3$j&K_e-*wFAI!! zqR+27*CuWi#!bLHcXmoI(brNB-ze=AVz-!51xkl!<&!H9iet;;qI_6ZGQ64L>?Y+d zJ^R?yNQH9JsjBtrw$FWQqQQ-UW$M6ovy+#c3TX{g>85Zle9&W?ugFZ*@>(R7VCDd_ z8&7SYZl_#o4AIMe30ZvHTfmbE_iJ*hv;w&d_F9=$zpL5WO#@Ug zMpyTfKDE=Or^`9MZzMY4+_5x8JM;sjHH&Y0N~mNcEi1p@rghoBPEf80yy8oA1WVm+ z;hsij6*H^pjNlVP77er2xR)Pan91mGPiK5xHE`Io2(AOck{21+tY*;W+)98MBVc{) z-slxn9s>v)ei0b(vT54tl1X>;){HI8P<1ZfpNdD@tZ!sUPpcHXo21C|UP&)3w6S@Y zd0=0QaI)u+sg>(UMIC$^=rbC5;VlB{l)Dhu=qMiqE231@YX(_~s|1F0!~CSxHv%^I z)J|VBS>Llhb8&diJN1BiSmO51Rb4@>Fz`jaR3tYTeAyNMRGd&OEWL;8>b>ERT9l%#kf2q&`k!05`q-powUw!xS(NFtxf!_8yW|1*12ZTq zx~aA}^euNb?8QYvNvhg|YXUiHn}3;vqP)hOPK0IeKhiS^#0R{lXH z7yEofe>2m9H${RgB{enY&mU|qM8_k~I7p84c}x~Nr;2#?If8)Kqi(RWVRZPhHw>+LLK-+Hca(54kDQt@4#RtYait4EMV!93*J#xub;~@eXYPjrpsCchhA*C z93gvRdSjfdBds+&A!^eWuidEVAFnolINER;U58xt_6GsAnwvLUr*VH`aR2G-p?ra5-nNvkn-_H z_|qrMR-plK>nwvvoNG#K?FB2l&%O66-Exl=3@j}-5JOmg6bejSMzFvG+CWZDH8wpq zwh|uz6CkobeG(9!@%J>_nNvkJ-V1M^Acl{FTu0Zbh!HXE$9h)OZ$ZzQ8s7bC0XO+w zHJDK748)hj6Nm798FmI~xOf{qs3JLbHMWAjnR2kHd%D6TRg~qXzMIxyDNV~bGPayy zO~=6_gPHdPr1=`=DzF#oy+kAi<<6zBD4`NrT=Rs~cbZekX&_y%a!V)>s zm*&E4drqhPb7%f9^XCl;{rk59zm8A%9^Gz$cGB)Rb~p$ZwL>F2h|{j+ZTZWhJurptHoxo_Mbj4fi4_O6{0$Ay-o6i zJV9*}5vTLEY+nR_9U|)~TGABg_q$=jrP(U?(9|_PR(RGcw<+P{-wI8L0n7^)Yuvz^JGYzGlnkiKJhZKj04u$dFg9uYr2ix?9YXh1x91h z{X4mwON@66BjX~xGt$`1g>1WE`*hASQ2pul@5=Xb3#$I(_Gcsq|_BR z=H%pHBqTPg%_{aMlzKYDIFPsWIa7BOX**T`7(jl6b9TtPD_*%WBu!Lbrb^A(UWi|S zB|62dTK4Kzso<>Tmm(V7UEb&F+hjElDExL8h2(0vz6?1nXDJus4nd18CB-!}K#fEGe8-TkCSJUu)n{?!^QG0^IIleZ6>W4Ro4 z=i4i%3Zk(w*L@H85NZaIBglI-d)Y=azhb7+9rH|Lnn=o9?OGm^b<1){65AT#=Ux#x z9z+~mV~rqA9)`yq?%useTYWYbgphlw(mL~tY69XwfRtjFxzK<5|4{cHP-$)NzNmX=r&nXp#Jaa7Cf2CI zUQ#Tv#{yU}_5`fh!Lm~{Rt(mNEwKwCK}Ca#CPu|>jDlU0D0Z>;vM=Y}d(PSaamWAM zbKV>Gj`tjn!E()sz+8N5&ToFd60_RL=jyayu6xj}Z4$B@q9XqnNBgXOyB^u&<9;>C zfAg(FSjq-(Yn?{d%W>YWQmLFKrjwKei_e*X;eJ|xve}k`JCD>p!%xo3ROVZJTd%T) zxR!d2XR+$g*1q$wrE|OZeb7XIXu#BT6sGj^D#Iqp|*ah5Z{vEs_#StW9vd9qw#ZA=~S0Z5X!79 ziYJiLkRPZ^QeeY^^CUPMR4Eq}C2y;HJ@2Db=Tr-`g4BJsVy|OtN;?9@e|PwtfXQLP z%zG2xFIV%?Tm*4?lT4MJ^rm2DMDzsT4X5B8;dPrm`$e!YeHQ9{T@W z4ewVG%cH5+$JG(DP)8OvqF>Q*ez;wgdLi7r!DKv;)-kpTaJXi`vLKbpYj3UA7lbvQ z1StS5r_NrLZ4t}nS(h#Qi{rPC0MBB>T*u*nY;3i4>P<#r&0XJiYgdmRY~6d4U=)ZG z$6D#632KTN(DVWmp4ah@rXA>Z6LO@&&d0?xHKb@Mfm2tKesf84i|{9;>8i4|(Jlr> zt!I@pI6`TB!U-hZ0r>T32AQi#IP?mw!-DjNW?g6@3BPf7jS^1*kyM}Zm;PANx7ww* zZw1M<@0uCCJN2Hh?)zn+QBeP&p*xAJX)<9drfKlapxRzTAFm=3C5k2oXlK?@-mFtg z&`jm2k;Hq8j)9?=qC``5q6GAwAXpMy-5g5~o^gf_ zb5_XlN6%3B2YniCR5;DT3$@K(qvyTgJg?#|MlYm&j?{H%gQC_f*A9)B!49gxc`s^W z)fS+H0N!ANG|y!I_6vTiA#S#+>w)7Ix|(G~yj-P!5>>UvbuX!7mTGt0Vb(FTp9t|8 zwrVt&_`{L*EF(rpz0GBdee$n}mJr?_D1jnmBOSlKqPVWXgYe zMNsW9NoecJb~{c<;2E3D`$!Z7+NaXhKX`(F_%0)SO2ML*e{p>H^WR{?{3l6aU)k1X zoj3pDus1nUKJRq!uKh2LG~?si)W2u1*m>3>cifxCbT44FSG%skW+CV=j&Wwt*-6^q zRBq>SfFgP;ZmimVk%s^qoF#CZS{IDPM{hm)_M6|He=bJFp`(6ntMpwv>cFcrsk(DV zAu!uXwN$@C?g+ifl}lQmQ1MP(ZM=F8-t1)KmI%|yzB^BJd)8&7?XyUw%{Hm+`j`g% zYJV=OMejzbGZhyl79Yh-O>N(Z8!4S=;2GCh&+eZ3Ss$z|w*S1pgR7tBHLi@;D3f{C z&TA1YH@`rk03X9o~5P%05CuL~IJZY5JO7fH^)P zFqbuRWp6pN5+Q3F4~j_`ipKi(GtpdJy*Yj@AMae(M*@qdD>Kj0F78H*M|Y zd_26uRzTd6*xScwN`B_+H%VF(jFA(DV$cd%U3BGH1+-oM3k!e$I&X9N_Lnh?={A=Fbfr~EL*7nc@%hys z!LzxaJeHCb_H(Mb?;n`Zuw#?1Aed|mryc%t^suY55T7W@T3ldR$5PLyzWDZ5hH+Qf#3%*<%MWzR9x4)7#>ttm z`~>^-8(;l%P|kElh-!Vc+x`Pf;mM5UlbZN$zGULjhWU zOu2PuR*Tjknk#!HQ@`m;(tDA|0MI%vL`gwN{&*~oAyJG7nz@c2riDP*olBpa=e?Wg9-d&*nDC<#!fcLu#CN}z*82jKDcn}5G^RVD zqaH`*X(Fy&y*L_J?R@;qtvk(Au-9}rX(@)s{V=D8rF@vhDV|CP_(s~7mXpfy;q>b` zH#fKN;2%P_Xh$_Q?OLqY8pk?3`?E&;y?@ILPj(76t426CM%PS1c7Er`_z%6!ZyhiU zSXy2K)^YCzMj0-3fMC(wz6400j$h94prj2u?X!fZe~*sEy`lmq83TrIyc$M2Hn+@q zOo+NiVQdT>e(!74Xv4nh<(ZD-o^PAKd3B5s2N9ms$i0c${!BV;|Evjat z4U^no{apN_$+=8*LhG__6-zI_FsknQmR?(h2Ea^ZCx?kV=8?edJ-#bwVQctSqta`l zwr0LFv6uEtGvTqP=E2v`zdeRv6Br|q?uphiGaOa0f+k`?aR%?t-VOWKe562QjoS{d z-!LK{FFsbi;OcIX@pg|HN-iLnsO0+zGHN>MFjY+VwyhFHsmD(R}{m%nS6g$r3ZtKD3;Rb zNlZs(0b_nCUa)`g*$u%9M%j+%x6AvQhz`#VKdV%X*2I4<6JC<~G+ z7+xuP{$&%~>f;?OOAsw700MllEVO@f|0){+1dP{a+xLQ2bFDb}+*z1K$o@I(VByHh z)4kC_7K^Ed(vao%?NxuHb$ln{WpVCoy~mwX@5UPg*=%9(G18cCsP6q1HPs7Qk1U(2 zsiV;nV}jZ848|SIbQzQ9cEjE=(_%3rqv8M;c?> z(!jBU!iQ#N0QL8L(S4hQh=IM=kDHvs;Bjw~ht}2}PCm0CSPzm)yJG2{!;1~u+>eEA`_hy|__WY&@3hxbK-61r!po%406-kO(cya;6^wpmM;Ex60# zzI>r_|3Iuep6Og40-wOm3hyFtxb-5tp)Sw2PYBLJHdc5|l_v>n!0wnOOSYpz=@$@N z*R*tX>Jxtp$$JP+iKj~E;;h5!EW#G6AOIN!9z1Ex3c=Gk2?{z$2vtB{oFtM2bywf1wRY(-qY_cOk3Y!&|@Updh2Hgy+ z&f?a{0ry_U^J?{D8e!WTs|ZBBM92fJlO-@@RZTG?Al^jSC~MJeW6nIbj$nktRTz}P zg6h};lFZPOtKa{g-2A7G|4`WXs;jaogg+^kW_(37s8-ly4hyo(%)T-7kP2))L<(Mn z?UX896S=OpoGmw?WJ_ps|K1_h@B);2+pWA0-K>t=_oG3<@_~q1RE0?LYZc9NCDk8J zn#iO*V^e{cxoC>pI3BQ6YiO+o<`%y%i|6`7Ulj3>%Vj6&)`2rSj6N^h7W1Z}_Oh~4 zW$kh`PT=kLzTAdQai5k&DZNIjWr*$F z37vDV*q!_l(EwXz53jcQcaA?x^A=J9I!ChY46Wna*%0jj0acImvn?mX13dZOJEZz0RR-Vm3XdRmS6UEyD-P+V20xSXqv$~Akgl%XXUOp=YF}v&I>kdXlc}abwXszu5snW zaCPsGdc6fo#KgY+h`*pAYbju?~CtjU$)E9rQIW zR)q^TRuI3~zjXS0)2>!P(3;_299ocr`|STG{=Pc#%iuO>7yiM+^zUtdahztAAK#9c zWusW0s%M9ZZYuWeB9A*7F9u$W`G-cW???2>7TLoihvn1B#Dbit5v|J(!;l~4pF`gF z$rQVc3V&lH>D}8xgQXX`L)jY+N!zO0evm{>Gd7!TSK>y*-#%{p;5XBUo$sEnx)Tg!S{?4`YQjxz(ow!sDf`=Cm<7u zV2A{f-XSgom~9=EwJv&=Cv5Lm$!j~Jk>N$(4}wi8=Y+b2{P`>R)Bn7-&N7Dlba3sF zi{)-!$K?D8(d&&WQxUHuBcvwhh5qg6#I657oz~26dz?DY4|#%0|IWs_veWP83x9H4 zv#(ppe|PLbTw0dZ;qf|{o72jaJWw9>Tz+ZKvX(^T%qr5vx+>du_4|19~{?!Sv%i8yZzxA8uhI;581)! zY)<8ECCcpxYxG)LUsd!SF0m)~tA zwdlyaaICn$Td*^ihX~Lc{1m87NL;=#T!qBNmUgTs21(S5e=fFP%($_^yDcm2TIMnM z?7ow3Yixp^1{;yf1hKa^&s_ceA1=W^zoY*{w}1M_nWZ%Dh6lPMF8!8uyn!@WU7ZUo zqTOKyIw{Gb02&?m_wF1AcQ_t($EM?d4VAx^?>9BI+Rl?s+v}&6(j;aM&wf3fU>G1f zh-UIV9(rNPa``uP7ZfM=7M9E8U_dPQ20|}L6X~TZg+7#Z%B#@X4MBlS#jQt3aYua* z8lb;vABaIjx&Gqd_lDBK{gL6i&y~+054_Gj%QQ#9bvx6eJ_jm6FrB-+iP|fN%gnQX z{_E!vmXA(HY~JY)AxJ5VWaL^lWah!GR+=VUnHG!7+E9xWyOht4Y#`)C9Zs%Srta=+ zq`q8&JFA9oUv*`J9OH8*+_@>@L?1h)aNoTAb~X3YW<=lc(J7x3r)Si~S2ct-10(M3 zC7wOJtal`k`_-M}|I7V_(4W4K(cvEkKs-O=>~kVk6+UrV-4>*`IcJOHbcHp#$Mk?8 zfl_8|10V;?;!xBvtHDy!cAm=Y5^r3W(UJyyeL-fzunV5$?~Bx9Wl>_3j@I zI}DFN|82xMIR2cxHQKgt!(ag3fI54bz%O<1%$_&DFX6C!`G=N7ZtDK?{E?WOiC)bL zxp86?es8Da({deX*zq+>9jR05L;Ktg3q$!($QsS>Cp#95x(4y~f&8vKrOZ5i-mdP-0 zHYQJ4cx}kT(>-sP0D000b#vS^*t6LdagEuQ8tFVOwG>l%-)+3alX#wn-xhO+1(L@O zNGgJFRyfUGo);vSE`6MbIfAEE_@@W3)wi_ctx|J7J61k89stdfKx?fbA**b$nkwna5`8QIcf3$W zk}+S71LpVo=RV29^~$$HB^3#zdSJ=%0Fv64qn;-$R?O9J{N)es)8{M01ivgQ$K|Sq zw!biO^uV-t8+bT8xV9afN=UUIK_{7TMak8xLN5qCt{lJD;-O|DWZ&wvHOD&Oecag{ zh%z@yaOU4`2VaZij6OCik4X1jW&5Uv57I9c3>AM^RA#;J_kxydeqkur>X8Qg^@oM! z=ASVb%9u{RzGPV`Ca$#i)VF!)>Cl!h-jZbRkIOI8o{2Pq&kc0~k5X5hL2d2g6h|;{ zH=m2li=);HZx>xOHpHdx@MQ)pjzn=^h=dJweyk$8%Pj*OlOQ6)jt&-msBb}Jn-3i^ zBXs5%?uLd^zf!lYxR`PBlVZP<(eK86a*wA+5e{ah^HQW%%mI$t!?am>AFJ3Ky#I!O;QgWa8sq&qIREar&T?Wz zoq&>x8+dE}cD zz~AU6f~V&#a?Xe$AF6|;?!VKU z{$FXi{Lk;g>C{*{p=n`zk#^Vg!0l19A7mqM_m6&)=E0p0>!Z!YffRSJZZ1}AM)vq? zHphL`rAbpZAGW8zq4{`w*`%F^O={3C88|jNGOF&jH3E?m4S-!1Jy*;L=xpK)5w2J4MiWNu@gfeK39rSY^ToUG zvZ=WBkPQ_#VnFnQbmo=jxy9DFg%A*ACr<(ii?bVSc#J~BpR@(~8#*OJ1IVpTOG+Y9 zQ3HEt>b`ZI8J0iGzYHUFBx!FQK*+W%$%L>(dcZ*#Y+@?Yda!CSLoE05Mo~>l+-$s? zhLg2@pv_ikH`{VB2uX-DZ#|~NZNFgD*0#p^oX0-!%4GWCM>Q^7JcK?3#v2SR8J*X! z@@RUymj^b74{zV*-SL@*_%%rg<8JxuIz*66T^PU%;Z)JR&_nM!7&*=;#<$8zcfayc z85?0PGRg1h3^MCMtWLuu<6??b!%|Cg7Zb)75fRFTgbdd4yteV zqXNOiFKNZ!Z)GdG85RqewK^j)-7r=M-ZK#4JEy|F z55{OH_Yr=SOkc`7EjX{5{s_@1ezDW5w^7JlDYDI-o)O|YbId*JWwgJ>NCml+u~ziE zJ?yDH$vFThu7-C6A9P%{`IBh5cE_a%nrY~M8(nw0^tWv)lG=XPboF=;S4W;>8`DBn zU=pXco0x&N!(Ge^t)&}os;~MKZbXdcXU^Ul=T%wR9LfH=t(E4(VlThdx!fhTWa^*c zLJJojjzi( z6c=OY2qa5f1d!fa>5|T4+UIP?=y=mEPg%faDOHP$-|kp1o%&f?SVh$<4%49w)X!S` zevEGj;>w|#duL-Rv`)t-sNk0t#j$1nc3nw&!(+3O6p)E|wjecOqU!ih_uBmODZd)x zto;Mq;aD>(Eb}D67gp`wMu+70{Sg6A4T(6wTd@KLeU!27tFKXT5zWrzmYO5cs) z_c-FBXWW_ zYi)ZhT$}A~8I1~`0yVZm9yhM=H-0^3GQQLIH9`@x9hjbPI5H6aIv}pN>-E#2bwYiH z3koqTKB5~4(lO~-AXGFU2F}eDhG*UGwSn$E)>f1BIXpD|Z-9q%Plt&MvSP zc@5ITGv|_=oW^&Izzs{2$UdWjdC0)ByI&pEL_?G774&#gBH_SQ``4j!EW!XZ*W29c zwf@A`a+E;=yi5U*@?xY3JxhjSDB~sU9n!<#f6@8)_ZgeSW^`#EeJ|Y)I(yt-cJlAq zA^!ot^3VV6DEzM-e&PK0jM3G^;>FEbO4XDYVs+4*a!&RKvf;FFLr|d$$l)fT5OT1(DlW05gyoB=gFzl=S(D)a>RK;&i}1tC{v}Pyiii ze^GzhFO{|RBf*w`*>8;KCkn^T$|CZJ$(>&F<@xo};@{hje z8Ld<>Uh|Tkgj56DMCHHe`65Y;%s_KJJc0t?>}$(@w6NeuGC075`ai&QC& zi;(_Hk&CJgd_sy-rLbZ9Og`i?cG&Vg|Hh|wFJpCm{%^WTK%1l^J0Di??9V!}p)8Aa z%&bs+$x_N=RlJOpwDsuuEVTbKae=lLKO5XcFi6{>q?1F(nhr#frhiZfKZ_IZ66})2 ziusaO;AVs^jKxwGuq0-@_e^xI8OHByR9mku;~}TPz)(9FDQ|3_7+?*;wS*d!b_$Hl zDy6N~t5|$5dV0dZ`{?G#4u3g_zA2dg1$DFiHm$bvT3mW5SXT;0ATBMGr(#t4@(yfm z@GCw84n{+An|1fXsqqX%Em}m{kSoFMW*y?LQ$?vYXEce3f{Y_tcyXZs8~XkmGKa_q zn~6I7&-_n|%KU*MH!cSi8$^O3&$BylEDj0Dx)xTy4C@Qxy( zvY(`>z;n`C%v*h%+D8Vo_vY{{NhNWp!39MG=)-tl$nlD3I z){SP?JXq{CJ`kw&#|59^AWkhTcbUX`mewnsAg6o`0B~)@`dr1td#5a(C9|a9Y(8m- zuG9xy@tJL8f}dLQ&+Kjl+XpiIG+=VRsQ7tJ<-q7&&xV1KtxmzY;b zGRA0%Y8zdfg{1Ug1eBf*-4TvRBxrX(%teqo{(X@l1ZJDBQ`9-0Ur3mVC_mj>;wHdpeW#Rdx<87m# zBHcP>wmEeM^qeirFoWI~nv?wE@B-w<+Q#_dy$4?Q`i#4R0u?$r9?+L%4M^4P2Zx-x z6R2!a@;eM>t%=xBQqP9O{=V*TD?HX&;rh~rY-5IN-J9Af?pqrG)IwW4s-cID5#UAi z^xp1e>mI15Hl~PBOisi+k6(kR7-SH0jOCd>a!Co(6W8{*^wjF7xioyTRi#|$UuiOi!Cnx-FHz> z%Z5@vW-zh!UMvhKo-mJ}h@DqENU}A<*RrzJh6BYtl@A$Qk{MCtuJ{btuqd^8DXRaS zm2XNxVw%J!nyQX&Yx$BpOwNw)n?nkZv1ET;I16kLFxQ}{Y5R0YBnZ)jhVD?V4>%1a z@DssDuV){=;l)t z_(&@$mXzvtpAwsf^t^UCXS_tnZ1tg2zO&`_Tk+?Z^_{j^&C^G9sb<06Prbt6Wh1Qa zKy^Q$=MJ9}%9L=`WwVR$bS#>w+fk`{*+5Z+ivn1I&bvMuC(u)dk-pLruTu7mUy){_&fSud?;xDIRxwh}0E6{cgvlGC2J|1Iv5l!v%a=X=d9DlPN&38K%phG+w6U7EEJr$;3@HC(>)t8ricoTJVX!X)QMpf6#Q0sA4m zz_k7~1QYiqPW1M5Cd~fNaq_Ku)`z z%0^0bR+eZL988D#wlH$4}?tiS>gOc}=OP?J>1Z%rSKZC%rGtT*-iWcY$r92cy z*AoHpOc)2f3Nl~QkneE|99gd}`tmaFP6k{J4UtZ0CRYnT$}`x(X2(uLG!AVr$5ZKP za$VXNw;Y%PeFwa0;{N;a=tRCW%Ee1NObK6;5D{xNDGf2JpMK6de%Nx>uCOr0j2j|L z&k_atq-`$QcQZ53&wBE})8;zaUx^URaoM(TjG6M(7kbFrXCgAND{ZmD!GVkkiq+eAnWtlOTn63oZ&*Ay3?xSGzjXXrJ9|?{!lv?@@gN_XoMt33NtO}od+0vG zU7J4&nC)ybh@G&ZgbwyRWZ4%)wn^}KxfYnyXHsuK&6E{|;I@V9M z(Q6W9g9*THN$(~Pz@mmQ)(-kW(j#UeE8lKztb{(*d(Jo|`!s0$PRMvNuy)ob!|=xI z0V~&*DP}=y#jVs>bgX`nB^2^ANmlE5;n4rO=>Ct-{6bJ==bmao`Y+U>CKCR(skCx4 zypVqyo=}oGr<8kU5T8ti{2T!P#SzxwQF&S+veiR*=V!$hH4i@>3(=dHLCj5i#6xXL z8u(j@v|ho`UrMSyYOMQlHhGozzcF+zJH^1|u;0lmES1`9Me zoo)nq?3?MLvWSeF%t8#_s>m_4K*u5O41>IP_*M85=zibfwvxHL&QmeV5IiP&p5OEE z^+SK7BHP){bS1G`bZTFx;0iXeZwmxiPAIF6;e))|v5KDHBn~+r{ynA_-X5<$j?F#6qaJn;P<0w8%$naxk+D3g9j6J==kZYW=^K zu>D|@%2xNet#A|5exPzNrQGz^3@${+wCNRcab>@9&)>9E<2`$a6})cvr?6(C{_f}W zWBW$BkY2&zlg__5WF{AqzMo0V{}z77^)HTe?=8K)d9Ca6Yy^DGe!<6IMdmhh<8MST zM~}=lk*2K|8rPSPOJz8s_cg?)PC4wcfqs@@g2`(yWe@8jaQ}B-K+Bd$)I9c++CK8M z)nLnr@R{)(b{KM~AHy(a4u6Q_{JB;;sXwPa4V`YYW z^e%NP{w}C=yT5G!8}*<}5jULBXZ%~29!-)zOQjsP%XYxY%iA?)O9Y*sU|S`{2%J7% zHb3ra{8Lg{=B0}ho=!d@m{ zwB|18MQD7}VTC0u%;cwbvq|kdKVQ|?HdJaHgy@sUT++R1*A$m(3*gexKM}QxkG4#p z3<8+D@;!yaQQ`b+wCWvNOwrIBuPypoHQ-0kVLXn>+PTOGjumd-M+XJTT~p{5Z%$?r!KJp1l+WXCmx zoZ^K@WvS-j8w%EUpKce#BUISRe=FFTd`$SQlGvQbMb>jl550!dm_6}xl|$LAG;7zv zXOwk~&d#h^sZiX%{G`A8O{`nQunpcbKwP+PsH`L*NlJG98KwhevA_Ut_fgd3<;2{W ztdDl`KQmt18H=^H@CmzW-OqVx)uYCXSsRJY5*!gdhuXn_x1xOQjo^Y^vgIXuKw+1kAF50A%kAZsqO zl4u6dt{$i^F4+_!%5mi?+ga~HuC%F!X7ZoO;^@#Mi`qjENe%b59Zfww;TlTptVR!e z>kQO^XIj23)J;qhu4;$r~EAaK~f>aTu(*}^EZROUurt7@}oB6A+*JlTpg?iW_RI z`W%<=Y|z>*G$9}c%Ftk0#^7+XM1Ek&PNiz2^_|_Uay({0dc~GoK}6?mJI)0-R%O}{ zpYV+qSjBkfB5xG$QI6tlo40D1^~-nW=iB8?7pa>Jiys&P&+VVR^dQ+=uL4$6=mr#b zewzq)#pWOJP|9|&M7Y4@(E`y0_;LTsMuep;b|FxsjArilF8Tbcw8H3{267#P_vV+a zU5s|~Gv_HCvy#{uS^iTSr}^M}4TNPAs;zXjXS$SO&@blfsh`>z+viN96@Ear(`;PyBejSH6I``&av0A6Dm%) zz)G47^qU{5!#hlUPs3%Z&8+JStVgF^P&a3&W;mf#?BkJA;~!phTiKYdAef3EO<49E ziLCZjRhgfYxP=(7)xGV@hqje-D@Q~IIWH_j%W6=}xVL#Oqpl@0dcY%G!>jlM7mzzV zYrKYjaSAzD&7ZS!^We>=FNXazrIUj07Y*=GQbFH+h4rT-=|X+Zb=A{&u;vVTZZ31- zwaJOMwF*?0(1GsE!+_BZkU(tP49T?7`8zzGu8Wiwtct(CdL-4=ekePdl}2*}D-@etY<7BH9bex&8Q|D14bmv{AG&cuVUfYdjP=bf@e zm{uax1*u`kk#)d#gY4`G`)WAnR?ZiKF{q1iE4xuL?_qcf;9CxdFO+dwON+4 zFHL8TO{lseuW{gKS#=GN2U z(oXPp;|F$qdFE%{^Hlraa_|d<*Wsi-Rgio7XZ{{bX7>-SI6G`3NMu2Vmc^(X*%s$~ z<9UfoEHdpdja!*c1glEE*?*L^_T}x0rWr{6m(yvJnaCo??R`wu_eHZFT4MP}PpGwg zPTda(L5WeBnBkhhHHm(jx06AW*#Y%_`s6))uF?}^5x8K2poRjU!5Srt^ub#w^LF*8 zb5CAhYZrB|ZGjL%uoD0ffb((3FfgakVyptCsb=N|0XVq7PmdxPzEM14D87WZ&3$_& z5~WB2L0-3^BQE{m8<{kBmc}mVjvW9X`NI;sLC!O!&Rn^T@o1^|4ShbV@}w$;J-=CN zvgBY51vNU-4p6@Lby%}xYvES8dCO8=^KdXswF|_>3DXDgP_8p${CD?Y6kJT_P;5!* z#AIwhd1-c>%O{J@mQxReZ0_n+9IGM~^83Hkz0Z!vG?)c5*-Jc&6ib!kL_O7(^p5d5 zKc}9rl-SlvPACfU?!^VN)>F*7h0E7=w*g?qU<`39`FzhGi` zGL{gVRE@egF(M~=Av^BPb2UMR&!Dg*roBV<+`tK^KmWG=`3LdF|Ey^B-=6=UIs7{i zGFIl_i?r|Ld{VxBfr?x0 zbJYYZbKTZi<2h^3*BW97O5Azg$+Mk(0PqPwe|gymV_VwRvoNM+GkJoX7Cz<5Kw&V= zjD3IKDl-uekM&lK*keFBRIuE5g5xW3Pxf0WcDrV}Xp|%gy)EUmT~FvFP@L*zT&}cL zYCcUmnWSgjn>X9KY3c1}KhhrNUZkcO7dt54AqVP++a6VA+z80 zt?ifN(zaX6owUgH+vK3@CoGo)___#2YUJ@8>MVRI^66A%igQ4qKA)L@s3KlbGN33u zl1KPW*iCl*E^M%br#}x^e2>qGfrMiY6>;sf$^Gmr^9FdROaJ6=xEmmokdPrCT zoRj@q#*CWe@cY%@nJKP53~|}+*cNVQ!d>a{Bc-hkRTp3O`wh;G>`18A@r>&N%{T#U ztV+Na-?{R=nu)#Ei*bCBm5N^cRTV8>2ibhKaRx+Z2Xh+)1+49GTl6Vmz4Yiu-6viJ zow=yJS2danS{2_s&%l^Zi0QPUwC=@AjZSBCh%bdZrJdx2{WRNwsYtcd}%sU zs(&f~RGHN@Q@(hz4u8rj0V`{^DtUv8FJY6aDGX&-{68>4}VKW~K;I^^RnbRqi#Ab8Ob*npf7j5)|jDacvf&E^6u1e~*L6aUk}f=zZpZ zv~^OIN?BO!RbyV^TE$LYl3jEIz#_-ku=X%>9d!ugc{)tCODK9W{wmFI^uI9HIZ+SU8a~af)jIjO(Wd1n`lwARBB9}ZI63a%isB99$=ax8v#nK|nX?BngJE$% zetvG-^ONTxuY0A~6yqy3KPIMs*b$sV5P96Y&Q|YTOj6e+c@rRw=vkj!z|<>dgk0Hv z#>>{ZY_%c8e!RJ}y!H92*_!Yh)7y2I1KO~7(FMFnA1~9{%&vriO3;Q0{}M!3%z{ou zzE+C$PjIF?W6x#|1Fc7YJ`!`6wTwGOY133AYmz_B1QZ?Pk~bWj(TY>0U`vWTOsQoMi2~B`bkbyp?^y@Q5xObRh;e zNChk~e8);?!g9;Nj2p2Htb07 z@jYE|F!4v-`8FPO@Co?)OafVCh3W}G=a zq$${j&6wUHixj2>TKVyaE%y&o2kbS(eWzQqQR>)=h>EXKUNbFfQ`#V~RDv#!2onxc z%eh|AZ8(77Y_Q?^y`qg7D(f#V(pSMw2uUE#OK^;t#ZR_K=`(?cDn_oSx*JBq8 zWbB@^-}kUI9FUh}%74dzuHzts*qcqg7#rFy>eISch_Y%0+Rds2>*j@mEWdP4xp#m( zVS8~ygCc#$WMCrIj5CbBb$xoOSL;%!coJY=(o1`vl3n?veE_4(UT=uRBq^Z*JkK$Dqw(6EmWmQ zNdf_a5SmE<37t^ZveFSS^rCbULJXK-2mz&&P^5$oiV%8}-q*=~uj_n!?Q@-do&A3A z`QB^)_~swRoO3W4jP{H%p8L7)5A=WeTfYP}WfBPAmS?=~cm;XX&pC?RuNcCPhMC6m z)fz?&A%6VWxmsAT3pRKSNAqfcNOmow&G)=8vTlWncl*XuT~0GAZf{pEmXv3b1*3+i z3<01Ht_`lM{0udD_fvRR_*^xMlvXK^BFIt$NINr42>N4fHT}zRq?JKLv8@Wt94waz-NayhFA3i3oX$XwAY3zZ4>x-OVx z5IbK_S9?}kWDqp@NKB`V!UUNecDz*6&!C*gw1UuX35#xtRN7MTwn@9Y&FTnO=re#k z#H+*Q2Q101x#&W(G8lM>A5L<~1oK)W6UXSYY{Xh*&0GFek410B3uRhZoIx?iUDw{| z@e4 z&`pKZZ#Q$a=j*qn*~jJnX>**K%!Uah&T@ql{AKAi*p`MtFgMIz%--D*65%Lo_e{ zu9SWrMmjOOnVD>Os|(zu<`VT9asM?D32N=n&q?q;561oGi7JMMxJEfR4hL$fjC{1Y zKbYE-R5oo^qxls{HxuogE(mL1-X3p0bZ5gzbN#B*bLcy{#E_qi}yQW zqxmKMr3u{5VD!Lse*?o3<$;t|!zbh-yiMopy$0XhJGRmlFoN@&H$O{6&fYz+4 zrS9;Fh@$clRS!FN-?zIsHJ92HJS$UZUM~Dg8{G)*H@Zct;II}>Im-YnBJGI1?yzVN`T&2{S_bG|1!ivX^DU``qNl_LUHLU17<6Zvzr)_$dgL&I*B!t5-+ zyZVYd)7vf#;oCR$%pl}g27bKm55j*iIA*SWSR_MbE%NfE;4TQw?~$bpv`;hS>iPbu z%EUg6C@HGDBV3`sb@QAWm%5y>vr*Dwh3Vsp&|v~Rajo{2wKHJu5}8p9ncY!EW)!LX z%0%1RAjyuhYkXe$WZ0CR^~1q$|Fqlx*IxY7J;gtK_A*y4@$lDPhX9deyaqv2eP$0_dN6lB zB`<;l{(7&(R7A_{>UrN_L+Y>duUc=86E=#Uw5gmc-Bh#gaJdFAa5V{VBd3q{7b{rD zahR#1e*E~BwC7r;f%1De{V1Dir(#tK2zUKsOMH1#+}0+#S(`V(Yyij$ir3S(w!WS5 zi>qhyDTG|s4;N>YjqMaM+&DN6JKn5nxD9NLs#jV9p@Y_ctQM(8_zn1%owrlCI~Mh0 zOXQqvoroD`CEL~7=umw@X(gHVW&+CkF*7lB=99&bF_)eSTZ903V7PRst!t6xkkqHV zaWx4xpjp{ZvP~p|%FrByMb1Udv7lLstP3a7EWVVZlH7cwyTyxe@CKCCLI)x(T)_Eb zEgYO3fz2HRx~=&809NN=HecJM6ywoeRCIe`$N~bI_DbV$c0ymzFTU7;_&(12#wcE_ zItTK6EvSxtrq@7~Mx#{iTU`w`7EMhL!QC%6O0*z@pfg(>|9L%Cog)sY|8VHHxB*o; zv!Umuq({X`2>$f>ySvD?<18SD4`2!jYvSbLaBr&bT)O?YX8Va4p!i1ZF4@o~Mw2ym zzh-0Re!r}W{CSEv78VPx78sr5wqUNHzxs27M#W_ciZ0^Et`9ACJg}LE5i-cIQ^QHM zYKpMYju*KcB>^*O>KJFt)P#AQ_$WAW7%{gPw8_-TSsa#sfs)65Suee$KQcBSxGyF` zuMM7w*Gk#n_c|_OH9TFtYyV;3HwGEm<~B<1hQ?g;&qEd^a>M$zZSc&*V`(SEe(Ddq z=u&~5HO?((C4Q0TNRKDCuuz1EA`&46Fd0Q$+2)R3W(QVB;=hrd)`Qv)4aXaYHowI; zZVE5As6{y?b{mZgN7jnANb8=Me8blIBkSVXz}YEhzn%Tpwow&2{5n^-my8A2$YEUW zS3n0C7iwW)5&CZV*s&84n%H)lqLtl%gQct$2aL5v(3^u3d4&7(0stKl?aqjVV4jyi z$h`i3GhB6k8=fgkwx-(FY&VFibo-vYxQge>CTchRu+*BDh;HN7(lVo6iTf;&Ud-rbvRd8a2x; zPCP0Ma<9RFPW?jqsWn1W?e{WI#9G{@*2ksaPjR`C_Cov?jN4HBV!wy$Xqsfug_0)3 zLH48aaLcocC5`FrFB?+#bJS?v5LrP|vG;iH(|*$92OJYkSg4bXYLpZjxxBS#&e6GZ z(Xn|H|5%Lq-B%J7=Y7GQ3sKCa=k0S0XeAxnO&NeO+-lQCJ2jTw&TCN!<5iba(}Tfv z@8Rr_y{L=D=d!QKy9S7(x7S!U)5<{9Nvr&QiXuK`0ipTQ$rIN4T{-yWWd4JTue$L< z?zZq~mOotF9j)CBY@MdP0(5vA|E`<0t2w-EbP%SuM5=(CkT)56xF8KjOXU1LU3!F?)P{Mw_r(j zjdVQEQ;(m{rS^OndnV?~lhgNpNCtSuR=c`?R{s`Q(itGID=>}I?l4f|2Ju=5j_aH@ z{I+M+v*hIBfGirONV+B6aDl3atOnLf2kNmGozZ21Da0l`TV4M4=~&fwr3+ORSF|H+ z8YdN8*_&&8H+rJ4co{Q@q2+K3mp}#d8XL4$_ng@{K@vDC*ZhcN{iAQvcbu{L8%hb# ziKa5*5aQx^EGU#CkF9d-U-Tya?;GI%-P3=8CqQ8L+{O=UIkqwn z2OdPfNV}-9l42y0}S+UPq8k)R2evTKT8OinO_OIi4x^SYMGLgCBlk8zfRwT}xC zTs@r%_dO2mFI5W&?r+QwAP1F{1z7eq6{=+X zWXp4{8-5(9hGh}e%%t3`*B@zKd1t*%D5vB-^PDp$baTAfP?^lXG(f`505RCl_H+GB zv8AHD$?bA!{VoBGPt`rEC1i?i?kIjA9X>b4n?lI1HFkH!@fhMaq*VleMl<3e& zu1$n~+Sj%Z8;8T?z)x*0xM8toon8J}fmbWMH=dHmo^~R%XI$`>o%+;3XQ%tJ7FC%% zHf`OGw!LT;Tr|!Wl-*$lEnQCM*{~|QBCNoFob-5S@zDO9ve0imW|x6c(O+*u-*dtA2>u$xOhE-LNS-Z$RVeGiq?xbMbuXG&VA2T z{hqR-a9$(U>}$jd5oVimIRu>v$^@7J8Jn(tqz6&3zvZWY~`&0GPb88patU1WIeqh5Ei8$K^`i;s$mi*RIH_&4AErH65-i ziET6WvRG~{>C?tP+3e|m{PS4M(4WU_2aXaqVthE|t~{zF9!h5Y>2}H@G-+WvM0PycsJVF?;J~P)CX#rC>VtNE4bU)r2a5ro zwBteE;A0cz zI=Knt$y`kQ%C!!K43CfP$Ngj7s=z70H#04b490B1%d##=+j%tE(rB<8hJjA$O{h;k z|90yFp=_|#vR&cbJ-=Q2sico&K}}$O%TZ0;K@w;001wT zr@yJv;gMs^y$( zXQD7MJDh5d+k}DaanRq39ESH^ooM@3+LOL?N4VU@stAF<1Qy3h?1O^MtX@on7E8bC zy->)(wQ(XFVSPtQ8^_)vfex=^`;4as{UP6`63)iOtJz1llzeq$QWNUKFI=v}CU6M( zkb7rzJ>`1Q@+(BiShx4f4(G>>GL=oo%wC-_SqH--5{Cp z?D~ig3p{};0$l5iBtYVCFyoZ94e zXyF1^Ccz5kAe2`W%}ouJAC4^#UQ+H zOl=`wRz#=|eq;-}W+=;(QY_O#4q^k>eCT87)5!;&~YW?%I6&)+0Dhu0Nqbz-n~Zj-24rBQ7VrdGjP4{@@n zz2jNyM&-i>_Zhdl8&pjy^5Ha~YS)G%iaqr7Es_ zD1tDOxg1j<=%jhB^`wJ9|3|C$GM=SYz8=>YXPusnVb-FNA!J&pQy zI9n5aoWN+DELh2AI5OocI-pB@3+gf_>@fus$f|o`UJ(QfwR(F+HDBTxE;xk6y#rw; zJQK4TLX~U3R!i45&4Wb+)njAbvhAOG7-70~QPqt0QjsBBIrTlfT^|NY@7kBR zq_2nMjYFh5Bp``zi~}4pi$5-;jbxnPEzFmK4FA^FB6v@{pZW_HqutV4n^iJHybyx7 zqJ3bt9$@_(Vs7}l4E+#%GnC5MMHoM@Ean1JyOtq?(bm|lsSr$shOxRe$Y$i+KuvP% z##!NV(G*FQzV{DVpImMdO9>N0@%a)2VEN{yix$gp!D$Klt%%xXOjZewby_>HkQ%Bp zLPVuGCT~CR2NlXk70`$-$pdJOf_4|nh{ai63E%Nf5N=a{0>d9~WwJ=u+#S($R8b)G zZq<1VPB&~RH(v=$6`x80z4U&}N(rEXqNC0r!_v5S{j_!R@J5T)A<*`WY+U z9Cjn0s6wmR!fRTHwrH2bSYX1Zp9&S6!YzU4UliMao>Odckt6`B&ro3#<5`Fyarl5> zZI&g@pxjyd4YC)z$!nrL`PR{N-KMyqCnw4IYSZ2&HA!!g^|B<2#)6<#*e#-i$Z^mp zAgoZ`D2*PqMHv6a<-`e!QhPr7gYSC-^486rlEMtzAIV)jgps5VpdD9!rFJ}z-6aVN z%C*%#Ga$&y{r8h1?Wz(I;-;^gtjH2}!|@p>=@z=DWO6UcKmudK&IeGTa$$m-X^UIj zp!bda;>1q>n$<|V=)V}3pZ*^L`u|xg|CfIL3l68BZ2nHf3;au3{l8R%(+5XxwX|2{ zEb1?70|i}Rmp@8oD7QGIHfKv2fEsGhI%nkynz(%Jr!o!z=X!01lfv}lDR*Xr=#>iD zWoC4ajH;vH54k5JiG)9v<3J_Lu&5R3vnBE0eGcur9l#XxE7)-4m4F+LmRlG2*-jNZ z*^RH8v6l>M4Gt^Fg81Qh>lxD6JM>A~C;yQLgX<~&djg)rngD{nX&0%;H7|y~2=9h% zL%#E^Zm``J4|EYF>|Cb*IcQ@))2y-!VWRcJD&zETfqoRW!Jhv+Uz+W;atKKiy5eu2 zJy!FF>&a@;TIB2thd%%`2kX8(@|@AG@WIk87iFa-=ladfU{npQA!rBi_4keO>fN3T z*$uBv6G}7=0)ND!Qj|QIpa-q2iO}1-f}5~`z<|6!nJ^AcQ2gcR6QafTA=*iWUPnTu zA=6L|-kvdv^BVV9%4y9E7WPMdImU*C4g^|om$Dg=(S<_^F0rUYx^Rm)CthJKI%d`S zq0V1>6(72??-t~dOrALLO1sR?!I>mNE8nC4QnUW^U;f*P%DcC?1KllLgji)&%h9N=@f2x2~UG7(-ZM}<| zCBD25vYQ9!(jlt1tY=n>kC{w)eU5wQE`ewYx{5zHon&{Zz(R@Rdhs2v73`a2))uTi zrnj(7aT`nI1+O69r~3;PjqgE2H@)u6#bkp!b2y`{rqU#%{rTGCXda zmp8K9@o63vIN3bI5W4euad62ofawf4M=2SkdX)!i-xazg+R~V)FAL8w+Qn7?m%f{m zop&6yKLC9Lx5i}drwf0zT33wm3RlJMS$lu4uoyro84<`_0`q$w%Z@@0TBtY<6ER!Q z?E48-Ie*i8nt|@52>Z&Yfr{!L6(?qg)__VtkRKLrjA&d=x4=$VyPz54Zc9ik^qcgy zdCH3UEmJ0d;JV6R*3$^+@ElIpLO-}gB8#YmrC_-4$LWQJXD0Hxfdb(mAx4|uKHDK~ z9>10rCS-=9w!0|X_(4>)5Y~R4dKia!NCxI?bW3Hba^>(4FC3khS6Z$ynHiqmhZwvb z5co(|fo8zOt7)&puT{)Rqbl%Lz!>9e)^P65@2=Z+jLH`O%zT?(;ix^RtB&)>GeyBU2|31Ie6u1 zk^-F+cWtw8g%Sx-SnjsrXhI+YN8~Pu`7tu4G$!YN>Onqvq~TydySPgjtI3Wim@Nu@ zFm02U2n72!Ou{+DIwd7&)y6at_)ot#x+zYs0%OBMMa~V5y(*)SsHd}e-z383S>SMS zYb=M^$ZIyezCwLp9hNt1^}deUbp0kU*5LjJRnI_E4n{%qtoFK&q1uRpuot#%J{VF( z>%yY<8A8W+$BK`Wr=^~n`eJgAwGNlc`AmMRNWu|cOk0D@bg!P;kS_i6*kt+2yo@93 zXU9@UA6v1mi|g%j)0y*Tb$wcVnHc#9TnZYyP)jQ)mJ%&6P3H^heSr~-H&4*v&pkQy zPX_BxHg&$b>4Wl*ZU(FSV1InMCy9r3CY$WKLS*4_!t}BwBsZfRNnO!1Q-3JOhLq9{ zb<*bsC<`B%yC?g+X|QbL8Q;;m3o8adKGh?BD!p_PyY@Ush$o|^a~F*<%_{J6N5WG+ zDCI+PDbuQX#Bb}9Z72HAherT<4~pu_z7;ZDl-uw70HmV@zCjcZP+f_wr945~G{NoF z+69r-<1m!2jBFZhS3^BK0d+;SNxJfTQKp2!Q&_sT9>$S3%1(>R&|tbMZFC06OD6=L zrUL8U#8q2O7B_mtk>Xn)O)~dVm211)fY%73w837bjFL^KycIVg!-#-7Y}A04=^dr zNJR^1nVu%~Rf4bUQAA=s;s%lTWF_E&6d7@fs)W#j%#$2^;^*$_udr+FUz-=U{boLA zR0f0ue8Y!HKLx~jllgAITKhr1q%Jej*6vFNL>=CXp}7vWuaFCFA>L%?HB^-W-(>Mi zp%kf?4F$^?*MIateS1{zsEqb`>wFL8#v~ie@&ZCHbiHIus39P5hRa&O{N2Tas$~sA zM9!bbXxy%t(f2YB_&MI>_&_wVrl#6Z#PIxlP#Epur={K6{LlAoC-fUQl^xU)7-A7Wjw zwR50xdHI^&^)QplUMBs-yQl3-mpNX(h1bUJLaFUi;@(+&eF5^@11W3+`Ydi&0+e36 zkTF}J=WAb`De}5kB~w&XJ|?{RUV=T_9=m_ZJMIsgGH`zJrj;jUni1=b(0&g*5EqvX zzb^LWbk3Xve2gdGHzT?%P?#L?^C~W@cnWlHb~TTjeZRUVcc7f4`aWx0QR-^x9z;GV_WV~RFeLDy1Kr}n|%YT8hQ|LJA6%PjUbgq*DlV@-lY}ROy zx6h#CV!F-+XrX#b{mWb#?>h&lT-uFo;tg7xmXW==&k`+o`M*d1?jz6T?wnkjTODw! zSh364XN^tb0mTPPRJp?FA$qQS?-1HMntkmX?(y%PpG8*uJMB`G%(RK)QQOe2iwP z@p#dkXq{y2f?k`UcE*7^L7Zz1XFB;oTZlV8;bK(pP3w|-zp&tVN0IYSDz0GpJi6l$ z0D(CbAFKwQ-2c;jo{Wi|9zkb$`D z{s@iTvoS{z96=4|2%503hviUA`^4>@=+_s+rIuEZLB7e)VcP5i=}~A3jf*y5#V_NYJcU&tq_0Z6u##pKg2?zXaO+cC zo^QVldAGUi_DRnFJn)R`7UD2Z#0gn_!vZg3u!sZ)>^RHhXZ6d7qoYf*9QJhfEBx>l z;rcz*4ewdJOqo2oRgd@CWi8*9lfq$VX6YVf`mu9v#27mt`CxW4Ts&XyH7>7OGU+5~ zzU4{ewD0f~TbLs=4zp=CXl@bWF5@uG^cQm|g?`cdSz1YSbpO0V__+9WP3;XT%vO}h z4$UJinW<0CA4r|^KTMGI${I0q6q7`#PwB z`#&F4|Ft)~vD;%5!Y(o5R!=8b*3Rw@#h! z*+~lWinn~=DOgw7sNWMN=bTHrXb3|Gu&rLqkiMRPsjs&@lR0IwBN3LCDO~O>7mM8Q zE}vvbd^EG*Uzh+MoRZ!=Rjf0{syY1g*eJ7Ti;h=%7BeW{w;W*33VRijBENTTPGTRJ zr0AZRstnlV|6SvyNa}G_KF^pL=<1|wSsMUsI<_DH?PzqZmhbA?9ruvW zy&?{Rhnay*PLl!pJ8v?ts#P{EnZA(n)izc~NIU0k`;IX3d>MJd`@NnB2Z#!9tDlIY zv40j{bC)+uMpqW?;&%TePNVXML4}+LZZJ8@!iquS=8ZX?z(hiGb~-dInO*|t`sFkw z9B*b!hm2clXqO>Ni&R5IlPE6n?$;t?gu`Qk+z0cK_X;bu{b&2@?9N0e_8ofB<>QUv z&Gx&^YT);zyt3$I09ch=BO{wN<&Dk{Ubfa>C9XZ6H7$Ea^51JJs%2b5G#_j_TynGk z2_{keN7Ut7=9CSv|t=*GfFke^4zh^+|9TI0VFIvj>5jiYw&L6D4=BrBhSbtnFBVDd+ey#uBCCOvj z0O+fG-rQdZgOv(_7KURQg3znc z(Ulp7R)7n6k}p_gQ!ujg%U~f4H~Lx1jYQ_0#aiB~I!Js1AlWSJo(@4sZ)W8cLR-1_Cwwx{+?ymhi`B&*1T&^Y&q530A= zHCw>(uyE51QS%dh(E^Qg%e(`dHkOnC#^<{q(%Kv@4F>>`$v7pQr^&2tJ;Y9;+?97KaY)boWub?PlIoY1<)Wf`3H=& z2;EJq1G|YokFAJv`m&gyWEqQ|>XE4%^-Rde(UkAB{Qd*(+UQmKVeHP)g|EjP{y#H7 z|4H-p7aIk%=?WV`e9hQiH~p(84XnXIjU*nd{&`HRzVjb$jupG?>GzgRDl4HhMpTqs ziTbape3p#^@Dv;BMsI~XwUh^wJ#tChAR1RP4tfyzbDZJ3L&=80oMrO6@0(2UnY z8VAUz^e@`&zM1pZHls1^p4MnZ-_X@k#=68QlUt{ss4Q5{_mw{+tH=#M=&(Z%zaJkT zn$B?bOKQ(1e1}kB*@TJlUq2kXF`!{yJayBLykD{C3uzwlpQngaP90KiV9T9xc3TM^ zljId|@6wS5th&yVF^S&Q;OO+>EmcgwEOnW}D@St-lsNH3 z`%e$+dcp*!RVjiwI$IZB7&5Q<`;U^_! ze_Q1o|J&jAr$_|8DrVebG>@o~7M_hzx5s9+3+(eN4xg3<&Pmb5@=*julkqYpch{m1*9*R3ti+m*iCYq~armBAq|nI=h$C#lzbg zJ*})tKEfo9mTFea2gMODrI{3@tIJ3vj>6FtQqPmflDJKoHlh6>NAmKLqj2$asoT7o zhd1Vq3@?pds~!c+=g+mW3+1qqi7bmtb)oO671{!kk&!bpJ`=(BWG-ZFY?Y-2<2^DK zEs?F$6Qk|+T=r;SFdAa*J!k=$9BPq_;vEZ!j*f7?M^7{`vsYsQFGqb>K}( zikbBuBnj2g{298Ezxc(*KD5I4l7_jDaPyN!J(%@{_*1H=3{|_IdPZ}IZ|3^{D0f~P zk;X5!y?){IMsWIeqK;%LkMjjF3DM{|yj~m!=c#~9g-q-PVjM<9-W0!@JJOXXKn?Cy zwg47g1G}8&gh~2BB@0gmzZ@s?{v~5AE9}>)cEW!Umwe|Qzq?lBP?A_rx_gkTS?<}#8`y&jN z@lXsa)MvzO19_Q*#<4+}!y+>;@zBWLUZL*n1_;$qsl;EZ!Ub6+ahaJ>U%lk|lJ&A{ zuHn4uZ#FdHuCv4tsxT*-Uwz~emxG#d)%kW??*h8Pv;IN#1euSanx)DeZu)agw%W$i zN!RIf4&oICt?UTuHG4&+jJmd-obuPG%gTc|Ox%^CFge0`#bWSvmuU6=O8kRc#85LM z8=|AFBt(`~p+X;BzI`g|jOL>_ii=CK1oyR26d2Gs$;bzREP#7dnC{t}-~U;K|Mxuq z=`ZGx4cFfG#D^olcHFA`d$In(M`b&IKVnT(JS_+)T=8{5N~c!fq2nyGU1@hk9 z;n}15sY-ANfC8UvArv5tF_$*p&r185#YLxT>5loP){*}fEkzrH+;QA}F!3X8G;A@| ztV%cMC4^z4L>3gCjp88H(rWeiV6N7)7wqsKYy1t|-nCTQ z+xxlF{i{$aJmGIVA%LU@5Q)Y4R{LpSPX74UVB2LpsLPe-+#024E35bB4o0I$u{%d# ziRL^;^6xh=UfsG?C`lO#31-Lp8ATJ!I6UoKYiG?KlqP*6jD~mTyFC%mkd?-hT-F3i zdIJ!hX-g2=sd-{vJZ4b4||sKXQ&O=~<}*8>wCn0jurGlwK(_6_T&6)Lr=S`e*C5uvf* zRrdJbJH&ra$NZQ6%Kv#?7YxNiH*HJp|46>$tfnvLZ3f)}s)KQ19woRJKGmkxOGZ8; z(;b#Ho|ku%A=v`C&uW7lIcwWtbjt6ivbd`SBwnnysiZX`+N4Fgtj#H~K0S80EQi2J z54avY=LLB*f1w3d6S5rA`{br$vy-oS3hnHG#?p(WluFU29DRKZjh$#WPlv_1Kli@( zJ5UVL2N+3J)3ho3^Vt0#X&E-r8z}azI8icY)2*VSB7{8ivhR=rDj8(uy0Uu=hx?BH zJhnCSAOuU;=#;xqSUKf?iZC3w26|LK`KYnM8IvgIbMMkXXgs!r6i7{$llSG--h|v- zcycnXeM$3z;+1;>TcdRq-<7VkHP1T|S$TV$@AU@)F~ShT^mw zS#^<@C^yWB+$MinTvY`|0m5T<}OwNsGyf*lV14-zLT-#ppa zj8V@_mFyb)^vH(^??IiOa}5D+uu3-2kZ6D8As{rYm1Xw&7+TsuIpalb8KtFHUc>lX z2OXh*(PnwNFuMmn#Q!Uce3sI)&&bIGCg|%s%aF6n7vBF%{qny%Q<;1164|>0vs;wH zIT+Zdu<8IS(;2p({-GQoRh=@wO0zZvA+LED{#mPpkW62j8xou@utE-WN#JOeE1vtr z_a00RFWMLhtdi$aEYau>@8jO9_#DH8kguWGJk*Z3`I0Q0wCrS?_EI0cYWgec*$4;v zHFT)AsjY*-?1yXD?95EGihd(3i9DF=OmGvl<4C>`7PjO_t}o?^z-JQ@BWq+chJ>R_ zyW$@*8oh?yB6#>BPEGJNavb~yxyz8CE?sS4(}B+|U5-o3Mt_H={F>3EoF@`;e;Kd;6>( zD&8oRwdIK7 z*ie}_d5W0FcEu~S9|(zvAs2Afr<`krpG4yo-)v*TE19Q?SgjB1XV$`g<%qR>P~Rd` zFOKnE(%ZCYN+mgD87dLMWKfM-ju1mySZau|5gi{Pkx0uK*%Dg)TJ&*tUYq3{U1<0~ zIO(%s({UGHmyL`8xdaR?SPzU_bL1}JaKv+z_MYqQ{XQey?+Cb8I9z7eY#78MeFUp1 zrZGdmN||$nfz#(KE9pjy`Q!0=m??}4(o%glP#MsYtdm@Rw}6JltNJQ86?Ht`f=2@r z9aBC`R~R(*8;VL`SV4g&@6cPee2cN~?&=3Ua6!bLQX!w;Yg`RKz$9Iwl20 z03KIeb?S4{gN1*#=(72Z)9M>(;~f787WDI{f2Se$m$Lj^`f-RD*|9+5GjRKyQ0g4A zh0?~r%aiI$TIkG)vSow{c5l2V;QaC>=8y=gJNS7Fp_!PyMb6C;ZET;})#X zOMJf|$ii?{outRc2WZkODhfQdXsda7=$PHx$?AyaeY@fJH!vk>CkIKHR6b)$^-5a4 za&!NXwP!}VGbP5NBO$&i@PdKLw@vG%g`<&0RUJU1NT^E~ zC%&`yChus5igM$>*WxT)=;ol~2=(?z{G!TCie23Slg8*h43?v)&}b8QB9uihL80U-C;sn2je2%d7JV?=G zTlC0R*bSX_jXB4qGe_Sx6ncv*#bSnI*sak+>S*HWxQSBIs)+8Gr`w};&)9m)c!!ss z(QFxhS4xxwLYeL{B0CX7=eFpfg5oAPtf-pIxYU3+Ijnn6YwuH5u=>i&pzg)Mv(Z`P zP{p&6b&aR4`9DxvOK#jWgqy;{IAV~RynQ9CcY)GS8Q40)WS+IUZF?3!q8p(?F%B}{ zDL_6_b>EUwt;#uqpfqOR-&qCZ=42K&sA?MOvy84CUe`e)A2z(VHv1kbaIX(`1^=fVB>K z#&pYP5-Ntq`|YrVWzXW;02x3@b_Ko5TNns>IFKoQH{|(2fTmqzn?gX2h(|@a;nlv- zB2mN74vP^*A4q*8w$a(RW+t;xZwXDck7}NrTb2d9=yz&%Cw2Fb&L=Fz(L~z6<9UPi z{b`96?us(C3yBi+o`QHH$T2oqN18)%&@#RDVzvPv~){6+swqgC?jyvP3TZZ zaY1y~!P}ur2dI*EK0yCVUV&E?7>JFmyKFWE(>Zx+Irwe31oF>g_}`97ex=_YCS$6x z!ymRx?AMKEp{?JkLRsw1^a*Z$tfE`(SHEl(5u80eq3;P9RX^(>{N+njg7aScTD-wp zH0qyXP5&}z|80`8A`iCxLd)tw&9}X>94d>I{YCe!a9&Tt}A#$i)`Tif8L>Y(>9{bk$M+p zD~rS&Ts44TAbn5y$GMCWrpI)k#6E|?)zK(0oPz`<*6BL+rt+$KzJUm2j8O)SL=v~m z4=230wzu|2_q2Qu=R~SEpdr+pEX!s$ip}PsB}VQkg3mo{=UNiExVF7V2|xd2`crd$ zck3o*c&o1N#l0Sss{s%%r9b!SKP&}r< z?2GCx&2VoI=Cq7QR9vQ56kgl4%@$ek5`|Ob`Xf8u+gE(T5~RQHF2QZl9&%09t~~9$ zp{X(^d#mYzQj~!u^*LEtHDt(G9px{YD;B)$jqGh0EZJIP>EB4*^X=ZpIMBD9XBAYn z1H~MCKsFio%I(^0eMi1JJ#KJVzh*(GGfM8s1dhJ)$Th7LpLeS!S_8e+r3k&`?#|ISqmn$Ewx5bcqO-$2DC`Jm^ z1d%+KN;TTZHI;iWlB6mdSkU-%ek%91ZIHu_I{(Uuey7jQKSXp2;cA(U9h~5wbSjr5 za`Su*EX)8*h(W}Blld%G-c_OOzV@68G{sgEs^u7$RhlFE4xKg$bXfTtbbms zMacfE#nB9$=c6jWX*H{2*)HGj@YU_zWLArLxU80I{_;jaRCFhEXE + + + + \ No newline at end of file diff --git a/api/src/test/java/me/xiaoyan/point/api/ApiApplicationTests.java b/api/src/test/java/me/xiaoyan/point/api/ApiApplicationTests.java new file mode 100644 index 0000000..2202460 --- /dev/null +++ b/api/src/test/java/me/xiaoyan/point/api/ApiApplicationTests.java @@ -0,0 +1,13 @@ +package me.xiaoyan.point.api; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class ApiApplicationTests { + + @Test + void contextLoads() { + } + +}