From 4d2dc56e73b93420bcec4be9e28079e0232de0bd Mon Sep 17 00:00:00 2001 From: dyy <807692433@qq.com> Date: Mon, 13 Jun 2022 15:58:16 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E3=80=90=E5=A2=9E=E5=8A=A0=E3=80=91api?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE=E8=BA=AB=E4=BB=BD=E8=AF=81?= =?UTF-8?q?=E5=8F=B7=E6=9B=B4=E6=96=B0=E7=85=A7=E7=89=87=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...化智慧校园基础信息接口V1.0.docx | Bin 33708 -> 40305 bytes .../Modules/EmpInfoApi.cs | 209 ++++++++++++++++++ .../EmpInfo/EmpInfoBLL.cs | 20 ++ .../EmpInfo/EmpInfoIBLL.cs | 2 + .../EmpInfo/EmpInfoService.cs | 20 ++ .../StuInfoBasic/StuInfoBasicBLL.cs | 22 +- .../StuInfoBasic/StuInfoBasicIBLL.cs | 2 + .../StuInfoBasic/StuInfoBasicService.cs | 19 ++ 8 files changed, 292 insertions(+), 2 deletions(-) diff --git a/Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx b/Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx index e90f0903dced356cf6c43795c63dede0f52ff8e8..2eea10f6c16a7c9dc446cd63b2639b95bbd92401 100644 GIT binary patch delta 23974 zcmX_n19W9e({^mzwl%SBn-kmSj%`eAb271=iJh4wGqG*+&wcOx{+PhCxclGY- zda9qQi2%Fm0ISD@hJzgi!_Wo=0a1c%B!*@H1^N{SSrEc6q`Sn@_!RiQf;Tx}3;)3k z-^?mi#Gj+kI0g0f9iZw^)a#UEPCBJ|?|t=P%l*ipdj?DRvl3hCJU~`IzxM|V*H=%_ zXzd4#%(A}vwCGRHKs&+Cu8baGN*aOz)g_!TIxKcgv|q?M#SHy0u?C2or!)s~1t`zK zOMqxVG}t4J%+J+U+xiueDXS#QN#^T<-ql5sCqMi0)NhxEyMF>p(b4pID9q%7yWflPB6%&&`_^FWK1hML>0k>AaDIP}Q(5Dd!0$&T*eK-aBP4tFOeL zV~5nb13&rx%dUrXxTAJAn2OhXEv`M~%VZla8bkukJG(#3gBY3elp0uEKraP^J#g*@k$g-;@kGf9l=!tQoV4YKR+$5bjEP zof??dDj3wiJVO;&!tf1&cEJDA(aAKjFgG{<*fq)%Bycb|=}ZY?=k2u@w6Sx%1EdVf zxo`}4df#HGc@xxITdDE{j#tDi7lnHLi-lI+)7L(pgaTar%MaWVkY30g;X7~?Jn9lU z4_cA=9lKo5S4(_ng_@`nh>$w!*q!gYr8=j#cq{>6_AI~iysg_6a**S&{KtvgOA0Li zck6_@l@$B+wJkr#={BKY%QL=npzutA$bFUm0LlL0c1b{5>iA!=ZWb;maiepE{*G~%h?GFW+T!;hZ;-qNPru+nIFjwU$#a&AhiI4kC2Z# zFCi?3fp*F6FN<{6Pjg6xYb(AVELoCt0bl3Jfi#MXJb!n;d}uR^tul#|ifdlwy**3y zgEvEMZ36nft+(5KdCmKDeAM}@n^f6tt*Iqa+~ERD`;?~}fA_-c!sIu{$GR>Y?E0w zr{#JWWf$uL-XHsK7wbX+`;9w7e%#$}2ka!!wN)zBfhR-#iWx3`mbgCE;w>iCi!3Lg zA~6u`a!G8Aa*%x!Kxn#AFgdreH!*K&-3QA#{nnE&*!3LROcjJ<1IWTvf z8gYV`Nw~V^P@G;>fyI-~w{?kv?ydW?YPZF}RdtDkjR5OsVBlqeOYnVbJv#f3misOgt^Zmhs&|0b#%_t*l^q$2W z!(?bAEmp6z^p!`ur3GFBR-9Cvl!7U=v;6V*g*uGt$*C(3+fDMYFNUv|u7?M*R)MS; z_N6Mro*dekfT_p4P@Wow0(aeoTW+D)Vj@qZRGt{d&hvB3uv)i8-6`mTg?$mxzO1OI)<#&ir|#Fl$8HHUx$asxO9xFfm?U(|-m~ePh_N;y0>gW|bY9#ji^Iw& z_T=SqAVA)C@x}m}j%Axd_bymNy`w2NONUu_2+=AeO(2ao!1_pa1adc9D}LjNi$k<| z8zW|F8=)U}SNpMO(|e0gK3m(A&i4xP@;%p)=yfmisL@EV_l2>DbFM}-wI#nN{iwG$ zqbDWrY~{!|v*&j2_TI9Bc#p%x8+}d2PwJaEpdukPEm35(iPT5lrm*QOpRsf`{gs0t z_F1pHf5;bXwafmw64lR#|4|%FhvXUM;Li`KHSiJt8qa{gbh@P;Ka@AQp1Xsjn9^h7 zB#Rxsz@o)_J}dcB_^kUszj{vH+@6~M@yhx9m32;iJ?M5XKG=EO~OR2 z@vBcLC)=R0&;}QyXM-61<%Ew3DUkVSKt1>aXNQL~2>Vb+c;#jaWXdR2j6C^k@FbeO zbV-VzRPSGWq@TI{PSW9Wf{yKcZ-d=}^1P9TnQq1x^8BqA?#QDf{#HJ)R6)0ts|9b< z9b`(G%1cY@-aZ=w6uqI^uUMm0%Fv=R5|dPH_*C_m5FbmXp4$e8d=YxP;ImK^0Ep5V z;me;Lbj8?>(1c`xd^D(CWtVodkNq zDF@EntvS*a&6|rCY^#){n*}I4pyrA=Hpi&J@qOE%T<@VI`uzgmme&C0VW+9I&L#F?!HWiKl8`%6gY#-s^CL*npaan;J z-S1syOA1P)fI+Vn-#_>HQ}{)JcA*E+Gzr=4sg~kss$K{dSoud_d;tEmKRNHH&O#32dtbF@c**`CSc4m&ZHkgX z*5YYK&}S@=)zPFD8#Yar0Y4N<`LZIx;kk9aIt_+s+qPVVComNCU!}%uL4$1&PSfGP z_&At!icsqAmd(JG%|wkDu*4F}=xZ|D4`aGX&V&ohNGI%9+ZeyAAw2`dBa%7Cx0_)Y zn(73@>Nj$*n9vrOh$>$V?yFq=PWF!AFUDtLYJ<&kK?IxDDDedy0ASwpdq15Cy?bxx zg5^iR$6u~8V!x}+YGf5htL?2AI3L!sCryy4UDX1uCw&3!&3*X3U@j{5-7_S~m-sw- zcCDE2AYdOH@hM@IJM!}U8OzDdeExf-M{8Q_$qQ@5{l_RSUEh$%(3V2`@OsGk_!fgU zIXQ-Qpn{MQ&c@&YKf*Usnqnk8p^PC$NHhSMJnACogyU4 z8H0zd*UqC$p*ck|a-IAxa!f-3rU24V^iBMQGV8uHoUMx!p!+6*!e>;GI!K zmo?A(&7df^-dp3eEt&LECSe9=6z=i;E}?jz#u!Zk3q!tI4OSHj=XEMl2?T&g$IR#* z%a?;9GNTN&maYD(V?iEN7I}o;0Zk)4&<@9<2H!g1XRP98(a97gj7-|fzrLRif*tKJ zbN6hz98K;GTv(aObD2F!pfg4bS1Qv?wK%b(fVMP;N~1xErdC>E(GzyuZT_8#Y%3oI z_Y$_F)NM(B9XlDxf5$#0Q|NuU-~E!-NwArQV&5Wtb z7;RfFq%FUH*Ytx4&!(>slvG~HPSdMCqp$!mv_d_7C;a?6xsa>0hnU@ZPZXpGWN%>$WGG{ejI z1mq2u+iI5)Xe^K*h|Umk7U1TI?EQth!3{A$3w+EdJCx}h0=ab9gde-(!+S2a;(0)7 zu0<{EoH!!~pZx1?v7ZRNZZJq7rP+G)pP)xEi13t+HukZmo`W3n@ARaYI5$s`-FO z%>tWM2r|bFnqz)_?Tf}H_>!KG1&WT;_RmXt^J@J%$j4b8JR|@q>NvTs!q;F$m-+e- z9mlr}WWiEM@CnAzJfA0Y^J=gDwJG*D|D9;1K@rc=P{lYELqA3C^A}{T#?ornT5T&% z9mtG&vAtYs=D{)C3**Jx6eUMGjx``3r@?v2Dx;K*4|Q5g0hR0g`jn_f@#*gUBsP2j zrEIfmS5DFlzoaGY*=^aSST&pieM9UcQy>@)<$TaIkl63;JmmYk-v<-YY{=amPw$+J zcIOBEPa>Lt(=d@nKAq&OVVSKR9Yk)v z05ADmDtaU*+D*`!e=e7D8xr79DE^fbMYjXmJNioP%YFOIsXnN%DQsSX4I3IwiSBUy zUX_NnMk_HY`-3_CpuZMQ;ZI6J6gIquMzm3L+4w6x4yBJzjz|~p&39$C<1mt(ZR#Q# zwhvy7#xrKhS45$Q^0)ppaO7AB0eK@1xqza=4bfa`b&}#3n>{jRnj(PBfoUW{5r`*A z3S9Wf8=N0ANO%M5*FJ^H5jBw8q66YniTzXlZ-)y6Eln=xZ%WKfb)I0HF+VFwZ%w-y z8aNL8rbGC+xGTFja}n1@1G}bRI1~7SOfD?H_xA0Yyl$>Sq>OH86ZYzPIHR9Pi@e`6 z1NN{Lz#DaUTQE9QJwO4>>^7ZW%{1Q%btw!s4t2Fl>FC#*ifvUI{OD_KRazz?Q#HY$ zg_oo-k)A`<;1KkLX;bHG8B9K*1!KW44%?q#Em@ExTsgYjM__3`M0Ff>_s}TQBe~MQ z>5Sp@mRxkfHc+pDrlw^DJiokb^oVY*e)ncFP$Kq}uY2pVw_ylI%`AxOL7F`g2n(%$1qqlb6PTJe zN|c~~3Nv=*Fv)-a>Iu)-2v)j5TSTj-(>#UktK4%4LY(fwNk1&94rPem5CCr{*P*^_ z*AS~SBm*Z;p*;*xkFzQ6*uWNcKyKFtXFh33!xXh=n~e~nC(YyPuJL}MwHgZZE7q>c z2%sYpKAdqTL}Z~HZ^XN5u=@>Ncx8@&anaAttl0a`0{!G|?Zli+6if{Eyhl7ab|d!g59$_1q+jIV+;aI0XN>L==k;pJS@FK8=>dQem!pofm|TG z)3QDw_9GFXD2@AeUP0l8#{VEa9WT?Dl%mDXUG~EfnHqPN?d?*I0(3J)Y+&km=*e$>Jenl!?GJhI`BT&4c@E)tMzcgXY1Hqm;(M zev=>7fpaB`3?5%YLJP;{CyaM7T$WKQZxhKOr9~F}Em8s{VO2Lb&l0axEE?al6QH9c zUBbnxop3ZGK%dPnoe*G3;&~7>D`zX8j90{<*R2!$M~Tg8jWXWIET=lF(Yt{yRW-Ta>hEHRSGg_w82=Vr@tVeaxMe>Whd!U*5EPA;?E zD$#61QoCreUe_|lHm%y=aYzwJVZF1>E-w}6`-j-;B`BR!sB6?hmg<_a6dH`k&Q}{_ zCXGVOE~7jbQ{+Y@|5$}c2F&al>npy>iKYSw8-;(;6e~E#Hv7!EEgEH@4wy*?=Li`b z1KgyN5SU6dy$Ia9(ArThIG=%dR z3Y~$aY|83+#rod9VC76lKs=UyWQ8=fjD%m7RQnoYRWX^6Drsa*mx6Tet+@1*orZRC z2ZjPKb;}GtoefuN`~1uGdIi@H0KTH*ezAUemBxM3E+-sc#w=D6Fds&D&r+*k%h?*i zU&KAgbnC7xjT*RszM*TM6ZmAHrlM&{Q!*x#OhKBvUguC- zAS4qEO>rG8ovu4~doU6Tgy6LE$OKE#=#qbKT)tp?YdI9gaJv^L=S%{icuHHU)Sj-% z5b`J#!b5b3iDm(s@B`JZdAHOuv66)<_O=G98@KGXgZS(lRvOeY$&=*nO4~0q*(nq$ zK?>s_LGa0rB)PQ5&jXz7c+=lT%4Wz$s<;oDzt(GuVeynXR#JHb&RFfg*myTBMx+X- zWNG(gE7fUQ_*{r;j+-?G!V@@8%xLK;DZ})Q{TR`{J-4;jcsgszc5zt@6O)hifnP{2 zc=+0G820aA++lAd@g#ojzTG@Gx&Us@LT2)GP%cKhu}r7McUC4{%uNLr<_dn~S*%rY zy3`KK!rgWCO_}2Y@zuj!TxG+TsxFRae_}?cWyyLPop!bKUz8DUhqwx~{cb5gw~l5yMh_&W{7%A*?{nOF&FAICBE>IpitQTtglpr*HEJ@2dDv}F zqKFx>FN1{@U_IJwikIsd=O2>+<2t|`0l%;c#?|LD0V@wYyzzbSiy=)NKYRA$#XOGT zL65W4sdnVW<2crH#A~j4)lAms+5ES=2WHFZyk)svtP9idb!&RhN7nLrG}4dL1Y58S zCkCoNjw5_qOZ?{`eC#wA9{SgJ^Lp}wlOVrPdkQ^ot;ZZyvf3WK1Y)n|`>{Mg^*^E` z<%|Uac;lG|dn!*pu5`0_)v6qn6L__hcx_yLtLpigqN^ZW*v)`s2Gjt&<`1hmEo4~B zC|AfWS-7jnVVQv`2}6|J3_VPS%RVnhgq`e5ldZ8o=|*0Ga}jwU?Me;+7+m)fs7ZYTCQC%H5y`!8y*+-o|h!flJzwprC~s>$OB{V9;Y~AgKZ(l0qTB9C`;Na z{)KTs4(*_c)n1(BbZUb^)9Ez=xxDp*0hfl7kY-7aE;=xR>6oO4oSiZVNs%j!lcPd_ zc+!|RO{Em^cP7c)I#cSeLlFpvq+8|eWb~_*#YGUnT20N=u_Bf#h94rj}Qj6qmtEw^y`!{N#4uQ5%^_MT#Z1C?Ls7GG&m6-vTt5@m7 z-`jP36>F)bw_{T3{^7$_lCWD0xA z!ZlcRFUuU6A{M`3NpCDJF0Xfebq3zwGPAK6Y&3e86pkU3aLWL zPW?da>Z4WqJ$x*UfeG$@U-IC+vwgBNyY^FQeD8Y?9Y3AF zspAs#yqcDfikI_aDG7jJI*CpE!gBNFpd>y4Xhu8gRv7HF&WPv!Z`i9dQHRnR_om0nl+()$!l28C1*Bt4F@!|YIEVdr4{QgRo z#MGhVC#~8->6{aym$dC3vuM$Z17XpqSM!(gC(8ba*>#g1L6GR&@2&j?iGVhb7*^)g zluoqY5{*-q?ycO+je&>r+*Q<`eR+&&H}uNQw)%cA zUMELXCc&j#3y?L0%C^X09{88YD$ig1*xYaErD+UkT)?OO8lHK~mpAGr;mMCaq=LcM z-7lY9LES1&hY7b~su5AV{g5J$xZNcvk_AQ@A8|1$#jNte|c1M z@Fgt@oSglp;82eLX?Y?B!Sj6fTd`R+aG6UB6nFHOinYHF%thQ}7&6bvhU2do^~cSd zFy?WEKZrfR5F>mIHk6;#?@)+=L5>YhqNsC>p9`Sw=P>p<{$RR( zN&ePVDUP@17=f&iS^NxlCV9`9ewtizXtz!$#gP?B6cz~4ZUWgxkws>j$Jc!GCoMt;29yk1X2bQFLJy}&VTn&8f}`SES=MI5Y)5M{_ysDB z{#QW&V!k~r!`{iQ5W#K3T#v#}+jla4-tmurXcJ$bQ5U#loe1|pU~t9+lR4W*dSk~6 zJ=M=J?zz{l`uNxgcCOuSZ_6)Xq|A+dzn;+MuS(P!v%oJt<1-VcQl85?BK|+n(MVHr zGRDfEVVH4+2i-88qVZ-r4B&r|>-g6rCy5IHO`3YBJDn7)c+>PBQpRa-{p;OuL=b;A z7uQUDr=eIGumi6J3-@zE&k8%Gx?=+S30w3<14l>&I%!}qRgNNlA%je4#wF0R9VI5syPxn- z{`F<@mNZD(zNnSqRHHWa&;s>3pLSp1oLj39QNfP0hWC#29{PN!b60pV9S)*4`2P~k zTheV8MgG~&RC=B-p^B+yr*YvK%DJT z8ogki4Q_RO7ZzX|c#;X%blr_D`dj-pP1ts0NSQ2K@G&yGQG4{%>dXRta7Lg29`jOc zmMm60uLI$AFj#WcUgTcM?G^KP=^E!r+8<60h%`=M@}*##2-MC*8vYGp!V$|R`Q^%h zm6Q`Jzi02l`0Ed>%(#n5SijePaafh$9Ed6kr)kSFS>Yl+X}OibKD%o%*)P?z>QG|z zge)EsLSU4xU+Qo-yOY{C>pSkbYR$(J{H%-Fy!AglmAk1%C)xZdOefi6JWU3F7e9tW?@h`V*Dn4K|m+2rsQr@-kZUqi{%m6>Z7g2B6dwW{?nYh8%?LVDta2N4Z9@W-1Mo@+tQ#AYG{(bwBTYVE#yI)dY7$pAzE z4QlE(G&Eva{Rc_XfmF)jyN7x&Hz6XP!Ivr7a!d-s@IyMsHXj2G)#b0eyU>adr$bYK zxdGz0Mux=!BU~luX5ap1U;mOwxmgbRyb9}o0?R9RaKi<`?z<)8^EFXZ*;KoKLQCh5 zY#|{p;$9*)R7Oa0c$+{Tp;cejw~9&KXTd;5YU0gw5vo0Ts72*z{`>&-YTXp$?x->q z9kE7naPV}=wA5?l)dFdpFXXX1Ux24#X`5lBHf}4whyj>h2!A=5+C<#tV+hKTA;U|; zKk&Wcd|SSRxY#7z{~TxP8A&PF3{yx_3kJ4I`I?K?yF`+Lmc;fOENx%pMR&o$Ml=GOxxHac_}{^&deUHqiT<{DlIAK!^`FVAQ4G$htREyA z%M2jxTkQk;ROK3k#Y+c3lZ${_kmkFqF5l-dv!=GKlFhL8aPhC_63tcpa86n*{blw2 z$kfH?%&Jw^$nz&^n4e}Ti?U)0MAGhfq|8O2era(Rw4K^43@oRZy;Y4OeF1QEuZQay}v?(|IX{rq7_0rWS(H*v&Zj4TOz9jwiq(k?i-jAIed* zZNImpAV|}5N*y17;~U~7(V3no6FjWw);@@vIAo^g__Q12Sa$LH9!uw3X}`$VpG2i& zg?3p(!cHgHMA&=(^LDyceqKHL=rbU{PEXO=ka!bMJ?1XAyj6|6h-BvoS!vwcIYd{* z*DN%IYq%FTqzK|(&qj7mfA%1fh1`C^x?=RZg>`d(o}&kxxFMrB?c(fL(Yf22J=W}( z#uXwZUs93=@1l}L8H$T;xA(2x(;xOv9J>Fy$4ll>jN9Z#V3)+eY&+YW?~qCo`+@xu z@ZQNjYW>cL=lBdxv%tr!EA~);bz4FtOW(~|;#x0+!O^z2g_Cwu@ za6c+Cb%j})Z7h363+v;S*hnG&4Mmem8iq{P9d0T7=$l|az7jp=-8T(~Z**o_xtkaS z(A!QD?=)y#&d5byH~E?z17M%Op>>tI{1weW*?_$OhH3Dq%!nSDGG^g>2Gz5^l$9`0 zE4=nwe(*m%KBz1Vu||=RUlC?LLU^SbXK@dnO!*%3|Gm?uf*Ww3V8F&p6DG^#y^e`> zPedpB_~nDZO+h$d(x49d$1Du|r(MHt8NI&OTP)|D6Rn>6=h7<>20KF5 z()2O}w52w0wx;0zNhS4Q{Tsp5Tz1tnv8K_rd*fQ5*t(D72_faff{G%5N+FrkEzZtH-$tk0;$@;z`OJYj`lsBi9`+#NUT)g*W*X8Y2r?jL=6Ja_D3mHb-KV$N zn~v6lf^yC_sTd|WsBbQ-`ujHe<>3!hV3Xz}cfZe$P+^lN@x42%MWqBrt_YKM0QR-)Lg6fv z*+-co*g?-l4yQM2fNflWd|=2k?9uP^2kC<2C5cbUYboP!n#WiLM@*v`kx1YbAumSW zv4;)u$hP6KH>RZ{tr%x@X)r2C&|@3YVg=(|O2)a_Y%#%p93)Z#d+iP0{U3OXv81z9 zr0vDyQq^C7s1}F8BaXVWfz23!$J@7~S^(KMkmc12IWjA;A|Js|DlZnI=NA>Jil1XJ ziHx7)NE2@wS{kL}Lkef3WAn^j-Oj@eFxbsis<^F?Z>(E} zn)AN5Fv8q$RPDL72NDsPF8_(m5=7^lbJx9Ht?FWvuWbieiZp?^+%Pi?p%kf0^g zgS+<=|J_N;#4)nq&;7*k86p6Qh0R8Pl&RuzxGs22V7P1V_}I3iABN>7w^4uGwDR7U z>y=LMh-q-4vP!i9Sa4-eUmiM9tUfT$Qjs5&Bl<4x2;uPbnr+AnK^qqQLy15YH2RMc z(d;F`|HO7?($hTKxIt>T!STnUoTqwpx(UO`Yzr?SPO*D`iZGPBfL#?7{1t}Da9*PS ztlzT&O3z$-Wbq5J6qR*;3ZceE|r( zb^^~z)!@O9$&E3aZ6UAoN4ZxrBn~&Wo5dAw`f>70mJS`^&BWhOB=6H0a)uyGDy0}1 zWc8Hw`>w?vxN)SAMaFhrNv(2>TGOd;bVc8EgY3({lEw22I#ng~J&nuQ@mqM<6uj>; zJ53`3&Kmc$RT9O?W-1&)MyfM+;X0uU4_BGD8(jIY#oW%l7I#TcTIZ2nN~{tWv`=WcZA9u>5=TVB8`yX(ad$rz28y`Ky_p>$$crMSDDvK zxkDB}seKYQel~}f@X)r>F~V4z^DjjC8i05LQ7?#@)<`m+ur)l!RK{c!d1H)3u%4$G z2Bd?hxq`1baxacgESEo5H&%EH3=*xSkGM`P<`dy@@HzQQt)_x)uKHiDRWG!zi>$|e zwaO41GXHW!UKTZg@ChZj?8w5jKC@TLN%9k|kj8M`JGkZbQlHrg?T+~zU3FwZV@2Ry zRgsa7b}?V~v?}KD9Q+(OYv1+AjLh>q@c!4hc&=Bsb<*XalcvHdJS+CMabfdIGPd9X--MsXuCYHCJd{~Oxs?SZYlv_-Xb%7^uk;kVvPF_vnX zgY9DVF%wRr`a_(;;BWU|mqharV* z67=qZ5Xb2={;X=(lO<}lGW^u{Pu4MM2c-4KQz$NeHZqm(sXU3P@y&Zj8)yC}CK=ydT1lZJMefTXq zM|Jaig)n4~x~}Rs;j`nz6&1^TM4_AZDMibL{EXL%Npm4b$>jgzOc~~5xVgXWXLrio ztdkur*7)oGXFPPBy*}UcoqX8NQ|pdUW4?>Y{zfv5l(L%+@}cv(V_=~ygqxof)DH;T z+ZRv6PilffX`$lm->Pqm833Z}4n~}t6KR7P{tdZB$msJ>;^J^1ipr_#>G= zmC#fmHdGdzS~#?gXe4K1DDZM-L|MIJ=O}`F1n8Ei{a_~+HJmlU0Ibt1-@g^~u;M#M zzBr2-MjoZcSjU=|$?QqkGK*;sk^#qOEyyER)76aqMnBaUZEOg^jB+={zwuu}bVwxM zY-L&PJ@c}D}{>m72y{|JRofNCR-{@LzTt=1ER%% z8E3w8bI`*SJG9r!QQo++&d?=iu=&Jxev5im>ze3ANr>D2xyllyr}%f8-7Th&%%YZ` zltPH4ksM~D3VihTo{CW#hDj}k_gv`YD5v07uBef>qr8z0=!2YJ8&^DxAfxakoS7#c*!g;Mir)@;FrvyvWk}E@gPBh7zN#@kQ(=!yFcI! zVVke;QR=JH6|7Fcqrpp+9>HJ{@^1R5{0)a%IwR(=8ekDhze~4+CE4UO;pIM%g3o_7{D+1tjkWTO==KlD^{MiRzVytFiOMv}vR zXm<84cv?hJ7`M)ec16wW6o!RB=DmE*ICQ$+vHeL$KfRX%8WkTLqOQ6d?S{dhzhmf> zn(bw^c=S^$jVzY(W4yRUlDDd$TDhx27SiWUv56$}KV$ws3fK;F>-1 z(2Q(?+sPGbPQl>xOkNS^#|Q&fNwl;K8nbxFB_ZoNsNVCuD)xw^IA*`+kReUuj;o&< z@Dx{zU!8`gpe;bFy&XSM`(P8s+9Ng8=&m0f51TprfE`dNjUW*odX3AMRw z_U9~sw-1-92dSu5e1H92r8{hcvRU3U#n0hb)rVsIS3L-HY)w7Lco~BF@A_l6HdGxV&5zZl7LylFLbm zY$**!XgQ*xq&L85A*O$(GhQSN({Fq%UMWzGS0hwcbs&L;xNjMj0d=s|Mn`1GAwsc8 zJ*$4zb}VV6gQgfQ@hVpP{SlBBcKZ=$>+I@NU>>IH%ZuDZVLUt8vbWsR0SK zcB7eCHXS+~6eeshRnuOkoRJ7s9MQvyzS+!h2RNbFF5Ht`Al| z)a0I4lV_$w=gf_PObqFcz?n}zBwYTA3e}?bP;EW8Vq`$pC82YcMW0X0w>KZ2W>^wSLhnJ-CO?Z7Q|}JC>WP6R$S_? zh_)^@79v)9KFOnz%kO}W&rr=d4is20MSbht?Us`zTTAEL&0o`2p`*^F=f9nL)-PdT zNb9BV6-%Bk-7)uR0fT3MwLnQnmCrYxKmudM-PT{ZhV7U^r*F}NFCyvqp)DbPVMLre zA@frX%@TDCP91?iQ4ZvUMx4XNnN)JSVuyVpKQ;Syyj*qtb6^K(5OnkWq_D*sJ>T}P z^{#*H|Ao#M0Pla=Y3<>C-#MV332?i9b#1VE`j!iE4Eg8rx1IP0|s~4Wjt}Colc%P$ApUah{5u*yl zkpb>uTssW-vR{|L3Jn_$JZ;)*Gpn{gcQR=L2Z?+OcY)?`psM4$@*Zfrpq3XK-wu4H zm}C0n#B{ssb;tovGdIRGd428jP)wuRkPHzM&whFETP%YQ4Km8 z$uKaPqO(gcy_+V>Tk7+^|KPZ>m}`Pi7Q@o3!kpG8Kcdz4nTvaVk4rCaeMdT2E&Scb z%6}2Ub+O^A6ktjP63o34m9LfM3c_}D|EP5F;iPnT{y5qZBq5sT<=oEa!j$~^?5?_G zoVMTJ^&bLomp~Ug4kC2%yC(AP4QxjC|L42YVFt6sE7*<@xg!%i{8)dopE%UcrSj*) zXrH@4X?g9($)sS4})Xq~&)fOd&4F-U9`%c`jt znKYc!mbYZ)`mmSDO{-y(+IN@UcGY!LADI6g$Zzdy3n6hd?WnZzOpVjam}LUD<_-j$ z1=}VdL#@TbKSaST^Ic-4ZjSFLJ{*U7Sr(7Q`v+u;{rs=?h`>tUQ{ zx@mB$J=i#PhVV}aD*s<=qUB=xH(rA9bFgkVjsqw4XGwZxA(69g$3z1tlId;xm ze&2tbc-8+A;)Rvslj@A=9?kkG8pg;L4mZdUqui1&4n2Jb``g%Ykj9+G4j4VlfwrXx z8R)s{M5a?hkd>Y#0TSYe!XwHIi1~DoDho+O@&sjyeEB1xU9d?H7qnDVp|kUMLiz`m@J(k4UPfIj4EH$S za&k<=t-F!n_z%D2k|s`18?s+28$qpu;4=Yz%%jZC;Sep^ekv;8(`t3UTIjsCF0v{Z zF3u&GxFEqplR+BZ=e59=?yji64}#`CVLZ0OPj(8Ua9;SH{=nFZ(snAo_)C9FGmtn; zbmIqgOP63Ol~JVMX!8W!s>Bz8wQGk?2o@Pr(oyvc6I{li;C|&Q;mwd1CyK6xgAM~k zcLu@n`0v5FW^@}2H-O&yI|re|$)*f zP8YFPg-?BJpl$yKc^0!beXr5^X37T1l^-G)4XnnTa+5oPY2)Ngz0KwTBROia-8BAV z?kOu7I}drjmn#<}_mpE=8JaUw5*d`m7d^@taR^U{b*v;qe=%SNqamuu4VMA=WXEU$ zlBkV=claLipZy>SpuMlCeI4r?ub0dc$6<6LehSM3uFy<_X#TE~0zQvH`CI$jV_m(X zE2m9}Fw{vJD9HSymbB#M`AK50vwU-VfpbuZCxu zFhBd)aN%j{b_V;0o>_$*9O9_dDn^u?8>fj-r=( znpAX?W98fe3vvBfQ;i4dve?6t$)7rBSGvqx)pnZ}t5>@j=Q^T4=NcWg;L&o)(AL{X z6Vkrd!3*`BS~^)t8(8beXiaAGh?1Aj(-5j%B*lnMzHEm{P0}=h#pS8j_v3p;V!n}) zSr$_T05vSqCVQ9YkMTV2o@@5(+e04HHislPsl&WQ`H=4#+EN2c0wXs$gDYpofKi+8 zZ0i;WOsKw`8#=JzOtSI#>VX*TFyQ!|!26bdrudjwtRZ)Brc^tiTT!~2;z`vh0uoln z;xP0z$FGe$P`vZzuf)Rl?Xl&{4@d`0ioJ4mgkW4@bXnIRbQ2Gd|JBDf+6Y{t0dOGy zzDPkTMEnugQ9wZcd1HQF^mKGFW41Rpvo>b7wl}skXJc}5u#8exltP5V`{!SXGScFz zARu4^pT8|(z&=021RI|}zd&78r9?sMrU{NfKu|Jd#6{G-4A0gO?b3b`j$G-nLD@@r zTN_JMeVc|sp9K`1dFdBejE=*TC+%4|5iQVFzx>_y>+jF7OGBdWUz(n7{aP^1fCSdD z@+7L$;M4RpW&6FG)An~wPEO8faCdiirzdbBcr(dvs&T*#2161E0tRE& z(nrI!rZ$9vDOT|<{;)0kI8_7$6aqyUBq$cc2~#p7&(p)>TY9>sx%pAKpd|%#uIRtF zK_9>dVaVO)x3{9TIXPLjU$0{Gzd*AGr zm6dgLbex{rK|%Z{>Xq{IX5wO-^Uf_qW$&mJ<9|lS391>6!Isip{Qa93xb?A>vlsl~ z_jIjMt+{t_z)tij8u(`bn|whvd3kx}6W=mDq|6VlIbtime>dt4=ng;=dpwsD3qk## zIk-9T3(v|^*Kf+Q9q=-8Cl**l(=9oJ9ZCPy)`L}_xuxc-t&q(*wdBV^^skXg;1jpl zM~js<{*@su+jpIUM-03=OG!zo3KRfr|8-RxtsYm>>U(4uJoa=BPs&+2L!4mxe=|u7 z>S9ANEM@-hv;;GJb>$=*J-;RVR|5h{J&NS%pJsaS%|o#Nq&caDT>LjRFcdV2JdLO` z>#E;9PvCut_U(dO@T}!@y*SDa?2O!`Kh)&A?zL;#>$N|oW#t5SiF~haGhQfqsrw5wdhA&OzdIkh z)RG+y*RP(6T}KeS^R7}v(V-})_am{?(AyWa}G%mtW(@Ggn;psMEvM*3L~2^+?AFz4?B3 z5f=oJ{9@<3|F4d#j*F^k+pvU`NT+lN2#CajOQ(c%mvpCeAG&)9>6Da4kd#n*mlOn~ zr3EAf5%?DI`JVUte!utZU%O|{Ju~-Q*LBamGiTc69uWgOrO(Q8J`4{Jr%E!~e(AT2 zD0zWRrTsgsmk?XxQ62?F77u+VJum3a)jA;ZPO!wyh?DN`ex5V~;|(&zDFb>MzT=tl zX!oO0ULYO*q@2k+ojfYz>N!+PEd@IFliO-0l7698ZgRGWK_5m-dwiXDKFl0)_~0+0 zP77HDh+_CQ3%C$;Dy*+p6TN`Y---}zA~`4nOo`-zwA4n(20Q2(VN#bBi-w}fb6XCLUeafW3Hb)>f zCvo1j7LY4BR`dI@>Oje-TJVMd;BOW!-l7ZQQAfM$Vk{{FO?P%jIF~ZMSJaXV>L%o65fG(VEk`e zT3Q+#-IiOi_}y7U{va{X6GYMz*$9)_3L4dHNp%u#GOT2U0VsK`Jd9a}KHLy{DTo}pIW$Y|+w#z@p@Q7BC-wrjjV4uMXwL^N)1Fg;Hn-$UHZZ{P4F z&HJn;0Bi)QXnRp##|_jXzY+Wo5GQrQUorg^!XIi~J&N~Zlx@9O2V3rljFFAhfFDHZ z0{Pp53RG?@FnvI{GIWH8`@v>nFtd?$wyCOBjQZl>Sb>#F4xw$)i#JG`^ePtXkwVn& zpTr4+*ci%yqhL0{GMCT_q$hWEy}dflVBarGAlW;#fb{f z)a$Z_b)wke9PWSt1)NL_4a|-{^9Q$ks{X_;FBW6E*dJ~VAM?pYQaLNnf9ult=LQ|0 z-pifrR2w=jzd#y?=tA7bMzCHFhWywAvS7Fxmb+|JGfprP%}i01D)9*E{=C++0;-?C zVJWdZFyo2@_(gqvbQTp4tP-KS6&3Qn(o(siTJ&Ru+jMVG*2C_Gmlzq_B=mU$K52FJ zSU?K1jh05CGaB+7O52wHqZl21Ense;v<3Oi$d`*PY)Bz{&fEk2=V?EIw@%&x>82Pw z-YQLQE1L6KJH4ygwnULz?*l5iA%#a3#CBb{G&_3%Hw--3g={FzvtZ)SQ_&x;)vUCJ z6+si?Mw3>d)4y4H=|tUN(PP^d{n6}YTQ^0xi+VFRP|`c6XrZ!);^)F;r05*4<#I|; z8^_&eVc3eM$_~1Kp@-QG_=_b-40nODhpeUUL7-IU+gHW zp<8Y=tJM4UYpXi7h<=I#;>TK3pFdkzx%T%AEn#p*-#UQ{=dTY!Jm%iUjS0empAiMp zs((Qgd8^aKu3*!Fy6NvduiL+0Jvq<>EU=Pz2qD#iM3(3ho{}2FFL++# zgl4&BG8R_smvC9!MNHY32(?Xu&tmY4we}Zmb$`87sZh3B zl;CG>MC#EsEnm~aE>9_dOkBMzP19mQy*R7s{9rTg4^i_Sdg8XkIDLf;G=SATbw(6P z5^~8^cj6F}m!_tsvh@r{JeE7!-cqY6kG|ImwDzq&IwN{)2P=J@HT;ft+@KK|#v=aU z9WX!QJ+L$a$=H0l0@houAt4xr(M3Bceb@PR{99F-#E1X!6GGy)Not+d&7_2Z@+3#6 z>WDjY=(lnuGY6%Ri!Y%j{OmYOE$o+MK3^7phpWVrmI0a+|Pu*nW3m=SG`Bb*s2=O*;Glyi^+m71rNth_PFXX

ZdRp-KGK`B}0Q-CVT!IU{-N>Z8d_c!R%hjQ?&ebYOK65?z4V^!;CWVBn_Xk z%1y^ohJB&W_CTVICZ-(5E&@}S z#2HF4IV+n6ctb4lvyF1P%goA{cx^lSqsLLtrC*;y1r#MHY4 z@RO(#{*-mU_Z%5d&HCUug2O{1%1=eU{z`d%H|1>#4CCr)dxsx&zmbIA`dP3X>W(U> z3L58H472;5-OZ@z8SK4%^`!^fk=J2U+|W`%II!^bIxvO1Vj8r<4zTJJm38I0H6 z!NT-M=G9p5)KtokvMO7JT8Tqz>~i)E<%sCughhnOhDw z&0SrQlvPy+%)**Ox$nXV4x6zF&v#?XbB)N_wZ-t5 z8I8U?A?IVh&t?=(qE{ulN(Eo6Cky9drZr?Z&z)TfhW-Q}+QfFm2+&{1T<+pv(Si-s zj#GOuiIo?UyQt!Va`u2=x9*)LsvGVP6V+r6sqmyes3h~^QW7L5{S0W2FTkn zG@_*5kpELsoQRfB8}E6J$X&gO1VL{*e1G;qR9~*hv9_Q;`Zq_d^-yPE;M*p;t09Ph zHWp*bc~bYTe`>5;v0SU4wR^(6i%wqp`nm&bSzRsvq+fZr8EmJw$86C4jidJl6L6NI zbyr`YSTtHVzD)7?P&V$})DqQ?Q;clo7`gc34lrK`X=7`xMpN%*M?YGSOhQNRC2rh3 zZmb;0)sri%E%S$_U7Mg#d=VP4%mgG5fOtAk7`X?-_srmLwws5I!w}0guWaZsE|lk) z@z+G4m@TR-ES2IpJowMxiy@)O5>a=Fmk!_6Uo2xx#?PnbD*pFA5-5XSj4X+jK~D59 zoZ65~q~-=&Xzv{J_wIkc{X;a;I99f-4tEbKuR?*P*elSig!tRTfEntjLI&t9B+P>e z0MX^^h_F1ThTqHhob~3iN06)!*D`524#{~Tg%Q5>BXkkR z!jdkXmn*$ZEj|^$3ijvb(ST1R+L~?qVE0Ssw(~2)R*#rU6ZUz zC7rv&0a`qW7hyhmbo@Rn*!y)v<8 z(U#Zt>fOPm7G`xt^N4O>bIjy0-bFD^@{ zJrpl~x9;vH7z(B-`swN?ZVKmVXL||5M2k9j^+&$UBv=?#M@>$i0YOb$Z5y$!M-90n z%QOCM)IXowiB<_hmKo=RwyM=;ZmuoUEM`;oTJ`WBE3W7Dvw8TcO`Mz_`0$9pCo+f* zOW5+*jH;I&C_WR~Q1=r6{e-o3zD+oKeGfeOeYH2faA2pdlLn}iaXDQ3>T;ZS#no9p zzvHecDikl;#CW(73Rsn?9hUg*pRK*xf5@ZdIz@**@1oGelaNb4IPa*gNU`wqRC~jF zyuB3d`Cc+{fLT$zoAgd~JZg2{W_ajyeC02*)aIoW z|7@>R(@Z8}rMLmWf;;Sdr~3|y`_ngH90wR~W?+uE!@7ph1weIZ7H2bIX+VF}*7$`F z)F9j9siJQX-bf47%pY@HXw55b1+A}-*ousvyxEIpFh{gyhm=Uxp(T`vh4M`}Ue#MU zGSiS@x{uLaKSZ=hz7vsk=EK-ZxzMJW!)62qzYj8XcBN&+3d&}YE)tU!7I)hv!x^U@ zZi1y*>^O@DX#p^2*i0hLeq%mlZEH2}STY>S-Oj8HzxTdRKUH!YqdGaPoM#+8k#1o}Kg~4?WC^c|E_7E@ zag3&1DX>x<+;Fj;k#~+aBNlf-u~3AQF`oD^v3@kgYLq2EA+UIX<3%%U8v0aK*AzoC zdyw<(U1fkd(Gq9bkC(ou5&h#wF^b@1RVcWs$ zm}ZX$n)9u;8CgFTco~!Z)R|^{n9xwN!rp%xzhVIBl&Ldlq>20TNIc@Cb?70(UCT;h zU)dRC`Q%)}H?6iBekqV)n5blljoGpIOn%f=+GU*plnt8Yby^^q2dEPUb$je{%( z-hynEwHp{}0xbNGzM}~`C!Yt^4Y97>KT)@mEmXmVKeaFpb-W=6dD$PBlCH#@@jh|;NG`0*+?(wKcMom! z<^){WRi8BWr#7d%5u6PGEU}iDbI9Vsfg+p4>+EF?H7#6RtzNxFp>;!)_=g$O>c~-c zj85hIp)Vy81NV%B8Oc1`vpB=@-Ljj`nTOS@lEkqO$wxWTaCM!6-bi-Ft!0fWemsQv zw$6m7ZG{X9ouJXg8I!5~AgaZ|VsNHfg#uCU>2Y7683>~dSqMy`!^zW>@*gul+cvwXgbsX&^46kLVfGRYY>45{U3hWVKah#(({YMgV;*VUd zQjjP?>w8Iz(T`VUH}{a%#EX5y9{R`;P0V5ANqaIy=9Otgt2id@p!?mB@JZ{iG|K|% z;g~}lw!ID5cCl8qSdnR}+(8=p6;3AK*#wG;7z(SFHTpO4=ry`ZCD~Yxu<`70 zI-fqyb`wA$$!JL=#cFN&q+2qu9e@VRi6`kpEX4u_=E$a$@iTg+^*?S~qt+3pC>XzG z!-622=ssGT&y77%1t%&1|SXbX9-=Lb@VR_{QzQRl{F z$&qSCJ@0!qzVHi8>D{Y`GFW+ zub-qy93;=LPmLYg0oR$-zBNt9lCM~rJ^c+|cI4=ZYzf=6weK!nwhH$iu-ST-Ut{R* z9l*PGcgeZzhfCy6ya4ovsU3!Z(!ot#t7xIaV%k+N_TpqLb-Y@Ck8+-~;uWFhjk0aZ z7g!tBFBg8%)!gPa^8uc>j@xJfzSJ~lo|VTHX>;Ifq{8YLqugIMDJDe?DO)?RBmVNkkAA5qTMrSNiz`=j%yjxm=l#{=SFn%*O=)<%1!wIw4YC zTHJ|~But`T)bqhAV)>EmD$BTEblt}^%`#7<1oQY24C3D&J9zxskGx3hwRf%$`Q+x) zD{f1;+0Af=l1)dHks|0_9wRL@x>u# zC!H7ePi>&BVj`vMwO=)MGuhov+dF)19(nT-E>88nuke`i=JpV-^ZTBA-apQXF z{qhEMdv=6rTAT_O4rTL)V-C=SbF*>aIs6pLN-4FrIthRdW zekCdV!s8u+RPpix^$y;Lo%P3NS?dqTEkAYkMW8rv+2y%plS;$L=HE5KKOn0!y;HOT zMLg}hkd;j=;-cxz8_2B*X){1x=Rb4HC%iBo1)mRtTH${=~MJp;3XZ}i}-VW*d) zdYq)@#;#>&w|HUslTZMtT>j|!yCc}+3YtGlkWgB;bxa;3`NJ^8X~^3Rxb9rY0D7dR zK0eJVDgl8cts~u`j1E*Ls^DY^+N9r1|B<7~NVIOrJmAn_=o_}*SgK*7eUB_iOG|$K zG+2nkX%caQ29Z`&eSIzMeN-3KhcvJ^!xrl+-P*W9wit4Zvxy4Lv4#a%1HAV4HvOiWg`zHCe{?=F4O#3#v)&i zVE&cS@M@QQUJ6Q5&$)Qt0j>HcxH|{=_e>0DpgwbP_?x3!!&eJt&9)T|yQ!#ZBdH^* zW|*I{_Y)3@M3zLvO!KINbrPvjwL0Hx$mmmzHLK3FS2pH4<(EIMk@!v{4dCa~%GOZz zrGMWplF~@0U-tK#OGS78OjKb58K`mdjfr@&a2**u>Qzck@Tvyh7hs?w$IE=+@KrOn zbcTOeU(GoUHW6F;+kDU~z$cmKY;K=t$0=@y&{A;rgA`odBh7M>DQn}m+l#NrK6ZV1 z4d)2Y-`t=esVJbJ5+R`@K_A>hZ|L&GK|_0q_f#&ZVcd@i85l+!P>t8laQHxVe~L8> z^m!VCm=0HnjjwCAoQfS<8yWHRtvY7gAt&f=FX|IRE zv>0tAVFsEuQ9!d&K%+IGAV>7G-kMOY0?1*A@#14nkx4*06`J$mT+dOMd_%=_H%@jS z4f^WI@=wvZqJb#{S4ooMi)}R@z;^2(;obB$$U1N26n& z)#4-ZFH&+y7kXV3rFBbdzxjUgDDo{K5_l0r1V>+gJ_gtfV;irLP&YC?F8x+hGoX*> zj@LO${t)s-*2GyF|A+kR$Sz!@w+6dm3)J5e*Qllp52=m(wjJAQJ*^gqt@F0W!Yav0U5-Bbc+uRL}@ytf3snv|5v-WHIzL_7{SV#O7JL8z delta 17361 zcmXuKV{m3|*EAg4*2K1L+qP}{jBQSA+qNd2*mg3p{pGr!@BMq!u3fuoucNzHuU@yE zAl2a@_2`f=I!ZKLGQdDUlVD8*khH)61qBc$q>*cK|8TkMR$6MTp+PaZc53mu5}qx) z&DN}${JYB-KW)+hn^kTvR`ukcB#H1f(Lq|%G)N;oJTGPQ87KU`u6ymL8N;0 zG}nYCGJ@>b1_rVE1xaX#Mpo9ch0#MXsiKcXNafP?C>?bJBfl<#Q_<23kXlp$28}>- z*N+gytbD7Uvn(0M*su${$Fpf}vc3NAKtR%@ zAVA1KKtLW2&ZZ2e4km7PX7;Z1o_4nX{A`kO#}ap+quamxeuZZW!OxzlEqs_~yfVOga3 z44w3LEoxK*ch%qs$ORbb7#aUnE1#K|&@eMM`#ccnab)Clso}_d=-KO_dzZ4gkabvn ze0m$AIcfF(vVD)7Sk8#t!M<{X*sk}mzYuq5d{p51{_Oiac)aAR^YQ$P`(|Mnv1j`J zR_#fZurbOydma1{T2ZXjSUu=?6o?FiY< zX3q2_DuGBCt1uv72V2nj?-}Bd(Uc+yF(xN5v|k>9Pk0ehwvxb_r2=AImi^NHi`Y@04&JdApSCguEqIOeEpwaizn5Td_d4GU-65|wQZ znZj7L)8tUvlkDa-1Ch3QP^MV2yc$E^YbW zF{cq^n;<~184&Q`%PA&9z;H7yg6uqcd++5nUeD*!!@WnT!^hR>mX8F(4%gd(#KI0h ze)*3Djo5dNL7sVosYVvH>n=tV!dHYcT%puvx`MnnB@(s07H@O2K9mD6b7+B+2RAE# z713?OjjpRQ^L?B=^ep^2PN4Jk<~=@6|Ksk|fFF>v{q}k#{|~uUx}=s`vB?*0EezY2yL+>jRfWF}Y|aRX+eE)^rG}kFtLrNK<=nLMdo3 z9t?0JE~&5%;7Jbu2Efys)Bd&Ga+p>;wP;PAYpAOQ8Su@1+Zn*ZaNnfXH!# z4dW`4VqBqApM#CeG`f!nP5Fhuv0-~L9t3zSek``LBZ-kZXwf+m4qX%cl1GOt7t2ZS z`=EX6P-gAN`wxU(UUa<-l6|@ z$Sicg0EHigkP44f0XO0Fi1G)V8GgVT6v0xQpJ3xbp9h41XNj%sO4>}6f!QyC`NqO2w-5u(BCipxXIh)*(?E?Uyg>0HD zcLy)Y2+ZE<97qXF>kd4U;+g&Kv(9Q5<~S$Jh9Af?liS5gMH9usx4{Q34H5cj+U0lU zZl|jQ6dl29Gy&7K42e>9CRn*@hcAMjku30zDq~lXUGP>H|)m zA`W%e$zvtLJ^FPW@Wjv(8-N~6-+k@tUPt??)0C|s_ybpm>6NxCnY`E*441w+j2!=BvJa)!|fP%Hkz&iBc!Olx;-_R5R&jZeT4qz`;A3j6_bN2{0 zY2;erP2GrEE`N+A{J`t`;to3IP4C-rGng!>uXXPmkM?B}=$B{nUJI=^4Tb>X2<|)mTkDg!7^hV}y zA#Vtudi^L^WnG{_u5Xa+%~YMI_Xa^vo$?g024|%`sP>q<&wyFaZM9ROXXG>;&}?1E zslh3F?;D!k){70-1=-$d9Ng{Qn}FfXpr>8nOXi2%N|D9bZ^P5iAU|04YvRR|u}?nc zK$;t96GqJ(>BymYg7iu?YQ*C0CF2ZU2)Kbi0|8%Hqc9$v_DgO!EJI0WW34v9^CT>U zpSj>2CR*JjBLJ#uG&rg8OkZbF<=tHlxO5)|*C3DkxIaX=dp(6IV_O+17J?{>?TF^b zd1pZ>m$BH=?ZrE05&1hnL?0AH^nZuPe}7oOa>(ufX1vZhTOq*P>K3_`Yrvl;(*llT zWjp@^QVZo)lBq)*LX%B=F5A%Tdmo_jZp>}tavwN8hy=jUo*UfNDs5-Xc2F7Ips2(1 zyU)OP3u(?MhWC;}!bG98T&d^p2x6j}KnHhOgsI)CZ>4mTAaN1|PRIC?$25Y$0fDnj z91M*9ruJeGEXF~7szPV;wl(e%qS78V4}ck+9ldv_y`VrzThh^Sg3OukB09%ATk_SQ zs|E~8eFGF8)+1zcbUlf}(6J>N7C#b+4*Dw#sbI=w^4#L|KQA915s#in%!L{ifN(n( z$bj>l9OiKig7ttGSvA?VZ9e;K9??VJ3qF>%#0C+lI_vdPK;(NcP72t3%2JCwu8zSy{ zu-FO{Mz&5gN%_^Lxh@lUrNUhp|I*~l40T-#NoI0|Aj3;e6v6MwS53)slcN!%tSNMF zod5=+8=QOR4yLHnaM8122+y@_mv3fn&xE5TMG3Mq{y^S0=KtbzAC9_+)1kz6k%IAY zX4DRrLgKqli7shney`D^RkO7sn8cqGTJ5AJt~G`6ojV|bXaw>1JZUQDlExB629LXJ zoiv&NLItqw!VmAvi-Maw+&w2nhHF7ba{@}v+H3VVcF~ypguMsoIp-zCIoQUGY9gC5 zy@txW-a78}dlq^ove|?T>hp$jQzQrdQjGOE_kh!Uta$12IY$h0ZhyBoKqmCyGX#lMm{S)(quv8E6hN zo0I*U*4t%;$HfIRDFKnjZ~tmL zTi8h!M&h+90^>NYqOuz^CIjrA<*7RgT@rg3$E;U9X@_^NLvNmaTbLXp=m;l(n= zWh>;ANyyCJNE1fduRes={#W)JY|-PycK#3Nak|vX0$)o41PFoP8$i%7&AHM_>q<1Q z52)EJmf_o-#h8a9@5iDP)RlpL%3<1kZrL%Kju=iQv9y}H5k$1>{xfg(wEE1d}&)=7ucA?$5`S*d|!LT?t`I`*Lb}Tv+mM z>25WeqPXd=;^ox0Y{0s5k8Y4`YQONel?9X;>1cdBi2uV1BEje5LHKihFn+T`z-u;z z(Y5%j79AIE2p2;p;Mw$+^dvQaS$#B_tz1RfxC7U8<)aUAPjxZWuRP%PrT*yl^4s&_ zh@klOm{%%}G07C3aNzNlR4F}bN+{Q;co$+*7~V101oDHP3?P@fq242iXfrny3!<=x z!3_fth18Ne-ksaHmcQ=BsT;+HP(|}?7t0MAmp9caAQ3~rt+Q^9NGJ4Y`rF)r45Tw( zUz~I$5w(&X;mU8tKNm}849;p>we~xadI%Ws=U>^3;qEiHqQgpmfOI4STtpNZ>aiCf z)j3gII?=SG5x|ffKC#6tx1KzkiJ2WmJyNHvX7 zY|v%g7E~jObb~9fbYZaeEF|?8^%cAeixdZfZ_!H_Awy4<4ii{diTdEG5pa5V0)+y@ zX;n^g=hD$-!XL=c#1+JD)Slc51H{lWI6q#)I*nW`3^@DW%|bnbGM2)KFi)`dQY+^eVm6f#Wx1wZ{cu6o|D3rB!7}wY1WUPqJYMY{tU@ z>SO{?J8D}p6$jLlB?$9v-!T_!FP)=k+I3me2~}MJwMQ3(CethG+Yp`GwW${GqTC%X zGFS1SE`sN32<1q%A+}VM8hjk@c{m_D;iuGM=3TCYp)OXyvW@|S3xw6U>D~k&u9mhv zu@Z3e2CA2R7%#``aEe{|$!wnB$c5a+Z$l#19tjSdir?M_RF-TI^Y<1-DjkSl4sW4zhipte~%6QiuAa{9rs_FEsV171kLv zV3NK<`PvEZ(O(f=>!2+nz6B^vVnKoQN*`|P?X;RZqmp@P(YJKCNY=|ske@lNYWCp3 z;>57($u8-FIMqq{SSt$G-E5ziS>u4mtFY=ENhocCm6gd6ah_@}`h~JUt|q5igFNtj zg;u%r3tYM?JqyUa&zyTcXB*k&n1B&gI@$h!!u-*Thb4is{+oHE$xsL197u3Ah(!IN zX_i%iQ9z`WUvVlfb(naN0Dnr82^^!dFHfimPC8Gp6imIWz$b(fkfyQHc?h6(JtC_D z%@{`+@4)3k)0}KGtY-FMzD)7}db*;upV~aGMZH5c2$vlS{hjCWYjtPmVv|v8EM{GP ztWAK|`$UD6h-3}556#y16~gS^+h1VY3Z-b=R5@V=%dPbqcAs15?0JEVcG;rgEV&62 zHu|U(B#nGTyZ{~;g&GrQJUVF6q3r(JHU4TFQqUHo-Px%!NlQvpBEsZ zoYcbE@)yL=n`r<)wr>L*R7D&%oc)}Y258&Az_twn!wsgwwRELzz1-29`(GU%?&EVX zvPyG7+Ah8ls|tyuu`Vei4NkB}R(?2bCYaUrQ#3f>EybMD8St{C?nnS|iO^rc7hawu zTb08w2}u{`1KY6~aB-zwV90}Lvi+0E1DKFCVCb_Ubd^;$x%Kks`c<2@tdiZLF`G@{ zQ~JTCH<5sLiuAZxG|OQ5fj@_4+44aWLFsU9idWL&s$R^ThS+gyhvT~+)yF=wVVhE z6u~BQGq18_&5e0*{^J6hp3LpawP*L-P9Ad_(&<19^0{#MbVLAT61LUfgqN6G|2P~+ z%aaCzQ%QARw2MyDbRcfQk3*#SK9J|?@F;{S=?07$Li5Mr>+O<$kq3@VYl{-iT^6Md zW2YdUA3>4gr0kmFmN9F^4ac(G&6Tq?fGWEkR2VfhDA^9Jal*69TE=(-%tleYGDXUj zv!mlV%2{Squ)P6#dy-ae#7ytBq>1vgLxD+44|0Ry(vbe zSZzz_Kpq%Xvz?pt6jTVXHhqbt%1znF-h7$gTqvhuvflxv8VQN@=~IwSb_o19O5v2@$Zude-6#c?75k#-_(VCk5rPj?ugxpvTh+NsJIM`<*;A3IU@s?eil) z2LUia0I&$sKn@|7{Z!NphaO>1ztQ9`(nvLr^VGCuQg~H?1@>;1rr2e-B(S<==~r3- zDdsZ|No+z!p+-7Mib41Ar>C*jY1J`YFHG9SM(PK;wREIG5B z6uH+~u;FkntyVUr`4)7mLlom-H}y*Q+I6QSOmyMWliqPp^mzpmQJf~{GYqgj5JV*u z0KVwnAJcx$W&!6(lU%&XZPU`~VDssm7w710o2Dnbjo6p{p0Q!K&0YdOuima}lbK%s zcd8EImm>}J*xtXD?%Z#>hzlo*0re-zC@6l^^SdnPq-Pp)dH@wo3c2l%3Wwqr;&m@L zrU+$*58m#XXg$NIENgbjbnm#~-+G4{fRP%_T@7glbAKw*xl>@*?3|;ZTMUnv#c0mS zSWZuBUhe2_WJrk4F%ZY!>SxK3N&Jc&cm(^NQg5a&gTwlB~Y0%6AACDhnOx)S> zpYZ!fuAwSEo?VQmxjs8LfZ85?K_dw50`Ho?+e07w6p z*i{~IDe~S=gVX+SPP9ksR4UqzBFt;zl<4Szj2S|4><%tN%gB$Dd<);M>DhRDiJ5Eo zP=PCXb)b_6D#Fm#uifI@k!yxo4n1RDog8;B8f1j6aBxNZYZmB$SB_tGiETe6_^pbc>y;W$zk%!B9ISNT}1OUNI?nBbb zNI$>K#=70C3Yx>ug}b=40mxfl#e}BM(CO=I>LW;O`bvU;?a;RrMSHETLWmiUU0+p% zYV{#}&&flpKD0r)muK1mpc&&ji79Sf&mwfr(7ENX>!F0Uq}Um$>MOaA2ixvA4(yk? z&^R>~(4?i>-TOkPEaq&QP<(Kmg5lV3pvVXYw>)te(hY{+7KQBBfO-dFseNxvHeU2o zoXX|f)Lf1YnKRwW+x6wd`eD%gI7GAn3REkLDlrM=*`~gsk4Y53PS{{x1Q>tt%T#4d zKV`{Ww*u>2^orYW4ebrdMq>Z@;`(y^(|{n=W`l>WO+11 zG@|50t7sf7(Kf5p(VVfOhgY*ECfz78?ajC;l{VgwR9*q>T{VjPcNdOeVNQ(b!JZeM z9WUU}%}h{(nF~BeGvRaSWj=~VHwAH<(2_-BR8csb&ge=tYeE$MmrNCwA}|@)GV@Uq_rpJnJ!Bk`gojfo?kvR3h44oc zE9TIZ+J8LElpGO`HmSDuQ2lV4S|yx$gq}x%^5@-Tmbks8KpnAw?v7Un0xc*`fFI-k zj~ydanl9LM3Au&-1;>jo5AKYMX9TF;8uc$&F9TrN*+QzgLT;fov18N{Z9WQC(Ct&z zDNwq~e%Z4H1{$;SYZH(p79qB^(wIT|?qq|T3e`SIUo42cSenv-BsRTzR^=9BDDdmt ziD4H{AIWSs_In%m(=k(EAq7YJRtRr4W9wt5h$V}|6D1KBYQ=R;YR1wSyjaTini7A) z%>oz(rWT}+71xPeJV(dzZrx5gWl>NcO6`(Jg9Aym18xWjqK017R_NP=AEW<3wkVG7 z<&0Z9)y0B|6t6y2vCkqgjPTitXaN~2?p`r!n&DvivPkWGG|nwRp#sN$HN8U?lBIj1mJf* z;d!G>;?(z1`PElaVgu?}Rv!9dhVj|lb6Z*8H;|E)JSeGNL>A)TmpOH!kGV{8EUn2I8_KR zZTgj(a|YS6Rr!ns!}9F0KFih}3{bN0G&zv)OO>fa+}yo#Z6deSS<{>a?N0>h$Ext9 z2(nQWZ}WtE%AN%22RU<2rrNh_w@r_IpgX;{97N}g?VDmnB$oe~=YS9q|F9G#|Ceb@ zcgY`#!s3L}N+YsxH>OO^5O1z|`g9s_npNNbe!kA@Pvu0|+WluhYyf;Y$<$M0g zfYG~bbtaO^+C$?83Fd@;Q>C}orK#=3o>z?!Mp6Eh;SB^_8i63_;MyWEYui7d0tg&Z zMb3XjMB?5+H8RxdGJvNs;fM?#LNb3w!ir6w$xZ#A)*K=_;ZxRZnxU_-X8 zLl)wFZC9aYO;=tvB6|P$mFv+1T)WZ0kxvaD_iK(stn)xZEeoF?M6H%5PnF71ukvCq zMXy%fjSmJ;k~E1{R~xQVP0K~0=2|5~NZ0X%A~{(AoF81Y-!4N49zqwm*jjyuqG(s8 ztp`$Nr%^*@+42j>gGvA1xg_&fB0ppQ|5W}jSRx->+j$r$d*vTcyZH~)#GvCwvd>0%8~U)Dwp-D>-f(iYX*L^^v_^7yJhZ2S(@G}Od3@}%x3S0$m)7EXhu(GjJ)6xm zow>1T5i4YFzGT#o0o558I8fPPToKrZ}Z=`Rs zcGn-J=}bvRbv}qxHWib19p`2ID+Y0>sAsLfMQH0J^CzuRDHF%Q(Yb0;!*qfR6H^eE zJA>nZ_D~XO1HL@fNdLf`L(Ms6YB{>!HXk?tT&kO}2T@g0z|XlXG^dgn$m1b86>gBP zj)Q#FProNmb0sh52kc6pd7rIbY0T5rUwi)ydB{}*Q@mRCp&Z(tC@^C|U6A^jz5L`N z5dLdX@12l)W*xo^G6@^3%n<>Kn6_?XwUdp_%0_f-!7c@AJMzfkU&VZUA=;R5-rO4 z;r6O=M}a1Oh~<-D;pQST4b3dC@qK1Sf>R26wbkQq94s`4(qf)GuydcC!R zdRyQpS%Q&oNlPtb5&l8D*sv!((BKrb)>Yy;QkZjmH05Ot=%sN5BaJa#Eo4D$J4ir0 z22_B#!~Cyj34a0oIeVmD5_L%a7FiTo_rmcWEMRi#EbYlLgPlD8n=F-y;gK{on{bIt z(?TXde+CH&b+09l_xsk_mWGOy3KeO%`P*yW&qO?8G*WWODQWXTHCAUBJu`A`!R+7^ zRr#V;g(ghPhnQYg6pw%o$qCaZhc*Rf_=0YtZKR1~cj+vrZPyWo*bXZ8=y<%NX8Kw| zdr29TniecNao{r&MOe0o_;LSA$}2q{kZChl6rlqexit0P`G7;l|TKo}eO?K4<7+FRmw9P@yOt;ef zYI3=cx%6+Zk2QzF(nu2|G0}YtY)=5FSBh~aXY$G`pPRqMzov6*$=WXW@rrbjDARv` zengOvyyr*N7)b17i_nY4K{Dw>9V0RIcE`^tZ<9-8Lft{Z|9m9% zA0J6#_~al9JvUVi%9d{Upj4(QS9(lKD2FL6NtIh&K|fK9=nqGYrM^^&34ko*t=h3o zt(<#rYjKeiLvXffuQRhZ^oYj5`N ze{#h(FAcA@J+XKtGa_f_k;AT!l4&R;JDL+1gJIJM*WA=v$Y!)5LDj0;EoYSiTDrPn zL%RImBZy=sDYW$dgRq){P(X7MugVX7GAUQ4UJ7gSieQkOCsg$=G7-cgrS%ORo{zGO zsE9=XXHNAc{oSHjn)p2W6tOWDF zE@lpo4>O%Pj{e1vUlH0gn--v@|8G^({RkvX)AhHksX8Me1S;@CGoZ$u>>-J=W*dG- zs3rs{8hMU>Y|E^Al+F6ZvM`|IF!nPRm)$eX^2_lg7JWG&^~6C?Z7NKuY-UU&=)(9D z94e?s6`6v7Y(r*s{8@eB+Q9$i6SLxQyey&RduVzE2#2)_owS%%lZZ4~6eU*+!22x9 z535Osk!@Z&l7S-32cWN%FIZe`bkTJhl`z?_{@g6N>OFyHzxqs4B>o4Q>G-b!{rEB> zMUYIv_qHjwC;%ig9g;XO$%_JDp*OD-@3cv5>^tgnRy?uK5lIc#R&KQWp}?;^!ACMY zTqNwv=f0M5#^H%r!^D zRz!-Zvk{41C+3Uf%6)jI4D+%89x773=%(*{3bJx8<|*NQv#!ysZr1_p^c*yL+a+H$ zj_-Z3d^_)>_YP$I^kj(0Oei;i+azWP3%t#sAe9&I88G}3g^0ggweQj`Za%!uPK_Y$ zbP{wg3KgGo0tj2&h_UknBrTVA0z-!B6TV1Gs)wD6EZI_oo0O^5Hwuu`LC}BoxZj6A zJ4l~G51E=i;bDQ6c0XPewe=;1#|g~DBW@={M7H^+U9PKpzNIq|0RE)aEr(75BfRN3 zhY)Xnsi7E78o15W^6zPW7r8LL8Kiqd_C)UB<_&cf0|aB8kKhSDJU_31BG2U=!SAki z)AOB(nv!y{%|^tz!+Xb+ZT6o3FC`)JmZnp*MgKg8`dtXwSNP6H-8SB)Wio_|hYuI} z{}K`&VLl&_BG;JzvVI-*!z$(xJU>I_*7Z}w3>dmm)At=|`OAj?zNU-8gNv}qSp?{~ zcQIA{nQ2E8FulV0ilOg0K1Kk+>&LEeg!KofU^pumB7_f(aV*0?>^rTT*_Wb?A z%Tm%^cB8`llZnCH@m6x8(y9gl_HFeoq!H<#hLp54b>1FvMvh}*@}Z~+{XR@Ba<~!0 zvphFFs%UW1{w>jO5>CX_RalF*hzo$6S z#;pse?D~M@tk1r;9m@E?>2d<~K7BKyodf^%#l`mwet#{Q4s}xS2E2O`Qwu;SNMPb` z`UC+%sVx(d5i8k5h8m?%yV{%fJ0C$y+Kk4JoDm;Wf=YhRxj%Bd=-H`;$VyIn+8I?> zo2st)wp?a7=e8YIJu{m0uHa_R*dXcjZitTR1@cZMno#gwCAw23`uBD_)9`i2Zl=W$ z7s~%&QW)yvmb>LQ`l8qZ0JQ9pKC8MKgq>7jSdaY&B&mQYIw!^XyoRzrQnR&Hh06t6 zR_(P?apL@@qK`l5afNOD{nOz|Njy;_^wB1S@`b`veom#DS@>0;YyRbFPstvqDYu^? z;;ki2sV|X#tHk^9I$V0scf8Q5H8;Ne+3cL}NSXXAuFaVFn&%FPO9%UnL^Mq2ia7hY z2?udS03=1={T%7gsU5g~TEM`#8dtC;z7tm?dQwFsnyIIYxT!Y`PSnw@ETmr{=*Fd2 zdw&on%#~Mh==tR4-^8*0(SS-@A&RYD*DZ^XS;l zCdCLi!3Vv&lF1U_%|awz=G1JCwg-P~ORR@!p&-Cf?oA zF~PL4d@L1dA3OTTb`{e-^v=FgxsMX@8X-anFU#V6IV`o)<@;~oFxFHz23Ysnj?Mtc zFs9xu$!MyIVH!jDJcN7fczZtcl@zjL+3D$6Lkmr+G6AmWqrRHenEX|mQ?my0l}0={ zauw0*iko9m2ElX5UG*h(5i6t2TvG5GIkigclz*sz7%X+`Xo!PFq=SPNS(Bl= z`3C7bphbepHMw{u_o*jg+#R>07Y-gU1KJn;Z#`P<_z6c-v*9_3W^lC zNrn$v)y>W!MBPztkQRC!-FU9eLi2pr6dr#S*3j0JNSRdOB^a0X#y`W-P)t?Cx~wvB zskzP;MNH)Wtt)3&9Fkgru@|1uR6$5p4B36a6a+hOA1~X#T8L+AmzPMO+NzU`ZnH#* z0V8zQSgzWbH4Yfq7%GI}Kc9nSTXn2CuXht&*dViM;LAE%pQ6Fwy*)7cy5#x>@gaTH z@V%d$JX+@swuix1S6pn!WCP8L0}cV-hcW5igM%?LN!&+GG^|TCQ43)z-g*Ol4fZi1 zVe&CS-5{_ba4MB0)pFU>Nz+1>0+mt^@O*;!_jYr2VG8^CRu}(um&j_9BBfb@X^$ZaZ_J^eKfKvWA#vj}%S{uUURf0b)FX4!u`%{@mW_2Xy-Bzr$zIO;l*n(-t4`OZ=IcRJ1D=o@wltPaHLzYu|&FKZZR}$IR?Al zf$XvxLyE5Y%dZu+wt^5^GK!D(T{QIgOX($|cxluY}GWkl=s43}mX zW|WJrnlPUN@*KX#$X2p5qkz~jCnxNf+U-LjGI8K`fXc{0C0Ab~X}0b`?#8-Lfk-R; zFsWirZYpJpL_kY8xZ`v2N9G(Too5ow(R#91{s@>5Fud|!cJBh+FW8Qwc6c3ms*!g< z;A;Yp$Dj9uGVf2CcmLfchU#Hq^&isx8`MQ{tPzGkC)_KVWFt3kT_LC~3O5`M)-IaJ zn1eR7fX0Q<_6Le_t_gOgS#c?6oMjseo;YaYQMh1>__sQ~;lP#Wb_TLw!3Sb!RQKmk ztm(F1`fd(pJUoBQOh1T)D#7(>H@f3@aJq7Vwwr0gm3y6n(|BBx1b5F3=eZGg5<<_-Z!0#D5wJ26n@3nhEfR!QeZWkb-`);vpsNl*2pW>g|$8Ytj%s(lkpi z_zzLQzp|=otngy8wL|Yl!`4ZSHOpOx9kDGM@p{Oux&1u6d+k_l1FbE(tkB@&|L+@XhQD1k*8An&)%)7>Aucf5tj=LNG-@dIOxf~Ay#PZV!I+nzQe z2Z_;N%sSc#FTK2T6D#I+Zt;|hdE0D#TypAQ=!6H4Jf&RSH%F@;hutrC09b`D6&D%2R?EJf<-}x)AFj>|tx&lzQ$TG=w6Aj)$m^SB>wG}v% zgXT2eNZt{%>_YTlN%KnO$TAkwsepNAMeF5LOc*uzrfM6q7q@^L)=Lz?px^QRSJk~k zX5#ldB>dbjJslPQzTZ7N$8TK)UF&k8)NC!*mmG8_GXk6wC;0^8T5DAQ2r zh?yK*wO2v>H`7SXpFYX_o#nEyc%7Bx%nya_Qx}X%($W zG42g-UzYJi@7aquTCL8e)Gs1bPCEQ5KO}4y( zGHnv)1~*&JR?9hrGTuINA&K9iQt5vbxR@q$8rZ0BO*zLNi$d8zt*kk=o-cp)oeG&~ z`XstvM=IY=8GOM>CI?0)G=@Sv(E*Qd+#kxy)I3T;cbbxi@~^}JtrcnL^F~yRUW_}a z$`C-rEi4u3gqlfq^7c6oTHsb}(jLdIY=j8cfuF9mO-HgiS?}?~u--Svm#%2Qd zPz23{w}Vg#PD0*^BwOsZfJP`q5T9}Y6%;T>6jh3HTrp2PoWL`Im1k^|=7o5#s^yFz zV@#&3`KoHG5={nugfV58N(~U&*V@IpkR9C*3aJl6nYN`iLSyB?S@ATE8-1S>HvfIA zI;IEbBBXOkc9<2{9%(4+Mydybyd*z~r6Xfzh-8z~Kx$|sr0h)+hco(1e2j6=F%-a- zO$Kqd?nqA?6NJp|s5u_X7&cVRALm!WIeJ zI8}~Kh6vHt5aEPsEsD=H6@H#t^A%vr2(u$X%#FjuO*&2-Aw>EQyqd%+Hh2w->HyBv z!4!()w@YHO6a)+B9kukXd{KZ+l(*;5Plop;4K52zIhPg?S)ae%1R1KoF6lte?g z^7dh1W5FcV{!dOal$e$UU98`+Gf;U0FPxoVyG?UiIS{{N>2U;RkhtmRF#t;3+$IjLer>W;5Uvz& zkqrFQPt-ZWP?oPC*nus#*B|ANK0|Q}CTUdfM!v&DF^=)>87d!GIiLtWo(Mu8cg*nD z*>>q*(yNg$(U`)F&ZX=@<{Ax`=Eez%S%3Ma_1GZ9(B+A$XhyV z^5!*_Jyw3}qkC0eFsGz(MdD^RBQSRR-deeC(%|QU59rqOWnm5edwu68RDhr5KHTok z1)tsN`MGq^_#z5FVyuI(IJ=#`!Tl}zDaL-XV#V%uR=)CJd}V2s-3?&!ZkdLR8c-#2 z(5F;kttfh$Pd{+hv6VJHJ+IIgXgk)Qj?*v`sE*=uyAAtUx>m?32gr33%9LTeUkLmx zNq>KXCPP3XHi5YqV1t(`Nc-(3TgIpXdPM$iwQRX-Y44{fp`NmCnMiR9KU&h2X zc;pSqZ#hxiN=fd-pD%>xM0vo?c~S&8V4Na(8+{aZZE?iIbgc#g4LhdXJHMGYYe+fb%H%A`k$EOz|(o@6KFFcS$mz;`awLSj8k^Xb4(}%vfgc zzr>!XU$&Ms0x9AL%Og4N2VbT%Yv?|YK*c85vlq=p;&k1t)L{m9MlTk)Sie}p3Hx2gR; zAh31w>KZG}PdsZ&ylz)beShlq=F>Lao)M}&n|GZ0F7esa-nQ}i1Dm!bhG{N|kG1lH zK85$V-b~Pb)N*Q?)>Q7b9#h(8?Ob(9s6KyAP5wnSGwm+!w)vcEol2jvAKH_?=a9_A~7Gb}vIy=;mqpEj)U=v{L==1GmyJZulswP`pj! zezRYFwV(1a%{$rNL21PawJx`sRy2R`eIh>hfMWAn5jOJ_#`P_o9B()d9NQXq<8L6J z=D)^Wg87Bdy~{7p{CfGfw9MPztAaOwb(*y5=bK3-vgYzr6TI0LE(+yqac6kA17+X+(JhJF_r-py|9N%Rx%r>@BrFYT6#ua@FiieBqYvr0ipjk*9i-9ESOCT) z6ik`?Vx}EajO}ENS&mH3E|Uwr#U~$~B_M<7YcYUNWq_$?UTCfSaCrpO5DLtz5(tez)|H~kjB{L=gi0p6&ry|u=VvB# zJHD4p?wDiCw5fdZ@i}%(e=8@m&sB2)Co!OrH-X9pP>kJI!@vMMF(RNSzo1w@v7i8S WYD9oHD;r3W01(Qv0FRZZ2k`*s)mgs) diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/EmpInfoApi.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/EmpInfoApi.cs index 9ea62af54..91b76c3c9 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/EmpInfoApi.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/EmpInfoApi.cs @@ -6,6 +6,8 @@ using static Learun.Application.WebApi.Modules.StuInfoFreshApi; using System; using System.IO; using Learun.Application.Base.SystemModule; +using System.Net; +using System.Linq; namespace Learun.Application.WebApi { @@ -22,6 +24,7 @@ namespace Learun.Application.WebApi private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL(); private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL(); private TeachSwitchIBLL teachSwitchIBLL = new TeachSwitchBLL(); + private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL(); ///

/// 注册接口 @@ -38,6 +41,8 @@ namespace Learun.Application.WebApi Post["/savePhoto"] = GetSavePhoto; Get["/registerbutton"] = RegisterButton; Post["/signon"] = Signon; + //根据身份证号更新学生和老师的照片 + Post["/updatePhotoByIdCard"] = UpdatePhotoByIdCard; } private Response Signon(dynamic _) @@ -190,6 +195,173 @@ namespace Learun.Application.WebApi empInfoIBLL.SaveEntity(this.userInfo, parameter.keyValue, entity); return Success("保存成功!"); } + + + /// + /// 根据身份证号更新学生和老师的照片 + /// + /// + /// + private Response UpdatePhotoByIdCard(dynamic _) + { + //传参 + var requestModels = this.GetReq>(); + //回参 + var responseModels = new List(); + //限制每次最多传值50条 + if (requestModels.Count() > 50) + { + return Fail("限制每次最多传值50条"); + } + //图片保存的文件夹地址 + string FileEextension = ".png"; + string directoryPathOfEmp = string.Format("{0}/{1}/{2}", Config.GetValue("AnnexesFile"), "根据身份证号更新照片接口","教师照片"); + string directoryPathOfStu = string.Format("{0}/{1}/{2}", Config.GetValue("AnnexesFile"), "根据身份证号更新照片接口","学生照片"); + if (!Directory.Exists(directoryPathOfEmp)) + { + Directory.CreateDirectory(directoryPathOfEmp); + }; + if (!Directory.Exists(directoryPathOfStu)) + { + Directory.CreateDirectory(directoryPathOfStu); + }; + //循环处理 + foreach (var item in requestModels) + { + if (item.IdentityFlag == 1)//老师 + { + var entity = empInfoIBLL.GetEmpInfoEntityByIdCard(item.IdCard); + if (entity == null) + { + var pmodel = new ResponseModel() + { + IdCard=item.IdCard, + OperateFlag=false, + FailMsg="该身份证号的教师信息不存在!" + }; + responseModels.Add(pmodel); + } + else + { + //图片地址 + var imgPath = string.Format("{0}/{1}{2}", directoryPathOfEmp, item.IdCard, FileEextension); + if (!System.IO.File.Exists(imgPath)) + { + //下载图片到本地 + WebClient my = new WebClient(); + byte[] mybyte = my.DownloadData(item.PhotoUrl); + FileInfo file = new FileInfo(imgPath); + FileStream fs = file.Create(); + fs.Write(mybyte, 0, mybyte.Length); + fs.Close(); + //图片地址保存到LR_Base_AnnexesFile表中 + var folderId = Guid.NewGuid().ToString(); + AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity(); + fileAnnexesEntity.F_Id = Guid.NewGuid().ToString(); + fileAnnexesEntity.F_FileName =string.Format("{0}{1}",item.IdCard,FileEextension); + fileAnnexesEntity.F_FilePath = imgPath; + fileAnnexesEntity.F_FileSize = mybyte.Length.ToString(); + fileAnnexesEntity.F_FileExtensions = FileEextension; + fileAnnexesEntity.F_FileType = FileEextension.Replace(".", ""); + annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity); + //更新EmpInfo表照片字段 + entity.Photo = folderId; + empInfoIBLL.SaveEntity(entity.EmpId, entity); + //回参 + var pmodel = new ResponseModel() + { + IdCard = item.IdCard, + OperateFlag = true + }; + responseModels.Add(pmodel); + } + else + { + var pmodel = new ResponseModel() + { + IdCard = item.IdCard, + OperateFlag = false, + FailMsg = "该身份证号的图片已存在!" + }; + responseModels.Add(pmodel); + } + } + } + else if(item.IdentityFlag == 2)//学生 + { + var entity = stuInfoBasicIBLL.GetStuInfoBasicEntityByIdCard(item.IdCard); + if (entity == null) + { + var pmodel = new ResponseModel() + { + IdCard = item.IdCard, + OperateFlag = false, + FailMsg = "该身份证号的学生信息不存在!" + }; + responseModels.Add(pmodel); + } + else + { + //图片地址 + var imgPath = string.Format("{0}/{1}{2}", directoryPathOfStu, item.IdCard, FileEextension); + if (!System.IO.File.Exists(imgPath)) + { + //下载图片到本地 + WebClient my = new WebClient(); + byte[] mybyte = my.DownloadData(item.PhotoUrl); + FileInfo file = new FileInfo(imgPath); + FileStream fs = file.Create(); + fs.Write(mybyte, 0, mybyte.Length); + fs.Close(); + //图片地址保存到LR_Base_AnnexesFile表中 + var folderId = Guid.NewGuid().ToString(); + AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity(); + fileAnnexesEntity.F_Id = Guid.NewGuid().ToString(); + fileAnnexesEntity.F_FileName = string.Format("{0}{1}", item.IdCard, FileEextension); + fileAnnexesEntity.F_FilePath = imgPath; + fileAnnexesEntity.F_FileSize = mybyte.Length.ToString(); + fileAnnexesEntity.F_FileExtensions = FileEextension; + fileAnnexesEntity.F_FileType = FileEextension.Replace(".", ""); + annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity); + //更新StuInfoBasic表照片字段 + entity.Photo = folderId; + stuInfoBasicIBLL.SaveEntity(entity.StuId, entity); + //回参 + var pmodel = new ResponseModel() + { + IdCard = item.IdCard, + OperateFlag = true + }; + responseModels.Add(pmodel); + } + else + { + var pmodel = new ResponseModel() + { + IdCard = item.IdCard, + OperateFlag = false, + FailMsg = "该身份证号的图片已存在!" + }; + responseModels.Add(pmodel); + } + } + } + else + { + var pmodel = new ResponseModel() + { + IdCard = item.IdCard, + OperateFlag = false, + FailMsg = "身份标识不存在!" + }; + responseModels.Add(pmodel); + } + } + + return Success(responseModels); + + } + #endregion #region 私有类 @@ -202,6 +374,43 @@ namespace Learun.Application.WebApi public string keyValue { get; set; } public string strEntity { get; set; } } + /// + /// 更新照片传参 + /// + private class RequestModel + { + /// + /// 身份证号 + /// + public string IdCard { get; set; } + /// + /// 照片地址 + /// + public string PhotoUrl { get; set; } + /// + /// 身份标识(1老师,2学生) + /// + public int IdentityFlag { get; set; } + + } + /// + /// 更新照片回参 + /// + private class ResponseModel + { + /// + /// 身份证号 + /// + public string IdCard { get; set; } + /// + /// 操作标识(true更新成功,false更新失败) + /// + public bool OperateFlag { get; set; } + /// + /// 更新失败原因 + /// + public string FailMsg { get; set; } + } #endregion } diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoBLL.cs index d7cc9ca4c..f3ba14d90 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoBLL.cs @@ -144,6 +144,26 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } + + public EmpInfoEntity GetEmpInfoEntityByIdCard(string idcard) + { + try + { + return empInfoService.GetEmpInfoEntityByIdCard(idcard); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowBusinessException(ex); + } + } + } + /// /// 教师年龄比例 /// diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoIBLL.cs index f3d04be4c..ae1ce460e 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoIBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoIBLL.cs @@ -39,6 +39,8 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration IEnumerable GetList(string queryJson); IEnumerable GetEmpInfoEntitiesByName(string name); + EmpInfoEntity GetEmpInfoEntityByIdCard(string idcard); + /// /// 教师年龄比例 /// diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoService.cs index 0e1492ada..8154e36cd 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/EmpInfo/EmpInfoService.cs @@ -349,6 +349,26 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } + + public EmpInfoEntity GetEmpInfoEntityByIdCard(string idcard) + { + try + { + return this.BaseRepository("CollegeMIS").FindEntity(m => m.IdentityCardNo == idcard); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowServiceException(ex); + } + } + } + /// /// 教师年龄比例 /// diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicBLL.cs index 4572c22fd..ac49b9ca6 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicBLL.cs @@ -249,8 +249,26 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } - - + + public StuInfoBasicEntity GetStuInfoBasicEntityByIdCard(string idcard) + { + try + { + return stuInfoBasicService.GetStuInfoBasicEntityByIdCard(idcard); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowBusinessException(ex); + } + } + } + #endregion diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicIBLL.cs index 739525f51..49686ff18 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicIBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicIBLL.cs @@ -41,6 +41,8 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration /// /// List GetTree(); + + StuInfoBasicEntity GetStuInfoBasicEntityByIdCard(string idcard); #endregion #region 提交数据 diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicService.cs index 4572e4bcc..b8678945e 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoBasic/StuInfoBasicService.cs @@ -374,6 +374,25 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } + public StuInfoBasicEntity GetStuInfoBasicEntityByIdCard(string idcard) + { + try + { + return this.BaseRepository("CollegeMIS").FindEntity(a => a.IdentityCardNo == idcard); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowServiceException(ex); + } + } + } + #endregion #region 提交数据 From 7525465d8cc049ab23c2370f47f281a73a9a6dd3 Mon Sep 17 00:00:00 2001 From: dyy <807692433@qq.com> Date: Mon, 13 Jun 2022 16:11:02 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91api?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=8F=B7=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=85=A7=E7=89=87=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E4=BF=9D=E5=AD=98=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Learun.Application.WebApi/Modules/EmpInfoApi.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/EmpInfoApi.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/EmpInfoApi.cs index 91b76c3c9..f6ce342f3 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/EmpInfoApi.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/EmpInfoApi.cs @@ -215,8 +215,8 @@ namespace Learun.Application.WebApi } //图片保存的文件夹地址 string FileEextension = ".png"; - string directoryPathOfEmp = string.Format("{0}/{1}/{2}", Config.GetValue("AnnexesFile"), "根据身份证号更新照片接口","教师照片"); - string directoryPathOfStu = string.Format("{0}/{1}/{2}", Config.GetValue("AnnexesFile"), "根据身份证号更新照片接口","学生照片"); + string directoryPathOfEmp = string.Format("{0}/{1}/{2}", Config.GetValue("AnnexesFile"), "ApiOfUpdatePhotoByIdCard", "Teacher"); + string directoryPathOfStu = string.Format("{0}/{1}/{2}", Config.GetValue("AnnexesFile"), "ApiOfUpdatePhotoByIdCard", "Student"); if (!Directory.Exists(directoryPathOfEmp)) { Directory.CreateDirectory(directoryPathOfEmp); From 69fb581622e9bd5f8387e9022c3650d37074743f Mon Sep 17 00:00:00 2001 From: liangkun Date: Mon, 13 Jun 2022 17:13:52 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=96=87=E6=A1=A3=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...化智慧校园基础信息接口V1.0.docx | Bin 40305 -> 40301 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx b/Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx index 2eea10f6c16a7c9dc446cd63b2639b95bbd92401..8d7eaece84193b955a19f8f90ddc7eec96ea332f 100644 GIT binary patch delta 17732 zcmZsiV|*XM`u1ZtR%6??ZQD(nq)8e#&c?RW*hXX9wrv}~uuso9|Ci6Z-F-1TpPij+ zzH{Bz+_phnwn5a^zyl3pw^k{9U|@{u5MXFvU|??cPUg(!_TOCXEPlE$x!c)Z_}C=k zFE*Y$>%0E#U+`{8*2i*aUhtfZK2FL;)}$D=NG!afE|;F0fU{XB*NTn4AEgL2fg4x= z?>j^z!h*|`b0_5KWu?0ar!A!W`ED&DJpb1o1*y^>Q#&gH*QZQoTmG9r4YynS}leVdW)kmUBK3JU0 z%}vo}U^is{i3z|&n$OJ{s-C}8rn>1U7Hs>e%=O{|dtcAH{|T4fc-{ir#O<-*_{>DG za@E*>OV0AP@&v;lxZBeX?~HE&;2rNB*RG9|D?C4OcA>Xp* z^-(QKch^r8=AUbWlZXf9<3HO7Ee{lTjy_GG)SoWHwR4bcxxU}o{M9akXm#@ci}X3y zI=Y=KmI0Uht3rboOY>yEWiL!Ipi2@AybpAt%>)DvaUdZp=pk&Z+%?4-y?MWmp3md_ zb$=M@EU*;j^Su5z)z3l2^N3P=*!FmBkh7>?QpU`sVAK3K~?!>{$*7+OFj1^bZ z4Lt;dqF)iAN(>uPH-#U!)UP=WzxtK$5Wx10sCaFm_G^LB_T@7Z|s_?hACLWs@Wx0O^$mG{mN#+j{{~CzaYv^(1*RS z(C3qIi9I0nG0*4`46%(~pz{-ZvM(w;&Ez%`3e!HL-LCl7YSw+heSxD1b*S)#54e>3 zGv-ZV-wuPUv9dFW((UJ4t?{K6roM`!926s^J(#QXI_w;l&pI4kRn6`ahRb$+JL4Q? zva!PVz#MJTe~w5M?+lUqH&qA{2BzA!{hQ`^ik#sN|3p-MFGMZ^+83xP&Dvj1C#HIL z8>oFflPuf3OlxqdIo_Y^``W@nufV==@$>ZvSwSJc)Ed^$c=SD7MxAaBu%K_yn5$mX ziaBqD=qT`xvqz+Roqv{}=cZlmR+puX-(e;T1~N4(IOyg42i<7M@8ox*PVRlkpfbIm z&mOAWP*+%DX?Ux?mo3rSMksv!(p;;^<9Ry2&)k*Xb?@~8erp*ykm9M26$5Nk@}Tz7 zP5oTY;zdbx1b8~mR+(Jc&{a>$!r2pMN_-W(7VZsU$5_bFsyut?=nU7CCM$7B2w-b_ zn{u28yBl1p_mS=<>7}pV@%8fb93lq4I~Mn*kNvrk?7i=EOXK*{oAkWLz7yEKo%w#4 zep+v=)cwX7z=fts8nmt~JPtf;8!HIQPCs2d)GHXjI(Z(mbHpY@rEN>Np>N0Ys$$N@ zJEz0pwLsp${lsvO!#LsF!ix$CR0RsS)7+K)GMZ(DIRlhqVRK}X5Os(HO!S{h+pk+< zADMpYNmeW{VI#atb#vd096J4(wOXj6nhn~o`kW_%uX4-jYSE?Bs08xi?_KPTHYznt z?`1mm*{s}}w;$JRX@Yu8kb>HFjKfAS<*>b1NR7kw*{OD4$FGLKvdw?~jJkka@l@D; zJ-)r4wwoaYk2?8$f2CX|x<+Xu#JR#S9^P8Rs1~?#sZn(I-pY=|Wr{(ncfT01zFIHn z^d(Hv#@RW1?Q=- zBBWfLaRC^JVIyIZBXHd$8u^g$ZVA^XZv6edE$q0+qfVp8U)(By+IiS~$n)e;%%`OR z=Qks_9Pf?bJZ(QXbEaLGEH^GJkFlV(uBWB>_ABrgN~kk#KY$yY&qQv_jB9t5B_x;{ z)J@cmajmw^yFx+?#svoM@WXy}nK;M6IPwDD1(+WcRgkuDH~cGQPvv5WwQ(JKFV<;f8i5 zf0ZkZT?-4CBE#6^=^fqdk00tqpFvu?RB4c=f{U}%3+Em88T29#m+J-}P5d!``tvQ_ zN<7#Mi6^1trgJTS5aZmn=9x`qx<^HzQ zTEHy41Qf*7a?LmRGr*sTK|o*PX_aWR6iasIqsDm7vSkcW9bQ>6Ak*xu^{ro#DfE6J zhSV!`*x3`7+d@RG8cOgQQqg##pR0`7>Ep?)Loy~Hu}Bg#Yrx-`H6Oc z43L7`p2|t|{YKU4cQdyP+i|Gh;CP`M|?2m;4>81S0Ggb~~rH1K`~?Lxz3}i$ir6DycgYLj-Fk*|yK06x~V{ zEXd1K^+^_%#jGKB7{m5frB0`9Jiu>4Vv_6{K<6&>0R=2M zx|oTp)$(LB;xYoUZXn81#K8s}&kt6D!T3V=1~w{uw!dUzkqjzym~!>x8%R2Sgp8zd zLBXh|biW7XLWu-Hzu5D)=FcGAMQlm+no{3K&!uxdaWcsiyWgHboXPD3C-kgcp4s_* zDZTZDjv6bawd^FcbhcuI(3%}qKm)wLiBr0@n`>>0Ehb(x3DZTpVuT4RvCLu&m5zc5 zjBX4jL(GkV>fDV3o%Nt+*~|~s&R{C&cj&|`{lY>@i- zL3vsbbTmzU4R}9n3D1nTxGQu>Z@&Qa6BI2qXaShPV0$@fuPvB>8y~Q+r!%ThNvfjN3k-) zeBR}O(lIIq@c5~BAUia2b#Aa#i-9AfQcyuh)#G@yLWOr8iz86ootDwGvf$s|Ll#EfRS!#}5Aj z`0=SD$+g;?M$tEph=!?%B}xRg;OiM(5GCKJQ^IGAk=HlR=U*L9=C~@Vx4Zmz=m{4R z*pD=72er2$fP`rsly&N0%4inYN&?JgoQtrUz>z}Xz3h4T6$2V`t~FlOQIzIaWRT>M z@M?eFa&w;MPY75#@>ZE14Tf}wtY_`2q!U@%xk`=a!#bjk@|i-xR)r3o(sH%;a!$=7 z<6fHCGsoh+#dIJzL6sS57gHEbGX7<`?6)02ze@}PT7@rBo}L6*&>PaatWw@3#DO3_ z%WkA|qUOyOLyb zndCWLaYHp2rDXCj&h(n!s@Yil>=F6DzpOn34-L6D4b^El*Bjb41R$FsYOoVCfZm-a zbp^cuOEE$gFW8muOGQ{+QG`}OM(iI`%)i0EH;&lRDimcx@NqfTm*cB4h&Ri$bA^ZJ|p~HL)5=Vg32cvD6t6~r5Sgu^ysoyG%;Gxb8uMPU5N{#)V`4&~j znSV5#ABL=my`jzLhguPu_96bD+Terwtw``E!SgJbdVb|%SgM7yCmn}Stp84y!2RCC zIf`>!PO8+kWPE#uz2Y)Sz;tXpE&^3QsaZS|uNvfwpwu#XlY2*C?LwNnVMPkG$n?HD< z7C!~$+H`$C?fPDQc`UD6IrVLx+A@?raotPTMXJ}SLWE&9>-PVM!fbA6HQeQ0oJ98jnY*Zh<2{UF{X}(yGz_cFK5V*B~of8 z4{I{u%A7|&SW$ta2|$R!oHada1Wem46cApXPpnd0|fsbriZ~hF4|t z4wcj9E7qe9giOhs_@0F{Wh@p_z@N7LeiB3W)j+1|re*0-D*=fJyboGW7wltK4rUth zEZ?qg%7)F|sB}jk|2yBb#J@|G)Fgj(%D@Vo*tuODwwB!OhH?*p*58dX=-&rXE6}Li zeKv;6bzbaHf+^W5rn2+NLaL^L)u9gjwm5aDP}FdjgXFu&FYsvYP-HZJ?7FvWR+*Fl zhGCh7M8rsnM!vY6Mskj`d8v#VrAit2mPDZs@~k)4T!Wv&(LtrV-;WJ*JmjGcLWl1w zzzm>N_PeB5HAM&9H>xBF&^Lwk#&`qK#X5=nB?8$rnjD!DA7wV`rG)SwshUJ9vORz3 z*xDxXso>lzTp(f@>v8I1gYd~_=T2e@vnu7A(%WF=hUV#&Htx;zm z>&MvEtI7iWUewj&wJr5z5)&yL#rRqcH;qJ%Wdm?1_5vJI^=2L(zlo7b{iKt6#(z`I zyw|I(;|XSPLfTeSyxU`Ns<3eBnT)9kUg9rG;xAImTe%wXs4ZXCf`=7at4u7qNJ>I= z^1m&TSvlL^t=kyfq`h5D!vdlxAW=Fp6xT1aUT+bMN@%)4F;V_dZ$*h-fX~fjGj)z& zJqfTC??pS579LWcemFMdSsW<(O>nYJ)9yeoA{q6}(LZ!tfIvIq#a1C=x9DK2OrF^& zXCxdn)t7wT`s9y$5^gUR+x;HW!6x#UFwQHGSTd=n1zJl@%avLzZ_pt$5K`u6F)A<> zuvt}x4U~Gq&vL2|qTd`dtyG84Bf@b9i2?9wQE&ZuG!R1iYzjB4X%~Mde8+e{ih14r z$>{g^@8&Slu3+7a{c*%;g4Z8!U8n|dzER;#)nRYDuviT=Z*lz4e5s;nb?W(FZ>Mi- zr(G5JUQDR6QVrUhAI_|ivPWbzw2(_=rJ4Pt=h8KxHm1v_C5_GNJ5{;u4+l^0_TFH((zbX-qgp2fl5 zueD5wEw}}oh)M1*5=%4!v(8|?q_H5y0{XFBFg@u2J$86dXk-fs8*4MY&W``T5s9(y ziwveN>H6qHjOu!T`uzr)q6SE2A_Z%Ib*fn(@Iw8DvSgnfrE(|ht(7Uhb%>9(^m9z7 z0yH)`_Zk9cel4FgRQ@t;lEi30?h+?GNG&atbeG-Bvq(>@n7RURe2BZd@C-xQI1%ACZkGRkq=GpnnGULJLWMT88#dD?q$8J!HRZ}1W>6pHYK#99g&Hqi3n;|CgZD&<)*W#Ws8snCIPC=!2pZEd+ zEs^qeFcna7OPV z9UEeuq6f5)DXKI&Z*=bDrc6_vRLt9-<{h7jl^HbTpPyAGVRX3MfeNN6u{cAmFZ4jB z1&u`DoX+fhh!_tV!)`}U@VA#@nBAcgshFYtxGB)t9K=X?+I+Ck%*~pa7O`-i?Q^sX zdW09zwY@G0aH0M1?;r0-6n$W+TPc!Ugl3ITz@TXaW!ai_C^(^oUeu6d-P=ex@?H$umS=hZANMYxtq>{m z4ETa{Hb{+R$#mGD1E2TV(4xYbQH8f9GT{{WugUXyv&D0)2&{3EXuBTpW;c;gTI8fE zr?LsJ?VdFFuWuSSUy8a@F;eb)T;#ZrZIv1AJ<@Q?T-3U>C7M)5k<0cvVl~Q=9xNH$ zTP~Q#N{w?Kq!7|f3twZX*$ih1r=c7%fk9b&5n1%dgA^G`v0cl`GY5@#kA!g1%w=jB z3e-LKf6_5LY^;!!MmZvs4+bMPN?PLmlozB@BaPr%uR8oCUp>?3W)+UH7YUQJ=QbyUWN7Dn*9Y0L#KQdr-fxJ&~4oNTdx(DnKD=lHXrBi~SCgLQz7j`xp zusYaiVws}x#0n)Pnh8)+|KMqN|I<(3QOVb@M#d4zmdO)&58_8RQHi{J>rfI;1hW~jODF;|u|nx!0pEVb)}-lntXjH&?_sF-UgG0P z=W_}3R^;!6I7|>l8%Mj7Td{x)&}08M@lZ}i`qp1{l7nA_HT|;f$*M;9LYZnx2Et6q zY|z`!;ya6uVufbqD>7-b$UB)hVN$zt+gl8K6l5J+uxT(-gOVv2;~yo!bf$$`HU(VDm8eiGa0i(+RwrN1y$r2+w51*Y%tf1Pby*jjm0Gkzg)NV zG}>G?7;uZ+(F${lR!kGtdZ9*f5Ac?^cbnN7gkenn!>|!g9w+gw3^yZn+u;VQPra84mPdbPp;%O+hNNvUp+%dbBWUP_*3hD1y2PPlj3E^K*^lh8 zWqyb(R;Gp29Rjpn;+DIqClnLO<9u4olC8ruONm{3EC2^qwhw!&|X2SAXR!u#9A0V%kARY5buh33B# zhGTUv?(Y>_9oIAQ3*?P(w?Y3>W(&AA=ydOlOq0g5ugSrC zg3o|i2+cB~y3v6H$*u;of1c)tsQ}r=|DPs{&v8U@#Fw=bMr&B$r7qSx6 z0NunhT zW)>o)0nyA8-ZlB~t$)jpwEg&{6Mtb2wmRzns%v7+)$D~SQ_Qq;$;68aKi^y+Cw|1Q zt8Ipf4eou{ohaVl2Rdl5n; z^Z#J&O*qL+}j5alOJfZ8I!TOz*dwiPA)C-BCu59XMjO52Z$HW<|&>peae-5XQ55xYKg%GAL~__|EAa#to?BAt_jJibt&I z1;@-z$sM|^*yjI(HFb4Cc}Is+>At*}j02QjUwO;`G@4W->>4Yq%y<0ZP7i1OiWF3gy{Y zp_{Hg#TQv*{1z5u5hu%<2!L~7vQL*7FP1-<>-@}@)mSRm4e+N;l}c{7L)plc;rjuD zyS#i5OIC)(zq6NrOIR)iqD<45`w=|RqeX4SOEnenKc@{|_fviYgMo{SjOZaa-(fwyndnOb2AKcp&xJUg(F@lKo&d88(TUe;8C>`)$ z#G7-WP+>Mg+rWItcq05GKWeQhRyu7x*uNTL`dzc-htY9^8iviaU(1xGyH-FxwxN-2 zqY2|kS1>@a1HIZ@Y^s4xiGbg@7NB4{U-=bLEqD^b4?mmUw%S>5k=4^ji9VG*d2S3) zvN;|#?m<3ZNYwjNy*K;AM~$9{se+3Z+d#+dC@g6qBEDRJHSFqz8g9ruaY0U8@iZ`V zeA*;=hEW3THjDR4i}v@8%Pz$!5iT4hcWwO^%@r`C#-@{uO11d)PqNT>XweiTJrd6& z(vre$yoj%E$f_Stk z#boaD8pu|`?|wdCA^&$zOo(cw*0^tr0Axj+Zhv{U?az-H*ipj+#0dKaE!T zGjE^@tRbAakRNJBIC!|s=Uk*jgK6rwPUHj02G(-G{i-+g%$aiAmC41IJ(+w0gsa``-DzeQ}^yrF8X?QRGdRW7sZ*OLoRi`Zu{r);? z9AoT*Gl>yjv9B?G(u%i@M$4gIe>^@6%u*L}Rf=_DnqP*u$mH*VY`Y@b=bGfyPB*zPZ3p$-HfxhUiiiU=cBjx z_z%T)Lu<^*Nsv-c`4hLS6&HKQDiqILuR~Wi=kF z41&MSy3viwHx)bbzYc(}-{Ds%Ts1)$bDA4a7J56r9qx|(O%)@Gi57l6(nCEX{k1rp z-KW!6Im@!0Xk0?nbCYd6Sc-B-hAQSi6m$?Y3^Wp{6C@y+a_Q1RRsr>WqQjN-eXhE@ z=+t*rwPf@L?jKQHj}Elbu4p6%Bq9(eDB4>8yd&v_V-hZB^;>ugs z^({tfo2$aTDpvf17_91l5QFuzF|twY=I4(y0>s>!`abUEteE5bon_tKKl6w!nPo{@ zpY?sjCCtpiz+%33ufXdQ-i$e-(qTK4%zp=! z6>&QJdoLBHk-|d8x0moebm+bUmjFg(zYB_gH|`sM6i-O2e%_aBlOK8xGQdo-n{(z1 zIV~Qi->rrb-ZZ5f2|g+~QjR8&QGjQZStw)LAm@z%o*|Kqd>{WckWA?R8Au(|O2l=% zwTk~UkOU?8q;uAPa#WhNo(*@-pAiV*&+(RQU+@H#h-v3AL)W*gI+|@ZYOxFy^xKj} zia~sr$v4p}o-Kn>MK4+&FW-g&a2d|1#w`n2J)x5&p z0sF|>-_NCcurGR8{MuCMMCqLtWIE z#wwm+O-paC;we65qsuG)shfoYV{||+$VUWmjA&hSD`o^<<9?RR4ZEjx-J;xC^q>QeJ+f@+aKQ8=|sCxC)l**TG;Pg*_ib8j9;ECd0 zY7C~^8fC#8!&HI?6wHv@iJE))db$rmq?hTjX5p4vimjGBG`R}Y-ag+C9 zE6q9qi-=2PxpvHX(TFpVK)z0kwYP9qq_((5F*B%+Jpb0*gTw#w@Ns$xpm_P!zPqD@ z{f;Z8hUp^5AosU#RFc8m&LD9>7hY$rQYw=07+vooVU=___PdaZoK(w0g$k^xeR+}W ztJvbAp!ntgNd47(F*Z`&^L%=kZC{r}M_`v-wL_8tLPF$D`~#nk0nc@ncs5AR*u3ri|t!doO$4 zN}=>ER)%k$d-~MF{|wC!q^8p*3rc1tIO4qHcj;H@B{8P>gLUb3%@mRDEcq02IJI7> z6+sOKPHc}x-2BIPq4Y(A)#J+(aOIkcyn*A1`iULqBx3`K>T4N5X%Ci4qlS=0mP=WC zuW$TOx@nPd0|V1x%mA?uRpq@Kj$+>N~D9Fa%C zu{x#g_l?BS700UN5XJPqs`K4eA}$#2d5F_YYNEdsgzfI>B;ellyRn6#R90Y%`d3$A zyJ|+JZMU#5jH)l1LBZj`#W_HII%qN;LA%ag^h7h>svuwsUVV@GN#gY-7gg8{C8b4oO@c@j3)gNmI0N$U}7v>JQ@0_Ow-pO=E z@UZrprv`FtE^$~adT?T3KRb_5MxH! zA{nRJBS68q9GVD$IJcSu_6Bfo68HLY|LiZC6>Y%jP{sZ-_^-R$A`{z4Si)tq>1fro zZnS>e(->_t{NI;OHil1ZW1x+vav?bLypC_iGT!Sz;&r9 zk1=|sJ!ZkMBs%<*WdUx-kX5EgCsFb_Mpv-KUU_M<-xsg<)ulZ-h}kr6l)#p=^=gg@ zu}uUcC#pTN@RqyP5#`Ryr(PbT&NcLR3xyx5YUik+Gbk+GyFQE&Y}u($wr&0Co(y(Z zYe5dl98-a=n{q=(qSkgY7U0)=*|MjoNDdh`pED)LcY;V&B0@*Xpnrl;g@6;=!Vd_o zD==sJ);AZ*E0=x6?!KwlX~csza-gMj4QfZIKsOUSx*=38nS!FhHzp94T{s8D;K4+r zrdAC8MmumgR1Hf;HB*&ru}Vgi`Zbg_ITQp6@7mn7PiTTD`MFP72*AlzqP2ZOC3t%u zC+>R@mwj>ct*Ryx1;yy;)S>CTQ^d>O5^^Hp`42u!7WB}OCNUu(tykk9of_Vlmi$5N zGxp}9s@2e{;hE|!8@HJ|q>j_RBYIO7=CQdemqzU>NJ+Lmz!H{C()O1A5-4RPk5#XV z_sH3gxI>Ic^d`L_tQ zyg{srb>CzZbaygW;aQ+-;SYMYx1}3LRt)Qw=vt*%zoBb(DMDnXJ3|lL&i1_`5PWpI zCHS+QOZH89eHhni7&OjPk!>cm@Wf z_T)yI41Xw zewYuc99TR2bERkfI_DTXur|m#VLlh6#CqMfPe5Z)x-;FiPjJL^WwZYza$iRJJ87PW z@R&@%%^wwx$Ytk|b!m5JI5kT1SLQf11bT7+q_!F`iB*OvkaKRNGNvfNaptnGRs?4= z+I>@Mmn@_&7sq7J-`Zz+MJ39xOtlc;k`A1?dhpNGPwU+iPB?Ynfg;#D_6_u^Ds7o@ zh(|o+DAvsB_-HBpBo`@}J~?Fd`mzvJON<5>;TKm*ex`HAq%`#qDq3qQ}k z+aCi7CIdwEI&pMll#U&!U;5kz++hh$<@F5-@X;ipw$Uu}Mq*-bU5~k&>?^h8I84Dk zPDIW!pEQ|M7?(hV&zjtM!3-AE-mN+`v`peaIYg@hkKXdjm-`H0CaGk~{=W#_$CW

8{nO*{T<5MEh-_B(1IX>LhkVv&P; z%-Yt|tkC%a@xIWUu046q#1gc+WN6~&yliNab`^!6eehpPsD`Nfj4<1CD+^GoIhA+p zf7A<5z*@1Je)fhZP*L;iCDn-MAuhX?!#u-p+TG2!9^oS<5~f|7GKGOeLG}yKiWk4D zMgM(Pq>(B={yhU%P=0@xOb~8-P*dhV=*`7dX1f0U)YDRNs2?psWJtI5Ojo{T&?<~x zP<|B?j+6%}Yozg5GvM*C9Pl)th&M5!AE4ktIV^Ygn8l43$q`W-bXsiesH4cl%m9Vz z89B;|xHLuEI6CXi)QOb|WvP)>ttCNOTq=|42@=K+qWAK)i5<%z3SDP181h^wZBow|IYesWR z1%~Cy73f?vaK98gAd9-!kHE6S&}jJ@ROa{R4aAJU5!Xk=J=9~(D~pa>_#$%B#<_s! zluUnO3Dv7nad-?A)bc2WWh;PUWQxj z6K5%=B$9Cwmv#a^EE~V0E`R5 z6N-w^Z1f5>%&-l;Fzs|>!Tmy&E#GbIXL6AIN#uRqj)OcbxPETDl*}{+E}P ztQ?sR^n4`@f+Ph5)ieRx9=osms%fpSSbeC=&{YO%3g6{Ewg~n>)!V=6@NCJv=XoTz3)W^6(VCu@hG?r z?TD=YT=;y2(|0G`ObXg{JJkFK^!OXjxp7v3aAX}a5#hTJRX{-FS}t!Mi{bO}GIQ&b zJ1}$ELQ-t*W@q1PBOgE?%fD%Zv8NPGrT;XjSglL7`SIy5=&|tiS=zyV*%8GSr3+~D z!r_@i4#7bPQSEXtL6N$#EorrneR_2*HM)Z6aN)$k77)Hv4=!r3o!;VcfrZCrA#&*y z$LSc(=_z3Z#Rfv>s7-UV`Fe=RcaAKGASf}Akdb4P766e*6dST#1>2WMu=`UcJQU-U zIoumnpS?=NVaS!*r0OgBxwQWR^1%NmA^&Rke+l`b`u2A44)_^xbv5jI_~{T<27%tc zk1JX3sjpMLFfU-W;BbEGUgKS#pdiS7l-&yR=@LJ19!!I&^q|Z=HxN?CfJBn_76Jv1 z5TyJYUyfJXO(-?R6;h2Scc{;d7Kiv$@ih=rNW{wA5jfblobiptW+IiBf$*;(aVSc(gC1 zy7!I>Jrh!c<@-e40bTGMr2(hm|ODK?a^DSgBLX{hRp=_1?J9kU5F z7P0VBVCQ8|`|8&XuR`9?MNn+Lak!R>>Fpjgv> z@?$qhRpP_=7oV1#*SiUvaaDU)3%A<=aR;t1fe(b(CW@Cj;g*GFYDZAyBl zho-fzkE##(PmQ~riLf0)Xccqtr>chYLEFPZxvp`l5uNV$$T7tkz}f(ea5ygTBHCMf zE?{=gVR*9@p5EAufU&W0CY8zT3G>-jbr0nfiv}HP7E+})eFq$B3&oiN^=tm%Y)bxG zA2&L|=U1~ADrgb-rGn=p)Z)97$zYbR_k69V=;=|V2O4b8HTyz^O%JJ<47&L{i~8UH z1T2=0Y|q+avBX^u0`^{4dGB&41DcC^t&4IupWKQeC$Yy)5`QfFmZg_=?XK7Q;bCG* z4SXwQL#>oh)o5^4vBh7QdlJM_2|DlQ0`0eBaG6E*Xrc(pVP}y>|96bR&2$G!(2A(p zxfg>Y`_N2D7_@g#fg&zWWAkNH2{AD6WkD&q>oZN=>MMX(_YEaPID>&aDN~F;qAxrl zRdSz&JxNcCA+s$Y*J-@a`Zd(8#J)3>t8I3{;Pxur7{Cf zeFirxh;TqRE)-_%7u!j^xzq`JK~4@tz1!n53(;O$u`at+-=~mw2sf72YSMmZ&Z@c8 z^w)mZNDA7%heFP;-c@~9C|y@P*~bJEKT+P=`!+wizDVMr(lE{zJR1)CYivhmaGuz~ zcW?4PoM>l%EVzbXw2X}lGjuajQHUD_u#j(<<_S_KO!JZoQxh|xkO*GweV={Euwdg* zF}vdF%y@vDaB#o*3!OPs2MLx44vSguErCb@|H0Ncr-1+l_NzY5>J$pdXr2=NI3d9Z zrRN3Xk$!w`$8(}gb8T3E#w z^)LgRxST#r9&R;w62}c7PX!C3a1DXU@z5@K3M$H8ONTg@P=_`+;Fld|vKY&&zLPXO z;{aa7I18P=O{M=@laX8|XVvo8sqahc6uFglGZzpg!JI_uS!u(p@xMmNQbh9$p&4hX z3LF%#N_YBxlgsSpZe-TtT=dB9!Ah}~L~+k3XOV`BF{-Sn!weY#{|-T&s~%eziL5)S zwi3tY2iQhV2GB|E(lJSUPI73`X%9Ha*9X&Soz?iPNYmN1c752696F|G zxTSI9>oNrpzugPKDS&4M>_fw03E(Dxf+OflPC^>95Dl%;aGdA`Q$(}Nf~KQAzH7jI za7=3sbY*$*g^Ha52mTfeH<; zaa_}qF_dS)Pc2l>2~#6PFDSvY45IubGN?1h9r>BijhCD_Fj6@7?nx|K9^_;~m!5Qt zj?o8dp&Xh|{i*xQaC<(zC*q(b{Z>);&eIb*HMNVB8&eQP*R zmxnU<)(pB2OL}P6P5~N{I6^i=il`}6wYWDM+VYrxnO{YTNGp=%S`Tmk9K6d*P=N)> zPo5;#ncs9oh4Us+3Nz^9g=SyRLP^^Ex=_iqc^d*%Y7g?FVai|30~%%t<$_ko3IcGY zQe`Y%U@u941PMn;f>R126M-<7{Wx*va4|hE@ca{O=v$0rIkYiGwM{?!qx@nx#6#>; zK336INjvvnrqQ=ZTHv#6a#V3YH4 zrRwEujls4dEvY9eCMhM@UL6$SB%VNoHk|l+q6=*axVT6(U}c_x2*iRAKrS-SlD^<( z(Y12y7+;wv}Eclo{>C+(Iia)PViBh zlA_ck4CjTJ{;Wc*l7nn()bV>Pi!P!Wl2)278_W*TNkMW*YKpMhk;*2rj^*4Wc5+nU zMTsXs3fQ(Jb(?E=UOsK{by*EwlXj(S z4{!VQ05~49S@9UznPYTH7=mpz%y7|2WmPPQ@v7W6qX}ivqYzTrnIi5at2vKf4TPTU znMArLgHG+4dV;=})5i1cH;cb~#gGr5s%yr9ie`0oxK0kcRJRW=<7P{cq2wgXA~9*j z$L3deA3?|vyH$?x?8j-pg1YAMGIkQJXX%E?^*X@4*X#Fezv`I<=oF*6tUmwjuPh^G zyGOIQ@zv4s=KZfsB#)3q#?DFm>HYrCpRPuWYU0DhA`7v%r$ zyW-2-SJlSl?wVrD^KybA@6z%0!QtWaoBM{}L}3}eoQ)`&_T!sBuS#0HcA6u<|3KN9 zuZ#b*D~&z@9bbuNn(V<902mjb5(DLlxr_N>4%5#<-ICZ;Ru7^?=5GrW?9=MZ-(CfZ zjfW;YqSn%o$E7{9ugiuH1RqH<+- z!~W{ZV-AlEl|m|B3XNsbXH#p78FnxJZ5AsRRVAwn&SF^@Ig?o|iivJH(MEP-@h%Qg zTiiK}RCa2>$Z-QfO2!Yv#Ng`eW;f<&s+#Y88J@V>i!q*RL)FwNu|8OTdDfueO!+vY zeEu5$PoSZkjlV)E7mA!FT1FWlx)^EgC4JY;UH;RTI2DBp#Qwj@r#Zbp#r{^O{q8iT zps-zjw;K;X-FlRDfk5lqBTv>mN|2RVeKz)HtF!tdj*FG0eWw;&xv+AcG++F0rSnqP zuKh@yzP%zoxQ%<7{liBg>EBCF&y&~u%QoeT*<4PUV-nAq6&?Fdb!;fzyeadBb-s(w z3-(99;=Hd~?374VKB@#PqKcb@2=5WU;$t_~CTj%z? z|MRxowdxYsexvU1k-Et*uU?ySlC9>#)VULLj(9MIg?Zh6+GC^t?y~nJ7Ll;dO`8mq ztvQ~ovap@$HU0Fd!;9C;R9q351za1N6!w-$WX5k=%r6ue z+tu*-#};|1D`(efL?2n7QrzC&oA=N8p!(ym%j%E9)^^_AuwYV#_q~}FEB5r{zZd(y zZ#I4W^G7HB&Dxu37w+G6w=$1vCM@cPIa zW>A$sdG#ED%^?&2u&~}at5e;uIdqyKBTM5Yr;C%jrt8$dTynyA%O%a+*Qx)4?#+#P z7U^?HD{;=z)O|;1#D9LQ9KrtFP^H&UnNxat<>X2GlXOn8MGLCCL?>y9M@?M8Yg!z- zRP~lJi#1mJv%i-GZ~o{sY4yvTkJ+CDS*5u+M0+=h+b|UP^NaYDYcEa94*6|c->G-{`oHC$ zE`RoPe67C6*3I9fM)4mn1H=FS%nSkEj7+)=BEY0P^9(2akdevPW(F{(O;(@f#N_Ke zxzJmDa?>m=#)QdhXK6^o8&+xz;FCyzhmk-*;p7jq>=?gH)}QUp_;hmlY#SEeE(V6l zxm|LTug(^b24(n1K&7F;Odn5|!RhI_GHPEn|K(zuW2HH>dn5)e8bp}Wf0I8fkMgRZ+ delta 17742 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 Wd=scv0L65t$u4u1*?!Id2?7A!G&VB; From 8ff89bdf2338e033664072ce22c66a6870437c6b Mon Sep 17 00:00:00 2001 From: ndbs Date: Mon, 13 Jun 2022 17:16:58 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E5=BC=80=E8=AF=BE?= =?UTF-8?q?=E8=AE=A1=E5=88=92=20=E5=BC=BA=E5=88=B6=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=95=99=E5=B8=88=E4=BF=AE=E6=94=B9=E6=88=90=E7=BB=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ClassPlanTeachController.cs | 75 ++----------------- .../StuScore/StuScoreBLL.cs | 23 ++++++ .../StuScore/StuScoreIBLL.cs | 1 + .../StuScore/StuScoreService.cs | 41 ++++++++-- .../TeachClass/TeachClassBLL.cs | 24 +++++- .../TeachClass/TeachClassIBLL.cs | 2 +- .../TeachClass/TeachClassService.cs | 26 ++++++- 7 files changed, 112 insertions(+), 80 deletions(-) diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs index a1c563d14..679da222f 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs @@ -22,7 +22,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers private TeachClassIBLL teachClassIBLL = new TeachClassBLL(); private StuSelectLessonListIBLL StuSelectLesson = new StuSelectLessonListBLL(); private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL(); - + private StuScoreIBLL stuScoreIBLL = new StuScoreBLL(); #region 视图功能 ///

@@ -199,80 +199,17 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers } public ActionResult QzSetTeach(string keyValue, string EmpNo) { - var entityList = teachClassIBLL.GetTeachListById(keyValue); - string Nid = ""; - if (entityList.Count > 0) + var entityList = teachClassIBLL.GetTeachListById(keyValue).ToList(); + foreach (var item in entityList) { - for (int i = 0; i < entityList.Count; i++) - { - List ssList = StuSelectLesson.GetAllList().Where( - y => y.DeptNo == entityList[i].DeptNo - && y.MajorNo == entityList[i].MajorNo - && y.F_SchoolId == entityList[i].F_SchoolId - && y.ClassNo == entityList[i].TeachClassNo - && y.LessonNo == entityList[i].LessonNo - && y.CheckMark == "1" - ).Select(x => x.SelectId.ToString()).ToList(); - Nid += string.Join(",", ssList) + ","; - } + teachClassIBLL.UpEmpNos(item.AcademicYearNo, item.Semester, item.TeachClassNo, item.LessonNo, EmpNo, item.EmpNo,item.Grade); + stuScoreIBLL.UpEmpNos(item.AcademicYearNo, item.Semester, item.TeachClassNo, item.LessonNo, EmpNo, item.EmpNo, item.Grade); } - Nid = Nid.TrimEnd(','); - StuSelectLesson.DeleteEntity(Nid); - - List TeachList = new List(); for (int i = 0; i < entityList.Count; i++) { - var stuDataList = stuInfoBasicIBLL.GetAllList().Where(s => s.DeptNo == entityList[i].DeptNo - && s.MajorNo == entityList[i].MajorNo && s.F_SchoolId == entityList[i].F_SchoolId - && s.ClassNo == entityList[i].TeachClassNo - ).ToList(); - if (stuDataList.Count > 0) - { - for (int j = 0; j < stuDataList.Count; j++) - { - StuSelectLessonListEntity TeachEntity = new StuSelectLessonListEntity(); - TeachEntity.StuNo = stuDataList[j].StuNo; - TeachEntity.DeptNo = entityList[i].DeptNo; - TeachEntity.MajorNo = entityList[i].MajorNo; - TeachEntity.ClassNo = stuDataList[j].ClassNo; - TeachEntity.MajorDetailNo = entityList[i].MajorDetailNo; - TeachEntity.MajorDetailName = entityList[i].MajorDetailName; - TeachEntity.StuName = stuDataList[j].StuName; - TeachEntity.GenderNo = stuDataList[j].GenderNo == true ? "0" : "1"; - TeachEntity.AcademicYearNo = entityList[i].AcademicYearNo; - TeachEntity.Semester = entityList[i].Semester; - TeachEntity.OpenLessonDeptNo = entityList[i].DeptNo; - TeachEntity.OpenLessonMajorNo = entityList[i].MajorNo; - TeachEntity.LessonNo = entityList[i].LessonNo; - TeachEntity.PartCode = entityList[i].PartCode; - TeachEntity.OrdinaryScoreScale = 0; - TeachEntity.TermInScoreScale = 0; - TeachEntity.TermEndScoreScale = 0; - TeachEntity.OtherScoreScale = 0; - TeachEntity.TeachClassNo = entityList[i].TeachClassNo; - TeachEntity.LessonSortNo = entityList[i].LessonSortNo; - TeachEntity.StuSortNo = entityList[i].LessonSortNo; - TeachEntity.Grade = entityList[i].Grade; - TeachEntity.StudyScore = 2; - TeachEntity.TotalStudyHour = 2; - TeachEntity.IsInEffect = "1"; - TeachEntity.IsPitchOn = "1"; - TeachEntity.F_SchoolId = entityList[i].F_SchoolId; - TeachEntity.InsertTime = DateTime.Now; - TeachList.Add(TeachEntity); - } - } - else - { - return Fail("设置失败,未发现相关学生!"); - } + teachClassIBLL.UpEmpNo(keyValue, EmpNo); //更改当前教师 } - - StuSelectLesson.SaveEntityList(TeachList); - - teachClassIBLL.UpEmpNo(keyValue, EmpNo); //更改当前教师 - return Success("设置成功!"); } #endregion diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreBLL.cs index f311eb7a9..cf4e029e4 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreBLL.cs @@ -334,6 +334,29 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } + /// + /// 保存实体数据(新增、修改) + /// 主键 + /// + /// + public void UpEmpNos(string xn, string xq, string classNo, string LessonNo, string EmpNo, string HisEmpNo,string Grade) + { + try + { + stuScoreService.UpEmpNos(xn, xq, classNo, LessonNo, EmpNo, HisEmpNo,Grade); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowBusinessException(ex); + } + } + } /// /// 获取一次补考名单数据 diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreIBLL.cs index 7e987896c..453da19a7 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreIBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreIBLL.cs @@ -195,6 +195,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration /// IEnumerable GetAllScoreListByStuNo(string stuNo); object GetScoreCharts(string academicYearNo, string semester, string classNo, string lessonNo); + void UpEmpNos(string xn, string xq, string classNo, string LessonNo, string EmpNo, string HisEmpNo, string Grade); /// diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreService.cs index f61e58ed3..7b0921985 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuScore/StuScoreService.cs @@ -493,6 +493,31 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } + /// + /// 保存实体数据(新增、修改) + /// 主键 + /// + /// + public void UpEmpNos(string xn, string xq, string classNo, string LessonNo, string EmpNo, string hisempno, string Grade) + { + try + { + StringBuilder sb = new StringBuilder(); + sb.Append(" update StuScore set EmpNo ='" + EmpNo + "' where classno = '" + classNo + "' and Semester ='" + xq + "' and AcademicYearNo ='" + xn + "' and LessonNo ='" + LessonNo + "' and empno = '" + hisempno + "' and Grade='" + Grade + "' "); + this.BaseRepository("CollegeMIS").ExecuteBySql(sb.ToString()); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowServiceException(ex); + } + } + } #endregion private static HttpClient Client; @@ -1929,17 +1954,17 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad strSql.Append(" left join ClassInfo ci on bb.ClassNo= ci.ClassNo and ci.CheckMark='1' "); var result = this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp); - + //计算专业排名,班级排名 if (result.Any()) { - var temp = result.GroupBy(x=>new { x.AcademicYearNo,x.Semester}).Select(x => new StuScoreEntity() + var temp = result.GroupBy(x => new { x.AcademicYearNo, x.Semester }).Select(x => new StuScoreEntity() { - AcademicYearNo=x.Key.AcademicYearNo, - Semester=x.Key.Semester, - StuNo=x.FirstOrDefault().StuNo, - ClassNo=x.FirstOrDefault().ClassNo, - MajorNo=x.FirstOrDefault().MajorNo + AcademicYearNo = x.Key.AcademicYearNo, + Semester = x.Key.Semester, + StuNo = x.FirstOrDefault().StuNo, + ClassNo = x.FirstOrDefault().ClassNo, + MajorNo = x.FirstOrDefault().MajorNo }).ToList(); if (temp.Any()) { @@ -1976,7 +2001,7 @@ where StuNo not in(Select StuNo from stuscore s where s.Academicyearno = sl.Acad ii.RankInMajor = temp.FirstOrDefault(x => x.AcademicYearNo == ii.AcademicYearNo && x.Semester == ii.Semester).RankInMajor; ii.RankInClass = temp.FirstOrDefault(x => x.AcademicYearNo == ii.AcademicYearNo && x.Semester == ii.Semester).RankInClass; } - + } return result; diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassBLL.cs index 8e07b0437..7ffe51eb1 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassBLL.cs @@ -203,6 +203,29 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } + /// + /// 保存实体数据(新增、修改) + /// 主键 + /// + /// + public void UpEmpNos(string xn, string xq, string classNo, string LessonNo, string EmpNo, string HisEmpNo,string Grade) + { + try + { + teachClassEntity.UpEmpNos(xn, xq, classNo, LessonNo, EmpNo, HisEmpNo, Grade); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowBusinessException(ex); + } + } + } /// /// 保存实体数据(新增、修改) /// 主键 @@ -226,7 +249,6 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } } - #endregion } diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassIBLL.cs index 27aeb4551..b84174ffa 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassIBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassIBLL.cs @@ -44,7 +44,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration /// void SaveEntity(string keyValue, TeachClassEntity entity); - + void UpEmpNos(string xn,string xq,string classNo,string LessonNo,string EmpNo,string HisEmpNo,string Grade); #endregion #region 扩展数据 diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassService.cs index 34b009e87..a9155f15c 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/TeachClass/TeachClassService.cs @@ -209,7 +209,31 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } - + /// + /// 保存实体数据(新增、修改) + /// 主键 + /// + /// + public void UpEmpNos(string xn, string xq, string classNo, string LessonNo, string EmpNo, string hisempno, string Grade) + { + try + { + StringBuilder sb = new StringBuilder(); + sb.Append(" update StuSelectLessonList set EmpNo ='" + EmpNo + "' where classno = '" + classNo + "' and Semester ='" + xq + "' and AcademicYearNo ='" + xn + "' and LessonNo ='" + LessonNo + "' and empno = '" + hisempno + "' and Grade = '" + Grade + "'"); + this.BaseRepository("CollegeMIS").ExecuteBySql(sb.ToString()); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowServiceException(ex); + } + } + } #endregion From f02932a439c066fe8fb75422dcc2ebb0864fed14 Mon Sep 17 00:00:00 2001 From: ndbs Date: Tue, 14 Jun 2022 09:19:20 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E5=BC=80=E8=AF=BE?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E9=A1=B5=E9=9D=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ClassPlanTeachController.cs | 8 +++++++ .../Views/ClassPlanTeach/Index.js | 22 ++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs index 679da222f..f0cfd779e 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs @@ -70,6 +70,14 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers { Pagination paginationobj = pagination.ToObject(); var data = teachClassIBLL.GetPageList(paginationobj, queryJson); + var studata = stuInfoBasicIBLL.GetAllList(); + foreach (var item in data) + { + item.StuNum = studata.Where(o => + o.DeptNo == item.DeptNo && o.MajorNo == item.MajorNo + && o.ClassNo == item.TeachClassNo && o.Grade == item.Grade + ).Count(); + } var jsonData = new { rows = data, diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ClassPlanTeach/Index.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ClassPlanTeach/Index.js index 3ec306776..9c578defe 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ClassPlanTeach/Index.js +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/ClassPlanTeach/Index.js @@ -185,12 +185,12 @@ var bootstrap = function ($, learun) { } }, { - label: "专业", name: "MajorNo", width: 100, align: "left", + label: "专业", name: "MajorNo", width: 200, align: "left", formatterAsync: function (callback, value, row, op, $cell) { learun.clientdata.getAsync('custmerData', { url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo', key: value, - keyId: 'id', + keyId: 'majorno', callback: function (_data) { callback(_data['majorname']); } @@ -198,8 +198,9 @@ var bootstrap = function ($, learun) { } }, { label: "年级", name: "Grade", width: 50, align: "left" }, + { label: "课程编码", name: "LessonNo", width: 200, align: "left" }, { - label: "课程", name: "LessonNo", width: 200, align: "left", + label: "课程名称", name: "LessonNo", width: 200, align: "left", formatterAsync: function (callback, value, row, op, $cell) { learun.clientdata.getAsync('custmerData', { url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'LessonInfo', @@ -213,9 +214,20 @@ var bootstrap = function ($, learun) { }, { label: "人数", name: "StuNum", width: 80, align: "left" }, { label: "上机课时", name: "PracticeHour", width: 80, align: "left" }, - { label: "课程区别码", name: "PartCode", width: 80, align: "left" }, { label: "班级编号", name: "TeachClassNo", width: 80, align: "left" }, - { label: "班级名称", name: "TeachClassName", width: 80, align: "left" }, + { + label: "班级名称", name: "TeachClassNo", width: 80, align: "left" , + formatterAsync: function (callback, value, row, op, $cell) { + learun.clientdata.getAsync('custmerData', { + url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'bjsj', + key: value, + keyId: 'classno', + callback: function (_data) { + callback(_data['classname']); + } + }); + } + }, { label: "教师", name: "EmpNo", width: 80, align: "left", formatterAsync: function (callback, value, row, op, $cell) { From 3b966c6b0904cd968881d09d6895b2b7eda32ff6 Mon Sep 17 00:00:00 2001 From: ndbs Date: Tue, 14 Jun 2022 10:15:27 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=BC=BA=E5=88=B6=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=95=99=E5=B8=88=E7=B2=BE=E7=AE=80=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ClassPlanTeachController.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs index f0cfd779e..192479ee4 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/ClassPlanTeachController.cs @@ -214,10 +214,7 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers stuScoreIBLL.UpEmpNos(item.AcademicYearNo, item.Semester, item.TeachClassNo, item.LessonNo, EmpNo, item.EmpNo, item.Grade); } - for (int i = 0; i < entityList.Count; i++) - { - teachClassIBLL.UpEmpNo(keyValue, EmpNo); //更改当前教师 - } + teachClassIBLL.UpEmpNo(keyValue, EmpNo); //更改当前教师 return Success("设置成功!"); } #endregion