From 33d9de815032223f0b0bb4f2ae539d90edd9ab1a Mon Sep 17 00:00:00 2001 From: Ernst Date: Sun, 15 Dec 2024 19:48:22 +0100 Subject: [PATCH] Add H5055 --- .../ble_monitor/ble_parser/__init__.py | 4 ++ .../ble_monitor/ble_parser/govee.py | 43 ++++++++++++++++ custom_components/ble_monitor/const.py | 46 ++++++++++++++++++ .../ble_monitor/test/test_govee_parser.py | 22 +++++++++ docs/_devices/Govee_H5055.md | 19 ++++++++ docs/assets/images/Govee_H5055.png | Bin 0 -> 29811 bytes 6 files changed, 134 insertions(+) create mode 100644 docs/_devices/Govee_H5055.md create mode 100644 docs/assets/images/Govee_H5055.png diff --git a/custom_components/ble_monitor/ble_parser/__init__.py b/custom_components/ble_monitor/ble_parser/__init__.py index a4c7f41e8..b9ae54902 100644 --- a/custom_components/ble_monitor/ble_parser/__init__.py +++ b/custom_components/ble_monitor/ble_parser/__init__.py @@ -411,6 +411,10 @@ def parse_advertisement( # Thermobeacon sensor_data = parse_thermobeacon(self, man_spec_data, mac) break + elif comp_id == 0xEA1C and data_len == 0x17: + # Govee H50555 + sensor_data = parse_govee(self, man_spec_data, service_class_uuid16, local_name, mac) + break elif comp_id == 0xEC88 and data_len in [0x09, 0x0A, 0x0C, 0x22, 0x24, 0x25]: # Govee H5051/H5071/H5072/H5075/H5074 sensor_data = parse_govee(self, man_spec_data, service_class_uuid16, local_name, mac) diff --git a/custom_components/ble_monitor/ble_parser/govee.py b/custom_components/ble_monitor/ble_parser/govee.py index 3ca9dc961..651a3612c 100644 --- a/custom_components/ble_monitor/ble_parser/govee.py +++ b/custom_components/ble_monitor/ble_parser/govee.py @@ -44,6 +44,13 @@ def decode_temps_probes(packet_value: int) -> float: return float(packet_value / 100) +def decode_temps_probes_negative(packet_value: int) -> float: + """Filter potential negative temperatures.""" + if packet_value < 0: + return 0.0 + return float(packet_value) + + def decode_pm25_from_4_bytes(packet_value: int) -> int: """Decode humidity values""" packet_value &= 0x7FFFFFFF @@ -231,6 +238,42 @@ def parse_govee(self, data: str, service_class_uuid16: int, local_name: str, mac else: _LOGGER.debug("Unknown sensor id found for Govee H5198. Data %s", data.hex()) return None + elif msg_length == 24 and device_id == 0xEA1C: + device_type = "H5055" + battery = data[6] + if battery: + result.update({"battery": battery}) + sensor_id = data[7] + (temp_probe_first, high_temp_alarm_first, low_temp_alarm_first, _, temp_probe_second, high_temp_alarm_second, low_temp_alarm_second) = unpack( + "R000001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&bO=dAK~#8N?Y#$} zrB_wc11r_iQiXti~BBG$ul@dru zLIUYMlRlFvncipa++NT5Kfkrly7!&Kok>uTdv0dU?7Mq^*4k_Dcfaq+l|*)oj?puO z@@4xN9iwLiRWabTFqMjKr+-1Xi^jqgYZsO~2{^W({RC;W()jqeg-KzIaQYkLR^8)Q z-6{=D&z0RcqAR(w+vE6?rp-#YWjuWH&{Iu7?nnv#hyBPFn{(gc6_v{JP#{S|r&N<{ z=zeOdV!%hUnX01x=4BI>CIxrpJpoy)xaX3~ra}iu8CNV|SzgUv8eN)~0la&T`3;bP{A071RG}Gjb z_4H_6{-4a|e{U#%9{72xmJpvW10KDlB*0st-bNc{TCRDCLQJS2Xfu*>JM)&UkZT~5-Uu!mWKp`~(fFd;+!k~=?Fh$`iPfeM!Qdr+7J1(P~GLP*_3R))HG+g)4!BzBrPKn6}DFOMcmG z*4dUv&v*U4;B`^XIHejWc{0+Z2Rr~wz)XLAJcqljwE631+po6VV5fjCsZO}hpi(Ix zOo22`Kw^$Ybx1N4UPS^ZSyOCGUW!5Lr~N}YFL~rmpe8&~)Qu{TicaOE z9+k<-VuDn>R%c+M51MI-1;o_i3Pc zAf`No#UZm@H(F`K7c4g*DbGZZLa1PBiW0+VS>{|`21&|9$n8>#^yMNc)X#UofUHy- zr4R~8NUt&gR0-WxEJ9w@l|z+DMWlxL@`8u@Xaj!QtuXoBEApafD?m*ph^W(B??uoY zu~mvv0KhDjMl3fvEPn!O-X*b83cy8QEz}-?-9Zb{cEY_}+NE5crtJ4P3^ZPsB4wf8 z;H2*8i|WodT5f=E}GPU_rZ48*pykRXOrb0 z|642Ve?TCrvjTI+KjuWU#D=QGpzA-tbtz6ENH%~+X-Fm#005sQ01ktYN2J2M45VO2 zS1rhLN#{crOo8N-?KxBVd2a(J8ssC!|0o~OklX7dZ#iz1e5ejX0yW2gNLu`5sZ2Xm zhl5@zy{)ue?vhJ%l_7G!yCC^g54w5sruMnhUHa?b#FGGDPI(xm9E^=zw4@86|@Yp70pl>{(M{Do3$#(PsqDJIpK%@^b$<*XbA;C2C`J`B&4YO~_^ ztZw@0mTzd**m6*iTH)jBxqh_s+O+oVMTuqsab3)^>><#%4E&GeomfyUbqoBM1l9`{;F*5za1B2TV3s5E^EWOFW- zSuMsn$*f_abp8ufp4u?nDd6{5eyB_J_GvZgQCOEc(C-aT3`Ejl z@tIbwVZ|3&anQv97=2Qjx@lHyo-3Yc(n2w;RYZ(MxmtYyw;#iL=gA|Zy-sPUSLLa$ z(O$JZ)FIVLTGFwyji{Uv()1}Gb&9=M!RT)}y?4G$Fm+)>2(_);r1OjjA&6wf|i{+F5cZIv|rzCX1EIHjTea_>;M+R?jR z?bGlHFu5oH!%UL5c=zvENp%21LmIa(PZ(&Nqc$v&{@Y}xRi!lVd14Z&D1}-zwS4uV zd6|{OJT~vSVp1_p<7|Z|F!^4=1YpXdpDjzRI7em7dA^zIDCX)EM;aorB@AG`*%w=G z?sKg){aIG5ZD&9eDUGjWty=MBKif+4Ut~7zOiAk2G;T`hN3^Ort(+K0e&vJl3w`U& z2KL#g7&RBn$zMnQDSU+C&~URHkz-s{JPJW zZTpVp2KTyzHl#0ibw&lg+D6OIyTXcf?UvjAJ{hd+4A2qTls&r*_)yEtPz80y_)}G%PGuOyxnZ+>jeBul~#Zs(&~V|4w&X% zW;v;4xxs^C#w)C(Rm+yXQY+I+%Oi37w+qJuYIluRne(J$|F+81=5m?JliF4knCXWN z?AHpWzR$i$WxUVq_&1s@5VI>yp{~tJ>Vpl5i9>k&1hG1dSh1$rM%tfcg@!p+K&2D& zrs(o2J4tC$OL$)=_1~9R)Cp|{edCvck3eN<)Ow;zzud@>omCf;&Ek7uL2;kJ~(h~_tel6`u`k{|Y%25w` zK5^R2(!M-WR2${ov@C*l0w%pcl zsGnL%mj0@kL!d?NQvcIKCRHuFsdMq8yWv`Lj%_F5~R z_!cWlg>gN6pwssRw&g1_0=G6_r5Td+d+)Tu`hS%~?DEYiSmQKgg!=+)T(NwWQJbWu zBW@6HGty5`^+BreaqeXR5d@Y`MGNVY$2hkLA|vNQJUZU$G*q z6H;HRO$ngSIM122c>5cyc$-$2``%;Ly+NDs7ijZ-j+L61i19TBVyxWuZ(IJs4_W^1 zcUkH2zqK4{qf7TA6HJ{S6{D+Nqhj_V^D;IYN6-6&{F(i2~wo|WUo@QJd6}b zwj6r1z*y>%3bf(#mS6ix>F?J{lAb1&;S%ZOlC((KzFn4+y5f4MOK$4p_>ekOlS^`> zwm-)5G{kr;M?>c06Xo*1KBn##Ime^IFba$nt6oZZWHB^3XmYDG5FjiM;wTf( z35t&`f6^e2Q#p*}-1m^=$?w#Xz4f~S&^OIC{;L(F!xow~(RI@$G>3iSN^JfXT&WG| z9xEPrG^q*NbXxs%ttxCyIVUMuL6e%`UY=AYeq=!4ku=`^EvXOM5I^xb%ONqheoMga zRvHa4hP(Mvo1CG1h2r@E!>_XY_iDu%kQ0U$;MpTcl@jNOp`?2k+T^BQk=kflotQdL zJ2L2cy&s7dI3A>IRVO_@r&TAn_?N7-;0krK#Y)=$)3%5SetD5*w|C*}_DNgKsQe z#BisMkX~@)2o9+&VB`h`5N+seK$4u>l^p*m9p}t$cSzMa;n!96EGs_tNvR8emNtvp zxZ0wZsb1xe<5%tBw8%HIlFs=@{zB$sD&sG#v`yfrj54qzALsa}V-6^ohs`F} z1*CFW|lJ)_0lEl)*d9YTZ{UZW2rLf4gouWO4+FBYC!ziqAzVgmjpS6eJ5}o?) z&kNLs{JpU=YtTlZ-*sXO@x-fKBjo&_(n;+)G= z31{l8C#l_#H#vHu@<(cCy6~aR92odB5#q{!Co4^Ez`Od829uKo(`Kt!H%(aK2_@4( z^BHJt{Y7E}YAyA}y?01$>9*qh%Ovg2l5T#s*;47*&2yy+Y;q}=Yg%Br<=V{6JlAqt z{!`{_Rsy`6zGS6>)B@C#*_V3xeieaw)F!WswrQeWO7m6~o7+JFP7DwL03FdzR2!ZP z_&s!wQfT)^EA>e2XeikgtNgyyNBti?;f>lWyxQ`- zq%rS>R$BSnQhg+CJJ(vSYeRZBK>f~7JKc5qT<0SK_f8w_SZUUBf|y6@)U5NZbm13N zj--FzW-D#^FKvMDR2^!tR6)P*&LM%?nv@$cF8x+t((z}Fjn-@5p%vGkHq%LRd%T>J zm?rhHB!t%BgD4%|_0YZ@mX{8SPVEv$6Ob$ROJk48R|@7n-*S@1Idtknj|&q5G@D#N0%$lxM-QJXrqc#Gx8qv1f3w2XDaumW zIV5f4LTx6WWhJR0encrC^Y)Q#{+i`B|GQQJ^?mkp{8-W-7PU$Gt3SB~FP8g6Gniui z=T-JLF}WCC>Wj^~C@~P}v@tG8aPH*-o(8&Qn%QKr(JBhwk1~6IL(hUxhLOugRB$_Y;tfU$WdG z>EXyT0kt$D35g1X4uQlx_@J0dn={8dlh5Td{VPan5AL=SR}}{Kx)Ah9_jKHMr2YCU z-8!fEJa1(QkcjxC$ICgeQ_S+1uM8z_A8IAwiL!0_qUE=IBkA(IZ`w51)v^2&|0LCA zzZDy2s_#;DxWcer`v%`2t6a{|yVqI~T|Y0T;e1@1KMi8kHdMunF}wllE0R?0WnVCw}|Y(L#dH16f)%ijwZ5L%mX&w_9QJx2$H{S0s^kYX(B0VYHF>nk0axaP(QLY1Wdj&92HQ zYGVi>C^;`lZ23Cr;`P2F6#TS7C4pMMnxJHyb`XwKb?_>R^8I{JN{%L{{|V^VkCA0=>ADql0xOsR;f@{%SAM;5CR-(NscGB%IB$Q3zy%tH^@l` zF9~EmK*Qzh0S+{QjqKkG`%Pd~}(+80})O`vZO(`YQKfhPUsv5@kvQ;rPUP=A+=9(-Jq z?$cJg|5l&8QbE#)ZlE6nSO>i(4JUVBoDnEPlMH|q?o!P;inDzMV9J2!PCfT+#8D|6 zAj^jFs3%=$Q+~kZ09SmO3DTW;!jr_~iEf@FRWToT%(>m^08+iQBehioNKFzPKRjaS z#J&@{KD|w}gFeZnZKd*xaj2Sj)miY(D6LeDo{kN!@^QnI z)qw_kn`mR%?c>6KE{)B#fsPm1$c%HWwtc=ev}vQ=GE?eIlaEcxFu7?`1D=Ut2>pJB zCY!tBMM3obMvNL8e=z*7cUigV~| z!d1T99;Uy%BA9p$@KQiIoty;Y%7!D36k*=}j88 z1JM%!4}rx2lK>JXW+%+--FO zTa;)(lR$d(*(8+#L8v%s@>971LqL)02%o2RKPlbqQLu;7;&w|8+@$h^3Mo6w5u#Lf z;4|tZ+_T7+(({+NR0nCC$=ptCnBo&98BEJk?i5Z+>Psn|sT6@4<@wbJFUuJvmFFqT z>C(z5;7gr@IYw$`*l@$~+N7Rk#pY$&3eA$4Yc)-?t)`KanMMhl^zbQ_HTh|h1O6w; z;fSKD&D!Wdmq35eihVn+w12JDbUkQ={tepL?UummQRjwa08fI4OEM-p)8n7$Jc(jR z+>Irekk=LD6gQqErAdX$Q4asvQxr@+K??Kg0c|-5iX>x=9Q)(VEDF&068m6C$3CTC zBZWpA%}=vp?Q9!rJkIYVtWZ<0tn5>gXh>zGIwmt!9pD*Q z0PmZ*VM+SIUYSES(tpTC`}UjlZLvb%4#mk`?3KVmH+ONIHfO%%ADR3impi@W@ z(GlCSWsBlUws7G>tE;b98xnAQsvY=p#hjP({jA7~qYveBqj+b=ayt@5q7?4rR>`*S z*kOD2?6KpIKi)dpQ3Dm~OAqC+p|7#gLX)KSOtXgBX7%l6jjhtt+pVr~rWH_Q>RYv! z*2dY7Apv`~!{e=(tW=eN$FMB>mEn;gN&9{q9_q4Dz(3R@(`O~jh}0WD{orC4KnJc# zu1!p7()d>_7Hwc)!20_7Tq+i7YHZ_%jaFA%YbP#WZVe6fE-A-|LbD_J^O*b8yu*mL zj!mJ*rG_|;Gi`z~?!5C(d*qQv?1e9Ufh}INSh9dft(mUBt0dk5;C_t2oU3cFLS3_@ zd#mN^+N?%E&r5~jD+Mq{&UN=PvoSyuHEt486#_m(w7h)eH(DID5nj%as#D_LyrjR4 zaBqg=Ijsn!D~rdFk`obM9OxI&w{6>M{r&wmtz()E4G-Jiy?bnEaL87yTxqjs%}!-1 zz0bAN;lTTOOug5aoMlQruh;8@p|KGNvI)~4%;;#*uD{`WTf26xz2;S~wt4gCTTx+Y zF+gXhq`c)hmzTQ2+gSP9dV##zfu5ICM}_fIC9MY3QjJu#fKL;P1H}WM{uYOmM3?%( z%MkuBhz*#p-2fC6l$U>;*co!kuJR5YI%JPN`l#*Nwac2DTWqUTnL#B}tbk0QZZb1ajImDn_UO2lgMZuYK)nHZ(M3zy9mLZqueuD@*u9sqOOn z1G%!4&r5Y-Q_90N2YEW;EGvCgNmUQ{1ow1a0SMh9*59*avN`EU;Skc#rz?8x-B(D= zp_1<1x7WUR_4n-H!Gm`8Ip^u7djBI*N<}cGd`@F@q-ev#BU+(`tn=U@yZ-tg*qk|Y?DETBB%Qp$ z1q1Nq=BJ+rc`+)0!nM-nrQ)QDh|maQja6KoRONuz-?SEwO+<7iJ1@v$Kr`($4k~HNx zGL_TFV267`L+fOZr5kH)_%k$?rcAg!OR_mX-?e9tedp?{?b_?Ev+rH=eY^Ua?^*9) zzg=+Qh2vm{BCr3MNKr{4{0$R-tCgx2@IMPe3Wp>HC=gO``}S?t)pf|~>a?Vbl1h}M z;M1jYabx9YDe8?l(vG!5cH|BFXcYN^hPA=I{r1~!&6+hfTj0KQ^=f<5o8D-ze8nql z(c(o)LHg*=GmoCpfFGBr<8lj~x4XOB1_y^E-5WhD?GT;@`X->CkkF#27c&m}argg( z_U+qek3asnEnmLeUh~pTqwgh>hMSKJf|LxN)Ps_r33xq#tzP_Vn~PXt4p*=;){$ z!WhDunsoJ+2UdWPumEsvE!TWY&LD+CLDII-8X6jWe*jbACJlbv#5XrLTWf2phu78B zc^vMeF#_$m|Ni^!@BjYq?c$3swqN_TUn|EXiZ(ry=@}1rx_{un0o$=-ho59@-n`lF zz4u=CBPEgA7^FJjkKqEmfE+MFfQ{7wKnM8o12E#q2WZ0&W002okq#R_V8;M_sHLUF z+S}X57y&nC`t<1@M}063<)OcS@{^ymS4d}n{p(-v`Ljejp2?tp#sVG?Z`iQGAGfo? zo&lEpO{F8mB1%_~=3aB`6D?Ak>rVuDi|+kJ<49 zCV+$V3~+}{9AyByplrDl)qy`7j{(df>50Q1OaS4|GDW0|w6Q7>4gqW!l2wO%*e9QS zvOVir&$2In`O7Z(QETSToomM(cbs2%L#L1WDk
    QwcB&rVcy1%K8Jp|;$0*IoAg z?|n59dX+KDHgXp0vw_Wi*`{hR7k)qoG6R8lsaP3B{d zJ!ZGwdaFxx;*fLz9jOj5kdz@Uk(>d-0AJV;c9?A40YE^63KMEfs6P;P#7Fu7IpO$& zDImfF__%2sHbnlYKgx~t==!)(&+wBD@B?xrKT;p{2k>`vba)(8*{7*UQ%b^D5;{4m z%fk;p?5YVM2W&`t&Z{{lM5PI^2jD3)3{+`niMk^k(Ba3Xz5ssK04@NDXC!h3_7#M+vO8^FN0k+WDF#v|}FqDT4QBMF2cNU1@2V9gLfW!d0NSiH- zx&rKgAJvM@C`^Df#wI)%AwV2u;HKOtKf<%j6E+MT8*$1eJ^2?bSTH8>XU?4I`KKyP z8Ng==kaPJ9DbA$w(gS)se!7b^L)r(p0$_k0Fa)Twz=k4>GJ}ZA4k2*>92-MimH{w; z6T<^2K!^3BZS;e4aI6Qx0LYiE_~GSFc{} z8{DZ%Q%3vtv>IIsU*am5w>3}PzMlma}!2%R0(<%d7~p+CxBv}ln}Aojd@^L&B3UWhHwCe2{ndv7~)7D6y?(nzz8@2Dg9w1 z9xDTBC<}d@{sDgc*hp~lMcvtUK&W+;MS3Xe;b`-!tFCgjXR1+E1D>V_03j|--F)-S z_RvEQxs+!zPdMQOTe4({8vwwh0vZg`6wm4))!IVnYoeJ$4v~u%L(!3O{9L^FR?s*;%j!Gi37t%*aDLHed`U2)#S>cJc#$ z`h^MyV3F=2?b)l4KQ`%<8LAU`v9lX^{CoHA^`pxVfB3_;YSk)lPi23qm8J~fxdX$g z42HWfY`|8mSYfA}a*9tPm#Uahq#i&4KukCj9YlFyDuDG9e&ttw#oqV6_c_C4`&P|>pY-2{KN`ir0}SrP@NnslJMQpsj@bY_QW41yAb8RU z&;wYQAlz9n1_-n6N)sT@nxJf4xUr+n)E8k{6J-GGkm7m&lG-?tjunj!I{OdQ8Hf!m z3{9Vr_(40=+8Ol9GCXAJK7$0HPZOjy^4v+;&D2s zF-#Z}gyAHHuMaShNIOB-CmRZ2K>#RA#6^4-j9F6|A9-*Gn8P3G!jAzo_=C}KLy?BB z4G;$yM@EL!^6}f1Nch^?@l^_mPCq$*MW?6VFgq&%w>|+cW#LDC0rcqZ02+gv)q!!s z#=vkK<#Grxm8hx#A0R>6F|kNIKmpiU%9%*O0N4T8&`{EkSrK@ZZ*VYODHs|Wbbngr zhn#6fMuyAj(z4IzJ1T*R327I8(uCpj82v67i$NlTYC? zq#svB(s5&LO}a17PXe)TdFbJXo$*^+TK$L-;G)|DY>qCG{xAT*$1rx7kowpd@&SBq zl9Fz!P*npSumKJxBu*Px!sD(COF9w~9Tu?gF(TkuQ zeLdDEyRWy$-MzB=db_Q^tO8(MBFfI1#5`ggF&2yi!#ME$+c*NO0~!b)zOfBypBN%Z ze?abe1#FVZI~Jc9K#Vd1<7f|}IDUYkMv|XCtXsEE;NRu_=Cd3CIUd5{XUzO$M{OQd zn;9csX&h&!vbv|idO~G!%sW-6>d)Z;8B&Ok3|)Wy^}c~S|NQe^U%&6Z`+Q=N@N|=j zt(7!9;lvYd#@u<<($?<486M_L8$DK1PCyOU^W^C#418 zvc(L}6kZ&mVg`8teVru#>8n<`MCVEcedo>$0^x@@++gdZu5`4wDX;R-PXF4n{_`Dv z+LAB$&kJc6VSn(U58B&)`>m-h`a|8-N>vMZnvEo6spc)8Z-4vSek6%HbK!*-`eqNn zbBe)I4lo?>^>uc}x#!wRr=MX97A>`!LXE2qE;R+9kx?XE0y`5v>gvakfG!EB{Hz9J zfFDx)@Q5=3jMCqqm;>e+fr(sYk`(Rd$*BzC$}_B0KovNn4Eky?n3w>dmBHjHj%-(p zkn#YNG=z&0NS(gnE>~=7l>rrpUmfY`?y?07=478((kKF~I-g2nl}UjW_ynBmiHw zY?)nj(M3MV__-K`j*F^+LBgMQ)>(GKNvGKSg-fId*GlzBr!_E89^(K41{xZi3ImAz z=r6i0zc}M_UXBKgBVrnu#TmxI$+4oq%zglni&0$NL1j>VMHv{yRVS%U12ThyT3N&d z#oNsK~z)rU@xoNiG6@&a+cR;2p+2EPqS|IzDd zJI^Ih0k6IGT8&YcHETtLwOEKohD$bAy8p6;vu%quzq`9odHU=XFL{Z5{9_-pIrHWp z1N<+V&`p`VZ++`quDf#X4&XVp;q0AE5;0tn}cE*`@d;ngO4D}@;x4a3>jEKYD zhsYD8co86x(&2H$0;cq#QN_#fQC9!fjlv5u_+cdfy;+5$>LB3(tTPOoWHz@j3oDMo z0l9;_ykbz-=&;fPdimK`u)_6;A!y%$eS7V$n{TwPgZs6T)oXPyl3M+R(8ON+hd*{kgZ$Ir8Sw{5n+xo4f-wPlxGcEQ>9u|NBmty*=4 z>QQe|(b6zf9aZ(F6#~R*)0JLzW7$QWA>08a00mF`Nk=&hX$T<61Nf4W_NvK5y=HlL zNiE@D;=A&wJPISPpR}l)vGP%SP=BP}jG+2ReHrZIx2Uwi)rPmL`;c{Z9<==j_S?Sw z`)t3Mbl=`Rc2I7@`4k>1k4t`ZmAo|P`X+0eHpAvGSgciRg{?g4G+TMvDmz81(>WJk zZ0BBbsh#)i=i3Wj{%U*G8{TMd{hhbl>)!MRYie!Ls?g*8Wi?@?quqcU8|hA;xj@Gr z!8g6?_vm2GE?Ky}NE#BZ}LJNMe|J$t-N){$xjJ5<$xX958_ zryU1}49WE(dyObR0t(%eho z2V-32!SAwP|NR&LG}7eA!A;Q?%8@Dh=e{N3#V~$6itgVpl}38_q0W7FVE-OT=zX?l z*Iw%q(`?C5l%=_`$yRkV*}&FE?2!j&uL(_@d?{_UG>!=n$`y|>?Hx7~QNJ#^p0 zT6xm>y!TI%JC0Eq3r=hpCpP5MIy$VeLHfHY9Z=cR+Zt?6Zov9>Z<4^!MqC{k6@x9W z9oELyY=2izxqZ=#>ZGa$JSqs_LAtYi2jB@~Vnf1XAZ$)!P*t)_;Ne-&j!ApeoALYr z2*c0f0BkoNpQ0foAchirVem9kp;VWj1Z5Lb3x$j=3CSJ%1fp^IPhHAQ|N8m|{I1aE zjhk%8=56-GqmS8bKfcu-d|-`B^ybE9fj#wy%<(XZalv@MwMS@aR$TgG9JiiN=`bW9Ugh{XxfjJBY;wXF`iEPF zA2lXA0ag-Ld0a&zKl=tT4eDBJYrECe)Z6Hg`aUouwWrhi2K#OL%;|pAI3(4GI%)HW z7#|6bo4k}k7{4H1ud&MUbD2WHbdBA#ngM%6fdALs4YpyQ>QaN7R93yxclY#a1D&pA zR5MjI;2|aua07gFR6i>gA@Lp1~~&JVuO>+h2!pEJi!Is0ro@r*O=)N{_Z^H#66)6YIv5`Lzi&--bQ`tSW! zK0o`HAHZX{M!>Iux3n~g0czD7^(#Nh58vC~9-c1u`>G?Xn++AMS$W70^He)kJ>Z#y z1k?n03=>T_017=nOi~XL5K)fLn8=V|5f?fuIxNdNVSq-KOInA}7(;*$ zVg)TvM=W4)m@ECL4RV)8y6mv*TI#Cd0vaocSxa++bsyMo>mPf}c5mNqT?h8rKzEnr zy=@c;i}3nhjkPohRAP?i=2mNMX}1myA0Y`EL+@$jU%+Nr7m&oYbT3Mn6;2e=W>tw#LB^+_Ed4E@>RUV;%O+L zA(o;zT}ihI2dyYjzj7}9e3KO%CD)fvk|q)g*t!a zb_N8LYK&_^xYa1XDLE__Qh&InfUQ5C+L=r3f_dm8TfRlS4*UF!kb~hABqX>S&3sWs0Xjb+5nx6IhG7AzU(zpMTVoy5r}<<1FZ})A+dqBkuU+~M zi4nde5Z`&r?S2m(Nx5ssE_>*qNBlD(oTAi74XLZEw}&2hz&`QOkJ`uo_(S%m?|YB^ z!SB3HO!C`y|LwO}W1Z9y^ljQiKLlT%2FE`?+0mxLL5&wjYPtIXv7f)IZ$*BoybSoz z;e7>@Aq<-{{q#VrWPQrlua%>uq4D&#y{XJ5@d4F;GZ% zY{IyB#oce-yyvUByaB{F)7z(YSeGO&0B{)|=#c^Zew{!-LDvS%logUPUsG`Xdr&&? zJ@?*ax8Hn|)QLXp+<(Bn_4TjW^cl14L;v5$>@Pp__x9mWeab%k$-lODy!X8}efC`I z>h89Kori42>8IISfA`(?%fIp_yZj|r+H@M`L4AO92bai{hY6#EqHk&J{-Qa-I5{Hi#rQ%++sq)a?)>Q~vlY^s%x{G%EO zRydA7hlYG-P}Nk`fQOir@rh*ala1cW%|IkPA5-Pi9lYmy#;R2gK0s8^B%{Onbz2Nz zk#WMETq2e4jAS+>umgZL&cf>(q)w=QZR#2u_^I~1bGy2kbq6{1N+$zx#~6_d_4@H?yw4_F8LdZc=U9SW1OJ zW2QgUn^Y75P+@AR{$dgn);FcE8o&>%P_&$fOX+ToYymn}LdtV>NQ_jY{X{`+r=Q&R z9F+0AN;e`isuhJ3t-+o?zYgsi>?)_~?|~=)k6}_n+H-M=3Fn3&m!-J+3;AtC0L@J6 zPXdzsL@SL4lQ2UmC(M=VBLOLqmAC*NkL+QleS7!Y?p?cV*PdOj&Tv7?b!Gh<80eR- z+-ZYifYE~V|BhB)b#mgq;h_PS+iDR1Mf{QokGYbRO;R69_18&F;{N^K?K`Yr_14gD zwT+|6uAXkSrOP+#Y*>--o>TGkmwvNpXRwLK=q}0|n^09f)MV>86|fr3dbXKfZRY-FNSO*4)(WXyNvW5XklfpZ2ZmBPepXL}C@+R))!4deqiuYAtv&I`qmsnEetI-K zIBX{ze}exC2rt0IQ|FNIK}dJ}{1c>Iq67HB{=5wUa-~KauYUEb_K*MgkA7eN-~avJ{r)`6;JUizp4Z#3$?ExCc&30j6X!m=->DxS(W=1< z%{hD4Ip^4!&pO8+-sH5@Pt#^rXtr%zw@5wN?(d5Nbbjl#PMbb230>UZQc9AWW4>HL zGF{=k+`)?|0Ia5vlN!|EpblN0e>sJ7+me+EHEj3p9oh`Dx+JN-b=!8^y?39z_@ytk zztJAzum0+<>;qDr_!=26$^_^k$36X5eIqK1IG$1Ov{w7h{#JW(AMK_0MXfW6S3*|C zYNx6PJQL+os%!%EK7o?3oYe3o;ctH98~)ah-wP++Cs5M4oE`vx0nZ<0_@8nAsFwZS zzHV1PUiQjgve&-xjaDm3-lom!8-C-rY-n)MKJ@P2vv;Qnv zX*Hv?tzZxKmh9^N1NLN>!g()7Y4c(Tbbf?HwNupt-hm@x5(Df(EW=28q%&ZH0bF0_ zy-mdd7_w+SU0on9m66J!WOQ!;%e$+FUbZm=QgL}1R(NNVhYPH%hx|H6vTje&`%YNyVc9Fo@ zs|{l3!GpGK%O*RxZ;$o^yKT>oovKG*RkK)qyv+iqkf@DtHl z9L*jwPv2!HAtAkA3|Pt+Z9x6nBE5fi&we{JJdngcY80!Woa`g2 zou&lfW0?-XV}~1JvI{ak(J}ze&$Jyri2%O?Uhbqs_*{?2D<2!ehQ?-p#qQ=CuJ@zF zUTqFL_wThY{?k9Yl>Wp&eAYhq<*(Z(Kl^$6^gsTSU2x&W_Jz-V+MamqVXG6vIjL}- zs!|yepOpsKHEItqGBj+{1lXk~EVs=Y*4t-3{{Pv>|L6mD?SFm4YNYx!Ha2)Z-g|9n zZMXSLkFynLoMANrHlHS`ZK~5=gS|J62D2~l|y$|Wo&CX9vbCPzRIcU0S_^$A?cIUN^T??rxPL3#takANe$urQyA_5 zcR0pAgQ0kc2SURF9XfwQlhh3KZ%MrzujCbKY(#N0=gqg}r?0Y;&v}+zeA#pCgcDD& z{k!+tfjxVrx`;WsohZqU&duhRuPpFR?SFptEB2!wUT2L`P1>hVx9PK|+e2&av-u0= z+w0$al`UI&f(>b9!i<#Cxq5R`o9bI=)8@>xIg1zBaVwWg#cH(A{qyJjQ{lY8&X2h9 ztA4!v!6!N(A0PFLlNXL->F`KVuvUMUwzt|Tv*z1L)7rg%>?v3UTu>-|wbPUUd{6)r zNd^JdpEOAq#hsETzz2bK?z*Q_l@v0@5V8w0_|bj~3?IvY7_L?uQ#PL6U7dDF>P_dN z19ot*-})u7*_;-{5EKc6_=PaJ@%si;|9X46tcQ&*!c=u}a>Ms=PCn&iyYkh)Y-eBm zY*kf|+R`iVNi|U#2Yq9!wY9Wadj}^&ywNo5pWJ)zyWVAQdgGhyqaXdKe`uEL4_TqW zA!$KC=A{w*L*n8A34zNx%>K`cW?M8vdkI(lBtX<&jhMHy+Nr7m9}^gq1#W;8`!F|v zW7(E;O>}q}hx>ZENni$Lh6l z<-`Y}oSuZnD#oWjxIU0>GqUg4y?>uQ_~3*7r2@u@{$~lv?k};suVf=?-hlqhvu;~e zyTj^B-ATn$I1k%sKdV@^Q`JlOi9nAD3O|NP2Ot>Sp|kUscn6Y93Rk)1c#a3z{PAtd zE*@s7&f`x$*-kq7RBQE@C<-n?^OA@McJ8%(yLa25B(aGhYAJ^L%K9%L13c6t*!#mD zxB&fllndxyr&f}h^!4CF2lm^;_ug$A9(zRX;^}A|h$eG7;Z)wlh|Wm_`)H1N7GnrW(K1*3}kAWU= zp%Q?&vL7b|aQNq-0TqNHk`=&Xc&g}?BuC}=wg2-r`#=Bh_bgYawH8VBH@)RIwUHdO zkACn2_6Ps(|Jq01_ip>c_rKSEeB+JUK(4Ym^XE%a@)cl}uX1QJKp&Rc1L*2&>(W=l zgv7kS&V8TtYuDQ9%U@t0_=`Wci=OuafAG`K(W08hdAz?EB1%2i-^2kP?<<*1meFzh zSaGa_8%td7EF(WISFzZefDDzx&IYiPo@3c+r>X{gNUZ?7Pnt}nKMVW-!?<4oS*q}p zAH5$u@zQf$J-?Qhv*UOHz2!hINnIy|>)2yXg zIyllCz1lmG3_bNrW#v9Y(Qo3hE60O>v{@mZKe-eJo~730wTUU^(z@Y{58!>MjsgA` zP62p~1GpT<#D-)K!tI}{D@!|!Kdx7tPdsT|w@%XDRU1cxRuSzcYfx=!_?gJ0-t9ZIA@-N$m|MoNXr+@Pq`{Td-lzsRUe{JvjqYv3hXPjXp0y>5H36YS+ zNewE?@UYYc>Bg76^h#TG(M8rbkUreX)r6P6=CyYGij!>1#!YtUP^W*em4w16t2fr^iue#yH`29X|CxHt7^gUvnch{t6?X2O%z%s1?D*esxpT_rO&H zQGgp$DbaYs=r4K$7=SFm1#_fXE?dqhD#xWTI&PA2fUj9PdVNEaHjNEZJ$P|~Gi~aJ z5o!eJ5i2w|*pijY?TmBJv-6*GnLX#FFSAq6KF9hb*@qmgsXdg>H3Hhs?MS}#o8u%$ z`aDO6&X6j6@v`G>+KibhTe^Gs;h8hH+UA>1bQ1jD1Ch#h6%40LQrA+QK}k5kz{&-H z89tn)8tpfV)}xL0UER}d$3dcqlmJjY{<60-Q*~3-_n>k@vu;4m)dIe@#bvK~p=S6+Fg{pN4}rkx?xqO(|=mb&uG(2k*CgZ@<|;d3VQ;ZnS%DzD4H8 zcIQn$w7YKpkv)9hz4jywvT>vB+_KdUia`d{CSI22p$;k%UoS2Q{Qfjp9bI))(_b6k z7@ZPIgLFzsH`3iD(j^VjJwi%41f)i{ARyh%_|YMq(lxrrJKuBm-_F^&=X<~RKF{;1 zVJA_kDHim;jfp&XvUYgI(p_l?&3j-Sog)AX&J*|k#ibO>B>GO7=fOTA$np)dLZF(q zBKWx{$Y{bv3ddi{LY(xu&}8-pqJKuYd;1;U3>xR0>bS0U`K`>^F}rrt*tEE4o9Fa+ zbLMUK*jA|`ZkB!`ACO9ChA&P}8CWLBP8pEav7c7cK-_+{<27Qf<1fbY)m>rZ?&8T#BS_h&%eT*yyCbv?kWpAh4mLrS>FgqcQ-oIV zx9Lf7@dm<%F_r%Nko{2Q108*QADT=_MscC)9#`PrLdG377hW%*=6pnXmHgyp2vBcx{FWWQFVUj+QZYf47dRMjZnbF&JZPD1p2j6S|J?= zhQr}ub$Rvb$6_P(ERjDF>E~6K6HS+#CQf_RyWct|e$8?E{SrHarY~FTw=awb-&lL? zGNdn&5*wS9=6e6kab04~@?SYejNeE{8A78UOI7Pp56%hB__=uZP07}pywhhHJIU{( zR)dF5yteUv)<@2ZLin*uZ#CvjGG>=|gY8_%64=`<2QE5C!l@y9LcKcn{FS2jl*8o- zTE&8-Kjzk)FUeCd2l0#N{@iP_-@+?%DolE98TxWMW_IPv2RS9Ojb07$d}J4$EpU|9S379qdO68yl1D@1TJmR$*KGeiHWR(<#Jl zz852_q*vFi5jIYew#&T(%1#5&l#|q%3D}>Pap7Aek=rc zZ`sZ^w~*I%@gl8s$&G9HinQ~=HC=Afow4{Ux;^nc@4D(mQK#$>0fU@PI{}>t-SE4w zvO908)m1!#9C}PTAan6qYxHAmd!<^^$LeO;mIQEOb>LmCv2IdUY3vhv_n$7fr%_i> zN7sG5(~;ieX;asUci%lafqks90$6jGJc9;ZtW7PMiZWnK%zM!iZ_U=>w0$lp;N?H| z7HKorAi1{mb6Bod8A3YyI*)vgHM!>6pSzm!gx{s-gNWOJB7g9dh2kd@Iu-c}jE1Y_ ztV5z2t`ASOfbxG9uJJ6H6;D~^<*}3NPcu| zrds_T*}>%BP$d3t3InzokqFE9C$GFg%vJNwZP$8_qv`>@KkwIWtBcDQOUDJg6uz*> z7E*x-y9EypEc}Ofvm}D0{P5{GJM_BgOr^+`g6DpAO|&vRQ@8FpKlXTcIo+;#rYlRE zT$HGwr9<6+OFBE6{Gj^YKs5{PZmaE^p1G%pS~nw-eD)2Q#!0|7T2ItVq7k<@My2SU zvmsy;Q%#fBga?w5u5CVVph)!5)v}oUb5y^&E@fO;o_v1p=6JNGcGUD-$tYk;$;e|RdU__$ z);2ddzXJwkJK=NjOEE48lzte=l)6;EOam%rrq*D7E(^nvW5}jcq%UhS2}(#OeLdrL zl5w^zL&2|@Y(hu;VvVc#BLAc7JkF)Ty+LR%y-6r%YgKP0AaAe+!$&N&dj!waWkWvU z^2XJBggMFmfRR2Fyhapa*-3baRpABHwtk?Zcx_{uYbtrRMURn4;eZyyV0lc{d zJTF|M?Ra@d>swHxW$nZ%X_db5p*xp;nl?g4q=IaTc_35p{G-9m94$qdA|p$bl-Cq`GYXQasiHM;4yRvRkEF7)1hVqi!*3iH`jrzdD zDYeJbA85x8>ZiX~=PfArUl`OrSCDb2>8^)m3}^hOltU%mJT&4;bkNG%%~^x0bo@Om z>Zy#vlB=)wYINGw&6_g8MPX+v2+J=>+vwZ12W9Q@?+{AT{on8q=f}bHE~~uf{-NW` z;A=O3$FV>--=?a1RlWLC5A{-B`;qraW!_6Re`Uw~!V>Szv!_eedzAm=a|(FMrrPFQ z@d|=Rk_twS)|--`7ddAEL%}_XmWJ_`T^DIJf?-4C>f_9@=_(d3Y303Hn1%B-fg{AI zHVb*jInH=-{6<)LWg~8*+V;7n)&H+(2Q-@?7)dYEE8v40Y!v+}dKx*IhlE!1Z5&aB z^dUN`SUOW4{QE06B#ezsUfY}O%=zH5(av*D(*{pGF{>d?Q|FrJYk}pn_Pu8>I12Hy z=lXr4(`xfn7tsp0dj$WuYU54M;|bb2yz%<>#*j|SCv~YTCwONhf9#1(V62*39Wz1i z@w`+o$)WQl(0{^z%`)%hY416%l=|gvXr9C7TSq)KXZ*EpqYnAQ#7q^clgiQT5Wdso z5yPSbkzfJ*`=@6z>U8_!3bX)#NH zu;vWCF`a8xoK!|md}n%5!efY>ZeldA%8#S7pyQ-gyjtih)-bFHlIwNJt?LeX>Q9yl zRlbw+2x;@G+fj9+i9JS^c`$=||CG7cjmzK!sx#>##UkcD9@|eVp6~s-| z12Zi6^rEPy=u>e~khojqUg#>Rmi;JZr2DVD&hsUs9Z<-kvP zxL;WbW%%Z_xy1mVIm&LGof9aj+PQek|MNOd)eAmAytE?Z{;A3K(sx6nl#iG1kuS{f za`&N$szttQuREwR>7zT8)OM+s9@Z*PeeJr2am9(Dkp1}l{mXs1<|YT>$enzxz|#St z;oa<8(q|vz?Hw1%=qZ+%1kQ7ZuSGDX;ZP;v=_==nL#qA@Y~UC40~}qR4+?&GDLq~S zcGn3W&d`T<#b1!5TRx!~)OwV^`&c)tCbErfgwR*!0q)UqkWo)7yggJ1UD1wv{Le0l zOQ%X(zG)fhpH*nPc<1qtREg^t5WL4RPan^){DoW0&7;r@KJ&EX;V*JIa0*MD9P2c>L0xB3HsvhqLd~_@yD6XKi(zYhEX0iu z8ZP5BjK;Or{b7d5Bxy1)pVZxd*FQQD&Qtu$_nIdy;s_ALC)slhT-jvAzvkx`SX6j{ zylnLRe10tI{oKa{YiNQX#!mgNDT!}Gt3+uQW7T5_?Sxd@QKOOLj}=wb>qh@ko2NqS6M*JUCN9^bHq_#U0x%b!$y^?jV3rt!D5 zYC0Yb=Jz?4Qmd+vX$jso?&qYHjZWR&CJnD{fGLS zjF*@Hb8v0HQcTSsrCQHN+_v4pEQG~`W4-&!JK(AizSDnN4fIh9eaqB;pS6AZg)BiH z8EpoxX{c!fHCzfOem${dk0&TNUXAom%H()U6-y>ZY!@Jm+>QzaiiQU~uA+oQ;wSEl z+67!!nmW1ojv74`76d*A22~(=7@MLA{un-QQF*HlR*D6?t4y}W5zv={r8}MsNDb_B z#K-h(5KpUu5pY4B`Y zi6M!vJ%5G>q8K_DdW=sbaWpkKfTM0^y$o%Y#4N*cQS`Wez_!ND@#b8S$r;;1EjOS1 zu!*BNhZ*QuQ^9WRcOTt&{R2T#mc>}o_b1J1OpA~Vi`^8q=H{ji_x2j&B`*890CWUhXb_e`oaM@s(Ogy6!xb_nzYI zU(5NVyF1Y2m&f!7LKzAY46f!KO+bbP!zLWll-4W-3%0y0;y8FrI?q_1=TdfgCUY@J zAOY^y56_z8S95#7y*4n_Pk8sqt6d`XP}p@iCQON`1jes9rpe5w%d%(+DVT)t3>ZiP zAAY$_OXx2TT!Vx9FL#_;b+T|DM71um3K-6v3uh_dajwpWI|zalkB`xbmXE<2WbNt0 zUlq^+SYG#=?!Uh!F}5haQrRI9<%#$3%m6@by8m+ik)onH#kSWLefzq|#dR`7dwtgG zh$?U)2v+T~Kq;_l=I?#h*c!pu_5IUXUO$zhe6CiT0T5HDb2T?!$hUR0w1Y)7hr&9_ zuO7(T9U{DT);Ddt&sA$l^t~1D5h~x_&Ij*>M!C#J$~`z4BzG8S_=Sg5g6C8b&o<10 zR=RleBfC~^Ub|E)r%~g7&-%e<_Ae2ZVLGp@VGX!%uCxL9ir2wZXbJ=dpMGweuZ^;S zE+;11rQ4+j)YoU{=kNGJYv7j>OMhPOFK@0n1A01Nc4|Jp^f+@HwTXGXfNlhWpQIi~ z@q)VHN2Xn7&tj|aP}Hs}0Ue_4P~ljpH&gK2`wm5^Q@p~)e8v`Jwdl`m`lb2Dm{H4@ z5NIl!t8$Li)=X(qK9HPZmwz9!K6LisR+}<_u?PWl`*+hv&_@meH7@j@1mm9~gYVF~ zBnMWL)q^flZd_h&&T=DNy1+QoJUaj^@6>Jn+E+-^L*MTpta-DOiAjQ53M#ZoEl&e> z*u?)ix1Gv$slnnUp6L7|Z*bbY9P7zDZ=IIw{VP}Ro?Y5J^4|OZ4Bp*-I1AFQl+M%p zD#wZM$Pj=5(b+y>o5`S4j>g}ncG^?w$1=V9;D4F5ejJ;7qTej^vRO zaJz$PpTK|pq_E7DH#NT8s8xu=EV^1++8UwJdE@%u2kaXQsS1Hf18;9 zsY!84Ice8wih9Bbm8d)9leLylLXoRLMbc~m{=pH)L0Uvrk1NF<4KIEYD6nIGntyCu z^u@yHd1VhF#;Hd%=8ImA>oz&7k;ii`oly9(c3#7tNl?qG`w?ZM_nElE$v!OW;28M% zTbS|R*o;qb@9cuK?YA~4(gP1^rq8b*VUZGBF5=HU)K4Kfeuw4oLYsz^o9Uq7@wdVG z^skk;hRL)3W>b=kEw1HjR;GQNfmq!BC3BQ6*FAWhRZ(vL52p!HaeV@Oc(n=0g#m&@ zlXg~Cf=hMnCX)!`@+(v@WS)|#Zgy4Gmj-dv7oKld9d1WpIr2Kh;_>~1Df}?qP2d46 zRnQ;q$cBrzDAu&%n6MI5xzaZ;>=3ck6Rlc*Wy$?D!+AD%Ro%1CN6XHhtU;-P|52Lx zgi>1>YQ~uP{^JMVx};<0h*KYt&(ZmO5Y3 zudIj2Pap4ZV`mpEK|&5zG}VI*}T zQr=YrAq4Nhfd4@vf=Os=yV&W(X}W84Vh za;&%HDe?uMTcdQic>bF%dHzPWv%a<|giJt{HOE3SJfz&%l=myK)WqhkspUGkW8;zk z(Ft4OyPLTwe(F*=LD*-fastGLpxqa7hu{usrZ>|p=9?kKAAB)MxW`M*0zpR-C#^NX zGk&-pA1SRd+SL{FAIo-5oK7rqrTp(UBb`Q)2jDT(T7d|k*SL;hk0i%W)a@I*$_kEn z?R(Fjw#$>7n{m6FA+Z@J|IR7lX0?%SpPz>%2=!%3q?Pq_FTfd~E(o58Xv6Rrc)cTLN0S#b65m%EGfll9Ikmms3YV$MK>%_;bDdtqS)d0#hVrA}~Fvl)I@ z6XM$Aq@LeHEu-kK-;OjIs7mB@tvRRclh<6A;~5!__C%LioIRrC!aj0lj`4SeP;=iv zcvoM_`P2HqXI+>s(xeZqINiJ7iaU5Wcz3o!7oNUH8R9do!fhv;dguuWuzmM3Wu1ZF7F{2!;x8{VoGKuSZhu2sG(kgl z?b-H)Ecw$`#cxo-Ag>}aIDO!#*?e&Nu=QjiR5IpW7#Z zQ#uniek6@5f)BSONXxkZC?6(Gz4UYK;E5~lam@bt*yXX0f*{-VyY9!l=4FW&t}@@B z-0QdhH!glloAus5w>s$5-RbCo>G*x#Q+RctMUL^ga!o^~`|k3%Sew%n^tIQ>H;#0* zbt_OOr8}no%`YxmGi3+;=s17r>|29};4RpPG}l*-jveg%BNi{a>TU!7avlo= z-L5uX#Oltsxa7SPbuQ2G-9)j-MSc1G%J#!y)TLtSmttDJo-x6m)Pm0j5hPfE2@**= z3akC9t#b;h{A&uHl9!|N5kIDpsr@#@7<3che+r_6@ho zHz_YqZAE&lOldp8ibKI@#ynKH$yVTEaH`Zo;`w8{kMG^AOIVl|_XQt3N8!b_qC0&0 z*G99o*Ze*45(ZNqZ3H=A&^xQfqL=oT%K%QmPfV?7jrZ+8c&1b;`g}}z+$vU&#*pLi z5jp`p>u%{H@@H@{J^|ce*G`97FezmZ6YsEvmmFEwf-z4Vjb#rsY)uJyLUXi*{l>fvc=EbC>Zwj^2ml(e5WEz6= zCoaJ_v!(o!Cfunrqts4Xkbgu?X<{`)xHHqBAy*oWLH7~)vv^tR=_st+ zK4=)B3z|B-f19N8u0-!Y4UqfnBOakE@-SYq`60@_aOTIfoP`fdTv=*psY~=4LQy-Y zf&l?b5|VNB`XBYPo~Tb}RU~e%;O1Igy<_n_fp55;>2iWOmS+&JtQb|V^$h}xL)Lk3Yo5<(1aUlPW$!oog;mrgJbmiPq5 z`ECCAo#_O=>{4IZ1=nr6>FTr-c-bIpdyY7IZpx%;KEg$Sb0foDMZ;X6&*0UuI9g|tB$Wrf2kTxufAK|u==y75!WzjgOu z!id0EDz9R-#)`PvZd);Oq+ zn_D(PNbT=ChFNTr;SHwM``@DDqvT{io<_=*y}k-4Z#Dh)Ht?5k<5RAwcCk-P-K+Qz z#_u_n8=n?JEM|a0)4UZ7}Tc`}p@!`?nvL(XR@jZ``zaP9GThUkyh8X~kzws6!%)J-u? zAk%;{;5|ERmhX$U)^uHqY~u|Yk{CA7owuoxfl*619!TDjPM1Zk>&lo^#L)S@Bdj}$ zb%)$Y&FxE>gpi^SFz96arnKvp!~eL4&(cZywa{7nrQ;4X&C(3*4(km&2}o2w63A-@ z6i1bkBH`bT3E#^x3;LA*1EH@pK3CdTw!&ib zp7*QC5~y@~p?Q48>oz+df2C4{G*SIl07n=$JO5__DaVkTjM3GYO%4*3|5mAA z9#a476O$*=lkqb`v7lbSOj@NYz!XsbIqkDE0U-o&{oPL}iMQ@bi7*4u-Wj*faqPyNyIcHOgd^(pM=X=WMCe7C<#4UpA=woRy#&G)KXE+!HhwqbURF0Y}I zC%$@8E;;u?FV){aU}e)o6;wo&GCbX3b#CE5=3ru3gUDPk{&;RVpimnFd9Oz7v8^?BtXbUR1DI_VGp3+53lx7=$S_NFzj!OmH_r`x?aWr?EJWQtx zgPsOmo+3JKe%E+L07L^?Vu#KQF-RmI)*;c|#v|Ab-x@nNP&i%r!f_6gqS`eXEqm|Y zVhg6*x{t;vkQPY|-23vtU*70Gvy2rchzon+PFUr9fwBZCg{_eqk1nM_Xs}_@Nob&q z#RY;l|Anw3hYcvAUH32_q)`3EVf@XWcSHZpnt8~ zNa5&M0*rbg8BgeF>;M2^EPl5fCer8L+N4+-n!XKrzV2`}N=6bOdGM^EVnfL5uMfWt z=-6%r>#eWfC($q4YszSBAXCV&0D(I1`TU6$+!>z^{5!QXAsY<4x3PNJd~8s z9G`jz6(p%C*IZ6_*n_7@?Q39nbG*16G%X{JF0jc(0k%E+kRzHX{Z-1v_P+v7fP|x7 zqmcXVUCR7F>Rp9gz`21lU=u4SeYYHtkfk_2Ewh?XTNOwz04Y>iSulq<8iR2XEk2V= zh7MDovdb=R#tXk);X-A@0-z>pDC|KLsJ#HWamH0WkS3d^9bt*Qp-n5drLCooD_BiRX#BeLRqD00bzv3s0+DRf ziN=k=-Lqgw_!duud8_`kD*7tlBzz>4l9rNDxq&6?O&gD?Mn6hQxL6W~E@Os0EkI6$ zsetZx*cSkQGId`Ns9dcJAgumzu}uZ#2LX5@lzRoZknuO_8w~1Ut{`uaF^u+A1p8bn zsf0)TXyS)bjO!t|mTgSNmyW%+FaF99S`t?0TZankGbj@*69!YgW}4Q2|Ib2YAen#z zT!3mVLPHTr;SsQiX6+L=J7ukDk^*WgNv`{E}bT!mWuaBZMD6B5t>{lEZa_PU3MdC|2?BvXBObDgh+% z_3R=s0La#(&|M7gepz^QMl=ulC=WW(slvCMcWlar!OewEcl8^iyA!STG6u8MJK;D3 ztRvBQdlzmGh^4ic@hx5<%-?u-3;ot1uL-HlLTmd}khP*}x%#bF)9jcE*x!Z~#415c z%Go7W@TuT=sIEn0C8e>B295tMG$46M#`mZTl3UZi{5tAM3C~E?u(conl0e2Iq|#0S z?nQX6az5W_jS-)Dt4qtblCPc15L-EKYA4-X_yp4*M6;fe^8tuo$O_@34wIrip%eVn zgG^ikSk;^m((L{cK1S>q3|xuS91muZ14BDgJBX5i9e0n06n^?|HkJzl;@txRJGP?$ z)|iH?+s{NNADnxz~A|4qAsY1ltjPNLF z@K^D0DC3K3J|*?W>*#&Y#YJZujTSX0oM0Up!M=6d`VT=Jh*KwbEg{N#UZ5nBD)KJC ze?Bj6B0`o_Jqu8viE^I;FFUn^Ez{>#k;ELi+b}kUQGiA-IC}!<`)HPIUoL@ zf?6f$?pFYhCCcQsqQljke3tGNM>RNOq()aYYWJL^o}oEPi7Lis?{z`0_WXm%dBMK@3D?JPI_7SQc7H z?1Y()qNm67dV{tzGCmsColwzDaRTcZH0z@tt5tJ|k_dAaqq00E*5r14>lO(??NB&*>+FjpnVrwS+=?hb4HwJiR7oO6!6q2PJt`}6gy@w)~tL9@x%qR$H{xx2oQ%>*&vQvq5B0Se8lXFrIy79ZnuvqeBrWp zGK7i-shQXEBwpd5Bu8M%`u8^JC$g8>jTnaz88YKL23EB*kC+9jZN_$O66Z&_LB3B=9@P|9ihTs)} z_;?f>5K}i4JEj@p=*N6C5z2}cpV*#l*yreY7d3wr`J5bA=BFey4VxJ>-G?v@ zl*DiV1sFo0@x~O?{YsreoijS2G!uYn138f*oFh+-8!Z`$K!b2E@=gso!mFbBC-s(I zpEXzjgjH0#5cXOsm!Q0OKW|^HqkO zNILVnafmqx&kSV)kxexcJ%TrBZZXZoBVQ2p%|p{>zr9Si{UusSQuHL>INPod9gLPZ zWzsDz`d?^XU8q6|3SDZoh;mxc=K?O~3>0Wd^aFZdzs~@O8QUqG`@jWZIY@+oS)K1t z$}$@=`rocBHlvSf{VnH}G7L@yxo(%!SK^S11Jo#-yFtUCr-n3`;PUu)A$(P$;D#&t z!eL@Bu$T^81`+CD_kRG&*O6Y+H~)7T5tU-9m;i*a4%zP%-{Z>$Fv$8?i=HxL)j|f% z)cYNi-gF~(yP;{zw6Y_Ul5RTV%fz1Rvbi2fJoqk~zbu3`ZeS6;-ZDT=C8ap#pdttv+jntz#@ zoVrjUqJoH%$!40@`MQEU2C)tPYoVL0fb)( z-|Uu`@u)ILPv@Z*K7)n%XJZ+*$?zsD2#pZVW5lzGsoA8B%Mcvzl&&5LrE{?D3uB$x zo^bxa223e-{FIvXt}>Z6z7ElP?Dz}wYPK|RE|GX0GbP@EDe`+t(kvAQ6LHw60~m6t zjo!8|*(m|2kYE9q*&{N&h4WS{fHy?&DhxBr$hPFV1Ga4@%u%g=`9;Fw9A?p8MkP~4 zbzS~*010M3n3{`_8gFWH4=83H`;K*62f~uyC;iEMCvsTO1ay2Jp2BMmsmdD}{}Ii6 zp{u25p*Nk>n->$W^JglmwJtD*htVDsNH2Z?so1b_haw!Tq`l^$g4hO~0WD!ctdpse z2y>pz`PM*C0bnvohr1_3$qbFF4zcy8Rheb&j!Td##EmbYjCiAdFh9!>9dIpjk3>Y~ zQ-VqR1kF>>?5J6BTSd}0xqeA(`Slf1rM?M0JZ$^!#otJ46$`f>|oZO z)ZhQE^H@#AMIP2sp^q(6n((B31*e4V0RtdtKbE{zG-8a+nlMrrv|oyZ2q2SY?;xQ{ ztW^QsC7P*xE)Jt5JnjOD@2~6#7irCLNWA^Pc zN)+mbLJ79@&;-Hv@!BC3oy3b6dw-7aWS!^{qhG&;pqg}r^~{H~Q@Z=U92_iwP6<#l z1HHy7QGxjUUnlT0IZ8x}axoxW)^O2v<(Cu+Y~k3SYyZ?y4@17L?=AYPLEel1R~I&* z=lKBfqs#9PfE;VGauhyTS-OIjV|d??Q&PZi>NRy){a6->Y;K^EWz%v>XnM1<+2(d;{r44EL4bIP>4>pIpK+nRW+f11dAxn$KT;;FJR6jhjZv(0OZSe zwrMO#;U4Fw=E>mP9C!bf?9E81v@igbBotT&sVw>|{XG|xL>_5EW`~01ola(FGOZ~W zUtrh>hOKmrD#`hRCRHHH{?j4|3lEGfNMO1#vC zyKT5DAb~oEx|~=NvckU68z+_|@|l)PuLL9JMm`sM!N|(?xqyc*HUMbT3o9Jwe)BZ$ zptmJY*4=3_fayPKv}R$O<2g@KFGC(b|J@!^@xtKD%;--0vB^0n@YFr8-XCFq>It|Q zVQSk%$Hj=3YT5}$3Zs^UY}2B+x!Z?Op3_|as=wB2q{B)s#BuMpKB2p2VxG1d9iZF< z@cDmu9f-8?M8XpahM74(d=NDYUS3|a;q)C*7Cq4^L?kYj(sm}?{nHixY}qBt`^;Yh zh8Lx%eTl}4B1M&?*cd`ZUI6+4LMR#I&k!M)KPj}J)yS^%>JP*3@h784Bed6KWCSJU z`7BYwdVr$gGLa$Cd-|QEgj*ka3A-E@dHnZ8*6nKi<|?x>N@&IC0C>Qa>!Ux*@0wOD zyjR>JL3tSRrSf@0ka@0q;LpVUjKuv-CJqvsjL=%gT=p4cx^T)qs*M5aYt%5SnazY+ zm^@W?w3KnadVbv|>eGr((b+4=dS_r;o1(f%i!|sGbVJ+;`)XNgpq-S<4aP%qU2b%$ zN6fsV|5AIG8|+f@B;Jo?uRw0|TzfHo{*lfn<5B@yVed$WZ{vbNdMm$_WFFY*62&jf zv{CPSk!5`l<=lLRLz3#G@cCbJG|PxR=}vmwgGPO&?wa_fwq7eK{-Hb!=g@!clB#VZ z6l?G>qv9$S6!1#Yf^@ysJnZQHUpj7Ek{39n-e1jAaA33KZI%(3Xqp!cGy{48$YKN| zzWW?vdIQ9c@Dd}bX~k9Egg0~lA~3h@!TXvj?__>fXE}sxi!M3A{jUEPePG*G4BIi3 zt;XZ^S*D~m6)X)bL;&KkCjd~rUdwkk<=2arMR0yp#WDpA!d_1l{xt|E`H1<0v z9;cWf@{?2WX}$B1q((La3?ZWIp0QsLd5<0uQPgN)3;;I)^~TT?BQ_8O2#_SgmR!xZ z*}w%&H3FQPxfkt58pT!?H2DuKC8Wp=f0=!hR1;;zjwSYv^I;x(9ea#3d`$A(u&t|l z6{~BP%K>BrgCGDAa>*h_)ZYMUgZ2}=_W+Iz0AZG*PLWwCI@T(=h#o5Vjai?KUsNBi zO_VO(Eb|iTWYS>+8wrmdgPN(D*tL$tm%o_TIxWlabwqpk;zH0DaTxackZ!Ys!B~jF4>2@Ii#US!mJ0b1^SlBhnuU@_tZNHCqHJ&3;}|P z9?rnD5$-%-mL-YIrK@ixmP)JYQUIp^lF&7*rM|0XjZrf)uPoM