From a69429b05fcd23977600ee2ca77f48c8c106c9ff Mon Sep 17 00:00:00 2001 From: anhtunz Date: Thu, 26 Dec 2024 11:31:21 +0700 Subject: [PATCH] refactor(ui): update DetailDevice screen layout --- assets/icons/empty-battery.png | Bin 0 -> 5273 bytes assets/icons/full-battery.png | Bin 0 -> 5331 bytes assets/icons/half-battery.png | Bin 0 -> 5327 bytes assets/icons/humidity.png | Bin 0 -> 10953 bytes assets/icons/low-battery.png | Bin 0 -> 5336 bytes assets/icons/signal.png | Bin 0 -> 7188 bytes assets/icons/smoke-detector.png | Bin 0 -> 19520 bytes assets/icons/temperature.png | Bin 0 -> 16029 bytes assets/icons/volt.png | Bin 0 -> 5928 bytes assets/images/smoke-detector.png | Bin 0 -> 135089 bytes .../device_detail/device_detail_bloc.dart | 11 +- .../device_detail/device_detail_screen.dart | 816 ++++++++++++------ .../devices/devices_manager_screen.dart | 1 - lib/feature/main/main_bloc.dart | 11 - lib/feature/main/main_screen.dart | 526 +++++------ lib/main.dart | 5 - lib/product/extention/context_extention.dart | 5 +- lib/product/lang/l10n/app_en.arb | 1 + lib/product/lang/l10n/app_vi.arb | 1 + lib/product/shared/shared_curve.dart | 30 + .../shared/shared_language_switch.dart | 127 +++ .../shared/shared_light_dark_switch.dart | 212 +++++ lib/product/shared/shared_line_chart.dart | 75 +- lib/product/shared/shared_pie_chart.dart | 14 +- lib/product/theme/theme_notifier.dart | 11 + lib/product/utils/device_utils.dart | 56 +- 26 files changed, 1231 insertions(+), 671 deletions(-) create mode 100644 assets/icons/empty-battery.png create mode 100644 assets/icons/full-battery.png create mode 100644 assets/icons/half-battery.png create mode 100644 assets/icons/humidity.png create mode 100644 assets/icons/low-battery.png create mode 100644 assets/icons/signal.png create mode 100644 assets/icons/smoke-detector.png create mode 100644 assets/icons/temperature.png create mode 100644 assets/icons/volt.png create mode 100644 assets/images/smoke-detector.png create mode 100644 lib/product/shared/shared_curve.dart create mode 100644 lib/product/shared/shared_language_switch.dart create mode 100644 lib/product/shared/shared_light_dark_switch.dart diff --git a/assets/icons/empty-battery.png b/assets/icons/empty-battery.png new file mode 100644 index 0000000000000000000000000000000000000000..2d73be3724ab1dd90f275642ff2d2f3244224479 GIT binary patch literal 5273 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 EKNLv>RR910 literal 0 HcmV?d00001 diff --git a/assets/icons/full-battery.png b/assets/icons/full-battery.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fbb0c03055dcb88172510c28e4768f40a445a8 GIT binary patch literal 5331 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 bx@@p|*qkSQ=H`mL(1Ma52P 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 IUB~DD1H{nWmH+?% literal 0 HcmV?d00001 diff --git a/assets/icons/low-battery.png b/assets/icons/low-battery.png new file mode 100644 index 0000000000000000000000000000000000000000..23d48f3323da6a10361497e8842c2e03ab133e58 GIT binary patch literal 5336 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 literal 0 HcmV?d00001 diff --git a/assets/icons/smoke-detector.png b/assets/icons/smoke-detector.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2ba4150115edd99eddcf7a3f5707efb282b4fa GIT binary patch literal 19520 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�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 literal 0 HcmV?d00001 diff --git a/assets/icons/volt.png b/assets/icons/volt.png new file mode 100644 index 0000000000000000000000000000000000000000..507de0de3e958b20bdf24e8edff11a641064d8ed GIT binary patch literal 5928 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 literal 0 HcmV?d00001 diff --git a/assets/images/smoke-detector.png b/assets/images/smoke-detector.png new file mode 100644 index 0000000000000000000000000000000000000000..9a75903b0a5b8f1d61da41e8301b8979e9cbb555 GIT binary patch literal 135089 zcmb@t2{fDA*Ek$Aq2`#b7^0?_m9}O<&=@0$As01Pq?3}SMYS4Lgc?d()R+iK&>G_2 zq7&*0MI~r)-P;KbjrLcR7Hz-W`+wi}`+sYF>%Z2w)_0zjhV~Cgcf3+3 zCZ1^dKXRN&ypR@uHX$+1D&c>%N&B}AL5OcfNR3TClb8TIm2@^WnSeW;93POFkR1De zVDDYaq)lERzq9#3_#`oh0VV>hX3Lya=Hr= z+3+Jwjh6Qjm7I6mKmP<=1Bi)=0{>T$7XBy#fztnn@-I+`CM|v708sjXv@}p!L`+;< zQbH0aDG3zT9r*uVem(&xNlOc-qnHQ;AgUxHrX=$7DL@AR5EIt?Q~niR_$4ALCN3c< zB`pIK!b24QfryHTii?R$2`>@QKX4^+31t<1n^;Lzm=p+kP8wo+wXE?!9wD6rGHM2K zsU+?p)JVzR zXI7vsr<2F7j+uI{!{(cZm=Ym*>tL2fg+huZmY8jM^>!>EdsmEJ-s4hjS%Bb5lXnzF z^DQi&d9-%#80mVG1&F9p@-a>p;Ce`*``EBiwJgQg!jjBlKOAbxXG+EKDrUptWc($d zD#=Qojq?Z`6SDy67b{&hVIBbT!A!vv+_!jK)gpk4)fk;O?!-aCfsj5WmwR?SvYm8T zP}8;;&2l6rwU$}2?!E`Ddx{LPeBpq>L2FF1$QG6qc!Qyn%KU;pg^I&B&~pEIAUX=l zkmC!?{1zeYYAuUSYG#YX&h1BBiKF>MW?&iike7sy4-IC@8=$^{BdXxkE`)`*U2A~# zvRbo-OyJB|oMEUjjU{()afE^u#cfq7G)l(p`R90(t6jN}Y=o4z47t;KJpg&YIx`ns zod{-ma%hn1g2FNf@{Y)mKXuA-mQ_jAGD1-kw(u2AmW6CNUOPtWL=CH&)*aLvN>yV% z<-e^o4@+iy*!6rDMnp^U%10YFqxEA}Uunj>)!G7)?-=G$a(lB%~Gy*K0)> zDlR{S3LP9*+zUn0DnbLFb?wL?WfSMv*oNx|Re9QhjWQbh|fs=1O#ot?XrYvYo`&kV4B+wad| z=rFNP25{v}w-k+_Bz1qZS_P>IWQx>7yADs~vZN%*s42R9frN-ua>tU2ya%`t9>_Xr z+~YWeEpchOckC`cglYY;La`l8$%hjyEVEloo3$Iv)hG^V*V(ykC`^UdmDPfg_)Gar zUd#m#qr!#=L^#w)OGUh9=%Dm~NkS1HF}6#4ihNB5F0lrzS+NJ2}A3Z+KSR&9xkf z8_d^g3JCL%PU)7yx0uYDSi1MSj!{T;vAhaopwd|M8+q6qNsmEnS-3o9&}W*{i#DYb zLd<+2p1r0Z^iUP_q85CppyNa}$&9Uw%abhs=*TiuYd!$cy}y=*;HE5_HHtRtB)2#m z_jo<*qK0Q{M5!t>WbFi|fm5aKA+_q##qwO>)j3`+cOj}iHiwQTJj#8#;N;l0EEg0b za2_~k+iE)NTtJ>x2DOL}P)8R+uIm(gZD$qc#lmnC@=_j1LP++EiYK9q+7HF5HC|`r zcZW&E+t{SI_{39NN(V#zy0#1Q=62Li7#7@d3;{NSxtZiveLdlN0f$&I`3P)Y>5yPO zC`o*%BJr?}#4z$ERZ@qo(#Dbm*)}UH=FqN^4rmfPt(P4E3CA!XQcOjZOvM(E&I@$6 z4#@@=&ra(+9i`)1Wjp64+!bd;YZ`pTRU5bJ zNVR6=$_=UV1F)1g16-D(t-xQkPaQrNyX9lbRjI~C4xH3O!ISq?)?vZBrV?b``%Emc z)yl0Y6GQE}MV{fyXM3`B8bA(LD_a45I@8;&N3Fe6AH0cD$LC46Tj35QyO=fNp{Mm9 z>bi^P{bv@!ShdemXRC0xV5P`OGFEBHm!?|M39L_ zd|5iOh8g^@B_#_)Eq>nB;VYHA6#~@XLN7TUE^FTs3BFPY(cMLSMTZoRq)ZhaV$!=*E0`CqQ0ga)^_qoRa%zVWeZ%Nc`;Hc z%DTR)YT9P%p~j5?D80I(r7&OpXl~`*r{$xDdDO5 z3x*bQTsRjN%aOuaz$%Su#TgJnI%z-;gf3u>6*Om9mhv1Ob-0A4&XuYiVfz!pauWY_#O}j(YZDz&E*`SBD?FBml1HJQ;PZx3O(66C4?QgX>TUq>wreIaXTvA}d2w*v*a}o~Y5$-sp!0Hssz9FB-SSimo#g--GCSd9X%v(zhMIEnwL?VJ z<}6$>3A7zCi)zBCAWBv#bV3_BajFF< z;PPSf-!wMw1UUM3G;*SJ+?!lH`QiGWI}~axJo9C3=PV-MzN^I)PiBPNzTbxqOG*tN zYXi9e2@GvoS1A#Ww)`V`YGyc`fYa0Pz7RcTR^~3zj}q-a)Jl zJ|2^aT3|6fsesjzb7g7`4~EtwMsce4eqHD%sj4Ke;LuiTl_-1HwaDYBql1L%!x4Of z7@x|*0aJWKO)^Y#lb{UMoRnpY(44Zv+SCSfQwq#ZW;G&@$6)4Qg2SbNHFVr{J^Df( zuHxhMV6~b&+f=!=4113buUn1V2T-G^Ny$?1%_cCw42DeE4J`W3ni>zD5S3A(CtUYx zF%1A(YOsliBnCc#>n=_%+1Nro#+@qUWf6P;9oJwJa*Ji#*OVib?0zGL61_BDOVXyD zcW{9#K$^kXhXM!k`<0Y#vc_FZX^LM|)R7uX7|Z7#&2TCPDmiH7Fp3G!q6B+rQQgh_x~Iy-lY{Yc z%dmy6FlZ@ytuBb}U(lA(+@9dyP#9Lu-)L^}w84hqsz>PlvY2X_Z7b_G=loDrwR!}| zd5{LVkswe_P-ZwD)koUeofqv1Y4Iy#7}K_kpD*T@By;S8I>W!`@%qgg5N}UA08o4+ zRKh#ebU1|Fq?Mr6ul;GBTJibv=`4=a8&ecYWEtGLam1~6D0=!0yj^E#W&h!F)o75 zq`VMu>j+VPzgAwQNw4ES7Bg}V9OMIOMq9-_Y>vt<4N*m!aK~Fb%DLij*@D6sBDhZ= zeWKgNd5Lo&c`;S!B5IP>Bh3|XgC(%|2~J9XO@=`#&J9M$1Fx4hM@ino1STL69_#67 za{iDRcY|b4ER8G2E8&PyAs-cvopdh zo2Y=Jr?f5YDSGtk40M|0ETkFEO^9_YSs+c+N(>uKXi3%8sd`x@sW{Txeu+R>%ExQj zuq;&1i36Tvb@Z4Cp$gW~@l63}_|v&m=`?7Sln0OMKGYmlf8Sp*O8r5*xDA5giDxMH?%2i+McjQ z6)75prPRmSMe`ONGZa4~ZsB_TG5#&{FnQkf5IqaE65MvB{4?6BOQl(3wGTuJ7sTE} zhBihuqe47Md}5ecE4hMj&@{la&o$S4$WxG6#LAoM$cst1J2rzM7>cu4p|ye6(jO)k zcda!)Rm6B)MG!X286s0qlNM6xl5`5*SoI6wDcwEKqyqu+f#cS*L=%CX_Nqz1858qh zI=C)2ToktMN;ZI!kd^5iZR{Bg2$cV;d96r3*7X?%e=Cq%dHIDWCr1?{PormEci&aY zQgy%Uw=n95$QSUd&>Xpvb3{wT0k0uC&*Vk1(U3sGZtQM_<#XCL%Uv^96)jvka8aUS}FC_N_Jatukw9)zZ{ zHSq-)J!6|NgD#$wDQ+nUPg{&?Yg1jf%+I_5S2$;xc)+y$1t>WRqJ8b|vj*h@a!b2t zUg@k#lL`nQ%LRfQChZqlQ#GCGwr#B{#d{qBizTT`&si#*Q!$?|QB5ZM=`5$ZO6gpd zcH8+h{XASQs|}VAAZUsL-X|w99K}~7a^p5(j=Z<$DJK9On-Wy%P??(x-4fo+v0t5^ zn1N*J1nKDH%%Da&Umra>BREwDcEn(zRo;ZOj?H1Cp$S$-G>yW=AP*Wc_4^)g&QcQp~RAAiobopQ6!nZSOu=_ive-bpHd+OH_(}!#fo@#c(Q%-D)Hh z-tvvo8%e2(Xwz51O<)SPfiA<`MLIG{h9p3c7*&cVu2alZ&HZJYw(gQOL@80K1y^gq zMzfw^fLOPnF&s#0KDB2Ech|@ES#>$U8%$A9*5)k;>vj)hFbocDcW+XYBTFbOq`QdX zxs5Nl4%6uEr_XnBZi} z)}8r8hjhXl<&_&hzK^=~4OA12+3Ytyt=F`#ky*2HQ#GUz6(7t*FnXlod}Wh(BV17-X+K0H*3 z-{jedz(f}0Mg`E-WBsq@DwMmEO zht^PM_z64S?meKJ9UG!G1uf+KIJN6=E-Sr&x521|qLV{%nG4;1_zBTjXSK#<>BA42 z`I$LEUf57iBtx=<9tAF4EuYID5nZyZm>Gy&VGV>tnRPWdn)M09&NXH;(l+d+mJz%<*muRPPFC_rYn$!@;su@foaXf+}%qJ1f7!RH? zU}@9mwZz!d)`9Q=4xU-M7n*tmuovLaG$$*=DwFUUmX?TV@n#eVRwUzA+#k|t;H#cF z`tDgkbH&C;s4U!hkk=sa+6p!6)T5WLhUg*;7KmW#6Memoes>)v(E_ce71x}L=1v%i zfaU}xop7Dcaths@E`{!y*O|Up3F4tL$^;-MSk`?7K@O!t;mOJ@FZlvQ1-Y%15aF`w zF$;KlkR{HD(r`3C*zU?R-3m25Y?89%@JE#jGNp&cobjGSO_fCt2LyUkS5Qqb(0UMJ z9iHe&HGx%{ZrAGB`-a!!+G^<$IgN2=FeyZ`KEd2cf>czWe7)5h=X`7JP%ci;u$@m( zZUWf?d&}s!&fFx$?!aKTWKP{A8ip9^(^71*QD``}KvY$-x%Kp&lviN9VS!-%fcbQ% z^`0s{EIAj0fX^UC<17uRv*;F2rQC%o^(kZPFJ+W)jk@b44j7D=3rzB<`9Nnau#i<+ zEPt&h3S#L62O(r-AqQj-w}L@Y%|m2~M7#e;vD!eE!)i5wjVsxLL`PnS7S`b=mt%_a zuNCU7I}uER3=`}wa=cJ^jV4CJh+1fZ9jm)y>k+5ud{o&UJbW~d{opbS&IjBK#n4Y+Tu z_LOXS&Z3B8Yd)HKi!ouQ0FecK@?IU2`l#Bi&@-zH&Nba8OJhYvUB}?^Plu_6vh=y? ztn5-FK3y{Wj$dPN@OBH8Y|b_1=r@C##hN(O9pK%{dFcorcCdSjsKB$zr>C4frg84D zrAMh(CMseri_|f_dh?CzfWC(q`WiINz^+isk%5d-KIGTv-IyG2<(68Tux=5Gt!Q!q zQ5h*~`U}~Dp2n%p;BIxEV?voYd@eo5qb?RNBQIT79`{8F2Udc|v{rcJEb8MX6MVId zD04H4;`I3~^Wc7Tu5FgI1WSu-Y~ur*0vio`bW-$#tg(ICRF7)4Y7L#YeE=WAodzc< z_&gRuN({RX5~r7ws)$)2w5=c$v4lZ#!y!_0I#c?4ls`dvCZ?e+jX29wZxbTL6p`xy zb1)Fn9n|cAfigK+vNr`&nQ+oIy%xmuDojt^U4Ch^3`%$JgGa&hTLTKKT(dhyr}z~4 z<&slH7ff)uyf)Vy@7SV&`;A1b-5i;Dvx3MJfluXuVyH{)u3Vtbvqd7K%0H5#8p7Tn zLh!NM7xOw(me2)*?HH5Vq0t$Sab+_I#)}mL_43FGzDvO|%h1KrRpp&_%W45u=bGWy z4d}2bYDEj9juJz!Z1vWkMUUToogmPh8EP0yq)zV~Ncf!1O-*-_muy*ZAv?g-4d@Hi1z$_(GdSBUywlMu2SOm7vze4O)v*FPuRo#eKzzq$8U6FH{V$_$GME$<6s^}qj#2!a z9v(&WU9_w+&BQ3dTVMFSp{@lY1y(q<#_?JXCpUJCsFNbY%1vd+Ww1&ki*w=Rywo&6 zB}3>U0HGe07>*Lwg}S8BArbts@||&y3xv|b#abxty5SQ6sUS3od@u+v=vORO_k#8v z^#Lg~O*8q)H))H>Vgiqrx#pC9(?*4+<)~)SC1vd5d*K-9Qt@t&bqewEJb zR#uL7NRwNPK`So2Zqu7*$M$gUU5@W?*{TT_=Dt9b0H@;{Y`Wqvc%a zoxEjRH#UrnQFW!%m^I97wGGkprGge}HS)aUG9BEP%zWTzG)FUs<_Rt{VZ!~Ln#5^c z{Z^@_+o2-u00A+@SJbmg0+(kkv{Tt3_gxbDLK+j897DKNwP6rGu7|dBuu0ONf6^D6 z|2V~qRe|Az8O}{!o8GQJwxeN8_cf6~^fsH)MZb@H^lA}_DoH(0BZ1BNdtlL(iDFN7 zC?dFD-3w%GlC#)2ew)3QK(Pl7l4i!pcgH;WgpS!2t%T!jsl;`$MG3q`LTR6Sa}Z6C zSur5HKr99N#B#_+KHeVM*~F+qIwMt=y&^utN{EEQ6)n|e-95N|!QqCE)`TeY8k0CR zv@KL`JnYyY8(@SIEyK9n5Si|Dsig(?%M{g3d0{jMXS`T^Y7WBl1;Q%W!YhxPKm<(B zu@jb#)=ck+5c-u&7syC#AihmW8T!r+X0V3U`La39X>CJ&A%4f zFp96pw;U=f>_b9lf|y zrF&pgs;mmj&_CS1JeT04CSOsgDyp3e?N{t`y4iP>dg>6}U6}4t)*DHUvhuN&L){32 zZr8`QWl8#Cv#b5$J5YTlMu8%z(K$eyGW2yO8hXo5WnI!Ka5>CSAN|~pQKp0~AoDU0 zpmRFqVFawHEL^OsV#cIgaE*itN~&f(m_^hK`(_7(5ZYc=T6lJZhA9QcrVoA=IV4-9 zMxlb4eHOTGRm&Nl22 zcZ#CAWGkSfT|(H%IpeMnTr7|f1u?>eBk^(ryz^c8R*S;461KzbVxUhCdfhB2m>?k) zCyNxH+EI7M5HGK|K8@6L0vjPedLezIH~Yo%7P8*;DEyt(?4eZNLmd9-meSUxJ!a^Z z!qQ~!=-&4aq5D>V7T&3{Dr~akuM-?arb>MsVdaiy6~hRcQS7ZCjA|yzHiKsExm`0# zyr_xh2-e|RVV*Sl0&_ySDXd4S__qIOCrI;2uY*LS!kfB_GMs3KQCp!j&vHM_$^Dn;^1&zMmlBlVyb^!G2a80-MPk?hJ8C1^>y6dpz^#;}q z$k^HlBd#oMR4kmmRT$O4pkQh?-Kl99Pc;HYxFCIZz0p#0bonV0Rt;;)KQB39OU4BT zVVmjT1^#3XLnPVc@ z3&@*0AS3IO4IDQML?V_W#xl@US--|cJy4EPlpHB}yjEEx+$qc>L1~_o1>zVnSbgH0 zR^^z3!Xai5-Xe%zb=qzDVtOa1@2K6M=6d6pX&N?(mEm*h?nz8@V219P&|CpO? z%@?#=4i9f1LR6?ojIO9B#Wl+)G)-uG4cOW_g3w)rCM^=w1D(sWtRS%{*?P`3qWnHA z5po8V!W1VJluwE*!P;8r_@dz`voZ)P(|tD}FPYfT(Hw@4!Dms2d8_Ke9U|UN$=kV= zzU3roIUJSCQm|0B?mZxmoaeWT&&>MTi91Tosghw!AmGrr8o6y5J9?rPt?7E*$5(!w z?ealPK-5Re!ZG;F;DooCM=e>ncGEJvp5ShNKl1WBeMws97UHu8R`4Q*zOEh(b=SowLonK~7cc zMZfsf?>E!2uuAWfev8BDxFMYOOlsny&pey z;Lwsodb&AGPL3OX{oZGcgX)PLSXcMb;j4EuDZN&GvKyJe+x(Gt?WNpiW^wm@l z=>QBdO{$^tssO-3#FQiY;UAmOgqBIpd69g+bPMGswXe{}ovA@E$yGt|+7BqhnOIYY~Dj%)DeyO~9O#Z@4#x zGtf(-9b@_VrodESRDF_<$6z10uAx*SXVG4v5jZVeUqleFuI8sl5iV84xSFs~ueN|po*F$wktSl-@7<3)TEN|Dl%f+o9@ns2mnq5*27HO8f zNMa#-uS~sNy|)A#umrj#i1vQCWHv@idJCEk+35Vhf%T^YH`qPncQ~|+jpj7FM>fax zetB7WIrjPfz~vYp?{6~u&+0ExANd~nRBGjP=hC$w31GKkt3$WHm0c=5f7$wLaoEbE zcbiwvgOkV7D4a(T&&|PC$Z54B`>z%+_ZYk~625Q6y4NL{=b|=`)kWSY(cEFB)2P#i=+Hw|8UU#4( zm3;8=FDN1*Em%$Z9E*yKje(CH&h`tj2JJ#LRQ-WJ)tJm2oz;?mO*4#rMu=+swbel2{HbO z1H32XzszB*qx=JE!Ymt-(e{*og2b*FnqSc)c(6D0wdu4{3C)7_bn30f6*UH0tqw_O zn=(TqL=*RxyIOrx}v^Fj)6NryRvN%d=;;qgLNjIhv5=E$+@YvR|VIv ziLVt(HmrKhBEq1P!EiEXQB#!HElhj|(-{nJ2~5Q_N7idm+vh8*V2xCgaPsMB zlUL}X%3mAyobgAq6nSm%R;86bt-@*DQ|xNY`9l!tENDV7)KQDBCtuL>(D z#dl8eWzNa+RqR+%2Z94kRb9r&lO+ogI&Tnz?7g74!VYW;M9*^eBzSK0lkbB9=4>eC zV*oERfI)u2Z8yMZEwmc-Dy4_tGf?YQiulM)*RY=)O1~{RyW;Z{|DpDm4e?W-s?=+l z>2qI}G>#mZ98O|Zz%{j2=`4EWc{J4-&g(P{GEJwM97UwIaNa`Mwm z<(IXXt+40uFB#4sA4c4J9D&X_olyw>B6a&!yY+_`x7A#tz9@fR+Bov!%F9z3UuaUD z-`~1jd=T}874}kHs^?MD@dtk!@64Zk=~lMpGV;l)_wwe&v#);tI^c3XC3AG`N?KjZ z&PA(Nug)iZmio&&Q;<=9@QY9O^S6@zyPtFTnqQ3kcWHy4f9UP~X7l0HTbD;J@Vbng zq4zK1U0vco-gjwsUh)5S7F-g3>fG+{y8@kl*Iy4``knIb%keLNo-CQk(Yd4ZtLvr8 z&5N6l){EWjrKr!HTpgk_OP-&4_gw0Nv!I+ZGEy@)Qenn)P_OOXzwBw5e(h|4l_Ned zG!hp&@*uGoGse_3#X314{V+sOo~_t|-i~&*(7hvGI3{Oxy*};@o_xX((YQdY0q46= z;R(b-748B$lJ!Qm{JKVPX7K>eNUrdhW5Wa9Y*5minFBPP^du0&iU@6BszG7xq9@Q1 zT&@=_rOUz#%vzPLI`F!24{d^v>r-40^|M~h%%w_WIXfk(AHol*Fb>hN*NxODb5mW$ z)~ibdQ*fROVf zL9R|GaRKbORtRLMbo)>#V?82pHaFZ{$@QI*eR=_VPpmV7u^y7$qC!Z$ib>SsbvH>0 z*X??Dr!d@Vux#+=%_e=^hAG0NV_6u{RG~fTh+|}E<~CNF@Te9}NLfUFbc`yxzp7c_g3cF9O#JJcJd_e||4KykJt^7Md z=;A4enGasJVv!}=Bx?w1vJWw6(hH4qj2r_Bt{v5f1vQwv=8pj_%rJ=IB%PDTI?Ips zd6!!&pxc9YEnv_#kJ~-LJzk0gd+Bx2fwfzyL;$@~xO8Y|i@+H@Srl>(ZJQn?l37mM zQS=aC56Kd6g9+-Msy)qa=RWv5PU-x1bKP-{_N(`HabW0y4TJE}N8V1qfm5wh)1Zew zRTW0IpWd|oQ0YC{J9mEk#Ve=dw?{$0k4_HXGo(E>ZGUX-<5&Ldp7RZUSC2zXw4U#d|{^cJ+$|VYEMs?Pc$8w zgV*1y=qd)(uTg!ZOqS9sflT!UA;c`aLm$CYbHwss#>&_?trI6CT zx@Mm?^P$#+?enWEGotf@yg7GoI72SuuOAjQ8K3@Iey_iuF!15)!wVn(eDmd1|Il-T zj}N}ppV#$x`{jB6g}j%#_Rkrw-p;@KLayxFy&`ot>(Bk@j&Elb?j5=BlKF8`f$=$m zmR30PZY5IZ@ebkAmE-=pzHh&%tvG+`fB*N9yM344+Pdzg4Xhmgy3hE$sKa>m`iqiI zcOmE0yQ-CoF0iRLn<9U`TS}ZxZ=9kvP>ni99`sFhD))exmSZo;v}n7@RAgZyx+v9iOJ)o5z(On-yFJgyzTu;~eEgq(KfdN)+C^>XpuNDSb2T6KUk^zG?TKc7l{RBopU z4gJOx16|j0oln?3S~p8U&oOE-zB04ug3c5v9|BfcQmKrifzI?>Y%3j{F<-*{N5f~T zGeUe0DfG_lAUon-a2AKZE52}dY-t5{Bn~DxDz)wwmo;AIZRnc?^-{8BN}xGLJPP`4 z!FGPDm;0_|ktuxiglv#7hwVZgTK8Hk8Y+v(F1#v8D6><Bbq;WJw3xkJj>Sf*GS&7DM)6L6~1~zZ%PV$CtMgK7XnQFhvPo-Ii>~ z#Xz91a|53)+#PUz+lM4ODH0>H8BwiGa}A}*;iUY77Om`5y&EV25rfri%Zxs$vnE-~ zUyu7s@$4zI(B>3`XZ|Vw4fRMklcD!AVwRRI)>|LJK%-*=4?8zfd(s`anmv;*mN&4A zkNkq}JVW+ATe9nY@JC7cN^hMHgAfaLJ?lbS$|y>8E(uBN{eJBJ$@b@Kr{%AN`~*bZ zU;O)I*kwP&>gH}?(B;#~dm|5#x1&A5OFj>e#9TPmqwc$tV@M|qr-%PO#+ducd@vD} z*7`U9Mw@2J;kAsWc9=SQ>3raciWRrw z1Fy(dW{7W6btz{i;eo`G5r-u)`pC-s?r&eSu=mrdP!&4&hQGZ0byzsBpSF;f?{(gnR>$AHKNVl`OK~KgoZ{%J0>g^|eI0 zm#)BWc=oHWEyjN`#RGbj?u= zq(8vPr$;>8C@hX3!>6dkv{tLbr?Q!WEe7r;>~`g=YgEi!U2X-If>$Ls?3pmdp$DCW zk-ay-3hzKJ27=Gy&PCNKx#;>#W$UNPN}RZRJCVCcA-CwYR9d1!C{7BEtZAzwtU^rF z$AhP}gz>8HROM%M7}PN=k-H>=Mglx|(=oapNESlGD-S0}8C|LOP_KfhQlVtr`~V) zao(q0sy_(d{1%v0w$hm%jVfDC#~=C@OSU6Bel^&mMVOWr7#%8xmeZj*JZx z3%wE^(1{~cd`%0tv;$K+4#M+I@Pq%1|=_4zV&z76N#eBGoyPU|`pW1)FD*)Gz7c3opIpMH!-ATRXy;Hd} zW7PR7_}JtX(D?JxdlN>LtCNY7VbFB*stvF6=QzFND@kJs&u_B$?m!0CBu6Nb6pyrFhO*TVU?6cIX{Z~4lzavKC2lrvTIMC1ble492oJTh z_cO-j7@!+5>X1}Muw}_yKJ%?~X(kLn3ymJra2s>aiNElsw22=8HoPz!u8X zwDSVppfFxrHLt}oC~tw3D$Exrqy{B$*nbY9+TH3I26 zJ#H5&Fiy(E-D&coJ3p<;35T7`#8W%7JHo>-PN5Xr&e`uKtz zkFqU|gRa+FJXN@aw!t0%vrJD^z6jSX20@Y_MG)SUdYEFQ=RBOB?62Tb1sQ;}S;P z;r^|2)yzim>md|!bDG}kTwnf-d$&AH9*(ArwJB3?0eJ#5V-<|bx_f&-UegV))KH7A z5B^vsZA!`cOGSDm)scPhn3X^4mo^VO-{^g?7mEGi z<5a$!_M3BEnAPZ?o~UOlso%c+dO5V_V}QBVVs-3d;!NB$JZ`zj{Ldmac5b`%+0wKA zzb*xT`OW2YVP@Rl19vX9{racwL!H+N{cz?iNG$*F+&^`GqqYa({__4Na-mGUtgyW5 z-sq&+$#({k6X0|g>yyu5yq7miCXVjcrO7{pBma7NbL3KsLUgNJVg1Sv<9E-udyIFs z6p;7qi@)8g+x#)Lc{VaF^7hwr?|%IWxW`yF+Mv-IQ8tM&RfRX+jNgiH0q zHR-#bRQBGLEM4Z^Pufd;wfAuCC!n00aYgX^@W^zY71jX5^wUbM_|y{rUZmsL)G4)V|36 z1k8R-+IahT_fcnw$n6d9%5Sb$fZty2?O)lp`U!9-cf0QV>idr?d+I*{HM@UYI_&>d zh+@8Pwel0N=Y3^QL0EnK%gGtHAcMlauWdg8cRoxHsXvK8=^E4(t{wUbU|rn#_8#>^ zw#Jp_Huw7F#@{Xb@gLHr=WSMn;^<@rO+J75$L&wWk*|K-4k&gT-v9RFRpC<5a?Pio z0NUAo-LUU-X}ma%Z&!5J%~bX-u8jP!w0Qnw_VK&RJm;({U;O>{Ew*26u5QWlZ~mzN z4=(*N>Fe*`@4C8NaTW^5nbs~*|E#O?=+49sEM@B5X3}cX*ZY@~1Q&*XUmjV1JW_%k z`3dmuU3}H$lJpahxb#i?${>Ey|0iHGQ0Qod-R`QPx&HcO^T#h=W|r$J1FCwAS87JRaLoe7W%5SQroa;Ntf3(WmPdb-H&l9v}O%jm>)YgwNbfBIS%T>M-%-i9{t+fRVxwFIGQ zM7W378s?pe_=uXaUexWpGgpE)kJ|8tJy2FE2I~MEqKE_< zM&;Ma4Yf#^DTwAv(4cWjlwe4W>kW+7QFCFgG=#sItyV)y_y}`ElZLmHu5725TJ2q#o4igxT&)o@?jchE({mkG)kMS` z3?N%TwCPiV%xkW>R_BP&elV$2fx6w=wH|!e&xWX$il?B>$|~(lfsPU(73-Q*buTL0 zga4gQVAvUN%cDoLnqFsqS!&LOvvlIax$i&CTLoZ<0)m!X)-E~E$)(Oa#u9j0QL znel_q?9Tg% z-r+kxMs&aQI{r{UK41UWLh>^=<`3IHT>I+J)<56Z{@X2L!{PC^^RM0CzyAcF+@3!? ze|874qm#RL`1RYh@ywndLMC5!UTr=O`nbAw-&u2C#sAXC(D%A;&h>lIS5AFT8?O5a z_|_v_a(KHzg8Gr?&m$gG{{&>-3A?iY`|jhV?V8JO0R@!V)s{EAMu!|H)2j9l9jsse zW&bktKhH-f8t=*JpZ`n)R!X+LO{h6t^x5o`9Q-_gbf5TAy(G;0uJieKS0C2v+}oJZI+S}w zqW`G6Gs^q=1Hvn%7b8XODPnmSCGY=rCJ0n`85*Or=UoX>lPww{CAHO}l z=B9k{#fdAuHP3oK_3lKxNc$fBxc%jov-QXS4l|zI2ak+8zOd=NQk*E`I7$pHDmvqo5F6M)V9OXZ<}uOOA~+m zIKI=8{`)u1YQ~jyt4N}7w1Xuv3;%Rpf~0pdK13=xV`!# z8F}yPub-P84)*?ie!q29r{Kd+z=fv|gSKsk&-NF8%DeLEKOg?w+PB!Z65^DvkTgSt|bgeSh_Z>Z+Q zj4p^dxWHu5K;R)i1kHHCCXlOM=8fZ-jGL7|nIgeTZ6t(mTV$Becyz2tQp$h>k|iR{ zUd`?ydA}C<;?*f!Zzqcdx~_RHte%n?X|t!|DEv5!+OAs&pqxBFsd6NLS7?`?y>)I<^Rd5(Y0c(BGTd zhEa4NcY%p2J8WhmJiU6v@47~B(X8LuD@ zFrCMGEokKA6U$~y?mlyLEw6+ugDaG29!sK~@HHck9UVM`ddexJSyq9)K$nMkQMrN5 z^@(0bogAZNP2WMdCJZ22ekOgwYt8Dsnr)8W|3%SNhc)%K;Ted6f=Ve;qB12#L~3jX zp(spR5Ev3tD$+G}R76Uch=}9_q)X~YGik}uC?KPIz!%*8|M5j745 zWhYH9JTJvsoO)JTQawI;F5t!~IJ%<7b9s9que-fKr0+$A+V(2N<0d-hx<~!T8gvc4 z&Wh^EELIe8hsp!7qVCY>zNOAHT}$2fl6i7szlNz?uvBA~7S*uvab91QeM>FrZk~>n z^*>#Fgsr~0lInVetxD5N8Wi2#=7*lfxe841>{un+60gdjdqh&!t?HvO26xWy_l+!U zp9`oNhq3P$6(g^uF9e1epmOQ;gy1pgV6aSb&)BX;2S0mE4u_gkL_FQ6YiZMSW;NW) zW2`q=iV^?tbY#Oy@*s$P>L-b#+kPInlBPL49RFee03v$;iCRH?KpZ8%b}DpQ0xBEO z`vpuNcLJj^<^Zw~XD((xfH*;Z-I)e+QX;{94uwYEIUVp%9j=!*oZt#eKk2%%=p|*>{AMK+Tq#__Ss-22(b~8tAvfY_K0~{3_c5y zM`RatAQE_<96(r3EaL+RfT)WSr^9Pj@H@T%2_+Fr{sC+y5%gpNqwZTEz{!pQmxHQR zl>z+K!u@Q!Ve zU>Dd%u7^u1PgivIz`y_v{1KohCt4zHmDNH!r9sG6hs zvr*h$%&KHIGLr(H%BzD%_ASu@ZX7^%sw)<0s2vR5noWpZJ%0dMOA$VRV2|GPg7L2S ztyt1GapF`aSWDSUTguuwfUF3tXwU=d)eazAadF}-S>5>U1IRLYi;W>@^x#^EZA~EN z*9h2r3^p9tcz&x0CI)%{i3J<)vdcc=5i8vvhG!rYTF18bXd>1Jkgz)ZwjZ_FhtgMG z()eQd03uKPta*=(#oYkxd&xfFz=}#1-`cMZVuwyuwgt^Bk~dMv(D`jLkuKOMoU7N z(ur?<(tgmN7B7wNV_(oQiFEL{?u~eKc8&&rMJ50voB#6QmI?ocQzv%g7zYq!Z==G_ z^tNh=jd{+R%5FKa1E2;d9Y9p7nQE+C!72%P-D*@hmJb%=v`?M@XeOBVJ2;_= zlB@E36IUYkqWSX@9rm(YT{PoO!d^?>$mrw!llM$d?ix?H;RDm#Wpbx0O+iM{$!JK3 zc5Hs`jcdOxGqppqu9iy5@VkD!I2q}G;Vk!2cobL7qi`|o5lhvJuE%9z;g)Bkn|lsv zh2|=m>J3GJ5fq1kKp2Ohn5&P#jT1ko;cvopNmjo;2Fv^@;5pt_FQaDqxDYtGXfX7N zFZYIT1c$zfK}JUG&33G0NG{3ro@lml?kUiN08*X$FVO-Wm0XUe@0|>qDlW2Nt={@EGLE7jyVINR1dm~j|K&#bC zyfW~TV2^@}^zn1%*Y?VeUqs(rI+>bnqIgTt9_skVPF8jy?x)nHKLO42XC7&H23deo zANy+fm(#5b?QSXUw;vscE}CBdAzOUf&QsRprq;NzOqMNdD#N=->iZRb3ItS2ncFq- zkpxro-^58vncmLf$mNe1wc!2!Y_HhyvqOj>SD97(JH^43xb(uvj(ZBF>c2jk3U@1L zYugUnjb5;95%_(RraC@Z|B~fc(isY(f}3j8e;D-50ROkG+p3cUh0v*O)s(4M5&;_+ zs0J>AxUDMEhkCAqo7^U-ks zWzY7K*biY!UvJVxd8{e|$}*pRt_<-0v*_YQvUs*IflP>x`#pi{?Yb5qb}wRes(_SQ zG7RfWL2B=GFL(vP0bT_B=^jf74o(bVE(Ot>&A9i<3vR^DDSt;AGHV{h*cA+RNhwwA zn1__t<+z2*sSn^SzsQRYiJu>Ae-6GJy<(IhW#QmJ;FI?cbz>NK)J{QX8ebvTJyuzp z76j^A$u?;iUnXx&SflZU;aTlc`-rbJL;->!_IA3#X~duE<A5I(U?y zys8IKhvl;lZoCqV+`_IyhtQh(RJMYk%9Wn^(W>rF65e8CezXxkx$hNTY-rrk0Udn6 z{1N?;6s2b4Y1_ML0@fV5q&MD#J>p9eh#d@-xt!tnS*!J$Zq2>#3a`x`X)y?s!O$$j zqMY*O`~rbatFo@#5V1>_&FmU7l$j;m7gF8N4YM!w`6%qWJ|Q>OFpln&T*609`&(A6 z$;@_g{_i`|ger`>{b3H($X3$B2}AzZEdc z6*jJU3HR>`P7Mh8wMC^E7ic6bII`@ksF(b(sAE$U4BCtp$nqdg>@bvU>6|=IExLt7 zUMSv81T9PQTV1dgI+;>&H%{6N);O*RNwh{gCRaR>5zLT%p1Tr@eNfl{4LBxew7$!E zH^-#bH1uNO4k$LoyF5Af<&W>VLLVb;?o#6n^J-V_+^8=>TBqyuO*2cMEDHSH^VU&I zCpmlyHMn6WCh&cDzB2C1lOK-;#tY{wk377-BW3U*=l?0Az(I-5J)^I=pElm-aF^<> zSY!;u9*cA_f52Y^yQBA5{c)jcy6N*P7T;w>WlR&s z4{zfc`F%B4%{0SAhUboLWR9Izd~@D$YmxVP{PGFhnXz2SJa=^N>E%`wMrz2nndXL9 z`0_NJ+s(SK9Q(;2y(u%+Qcz}G_s@G%>-aaR_l8BKKPdi|wXywaZNOpk?1}4fQ_mBU zmxSymf1B#-RtJqpzB-IxP zM>Y4P&4Tw)`95Q?0_?o*@I)f%kasXwut3&;uW-h|Uh1)w)1Xc}MF3)IdQ(53NB|yX z8f$b)@YLgb@tQm>0tUmN|3^3|EVVt}xh|{y7#`;`{_WzPM1_NuAP-j3_U@=w7b|mI zT8ewTlOzOce>?pD7W0mu0$i2967G*4%B%mm?NR0PL3F`UWa^Q!n!mNpBjp;^FCJ>u zR$xx)?Xp_62pbUPOx{+t+LY-CL|tn4LSy;O6PKpFYM6f6+h`S;PI7BU%KyJp#iD+b zCpV#QeZ+#2BeFVMHz?F%0Ku)d;JFZzaEfgsRlJ>N)%WUFn7lP`NgjY(io~F6CP)5k zS5FpWBx6tsIZB;FISabt-GiCE^nDehhNbnE{zh>gAE(_KL`g9?KZ4n@v_>S3-l(w( zT!2!?mP?usAa85@QkV_jR(*nkp>l=cGX+ioD9g#&X1|4)|%0y7)(i1k@N z@Dw*TfZTXx@8m6`(yBeKaYd+D>)#hhF!#~#CN9#$_M`93tDWwfe6Q43+{+EQJou+v z=uhEik%%t~iURQqF~+sW?rY{Hnfwvg!Fl?09tzBQs38h+JL;~14nTKFM!AI}pgV=r z)u>*FKI8EEZ{m7yq@_i!nGd`TiV-Tcc;kC=##7q%PP7UP^ZdWpy=j*`6jy>(;+A*L zli9|`Yst#V`#3rwVZR<4QGm-TC((hB5xUB(1^j6OI0FGoh#hOiU3Xrw^+m$yL$>T# zbSCv-S6_8bm9f!ND9Wa8!w+7*M(=nU$K&HsH0X1F<4NULBNY>jcDb6&V8HA{aISb_J%UofHx=CoxjdJhP9x@gd$J#Cqsjw zUa_HNzH~5muHD2xZ}#SrQ<5c&%hE(1D`_&aDAhK7Sx!tZ<(*N^#V3W|)nN&DwT=4U z4P2GVhdyQ;ed%#4rJqA*6|b&GD(X`xy`R} z)O5hud0ETB(lfz{UxVk&+dsivR}SZR>*PNUx=j+&%Bz75fjnTl^vBJ6p*``xz9s7w zj4Q|MCXRwBeqW_`LGm$%wgP#}zmDg}`~KuVIco4l_G?9Ms@7vUHI6RH;EtP8T5sy5 zP40Kz;F8gchhPTRmyJKI%Z@l|O(v8kU$>GN9X+@EVWCU;tq5!Dr>BRyRmvmvIm51n zX&0~88YwBKUKwzR0m<#o0b-X1x2Z+)sMFQ~HefLyoDE90VY)J1TXCGR+h}tITt^Tu zw8gW&u$b-JUxe&p`TciF1 z@HwLhZgv;68>34h@E$;Vz+g5L(a6SrU;6O;(c%MW*K>m(I2U+C9+rcO*h9?u|8rfM z^E`lTsyURaQ0K&9OC*fn#=c&?(~U@+Yqo*N8_xoD`wZvv!5!xoN67q!f;H!=7VcPN zsSXhHbVTW?XND@H(6OEKyV9e?gz=b>?HsZlF;`cRc6?0TuFiZo9cAKyxUTRecO7Mx zxu4|$Tt_AHS!1V6)psv2t&-zMA;ge7;f^VBmkhdU++)gG}52K#{(jTg~|q9SxKu^)ALHy9AQ;VJ#X#`;CzRAX-p zqSbu2JM30*(=wSFgQ>xjUwB|7I;H^CZL*;Nh-AOvNjhUfH}Ma}&bAxC!6GYeDrD-n z8O)D2cOzICn4Oqo-l<_;)r7k+CdCw5<92&--HSvr>!}bc4?ebV01?pDa|y6-+gurv z(y@4M@!aq$xDA}Bs808AVW20umn(W@4~`+vy9hcY@U zcQ#E3mucvdwd7q~H?{r6v$R&%GB;TtK_Qp#MLHS29l6CrweMU5p9ld!cGFpW)*t>ZXzLX9Z`5SME!j4m#-k#NJ$aA_XbjFU2|8Ffo+Ix+^}r4 zSmY_=-lMC62FqjIdE|eI(R&@d{pnYi~%Sg6)@J$AJuC; zvtgR^TGrVH8#nKZD%Ll|= zLk(iub3>qidejbC6eik5_MZ7XU2;L*yTn=f)fxX}^DA4eF76Rwac>9eU-(6vb`g)5 zC$#(SHa9h%4q&?r5SF&4a0zd7dS|8U6XK?8>e+mMy{Phjh#U#B4Kk+&gUo5bBXVjQ zb#u73*x&&h-8cJS>PQWvn|+)t(#VHQ7@BJNz0;0W$jRM)y2HR2`MD2b8XABZTyx?q zyRo*8h4=v7!tFO6K&E?FFv&{6V{7!_RF_K9d6nNCwm-eK_22qRF5F2%qmTJ);;?&e+=cnpYaTJ@=gG9_RFk!({25H7vNC9oMBW}&{J^;TH@I! zr&EPn(*CoR&&^3M38Kbr%9egdW@^R1z^Hkd_h2vLPHlFTz=d5aa)iscX38s*qe+!sGv^TbzXf^Ke#!J^z-}KM4;T}3| z7h|JWnQ?0rwuc4T!fQ4peKv3%KmIj%sZRr=An(IUR+!j5fN&-eKJ<3Xe$X_#{&yCO zn5ESb);4f0CC^|rL4`qvb#z_JhXkI9 zNs|j!Rxd$tV?n{0B^=3|YZAjYQ&>b9@CTygQ*h$)UnX#0TEkqGkq`E7lyS8e{4lc= zEL|_SDMb@W%1LPiSoZG3-dF`O}=i+KK zbljJxjUTLr6{dav7|^sS-E%fKTpgvYZ*uQ%(_mQp)m}M?0L{V9$#4rzv1hIlO2&3S z^z*@W-b62b^<#EQ?x~Y^kk`4Ll2YgA59KOx72M>rD@)3Y=hV|Tw{vkeEE3Q*$m>!T zNI8+a;>BtD$-c%RR^7(7HnOmFx@OsT)+87oH3UcH_q(SNuM$2^UV7^ayHy%;CgX)x^^h(@uy$dKkD#)`$Qob z(}IYP7Gb%CGnU8OxF40BmAZ5@Q8RSiw6#TSpx?Pi@PtmTNNBzi((u$(?$W`GJO`s5 z?UB8-zQIr05qcl{)suO$wT*vfL~0*Bc6#7yhC`hYQnD#-NdDmm08R%5tgI%xY$=ypH-fafE{SHjUFq_Pf7FpWtdp_Jk^3m?w_;Ae_BPrJ5P7q{xw}Ik5x3(i&&N}b9zA=dOBIS ztkcu^B*pWFgk}WwMe0?Z|9*B9s%Ykp2`~2(`FQG`bZ0Wrx97L1(Kbkqe`9=tQ~~=Q z3Oy*9uu@`=7s%#aHBgg~3 z&*rN%|I+ujY`Ynu_PI?NaXkXpwLas0G5_;k%`#%1-CKVZTYF=Uj<_*6OYv#P zto;8!f@Kq@y%lH6mRfIm<#5ZxoF2k2+(KU#>6}g3`iJ&^@n`F8XGeG^?$lpGPO<;< zm|JLVjOhg7T_>Y{poN)4nXXIR*|VZP$e*2Sav;1T%{4ow9d@1}Z~&kDa^BQar7{VG zLve6EJdA^IgqFV+iaqh!zj%J@yw`O2^iqpM+L1aKZ@D}g#D&`&G@%UUJH+LXx3D{C zl|X+^+F6+}+$pa%U%Vs$ns4Z!&8++l8qrc#RNHx{R>!nUMKEQj7GMs`3r;JA2N00WwvQPpZPN0oH%DTl z<`?{5jYZxZs=S4R2UcPyXUl|@wX<9ywfs-63HG(FzUhk`TF(7pd1K^sRA!HW@ZI39 zy-W*}V;3#?7j-JG$Vr|6hYq(M^h(xq?oYC5@87i=^=R5sj==5b+d z)7U$z`TY^|`L5pwJuP!1BPuA|S9)B=7lC`f#izEL87@LBdh}$dJePIgpB)(s%5ZZ_UCj zv#x%M*BjWlz3p>eQ`=O}H$I#q! zADc-DKZ3MGvvrUzL1(Uq>Fs^#%Gn)3<0wWhJwfMRLOJem#wYgzxAZPejjiyavn?jCwC{`vM|H; zr|;FwYa=#%wkO+mEYvwA3m=)i0dZTr`uB?iS0!F&{1BDQPI&QEazRf67K6QhFGQCF zAK^0o{qArUN0MY7&L#7;l|$0=xdq$Eu1j9(Ca%3V?7!#)-kY@kE-Mqd)h_I<)CxBZ$%oYq*o}8iLtW^A9+=JSFkwD2-^LXf8#!C0m?2Z+4d(Svd3ZW zt6K*UO)y6(Q&5uNp)*=J#N%Xu$P2^*$jp0g-MgqkHFVlNB)G&c3Y0hc@)$gCSkNAN zjDlX`si^geFbvB~d6`01T57+O6(fcA00l&51o7~shMTI?^OQODbL6Km44=B%B<7M6 zw#D0@sZj0})vPbl<1hEo-=IY3-8kVx2o`rJSuBl24g_9)3=GT+!*P7|mtWsmd=cnh zEC>^9M{|0?(|X&cL&C5e7CTFRaPC`Zu}`ndrxoDb4KUNCmOIU9hbb!?>sx=7rb9w; z90~9XRj@1U`y!91uFQfO90yR>)ItcanW^&{8q?JD_VAifa%%O3zQO;_okyPWY6A;{ zR|~1(YJ6>c&AxzSJ@v3ED$ZofdYvj;v!xxd0tN(*PQL=xre)wMKLaM|c1t-8Qo(9* z@RZD+rC$u*-(xwfNz0uD-0Y9o8-acwN<^O=iVvG zI|hb2L$A+k91RzG5gS=>lPBSUns%sJa^@RroXZ#Mn7M--||Hcm_5^vrVl{LoQ9)%nSV0vzhC8{CoQ6SzmE&yNgR4 z^=Z#YN1dRr3!4W+$9>`iCHb3Q*gP9KLy|c!uUm1hR@h-wuPvl!MR?!zJaSebO*) z`TlFefpL!03$Xb*Rj#m&M*-)>WS*&V6`hOPj!afls;6ews2<8+7lKeU#;Cwy)Qk^BN z);n5|cCJxkkl(?oS@A1D{Cv8>trxFvkUefy*L&;mAVkYM=2WWDI!i+D`wDPvv$v>d zm4{)??qvVF_VL&g4Pe9Gll&D?)d0)>%n zFh}H>gg>3vC86Q<{)OeT-#(l)ZhlUP><*upZH|Wdzl=c~YKRdeavoQ!*%@&fN^L|4 z->PP6i}?n+i8Uy%LEiy&K-_)u{t%FStU+_VYK8c`1ezW48+8ba;Tztj2N}l=4Txd< zUDK2b@Ek(z0-0^UCOZz3e-UD?n7JSMytt3RZ|?a7R0q-sSu_HTu;KigT+620r(T*GP(fzngIHzRZ#Il+-s#mhYM?ICV4xqqIWx zoOjceW9Ic5Om?oFGE$fLH5w@znH8(^Yz-1?2ihsV^NOo*lKumVi0Yei-k zs&k+6o%!?gzW3ecqDMKo`Gw0ar>!LlT`YAj_Fof_SijA`fOL}1_rA=(aJulUR7>n( zs|b?kVF#r;n zn|@0wZqh7ven{40ae@P$z zIDpjcuW-^6%y6_8>(|LIH}zCHq9~-hp?T-}TWgUE3eN9ZM0wtvVQ9TObkX<|M}}7M z6?=FPWz4>=nG*Af zR#B}!?~nG~$Icz$<&0T*?f+s*<-;1ak?*FmVKA?{;nJ=c++s7Ip4&VeZ4v*wcT4AIh)_kLLoP|c z;$xzHvSU|1-OO-s{!Fq!W!ryg7K(TJ=N8;wQ>vNh=oHV~jn@=)5#fL-@r(F5nqJb5 zReu5%JtQbSAOpy4}{jWW8)Z4Msr zLrW2Oyr@#BZ5oe|@eqaL1~w(g`JppT=|(MpV|J5i$PLO>QV$@)Mm71l_d%z2ll#_^ zZ*9Mj_)L>h*NbDFBP*Qi1S2nktCOJ~_pyh!^LWz-g9Ow=bUl+}d9M#03sp177Cp_7 zmI?*^&aMdEzHXV{`Ghl4?tEx%dUIB)=ov*$3`UM2S0<}I2XqZe9Oy?HRei$$DYaj z{qz12li8Q%)yLNl-$p(U7I}BsyK~^T^2b}^U`M;!b|X`iJJb{JV)W_GK;I2B4o*&6 ztyK|q>9ZMadddcmL0g>>h}~V1MTWrP0RioS=R7fY9zJ%0KKp&~iPtrgHbI6*ZU!CGvHaHJ$NEC`$4*0%egXH$5`R)YkDBQ zzkJjno}~YH{&dIPXHPCae$w6LCRt#rETATA{@}Y&TKYhiQP}6maN}z{w{xvUI`_^5 z!h4lX9&1@pq;vmrsEk%5M_h%QPRyOZtqw(kSeHLX z%Bxs_hZA%#sz>7?bdcjOPWuk-CizLCl9pqVjdzoDmdk~JVsR4RP$M*gfE%0Gz!3!9 z*#?bna4*?1=E4SQ0b|a5jFAVc5r|Xk2qF5FnZ@}z{Q3lxsIrvIqLtP6RVP%s*+j+!b#@wS%zu z(g?G6cRnyIxtvvHCisumu%)t9l$5cnb5Az^X%el0GNwKV$U5eb?$Cs}r*tx9HnVqW+KB4f?t991 zw`QHgXA_HQVkI+MGxLN(CF^{{ zY@vLA5!?pl^*#`Wt^t`ma_Sa}5fhA%HB>k=)qirT&)Nyohk8y)(RTuPZF-Tb%wnG_ z*x9jJFtZ`FhT^lPm*nm5QPj#cSQv}pxJC9L-5~f+ITZ{t!Dg&wUts@f;F}4s0uOk_ zB?y7ld?^a}N9{sZH|t_B$U)v~%md|iQ@X$bOK0kZS2Z;gs)hQ`6Zt zOAo`%ZS^ULTg*&v2l!JLE2B1s+kKR#3OA-2eYV`i>CXb$PTeCc9Uo@E2A*!z2)6%& z93dNg37!)R(A_)5Ua_qKp+_HISpg3b%PjV%w9-{E-8h^|-@Jeat-*i*mB!ON20J1n=0w$966lN8ivZyJdOj=E40b+yv+6_;cj{&R|kZ=7_ zI|YGL?z>b?g*Xxo^9n)fhy|PT58j@*lSG5NtB7N}SI~Uuq;@EjGrlurzksrNVP+mL z+v|!1R`!7#`z6V{z|I-wc`|wm{!ruF{wByzE$F~eH<`kD;-gr7reO>+TO~P=_EeVE zN#6%AzSM`J-$n2mU<^*ttR^jIiBQ4H&RMT1jbgb;*Ix2cT>Zc2yCn%;1!KLN2w{wL z8gIyAfZqZPBX9Fye@tAg7`neXk;o*r;KZ>{M@Ad{%+}0UFGn_ro5h~WsDI+kz@Y9x zeH|3Lnucp|TZs-hH#1*FedLAKoY;%qm6ul-TT>V$q~N>2m&}x9VcDFG<_T>bq@?y& zJ~d9BOnRR?1&^x0H?jO#v2;wefA*E(&(D1}%KV0L$RBHr#)yUH&XQuLaCcif+Z6K$ z$RQSb1ePSw#O0k@+u7p0oKQ|ql~V*xR_gp3+RupMrv9&Hl0D4kEn&9+D?$`zbPx=W zB-eOBEw^Dd`cy`3)dF1T@?v`>@SZ3_!$i+15WOO7I>fj9=4=#X#Fz$F=yI0Li=Y>^ zsk>9JN?*{?6*~#-c=v>{0mcwG6F$42T`>2)tP)hBrQXFhv|97P3!g=h;gWl)^`I5N1Sl1(!-f1zW=`EM;+&Ypaapi7-M1=Xpp8VU$ z>JGh6d;%aT%A`n*&o%vc>T&yYaK|8l&+-4?g~Bsj;9Ii!yDvp&x$km3^Y*bggUvJz z8*GC1|7_ETho0sLP00_J_Vv%ymUtH)7%BnPO}gpH1zJLw-&4lweQ_1PpOx8Z9RGM3 z+?&bO^{1toiSYMAc&t$#_xMpEU1`w%K{!YHrI{_aj=@*Yx9eG&{AZMn-W-{{a_L>< z75-@d@CRzQ< zzHk2|3-Q@z*}XC!c#@l}1>UQqWVwMu?U@B%la&{)(3@hmKe^)Joe}|&J!iQEc$!PC z6KvH_`wZMYsi!Elc82>;E-Q; z<#7$)wH=91zDA!fUA}lxkGmJ)>BalgLNEBlTaNtrTQc9xBxf(1nmB@v2Kwj~&q$g$ ziMX}2TRQ(7aHFT-ULx0@GM55CVyO6e;)Pv&G2I}5TGfWnUa~%b)H(IJ1~1U?3iQnk zx2QODP^#OlZg4=#vTyVivK>UGc%V;Pr(Iur)QRyNR)GNmV;~|?;Eot4SKoe3CG~iu z`6qgX9s@T>$T@ez!wg*2+a}xx04{d`vA&4j*xl}lTYHKB;Xpx%Q5)eerfZfK))qR6 zXd_l3n@HH{1?T$u8^qZi#47~_d2&k|F0Ce@N|l@f${~ClKpo@j2I$_CLXdJEmq z?MM_ofRybc3zN!%@M#(etfgt(3X+N)Mi;+g7Gn$y)c(!Q63`ep99Vz7$N=T?K0#yT z%2~h;AGsMpNdC7sA;tDvp}PhzF-4)+6ZnL6_Z4@B=`I{0=GMAYFQU#axlE?0(i~X` zQV#kvDrff<(90z6iYuUNs}h3d>o$pv;KBv+MJjy?e87iH1s+zmbSzTGgx4(Qafq=s zxFzN^tC-zgHA8XJM7akOX2w<=+2UI$Ve=^<12O0355?9^QGq-P%b!#Qs)4*W5&y(; z=mr>$lu4x|13J5yjj|%<09|-_OeY|Wy6}5$fwrqokj0gV;>m673d}xP5i1k&q`_(v zF{cc-44o}pV7_6cV~*B~eBEWC23h#A0eTdjgMF)U3MFLDP?_@pHQD+;X&~>;XAjI$ z_K5!{{&%SyouZKnDtsD(omN;QWaQtDLieHIdr@Eg6qPl>rT%XLX$9uK;5MOa?n1Rfg}TStY2gsgD)|8;p`#CmNcKayn0a2});{lc`^+n9|vazz*d` z1axaH$p^c&kmAD%-tvd4oSGZn)aY$rU_CGQ0-NTe4IQ*ZZ7ZGwNPz!7Pkt z`LH6{3Tfuprd|a7KgCA;hYg?zQD;rqfPF=L#{H+zBus|&VNM~}-2xJ*J+J2QYzv@a z9?wgeg1^!v6#Jwims0hS6zl{r)Uo#rp%UPwUSH<nPEFum)DBV*^ocFLG4TP)*Yk1=a6iUqT(poR@! z+L@zE1vV_~5V?qja|AIwPH0!*0HRGzpkpvx^`I%jDl$QKb^%ALE(am!`6sD!W?M|9 z?pZw8;|35ddx1_NxP5SL_6tpo@wOpt(0!1jH zKlaD78x+XodUpyHPe+Jv``3=7J_J|_lZc&!Kxo~VB7p4n$CDQ^&$d{S!Iw8_2LGH4 zd=DT)bnvEhoo1riR?vavOWnobM4=WS52e|`K^=%**sQo;;*9?wD7^Bo>ds>-6FNya zX1y^JRR)rxgk}`Fsbb=ysa9lo<1x>3n~PxuT3m0&h@tK zS=+gz6u!QiU)%H{8u?JFX!v5p0LXa{`$bliUH!W;#+KVJK-4jmXvzynp>|+}i|IrI zbQ)m|?!EIJLa3tIS^R}KMqRrSKt_CH3q`WPto(hax#WdFtax+>Wp<0=ziGY@u>ZWK z@&J-RuLlUi=%77ahB~uDc65oAAZ|I&*kz>vnrnGuTk9@#6}kwfvpBfEj<5@!;8MKQ z=chhL*mt56-E!8D6H9YyD*Tq<9|%LJr$gV5L`7*DOLp{wm%VnlWb4~Z(W zeU775fjFRnje3fzLSz!w%jrxjBR|E_8s)LQDhz&&3P&=;S*c7lHRUu~0Nl!}B+UzB zOtWTT23S1o7-G42NSjI?>m{a&xk+aslCuiu1~CJGs7D|odz+@Q#_rbiuwMbm{z!Kr z5q2Qh_fPhs2ACB)gz^1+q*7eh3LnE5H07v&IRCPd)(ANKTxN^ z|FUi!Kwbj%u+CW!`3kkv_SE1{R>6>y3=fPi!1e_OaR#NYO+&QuEuebHi@ zz+&vLF_frGFtBP=>MfZ-4J6ZV2jb$C+Lr7?(smJ~QtaDq+?T3ZhQ{m^9<@4$U87)< zw_)o&y>1q*v`%?NfI{s{Wy!?C^ti1=VIdylyW&OAFLR_$8f zw&KdvEfTpt*bfilbp}=n-EaU=C{}F@=pYh-5YeKJovOx;WwMHT-)D_4+popc49X3wV_) zX$}~RBeM(MX!k4K^`~NZ?g^|g4gBu9EY-vP+}kG%eNuQ@^tdzEeNW6!rcTh&oBMFT z)wGvWyCriwxMmDims&m&h~o)%-)kJA0ss?{+_|%`@OVMZ5UJd2?(Gs;V|dflJL(O; zrI~nzw%wWe`=F23wX3fy60=N?S4c(Oe(i0M(GTxEADKJ&Z2jKw>9WA{UB!pEDzbT+ zxG$N^3m)NPgz1lXQ*Qv&o1~C+VN_Vgu>1&mO(u&;F3% z+&L7hYy^Qc333a#1et`M)V}{N@T_!8;?dO;arI85qm~&pCcmJWJt*xP$43oL-TP!j zG8B?tdBk;>emi&FI94xIYiM0!#X7<6wrI$ANgu8Ex!1H?Ckw9Yamd}d%8lf=ig?eF zS*jfws$0Ed2FWm5UpSIss1>4}DJ%`Yk*p;TFZ-&SB6V{$bGG{PzVCA0)_`}Xk4w}kga>v8L3}-P z#sl71=R5o`%|CVbcZIK3Is;mVO{k?oN1Lr8ndnNbkutCPP#h9ogmWQ0f zbhYkfUJl4;bCbOHv-r++ajj!TQmGjV$`%n_-`{a(bS`t+3DrC{Uba4=7wHJv7#!?5@xU+A*={jesIXqq$6*qJN`-tzs^-)l1URdYLeE1Y!y zC^;cH7$!_Uayi)pK~e-6mUSJ>U0fljyX$+ zYjf&i*NhQMX!vV%!gu$O&x?J)~s?{D|8Ts%_KZ)>U^^Hf=ObvKt~ z$hv@V7TZv3DVVATdC0)jEFQ@g&!H-^ClSx%l7$lZ=#;f#dIv~Sc7hj`Tu6IPe3b=W z?HYwXhuZg{2aj(+kwd_s!k!x}=KQ<|a%~n3PS$RS7Fx&5W*aIjn?VCCF}MzDH)K40-3BklK>^{83URX3r-ll^tg}Giw&fzHu znqg;cFgKjoeMBaHc$2+01n7zXt=~pJ?M~S*M6RJ5F@JaPGN8UW676gsDfk+bni07od_L_+Bs-FPuHUjZ5 zS075k(xg*!n)^7=uRH9+z+KW*51pmgebU1>Sv7 zlpp(PH1G0D>O`DXO7;AjN~7E(gPi{!6l_90Hap)2J?g7VEhpk+RomxozK)FioUuscG!ifdCU`0Y-}r zz#icXriTTm&|o5bc!oZCw(~O0`a#K$O@=0uXu(cn3Xc`jG{HUyd$GTtrXsq=oFp#0 zQ<3P#td64RyDci6JLU9$kL*di|L~JzyB_S#W#UYu2-#x-W6`=vb2`5PhCi{)M5bZ# zJk5%&(+FIMOZW^n&!(C(o@%};^FNBNJ09x)k4t2gk(J6U>x8UtnP*1U8FyB=lC6@F z%@ql!Y{@*1a~#>eg>)6N_e{8Kvd0~6eSe?dfA{dX$9cT>>-Bs+U(YA0<1akt7=I@t zs(NWb1+jMoi7)y}-|0S*My0HSCkwZ#+-WyaF8=gw6n5({bNz8n0>nORmV~OS{ULg7 zaA|2^PYX=?^6B)@nb?*8AHy5p-QndxdMsU>7!{_&rKr=I`=@IfzUQaDB}9*yAE2MC z?`=G#D1C9h(=+!e>eKuJcDU;3j0Pwj_+!V6OX(j7NlzCS_myIz-Uo#XBU(_j_x?wO zh%NfA<8Jc=LbE-xd*zT?=zG$B=sORuZHt_osy+Gp`}cA8b|@)S;q;5E`rKgt`W#CB zSv2BseG{B>6wb-j@#|nWy1^BQvL6#$P!`XI4^g4p@Qp!=>Zx;3W)PY37YKmvlObn> zc14aGo8UxkTao-f{`sqlA`#2Ol(~OjbffUY>oH^aJQ2v^@Vmj9m}kTnRlRL7U-IWq zUeHJYD~)_az8|AaotFL%^mOjUh)^c*@>`o9X%zfK_X%P0AoV*c_GIgdyPA;8jI_Mi1n?_E8+ zy1xGJmOZ%zSeziRx!VgcP2R9JF-C+cIG;DMOW0ncf7%0-Zon?|Z@`g8SvVfGKd1sv zAEpDW2tZ_^;pvgT#zZDqar~I3K|!#Q@%LgBsJ0!Ou8M(X{gu<4iqlSjzy!RuQB(oA zLLgNx$AwyVjxn^lVF=K-wG5}9trz+^;-?mu8mnU9mX?sBAgXjLjgW-rh#6{br!>=^ zSpe!1{qzCK*VMnC37Nw+&mM&Kw>|x|K8Zits=P@b$cRZDLDZpUn*R+v^g1)sLD65h zqAkM#N>V8vaE7|y3zT-9h(xj{B4HAM*fHRpwX>_V`9)ulzkqKvs^Kjy9OTtCd?T{SyH27tT)o>6$>0-MzUp z--ar$?Y~3J5h%w7t%FU^;EM#KKgYXVG30?^fc8wJ?|N-j9cKax4C=M{8@X|NfrGYub)QSEm@7`nF!aJ#`&B>+>_+>Xnr|hS;BU?4+_>$&ZCah*t4Y-mai^OahFkY>bw^n|H>3>= zN+6|4lUml#y<4@toyu-?YyTdRwiI2`cR}zrn{C>^O z+=O*>UHTzkpDl)4Tf{B6k|9`G{w_mEp&T~{bR3{(y?{wPffna;HQ=(Xm2py&rby!* zP|YN-TaEQt+qtoF+rsNilMY3bR`PmxyRb9RIS#J-1AIg#P2EHipwA}5;B>bN-65Yn zcD}@iGN7i+j}&H0+NipjG%|v`%qOI2SnMIl(nOZi#|WonX`@Sm%QOuQ<#GBWl}NOH zlj%8%;WyllFjC6UeY>*kHpO(s!ofasObzDaD`uA3^CEJVCx;Wzxx3s#v|5PT- zLItFZLTo_^W9SID$#r$xya0pv68>`UB(Awj?#$dy&v|iQvXlGbN?&5^;_v_E^Wgg^ zwh<@sJuw0;;`UVi-a}mOF#DJ=Y6_J_nk;aJ-`X5pNB99a}|T;JPVWYVS!TJiU- z24W<+|G4oqdU+N94(w$waJb(eK%BmQHWz(F4WI|@k`a&RN*80eZnP~;ms8D7MSSNE z?yC`}bTZ*l^bFe9obAK8yA4DyyJ(LyN7}bd3&o#jQ#xv=(>S@m^s3G2)E^50hYO8| z_(<((Di$)d053$zr8-W#o*gbIZs`;P*`*mBGKxxyqEpp@n=R09N0I1Hg=gUf$@e~o z9^Bo@{JM(5;2pgH>ZU^Bjl!tp1Fpp(2*>-q{PtY-V$3 z0JYd92BE2A88K~(IG_yEL%enFg}>AG+TV?AX(W&R0`}N6^;XO> zEtfuWmpXJYaH(HSCy2O5%%LCSLDXrQ62g;m(5!9n^OIIYd-!F`HFd>tyJ)F!ot#s@ z{}_0A_rKc05%g5ows5T|3s>UJq1vt8;r_P&7?3XzUHhq^g$LoHQ+vnx z!^0T}aKSXZ7V(�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

(bHRCRgS`f0 zsyZku0`eUp!~q4+6@{7JI%eDd@M8~IZOp3DNYd412pNiW^VW=Ev56YW#vuO&h z8^$;VsQboYQ=zD~Bjvy$bdJQc?be$M)XOaE3 zOf#|Zg>vI-ZFpw|Or?d7?!$`t+Mzz%jn=W5 z=#is=KBxmlg9*J9sKI?Ec&JS)q`m)f^azw`22hPlT6$^FfiJi@=BW>?2;8rL1q=Gg zFU{8vka|pZ==CqSp4}3kPQ6&!to8e_V%Y&{CC~6Vo{;-AF*+Ng5mdBDda+zB=#YtN zQ6p3R{x3U_=4+s`ZTE3hB3@^v-y_6nC$6$J>CT8jBZqk|67K$6Swg3s!|EO3Zv~J#VO&{5w>7TLB)@BDq4<{} zq|U!!kY22NZ)&04IO$Tccwpk|>is6pRDSYUN%BR0V`S|QSD zVcx@^shH}mU>#Fp6j;p~tAh$RHWsL(VNulwQ6OrwE;0@2jVwf7 zmZwGPD?{%M){5O;-2K!yRiJ5$p_i{#r(;q$Ff_kXn@pu`>CwmMn9I>^(=%}~%e1~D z!`%(fckLpL=zHoYid9abfW%p!#Fzh;S*Y|TuzC4j9ZfT%c_W{_@qGmlnIsNkLb=)* zlj1}n5E-IGIcsMvA@!Ap6q<*o=yb1+UJ zMGcew6|RU(g2^ZT+pU>WIf9ejeURUQdg9mI#x_t*IbiHo5}~@28&2JMfo&ufz_q>f3lq+6|Gl<@GC`}rLetH>-(%72jpd`vqD2Y?IJuK z(vamrNpotj+OSey&Rpp``El zDleE(5P>3TUJAOaWL0_$>GE z@RtN-^hUc_-GZX7O&qL>qRj4r_B{CZ5;kHiZ}N?jqNhYd_L_pFC=q3_WXdJd!5}DH zjbb7xmpbte8E?5MbR)Ea;f68OVVQCf6uRaqSN}Vq#@)!!i(jBzgLkpRVN1KeY&S+= z*%tRu5@ZzeRd^cvecIVR#xy95DFKL^GEl1XvdoK%2uJATblqEzQryE~k4qORn zh8{fCrs2_jpzJPqBztcIH-G!_@lpc9dB#=s9I|(KaL%*L%J0&Xnc4gvq1_D+-UsXF zHRu;yE1P(Fr~Y?yoq|!FAAC7FBc6uVzk4Y8k3JaXzQ-wo4b%6oVtEwu{N>@VUSs_& z76P@-#12>v&);%qE@byc?Z|nc{zgG-C&Uf-@_Pn1E^1C5c=Jd`j%_G?q0>xA^X&$i z3N0EU@8%suo81QKL)r5#ANpSliws%3Zs<PFchqD>DTk?so%YQVM z%xnJgWa?8DMQnmh^1E{g8j`3~Y(6DYKUHA@)9`r1F~7G%)*gd3GIAZ*&A`;T2v1I~ zC?EnUy4J8-Gh@W(KXbv{a3%07Im)V|Sjmpl+-_Z5bHpl0 zL`OOTu&Cc$HYMzjr`XK6$T#X3ubSPpcA8^L=UZ8cHmCVnp93||m|_3Apo#jqCw03M z-{ve6>=lG38x>Ne`Pij?N1=nP8|I!sgEA)Z+J;mKLS%k-$4}I{T3wJxe5tRWMs3j8 zZtXXmsJEmBn+Oi$g%N!)peyCpO(uP#(F`t#U~Ike*Vk416yvaE36i`-O`(d<6mmy@ z04t5zj-9o%fwe-6};h3_%ZoL5s4`i{ziSJc{<4^tJilP!_G6Df#T!9~8pia$D{+5* z+qEdm$?Hg#<5}w5JG$q7!ib0v{SjH!IQx;dkI@sOz}Nf3KFBV;{>sn={4KF-3$nU4 z=}-&wDLdl<(T&OOE@HfFA>kUT*I!zha?!vU2+K5@@x>z*5E+abvItLk#BWMrKFL2V zTOf)%M-r~V`)tJk`@%w7@%}AZ4x3PBDvOGzWONghm4eUEOVE$mFr!urX`T(o^z~h* zE9yEq{6YdrI(dz*$b1T9VyD659V^yK;g(8)wN%%+V_Z(5zzok zxx1igwUO?(kmg(i%Qlwp#CznXNLCT#!!!K!w21vV+`}NjsNn;u_We^mm0nmbyROZZ zjn;4Yhb`)J6lHiXyARXj;9DH50&l5}>an0t8uyo=9e#$n!+ZR~HHibKDqu+m?TG|= zdmOtH(6n!8VeY8D>tnb+f)JVfsvA1|bf=D zlX4L|4N?ecnToCg3Yrfzh>E>`dOINV)BfkJPa(b5x8E05%exgj&5z02IE@ZCb5ikZsT8)T`q7hi1et|ls^v(yIZU*cg69w_frf;R$j zOAs0`L@zpMaNk(euX&x5DDTZ2O@)|bcQKfx|4#hn#{2;p*pM_x(O@kbr0FNhdH9nU zvNowwviCE&yj>cKO8sY*g<)x)%Up+kr9LkqIZf6LpY<%vx%;nc9pJnbFc;@hzLn6@Wt2;He@6iWbH!FeqoY0OtMmOJ z!**oS%ft!nTv?Qly9?e?BwlMy&bRt856q#v6}VE5S#b598}XP@4-=JHFJE`D@(#j1 zPUPXU?`;3jo?_Y*AJY5SQG~{>or*2)CjIbtBsQz4Fjm1QY5TFtsYSC)2&)x@YQEF) zgVfcIWXuC9qJzHMOJZ~TNy9FM?WFIsG{-rbkMFuhgd)30cpPV#9v><(W>+>2TStDe zwq6}n`nk80G)5Mj>va}1fnf|;v-SeOZo0)=0WW-3S92WsrxNm6ieH5hWI+9Wr>4c4 z6*KBCDFY;d6>XqcLKfnW7QMggHPv|l0T*_QvwBd1gSp)78-1%t#>--J(OGo6S`R}| z8Hr7Ty5c-3f5!7+5hQYH2(KWLPbw%~&bCLj2>#n_hNA_Wf>H=SPSvnb)66*?q15PC zZgizJaUws(KB|bc<^W`L7~5x&>sX7T>LE8-)9bYo4IG}w&bkx-w?KL5(~ zIH*Ncs-|8Pr#%;lBIlXEDffxCD;iu>#z6WAW&hk5(Ems`(tmKPD<1!K@JuN~_$T!I z@Ex7Pbo2Mh`}g#%I3C@ye98$t_{S{he<$pZBHd9O+ZV|y%?Y!JVLmY665Z3v2X<+R zs53b|^jGBInaGL5?3I6JH}5T;{Ef-;-g%olUG?q$KSpyEul|3xS&L3!@?vdEw!uTg>Tf_Dr0e>l< ze$EYM5U{(9cVWf8wyBNYioUpA@aSQ^9(wuO=pPatiZTDF$^2Zs?8Wy-94;0Y4{aUN zM^`%EX1W!F-RBrNlX`tB$ZlK6BqgnvAm2s?scSnBeMqoS zf*H-K_Oqja@SudBDF8CrNx(^14I7YtUjgGfDe|B3_ZV-T8Y+4bn3}V?*2f$)Ru0Gc zG8bgfcVku zL=kWbt=nrIea38x@|Hrl)Ir-2vBk_RGu{zI2aKSZqL}>HMWaANW~FjhFaB?z0W(H= zHeTP$O$6?=5}|E2`0>|J0J&J|hnZd3_uLSJT7hC^A7@Ow*4KYW$IxmaL)@Fse7r>F z5zF?ef7^Vs$HdNmW0y*~N|m%oeT~U*m}gS}%cRu%o77luJ(=FQ{nZrJ`>A*0VaFQH z$PR)IENG|Xq^hU0s)rW7V8a5VwUL?L3La&`jU%~z;|oKemX|ZJ@3jHh;`bxgcG_G} z-t2Lkmc!yXt3!*z)J3d%M$;fdnjg1FB?`(ZtJqY7IC*0M?!*hff5j=UauqFz zbR~oGt5(Jzc#B+)sF3u2G!~`tsCnCph}|)G=1B|%W7!iF5G&S zkeA=gO|pn?5Jl6q!}78t3dD3S11IBV3t?UrXVb4I+(u$iXVYzY{qs}qrdW|iWjSNh zT+>Z^;;j(=-70l2_*NdJna;TkTo-C%oMVVwp&7cwfnd)yUHgTh)2;{3E9vZFHc4*Q zp6iXH9Y?!ns!I2YZCkvRyb|i3H`!J6*`HD67Yl!@ z({qbDqmZs8ds6)xTzUlzk|IuAmHtFmX#1_~#{B%rq;0&J%ttNVgs-=a@BN@mvR~?p z0n6%NZWn7=CW@)aJIC%^F2571+*9;J;Hu%*{fy_ELASFe^SZgq`emn{=S2qC6@h`9 zqjDwgast;#kOzVaDlTzVAz!RK&gb6w=%UqD!G`4j9+#}8QtV`JuXCdWN}E2a zV9YS)XL;VcHZJY1gqX?1v*`An9_=d}6O>os>F!{SnT!@+Hz>fb2I1Z>QsjZMJ5n}s z0qe9Z@ixhaamBst*V1t31ISN=!8{j@*^22iR&CXJQUs-b-nK%Tz z*B3pI%APVHJGjmQe&Z=&j^VS0{-b1CLe(en9ht0(ihiB^M3W^V_${-udYb!L!@G*P zD&-u26BT@A=exqG_YL}$@7x7mac}SshTQ%r8|*w9yO?NW$u%m5-y{dfXn;bBO%be$ zU$oxS-`wZ{gmvwL^qW$Dcbji)n|TTMM&^eUfndtuEu8nx>a{`WXW&NIa@8|16W%EI ztbXfQDr3kv^#MM#5^Muv4`R8;<`jht+qe2+qeOYvc~5Vr(hYN&-o~=c!BWf2C>!3q zD5bH^qG|<`MrD)Y#!?^o;)UoWPFaIgd4yLD3s6j6@?CFAs=Anh+t5N!!c!@0TUG!| zX^_zcZ5(rBIu0-N8YEq=tV(GCzS@3ja-rQm2`h|Mur1rSfsNhjQOC_@jwweOE(ky9 zRpb%&awVO{HjAo<#@q6isYE*0J)(7uT4|O`hLCzckcAQIcHEjOb#Hw*S&>CDl~CW- zUeeS8&2d@~EAJwVElERb4!ir4h*CED?eNUAg8r(16>8U2(cI`& zd9Ipb@7`DPh{G|g6UniCH9Z;0nS`}!|Hm*M-w8GZd->$P=nW8eUG9h>uZ`eTjFf-= zQ;}jjV^~hR8i|vcO%k%Nf>_oI$PJzLEp>kVP{A>1&hz&^*_^vPV=~ghbmQ!OLtdN; zl3k@Pl6OVVS+4cqN~QBQ&?ajmDw3i!b0=oxq*P3rX%F4Z;qoK8)fMQ;=>wP+!)cL>0`%@Ma%B_!)y+TO8DZdPZqZ)_OGi5 zncaCG4F)MrNSV3++o#f}b!|KBt0Vp2VVQt0x1x>s&)fZR{%y-OdMKY>jF3C0E(80(`&K9N)7)Lnu|C2u%k2RG7I?;#+z?LW*@W;T;8d zezuekn^XAHdR<@K<`;Y@zY*r$O8m(8btm(Gn@Ff4GP;&J(lbG1{g zL4|b$BfTy;gYInGVs!QW_b#T6nWpo930>S#4xvnC$%m- zAw%7*wy3NJb=zzSZ(<}Td1+M0$~ClG5-IV=xJM@|i*gSnfoBtE-ucC589uHyi&j;-gqZf{KvMDxa-#bfL@z!z%=Z~f< z!2LbUg+4aMm1%G!OZ?faQlN0*6it+_Uy2w}u4(OAT0_+~t3APBN=v5M6}!L8(EV$j zKhPEcDbONEx|36a(=+jfS?xK~7ba|#>&Oqe8r=!Pp6mML^K58i8^c)B2TsE-!_H+6 zF9oY|?DTcGoW(22o>FOfPEX)Q9RZSTh1}ycDcm;-+2tMPi}oGnV<0R~d$Y1`;r+M* z>U?pS$M~cN^Lh$F9(bmvUSZq1>$$zwuzeq~SIG#MdY-s#`#EMh(Em|djeap5DUinIw~!s2Sbhi$39OHGl|#%#YeEX{+d zf3!he=*i0L6~@#CfMf?(=Pr6=IY_4kpp}Le+U22>UqAFl8x!QkZRLb*$2~TjkBp*0 z9+h-W)+DQ6@DPi4Yt7TTjg(6QWu)FA`CB1ELFINT^CB=vnPBZk|ChIwz3seK7)->6 zxq6tT$8O`}M0P=0A^qBKLZ9n+vl^8)^cf14P^Bz5#!EE)u{*J`P+q}un9&=a$_3O; z?`uk8CLA4r-WZ&+j={^->#AGB{JyUHNIh^dR$ee0t<{QZG)DH?@){Yg+<&xfMER8+~ctdNgsi5GrJU z>&C7#)Z$(`zp7l)Un<>$ryw_6;1?f?+L}9GeaU4f?tBkycF`63$3vN$rLIy@b$pj| zOvQLSa=86WIb8lR(rWbm_lIRSLA+oM{wy+7CCm;*cKu4cW;ubs#OSz#HF5UYh-N9d z)5V>GgY;aGtsm8lb8iHPkE4c0Y^UA(>fu8LxjC^52M{9-3*C&OJ+}lS-+ao*U22x!Fm1@HAXbPr+@LVr;u6R!0-Z1XzgdpeZLO4(bL@isE+flbl&B85GOPEWV&-(B}lruxPySolw@RwVprgra91dGqi$po$ZcjASv zP|P4+Yc+Oa*8@!cvVgI(0;#38kjr|S$SwpXS_%Zz_k@=Qo(w#dLK`Oaup7hL=jw*u zfmB(aSxBpE5wqGj`IVxQD|-XYfxnUPV!?JE#dy=m`U5*1TQr(V+AoCl78bAi^;a^K z4;)46zJ9M#?L(#W*S#au6_9&F1Dn%>BH)p#88US-nt8;O>stzXg%47l)l|#YfzpiE(tNS<~3W zZcSE9O3gp;+~-~K@;sAnLiB}1dA_OTjULMcqtLRf)bu122#La?f&q=TAL}tf0gaeS zP2a`c@kickvn{lR;?9)+PH+?JZoK8bRLx{}Vy(NXGUzk_X;%$=%|W7ISQ3R5tcHp>tI)!Gy`EN1 zQdNnxgv)tstk>+M5EZNq^pdbylvINt_l*US1YoED*P!J?Q+y`5 z-6=IvHjS?f`}DJnGayCYOj48bpsbKfpYi!efLxosWWi-=QT`gTP?6JI{IJUfbxldO za!Tu~K$u}Y4vK1o)i>*&M7KS*;rnBljUZ*I5j8EzJy&6!(au&rIi*Ma9v5`kJW)!x zu{Hn=P}=BCvL#5q{LrjnL6GORmDQrs+H-083I5aT@3nMwZ6^J)X)Y}tz49fZHJTeE zbJ$->uC#W!UI{T|pNUm`dN)J1jicjHWPG_T2fA0m2_>ZErZ1`Bh?HG)YfhJfgO%M^ zIrWX*$b1SxSbfdBUOaD*xgDR|VhYH~$z~4QMBXwOgwY{C?74uF#|6cwuiy6QD|ePJ z+I^C#%LRIZWwz^~n_Cp)oCH_jI?^KLfeSgOq%ai^8PKrT&FIyEs`*uPG_Gj}tqCbF zF6PZr#Nec-Ws5%v4Omejno5|-6dvE5X!O9~x1h6l{3djBx0}Ew44YqbpZ={$be%is zQvtJLh)Ov9Lor5m?r&e_;xZn$Lg9boE3An+Rv6mo^>Gv}B3ef|NjGDKA{L%%(use! zZM(@pZZI^3L@|58xw-Y@vtZj{|B4w|-Lr*j+a z2!my}ari4fMyhFSZ`X}C`llWDZ@U}w!%2^gB-7Y%>r|F&Kh5+r=pRAP?5pSSXexOQ zTv}`H&nJbS;mrr#cIroeq_Gj(^j?fNIyw3}fUdhtzTX@m(X*nx8kO{u(X%{J{f=XI zid19hLbqZ;^o^0axyYvH$iQ02yy8=WW8Xa5yGRC+)#k$j>9PFRx4%e~4vpu9iar?2 zP`1+MPpk?_Jr(=%r`_|s*BUMXoJ|R1hn)dEDh~?GC4!q)QYBu2w#@v6+NV8yJ)qU6 zJYkb5q^Hgt>IG?XRtqS;F>N_neMx=FkZDRrBP)Ro2Ey$esfKZ;1*?V|9ZODeS_Xl& zeWssuN;j;6&n|s|s0+t}O5N4g2|VcUNIeJ8*sTm12TgHrXvXsJKIJFlpg#F_jv{Z- zBX?)zxFDxKXM7F45pNf`4r2D3aj9@`c2@HW zs5<*JbIglZPf!DOJ)n0QWY!imSthqDChMS;cL-OooA78uACoO+RfT-r3zDK&Zi^2J z+y}_7TKYJqcH(m0Zk%PF8Jpe_w??JI)3d$hi}7X$0f3gHXL^WeeKhw%tiMFZ#on|h zaayJm@zK23`hP3A7x&?{VUL65>3i*OeH4vALBew1pz7&g{xVv(!)IuSs^Vx#-jPLYbc+yohw6!QJ0O~)up)^r< zP?p;*a_}{``{Xg36l`$G#l5`Bx!uQ*^NY4J^|Vc`%Cs`B5`G;wo7}EZrPZo0<|3xL z&s(I@YmasqwXtr$u+dY=a<)m8AMmQG^Uu1UB(G};&JU2vo7J0=sGZ$4$N(y?5uD`z zXZjNuu^L?)Tv=f+zqReSgFI4W@vS ztg-lc+qG{fxunYw=_q24Ix{llWHIXrhK*9m5SHYed4w};;X+;h=vxRgd?VU**_Sv2 zcDg=8IkzeVg6lt-$pNUdX}1kZO9ZZMe*wK15oK1fFDb$d;owKf=aHOmF1YvqmSdrk zFrs$3BKc1G?eXU&Mz{I}#kw~$KLpguIPA&&Xt@3c?wn!KWcJTjwXjVAt^{wmhsvW{ z{rvB{lgbj@N?y5C($h*h2D21v4}S{WoV=s@{bdfI%S=~6dw}lcDYF!JJ>JB*xH6$I zm5OSfpq*m#kg{J6yV2|ELWgtSL@>~YjqE%{-Hk+FFN3m^JdJMRo`dD8{Z%FJck|Sx zFCkpdmIY=xPwA|L$LL;FSG*K5vGdmRt$F9zF4iX|{7(^G=1x`fMO<&zV}F6B;`Ot0 z7bhAc*M+D5MBFr~z{4A{_A!dDWId;JCGXQDI=wRv48WwmK7TYU2Xy;$|76NAQkX4` z0tB58KbUkCV+cc)p~4urlW0HyT@#5K1W2Z?^UW``UKc!^!st8hX@HCUWC6+NyS`9C z>$ycn>H^f|O6%TZsALfd@@S^$%f7n4Mg=WqpE;&R9CdbHN(!t^g)Y>#WL~46s$;dX z$Q-Qa=o~3+=D;I7YT(H44Z1hti!oSpk6vUbpq-l7=~P(FaeWX*Vrfb))sQu z(Bk7Uh>1|xwjt~1%qAR6Xcgr||EvJb6Ueuq$fpWAC|o6Lj?pc8ZN41Y!wjoL)l>H&2*l@(9N|5;sUB!qO3ECgXTMO~vVMhf4fM|e_J;Z0w`=KFF~0Qw-ncT5 z&%bJ9abIEb6V&XU>iv(UbB|}b|Nnp2)fJx(xLjRw-mX$9aww<94p*1ZCD|o8gtjDv zSWFl@T;+-qmV}(PYGuw#h?PS*&3Vo$a+;Y_%w}ve>-X+^`~BgzgZH-g#vZTN>-l;- z?oU(wM;s(@f)bI1~V@7!qKQXV&m*_^PM($+UM2vpBbl_%;%%5Kbs zhYqZ*0}|>zZltU=f6Lvirdb>BQr0v!<7hTbReh*=)At|8*u+1^-TW3TPp#*lb=S(D z&N}z3IfB)ZNpRQwXn265{F+^0O+&Tmy0-~FR=XQnY+l~ffShXo*x~i%=F00}gDM=y zBTH%GW;O0vD(P_0w??3VW&G3g4y`;1M&M8H%Fvnc9OQP$-jlF~8=y+hk>+H_6%*pG|4D(U; zA^9I>aT$jDzR-b&-Au3VJ5;gP-Tl5jguW2$yykYn6liMWlH(TDoS!#)Cig88>m|sW zQ>$20w;Tq-Oa)5Wz%~@zfNr3NnKAfQw5A5R7dl~^2YkI5NdS5StXc+fXi=+P`GNFc zt$8R6eg0}uFbq+$X9tHk{{^6P*)f|I`X_r`w9^Aug7L26XXBgHdOE=3cs8CF&#{32 zu~|4?_X_gEymKgJT#(fg>}(525aYPap5A7XN{fit+de4n0G#KIzXE0-!1%ul6PO0@ zIo8-S&%Wl}ji}<8ivJxG)7QMv8Vu7Eb`nXAzV?t~P}6Wy7LYur{se%Fq5`toOp<8P zGvwrcF&**c-90a*ts zQhQQ|XZRN&DLY9VwYeL_tBl7=l5Ub3TlPWLUbfWj#k(N~z#%jeM^2e$hI_F);( z<7*}P7$B0zvw+De_4s4lxzrZG7D3kooj<{~i!z&Kz|W^a)F^IKsZ|0+Rz!mlf^2&Q z59lQ@Z$0#2cIe|c1;~d?$$<^Uy}AqBQ^=D%A$R2R-2c`!g&EKqD&-oTat*dm=s~sM z(J38Jeyrx4Av}c5=>;a%K(46UM+hSR*d;v?yH8S@Ekuz(uEx+bdK}zQ$UTkDy-x8` zo)rvBY7XE6q17ne2Y^}GsD*M($bDeQgucb&j1}jyE4c~vR^(Z0l!;ka49c&JgL5hw zRvC4KkmaVxMKWFOYk6J~H{K+X;h8Eqi)@R?0&+>OEgzRLL!XYxG<@lfvXw zEn!=e(kA%&9iOL~(-uBQ$!->#aZ<1ka>*%KiDO6e+hUUF8)S=D})&z z2s1v)IkBJREY7XjhkyDT6DkV@p{zXGyK;Nf63Ut_HL5kuc7=u8Pxv7dEVmSHj<7&q zD$=!%eQnFGC`gU$f&3b__AN7_%B;OBrOGPM&={fxnZ2H?XbVjer<@QlI2u-F?aa4% zb3R-r?dZS0l|dfP?2Nzysr-h6Juj>(fuMaqu;xj!q939gI?R+nU(_@JMJM|RlbI9R zgOBFEm_6eCVZ}2LcK5LlRkkZh+8J@S(9SvlZ=4A6vU-ZYikWcDE64LZ=2W#MvmUKj zIz)CgG7xxAfx?wv$o z9uF%&EuNak-~K@~+bR4z9;jkbJPag;6vwFrnF}QEGnXOUF^}?H%lp0~8GhQ@>`{ZE zt?*~;o_YK=aTz$(HSdRw67Qba3RZQgFZW&hV)X?74+ig-*R!{4(S0+zdb>CtX9+KWo-4?LsCSs*&M1k5oCexz} zw>oi6`XIiKcmr7A3bWWI?Cow48IZGfV6F-063(yGl5Hge+f%}t;X@|HM^(;CW@N%{ z;)cn@Lj0hd52kL_u~siF4S#7)q&MKuHYHb;Rhe+{(p$NKutPXxO&f&RyVn1S}^1=mgde3UtbQsQBgbgj z?8V_05m8RkJMn{TSUNneJ6rZqtj`AXhM8jLi(z2ClDXWP{g^JZ%ot zxCYju+-c807Vr+_KrP-k#Y2DZy6j@1?v$z4Zn|*5EJ(}Kbg|-F)@Az)&t>0=oQj|v zQvsJz`)Ss9T+b*@BU)QK*(OA*twzt|LW6s`;OfYj>tib%uzPDz28tczrpRv$&URk9 zfi;(S%hKrGo#qfN=vp5)2>X{3$a4hHYx|nRL0UPkXBH-FbpT}J+CftkY zD$P2p@wD9Ax=Sgg#dpH`snT(^qrLkvIjDzO| z{xr6xCs){(1?=bE=%2g!W1egtCbZ8oumD0QckPLu&3eXZS!9FPwd{X_)K83uC$)wB z8pgMGWVK$7w7XWu{>{QdoAL+Qc0n}0c4{UzQUX&IhpW6U*{%s z<~mE;PsjEcYp?O?&lMTY7OA0xa8s;rV}oUl7SkoINYmEajix3~X4xlJGxf^w&m~!Us0e!AwRe-*fVlxTXMno_z(|0r zcu73mCB71{Gh`i=I6z8=gH}R52l-S6GBA;kOr8DY?A5R{#wOf#2@7Si%&(kS0pM&09{0CJ z0L6sOj2}b0`8AZU*#MLh<@)ejaVfC?t;8P)%ojDhH3SGG_VpnvYgQv62e!kC>shN+ zlio4p$#bJ+E}$9dXS9zTxt9=7ARRW1V=mnzU?fmAQ4V!tQ(T~eBjB_|lkb}*-R(qv zsw)`AQK_(LX?Q=wO>G5J{zAIc0@P!MifLoSZIj8yj+w@oe#!S8wXoFs@Wk{{M0)#D zZ(}Q2SY7lRi@R!=-^t^JN@616Wp%~lgTfam>VK#7^>}kFYN`JRkD4$!I!(t_LHz|IO+W)RdgK0i8 zH)gryk#@iW_m+qADJv&1i5`bikoxTrQ0noDxzH9Nq%%WD?&nIxy0!~+CeVjl0WiUR zN`Y{*Yb!(066+&PH-_19E9Or5bzK@Qq0oTr2t|-B%!LRWX6i92h1O6|97{YA@@fWm zpN!_Xm}x1XKy6~A8okdaNv+S85oK`3+2nTqCIC>#jNa2e^!p*lkjuJ;vN`O_&Kn! zu1<8|@5LP=v!Tl;7s1h)tU`Mq+)TZbNWn)k8J)qV0*@#p^n>Vd(pM}n?(oWSQ=-$N zUA!TbS8USS;_(F7C6R(tY_vX)S75{N8b_q}jX9g1t5-Gff(c zw@cqBKJYxU?5}x^YEPi=O2vZvNq1P=6|R;R5hO-oO4Yb!B1^H=ARz~*4DasIV8>kU*m z^2{`A?_i}M){l#XxAmD zl5{&{Ys5$gv`|q(eovOnurn*Jkh_Z|&Q?4}$zu8FTq@4lNc3~V3+2^0GW`6#t#%|( z;JflPV?x%?KF(V$q^|xEtI`9Wn~2+d)=-=PQ<-y?U?4Ep75&1eFfi||U?M_#e|s(h zb`<{!aaxG3YnTCuYbL<6vn>dhh(h`K&iW(5K?yH+dzL!UxKsh6ZYI%-fatd$yZ9-? z19kyjH}RJgV1EN03A$uXpay9g`yyGJa0_|)Qk=;IZ8Nt`E|H^WOv--K`!wkauA8uq zos=#UrNC(x*C($2*6?aG=KGFG^itKNmtqBg(gi~F97fsq9fv1Q(hrftj z=QqiC0V}WfUhx2E;7SaXlc;Z$35c-a5<2=`15^IqPSn~OSF%KkXaM+{-b;T2k$NYK z)xgs2RscuW95`}((p~i%Ap8A*)UVYH7n>9rzl=jnq9a2_;j7w&zp{9b;`T04BSS{y zt49Ek@~IqH0KhU~5wI(QtnMP&SC>UbIidf@&F?#&zKFU$Q5O+H+CX<4;k7Ou1>8JfbF# zQK+Ollg^DFv=CYkJG>{~t@3G`q4FL5;s@^|=>;xZ1>bkYsBU~L`y+Pb`RaQy*&EShf(_deAjNZTvcYXRvm!rG^BBSKk>!m z>;pC^gZhM8Jk@)f*AcQ2oHCBvCnKJ>RjXkAej86ZIK-EXqqVGw2mXmQ zQOO@*8Iq@_2WHv_;~s|g8rvr-d*^xXSrU)kK5fp8c`CKh(QveivHX-1!k?~4J?XJ> zbrt|xC>}mr78c8s=#()I_6mYih{R|!YR+4H3Iv5T(DUvT!S;BD!H-9%nf4p z?6yYGx{6}{ybR>q86KHkr3FOJEt80h2A5u^O486cyCDb{5_Q(vr<|0g5#rMjjcAX=Cy*^KVI^AQ{mdR_%tDlJ$4SO&5Ce$S>xF}4l^uI~|Av09T;Kaj^UF_H>RMv;~ zt|AVX*_xod&niZ6sw361?N**W?!c)S&h@8o=$mt6Mqy!=i5ZE=9CK*$y>L8BrL%l9 zKanCVZu5fXge>_14t^l9Y+6?jI^o%W%S06g%^r!W!A=DRIFcEgeaB7!*fi-&pm?KhgYy|~ zh`of2?>pRxO(7lfhyqE*qDXwDWR|G4wb!s~b*L1;uam3-yJYZb359&EJhMIs+~Ctd z(rPPzX4BZPceCdfY+cx{ye`T?#EmKkRW#dNy3H$cLt0nMNXqX)`m`@fPPhYa0zy{S ziR#leA+53#IXV2nwgGxPeGp1&0td(u3ft+f=)>D%&tdw=*E~LQOh%T!BxHHvV`JSP zZrW4*sCVR@>?u-3p?HOGpgdNAdYwH*ee-?CBJy*-M_YxMMTMhEngz`+zrEu?*J-Zl@BJx8R?D z{J8+HNO8It)J1;4;|G3DN8FXOtG@3T2LE_(Z{jq>U1$`P_v0N)| zk!di+CpU0nPttJY5a59q8!j`X85@Mh!~^c6eOk5RaoKNJKKe6o$aT_iyvrI@ngyJx z+47c=>;z(wSpc{BzQdIW{4FLcmr0_lylE;=uJGf-MgKU32KH-q^ZD;PN&=or6oA(! z%L}%tXlkMgB2nq204&X9icOZK<1%Y3f31j|j{Mjd;3QYtf-}DF@EAs@?k~plPTtYM>^Gjg^C)^7wos>R1?>EzPpR&f@O@b({I9 zkRii9X~IMxdq7z~mu`}-oS5aMU2GBNx_om>Q-6nh)il6doDYwI)x^{rrvd)QlvIS; z*wlL56=jt_71dkUbV>W0qVSkMZ`YyEZtYB)iAklZCoRXwlP6}@u@}N)@D2_v{#T-k zePj&bhW)1vd&F+AArd^PyM|0D3Wxlv6mU`_)ZZC58`xhF&`%jc9uYe+cUF37h~l* zky_x85BfgtbKy$h(C3qjVT!FDZHmuW#e~nbKYGsyvF+~oJ7~vsv|HS&ok)eoq1@vV zz-QN$1NIR}{dJSHiCARXx}4WV*q=KuRi|MVw!1IF6BqF0D+_gG)dic_?>ig^E&7-0 zv{qv*cm&uy)S%0GGIfE^gd5$Caq-S`dRr0Rc3%6sPo{5P`yra+u-yyVF0`1 z0tBoc&$me*+W{KZ>&5?lEVbD9GFx_`HEDEAAy+GfVCUX=Bv|m4sWo1qKtCKD3XDU! zcg-blh6LJqYjn0tCfP_@#Wajdd(}-t=9jdO&85KY;uVbmidJ}{+c6KjgBQT(_NK$x z1^}yU5dK<=gQjG7-)WpCW2+!4w|=tfHLWhESH+@0;AIlHd4+6u$&TBzQw)MjJ}_Xn6^tu_H!i zxIsuFs!C-kcHN^i2RA2UVAyXWn1&1L1 zho0)7Hh}{_H7+vQP5dD|k*Km|OawHjp4zOMg-GzF&1%ZjHc+Hrwy9UC3Dc9!73Qq= zO7Zb5#NA0xYGNP&<~_pW&&u}}z}?6nlbJG*v;m=noR;6LW-(K{8)GLh%@_uqUfAiBI7{rws%t=TIa`qbu{LV&r9s4f}!x=bD z9Jee4(dNN{htZK6u90Z>OUa`Qy`MUyB3MbYYmJAF#7R=AAxGbwfW?ogIibmc+^DK0L-RB@s)J{s5JW7+j{MR26p%Y=+63uYojV3WY()< zQUa>v!}{rUxcYNKx)V-iKYy%*BiD*E0r$y!YZPCcs^veGnQZ{$D4hL#O=@GZauv@( zB>Wh9N)Unlbech|fg#V8-y&B-i$a#AC)WMtyt{A=LKzr&ln7LN3K>xDbHFNdk7RP& zle%b#xW}1KAIN|iF6;4_vXhAT!!j#*1Cq2=vfTI;?Tdy}6A`11tZ7!C{>$yGE&8$w zmB%08O(!-`GB!L`8ecPZB9y?}K4cQ`6xab<)J}PMF%d+L0}ds>9}fh7v-BRGzqvj-!4h`4Uc8On={TOJ`lZX0(9toVX~sBPVO9J~KB^1_xuEJiwS!O?$C zUGb=-JT;+fgtQ^;_V*)3k%3#a$P1>UDcjwpQjgEe^jCT7uSdz-gB$Aoa<<=ADbh)m z!+W`R0TEcSJ>oIY4T8r4^Q6QTl4$UgeA(n{fpJ~p%5A@X&M4bS{#R^JLLG$wGTgKo zW?%4F8E(N{UH~sW-^zix6Ck+tk!;44dYaBeG_n)RyrNK+)O6D$WY0LKY*M#(x@=|F zg(&=$_rwF^D(cR>JI`W~NXFk&-?%a*{6zYP0hP;Bq4RhcP~_@dhlBMj=z$M!O3FaS z_9K>-Jt5#j7(K9YOPO=bEbjIoZ!B#t)P*HPVTK^^^2x#o=qR=7+Nk0X4iq?Kxgt%V zV0wznJ<`0y%^07Xd2o#o6_uog82QslKEYxEhUiZT7zH=2M`K&okFBF}=P`EE(mlaY zdLke_OSgzRaVq=!8hS?`h;Lh<^jI?J0#L_DMDY^&n-|8Vzp1D+&l{B^&ThdN;OCYn z=bP%>Vc_MjQ|si)VctL>KY&$0NO7P{uNO>$3+ffs>1InGEDD9*{7)7$te0HAme0hm z6~z?0u|pUTqkJvnMyWa z1kOvXp84m%AIw7}4*js-2w((Y$R_OV#|lz|H{@w>vfo1ZEDQuod}Ve8L?0~a6B{eW zgW^AQ8QFl$NhTN>TYR-_;#gOQMy)3E zRGMc#7>S*YB-rffiBmZrOT9ogS@6MJUZ@Mw`AP*Vt(>r^3$y&bLtTq@H0JZs%VsS_ z_wM;^RIC~?5>k8%dw@V?k04?h>)R`MJ!oRI7|w-Vgk=@gWtG_ZbL%Foz@40E*cle@ z{$P4X8y=)`yPgcLK@Sp4-c})B#oCNYkuOe35wv>NODW>B#<#Ks_!o?Ia2Sqhl4-O20kYwN%xNN1~V8= zTck%&tCjtf|2Dqwc-PPhsA|%hRUa9iuu(H0@1$g^sKIt)`zAVL(Vt20+BZ}C6t_wttyXnN-|^o`wpOTH;x@_!9k@~W3p_0TD=orU7|9p zVnlU-%(FeH$V>c>Tm+T@O52E~b{GnF2qfzP=&vT{sXLb&+v9sU1D69|!4BZnkh?G7 z2+|PmtU=0qqP7RMN%5fo24M+dkQF>*SBGF5>d?DwJ1~JB+CDB)u^I%X+4ZL2gCf$o z7`Ep+>k|PzAZP4dLgkA*9on`-1}9u|TNfLii{l3;47>OZp;f4~>20v>I{3U4%6cwF zI1C|_rKCOwY~S|5Z`+20S`?4SioPTO-S3HY)?i>U7}X_Z^QLqixcgfPhpY%t~S$8&?Chr5sPFbsZcg*etIQeZKE7s09KL@@9eZ zD)+y&kIj_b?4QPEg|auwhxuv}_23wqpsBX9vxVD~Yr5q&w{h4AaD~cye4odU`1@VG^XXK95*(;3B-`6sHNbS3)-g~gXJ9L78 zv8z0BHoxdY?gu@x#2TT$aa*n`JLs1tF{5ag@qd{zjbJ3o{sU$;>1C2|Nu&;=BWw0b z5T``2nCi6l%i0x8mpb=OC*>GLuLSCgzZyZmk2tz0_x!%&gffz=B1kQpKF&$v%Kzad zETVN?S*o2Btww;i`xEfhZ0rQ#9gqSR^mYcAXWN+?4U3f3n6!s#HMv|oo6>M}mFy#P z=aJj{mc{R)>I{T(%dd>RjxfYM`t$W|XwAL$b)s@Vh}JwSwV5!n>59Rp@=`jxT;@;X zyf4p&i9hnRc1 z*wQSM;SapgFji4e$ArzERJgwP2Y#F{Uluk&A0*h!$6LLUo*#|Hyxi8<)*A#h4-z1% zaK%?J_4xT7hSNH$czx9|(7~)}-2oVnqR}nutiYD_Djx=-dH!3+{Hp86g$un1$F03& zZI~|l9c6IS%W9#h%&$$p1nh$rHRO2=+Jd6VgRTr@>`n1LpNZW?C}eIcwvMW{RL9ue zDyVaRQP-ILVHO89InTRQ+YqSgg~Qk=o8&gF6G_@BbK!5vRS&vm72w>nHb+}LhwC}jiR6p_3cLaI*I#UN{Pf6@s`~PFjb5=iL z4`J^oDfl_^N!<4xXSYF$ef0iy6?>|K_276cG)~2l0iIv=T}aCrk8S+fM!xsX6inq# zrrYQmr=)2vW^Hi#KljPsQN=ND>h1f@-(R`^NY$m|@`-EX?oTC$Vo~V>G;Q@G0m*Uq zOSSwKvRqQ_T@qaq({kMsGfU46k9oLMzZBmw~H-=`zu=eFs=1k6c ziWP1NNqGT8E%0kV^311C3))}OK0X&5R#g_-rfVN+y8ht2%jM47nx_uEL{~$S^Y`Sn z!Ti%K|M=JexH7a-i0710PSudyytJYYRW0Z@;~NtKz4JN8`njp3NAnR?xKBa7z}2Jq z%2A0YFkV3d`z*ca$5oQcLC@J5AqX4AbH(ki1;^&w*ey-$)}P+DYDR0+mKZm`^gs?q zaIG7%6hb~pp|O+BIE+Iq+qu(Tw^7BI4AMd!zJ2=5z^OIg$KfU96K{SkC62(>EVu8E zsO9j4zTE=BvT%)wLb)XgCW=7kha*JtvaH9VfER!_eOAC76$*GEhDi+Pwf79)1$Yie zYI1**5+40@@Qj63*C}aqKRj!J{r5}^+TKG$hTQdK zO?DKc-gH}r+3gi1mhXMenzo98x^IG$^|Gm|q$ju6IB$4uK|YAi-}(8IohqF><0boL zDbbAkuFZhZcM2k|F8WHwXVV3^E; zLja>?C#SdfUyhypiw}2Mu17RQ)N8j$VHkQ$Y09Kxa}<=M2{K7uj+ro3(Qd`8-D1SI zVZv`6Yi{M3u{A4Gj|R0VK|VysORV&F%Z_M8|BKdr&p$h@ko5t=sUfP$PKMKB6hDMb z9OQqb1MP=uVDX>yT&Gm-jsrz?_g7Pp4`Uk{|Bg@~69+za8yljh)thdv!-^iHVE!}N zANb|)518FA_yg?Mk^U#k_>I}Jqb!Gmi+=8FPo_iTkYD_@sJqd-Dy}9Ljsj>Dr?0!6 zXuE)hME=Xtlb-s&<~a@I_$I3-H|&MowXe`1s%~li=Tu;dHxu7{tCLuijQAf<``CP^ zDR6SxiGgK4*Xn}ACmOhswJD^#*n3Z>7yb54gLh@RCYJg50=?rtmm0(toc!_VO8rC9 za?`C}IR4CEA2Ec9T&B<3pr9nXx77aaqxYVRdX^y}@u5(6;sKU-TRA(ied<<(wOskm zA|6(+NEblq_kab3$}yP3gU;m`83V?Nu%=j~DcrtmQL+9Krs65iaq-P9Gen7O(u7etRElSZ3#=gWN z{+o%ldaxcxw&SPeEJ@LHSRh@DuqPLYF;^BE_8V$9WK9u3v=4kQO7?WU2VLw`t*1|y zhP>y*#+lrku_1!*r5x1sg%srQn&>Q9m+Ma}T)<)Hc*9N( zRdbh!eGU~^{fMH3YSmL+eUDmbry=SpCmw7RbN}KxooMoD@4eIpPvT~_tR5?M2kS`6 zXT#Y~Vc_RK77)*oG+x8KtbUj>;kOO=y?GLCLV7|9HF?gaO~#&(LQ3P14rKHKS#JSB z8NIK&&Fl*cFLBWcPrq<4SaZLc=Mq@&Xt9;5 zpYn@SU9~K|bE%&s25B9a-C-lf*-@=GlD$%h?u3(JhwTeEyKb&nYz$OGyvBRV&kfHh zFbrMOsyhc~Rg1a@1lst1I$PBXT21dM;GGB(#3L!y)!NXsvJNjT>9v4T_e1&xPA%Sawtm&nB5Ozd)H7VH?#nm1KSc%d*V? z5_?`)=Jy@$iAOLJCD4t5DxBW=jQ4CUpX9gwylVm6YxWs=1&rfET241_Rd08X2iz)~ zI3lRKHV>i1b2~Z_jk3@-YL^swZDs)x3viYG6E9hL_ zXdfsGn44)YAQELJPh!B$r@x6X&Ew!>Jy=%JI#OwQ+w5a_y>@dP$#G4!aAJLR_dFD- zMEL#;3OvRFuMH3#{_ZFf1ruguZnL0#y4Ao;0=FN)1pr<8n9vwhJ zB^+NeM=T-dE>1p(k-G_2J=r~lLs6uCoP}+6CGo(F#DUeg51A+DeIe~(KatM`!@lo$ zd21WgI4FzGSr1x|GeI^fQ}1!!$v`%W_nH>@Q)28$`~W_@5Z5{T+y01Sk1iT5 z5ZrtZ0#9e*DDyU+OZ5xN?scr=NGcg$`M5KS zb!ub7&U8^gaUg=y4aAuIBGoW6we+JRYGu9?wbOfBJ#5 zx~C<1DGbB>4gvE_qSv>P^W{DPUY;B6vm^88Gu6;NthpZ>YuMSYX$!8 z=`rQ{FK+>Z<1N|eFdJ0%%r>ax<61+i!<~=ou^8l(Z|y=1-0b~~xCf#5U~H}SPI~+U z>XhZ_7)@c58XX#mX^Z5kV(u0AI3soGJu@}{NY*3wj#jFoN$T+2OcW%>3y#z>Oq^YV ze&12JR*%dem-NP_o@G4}LF-2IsU<_w%1&u&ZhQ}JMKS*h+l7m3beRpx+RtV{7Hy(r zD<1hm=Fhd1P+X&1wCr0g=tb6B)cGE&6~dX3on__XF>}<}|Dqv8|JVZ+mn-1vmztf= z&oP4Som~!gKhSDR%BR=n?%oxNyO&dXy~6Qh;d3XAQuqnka0DJAsXPSJ2PVca6@&wu zpbV5@sI=e7&jHbdZPK_?gag~4?>qWQ_Q9;`_2}~T_d*=_TDfudsbLd=w=5XCIJoIb#25&Gm7=Q?*ch3>n+Ih zo_&dyNJFIQp9+)GWk^@9S`ercz zo~G*(U?T=XAm4z9bI8jZSo_mGT^fs4Do31^l=LieQ%$+l!K?#_9CWDS-9+Z> zJNc8+(VBH+|1!ZCn)sYI5BMS!u1xMVW*qQYRWxQOyPx_ro$^3K{HEuRe%|rf<`b{p zFh>%NeW=zp&=o|X{Zoei;%A^(5Qp}NpFPMnRd0N(JX<-IW!p8v{tF&csLJSow zGnB$vVz-M z`85M@6LA2ZvkZuUN#_xVL4rEM;mtaWypHK#uD3kJI6uuDooP;=X8EODv#jNq+>CJx zwo5#|_1O8&R(kOteZ^Hzux_xdhyYp+P~iX)9q#4yq412UXiCQzt}W@@);@_JgBn=x|Mro0g67- zKf}8P4GXkQ1auDPRM{S3*4x+}PiGutbj(_qJo?ztyO+nq%2IDf2+eWKpUT+na}w>F z5^XF_a_$tr-rU)_g6?veG}hj9uzS_IS2t$8ZC@B+#xt|J$X7K%clx4GYlD(qzwq=Rs0bXu&q}zTZ#x4t zySs~T&sZSrS9vBqEQPAS@LyLs%kJ+bljc85VXHJG?W5FO3Y(-&($tCuzr>#ZB=uuS zZAYco1FAtKP0_MrQ!!@q>+pU4HGZv;VjcE@ZC$vQUD&naq43s`&xUsNmv>#-t0D~T z3N$rCw35A&Z2~LEw-uDybj`v{!=AAso7>ritreM!!yzk{I3VF>cp>cE2=}I-nmH6C z9HHuAGw2=Cc!wNw2`8FT#aud3h10?h*YwC6TZ_8wbMP7QkKbBpZI$VvZ=jFZJ^05z z{R9s6kALUPN%e0*y9#HM(zHAGK~qpMpU2Q?NrN7bEpRkUrUg!2fowzVT)?sr?OiT9 z@?akJ9sDeo+3zEd$})?inB)Gih}O!>4i&fqJid44I6vJktHW2T4IRE2`Tsp`->*ZLpv0I2t4~qXLR{?^MsDhrmyenKe*NC#qIR(V z*#rL?_YOQ#aQmYCCwv(ACP$w6<>#a{gLbtY(x2&fZglQ+_#C|ZAHOkVPL1WjT>0NR zt42*i4wE~&zxOOFQxy2G%vRcPXR%@m@hfk!0(?w%c^zLl(!eN|pP+hlZU-(7g?^Hm z5yLmgO_MYZIDy^^9~56B{PvPy(@%1!TpvwcNB1vpTil1~-(OlA)oC0eFc0|>^` zlS%QqSr-cLJ~2?F8AR^SIBIl~QK#sPlnT!m3ZyRmZpz8*b!=%v`n(L-;enEO&dVkN!7q>UCgT>iVlj#s@IoHjWnnz| ztq8TVn&Xkrhv>4^pBPrOzQuog&gx|6-~aON!k9{n-P|R#@fRK0LoWA*P^e^4m(N6b zm<4vuMbwpF4aU_mOcwKc+1b59_^TeF3lA2UKMQlspC|ZbbGFgh*F17X&e0hnlY?JG z#-x&tSn{Jm>$%uOn>(|@x3cd$j<*OT{aSLgS?+AaDL{WEQHHi1DezppH2ANBANxN5 zh~|gc?h!>=#n~C>nCTm7u2&agJF&mpS;r>!-Al`G(rG_p@tCXCbKD9uJ}MDTeim!8u-$tbCG6+*uWW-64hieY+n^=jR?<)$_#Ciqt)8tv1j7^z z1;Ya4r7)FysOXQ3Gt(!%qw2hYSyxEb3^A4da|uSxTN7rbY3S$$rWpX5AKmHTT) zahsm*wb_7D=p%PsQ_r5-k5%@tHlsI@t#9^ehX~wzzl>+R3c*@1t3GpsBa()>WzO!C zhUfhq2YF@Sg8;t|ZhN8%qJ=M;I5#l&pF877NNB~|8a>D6Le{m-f08MhW*XupeJ#VI z9tPJf)4cqK+^gE+K}#NwEu+0;g+n1&cZOa_W;HGtXgT4Y2m>g9WN47iN-Q8%MB7}p zs?SOk8Hn1pkqzvCsUE`&18kMKyv;JxEq(82_!m96@T>i_e=hmN>6BDeZ~P^R0|=S9 zr)gPg9$s*TaW1Jfj%pW&aAN4rr_XPoveSC&6%&?Y`aAhF2B+1(x>=K>e&90AsL1-^ z>#9K|XFL-WMJ#8TN7Qkz)sagb?u$z6S*1{9smHnIcFClBfpYxwiKOO zRT~nQWMF^8>sblWXkW|1Kh;{l{P*&1J?+rNBydpYJEuRn$Nu>fcEizPuYt}B*SmWN zl;BwRtN)&he6|~TEbYp_%+r^+e-<^-{)qj5C0%zQ6#n~fQ6Ghry`wVD$d25}JSp29 z&dlC2vT3Nyb17$YIQ#63l##^Qdy_u4GqO&(3*X*eSwlc977;~mxM0C6VuqIA@? zGqq~#Bloe_N0u+3g7ez=0eH=r8={6)bD#6X+<%^ixQu@;r%{ymJcQ#O9Y5-&YAHW+ zY)nzo7IXyqF6yC>VR~MjzHHgGvu?*kyDza&;l_Zx|cq@(gQu!clSSIjT4Q}X+5~EW>S&{ z)xUnCsA@uNHYTkr3Bf+H7c-{NiI?ikt z7V{U<6xNpvcba*_c{fLdh8LPS!+CcAph0}Lpns99371bSCvR2Fg_vy6|VoHcWP5mp$qz_H+{~pfhj=tfp%8UQQTUul*BF%VAKQl>%(x!FXJMGNOOAS3O;cSHoqW zZg{0vAKTmq`iwtmrHDPQ!@U>d5pq8l$W{m)L&wYCMNN77lmk%-Iog5fWh(7}RFmX7 z6DIRJ{3-+2eYTpVn*#HoDTNw-b?Z%+Hjf5OUu^~LnS1PMIXupg;{2y9{k1*NeDH~D zpLsQWp=x32kC&URmGucL+b5`SYoYO(c+;cQ&+W41HPkqNH($OAgCoFG$er zXoh&~-HUmgx3yr}qsv}iwT+fUl|G-a>BE4gkBgKcc-kTS`7xZ@{JT_{ZSldO83ubQ zN;U0;I&V-b7fbd5to2dKOig#^D1$%4@w<~FFu5b&Z~$!H?Zzt{c+&j)2rx!e@{nZK zf59?1V#zI#%Gl+jih54Rh6^Q0RQHY#QAR}?8hNp5+1T_rjhx~en*1U?R_S?S$cF{m z!WW8faI59qM)bVrH~Av~hQ?y^=cPWfySXtsF-eye9Zb&V$TMFQF%+fIV7{-YQKCF@ zF|XF+{yiP_ZN-s)hz{M&M$^wzR&E1Yf3eTMo7wK@VfUrp}w~Zd0VL)wkl2;RQc15c|Z1I zcI9A(`_%7!|AsiD(3pXL7*48d|M(Z?{aPchP4-7LPGR6r(++MGhg}Pw4;(u_)ODv; zW*q{t%j5tC@>xa)*81bh3qaOZCMF*ogObl;ioU`s1wxC%4y^h5R^k$idb@JHJp$i? zVwKury#B*)w0g=l)q9=hOr`?)x7Hvbbjv3(V>Y!Kq40-QR9XnuiP0_JN)v31npU!P z>;whvYFZx6qk~liwxzXIBd{&&XRPz0VPN76rVxjkxm2`-e`kZQgVzt%cUyqrC=mP+ z_4;gu--ZVM<-;op6I6f45vWaM%Cq*~!63OGyQ!tyM+3MEzQ;kNT`}aUUFj3RcIBz^ zZ)v#3B_>yIp`}P1y|?pjy4a7|FUNlxW#hl|x1U75t==%QkVngjX9Qg5^3tAKcHa?~ z1(i@Rm)VtaYZFe(eyh&Od;0HKK=q!DKz*>FaaS~&S9@foeBMg7F$b+%Cl6LYPY6Sa ze+W+=cUhy|H-|16$HZ91P`C1G&p_?(j_h0RUh?i1iEq;9s*8HQ1C(Oo3`;EPw`i&^ z=qvtPU>fkhGcxe>n$e79SrC#*!}p%W_j88z&ufpZBA4LF;CTky+qjI`lazWkSxeG2Ejc-pFdU>uL~~a%C>>ut zN^Bq|TYmG=GEcUM%6ARb!#_e+CR#pIQaax2K4^*U4^}a)WZKyA-uOZI7Sik`Wopm{M`z-pIY11M6^|2~B9}ZllEQ8oE{6s`0;S^AG#+x?C zyw7}5&%jep0f_a?Z^HD%K~a#S#PMGFUIO%@9b7N^qUkXnvc3$aECe!%=D#}qGRv_Q_$Yukz&i7 zvuuq@L( zycg3cYlRfXhyMnbA#LE~LBo(|7YF{dxGw}_)E7cBM5+3(H}r^@4ezX@mXhBfl3>KL zb2r?u8mhZ^)NF`@mC98<4u4d)p)UkAR65j@BPoXK4z3*vF}@#b*_L=_s4;2ZeJCW< zd&nk<8_TSe9Ba2Y^)6}pov|VQOkpgOPi9O*#pod0c&ur4Fl()8Eo(U)t)kNNq$xXK zFk@K}1{XAVyt?eRQE6fONtSC^V>DK}2h{O?T#^@-ys|Ilv+_=$ve0rxx>8DmTrp@6 ziW)fgcA2){;S+=rf9Fx;%oC~`dwLv)m+^>gyLp&p*r1sW8k5dwxIP_ze%N^!i1{k; zRv`a40Zh8S{u}n5stm`kt^ekIPnEI=<$E+Z0JSNKz(7cen^2`YBwk!w2;)CrcI{gi zJ|L#|zQZm`68(=@>E|K)N|sL!d9G3=u*RwhozNP8v}z#~sR*Vhsv#GM*foe*K5y@4 zhp61Loe`ud3yGhf;EA+Ij7-EO%Qd2qt%Anbx~|dH;<^%WTGaDEtLT>%U7$g3$5oeyn>!b;_lhdVwC+T-x)9Jv_2Evt!a9X-A^v!2 z6ZfWQc(B{Xkj(j;H-2~i^pDf*d1`q6ba(wq^kf${1Nkh=)!#4^a^U54JrK>;U zZ#`bFonv7d$#bODNhLfiV9Z}Jyz3yYD&o>bpTt@47IF16&x@H71KUqe%9&I}x@0a0 zqw#$rfulAlEHdKfsQ9m^{3nQ% zUKQ4GKGDNU!bWQxWF?~R(CzPbNDjyR9RwAQ{Kx>A1_4aT*^^EasbJ_dMU$TmZ#B!M zRz6sQo5u9+WqApYiep@&(%CxjZ?|qhz|d4MW8m-0_n_a5|lOf`Rs%3Sr>tN-W@M^|^$@mSM;YT=WKYA=F!E^CD7U+xM#mb|sBZ0+p) zZQl$(0}9d_7b$~`ixi1U%$hX(^Io&&=-!FpLXh%rc;w)pyk;U>X}#12hNELcyo~xB z>TxLDQn)`lhOy4W5ABC!Jj9Jz>QduOQ^r)sR}Y00x(4wFo;;g$OobH~K1+E)wJ(S>K23K;Ba%h%#!_wQ@(qPIrYFS%n&x<=|KsIdM4 zC!82KS-uz zq_zANq=!lL;2RrvMjmHuA)Y6m%lW(AtX#6VR{bnjd4v`Vp_?-d-2$9QIy;FW38OQ1@bTr-ve~P{V%TjwT&4~XqdxOw4N5PmNimb@R6zToTJ@zc{0Zl z>d0g7zNZht@tY!lNngN;AlXMLpqXovDVBOM4_-&c;X6WPrm2rig$j1Rd-HUI)Euwy z+>%rL-T0&Ekp}jk=KjQwW29tE(lTXlYRwmVKi)L)&}MuQYV{LpdKiQ;dm3+@ZQAel zxM3|El~#)JJaXRTvpkl8VG<)asKm+ED}#7mjcqWutM>x)Vh~0h{GOx+l%O_meg-A* zz2+HYmF+ERvq*K_?cCuuOsU;quWMzEJJ-fobYEktTU3e0ERD@D`h3mT4c`|=wOb-r zxr9Ss^Yg%>weJrk_T^N>mrM;AEU2$vHqkaYxQ`J?K0`KVcEsAxfx3)O$`a_h^78}ho3Eq(nHAVGwEGpbq{ro*qO=a8?QW2mikKcKAol<-`PL$J@lC3pQkYnrjDC`6C*b{lPRPgJQ9 zJ+A?jRg>en$b#&_8Gjk={qt&<>Fz@>$(o-V?vV|?Fd8#bbKW83OvNZ8LXpNey7b&s z2lK&IakZCiLkttKr8y=#HABc3u01a{lAz3`!v41;zL=CIyg2ndeuEMBqR8d;vip@G zZ=rP0^(mQ`60R;T+U28oUaHj@iKaO7ua8ynITYVmjni@XQW|3FICOTJ*RasCGvao= zy8=6?3-KJFZ=3_gv~@h*e2HUwlsR5rt>2iwF0!@CyY(l*l8Wtp^NaiMFBU8uSRC{E z_3Tl^2l#Hi*Z_@Z)ylt9iOGW)S$O_2<%dD=F{Si)gJJvtHP>RF7B<0PBg_RpQ}5bO zKh9Ry$7QlC2TRzzUzSWs8`xK5VQ-{lownpAX^ViiLk7N8%U z5$ECU6G;^wp{lS{#;`IT~>P9Ly;@rHa~b@dx^^{u7U0*dG0t=s-Y z{WQgYVkTPRIm>&g3=Z3Nm@89?*t_bzigLOMXpIgUX&7f%*$0-n{k%Fwf^l+vqrLIF zOW?{qFX}rW)inv+r%o7Ue?_T77r#!#;40YYe(Xck(}hRDb_VW+8YkoN#_#TU;(!i_ zzFkF1t{!t^<>E$^M^7)(PF&<)f}vv5tSaGDBBR_K8B+$4BQt7-+Gqz=YWB{CD4U9s zBbWp33cg=ZI+il3|2SPkBy#vM)tMz|f4*Ly>T>Y$w7@DMkZTMnV{JTMIlgf6_$Soj zFv#1?KLIq#%^tWfhI1VMAlUGMx42U_++9$svJmsXGeTV|mrrqWQ}5xSCkf0oXvW(gBfK}ZDTW;fttO7E;m9VwMZWQ$;H_7MDI%}M;;7;n zCvjME5U#%GK!Mq8svvWDB-;bm|FA8@?PC&7c~1E3j^)TP@X-^_6W+m5YZ)+JZ#65) zaE3(CZR`>uod9g!)b@ID$C$XuraNnT++bi9c1q6?Hd!!$9GYknx-M(E@|tier@)0- zUx^m~LwaCjsKmkSK%2n&M%AQ7T=|7@H@As)zhIB>5a*c?VR@-D{=uTR3@{?G(e!8Y zo(E*=jlb1Ppg+TWpviGAkN(nGglOr@Y-2>a=u<|4uUjnm^P^svimM=GG4E?nF_{Tl#eJSs^kub_kQxo12 z?Paaj0hbhnXC!8T%WqbEOqIR$;5jRgm-Ntk=~lTvYD#x^6ArJuVpL-%CMeIb-}Yv} zcc?$UUWUCoIpXFKVZhwUIJN(pKus@^DYc*Y$jtoBljomU(MF`4=7Md@NQ3Kk%_St{ zEmZ-#eN@b)tePMk5?XWgezo{80`s3K2_8u{``r?U%XkMR=KtM_(g2)P0$h;@XD@HY z6aaFosj0Q#6oVkePt0S!1~w@z9OH)30tN^_6VMn7Pj66k*H115)!jD9@`0SQ#bvf7<7{ud?zYGF zMhn{C`J?Yv%8*KK_2aGmlC3Kj%*Bl@?<$@ExFJvB%*+{CLF=wGc8#qF53RTaGYzj) zJX3yLq>?SGX#cDW9HSZIv`j4N=K{-7UvEBWNu;k=1ZNf0@~Ss#kT-HWrxx88>!lDD zVg9}hO4%kx32XTg30HvA4*w&kKm6jb_3ZG{H!6@LTMJY{y~~?TA4T5lmF+BCVLtDr zfX45H&nt(E#`##zaQ{>&o^;OYJY*kpYQhn02<_D7P#p5anr*@&Ub!+Y!h^l_?%?W) z8947Oo4DOdH~81BbU+S!wp-u240s&ea4dYZnH4&SZ&Jwxp|J_B5Zpy_V3_4cYkJD( z7N}W5%4KhQ80{)2((tiPK!ehSbL!|Z7PMfB~KmT-Gv#oBmXJ^1j(@_%P;bR0O3Pw#Wv z$Q)_}SDFUte^ViRrmi3=#<{$J!^Dm72?+n?|I;Eo(Zu1(zzzbi`ADvs2k8+IT|BSdd8A6(Ed0e&W^;k)@L7y9^E>0GmLG{YB^v~U+sL8?8! zPMwemYpDj|4wG9|dfCgm%O8d{nGJdjq=xP?9@zAZ&ia8vy)``^x+*T(sXA55JYp=< z-^j&7Zi%p!p4|RRM*m!h{moM>%ORtw=Z}2x^M*z7OFs8Bjh=tq4%oJ}IHX<;zn8+r z-dUBglW{e#<~S(4q7~LL=CMcm&^f;7u_s$zAv(P{YK;ESVc=o^Xr#(#!rZ{a87@oI zm!kPD<(5t0UA*D#8KKi$_Zv_qpfU7=pC_R=#}>TBA_pPHp4xI06m?WV&V35F_o{mO zW9N_&cc;JEE|zC9d-&8#PxgB(%G}km)bdz~<8W*@a7;{L!pw9h!fVU!8J!PSyzW+Y zUJ<4$9dhLn^S|-)FH7RnV@PrW{(}pH84P&mw!yw5jOqGx=%6M}A&Tts8y4RIHgh2W z7Bb`@jLr$~(g@JoXQ!x65g1dF;Yzp+7(#U7CzeKn48QL#y__MWIri0lP&qltJrErCzbxY-d zyoDan8C{7kmvC7NW{A4w5-e7`c2FCfF}KZo-*sP>VjqYt=uzMdtB!mpuZU;ZkEBgB z_wTSBYFFX5ZI{0^>&?Oa_NezAU5wQZ90$i$&jS)lP>!sk{`ZB-<{NgO3(*EN%Gaky zmN@#!f8z{4#P+{YmeKI%jF}-PXchRm`Vra2va&;#LgLN-QoT6SH-}M;hu-50;dTn_ zm5^2E)s7AfULotycA@p|i2ZB?>)`M&#&+X%3gbdBIXrZCa(zvk8VH1TZ;~YAy3h8B zND7>=o7Kwkb=SRlvCMH~Z#L6YlIL?L7~nW?1Y@v<2*ubDJJC`033pQQqrz}NiyrG*j z6GwO_s~o*Z`LMACW~aan=>u@-4i{bY-@NgRX%LGDtK72;`#f=4SrP#W`!FflUkr!u zZc~WUD)crN0?i5U|D@qb*|EP`Z~$^UsInlXI1>^g9-@EkgeO6S?5hlr zLu&wWJ#xD^$BkQDmeY1iIGj)O#>>ZFqpm_OFz=6DcU_I6JwtL>?_w>DZGWDP$sNwg z#@sP{%Ncpc|Hk<-4(6(y#=EBK!Yt3P42hZ}V_()v%SzMa3KzZAy~cBucERBn(Bj#< zhQ8f*`{%OB7_$@ItuxYa(SHyz1j4y(BW%>!i*%xAN1#bGU!&-R{V!j<54xs#HC;C3 zDKqtV+Ifm*;HreKtr{h>M1zxWe&Q18)pVIA%7hsMo#%~8;XE&yFP>o$!5Xb!)Jc?G zF$|9XSZ0oNPo3&a^E12Y*zW+~;HW&TGx!p^LY~Ou?js*$?_;6tnIJsb?i|bCo$N6o z*6H<5G~YznH%4d7m#6r%$56ESAqcYJQZu^}ro8TWJ zM}*_ZOvd~uch}Rd{%-nlu*cqcdvtYdTl8RbYW!5MJbO^a-B=07cT$xc2DKS%#+oEK zvjTj-mHHOhD(+IA`dddMnPoOdyPwwuFJ)&~^Np8xP4C)GxKDy0Anreyux$R3w=z%` z>a8;fmK6CWoBYAdP<_3@|A4|0gsBSP@5!yh8z-V4ta#slP1t$05Tv*Bs%z_sss4+8 zz`wHQaTj~b8X9*;RK$16DvN4~4` zpPpqHbMw99S=}``=ZcyGfH1%8>UUlpcn5{Xn?Yhc8Z7~W!j&V#8D<)a71tSWDdZ~3BOr>Cw`P81{_Oq^$%ffA6 z6Lh2DySXwyx%%>tu9h?WH?`auRnGzh$UdiXxt(kyaQ+OSMpp5ti51&rrxn}rN3IwT z`48TYIJsa-Q;TRXrRl}u@+P*M$_%RYLZQPu!)*z_^V(vmYi$oUf0Sc7li?SW?0t{|rYp zNfJmO+xsZ3$Vz5P=O8Y^GlH+o)qd`j^#lamcN!R8&BX)Lr`PF^y*B6+7Gv3mdGRVty_)^Dsr!6gixeuN#ZOJVXR@Q8iU!UHc(HgixzEe8p zlCP8+;&DTGUHHitRiR5?4BzFdy7Wn4Q_r=DxEwG`UAS~DU*})`1ywBV8@=b^tO(;I znxgdZ+Xl=Z@GtLk-Y8X~aj6Qpl5?RT_caX%vqtW^6Fp#RrTueW#?Xy!8M>;AT)3*r z|1xc?^m$RV$vzGL+Zt)QxkrQ%2SXnz%`+|wF880M|F}_JIt^l}Rc#IouX^|g5JQpm zb&kr*s2k*(+-wm;fi{Ev%;@5R!r__A-EOyC5o(QspCLJ{qItvo(tG1hRjbl=ADjj4 z#iq(Vke$8*w`KO~rBD>-e(mxK;pqi8ALJyniKkCz1XON!@D*NpRMInyl%mAxn6xM^ zG0EhzJY+wgrt!0`q0m}qVmYV1A2o+f!A6>!v&vEM#-0f%aEA8Z$rbl0@VB1N;E0Qf z5<9k&4_dN+BX=}wc_#}3Gv99qE77as{tga5vyXUrJAyd!h8rY7*3Lh@nT7S6WvRnY zJptw@IQ+>uN2~a@)UP}REOv6n$T2thrc2{>b^nGVKiE%F#X?&(d%ymDP^)-qKSzB; zA$}l}$U#3IwCev1)jxN_;RStG=)8UiytJmHk^m{hL9$r?pZVQ6NxFLxT!J5#K3Ot2 zV|XM))#QW5YagRrwO+cADq|tn1y}`nM+-=pV1#{Q95$m+LW5nttuR81E|NC&sRft& zPXS;8ws~6J%Q@Fiut~%B%`TV2f=WkMK@ZbBpco#f53jl$Aa}%EfZv6(`7lElC+G=t zt1fI1ci#c&X)X;3j1&*yhWT!9dRuybY)pKbl}2o}D$}Q8VreAr5^EZHVvN77YjnB% zJ20-$ra<(Q>nZN)$)$3^>6Y6qZX;`tKZ0r~3BYlbOCS^RT_daI18yTLfL~<~=aYqy0Omc~SUy@K??Dkcyg$E83B1fCory(q4Ml~vw2>xwzi46cu zEeT-an*KLIkcdcpc+o^yi6_NP8hMvs zd{xO@RxP%GHm>S?jyVhRO8dG~-pvJ+k|FA~$dm!2tXfZ!Ug>@u+f}HL=!l)6iNEaC z$FqPF`VD&P`?*g8x%yj8!5VeoJO z3g`?o_`}`b>whE{D)YnKcYj7;Y5?=A0m#z4Q{3FIh>Qq*w)OGtaQU#eAvW}5OE@^B z<0%a?g@J>_?o#m-M6qU^<1gZy2BNx%M53DUflP8 z^4TO-5Z@Ik9H~j0(}&=^D@S*qCx))Q{~QPFCD0ki%B{(oEV99hQXd-78FzXSV9>)a z>x&*11`ErTFAw6FX{H?>W!o~mx!=WNByM&sFGSHq*pcNblo>kq>$31I5femYO>Nt$ zdoaQDY29FQ;nJ1ch8iMTPYwL7=+q>IXdf?%x%_-pv<*vFdlmfhgiPIXM`1R^o|CB=Exkt~ zWJxc%9$J`5fmXF;lRhT=atKcQ(qYm?&91o}ly z?7qA0lQKd835wt>Glz}^^yoCnEa`@65jlrHbXX{hd)*#nO{Ooae=-3!ks6sjEz3@c z+m^!pBQ>eMvh+q(B{S#oZ%Mk+3|KokL>60qX;;i|=CZs)vp-xV-OndxtuKz36s|pY z{>Qp~xE0<+7Tt}&SZ@xqoBg(aud@6r8wbN&2P(_2?2HINR`iYvj)yp}?`NkTTBrBw z>o1rFehdEJnd@F_QH7|0BiZ%6MrBU_kF}+hY~l@E0sgk zx*~Y0wo~e%H<1k5?Zty#lM{x5tf>kd^=&l)av-FTSlx@78GVTMLKew_6FNoG!$qL! z4Lu(aC8r85CkM+7t@$->NDr^M>`&|@qPY9D@D@*_9?ja0YiOEiT3>bSm9S?u_bu*E z|3t)+OEcKXpE{azFF!({Mp;X5+0E)>8=C4AZ55BV8QkXAT>K1N4`dtt=YX!#i9+kS zjR4hGmLj@70>07Eh=QqYbXJNz{_eDFw;Vr#X8`ci2w}}x&(xZ{ObY@Bnw~x>w`@2S zSn?kn1UB=0C60e5V@jn!8R(Gp(g^-r2y^JOhj=W2*2z7>`+q+j-_f31ia&lD$$}Gn zSY}ZcJ@WyjeAs??cl&_II7aY#x*Yy^0cw93ItaJ`bFVx5^WNiek((UKn+JCPQac2H zM6d#d<$q_cL}1=V{G~*90DpnGg((b?`wy%X@a`bF=|_4bf5>|wP}yuTh+!?ZcpV74 zs7$7YPQ0wdH6Nq=D^K^-|>}GJGzA_X0O4rset>1_?zAV4Ko!SJ6KD@&BLMX!l2wveCSw zqxjAcu~139vaijOaXglT6h&(Yfk>5?uV%S?XYr_*=lKTntNf`KnK2~o66}LmvzVe( z6Q>tnpW8CDz2CYo`s9-wO%xsB%)7Su93%(omI0Uv{yoERPMkwAQGh0w#rCWQCzI;1 zL+_mnQT#gqz?LsTf?L!_W_9y+ietk#FTn1m4Ku{8p4o$mdhp0$2*K(5%)X^zc zlIX1(hp@2eBq1DX&8NS=`e)dxa63zOur{=3E2gZ5+kOC}(>7dYET6kMP_#kH-XJA(1zYD*tg)!hfPO?e>cgF6obd6BgxIl8v#EixnipH2Lb# z0nhZZ>;?b0hjY@s@3v!ILccl8zt0lb3P?nxf8T{<1ar;P2>;5)SnmuI)=m>E!H5l) z9PZ14uI2Bn{+ds##J7QO^lvxIykGD4f)WcoH^LS4xkzC+pJ|A{$VVPxk0PAkS+Rdz2Rrn#{wr0=Mm`N1yCQZh^#rn@A6qW6%6(hT`-!emZX4-bRCI zmVqEoZfmC3@O8zQ{34c06T9mxCDJGm(|3`^S-HJjr<#70x2}F#7@5#?+2Cok77p?- zSwRt{JQit+E$HR?JZg$X$~M~5ZaM?<1l=hvHPtMr?wI_8+1>F2F&~VW5}J0&Z}6Z= z;B(8{1*gyR?-VCn$x6RYllFLDlL4G?Z;l*EO)MsuzTA9rX>Q56&vwbVd!~dN3z{r7 z!QlXI72`lfQ2cs*EZq*2W)WW=MztIUMjpl-_$PRatU6-ege@tg;W8K*Cq#IE?>1BZ zO194H6t)HL|5lb~c-%YUNI0-YuZ`f_L-^KzTVvT>H=xkjJxi5ypR+~V{-ZelGNK$h znGA{gcS>uJ!Z#l|sH@JUxa*wLSV_cGaYiaKe<>LfX3cft!SkD}SMi5L%6cW+y+k-M z$9COr@5(!am)#aQb9nK-TMn@sW#Q#n)N47MyG&#oOqj%4dMh%mK@p&2>8d_q4iKW= z);NPO!k!1U1+i(mN^Mx2Jq#J8auvs_@8hK?`&l_vEOR_yR!gB7d-#oQTt9R zND;tN`%vT-!Ez#ZCCkK;E0=lBV=KAEF+GG1S5B&u^4Hok=lIQGqawe~#V{mmLbO!7 ziv2$+3D8_gD1IzuZg%yx?bnO8Zw;sDZbGzNcvPX^NCPcF5|N9+sAmxQLC zEV^pB;(y=iFLk9g&ow*wN>adDYU+Qim;}KF*MzNYM~>Ur^mh4@0%UN#Ykg7UJKw8b zOAiMH^_AlWZ-66@GR~eHUAs#- zF_+W8koTVFhxS4Y?<{wSVJi@9Jh`_sxKtanYL2zCgE?fnBE1(ON^S$1VOn|e;cNbr zzb|(|?0mUrE#`$pw1^*@w>VcNqyJvS?RV{hl9;OfZ>OIw9lfk^_XG{wUYg7P%Jg}_ zG_|u1O86RHkeg3xr^8+%zijqA7RTs8@s{7vI%LKjpYyq_2$6 z_D31j5htvP-bNt8xXM006eZvACbbc)65Z@_99j%otq^-%Ya@Cu6u8-!fSQ<9x4@S4 zT37&ZnipzaWq>T?rDj=WkimN;6a zIYruE5ZQQTa}Os`a)|w`L=Aey+>bJ+Z`|9^PyN_Z!YXC`aNPbYwKKvycmwm#ri!Wd z8n6BUwQ4uqUNQwJG1O9G>#-yZQx(D03MYarlMQ}Lo(vC-l|Uv$j}@<$hhQ2KmomxW;&vc0oi7-P6J;U? z0E#5lfBzp?$Lo=EZSTi83>JC}hQtl|@uKv+I@$N#m_~HKu8EvaZyIp5+_`;s-Xq{R zbt!lVY&`IoL(*aBGh+stzAR4>2{T>?bOX zdzI}!%>F1W#O&kd`uX(!CM(1LCL%z%-a56y(;Bl1Q3lC0VJ z(r7~LZB5(H$~m&?CgLo4{YvJVoXSNy-3GNXaCHInH_eSC6V_~7yxduhmzgfw%+f3z zJZWlqaaZW1^F%a^UrE!=Ac}#zSh(OmDL@3lw_4d%&TCcQ)T}s{ZdY~t{oeI}ICIc7 znsw(p_Y4FkUm1$>H1@pZp_|h9W~*WxV!z1OT=|pD1&s+QoM}06uBtZB64h^ z)iD#^$ClZ=fyP9mmferlCfcfHBYrilTz`w42xi-H)6)zy(fSE)jcO$an<}a{qbq!C zg=B87vJ7RItojuxwJ71iRj{x?8RgC6uL)UeiUX?y0S}f18rGB|6sV`-kiLuoe4yo) z#fsap|7KQ_^Q0gHh22|*wJ{xOty}H>2(@BA$zPpfq1ZL~nPV9owRto>3g>c6m$Kr8 ze%SL>Y+UiMPvQ~teCOLpS#cZ`PIwb+F4MJk?4$>?^_S@?BjFV%ar|5UYqttblS$FZxygW|d43 zBx;0VTuI86xDZnXK$JnUUSYz)myb!Al^03MKj7u$`2em^%%e3bROLnA9_*sb=#l03 z+X}p+?JHC$-|L>edB%IgLCW#tAviYd=pH3Il(_n|DZHkF$R}v$+c>r2;q1=TnpGe4 zYp64W`)TgyEa^Wp)1zW&){2qu;;Ob%tJRy2lJD#Y;NMm4JX|ibh<2ylv`EoK*D2by z5daH?PB0r^JwXCGrlh}+2+lCKp{#ZP+n+eOyOL`u{zLl^zqEq>3$DHsDRQ1bkU^lR z=9hz$R?+6w63P?%T|U;qbx)HyFA>PE|(PyzKx1)GdDY7Dao2xq^_XhUdSIMx%2=@eJOVqk4 zkkzrgTtkPT=Dd+y`Wb$ zQW(cJIw3vOI2|v(SQ~ft#vrSKnI=IZxg3dMLB03E$ zMre~|SH!!Ue;&mZml~j~UXC*6cZtRc>8P?8GUky~AMeG=T-Cj5eBUtLWZ8-iBAjTH z7pHf-on)}yjc`0)pvlTl{4}=g@v|j9^E1niLq3?Mu$^Mt+Pl@o}ot1y6hcU85$l@HZ1{t!CdJVZkgf^ zR2mczbNHE-LqR^g)CbDVOim5CCQP_gcR$KCK#7hu!Kg^!pVHTlr_Q~asd&v~k|aQD aTXg2PG2@d@G~e11hv { IconConstants.instance.getIcon("offline_icon"), IconConstants.instance.getIcon("flame_icon"), ]; + String stateImgAssets(int state) { String imgStringAsset; if (state == 0) { imgStringAsset = imageAssets[0]; } else if (state == 1) { - imgStringAsset = imageAssets[1]; - } else { imgStringAsset = imageAssets[2]; + } else { + imgStringAsset = imageAssets[1]; } return imgStringAsset; } @@ -50,14 +52,31 @@ class _DetailDeviceScreenState extends State { detailDeviceBloc = BlocProvider.of(context); } + TextStyle textstyle = const TextStyle( + fontSize: 25, + fontWeight: FontWeight.w600, + ); + + BoxDecoration boxDecoration = BoxDecoration( + borderRadius: BorderRadius.circular(15), + color: Colors.grey.withOpacity(0.1), + border: Border.all( + width: 1, + color: Colors.grey.withOpacity(0.6), + ), + ); + @override Widget build(BuildContext context) { - double screenWidth = MediaQuery.of(context).size.width; return StreamBuilder( stream: detailDeviceBloc.streamDeviceInfo, builder: (context, deviceSnapshot) { if (deviceSnapshot.data?.extId == null) { - detailDeviceBloc.getDeviceDetail(context, widget.thingID, controller); + detailDeviceBloc.getDeviceDetail( + context, + widget.thingID, + controller, + ); return const Center( child: CircularProgressIndicator(), ); @@ -71,314 +90,557 @@ class _DetailDeviceScreenState extends State { title: Text(appLocalization(context).detail_message), centerTitle: true, ), - body: SafeArea( - child: SingleChildScrollView( - child: Column( - children: [ - // device Name - Card( - child: Container( - width: context.dynamicWidth(1), - height: context.highValue, - decoration: const BoxDecoration( - borderRadius: BorderRadius.all( - Radius.circular(12), - ), - ), - child: Center( - child: Text( - '${appLocalization(context).device_title}: ${deviceSnapshot.data!.name}', - style: const TextStyle( - fontSize: 20, + body: SingleChildScrollView( + child: Column( + children: [ + Stack( + children: [ + ClipPath( + clipper: CuveEdgesCustom(), + child: Container( + padding: const EdgeInsets.all(0), + child: SizedBox( + height: context.dynamicHeight(0.25), + child: Stack( + children: [ + Positioned.fill( + child: Image.asset( + ImageConstants.instance + .getImage('smoke-detector'), + fit: BoxFit.fill, + ), + ), + Center( + child: Container( + height: 50, + width: 400, + // color: Colors.blueAccent, + alignment: Alignment.centerRight, + margin: const EdgeInsets.fromLTRB( + 0, 0, 0, 50), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + const SizedBox(), + Text( + deviceSnapshot.data?.name ?? "", + style: const TextStyle( + fontSize: 25, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ), + ], ), ), ), ), - ), - // Tinh trang va nhiet do - Row( - children: [ - Card( - child: Container( - width: (screenWidth - 20) / 2, - height: context.highValue, - decoration: const BoxDecoration( - borderRadius: BorderRadius.all( - Radius.circular(12), + Positioned( + bottom: 0, + left: MediaQuery.of(context).size.width / 2 - 100, + child: Container( + height: context.dynamicHeight(0.08), + width: context.dynamicWidth(0.5), + decoration: BoxDecoration( + color: DeviceUtils.instance.getTableRowColor( + deviceSnapshot.data?.state ?? 3), + borderRadius: BorderRadius.circular(50), + ), + alignment: Alignment.bottomCenter, + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + children: [ + SizedBox( + height: context.mediumValue, + width: context.mediumValue, + child: deviceSnapshot.data?.state == 1 + ? RippleAnimation( + color: Colors.red, + delay: context + .dynamicMilliSecondDuration( + 800, + ), + repeat: true, + minRadius: 10, + ripplesCount: 5, + duration: context + .dynamicMilliSecondDuration( + 1800, + ), + child: CircleAvatar( + minRadius: context.mediumValue, + maxRadius: context.mediumValue, + backgroundImage: AssetImage( + stateImgAssets( + deviceSnapshot.data!.state!, + ), + ), + ), + ) + : CircleAvatar( + backgroundColor: DeviceUtils + .instance + .getTableRowColor( + deviceSnapshot.data?.state ?? 3, + ), + minRadius: context.mediumValue, + maxRadius: context.mediumValue, + backgroundImage: AssetImage( + stateImgAssets( + deviceSnapshot.data!.state!, + ), + ), + ), ), - ), - padding: - const EdgeInsets.fromLTRB(5, 5, 0, 5), - alignment: Alignment.centerLeft, - child: Row( - children: [ - // SizedBox( - // height: 25, - // width: 25, - // child: RippleAnimation( - // color: DeviceUtils.instance - // .getColorRiple( - // deviceSnapshot.data!.state!), - // delay: - // const Duration(milliseconds: 800), - // repeat: true, - // minRadius: 40, - // ripplesCount: 6, - // duration: const Duration( - // milliseconds: 6 * 300), - // child: CircleAvatar( - // minRadius: 20, - // maxRadius: 20, - // backgroundImage: AssetImage( - // stateImgAssets( - // deviceSnapshot.data!.state!, - // ), - // ), - // ), - // ), - // ), - CircleAvatar( - minRadius: 20, - maxRadius: 20, - backgroundImage: AssetImage( - stateImgAssets( - deviceSnapshot.data!.state!, - ), - ), - ), - SizedBox( - width: context.lowValue, - ), - Text( + Center( + child: Text( DeviceUtils.instance.checkStateDevice( context, deviceSnapshot.data!.state!, ), style: const TextStyle( - fontSize: 15, + fontSize: 20, + fontWeight: FontWeight.w600, + color: Colors.white, ), ), - ], - ), + ), + ], ), ), - Card( - child: SizedBox( - width: (screenWidth - 20) / 2, - height: context.highValue, - child: Container( - alignment: Alignment.centerLeft, - padding: - const EdgeInsets.fromLTRB(5, 5, 0, 5), - child: Row( + ), + ], + ), + SizedBox( + height: context.normalValue, + ), + // Muc song va muc pin + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Container( + height: context.dynamicHeight(0.18), + width: context.dynamicWidth(0.45), + decoration: boxDecoration, + child: Padding( + padding: context.paddingLow, + child: Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, children: [ - const Icon( - Icons.thermostat, - color: Colors.blue, - size: 30, - ), - const SizedBox( - width: 10, - ), Text( - "${appLocalization(context).paginated_data_table_column_deviceTemperature}: ${sensorSnapshot.data?['sensorTemp'] ?? 100}", + appLocalization(context) + .paginated_data_table_column_deviceSignal, style: const TextStyle( - fontSize: 15, + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + SizedBox( + height: context.dynamicWidth(0.12), + width: context.dynamicWidth(0.12), + child: Icon( + DeviceUtils.instance.getSignalIcon( + context, + sensorSnapshot.data!['sensorCsq'], + ), + size: 30, + color: DeviceUtils.instance + .getSignalIconColor( + context, + sensorSnapshot.data!['sensorCsq'], + ), ), ), ], ), - ), - ), - ), - ], - ), - StreamBuilder>( - stream: detailDeviceBloc.streamSensorTemps, - builder: (context, sensorTempsSnapshot) { - if (sensorTempsSnapshot.data == null) { - detailDeviceBloc - .getNearerSensorValue(widget.thingID); - return const AspectRatio( - aspectRatio: 1.5, - child: Center( - child: CircularProgressIndicator(), - ), - ); - } else { - return AspectRatio( - aspectRatio: 1.5, - child: Container( - margin: context.paddingLow, - child: sharedLineChart( - "Nhiệt độ đo được (°C)", - sensorTempsSnapshot.data ?? [], - 60, - ), - ), - ); - } - }, - ), - Row( - children: [ - Card( - child: Container( - width: (screenWidth - 20) / 2, - height: context.highValue, - decoration: const BoxDecoration( - borderRadius: BorderRadius.all( - Radius.circular(12), - ), - ), - alignment: Alignment.centerLeft, - padding: - const EdgeInsets.fromLTRB(10, 5, 0, 5), - child: Row( - children: [ - Transform.rotate( - angle: 90 * math.pi / 180, - child: Icon( - DeviceUtils.instance.getBatteryIcon( - int.parse( - sensorSnapshot - .data!['sensorBattery'], + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Container( + height: context.dynamicHeight(0.09), + alignment: Alignment.centerLeft, + child: Text( + sensorSnapshot.data!['sensorCsq'], + style: TextStyle( + color: DeviceUtils.instance + .getSignalIconColor( + context, + sensorSnapshot + .data!['sensorCsq'], + ), + fontSize: 40, + fontWeight: FontWeight.w900, ), ), - color: Colors.blue, - size: 30, ), - ), - SizedBox( - width: context.lowValue, - ), - Text( - "${appLocalization(context).paginated_data_table_column_deviceBaterry}: ${sensorSnapshot.data!['sensorBattery']}%", - style: const TextStyle( - fontSize: 15, - ), - ), - ], - ), - ), - ), - Card( - child: Container( - width: (screenWidth - 20) / 2, - height: context.highValue, - alignment: Alignment.centerLeft, - padding: - const EdgeInsets.fromLTRB(10, 5, 0, 5), - child: Row( - children: [ - Icon( - DeviceUtils.instance.getSignalIcon( - context, - sensorSnapshot.data!['sensorCsq'], - ), - color: Colors.blue, - size: 30, - ), - SizedBox( - width: context.lowValue, - ), - Text( - "${appLocalization(context).paginated_data_table_column_deviceSignal}: ${sensorSnapshot.data!['sensorCsq']}", - style: const TextStyle(fontSize: 15), - maxLines: 2, - overflow: TextOverflow.ellipsis, - softWrap: true, - ), - ], - ), - ), - ), - ], - ), - Card( - child: Container( - padding: const EdgeInsets.all(10.0), - height: context.highValue, - child: Row( - children: [ - const Icon( - Icons.location_on, - color: Colors.blue, - size: 30, - ), - SizedBox( - width: context.lowValue, - ), - Expanded( - child: StreamBuilder( - stream: - detailDeviceBloc.streamDeviceLocation, - builder: (context, locationSnapshot) { - if (locationSnapshot.data != null) { - return Text( - locationSnapshot.data ?? "", - style: - const TextStyle(fontSize: 13), - maxLines: 3, - overflow: TextOverflow.ellipsis, - softWrap: true, - ); - } else { - detailDeviceBloc.findLocation(context, - deviceSnapshot.data!.areaPath!); - return Text(appLocalization(context) - .undefine_message); - } - }, + ], ), + ], + ), + ), + ), + Container( + height: context.dynamicHeight(0.18), + width: context.dynamicWidth(0.45), + decoration: boxDecoration, + child: Padding( + padding: context.paddingLow, + child: Column( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + appLocalization(context) + .paginated_data_table_column_deviceBaterry, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + SizedBox( + height: context.dynamicWidth(0.12), + width: context.dynamicWidth(0.12), + child: Image.asset( + DeviceUtils.instance + .getDeviceBatteryImg( + int.parse( + sensorSnapshot + .data!['sensorBattery'], + ), + ), + color: DeviceUtils.instance + .getDeviceBatteryColor( + int.parse( + sensorSnapshot + .data!['sensorBattery'], + ), + ), + ), + ), + ], + ), + Row( + mainAxisAlignment: + MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Container( + height: context.dynamicHeight(0.09), + alignment: Alignment.centerLeft, + child: Text( + sensorSnapshot + .data!['sensorBattery'], + style: TextStyle( + color: DeviceUtils.instance + .getDeviceBatteryColor( + int.parse( + sensorSnapshot + .data!['sensorBattery'], + ), + ), + fontSize: 50, + fontWeight: FontWeight.w900, + ), + ), + ), + SizedBox( + width: context.lowValue, + ), + Container( + height: context.dynamicHeight(0.09), + width: 60, + alignment: Alignment.centerLeft, + child: Text( + '%', + style: TextStyle( + color: DeviceUtils.instance + .getDeviceBatteryColor( + int.parse( + sensorSnapshot + .data!['sensorBattery'], + ), + ), + fontSize: 30, + fontWeight: FontWeight.w900, + ), + ), + ), + ], + ), + ], + ), + ), + ), + ], + ), + // Nhiet do + Padding( + padding: context.paddingLow, + child: Container( + height: 150, + width: MediaQuery.of(context).size.width, + decoration: boxDecoration, + child: Padding( + padding: context.paddingLow, + child: Column( + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + appLocalization(context) + .paginated_data_table_column_deviceTemperature, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + SizedBox( + height: context.dynamicWidth(0.12), + width: context.dynamicWidth(0.12), + child: Image.asset( + 'assets/icons/temperature.png', + color: DeviceUtils.instance + .getDeviceTempColor( + int.parse( + sensorSnapshot + .data!['sensorTemp'], + ), + ), + ), + ), + ], ), + const SizedBox( + height: 10, + ), + Stack( + children: [ + Container( + width: double.infinity, + height: 20, + decoration: BoxDecoration( + color: Colors.grey.withOpacity(0.3), + borderRadius: + BorderRadius.circular(10), + ), + ), + LayoutBuilder( + builder: (context, constraints) => + Container( + width: constraints.maxWidth * + (int.parse(sensorSnapshot + .data!['sensorTemp']) / + 75), + height: 20, + decoration: BoxDecoration( + color: DeviceUtils.instance + .getDeviceTempColor( + int.parse(sensorSnapshot + .data!['sensorTemp']), + ), + borderRadius: + BorderRadius.circular(10), + ), + ), + ) + ], + ), + const SizedBox( + height: 5, + ), + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + "${sensorSnapshot.data!['sensorTemp']} °C", + style: TextStyle( + color: DeviceUtils.instance + .getDeviceTempColor( + int.parse( + sensorSnapshot + .data!['sensorTemp'], + ), + ), + fontSize: 30, + fontWeight: FontWeight.w900, + ), + ), + const Text( + "75 °C", + style: TextStyle( + fontSize: 20, + ), + ), + ], + ) ], ), ), ), - Card( - child: Container( - height: 300, - padding: const EdgeInsets.fromLTRB(5, 5, 5, 5), - decoration: const BoxDecoration( - borderRadius: BorderRadius.all( - Radius.circular(15), + ), + // Dien ap + Padding( + padding: context.paddingLow, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + appLocalization(context) + .paginated_data_table_column_devicePower, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, ), ), - child: deviceSnapshot.data!.settings!.latitude != - "" - ? GoogleMap( - initialCameraPosition: initialCamera, - mapType: MapType.normal, - markers: { - Marker( - markerId: MarkerId( - deviceSnapshot.data!.thingId!), - position: LatLng( - double.parse(deviceSnapshot - .data!.settings!.latitude!), - double.parse(deviceSnapshot - .data!.settings!.longitude!), + SizedBox( + height: context.dynamicWidth(0.12), + width: context.dynamicWidth(0.12), + child: Image.asset( + 'assets/icons/volt.png', + ), + ), + ], + ), + ), + SizedBox( + height: context.lowValue, + ), + // Bieu do dien ap + StreamBuilder>( + stream: detailDeviceBloc.streamSensorTemps, + builder: (context, sensorTempsSnapshot) { + if (sensorTempsSnapshot.data == null) { + detailDeviceBloc + .getNearerSensorValue(widget.thingID); + return const AspectRatio( + aspectRatio: 3, + child: Center( + child: CircularProgressIndicator(), + ), + ); + } else { + return AspectRatio( + aspectRatio: 3, + child: Container( + margin: context.paddingLow, + child: sharedLineChart( + appLocalization(context) + .detail_device_volt_message, + sensorTempsSnapshot.data ?? [], + ), + ), + ); + } + }, + ), + SizedBox( + height: context.lowValue, + ), + // Map + Padding( + padding: context.paddingLow, + child: Container( + decoration: boxDecoration, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + height: context.dynamicHeight(0.3), + padding: context.paddingLow, + decoration: const BoxDecoration( + borderRadius: BorderRadius.all( + Radius.circular(15), + ), + ), + child: deviceSnapshot + .data!.settings!.latitude != + "" + ? StreamBuilder( + stream: detailDeviceBloc + .streamDeviceLocation, + builder: (context, locationSnapshot) { + if (locationSnapshot.data == null) { + detailDeviceBloc.findLocation( + context, + deviceSnapshot + .data!.areaPath!); + } + return GoogleMap( + initialCameraPosition: + initialCamera, + mapType: MapType.normal, + markers: { + Marker( + infoWindow: InfoWindow( + title: + locationSnapshot.data ?? + "", + ), + markerId: MarkerId( + deviceSnapshot + .data!.thingId!), + position: LatLng( + double.parse(deviceSnapshot + .data! + .settings! + .latitude!), + double.parse(deviceSnapshot + .data! + .settings! + .longitude!), + ), + ), + }, + onMapCreated: (mapcontroller) { + controller + .complete(mapcontroller); + }, + mapToolbarEnabled: false, + zoomControlsEnabled: false, + liteModeEnabled: true, + ); + }) + : Center( + child: Text( + appLocalization(context) + .detail_device_dont_has_location_message, ), ), - }, - onMapCreated: (mapcontroller) { - controller.complete(mapcontroller); - }, - mapToolbarEnabled: false, - zoomControlsEnabled: false, - liteModeEnabled: true, - ) - : Center( - child: Text( - appLocalization(context) - .detail_device_dont_has_location_message, - ), - ), + ), + Text( + appLocalization(context) + .device_update_location, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ) + ], ), ), - ], - ), + ), + ], ), ), ); diff --git a/lib/feature/devices/devices_manager_screen.dart b/lib/feature/devices/devices_manager_screen.dart index feda0ec..704fdf1 100644 --- a/lib/feature/devices/devices_manager_screen.dart +++ b/lib/feature/devices/devices_manager_screen.dart @@ -63,7 +63,6 @@ class _DevicesManagerScreenState extends State { } else { return SingleChildScrollView( child: Column( - // mainAxisSize: MainAxisSize.min, children: [ StreamBuilder( stream: devicesManagerBloc.streamUserRole, diff --git a/lib/feature/main/main_bloc.dart b/lib/feature/main/main_bloc.dart index 9ae5707..3cea41d 100644 --- a/lib/feature/main/main_bloc.dart +++ b/lib/feature/main/main_bloc.dart @@ -10,13 +10,6 @@ class MainBloc extends BlocBase { StreamSink get sinkBellBloc => bellBloc.sink; Stream get streamBellBloc => bellBloc.stream; - final title = StreamController.broadcast(); - StreamSink get sinkTitle => title.sink; - Stream get streamTitle => title.stream; - - final role = StreamController.broadcast(); - StreamSink get sinkRole => role.sink; - Stream get streamRole => role.stream; final language = StreamController.broadcast(); StreamSink get sinkLanguage => language.sink; @@ -30,10 +23,6 @@ class MainBloc extends BlocBase { StreamSink get sinkIsVNIcon => isVNIcon.sink; Stream get streamIsVNIcon => isVNIcon.stream; - final currentPageIndex = StreamController.broadcast(); - StreamSink get sinkCurrentPageIndex => currentPageIndex.sink; - Stream get streamCurrentPageIndex => currentPageIndex.stream; - @override void dispose() {} } diff --git a/lib/feature/main/main_screen.dart b/lib/feature/main/main_screen.dart index dd56f92..02ff8aa 100644 --- a/lib/feature/main/main_screen.dart +++ b/lib/feature/main/main_screen.dart @@ -13,6 +13,8 @@ import 'package:sfm_app/product/constant/app/app_constants.dart'; import 'package:sfm_app/product/constant/enums/app_route_enums.dart'; import 'package:sfm_app/product/constant/enums/role_enums.dart'; import 'package:sfm_app/product/permission/location_permission.dart'; +import 'package:sfm_app/product/shared/shared_language_switch.dart'; +import '../../product/shared/shared_light_dark_switch.dart'; import '../devices/devices_manager_bloc.dart'; import '../devices/devices_manager_screen.dart'; import '../home/home_screen.dart'; @@ -53,8 +55,6 @@ class _MainScreenState extends State with WidgetsBindingObserver { Bell bell = Bell(); void initialCheck() async { - role = await apiServices.getUserRole(); - mainBloc.sinkRole.add(role); String language = await apiServices.checkLanguage(); String theme = await apiServices.checkTheme(); if (language == LanguageConstants.VIETNAM) { @@ -73,9 +73,12 @@ class _MainScreenState extends State with WidgetsBindingObserver { LocationPermissionRequest.instance.checkLocationPermission(context); } +// For test + late bool dayNightToggle2; @override void initState() { super.initState(); + dayNightToggle2 = false; mainBloc = BlocProvider.of(context); WidgetsBinding.instance.addObserver(this); initialCheck(); @@ -176,303 +179,215 @@ class _MainScreenState extends State with WidgetsBindingObserver { @override Widget build(BuildContext context) { ThemeNotifier themeNotifier = context.watch(); - checkSelectedIndex(currentPageIndex); - - List userDestinations = [ - NavigationDestination( - selectedIcon: IconConstants.instance.getMaterialIcon(Icons.home), - icon: IconConstants.instance.getMaterialIcon(Icons.home_outlined), - label: appLocalization(context).home_page_destination, - tooltip: appLocalization(context).home_page_destination, - ), - NavigationDestination( - selectedIcon: IconConstants.instance.getMaterialIcon(Icons.settings), - icon: IconConstants.instance.getMaterialIcon(Icons.settings_outlined), - label: appLocalization(context).manager_page_destination, - tooltip: appLocalization(context).device_manager_page_name, - ), - NavigationDestination( - selectedIcon: IconConstants.instance.getMaterialIcon(Icons.location_on), - icon: - IconConstants.instance.getMaterialIcon(Icons.location_on_outlined), - label: appLocalization(context).map_page_destination, - tooltip: appLocalization(context).map_page_destination, - ), - NavigationDestination( - // selectedIcon: IconConstants.instance.getMaterialIcon(Icons.histor), - icon: IconConstants.instance.getMaterialIcon(Icons.history_rounded), - label: appLocalization(context).history_page_destination, - tooltip: appLocalization(context).history_page_destination_tooltip, - ), - NavigationDestination( - selectedIcon: IconConstants.instance.getMaterialIcon(Icons.group), - icon: IconConstants.instance.getMaterialIcon(Icons.group_outlined), - label: appLocalization(context).group_page_destination, - tooltip: appLocalization(context).group_page_destination_tooltip, - ), - ]; - - List userBody = [ - BlocProvider(child: const HomeScreen(), blocBuilder: () => HomeBloc()), - BlocProvider( - child: const DevicesManagerScreen(), - blocBuilder: () => DevicesManagerBloc()), - BlocProvider( - child: const MapScreen(), - blocBuilder: () => MapBloc(), - ), - BlocProvider( - child: const DeviceLogsScreen(), - blocBuilder: () => DeviceLogsBloc(), - ), - BlocProvider( - child: const InterFamilyScreen(), - blocBuilder: () => InterFamilyBloc(), - ), - ]; - - List modDestinations = [ - NavigationDestination( - selectedIcon: IconConstants.instance.getMaterialIcon(Icons.home), - icon: IconConstants.instance.getMaterialIcon(Icons.home_outlined), - label: appLocalization(context).home_page_destination, - tooltip: appLocalization(context).home_page_destination, - ), - NavigationDestination( - selectedIcon: IconConstants.instance.getMaterialIcon(Icons.settings), - icon: IconConstants.instance.getMaterialIcon(Icons.settings_outlined), - label: appLocalization(context).manager_page_destination, - tooltip: appLocalization(context).device_manager_page_name, - ), - NavigationDestination( - selectedIcon: IconConstants.instance.getMaterialIcon(Icons.location_on), - icon: - IconConstants.instance.getMaterialIcon(Icons.location_on_outlined), - label: appLocalization(context).map_page_destination, - tooltip: appLocalization(context).map_page_destination, - ), - ]; - - List modBody = [ - BlocProvider(child: const HomeScreen(), blocBuilder: () => HomeBloc()), - BlocProvider( - child: const DevicesManagerScreen(), - blocBuilder: () => DevicesManagerBloc()), - BlocProvider( - child: const MapScreen(), - blocBuilder: () => MapBloc(), - ), - ]; - - return StreamBuilder( - stream: mainBloc.streamRole, - initialData: role, - builder: (context, roleSnapshot) { - return StreamBuilder( - stream: mainBloc.streamCurrentPageIndex, - initialData: currentPageIndex, - builder: (context, indexSnapshot) { - return Scaffold( - appBar: AppBar( - backgroundColor: Colors.transparent, - // centerTitle: true, - // title: StreamBuilder( - // stream: mainBloc.streamTitle, - // initialData: titlePage, - // builder: (context, titleSnapshot) { - // return Text( - // titleSnapshot.data ?? ApplicationConstants.APP_NAME, - // ); - // }, - // ), - actions: [ - StreamBuilder( - stream: mainBloc.streamThemeMode, - initialData: isLight, - builder: (context, themeModeSnapshot) { - return IconButton( - onPressed: () { - themeNotifier.changeTheme(); - isLight = !isLight; - mainBloc.sinkThemeMode.add(isLight); - }, - icon: Icon( - themeModeSnapshot.data ?? isLight - ? Icons.light_mode_outlined - : Icons.dark_mode_outlined, - ), - ); - }, - ), - StreamBuilder( - stream: mainBloc.streamIsVNIcon, - initialData: isVN, - builder: (context, isVnSnapshot) { - return IconButton( - onPressed: () async { - log("Locale: ${LanguageServices().getLocale()}"); - Locale locale = await LanguageServices().setLocale( - isVN - ? LanguageConstants.ENGLISH - : LanguageConstants.VIETNAM); - MyApp.setLocale(context, locale); - isVN = !isVN; - mainBloc.sinkIsVNIcon.add(isVN); - }, - icon: Image.asset( - IconConstants.instance.getIcon( - isVnSnapshot.data ?? isVN - ? 'vi_icon' - : 'en_icon'), - height: 24, - width: 24, - ), - ); - }, - ), - StreamBuilder( - stream: mainBloc.streamBellBloc, - builder: (context, bellSnapshot) { - return checkStatus(bellSnapshot.data?.items ?? []) - ? IconButton( - onPressed: () { - context.pushNamed(AppRoutes.BELL.name); - }, - icon: const Icon( - Icons.notifications, - ), - ) - : GestureDetector( - child: badges.Badge( - badgeStyle: const badges.BadgeStyle( - shape: badges.BadgeShape.twitter, - ), - key: _badgeKey, - badgeContent: const Icon( - CupertinoIcons.circle_filled, - color: Colors.red, - size: 5, - ), - badgeAnimation: - const badges.BadgeAnimation.slide( - animationDuration: - Duration(milliseconds: 200), - colorChangeAnimationDuration: - Duration(seconds: 1), - loopAnimation: false, - curve: Curves.decelerate, - colorChangeAnimationCurve: Curves.easeInCirc, - ), - showBadge: true, - // ignorePointer: false, - child: const Icon( - Icons.notifications, - size: 30, - ), - ), - onTap: () { - context.pushNamed(AppRoutes.BELL.name); - }, - ); - }, - ), - PopupMenuButton( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(8.0), - ), - icon: const Icon(Icons.more_vert), - itemBuilder: (context) { - return [ - PopupMenuItem( - value: ApplicationConstants.SETTINGS_PATH, - onTap: () { - context.pushNamed(AppRoutes.SETTINGS.name); - }, - child: Row( - children: [ - const Icon(Icons.person), - const SizedBox(width: 5), - Text(appLocalization(context).profile_icon_title) - ], - ), - ), - PopupMenuItem( - value: ApplicationConstants.LOGOUT_PATH, - onTap: () { - Future.delayed( - const Duration(milliseconds: 200), - () async { - await apiServices.logOut(context); - }, - ); - }, - child: Row( - children: [ - const Icon(Icons.logout), - const SizedBox(width: 5), - Text( - appLocalization(context).log_out, - ), - ], - ), - ), - ]; - }, - ) - ], - ), - // bottomNavigationBar: Container( - // decoration: - // BoxDecoration(borderRadius: BorderRadius.circular(50)), - // padding: context.paddingLow, - // child: NavigationBar( - // onDestinationSelected: (index) { - // currentPageIndex = index; - // mainBloc.sinkCurrentPageIndex.add(currentPageIndex); - // checkSelectedIndex(currentPageIndex); - // }, - // selectedIndex: indexSnapshot.data ?? currentPageIndex, - // destinations: roleSnapshot.data == RoleEnums.USER.name - // ? userDestinations - // : modDestinations, - // ), - // ), - // body: IndexedStack( - // index: indexSnapshot.data ?? currentPageIndex, - // children: roleSnapshot.data == RoleEnums.USER.name - // ? userBody - // : modBody, - // ), - body: PersistentTabView( - context, - controller: controller, - screens: _buildScreens(), - items: _navBarsItems(), - confineInSafeArea: true, - handleAndroidBackButtonPress: true, - resizeToAvoidBottomInset: true, - stateManagement: true, - hideNavigationBarWhenKeyboardShows: true, - // backgroundColor: Colors.transparent, - decoration: NavBarDecoration( - borderRadius: BorderRadius.circular(30.0), + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.transparent, + actions: [ + // LightDarkSwitch( + // value: !isLight, + // onChanged: (value) { + // themeNotifier.changeTheme(); + // isLight = !isLight; + // }, + // ), + // SizedBox( + // width: context.lowValue, + // ), + // StreamBuilder( + // stream: mainBloc.streamIsVNIcon, + // builder: (context, isVNSnapshot) { + // return LanguageSwitch( + // value: isVNSnapshot.data ?? isVN, + // onChanged: (value) async { + // Locale locale = await LanguageServices().setLocale(isVN + // ? LanguageConstants.ENGLISH + // : LanguageConstants.VIETNAM); + // MyApp.setLocale(context, locale); + // isVN = !isVN; + // mainBloc.sinkIsVNIcon.add(isVN); + // }, + // ); + // }), + // SizedBox( + // width: context.lowValue, + // ), + StreamBuilder( + stream: mainBloc.streamThemeMode, + initialData: isLight, + builder: (context, themeModeSnapshot) { + return IconButton( + onPressed: () { + themeNotifier.changeTheme(); + isLight = !isLight; + mainBloc.sinkThemeMode.add(isLight); + }, + icon: Icon( + themeModeSnapshot.data ?? isLight + ? Icons.light_mode_outlined + : Icons.dark_mode_outlined, ), - popAllScreensOnTapOfSelectedTab: true, - itemAnimationProperties: const ItemAnimationProperties( - duration: Duration(milliseconds: 200), - curve: Curves.bounceInOut, + ); + }, + ), + StreamBuilder( + stream: mainBloc.streamIsVNIcon, + initialData: isVN, + builder: (context, isVnSnapshot) { + return IconButton( + onPressed: () async { + log("Locale: ${LanguageServices().getLocale()}"); + Locale locale = await LanguageServices().setLocale(isVN + ? LanguageConstants.ENGLISH + : LanguageConstants.VIETNAM); + MyApp.setLocale(context, locale); + isVN = !isVN; + mainBloc.sinkIsVNIcon.add(isVN); + }, + icon: Image.asset( + IconConstants.instance.getIcon( + isVnSnapshot.data ?? isVN ? 'vi_icon' : 'en_icon'), + height: 24, + width: 24, ), - screenTransitionAnimation: const ScreenTransitionAnimation( - animateTabTransition: true, - curve: Curves.linear, - duration: Duration(milliseconds: 200), + ); + }, + ), + StreamBuilder( + stream: mainBloc.streamBellBloc, + builder: (context, bellSnapshot) { + return checkStatus(bellSnapshot.data?.items ?? []) + ? IconButton( + onPressed: () { + context.pushNamed(AppRoutes.BELL.name); + }, + icon: const Icon( + Icons.notifications, + ), + ) + : GestureDetector( + child: badges.Badge( + badgeStyle: const badges.BadgeStyle( + shape: badges.BadgeShape.twitter, + ), + key: _badgeKey, + badgeContent: const Icon( + CupertinoIcons.circle_filled, + color: Colors.red, + size: 5, + ), + badgeAnimation: const badges.BadgeAnimation.slide( + animationDuration: Duration(milliseconds: 200), + colorChangeAnimationDuration: Duration(seconds: 1), + loopAnimation: false, + curve: Curves.decelerate, + colorChangeAnimationCurve: Curves.easeInCirc, + ), + showBadge: true, + // ignorePointer: false, + child: const Icon( + Icons.notifications, + size: 30, + ), + ), + onTap: () { + context.pushNamed(AppRoutes.BELL.name); + }, + ); + }, + ), + PopupMenuButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ), + icon: const Icon(Icons.more_vert), + itemBuilder: (context) { + return [ + PopupMenuItem( + value: ApplicationConstants.SETTINGS_PATH, + onTap: () { + context.pushNamed(AppRoutes.SETTINGS.name); + }, + child: Row( + children: [ + const Icon(Icons.person), + const SizedBox(width: 5), + Text(appLocalization(context).profile_icon_title) + ], + ), ), - navBarStyle: NavBarStyle.style4, - ), - ); - }, - ); - }, + PopupMenuItem( + value: ApplicationConstants.LOGOUT_PATH, + onTap: () { + Future.delayed( + const Duration(milliseconds: 200), + () async { + await apiServices.logOut(context); + }, + ); + }, + child: Row( + children: [ + const Icon(Icons.logout), + const SizedBox(width: 5), + Text( + appLocalization(context).log_out, + ), + ], + ), + ), + ]; + }, + ) + ], + ), + // bottomNavigationBar: Container( + // decoration: + // BoxDecoration(borderRadius: BorderRadius.circular(50)), + // padding: context.paddingLow, + // child: NavigationBar( + // onDestinationSelected: (index) { + // currentPageIndex = index; + // mainBloc.sinkCurrentPageIndex.add(currentPageIndex); + // checkSelectedIndex(currentPageIndex); + // }, + // selectedIndex: indexSnapshot.data ?? currentPageIndex, + // destinations: roleSnapshot.data == RoleEnums.USER.name + // ? userDestinations + // : modDestinations, + // ), + // ), + // body: IndexedStack( + // index: indexSnapshot.data ?? currentPageIndex, + // children: roleSnapshot.data == RoleEnums.USER.name + // ? userBody + // : modBody, + // ), + body: PersistentTabView( + context, + controller: controller, + screens: _buildScreens(), + items: _navBarsItems(), + confineInSafeArea: true, + handleAndroidBackButtonPress: true, + resizeToAvoidBottomInset: true, + stateManagement: true, + hideNavigationBarWhenKeyboardShows: true, + // backgroundColor: Colors.transparent, + decoration: NavBarDecoration( + borderRadius: BorderRadius.circular(30.0), + ), + popAllScreensOnTapOfSelectedTab: true, + itemAnimationProperties: const ItemAnimationProperties( + duration: Duration(milliseconds: 200), + curve: Curves.bounceInOut, + ), + screenTransitionAnimation: const ScreenTransitionAnimation( + animateTabTransition: true, + curve: Curves.linear, + duration: Duration(milliseconds: 200), + ), + navBarStyle: NavBarStyle.style4, + ), ); } @@ -487,23 +402,4 @@ class _MainScreenState extends State with WidgetsBindingObserver { } return !bells.any((bell) => bell.status == 0); } - - void checkSelectedIndex(int current) { - if (current == 0) { - titlePage = appLocalization(context).home_page_name; - mainBloc.sinkTitle.add(titlePage); - } else if (current == 1) { - titlePage = appLocalization(context).device_manager_page_name; - mainBloc.sinkTitle.add(titlePage); - } else if (current == 2) { - titlePage = appLocalization(context).map_page_destination; - mainBloc.sinkTitle.add(titlePage); - } else if (current == 3) { - titlePage = appLocalization(context).device_log_page_name; - mainBloc.sinkTitle.add(titlePage); - } else if (current == 4) { - titlePage = appLocalization(context).interfamily_page_name; - mainBloc.sinkTitle.add(titlePage); - } - } } diff --git a/lib/main.dart b/lib/main.dart index fd17086..155aa19 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -38,7 +38,6 @@ class _MyAppState extends State { Locale? _locale; late MainBloc mainBloc; LanguageServices languageServices = LanguageServices(); - // late ThemeNotifier themeNotifier; setLocale(Locale locale) { _locale = locale; mainBloc.sinkLanguage.add(_locale); @@ -48,10 +47,6 @@ class _MyAppState extends State { void initState() { super.initState(); mainBloc = BlocProvider.of(context); - // themeNotifier = Provider.of(context, listen: false); - // ThemeNotifier().loadThemeFromPreferences(); - // log("ThemeKey1: ${LocaleManager.instance.getStringValue(PreferencesKeys.THEME)}"); - // log("Date: ${DateTime.parse("2024-11-16T07:17:36.785Z")}"); } @override diff --git a/lib/product/extention/context_extention.dart b/lib/product/extention/context_extention.dart index 75eaaab..de531d9 100644 --- a/lib/product/extention/context_extention.dart +++ b/lib/product/extention/context_extention.dart @@ -71,9 +71,8 @@ extension PageExtension on BuildContext { extension DurationExtension on BuildContext { Duration get lowDuration => const Duration(milliseconds: 150); Duration get normalDuration => const Duration(milliseconds: 500); - Duration dynamicSecondDuration(int seconds) => Duration(seconds: seconds); + Duration dynamicMilliSecondDuration(int milliseconds) => Duration(milliseconds: milliseconds); Duration dynamicMinutesDuration(int minutes) => Duration(minutes: minutes); - } // RADIUS @@ -81,6 +80,7 @@ extension RadiusExtension on BuildContext { Radius get lowRadius => Radius.circular(width * 0.02); Radius get normalRadius => Radius.circular(width * 0.05); Radius get highRadius => Radius.circular(width * 0.1); + Radius dynamicRadius(double radius) => Radius.circular(radius); } extension TextStyleExtention on BuildContext { @@ -100,4 +100,3 @@ extension TextStyleExtention on BuildContext { TextStyle get headlineLargeTextStyle => Theme.of(this).textTheme.headlineLarge!; } - diff --git a/lib/product/lang/l10n/app_en.arb b/lib/product/lang/l10n/app_en.arb index 959e94a..c70ce35 100644 --- a/lib/product/lang/l10n/app_en.arb +++ b/lib/product/lang/l10n/app_en.arb @@ -178,6 +178,7 @@ "device_update_ward": "Ward/Commune", "description_NOTUSE10": "This is english language in DetailDevicePage", "detail_device_dont_has_location_message": "No location information available yet", + "detail_device_volt_message": "Measured voltage (V)", "no_data_message": "No data yet", "normal_message": "Normal", "warning_status_message": "Warning", diff --git a/lib/product/lang/l10n/app_vi.arb b/lib/product/lang/l10n/app_vi.arb index a97bcf3..ab21783 100644 --- a/lib/product/lang/l10n/app_vi.arb +++ b/lib/product/lang/l10n/app_vi.arb @@ -178,6 +178,7 @@ "device_update_ward": "Phường/Xã", "description_NOTUSE10": "This is vietnamese language in DetailDevicePage", "detail_device_dont_has_location_message": "Chưa có thông tin về vị trí", + "detail_device_volt_message": "Nguồn điện đo được (V)", "no_data_message": "Chưa có", "normal_message": "Bình thường", "warning_status_message": "Cảnh báo", diff --git a/lib/product/shared/shared_curve.dart b/lib/product/shared/shared_curve.dart new file mode 100644 index 0000000..1cb886b --- /dev/null +++ b/lib/product/shared/shared_curve.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; + +class CuveEdgesCustom extends CustomClipper { + @override + getClip(Size size) { + Path path = Path(); + path.lineTo(0, size.height); + final firstCurve = Offset(0, size.height - 30); + final lastCurve = Offset(30, size.height - 30); + path.quadraticBezierTo( + firstCurve.dx, firstCurve.dy, lastCurve.dx, lastCurve.dy); + final secondFirstCurve = Offset(0, size.height - 30); + final secondLastCurve = Offset(size.width - 30, size.height - 30); + path.quadraticBezierTo(secondFirstCurve.dx, secondFirstCurve.dy, + secondLastCurve.dx, secondLastCurve.dy); + final thirdFirstCurve = Offset(size.width, size.height - 30); + final thirdLastCurve = Offset(size.width, size.height); + path.quadraticBezierTo(thirdFirstCurve.dx, thirdFirstCurve.dy, + thirdLastCurve.dx, thirdLastCurve.dy); + + path.lineTo(size.width, 0); + path.close(); + return path; + } + + @override + bool shouldReclip(covariant CustomClipper oldClipper) { + return true; + } +} diff --git a/lib/product/shared/shared_language_switch.dart b/lib/product/shared/shared_language_switch.dart new file mode 100644 index 0000000..da540b8 --- /dev/null +++ b/lib/product/shared/shared_language_switch.dart @@ -0,0 +1,127 @@ +import 'package:flutter/material.dart'; +import 'package:sfm_app/product/constant/icon/icon_constants.dart'; + +const int _kDuration = 300; +const double _kWidth = 60; +const double _kheight = 30; + +class LanguageSwitch extends StatefulWidget { + const LanguageSwitch({ + super.key, + required this.value, + this.onChanged, + }); + + /// Whether this switch is on or off. + /// + /// This property must not be null. + final bool value; + + /// Called when the user toggles the switch on or off. + /// + /// The switch passes the new value to the callback but does not actually + /// change state until the parent widget rebuilds the switch with the new + /// value. + /// + /// If null, the switch will be displayed as disabled. + /// + /// The callback provided to [onChanged] should update the state of the parent + /// [StatefulWidget] using the [State.setState] method, so that the parent + /// gets rebuilt; for example: + /// + /// ```dart + /// LanguageSwitch( + /// value: _giveVerse, + /// onChanged: (bool newValue) { + /// setState(() { + /// _giveVerse = newValue; + /// }); + /// }, + /// ) + /// ``` + final ValueChanged? onChanged; + + @override + State createState() => _LanguageSwitchState(); +} + +class _LanguageSwitchState extends State { + @override + Widget build(BuildContext context) { + bool toggleState = widget.value; + const dayColor = Colors.blue; + const nightColor = Colors.grey; + + return InkWell( + onTap: () => setState(() { + toggleState = !toggleState; + widget.onChanged?.call(toggleState); + }), + customBorder: const StadiumBorder(), + child: AnimatedContainer( + duration: const Duration(milliseconds: _kDuration), + width: _kWidth, + height: _kheight, + decoration: ShapeDecoration( + color: toggleState ? dayColor : nightColor, + shape: const StadiumBorder(), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Stack( + alignment: Alignment.center, + children: [ + //day icon + AnimatedOpacity( + opacity: toggleState ? 1 : 0, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedAlign( + alignment: toggleState + ? Alignment.centerLeft + : Alignment.centerRight, + duration: const Duration(milliseconds: _kDuration), + // child: const Icon( + // Icons.circle, + // size: 30, + // // color: Colors.white, + // ), + child: Image.asset( + IconConstants.instance.getIcon('vi_icon'), + width: 30, + height: 30, + ), + ), + ), + + //night Icon + AnimatedOpacity( + opacity: toggleState ? 0 : 1, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedAlign( + alignment: toggleState + ? Alignment.centerLeft + : Alignment.centerRight, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedRotation( + turns: toggleState ? 0.0 : 0.5, + duration: const Duration(milliseconds: _kDuration), + // child: const Icon( + // Icons.nightlight, + // size: 30, + // // color: Colors.white, + // ), + child: Image.asset( + IconConstants.instance.getIcon('en_icon'), + width: 30, + height: 30, + ), + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/product/shared/shared_light_dark_switch.dart b/lib/product/shared/shared_light_dark_switch.dart new file mode 100644 index 0000000..3059e03 --- /dev/null +++ b/lib/product/shared/shared_light_dark_switch.dart @@ -0,0 +1,212 @@ +import 'package:flutter/material.dart'; + +const int _kDuration = 300; +const double _kWidth = 60; +const double _kheight = 30; + +class LightDarkSwitch extends StatefulWidget { + const LightDarkSwitch({ + super.key, + required this.value, + this.onChanged, + }); + + /// Whether this switch is on or off. + /// + /// This property must not be null. + final bool value; + + /// Called when the user toggles the switch on or off. + /// + /// The switch passes the new value to the callback but does not actually + /// change state until the parent widget rebuilds the switch with the new + /// value. + /// + /// If null, the switch will be displayed as disabled. + /// + /// The callback provided to [onChanged] should update the state of the parent + /// [StatefulWidget] using the [State.setState] method, so that the parent + /// gets rebuilt; for example: + /// + /// ```dart + /// LightDarkSwitch( + /// value: _giveVerse, + /// onChanged: (bool newValue) { + /// setState(() { + /// _giveVerse = newValue; + /// }); + /// }, + /// ) + /// ``` + final ValueChanged? onChanged; + + @override + State createState() => _LightDarkSwitchState(); +} + +class _LightDarkSwitchState extends State { + @override + Widget build(BuildContext context) { + bool toggleState = widget.value; + const activeColor = Colors.blue; + const inactiveColor = Colors.black; + + return Row( + mainAxisSize: MainAxisSize.min, + children: [ + InkWell( + onTap: () => setState(() { + toggleState = !toggleState; + widget.onChanged?.call(toggleState); + }), + customBorder: const StadiumBorder(), + child: AnimatedContainer( + duration: const Duration(milliseconds: _kDuration), + width: _kWidth, + height: _kheight, + decoration: ShapeDecoration( + color: toggleState ? activeColor : inactiveColor, + shape: const StadiumBorder(), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Stack( + alignment: Alignment.center, + children: [ + //Light icon + AnimatedOpacity( + opacity: toggleState ? 1 : 0, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedAlign( + alignment: toggleState + ? Alignment.centerLeft + : Alignment.centerRight, + duration: const Duration(milliseconds: _kDuration), + child: const Icon( + Icons.sunny, + size: 25, + color: Colors.white, + ), + ), + ), + + AnimatedPositioned( + top: 2, + right: toggleState ? 6 : 40, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedOpacity( + opacity: toggleState ? 1 : 0, + duration: const Duration(milliseconds: _kDuration), + child: const Icon( + Icons.circle, + size: 8, + color: Colors.white, + ), + ), + ), + + AnimatedPositioned( + top: 16, + right: toggleState ? 14 : 40, + duration: const Duration(milliseconds: _kDuration), + child: const Icon( + Icons.circle, + size: 3, + color: Colors.white, + ), + ), + + //Dark Icon + AnimatedOpacity( + opacity: toggleState ? 0 : 1, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedAlign( + alignment: toggleState + ? Alignment.centerLeft + : Alignment.centerRight, + duration: const Duration(milliseconds: _kDuration), + child: const Icon( + Icons.mode_night_sharp, + size: 25, + color: Colors.white, + ), + ), + ), + AnimatedPositioned( + bottom: 3, + left: toggleState ? 40 : 14, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedOpacity( + opacity: toggleState ? 0 : 1, + duration: const Duration(milliseconds: _kDuration), + child: const Icon( + Icons.star, + size: 8, + color: Colors.white, + ), + ), + ), + + AnimatedPositioned( + top: 2, + left: toggleState ? 40 : 4, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedOpacity( + opacity: toggleState ? 0 : 1, + duration: const Duration(milliseconds: _kDuration), + child: const Icon( + Icons.star, + size: 10, + color: Colors.white, + ), + ), + ), + + AnimatedPositioned( + top: 10, + left: toggleState ? 40 : 16, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedOpacity( + opacity: toggleState ? 0 : 1, + duration: const Duration(milliseconds: _kDuration), + child: const Icon( + Icons.circle, + size: 3, + color: Colors.white, + ), + ), + ), + + AnimatedPositioned( + top: 4, + left: toggleState ? 40 : 22, + duration: const Duration(milliseconds: _kDuration), + child: AnimatedOpacity( + opacity: toggleState ? 0 : 1, + duration: const Duration(milliseconds: _kDuration), + child: const Icon( + Icons.circle, + size: 3, + color: Colors.white, + ), + ), + ), + ], + ), + ), + ), + ), + // const SizedBox( + // width: 8.0, + // ), + // Text( + // "Dark", + // style: TextStyle( + // color: toggleState ? Colors.grey : inactiveColor, + // fontWeight: FontWeight.bold, + // ), + // ), + ], + ); + } +} diff --git a/lib/product/shared/shared_line_chart.dart b/lib/product/shared/shared_line_chart.dart index 865d272..23d8a96 100644 --- a/lib/product/shared/shared_line_chart.dart +++ b/lib/product/shared/shared_line_chart.dart @@ -3,50 +3,40 @@ import 'package:flutter/material.dart'; import 'package:sfm_app/feature/device_log/device_logs_model.dart'; import 'package:sfm_app/product/utils/date_time_utils.dart'; -Widget sharedLineChart( - String chartName, List sensors, double maxValue) { - double max = sensors - .map((sensor) => sensor.value!) // Lấy giá trị của từng sensor - .reduce((a, b) => a > b ? a : b) - .toDouble(); - double averageValue = (0 + maxValue) / 2; +Widget sharedLineChart(String chartName, List sensors) { return LineChart( LineChartData( minX: 0, minY: 0, - maxY: max + 20, + maxY: 4000, titlesData: FlTitlesData( - show: true, - topTitles: const AxisTitles( - sideTitles: SideTitles( - showTitles: false, + show: true, + topTitles: const AxisTitles( + sideTitles: SideTitles( + showTitles: false, + ), + ), + rightTitles: const AxisTitles( + sideTitles: SideTitles( + showTitles: false, + ), + ), + bottomTitles: AxisTitles( + axisNameSize: 20, + axisNameWidget: Text( + chartName, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, ), ), - rightTitles: const AxisTitles( - sideTitles: SideTitles( - showTitles: false, - ), + ), + leftTitles: const AxisTitles( + sideTitles: SideTitles( + showTitles: false, ), - bottomTitles: AxisTitles( - axisNameSize: 20, - axisNameWidget: Text(chartName), - ), - leftTitles: AxisTitles( - sideTitles: SideTitles( - showTitles: true, - reservedSize: 40, - getTitlesWidget: (value, meta) { - if (value == 0) { - return const Text("0"); - } else if (value == averageValue) { - return Text(averageValue.toInt().toString()); - } else if (value == maxValue) { - return Text(maxValue.toInt().toString()); - } else { - return Container(); - } - }, - ))), + ), + ), lineTouchData: LineTouchData( touchTooltipData: LineTouchTooltipData( tooltipBgColor: Colors.grey.withOpacity(0.3), @@ -55,7 +45,7 @@ Widget sharedLineChart( final index = spot.x.toInt(); final sensorData = sensors[index]; return LineTooltipItem( - 'Time: ${DateTimeUtils.instance.convertCurrentMillisToDateTimeString(sensorData.time!)}\nValue: ${sensorData.value}', + 'Time: ${DateTimeUtils.instance.convertCurrentMillisToDateTimeString(sensorData.time!)}\nValue: ${(sensorData.value! / 1000).toDouble()}V', const TextStyle(), ); }).toList(); @@ -91,10 +81,13 @@ Widget sharedLineChart( gridData: const FlGridData(show: false), borderData: FlBorderData( border: Border( - top: BorderSide.none, - right: BorderSide.none, - left: BorderSide(color: Colors.black.withOpacity(0.7)), - bottom: BorderSide(color: Colors.black.withOpacity(0.7))), + top: BorderSide.none, + right: BorderSide.none, + left: BorderSide.none, + bottom: BorderSide( + color: Colors.black.withOpacity(0.7), + ), + ), ), ), ); diff --git a/lib/product/shared/shared_pie_chart.dart b/lib/product/shared/shared_pie_chart.dart index 4b5c2b0..877bf70 100644 --- a/lib/product/shared/shared_pie_chart.dart +++ b/lib/product/shared/shared_pie_chart.dart @@ -47,40 +47,40 @@ class SharedPieChart extends StatelessWidget { color: Colors.grey, value: offlineCount.toDouble(), title: offlineCount.toString(), - radius: context.dynamicWidth(0.3), + radius: context.dynamicWidth(0.2), titleStyle: titleStyle, ), PieChartSectionData( color: Colors.green, value: normalCount.toDouble(), title: normalCount.toString(), - radius: context.dynamicWidth(0.3), + radius: context.dynamicWidth(0.2), titleStyle: titleStyle, ), PieChartSectionData( color: Colors.red, value: warningCount.toDouble(), title: warningCount.toString(), - radius: context.dynamicWidth(0.3), + radius: context.dynamicWidth(0.2), titleStyle: titleStyle, ), PieChartSectionData( color: Colors.yellow, value: inProgressCount.toDouble(), title: inProgressCount.toString(), - radius: context.dynamicWidth(0.3), + radius: context.dynamicWidth(0.2), titleStyle: titleStyle, ), PieChartSectionData( color: Colors.black, // Có thể thêm màu cho trạng thái lỗi value: errorCount.toDouble(), title: errorCount.toString(), - radius: context.dynamicWidth(0.3), + radius: context.dynamicWidth(0.2), titleStyle: titleStyle, ), ], - centerSpaceRadius: 0, - sectionsSpace: 1, + centerSpaceRadius: context.dynamicWidth(0.1), + sectionsSpace: 2, ), ), ), diff --git a/lib/product/theme/theme_notifier.dart b/lib/product/theme/theme_notifier.dart index 0e35247..00351ef 100644 --- a/lib/product/theme/theme_notifier.dart +++ b/lib/product/theme/theme_notifier.dart @@ -82,6 +82,17 @@ class ThemeNotifier extends ChangeNotifier { AppThemes _currenThemeEnum = AppThemes.LIGHT; AppThemes get currenThemeEnum => _currenThemeEnum; + Future loadThemeFromPreferences() async { + // String themeKey = + // LocaleManager.instance.getStringValue(PreferencesKeys.THEME); + // if (themeKey == AppThemes.LIGHT.name) { + // _currentTheme = AppThemeLight.instance.theme; + // } else { + // _currentTheme = AppThemeDark.instance.theme; + // } + // notifyListeners(); + } + void changeValue(AppThemes theme) { if (theme == AppThemes.LIGHT) { _currentTheme = AppThemeLight.instance.theme; diff --git a/lib/product/utils/device_utils.dart b/lib/product/utils/device_utils.dart index fb31386..83f7646 100644 --- a/lib/product/utils/device_utils.dart +++ b/lib/product/utils/device_utils.dart @@ -8,6 +8,7 @@ import 'package:sfm_app/product/shared/model/district_model.dart'; import 'package:sfm_app/product/shared/model/province_model.dart'; import '../../feature/devices/device_model.dart'; +import '../constant/icon/icon_constants.dart'; import '../shared/model/ward_model.dart'; class DeviceUtils { @@ -63,13 +64,13 @@ class DeviceUtils { } } if (sensor.name == "7") { - map['sensorVolt'] = "${(sensor.value!) / 1000} V"; + map['sensorVolt'] = "${(sensor.value!) / 1000}"; } if (sensor.name == "8") { - map['sensorTemp'] = "${sensor.value}°C"; + map['sensorTemp'] = "${sensor.value}"; } if (sensor.name == "9") { - map['sensorHum'] = "${sensor.value} %"; + map['sensorHum'] = "${sensor.value}"; } if (sensor.name == "10") { map['sensorBattery'] = "${sensor.value}"; @@ -270,4 +271,53 @@ class DeviceUtils { return Colors.green; } } + + List deviceBatteryImg = [ + IconConstants.instance.getIcon("full-battery"), + IconConstants.instance.getIcon("half-battery"), + IconConstants.instance.getIcon("low-battery"), + IconConstants.instance.getIcon("empty-battery"), + ]; + + String getDeviceBatteryImg(int battery) { + if (battery <= 5) { + return deviceBatteryImg[3]; + } else if (battery <= 20) { + return deviceBatteryImg[2]; + } else if (battery <= 90) { + return deviceBatteryImg[1]; + } else { + return deviceBatteryImg[0]; + } + } + + Color getDeviceTempColor(int temp) { + if (temp < 30) { + return Colors.green; + } else if (temp < 50) { + return Colors.orange; + } else { + return Colors.red; + } + } + + Color getDeviceBatteryColor(int battery) { + if (battery < 20) { + return Colors.red; + } else if (battery < 80) { + return Colors.orange; + } else { + return Colors.green; + } + } + + Color getSignalIconColor(BuildContext context, String signal) { + if (signal == appLocalization(context).gf_weak_signal_message) { + return Colors.red; + } else if (signal == appLocalization(context).gf_moderate_signal_message) { + return Colors.yellow; + } else { + return Colors.green; + } + } }