From f73bba2d760d03de4574cc10f948ddea1e842ca9 Mon Sep 17 00:00:00 2001 From: Cui YongXing <2835316714@qq.com> Date: Fri, 26 Jul 2024 09:47:03 +0800 Subject: [PATCH] day08 --- .gitignore | 38 ++++++++++++ .idea/.gitignore | 8 +++ .idea/encodings.xml | 7 +++ .idea/inspectionProfiles/Project_Default.xml | 5 ++ .idea/misc.xml | 17 ++++++ .idea/setting.xml | 8 +++ .idea/vcs.xml | 6 ++ pom.xml | 55 ++++++++++++++++++ src/main/java/com/bwie/Application.java | 11 ++++ src/main/java/com/bwie/dao/BillDao.java | 15 +++++ src/main/java/com/bwie/pojo/Bill.java | 12 ++++ .../java/com/bwie/service/BillService.java | 12 ++++ .../bwie/service/impl/BillServiceImpl.java | 28 +++++++++ src/main/java/com/bwie/test/TestBill.java | 46 +++++++++++++++ src/main/resources/bootstrap.yml | 22 +++++++ src/main/resources/mapper/BillDao.xml | 14 +++++ 理论/img.png | Bin 0 -> 22174 bytes 17 files changed, 304 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/setting.xml create mode 100644 .idea/vcs.xml create mode 100644 pom.xml create mode 100644 src/main/java/com/bwie/Application.java create mode 100644 src/main/java/com/bwie/dao/BillDao.java create mode 100644 src/main/java/com/bwie/pojo/Bill.java create mode 100644 src/main/java/com/bwie/service/BillService.java create mode 100644 src/main/java/com/bwie/service/impl/BillServiceImpl.java create mode 100644 src/main/java/com/bwie/test/TestBill.java create mode 100644 src/main/resources/bootstrap.yml create mode 100644 src/main/resources/mapper/BillDao.xml create mode 100644 理论/img.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..8d66637 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..544713a --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/setting.xml b/.idea/setting.xml new file mode 100644 index 0000000..ed05fd8 --- /dev/null +++ b/.idea/setting.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cd15fc8 --- /dev/null +++ b/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + com.bwie + billManage + 1.0-SNAPSHOT + + + 17 + 17 + UTF-8 + + + + org.springframework.boot + spring-boot-starter + 3.2.6 + + + org.springframework.boot + spring-boot-starter-web + 3.2.6 + + + + org.springframework.cloud + spring-cloud-starter-bootstrap + 3.1.0 + + + mysql + mysql-connector-java + 8.0.29 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 3.0.2 + + + org.projectlombok + lombok + 1.18.32 + + + org.springframework.boot + spring-boot-starter-test + 3.2.6 + + + + diff --git a/src/main/java/com/bwie/Application.java b/src/main/java/com/bwie/Application.java new file mode 100644 index 0000000..fafef69 --- /dev/null +++ b/src/main/java/com/bwie/Application.java @@ -0,0 +1,11 @@ +package com.bwie; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + public static void main(String[] args) { + SpringApplication.run(Application.class,args); + } +} diff --git a/src/main/java/com/bwie/dao/BillDao.java b/src/main/java/com/bwie/dao/BillDao.java new file mode 100644 index 0000000..8119684 --- /dev/null +++ b/src/main/java/com/bwie/dao/BillDao.java @@ -0,0 +1,15 @@ +package com.bwie.dao; + +import com.bwie.pojo.Bill; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface BillDao { + + + int add(Bill bill); + + List selectAll(); +} diff --git a/src/main/java/com/bwie/pojo/Bill.java b/src/main/java/com/bwie/pojo/Bill.java new file mode 100644 index 0000000..8d92759 --- /dev/null +++ b/src/main/java/com/bwie/pojo/Bill.java @@ -0,0 +1,12 @@ +package com.bwie.pojo; + +import lombok.Data; + +import java.util.Date; + +@Data +public class Bill { + private Integer billid; + private Date billDate; + private Double billMonery; +} diff --git a/src/main/java/com/bwie/service/BillService.java b/src/main/java/com/bwie/service/BillService.java new file mode 100644 index 0000000..18b8941 --- /dev/null +++ b/src/main/java/com/bwie/service/BillService.java @@ -0,0 +1,12 @@ +package com.bwie.service; + +import com.bwie.pojo.Bill; + +import java.util.List; + +public interface BillService{ + int add(Bill bill); + + List selectAll(); + +} diff --git a/src/main/java/com/bwie/service/impl/BillServiceImpl.java b/src/main/java/com/bwie/service/impl/BillServiceImpl.java new file mode 100644 index 0000000..48bae2b --- /dev/null +++ b/src/main/java/com/bwie/service/impl/BillServiceImpl.java @@ -0,0 +1,28 @@ +package com.bwie.service.impl; + +import com.bwie.dao.BillDao; +import com.bwie.pojo.Bill; +import com.bwie.service.BillService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class BillServiceImpl implements BillService { + + @Autowired + private BillDao billDao; + + @Override + public int add(Bill bill) { + int add = billDao.add(bill); + + return add; + } + + @Override + public List selectAll() { + return billDao.selectAll(); + } +} diff --git a/src/main/java/com/bwie/test/TestBill.java b/src/main/java/com/bwie/test/TestBill.java new file mode 100644 index 0000000..0d42cdd --- /dev/null +++ b/src/main/java/com/bwie/test/TestBill.java @@ -0,0 +1,46 @@ +package com.bwie.test; + +import com.bwie.pojo.Bill; +import com.bwie.service.BillService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; + +@Component +public class TestBill { + + @Autowired + private BillService billService; + + /** + * 添加 + */ + @Test + public void addBill(){ + + Bill bill = new Bill(); + bill.setBillDate(new Date()); + bill.setBillMonery(100.11); + int add = billService.add(bill); + if (add>0){ + System.out.println("-----添加成功----"); + }else { + System.out.println("-----添加失败----"); + } + } + + /** + * 查询列表 + */ + @Test + public void selectAll(){ + billService.selectAll(); + } + + + + + +} diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..4e206d6 --- /dev/null +++ b/src/main/resources/bootstrap.yml @@ -0,0 +1,22 @@ +server: + port: 9009 +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/day08?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: root + password: cyx12345 + + +# mybatis配置 +mybatis: + # 搜索指定包别名 + typeAliasesPackage: com.bwie.pojo + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapperLocations: classpath:mapper/**/*.xml + configuration: + map-underscore-to-camel-case: true +# 将mapper接口所在包的日志级别改成debug,可以在控制台打印sql +logging: + level: + com.bwie.**: debug diff --git a/src/main/resources/mapper/BillDao.xml b/src/main/resources/mapper/BillDao.xml new file mode 100644 index 0000000..de525dd --- /dev/null +++ b/src/main/resources/mapper/BillDao.xml @@ -0,0 +1,14 @@ + + + + + + insert into bill (billDate,billMonery) values (#{billDate},#{billMonery}) + + + diff --git a/理论/img.png b/理论/img.png new file mode 100644 index 0000000000000000000000000000000000000000..c9d855ee9f5ecfb5b07036baad050baeba6ea341 GIT binary patch literal 22174 zcmdqJc|4T;|1Vyt5W+19MUo^!gk%{dTgtu^p$RG56j^4*%(U2UE!HgA5+d8!Wtkb7 z$~LI%h8bDLZZOPXnE740yT9Mh`Fua$bAIQX-#L$Sejff9-E0g%k%kqKCkOf z3o|3W17Zhu?b^j>VtmDF*Dem)u3fvIa_tAcDLNLvxNDc4yUCSHHo?yGBW!-|%p1*&g-fEEU~% z>4x4g`S50S!e-sXNtJk;uvF#S3j3^P6a9MiL}$L0sZ~ZF)sH=T5=_G~2O$I7^NOXr zxZ_N9Bvq+pADM$+_V5tat1`Qgbn@`VBwD7(7qui`fqa-JRpZOHBH;pzNN~2u3XWXZ zK3h-a24df}Ye0-`$iEy4{q;w6O-a+17MnS>iTw3<<0&Zu$Iho1<=;pA@jhFbP22RT z-Jm)CeUinzvJ3kQr*ATfL1F&KGmnKqsR*FEfS=o5m3%ZyMhCgp-^iDYJzL{D5(mR5 zQgLkT*47j#i9v!#zdIfE`!`?0&Mg_zuf=Y6Vg2A+#jSr)8n&SBh5!A3;6Rvl8NLBY z4axql%(2ZW88R9UlO3==WMKLGx3}I?l(MFWZfX#kMs3fzw4;%0@-F#7SHu28D-zQv zS}HmD35k2ntTgZ6f;e4J)2mL1*ax%q^76X-!Gg+1|M%t%)~fG>ZItS<(dG4|}s&cx@2LBy%RmF2<@@^eH%bq~F?TG8Y zySJxP@jq)g{X(z>(sAouk<&W(_%+KOyF?cL{qMXyJw(7*p-fh#tzo|GH*4aDe+nx7 zK~sZeL4-5E&7msWTz2W-eKa&^kW3AgB@~jNIu<~aum8D8k}@PgB7dl_isr{Ej5b;1 zZ=Trd9o_8DgjwwOGn!m=QEDUhKb=EWthnCX+BEg^`GT8o<3}mfbhv{Or}!7+;EN+N z5m?svDE+QeqCAaOe#DNfqf~=-N=$`RD$Z3^Tb|W98*vb6$qJk)ub-#4#`_%`@=&R>m$0b;P;n}=6Qjl=)rjK>R)vqp24v=Kr zMJ3t&#iaPn`-eP1sfC*v zuqWWb)lSs5>ZeKU<_m2$|E6wDshxBD6v#c3=#&{>0Xfp1m=R|_Kz^B}l;(r9)B3n7 zNw@3!BKwls8gDqjYGv99@P|ZHuIydAefH}2d+{1WAAgQC+$c4TLeKit)RAIyWy9wg zYY(B6hO+q%`-yemIRuH(tXe*{H{|yickqxoPtbT4lBSHim>NX%HAu!G9)4Qb)@8CM zir9nf&(eMrv`cxCdF!~o*~iva>n=^qB#&Q5w?3Qhf-qcEC5BuxQ|KYMquGO0N8Hsa{ z=bD+1d$Q!#3+=_d_iRy~j2~ns({K8tN3Bo^2bh#EY1TT9Qip{4N)vR0dS;jB*!*$Z z&p128O7YtWoY(e3pNS3ubwj1I&U}m03v`CS#wQ#-u=j|0t;oJUYr}8qUCntD8 zZ+;H(Q8ON(Iej59_TcS}0+txNy&(yS%X=v?P0lEXui+l3fAnbr7B~pZfDb{f_8?)o z1O_r|=KF8C?82T=LiTO?!d=?A`#UUmXE?*QgE5y#TytOS$=ujZUvz7HvE}kUR+s1q4o)cxI zJH;_)q41ls33z~RH`U@CTWF%*g7XH}`9X1Q1R zTddL3n8l7d^>GM%j7@v7_kl|{+)^q9SR^%SiuC5g!PLFMBcU5+m+QKpl~AR9Yo$3G zng@6nNv;pzOFB>LvFnvvvEn~C-6l3l!K-#^iIvqZY|fz5ScaOTbK~3J$<+TLLKzt) zsS~sqy;Hf5T)ku)iIHHshRC*RmkSi1@tQT6G%@U=)$TZ~3h~XR_rmsQYY+-i?DnT= zmY1-Pu+X325iqHngZ$oTm~Y#60INV|H*v(h5}in|yF1@Ja%v4S`OW1bqc6fm!T8P$ zXuh~8;QC{anrPvP5x=JodSbSw56~NNRPj4ho<8g-`&AKP%VTf>8{Kz_^dY<~np2y) zO%@SZ&?6s}`nDFv{nv1tEh)GX2F+9llV-kjbrnowuQxS#TxhtdFImmbL)P$yG*t|X z(igdDQ<9MVyKH3-JA|%8UMzb{4{+{;!G|$xz58ls_-LIt+sEWmWl32*_#RXn=rfBh z4-DP(o<)@G_AHKH_pJRed~V$3#=s)b?KMTK8NtA!5TZk~)L(N=?Dm&HF(Y@4s1t}H ze5^sO2JEvTo#XYrf%TF}_Bueq&NqJda(?7c3Yc`vnYx$Z^9QB>9D%iEBD@Ns(DxQ7 zqa1LjZ@VZ&)nDOJ?+6}vTomo*t)EX z*KVZa5^%kX#X+aWx?QC2??m@r-P7tK;_!xgZ@@aAq?x1^0f!Fn#GNqh0!e7Uw{t&A zZ3AIW&`eqIxe@TzSw*D9UyD?NwU#mg9?`GWUTu;bUB|CO-y7UP3NB0gWC8&>*Y&3ycr&%a}fYWIfCd3u0&( z>d3HL@6(#i2iwzDik?qHAqOWxic|W1vH&ijQ|yhEg3_euW>s7hS&UwIf7L*>yFnN| ze^LreDw<;-HzjL&^b{SEEGKvA%es+nQ4&0ydX^0rGJoU6%brtV(5@9bcRn2T8w?-P zEG$cKNlapYcDNh9sFz$*GXpx~!EPO*RBJ9f6>IKk)VkAHG4IY4rQh#`9yL(7#5dCr6Yr`AHAOHA+lZX>!B>~1tJaR7(rf2kYF0FSllk`}eAv7d zRIJT<6^G~WjP;$U{@qOB;o>?`UDQK?w!{;;qI3i(p{Lg`A%C4rXs_I+Y~_hiv!B zW_vBCLF+y9K=*M;BUbCLSVbFjqJNk6UnsZNM34d(qY%m25_xGJU&&j2$!_!RDa})p zlr|`oRZ%bFKM$>?bbj;g`7$-RoTe(xijbi-yTlp5BN6_77^iZk5WfS4N>^qQQEcJX zT6Dc*xonTu5#lYUgsEr*!I=eyZn+n8He^R-bYKU0(Dp4cTd&*wSf>2ylA0oizZSZ@ zj*xb4KXbQ&46JF@E>#kiB8A1ycDwqX1#Yb^oSD!?FeTmYqbMtr{03VF-(=IYxiE`Rp8YgWB2Nf%?!|)t&k0^b>UJYqZ2`*ZAjw z{3ymGJv?IHy`YbXN5;5~S(mmyBhn9mkuk`qTC>RxvOOW1;3S{;yK@l^CyOO zrI8y-1+coBJL^orp55EBhNIOS6(pL(y*YWUdo^6u>7XdZ8^sZwbJ;wXpKh6Vwz_QP zMZR0lJi z;SjXs)PUa{m&5MMbLMSj5t0e>)bL?xbpL45L_k$~ojKNJ9~=&nPnv9V0ZGfUR)13N zJvP6fzlxtdr#Y3HfKK&;eXi&E-v3_L{UDkOS~A$cLYNgRRneg1naZ>H`WM?&R({A> zqx8xa1Fxj}QAD`Okn3d84qCT$)3X;oQYVpCH6rSXg+8f<#=cGM_ilhS9d$;LpGCJm zpF&ZH)EY^Iu|&wU6m%5-l@-J<#%6V`5Nacz^LHAAeG}aCH%e7#3XxU6NWhgHIp>AA z(K|thdBoMs(Z}vI>x_vzby_f&;Dbcl>m*%V29s{9Molu`6oA`q@~1|*ELt%0p9}bS zu4R&AzIKeRn6=eLmMzBa|EuX9Cu;zqct1+UrM8QXk-k_k`92gQxA_zSVi{o7DZo$+ zAA%VBtj+x8_cTtqO^aHuz`>549NR8^n4c>2;7*T zGp}9hm+=4k#1{f+*aY`VPoVriHTl1pEB~VRCwc$h(EHsx#~L4L(*AW0w|+9`&WGb* zuD|Ll|7SIF&NessstGdC*5%1rn`7oCo(%;`iM@jjIaUVTB|Djv3JFl^1G4Ug<~Ahw zPRn2P*pJqi8SFea$on!q6fZ8*Y7~x|Ytp;H^%B3;P&eG?Ea#F$n2ur)(*X6P!IWO3h4yIPW9tf_cEZID-{PuKR|D{H%5bKa@9Z-QGc?nk7< z%bFS*X4zj#2*|~Q|@i=YD(aqIe+WsJ1E`F zGD9w;qyq|Twn27T+7r&&K8Q7|(QX#0290l{3ut$+fvSZ1=Ip-0KuRsohR#m1LEKFt z_D_H2wUSe(qqro~!*k4t5uAPZJlP$t(P9TBw^{o76*Wm3WBy#B(=CAuH<;h?A?s5D zE4r77YsrY8m)XM{WT^=MCk9GuwKdzrC$O0$iRJul&Vu-^R(Nby?=sZjXyE|vS>y5} z*frpSdVavf5*V5DejU^TJN`H{tSFMSU>$?@z+dX&GdQMq#c`zAvl(M$1 zHSB!5{p*OXp!M+<;yl%G2@yOaBK?k3Z(rzt`#XGc#Jw0Bl)hiPT(d}szGg|JEq}lCMKIH!Ef?zmDSeOk+=P2WbO-xWF-|A2ccNM6sEW#z3D+71o z1TN^HMgkm*_l0k(rK=k)qFKEcLaXuZ{&W$cp(iWPr zt)_H%Z&S#C$Ikegw+P*M6}CzW=M_E}dfMf5&{I3L%4U@#OX^YtEve3f*E=2@QoYf9 zkmjjUQ7SPW!;p|0Q+*}1LKBj`J=ZMLv8%4LoRlhLsP8PRKuAsVe;YktiZ5A4t^%8X zn-^w{)intE~|f6%cnE5EC^XDkF-Qvu4P zJY27_CaZd+v)_H+e-s1+02HJ*%)&zNq8eXuDLS04nfB4Y+!`Lb5i{u=$nV)J6w@b6 zaikOANl>y^3*3IsLc-{|M@lq0nAuctsUYsbauZU(ksq1lM-PjLzDo*WRRk z^f@7KvUYQZ|9FNYJLtV841d9l9E2Z&jE2++>oy%<)!JFw=O2V_lngxiGSfj1%ey_G z78b66@v%uB+*Fp-K2;20!ainIl2K(DERu-ub$Z|o={xW(D|6=Vb8$*<8L?Sh{mjV+ zzG*65&!<#__Tixu48kFAs`G@3eCI~FQhqXU&&Ro6rNw+BNB1g1u#0tA9^j&Sdju){ zpG2eP`TqcaGPsO4F7+`s{&6L|DF2&8mG+h3|$z%>mE>C$9Q4Lx0y?{DX#m}Z#6tGLM-R~b0wqUyDzbw{$8gYu^Gk? zi$A&Elr@FGW2NNJR2rS-|9+I^odip7e8?GH>j5S~7xY^AB=n7j{ii~SkzJ1}_K`f` zz;#Z8GyRPR0u^nl3i`m#;_mNIvPU-qHS89?D|%`%;Ua6t=ovgc)8LcQH&UUd528NM2B zuKagt|o(@*&7iKlmu7o8FG z(b=PuL;5zhcR0Y#Ex1z2VZC1?x)$o)p?r9HBuHMnRFi;!l2WTAw`m79v`@5G6bBtL zaMP>$$b@v4>>w|%Y@?=5eVTs_{$Wklh1IGtyMZA6xj_a(q|&v@rM{QS1zdRGJ{K)L zvbX)1;5U8z7QL?lqKhrfAnQ@R?k#oq*D%w@AM62(F#VJg9+d%QS}xk$9b_kq>bCkN zIp1L_=;DJC9VrrX#2*Rj43b^dI=oW9Gs*)`H)%g!xP(KYkiI@pExBy&iy*btjf~oS9JHnl*z6I%}#5Lg^i?Fp4mgbHcE)?)aHo{cu=cO zGgc-5A+yuq@iKr1=D-GRFW{iG_t-OWo`uynQT*FyQ$W?Gx+`Tx!$H*2knuV!vi|1l zA6W@G2VcKHRo$r(N6*TK6pS0DCKNnP5Z`o&z$o>Wbg)ho7hiRMe_VQSw@E5GDe=jC zN(vct<9*zv+Y)!TM3n*&5u(LX=g#HvBN2Eumk1QCwN>n zXCTW?rC96jIB~}qVRG$0AWT54!bbFzZd}k=xmfjbDA1_{B#U}PRg?>%)mshtgl>9} zzBziUKGeV6U@^=~lap%@i={x0WcB%W`=YW+lHA;)%Y0ny49ydB8g9h4)y7>r+WzK~ zF5=?^H)8o!J;Tm@@qxoiMKQ>IWY(Lso)-1zL7HElLKrsfnoF;JWDgE;>jz?=T#a~> zl|9qAb$T$659sE{q!R>2q}Uns;xlUEP@oQe!HYbg#29Aght!i|a%Dj$8S}bQrh+Nz zH^;*6$P=by&_l0Y%gh(2?hZhi`2mGhEnztl#9PBA;i_?oqmF&dC0AUEM^d^>*{k|~ zvFH0t$dJ&LQvRHjnwI3N%?>3S8DT`UCbnG0pP>E&i(oI^ac=i)N&|hFR zZ`wL4C)-kBIplAp9ak29E^kxDKj*Z+eS>&7W4c7~dRvPHZV*nw;g0h_NVwbFR zwUswZs`<3M3I-&zF&KA92aI$-<>9>d^vJh2rq|yyM5Q|WeJxJ8^uMW{RSELeD>r;_ z>m2(a4~_3bhlq~;>PyCj^9o^uZ`fn_^fw7#!)3A!cYpM$1aCbY8lXbIVH$6H0ZUkd zzW zod`w~V_u*l&?KrJFWcm3o}5(J9d|v9*A-`RzUhNt@;qTcnPmr-M>KNvPo1$!(b(gt z?z6vmY@dgt&R(&H>+|`deoTI|w&6Pl6tn27>ZwUvSUR|ko7T&qxSgCof;Knp-TJHk^+rft+t+%0O~yF6q}(^)SMVfxJ3zvyCJ>AO%Om}1ooH8_@vadH9VrE5o~ zng@KVJwtG-wCQ<}bczn%$_D+gOEG z$bYP-b{t&qh!s3o@3H-7l+wBo1sGp3=R-FnEaL}??Sq(Hl6JT)0*B!}^7NleMH$YB zBk%z25#Bnlc9jp|*^()DYQ!Vec8Z78^13wchc}8+<=8Ob#gPORQvn zay<|4>*)W{)X?qB6Ii8cn2bSLCH9sT*%tYj*=U~~`mR4(er-WK=0#ts!pkVAc{TE3 z)^vSIcg#xmebEbd7@N)arRi{G-S{Ym_UB>s3j`7p^kIDH3QQ2}>~sOz-A$0d{KR(U z(|kBXwnO%wFHp(4j9W$&d_dH)`^1N&uWp_Sso_l~C%N)GdG2&6;O2!s7IOz6t%`xM zMs+-6NT-Ey45YOMQ$K-~b)iLkMs2+bnIOH)Z*Km;5B-p*{ln zc|hIE-1vQ1W4<#g&%WV$vS&DSDxg7sq4>FgH0?~?448DEddw5D?>eJ;x5rq6dh=*r z#K!4Bt*NnR#}>OePvwLJ*osO0JZ~p1{H^)&<%dN+fFA;ZdNN5T^Cu1SaAYleKDGu=xw+5!%Ku;yC;&Ly%2w^#_9II}{sBf8ylJj&a6HZyGvEm& zKX!{glv{a&Ho{NFzTDoF!gMXvj67B*myE<+B;&JoYqJE_!@t{gjK{=*sSEoqk{O-r zhN9^7nfCTuw=+VyG$<#@NwH&bER#Jz_^A=fWNAm$-K5l&m*xeHK$U8o6WtnTN6t8+ z&Vd-X56d*Kp;TqjDG&UE3~4dS)LY7>#AKZ^ z&qz!?Nw-g(LFn(~HKp9X)OOdHHyr8`Ns5o1#|p}&Wh6WmgT9UEud3@gY^t(s?Emf} z!WcHE{;8jFzt)F}4;k-m+Qe@;bkr^ABQgZ_=dWi_)7P-&ER&Tx7TLRcT4EcAcPu?S zE*C~iqV}7`ysp+~#o<4Q`b*S}3ICy(skL(vxeVbPzh*H&iMkMr&rAO~Z}zzRGI{^O z3j1MK?;Au%{rQeWK%n4GDqxVr?quqWM=$tzR0KWE_0Pmeyk8)(Kb7sfxr{MjZdV;Z zdjX4SzCeNb-6_F)LL;h@0t3|yupScJM}4XWWVZ0c zhw7aqjKt6;Qe(^hxs>S!G)*;TPv+~PVUU=N7lfbGyQKs@%*%LQm zdD2Y{f=GGu9GQ{45%tmU!3ZnA+2GA`69`KBeT2+_O(kQ5~{%>s&wDGxt7SPc-i(crpyUY`*sh%29q7f7^6Q zIs5ygCo#oJ{p?qs9!J~me1bV+s3C>^0@auZ)dP3#T`uT^tCH+3ovs`Z^_6V!X<}hN zi&hEvckYx`*vW^d9|PVhHA1Y3 zoD1W9+wG6mv+Xi+1My9{3`&l&W1<}7^eX{gT4yP8`$%?EgRmk;muG)(lDlunm2!Q% z#~NhfC(9Ivp6tBC6uy`89gMrzwLL;k+0W6lyL-;=4#dN3-|H~S3z>69X0~p<;#RHTdyeP?$Y_}n#G zOSfrGMSX&^iik&k3~jtZxFB1gJ9UWaJz%6zzH^|OxAO=mdQW{&B76-}b*Pz%Zh=?aCOh;5Sy?<;qwJ)1r!?SOF()wA}R3%Jh z#4_1D^W=^_?Y5U7Wp}3V%?p}RUtDjR6lM_@b+)y_-prrHfPV&$=fl5u_ib_H6~h_r z6$YYq`s|1(D@=9`^{M84@TpbqU6iz409KrnbFr^ErTd~TeJ95Og-~c?-YIKOKP+~) zX!-}}sZ!!48wf)}`lIg^J(96kp_QiEi9w8~-xVflds*`)>FsdQ-H$-ldu#)g%p zspaW^7Jzw4gdlgn2zon)NB=J8?w*Hs!q#vfg>~TB% zNxvY;DU9}SOHAq_Y?>S^!cPTkU3`6u(Z}MxTYjDn&@9?C#EoEnB*HI!sU4ts=dG9@-jde%DnvMy%C*<7`~)W(M>cD214F&{W? zi*VNlhCzy4i*cad56WDw`*E!kUpCx7FcmEZ(7g+D-Z>hkab(vJ#h_K;vpq?QD9}mPV|Ifx5$_gR}^j1Kh!UH^oqT zi?xhM0xlap=d4P|%USZg@&*SEb*R5?bHi%}W@1P`LZrL9uezDEJs19vCg1wGtVnde zJHj;Mag9^cRsrFdnJH2|_>{xV^bYY%>xa!@&|2%n%PwZ`0h)MamaMBdgMFGnbaF2! zMC7=wde?^o;WTy{B~t~}^bs1Em4j8qLq;ABVNhun=Fw*^TExVc%o(pbkFbq~3ER@6 z@}@V^G&p8iX%ltaw4gIq4deme{L`;vcxzxK$De&gs&*-AnN}MlLlh35MBoJ5@VYUF z$09Z+KKw$o;BR$nn(HC^pr;z?VWm=iMKImn& zHKABbZK(;FD|(DGjRLJG%s&>UJhxKOzc*mP6iy*!#%+0&QLT z&3w^F@zOXQkM`=g6_BE(e*C8N$&zGLMA$}n59N7=)TZ2wq*!8;cL!?ur`h$ZuJ}01 z>|Mj^L&~fRKJyIiY3JLeRfBz6ZCRR8pP(T34;kg*?-=~Txwrb^l=ML1o4}$Pn}zh3 zoWazNGHr^J-n%`*b)Qm-H!ZZXL`%xsz!l7|ejR9j`>=@AZ-Jk+{_x`3tyKjzqkDV1 zayPK97~g?kG!zPa`lOyd>6#ZbTWeqXsB;B{ba*9c{Jf5e)pR40eD7U3b+_H> zrh@6rl}=uEt>~P}r3UpMA^d<@2T9y~9YsiQ5o=aEVLf{Ro$p#vGiPebe!`t%P3*AC zT~z4DZ&?_sz{7L%oyTvPL~+{QHa7*AL7l}!qVDdZf^H=I&>UAYkG@*nHQ;;NH=pil zyp|(8Ji_qe+@jp$ju@$6UHKxi#l3?M^rnC<^9NLbe>Oz&+^I(Rx>xydYpA!+N3io+ zjO6uw;X|o9b9XJef02)ef0GYe$eP2KAjgs;~ZE05DcGl^%XyQ7lO;|dFXQj6RC_=Olz3AUwt=Zk;JI2 zR)}ZJ(Rj~uV3E3a?%TLucH$ZUomHzsF~~6eURTiR4_I!p&t6K<^uXoY>j(>{!>@py z2S@=}e58p!$rvm4C+ihK>2IJV5m2vvK(Q$0<#tzeBq|@HHXP#S{N=n3L2Cg6kc_vQ z!EKA*15S0$oo<)`>qd=q)~?@ZD=g;ve$6mYFUiMQ7__Qurt}^cI`F; zFT-fkyH`JH;{WPNBi8}f!XJ1rTF88SEY!{Fe(POZB~0L@Pua*o8?7nNca1TQf1F4b z;W*e85b$DW_L^M=*u}zy-5D+7D+Fql16dQ2EP}|#Xby*5p^#J^_XGV)0vON!>(r%3 z@YH}c0Xc*``PO$}?#6~8G#`G=T|!$2I5>$!mXm7-H!k1e%f$k2ya+Xu!j z>w6_{8)50;*a9z>GK4>!DsP+%zV7V7SEk_@9txGcRX~D!MIz`gK-D$r9VG79P6Qp6 zTn%S)HXp8RWzV;+IfV6Bh4xrtd}bcB(^E zqz%^RAiTzVz?UEo^e;L^*DRb0-H7B~>NzV&>dKa;S9i{@^|{Wx z@Q2!Z$quXTY{%Y*nnI#KWUZV@Yo5un_pu>%0#>qjlGlUCqe#(>l^VC3JfFoSfF+B5 z=E#2m?32_ZJR(MXMs~3MnQx4pEsVD8w~tolCFk=VhVejNGVHB}hr9b>@96yDtF6R= z*#3bIuhsh5n-cqP*xr}&aii|OtoGOYt~a3I8(TuVzmoe7)IU>!y`M*&cRKDi*S?0! z9ukcxzfqcD4*|U?(a!eOx0pKa%~Vf|71S593Lv4Eou4!EE=LeKA-T8J;XqDr#X~o) zzl9CC%ZI2U7{~oI^-h1v znj^=UH{9dq`-8-0&+x6=M{1^jML%eobjtlROQ9Q1Q>nG#^XcydfV>L;y1s z#=jxbFx696B~^^z93vM>YS#ccG>$|mCM>fC10+bs46@8ToQPjbJ1-=uA_{N^m#GsR&Cf9=vc3XJ~;0FAGGG!u8LA=r`x zn>)KP`iy@#;MYNUL;2M^$L*>FHkxw)xr2?`-i8tyEyuPWnKUw_OD&@GE?;?HQkfOnr#G z515&llThhWa?nI>jB`_X4~r~q_?8{>0$bjh!9FXjbjT5`s|4*0EIJC?jpxm0`p3 z=67?~{{Yg7f;%9ccWq>~O{=HcQ!@R2%a3?Tm8Q*eDJXLn4@bCu2K2OiCUUb%@4?L1 z|5VOU`2RxAc+&Ata)$B$q?}>!-Pe@A0qJ@`*_CiW{M=j~!NY7GA5aZlTvu^$N$9esIHc0_%Q2Pyh_cD*xK&w zxDJX84vl!=*A%jb(G=y@`ub0NfdUWMlPNrJ&3rF2<~t|wsnLVZmAC00JS_1J1UlQy zpWh|3AX@GN(KvrXsKWh&LSpWt6COy#e`X89;}xJ-wO3wO-uFCowrsu&=}$^zaR`0g zI9Huod{yUxMEbVJ$qJ7fQL}2DuXBPe_R%X39ZsG4vXQYWS&5aUY%Ho)i${qUV8pC+ z?(Yj?Y!B_mX*x848ATw=`TcX0JYn%z8OE*eBP( zVQb*|-sMNC(W!0LN%a!+x_(R%NsvvqQ4qavE&rr7e zH@}3vqYjzrw?)5qAB`NDlgxWLK>f6S?F@+~;7=S?hBLQwUU>=47=%Itetu^5RvJM* zQdMU|h`U`tl4U!}hT`5MrPG!JX$lg5vT^KUwSem(Q-D%bvCVeM>Eb)2 z;uz<$z%lB$k$Fm%Hv0#q^9F=ZgTd=sqyL5|-JpFxoT}ILF-sS8$2+x3Rok7y7EtHZ@>zjebmOgy~|~lW&2sM*0dMe7d{;KTg@nR-Kn5m1S~?aXGQO#@Nc$Cx-&KcDxMXKHxZ=hnkiUc zvGyq!6g;R~rK z$$%0a^k+3Zt!(i<<|6K^j}hz!*@lud9mSiy&x;coe8zNR%d5}T$lFT`!~wMAkM3b4 zk&lbEFm(0;v14r*r52hy_ z&bn2{OAF+$kcd*lDx>+TG$K;#E0Q8Yp;J$vjC`FBumx0)HF{Zftp_&n?hO@A9xHVY zurh&pc{SsO8{?(%&()kmJuMtM4JEy~)i>h)GqQe1CNAZUv5}BbVQZ znsfJq0s?#pRw$qn}8D|}3m*9IO~ii;Mb%FSVX z8Xx9)U$+t2OoK}EX10oF8aS*dX$jf@^E|kR`u^jcFteKG&8AQ{#@#(4d}33t>cLuO z;z3uQ1yW%RJ{nR4qic`z6la4$(XR%G7c2T5qjTHCUeHH>$uTE+0Cwm*Qs-`VCx}M5 zj<7x1YqwKE>}!*EU3m<-M->W_ZoENGy}8| zH$`;@LmF;<3YmAfn)<<+n&J{;S+$S>PDw-Ghz=F+YS(kYtrmh8JEukoExwiV1cK(F}zlGYQGrSu5-_?~KQW@3_mJi!L7Nr^|MbX|dw=^08vRN|Vrf7nuNx*sy zs}@3n5s~8PRu^rUvBXiE-6Sr0eJ^6gymf1G)Zi)L4ZOo|Y7WhaUbJ_~h#!l6A==kd z(W`27DmP>#^~|%MW*?N2a&DU+NFt@iH+kQD-;j0TvNAynzq#i6;sDL=Bd>O$lf6q~ z?XqC&!JE5DArMX@cTdac42NWm^CjoWscOq<%PF^tiP0w3HG2p6=4?~w!|f%DXh}`m zSX;>Pm)&2XoefAYy)+-HLVFLGd7~pn5{Z2}Wy#hmNXI<7Z)G^&rGn7_igdl-0vC!J zZjYR@xU~{}*^+F%Cb6Ov-1Q;AOW%Qc@H5UH6zmI(*=f4y}$j2#H z!c)HG?MbHXT@}tL$_sHCdBb~d_VA9g?RK^x<;mkW*FLmvZ0>h^^q!K^=*ww|8G*lu z87h1{TwG=QAx$iH-dRoa9fHbQPg7thOBaeRrVlQ1^x3(A6+Aj<0_Q?WZ&I^d{ALB8 zZ3>+P8htGBUwejqr=s@1(5|)9`oCm9f4u|YkNJod)VDPEgYcb5=+P-;!m(k~}V^7FT})c!9!?pkMv< zm>*b^uxvx+%9=tCm#yZ2)gL%%B?*!YV_3Y1xu4PAlH?NioH|Y1X>V6tH~=mRjGXyr zA9~$o89C9vX@QY93^RX=AN=m_H3#VR(JdOR+$_jP#opzF9IJu@R0HYm#sWMZ@sLPBnbU)dOh5`Sox?&joc$aB=ROjOd`NH! zr=*;y4zWZEh^n*#c$`e{dSD*sBh?&~?F5sputFp|r&P-}Jkm%~p{hW4JZzMDRmIjz*W)Q^?C-MpB{t@@nu1nbM+W>?z z=3{Tg#T*VGBm7&c|4Vb1D9c~9&;4nzPtJx!$W82a^_skJiq^lNK`MDWENJ9rNyJ9h z3pYBisU_xXZQLRLf<~ZpdxzF=Uhz=JE)uHrbgutbuMCOT-a8JjVT*;{-xjZaz~c4& zkN?8r^|%wD{d)YAf+pDHG0$|8vu*9IzSL?#Spv~V8;r#K#ctm30q}E1fNK7Iz|MpY z`#2;jO(22f+6!u6#dm!C-;Le>{z_s!(cKfU0##IPAnw;U5&nQPGfZ~lSi z%x5P4ra7}^k_k5CP^$VKn${z4DdjEQd_|t-zwE?dEa$2P7SpsPlVTA+x^|KvZs~=* zvIVFlKPi9}>;1o3u{u6k2S%3w^u_4sb$*)Vd|>AnPOafQ{%gh?vjyibKfPC^e&%g- zSm@XdA~1_KS$o8OKId;pgZIp4&V&l=>E@STIcP0LuS^P_)svsJ2gAZZ*Qls1q%+ZV#X*Faox zNMmzrWS4@^^E)S(Sw=9a5RLX{=Y?aru^X<|YjeJ1s#U`Q~9^oNRQ&xKI< z4mEoGQV-zF@{oP{u;Di;?AYPD08_F%uURtxj(tI8539yaQy?5J@PC{@RtyEKxu=Lr#?HqGkM{bHtNtUnPska) z7VKfBtsysA7{EMte>QPfJs5MQI|Dx0yS*lzccy%nFX!RVg|3u-2w!ByLb`j(MQ_PM z(UoW5;dg)exc1ox_)ph=)<5rdUD0@5} zmyq3sm1onm^1nCYL6`iw5Dkre^fTPG`>O>=mJtT+knjVIwn$CAwX z!ZW4-7r7Bw7ZLZ%K~*mfmTrj0%a_}9jo^eE~%6@mP#qDd&gP74_Y*qcNGa$ORkKSB$JV{pm~wlRPadLMnAokY{krsZz=zZGMXq(RJ8{jCvx%k<@HjZ=;pla+QI7JZ9LuzaK;IlA>amXP%9M*)=DM# zb<%VsE*vgY`2m552P*icm&|hRtlqn(1%b!h6b~)jCOS=e6f0B1A;nQ5 zVphkx_9ilk>-_iECL40}hf)IG9olfP6E^s=)H@i`Qg_fZ+ z1BMhKXm;~yU&TW4(+O$~p0W)^@z*+ai_B7d#n$S2(1~uJdEZN0)%k91lcH?QDD$^7 zV#me`%C4Ptc|ALmRz;SQ4k0f~L<_>0Mg4>qNx3U)4HM?}?!BavtU`}>Q zW+tp}IW}a=Ioq4h7DtrXOO*<#?Zwr#{8MfdmI1@^fpEy#_EkKcIr3DQ9N)i_=HtD` z36Rs~(eM|{cA&aeRBbf%Ir6L3@@fmew#wNZnZ~B$@H}{hL*=4%b>jci%$a{BnT2tD zPFZKlrKZhFlWEa1ElM&gLo&-P)AX3;ifCn84ccNXZkb`3OSxi3lpaScg>j`^pd?KZ zEK^7$M5MGtc}q4;ka=sfa%~Pw^!~n@ufT)s9cGM+k4zOs)La zBG71u{m~{LMSJ2|t?)YiHvJ|8i|V_1P%ptve)IU}4<1CcJC+mcXoptvdw4P3OWI?P z4Z%NT8y@eT-0l!(+UUxENZZGLq6+XYM5mhlk|+hzVbroqk`&BJ_~%? zMV(G16E)V@WGwNEH5O{fP^w^++n@} zbW{-mD*~vU6WS}2ll&;%N!TYyOJCw%jooO+xBLV|qh#i~C0kS+Da|!hNs%A3VDfks zlaap!C;1NER5Mp1^1ZTM6SQ8opMbi?W+&E)!+tiej3|9a036XL52tM87I({JygMXCxUEG1;|Y_%Umbkee8jfl z)7&<0_-b(Yf|m-=Sa1Q|VYK&0i6l^}9S0Q69qOhI$YtYXQ9{%-E|^IE$(T*LJw7Ly z=xmaZ8%)ZlBff^l$$0Erp62t{S8bOF)IQtkpXiTso0YVATwC9@;$kZdxEwC1OV?4! z!aTCC?1EL{=L$F>a94*^zupF=evAoc#{S7%T`$t@UiTnJrD1n9qhzP-ZM&_ZjMJe z%*n`(EGv8kr8Q*4OACgFou>MRdR<_<<}_#Zp6CF665LQ;>f6(<0t%hwEg{d#hbF=E z;OXBv#-v4ueaoOWav6fmiCD2xAoWdx-C=j|H2Ds^!5s+=%+oon(WkTFFvjsFJwXv? zjhf%-UFr+npWJeVS3b0&t+G#+F{7fye=g3ya5yZx0oT}op+mh*HRnb+^>~U*!y*mh1tn)kbMJ%pR~@hphXM^eg#AvyOT-hSCe*k!M^HhU2%RfR|P8&hEy7SXU~|N1t>} z1$kA_`}^w`J|?TS>hY>0kqdx}d)9)I=G_IV@6WvpB*-?`|IZ{2g6C1#Pkb~mt$(>a Mj(Z=Y9*s!*7feq;>Hq)$ literal 0 HcmV?d00001