From 09dbc18bb8332fe480be97e9e9016a94ff70536a Mon Sep 17 00:00:00 2001 From: gaoshuguang Date: Fri, 20 Jun 2025 10:38:30 +0800 Subject: [PATCH] =?UTF-8?q?2025=E5=B9=B406=E6=9C=8820=E6=97=A5=20=20=20=20?= =?UTF-8?q?1.0.2=20=20=20=20=20=20=20=E9=87=8D=E6=96=B0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=97=A5=E6=9C=9F=E7=9A=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=8F=8A=E6=B1=87=E6=80=BB=E6=96=87=E4=BB=B6=E6=97=B6DCPC=5FGD?= =?UTF-8?q?=5FPAY=5FINFO=E3=80=81DCPC=5FGD=5FSUMMARY=5FINFO=E6=8C=89?= =?UTF-8?q?=E4=B8=BB=E9=94=AE=E5=85=88=E5=88=A0=E5=90=8E=E6=8F=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CPCReconciliation.zip | Bin 0 -> 64581 bytes .../java/com/nmg/gs/entity/GDCpcPayInfo.java | 15 +- .../main/java/com/nmg/gs/entity/Summary.java | 13 +- .../impl/RequestInterfaceServiceImpl.java | 40 +-- .../main/java/com/nmg/gs/test/GuavaTest.java | 25 +- .../src/main/java/com/nmg/gs/test/Test02.java | 299 ------------------ .../src/main/java/com/nmg/gs/test/Test03.java | 22 -- .../version/{1.0.1.txt => 1.0.2.txt} | 1 + .../com/nmg/gs/entity/GDCpcPayInfo.class | Bin 7936 -> 8075 bytes .../impl/RequestInterfaceServiceImpl.class | Bin 10959 -> 10761 bytes .../classes/com/nmg/gs/test/Test03.class | Bin 1304 -> 0 bytes .../WEB-INF/classes/version/1.0.2.txt | 9 + .../com/nmg/gs/entity/GDCpcPayInfo.class | Bin 7936 -> 8075 bytes .../impl/RequestInterfaceServiceImpl.class | Bin 10959 -> 10761 bytes .../classes/com/nmg/gs/test/Test03.class | Bin 1304 -> 0 bytes .../target/classes/version/1.0.2.txt | 9 + .../src/views/QueryTable/DetailsQuery.vue | 3 +- .../src/views/QueryTable/RecaptureDate.vue | 2 +- .../views/QueryTable/SumComparisonQuery.vue | 2 +- 19 files changed, 82 insertions(+), 358 deletions(-) create mode 100644 CPCReconciliation.zip delete mode 100644 CPCReconciliation/src/main/java/com/nmg/gs/test/Test02.java delete mode 100644 CPCReconciliation/src/main/java/com/nmg/gs/test/Test03.java rename CPCReconciliation/src/main/resources/version/{1.0.1.txt => 1.0.2.txt} (83%) delete mode 100644 CPCReconciliation/target/CPCReconciliation/WEB-INF/classes/com/nmg/gs/test/Test03.class create mode 100644 CPCReconciliation/target/CPCReconciliation/WEB-INF/classes/version/1.0.2.txt delete mode 100644 CPCReconciliation/target/classes/com/nmg/gs/test/Test03.class create mode 100644 CPCReconciliation/target/classes/version/1.0.2.txt diff --git a/CPCReconciliation.zip b/CPCReconciliation.zip new file mode 100644 index 0000000000000000000000000000000000000000..6598867c70fbbc4f7b1268414a7e87c66f528584 GIT binary patch literal 64581 zcmb??Q;;Uxwr<(#vTfVdW!tuG+qP|Y*|u%lw!5lsuXW>V2mn@@MGb&|`CpPj-+R)kATGP5&TWw)V z#%>J1UF+skdocFyNobH&5K!4=!y*p2pw?|1#!ZA_+lxv%oMI@<6OIy)XAuS`qSBui zfF_hg2cq%}@-%V~i}^^atbL-TgHt5T%VA5@M;g5dOnE&_z4%N@eIKdswvdJ~O7&ZM zTG#fh2;>WDVSB7R`*`0dSGK&|?<(*X7)52Z4&@8FSl_V66jnCl^g==bM&&t10p#a+ zKMq@e09-;-Bi^4!?SVczae^*X2VGp=v|P2=?zB&!fz9?4MCzaBbxBrT#?p0;A70Yz z_o^wVc34XC(c_FpwOPz2`1yTrV~uXT1KP)bW0Cm#XI*U+Gk_k;CkWMa0EdF$!*K7` zb!SIYK!_P~2gpo<+hA|GA#o5p)y9(Cd3VrP_A2JXgK$`1TxVa1y6So!=!zRNXJkipfQB*i$z`FM=qSDBngEnMy~4R$9|#9;E#$~2I}n4 zMj!f>7yIc4c%#uL$bsXOpt8h)4YjF(H$+4fgxPrrz{e5CB(y?llW4^x2q(d-2@33k zUg6Aw()qK&+v4c-c&@fM<4e##*BiCEkV72+eN7U!P5}m+3AIs{1mytu+mD%~T$R+e z3~2`phiO>EDg#qu$b&oab!0NtRiH(9Ro_8!2He&0m_6y%{z{P@6-R7Zgsb{N!Y?@* zx0g1%kYY^pN?SX2MIn$s5h%3AhdNODwp&7|PKJsmZ6M%Pf)=JFUc@5ki?9IlbTu@S zrKTxbg*-ODvjz_D^ZGoI2Eq+yd|wto6OjkkoNp90yRzjy>80ic7JL63?Z=RR!aSD2>w*e%TJMF3TvVRiG#)q``+ z!!Kt1Rk2FgTo6GA13q7{)(0nJBRV7qcSw-gsK{s{P+WqXSeVg}d`U=`DuxB+8Y(cN ziq&bKjt!femwD;Tw$Gs+yc}Nd@6efTTNX!`zM{~B10x9bBGchb$S8vobj(|lhyiUb zf%R0oabVm|*imT$8oUsll~K%J);NSPt&itR8w8vcDKi^-v@NlxIYo*mjg1M*^YL14+yXY z8dOR~3nh^*G1;g;f13rc^@I9WYA9`Op@Sj`PZ~mC07-y0MGyg1t7^8)5=Ytl zS&XO9h{Jg&E)J;fx!7uNS_(M;X9Oy`>=fa|+ocHh$Eg|zX%J3bhHaVv!PN>v5)l>R zd+wl>*y$xrW*R&E`Rmu`U{gF#$-AVcM<@{-@mJfVv>R0QuTk7CBnZmqCM@@-C=J*a zE(Su!Mltx2u#yQeW-6}gLpJzwl8UP6km=ty^~jImuJo)H8^l@ZD4j}@dWoYi3m1&O z%_<)-)QxU~PmjRcw>h6*OkZ={1$XAatZ;%a5R5L4-YS#nYt{!x3B98m3hcn|I#wQ8 zZeKGqC%IpDO`a{bEH^~0#ia4#mX*6wR!2~$Hbzv6%*bR(tNaC0-vcL8>0>cCCPaxu zp=+ZBbu0zMQ5+UJ%2OqzQ@Uu_W;2q+vnru?Lor#P7qU~TZe$B^ag~(tm$?i4A0-iC z6fo(n+eRs^huZ>3nnJSf5W(VsNK}AU2&cNgW^$*5Iwu-T1}kiI*^&;^T4xomM7@p1 z^kENIk1-nD-Nfmj26_6{5_@vKKXo5^yzRdp@eC{u8detuN2VEIx=PSc3?&oK2nfYn$_T^3!{^s`bc87lHw66k$#-F~u(P zEt}AbOvH6I%`D3HBg=8MZ4DabNL5|ri4nCq3{zuTr^QkanmRxV$Fl0zxp2NmNt(|E zpnLd9z8YZ3jt5`k;~_#7H;tCxx+VFh2mx0_iv&lsQ~e{K1J@P^LMU6%2C~k4K=P_9 zk84?XHk~=CHKd=(sJMamj5^rtj3oLc9Jzwecp_uR&|0gBD4L=>tRtu1Vthu!Qn1v|x^{?A^WBApG#PkW z-DbK#^<78UA|lL~O8Yyli-!;yx2v!Tr10Mvu+)&EGkFkw5Ab-|JYMwQ52~hkzK(aP zWal1T3+#JP-f?&vEwJDvc<6lebKOW_eVKFf`r4!V*b22p37ySE<_OEBJ z)U;(cRM5L$YS_n>`QrVnoGRr=0vN(UiRH5@Hf#vlIEZm$aB%QqO%&-k%?ri0*3I$c zqOGmYR|nPnpu+FgcmuBvEqwJyTmr865EG3oSy{2%OwSXjLG57M+#t^L;y*Lka%FyLSzJ)W_O3% zI5Ja9FfZVntx}fpRT>kI2ZItP?Ir}E(%{i|#+vh|pit|@x3YkOzO_4Ilftga+6du6 z;jw6m6BNVzK+QjosaQVL+CYFHt&6LZm=RILAjO@MAz4_k@+g>jQzzv}y#x-@038^L(#2Vj~IF4cqOfkFQx+w_ee z=zbGCFk+R1YH{?I9yEmC`@-J(B){#h_G=C8*gV-uy(=*wBoYcpOp%iC3_YLJJ3=tI z$ur?7fVhlO58GfQ;5`WFkj=bYLyZ&>%qCE7x(>e}X~h8{IK(OwEKJv&ACNVZHOTPX zPooF*qVxNXHEvHKQrgXI-=LW)GVhW#Tm3rCb$Aqle%a-*G;{b};_7nt_03U^SEo`r zH}~5)C?3rJ?zHmZ!1{A+`t7c!>4@f2uSSK3NK)PZe1|O7_y}l>q)0go%PP56mzoG) zh&1FkoR(F>-Bx{Fchz^Bg^lg9uX;^Yr(L!_vN-?aqE=Emti;+eDFWWLIB{h2gTVLK zq?Y<}W$F7|$;9{ashONkEGklUU1ni+`nm6~x3u9J@xvmx{>7Zpj@tK!oyRRQ+O6nb zC)FKIf#1&^G=o+1lFV%6W5!LSAdyp4X`%kp(=BwLRO^aCxb9@Mo2L?9KJQI+_IbH( z%ggPqOhuiLp#@^dMRFif!o5IeyF;;iav-e-Q3V9?Vxc<)FWGe@8Lie2A{nP&2w4X! zw`;3gY_V`$%TcbNF!CDIsU#5Ro@B@G;-U{2@-+1*=tS@+a=IHUvM-$L55fdB)N9Ac zceHAUs!CAA=Xu=A0j)|!M`oFI?fH1!^eQe>g{fQG<~cGNDncmh*!g0nXowR1_10VP znTj=EW9Iz;gr$F>RO&H>ijfJU-68_~(bA|phGH=7ZgP)SB#N0(Ji(!jO}FHMOr zufD0B*^*lnQV*HAQKGU>radpnsiGiP>p9Qf#`y0-Y}f8!+aoXmKq?xE`%5G4&OI)- zfhXKgI&!PFuFLg36#~b{-!*aeH-`;04+{f;VX-HY5PLe55wFf-%Qdc3sCJ<5HLDpy zHDxaDe4oI7aoDl{iGU;s06-ARKXI7Yf5l<84vzmqV8zPXvPk^M-nR4K^n2w9^Y6V_ z41f_LxDZhCIiXt*QSj(2A|!i&VekEs1cO4D1wSAPd`on{pl>ckJFN3B zMnLA*vK^vrqjksM6#7dmhdH_Ostsq+5tNo~V4daSqqYWv)CkHwrf zHOpfQB5r6NVOP{ppea(PNMD_N2woHtD=q7XxJdA*r7#*YD$6g4OmfUGH%WWMmizhH zQbgXu7b07@mRTDDr9dEB;k(C^bd9a72Y;t3gikZ7q7Hurb09ixqKG_N0nPbUaF$J% zhlai+I*{7OuxUKl^)l=;~`&9hk_4c2}F{qF3D(2gl7~3l^H_$|(Po12EP* zaj5tpq&)DIN*~G$GDt}ef99a^@0A2__8)JoIe#PSoUSQd+jPXHgAb8YP z*d{4rrn3Ez=gm3xUsAJ_n$wPq4CC0CR7fGo6h-{7fy1SVP(B$_1w_7t^3l7SC!8?4+JW%8mCle`ClRh3M4I%p;LQD0b_Iot}}uUhyBRLZhKDWrd123 zZr;0{Z5@dsWZ9$5rrN4j0bRuD18!Pn!3@;Dlip!Z`B(W6(OaGE=HBah1;*4a+G&(5Gzf-eyUedTLB8%-lBI#M z4&Cn0o3*}NjPlM3O)SeX|LuRt3T^o9Et5iu6Nt-dXf@_@Bkm!S#6v-~>xDn8X)*yX&+vhD6<>7k5BeRu zlT+FgynFi-SC&7hix>XcKh4SvXK!63jR46*Q^hcY)JAu)BB&m9TX1Kp{RO_jPMXso z)$%Q+ z>5}wpbyJhfWrbVhJ0V^2uv7od%m;Rm8f@&WU1(lugKN##$!pTJsS;BTdyV>rhu_EU zJ~KV((c<)^f)PL%`afXr}J$Iy1F#C%)({(xVwHG#=bp_ zEP%rwr_Pwl^0rKro23$)5TjVY5|XB|M)*al?AzL2(H?+4Fwbvj+RvX*^8u1+6kFP?zg!9!EteLc6iWb$EhO&ad2CWSW zs)y&xixh-Rij9Sfc$TI>4Nf`mzv<;?S`G!+hz zQ7zl;aVkH%I=s75e>-&^%&UBR`kZu!->N=Y zf;F*WV7iY}22{EbwKH%ZJ&%q~t(27=QpHbzR3xlw+*vCfYz}zAGfTo=A1soDovk%* zaOtpXciA(t!0ioJSl?iIeia_36rPe!HlTd=%AFuEAxvs(T;uMs>vZx!p;gTyfL3vs z@eIA`FsDJ41qV6jKi2EzyJ}7M$K=$#0Z%0Nw^FyJHL0XX;qpLQLkWP;_&X~!pkMGoK{U`a}FaU@vG#T>VAp_3Y?p?na+9sB5=O)Cx=TzR_b@Sb0&3S2sV~TL7{SjA~N;BwK)u= zm(R>VJP4^a!T4$k@=&5}8;NT;d4F}d%znM^Pt5=`?26Bk`#=Z(GBZHf5&;`Vfh8b8&K%a&qK6`Z2-xlw0FlSZqE=1J$hI8K z{I6y?b|Ve-=tDjk!7Si!eI5umWH`XK_v}QT1#nj%-#k|ss(2GZQ|J5yKW`K{?k&(V zp?8fo#{M?m(T-?h^Q&Y(O4I|fhT3^1_Fa6B04)Uoi3VhPri>i1Z3#YZV}fWZoqn-Q zo79DQK>44(oyy3fE-x|)ogty=8v{t`LLS`l-Pn=Z;UL01U}^`iMa^?uV-IsFQo51w zWHO~^BAoUzbgb+Sl)@{ChG!2ym>pD6>$DXojMUVkz+~_3f0C|mTm*VnT5>g^4V9Rp z<+3z)D@jfy-}5t}!iE;i^&)u0@P_c`SKTpi33m}Zu1<3TFXfKJz_?;-suwHoe5!M; zSKWA5`S>V!ek$pd)xAw`ZPB22~j@J-iB1J`88L1|l+Eu$B=G|n3 z246w-5q&~JF~EhW6+Xo0>?jFFs{@p53+-Y)1)QTYLO&NSXOw}2csZc%X)fzSO-Va9c>-{j(DcjbQO_B5qw+5Z|JWBn^b!X%%lhnnEjHK_+|ymlqlgR zw(WjhUR5(Wx@r+BizkUy5UYhNh?EyeVH^ZTB!d_BMe2rZ1(tdRKVIf`d@@11T9iYB zb}(&yUYzCRoY`nD9WN4!WGE|4D#%kPfa*x5Kz>hRbglNd!hg?6HVdcuRZKbsQXUM} zGw5@coa}b^x_Tr}l~7=$XZlk}RH9PAWMY=DNrB`3WCj(?3T#%RR!}OFc4}Z3Ttoyb z;V@pWPfK_KlU;Alx1>y+1%qd$8n0EK3pY-w9UG<@*OSLAStR6Y2+T&$F^#auKz-Ov z;-7Ico(F3+`Elvb=3WAeEng&kodO)tqOnbh1p6YI<*HLv7GXnC>ID1(Ey~Ms#W=wf zu%r;sJ1E6rI-Rbv^czHqiMvLhtD8MG%2Sm?JWK;?jsi*AB)SE4x7>@+q`%Aa@}8L; z$sEiIlv!iq9vP?&?05j#c;0IY5P_R)m@*Ba%kOgrpwQq9)To7>(BTk3BNqGyKbnVki`@_u<1m=MU0oFbOY#u#!a+re`HR+tW9D z(p`{QrrJr}u#5>|7!18ZIVkN+E%Oo|G833C@)Sa4Pz)iYvpdyjSA7!SPFdb^h>**L zGeCMPW_lu%8lPT=R@7p_haWFD>Kx2(@v&Vd2Zt#J)F1UDBx;2>YKPQY&Z>CtaL(61 z9c`<*R<1eVZ8S!mKhmn01V{onrA)kgYxo;>j*r!HC2{P#U1(j@2I`iE%Ik#86;?y+eqDldJ}H zFc9DFTTU*rIJqbA^h*|+eLVr)M=Zpl-hO9kpWA@l1t|xt9_4B)&`B*MnRJBFmPr+F zPZcGF6F8gJd|*qtR=6o~4h;rbI*3B#aZH)(0FJ=Tqu3OQr4%67rgo36of7cmk?ol) zo32wQc;7&~wwEYOzD&M(Sjff~joMqDj(cnPyS2Dsv6 zQ5Y(0pm2+SV=ARBohTJNa8Cz8LlM8wOR3KUuT;)33msm!-D17$o6-219A0tE2l|$Jt)+_)x{}s& z%ZJYAH;?ClFD}$pwIL7G>)}9 zYc!g383FbJL#p03WBJjmTH;YocIm)TN^P!>Ks(l^_FIzLsf+V04ss)cyNmvPz~wa-X4ygws>1kL0-gej8>8`JTb8^2>*m^swXm~YpG-Q$3Y5iPmb3qAf>G9s9rUf=W zc(=WdE@l@|iKW@J+B2Xb6jr1sk=x&Py{@r5 zqfPx-!EwC;_XSb1Pw`p%)dP@WasdTa_*heN5e8LJGKsh30$2}G6KDA>Dc_zk-~)1q zfsKO{=Re$m+_%+)@Jt;@N^+EaoTsX;;H>yu_!&tTFA>2Ux=LMFfgG;UTvt-)D{}iY z-l_IxcJC!d?6Z6=FX<`6eGU=r1IL4-SrWt_=k|n=9y4g|&ame`*M_wv>{$xzr8qwIB2qK| zACu#QFi#RUgkQIyeXM&K_EoKNz6V^hOK*ekegwc00x8YyE1IB12F&`9rlK=ZXVu0&+(WkMxc zkuchv^P9^6b$-SvLNvqT_I?4i#}h*ea4g8v!}omuoh#yDidgo70RY5f{gXqL`)^cK z!Pv;$QSpy#{+a3cmkc9WX+vg%55YS&$+y-`qG;I*KtP}ilCnv-`22&^3Ndo9c^Qkg zg0ff+M7~WNHZ=qx1B$$gJii#qpZJ!ciESFGXI8xiN2*V(iF&Pr>16Uxi*!le3x=c) zd4;h)LwsCZFk~mHq+e8;e5~7!99x00U8JlizR2oSNInrVfYD8W$k0J*p)9Ii3F%rr zfWuBHA4-n<@k{PKm{W=w2Z?jZl?>01A_qi5d5Qd94co-jnQgr{q>rF5j4*vye#ma( z_Cb0#EvrB&6|a&!WtgsQ1OJyO$ZEOUuEwlgS<8xrH}ag8&ZXbfyE;%Y?Buegl@F}S zm96P5UHX%-W$`-gCD$}|4N{gIX|Ydvs9xZ+7Hg!~%7TQ}VG*=FvXzqw+D4UNGpi}9 zg~{iLv7>+T{qiLP6%K@Aslz&Lcgua`mC3cNO@?Eo9It7}&!TJK_;=q&@XNgY6WjsC zESBKm{LK~eZ0AvmF@tGK)|B7GE=~G0HFr@C(jP_};6NT9x7gUha~`TjO99?L9oIG+ zpG(x+jFufQAHrF_$GXYYGL3No?(0;Z+cjgF<%(|6Jo%2wr@Q)^+Ob|-p&M<{n%B;` zL4agsCho6OsMNsb+$_lNr2Jzl#mi&{Y1flKpQqEqhJBPC3;a#g&n%rR0+vclQCKs%i%T}8Vo0S1EvIoIzc72skpU@>A&MyeG47b6kiq`}WW`Agdg97F3wOdZDv}Jd zT<>qLI zVHY9v@mq=(#DVCJEXV}U;hkHdx|(mBgD9(5nHq*82wr3V&V-v`=X zmKQh8t%vSU(m3@8u>U@36#9?AYHV%eO!o(#j!ybEPJi3mWJPJ)1$y*u)pK8Z9;q@y z>8xtaOj!Pw5@!~UtAr#Q?NV|{K};Gv?F2Zei)wtpeLn=WK|shD2x7Pc!4EbXyM4Od zqRe*fkQdGf-I19Q%Msku;clDs-rKFL6Acck$@s;muB-CoP)QqmYTTCZf^-4+n)ff)V;qk24SLmafO<1AoUy^?oY-h z+ybOa!3KCnSpD`+^&ytM>7tzIfMUm}!_)1t)#<%I-QV{Y4nHb&b$z6^c|JZKIE?y% z$(RELned5vnSAoFV#M#cA3h$P-oJ>%(J)+v^iCKrsW}`;On#hQZ{%D9kU&|@07Xz* z!is~m@PnDClE2I%iN;uL9uknmGPX{cM ztN`Oc3`%(Xepw~;w=WJr7>+>Hj26?|ydXGi*B6sNZW|Q7XEB4&b}25H{;b|B(f_4P zi78;us7oEluy6qw1hRrsrpk@f@he`uns`dL%258GwLv!-5Sxq`{whE0%&S|DG6|70 z7Y&N!UT!wNf|X^I&Jx=^F788~89^<@Yuvtw-(R38W`aeYs8l+s^2k{}ah$!4*=l1` zakRJvHgTvBIxqucN)&}>{)QXE6K=_+X|X~jYDl~vc_z|ujf(upL~#S5#c+Pu#NHZG zkmcNpyr%JERJTc;yZ0a2az!Crq=hT5V_FphF+ zL{kWG+rU&EP2X+nPL8!JCyPw!7vNtou<=MFOa626Q~yU8i2mm=kp3f9`liOhHqO?6 zBOy9rLSldqIpig{dmv7krdav_RuhC@tNk9*fUAf#?6v=uaWrG&uxgb#d+W1UP<>i@e-ZK2%93B@ zpu1g5bIJ=i>#b{cA#66Dcx-gpUsNnpBuL7Zj+(T9Wg1Xwp&|SUnuQ6&V%;MoP3`?FfZ*huXg}=uCrsX?cR?b*~nzK+_|OK z-I3jv;{+WcV9usiT%Z1)Y?FROH~E>_o4)J*ljw82_M3-b7jQwghO(*Z);rPt?Kxb#%f>(y*eUHs*3s;4aX>o*Az~fct&~YW|5v;#P zT~aWcL5Ofe(;FrYJ-iJbm9w31((Kj;bEvkkb?4WS0=WmqrPE}5kK#i!$hW$&7fLzc zYo?b3Nw=mLEn=IhZ$}!ugxjoJlXLxUH)rFF%gx*@K&b2Uuer~0BY-L*Md1R*rkK0ktRyNj<(>C>?; zePR)5O4YA`MEZ0X+ilOC%ybAYqRSt4YGG!l1hRQX=!_AgM4>|Srj6QFrz7x0!^Tj9 z{pl7^qXL+P9YSG3m68XwyL=LeF$w8A8e$x1Md0G-1A2H?*R++3cuvhm8sgu1*t**)4{nU`ion&#U^MH#b?6{>{la9-iq0a1aPTT~}P zc&^YBQrecQz|x1U7**(GR1Z_rL|9LMA!3riCRJo$FtRyx`69j3OZAbMxnm$GZUl6a zJPrAS$bf8)`XcOQ*$3jsj#lH^Fr=cJ;6$YV{*7L;Mq37Sd?d*>u0Oq#Td_iRew*px zetY26+0r8q?kyH?^uCbzPLCe$pY$v5KxjBCV2*92*YWK0Qb8-L-s9exm8aXNH8rLg z!bSU+Fsiv(&wWLrgTciBowi)#E4Q}PjuDGl{gKOW$cJy%Q@my}cVD2tN)e88ngr^P zuxHP9#~<47a%5F}7O+?pJ0hya5+1diy-pOcKlPo!pupA8CXfLJ5EvjKe4a%KWwZ zG(m@O@q+#|SFI6efs{c3VbG zA*||!mMJZ=xkBs*JC#+JHP*|yZnWABmkNn;0-B&(^*7D_N@7*sev9at8_(SwC~2d<+Pz~#l&&+C z&a8u3fF$ywq|K@sSW>1f6PaXU&}Aw#SYqvh%1SN463{xQFDDI1>ys8J4g2e?MdzLA zyS_%W$09*t!Kxmy;KgLGBm6g54NaRkQ_ruTug4#Mzv~ABVPMxkv_t)m?^@|Uq8%r5 zYhx#UM@u@TKNlr42V;FBIa^z+e>r>?D_j4WPDK8~rTFgKR}5GTQc%v|OI%fJx*8x| zeume|lC%@Q9HpbO%0SK&hKxfH5|_w>c7j~PB5qW^=%oLOx^cb_@0oQp9H}dutehPlOQL~C^_-aOiX+< z09`vy9-BAiki;*NQb$El44DL_9H_`AJf8itPP`$Z6<>&@&Glu^Dp+^$2MyTFCdi8r zGv0tMIThje*%^G+s_(I%j+=B!U0Db&?KrydF)_t6LRLphl)H4YQA=R#Y%Fkc=LlT{ajo^&I@_(v}^;HZ# z@?Z~fV9-HKsGPK5JGTsX7Cn-Sk1Knod_2t+?c^JmT>0N3!ENG>^Dd7qz4si>NHBJX z_hwkVxQ7=(Sz#Vgw*JgG28XqDLnT3=E2Hx7(8-xz@>icqGj(_DF*wzvmvwN18E}fB zaDN%Mx|;20kV-J2GI?N`TFEaU={2*dC8~YSoD*|CuXG|aWu8C))e!t%=m!80DDvU2 zubS@A<|;z-%ol7yj}>e(J#>O~fbBAlrEj??tB2xu7L;v=h8<&llrsICPq<1sOp%@$ zzb*0OF4Vrv`quBW`ue(HnvJubb82#|zp}m^rrms=FKo*dQaA?&8^7-rj z9Ri~=gPM~s^BE27?qm0a=P%VkDz}`5_`^cm|JX?T&rI%K@qSxZ^#kM z4~J^34>v363Rn~*_zrhe%YLGH9Dl8MTxdkHk8-*mbD2)Rbu*c28PNWSBurGLuT)!2 zKrca=uC1q1`q9R`xv{WesH#P)1oKICy&SGoX-+ciIXnL5R zgpmt|aAjp>Bk+Be{BDsD&7ByHX98GxUp@^crpx1HC;O?B*DpH>|mgIr!>4 z?qPK2yRPoDz3#5Qt;7BKd24N(tyEO>Ye5@!>ghSExzdUnX{68$#8@g+>cSY0A3JDZ$PV3M(AelpB!JQDjkfC9Z?6eW) zEMKx33^7$FefDROOzh9a*E8wDZr`s~AD4P~p)A`T38wkq&$izkCts0?52BieOom^5 zna7nom@~OqxLr2go`3+~cQs!dRl_Quk49wA>8~+G;#5f1X3p(lNSDV2S-=@lQP)1X zNhV^-iUk<3tci%MQhn*Dhh0s1(^9mndNjkro3xG{K?eSarXng#Q3XGmfe!g)fn4n^ z`%#rWY>YxRslM_WHK3Z0>*>eus8B(atIQ88Kp+R~abE-D)Zck+0`uATBXeP#9QoTq&sddF^9@ zre5LbCO(ySDv+0FxPyT z=^=Q-f9Ce30m)WgKZqi`{{k?nh_q-pi&{Z|dAG#WZ`lmDd ze>QIE>|}1`NGGK4q;H__XsrC_?r*N@QoE8x7DfNI>HntRM!RuaJCKn&2NZ!~POuBh z@v*>Ux`Z9s@6KZCP?%2>Go-oB zelRulFv-;8zI{@m#uG~gQl65ZCL&x;4_XppOc_&k_N(Oz;CmseLfE=bsqR;Vj8_Td zWSByI)j3S_Qu#L6w21v6Jx;M0df-Bc^oSeXO)6#iI_Bi?Na&|~D}PHA{GT*&-=l27KHag9un9R1v%ZFi3dcmy32!Z<6UVIUIN3 zlIwZsm%SrWTrizcV}eF+*J9S5y=|Sa2PMGwDB+3P<7(}#FL&B$fN6SKQi!E$o=VbXQ1I&QaRffSZI3$^q5-~{+q2laOO`zalM_JLnfSNeHK2^S9 zHcGrI`BOgr&rxC~a)`uk!!s${R*opoQTjgQXZChneP{tWE$!)yv;aBLBo;+$PAp-X zxJb1?DUzS>T{jZJtAa*|fxp1Yyu?(3gR!@B`jChWf$gvPabd=bNR)Emn($60On~8Q zzCX)c9NkSVb!5KUxK(}M7Q31NkX$*vhI16z?O0-ld@xLs_4rvA_$Z3m*IA z$_ncEw+xE1rj7RB6IUN1xW0S68!*(s5&}D(+q=KqOfSITn?olUHSnj#&DPceEGJne zBGy?0_=-W6fziwuBZBPNrJexr+1Ir{^Icx7KaWE^FFvk5RGW7;%Xu_BUUn_0VAiZY z&$0%gF98otMD`2;4ayvaoUI(j37lAQ2E~EqO9FzT7{v;rGADE;I}1(j8GmtwaF}rj zh>NJNv#UvNvN09=dzS8jAXV5ybKS=y42Eei0Tsa**5nNZuygiq$Y&5O=}A_j{d|8f zEYmM8EF=NSS932=aK3bU3?K|^lqxNyghW8qAZSbKoJ>pzm^f;5m6?BDT^?PL6g%QU zmWW)%ZMdA-RXED?!@HZ%!TC86DF_;#``I7qdK4DxQ zleg>8UHvUA7(XpUXkMNpG>zJxz9{wULK>7jpY*Ozk-jK3us);-1~m*gx%7BYP3qQ% zmQ|__F9EltnFkM%LL85iB;(lCbJ9jTI(BwT;hL?dM^g*7>phmLX=+2>_Je#S;yBFi z+&Qq_>Y0b|`(R<%flyCxGIu>AY6g8d?w)B7`Rwi zppp!BnP8q^3PLsOB60kZ@RFpDJMW*e6zWCy8h5t^`{gcEfy z;0jW5k%q3|6#>$t#3yc|Eo54(L!=FRbE_~l>W88PFgB7_O%h{Y<~97=-2#iI&sart z_B&QxY+)UZ&)s>Cz}E-K=&6fP%ec{~3~?P%SKbta(4G_dYc;jAsqW^CXI) z*y^2`vJroPW<3Ba4cNib@Owl8uB&V9b$X{>o=1!``EyLQ*k$ zeZl+7!e9C>xM%ROGM3kaW}-5p)Oxz60U&hS)^6~`XdLrMH;I8?z*pbiR7&E`i_DpRfeG4P6W79rsV zLQ2vtdtv#SV$1R|(3mC|I!wqI1ra6vol%S8+-5C54bw8BT33bNUzGaAShz-G(a1C| z9iuJpu~SrR@!f=3X`CNL#H;cn@=pwiBiu?V5H;u6%VEYau;VK$sz*&WG3Sc96F)z@ zc=GUICRj6Aq#)HAT-H*a7&Db?vq0v{orc}-s7czfBn{TJJwXQf#V0)oE0h_jm=z#f zEq!rncq}`;_I=(8AAZL_tUVO+ei1l~ZRccs>NhC>6<1iP_sR|+$AEcB5dyyI&&8GE zv3Izpv7EFt6_Ra)div@N$ri|o9X=!)8YYy8rySWVXTL)|oX}RWlJKboY}`&cvJJ4T zC9&ucAUV0XD(G_let|aqcoz5O$wnL!qD(|kOe`RWH7S;YDp5q+<|?Q2{LuXzMX@(5be+;Mkn_PG!ktZeEEinOn{ zcQO3+ISfBBeUd3|YF~`wOOEMxCc0t*yU_^HaI(EY0^x7+&K~^>pvYg3kIu{kfW}gD8l4F? zVc;p0Key}j~$+;}v>8_H-=glO*>N#?FxS2<<2DDdfHh&YKeG_@K|+ z4D;)}BkKZk==zHSgEjrHB&_OTO))=qIA8EuUD47=Yzn7>;X)qzM1pdGQ2{AHsxWcJ zQirwStvzUW-)CXp#wiVIJ=m;jMLJ1uWct!o76VX7n{}LmqDrr#4MI(%586Qqk!`rY z#=L9K7j3ybJ+tj%7P(;Dyn;-_IEGS)WGo#44%~WY(C^X|kns5%Ogi%ee*9tnKy4kF zhgSlg=7L+x3J&LUT-?%{s?Qi##M5p27HxM<;K8IM_opTllOHj`F9+jNrrlvz5C^_+ zg7+9q+T>Cv4|5`!&Wc-Fx;glFC-D&=FFke=`nnbVLkNZchqiZ&(QRGUhTFDn+p~MN zZF{zD+qP}nwr$(CF}r&Gnc3KQDf4{Xu~jgLa>ZqauyYMGa(=;T!*X8B#wbq zLty)0fUI~UBdeJ?-Q(p1P)PJT1>3wtAE}d_j$@_F?fx!JzO;WjI(Xz+QU3P0Le~g= zkU|$Vl72f&1ImQ)YI^XSC~`SdUf!2X^_}ke1K!s%*)9XuM-K!(Le-Pe^5jL;{#cW4 z^+@i}+cFAZzhqrASeL9B+|djW`zDD z82BIAjI*QU^5s~3FDwL7Z=SE2vF7Q)Dz6o;>wi^rRb1Z&JriQ2tM#AM8T*IHk<s+nCZ^SHfx&upr zb8084z49lO8ItDuPWRLG3k=pt(Nq0&fUU=|s1D)jec--q=k42a>B2{95Y)#DB@T+S zWXQS$>sDlogYa-G_scs3@xf3_hU0STnrduz&al{FHLr+T$A`HRz4}a`3s#%hBYh7$ z%&-Eg77~^dHe5F>PGv$;pfN3bR8tZpTi|hB{JE;Xg&H ze^ZcSO}%v;u)E_)*YFy5HH#RaX%4rMO!%MH%ZYb-bNuJnt;xZ~hX81sY7)H{nT7PP%5eot$&Rubr1{dK!k@+O)RzSzz~?zVG{? zT?K6W>6&p=Y1ckix@CYkHUCQW@u2~*O3v-I#=~x!*=23T4X9bq|HC$x#t)eJ~tYcGipo-?UjK#Z3+z_`|bcSM!E z*xHlb<70t87WXpO>I!;s;?ebBOso5$R+!)7EFBX(=v7?&0T`pisCr^z^_+m0^a>x+ zgCqFKXsoAKdSzEK{((rqYmknBr)-@(o)=na)bt2W~g7$jYM6&u}&|eOGx%6 z*sEZQ(5S@tTV^dUpQL5o2OKG~G%t0Cq$(dvGPIhaFQHj6e%A~Sczn^i86Opzb|e3e zhgnYVy*OE&E3sKQ_Y{92D?7xCo-X*!H zv~OU?9OmD-!v9MUEA1w0A?E04`%izEgmGbmGV;+u`UOAWCHA!2>CGpHy@EQJ8cbHF z6^W`$7=CNh4^b*sQd=;OxoNN5>~;*)lB|*;h`BdVxvV zV$peewU{yg)6Ll2z7agN>>g9aZa&s5xYDfkywz+Kj`a!b-FJ-*f=91)s=78uMQvhk z*UH_U$TJ4fu|b{f1Yle*Id9$lY8KN8>}!PJSaZPc7xti}iq}V48|WDo&X`8<=u1m`R-JqSL#dA0J+Zyc_~rC3?RGty`T^ zu$;Qpir|Qe1&M87VQ{f9IK+bCd%SEhTEO1kqCvDzZ!Fr3v?^l5WvnthYkRG@p*=@U zMtyr1>KhxxAoqs>XVZ=4vPiN7hIe=w8QsDo5d)@5oD=s=#eyQjXT0kh?q;5zntcxX zrUhL--zR%N(reu=Teqy>d(h8>^dip3p*5K%v?j~!mwdQxeVuJyUp?q< z(-ao45;B-JB>6s8XFk+?Vb~bi0VNofLgQ?X`)@qba2BiY!Y}+H&?Kye4Q=!=ncC>a zD^Q!XqZOope-rpxO48BMyzk~b+3C38ekuES)O%ZEy_x3LZ*9jTf`^i|HGvf6D>W0z zQkrrT{9%S#po(arTd2^Ae}+|+OExDe5k%z9z36Ql`|>>Pp^>o(qpOFosIzmQeB+QX zm`micz#GeCxx&lBASDCruwk_DjuA>5ifIKa!w4DxyCv)S+}WAzcE-yEUTB;f0IPe- z9)w1TWkH6MGP8NHLa6_5tNS&gSc%e>)q*_scL|07YAs9is%=0+6@Yw;iA*WOY zDN^y^KSxeCUAU)SL+ z?@=xn9@iBsE7nc;yx01-bcL-e&doK!rrcblRJ@R7dMo%#1pMLz&tH|@PSv14*M;skOP0N36udJbO+eSwBY@x#-I z$8&m<8y;?WpH-Jzo9bk(wSu-!=y&euEZym+-LSE<#AF7(Gl%+Q3})dL#TkVyBSltF zR@&rNG4<()H6i{68?9rw2Rts&s)R9UEe=?^#j4a`V23G2*hw=B3Lz#Nto+0%hf+Tf zwGc{>J}k#8@lye{MnW?Y&Ia{QRTBiQBmm5TfBa zeh^63jv@=0@WjCq3KKp-(9-q=0w0nAh3FR&B{*9itWPxoCK7A`!QXtl@T?_yC^G0! z!izlXh9azWNfSQ@c#5x*h3&BDhAK4Ci^RbAGH?*lzxkW+-j%Z><0RMvicY+oo)+(9 zy-V`*j+)2@tm7DP!*hf-qVoq0Hhu1+e4g`t?nq@e!u}+v=B{YyG_Bx~EW05>A0-_s z-7}}7cQr|V{w|pd%t${O3K%eFcMo?XP1RXgC?&yuf`l*~Nxxd!|5*T5)~h$E zr@V`h&w5gxZY1d;$EU4(C?Z#Hv)Os`<(U;@=(!9JyQ~~>i#P%(zAS0ku{wl=YVK)j zHa|u}%$O2C;`@9=dxH=EQSZc19a=qKcjCOwjpHu24 zT!p@0{c%rq{uE*8$=Ame0Eu})q%-V~n35GWwe@Aa??(~pe;B6ni|{V)N8O-sL^@#% ztP@u%r-UIqL*16*5`k-@2*aGf;4EO~onBj|LU~6CTV8jSF|y> z#VQO1N0CB%#Nh&|MLlJywDC|*RIm_3FUC;}XONPHxvdG1))E3&YAZ0SoLB79-ns{g z4@|Ofltx*zNV3;j^sb?mjUvPq@9X4Fn~*gaIMha*-8kAqt447IWk*W;%etwm4BRXL zxL83syaaQmDE>*n;6FD5;_5#JrXM0~<<2gFLu1f0MRA3p!>=+*WP2!iBaCy$0C9*B z2a`GXL#FBNex_@Z5DgycmeKz!g%(Ar0lKF53VmMb6J&Z1wL&l%**p6}fbte``Ok z_*nO}?^f~N;brbV-TvAZ*6&xraM~KK{7@z z-+UH-19=YrsKhJ%_q=##Y;*C375@+#q{u-4PpX}Q{ub9=^}&^pWJa3qtl z8dc=Z+Dh4g5seoR^iR2)ib=}z+0Z{DqZEp>!w36flxB@l4AJeQCxDn;&l`^vws8X< z+iQ32V!5DEm=eng$C}sgja_2pxolbs4i{JdP6YutQqqk$c)_gjDf>nxyV24FiKI&;xEE2 z_(R@J^oi;@@%!~A#JjTHfR{U9vW^5JN8bL)%Hm{!IQ_Y1**MOBluXV*}%N*<_I8De=T>)=b%4xuk-a z5_zNz@Cq@*R9}_sI3k(ESH
?8YDV#(uSD0yyi@-9lPD>n0iK${aaC{-o0kwgyMD%0|^HT**7?4jrfk zYSe!Lz`05g8^lF-Pwy(v09oD-1L9C_9^J;V(j~o43zhg_6){?h*0%5&Z{CRY@nqkA zPw&yh@9}bJ|Kix;e*bOt_V}md{R6uKom?kd%DLsFYQ&MnqKtAMN2xtviqW_r`SUm;CF?+rr%eE{(grt*vKccF+3A`9l_bLRZv5LDl>3W6!Qs za}Er>{c!7h)R+Zus{?CM5(S&f@(hN(5^rUF*!M{ zQ*`K64>y%HQ2rRLQkom>76$9;dshOPr^HzcTN$s?r9uuH`$@b@`04%kAZO$=3C+*% z-eKWyF!5iHG6?@4fJ8YxN7H|1&P}RY)(Z?M-8qdewe}5;4B#YmvBlz%AEpW8sqM-H zi`ewsR$ZjdwYcql&ag;G`{C#SVL$i;I^i;0VWJZp#TQuSbRUEl)_49)f3sRTY=-_J zw}co>Aw=Dag<~D6$wOgbA2+~e{Bdl)J06i@fN*L^Lt9&uVB!!mVoHoEU-XW_Sl^VqYbc0<2dY)p zvjfmDCoOIZ^d3&t&M;z~As`0Wz$F@IeAZ-GU<`|ceF041CrCmYw*#)G5g>YGv>}9y zMN_Z^j3`ZbBWXndAsBhuRwOnb{N5r) z(nvN?<0{Net8o!C%_@ZzB>oZCLa5G$hx7i(1!f%L(x43j`6A6n7>i&F48ppL>WpBV zFTSm&p@38cI<}WgCX=AfT9~Gy{6QE3L;S*TV+*um_!`YC6EGg!Cp>og%xZ3zC3krHX>Q6EO#o7S5wFoh%A2^t>nE9 z<$VSh+wJfhN7u2`?~_OW{K;IX1G)O0Ow}al#pn{&<@@^g5Vd$XBw-P{P#RfcjG8ptnL1EnZs&8>w*ye3!dh7R;hIx?N8rwpfS zFyHSt@6f68>JQh<>#>g0-u3PYA8iCnd>^6Bb_+T`%qZZdA7&1^3>$(&?`JLweSjJA zK6NdOqpy;(VfywJ8AW#zr5u{fsyK#JW)L^z!1O~^gAj|4EHL*G68%hX)3lm(vGp(X zy~~BPUTCWxUcVZ$aJaf`+*pmjAeEH*A`@|t0S)HEg7yeC1GGv@!FlK`v3&lXi3|Ge zWE=T?Td~6aJM;g~n1=rAwz9XeHL`a!`^S~_cjUN*rDcOU@*6koi(ykt&xXOn?p0w3 z15`}D@)x_k)IFbkQ@6`?7xHpP3#W(lCPWw!5rrQ+d?-S09CaIoxxZGK6+<1ew^Y~4 zlj4`ajOXR`Gc!5X1hRfB#mKm51Eu7tHF6W=@sZ^Ohyaah>pE!1PZjQs)Fas_F0GyJ> zz7O86)A;ULJD#h<0kJRHn3mQU$q4Cb)cmSy6!Ee})`@cid0u+nY|P`2W;t*`CPvA# zwYKr;#^DUxknezS0{%lHu)z^@W(Ca`a^drB&;a2)KRqG(i1|%V18;!^5Nbl)**$0M zLRRBWj zFe({Te$f_kMe<<5{ges)L#?|LN2olg*UUhY ze2z5xpq*Ns#q0;gLoA(sIlpLN-jRypQ=fGQ&yuR73M(?%lH(YLp+%W!pS<=F8w-|w zQUwiHZHkJ;&D^l*)$!@))Yg?vQ)(}F8MS`{RQs1D^XpzPSUE@_$cye<-{-LVIrRUWU;_s#yZptQD!9^SX7Gq>SBYFIorRwZuBUttRA6qn$isNso^dDp_L z^44;P^XRZ{7t;K6eFY@{{z;$NO$Z`1^n0im!Za2XY}a?HliI=FZPQBYfUnPGlO} zDb+%k@vp5vv?5P_n9n_HUAi8B#3hWLIVQrUhdxI&p!=*fSAG9hHYyuA=q6>ipCzAh zL7~b|w{fJRxGT9QtFSDUXJJ-wBgWeB{-QPH8dGNedcghE@QS0%M`dCFs#?Dw(hA7d zs57wlqx9GSDo8Wh%0)5(JQ>o*w%ktpSiqaXqT)GP#f-I`7eFbWK34jrD82>PNWRmJX{MNjXh}O~bix&4pak;b-IKyw^Nk^Gcpyxok!WQ%_AW8H zBv-e3R}7dsLhun10Dm*7jnQ9zzI6^lmGK6Azs3TUqSuP=oB16$_EYM=n*4jeGPG(> zj6m6>K@Y%NU)ttPlEPTSic97U36&~Y{i6%S9ibefw7poP>}YTw%E&;d`XZJZH@eY( z4i=y#DjF{tFO7zQx{m1#$7l2FMv=?mfYbPOgfn1BFWpDX5^B*E=x0-5Ea&s4jV7fA zVHO5jYi24Rf&eonSn{$8NuM77R{SRV6%}b&hU-?VL9dMzHms^$?4yH&j$zSG_A$P6 zE1uAsy;G#naqLcf&rv?Uj_47R#V@_m)K2Ix29YZ6z|yFSH|oM&P?A*bWP2pX`$K$9 z5aEQwLAT@oNrXNd9=fjhdIasQg|0g|^bH13v8IofLCTv1R z;-}2%XiyWR!4I7d;V^uWEZlOv8e*)NmxI%r&H~nfkZO`QsJA-yJr=_ZG4TKvlAc2p zfh)ELy8!MZQC7_82S6d|H&EKrQ?4Mu8*A<@57&T@uy~b33%s!en1rR6jkx;bSdQlU zhIFPv2FuOj0b!~{Z+(GCgqi@}%!^;5B{6In^^6p>*Y`jt=d1;zyfXVpX-&xc=?W)8 z!HMiXlnn9UU7!f;G9OC%+m$>6fQ@zMNeyv>i_lP8(|a zSf9Jykg9kr>ccd2E_+(hxnJY4S@nq-#qCT%9u+XGJ-*tUxoZ~c@`>|u$>#N5%N3Ro zt8wz6GJ<6g=AXq^PmGi_ohgTw919j@@-;3B-ei$E0SOCcvLo@n(%eGg1uxRW|>rSzL4j?p-DP+dVqG#o%alEuq`Q?)Zkvl_;A<%5E zmXuQJ|5UU(fqNg}o?-%hw3=rsvI-(`_+X~m>$%$g=Wipj#N=CE9A7+@++ zy;$V8zl?Yd(X8S;K$vd7ETDvwNo7oEOVyE?ZY1Ue8P8j)?20`>myk$gEk^KzpA?V# zQ-UmK%Bt7@sFW9G9b3Tc!}T1HRQV_|l+d&zyefSWIDrhx#86>|Q4(ju*%#`n8+sm2 zOf#0~J~&jKx(VOjcX3@n z#T5%vok=ri*tVPwry&kA4t895!l`(~h|tn-VN|)bCO?1fz&#yc);w>FC6+T2mz*?9 z($bd}L4ZH#s?gyLiCNa6{|2gk{=mtK-pvw*N{}EsH^)s0ZADY;7}EHW3`q3(%Uc@_ zh&EW{o0}HEujKSp(bLuVymz<1A125*+2RZvSb3xUVv_Mgk||6ZwFjdsQMcY4YJ>0s z#}?Tx1cK4LLjg%;yMiGsFr!$f$?%7b*+Tmfpl>NoVPmZSlYJRUB@!o%)86Dq{+hH;YR5W%* z7XsH)6g}uBG@_HyrR=Z6pBEAKR;#xZC!t`@7<=haZa^zMdNU*JtMRMVTP+o@QY=9FMtZtUdTaUM&+ z*0FAy6Am(MJAjk?=oczer&YkY;m%Hg_w)IkACQo+5>c=gQIO&sJCH<11p(eIOuWKw zbo>VXm$FJ_kB|R_B7FT@6hY+wfFdZ_SQ!1cwqB`iSYr!gbjKvRU|cQzY#QEM%wSQj z8dS)I60YMA15rNsy_#+K)I0f22qj_;09XzcB}Z7Q)R>e@K!OBG6)I<@UCg6(2ld|2 z(d=^NghVQIF6=FQv9)%?i*HPhSEnK#MKsY=XRu-`t>4$DDigBENd3ng=MY*%}rT&bSh@iG20mvz$09VU6_E=9n z5N8;Rvr8U}uZ9hdmrkcIev6Zt>*<68iUYb*s?O)-3(261hd&B{EL}{n^K|DEk_+jt z>qIfcpQDq#9L(;qi%3dy6^(IoexWb`;Q>v|>p|O`q*z_0zbR5A?}&-Aek#qSs2|S$ z-d&?%E6itW_9QGVkeDovh;$&Ef@w!^p=V~Uq?nX^n65gm3YqGfS?}Pi;_VjqeE$G)dQ@Nr- z9+5pu`IKbJl-?d8j7K*U?9y!{4O8w(pdiQTqhWj~-kwwFj(~0wCYB3^Z8WlR z#&GU%ub)~UZom5KZE7x4jg;1pgV^{boQ9k|S1GnQ;Y4LoW4(d=Z2vTWQ{z_SHjM!# z2-Q@PlZu{nmu}eoSIq7_*>t=E zSmtd@b(Wv({PwpQwt5T_EYf+@s8qCzAHSVVY^Y;FIBvE(!M)ZvS~uQ5!AU*S4R1pU znuTt_PvP62ZJhCJn(%ml5U)IPcy_+Hqpzn(q$xkXd>l0`HK2h9{AK2q%RWNCju^UoiyE|E;jqv~;X&hX*v#DGt1{1BD?~(^;7%wZODTro%QfZ_ z6TO*hJ7;)^Vn__vjr<@m(>Bzi`EaZaf8Db!pX1By1=;T%8_X$PGixgP`>~B1X(q>Q zU)d(X>BTttyEOM0R~Gv!ugPAd#qe$#NTGo{Ox`$P-XXjcwYpW{P=3b+lO zUzP6ZpE#k2SxeIv<$4vO=SNIrt&a8A%jef-DY{iZWAlC*r>gOIY_98ReD<|%I5hvN ztyE>%*Hz^n_c@WvbY`t6jEm28R47~wKKBSTMdxM7eB`jSn=MymoYNd=Hk`O>&Z5a4 zYR}vvEhxtOcsbqhvO=d;;|-C#f<;ltW;72-mZUqblzd0mkzqQ!JYDN(X#l0eW6Yj;z}#y*_!9BMD+t*u}?wFzO@*!Dx7atF) z?U=hgldMLg53EoBKDfnprl(=az3I?O3wG2akZhAe01?X+ybUiz4iXq_5yBZqxReZz z4x~J|vK^S3iPqy+#7yT@S*+JXpE8}Z01yVGGu+(SjxGzd4xe5-4p*TgypRR~+(9Qu z4+Fq(PP1{3WU6AM7$#N)lu;iK5GWKyW_TkNh`#n!I#Z&cD+FKV!L6P#BVS=`XbBA=3z%M60m&?`uY?MLdGpn~HM@4}v&GL=kdU!bY=Xej}qPN39ym(sJ zRkXEXv>3&Y@Zt+O9)br$Kr~q*8>g0DHx9%CPylY{k5LfMU_>Js?U0TO0{Q4pThKS( z(2)?O|CIV+MSh0I&4{g=gwp6r^T~Y))mQq*cFu>UpF@KSSAD)Hj!Jz-QBD~48(6S} z>VeY+%|h+Z?}0+2Q=;G$)_Xtzjt}JXAYdU-C%J>8*xkx}Vzco$Kn4IeiO#vlpYo5J zKT3gy)Sd%xKmhp3E)NioeV}QPyqfi z{fa|RbAWJ{xsXgcH@AXhe`Qin?AVD6Cjp#zIR|INa5qB$zLMebqv7!yGqJpTVM9Wm zydT@4X*MC{QsM-jluUDtp;yeXcn@psl7H@DuU@NXw+uE8QRM$dN&bV5P5(_ycR|n~;Xcj%@1Q%8huHGCP$(qe*{p%_+G~5Bm zy?s#MSBGeQA}(=7Sb$to^3e5f7&v)H4=IRr;-z9Pk>czb&lG^-WEzBIxW?{ulL-?{ z(KaQpbmKL^;@g_ZSLeD>At*^`Eu}t3pe5eQF8$q>yiW!S*ZCy!LiY9l){Y=juFnc5Zm}X=ZaA# zD#iUA?l13Sa>p;a6??#VidUgYkb6Gi|H}Kq6tge>YCF=x`F{mcC_9-M{u89&j;WIv zV)!Oh6xi9DEu&4}Km$3`!qLnuf=5`0#kNX_&uk5i2ynEuMbHExH$eoMdp7&cC}mxf zee}ig^*q1rqFuJMFQik9H zW~hGXLAj-Ko>dm&(v?|;CoQ?jhcR;F=NV$+5NjC6NVh7uj0(D;cqUvKGCz4e^w#+7|#0@87sPBK~ObGD-G!Yz$#|oVN3D|0OH(A&A9vyO2s^Cng|n zi(LXah8knI!XgzgqE3Z^GfOPtD#3FX>U2_&PO2d=n=qqUUOe&B8jJd>*^CdH&8!-% z?3NGio}olsO&GX56&$yvLFL`UQFS82p+)htD`*LRJ6(fV>eb&Qyd(^~#wR;`Px;PM zUGv?$?M?X|KY1nQXlY<#$j!|`2PVgHI^4|gkN2S0Eio0Tr;&jEQ?&{NZ(Of3u!4M0 z4=$-I5>TMjQmx8I(D39k_V-Sq;WYQ9cln_wnhMUYh4~d~UEo(IOh|6ARru7@=59Ss zX7NsVHa0&zeK(Z8Gs?zWsa3}Md1o>}x|TNGZi%6=tI4Ut6kRIxG1uy}SCfS*w8yJA zQzq^tIxIb8++=8GWu=OA^E@qHR5{E-j@$Bl=v7Nblw4%Fx%qhr^3y+~rXjT?u^yVR zmJy`}MzrG@kGLHYrU?ag72#Dzt*Jxb;Z}((cZ@Lo1XBS3;3@Er{A1m z|MlVTif@+Eg!KX+%9h4GZ)ClFzIlAHzpz62tbZVabOjjC?s^(~!aB3D@g_o^L@yLt zB_h&3sZ-D*1Y}_SzDeoEjPASGB}hSOmN3d&_QCg3z!kV&4zLu0khj!7bk3yC?27&# zc!*XD46x_mnx!BBcujp^TmWSv@eO3&tDL9JDGU)IFFYpfN{b0Ea^G}=!eO5IHIjFM zl;vcuIkmQ0A9xfLLoW!Xn41}+ABQ?{`~5=*zRV@xju7?+&Fj>-_Yg9> zYfy>b>u#<{#h6q)RUuNj@)eR$@qKa5w-b{-MaB1u^NU<+v`xfI0Z8@s*ITf5Y8a51|fglWwo0*CJSbWAgtp##UA)2 zn$oL>cSdGgr1NCCeLgBYKM7S73zjOcohSSu8zcc?{jI>fijuAo;TRh@J3d4kC2>9#4;gq5gMM>=V~Di((2|DdPq_UU~8CW%_I)cS@xs_PjLUD`YCz%LHYBdKjPPziXP zpNlP-^D~6SL+lbv@?)Rs{Ngmps?JhZ|Dll8|1Kr?^$z;i9h7)iJg)YQJ+A&+?D2n1 z#QFd0Fa7uO7883ttN-$k|3k5p6ec8q8Bw<2CwT*_*XgYBUwknG{r6=k!><<}(}$-? z4y5N52D^NAhpWCH`1&2adGIU&VVH)|%uLbiuCmrt`!K0gBu7gAUkDmn{**9LPO6>dKzCpJv8U7UDj%aJIEj9e%DYfEjT>hD>z2J;85rZKS*~Yo z$rg^2xW<(`SNJ|YUd|p9&nwnGf1di>$=Bx2g8fxu%k^#1;$+fcp6FxAlJHR_802j& z)?y=JR(2X~L=9&6@s@K{JR0WQ?!_X!qzjsitt|zyID5^To1^Wv+E;(DY2*x1HZV8i zvMug}ThR-iO843dnRT15W2x1K zXmrkKHR>u9fARj?ZACJe=Nf&xt=sRD{?~3x_J4~o|MQgPos8_=l=Sp1jsC|8SH*M6 z05c*4za>4vsgxrSk_U>$5ugCVg6<>IF?3+EkzIg4u@eeBZu$l%W6#;cG#ha3Se24p^)SjVVKSwu>c}XA9lxT z93nx2@%7413;uE$VvP|N_Ah=%(mFB;ai&o?M8~^&go?*`YZw=(vKr2+6EIpqBavyu zy@Mp+NS%`Cfxfb z3IX;!vtq-t8^o#v&kkO9PQ`wm3>Y_Fnzg;Gb*|`o`+Qnoe{=P=wDRHVs;$bJR`H_VOxZW*!Q&$39%75);pEgAQ}~ay zLBYu2do#C_z0qHsPX9w8vJ|GQHyB{Lv2QsMI5_z83~`?V3~BwXQ*eV(ui86^8p?lZ z+>=mgFK-3fSE><3QE@2LGWUgmH>xeL}eqUWa z8*@)HBelgYo8jB;tRlpuj9@aCXkr=FOgI;xm&V>#%Zf8A8zm6!6M=DBK>B#1uxECm zW0$!?#ImjCb!`;2GOZJ4kr^6RR}{PaGu}{bz7G0PoDCNEE2mS=?r?m~VbpKi26wY4 zbNnVIm+tlV6Otj1OyB;=rgu$>$!tJfq~qQ@Lcj2${I4x{NpbeTkG{`}9+#GYmFFHC z?asEZ-{9MDI&f$ZFyk3ys5oS@yfecYSPzw93F8!UNicvia$~{yBk=KuP@uf2Qzo5C zTiR|!ipv0;Y~bD}A}3?ZPfCuj-d&G#kzcE4bmxsoZS1xJyqr%m4|v`A@SEz4+8da* z{VpYmDox-y(mylrVdF<1<_bH-9soOo71$)qN{W+rL$q|0P+W zpq${hqS#m)m|2>AFVnNJ=C`%AG&A`7_3yAJNq)i_h!LjqgxVgYY#iQpFAvY%Tsc}9 zeyviRw%+-WWH#jG`5L%9iDLFO(KR#ej^tNM6JF!Nu-rkEEOSw97>#;^YeGK3pQu%^ zCmIb!Mw5o?j0g!KL9uuyWf@VO*h_RvLX6DHg={WNg#ckR>GdBa} zGBCfGj0xoHq-bQOj0lE`tJTQBS)=6Gh_O+Qt*1lQz4ST&}h9=QEy zz}8k0?PwxQr3XK_-^cNzr+c6JdV`B<|G-|u0sQp2f5wjeNlwR(>}CS2vAyxbP}NMf zL&(m`3F!cykHjLtNt2 z#mQb2TQ9@VI~w$Y`VPRfaUb2}2UTTM?Hmuw;`9SLHs?6K*HUw{l)#X{E*?anL7tMt zq2QU=E*nP8Vmv0@__$l~ayVa;D(%n0%93>QID-M;ai)Y^HDN^|YO`nfBAeeJRMYK# z$M{GTX<>t!#OkoK26qfKX0J+VfGTp zSqIwnbXre~6$!#3kOjdab9{_;7ahl{QQ(>J$>#>2>qetz4Glb`sh(`uWH=FHg=vBg ziWOlNKz#FN_jJU$b04jjn*=GJj2Sy9Yl{UTKOda6`%SDSh8E5JoI`)uc)CQQ_D)Dh z7rT!uq_}mOreZWS3{|U68jDF8T2Opji}vc=t>(_^Z*SmoaJDy{nQ6~?!eYdS7|>S= z72eOwvuIOpm6FC8f|?)a&BEHEw985wcu4xl*bEWiLKQFmS_y&x1M@G(Vwu9;iBw~b z`O6d^m}hpdzRhsy-;S?v{zs-LZDj5Aw_mi1;IKmhfS>>gOA1QLRZ zizfr6MI~Rwn5YZotzQv?m~#Ne`en^G;J1rI!Z${J5;a_~nio%yIaVd#7T(racsBc; zma}bx`uC+xU)`f3dEe4Zum`~Wl3MJL6TD22FkMQqjx&TE>ZHhtdGq|!o{heAVILr@ zp0XqxCl7KZ&Z!}5IIPZj#PLvu-3Y*_8(Evo)@O$@{3rL>0D}#sQCW9x^!Vl=?)C0_ zsn_2=N=b-@z4rTWZ+$=iIsoPUj|KBrr17_Kl%qMnFAap?zl5`>ks8t{^ovM{KL7+5 z9V5~RXBmFYfF$s=4G@<0NAB3Sc+`=@4aaZZOpf6xTuM>JY=RnoosuLH3x+V7WMX1_ zl9+aBy=A2m?&-V-d7z|8QKON~O+1!|GneXyr#17i#Wt&(IKHM>$0`92eAaq7?($zc^XlSm809#_|7g_Krc4uFcwL+qP}nHl}UcwmscFZ5z|JZQHhOO`E6J zdiNLS?6c!r5oJB}^Q#I7Aa6TiW^?iT+ov1vsZNy-^Xvh5YISZM9C>NTR@04r-jB0W zyakDWqz4MRtB4+60Qi2r^R#w+KJ3rmzn(qb`IuTaX>qSI_@vL4tlVtcs#p{x0pxl> z+~5GqLq&yP;plS$b`%1etLR3JQv4htK9x;8OkXo3{fYTT`YQ0Ki*wP>mM9leUIvV< zkXPK!HN<*i?;Jt|k;VpI~Say>h>|f6%W+W@TCY=h(+`RIdQqSq3Me`2o-6 zLkBP0bS|kxdh?B5iGIMtGeRTWkNuk=@|U#%tKETZ{8kL??<)HLT{#5)SIY4hz0KgS z82)b+(TS~qJ>^> z2S}7eDS{dKBowADl6gcwGR|}=1;JE7yuq_rRif;t0UwWccjpoK=3NoT8D4hI$oSs# za$ewl5$V1)i8DRj`hY@p9XeuV;q4M3?P}9R>29XHmO?r zQidoOL~(MWDxXQk!U=tPEW4_3zK{g%dyo%RiEHlDgHwzm-~)G@)l}Et;4!@MOV9JS z3`PI(5&W0KqW&wqQgX5RM*Qpz94(yeZ2y+DPu%2RkVx{WcPm z-j&FTk5%X;%@be{w!q)QY- zf}0W(Oq-~3cTSa9L9!qf4W|m*gjumx6dAlrt9-q2BlI{>iJ>pYk%Wdl>mGClaWV zDvAhVbmyTAhWFnD620HyhUDLu!vBw;2H*cq{atKq3>-cFzLLsB8EI@m4FBtZ_fSG| znRALq;4l=JRS{xI6gS?Lai&$=<=Lz(6EjsT>D(E#U`5MWRYWbD(tE`M@Ho}|?or$O zh3=VEYirF$UxDrMsfoAS4!w$qNKRt|eFi98OTh@?3kV|1pivPf!IE*FSw&UE`~hRW zf<`K&pY2W4gpN352T`2z!YbJ45KWW48E+~GgMRHY#B?=Jzt-$kO-BlM@%i%aboKE> z^Y)FIHBFr41%X`f(#!-8h>XC5=kkOVoEULf%R|WE{gyZ)ju7ubYx5Cmi`cVd$po-q z2=yiy=z*Uj?OsM|_tccuOa%P&zB+e?b+QIi8MkI;rOrhp^{JO}r`dm$$-wBZ z{Bp{9O(d!Y!yD&N+_NT@bW`6wLW5{N7yNjbejQ3o%yw)QSCEDE+V7V)bJzJZ^2q28 zpxCOYs^UUgeyG&kYu#?7=&;6vQQEc+$c23B7#Ex1l!w4di8#Yz0wGADt1nCaXs^-E z8f(ejj+d5F38JvQKj+Mh*PB*{1^&DLA?av&vBmAHjG!>eVl_S+JEOwf3{zBGAKFV` zM5WFp=p~wC8WK*mfAQnyba!+wBSG%ES}e+}_+E(54^7oDdXcQPq)2Wb+7il@es%Rk5{Mb z(c$j&@3rVsB;O@jzu@Sh;>BT(n7^{r)*^p#PR$$Hwlw+GHMwQE(5o)I|9tFz#EpzJ zrkJ$%y&NQm8_wp~d?z0r_`6Lyi!W0$=3DL4{}Hw2`CqBNvZH~~e_8!V-oL;*vH!$U z)~>_|=JN#-L5Xztvjdo%`8r?vF>wfa$6zcC-|!u9oYM{{*7Mj?cGoXc5o!HEtIqn$ zNm>sB4|R(|)OL*c9+VBj$V)KL?%OQ9|@{@e|gJrO%trKZ;62aqaFX3ML-(^ z`|tj||CT1p{C)Jd<&cSyks1&{2!4X~3Dq=HNWc_}qhKl_pabg=DpZ=c$o$N02L^Mv zhTUj+0JG(Zb%M*1Bw0nR?s_^?A$Sl;7xajjvRr_q4eq&BgrbauSKU`ptpQsz|WNl&-`T@5J{dvqicg z8;mAO2#QjZOV`Y&8oMUzc5t7=me?Ao(#rMr@=3KE8q<6@xch;ed|t+bk0?u(ZvUey zdQ2#M(q15ZX3;CZr)9!HJltT*)!+X&b30k@{ncV-TL?O(ZsGIar39g~sNl120jvL` zfd8eV{4W82JIcT8@qd#ow`{+_e~@LR_EZtDf)N6g+2S$Cp>u;yqPH17l8Rs1*fTSZ zz*ul1Q-ERUX}0(Ld>_aXym6-TTY2?ZE<)0T_8mz=P)0#9FNTi?m6+aw+z*K|P@(bi zFC(lm@QLnEY9DG9%C4&ikWYh};qyqh3dEp_#QClMahZQ!p6=*&ZCC3ou_$u_Xp?we zR|K&l=nn2H;1XMdTsOD8{d}sbzir6n;^`$Yn@)QvFtOvb;q+`)@h?2x$q+rjMt2ZV2b3smAC1uF3Ui~oV8(K|UB(c2hU z*wR}XxEjzK+1b$B+L+OsIej1gt+7fTPX8ZaW+{%#_I+0v*-!a@sG|yngtpWm2n`IF zdn4R}+m6eFamP&buV6fV24FXTzxgG)`YoUVi3oqL{y5%nn&NfhM%p8nfCvZe&m`rT zO$|sCaq*dcqDT-*%fkrJcP64S)c^^xOw)`SjUd!k>aFD_OSGctwW+$wiTiVD>p_E! zU|TYJvr?C)LcsLqT`CE{s{49!D13yFc0=UVS`_x5M=f`)Hf%Pb;>et`>CD~mMv zL|q|`9MY*^*DHvr>sk`KkVPyJJFf@OZ2~XffxSVK>_@ORbY0A=YWxj3g1B4p!+Q28QS@(Iy^~c}gQOD z`A!kZhOghKxB7CiHRB2CAR2`=;$^eu3Rq4JipOj^=qUKh25^-j zAgkWtaawNC?RU2UKjEy&T@u(Rp#!1$8XC9XUVZM~4cj--?eY+=9MVB0HxjZbj*)iU zv!4Y!P9%}5>G>0O1_u?MR_vXxO^tA6;D0>oj|kJEoBvzrE7;;|9|hLb{&!G{#os?FTQ zVF7yRiDhE=8z}5!Ebgb%(*v&Tt?I;ZpcVlKF|S3KB8rKWRQ@_7&J%%dFk#M0D6e!e zv5J|2OnuZ|TrPObma52g8RO!PYx#8nY4dnsOG_c_Tgar1y`7#~jj+y{a#nYgmON47T7IS#b^+STwZ)$3tr+Ob92MJW!C%6QXU-X}f_J zeUBxQRKza^?v5@p<`U^=_do5Sm`9m=EEj2B2vI>w4k~A{@7z?`>sum`Zm0rB3=zh$ zW-m3g*T5YF4j&W%fllo7Tvg}BebyPpNHAci1+Mj#zmNn1M z1yQyOGrx%MT2@8G8%CiJOX~2zL9vNt{{yH_wQMR19K_1}&E1R}EFJ;nY?O+u5zUk3 z!J)InVgsU%GsAA0PYK9#Y;j-=)+N_by5F8s{!l+Cp%bY@I^4W4X-?aGB=Nf|%3?{` zjjU;SBjc`le|jsV%K}Ptv;RtB?5g_@D;OPl*{`!ZVl26ZqXRec{#>>xxi8n0>h3$o z&wloLtZS4R-|tOyNtT-|i4#HP!So}e2}(yx^3OaI#_o#Bq4qXqa7S8?R?bw*K{vK# zp;DCAbOB##n29=7LsP~BY^OFn2K>R8?Rm+M(&0?&kFKt_Rq0;^9y3mwfyG{(3$XJXfO8#mURp>GguP{<)tvz!|RMlCq-ug)tQ!Lfie|nsUKOp zWcD4pr|Hn+niV|;M42T*q}kMA#x>4wPGkhHC>Dykv{0Yw0Bj)Wv1Qy0!(r%+u-<@P zKnw=D#t|liY$Y?oN6m2&E+Tv30GlDo#}X13BFL)Apw6)T#*?CgF8kD&-NxN#AaIb+ zUalX9HX=LvC%s$`?+DvDLjD`9{P%E4n++EF6;pZ2X*4 zt`!_s?u1Sz8R!W%5Pf(&NgybOp=lk2W1xcf{5!A}w=_w{>2w&Fbu3am#;s+X#(Zct zlBCPs1wSsohY$3S5V$6Yy`ij-`tB2TwRT9^lr~Y-%@OTHZ>#SPs8wu4uYQotBL)FD}=@KQ~(|gHz4iC+~%~ ze^Q7LsjRO~jIq_2^Mior5p66B0+~4wevVfe5wDX9;c>)g( z0tQjCHc=t#D5S8~>{l~bodA>abv1tMO1$mJzCBIDE`}6TUiz}Yt2Abm4aL@-KO+f7 z6*%RBBha{4QXmHRVuhoHgrlHk#+cWJXpWYkDC7pw^!UrM%ip)k$eJ`&m}k+3 zHItXh)wG^$^2&6srbKJjz}U*k^%1f;TO#Vye8kCJwPAdm&dB2F?sv-N&&$z>V(x0V zt`qO3Ki~6Zraxcb7JK2f)<<{67sc|?w#$0FuK7$7>S3K~oZmdDT_}6v=D}kYbIUg= zGngx?VDV_v+~wM3gWFGX=-md~e7!-=TX}`uCu>VO=!L8C@GN$C<eZ3WHN8UlP4>r8BwzAW~W&Fb~WUHe?ie!!N}qoKwSLx-wT z%bL09q)*iF1S?a<sh6I$O$Xz#WXA z;{$&dTBfBbSjHUCEu*&x3GP~hGAGeX$*%XjB=e*~_gt{NRraI3gta`)NPKKzP6&NF zSE(R%5_g|y=blrWnw`}(#Wg6uJnk%1g?rL8&r8;+nP^RD&NK9-Yb!DGq$a7VY1^%I z6;>TRADX^gFPZt7+nNs54;e{!fm$Npm8qnI8sTPx`(!;u}p^=;UIiV? zSCw-Z6^V*9Dpy(;AlX^fHO==SiQY%)6|Ri=iT{K$d`fkPO@BqAi~_X=&LLL|VS^p3 zZhIAiNGZn3-(=vdOHrQ){)7Hbrcn8Er`dS?A&hg&HCooUFY+ zRI|*8BczoC8(=?OqqcRO-%xyL@q2KlYBLLMDJz~j?}T~5{Bb7VF?VxzQQ2gm zz@!-NGVTR}m*6tQ61I$y`BT+q`_53^W~>P7eYmEAgN)0DQnU$P5B?7sSr}4tsU#p3>CaoN~nEjQq)Amt})5y2%*e*J?>ZW1H!hNuFWk-z8=Rm4_9{9IJ*hA`k$Zl#Hs~sJF=Q-yV(kT&YDO8Gc*{6W zg_e3CJ!Ecf`a|<=qSd*nj?g8`X+(M@+en_tv=R8DG)?m&35O9fChs8J;>w*h?Gl-; zgOrXue{Y$EW)+s0wg_h;L6~cT4;LF{*vyRyh5Jg=;u54zgW>Vvud^b~km)}sd(*ze$ey(9z#^*&L*!GkU@&wK_2 z0fTcwIjKlB>nmN=P|*ncTv1|8J_sn9k;p7-1##Qi?89WD-@5k8E99qR)IGOZjFB|CJyA#~Vm z-PdzIzdw)6d}@Yet=vh+57Pn_$vxg)_Q1u!l@?M1aa0msUs$hao(cR?3# zMvP_BECnmrYK~Ufb_}r~hF$t+a0}rd@;`uqfstGX7A{noNupctfCA13NZ1xZ@hEDw zA(3mUbgc%#elCDp$GbqLw)z!#QU%kv2=>jB%@CWn<%U}1scpTK3t{3?etb~0ytH=T z_UY+7(tqG=Xj)Z&?db79!vQu=Wb(`s9&*byEWkP*|Gj6sA>db7PlyS+Vm4Jq z6}+E6uaAZ7O^^>1(Iux$RS3Xoxy@q%=&&HOx9jNf*gqTNs(vC81w$hvE?1pwe~G4; zR|faE!yei?Sn42MhIriy-v*cGL8tJF3d=k^=DMZdNco<&7bypX@~T&y;cl6ptVS#29wfG7Q0oO@!zp9snlB!{9LHnppoCc z(nzy4qt>7!noEc>O&$55xz4X ziAB}!{uuJHqG3fo#`R%YTs(>;N(2>Q5_8Y$L-lS1Yc)MSA=hzIfTvVInErW8CQMnV z%)&kyZ|!d=I_hWd^M+0#@^z&e_w%$=l3M~~5U$a$^Mc-O$xXr<2y#^9v$MW;@;ab$ zB-TXvM3V=o2{hnytodC7HXcnfN^90$y_P1Zglz9HR-Dv4&Yt!%STTFbSiOzx5W9+g z(Lw^K&{kkiT6ocEf-X(_di#MsQ_eW^-uINTuiZLDJXRcjx(|jJo1FPJT}p#HI^_p0 zLNAM9DL$lm3aS6+=Oa9SeG)?dz0;p!XE;=pmwMUZUc5UTo`?a`Leab?I{{#OIKGb* zHRimsSR--g_I8SC5F3!AJqxO$K4~@uo!~!b2_>};?;T%<%b#~rH`X3+#pv4KN%R~_ zYP}_S202QjWWOfCeRKXy1JWMxoQ8JN{@u<|;mTobX!S;5Q7B$lv)-o=^yfY|3^;dy zzYWp(+j9@PTA1a8d;&ENgeXaBQ+;5lqG3Ypl6i;HGN+Vj5=;3@OxLfc#)k_)f{?3l zw`lb4fXKnC5A>9EH(!wOIK@^LFK^=}p7+`B0dKXEUm1%n0-!O|pk{3TbVTXtnE3d7 zqYzF)>^#u%%FFB#n>Dr^dx^v$PDC=9d&zn5r#X0LQOhOg?+A2UzWGk9Fxmogo!EU7Dn4Xu#%5S#0O z^5hQgKXy^DNcLt6UkXTSbR*f94rRncadROI4t}Tcv3XHc%S4dO`IYx*76JG3GdmD= zi{|56VU*NrsT+@#a?_13@KAMPFvd+I-S16mM|Vw3eh)+21Ad`iCiFj$cAPyRX+i`F zzZNQ(+LkhY`n9eFGt$~NUmj%SDaH)L%%_({t}kiW_dcck3&<1C)MM9Sr66&d35ty0VUyn}(1Br<`&x&=4mp8{sL+Xdd=Seb!5+yxpt%X5Mf+dSqAtl?+aSl( zn?sG}z3S@OrlhM<&1-KWO6amMveVOXF|+Y50aqa>Zk^xBb|wJo^Fbw!wBU-x)A7?X zm@#DD`;quq+Z-ltLr;UNL&;`i23w|~i{FTZ)g9-i8BOEP z)7h>1hp+!C$YfFjIq84zlLaOIrzrPd7G(ZUl>0v*kN=c% z2vwAw!w+?zwn|f7$0^h1v6WLx(4;O-0vlXWdOM6Ox3F>b^(TOb$+39k;o)n8{vwRvxV{3ac`jfz!uK9v4&BufNoI zYnl-u^dJO5z`k}n3nrrNR@eBZF|!02zX}PF2QyzO4`nGz6}}T5*UO{_d*>bPIb)5W z3`#`$l@)=&elRwi*docvkT>JYY#Vc=^2JX%RL}c(@Gu=;@)N$?ntfV4a!{sq6s^*j z-TIUq?9RNnS)b$nb^YfC0-e9Ufp3z31it@ePs0DX{{KsU^S2UEOZ=FU{UN6!F*Ut7 zJ}$E?O}|7fOG`EWL$>kgaPM$#d2a7eaYoTzf`)ci%^j8r{a)Bl# z1|~)t-)8Gz&%tUYoN$EMdG?(oVg;kyI{X&2Wui6r@+f*u;1MYQL8Wil{ww%A zd-X}@Qp)2hPKP1=^z`ccb$W$)Cv;ZFK;lSAIy~M==qs`BqA)Ml@wN4KE!o1V5Qc^anVQ>`o8uAd!ypE{vn68buOqQN3o1#}K)$)_=RiP*V!B4Fh^LWm>9j z3*eGZXH*aMUYQJviL`);Xgi8u4!yvd3#%IXHIs-1B+@>fN90&Uhxe;0~A-jLJ>l0 zl`8Us*p8QDYhZL{PHKAk41qA4w_XrT04G#io@EpO@jNUbP`#c+P*5IKU=dd448|TA z&AAoXFMd<@PAY3ehEFm5Zp6WH0L!qtI7)O7j}pS(f%Hmu(Zq*Az=wP%=scMtkb`&tKQd7jqYmlmIwUTS%ii*{?sARyAD(Ajjjcscoax(g1V zu}|p3oy?-`L6Se-;5WeFizM;o+p%UJ;pCdxy5udnn22q)VRE~^*~Li1Z{FcIjG9Ko zwMs9jqEJll2N)1L=}R$hlu)|EcQAe@q)h3v=o#LB=f9kv?e-p$ywbfYKo3^~L#Ea1 z71D~=hSp(Z>k`swYRHBVgdH+6lywAzVmKiK(4+hu-?Qh=>m)LUCbAKf3*DSYl!b&# z-NDM4mjUb=s_Y>a_@8Rvc-b(x@}gH1Socub)4Ro9acUT?2F2y6pfNob zhGr(Wa~9)7yYagd$e|uR3PANF1D-cZ4t&XHK6g0XcT+Rei{B{ofiP;{8#}!sk*ZLm zjzQM7s2tvwt-bQ{hQU{>U6|KwWz)(oG;>w^8L8oo^MbzH2!VST z^C@9C+J?xAGxi>fkTZLZP8*9XSUT1`qOb@zQl*2YX}u`HX_^c-(rkDml0BRd*_3R! z!ff+nR6G6X<>}gZ@Y>^#{r34jcPZKR=QF&v!Lh0DRWzkdZM!gDaGFt{O9F2!F}o(W zWm&aLym>jj?^Zh{Yy2f!t2L`-xEoAk)3^{`J)*kuE|=Bu*)LG)vBonr563GzS%NzS zc;AEn8b5wVr4_^ZFXD4NyBr$gMJL$W+Y7`$;PGFbJC)5icSU?@mWZ&z)%`+GmiYUI<4d}wu3~6u2d~cuqTq&RVz`%;#lZn@yHb`=H6h~ zhdo{}8YFa$^ngsQtaUF}^tGXxP<~9wsL{xT6)T%h$Z{&gv~3rqIDmTqa+T;N*Rx8z?8PZP-KU@h3D7Y45Srdz3JY}KG%}G-rnIm zQqONpNS>Er5Jo5w=7CZ7R8YqpfH&yQB8|s4pz7jUrr5SW+ib@u8!1Cf;3cYYGP0 z8)1ti3Ix+aTgTs-x1R6~+Sm}RL6#P5^^18~2$JY_tc&&M$p=TZlObA%(Fj%_1?IRY z6Tek9Yd(8fH?M;NY>sP}ZVU%o&;wO$(Sm0-4AaLo(NZ z=nNnR>74ixV1mu8Z(ti}5>Y(aL|QS_cEvzb&~T)lS6m_?1NL~lr*y8YZJM93f0$U3Ej>2ed4wK+V-3c+dF{t4 zsvQqoo=;P8lY+e52RgD!V%r~}IXcF_>HU!Bf4kV+5J3#SK>)VvG25g&m% zV*q8ECn~1Fx0S8Jq{$-l5@mY&*o}g{&%7ME<9N5dHn*~JlIHPL4dpCnc3qlsGj2V| zUo@S9V&u($QY5fjvixepWFZm*1tvx3tjT8}+nv!gd(ZjJC5}8%c1~^D!0y`L* zNT$|uT#T~LDjcNN6S&wj!q~%N@2`yviF>lQiw|RQo{j>dJ>Uh$x5ng2ql>%!-9xX2 zZ>u6@w3tzyQL_(MjT@>mlW5&0dl^{-)nLjdpmK~TjzRV75ldKK2%hcQ%Ih@j3{t2O}KaxZ$)u!N{#*POB zdHL#D5b3%i#oYz5##sDoU+qIDj26j36k;}H=n?m7_0^FAeo11HU?+TNF4OzxHGSf) z>XxF4M@6Y{l%xq)C8OsQL)Kfvo3?4eQ?(-}%_WkvnJwCT>MhD_ny1$(lD8=#RFPjQ zbVqmt$n^>QPnmPIrJ6m7~MKC?f<9|$FW>m~P z$UB%4kOtgSQ4o3JqO}#+JLSVfcURc(k}|tZwgE4OSg@n~CJj5WXCUb`D~U90)#S1d zp=~!DsqJMFE8j*Y)nbUXh0X0DpaqbR0qDf;%Z^ne5Uma1MVp!P+Kqr;Ut8N`J*uId z`DxS43F&x4H=dx@noR)0gX>cWuxHO7&{Gz@`lA8tVeI&)m10%wdBP_l*$xjpAfS(P z+-+_DI(4HKzfjZnwn6`SD8a(;pt2GZS=hkLFR6s{DiX8JhFiU-%bx>33r6o1l%`g@djE~J{**z3lojCuTp}oYgP{ee2s88KoCh`jfj`O{2dpGW?Sx`PtFf2{kRew;OOHO1S(1kA%wL8cTKd zZ<&4~Iud3C>+jtReyr)J20!oet!6%{C8nYD)fl&FGMio2CGx|M z)SjUl3LfZpd%8u%!>7H|?#Rh6`B)(DW1BOD;Rc%oWJWuXSkIW}Nq9mH?2_j`ghQLs!?<~lk^2?6b_%)MbY+I z{e3kY7lV&{Oqgp+UBjq@#$OJ#E=+ZXY2Nr+zpw1ljFKZ+Yd3P{9kX%Ryh8jJ;j~xG-6#!@PJMz2?LnTG)%F zL#4YJ30D>?)?S&J9>>%-SXDDxw(ZWtJLq||*Ng{Rq<=Te0>zA<%DeJ4Mi6?8h?=9H z#D5+sX^0}vLpqt_()J++20$;89&{hA4QaD6=TK-U#B$D%6>*c}NNcjziVIu+#Rh*w^X9cNkTB^d^d9ym>sD=kM&W=$;xmC; z|EA1RKw(iGp4dU5HJ^^UqoCy97-mz~bPX|6v{!O$u4SFpn|(NZ_eDD6x##@{sM7Z; ziFjEWcD%9Q?5$Jxc4#T_Y+kH%KyuF<8+}9E*TI#gFv&tiPTih9_MEZQF~Myy3vP}TVt&Qyr)wC#~7W;9r32_ATq`fMCT(i^5rgL47k z;1}TlEXHXZL`3)w$5z#Q!ud{QRQat7oA_2m+${T|-k3k=jovFZIAHZh^fw6$go)Bt zUV-!Oaro@Q)#+t!xYypxF@B;d_JNW^r~EKOpuA40?_?4EYE6s+-4VC~CS=fUXGJP* zJwaPM{``j{K6z^uM;xbm1;*GFM5f`;7}ikM^l~R)W`z^yZu%eyOI(mqkDxJ*M3MOD zyWG%NhtC5}Bmq<4lAlT~!+NrR5?NWCU%GTBT(?k6f9lSLW@M|gHfXzrTfO-U#n2Dq z9ow%oxi1Z#NnVsj?ubauKFUS>VQwi+_B7!7exXmL$WKVJj_) zmuK173_Z#%KCHuu_<`Y%-)O3${0W2Wk(UGW}UaRsxM^{@s_E9=xDXqNiX<4(!r z)Lh5kZ|)U8bJGBmWb~tAS+$rJ=3;M_jLI~a=hZvyyZU z=R{A(;GLgc=BPV#Q)%5dT&`!>G%}2`Vjx+XCJL$wy@uMv0GRcsDUa zWzbX5?ki0Fd5~4J=ZIN^#|?YiM&aK0Ugbe$6_BZRcKyiJ8?vDh3X=NeGy538N!W!T zF+nMK7C4mocFAU_BDHvi+YK7s)a&xo5}Osy+ug7h(E{NYm3gugGaJ162?bxtcXWSV zI}?$l7n7^eyr;M}m`Rcm46WJ*J4(2@;VR-tSx7uN`KrYP7sjJW+}<7EZgu^rs(!lj zw8sSP9&6|QOE{ZfU|DP9t@9b8Zcfu-U}HyJ(|^%-`6qA4#$~GzjhKUNyP~deTOl`_ zMGmws`}IV_5<(01?7fg?;)87=z?`uv_Vb^K*Cpu>^i^+#&U#1n%o3aK2QNl`&-2pY zhrY_DP79jvHA1wuP<)76-m^U@#}C>zXXpedcfV%6pZrS#{3^a?n!#%jZrb2V{+w)A zEf-MGM)8?GAhP3I%KM&U9*{QOkPNFLEA=@$jkwomCos}!A3=Y8{Y^n`TM624MEq_s z8tvB%zeVTPrFf zJFo3D?mVBGAWNk}DlCw9@B#2FZeX#oSOi%pLx8w3tBdy7qrab+y6{|XcMV(sG;uSV zddT?RX5$c)>Qo>Vce+%oRJ}(v9O%e+zXta*UB<3W7AR_{Rd1ZU1GT${;+DnxymIio zA|EIQ?Z4c1uCM9F!?VYwjUawceE-wL$vcme&rRgl5R12s46hjaR;@Kv*vryFg6iUG z_J+lAx77Lt4 zi)Xy=Ug@MH?F|@!j1hH3xMWZ&YuU&CilYOVaeOR$>Y*}qq>YS{};! zjj7GJNRbSOxDtS)1%MA!IRikZM{GDjG-#|cP3VfbqQuAykBKVio`Ae6p+9Qic@+)=zIFiSZlkDPT(v|8jS8G1vsObp|%VoCxYgVmEK>LQiv#~6+F29;>sgHaogs zE?-U)hPey4-f!2lO;RX@@#_1R4GP$?nIT*wW*L_;|5&d>cwqf>uq<$xKCTr;Z@?hF zQWxhUJG}G4Gns@WGQv%b(ms%>@<+;c+3j0cRpQ1$=A`~Dh6k;Nh$X4K2ac6T?G8g+ z!%}NV5_Me@O01j^TiLw)0Fn%@z7id0Rn2G3%W>@IxBazyG5%oZbn=jT2-(b(O8f;L zXFL%?92CQX)qZTQtii_I|esJx8AlDvX60^tH5#O-sP!c zLNmZ6woy|}Ra39}b=hyz{T^e~6uj}O;_ZByDW~C?(L5}&MW#B^sOP?nz>*obU3cTT zsI%?W@uN=ju3P<1Z7C0DMoSWFH&W?!FJ?T$kJm~^=dpTI-ps9W4)C~B$mVx26Srdik#^N@ zA{88^aARm<)=@H3H;e15fDhh+23wsK_q*$%Kltz6U10g_-CDQ5w|<~IGs%hXN~HD$ zg8(^-gPWO-T?G=iXQrhoxYz3_CU0(lAU39@X}3Ll)KPE2*$I@0SSu7)@!eN%D&m!t zNG;IFp_UiSKk;vO+_rz&uj+ZWyzEGxFKM1%XJE(BHU8#Paa1%_>#1U-xYzf1cMTY4 zY=@OcEq@ON_!L5FETFs_5RZ3*D-WE-oz~!^)-otgZ2f$oUR#&fyxWk+u6tt}IAehL z`PR*2{#BoO?%`@2`cWiw3=qG}(Q4zU$j0h;4J3gyg}xv}I4|YXFR0CriY2TAwf|HI zT=E07*1A&psPRPh<|rUCK1HEzFT}_;E5JAaE=SRHsImp-l#a_01D4Et`XE6#5V55b zoJM9NG=~@sP&qfVVgffpL=ucC?+tx{64h79U>&0*j1^^G>Ds%aJ7s|bBGv;3U}1Mg zw?t>eWI5Y@B>#SWbLsMY_UfhF>Jps);ppU|iYBNGR1K89CJzCsulJ!eWtJL%?}ZVS;?fyUcviqnjpRR>HQkO& z-;Y8j?f`3YvuQ*zF+{tEc9}>Y8-N8cv1)+EYSI*15Dd>k01*yE^sA*qH6^7z zLIUZ9p@@7`&o|hs&C8T2p*Z)ZN>jeQ?>^J%^_v9v{^~5({1&=Jm)$xf>8OrkX{|CP zh20M+$cTc*WoeBL{1AO@!|(q20{_Gg2c9oWpZ{@sutgQ#AtiE6zW1bHO#NXACVEBU z`UK=_R~h5L?9x?_KHYo$N9JMj<~)9R8>HLY*RLMmci9VgYY4tpp}|qfhb?8zJtfi( zfVrrzGLD>pwbl)vpWMuj{1JT-JL6RAcHl~#h%LjDJ?!d=5iYbU4#zmy66Lq@a>~pj zvy1&ALWu-#CRZmg)4Z_JOo8mCjEI|gwfVc?-E83N2`$#|-YnbA-a5Swscl@P;-;CA zKgvAOnEA}5QKT#w^8+Ri>wS_2jLI@zKlprdK3%3alDO)_$W#|vcLzSfoI!{DxlT{{ zZ~f|HA`#{F=z(OIUO`~;LCh~4i1?CEfAa*gxcpIZeAs>K&CsX6+BPg;1X!sVM$F0E z(AWf$Lv^SAum`00@%Xcanisba3~5LbH(SI=D~F2SRoft_JBM5NRLhEmuB4h_bBI}A z9z8k1>4~Ln;ZwxYfrYa!A8w1mIiGla>W(R8mW%@GayJ?;Oof18lw)}XB5ac71fe7; zastpsqDkS<%356k`ok;vTIO1!CY%MH)Q!_%BJ#bp!IcxWK@MSYKk=><*N5r zhUvzTuW{5k+t@^EZUQQr7*4CzE22AE6|$ih1Wq3Q4~~bh0xVL%{cTz&8&4p^IF+zr%pDhv=1kJ z89J8`RM{)jAnhC_r0RM#cesw_bvJ-R@6f8uYPH>;2 zYPdEvHNj<`*qQYQGWEy{0ZEa+Rs&QoIahQadgI2r)Z%95)M%bhyA~?#t;`%Ef8-57 z;bsy7i2Y2Ey$63&2V85r=&SXuD7xlv>`Lx=IVxh4{}lh-jr!$Lx~ivkSrbGIMgtt5 z?Wg*fnurzJC)|TE#Naw?!2}e^#U3JtHanp1=u*Cx*c)l8|5bVoh5^1p?zRG&=Oy-r z;1)GCSIVAovUv$#tDymv7p72R6aP)Se`ov^OML>9wSvo-o(m&*&TMWAiw@(amlwy1 z;t`(b1u9eZ=VL|H4{r~^+OFm_8Si{~$Gpcxal-^tAB-f;#TW{{yt{RR??-3JQ*QdY z;J((;T6jmW2NZdD!NVL@iB%T{fOp;t+J&<&stIvA5MW~4U_)!V(QXm%=R7E(>&Pn3EX*e(R`%^ zX9yrKipG{??LZ-GjVvvHMX~e9CbFl;1gj^4of~LcsDROu(Af-Bmm^$+Y}t!0k@NY{ zZM7LOoXg4`1Q4Ng$}`!Y$&#*s=q^U|_6GNFQdJ>sSFxKcc3@182UtcPaISUn6O?$0 z-Tje8yqd4}?T$Kow(x%lx?^J;tT;{zL}dMCWUo+O4ObBQJE^6dwN(9_gu(3;~%{i*(371PIuqV zi0-@7@AB|?e9k}Td0p?%waztOuRDI_3L}r}Yoa}*`Hoi0^3Z&G-%%>GcP^QDBuwmz zX4^s8^184-fq^D_Cv_n%!3yi};avuCM-;70PDc>N_hliMd7!NcQ1NNYLcV4ONWhH+ zzN|UY`mqZHb>S0ceDSAxXyF^@g&2!VAJFOE)aYxwAXQ@gF1gxqR^{4AXNwIbXGBbW znmD(rKf{_m1Tt-v+|cAgMfIdzwOFUC9a$}yKP^b9_`K`TD<;ip%ABQ{)T6%i{IwCB zJab1kY$o*f*Krp<;~07|F(5!s!)@r){gzJnMOWjwu1SJV23dryixGd!J;@zrt=dC;LM3umBf45?ya8IKbl*tb`<@Qq*i`8XXb z>L4QJDd?k?`YLrIdu12CWRs`kaeigTcYLHZWE|Ao!9dA?=$nO(st0zflbfG(Xxd9A+uExD5U)}AK5Ii^G6y^CW z*Kk6c$^VibJKK4g9ExjPN7tlgFTxh>pvo6G@)rl9%nz_jjNGmop3isFh%xdCc~e``5>s?ELEu~;THewC{- zDFWqj7%=J4h{1q!R&^W&0q5EK>&9E)+1!Z3gRZdEys2M_j0K9qa^igCrfxWRnh!s8 zUs*4;`ermwd0_4#F5bm!g0aV9#mfq=lb02=Tpvi<(b@H-Ny)URYZOS}*S|@~lzP(G z|JV9Jj5HI`Y}XPQq4a^BZO|wD%!JK8V?#vj&@irbDd+Xp)HBj1>s;ndkh%dv0vi1+ zrIlrgp@Ekt3E#J0+5I^$qVVA4LcVfXN>_BF#{aJaI>dWxcR2PoTkh)D)b7#t}u##T8=oR+v>Ix0B zXmff}q+2d&M21o+pFFkFy`+9EWpZ=K;d6RK$ZOYvi4AnW+yY7&#%AW3hhWS4J*&j` zY#XBPD|5H#nS^(U(4Aq6pPI^)((IWSxBn0g#u(4|ypU6)`RrnThn^~=Qus&bh0Ma? zLKbY@rsi&pq-)n-r3sSoO02{0N>j-M)#TTYOS64`;oz?s$^8zR2X9K^gTIH!EL>!| zG(E)S`1p2ygZA{`^pwk6JF$CTo)S;HaJFC@UOo4g+V#VkcF1Z9vQ?RJbD?s3S~6O!CRb2c>G)AEg+H zK5U)WRtpbZjH_0Nd26IXIyT<$&^J>yqu;h-=jiG;9ZsR?X7MNp0YNsH)Ne2N^e@M? z&@+C7f}YF~6%9rH?^Awo5eVt#3B0DgTknzwpP*D6`dY`5!p>}HOaZmXQlgB2)xw(o zdK~~UtS(ieNQ4V1>nR?4Ux_6f(TUx3}xwLIoS zpE0_@9I^22x_fzqiLwFsN#YLvw=aV1fBn(og#>z`*8D)z;D>am`wz?PoBHjp@0Dq4 zlv<<=TWmL{7(!hxj_hCv5bC;W1Mg>!Z*)yR@YXf@Awu?@1@sFnpfAsO+R6FkYZ|ii z%E`*G2em~7#ep?*4Q0^vCuzNblF+`pui~&KO5HTun*KFSTlTG~_AB z)t@ETG8az9)ZjZiBXV7#QJgEO`8`4N#HG0p^9cU{cUUj&+}ZZn8!sd$D`!&jBD({Y zWV5bFF;;thWfvVHyQsqGmqy@up3s+QW$GadOi1;emZ77WWZ6@jD+8tb^XXnZXQR%4 zD;<(Soam9HR9P^w>#3bDO44mLW%lwIL5d3#7m|og@Er7`0lzGlNb3(nP3BL5O+v9ag`$5UzuMKIm_6ac|rwyOD z$k&q^>^!V)bycxPB5rrbsBUttaa@_!;8@EVyVM@Dy3fyB=!I1&7CBON=j_Mz+zfd$ z2;*bM4fNGU9{JPni-k>9uJi|ta`y^P((!ct5>CR%QV^lYFFJ8FUmtyu+NHB<{ zcgYWwLn5=``^k2wvmhVLoWDx-26{1R03lZu zUir+|j83YP3f`H#Nm`$7H~gA<<#M?eGACn>;-uVl)tQMn zTSlEwjYtjuQpyuh<)~D5{tisLm|@)rbfQhX1=A?9(juvL?WT;H3|B6FSI$xuh1GLlTnJ*N-`Zp(u~7j9M7W=FzeCYXsV7lR1v5z1pXv-mmDBkjwLI?*2G8H%f?5EWWJps7838u76rXEYME*K9K!!=f9~^-j|#sap8%f_AMy+` zF2>BQOAGj@Briyb%vP2Sszo;Q(bKo{jnTj5tKu|#SZI`yO-DOph|Cgr^}f}jk~51$ zq)|I^sy)P9F|~W?Qt_bW^wV6i#q7Q3QoT|KHYLVaA8YQ21Q#H*vO?SFyLzbvk$sWw!Rl0pT+VC~PkCkgekN@^z(o2kU5fFBO30;BS6++C&GJds4GJ;~ zy`vj+k^U!S7rXi-$cM@To`sf%FS#JAKK2I`xrQ!!3KhyCnxfB(K=MWV`hAp&>!;-I zF_e?5hZ*k;SGd)mvDU!i;b!nU-7twY&7od`mpLzV;G&RhphS~h-riGtgw`D;YbBZ# zdCzsUK3conQ240zqr(;R>kSoD3eBT4f{|f~6Dc&UJj5!z%7Pj#0^+ArJtVFi9PyLL z3~Te!xj`$>afeK2X)`C4A~WI5UeVG>SCE!*#S*G z?vwD+X}Ei+)qHAg+Pc=^+LQL6X7VKp3BBC)nDEIBi&$ay`xn0qy-+7R$Dff&%T(wg zbW?4zUe?j}tBT|7(8lOM!=2Wi;qsiERV5jwldZ$TO+hb1UH0@m&YzDIgUx;uK(#wM zOt}tDrzd>7B|u0-M?gnFMn*;e*XS|k5RKM62KJNpoU?mpEZ%(-CR)1np$eu zUo&=oTviP&O37EG4u_f2j4tD%=N7$$~6Np%4jNhQl|P7u$!mXFQ^BV?Tt`!vNk|J4t2Q(orY=tfU4l>>E`(h ztogiM0SrW$2y|ttXeM~F0tTRXM_JLq8C+ri1$RW}iSRHeDia7Y_S^jmZr9_@Mfh2P zndh(K%*LeXR7XNUaE%#AqG1)-nCXwe3a&m5o^Gx#Ktoi^%?qjJ=?0eXz1%#vtYfSR zXKMLD9cu?U(Zb3_I>#U6LdVv|!Alolfo}gVg74~o{XiTDz7e3yW6=@&@uAzgxOxMR zBv&wyx&Cvr1h-AOkXTl}0JU2TR5c|mq8<<4LvSU952=H4#Mw#@WQzq~K8(G=X)drYTZJB|2 zD}@~>`7++0;(dhw&oZC`eup}5{gP?(ojS+>@EvH=dgvm9Cq^(7{C=B8O^A?SLd1`n z73tY~+FIIZxw$$2qGI#OPZx=T96SN{7qQ=X7MKnFNe;fx&3+gz;8yUdpl-jLpgCEC z(F(i!)&Vl$zfbl?S=RBR^wX^@y=;G&1>$0*Q#e)RfFwy9=&Z4^r)B;KYpVxJygl}X zR#YO0vm+&L2f_|oH@>As$ct`Ev@7Z5`V0QtuGiLzlHZ7t#@2(wW(uX~VH9q&7*dLZ{TRKhRf-!yL zu%{P?gYgA}`RewLfVdgJv?@bg1xKe{A^2thEe!w$cub#7TsWrf6-s^)o!G+gh5yPM z4VRB;?1VkZ&7?QWsdSPY)TAMOsgEKHerlz=`u4aMQZLd)sn zk}&nsu?Leq@xMj-uJ(-S)rO(%jf=%p6~}&kJ_-0>f0ky)C1OfkpFqbGJT)caMa0rB z$E9J)>0-C=!sI`rZLxNUsnm!)L=>g{7VLk*CI6z=i(6Ps4IS)7rn(&b`P-|~E3wBM;Ex{`n=pp*MFy)rr9;SK;_T(U^6ff*H<=zsGc{2vPPdZrkTkvnUVX);= zaN~=4(ieMlRBily7RJpRToC2~1JsTVI*qme5`^Ak`uP|!E(G%k0Cwd1`u`(j+mj2p zEX)lwS#)W@Q}V0-$ol0G16&^Fb{KZ&(>(Bdye&5AaABBxBd8rVbaEQ}kFcNi+qBe( TNl@P-4*qPwrb_F3)TjRg>$Hv- literal 0 HcmV?d00001 diff --git a/CPCReconciliation/src/main/java/com/nmg/gs/entity/GDCpcPayInfo.java b/CPCReconciliation/src/main/java/com/nmg/gs/entity/GDCpcPayInfo.java index 15b3db7..b2a54e8 100644 --- a/CPCReconciliation/src/main/java/com/nmg/gs/entity/GDCpcPayInfo.java +++ b/CPCReconciliation/src/main/java/com/nmg/gs/entity/GDCpcPayInfo.java @@ -2,9 +2,12 @@ package com.nmg.gs.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.apache.ibatis.type.JdbcType; +import java.util.Date; + /** * @author: shuguang * @date: 2025年04月18日 10:22 @@ -16,8 +19,11 @@ public class GDCpcPayInfo { /** * 统计日期 格式:YYYY-MM-DD */ - @TableField(value = "CLASS_DATE", jdbcType = JdbcType.DATE, update = "to_date(#{CLASS_DATE},'yyyy-mm-dd')") - private String class_date; + @TableField(value = "CLASS_DATE", jdbcType = JdbcType.DATE) + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date class_date; + + /** * 班次号 */ @@ -77,6 +83,7 @@ public class GDCpcPayInfo { /** * 入库时间 */ - @TableField(value = "INSERT_DATE", jdbcType = JdbcType.DATE, update = "to_date(#{INSERT_DATE},'yyyy-mm-dd hh24:mi:ss')") - private String insert_date; + @TableField(value = "INSERT_DATE", jdbcType = JdbcType.DATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date insert_date; } diff --git a/CPCReconciliation/src/main/java/com/nmg/gs/entity/Summary.java b/CPCReconciliation/src/main/java/com/nmg/gs/entity/Summary.java index 2c8dfe6..5bfb362 100644 --- a/CPCReconciliation/src/main/java/com/nmg/gs/entity/Summary.java +++ b/CPCReconciliation/src/main/java/com/nmg/gs/entity/Summary.java @@ -2,9 +2,12 @@ package com.nmg.gs.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.apache.ibatis.type.JdbcType; +import java.util.Date; + /** * @author: shuguang * @date: 2025年04月23日 8:06 @@ -16,8 +19,9 @@ public class Summary { /** * 统计日期 格式:YYYY-MM-DD */ - @TableField(value = "CLASS_DATE", jdbcType = JdbcType.DATE, update = "to_date(#{CLASS_DATE},'yyyy-mm-dd')") - private String class_date; + @TableField(value = "CLASS_DATE", jdbcType = JdbcType.DATE) + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date class_date; /** *交易笔数 */ @@ -47,6 +51,7 @@ public class Summary { /** * 入库时间 */ - @TableField(value = "INSERT_DATE", jdbcType = JdbcType.DATE, update = "to_date(#{INSERT_DATE},'yyyy-mm-dd hh24:mi:ss')") - private String insert_date; + @TableField(value = "INSERT_DATE", jdbcType = JdbcType.DATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date insert_date; } diff --git a/CPCReconciliation/src/main/java/com/nmg/gs/service/impl/RequestInterfaceServiceImpl.java b/CPCReconciliation/src/main/java/com/nmg/gs/service/impl/RequestInterfaceServiceImpl.java index bff68f8..f186237 100644 --- a/CPCReconciliation/src/main/java/com/nmg/gs/service/impl/RequestInterfaceServiceImpl.java +++ b/CPCReconciliation/src/main/java/com/nmg/gs/service/impl/RequestInterfaceServiceImpl.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nmg.gs.common.emnu.Constant; import com.nmg.gs.common.emnu.MessageEnum; import com.nmg.gs.common.exception.PPException; -import com.nmg.gs.common.utils.DateTimeUtil; import com.nmg.gs.common.utils.MyOkHttpUtil; import com.nmg.gs.common.utils.NewFileUtils; import com.nmg.gs.common.utils.PathUtil; @@ -174,40 +173,33 @@ public class RequestInterfaceServiceImpl implements RequestInterfaceService { } } } - int count = 0; - int repeatCount = 0; log.info("[uuid:{}]-解析zip文件{}生成对象完成", uuid, fileName); - + Date nowDate = new Date(); if (!detailList.isEmpty()) { + log.info("[uuid:{}]-数据库表DCPC_GD_PAY_INFO按照主键PAY_NO先删后插", uuid); for (GDCpcPayInfo info : detailList) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("PAY_NO", info.getPay_no()); - boolean exists = gdCpcPayInfoMapper.exists(queryWrapper); - if (!exists) { - info.setZip_filename(fileName); - info.setInsert_date(DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD_HH_MM_SS)); - gdCpcPayInfoMapper.insert(info); - count++; - } else { - repeatCount++; - } + //按主键先删后插 + gdCpcPayInfoMapper.delete(queryWrapper); + info.setZip_filename(fileName); + info.setInsert_date(nowDate); + gdCpcPayInfoMapper.insert(info); + count++; } - log.info("[uuid:{}]-插入数据库表DCPC_GD_PAY_INFO条数为{},重复条数为{}", uuid, count, repeatCount); + log.info("[uuid:{}]-插入数据库表DCPC_GD_PAY_INFO条数为{}", uuid, count); } if (summary != null) { + log.info("[uuid:{}]-数据库表DCPC_GD_SUMMARY_INFO按照主键CLASS_DATE先删后插", uuid); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("CLASS_DATE", DateTimeUtil.getFormatDate(summary.getClass_date(), Constant.YYYY_MM_DD)); - boolean exists = summaryMapper.exists(queryWrapper); - if (!exists) { - summary.setZip_filename(fileName); - summary.setInsert_date(DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD_HH_MM_SS)); - int insert = summaryMapper.insert(summary); - log.info("[uuid:{}]-插入数据库表DCPC_GD_SUMMARY_INFO,统计日:{},条数:{}", uuid, summary.getClass_date(), insert); - } else { - log.info("[uuid:{}]-插入数据库表DCPC_GD_SUMMARY_INFO,统计日:{},数据已存在", uuid, summary.getClass_date()); - } + queryWrapper.eq("CLASS_DATE", summary.getClass_date()); + summaryMapper.delete(queryWrapper); + summary.setZip_filename(fileName); + summary.setInsert_date(nowDate); + int insert = summaryMapper.insert(summary); + log.info("[uuid:{}]-插入数据库表DCPC_GD_SUMMARY_INFO,统计日:{},条数:{}", uuid, summary.getClass_date(), insert); } } diff --git a/CPCReconciliation/src/main/java/com/nmg/gs/test/GuavaTest.java b/CPCReconciliation/src/main/java/com/nmg/gs/test/GuavaTest.java index 59ba311..2b29e93 100644 --- a/CPCReconciliation/src/main/java/com/nmg/gs/test/GuavaTest.java +++ b/CPCReconciliation/src/main/java/com/nmg/gs/test/GuavaTest.java @@ -94,6 +94,7 @@ public class GuavaTest { * Graphs:图结构 */ @Test + public void testGraphs() { // 创建图 MutableGraph graph = GraphBuilder.directed().build(); @@ -343,13 +344,35 @@ public class GuavaTest { // true System.out.println("60分是及格吗:" + isPass); System.out.println("passRange:" + passRange); - + System.out.println("==================================================="); // 创建一个开区间 (80, 90) Range goodRange = Range.open(80, 90); // true System.out.println("80分是良好吗:" + goodRange.contains(80)); System.out.println("goodRange:" + goodRange); + System.out.println("==================================================="); + // 创建一个左闭右开区间 [80, 90) + Range goodRange2 = Range.closedOpen(80, 90); + + + System.out.println("左闭右开区间 [80, 90):"); + System.out.println("80 是否在区间内:" + goodRange2.contains(80)); + System.out.println("90 是否在区间内:" + goodRange2.contains(90)); + System.out.println("85 是否在区间内:" + goodRange2.contains(85)); + System.out.println("goodRange2:" + goodRange2); + + System.out.println("==================================================="); + // 创建一个左开右闭区间 (70, 80] + Range anotherGoodRange = Range.openClosed(70, 80); + + + System.out.println("左开右闭区间 (70, 80]:"); + System.out.println("70 是否在区间内:" + anotherGoodRange.contains(70)); + System.out.println("80 是否在区间内:" + anotherGoodRange.contains(80)); + System.out.println("75 是否在区间内:" + anotherGoodRange.contains(75)); + System.out.println("anotherGoodRange:" + anotherGoodRange); + } diff --git a/CPCReconciliation/src/main/java/com/nmg/gs/test/Test02.java b/CPCReconciliation/src/main/java/com/nmg/gs/test/Test02.java deleted file mode 100644 index 5bfc5fe..0000000 --- a/CPCReconciliation/src/main/java/com/nmg/gs/test/Test02.java +++ /dev/null @@ -1,299 +0,0 @@ -package com.nmg.gs.test; - - -import com.alibaba.fastjson2.JSON; -import com.nmg.gs.common.emnu.Constant; -import com.nmg.gs.common.utils.DateTimeUtil; -import com.nmg.gs.common.utils.MyOkHttpUtil; -import com.nmg.gs.common.utils.NewFileUtils; -import com.nmg.gs.common.utils.SignUtil; -import com.nmg.gs.common.utils.UnzipUtil; -import com.nmg.gs.entity.GDCpcPayInfo; -import com.nmg.gs.entity.Signature; -import com.nmg.gs.entity.Summary; -import okhttp3.HttpUrl; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.util.ResourceUtils; - -import java.io.File; -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; - -/** - * @author: shuguang - * @date: 2025年04月18日 14:50 - * @description: - */ -public class Test02 { - private static final String VERIFY_INTERFACE_URL = "https://openapi.mtuoluo.com/api/dcpc/user"; - private static final String GET_FILE_INTERFACE_URL = "https://openapi.mtuoluo.com/api/dcpc/billCheck"; - private static final String DB_URL = "jdbc:oracle:thin:@10.15.0.12:1521/ORCL"; - private static final String DB_USER = "nmgjtjt"; - private static final String DB_PASSWORD = "sysadmin"; - - public static void main(String[] args) { - // 设置时间范围 - String startDate = "2025-04-18"; - String endDate = "2025-04-18"; - - // 将日期字符串转换为日期对象 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Date start; - Date end; - try { - start = sdf.parse(startDate); - end = sdf.parse(endDate); - } catch (Exception e) { - e.printStackTrace(); - return; - } - - // 检查开始日期是否小于结束日期 - if (start.after(end)) { - System.out.println("开始日期不能大于结束日期"); - return; - } - // 在指定的时间范围内循环 - while (start.before(end) || start.equals(end)) { - String queryDate = sdf.format(start); - System.out.println("查询日期:" + queryDate); - String timestamp = String.valueOf(System.currentTimeMillis() / 1000); - String encryptTimestamp = SignUtil.generateSign(timestamp); - - // 构建包含查询参数的URL - HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(VERIFY_INTERFACE_URL)).newBuilder(); - urlBuilder.addQueryParameter("timestamp", timestamp); - String requestUrl = urlBuilder.build().toString(); - - OkHttpClient client = new OkHttpClient().newBuilder() - .build(); - - System.out.println("请求地址:" + requestUrl); - System.out.println("timestamp: " + timestamp); - System.out.println("app-key: " + Constant.APP_KEY); - System.out.println("signature: " + encryptTimestamp); - - Request request = new Request.Builder() - .url(requestUrl) - .method("GET", null) - .addHeader("app-key", Constant.APP_KEY) - .addHeader("signature", encryptTimestamp) - .build(); - - try (Response response = client.newCall(request).execute()) { - if (!response.isSuccessful()) { - System.out.println(response.code()); - throw new IOException("返回码 " + response.code()); - } - - String responseData = Objects.requireNonNull(response.body()).string(); - - // 检查返回数据是否为 JSON 格式 - if (!isJson(responseData)) { - System.out.println(responseData); - throw new IOException("返回数据格式错误,返回内容:" + responseData); - } - - - System.out.println("验签接口返回response:" + responseData); - System.out.println("=============================================="); - - Signature signature = JSON.parseObject(responseData, Signature.class); - if (signature.getCode().equals(Constant.INT_10000)) { - // 设置请求的URL - - - // 设置文件保存的目录 - String saveDirectory = "D:\\downTest\\DownloadFilePath\\"; - String unzip = "D:\\downTest\\DownloadFilePath\\unzip\\"; - - System.out.println("获取文件接口地址:" + GET_FILE_INTERFACE_URL); - - // 调用工具类方法下载文件 - String fileName = MyOkHttpUtil.downloadFile(GET_FILE_INTERFACE_URL, timestamp, queryDate, saveDirectory); - - if (fileName != null) { - System.out.println("下载的文件名:" + fileName); - } else { - System.out.println("文件下载失败"); - } - - List jsonPathList = unzipFile(saveDirectory, unzip, fileName); - Summary summary = null; - List detailList = new ArrayList<>(); - - try { - if (jsonPathList.size() > 0) { - for (String jsonPath : jsonPathList) { - File file2 = ResourceUtils.getFile(jsonPath); - String json = FileUtils.readFileToString(file2, Constant.UTF_8); - if (jsonPath.contains("summary")) { - // 解析 Summary 对象 - summary = JSON.parseObject(json, Summary.class); - } else if (jsonPath.contains("detail")) { - // 解析 GDCpcPayInfo 列表 - List details = JSON.parseArray(json, GDCpcPayInfo.class); - if (details != null) { - detailList.addAll(details); - } - } - } - } - } catch (IOException e) { - e.printStackTrace(); - } - System.out.println(summary); - System.out.println(detailList.size()); - if (StringUtils.isNotBlank(fileName)) { - // 入库操作 - insertGdCpcPayInfo(summary, detailList, fileName); - } - // 增加一天 - start = DateTimeUtil.addDateDays(start, 1); - } - - } catch (IOException e) { - e.printStackTrace(); - } - - - - } - } - - /** - * 解压文件 - */ - private static List unzipFile(String saveDirectory, String unzip, String fileName) { - // 被解压的压缩文件 - String fileZip = saveDirectory + fileName; - // 解压的目标目录 - NewFileUtils.fileCreat(unzip); - // 解压之前先清空解压目标目录 - NewFileUtils.removeFiles(new File(unzip)); - // 解压缩文件 - UnzipUtil.dealUnZip(fileZip, unzip); - return NewFileUtils.getJsonPaths(unzip); - } - - private static boolean isJson(String str) { - try { - JSON.parseObject(str); - return true; - } catch (Exception e) { - return false; - } - } - - /** - * 将zip文件中的json数据插入数据库表中DCPC_GD_PAY_INFO和统计日汇总表DCPC_GD_SUMMARY_INFO - */ - private static void insertGdCpcPayInfo(Summary summary, List detailList, String fileName) { - Connection conn = null; - try { - // 加载Oracle驱动 - Class.forName("oracle.jdbc.driver.OracleDriver"); - // 建立数据库连接 - conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); - - // 插入DCPC_GD_PAY_INFO表 - String insertPayInfoSql = "INSERT INTO DCPC_GD_PAY_INFO (CLASS_DATE, CLASS_NO, LIST_NO, PAY_NO, ROAD_NO, STA_NO, LANE_NO, PAY_FEE, FEE, DISCOUNT_FEE, ORDER_ID, ZIP_FILENAME, INSERT_DATE) VALUES (to_date(?,'yyyy-mm-dd'), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, to_date(?,'yyyy-mm-dd hh24:mi:ss'))"; - PreparedStatement payInfoStmt = conn.prepareStatement(insertPayInfoSql); - - int count = 0; - int repeatCount = 0; - - for (GDCpcPayInfo info : detailList) { - String selectPayNoSql = "SELECT PAY_NO FROM DCPC_GD_PAY_INFO WHERE PAY_NO = ?"; - PreparedStatement selectStmt = conn.prepareStatement(selectPayNoSql); - selectStmt.setString(1, info.getPay_no()); - ResultSet rs = selectStmt.executeQuery(); - - if (!rs.next()) { - payInfoStmt.setString(1, info.getClass_date()); - payInfoStmt.setString(2, info.getClass_no()); - payInfoStmt.setString(3, info.getList_no()); - payInfoStmt.setString(4, info.getPay_no()); - payInfoStmt.setInt(5, info.getRoad_no()); - payInfoStmt.setInt(6, info.getSta_no()); - payInfoStmt.setInt(7, info.getLane_no()); - payInfoStmt.setLong(8, info.getPay_fee()); - payInfoStmt.setLong(9, info.getFee()); - payInfoStmt.setLong(10, info.getDiscount_fee()); - payInfoStmt.setString(11, info.getOrder_id()); - payInfoStmt.setString(12, fileName); - payInfoStmt.setString(13, DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD_HH_MM_SS)); - - int rows = payInfoStmt.executeUpdate(); - if (rows > 0) { - count++; - } - } else { - repeatCount++; - } - selectStmt.close(); - rs.close(); - } - System.out.println("插入数据库表DCPC_GD_PAY_INFO条数为" + count + ",重复条数为" + repeatCount); - - // 插入DCPC_GD_SUMMARY_INFO表 - if (summary != null) { - String selectClassDateSql = "SELECT CLASS_DATE FROM DCPC_GD_SUMMARY_INFO WHERE CLASS_DATE = to_date(?,'yyyy-mm-dd')"; - PreparedStatement selectStmt = conn.prepareStatement(selectClassDateSql); - selectStmt.setString(1, summary.getClass_date()); - ResultSet rs = selectStmt.executeQuery(); - - if (!rs.next()) { - String insertSummarySql = "INSERT INTO DCPC_GD_SUMMARY_INFO (CLASS_DATE, TOTAL_COUNT, TOTAL_PAY_FEE, TOTAL_FEE, TOTAL_DISCOUNT_FEE, ZIP_FILENAME, INSERT_DATE) VALUES (to_date(?,'yyyy-mm-dd'), ?, ?, ?, ?, ?, to_date(?,'yyyy-mm-dd hh24:mi:ss'))"; - PreparedStatement summaryStmt = conn.prepareStatement(insertSummarySql); - - summaryStmt.setString(1, summary.getClass_date()); - summaryStmt.setInt(2, summary.getTotal_count()); - summaryStmt.setLong(3, summary.getTotal_pay_fee()); - summaryStmt.setLong(4, summary.getTotal_fee()); - summaryStmt.setLong(5, summary.getTotal_discount_fee()); - summaryStmt.setString(6, fileName); - summaryStmt.setString(7, DateTimeUtil.getFormateString(new Date(), Constant.YYYY_MM_DD_HH_MM_SS)); - - int rows = summaryStmt.executeUpdate(); - if (rows > 0) { - System.out.println("插入数据库表DCPC_GD_SUMMARY_INFO,统计日:" + summary.getClass_date() + ",条数:" + rows); - } else { - System.out.println("插入数据库表DCPC_GD_SUMMARY_INFO,统计日:" + summary.getClass_date() + "已存在"); - } - } else { - System.out.println("插入数据库表DCPC_GD_SUMMARY_INFO,统计日:" + summary.getClass_date() + "已存在"); - } - selectStmt.close(); - rs.close(); - } - } catch (ClassNotFoundException e) { - System.out.println("Oracle驱动加载失败"); - e.printStackTrace(); - } catch (SQLException e) { - System.out.println("数据库操作失败"); - e.printStackTrace(); - } finally { - if (conn != null) { - try { - conn.close(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - } -} diff --git a/CPCReconciliation/src/main/java/com/nmg/gs/test/Test03.java b/CPCReconciliation/src/main/java/com/nmg/gs/test/Test03.java deleted file mode 100644 index efddb02..0000000 --- a/CPCReconciliation/src/main/java/com/nmg/gs/test/Test03.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.nmg.gs.test; - -import com.nmg.gs.common.utils.SignUtil; - -/** - * @author: shuguang - * @date: 2025年04月21日 16:56 - * @description: - */ -public class Test03 { - public static void main(String[] args) { - String timestamp=String.valueOf(System.currentTimeMillis() / 1000); - - String signature = SignUtil.generateSign(timestamp); - String date = "2025-04-18"; - String signature2 = SignUtil.generateSign2(timestamp,date); - System.out.println("timestamp="+timestamp); - System.out.println("signature="+signature); - System.out.println("date="+date); - System.out.println(signature2); - } -} diff --git a/CPCReconciliation/src/main/resources/version/1.0.1.txt b/CPCReconciliation/src/main/resources/version/1.0.2.txt similarity index 83% rename from CPCReconciliation/src/main/resources/version/1.0.1.txt rename to CPCReconciliation/src/main/resources/version/1.0.2.txt index 0dfda2f..c4ba3cf 100644 --- a/CPCReconciliation/src/main/resources/version/1.0.1.txt +++ b/CPCReconciliation/src/main/resources/version/1.0.2.txt @@ -6,3 +6,4 @@ verifyInterfaceUrl=https://openapi.mtuoluo.com/api/dcpc/user reconciliationInterfaceUrl=https://openapi.mtuoluo.com/api/dcpc/billCheck 2 2025年06月18日 1.0.1 增加查询明细及统计日对账查询页面 +3 2025年06月20日 1.0.2 重新获取统计日期的明细及汇总文件时DCPC_GD_PAY_INFO、DCPC_GD_SUMMARY_INFO按主键先删后插 diff --git a/CPCReconciliation/target/CPCReconciliation/WEB-INF/classes/com/nmg/gs/entity/GDCpcPayInfo.class b/CPCReconciliation/target/CPCReconciliation/WEB-INF/classes/com/nmg/gs/entity/GDCpcPayInfo.class index b1d94307e3f6a2ad5ed47a80b1af7b4d5564eee1..cd4fc45efb84eeaa4505b2872646812ab8254f83 100644 GIT binary patch literal 8075 zcmc&(d3D~Y}(wEtMh0T3z?q~A=o3FC@8k+~%e4WiV*nE@Cx7d8! zPu~gR^Sf-m$CBS??;$o1vw4Kg57_*W&5zhT%H}aPKW6h2HjlIUDGNN|rzeBdL-!i= zGyeQJo2Lx=g+aeG=vM~)+MwSU^t3_0HRyK+{obHI81#%me>CV%jQz8p{vs$in@;5O zGjoYTQcz@MPvZPUe7TTH#|O}}Nsu+UoGGLhliO1H)UI^0FO$g@5`|PYlNWT<$ZU2o zzAKSkOwDDNMANB!VTO_Zk>RQ78Se8fCHBfL-$dVb+2hY;6LYew*`YU_ zDJ18UIexUs@xB4Y%@-1iJ2l;>xEMRBN9Y?HRDC?c?j#;r&zO9^k*s_=KaV;zh`iQI zNWJvUxm12Oi@8)hb6|L?fBcNGX@xYhxw&L+CdK&}pBxyRoEaVvWL}tBn%SL7Co_pf zjAiZ^o|qXL9vK|#8-;o(mB}Y_1-*1a!(&r}lhb-eo68yQIqfuiana6Wz4%T_Wm1Kc z@nCD$ZNohFXXhZ>IFiaF$Cej&C3AAAaMH80iS)KaF2zencX|p7DQNV_Seh}L{3qwra3dj#2`@R9HCLl5&Tk) z+MMiSikKb%s+1&_DkVuv$s`q@xtt^B`T$W`f>V_x^f>WfY+)gp!}j0>8Y}Jeu$PDs2Kp9*}qidQrWS#@Gzk4|NmbF(;v(T!zN2hCY{G7 z$0kX;O`4|#lTvK)Vb#I#;F#YoG#O zER~K6PDMI5(c!qd9*awLnCf_$kf4{K)q~dY_&Xs_Cz73{O>`1%M*HMEy_8PLQy+Y+ zCyfr_^LYFLJ%9k#*vh~V0$6t|1E(Q?wYW0yG6b+bR|ZBAz?xkd7)Jo>cx7M`0j%wn zfoTM=-d6^;A%H!wGH@0G*cU4UI}pHL(E&#SUtX2KSEvLY1|&8o>`o*+j!%J4@A_Lv z+yJMJ60knm8KGV9O$DG?nnO$QR)XCLzf8V~>aItJlicA-#ujuT*H@Ddb0uTzx{y89 zgC3;u@maBAAIXK+)Q=u+p0|=^tR$Hr^?_3;CTfa5m^x+4fmp#`x~1=spTtUd!hIwb*`uT5QAe zGsw^&zhyW;t#$yQRy$|~7!=f?fE9Fr+UyWOZMJEJ7-VV?JO`-V4g=I~H&|f?HE2-S zYH)x$>_&h(?1tqf|@pjNBR0qVBf0qV9ptab)7DRAv_;%X?}F#0QE?-^8=jBS;&QqSo}Y5!QhEc=> zM4y0XiM!|&`Xszg@i@M4dmu_`qS62&far!Z#m*9m(QSlO4TJUuj zT{|JP9}*FilG(_nlRTSc!RU@`T0prlA{+LRf8zl3C_{z`Be?-I}yV+Ezma*t_Zz>Qeu9x|-y!9&o?3eSenBB4Wzly#m1q@~Pf zl`5+}H%<$NpG&Z;Srb&tauJs63iN0BCs&D4}u;dQu7eyQJx=CKk4*b@39KXj|Lt{jm%Iq`&wO{|4?pwW^FPkrKJNek literal 7936 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 PoFh4^w@)GyXXt+b%%wn> delta 3706 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 diff --git a/CPCReconciliation/target/CPCReconciliation/WEB-INF/classes/version/1.0.2.txt b/CPCReconciliation/target/CPCReconciliation/WEB-INF/classes/version/1.0.2.txt new file mode 100644 index 0000000..c4ba3cf --- /dev/null +++ b/CPCReconciliation/target/CPCReconciliation/WEB-INF/classes/version/1.0.2.txt @@ -0,0 +1,9 @@ +序号 日期 版本号 说明 +1 2025年04月18日 1.0.0 初始版本号(数字CPC车道系统-国道服务器对接接口-对账) + #DCPC验签接口及获取对账文件接口--目前是测试环境,后期换成内网地址 + #是否开启获取国道CPC对账文件 0--不开启,1-开启 + isOpenDCPCTimeTask=0 + verifyInterfaceUrl=https://openapi.mtuoluo.com/api/dcpc/user + reconciliationInterfaceUrl=https://openapi.mtuoluo.com/api/dcpc/billCheck +2 2025年06月18日 1.0.1 增加查询明细及统计日对账查询页面 +3 2025年06月20日 1.0.2 重新获取统计日期的明细及汇总文件时DCPC_GD_PAY_INFO、DCPC_GD_SUMMARY_INFO按主键先删后插 diff --git a/CPCReconciliation/target/classes/com/nmg/gs/entity/GDCpcPayInfo.class b/CPCReconciliation/target/classes/com/nmg/gs/entity/GDCpcPayInfo.class index b1d94307e3f6a2ad5ed47a80b1af7b4d5564eee1..cd4fc45efb84eeaa4505b2872646812ab8254f83 100644 GIT binary patch literal 8075 zcmc&(d3D~Y}(wEtMh0T3z?q~A=o3FC@8k+~%e4WiV*nE@Cx7d8! zPu~gR^Sf-m$CBS??;$o1vw4Kg57_*W&5zhT%H}aPKW6h2HjlIUDGNN|rzeBdL-!i= zGyeQJo2Lx=g+aeG=vM~)+MwSU^t3_0HRyK+{obHI81#%me>CV%jQz8p{vs$in@;5O zGjoYTQcz@MPvZPUe7TTH#|O}}Nsu+UoGGLhliO1H)UI^0FO$g@5`|PYlNWT<$ZU2o zzAKSkOwDDNMANB!VTO_Zk>RQ78Se8fCHBfL-$dVb+2hY;6LYew*`YU_ zDJ18UIexUs@xB4Y%@-1iJ2l;>xEMRBN9Y?HRDC?c?j#;r&zO9^k*s_=KaV;zh`iQI zNWJvUxm12Oi@8)hb6|L?fBcNGX@xYhxw&L+CdK&}pBxyRoEaVvWL}tBn%SL7Co_pf zjAiZ^o|qXL9vK|#8-;o(mB}Y_1-*1a!(&r}lhb-eo68yQIqfuiana6Wz4%T_Wm1Kc z@nCD$ZNohFXXhZ>IFiaF$Cej&C3AAAaMH80iS)KaF2zencX|p7DQNV_Seh}L{3qwra3dj#2`@R9HCLl5&Tk) z+MMiSikKb%s+1&_DkVuv$s`q@xtt^B`T$W`f>V_x^f>WfY+)gp!}j0>8Y}Jeu$PDs2Kp9*}qidQrWS#@Gzk4|NmbF(;v(T!zN2hCY{G7 z$0kX;O`4|#lTvK)Vb#I#;F#YoG#O zER~K6PDMI5(c!qd9*awLnCf_$kf4{K)q~dY_&Xs_Cz73{O>`1%M*HMEy_8PLQy+Y+ zCyfr_^LYFLJ%9k#*vh~V0$6t|1E(Q?wYW0yG6b+bR|ZBAz?xkd7)Jo>cx7M`0j%wn zfoTM=-d6^;A%H!wGH@0G*cU4UI}pHL(E&#SUtX2KSEvLY1|&8o>`o*+j!%J4@A_Lv z+yJMJ60knm8KGV9O$DG?nnO$QR)XCLzf8V~>aItJlicA-#ujuT*H@Ddb0uTzx{y89 zgC3;u@maBAAIXK+)Q=u+p0|=^tR$Hr^?_3;CTfa5m^x+4fmp#`x~1=spTtUd!hIwb*`uT5QAe zGsw^&zhyW;t#$yQRy$|~7!=f?fE9Fr+UyWOZMJEJ7-VV?JO`-V4g=I~H&|f?HE2-S zYH)x$>_&h(?1tqf|@pjNBR0qVBf0qV9ptab)7DRAv_;%X?}F#0QE?-^8=jBS;&QqSo}Y5!QhEc=> zM4y0XiM!|&`Xszg@i@M4dmu_`qS62&far!Z#m*9m(QSlO4TJUuj zT{|JP9}*FilG(_nlRTSc!RU@`T0prlA{+LRf8zl3C_{z`Be?-I}yV+Ezma*t_Zz>Qeu9x|-y!9&o?3eSenBB4Wzly#m1q@~Pf zl`5+}H%<$NpG&Z;Srb&tauJs63iN0BCs&D4}u;dQu7eyQJx=CKk4*b@39KXj|Lt{jm%Iq`&wO{|4?pwW^FPkrKJNek literal 7936 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 PoFh4^w@)GyXXt+b%%wn> delta 3706 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 diff --git a/CPCReconciliation/target/classes/version/1.0.2.txt b/CPCReconciliation/target/classes/version/1.0.2.txt new file mode 100644 index 0000000..c4ba3cf --- /dev/null +++ b/CPCReconciliation/target/classes/version/1.0.2.txt @@ -0,0 +1,9 @@ +序号 日期 版本号 说明 +1 2025年04月18日 1.0.0 初始版本号(数字CPC车道系统-国道服务器对接接口-对账) + #DCPC验签接口及获取对账文件接口--目前是测试环境,后期换成内网地址 + #是否开启获取国道CPC对账文件 0--不开启,1-开启 + isOpenDCPCTimeTask=0 + verifyInterfaceUrl=https://openapi.mtuoluo.com/api/dcpc/user + reconciliationInterfaceUrl=https://openapi.mtuoluo.com/api/dcpc/billCheck +2 2025年06月18日 1.0.1 增加查询明细及统计日对账查询页面 +3 2025年06月20日 1.0.2 重新获取统计日期的明细及汇总文件时DCPC_GD_PAY_INFO、DCPC_GD_SUMMARY_INFO按主键先删后插 diff --git a/CPCReconciliationView/src/views/QueryTable/DetailsQuery.vue b/CPCReconciliationView/src/views/QueryTable/DetailsQuery.vue index 8c2831d..117ea4d 100644 --- a/CPCReconciliationView/src/views/QueryTable/DetailsQuery.vue +++ b/CPCReconciliationView/src/views/QueryTable/DetailsQuery.vue @@ -19,7 +19,7 @@ :row-style="{height:'50px'}" > - + @@ -29,7 +29,6 @@ - diff --git a/CPCReconciliationView/src/views/QueryTable/RecaptureDate.vue b/CPCReconciliationView/src/views/QueryTable/RecaptureDate.vue index cea4122..79e7544 100644 --- a/CPCReconciliationView/src/views/QueryTable/RecaptureDate.vue +++ b/CPCReconciliationView/src/views/QueryTable/RecaptureDate.vue @@ -25,7 +25,7 @@ - 重新获取统计日期的明细及汇总文件并做判重插入 + 重新获取统计日期的明细及汇总文件 diff --git a/CPCReconciliationView/src/views/QueryTable/SumComparisonQuery.vue b/CPCReconciliationView/src/views/QueryTable/SumComparisonQuery.vue index c3249c0..d0ca3ce 100644 --- a/CPCReconciliationView/src/views/QueryTable/SumComparisonQuery.vue +++ b/CPCReconciliationView/src/views/QueryTable/SumComparisonQuery.vue @@ -28,7 +28,7 @@ - 重新获取统计日期的明细及汇总文件并做判重插入 + 重新获取统计日期的明细及汇总文件