From 621031f63853d014b2cd27c87ef5908c5df338e0 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 13 Feb 2026 12:06:11 +0100 Subject: [PATCH] compiles.wip --- .../bin/ctbDetectorServer_developer | Bin 333464 -> 332308 bytes .../slsDetectorFunctionList.c | 613 ++++++++---------- .../slsDetectorFunctionList.h | 32 +- .../bin/eigerDetectorServer_developer | Bin 449085 -> 449085 bytes .../slsDetectorFunctionList.c | 61 +- .../slsDetectorFunctionList.h | 8 +- .../bin/gotthard2DetectorServer_developer | Bin 296176 -> 296176 bytes .../slsDetectorFunctionList.c | 43 +- .../slsDetectorFunctionList.h | 9 +- .../bin/jungfrauDetectorServer_developer | Bin 317092 -> 317092 bytes .../slsDetectorFunctionList.c | 41 +- .../slsDetectorFunctionList.h | 8 +- .../bin/moenchDetectorServer_developer | Bin 297992 -> 297992 bytes .../slsDetectorFunctionList.c | 38 +- .../slsDetectorFunctionList.h | 8 +- .../bin/mythen3DetectorServer_developer | Bin 306100 -> 306100 bytes .../slsDetectorFunctionList.c | 130 ++-- .../slsDetectorFunctionList.h | 15 +- .../bin/xilinx_ctbDetectorServer_developer | Bin 306104 -> 306192 bytes .../slsDetectorFunctionList.c | 464 ++++++------- .../slsDetectorFunctionList.h | 28 +- slsSupportLib/include/sls/versionAPI.h | 12 +- 22 files changed, 725 insertions(+), 785 deletions(-) diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index d2aa655077fb2ac5c879e69af009ee00cbe9b388..58c183e9b3ee5ca64fa19f6ab7af799f93d84c19 100755 GIT binary patch delta 154237 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

w+PW8;$NgAx(v7sUI=%< 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 delta 155562 zcma%^e?Sy<{{LqIb-`5!rCb$l!5^uatwx3Bbqk^*p`wvLsn(>@vcmE@Dr?dFTv}d% zW2Y7A(pgd21xm%b)?r!MofURgmQ;*ms}&WN6_(2P@qW+FGFG4aeE)dCJf8FZJ?~#L z@Au5E+nloDxs(xCPs}e=6eR)6QQ`}OO2WKyCE*L7qNu1GDb;aBdD@WoL#Wh0B*K=mO zFrS_~TfqvwQ}n`l>Wpsut*9H>IUhBDcEypA?)=$V`s{gv9Q?mpnXG#Y6ESV1BO|bM zUXs3ao?78JBGbp;`kL)qe0suz3Z`m#dI>H{I$S6vos=WVah9(5g&Q*zacuc?_|x?x z@eX6xJfB`xs0cHhaV6m;A=R%K=f#zT9L6IHeSv61im|Vg6{I~BWb(Sm8M$ZW$AT=c@F-(H{W4gN;=IvE5-|svhebdLOPoqWu$Y` zLMuooIjl;{(?=8~VQPiq@~L^c7xETq&%_N4Bs>^TFq8Dw!Y){xx3wnO8}IGmbr_FM z^XaoMSFkKxI7DQ|&5rVLg^cKLj&dS$oEFi%wBh=`U)IkR1)1%2_#H;Kd8Q)BEZ&5e zq8P35iZ(s|++LBn!}XS**3a#5^@&yye`#m`#Vy;B#5-&?z+HlAYa z;_Xf$-Z!-))T@=o@Ln0}YNe4-k6jxJG^5kV?pC0U1ll-DE9sP)f2qy)K&3gXOW%1) zGrnJl`4-o>hsQ^A5lu!hx+|^Wqp}PxP+D;ryjHZ8^}$ldnbhwew4}K;KOU2{)TY8N8vA5Kibcnq4@Mca}})J7}4$xkD`Rzjmz4- zl<+Ip(36BkKe6dWPuLU6(wnw8^fNt9XEJp&178_)(?acr+U^TyNq-l$`|$VpHD{7; zKj;0N&&F4rex_!0>6P&SX&}Uq;yOYImAI%R-Y-sx<|pD++spBP=QSR^ufreqhZJMp zi`sDKh``7f1!TS0y8URqLgxCo<3p|WS^AE-4(#zzYmLL3UTd zHIs=~i?#B^zE`e%K@^=z(Jf;fSvGIEDEw1qvuHOiIwhLLz}*AIioYx@3c5U8PWl(WpgEI9jQisY0%pA656=&kP|$AotrSz1zKb;O zn)jZqpc_tFX*_&Vq;W>ER+8kNeZ~uA(KNOabL+fX(pYuUO5^U6B8}%4msx34#5h`C zlclE=Ik5WR9rUk#W|`Hqlp&5$mI|o6pfx8AcYLXRmXxNA=;}-#g!4f-&&K&@^pNK$ z4cX1%w)u@=nqU!4ut=NPb@1~_uD6|?x zydre1&Nu$oZdcc7?{xJ9{xMVWJN%iEW$j}kceVQ%aTF{|_md*bc=FQb@Nm8D)cUyx zL)qRmy+G0k5rs8+Q$nP@;fhz8Dg0Py zsqKb8mfw42e!rVsAdE51!KeXQZk8hPdk&X^Q1PnC13T%Ov% zDU-}I>o~J68uSK^H$;y++=wo*yQhq68l30AR0axlwD4U<@RO%ka$G5nAI;N)90w;|;g*G22h>dxS2<62fps zU(upnot&Qk$;XQE+JV@dnm%;tnX!6KQmh*9bdBqy7?Bj!-&*5jTItcV6@7jZ?u*}6 zj8)j?ceTc3Phj4Micx`G^pQ^=dZmK38($v}hO1=lPWhPzW(53-zb4$@^Acm$6CXOg zRt*;O)Hs5Ct6MDM(~|JDyM{uq3D<;HQ|Nj>pY9_DA2IAWE`~|kPqtwkZy<`P{&Ig~ zxVP+1tosFL%I^pJs=JY3MSmr(gIgMN1_vl&tzls0Z{J)<6V3mLp#!I05?WVUmwiU*IenquBP3up7HA&qITokHmkoo^SJ2mmS1Hh zM${`O;~y8hvuOF5ow%E3IPFeXWj1NG!XLJpv|3TZvDu{6in6d0ForuUhshOwF-@go zGTVQ01^tB61)Cm{E6U&mRq+>ulhQ0-qC$FNegyT2`4H5T*-PRRJe~9isp0=vq?9+wXTRT{vTQEx+zre!lYbp2fvV)B-CN#;Vv2z^^cqCk;*1gIkrtyYB9LXZwr#jJy(iEt|gIXu*nrnGOl8haaFr9sLi|)Y&R}#tHJGy zL|~Sl2vtOGk;8CtF4|8Ld9;tTA}=JsLIOPTlX*|bw6Lv#03VQ%7ZSO3QMhHoZ8dHq zKZ!d%(WQ55Ys76S5m?vOjNBrJ@y-=i35kBl>XVgA<@MP^fO`n=m7lD!`}3cg39vv$ zekPGyHGrEFKQ|{tS^bkWhkW;^R@{!gQrmOpfGhuhh7q$z6gkhOfXq%*t;lpywdVW7 zsoW6-!)JIB{lQSOcZDy`>-1W#wA|i<0%m8aR_yj!S43pVjJPM)CZ81M`{y&y9s84Y zb>{yhuFf6`!R&%X~hr#_cW`RMTlmBix5i)vBbZG5R-puxF|Yp&-_VT zpT85N*^`SP|3GKZDAV3(OS?H7XzA|sfZ3s&X^&nUVlt0JOdE)4gJ0Z7yz`^D7UJUm z@T0gE{wu@{KvqFn$Wc&EnytEMrBkiQDzHLggyz^B-9=8!Bf<~pyNFG$u`Qy?n|=!(_KnY)Db)XLi5BRQ&Ppt-G1R&w8JJ>xw8iqI zJ}T;=MIs0ujZ!z8!-HweX29BC`pq4=hSaZ-c~@h3zvu^19Uh-&&10;*|I|zCo;ql% zS(`haj3&rig&G2?kpVRwvkEa@26WRrk3LZe1r=jVECcb1&=h0h7OgBbHE%zj_e;-P zW1c@cCQ^|zubG^mO?fC+XBCR$u3N<40b5jWC@Ag|vu6rcq}pqX7D-JnR<2fbSm;dB{Jk9{wO zF%f9LV?kX0<+MQUzQ*G#h_4{NKKkD3GL>VZ%e(u3OR*B z_vr0yS%rdrdZvWGNzbl$V?+F+Y2x^sz%y1ciN3eDTR8jq8K*ZZPaJ(FJ$wgSHQsDW z!s}jqb_@i`(&s0*oGg95Dt*2$LlUmHHJyg{FP@^BC;CCiZ^ms zcywiesGlN;hY6x%0$=PFeM$eGip!}obNJcmnx~2~m`mgA=pzO*I9h$cr17F$6yyG9 zeB-H$5H|p;x z^=B1!B-`QaP0(g0#5BiGxPHQI{7$rKamjxAPBhD_Ww=_I=gepu5Eq~)UONi4E7TEb zf~wN_tUN7$zjCjh?p}0Oi%)lti{FGFAQBOI0tMI{7W1Tz0_=IZhtnf)yKz76zqvm> z18(socTmiI&k8d!8SbK999lWe(swU#U>(mt&xsY?3|Vw9&u&|=_QDh%xu+J>;V{o|VU)vA8=H!;nWWrV+eVy))Z9`bV|-zoFXctq+z>%bIEO zpovYHov?m6p#ioo_jyp4E;ojAYo_{xS@0M}*h^6mBnZ7ESzKcoU5!@V+ZcesZ zr0<666>pTqFP~&?GlKh}mlw=kuZ3vGgr5U)%kZvA}rF2)Tr~&7ZQgixg zrgWhqALJQ{(bP85O?}<(De+H_o%-P@E#dpN~6;r;G9klqqc`OcW8!Z2vv9}A$gu+ZS6O{vrOL)oaVbX zzHjcKjXit#73;|4x@ab+d~02)rQeDx_1WcCQS89gj;O1#-&(b5{vj~?p~p48M~eS0Sm=1so|bFc_=(k-Wj z`3nn)mvt9`Wt4k)uu;+}$Dtfapu4gz(0fntF#k7UeXnH=>p#+WT3BxpR+=p=v6A7@ zM{}VwD5%Gu&{~JNXFo)6?cLqpG$tNLdz4RWt%>u;dtE#>58}P8o0$|4&ayU~75gGig#Lt)}j4YmhzgwWtIW z3$^kK&(ykK=nM#t**kyUqG}j-%4PuWYaP1#+E;nnpDF`b9SfjF2GFlijEQ1}u{liL zlLLoX!bw)zYR1&wQOnZ}zcZ<~yPm{&3Cnx!&os7G7uS=R1z(HD#bU(2@9PpV(fr{u zF_oB*R$8UFF5&@XpMN{OnN>^}RN;L#-e*hii=_9Qug$Fj?ZypXm*M+^%M$(5!$Z>A zf;`}hM!5k$8>F9U($Da(t*1lNzb?nm4jH2>Ewd_6<{HK%T6pck`y zs%+hPT^yEKWe&X}Cxc|L?Jd^hoFQKa3ARE8t9xi2(Qpz}2Z`J75m}q*&a6t)cO^O# z2gp#pgz62*U_Hp*TCuJv0{?NWD5kwF*6Lqzk}EQ+ zoQdh~_F#vyy=uH(a$P(ol0K?7&fC@7n+o@a48N*H%&~cr-frw}X&{30WkKGjYCCnr4~YP)39$NC0dAB5-rizOzJo1|gx6JuH}A9r&v2V%J(Wj&{%~g1 zw19W#wK8y5KUEaQk1HZJz>g;Z5p~4xT%n)_vT#rB0kzZ%xK==F@_pAt4 zP0~{rcEQa2-@>+r9keq7JW=9wPnXwR{0oTiSn6B`ILu;aTCfm5aam2MbA)5YuZhMb}tnEUYGs? z!LO{Y;mxl^8H}b3D#G3H_-g3%1&p4WSlB4HEp|Dhr9vdK>4^xA5y3GT!9y~F5}8j? z%hrF@NceFitRYLOOr7m2i$O0Sp2@^pvH)92HL*GbZA54Apc zdh*nYvCpxh=HD5<&@=Wqv2yZT7h|dvV+3V6Fy=d8EzhVGqIlOVio-ezH$x_*N34u4 zlx0*U6B6$ckLg1@%m;gOF)4nsxLani%a}Im(80i$R`DmwpqCPK zb2u^9XvBod-pMM8=w`dhZZ?m#r6jSwbf}lo(SeJn;;oB#z_y5I;a`eM=A`gH{!$eF zgy~`tCExS&mfjVtOYH9A3<&3*>lLissQgk?BH{eCFGVF9DV<+HVmcyf2(u|{ccxb{ zF54|`q8BH%)-;5?^!O#UUA*aXK||f_WDz%$OX|Dcfu-vc6o+wgycmkEk7c;xOX^#| zI8h*`EuzthMH*3qQTFeWnO%!k5+q?Zsbm8H^7JDHy(= zxnK<$s<~b~5jbC#fLJ7*D@)+@0>$|D%^EV%@+P|hf&qtfC_~PVZ;Bj!^=4~LThLoO z$?Lzagt_19&S~VYH)pE9a=-#=+~B|&;LtFV)~s+5N_-7QvKELB`2qJ4PMhkX+_^%Biiw!NifX(?IiDAisJRs|P{ z?(Ljd#%9Qjy*w>x;oQ@DYSyNheVDy8%R=O*p8Pm&o)h+k(-+POWrZ9WO6At(I8VG5 zK0i^+dt9B=VR}u%qHqGcGM2?%&!ZuBRq2}(n|Z$3G066?4YJLl<<2hL?OSKrhe9~R z-N%ECoaw}W%7S6IK4|7I?&h8qV;D8}+z^j7vZtn*w&L)19YWUh3&l0tam2c2#u0JN zrjoTgWY$W;C0hK2XLt54W<_YR=DqNebk|~s?piFm$cLool9=c9(sSH2CUyfl=inn} zv6g>PhIZt_z9VLXvlq7;!=-Cc3#UuhJEk@>IBeSF^s){vA9mieNgH{QyYo^!EEWEz z=C9@EWGERrewc9MQeq~FV=--hw#1JnyQ#gX)qSdZ8(c0H;IrFyXzxhN;D?%%U7G7Wcc3Qdbfr;8&FhkVbFYdJ&B%EpGrJo_ zOEfo?IgB9})DyiU7X45ey*4Fj;UhA7YXmeKlIW&75-{#Y9=hI00&ZR%E}_<~4lS{2 z-TLQJ9j<^;EtB-vuGX5&DsOFRmFQ)b#ii*}WiK=Dchguv8VgQK&DW&+2j(P#59IS(x{tRHJ|}=uH6X5&ZK#$ zCax~(&s)UvXweC{J>Q3ZJ-Q}W{2UYo8PCqV{_SRe)+mciJPeS7WU8%=ieT9BNQsqG zVvd_-zZ00|t%@e>DH*-!ckX3DUd+2#B9q;uX!&=cSuIRFP25a4n{O14yLv}NPb)h7 zOCn+ndpck7mxPZ8XL%1^E0QNNeZ>ipJQ26_2RWt)>f zUk(NJ!8m__t9sl@n=6{O%c6rr0fi~BFYxKj?Pm9LcV%=cMl}-?ulisG)6zlA^~^Prg@m^7 zCToo(6clT;><%@mcZwmcKDhrHRth;z<>u!}r8(@@#*auwS^3O66JX7+zOBr3Gy(zXR9;WIres9h~Lv2*pNpxmk{9^TE7 zX%wAw*&$K4zRJ_?xOl*XXCE~qdil|gL{>$$Z9J4qW$`naGrzSsS=nEQfz@Sc&W_6Zt>dgmGt0xHMio@2DYpkB7vw4i;8Uh-YWx z_57RTv7Mp!*l}uh8Lt~wvuH6y(r4v0g!c0PdF|;S{QZ z(k+noH!ChYCc^vM2#M+@{&dD1(rvB77@e;@J8q0-N`iJ3x9i(K(&Fw~}A@B6K zC|4Pcr1f8uJ$ezf&BP3>)r)4Y;}|m*M6MZK}@`*!T~#wpZh{8mI5*)^m;@ba6fX zxlZ;7f71RieXscc5Z7ftZujH1UbjZ0&va2w^Kx0b^RPS07()$Yr{Pqw?@-Pu{MkIN zn|W~oo7cEJ&nM4oaoOpUoJ$nlxr7C{W-G`6GRV~|j40ib z+@h~tw880}pC^u{Zb%gK0mCnpd~q~kgZMjJyCHj6ZYp7=E)mV|m1gVV*yqjS!WOXE zuyy;V6iyCqa+Y`*{&P9XUE<>?pQHRG1soM}RJcTI%69*uh{K{Ks`(^k2~Sd%B!{!~ zg&ZwhBF2tBp;0e8ypE9AB5_xfE6y1{ z+KmVIEusK-N-v^CANfppxol$Ff<|r-#T|!>K`rL3A!oo~dm57~JoJ)R=e2@6@Qw( z+P8cfyB4*ZC!8_zx;ED6c!j~bs=?S*t%+ULhK{Scb;9s|i%Gy@nZv%Z1Z2qsY|(z2 zFvjs$ZPdiG9CvBcC!QPFjN8pJv2T59Rj1ZZMRl4tfi0!s-5#F0b>sfjKPvoctZMmU zi4YaatXlq9B1)LbnRA#GH}$N@(i?AaVAef=m_urxM(fgr#`aG|Wg0vIFY=K_nx3UN z6MMOR`U#SD;ubM^T=uC|x&HpCs9fE(^Cz7hc=1KmYn9`QH+q+ec}Gvp9`$d_IZOB4 z>cFh~`gY?FpIU=Q@u#9@zMI1$I!}Fq^LR+fcw-$m*3g=6r8V8UoSr@X)8?FLg`E7U zsE~Cz%XzMoL|vM6l1*ngEV)(e)aw4J)#NYuRMfFxP6d1Bg}d`lD#oK)|J-5MZ@~42 zTSblh{1f3?)JT_f{pXyv1V(iu!E8@Lr0uPvo4 zWqPudT@W(aqIKT#iOA$9+C!6v1-zW~E*04t7CT=c&xgl**rzM9KoP7ncTkDrz&i1F z?K-g_EOt%_`qMgVloe|}Vt4O~b+PwJqO;I4*SXY}eB#TO@f~fV80X6F!Yw1b#}?rN zf)|roB|52{AS0c!|&QZ~)noOGcTJ-xb>fNX7j-r0f0OC37qZ47tuWa%Xk z2Kn@*BxLE*yGMX00r67DqBwJ#;h#u`*!s;fd_e9yoJC&5{=-G`#4B70@h9lvJzd<29g#z|i>7wFcror5|p!>16{8)@f!hhuB8qQA7^5Vb9 z;|sA?GtC)IT^+9La9#beHI;q$;|5%h)ecPU*Qc4Y&76JUW6`OKuwMAMk+UAH$Fx4P zoVRhcZ(~aEu~pA2KW^r1mn;W4>q$!8xNzSl%4osI)+lh_$E~>e!6ypeYdw{q{v;?| zK1w%E3rssVux@o6?WuwLJX1}3#_8oLLV@UuthS~ zK2|;A6jyCO(L64G#;2E(tx_`n`9~sCqF7uqQ-9Xx7xd|VaH3))#4E1jy_j%+rL8I$ z8CZvhb+?H-SDw{~@MS&t&qt!PF7dI0p7YfNxKRe^CcxJ}5~bwzi9S+3HIzMduA&&O z3f>vqkz44|1$|p?_M)#RnCs|b6;hlL?^wiko^^GVQY7ZKCCxWIWy<=)zOdpi;~`a| zzs$BX+}uaZN))x@LbCpcdOb+eW{qj#WVPhB>tHa8$8 zSF{CJImhxSHjTIJ6{Fu_FBvpn(h`w2&p$d}F-ppZYKxfPSh|mhqsN+fOeEsSBQ|qe z<#{spY{4@2v&+S5QiAr>jO1a~{yD|9oHUr5jLbCLt_J5fFc~z{u~*Y)^d4$%P&A8e zoGdmcp|V%>U30JKR}YGqPd%u4E=vh~@}PKRn!xRlvsiSztLHltf9}TyN=mDe(i%Ft zX8ukx^ZkQnW-MJ~CVDJ0W4%h`?zXj`2>#6no!%vK1L&3qJ^HF%+&oPXdRXW(gF#|$ z)wW%B_S9I-a5>#&RO$^6io3~%@#alRvTEPhnB;CGHTOQ)HdQPKiE-O>^+#Np#iR`_ z9MIV;11-OBfPlL|&g>iI6}dGJGP*n0CrQO`$fUlpDc zu->_`YKwSPz|@l2(rCV5KyC7J_r?g6Hp+TwMdhq@nJrEDFkhJH@ZrRV^`=QjSz20h z058@HDpn-l(jnXxeJ$i#}YYIn@)YhCw8W|ai?4eXfFiI=t&@CXK!s51a4I)^|;c!}tuwaF&+c$@L5!c*Tqd;>)*J$fUmz zUry3zUo0LlEj@V~;q2mS?wTZ)Ja*$6GyWVO++I~LJ{YnwK8WkAi>nx}o9Yd@f0(q8e@{`&*Q0#!&s7#>FPn{brT?FRK$r-bBH|F$1$lg=22qiRTn$HQfc89 zE!W%Ic@{zEZ7I%TrJL9tFZtX_%#(^&;7Cmr8~#m4Vt2Xa-0kgJoTca7<-oL4MFU3k z8T-ouQB)VDcQ|6SV_#t>_4o~H?9+kvYdDmPry?BJDUiAFsXDY5U$v{W#;gK2b3^Ud`tZx^E93_NN zG)8vb3zL z`t|x{#O2<&f-K#SL;u}9$y-Fb`KmsSMcV4C`UhIiu_6^?SW@wDy_o)muRq|rSVnv) zdk|WGm^C+g#w)(N@JA9K&5kiSF`drbymF%Xmr)Lw@xEf-IVi>nB}gf4%Cuam6>V%C z`>VKk+F*Z=z@m%j#k+T$ZQxF>|FS%NDBbMPBGGgEc@Nyrd*B_H`yr2FtnXoO1uFMJ z>xdgO)-r;K`x07#*s5X_Wr{0Q!&%I@M=|e16yq7CA>Ys*M@iXa3%S4p)oHc*j}RLbHBm5k|*5FNtj6X|vVQ(Vl|(G`-}M z)0s+@+)Z*Y<9wbeh{?KQ%vG96?8%GlpV+zkY(Alb%Y9tqzc}eX?^ezfe+;)`&Tn|k zskGwlpmzWKQI2!9m*@A1n{n3qvY_LPP63CW5iq|&R8q#HHTkU1{07m|01sON;u}J( z1H?Co*1&5d9~mINK~xP_OKu*J3-5q;NZvm{e1oVFZj{_OKzxJf5PV4T?g8Q(L~U@J zH%T}DHqO_930?;i{K*38wS`5 z=q2sw)dK^mPcQ;JVU2-2fiC0Q31tp%YgjpWdsjB(!I zLMs9$9b~}?D=FfYCXa#LFecBBf=9rZ{>LFqvJR)hnBcHV7tVz-FW=o!4!(up zN5G_mo$yi^lN^G}U`%o?yavW3KMhyHnB*$B4#p%u4DW_9$rW%DjClj1ov%h{L%^hi z<*@57>`VKL$+yEJU`(E00_Vb*&m%*6iIdD0QNuCaGhOvMYCL`=Xz$9nE z`(RA+82Av3Ngf5a!I

u=8GO`MoBm!5$cs=lj537?Yd~=fFAl223FlVKxFL9XQ~n zFedr9lN`X9p$Y-lD~kL!kA9GXc0xf2gSJC;5C(07c0(An1!{&c=n1F| z!k~?i>jCP?1A^8=9teX12!mEYeh7o^gqA@Vv=rI^VbG1x76^l`g&H6X zx(eC{VbE;o2!uh?1K=bT+gM!XOW{ z0m7g@P#uIpJ%@1pcYzq#m6Q7*3`&3wK^Sy$FhvSs(2tO-oFXk3^er?9!k{CN55gcF z%7-xMV`w&nLH`*{{a*-T;2uscg)r!Ks0_lOSD;D=gI81xq?2g0BLG#kR8Qm6#Npe4{s2!pPN)0}8Vz|N3_1tOfiP$gG#kR8 z{?K9wgU*D?*3$o%N$de`;3URLCsYGrkOSHUVbITmvh@8B27M2;Kp4~loq#atbI7Gp zOEf{BLW3X-`VbnYG5+xfYy|T;i9v5cMGywP3N3{&C=9KEFsKd+LKyTMR0mleIAKUFzD1kX08wh{RHiRFsK#U2Vu|`Pz!`X z2cZ)X1|5J>{zm!!P0oM!fg?bSlW#*g5C**g6+;;GPpAaKpn7N-gh92?DhPv~fi^=J z^mk|ngh7>16NHKR|3lyj5aZ+nQ0jULalN2>p>Yrfl|i`>2Hg%7LKt)lR19Iz4bV~u zgNmV55C&ZVRYI5;|7L=9AjZjQP$Psvxljv)L0M432Cn@EL1Up*2!qatG9e5a0Tn_R zG#K(j7&HJ{3}H~9H&_N@pbD*nFenk)0%1@bv;)GRU(zW=2!oD6#~=*)8d4voT0Sf& z0*!z$=rbr6!l3;Duo%R^z0ev6gZ>3oLm2cLvOPBIqB`AP9q= zg2q7@6oh6&81!&DSy(vJ$d8FE7y zv=GXGFlath0AbMFbjH8MAO>E>$yE>r(EtB&Zd_pm@kx#nrA7bizYoAPo8e8V6y} zH&79TL5HDI2!ooTbD+4+wk&tOGGfgBl?WS_2(|FzA0E@<15$XUGR( zPzmIRFlZ6948owRp>+@@p8w1Pw}2Q_2=9X|BrY} z)g$-AHvfbDSpU#2yklhN;-Vxz5w2Z-hj*5_0^?+9G!IG0YDK#-_?YTt-{vNk5;jqR zpQi#p?=bfCv@~m#LM$4Zs}vWW!~T$(`d}ij7xUJHcJz*cam$BmugrHlp485}^Nh~x z2xQ&!=9)!g4QmWF)PL7rzFIjRa;OZ&XEXv?A$q7Bhn#DSJ zo#YeAV$Gr&u9kc(S*%&?fOkl4Nw%+9bnR=Ex%ld&Qp<{MZM!j}U99McUCg()ixr(f z$#AyqMK6wcZ_HW<6PLj%V!oag^LC~5cKL975%0O(@}SKXSLq4leV>9gjZ!weq?=y^y+97~Pi<=vYbX>}I><&UWK( zZ^nE06x5qm1mYD^D}SO?n1vKE3n}7_4k}qXRqU}_<<3*K;)@S&&18Mfs=j4>M6!d@ z^s^k!#QrgbrOXTT&0LwyT$y|24;+Xq^N&;F$~-ZQ{m4c&Uv`eJOlsmQY0>3p&)x1^ zD-OC`W;d-5o7>N4RMZE>ch)UW*3pcLkF7URaF^?u<(sC|QiQD%$ui2!li$ z-veQgXyf}J3=(a;32Lgh&&a-AQAZ>2!lEz7es*tqLtV|##$dv!g#a)QQqu-RP-m7qE_;)uS)Uq zfThevnO!M9V{R!8C=Hd3HYMXR)(sz1YdhRHH_{DkEU+noN~Fq-UA%88AQHYJ~K zEPs=_wIiT?DEl@Q*p#9mi;%%`o3aCCN3hYRjN8o1)|=IB9pUT=Ann;)V3YPg$$MB& zmfMuwPq7^QRHIEPujU=0YBi$TO6>^R5wv8RR`9f<7d)*-dfK#HYHn_=8tEmqK$0x- zBE%xZ6q~~qv=+28Y?_za;@zr7&a`PcXgO%TZCVXl4Vv4gIqN9=IyKVArWFPd3laO; z#FQ6!3E~Ac($A*NMw^Y6YSZe`>e2e!v=eA2&<5DFV=uA+{Y5o$mQBliNzpT3QX>J6 zO&nCuySw#jB+aHZp*5kU+q9JJByhVL8EDh|XnwRoHZ3zuBw;l&*ru&STZuNr)B8^V+nWe{$XbsYXWGv~sj^w9z(gKiYn@^KF`^fhGP1 zHIfmqiHi{zBVJ(B>e1@aF0^S0JK1fsQ;l3?)0Vx;r}SP`BV%pa?$>BHuc?uXZJK)* zTb6dIk#SKiAUd35h{q8BU~{^de@m9B!^9H5xh8p>!&E4!b zsjP3R5uZ(4vzuKMyVXdRO)Gqh9dCtisgZ1(nEEfKCjU|+<87M%-(04DtC1X=ma~V5 z_o$HxHmw}39BraaTlzK`d0UN4vS|%y4QRPapd%-l?@(LcQ6rOW4ufbxv^<;Ue3wf2 zt{S=2rj?+Tpyk`NMzlt>DK;&mkuJGWjZC$)0L8xyaT($?OGG6SlKBUjn94QLzC{5Gv@KeN>RYGi&)3;6VA#AZY>|F9CX>LYe9 zexybg*tDXL>7+hZBgHmt3)&X6YiwHm0h;UqHFB*@Q$ArL`-vL4&Zae>H3SeB+QfuU zxptqbkwrGG4Xq9BdYe}L8T0AS)W{7sZNouwd{B)nwrd8Op+;`BY3@Vx0f*GcO=z@# zv-pb;ix6+NIc!2}LMyRpp3mvIK35}4Y+4yw8QLv2E%ylZ=!hD*)ut(}ltQZ-S=ylm z^w~%0ERL#?KXr)u7PKvBx7jrBcUn!XOGkvnZ-DUp;C$ugUk|2?yx@72g%HZ6!2M7!Ij4LZi?d5j^|rg^@hw7yXz zWj3uDtr=~(&;rro&-j*(;afGb!sc)X+77gPY}#TXSxh7=ZJPH7O6CVO@;^4M46O|9 zFE%aVN9xv(YUEy<7RW`+MOp&e>d1Ca-8V)1cBFFvkD9<*uIXw_)tHZA2BCLq74kqVnuiB^fW)~0PZ zMeRSOMl_qoTM>MxK#i=ET6F%mC7ucwuSOoSIV?}0mr770f3s=+PIO3})W~|9whL_+ z+6J38qBD0Doz=+0Hf~W+O$1rd(a-UX-+2tkyDLq zv}rkLIcS?~+R#M0;6ybNv}wC>w;OkXDw}wMp6diX*W)&AM-!E>Nsav7rY$DG#RRz7 zrnR88pgm#Jyh&8dBsKD+O)Et!MSIHB%=upvViRJu&EcS~G^eg=+O#cbThO-JG*=(CclJ>u+iY3^S^-*}y|dVZxCikCo5Re$OiKEykr!=R5G{!I zl1+2=Bgg&JNWD$VN6SYG*|a@qd(gH=H97xlOl78$szzM4dEK7=IP9-R!Zy#X19)ID zK#lCMX@}Bj$LVV1Wt)~ikcbDWkymV5Ia)c|KW&;ii20v7NR2eu#KJ-J)o43y+CH>> zXs_Bd-(Y4#gVo4uHmw@18f}+NJA`%!?RA^x8A3f8qDJ1Z&;MExTM^&1Ioy0UHz8-M zk=-_}1+4|`Et@uUI8AK08u^z^TZOg??cX*ngHp|)RQFh#nE&m@;cgthZHZ_J=g?Q5 zqekAbX$5EnXz%ju=orVx*r9F?-)f}M<}Pytb!LPb*=y4_plv{V&!#n@1)325V-s`E zr2{!vjqI~&)o9gd@7uH%v=+1vY+C+EuKP$e@}W(uL#spEZ__;IQT*qrk&o>2zhcB< z#E)$b_oMAcJ7ClDy+q)^Y)tH1 zjkF8Rn*S9b79c9NF1Qh`5zS%KQYKRhlhsI^O)IRX$E;Q(@iuK8?$+Th!KUp;+mF`C zrUf$d=q&QoNN1b40c`_X7n@cyg-SR@jW}&u!liUlm#UFOn>IV2>3qH#NwR6>Q)!-4 z)krs+whwLJROWx(ZDPrEZlkBGksdZJwSYN(0nhquS{?4{aF=Y;+R)n2dfK$y%eW+$ z@vP6LtwCFZmLj$2{IB?OYVhSe>$5p*Lu*4j)23CKg#<} zMs2En?P;{jbjj){p*0d3-#XrvV7_=gMzz)?>}yOcEZ}rsGz#%+ziNWzZbrq}!zWHH z^N;}}po%xr563%aH1b)A#*ibai<{T@gYS`uZE8=CI9|)~b81deOFctYh_TUcBYM-FS*P&9%OF{vLi4^?LCMFA<)2;ZKB-<<+iyB-L?5yYrDg(USPRL@e%} zr#Jm02~#WB2H`z;okvEM$P!$`^&PqCVq38Ly>N27w=G~V3SVy$pMvdJ#`~tYjJE}Q zJ=)LlfOg)aXZ)8Im7-mRt9tFuN6#Kzc)h6B9kGj_c(yL>@5TOcxAp3|jxz&gA~p)f z+u9h;_Ow#}`td4XR|==M+8T0p7e5ecRuJ+2Z8x-bD{;AUo0kuvm9WGnemq_=GM3B=cwe;@-9}p;_W%zeC#ILq|kz> z81gq-#JZYq2BVLhVccVeNXTqv-0kt)-iZ|0^N8NyzSP_mPlGZ3!6`OGtrC$fVN}^2)-F z#?ev2Bm4!wE)r296DeZ0HlE%tuh!H}sgoXDC|236%3$BC@OuHBDFfm|$iJN4Q7qPO z-88K85gNsjZQA3TE(tVo*hEV@`xna4TtlYBtlzw7TTsInW*X!Ny6W1^uT}P$?@UTb zt_USheWCT=fSi{5QPUT5c5KEziQ%n^e9E4w<1wFe`^H1GWDI?i4au$`_61;c4+ zB9QI`V$BEIjnsEKg6QrMAL#EmcdhMQZKx{jkp2g;$Kdzcpi;+%q`GwdR>fhA>ME)d zk8MON?D4hrxw#9!W>7WGb&JFt_*G;LZ&<;qnuzS*49S_U41U{1aSe*~SEmo_ONnwR zQDzZkTT(~u{lNTDlK>6>WDD2TIM!Q4`8Yv#$V5^u3c7pN1Fc1kD{0(W}W;^lxKU3$mVz&LdSz0 z*R1Yeu}HNZoICxBUS&Hgk~3B&b>nZ6DncINX$w$*Dej$oS^MHDDm9D(`~pe(Uby*E^CVB8?45{EozbAC3YuliC&p84YVNJ_y7|FsFI5qNC!~^doJ4 zbDXMfDdQK&gZxTBO{kggRf$a(nXXQZS$AD4K9JrRI?52xZd`k+oDMPFHn`k-t@zT8 z)o_0`KK9hC+*o~4ckRKypXDgt_Wa-f>gd0Y_O8Fk!?*AI%6{no1 zBtLnjdHrYdnL-y$(5?OFslfyP_mu7FB6@IsCspfLJ@CKG=AP~%zPBj8sNj5&C$2BH z8&`fIzAPs`L-s#kP+yE?DdLL?9?p6=JM9bWJ94*uQO?;LQ}`^x0>zb`%*TquDm9T$ z(S{Y*+03b`b|~Fs(+|Y%-1rHe9rpXR%oo{6_@ZLG_e;lR9q@(qnbiqj(1MI{DJg0E zSkZQsU0i$veY?{o_J|$Wp2i0NMKteN(b!_yby_TeWkj=#Xg1lR`Ra)1#KerJ=NC0Z zlbE7Yt~J};GWadA;M;#E_#aLSeixzdBJ>hl=sS*xFHeZjjUx@>7sfvBwbjE%q;ium z@p+4L{+B*ceTj|AFAZmY_EKl7On5CNm)BBq9mXHJSQ?G-h&5PjJt78+r+Y2;C`Ri> z@nOXD(?aK=pf!idB>2pi(se#NZ`>P;pxwCUi1;*xNbi~>%>;H&uX$Ycr9Avtns0Rp z4|Nv1JNIoAf1lmx;|(I7&#leYE4T0kmMvL+daUB3HR7v#AAF&>#CN8mgI~aQJIwY$ zl29shILVfP!Lgqa$(KLwF}_znx@__5k$HM1TLm-a51}SOEo+l7_Bawz(_SZ~YAJl> zvGI6NOurmnbKB|0t3^}OGM{w^Y=OANr;4&Ra<5Fl;|SQ#?4l&xn-9x$xDt1c!IyZH z`ck{`_F=0{96K!9#8*9)G{u;`QE`dS@HXJ80ax1(i?-pR4E4jJZS3zUN~+t&*0emm zAV5?FG7p6mj1Te^C0CS$)M;4-$@2Ry`ze?GFWnMaK$mCzu0zFP>!XbIheca>zUS}x zRg9DMs?_<{83^Rs{M;F9^`p;{k@-73GIFMiss2X{4mYyPlkSEB#8>ab{6Gf6Vx1o$I9{PXK{CG)W% z@$(DokK1!Ff*hEUi{GF9wIA^{9I7S8EjWo7QE!!)Vmx*Hw^@3$lhYsIV||aE%T)_J zcKTJ*Bci2>tL8l1KziGg#Z}9AtT*}3A^$o21a6_MRN`*N{0)JpaJPU?XxO{4M4xuo zkYl@R$gSs*RDHVnHPSb250IXSSnYRDM6}=6lI_)R|L@ci`z72$uv_@ZnD=+`JBa-9 zi|Umxdc;@Ret1i91yz360|?=A8~(Rf(XfUi5F-wg@~CYsxpt{2`fSw`Xoh z+;S(V{*aR|z~>QF5@xphkKYyT-cl6fNXPt}zI8aYr=uZf$dcs2sJ+4cUQw=T`)$=J zOAtkQUS-eIk`vFhzpJr?PcVt^L;0D<#HB{gwMXh?MmD69$*^10rXH2bnR0)3M!ET; zJ>pZz^)-C+U;E_wv;WKR{07f%Tz)?0$~afrk;l_2oBb9wA;g;&p@Uq$du)%O=6`OL z?kf4aApzBXi~6H>PfhZFnM&Lp&%+s}5~bQpH5cUk?^BK$@z#C0y&%L>r~kYp?$49B zVrGY{d25INmw8%0?N7C54O;TKKfJ=D7}Ks&T(_NeK__rQqXE^|+Mf&8gm&`zQSp=L zR>wY`fiE7LqG=M~??l9g&_xh}Y=}xx-KuIlwB3ZZo=T{;indYOYO9)}8f_|}+NPy#;)YR_O;GBo zQA#!m)^iZVQ#~}u+8{+)1PPM;zt7ygyBm`G`TqW1ua$f5%sq4F%$YN1&YYR?QF#XA zbEACX&qp=*(noH(E+l$UQ3h@qfxZ70S<#hAr29&o_HD4!u52KdZ?haB604yw2^1z- z~(q1Ms*%jxwsq@mm`XU8RX?f_|B$U z;A?C&t}hLE2J_~%kd{?mti?T(f05%|HkOctUu@>= zo)D7HhvSlBmpXdBQe93|Q5Qu`srBiF`t-sU6x#z;`ShlzDw_(`hAJv_fOG%Uq2VGz z-fn53QK1tRo(c`yAnUTUDzsMalNFLs%T=NC!#ovAs8pdK;nl9(IF&0DhYH12QK7Rp zJQZs1uFzmnp+2q(UCe6HwmKap*r)HN2>(r*_;sn zyt4}JKgkz!LN(gDmlx*J^|EnOm`3K7UYXCVm*X`vm)`eq<@S0xS2OcrugnYA%YmE2 zH2A&BEAwIb?af-8OY+LQMqajAix;E4@}{nr9hE##c?!Ld}9dYl-8#;sG2)uk% zt(o1=##(Q7_}@Hir6@yku*a1oac_t;F%Bw_b;P4CEMc z1{xW-!^K4%D0**7g!FK+fm-FoN9gSU4vK1+Awy4P>Cy_=H#Zke39y(Np5k8giL zL%U{`3GF&yhwf2*K|anb$1Q%ZN&)rYL%!j*?<9MNS*ozg@jJ9sL0p-tWN_`Wyn9FW z?rX_DNcP|P1Y0C`-PtA~CZ~oiCTF+BGl#&f*5WD(YHjup4VI-fak?vrdkjJof!Qlr zN{xcldB|=uBV5`UjUY|+aku_UFTqcMS)^EB+Z#DKER6~;X-jQSGH}fAiKp9C}%H4A-ml@^7a1|%%fQQTc2O2|R zi@Y#5TtfxDE8B9PVC&@id!8Pq%tntx25wkzWl5#kXh)B(_B^5Jrz`Q<{vL%&sBJUU zO|ER-6V$BoOi!7ICZlsE=g5cmL}<{sU2d~Cq-oQWiP?S7x$X>>0-hBHCLFzUB>Nuu z&AlNnE0rbVyRrqgJjc(rJm+DP^719MnXq&Hglba0b%J`ytMZ<`tu+Sg!M8mfTFTc7kr0LWX3hi%u(f&MWe^Zn8LeO4V1?{hR(Y{DrFF|ACE^!&cCb?{%7VTNL zJhc1BJ@eYQj#PMf0ZFo_A}=lXN?MbXN27Em{zHf;$tEH@40e^%j=G5)wRG;bzP^q zO6}yrg9ZM-VVOqPhA~pr2(#RQMeS4xYa)rZ;El$C&{j3D6ofaSl|(}oyhvN-Cd>;r zwX#J?l6{od+%WR6DuiPWlMudLu8NkvFU%B@JXN%(r9LQm-je;)b+s_3y~$x!@SZzN zUHEC)|9FVT$kAD_rE+9i!HY^m%mjhtd>$abe_X3;`&Pr+6)rr(4(B5#NR6v`x$;(fXt6W#PqZYKs|gHw9fmeUOzR>qvsw7 z5_%v;NV2z-KRFqkFzHZ6_DEQbL;6Vpuj;L!hUZM{*$-kT-+ z2(Q{L&sSGr4(8{hcDwF%K!d)zs1QrE@MY`h5*ZJ-w!>{Ov5PAfd*Wue=rV@B}7)7=#x( z?L9&Ep(@Cxl?63|JOfl`RHAy#IZtEXJ*ZM0DyR;+=iOvK_q8Gd41<#V#y@qcU5kLB z=&DQULOJOlHORdxT~YEMb>V@=G%wp@K`*6q^>B-s_5`k(E!JJ z2d_HDx$C&-AhpaK`K1D_mP!3jX&I=~0ZEwdR=A}Wex;-6dMBDiCgQIngY(*cHHxb7 zfehfRTV^xRMh~Zbh*|Bb-fjb3Kt~Ka>iz*;fGz>E+b}E6ld>|SB+irS0SG@pYB7;E z6W*DuJ}BT_ufo^vSC@EB?6)HAV5z%E3`oCXKw>d5*`LB3vcBiE8>=KJL5Ch&i6Sq8 z^pyzGKSWRi6xzazpbz$|>MMDFKGMD`9qzS=Y{WR?snQr!X^gd1D_b9ovmabm6L3BD zes!E3x1Yw@cjey;+jz~sr&(l#9DIs}U3F1sz17dQ-bxMSS)1B+)`PL$epRTS-cMbu zgB)zrvKhiJ(;Uf~eaK}O8g5NAsxC`|h-= z#5wO66&L3O<5qi3)Mw0JrVCMvNa#!=v* z>D?rO=i@uLd077SoYquk%q2xD!I(U!rIlWkL+rtA7v`yD>b4^4635;Bw~uJ2G6O}K zbx`IYd8A#dOg~qd9pz>APz{@@=wFN)Q0q1?wLa6NsP!J;JK0PXa;+jQt-JnTrG5o+ zzoO8DvHfe?#`f2zMBv6xgy8^+6;O31W%yQ{#=Z3v^wEfaJ!08ypQ?{W?lYskhTg6h zO83ap^=CSCTpeQaJlOl9L@Kp@3a-^V{j1IxYsobwSDnE=8R;=dr?9*K&A0j3nr~BB zLi+*+7kI>F;U2Yn@7zP(JEz30mE1FPe~E70-DOy7i9*$2cg&Iv#f^JU?~UD8y>XEA zHXJ0q4a&#f0*I49cG5OAxE3+6d#FWq;P=cu)S_RP=wcwD-pHnSA)5(gGX=7%|2&MW z%N}YxLiXk!YP=x=*?4bc1;x$Xlw|^0ra+cc1v1|~q#X%a`#q!`TM1+)Z)B!_n)cR6nps`a!QL!y zk46kU8X>rpcLZX*)~&$VS4zWrkM~kQSGUPd`l7Da2pG5>C(3W%hMuwXLS2K}&^UV> z?>lU7WqVnY>~k+*@0_dk6q{MHCtXzYI_+a~)e%?DO&~u1aI-N`#c#*nnE-{X- zz@DBS@5fJUwR}%L zdnq_!bFMYJKUN$i`{{W^p~;p9*ypF=(J}aL_;>ToW1faYJ-D-DrnA`SKG_Dy>nap?{vV zxr#eEU0EiaAfLS4`rYck+I#+C*W~yf$~e*r?V#+ch@3|(M|3#qdj<9Vc(*#TrS2wi zn{mTwKO~R5qBXL8E9k=+tn#ueS~L04RZtY*q9|u~K6d?3qyO`ZLQ%jDsHq)Jdo4Fb z9R)>g;I8{FQo{69Rb`0mEk~5F(gIDPMQY<$e=*HK{ewuqxio6bf8iQj_N~Na{bGg7 zU(1&Nw77h#=wU8T>#lIQ6Y8XJd6274M%2lOI(@ZE8>z`I_YjJU5j zLR~EDa4lkpNB^rG86&_BhF>e&aCG|rye97Zc2eWf>dTFt)R_M|uzMMuAP}8ES%-2D zV=d*sueHOD#@f}m!gB4Z>)+jg9UNLKcMIiD93hXD?6hVFBj|vpj`^r~J}MryQ)TxD zJBi&f@Us0TZ**v_JdAJ`@3c>ooenKCF#;tw8E~en((FI&Ohn+9LV*JmI6y(c4wZr$ zf`Yr(U|c;<8*e;9Tya+l2*GIWV!iqLqpB&8cRgH#Q3uXF#3;j!aE-;ICFkT=N8=~^ zy6C;T!^5$loj7}Kr_(4CX{VL+2^*ayz&=iOW@Tz&k=7tyz&LFnp9G`$;&4L&$g)CC?8$z zAi}9~GI>2#eq62?Cbsdv`kdIgE$_Qow_WuDSYRt16?dV+jYsw=(ORrtZ96 zF;xdR?Rnd%ov5$h+(vb|1b-Afl=9MB!5Xf*;zC7@!JTnSOG0+ZA-99uw%o2xy&R~E z19kaWluC6;6{XJjPYh7EwN&S~t}-z|-PT$|8(sLYG7or0Y0sQ(Dkb_|2xi*lwAXP{ z(n(PA7%2HfZgWSAk}ww~{pFADguYdMoBLEj$%-xtCBxj5bO0qCK*{f0)gF_-m0Du= z6>RG}C||nMN~0mRomCp*lKe!eRzsNOk4l3RO1GM`lQEu{Y`sxvZxs5{R4GTtXyhJ^+nZ5xrY^>zgWE7+`i`fZ0Vm zpe1|9vpDi!UHb~ys+y2bZOuoq?XEm)fCS8l}<%otGQq zf>o8^x`J=MSJpk`G9(wZ$>w(y^*Fjq{-Las#_G+bGql=;O{V{6YF3_6tL(IY@1`ch zO0Br;GM$lNaC!YP3F2tkjrKU8ZXi0(MLIk$Z5_ewD8ja(xfm=)#c}zS{_2Q3pJA*log-5l_b5(Rhl$ zQv};B55BiP!L%FRz}=3FD7ca%4pYOo{!M4ZEJa5+77J%f&s8MQ?zEg%p@e{?hHQgH zhrnyhbJQXtT}8yAh}hkIyo%_X1&LEvCU#?G!c~-+8b8x0&H$lZJN4-CaM2xx8mvfA0Eqpfh55#apYUC*C& zUeA%h$|z&EqBBm(-X=fUG8N@MkxsrLrfY=Jy%^LKgZ1>~cnh`g=uPBwA|*3plNn5& zHv1D6>?PNpW-CRrmAbx-b&XimWET#4nyk|%)&2d(rVL<lhjP+GR9Eh4uDehR@bB*xIYWxhQb1SAm7tZlD(0)vF@kFs)#(h5QpA)|%bmvJZQvZ(c6u)VZ|hY5N|Pwd9m)rgtF34#AmbGXzT! z@fbWQVi)TcyF|Cx@xU4^tb6stXNOayh?PJs@6epXMr8<{#wXNZ?O!YcK}ESv`>;yn zGzB?`1~%uriAi=7Lj)>XF2h4i5s1-l8CsH@x&^$SFVh-{ zXYucRS%`mewh{@kg8$*mv}S^D@oT=Uwf~>lN_^Nv9$Zrse>?tqP2`_~{B&r6iGN*_ zwHZ}CmrG6%hm`;ibrF&(Htz|A%YA`Jor+0&aMJJ|r+sdgYN~9>azKPOoOjyq^E!S^ zYi98$3ZmwuEm|k|E66;&da8ap;k0M&7N)4{HlvH3T@ImQ-~SN`6pL@?@q>P>`lI3C z<>a+$v5?1>XL)KDhT4UpcDE7sr>qOK5VZ?L?S}DzwKUnT=QC=tVE-{$if_Li{{#6o z7KjUv(~KISM7w!OEmr+*HOao2KcQp6Z5wB)rfW3lj0TYqi=6g7{8Js% zvR$VfS6bjVzEP*yTqBTC4ceQ=oye>)8I3qD0t3%HuE@+!I4gxZLo^@duUUwnS0Nqv zN@Uh32(R#mM<~Ko!d?DIZOwMc;QeZ|_D@Qd*z6DkomZn5rWi?hl#ALMnX%dR zF@)r2CnMSf)&iPk4POSleXAGH(SNJmhWJSf0U6m_@!|BH-a@;sld2+lgE~xgTzR5B zJf}ic9Z6*1AJu_W#bqi|)s6pLhlOfP2OP%~sS4spkWs^6IlvzYU`^Ra{ILKQ5>kCN zmmI@kAN>6Q&A#+4UlhPzWn1~J0M?$ZV6yTLgnCR300OzzSml%f;V`C zg@-Q`Z_nbbXQw;uwa!YSw)gC{=I=bh+68f7M(I{!|ix`a68_f8|XS8AEr~NYX8M&Heip|Ik%o@YTb&|&!z^fb=`g9 zML;Xs#FEDU!>fRG;#CPwmHGP{-n=2|wm`f&jW^4t@xFLd=Ns{67v4zx^M)`v#_{+%A4+0?Gv3pVU9e=LoPMECF(O4d|6*{8KE>pQXv31a%f0k{z3UW_Xm`3k zMc=8_Sjy%3nhlOYx^k$6K4p+OgF73cW~fAC);6HApzw95%9L;UYmLDb=buEg32z)z z`E0U)KWPGeH0e)8A4PDviKaffdQcf{8uR1GsG*PYc*7vpwn@uB z6S35ijM-m44%SZj?)_MZ;4vjyU`Qjebf=77OgQx`r^vgcyg6c7dYLt`~tOa1qH zM#KeQ=OBb#(s4sIb?uPrV}1zq)a;4Uw)5-FSex!0@wi6hY-PYwQai~@C)}_o<=x16 z3|gUVoJWTc$@Tf5VAl5e>PMFVkV}WFddRJDK(c3#(;3zG5=Nhm!AvW1=G1<*hAmE! z|A@{nf)6i)YWQMCes)_dNO|hFeZOS)M;$ziqL}{M2gG_PKW9ZkqKB)J!U#l3uPbJotSX=sJFYE46@_<3|iz8k7q(-gYXtJX9QqFc{9kCZ@nypdKZ~A6UBDfcSQe^^_qbgE*#xxV>?1glj_)t2qW16mv5{H(F&YQK-lj3b&hqULCje=;QZ~yHmaM ziGK6qnus)~y~UcCtnabrSD4)p9y|pTk2A2A2@0P2DTRnsxY$r7oBWA7eY7oguO7do zPLs3fmP#{P06$}FmRdd?VYOth4}MQsOmMYCi^lXZews+aYX3HG(u!#+!;KD(9XOmD1n*Prd50;GP$%yRcdea9?8CQ2T<1g{hKDLZS7?&>)0^;WpN$O-nRS7di+j(kvo8J$G+O&j=vk7r|o`r zzr&Wr-&K#X?+PnQxOa3utatD89Wf2gO^`4`^^c+dTcer3ckeE)JP-3eajY056z`*v zEqAxtK!}C-UG*jJ|2-eY?Kn!)uaF<5fEe)a5H!6ai|oPjeoe)-uHJ^$Ups^q-f01$|udW zn&s_NIo?{G+War?NesUnj@e2k=qLU01%Ko*Otgn%7>9K~u38hQADd`=}ixE<39DqbNnRt_p2+(J>*KCVjc;9mlXMrmKTN=xTk zkWpi1GL+wI2kvDoSGYHxhqTv39PUC4rynwEAok;n+QS1rV!7f0Z^?JJ*YtoN=CwK? ze>n2HhJg;6gqX<%2Yy1oAfpB$Q}`bpP{Y5MDK(tSk7(x~z#n-Wge+O65dI#2=5bBJ zoAJ+)zkckpjBGkBTiH;K1N8Z_$2Di0MLQIM2w2arJkAUnF41i}=xl|i?*%JD(0G|S zTkloUQ9it*CWT3Sen-~2QNeG?@PK-sa19?nKhjZ?%>#BQY@WoMJi$VHR^K5ypgIq3 zuRhvLp?Lal`Pp?bL8JES#lHk1jeX>Iw|fQ;m=MUU(YSwe=M!kG4k&=6<|=P%)U3`D zASWvF_(#b2eD&3tCNfs;h3#C`Iki*~r3HMSc4>oMr9me>saXx^q$eSxNiM{F`6t@> zCB72*BZe+jg2%grQ1Cb{Jv(P0#&xCxJE|VqPetqFHs3s)=by(bo@AXgv`5A^g-Z_p zN+(Ua;gabDIxZ|x=-AOxrDG@PD4S6|9YLTYD371(q)EqfE;=^zXP(k**5dZQ^GYizf3nkN;4QCs8 zou^rFzvYXgvj$-uVybIj2(3e0YNGUoc}VMtH0D~Pn1-|hSK3UZJ&m4?HR;c+IG6%~ zCH&K;Ssxb0v!B*fCa0`Qi}_^C>B6*jB4%2#SPSNN$aC6b)77vbo=%1S1h0vsxfC!2 z#zKGO>5n|KPDla$0Xt?PrfU{Wo1|KjeYRB>Lw*b;qCFq;WA(Xyipe%60UwXS$EI|$ zDQK$qemdC{Z|z5b=X907l}!|H($M*jHSR}Wd=Ha4b4>O~A*++kF`zn@%iZAoDl|u2xL$rJv@r8} zCY^wbo`H}0Ly+5>>4;*AcNuJs#Rq-hT*&jfbPQ3$o0T_oV^pbGy)mjrBjv`ZbprE} zP3~8t zoG)chpBcg{yOhr!^CQRVS#+ekG1C%=P9@BR45}KG1}~GoR^3V^KAAY3BO{VPE3&4XMYz@M1PNEm|Jp=-&!3BA&Ha>+HXaj6*Q|NT&hsRJ!e`TUag?n9+$_LC z%fFAQ9PYNbC(5gVA1-D=*#%x@XSG$!@RmV}O!MHx)ecxnS1HsP%F;}=Z6!cd0&aEW z&PewPj<*m++I$bd#4;33iiWjK;Lta4a{b9Ff0N1|#3eK}E8d5#GCEeHM z@x@WB={pLERSg#(;=>1LDGll?1NycF*6dH*ER3}E2ig4(O7<^a@>E)V;w^i!X09$A zX&a54qYp;eVh{S@2Nf2s=F`iay)dfzrX$~U znhw&)=7A4ZyR>&i#>%DDc9oVjUnwn~*Lgv+v`((NA$|)PHOzFxZ@qwZ*fH}}f4B7@ z`uaim+2^T!{meXK=P_(w2jbaFZW@Ob+1Y}81tFUm_G{~3Sa3_4io39 zgZBKn8AzMO2lizzcpZkMY8qO;@Sb;#1-h{Uoo$5&-Q#mrMLlFLHAX*vy07LsP;a8Y zHCw=+?^g}o(^1fLQP32xg7$Ki?(3ZBF6N8-u|EF?x~)KG73iM!LN}GGbT8*b_agpu ze@(g<@CnGk9Gv%OEvn>q0SYR}KMZ6ie)ljajH{MOKTeiO6u;J=_0iCd9sW`zwH_b- zvgTZ_HZocfi>x{lT46HtXB|Z>-T}9!7$m!?z7#MXr$b>@5oEQ{!7@7k%9p>1)0|ve zCV~$6*n$oz$IiH{tOR>cugd&9M>U!^%*jV(R&VVEj|5cJhi<9yEHXfTDjz*H<`B+a zIV9Ped0~8Sj>?`N=Ma0QZ>4J!zW&gWO@zfn2QmDoTD1=0rdodp*D)XBvj#A&lYidh zX9vL2+dRjd{S6qgKraPM#%`s_F}m8-txcQ&eJ2im0XF`=+|z)!W~*yB&F5G_VZ*Jj ziv1yPzFS?L|8$SVkqI{6!?14-W18uOGH{5`4bEa z_hOizn_-U&hJ^`+_0eEh^btg>AMrY+k0#WO#01UE$GpOtz0m)23Y%1;k|c3?Fqs63 zo%rnMIwKB~dOr%3oJ81~gN~NM@iC#FtIL2jB%HIwcfW!a{a~-m8 za^Qc>pmew}n+$X#UyMRDOy&#x?5ixe_H(jgEJQ5S9w0&=NHo^QMrZKkAl8gmyvB6lnX|0e$bHkTOzEa=YE*`uUXnef zpW39nky(c;nrM~mNf z-&3ejZd`5d_3b&!O-n4cggqDuhe#)Xc(g{KdyP24pBu`$G~KqNT4qu7ej*rBU9rkh zaB8voO2y`)*j!h!4S@M8uVSxBinWMi7#R%^7qbfuxQ#FoZcjRT%8_9}ThVou4M5p; zcy{A16g!E^EgPayh-6>8A@0JzP8e73C0nN9{mD!%G7XiuW2i)?17tcBGG8*b0xj*l z=v*Kv#s!FwNY|%k|A^RUilp5SC+utB%UDDljukgp(wR>s3o##C$YY1WM_7W30819? z2hs)H4N_7pr7@91;KMUbdkt4jinM9F8YYTV7-cFRiV$=?<83Uk$BszG8cl>p5Zopl zIY~Of^-!fq^fwwS)!JBHt&N>fv0vfRQv4IRmrqj66hsn9WTw>0PUgAe9j0K7oJe(5H_8GthcT#*(5cn9De0=}JQ1bhPU2?1YC3pbdC*{X8adB<0PZ2+U1{E~!t>lRg0)SU zh=!fGP;IzYwnPc1@~$@7=1P(+aZXGYoVy62RGJGjGo$}#7{v>H@FT6!&NdfYZ98ou zqumF>Gi6?W7J2b~0v~Uc56OL2k4>@|WA!O?eJ^cv@HDAE7H#6XLWjg1A=my{Cq>>Q z9;uCAUt`w`XK`+Zq9B^UvDr}|0kRAzgJVzz$N1bgS@Y&+EmvvTpzh_SASdfgs3S9c z02BnIaNqVXqSU$-u}D3WSxC}{ z)E-DZUQVk=lv+`qh}46bhYSf=>q2rbB%ks6IuOSz)Uo%X_V zGg8-Pu0!ewq>e!9igI;=eyBVHsp*+ZkU9pbV~{$(T%AR2E4Lz5&YX?ZSfs`h>Y3%L zVZW|CAIZ}*zeRE!lH-v2Rk>=TFDWlX>SvjsBQ+7JiAWt+uFiU9mphR99$yy22C+AI zSq$v!AJ?fn*vE{(^m7EQ=6tEMLOz3xYIjqma;sY^tJa}P_p6^`&8)RU2MgNO9c4!* z4*z7@kFrYa5ro!}j?kJo9Y^cIqVJ z45aD^HdP|n1cG~j;2tL;LGZb|s$lrvBf&WJSE9v;BT67bV*K+cDjg{*p{I1lLBI$J zAPtakgg}fgKsoWmEG#Es-|$^koX*}Qamx5B8RxT+vC$_+ae#QE^;kJEl?aUi)>Xi| z>cmLk{OPVLgn!*F1kP^-p*;*E>8je&?2d?)PsaS6&cg_=q+q@2{?tP^$o>=t;FS{$ zzjRB6nA6kthhcZA33X_~sduRf2lIpPv4QMw9`ZhW$}|Qe_88a$;5D9baTZ4Fp?Iq5 zGOZZAj}f~SYC)$f5TErvHa~Vg32ku_+lk6d*?J4LgLKz~vJUY>@3Uuvdm*{k$tUr8 zby+kr5KoVmMI*yf{@57SHFzvCj1?KaE{j11V$h1R7-aa8e?=K)BEw9P;f=CbWT1*A zmc=5&AbtoL{8k~us*_y*0Sjbpd7BSd*XDV6l_$QbS(c1%Qt(ZOvSfTyzK(zK0gDJO zMvh{U^FTCn?if7QP*ZIy5G2sAPQfl?CoP7lUY#cJg zoeIV4&{797T*p)IQU@|L<&ht;*3HbwU_Rxv*C^FzTQln;xm~Fq$@l)`Q$E5n-Fl?2 zKgG=-q0qDZua7{76|bzPxPxA8PP+tWzhcv zpZGtN;iEgz$S?>QX5EQKhEaSqW$26yokfPoJ2A*G5*fzap@u?DJ_bXEBE!&sxanh* z`Urm&uY%+7Do%X!-|a+vGZo(i-buta=lSoH!Hf)MkzxDoWMoJ|hD*1Tks+IxQwA$C zSVe|kZkv%I4H>Mr&B&0#2aRKmf(wzM@Sp3Td+Kd<*jRo$0~sdsspDAp;J^ZyQw3D9 z*KS*ZVJk3vb=!&z1NiZAXd)vr7z-F)N8DCB``fqkk-^9te!|-NjX{Pn1>E$BQn63i zlde`f1f^*xSn0#c>p=HDWuX&LH-y9NderTfu(FkP$dxebqQwO$1yOPQOweFpW5 z$!SoQ(apU%i%*Hgny#8nM@Aj~^#xhA@r(XN>L~^2-S>$p9t65P-Dz)hm!>v*H-te8 zRIT{(D=EJGY-}+F`^*K0z@aXpT4Xc4dCL)udUed`n)XFnshQ&9oc4=lD($@Er>rGI z^vS2}?RT#f;I!O=TN$0#j^DI)tz&IwT5V%vjJ4*)&7h$LG zBHzk|Y6~(n1~X>jn$(F(p*9~q+4IvAXzYp*fhN6>f}cI! zJ;hxtW#FrD-ug2bv!Bg$lZcT)El~M%1U|*jKFB@mj1#lY^3^)H0!)w&C4WPVF3MB= z6kSZlz^Ty?a(p}SG`UJTNz~uMLDm~mJ_Kg=3j-V`;Jv9d{WAeJ33yv7P5*`f9wOkZRGR*c0X#;)f2Pv(FCK8b zfLEl_^e-83vVhZ5G5t%hEy0T=;>EmFn*L=1&J^&hRGR+f0nQWf52-Z$D+F99VBE?A zxCC&CfWJufp8ox^K$S4jm0hx>yo;^bi%G?`rMR_x(&wzBU&LAXW6$yxpCgF#=&GzW zrK4!)q#4(MOiqtWV}s#Wf0yD~x~7*3Xzsh-kuA@@O=*@iCFc*7(zXnzv{D3NOsVw# zjiLFtrI{|7!}WByyzmoOYQCR%HJuNPV=Y?CZ%K6nf($k%TP|W|l>A1oZx8UFWz(W8J5pXY= z8h8xgF#_%(Qv=5Xju&uenHo45aI%0qpx=3{_>)%F!J5DK2t58@d+7IU|ZbcTUv>fh5B@2|op~#XK0OYq%NMPB3t!>&qr2 z=*T_BmAkJo3!JO!dl?Ep zc29L>+`nf=;ZH5UJL+&&u^}4$XDGfIYNv@x=v3D5We*B{B^0agsfO#(dl^7cXZgKR zN3yKo;0P2m!rm2~c>X<_+!E)uiOFplpE{MLb=)y829uj<_~?C3nR2JAysM?2||iyhqK_Z&@G9$*kwNeHv?;kdI9H z$aF}|ugS|$D(2TuEK@v?B+VmXhBiUBEddE7_Pb`X$(H>@-FAb!_|swr9k@&v6P;x= zWTh!zPfnxnm*M6w`rcTC@RcIv`|rf}bJ`2qNMttMCE7}UBLpOD-CQVcQjJ79Y|QDb z(F?z!sE7+Eoc}=;#KYH0lpe+T@xdZW_OTx;*SCqF_ffYO;$^|5>HMSV>|%o79MTr% z>`sP}xFy4bE*&>{DdeV9E-QUn;D+V8mi)b45QTs9)Scny~%7}@3mZIwRp)(aGQr(D&`tz7r zp6BC{v zh*^D#a6Wb~17Y^@ONpmPojpU_*~YqfY8EHL1CRaI3>QyZ+OuG^U|oAAA-Pei_S~jo z;vdbAd<&)?PK`!LaSYb9Vza+B#Nhki-z1wR4k6S_-t@MEPQFrAgzs~&W2xxPjO z8F1j#4?-wEYTf_*T42({r1lKxPo!p8V&VB6jHXkm?moINwH=Y&4rD8$t56*zsBT-T z&QS-H<|EfPOQ`LRI$tw@K-^S4(h`?GRTMh}#SS??5-n91t_L!q!Fb_%_=x|S#2#zb zA2mhjG@6%!sHM7--ObAjlUQK$=a&!}2Y#@m-9@J$3aLHgfj0g;*MHBtv>ys$X<(gx z9)VWpl^&KlgG6lc9nx3S!S>#<0t@4xe$SdV(Q~??tSv-8A7c}ZfHYUD$9T$|MZscT|6?DsZ=nU4VP0Ph~V!Gp_3!x@k zDF`mTfYs{T&8Pq92I(jt`p2 z8olvtxJp0&V=q!&p2T6SO7V{GTVo?mkU!NX5r`56qP{>hd^WZ3{afnN zLF?PpM~3k&GhtHvJ6)+$9#H08e6UVga9%s@M{cR>3U_bC;?pP7sZDN`ml+sF52+Zd zVa0cmZ_6!JNnE&SWhdGtw^?%s0~_JLJis^EfYg$5$MAWSN4b`Q??0OpG3D9?~4D; zO3xJbAf1-<$) z3*!?VKtsbztt1*=8keYw`q>g{k%@dpGK*|<{#zI&=v2x0EE%8C2Zy*VnKf$roTwhD zrp!xV=p{?qU?}hXH&v#V+;jj>d)^|2JwDPXx3h(ndT-Whi#Gvu0G6%b682G4>BT6$_|g|?WS4yY9kuVbH&t?1-z0L2_{tR4V&sHrI$X05Wov#J z7du@hQ${Ja(MTyUc-&Dn8+D#G<%OdJex{5&5CgL(YP?x)=QKx>%U7K;DHcK}? zHjC9_2}3S3+mOrM1VM|xC4&CEp-TP98&+V{FCxw5TM>`JLqavlA*oEELS`Xwx)LiI z&oZN@Qm!alGAK{J?CGf=eyeCUV#5NIx`0Y;20n}t#eRN6<-@`o#D`;ikIY)UJ9?@P z5r%2FwI>hw@-7o|pIobyJKoKUCk2YWH&kAHdV_eed?9reU+^Lg3a%8~C`FlYhu%gyxr`Iti2%+9Y@p7t@aT3LbGd3<5E?>kn-Guh3lMkHWQy^UZHt(GeIX+BT~>A$G@J# zmL-_bzqaBo7_!TxfW{!D5T6u^Pcj@TD~~&flzP8*TTRZY+A*E7A2le?X3Sxv{}_I> z_ovTHT|i(^IvDNy9~?LT(QM^MhswY84&vYC1$APc%JvfhpP%#JIW}NkpR7=8z()r0 z(P)Rt)fo=r>b3&Lq3^C3F>Js0WJffua>JHXIAnsmWe&6FycDzIcHS zUsK;6gA&G|1d@PGf-sEaI{O=fGFTpS*|URw1~u)2O3k!;5*i#O;Af1uP@_TzpUX_Z z_z5`DmI^2pZ!BQJ><<5I0o&g!4)FnTBZ5Rc6-lcD5~{r8BYtHqpNo4_vci-C( z@D`N9TjGr`Y?>cku3X$#CW*D1Of$Jb;zs!3$1{Ir9eTyRh3B_)19j0ladlYS`Sngc z&qNQ%`O%8qo25uEeT&vWbkpFdjW!^cVr}o5siyMqh0O5c?4KgiFkuEo!1yL%)C-KX zz|=gb+BEwIvUeK)X(0<@)A+K5EOfx9GhIm!5UHQNElQb5;QDB^L+`6(?e9ud3Gya) z8-n!}l6d1q%+R+b;#JWP1D*-0GWVeBO57Diz4ysvoiWPRAJWwSDoy3l1~q z+V>j5_^&CxYLi2jnI60{No0qu!PFP!mM!2q!;iOHjPuH>RHfu;ZTboV9^r#+^E zv@eY;-&K(IEuQl~u{L>2ZEqEAGSDVp=LH~6zX=F*qs{J9KDcfPYuD|;#%-A5gmbtm zEj2jhwMr>`>=I^pVGnk|(Ct4VdN`3^QTUUFzr-I77h4V}$hrPS+MNu=*-V4+9^vLE z^TZ+C{0J{uf*IO_q)>yjgPiGZU?K4a_VtO+h$BD%jhp{f45$l5b+U>ZV7BrJ}%86o}>Ac+z330Iw48-|?iwaslTG_&_}AumZpZ0^Su* zI?MssA>hsNq{DoH-}ffr+YnDWEC_IrfY-ze9o7LaI*1p)#gh&*0X7MEVLa)uA%KSn zcuqX&urYwg2>7RX(qZv{;|2U}ytfWpI^D%jaY+O%*=JI0!AKnMhZ(UW`>rMP_vi}= zdNhH0c;H=2@`aAlUD(da7oNcT(syd(N5Rj1ZTInf-}Nk^$)r)rd!_j(j$iL$xf;+A zfF@LN&>_C@!)xQGPr*eri2G3R)lWb|A`%is0-ao_Ag2$eoY zBN753F6LhkwO5!&AE`Bq z96U9<25!Zhnw@CDr6uMdU!~E5v+C3W)Z!Po?JR1tMMTmZA`;Hl0GG0#V^gE`3Vm;1oe*3LNl-uzz&MsqdDW zb5ZzA5IS?XXn%L+=yQTn%eN{5I$M`0b>#q|fCZrrLFnLW+c{70*F<4jP5kZoF@f=jNm0#Ipg~^dqE>s{LR{-Dk6JaAK&zFI8qA$cYIP{!p#ru}Cbc>d@I(P;PA0XQ1UN~+8Iwt^ zE&#khz{@9-TFn5QAz<@lQmZ=v?-20Z$wIB3z>5>&Me<})t5*PD5pdFEQmYaOlx`70 ziIYjK1_BNgaNJ~4tKopd1sprsTdn>)RaL72uBlBjI-eBKD=5=Uj$wnXQ%$Dhb62yW z31fj{>@D&gGrY5kYO!GBKemL}=XzpdWGDf*3j+_UbMmLln^7E&h%1q;#i7 zcv8fkx~|fd8sJIkNDWgif)w&=(Q-MqU+`;IxYOm^L`JxXvy+PJNQh8DvB|fc_5l^- z(4`gL&ngm8Cr2_^inQfOGgYW3L%m;-jI?vfrkJM4InN320`lY_Psa+?!TxFmHEKTc zFyu)>o}o^A>5_FI^em3OMw~jY;-BG&Uo(ZQeY8yjt~kAJp|7^ zMwJT1X2P>+R7ASBV)F&#V^DC+9o}*+YaFALMM_S2A|=Ocq~sK=q}WK4*$NFdeOoLP z&QWt#{^nw#_cyBk+f~R-|FY&h1AE*2Cf-4Wz#T;|Wt2j1lzO_@dXTjK4yl29pOaq7 z1Dq#dzt2f86$367aK$9jOZNfa7x3*#q?h!-r!S@NuTCPp6b3jcEU zpqE~?^~a0;;>F*SNH4_zjuG&INu-x10-h+~U6V*JB>_$n@a9RRmlgnCAm9y?RK3It z|HP!N5GjSFBoC@LC{6@Sb^W<&&NURAQ`%M;Mk;guzq1PGQ)XBF{mrw)dG&j10)`$> zc*-UH`?}z7Qf3Bz+2YaYdx+r;wd9!&Ca`QQ4BcGoy}wS?(OPG{qfx2)sdp{9PR2zL-0IAbR_I;!1K^iap+WtUB>f>QJLa72G230O7U#q z-8Zlqe(@k8zKrK>z}ZU*0^)@7M7=EhjLw*7u|_GpsB;EN4__=Vqx&0i>#aMeb*2bv zZ4a`Qq6v%gL|AH8!cu%1I|YH|L|KX@9ay52sMoF-89oqUuR5Sns3tVZ6QMbGnr=>2 ziP;G>xCt9SzHlRJ{FuTo`a*f4FSg=~pcsYtrKd@{Iwwc)v^ds;muzIlnmz8qq0L8b zM~GY8J@}jMc{+PMP{-e;&U$46b@o)isRAyVK%G4UaE5>jCQxVJ0eFXik4~V@egg0b z0q0Gi&VB{(6#?&^%VY5b%-- z)Y+o}M+IAj3lMi6sm#(3;*xzM@=mwg4k{3deh6X9{N*EJZf9e|N z3)I*86k1L=?S>nqq*)Nv=o9%G}d_X`n{jvGVpzQ1_CnqRjda$O}G zUIU{-^#@+16V)RNB7QRs$i(&K5i2q;IGvt4S&AxfFu@>q{st+TMNX%wug*xddZC~) ztGca)yo0Uy+1m=MRv#mAOBSo+HyTup9>w=&u}OY8_uyfXWc zbxNg_MT$guf=C+e$4}A#rWCCVfJ)KIvr@EYO0|OT+rnPaE2WYBsg%V#T3JxndH=Yi z%r)OC%fM7z&_#onk`qH6=3z!`+K7d98ftSs;}7s(EBkEd|9=F}T%r1lDK3~!7ojS9gcNG|Z`)w`jexj~sNeC#d4Tf-+&?74B!|6>&H=#o(OoNfOX@jM<)SJ z60kImdh`Oo3j|#HvAai)*uhf6lo><3k5Wqw5-TPl)>>;l zDfO7tTANtws!{5pmZsJiYxVbG}TiWeTP+n+gT2OUZ>*MzX~f>>wKr5t#camD z*=w(@mWpY`-s-h4sP-vFzOlbub7zNS3Q{%~(rQMXbv|9t@rCR25`SGmp$y={Z@LcgzG|v^q z7=A=aN%lqI^D>w(pv>d#6I~5+7I=S8TYd+?L9<_5IjAfTL*=M!imJxiBT8(3ql%cY%^(ZR{2HY53HQX@I93a)@h!7Jlm%l)x?%>hLUH_V?14V z+)8bGo|Sivm3K{k<={V)-&7CdO^r*nX8O%_B{N7`RB4_VT&;2TOf!!ErxI`3hp&B_ zVS85zOF4!aocp7Yi$n55uTW(H1LRk~$yNc+dhUoVp*Oa0o#RTn;eJ<%pOUZBG<9)q zpD#JS&zwZt%w7#8qsfi83SqT9@2BQA}4{~TVKZRW6-}_2 z=IY3Too?9Y{XmOXylo$Y7# z5Iq)zX6fr8uHf&ApKS3b=gJRH_xSqDDtevVYSy`%Usz*Y{9<8Yu`9m_7Hop@A2B# z&XqmH5$s32_Qtughd71(l-J%c*VjWBdB0Gc4u?OpO8*$oHEN<+yEavry36xtMl(;E?+E{RZ}{VcKkjdY9wofh%Eq77m~vDJbvQ9Q zt^HGs>5&p5>@Oq%?(F2Xh zV}wr%q?->krXS;D!4k|RfySC+N<(rLeyRfL)p4r{>^oGqbB=imNFKs&2;{hMARq0_ z;-j5eX`Tc4JrHQ*yr(2PHkVtu-GM`N#M4PU9kUpC&yqhG((7yMdrCsEK7bkQfOOnA z5FTipe~(-^aB~bW!roV6l2S0I42bdQ9C9;d@MYp1Z#P}iJ^2F^Adi-eevV^Z^gE@5 zC>>xddS8jKR1Z)+)dP%I-d7SMef`{oUs-LVd&6fixccMq3{MOGS_T+b@n^}mA$6M( z|4U_qrOu{!>TJf*Un()KGf$i zk1Nr^;Xz#95|oac0*un*iYwHVgyP;xU-0dJ^GU|odR%F}w__G_sacDNr3HDlAg_I# zz>?>yo;05NmGY1?g$PrE%;TS?KsY1M=Rg^r%peuqj_&BMl$wa@Ansoc%5ZIBD|5{P z8|NvdAi3NI_bow&`-Bo6I)d<#Qc;BO>w=}o zfAOq&_U~SbpMz^ou&*i@F~3%#6U-u*N0IJd;42c}!sE9wSRMmhQ<3Ib8%&c4PN%R6 zFqZyWaV7eM-HgxXU_KkD=o9t`QftAz<#uYfMSkhmN_McBs!vfy>PaOcv>X53{rsDL zjAu?N(H7@G8umcrm6J+boar9p{aQzUiSXqol57sr%N$6V2l`6qD~WOaq>>t3%d^_s z&y4KfD6yf}aJzQf?Y95M-!K;xgIM_(WbFNol9rq_NcAKQ@;&csWQnu-8d=&PP8|>W zOxmswXk^YZvym+&o~6Xo*T{NHxatEM*#S~KFzB{~J3mmur<@|hDMEDdtZR^LmSzao zZeF&y^$c2Y`{3Uj<$bxiMsBWsHaCeMlAHf{!pu#|VAYc{_;Yfz_CqBhwr()*vcbOG za4YuhPgXL#pRD|1k$k6Z#Mj2bM$d;ztmP2qLxYXTQ%YL!N#Z_9+`Z*na7qac?jDSG z2m2&stUskBg?>_M)@sK+s>gAUFE7T~Q%ZuR@E!&$_ZWQSpC4Rt4>zsfb35#!-}3qW z7M^dp$JoZtVh8Wz`M$pA!%r)lB%0u3x{{GT^`?a+Fw32Ia@Wc^fTs^Hgf>T0R zTno7!bJXvY5=#Tm8$ygFzf;mI$9aA{#5nRhBxfJOSbRu~_Z+j?svnyne?&dQ;~Js@ zBl3(A8D2ev);vVc5M}E-JBQZ?C*&63W5E!^eTI3;9^%SY z?MKVx80i4^177>#GC4*%j{UgTzQ0V4k-D&VdF^}4DsEmJm znRkp7g+r9r;gvEuMoPk-?a$|RU?aRyL7^wz(jn}@o>~>|$ zKc_hD)u^u8dsVAxG8)e*F|l{M%6Y&ryEr#E!8|jS@RYohVIQ&X8)}?B$I3tt=ANNO z$ay99vvKC1XKBn4Mzs$!s?XDSGBIa{85_!c>PD){m6%NM9HZfb919FKA*u(#DJtf30Cg_D4$U-z~@3FPr6fq*|7vlMtO@ zM(amPOr9@hF0>;*-^;aHhlR;gRX%t5OH8{yEC}^InF^2 z;|$U;Bl?2kjO>+Vlj4>aZoD|n7gt|N4ZaTxwPX?|bC|LE0+;xdVlEwK>>|9yOxZYf zf#t#)+-rszH>97{m{$)oA}->mS9f_A8P9CPecLc&!A1OZVD1=Zyd?ef#&h5zY5C%m zetOL}FDee7nGdRNn{)e_7j!Ap)lENr>HZMoOqUX4IX=wab9|U#|GiRY2^r310K?5W zMgF}EkM8YjFNMSDONYz)oHRqWmul?QUb}0CY%h)28@+bt4B1{bW8dtxJ7&oC(u%#+ zYY&?t+sh&BhrD+C4B1{zVn6A%TW5INOE(VPUI#HlwiiK$#Jw^D*QU$%5`sO%YwwvZ z+lv#s(`)aVF562A_7t!E%=FvsW%VUA(7=<1dySS$N)&e~y?03&Wof>b@yET!^-D_W zm(TyCht2&@e!_S7xzcpXYyYFP=SlnVpU7k4FTCJj{hvEn*aP^gvGTu(91p_Z-@{rQuPli;FKtG(4JKCn#-lL4R*djEKEy8%WN0}b^tsk3fIp(z_ zR`0^g_1*F_(+QqT{AETM*?*$fFcUNu{7G44sfl3qF~aEilQLgfXgv8b_cFEO)EZ%| z{+J0%H|FjLO%e37~I%FNrr%-dlcxS}Mf z_x#A1(oLhxaWH~*7>>UvimlwiKt*kw(EMN?BO@J3h(C>zqF& z&)Y`QrHnL=e8SnRF~*-hQHBh^;qyd>ecle??a)ZWaZPd7|JC=L6Ic$9jmjR3?2h?d zz03N%2no?Ok~=ND!#jC$q{%zHtE+Z+ri)wW%HBElw!^as)8p^3$?6deN})V>B@e#M z%rpHYzT@ze;UfnhO0H>+b@n=@N=H0O50UR!X?s6=Mjo``^!PIlxBUH}KVIWo+@N=O z36qx_BaPrsl}JbFYxKXbnPQM@_XB#@?omo4N{KY`KUIdu_xf_nPtU};5l=F&^oD!$ zRnw)Xj5h)PVnSnC-u&n3sNp z+vQaPRk&A0%Hz7D9!>MCCgkc!xd^!E&%V>}ul`wXhp(O^zp&ePbI&N&dhoSAvb|PS z8#T*5BG?ycSS)I!y{Zp#11Zo1!m=1u1L_&6}i2(uD1NE5um;_)KWK^-LcU|;Yjt0&pahkZS6I;>!Z|ts-+_; zz|#@cesHvUHPCVc%Z;e^{Vw%_#gZ~Qz>_k%edmMfu6ump%N|jq>SLG5R?YdJWpa#c z<68Gm=U4-SLOAWQjFUjPS_3WNY)3H|Ysi-yx(Ul3b#a_y*{5^lvmlmSlkk~z+o!uA z(Bm%99pYU65QZ}6?-6EY<><#})5`iENzBO3Qw#seqNGs_UIqDKUsx2zss)Ty3p9#y zD5SUJ5#4@C^3|pJbAxZ`4#%UkogFVu6>6rST|FMWse!aQ;R#jhdtoE=8-6x9)$R>&!;!l6xBt|V(T63xU;EUTxe z?!kSDun7AoGq*>Ln^V*iq~!JU!J}%K)m@N;PTU1XTD}@l?=I+hI|$n}R~6ripXDaM z?>b)JEer4t8-9oMT+i`YWSI1ivoSAhTDam4KpZET1D*7`D5}C;?8j$W-CjTI6lQ9I zZ;(E`<#OkdGx=py(uGsEY?!CbnCx;iMS9i?zNHdN=eZMT9tpB}t((LShp(~ZwC18BR&u?~h1J{w`-MS* z0VQ>=74toUwc4B0W@ORr7L4Z{1*OX?97Gin=bYoST=Ks3DBSyGFd#hFzgGxGZlM}M z#$>HB<`=5j!KFKrFRr`w(1n+7=~B1{3)MWQnep7FnejzU7RMxa6+L-i_)|^gO-0sE zhbob>21xxIiA8Fxr7oHtDB7qhQfpH3b~v_@ogD#HQ`b$RU5||q;D2sY#$&$doW696N_hvs{s$ zGYUU)=wjR3Tb<+?d^u4$MIKMhGF~dCXY5tQ>S>g|S4FMU)X;KMc!Qf5+YVe(%q;k^ zzjQDUerz(roIfndl|%(fyWKWryOiy-Xx-DhnMa3pA(yuU{cXwgig(9!szAncs=#oT zs2RSBzMw>%7oD<9ww{z__I2Yw`VMDU(x?V$%aYE2_m+L#Bg9kPG=Tpb9#<1X&4w3L zRkV()PH*7VR9xQUYD8$CepUPS`+c?CXn0%=Pmr}u>#c1`u76zHCR5vFr(hg=T8hjTbGq-(>AnBI z_pe6f47D-%%&c6`ky5sN$=Q+8_8T+QK($^vc9xlron^8IhG&vG%gDU4G}R$Ewze4r5QHbixd zaF1P>e_rRtiVSI7@HB-n^I%Qcd70$0EMl#6Rr=;JeqJrBRx zo|f6)a1E%^vD>g)u#c&z-TDaKR8RsxB^*A9JO+T=rpK%!`MKgeYg2J*~@~&(%gt4efP5ReqBXF*|#bTQs z=&{WUUco;Lamjm?a+vuvEVk;&#JV=ou!r0(x#7Bbs7`ZYB&!OXezEuXKNUd$Wb>?g{_ z1N?ri%`uSeqB~PFqN>$Oi*uRoaV|5~R;wk0orHESyLIkWUKvr8A!=Fs^=dWjU)XTx z%~vbpNtS|*b49w$m*ywWgDJW7lt^O1!2r$AM)|r z0oqqRt#9yS@@ zLBL6$Fg><^JkE7tO_M#P7sa_HUkPB~eo=b)M!>aMJXj~rono=bH!R_`w5)I)i~7qP z-T`Yq6*hmF5%z+b;4%w+=Ix{lzrAH|n(UIx%41@DosZ8Y0+-(IwC)8py07Ef`GUHj z&lb5zo#K0KEL@~IsZny2`4gR{-Ze)E+kYV*b4)p?Y02S1ODDR9J$h}9wcw=*O9}(Y zb&u6IZ_VE=b1n014zkTW%Rx3iP<2C*`Gsp9=DebUCdF-a2$8?lYE#3fwh1wKSBCAH zao^X~fezQQbb40TGTDp7dWU#So!3of#4p_FaEFoibv3U3N&`n#8fL{OUD$jpsydVY z`&(m$doo%N0!bI%xuv?DO|oD28_U`ZzDpaV-?2^7?;~UTMD_?moQ$|Ajxz{GF+l^v zc(Fgv(BOF)MusRGD`S)5{;e~{Q#a_AoH*o>6jyqV^;WjPIyJn$|0E)K>|{=I%ODd6 zFx7p5sqPC5{m!M_FDvyobvxrMI!dbgmuN(p%L+IYCM#Sl4ZvJ2&_cK!_10u`5Cm4t zayCu$+^SDXr@l~t-iqm>nbJ8f`GU zKt;eh`Ez%CTo90C3qZ}c=TPS!iFt;`@4gra%2d zxm(T%hFN^g@))aK*FW*M4GOt4j*uc2@rwpAD;5LUm$W3g9=6$U7sKcv?vzXx&*cnW z%Cz+28O)^@rP*xoGEF-J^8OP%IXUiaH}=J9sCO7u;ho&ddAO0VSatPwCvr7Fu0kwU zGXv>h&IJT|r@#9btJ9tC0xM~xTm3@hH&-oP^6StPbjnNxaSkDk-swkLy&7UMXD!C` zdbK*fbcc6vPv;^h=yDNdEi16*BFS1#{BpJH1G2`*+QOWTT4dx;SBJL`ZctrHXjo&_ z?wED+T6ebozBOj|rQJJsduM|sFRI)BWy6j3;w7p@?dwu1mh!eW8$tWArE2-V@U6OP zxw_oay@I;5!U$bKzjmZF6RjL6HP)<93$2}H($-mKT)M-S-Ka+NJ*#e16Mb5vjYD3*_X`W{F zG*2_aHnRNL>%L^8ddTOV_Z>BJO2;&(Yxx|1Psg-$B*^FN-yF&`>qx1E@?HC8IlXvi znUto#i#gD_8)Gs&-4|^xKNmm8z$?uzl2|opTx#K}SiT=vYMlO#+F{Qg6X?kv<45hE zifQVY_MMy5%Zk-el-3sHaTFO_HmmV=7Y*4}G|({#mjLN{cC&ij^4J)w=dm%y+5f{z zZm&7;6}2V8%v!@7nJJmQp=3v9&77VY$6rxnvX7Kzc&dtI5u^{!s1?blvJl+&fV)`` z?tLhdVHePt7RaSlmOAptx<5s*$s%O_yXxu}ml=)+Mn z;Rn(!9^jblIhY;%2~)rdXlG__d@kDBkff+DX?*=n+*eR z&X&BY9g^CzZ>u5?N#NNJY0s(rh4 z9zRBD=4GfWw?pQ{EKi??%f;hw=90S10Xl1c=r#50N_|7o#w{CnpWGd`yM!*UfstoP zTiDB0IjP~#Q>kSNvPR?)pT(P!)TIqug||jbMp8jQ)`;1xHTd_2$S>m5CUr+jL;B38 zrsm^=k%M;-V{Zy;n=G{);CgIb07DZhP0D|;4Y9N+$g{M_sQM2zx!6615%rjZ-eIiZ z`#iz&wv39g_86&H^QnxO+jXt7f_k68y-&{lgfW(xV4kPsiJ~SO|BY+^p*kYmW9GNX z?8*4K&&YcJt}NT{hx&XQiQCnRFKRIRwlhI&T-wlE9ojE%S6dXz(lLAxG^Tw^vuaZ; zr_ybnQ|U(A_tZE`elt03HZFXRUh_Qe=hKbIo$4-2?HJDWj%h!!Q%zGto2MOn`^?)r zUY*$_sx-I7{n0GD?0#Z@puS`|Pt51X7>9m9*S#9^>M=(CF7}#M69MM=yVU6VPP(zq zF;I@VB99 zo>t;&9TOIx%acGbD0AiX$K;X5F*z@@@jWIW-d@}^ed^2B!b!y1^R`UQ&mqGL+u@;A z#yzjA_lI_m8Q|$2^EKB`Su)U_qRKD90=E~xu4XEhJZeH7{a33RlKhW*q;g?l?D(9L zKBFgbJ^$<#JO(burN})D~{6Lsx$42;`mF4jHQrR64lR* zFlT7L*Gg~Sy}pgP zTVGW)4z#JE^?fb3p|_8_yXDGOD_gH@m$&2Mi zZ}%;yi|1J2@U=-PkRq!kEQ%8#S+-RnszY~Y(GmH9A@Sxir&(m#MM+WdzODE6QhAio z*4sbYscl+r*>Ic3S(!PJM8t8Aa zJNfAlr*ZTh)fwD6O-}3u%S1L$>ojA*es#DJv0sgF)voaO)UJ?S;y~9+Gr1wZw>HUD zqC@)F_&mJd5wv>0ni12of^*p`Bt5P&(;H4|l8OZr~$))M)G@9d%@>ymYFAX8lP^)A(ZpzBfBG}fFB zbhRITS3ROzD=rSiT5-|X@L%eow36b!h)RlOfWl(=1KAwfD(2V$y$;{l;zzFdl@!b2 zwOl)YnD*7X*|h1H8k_NXu?*!mHhi(%8S6(37w?YMu)e1*nbH@}1AKNYQ!E!BJuO4C zk;H%b`&|2ll?G*|&O7+gfTkA%f>@U{bLp)My*V{bzNf}S6q4)0V%c1KO-#ZDhWIAc zhU0xTw0Ep+q`a?2WEU2{ULezwH}sW@gur{k6AB)mX$|zhU1odJ^2cPJ_IUkK%5zhY z+nrKs-}1i7S0Q}^r2fMrW9e~qeQ@)%FxQ)H@h&HOd(G3@qkpBwEA+zr1n)FC_VM+2 zHPg&d5GOft_l@dmrpeCe%nEjyRunX4u*EEg=4NA*ot5l}-;y0PpSzyw|z3DK2N^RuPFFIhD{I8=e@cO*_m#GoAS5X zIebyj=5w)o?SpUIjrUJ7)F3uO7?$6tjz}}))ctw5Fz8q@yQy|pmNhc`&0Xmpk;#db zOe5zvYTRJcU(x;|bZwfAM%;JsLs&yE0lbhxBT6HwmHLY`@8-dIi&IC+DQCB z-Ok5Ja%A4qk?zqmS>5D+AYT=}b=D^ZNn`$!R=RCz4&afBi&P&ng5-hR!0*@#+u&T#pQY4m>2ZLy!JyiF={F0TAKMH zdmVC?(9!KsTv_(O@O`^JA-!&IdflWK;P|9fmNMOA&ElL+mdyWmys5|(jMU$%5yhlL zXkrTy?jx-U%mjTddiXCotW9Gbi+1HSH%PrMRAzFAT`QCU*HZjUYg zwnp22t41ahlehNf?;bZnb$mKY#x2w0GxBNHCRz7ozi|HIkuBuMyEwFdS|jH5(~RKL z%r|X~>@+mWK1HtkrhD>ASmvZF&MRRASYn(!&C!x@T2y$WY=dgJY?BV`jz%N+cWP2n zRHJ;O@lI)!OFzTy<^rGDcd=D&m#K%n$TH1~zR=Cv`IvXRvG{jtc$A%(?2Xr6lfKMY z_hB9xKR7-nK8IFpl`VPy@6?EbjkMm4l!#W^l*OIbeCLVFmT5)ntW7WQHvNg6Z$NR` zJWbwKEXNG0L$;Fe#@g3p?!6o4C2W^_%jYed`;0m~%#VI0D1N43JN+|H!|T%~Q!6KD z*!(EB_qW4{@pv8w8uI$PNu8LzPOxh*ucn#I3OldodRpcMf^<(TG7=)g#@Ve#zc6lA z!d8GByDkQTLB036p|N>?^Fw3vq(o)EVtQ`0)-89*?B&+ zFU56(F#AGV!o1bQ{f=K>=8aa58a9{$QZ&VC;U(qh62SO?nCttyhvOdJr8^v+wL;17 zt#A~S9~rtOkE!?f+lt>-uiu8d{1)7j;*^54T4@?xG>k6A-&cKQUVp0J7U4+rCJW?@ z?-ODXwI_+%6HCpDZ8Z2Tu1tqd0RFuNRNTvSvxu^7bzN+~c2&l@fytV`{%z3vLAmT?5iIL>sb&lGoGe3ZYY5@PO>+I)muvL1EDshdD;?D8D(foTgIpmBhwCT)l zhi74MW3G}P=^EfU<1()PUcGGZaRqvMTyhQYubBSoGOk?WMJvV$j~LhP`foMD&#I5J z@8kVC&M59t^DJTGte&uOMstsvfSG;6aqVY&)H2oLPZ*1`XID>k z1y(F!TiW4i70z{QCsehj;mhmu;Ga1!)N2mBqPF?W2d}7Gzi3@#$zNC|Yn~?FTJW}a z?ex%J`qoR=Tvc!MuAR28{Y0%+`p;S|pHe(G8E}tl&-j#GWlIHxs2FFsud8dERhX;B z38B7j{mvj3H}sIeYV}8Q@xjU<=?aS%JOxJRU)8AWx^XMs2=LVP^FNN>t!^B9vf~D2 zKJJ?2Sx0>9#;M-$8jByf*aE?z%&83HHuH4zIHTdOYDrqlxC5`#-Hsa;zhrvS#b4ff z`J-F6a=5^CvZsUTQOCFm>{R^hW&>Tq*zbfjDb@ku(q$`K&K<5k?(~zhPif6be);Qt7-g#-MpN}%gb+DcmHWO2l_k- z8CkAj%s~?}j1O#Dm8F)@wd31!g0uySW$k#reI4JvKUgbKZQHt@aV?!QyV8a<+9L;P z^Za96E9HC5weqEwL5?ifyq0@h@3%1Qw+#yOXZk*`CEe4^QAWN|8E@Q5N-Zs<-7>y?`*7``Vo6xZzV=FEez;Z;Bj+gHxBJY7 zIcx&Zg_uH??o!CoMQ*-?YmsqDgiZ2_Ihek3TUNT~8uRLHj0mr#-#SQSfJv(CPcll+CtS8n<_kCGL<9(XL+L4usts~25#b(== z_1liJ*52o*?$cb>eOc+I?~n*BDzX3a48C|hy~gSSe_ejOXsx%Tj^svV!pcCvmq07| z5{NQKXyM+9WtQ1DFZ+9Co=h2J#WG9m#}9E|{*ifXEN`WJW9F^AyAw4RigL!U5+x&A~pUje~Ez;PY0>Y29bDVk{V;g|n#HU%^tn z=1cLbuh+fS@w$8wnrfCRma3M+-aLesx6(K~LQ9D-&2q>qcd#Equ>IG@42MIDiZq2R z?{RW?zNMHAgfEH_xcqTWz7Jk$R64YX#J`u9xBqcI-g0Qgcjcq)=3V)S8>vPA6ZvRg zI8xJlGg|~UB_6<>tlabm|Z!MEcJM8IHn&S~GAkobO z)~)8Uf~Ftak}tk_%Yj@LRnYXFbyx`BQqaN>%H;DK; z)+OC`mdP!2MdugmfBw9yGN>}AH%nI7=o+OJW=Q#4OLDx0ww737v(Rn|{FyABfAbc1 zvkz=|ds1&a0dV``D2-b}Wkga!*S;w?E#z1$AL*E7`+JfbvQEmZ_M>Y0d%eVNNQvFv zRXZH5CG^Xl8K;>=f7j<_&nKTE-W&bmNg1Qn_RF0wZ+*LlUzEFr{c;!Jmf;Yd?$n|y zOyS8g`+AMPuTSa@dgqN zQ%k}eB!`k+PA$S`wvE*y>U*-J?pIJ{{-c24De&< zU@j)ws+-H~^taXu>$+1`dF8d4!=k35pso?=o*UlyZV=xj;v2yMGCffhIUUubd>QhG1v2EVb3b_h?xjKF?ETuJ!48@^ zy=PapU`9wI=VduRPD{$DrcqSWW${C(Py_;vgP#JNC(4!tn<`IUzR}CRjkId_X(cyA~PgTZ>F|X>AIQZ?;`; z>v`MZU7$3sj?)g=kB^_oN<25UEr)+R?5b^gHI`cfWbR06KT4GqRa%7XesnI$# z{1IXsAY&}}iWZ&G{S_KG%U0cAp%Y}mauPlR0DCqo1Da&YOAe1*%C1E|E3O=XlB2r2 z-Ux4fMGJQ=C5@$MpgdmTa~UghmquI~y)JU9T!*c0rJU0=U}{*|Zb@XQMo(n6bJ?fK zBHej5fp@&y`EppE(_o5<0)Khyb9VFgJ*Y)}(bVMngW8gQjlx)-q^0(TF?Z}go3?Q_ zNh={tns3)X^C9g_$`|F=&&8Vixxpy$vpH>dCu>(#%QiZ!ZCys`crD!0&1kWEys>z^ zw#u>^O|4#O1gC1zw$&>?o#pQiTjzC2OV#FCY}qWTWgD%jT9hRUb5yqRL8_K$DaBlx zZG=9o)mcPpphu({8z0tEW0LrgJ!zO6Ask=`ZB3O!Xlv@7L+C-?0rZA6rVf2UBaNyw zEj;C)2`>*P$RW5KI|tH{)nvtsKBor&&M?5$8HI`5nMo^uKnc zcP*ny4&Q#tMwQ^p33*(#S2mUDT8za`Y3!-(8`8BT#kxBC&zzN5oo$@R&=xYu^mh+% z50D!G#S^q1HMTX|J3N*td0Mm0A@W--a)>MsUw4>KVfn;(CR;n;>-v)>YSF#s_KJzx zCB<4dRCZr=Lyh7|tT|LaEHh^AcU3>kBL0~$`;x=M8sw>M_ED_%5NVTpE7cFv1wG6v z#=}gO9$qzl>K1FhxgT~66&*t;leEZSGd?@hCJo<4&m=9}`9&e+%B@_xys*JCEOTX9>zbH0&T<_Li`9HWlf|YtRUgMcZv_ea7zB?b$;_t|JMsL2~f3sgo z_5VytOS~yH?fuQ0{`sq_9Pv{F=Pcafu3}VIAYwdM{whEIJM$*T92ukS*hkgK zmNTAf*+t~?)9;lyCU`1R&wA6YNKNt+7C|G9#li;KK0yF4(EcWpP&7Vqhju}Gs~-ISBwp8ANqurQv)fvo-&L3uji(t#HhpUopEjE|9a54^(PlV`k2u|8$Mxxo2lP zdZT>$`S}ifJ~!JjbAE;Q!I-Ct#~5*y+AwwIeB-w_wXjr2<f;HnwfKE$2lIWdiuHQ3P;t*Wwi8TjZcUvH_U02V%7ZR&oKSN^7MWmQ=?*qi3l&(%CT zw}R^M^mFqojFG#wA;T8R2YrI^29Z(@G#;qZhSdiYPmr1Qs*RfKl^(u*xvqI$RxF;% zs_OMb)_giMi{Lb6Kh~={S)SfH5ZJE>vgExPAutieI_4l1G-k?T(xaj{9hqc+2_RF5 zysv2@9~6QTPzoHzf-3DR>9X2-8>y^NpX;$tcrxYD&)!vj<2Q4(kw(K@Ez~$VR|_t# zO`uVO)nEhI0zNPOfXAMnTZ25&@ze8rl_sS>`q{wG@o&V>(<1NroOq1-x!TB-6Ny5c z21mhRupjINpA(>;BxPkE{j6c1qurZjwms_7KMwM_A~2Onoifhc)P@W}51)<1STs)? zUXQ}OEtFRI_f`FOGBJr(K9^2$krWvbkYlr^eWrWm+YH&^dPQ4V>6lqv-CNm>@6Xfj z&)xP_A@0T=-0sE^-2M>`e6>CDYue9kboQ5@*XC)DEG`vd@e?KrF;`)}(a%jjbM!u! z=JPZ9{J)RCOx&8`tusXX(>>aFC2r>|A>IP-f)BtYa2*6z2r(SQfMk#hrdPBFe?waw zRlgm}UT_$k02jbjV3{pMD2N7$AR82eO0W528UL$Ogrr z5-bGE!G=mvFScXY3l4)5-~zY`EOUqeM1w?-4T?b}SO}Jb4PZOi3l4)5-~zY`ELDUD z(I63IgJMt#7J}tqLlv83+cE3~hrtPO0bB)^xkLb>K_bWo#h?-_1k1q&upR6LhrtPO z0bB)^d4vbiAQ5DPVo(Vdg5_XCJ^!|Yz2Go70WN^6!16UB0MQ^3WP@T*2^NCoU<23= z_JYIU1h@dM0!uaFK{QAN*`OFyf`wo?sNcZ9?O-oB3{HRx;3}{@MFb!kB!X;E3@X7w zupDdv+rb`i5F7)iK{vP#tn-NjM1gpa2Bv^gFmFEkuf?z&tOr{`E7%V@!3UrVTm|~m zd^-gkAP%H}Tu=fkK@C^})`C|+3wR400VlwD@G%ezga`)VAZ7vjPr{H53c&(U4i_J~#s|gBu|5-ZVUy9BNQ z%QHfRfJop1sUQzb2UTDpSPEVOTfi>R0p0~C!37{Qas^fy;@Ck1hy}?Y2NZ(}@C;}G z^=tUI8SDi6z+rG4oCQ7LCa~4efdD5+1eu@!xWRl-2UdZNU_00Y4uWIgH0TD`f%Q4+ z0*C_fAniHyKLtZ6mfG%(q=nLtNfdj;W6p#x_KqaUFOTb$23TOdufg|7qI1fHvi2lX% z^v56^#DFA_4GKXySO6A-)nF5727AFF@IE*LE`u8&u$Jx^M1us70rEi^s0NEbBiI18 zfwo%GKY-yVI0Y_&YrygXT``CRE|3cHz;sXr7J{YVC9nnT0v+I8a1vYqSAe>RZWu&> zSda{IKryHQ&rIcC16Tt#gPmX>I1G-1v!Dmu1U6JP95_KD$OHwz4d#P7u2W zDsk#J&<}_N@gM^ffO7B*SOQ)GTS415+UNg3i&KVgZ=mxA2f;CL8gzr}4efh(X2C_lktL^h!HH%W;iscG8_}ae)VZ?hk61Lt>Yxo@rZ{b0D#VqFKtce(& z<63C@s5b5YjEI}^gd)noe6Sd-0k42vU_UqtPJ_$f<`eCg-_r&w^#|OF=$?5eDtp~> z;Fo%zZT%d7{llH+`EdN+_yT|Z!(gueOyYNW_#b`VdRIZaXV%|Y@}r;eaOd-XCUZ&u zAdcd@pAEaqVQH`UYG$@?IIf+w#9eq^5m$kwRuQ2f8YF^jPz)-;La-ccsBPc=p*CNM zTe1knfvuno90c!!v*2UE2X|sHhy?LpZ_oIxHh*AT+*U=Tf+?U3%m<6X8t@9(1@?oZ z;Plq^)7@I67I$<97H}Ed1i{UUhyZaQ6-)tTU_MyfY{d0waf4%jpoj#J0y06~58CJV zXsJrvbu59qs7D|MB!gTq9n1rZz$&l_?A&F1@F(r`;D*-~u>~9eXMkvJfA?dpSdE+i z1}TCy;1#e7><34|X>b|b1i^dA@t*c6f6+FnacyrREWk>zU`1AZ4Ai#}7KjA#AOjSD z^0(SUuW1EJ+|dqV1ed{05d01?f;f;0rhqaqA1r>SeZ!~PDmCsBzwC1z1pburf*6nt za=~;k4=e(!z^0$JPr0F8P#(DcGXfkT0Ehv}AQwyr^S~mo3Ty&9k0{3PzNX#ZzV@be zOpp8E7mBz9u7kj%L;+$zGROtf!91`CtUB7hM$_ln<4&KWRNy8EK2NDY97qLIKpB`1 z7K1hC+oMDDON+J0%It}3Aii;4YlRm4tLMI&ef9n;&@QThg@{zkek{&wruEoX)< zpj-Ly4Y&%v4zGu=!Y%M$;Uh3V zZ-hHw{)|6ArVna&j@D~J>W}+r;xxDh&V$P!*rJI;@DXqn493neK9L5B0mt~na^NQ; z<1fV|u{T%~Tfug)6YK(QK>pR(`8pO}J&;q-{CORjnu+lHNH|;*OW{Hgg4qf3feui3-W8}O{HD)Rc-S#A-f*nRP_@Nkc)=;y%fQ&c_Q{%)ooZ5`2&uM3IWfBlT5J9J~}Xnpj6 zyk(|q{xZFNWR{+#XatduW^2{GezfKS@3YB@AGeeWMLwNaFJqQ!bP)YW5Gj*+K^5U3 zp;nbPk^dr%a0zV$c7tPJAGn5F$Tw+tm{$WG`+2x=Ievk@0{?Ix$idvXQWXcDS4G`a zRdg-l+1J&2;hv$2B+yx=ijpT(!2u-Ef~Ue|L;(8#wagmU!JR`>Fr2=u(F|0w;5{-b=`1}*8Q=C zMdfGe!Ut=NF1)xO1}!dKd>qP`ORFvfHQ6I)>KQ{&WB-F`>(R%x?H zUH5$5*k7netC^9;g+e_>ZH_hu7s1_5Beh76P)o-eWs=ikjKxLxyW%po^W3i|Q59#6 zrfK?6qq|7As>dHRuF7zGQjExA{54K6a*GM4XBzV)*JT>3iuFh}Jj>W6?af)nQEBhU zHa?cTd7=?Ijqsh5jEre|wBL<B_y-)reWSnH=6Yo_Uu^>qcBs6*5l!S)sUa&4Kq zRH?EJ4Ewg_HM4ur#Slm(q{zGOMPn*p~~S(qwypC%lD-+RpU*w z263!G9Bb%k*UWDIMN_a4 zO@rY`I9eC$<4{dJcDO0N{n`cnON#NOF5PXc>(YnTzr2K^(*|DN3GagU!v|qx{4z3r z`F;2VOiC|b(!~a%-$3*)libTBw}E6fkj#ceI2q1`r@&<}BHVxoHz2|d%i&ep!SWH=Q$s=DeqFZf9>_!xX#SM&3P znxC($kJkwG@kMY9?9$c69}9KyRd_SJMOUB57U~mIboI%P>xKFx58ODoad5AJ*XwHa zGeWHZ)gSbyJT}H(l4&ErCMa5(XE* zW$+RB16|$f7V6gdy87BSp}y9ltJ`?KtwdM1*E@x}JrTonxJp-dTo&q%8@k$N6>3{3 zOh(!o;FItLU40`>sBe(bH{ONc*VR3ga8DAv5XRpRGllv?B=AE%JNe;Sm~cNlt*bxB z|If+DdnbhY9`^Ui!28p6wf>h8Lj7fouKw~8{IRb7x<#nJeoI#`bPM&uHC??}DAbE? zUA?+bs8tU%{fJA&gr@~)+)5IA@E{&wXVhX2bt<~X<5L!NY}3`1i9%hO0>1=rgpt6?{pkD!x?orjYI#iy6%IouVwOJQx zGZD0*inb`29JZ~2sS9ma&~-7ort-aU2Br?|$wk)%=(ZHyqMDzRk)K~iw{7TlFS;e3 z_aou6F#dntiAs;5N)=UFU|Pq;T2y*esP$KmqtkeFnv6~p&}j-fy@?Jj=yCyEi!Lqb zG7!EF-$bWZ(CIaFdJLTsesn83-Gfdqq0`H{=A4g8pFx#QR2d7u0&mr|`|YR{)x~W< zrJGQxRn%(_*f8utw+GNI0bDM0y9nJbMz>U^qzmXa8{Oui+c`K)U~okc5}b5*ESlz0vjoI`D&lLzM$4ppDcgg4Os&u+qiuFj&X zbLi+CIyxJSeK33k?$p)uu|hrX($#Ocg!+vHcs)#=sJj6R7*W>I9M9|*>Y0P|2Un;Q zxNjkzEg>+?dkf8b3mw%Kn%~wc>I8MRC2(XK~bLihX7 z{b6*!5#4V=_wS?oGw8k;-It?tbUii#UJkFPIbTEf)TzXBRJ#Dx9!0gsY5xyV=^mo; zC6j^VNOW6=ZkM3baCAy*a9d$S_+2L=MFm^dAi@p0`YJkq)rKfL5#@0tn1lq8!1kp` zkk-?Ty%~EO+$MQDybFn;k~czOB>Ki;+W($FM2Cp?oPbXuLV*aaa4n3;_mc2l5@v9r zcG66LeHoE{j3`mn#Ux$5gsLuG*VXI!LcLx>YidBEjYx7elBDDg7ZOZ@-+~eO$azST z))84Nw8;7fL>Y-F5&dYI;bo#=YY^oWL|LqBU!wMZX#>rP)^b0s zbm;<1fhPP60t6sm082cy6A7@?)d!6)HU=(7`j9_M)!&uQ!F zdAJwA^c5MZQCFpZ)vuKa)1LN@D*Z#H-i|p$7x!$1x9cK=flSB}T?~m7Vn{SR1!m|s zdLQGL``Y01aF;G37#Bq_E{e#6b96C+0*s&lBd)^N@yEF6zA21%MkXx74F9pKMa4OsguZBtZOC%hd z!E7uWehJ39IF1P8gV}u;441;Z z0=^t8#Fv?FeYqB{(?tR`IKd9%KLP&mg_*fTTp@d(dgkM<>uYx~-PwOI) z%9TjvN<0f+fSchKT|9^=A4HT7QU@NS4m?QZdXUPM6vxg|ye=NH3h|H)u7u~oH<{w7 zx=3CHuYpgo?vhL;`)ZC5U(JJ0!l&R3@FrcP>}6%*Ettxfg1_H9EThi~d4g9tK+ zU;-tcK#3<%(g~E5AD0uE;cyC^ri+P#g_szsi=22NauRisYiC0)gy-2j&*gbI&mBC+ ze-8e0hx0sw=lMJ@d~B%Pdk0^|@NHwq6y!~vWCNTa0C1byj2(3WH_4)XYYh}5x<-GD`@{Yh%yIJ z=2XJ-;LY$BT})zXIEks@Br-6G3``>7NhCb!UHB*&T1bW#!6ckZ!jA|c9?{_pm^$=G z8@yK+dD!!?=MhgH@#K}lZuk&0)vh+^vf#XF0QSK^Kprqes!v6iPIO z5=~hQFTtIXJW5F(O@%YyweWiQ2;2!@f-kcOfy(kxSw0fZN5c7w;KgtY%)~YSDEvO{ zf9iT6rf!5g;bXceNM`dc6-E^WsG_)7h~nwGn8x#IJfD6;h#5i`GsxHsGB$&f&7fp6 z5bX>^JL4^QKimUf(M4$>%VoiE5}X1PUn%jGHo)~uF%YnnfThRblQ7NX36*7mNH`j% z1W!RBD|0T>C+LV~l%*eo(OtDE*es|Ujkc4&nzDr~SF4u>6ZEbM|) z;50Z7&WB53H{muD(H88@*jwOza0g6XsGu%XoP-d2k6_3Rl6^a4lR1H^Qsojqql;8E%31!5#1sxD!4J zpMtyKZulB}Ll<+bLd>zz{^x{Y2*<$*$HGZ)3Y-Jy!6k4hTm@IdwQwEW2(N}W!kgh{ zxCPz^cfd#BPWU8z3hsit;cM^>T~t|FBev20tHLmZ>z7yDaO)@n847 zD;U5QlLD$8iFuGMD)*;6g6ua+Yv4*K#wrvX=F1;%*+`A-1rM zr+Atdc{zr~e(#3Gy=@GzWMmMBaRkS40;e*U`7GcayI6#0-S8o)su%HbTtarBm4T?UU&4g%qK?mvIGG(ifGxH*gax zSxp~OcVE5VdG~G`dmT8)!)#$2yV%Y1yck2V520coLdBWv$1Dz}&xm555yj&HcD)ia}C#VGqbP zNl&Yedb2+VatMcUG{-WBlR3lqUoy)^fdhqH#3C+d30H9qH*zzpSi=T3au1t%h)3AU zcAnyCUf`t|eiTFaQBU?|e`a$CM;iY>8f{~O138?=8O&z^7jO}maycuwitD+N+gQbV zHgFgB@Bk0-I9qvwr+AJRVvt-|8rjGAU)tBkAZBwoM{*n|a0;g}kNKR(1uW)Lma>9t zxt?3NjkT=jPVVA99^g?PX9rKP?2L_bHZF(oe?tuaw-@_x00(g>hjR?aaT2F+Ci6I# z^SGGBT)|SV=2~vz7FM&CJGhg3xzG6jzlUucb)bzM?B*F>=_x z*n^qu$1D!!2#(@-PUKYPayI91J{NKcm$95HjsJVr+1S9XtYjUxvx&R8p9gu2E$n0$ z&+Y zOSzmCT*dX=$Zf1*JsY@-dw76{c$}>~!BafP3o%?>5*>aLZS-MZ4q`Tkb0o)c0;g~q z^O(bPoYId)X-YcZ{_TvB!;V_Qj zI8NqND)_w$e(!uPYtxtZ0hWh0wpbY4am?Q7F}wQ1=RD}tzbMkNsNv^~QhsP8+)%*vA7r%H!VngWC3&<3sr6M9yR$S92|QaHn-hnqZ42*s}QQlP0WW zwekN@zYrc8KyCj}b_~DLiGHOM{Yt{WlJK^<7FExS;n$l&`1O_;Dzhv@9vs8NLiw;z zKAg=VF;vO8O2$>q)MSs$_J^S6c)iN&H8Ip|^}t4D43Dk|;nC66EW0{wM2P5U0CPBx=Xxb_Fae{7vje?)#I9~eyA1S!+ChX`WzVat`xZ5W`Ek{x_|eETUnyPm}Izh+)6<_Dk>85h1)fisz00S7rQL5%{eL z9NA|r_JJ5)(|KOgd5%ixsDxh64B_>DF}!g)gg4H{@TRtXQ`@%owopGahPMWX@YYZk zb7>51ORp|*kKyg*A-r7@L%W){t9knY9*W@)j{m{&jGf8vZ;av0Mo$K8j^XUGt83_EIM*G*xic}GZx7*oXH14J3dzu-7~UHh!h55s zpzl=~|L@h?Xo#U(ukG$bZPu;Ly1fr{dmngD!MYW!Tc7CGC%QFJwO3|2$86{2IB&A^<~VPz^9;w2jC5X=^J<(| z;JiZTO$!#g&v2qnpaj{;!l;vE>dN%M% zNYXSW=@KsE0UnA;h5}_=Es&Z;Z#2<)A93DCXN2UVvtrV7Lr8jVipj?sL-MhvnDnm= zN&oto{Bvta{<%FS115xIKu$~s&Mgbczw-Jt7CFwnVQ_FCO7uyK%e`weC}(*VO6a0Ry)L7?XZ}9EMG^a=h)s0gl zxgwrBu*^oAjgFX1SEK1_G-FsuW{il*H>QT<8@a4u9Z&OYOlGbM$;>rWMY_4tok@MCY>v+Jt%WjJEQ1OetdhZD861^?j7%IP z-&rYx)iSs!gUb^1#&MVTjk`3-U7ExjpU)r}%#=Z%gf-b5O*W^6ZPG85eueZ^us{XB zEdt*bfp5<={=e;lZx=c+pT%5CA^f%wetSJPQbymF(YMw3+l}1IeLTWr?BEHW<#`nd zDiH1G*q>})1m=ps9j8?2G@W;c^9rXK|JJ!Bg(6TW0)^VPP}>$(vz9_sC_;rYD3n3r zm5|(-#^laH%%)Lsr%`cdJ`1QR?$i`_Zsca};7%&&oeFyA8J?4l>k3`>owD^pyHO|& zkGl+yyY&9M^!~f_iM#ZPg}sF~GbY~~5R&f=qE7lfo%DMO_B{n#q!%w5$VDuoCR?P* zzTY<_-|x=_T*O`66O+ZgLbA9Ir*N9_zgUeIt8sBxNQ%3?u+RPhUgDLQ{6Jg(K!kp< zja3xN9|&cU1d1e3w1wNKW<_dt_oR^AJ%yXNh5LC>`XW{=V#Oj=EKr--_v0H-=kC9qf^{-k(Xn#yk|(3_ok397jnPj z6Tjn=<>NSkQ<=+r7H}aKb2&@6nrpe4Tcz6~-L{zgSQGzP6R&Xn3fHe#$+Fcpbe0u5 z%Zh5&vXM>H6e~2vieqfy37+D4UX004Vn}|{ll?e=LpY3MIL>)XowqzDCBs5eG9o4q zrq42$@uM>FqcXX7EXT8z?J+6U=B3)aR1Hhju(X|> zI?-?mjbte+xSM;aPn78s<%2>}o=q8+%dfnW)iJp*+xWk4hz%jRPe>{zhooXEH*#}K z?%x`c`z!6wvOk*&SfPOT*EznOS3tNWVr=bG~8mv}`JtrPNfLcUJhtkjcqOn#v+{6b&& z#W0Sb^MB#|U##N>3hgh1_7|skIwtG;hGczzPU8%&<$7we^_pz`9yY6RvkLDw{x^&X z$%b(;*&uWqgl>ZbH%M@U1UE?Vzea`Rzs69c{!64b>Z}`e)=lLh*|gGrxBW9Q`F}k^ z^8b2qCiCdL|9AB~ZN5pHKR8%l7)t3pD4hp2(SwJK|IIqtW}R&FVIE~CyJGT71^cCf z{c-^pQJeizoBdL!+oIEL>BGL%ySM1wTb6MJS8_F-zs31mc5zQk9_ksAhkCP!OW2=f z18oTXLqh+M55U^a)uM z)v#I(tDRTvy#F2>lK&nblbYTksmY{>)ri=m_8+zX=tgd)^dFV}qpo|@b&sAk{vSQ> zE?01uD>9S)DC1fg*UGq7#!z>P_<4;^Y zemNxDLrk_S*mecmKFIjruI;vu;3!UD4s$t^1uW!Z7PExqT+8*`%1YL=K?bK~bT%eW zP72ABQ&_=OtYQtDxu2cvib+FR8j^+{4hZd&LffEb4Qke)%^S3N!v$W7$x{PE@>CWl zauVlrAy;!P8`(r}P)~V-+M&QZ6!>YK_-UQ^X_0zbq@EV3r$y@N_1tLuKV4~~+JOc( zQmCF5s;7_e7&~}^XL&v*jUgnBk(unrY!2~yq1WfzpK3ohCeQ2+$uoOnvQrc6)C4;> zaZ5~|b=|YBYf_=6EaSh)g-tGOs$m_4ut^A?TON|^E|8vz6sEx_6Ptsz+2;QyfyC04#}P& z)TVp1>7L_kjmZnz`~_{kcYH|pPK?RE;UU>Kk_~L6i0u=xeJb!jD)2wOnaM%S<_M1B z1m-Z8Gg)B#|4*Tf#SRp+gymez_1wxz3Af3hBPRRjg=GJN-XTQWmA0#SfQMr8a?g;w z+?#6kvP!*tIV1-{Ob+yBCI>N_BRGl^n4|p<>fe z8J&&ED+@#N%3`*&GbRT!LvpYmx3MZF$A*RE*a-W(?C+rwbb>!o){x<~9Eu&>DucWVE`-i3ZQFeJar;xx{nq4B$g+{#KeaW{|h zcubD;3dxZ^9M6d~q>dO;M`UzFMn{gZg=cs!Ca(<*$!o(on{#L+yk;c4R_p!$wR#(E z4s^uis19~?0T;1|tGI^VJdS$vIC_@nWAggwki0(DzBWIq&0jYnUN<6M*95O?g4dn@ zy7OP($z4?A*VXv-(>$wBOx7p77aS}1{(o#`OnyHoB)`vQE@yHXSFn!TWAdiX@@8+2 z;{?am`1fl3rW(Jg#=l=|znE35iOKOxAvt~}CU58?Z|Ea$D9{@U^oBn1hCcB|3)^DS z;(4c}WrU46oJ*l;5t^3W+{=SJETc>r^`rCObpD$SY@`~!sYa~|)~aBw3e>7Vt^0W} zCU3=%yw#J_IDTn{z0`cVzg^W^SdBz9XdXh{QW0(K#X{oujyf%eapR zV)CwnzpLP#I&G&;+gVQYze(p&8^@h6)Ct4wPq9CZGU${+r-VBt{H_|mtH$qEvz8q^ z!LvLclM^8%Cn7W1kJ%i;Q5?e@PUcMJv5@9}lM}@@ma?2Hxt<#(d_=;>V)92d`lA~C z(dhW2(ecM!+`|(*6_YNJ=@OZ)joi#DAvu}GQrY1b82~TR8lbYt_<&c~TF*&7A zl%3KkPAztzn0wgF4xWff_uP_DdQ^UWh;U%HGB$Su7v5KASipiCn zkX)G@(+rQKWR!9PJ^hnW$!hNB!I*wDFQgyMX9>$$#TvHKb5I|>9MYa4re!?`+Q^D& z&nff(RnLW7Opg`y+`wJjLl4jO^zhur`iAsl9vAx9WKQJ*dVuOs88%SeEuWWy7Op|Kzcwf9ey{8#6o{QSN-u_0v*hdPoKj$>7(cLi+15%x6JNYdjWIB(&&eX@$Xxi_W_IU#MBLeEPzj9@=Xr(rb5I#0!) zEK~C*FWI=_1)*t}V_%4$6yk=B_BT`8Hq^%Sg+U>GAv>mf=Y@3df|$NIHl#03Vj<_p zw0Uz#o3~O0n&-y!6_I+S(z9-wvP)BT=^I`8#>tA1o?ON4AuT((Bc`XEaB5RbyOp$C z4d0s^()YCKdlM;x_q3fkyYzh-zOT(sj|=JP37kYVJgqHHdqnL6P4t0+o>%bm3jU$U zeb|o*^r47euz$h+`Ey>s;QR}rEd4-;&k6lGp}({~q?b0v^naD?e--Sq3@*#y@_a6& zf?oFe6vfqcQ!v0{>ls|E^R2U8gotm71tZ{~_f65b=K~z&||17p(uz z2!n)lsE~T(>?2Jf<0HFc#>X2%#>X3DMjwxy_32MfX!h}hW@hh@k(n7Y273ByV9%Iw zttUUPy%;mb^a&YboHxePeq-jujESBCo9L0X98VACcslS)8$-sIHgg<3l=~&ezjQig zOe#AOGA5mh8PoTLjOhn>fgUNH;px8_+4LCMjA1cj+QE=9?KovPO@?0|8#2B=iG`fc zZk~@BxgJN(Rgm08^iW;ydV1(?`aJ0_<{El-ZrWw%hnP|J^@TRPkn6d}T+b)wZst}e zZg8SL@$l4;KAg*0oXryIJk@zu#W$$qa1s{7j?V*jB1<1u~Q z`@rLo#ayb>^2Mc|cg$K6GO||0jBF*%7NVOx-+Yq?DR1&Xoka#2U-hu;SL?W&`#i~6 z=SfcE{Y{g7}B@1s6cNYVFynb z|GuH5?ZwoK+x6o1GZe~?E(;kSRj`5DYM{2dRspZw6f?4l6nL2euT@~7%~G%|&oO2l zWoyj1UXxw#iNNbM&Gic$7wYTNm@&jt#GmF(o_oB>`8OS7nMVePmxhetD|wj5*uk!t zakC3@T#)0r#+(tH&xJaTPB^J=%$PhlWK7mKzPd$ZYN+#mb+5jlGk)FcUthseO*%r8 zdM+}zj@vbDwWh80dTY@BLOgwz1Nly1?riSmKF3cuuJ_KU&eVy! zm2VV>jBl8*&NOkI$^H!^-<9y583 zf?T5@*Lq#kg=-b$S_Qd&nDa-leTa=t8>e|ThP;vx^2+_im4hMNdN_vL2ZV6@pa+*f z5CF3Arh>UNM?k&>2ZH4nosi3zhXy#GZ9WQfX ziwoOapxK9L_93lo*J{(W+6)&|yP%eCQr*@R!?!Mm@U6=+6lj71P4MkH4@_;3VQzK^ zbBECJxsK1x;bbcCTm_yxp9@*UCA1!5ZkYuUg(}j16$eki`=Vor@Uhb1| zzKjcWpHAJUO97l$;Jo+K5Z><*lh2&e=JTJO|I?oN%1#X;b`x=pZd`Jk74|9Hp z^H1c&x`7JI1x8ygFxE1Ga?1o(x}d-Xg%-=`H1Fv&?}@;BBJkdMUW}o; zZwTG}sbJj-)~(NU>oeWEX`pqBWVcAZzd?qZ6Fcen z6OOyF8nzpF+c$G-4DN@9Cq?YZRa_H8!>+Or8f4ILm`7vsslg%n)KDe!#dw$yXSVAk zoqGLby?(0D>x8!pWr5*Ua9-PQ)%KN|NJQ=wk$EzjC!Z;t}MJ?1uqWNxFme=KdHqtKsIMG5m5{2*0eN zCitZ$*fJ}GEwd?dTSRV)bhb$6p@r5(E;jzR%5bX;w-$0f5AaY7znT!juX3m$zfzE2 z?c;$Mwq=H}tsf1~ZHDKzYSvmv87-vj$voy$XZ*F!`0H}&%)f492UVa_1uA>;>XTZP z^KC4o3@T;tumU`+01tPuJBF%W!QXx3P!6YpRVi4Nf>kM4)pqWP;gK|iM|w~s9ubL0 zCUFXlo=1$HM~t3Fny9lsqO&V^uu{~uJ2!oQUC3ZzPX; zBY9Nl9~F8NAHl@O|NmbI)D}|btJV2xb-r4i@3H(49xI?Gc}$bk4GN(yn-yF|>6X<= z`0>$(&seVK#u)1RhEU(%FtY!I{p~XipFG1R8a6`wWFPir0~@)EdyFC(G{~S~4cEo+ z)O;&BMfRz6+&~3_EZQRYhF_;zzrUgRd zT+XA&G>S~)K^~6b85ut#<7WyvpL@B_l28TSslYq+m7V&^PS@{r{mzA4%pJ!6PG{}B z9Ky39hG%m)nQOV8+U{9x_pDGoD^g7(LTDPriah81=bZnX0zRjJ zyA*7fg6&$wBC60X724(fX4laeo-dQ(^D=y1h@Kas=VkP~jGjNo3o+~#!rel+yPgd( zm>vkG2f}Z(?QgX0ZzT8|2?}1=qo#Y*Y>%4l(b@LsY%hcmUWin{7ZmUXP4I#yctJid z$fs=Yun_i+h+*$iF6UnEi{ZuIA-tH$6)fdSuI4@-U@O~sf~R6=9v(vTNII|Cc`qFa z;iY3S?8^>e-w2Zx4m&^SM+L2F2ww<7pkHT`Wl5AaY7hjaX~>dCBSS$zz@Q^MaV;qR8SgbMUK1v)apvf&&G=@B7) zEm}U@lT(>X3BD%5qcS=wqoZrNo(g_o7zsQLWyiS{vD0T1wyHPV9AE=Yct1$T}^`%dn%W?DXf zkk20$a1nQKr+(QXp$-YTa~#|`4jsBfhwk7Ga&QOP|MF)I^aRf492Rmu5Av`z(Ic&i z9?eQtQ-A9;lGQ@;ER^W|p*S92{- z@w6{N)xHGP`VutLm!Le~%KG_MHh?1Xo`|@Q8r(+>?@!@0<}p8p(?dcyJuHSlso{1+MjrIz)UK98{Uc@&p&c?=&q|3l}0xSDG%ftG&R1sPmWvkPi= zLC3wImRu<=3S)6ZWaif*RP0@dC9Fpjcaoo(UmOT4b_K`mH zE$<_~<$c5*>yNl&-D8Y9$US_W>*3yZkII;Qv}Z^@+M8>+p2yf?Nphwo$^GbSWKUls zd%C&b^Oz;dzGr@H43}~_&+}qTdMQ9J1?c4)ey^4E^|6<)kN-3xB>yyu>!~8Wug)O# zR+HX~S-}b%0@QD-t}gvBi>UccKSQHiI-!f&(RZt&Faf(X}$VRz}x4@mePist(DZTDGvw z+Ug0`R_AaV-P*p+dDl5Ft1%>5P4taEtBWQ9vP=S8zunsF9WlvvPd?i{`RsXIz>B#R;5AjX?(^Et8>0FA~ zr$y}3uK%>_hl=b_ksZ30>nX#bm;ESG^BdLt#(G{|L3rbN8yEc+ndrC3B>E{oY=gzy z(cyLq`7Gd8R`PO4 zMueD*P>>O2N;0C-Mm4qR2yObA+>m@`Ce`ROYV;We{EPyQ6p@i4GIBTf#^keV_*pgl z>|z$PgC}A#%6X%lH%jD2iQFg|{;LfCbuy>2mi0Vs2I*hV#$>b%N6T=u8jMzh(Pw$y zvUL}H&IO-y{Bw?f?igDvW0&z58IM`Y&yj@0Ll+hOt^QdL+`z>=n7?Yc&d$V+Jo@e~utT*0lhUn&e4(I;~Bi5wBi5uqG4&Qar>I&P22mu7|JOS4(a`j|`_X*v98IzGwqNeVDY0VZjR zNt$Akh)fcZFAugnekjXE*cfGFDsw3UUlxHcAK@|U;s;qDpUomJ;c}L+kxgu42T$>I zOunMYzM{##vYKn@_*WdCBA+SpnX;DaDSh{|lCrPPw9r1!g8Pl!Y{7j$3+@Lnp9K`k zsY3ZR1^JqSd~GW$sk41eXPcH2l4+A!$!ZJqdt0ENNs;=xNPYc0FIuM`tkaJy)5~u7&$EE#Q~obQw->;%*E16=a5j%-GDWRMQ!1`i;>R@{grReM6+av5p(4px;o? znL{k>AI2qIM(NFz-b{UCroQpbz83uV=W>=9|KHqgW3LteN;pdiXDy<;Chnvq?xZEN zyv5G)7JEzd1VB%U*exP<%SLYI6%PQU9t05jJfY8bn`6qEd6A;}-X)zr56?m6VU=WzR2PaceC z4kuI1Z&&l%U4Ogl=V+2Snxr7#y^n&J{II_@+XK1B`2S(EjTQ%l?uXjyhuUh143@}X zj$S%PFD+1`0yUbe3Fc~oI}V2Aj>9oIxIQEYH*!07P&x;tbEq;ThpJ=py9purT~17n zj0nk*Q5K3!wNNBCCMOP=B0s|8#{Y>{bKyPAh4*46`%!5BD71gv#wv5-67G_4S0}q- zacA;ZXcz&S3)}7EW&h?1k;OR>aS6y z{u)&}Yp3&f#k63JznEFDE~fL+kk0E7)9-eL^t;_LT{JSJi%db?y)LA8Z;0tKvkJ@3 z#k9msQ_1j{md*@mX&wt$7}NW*LVBO$_pb=){iQK|V0%a(*b&p8%?;_#<|%-=x#?yR zr<+@wZfKLs^8x5(t&-AxL*JEr#x2ZBlmMC?y}G z5ejYf4HtaF1s=#rJ&=>mG9@)DOGK86h#GuXLB1;@-?jhU@|Z5(7}CW;`Q!N#E|PGR zaIcvDWM4>sazM?bV_ADzwt}X-$`qhXKIJ`SoGF4GBG_#PX`zrU6teG`iu#_ZsP7%% zp_nc&4(alxGUz3PJ{-;QGOCnOwZ5RQlyt}R-n@|BTOa~UL|~cDH&EwO@Y@ya_Jtyl zD*__8;GzsK$MmkFA-$_rzWUO_GM(moH8QM|uoA8iqI-q*UTu4?lHXez(^dMwDt+J< z3Em>XTQ|#StAr0r_^1SXNKno1(n;^SB0atPdwTZ@O|#;#bX%Z~( z|M(dGA0NX9oOi%^hrJ&h-WHQTcq99RH?kAnKTdf6c)v9y@3+VF;cX#(SkpbdKBQ0U zI}aBa{|^_MW>nKQHElEL-c}jYx7GMRUN^V(0)oZ3gtB7W2a?ZEbs zF|gC@;%c*tYfZ|TYy0}Dm@$1|$e35G4QSWY4!e?}*XLP1#YN(Gi^$uy1DeT0oV^Sd@ZCa!0YP4mI zrhL@vk2=3m-)S^z8rN{0>({z|BUSJj6|9^c(n{BrRl2Zpg#(9pjA~eUR)QlWIG&R^ zQ^F$h=tv2Ul;8wTp-%M7R0-x%gxnHLOYE1}uQAMO`a8bQal>)vfROGSK{`yek|Me~#XC$;iLfg2DW_UjvB`DOs zW@mhMR7~G!26dh6TM^ShK#Z1-p8709$R7BXsl_Y@us%NncAKh(?3iK=^v)r z7eTjX(m%|xuMfSWuf3z9@8}Efl<5rbIPsk+*0?ON#${1Vw`>XNmTfWJz9^*IOJnN) z8BLEbx8g&MPIkofuYE%LSE2oD8|`0Iql=v}y|OB#SJuSzA2lKUN1Z9^i>9bAn~}EK zVEA~>;oO+nkk;TgF9pT!nBaSAY?D> z;2!HE`dS~M4ZEAHG})`5`pTBmmZo?s?K-7^`oKv|bh4NwMv1xgkDAiX8W1wFhH@0g z#fvvMUMB*QGY7-m(# zO~&s{>$!y{fdn9yHxXPzIRGkPR;XWUiKRqLazV5~L&1V76@d7Ug z|2azx|9p%s4`#j;KUX$6gaK1y7~qltF8O9*2;ZE~HC$&B-MyE5_g+4c6T&AZyYzxf zFU8O=D};W7=_XM>H;MY4;W^6Uld|}vbU!KG{-q|Y_2z4Ohj2|M`*WcD2Fq`#8-}x+ zLYTcfCXe|x`j~H{b>l)(H-UM~=R7V@0N?mOF;fPqjCyb+M{^#%e)T_p_@obyPcCN( z_i~>Cs7QYmxyJ3aYusMDW+4|Vzz78x<%Z$xZUylD`7vL2AMtx+M7_=G0;geLjKT9&Psfctd)+^6ezfQKZoN&;)>_Sh%g zXPbRU0!P@v6ACn1fyPQ;vjn!XhIKs1!_v{c`n9l=T_T{#`fIZOy_qSUD=M6-cwaXR zZ}Z#f@pcJzN??ZscAEPax?6O-MTx(n#8b5Glu2}a zisN6?R$rSyz4~it`o}ZgfeTmbtEGxfh-ARkF!oh1hNgM?8V&7t<;CIRmlCg;C@`VL4j{j z;9Kf7O@nnLB5|uo+_qQ~6dV8fC%nO&QWCv1Q!l6AEMiN9PJ!k6c>oJxA9PIRYEG;fk`sZ+Rur7@(lgYU~e)X#>Hao!pOz5jN-zhJ91 z29*!yAMn5Z+^!I}D@4J5#|~OM!nwTTLI`(UQu}R2K$W?GE#?Az(fsl`w`nfKFvrN4 z)8CA4z8T#DHn5S>tC!xBGtJ!QnXwi122p>?$a>1i+Ofoh>@pLu(FANycSAC(Ly}qR zZ(elxn-_*||I<7hldQoZ@e!J2`6is@o3Q_=B(d}~y z!@-SgGFPoRp3odmEN2NtUn{&8~E4Yel6wJ+u8{C|@!HBzQvu8+nw+W!xcS zk-Ns{(KSAgvQ#Kbg?y(-vQIfL$9a<#xKn|IL3uK<`W`fta z?GNkSWihgv^^InIquHBbvp2(+#(Q&nX`+pdPTWi{ymT%m3-^a)p-$MWX3ZxY*Tyfc zb6lG))TRrM@EG-ph5E!oeP*FP^TTa2(lkFg6~a$WTZ^KmC2CqaTLI_j%tO@JP%oRp zY0UHH<_l>kTfjx!&Ary1=%o+pr4Jd(5A}%2Je_4;g^YH{Xs3*3$Y_>THVX7D1u7Ws ze$hyd<#@mUPWb&N^xrwl^NwqRg2^$NyC5WU7fElg^!Bk#P3Eb|ybfx^rM_b<^&MmB zOy+R~OIb~!TsAZ$%Z9U-^;Do`3bd?~T@;CBBC&jrAD+!I*;W;jZ8hAzb-gQ`KpLI!#d9CB1If>no3y=`4>ev9XLw z^q7#=9d+VyicFozJg#7mE7;?P=i@n?$vn>GJPDqY;04!fqQ^ARW2LNM0~?*U!g;0K zz)ftT@3W6Ne6ud`&AMD0t9i}UnxB`@MFk296xo}Z?9YMD zFLwS?=bv%@Igd5#JCEu+wO3r1x_%Fvd7Q26WS9K%-3{^Kk+BcXmtnm=Qm>DA@*wf#K~i60U%~4|uwDckwmDv9f3^L!_BBO= zrl`MU|BA<-{XOO6iQZlq<%KaZ*`a1T)Xab3l2vC`MqcI4U5 zw=bV(}A#D=UrXxJ&g_T}d z?atRGcfPi;o(8VXN`Kw>Ttwm$Ho=>|%FJnqx?sdvZP(@*FS3IIoaLvPVB{<+~tCeF4*h> z3BGtWK_PAy;$|UhE^%I_^ZIcw_c_1P`PE(@;q_6h;3~%zV6Or+OSf6NFP(S(#hC1$ z9FqN0nP>d(&v#;z6L-sSi42!cFE2Et^ma{mU-Zx(HzVY&6uNT{&WPb_^Sja{;#pHNH zNRBtgq@_9}EwyYk{#(4za+JqCp1RWGsjDfpZwhT|c1T)>Pyt&Nu=O}wJ&r2lw`Ba5 zVfvO~`c@0uJasxSByCxo!C91EoAla5s7-|4mfqXad)u&n+ps=bw$2m58*J!wM|Ha2 zcZB5kCwP|UmAFQU>pXxv$OE|9^!giKZxP}aA#TwpTJ(uG?Z0XNO-=NsCTh)5(8=7$ z%{NIKV3%{tZW-O(X=cdQAkktVE0QvtdZpi2R}6tHU**O!oWg0w|4D6g zQWKmMl9NJmYPcD$kuiC%Pe|VDOZ)F#-OuGrD!_XR@ZM%_rR&~nHj8r1EJ_c*fKRjn$OmFK5>1|h^rzz-XqG>=(zwM^vx2MJQ4tFi@ zaHIGR3EZ)kyXoHF9cOqcriH^pS~!-@FLZw45-yXDyI%$Fa^B%y;T`)NcW+HYvXbXao1|vGu7vda{Jz_% z-ycVJLBHP_)5S7cETbO`4CxQDIhpPaE*|f=yR3_gsDO)QxcHRUQ?K`9uGx?uxYPZE zMGm-?UgS=8kvrMNV?$c(zHV^~h4cq9`hkp!)SyTWiU&JBk~27q2YJ}!qZ`z@?dJSM zX1d5s7qRIVgnFV-Pv$0W6^VHwu_&gNjF+W%O8C2b%y8{j!ye}L`o#3^1tGn=D5lHy zn}n3`PekA+5-M5iR{I9?JI=qinHP8^ruWYZ>HTv|<*f?o1M5uXjWLxsQGw1X(0K(B z;prkg!!7z5y%l7pg5rjmjQiC|Hw%?NP9W3Ra{*`ikkAv~0SNO?Sc!7tV0utvb!E z6P2v5g7sIh8U?FUuq*`|tdr_I3wkKnGzFWXV08+%J*M}_@E#fdxK+VA6igpkF-*ZO zDUb@5s$l76cJqva=?nL7F&py0K_xq^WGj@c)c71}e2$4}xe%8NxxX%$&Y5Jt)_%PN z>(#W;1ayvR+{q>_WxQO*%VoHHxQz2*%H!6ws{h;Fr?M<9bf0T&i2S@$Im)0l-16wRIo|~Ym`x=Vb`ds z8qb^eS!CX)$m=>~RBw7;cyj|cv7ILlhXC! zmHO~XTl1Jt5pEUXRuySgkyeo}YZZE*YN=1P)QZ^DirDn6ah%Ah^nUP`3*K@;+ca~9 zGg!nWQ~;l9>D$hKdjfT?w~HtOZ(lKYsB^XtpbE6BK>J#*X9IV#+4yfiV4^6PD2g1$ zksMD2=n$d~qoLyr&&9N5T}WFr$vZ~LJDI%1D<&mOQjBUco`w9jt8LvwTldmej_51L zVp_2&q!o2B{dreNf37KBJ7uQqw23g^|I^od+fbv|)#&v#Tt}gK{jiLcw4;%^oGC*! zd`AsCyrFayQUN;Dv||gaV%jO4&ZX3po!K#ccTh;*z3Nno+BUnF`6g3+W!WV*DqJXm>m}gkQpODu z7`)eo2b?(A>%(XQDSL<4`+40w&<(RW$9X-S*PHXXFlKz}SjhNP8_&`_(v2Pxz0v-S zo=UyZ1l3LEk#2JRP3DnqGP#j4#EjOE9!@ZKccTk#GIw{Axx3GrVEXLUwzWUX{wR}` zqc+8if0OXPIX-r+(cy8{vF+@1+{D$`)V@fKoy1C3Q^sRYQ_aVk==%J$kn#B$%wzsc z8^djkS+-w1w&Ju1+tFVTPMZGu%}A<|w~@ z-6i{GE@wVi`F4D$%#GN-Q_N<$z?;fVxPW5g()i0-8 zi#gRHJ`E%zw}S_=fD`=Q>XXT>Ae=V#n3%AgzoWF@NNY^tzf4W?DQV` zVe}_A*8b$i+L>Alx$C)$do1LZ?w|XZvO2rU3hp&lZuhlv+g;fY?0;bY+$AfwuUN4? z)Qaull<{9=eEwVr=P$(Yq1(hCx=s9H0ey4-#LSReAKN^zHUw!tnY`;5s2V=Nza0vGerMtBExl4QB6i#D43%H0yEMYm< zaRVz^O_94#g!n#@yiX+WQ=$7*s6xRj6ucsfSN}?Wg>F%yTU6)^75YNO zY|fz!D`Z$v$_j4aCf2ZyLRle{6^D70`cQ>FRB?fqVz^(3@7Hwq%jkaj+&`LQsbcr5 z*!^=<{QkK%iX2$N3a;WNZebm_Q(NAzE$=_dVM(|LDv99LnJw&xxGDS)9iO zT*eh#!*$%oD(>J;?&m?ax~uyi?KaNvTnwwy5LWeIe-7kuj^sp6;w;YQ0xseTmU108 zu!=R@$z43i!)#|K&+$SG5A+D(fnF>dXd}zUNRH+tPT_3M;UX5Xloi~-O{`%ZcX1C7 z^C&yn#S6R?!|GlktnR}s4(4c%|!@B z@k$Io?GwUJ`*JXcaxBMl8fS1W=Wz*_aTV7X|3BSgW19opxr5Ez&*N-mH_z}&2y4<9 z*7Rk64&`u;=S0rnEY9NsF5?QW;W}<(6?bqa_w%6fzoykjJJ0Z33_nXl_*oD3=RgkU zNKWJ=&f;t?;3BSIDc5lWt60OG+{J@D%yxG2952MMwnqqS%X--uXd{awIhvC=g|j(_ zi&(@`R&WD1v4(Zr#XUUCqwHiCFYr|!@B@k$Kq`h>8qF9&ld$8tQUaR%pd9+z+#R~i57*4WtMz&38@ z4mNW?kF%BCJi{v?{34Cv7k$~ELphw|Igv9si}SdE%eaDTxQ^Rc#U0$q{l@<<4%%pC zJJ0Z34C~Vn*7sn44&-o-_qqNLK4jq$D|YfOev0?;Px)Cs#7FozzshI$Z9c~z z@F#qQZ}68&7 z;qdLel2`G1*Z<-Bj6*LPe-6f>1xO2!c88O0@hhHQzvAihtDV@db~2;HE>G&rCXv|H zz>QJj#~!%-*aNp8r?`?maQm?bZjYZe*7-g!8p{mEG_yI!er5J6j}p5NhQ#he?EjLJ z*!{Y}&y@y0S8)lKvL}6eJn7rx9&OJDQE1u_Leoax!ds)Tf4RHYESB(o3GaWFpJSuL z9vy_kKUKqL`4AsrEpk|k9G>O5D0FJ!PA&Ym$6fz_`)U-9>+!%$fyb!wbxsL03oF}62cV!{`T{(~PSQL)tgm5&Mb>UH6 zcvShL${$U0e-wV!tR_EGlb=;{4L{EZ*=_XC+(sK54F*R;_njehuiyeMY? z-w%fH_e1;3}z2Dj1udDiX z)k%R*3VhN@b<#<7a+JrSaB8^;1+v(8#Z$g3o;twotgBDy>NjH(31o7)>;KIP3o?9D zhHonH=B)xVJZolwVlxYra4WZQ7k9HJAJF7)sli(+@RpjsrKWG4;?t~U-qJFsC3sqb zr=R9$*tv1qx$(=$!~!wjntS1w68Pm2D~_6Bz=lB^2JJX#$3X`kbl|}Ow((b5;#XSY zS2bMABRm>~GirQBjn6c2BMonm-|@F|544~j=gS@$?N$(Zs(3D{L^Fz|1=ea;err`3;7to6oua? z{~P6h)5Zt*EWaOxcbaARjtt+~$-DRle;I|}t_tC|Yq*Z!nO*p0re<$GY1pHl!E7<{m=YZ#Q$vIteu9Lf1Q=ik+zppZr zKs9TL-)o8ATmO6O$JdxhU@fchxEhZ?%g^yaKE#eYK5=;9Ptje?4JH_9jKT+Y{lKmt zZZ@$%8TWCT<@(_aFPcywm{`E}3EL+sIK>^@$@9Emf&q2^S9Sl_F7A%PN0A8yV$R`Q zuIC0G;$fZe@d^_PtTeHJ&$^F&)_tt^KGu65%lTtDe>}=#CK%8*liFsoj_dh3_MtpE z#^WX$$THDDHVg0v0si14>kmG%{xHrHQMjNDFKELHjoicsxLqe)aGG3jnq15@^T2X` ziubYg7pME4;U5q25$@wOPw*tq@q836 z`7poq5bx%_K7=nRcuB#_w})`~4$k9zuHY1Fk;_`-vT~P|n=UXhK_RQD8D_(@15Z2f zzZIF7pqM+jljnIM3ZE?VnCo^r|6+ViY6o@cFPnf)J`{fEr{V=q6$ z`}qhT<(K%l=UauIZxwmIrDZi_57>O^RIe#a{ON>$7fEq&zx+Z9pHA)!Kyt6tKohg@I0*8 z^RN6YRdNUa`@Eohb zf*LHS!Gb^w0xc}?Vif+XF@*nW;z1sY!i_B<+}O%{`3dggZhoCl@dQss;fwqbz9``B zypvV*3l;q$?L+vB{wOSN3}JB-r?@f-UuK%&U^z?VONo5Bi+6J$r=xIFpqt%MB5^$= z5;vkmh9UI~L+Tk%@KfB*9X!OtJk2v^LU22pbUT_fPMkDOoOJyslI~}d3MLhd4Ejd~ z{g+t3#QG%@JQ*dHy8m73{&%VS;-&73Z_5ga+p^gJ^KAy0Z=2%jC=nZik8`<_t9X*9 zqQqC+-hRdH?N?g3HA*-q6K0T2G%wq1q09_dbqL9ce z=0P5c5?{>;iLd5zHP>)I53v2eYX7gffBxDBQ6jr3B(ht0h=-%Z*Kv>$mwT9Ne zK4oD#O03W%D>TUp2U_7kcL{Kp0Cx#+mjHJucb9TG63vlljwa2~q<6cszuTSt-J1Mv zO@6m>cPsbbmwJVES(M1tHMzPb_bJ}Tt=twRRy`LItDg62&8h_pi&5em0)0cEZ}hM( z$jb|fynL?ZI-cQKGa01JWKhXkVzri7ZU5EwU!#TAXrVQo+{Lf5Zy0Ml4PN7E@I8?U z4PsW&dsOtE-Q2v_g4Z4H@w&r313YM^gJ7nEh#%oCtYE%!`A7IDr@5bpdBk@mE%i+; z_09EsA2)C#tKm1F=W(9kD}2>=suJI+O1aCcHEX*qOj?ok*RqrCTTZru z*bE4nEb{`H7xZzO^>u;1{&rP(Q-O6VuuhAv)1vD}cr;3UM+<#N3w@`N zn|Riju{XD=6yci|c3%Fju^=hzQ1=cTy#JwR( z+$+I*C3vs(_ga7N6i-KqqQa0UD&iJyWi3~v<^KHEt95@a(0w5!?u$H`FY{!+oDXn& zlqkM0B#Jk%0~b4RaXWXgCN0*a_p8zUYIMIE-LFRXPw-@v*pM3%8}iukHaOmfUA&un zxsRuLCQ3ZeEYJf2J)q_fsQE^h%|@5aMt!wWU;TxGf1zNhuc@WJrk1KfsT%x`YBL+u z@P7Vjl-T6&P5$0=n$Peje1)~lgIean4ZM+6;6W95@FhO(`hRfJ!jzc`^37CGz&m*t zcXAgG@i5Qxf|(1JnYrM0)-~VLHQ(#tPPYAfwm(#C27?l||3mhF$nhU?{O?zp$e^0L zxyJ+sxh62kbN!dqSg5r^P0Q5uVTn8}k%u+a!hS)Pj$kLZF&bipHioHm0&wiyg^ zxP@E!5Fasvfmd?My^>R&$N5~x^*qiKtYyo!><{*a#1Ecu{r{lJLJJS`h#3uJwk41C z{T6+{rH6ZYhG)%aP-;el&0Nhje3Xyz>wJo*c-qVcPPz&wU4<^H&_xwmszOUu=;8`p zT%n69n)T6-1pJYJKibHfxRu*@gh$PEkZGoa<=n_ke1O~8_N}+JU*Jn-JW%dY<^0Si z@u;SLw3~a(cwl|X`jj{+aZ&as`&v7Jx5{&zlO zVa$qg7HFqHk3a1xj`fcpLp_^jV2;64Fw zXu%s=@WvT_n;rj#+*=42w}gy~61%i6 zWL#R$61pUzOTFC3lRU+0dRa{`kMl&7F}*otOlzqZ?+h6)uJq&6Tt7a|XD=cA`>`nF z%1a^RivLx4#=jr8LWWlctr&KIlmk?9KFj#BK$pE7u&g2^m!+cQ9exvfhaaPEJRXu8 zUyYKR`a^P)cLA1F+P;_T*jo~pTkO{wW%w4EF={N|JV42{hUUL*sQ%k3{O&@?cz3bc zSiYAAzL{2_R{??64)L&pD-~SjSE+aURq6`sjs34R_Wvz2L4WHGF5+UpVl~#EHy6>p?I2kVZcSFo+=xqj|(XqZo^mdlcBCz#awmD6mI?xb=_J7m)$nU=1@ z^%+Y}y?HfSvMpnYD7|@y%Whk8@8Ra#mb4zeEnc$c@S5b3RPzZ3KjGjfBy~cu6B0a8 zh$0lD1f|%FGL)kNDO92g)u=%&>LAe*5*kmm_`p6HC5lP9_? zbfX8o=tCO)7{DNgFpLq5VhrP$z$B(HjTy{h4)a*RVw`+6AVQ2xEJqfyOZ}6BT;w4i z1t>%jicx}FZM58k7PO)b2hffVbfOF0=s_>~kVZcSFo+=x zV+5lZ!#E~%U=^n0rQfBMaHcK`!!;j{+2; z2*oHtDK?`F<)}akl@RfjYSf?>b*M)J8qtInw4zO4zH-1qJ37#bE_9;@(tV{5Y4l?N zgBZdvMlgyojAH_mn8Gw>FpD|NV*!hCvM(S)-0YuBEJqfyk%L_1As+=OL=lQnf>LZo z8Ol+C6e>}LYSf?>b*M)J8qtInw4%AqKL^l`4s@am-RMCt`jAFH1~7;r3}XbN7{fRw zFo`KlV+OOB!#ozS=nM~t;^g6d@sh0Ow7t{zPTMO{u+JOzdBZ+$*yj!VykVb{qMeMLZo8Or^K z;=>9HDO92g)u=%&>QIjcG@=EqXu|=tqXV7jMh|+?hcx;zfI$pl7$X?P7{>MghZ7bi zF^w6_Vh;0I(4+woVq{`DvXG73IC;_fi`HMX{-X64t-qLqTif!Gj{+2;C{9lGpcj2e z>;I{K3_zAsvYZ;m2u3j$C+AAB8D%I(1yZO)6{=B#TGYkK&)d;~PIRFgf_^UO=YoEo zhM1p=`FXRTpU+|r^H{)QoV->7fv*XCP2g(+UlaJ6z}E!6Rt15t34Bf9>&jeL=DIT1 zmAS6WfHmds3lo@(lV3EV2`y+v8xEiy9q2?Cy3rFS7ZCv3qXxC8Lp>VMh^9Eo8^R>yk|)i)BpzKs8V7nfl~FTgX5+gKPAaj z1KJ@@N^+^@CjUraTPCtBPhtW+=td_x(1l)QBJPW$?PYPaL)jfuP=3cu96hiZ);~~= z0u-VcB`88EDv&}Ys?0R-K(&P$2bjjVT_xMsz_U4~$?CLm0*wMv+Dz2GEaL z%wqwIn2V#0%aM&NEU57_y-pO>oK9E!yV5Pj+I~_Bsq( zUx60%TOZ)SPj+F>_IiximO?8e_hbaeeX<)`<@;Lk`x9uM@y|jWmBq+LK8jI>N?p=} zUTE4KX$+u0j`Eeu*FyQq=4-ip<@2>pzJ2nmQHy#sq6KYeM<==+gLic4{~i9QP@tkU zj<#kwxk}^cQ5kL(cv~)tp$oQY{%yKrn?T!cZBuUBv=cF9-(igU`v5xN;M*L0TQ>yV zc5B->CNPO9jM=9vel*(JWjbJ8@cE%_`IqD(c&LP= NDAC) { - sprintf(mess, "Could not set DAC %d. Invalid index.\n", ind); + sprintf(mess, "Could not set DAC. Invalid index %d\n", ind); LOG(logERROR, (mess)); return FAIL; } - // validate mV - if (mV) { - if (val == LTC2620_GetPowerDownValue()) { - sprintf(mess, - "Could not set DAC %d. Cannot use power down value and use " - "'mV'\n", - ind); - LOG(logERROR, (mess)); - return FAIL; - } - // power regulators are converted to dacs at setPower with diff conv. - if (ind >= NDAC_ONLY) { - sprintf( - mess, - "Could not set DAC %d. Cannot convert to dac units for power " - "regulator at this stage. Should have been earlier.\n", - ind); - LOG(logERROR, (mess)); - return FAIL; - } - } + return OK; +} + +int validateDACValue(enum DACINDEX ind, int dacval, char *mess) { // validate min value - if (val < 0) { - // dacs only: allow power down value (-100) - if ((ind < NDAC_ONLY && val != LTC2620_GetPowerDownValue()) || - // power regulators: allow no negative values - (ind >= NDAC_ONLY)) { - sprintf(mess, "Could not set DAC %d. Invalid value %d\n", ind, val); - LOG(logERROR, (mess)); - return FAIL; - } + if (dacval < 0 && dacval != LTC2620_GetPowerDownValue()) { + sprintf( + mess, + "Could not set DAC %d. Input value %d must be positive or -100.\n", + ind, dacval); + LOG(logERROR, (mess)); + return FAIL; } - if (val == LTC2620_GetPowerDownValue()) - return OK; - // validate max value/ vlimit - - // only dacs here in mV - if (mV) { - if (val > DAC_MAX_MV) { - sprintf(mess, - "Could not set DAC %d. Input %d mV exceeds max dac " - "value %d mV\n", - ind, val, DAC_MAX_MV); - LOG(logERROR, (mess)) - return FAIL; - } - if (vLimit > 0 && val > vLimit) { - sprintf(mess, - "Could not set DAC %d. Input %d mV exceeds vLimit %d mV\n", - (int)ind, val, vLimit); - LOG(logERROR, (mess)) - return FAIL; - } - return OK; - } - - // dacs and power regs - if (val > LTC2620_GetMaxInput()) { + // validate max value + if (dacval > LTC2620_GetMaxInput()) { sprintf(mess, - "Could not set DAC %d. Input %d exceeds max dac value %d\n", - (int)ind, val, LTC2620_GetMaxInput()); + "Could not set DAC %d. Input value %d exceeds maximum %d \n", + ind, dacval, LTC2620_GetMaxInput()); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) { + // validate min value + if (voltage < 0) { + sprintf(mess, + "Could not set DAC %d. Input value %d cannot be negative\n", + ind, voltage); + LOG(logERROR, (mess)); + return FAIL; + } + // validate max value + if (voltage > DAC_MAX_MV) { + sprintf( + mess, + "Could not set DAC %d. Input value %d mV exceeds maximum %d mV\n", + ind, voltage, DAC_MAX_MV); + LOG(logERROR, (mess)); + return FAIL; + } + // validate vlimit + if (vLimit > 0 && voltage > vLimit) { + sprintf(mess, + "Could not set DAC %d. Input %d mV exceeds vLimit %d mV\n", ind, + voltage, vLimit); LOG(logERROR, (mess)) return FAIL; } - // vlimit check for only dacs, convert to mV (power regs checked before) - if (vLimit > 0 && ind < NDAC_ONLY) { - int dacmV = 0; - if (LTC2620_DacToVoltage(val, &dacmV) == FAIL) { - sprintf(mess, - "Could not set DAC %d. Could not convert input %d " - "to mV\n", - ind, val); - LOG(logERROR, (mess)); - return FAIL; - } - if (dacmV > vLimit) { - sprintf(mess, - "Could not set DAC %d. Input %d (%d mV) exceeds " - "vLimit value %d\n", - ind, val, dacmV, vLimit); + return OK; +} + +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess) { + *retval_dacval = -1; + // normal dacs + if (ind < NDAC_ONLY) { + if (LTC2620_VoltageToDac(voltage, retval_dacval) == FAIL) { + sprintf( + mess, + "Could not set DAC %d. Could not convert %d mV to dac units.\n", + ind, voltage); LOG(logERROR, (mess)); return FAIL; } + return OK; } + // vchip + if (ind == D_PWR_CHIP) { + if (ConvertToDifferentRange( + VCHIP_MIN_MV, VCHIP_MAX_MV, LTC2620_GetMaxInput(), + LTC2620_GetMinInput(), voltage, retval_dacval) == FAIL) { + sprintf(mess, + "Could not set DAC %d (vchip). Could not convert %d mV to " + "dac units.\n", + ind, voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; + } + // power dacs + if (ConvertToDifferentRange(POWER_RGLTR_MIN, POWER_RGLTR_MAX, + LTC2620_GetMaxInput(), LTC2620_GetMinInput(), + voltage, retval_dacval) == FAIL) { + sprintf(mess, + "Could not set DAC %d. Could not convert %d mV to dac units.\n", + ind, voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess) { + *retval_voltage = -1; + // normal dacs + if (ind < NDAC_ONLY) { + if (LTC2620_DacToVoltage(dacval, retval_voltage) == FAIL) { + sprintf( + mess, + "Could not get DAC %d. Could not convert %d dac units to mV\n", + ind, dacval); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; + } + // vchip + if (ind == D_PWR_CHIP) { + if (ConvertToDifferentRange( + LTC2620_GetMaxInput(), LTC2620_GetMinInput(), VCHIP_MIN_MV, + VCHIP_MAX_MV, dacval, retval_voltage) == FAIL) { + sprintf(mess, + "Could not get DAC %d (vchip). Could not convert %d dac " + "units to mV\n", + ind, dacval); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; + } + // power dacs + if (ConvertToDifferentRange(LTC2620_GetMaxInput(), LTC2620_GetMinInput(), + POWER_RGLTR_MIN, POWER_RGLTR_MAX, dacval, + retval_voltage) == FAIL) { + sprintf(mess, + "Could not get DAC %d. Could not convert %d dac units to mV\n", + ind, dacval); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { + *retval = -1; + if (validateDACIndex(ind, mess) == FAIL) + return FAIL; + + int dacval = dacValues[ind]; + if (dacval == LTC2620_GetPowerDownValue()) { + LOG(logWARNING, ("DAC %d is in power down mode.\n", ind)); + *retval = dacval; + return OK; + } + + if (mV) { + if (convertDACValueToVoltage(ind, dacval, retval, mess) == FAIL) + return FAIL; + return OK; + } + + *retval = dacval; + return OK; +} + +int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { + LOG(logINFO, + ("Setting DAC %d: %d %s \n", ind, val, (mV ? "mV" : "dac units"))); + + if (validateDACIndex(ind, mess) == FAIL) + return FAIL; + + int dacval = val; + if (mV) { + if (validateDACVoltage(ind, val, mess) == FAIL) + return FAIL; + + if (convertVoltageToDACValue(ind, val, &dacval, mess) == FAIL) + return FAIL; + } + + if (writeDACSpi(ind, dacval, mess) == FAIL) + return FAIL; return OK; } -int setDAC(enum DACINDEX ind, int val, int mV, char *mess) { - if (isDACValid(ind, val, mV, mess) == FAIL) +int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { + if (validateDACValue(ind, dacval, mess) == FAIL) return FAIL; - LOG(logINFO, ("Setting dac[%d]: %d %s \n", (int)ind, val, - (mV ? "mV" : "dac units"))); - - // dacs only, mV, convert to dac value - int dacval = val; - if (mV && ind < NDAC) { - if (LTC2620_VoltageToDac(val, &dacval) == FAIL) { - sprintf( - mess, - "Could not set DAC %d. Could not convert %d mV to dac units.\n", - ind, val); - LOG(logERROR, (mess)); - return FAIL; - } - } - if (LTC2620_SetDACValue((int)ind, dacval) == FAIL) { - sprintf(mess, "Could not set DAC %d. Failed to convert\n", ind); + sprintf(mess, "Could not set DAC %d.\n", ind); LOG(logERROR, (mess)); return FAIL; } @@ -1382,42 +1462,6 @@ int setDAC(enum DACINDEX ind, int val, int mV, char *mess) { return OK; } -int getDAC(enum DACINDEX ind, int mV, int *retval, char *mess) { - // validate index - if (ind < 0 || ind > NDAC) { - sprintf(mess, "Could not get DAC %d. Invalid index.\n", ind); - LOG(logERROR, (mess)); - return FAIL; - } - // validate mV - if (mV && ind >= NDAC_ONLY) { - sprintf(mess, - "Could not get DAC %d. Cannot convert to dac units for power " - "regulator at this stage. Should have been earlier.\n", - ind); - LOG(logERROR, (mess)); - return FAIL; - } - // get in dac units - if (!mV) { - LOG(logDEBUG1, ("Getting DAC %d : %d dac\n", ind, dacValues[ind])); - *retval = dacValues[ind]; - return OK; - } - // convert to mV - *retval = -1; - if (LTC2620_DacToVoltage(dacValues[ind], retval) == FAIL) { - sprintf(mess, - "Could not get DAC %d. Could not convert %d dac units to mV\n", - ind, dacValues[ind]); - LOG(logERROR, (mess)); - return FAIL; - } - LOG(logDEBUG1, - ("Getting DAC %d : %d dac (%d mV)\n", ind, dacValues[ind], *retval)); - return OK; -} - int getVLimit() { return vLimit; } int setVLimit(int val, char *mess) { @@ -1430,129 +1474,137 @@ int setVLimit(int val, char *mess) { return OK; } -int getVchip(int *retval, char *mess) { - *retval = dacValues[D_PWR_CHIP]; - - // not set yet - if (*retval == -1) { - LOG(logWARNING, ("Retrieving Vchip that has not been set yet.\n")); - return OK; - } - if (*retval == LTC2620_GetPowerDownValue()) { - LOG(logWARNING, ("Vchip dac at power down value\n")); - return OK; - } - // dac to voltage - int dacval = dacValues[D_PWR_CHIP]; - if (ConvertToDifferentRange(LTC2620_GetMaxInput(), LTC2620_GetMinInput(), - VCHIP_MIN_MV, VCHIP_MAX_MV, dacval, - retval) == FAIL) { - sprintf(mess, "Could not convert to voltage. Input value for vchip " - "outside bounds.\n"); +int validateVchip(int val, char *mess) { + if (val < VCHIP_MIN_MV || val > VCHIP_MAX_MV) { + sprintf(mess, + "Invalid vchip value %d mV. Must be between %d and %d mV\n", + val, VCHIP_MIN_MV, VCHIP_MAX_MV); LOG(logERROR, (mess)); return FAIL; } + if (vLimit > 0 && val > vLimit) { + sprintf(mess, "Invalid vchip value %d mV. Exceeds vLimit %d mV\n", val, + vLimit); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int getVchip(int *retval, char *mess) { + if (getDAC(D_PWR_CHIP, true, retval, mess) == FAIL) + return FAIL; LOG(logDEBUG1, ("Vchip: %d\n", *retval)); return OK; } int setVchip(int val, char *mess) { - if (val < 0) { - sprintf(mess, "Could not set vchip. Invalid value: %d\n", val); - LOG(logERROR, (mess)); - return FAIL; - } LOG(logINFOBLUE, ("Setting Vchip to %d mV\n", val)); + if (validateVchip(val, mess) == FAIL) + return FAIL; - // calculate dac value to set - int dacval = LTC2620_GetPowerDownValue(); - if (val != LTC2620_GetPowerDownValue()) { - // convert voltage to dac - if (ConvertToDifferentRange(VCHIP_MIN_MV, VCHIP_MAX_MV, - LTC2620_GetMaxInput(), - LTC2620_GetMinInput(), // min val is max V - val, &dacval) == FAIL) { - sprintf(mess, - "\tVChip %d mV invalid. Is not between %d and %d mV\n", val, - VCHIP_MIN_MV, VCHIP_MAX_MV); - return FAIL; - } - } - LOG(logINFO, - ("Setting Vchip (DAC %d): %d dac (%d mV)\n", D_PWR_CHIP, dacval, val)); - if (setDAC(D_PWR_CHIP, dacval, 0, mess) == FAIL) + if (setDAC(D_PWR_CHIP, val, true, mess) == FAIL) return FAIL; - if (dacValues[D_PWR_CHIP] != dacval) { - sprintf(mess, "Could not set vchip. Set %d, got %d\n", val, - dacValues[D_PWR_CHIP]); - LOG(logERROR, (mess)); - return FAIL; - } + return OK; } -int getVChipToSet(enum DACINDEX ind, int val, int *vchip, char *mess) { - LOG(logDEBUG1, ("Calculating vchip to set\n")); - enum PWRINDEX pwrIndex = 0; - char *powerNames[] = {PWR_NAMES}; - - // validate index - if (getPowerIndex(ind, &pwrIndex, mess) == FAIL) - return FAIL; - +int getVchipToSet(enum DACINDEX ind, int pwr_val, int *retval_vchip, + char *mess) { // get the max of all the power regulators int max = 0; for (int ipwr = NDAC_ONLY; ipwr <= NDAC; ++ipwr) { - int v = 0; if (ipwr == D_PWR_CHIP) continue; + int val = 0; // current index, use the value to be set if (ipwr == (int)ind) { - v = val; + val = pwr_val; } else { - if (getPower(ind, &v, mess) == FAIL) + if (getPower(ipwr, &val, mess) == FAIL) return FAIL; } - - if (v > max) - max = v; + if (val > max) + max = val; } // increment to get vchip value - *vchip = max + VCHIP_POWER_INCRMNT; + *retval_vchip = max + VCHIP_POWER_INCRMNT; - // validate vchip min and max - if (*vchip < VCHIP_MIN_MV) - *vchip = VCHIP_MIN_MV; - // this shouldnt happen as isPowerValid should have already given error - if (*vchip > VCHIP_MAX_MV) { - sprintf(mess, - " Could not set %s. Vchip value to set %d is beyond its " - "maximum %d\n", - powerNames[pwrIndex], *vchip, VCHIP_MAX_MV); + // use min value, dont complain + if (*retval_vchip < VCHIP_MIN_MV) + *retval_vchip = VCHIP_MIN_MV; + + // max checked earlier, should not happen + if (*retval_vchip > VCHIP_MAX_MV) { + enum PWRINDEX pwrIndex = 0; + if (getPowerIndex(ind, &pwrIndex, mess) == FAIL) + return FAIL; + char *powerNames[] = {PWR_NAMES}; + sprintf( + mess, + "Could not set %s. Vchip value to set %d is beyond itsmaximum %d\n", + powerNames[pwrIndex], *retval_vchip, VCHIP_MAX_MV); LOG(logERROR, (mess)); return FAIL; } - LOG(logDEBUG1, ("\tVchip to set:%d\n", *vchip)); - + LOG(logDEBUG1, ("\tVchip to set:%d\n", *retval_vchip)); return OK; } -int isPowerValid(enum PWRINDEX ind, int val, char *mess) { +int validatePower(enum PWRINDEX ind, int val, char *mess) { char *powerNames[] = {PWR_NAMES}; - + // validate min value int min = (ind == PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN; - // allowed only upto vchip max - 200 - int max = (VCHIP_MAX_MV - VCHIP_POWER_INCRMNT); - // also checking vlimit if set - if (vLimit > 0 && vLimit < max) - max = vLimit; - - if (val != 0 && (val < min || val > max)) { + if (val < min) { sprintf( mess, - "Could not set %s. Invalid value. Must be between %d and %d mV\n", - powerNames[ind], min, max); + "Could not set %s. Input value %d mV must be greater than %d mV.\n", + powerNames[ind], val, min); + LOG(logERROR, (mess)); + return FAIL; + } + // validate max value + int max = (VCHIP_MAX_MV - VCHIP_POWER_INCRMNT); + if (val > max) { + sprintf( + mess, + "Could not set %s. Input value %d mV must be less than %d mV.\n", + powerNames[ind], val, max); + LOG(logERROR, (mess)); + return FAIL; + } + // validate vlimit + if (vLimit > 0 && val > vLimit) { + sprintf(mess, "Could not set %s. Input %d mV exceeds vLimit %d mV\n", + powerNames[ind], val, vLimit); + LOG(logERROR, (mess)) + return FAIL; + } + return OK; +} + +// for power rail index and name debugging +int getPowerIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex, char *mess) { + *pwrIndex = 0; + switch (ind) { + case D_PWR_IO: + *pwrIndex = PWR_IO; + break; + case D_PWR_A: + *pwrIndex = PWR_A; + break; + case D_PWR_B: + *pwrIndex = PWR_B; + break; + case D_PWR_C: + *pwrIndex = PWR_C; + break; + case D_PWR_D: + *pwrIndex = PWR_D; + break; + default: + sprintf(mess, "Index %d has no power index\n", ind); LOG(logERROR, (mess)); return FAIL; } @@ -1626,106 +1678,37 @@ int getPowerRail(enum PWRINDEX ind, int *retval, char *mess) { return OK; } -// for power rail index and name debugging -int getPowerIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex, char *mess) { - *pwrIndex = 0; - switch (ind) { - case D_PWR_IO: - *pwrIndex = PWR_IO; - break; - case D_PWR_A: - *pwrIndex = PWR_A; - break; - case D_PWR_B: - *pwrIndex = PWR_B; - break; - case D_PWR_C: - *pwrIndex = PWR_C; - break; - case D_PWR_D: - *pwrIndex = PWR_D; - break; - default: - sprintf(mess, "Index %d has no power index\n", ind); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertPowerRegDACtoVoltage(enum PWRINDEX ind, int val, int *retval, - char *mess) { - char *powerNames[] = {PWR_NAMES}; - if (ConvertToDifferentRange(LTC2620_GetMaxInput(), LTC2620_GetMinInput(), - POWER_RGLTR_MIN, POWER_RGLTR_MAX, val, - retval) == FAIL) { - sprintf(mess, "Could not get %s. Could not convert %d dac to mV\n", - powerNames[ind], val); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertPowerRegVoltagetoDAC(enum PWRINDEX ind, int val, int *retval, - char *mess) { - char *powerNames[] = {PWR_NAMES}; - if (ConvertToDifferentRange(POWER_RGLTR_MIN, POWER_RGLTR_MAX, - LTC2620_GetMaxInput(), LTC2620_GetMinInput(), - val, retval) == FAIL) { - sprintf( - mess, - "Could not set %s. Invalid value %d mV to convert to dac units.\n", - powerNames[ind], val); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - int getPower(enum DACINDEX ind, int *retval, char *mess) { enum PWRINDEX pwrIndex = 0; - *retval = -1; - - // validate index if (getPowerIndex(ind, &pwrIndex, mess) == FAIL) return FAIL; - // powered enable off - int pwrRetval = 0; - if (getPowerRail(pwrIndex, &pwrRetval, mess) == FAIL) + // if powered off, return 0 + if (getPowerRail(pwrIndex, retval, mess) == FAIL) return FAIL; - if (pwrRetval == 0) { - *retval = 0; + if (*retval == 0) { return OK; } - // to mV - if (convertPowerRegDACtoVoltage(pwrIndex, dacValues[ind], retval, mess) == - FAIL) + if (getDAC(ind, true, retval, mess) == FAIL) return FAIL; - return OK; } int setPower(enum DACINDEX ind, int val, char *mess) { enum PWRINDEX pwrIndex = 0; - char *powerNames[] = {PWR_NAMES}; - - // validate index if (getPowerIndex(ind, &pwrIndex, mess) == FAIL) return FAIL; - // validate values (invalidate power down) - if (isPowerValid(pwrIndex, val, mess) == FAIL) - return FAIL; - + char *powerNames[] = {PWR_NAMES}; LOG(logINFOBLUE, ("Setting %s to %d mV\n", powerNames[pwrIndex], val)); - // get vchip to set vchip before setting power regulator - // calculate now before power off + if (validatePower(pwrIndex, val, mess) == FAIL) + return FAIL; + + // compute vchip to set before powering off int vchip = 0; - if (getVChipToSet(ind, val, &vchip, mess) == FAIL) + if (getVchipToSet(ind, val, &vchip, mess) == FAIL) return FAIL; if (DisablePowerRail(pwrIndex, mess) == FAIL) @@ -1734,44 +1717,13 @@ int setPower(enum DACINDEX ind, int val, char *mess) { if (setVchip(vchip, mess) == FAIL) return FAIL; - // convert to dac units - int dacval = val; if (val != 0) { - if (convertPowerRegVoltagetoDAC(pwrIndex, val, &dacval, mess) == FAIL) - return FAIL; - - LOG(logINFO, ("Setting %s (DAC %d): %d dac (%d mV)\n", - powerNames[pwrIndex], dacval, val)); - if (setDAC(ind, dacval, 0, mess) == FAIL) + if (setDAC(ind, val, true, mess) == FAIL) return FAIL; if (EnablePowerRail(pwrIndex, mess) == FAIL) return FAIL; } - - return OK; -} - -int initPower(enum DACINDEX ind, char *mess) { - if (ind == D_PWR_CHIP) - return OK; - - enum PWRINDEX pwrIndex = 0; - if (getPowerIndex(ind, &pwrIndex, mess) == FAIL) - return FAIL; - - char *powerNames[] = {PWR_NAMES}; - int dacval = 0; - int min = (ind == D_PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN; - LOG(logINFO, ("Initializing %s to %d mV (power disabled)\n", - powerNames[pwrIndex], min)); - - if (convertPowerRegVoltagetoDAC(pwrIndex, min, &dacval, mess) == FAIL) - return FAIL; - - if (setDAC(ind, dacval, 0, mess) == FAIL) - return FAIL; - return OK; } @@ -1779,7 +1731,6 @@ void powerOff() { uint32_t addr = POWER_REG; LOG(logINFO, ("Powering off all voltage regulators\n")); bus_w(addr, bus_r(addr) & (~POWER_ENBL_VLTG_RGLTR_MSK)); - LOG(logDEBUG1, ("Power Register: 0x%08x\n", bus_r(addr))); } int getADC(enum ADCINDEX ind) { diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h index ffdc0641d..8977da57d 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h @@ -7,6 +7,7 @@ #include "blackfin.h" #include "programViaBlackfin.h" +#include #include // FILE #include #include @@ -126,31 +127,36 @@ enum detectorSettings getSettings(); int setADCVpp(int val, int mV, char *mess); int getADCVpp(int mV, int *retval, char *mess); -int isDACValid(enum DACINDEX ind, int val, int mV, char *mess); -int setDAC(enum DACINDEX ind, int val, int mV, char *mess); -int getDAC(enum DACINDEX ind, int mV, int *retval, char *mess); +int validateDACIndex(enum DACINDEX ind, char *mess); +int validateDACValue(enum DACINDEX ind, int dacval, char *mess); +int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess); +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess); +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess); +int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); +/** @param val value can be in mV or dac units */ +int setDAC(enum DACINDEX ind, int val, bool mV, char *mess); +/** @param dacval in dac units */ +int writeDACSpi(enum DACINDEX ind, int dacval, char *mess); + int getVLimit(); int setVLimit(int val, char *mess); +int validateVchip(int val, char *mess); int getVchip(int *retval, char *mess); int setVchip(int val, char *mess); -int getVChipToSet(enum DACINDEX ind, int val, int *vchip, char *mess); +int getVchipToSet(enum DACINDEX ind, int pwr_val, int *retval_vchip, + char *mess); +int validatePower(enum PWRINDEX ind, int val, char *mess); +int getPowerIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex, char *mess); int getPowerRailMask(enum PWRINDEX ind, uint32_t *mask, char *mess); int EnablePowerRail(enum PWRINDEX ind, char *mess); int DisablePowerRail(enum PWRINDEX ind, char *mess); int getPowerRail(enum PWRINDEX ind, int *retval, char *mess); - -int isPowerValid(enum PWRINDEX ind, int val, char *mess); -int getPowerIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex, char *mess); - -int convertPowerRegDACtoVoltage(enum PWRINDEX ind, int val, int *retval, - char *mess); -int convertPowerRegVoltagetoDAC(enum PWRINDEX ind, int val, int *retval, - char *mess); int getPower(enum DACINDEX ind, int *retval, char *mess); int setPower(enum DACINDEX ind, int val, char *mess); -int initPower(enum DACINDEX ind, char *mess); void powerOff(); int getADC(enum ADCINDEX ind); diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 6b4299036e88736e4169f690a77df5a3cc3c0f9a..4e8488a552a616ec65169bf3b3a6c76065c7f879 100755 GIT binary patch delta 77 zcmdnHMSAZR>4p}@7N!>FEiC<-e8md6i4~c-rMU{KDGFTE6E#^hBy+4p}@7N!>FEiC<-JPNsq6`8rExeBT&3e)2?S+pc_!xU00l2cPtkfn0N YxTYs+vPian(_{f+*6rUk+1xh(07tPKUH||9 diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 59a29796c..3d839f6ba 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -1450,7 +1450,7 @@ int validateDACValue(enum DACINDEX ind, int dacval, char *mess) { // validate max value if (dacval > LTC2620_MAX_VAL) { sprintf(mess, - "Could not set DAC %s. Input value %d exceed maximum %d \n", + "Could not set DAC %s. Input value %d exceeds maximum %d \n", dacNames[ind], dacval, LTC2620_MAX_VAL); LOG(logERROR, (mess)); return FAIL; @@ -1470,27 +1470,33 @@ int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) { } // validate max value if (voltage > DAC_MAX_MV) { - sprintf(mess, - "Could not set DAC %s. Input value %d mV exceed maximum %d mV\n", dacNames[ind], voltage, DAC_MAX_MV); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess) { - char *dacNames[] = {DAC_NAMES}; - if (ConvertToDifferentRange(DAC_MIN_MV, DAC_MAX_MV, LTC2620_MIN_VAL, LTC2620_MAX_VAL, voltage, retval_dacval) == FAIL) { sprintf( mess, - "Could not set DAC %s. Could not convert %d mV to dac units.\n", dacNames[ind], voltage); + "Could not set DAC %s. Input value %d mV exceeds maximum %d mV\n", + dacNames[ind], voltage, DAC_MAX_MV); LOG(logERROR, (mess)); return FAIL; } return OK; } -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess) { +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess) { + char *dacNames[] = {DAC_NAMES}; + if (ConvertToDifferentRange(DAC_MIN_MV, DAC_MAX_MV, LTC2620_MIN_VAL, + LTC2620_MAX_VAL, voltage, + retval_dacval) == FAIL) { + sprintf(mess, + "Could not set DAC %s. Could not convert %d mV to dac units.\n", + dacNames[ind], voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess) { *retval_voltage = -1; if (ConvertToDifferentRange(LTC2620_MIN_VAL, LTC2620_MAX_VAL, DAC_MIN_MV, DAC_MAX_MV, dacval, retval_voltage) == FAIL) { @@ -1500,7 +1506,7 @@ int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, dacNames[ind], dacval); LOG(logERROR, (mess)); return FAIL; - } + } return OK; } @@ -1523,13 +1529,12 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { return OK; } - // uses LTC2620 with 2.048V (implementation different to others not bit banging) int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { { char *dacNames[] = {DAC_NAMES}; LOG(logINFO, ("Setting DAC %s: %d %s \n", dacNames[ind], val, - (mV ? "mV" : "dac units"))); + (mV ? "mV" : "dac units"))); } if (ind == E_VTHRESHOLD) { @@ -1538,7 +1543,7 @@ int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { if (validateDACIndex(ind, mess) == FAIL) return FAIL; - + int dacval = val; if (mV) { if (validateDACVoltage(ind, val, mess) == FAIL) @@ -1565,7 +1570,8 @@ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { sharedMemory_lockLocalLink(); if (!Feb_Control_SetDAC(ind, dacval)) { char *dacNames[] = {DAC_NAMES}; - sprintf(mess, "Could not set DAC %s. Trouble writing to register\n", dacNames[ind]); + sprintf(mess, "Could not set DAC %s. Trouble writing to register\n", + dacNames[ind]); LOG(logERROR, (mess)); sharedMemory_unlockLocalLink(); return FAIL; @@ -1576,11 +1582,9 @@ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { #endif } - - - int setThresholdDACs(int val, bool mV, char *mess) { - enum DACINDEX indices[5] = {E_VCMP_LL, E_VCMP_LR, E_VCMP_RL, E_VCMP_RR, E_VCP}; + enum DACINDEX indices[5] = {E_VCMP_LL, E_VCMP_LR, E_VCMP_RL, E_VCMP_RR, + E_VCP}; for (int i = 1; i != 5; ++i) { if (setDAC(indices[i], val, mV, mess) == FAIL) return FAIL; @@ -1589,21 +1593,24 @@ int setThresholdDACs(int val, bool mV, char *mess) { } int getThresholdDACs(bool mV, int *retval, char *mess) { - enum DACINDEX indices[5] = {E_VCMP_LL, E_VCMP_LR, E_VCMP_RL, E_VCMP_RR, E_VCP}; + enum DACINDEX indices[5] = {E_VCMP_LL, E_VCMP_LR, E_VCMP_RL, E_VCMP_RR, + E_VCP}; int retvals[5] = {0}; *retval = -1; // default to mismatch - + for (int i = 0; i != 5; ++i) { if (getDAC(indices[i], mV, &retvals[i], mess) == FAIL) return FAIL; // set retval to first value if (*retval == -1) { *retval = retvals[i]; - } + } // other values should match the first value else if (retvals[i] != retvals[0]) { char *dacNames[] = {DAC_NAMES}; - LOG(logWARNING, ("Vthreshold mismatch.%s:%d %s:%d\n", dacNames[indices[i]], retvals[i], dacNames[indices[0]], retvals[0])); + LOG(logWARNING, + ("Vthreshold mismatch.%s:%d %s:%d\n", dacNames[indices[i]], + retvals[i], dacNames[indices[0]], retvals[0])); *retval = -1; return OK; } diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.h index 8f6b851ce..49e442770 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.h @@ -3,10 +3,10 @@ #include "sls/sls_detector_defs.h" #include "slsDetectorServer_defs.h" // DAC_INDEX, ADC_INDEX, also include RegisterDefs.h +#include #include // FILE #include #include -#include /**************************************************** This functions are used by the slsDetectroServer_funcs interface. @@ -127,8 +127,10 @@ int setThresholdEnergy(int ev); int validateDACIndex(enum DACINDEX ind, char *mess); int validateDACValue(enum DACINDEX ind, int dacval, char *mess); int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess); -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess); -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess); +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess); +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess); int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); /** @param val value can be in mV or dac units */ int setDAC(enum DACINDEX ind, int val, bool mV, char *mess); diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index 7fee57f5c0d6e913615703a5b23be6c27b2fd358..47a95cc9f9dd315e833c88740f42f8cb2ee4bfd5 100755 GIT binary patch delta 71 zcmey+DfFRJsG)_ig=q_OybNElLT+M3W^QS&f@+Ea*K|V}W(~>QFoo2LieHmsgiQF)S)QaTP)D&c?+%T@` ThBC~O?Z;%8w;z*X(aHb-k$e}9 diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index 02871ed47..e5b0b722b 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -571,7 +571,8 @@ int resetToDefaultDacs(int hardReset, char *mess) { LOG(logINFOBLUE, ("Setting Default Dac values\n")); for (int i = 0; i < NDAC; ++i) { if (defaultDacValues[i] != -1) { - if (setDAC((enum DACINDEX)i, defaultDacValues[i], false, mess) == FAIL) + if (setDAC((enum DACINDEX)i, defaultDacValues[i], false, mess) == + FAIL) return FAIL; } } @@ -1543,7 +1544,7 @@ int validateDACValue(enum DACINDEX ind, int dacval, char *mess) { // validate max value if (dacval > LTC2620_D_GetMaxInput()) { sprintf(mess, - "Could not set DAC %s. Input value %d exceed maximum %d \n", + "Could not set DAC %s. Input value %d exceeds maximum %d \n", dacNames[ind], dacval, LTC2620_D_GetMaxInput()); LOG(logERROR, (mess)); return FAIL; @@ -1563,28 +1564,31 @@ int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) { } // validate max value if (voltage > DAC_MAX_MV) { - sprintf(mess, - "Could not set DAC %s. Input value %d mV exceed maximum %d mV\n", dacNames[ind], voltage, DAC_MAX_MV); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess) { - if (LTC2620_D_VoltageToDac(voltage, retval_dacval) == FAIL) { - char *dacNames[] = {DAC_NAMES}; sprintf( mess, - "Could not set DAC %s. Could not convert %d mV to dac units.\n", - dacNames[ind], voltage); + "Could not set DAC %s. Input value %d mV exceeds maximum %d mV\n", + dacNames[ind], voltage, DAC_MAX_MV); LOG(logERROR, (mess)); return FAIL; } return OK; } -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess) { +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess) { + if (LTC2620_D_VoltageToDac(voltage, retval_dacval) == FAIL) { + char *dacNames[] = {DAC_NAMES}; + sprintf(mess, + "Could not set DAC %s. Could not convert %d mV to dac units.\n", + dacNames[ind], voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess) { *retval_voltage = -1; if (LTC2620_D_DacToVoltage(dacval, retval_voltage) == FAIL) { char *dacNames[] = {DAC_NAMES}; @@ -1612,17 +1616,16 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { return OK; } - int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { { char *dacNames[] = {DAC_NAMES}; LOG(logINFO, ("Setting DAC %s: %d %s \n", dacNames[ind], val, - (mV ? "mV" : "dac units"))); + (mV ? "mV" : "dac units"))); } if (validateDACIndex(ind, mess) == FAIL) return FAIL; - + int dacval = val; if (mV) { if (validateDACVoltage(ind, val, mess) == FAIL) @@ -1648,7 +1651,7 @@ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { LOG(logERROR, (mess)); return FAIL; } - + dacValues[ind] = dacval; return OK; } diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h index 6130c3f36..170a37dde 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h @@ -6,10 +6,10 @@ #include "nios.h" #include "programViaNios.h" +#include #include // FILE #include #include -#include /**************************************************** This functions are used by the slsDetectroServer_funcs interface. @@ -120,15 +120,16 @@ int getOnChipDAC(enum ONCHIP_DACINDEX ind, int chipIndex); int validateDACIndex(enum DACINDEX ind, char *mess); int validateDACValue(enum DACINDEX ind, int dacval, char *mess); int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess); -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess); -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess); +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess); +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess); int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); /** @param val value can be in mV or dac units */ int setDAC(enum DACINDEX ind, int val, bool mV, char *mess); /** @param dacval in dac units */ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess); - int getADC(enum ADCINDEX ind, int *value); int setHighVoltage(int val, char *mess); int getHighVoltage(int *retval, char *mess); diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 204fecf4992faba37129829d3d7f0900a2f0cba0..d9bda2a01dd52b7edea0a3b97c2854b6cebb97eb 100755 GIT binary patch delta 77 zcmZ3oR(Q!;;R%||{Ve^{3%@c;G`h69Ft)ldZFOOew&E*R$W5%s%q`7TP)$+bn!eVG WIZyyaEH{j+ozI$iJD)YnwAla*g&8dX delta 77 zcmZ3oR(Q!;;R%||y>G3i7k*`yXmn|HVQh6_+Umj_ZN;aMn^=*VTbiq&nxeqPFnz5R XbD#jSSZ){>Lpz@}^L9RKmT9vA8(SFJ diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index a66b382a9..42ba5a80c 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -1358,7 +1358,7 @@ int validateDACValue(enum DACINDEX ind, int dacval, char *mess) { // validate max value if (dacval > LTC2620_GetMaxInput()) { sprintf(mess, - "Could not set DAC %s. Input value %d exceed maximum %d \n", + "Could not set DAC %s. Input value %d exceeds maximum %d \n", dacNames[ind], dacval, LTC2620_GetMaxInput()); LOG(logERROR, (mess)); return FAIL; @@ -1378,28 +1378,31 @@ int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) { } // validate max value if (voltage > DAC_MAX_MV) { - sprintf(mess, - "Could not set DAC %s. Input value %d mV exceed maximum %d mV\n", dacNames[ind], voltage, DAC_MAX_MV); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess) { - if (LTC2620_VoltageToDac(voltage, retval_dacval) == FAIL) { - char *dacNames[] = {DAC_NAMES}; sprintf( mess, - "Could not set DAC %s. Could not convert %d mV to dac units.\n", - dacNames[ind], voltage); + "Could not set DAC %s. Input value %d mV exceeds maximum %d mV\n", + dacNames[ind], voltage, DAC_MAX_MV); LOG(logERROR, (mess)); return FAIL; } return OK; } -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess) { +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess) { + if (LTC2620_VoltageToDac(voltage, retval_dacval) == FAIL) { + char *dacNames[] = {DAC_NAMES}; + sprintf(mess, + "Could not set DAC %s. Could not convert %d mV to dac units.\n", + dacNames[ind], voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess) { *retval_voltage = -1; if (LTC2620_DacToVoltage(dacval, retval_voltage) == FAIL) { char *dacNames[] = {DAC_NAMES}; @@ -1427,17 +1430,16 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { return OK; } - int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { { char *dacNames[] = {DAC_NAMES}; LOG(logINFO, ("Setting DAC %s: %d %s \n", dacNames[ind], val, - (mV ? "mV" : "dac units"))); + (mV ? "mV" : "dac units"))); } if (validateDACIndex(ind, mess) == FAIL) return FAIL; - + int dacval = val; if (mV) { if (validateDACVoltage(ind, val, mess) == FAIL) @@ -1463,7 +1465,7 @@ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { LOG(logERROR, (mess)); return FAIL; } - + dacValues[ind] = dacval; // ext daq ctrl @@ -1476,7 +1478,6 @@ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { return OK; } - int getADC(enum ADCINDEX ind) { #ifdef VIRTUAL return 0; diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h index b7075a916..5bb4bb2f9 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.h @@ -7,10 +7,10 @@ #include "blackfin.h" #include "programViaBlackfin.h" +#include #include // FILE #include #include -#include /**************************************************** This functions are used by the slsDetectroServer_funcs interface. @@ -126,8 +126,10 @@ void setGainMode(enum gainMode mode); int validateDACIndex(enum DACINDEX ind, char *mess); int validateDACValue(enum DACINDEX ind, int dacval, char *mess); int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess); -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess); -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess); +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess); +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess); int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); /** @param val value can be in mV or dac units */ int setDAC(enum DACINDEX ind, int val, bool mV, char *mess); diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer index c7b5df5ba809ccf43b256997e30c9cc34efb347b..13da3cb10cc7abe134a94b1dedcfa7b698c4ee97 100755 GIT binary patch delta 87 zcmeB}A=EKLXo4nlKg-1F3pX=MG`h69Ft)ldZFONT=HM$<$W5%s%q`7TP)$+bny$;i g>@l5}lbKThMItwhYq}l>vqgIxC-e3=PL@?o0I|6l+yDRo delta 84 zcmeB}A=EKLXo4nl?^}oI3pX=MG`h69Ft)ldZFONT=HOAtO{~bwEzMO>O;MPx&B5$7 eotKlDlOI_)H;ik#E(fz^dmJb8_Bc+KRZRek;TeAb diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c index 5dae4816f..46295c5cf 100644 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c @@ -934,7 +934,7 @@ int validateDACValue(enum DACINDEX ind, int dacval, char *mess) { // validate max value if (dacval > LTC2620_GetMaxInput()) { sprintf(mess, - "Could not set DAC %s. Input value %d exceed maximum %d \n", + "Could not set DAC %s. Input value %d exceeds maximum %d \n", dacNames[ind], dacval, LTC2620_GetMaxInput()); LOG(logERROR, (mess)); return FAIL; @@ -954,28 +954,31 @@ int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) { } // validate max value if (voltage > DAC_MAX_MV) { - sprintf(mess, - "Could not set DAC %s. Input value %d mV exceed maximum %d mV\n", dacNames[ind], voltage, DAC_MAX_MV); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess) { - if (LTC2620_VoltageToDac(voltage, retval_dacval) == FAIL) { - char *dacNames[] = {DAC_NAMES}; sprintf( mess, - "Could not set DAC %s. Could not convert %d mV to dac units.\n", - dacNames[ind], voltage); + "Could not set DAC %s. Input value %d mV exceeds maximum %d mV\n", + dacNames[ind], voltage, DAC_MAX_MV); LOG(logERROR, (mess)); return FAIL; } return OK; } -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess) { +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess) { + if (LTC2620_VoltageToDac(voltage, retval_dacval) == FAIL) { + char *dacNames[] = {DAC_NAMES}; + sprintf(mess, + "Could not set DAC %s. Could not convert %d mV to dac units.\n", + dacNames[ind], voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess) { *retval_voltage = -1; if (LTC2620_DacToVoltage(dacval, retval_voltage) == FAIL) { char *dacNames[] = {DAC_NAMES}; @@ -1003,17 +1006,16 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { return OK; } - int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { { char *dacNames[] = {DAC_NAMES}; LOG(logINFO, ("Setting DAC %s: %d %s \n", dacNames[ind], val, - (mV ? "mV" : "dac units"))); + (mV ? "mV" : "dac units"))); } if (validateDACIndex(ind, mess) == FAIL) return FAIL; - + int dacval = val; if (mV) { if (validateDACVoltage(ind, val, mess) == FAIL) diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.h index 9832524c0..e25900b98 100644 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.h @@ -7,10 +7,10 @@ #include "blackfin.h" #include "programViaBlackfin.h" +#include #include // FILE #include #include -#include /**************************************************** This functions are used by the slsDetectroServer_funcs interface. @@ -119,8 +119,10 @@ enum detectorSettings getSettings(); int validateDACIndex(enum DACINDEX ind, char *mess); int validateDACValue(enum DACINDEX ind, int dacval, char *mess); int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess); -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess); -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess); +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess); +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess); int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); /** @param val value can be in mV or dac units */ int setDAC(enum DACINDEX ind, int val, bool mV, char *mess); diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index d769bf4452f6f4bfbc64b480e990dcd9e75efcb1..350ec47e868be79d21286bbf73e27a1bc75c7329 100755 GIT binary patch delta 71 zcmdmTU1-a7p@tU57N#xC@{WAP3b~0DnYpF83aTjzT+=@~Fl$KWhAE_0B&VjPph)J1 Qakb|;GH=gwWO2&^0F0v;CIA2c delta 73 zcmdmTU1-a7p@tU57N#xC@{T+Txrr5-xuv-ZswoQ7-#ajCN#uqpq*f%SrlufE<%V%h T|LDLh+1}>JyuHnlMK22g#v2(g diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index e27f92e4f..42649e86c 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -1312,7 +1312,8 @@ int setModule(sls_detector_module myMod, char *mess) { for (int i = 0; i < NDAC; ++i) { if (myMod.dacs[i] != -1) { // set to default (ensure counter check) - if (setDAC((enum DACINDEX)i, myMod.dacs[i], false, true, mess) == FAIL) { + if (setDAC((enum DACINDEX)i, myMod.dacs[i], false, true, mess) == + FAIL) { // dont complain if that counter was disabled if ((i == M_VTH1 || i == M_VTH2 || i == M_VTH3) && (detectorDacs[i] == DEFAULT_COUNTER_DISABLED_VTH_VAL)) { @@ -1561,7 +1562,7 @@ int validateDACValue(enum DACINDEX ind, int dacval, char *mess) { // validate max value if (dacval > LTC2620_D_GetMaxInput()) { sprintf(mess, - "Could not set DAC %s. Input value %d exceed maximum %d \n", + "Could not set DAC %s. Input value %d exceeds maximum %d \n", dacNames[ind], dacval, LTC2620_D_GetMaxInput()); LOG(logERROR, (mess)); return FAIL; @@ -1581,28 +1582,31 @@ int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) { } // validate max value if (voltage > DAC_MAX_MV) { - sprintf(mess, - "Could not set DAC %s. Input value %d mV exceed maximum %d mV\n", dacNames[ind], voltage, DAC_MAX_MV); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess) { - if (LTC2620_D_VoltageToDac(voltage, retval_dacval) == FAIL) { - char *dacNames[] = {DAC_NAMES}; sprintf( mess, - "Could not set DAC %s. Could not convert %d mV to dac units.\n", - dacNames[ind], voltage); + "Could not set DAC %s. Input value %d mV exceeds maximum %d mV\n", + dacNames[ind], voltage, DAC_MAX_MV); LOG(logERROR, (mess)); return FAIL; } return OK; } -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess) { +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess) { + if (LTC2620_D_VoltageToDac(voltage, retval_dacval) == FAIL) { + char *dacNames[] = {DAC_NAMES}; + sprintf(mess, + "Could not set DAC %s. Could not convert %d mV to dac units.\n", + dacNames[ind], voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess) { *retval_voltage = -1; if (LTC2620_D_DacToVoltage(dacval, retval_voltage) == FAIL) { char *dacNames[] = {DAC_NAMES}; @@ -1619,7 +1623,7 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { if (ind == M_VTHRESHOLD) { return getThresholdDACs(mV, retval, mess); } - + if (validateDACIndex(ind, mess) == FAIL) return FAIL; @@ -1634,18 +1638,17 @@ int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { return OK; } - // counterEnableCheck false only if setDAC called directly from client int setDAC(enum DACINDEX ind, int val, bool mV, bool counterCheck, char *mess) { { char *dacNames[] = {DAC_NAMES}; LOG(logINFO, ("Setting DAC %s: %d %s \n", dacNames[ind], val, - (mV ? "mV" : "dac units"))); + (mV ? "mV" : "dac units"))); } if (validateDACIndex(ind, mess) == FAIL) return FAIL; - + int dacval = val; if (mV) { if (validateDACVoltage(ind, val, mess) == FAIL) @@ -1653,25 +1656,25 @@ int setDAC(enum DACINDEX ind, int val, bool mV, bool counterCheck, char *mess) { if (convertVoltageToDACValue(ind, val, &dacval, mess) == FAIL) return FAIL; - } - + } + switch (ind) { - case M_VTHRESHOLD: - // all threshold dacs: - // store values for all dacs for pump probe and interpolation mode - // only set for enabled counters - return setThresholdDACs(val, mV, dacval, mess); - case M_VTH1: - case M_VTH2: - case M_VTH3: - // threshold dacs: - // store values for pump probe and interpolation mode - // change dacval for disabled counter to 2800 - return setSingleThresholdDAC(ind, val, mV, dacval, counterCheck, mess); - default: - return writeDACSpi(ind, dacval, mess); - break; - } + case M_VTHRESHOLD: + // all threshold dacs: + // store values for all dacs for pump probe and interpolation mode + // only set for enabled counters + return setThresholdDACs(val, mV, dacval, mess); + case M_VTH1: + case M_VTH2: + case M_VTH3: + // threshold dacs: + // store values for pump probe and interpolation mode + // change dacval for disabled counter to 2800 + return setSingleThresholdDAC(ind, val, mV, dacval, counterCheck, mess); + default: + return writeDACSpi(ind, dacval, mess); + break; + } } int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { @@ -1696,21 +1699,21 @@ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { return OK; } -int getCounterIndex (enum DACINDEX ind) { +int getCounterIndex(enum DACINDEX ind) { switch (ind) { - case M_VTH1: - return 0; - case M_VTH2: - return 1; - case M_VTH3: - return 2; - default: - return -1; + case M_VTH1: + return 0; + case M_VTH2: + return 1; + case M_VTH3: + return 2; + default: + return -1; } -} +} - -int setSingleThresholdDAC(enum DACINDEX ind, int val, bool mV, int dacval, bool counterCheck, char* mess) { +int setSingleThresholdDAC(enum DACINDEX ind, int val, bool mV, int dacval, + bool counterCheck, char *mess) { char *dacNames[] = {DAC_NAMES}; uint32_t counterMask = getCounterMask(); @@ -1724,7 +1727,7 @@ int setSingleThresholdDAC(enum DACINDEX ind, int val, bool mV, int dacval, bool // if not disabled value, remember value if (mV || val != DEFAULT_COUNTER_DISABLED_VTH_VAL) { LOG(logINFO, ("Remembering %s [%d]\n", dacNames[ind], dacval)); - vthEnabledVals[iCounter] = dacval; + vthEnabledVals[iCounter] = dacval; } // if counter disabled, change value if (counterCheck && (counterMask & (1 << iCounter))) { @@ -1733,11 +1736,11 @@ int setSingleThresholdDAC(enum DACINDEX ind, int val, bool mV, int dacval, bool // set value if (writeDACSpi(ind, dacval, mess) == FAIL) return FAIL; - + return OK; } -int setThresholdDACs(int val, bool mV, int dacval, char* mess) { +int setThresholdDACs(int val, bool mV, int dacval, char *mess) { char *dacNames[] = {DAC_NAMES}; int indices[] = {M_VTH1, M_VTH2, M_VTH3}; uint32_t counterMask = getCounterMask(); @@ -1745,19 +1748,19 @@ int setThresholdDACs(int val, bool mV, int dacval, char* mess) { for (int iCounter = 0; iCounter != NCOUNTERS; ++iCounter) { // if not disabled value, remember value if (mV || val != DEFAULT_COUNTER_DISABLED_VTH_VAL) { - LOG(logINFO, ("Remembering %s [%d]\n", dacNames[indices[iCounter]], dacval)); - vthEnabledVals[iCounter] = dacval; + LOG(logINFO, + ("Remembering %s [%d]\n", dacNames[indices[iCounter]], dacval)); + vthEnabledVals[iCounter] = dacval; } // if counter enabled, set value if (counterMask & (1 << iCounter)) { - if (writeDACSpi(indices[iCounter], dacval, mess) == FAIL) + if (writeDACSpi(indices[iCounter], dacval, mess) == FAIL) return FAIL; } } return OK; } - int getThresholdDACs(bool mV, int *retval, char *mess) { int indices[] = {M_VTH1, M_VTH2, M_VTH3}; int retvals[NCOUNTERS] = {0}; @@ -1769,21 +1772,24 @@ int getThresholdDACs(bool mV, int *retval, char *mess) { if (counterMask & (1 << i)) { if (getDAC(indices[i], mV, &retvals[i], mess) == FAIL) return FAIL; - } + } // set retval to first value if (*retval == -1) { *retval = retvals[i]; - } + } // other values should match the first value else if (retvals[i] != retvals[0]) { char *dacNames[] = {DAC_NAMES}; - LOG(logWARNING, ("Vthreshold mismatch.%s:%d %s:%d\n", dacNames[indices[i]], retvals[i], dacNames[indices[0]], retvals[0])); + LOG(logWARNING, + ("Vthreshold mismatch.%s:%d %s:%d\n", dacNames[indices[i]], + retvals[i], dacNames[indices[0]], retvals[0])); *retval = -1; return OK; } } if (*retval == -1) { - sprintf(mess, "All counters are disabled. Vthreshold value is undefined.\n"); + sprintf(mess, + "All counters are disabled. Vthreshold value is undefined.\n"); LOG(logERROR, (mess)); return FAIL; } @@ -1791,7 +1797,6 @@ int getThresholdDACs(bool mV, int *retval, char *mess) { return OK; } - void setVthDac(int index, int enable) { LOG(logINFO, ("\t%s vth%d\n", (enable ? "Enabling" : "Disabing"), index)); // enables (from remembered values) or disables vthx @@ -1806,7 +1811,6 @@ void setVthDac(int index, int enable) { writeDACSpi(vthdacs[index], value, msg); } - int getADC(enum ADCINDEX ind, int *value) { LOG(logDEBUG1, ("Reading FPGA temperature...\n")); if (readParameterFromFile(TEMPERATURE_FILE_NAME, "temperature", value) == diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.h index 95d47dd9e..837ea37be 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.h @@ -7,10 +7,10 @@ #include "nios.h" #include "programViaNios.h" +#include #include // FILE #include #include -#include /**************************************************** This functions are used by the slsDetectroServer_funcs interface. @@ -137,17 +137,20 @@ void setThresholdEnergy(int counterIndex, int eV); int validateDACIndex(enum DACINDEX ind, char *mess); int validateDACValue(enum DACINDEX ind, int dacval, char *mess); int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess); -int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int* retval_dacval, char *mess); -int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int* retval_voltage, char *mess); +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess); +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess); int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); /** @param val value can be in mV or dac units */ int setDAC(enum DACINDEX ind, int val, bool mV, bool counterCheck, char *mess); /** @param dacval in dac units */ int writeDACSpi(enum DACINDEX ind, int dacval, char *mess); -int getCounterIndex (enum DACINDEX ind); -int setSingleThresholdDAC(enum DACINDEX ind, int val, bool mV, int dacval, bool counterCheck, char* mess); -int setThresholdDACs(int val, bool mV, int dacval, char* mess); +int getCounterIndex(enum DACINDEX ind); +int setSingleThresholdDAC(enum DACINDEX ind, int val, bool mV, int dacval, + bool counterCheck, char *mess); +int setThresholdDACs(int val, bool mV, int dacval, char *mess); int getThresholdDACs(bool mV, int *retval, char *mess); void setVthDac(int index, int enable); diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer index 7d06f0cd254a7f7f6e2f8a71381c5cbe353ad243..0722058f7e89af2ad4283a54b01bd9131d17269a 100755 GIT binary patch delta 88324 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 NDAC) { - sprintf(mess, "Could not set DAC %d. Invalid index.\n", ind); + sprintf(mess, "Could not set DAC. Invalid index %d\n", ind); LOG(logERROR, (mess)); return FAIL; } - // validate mV - if (mV) { - if (val == LTC2620_D_GetPowerDownValue()) { - sprintf(mess, - "Could not set DAC %d. Cannot use power down value and use " - "'mV'\n", - ind); - LOG(logERROR, (mess)); - return FAIL; - } - // power regulators are converted to dacs at setPower with diff conv. - if (ind >= NDAC_ONLY) { - sprintf( - mess, - "Could not set DAC %d. Cannot convert to dac units for power " - "regulator at this stage. Should have been earlier.\n", - ind); - LOG(logERROR, (mess)); - return FAIL; - } - } + return OK; +} + +int validateDACValue(enum DACINDEX ind, int dacval, char *mess) { // validate min value - if (val < 0) { - // dacs only: allow power down value (-100) - if ((ind < NDAC_ONLY && val != LTC2620_D_GetPowerDownValue()) || - // power regulators: allow no negative values - (ind >= NDAC_ONLY)) { - sprintf(mess, "Could not set DAC %d. Invalid value %d\n", ind, val); - LOG(logERROR, (mess)); - return FAIL; - } + if (dacval < 0 && dacval != LTC2620_D_GetPowerDownValue()) { + sprintf( + mess, + "Could not set DAC %d. Input value %d must be positive or -100.\n", + ind, dacval); + LOG(logERROR, (mess)); + return FAIL; } - if (val == LTC2620_D_GetPowerDownValue()) - return OK; - // validate max value/ vlimit - - // only dacs here in mV - if (mV) { - if (val > DAC_MAX_MV) { - sprintf(mess, - "Could not set DAC %d. Input %d mV exceeds max dac " - "value %d mV\n", - (int)ind, val, DAC_MAX_MV); - LOG(logERROR, (mess)) - return FAIL; - } - if (vLimit > 0 && val > vLimit) { - sprintf(mess, - "Could not set DAC %d. Input %d mV exceeds vLimit %d mV\n", - ind, val, vLimit); - LOG(logERROR, (mess)) - return FAIL; - } - return OK; - } - - // dacs and power regs - if (val > LTC2620_D_GetMaxInput()) { + // validate max value + if (dacval > LTC2620_D_GetMaxInput()) { sprintf(mess, - "Could not set DAC %d. Input %d exceeds max dac value %d\n", - ind, val, LTC2620_D_GetMaxInput()); + "Could not set DAC %d. Input value %d exceeds maximum %d \n", + ind, dacval, LTC2620_D_GetMaxInput()); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess) { + // validate min value + if (voltage < 0) { + sprintf(mess, + "Could not set DAC %d. Input value %d cannot be negative\n", + ind, voltage); + LOG(logERROR, (mess)); + return FAIL; + } + // validate max value + if (voltage > DAC_MAX_MV) { + sprintf( + mess, + "Could not set DAC %d. Input value %d mV exceeds maximum %d mV\n", + ind, voltage, DAC_MAX_MV); + LOG(logERROR, (mess)); + return FAIL; + } + // validate vlimit + if (vLimit > 0 && voltage > vLimit) { + sprintf(mess, + "Could not set DAC %d. Input %d mV exceeds vLimit %d mV\n", ind, + voltage, vLimit); LOG(logERROR, (mess)) return FAIL; } - // vlimit check for only dacs, convert to mV (power regs checked before) - if (vLimit > 0 && ind < NDAC_ONLY) { - int dacmV = 0; - if (LTC2620_D_DacToVoltage(val, &dacmV) == FAIL) { - sprintf(mess, - "Could not set DAC %d. Could not convert input %d " - "to mV\n", - (int)ind, val); - LOG(logERROR, (mess)); - return FAIL; - } - if (dacmV > vLimit) { - sprintf(mess, - "Could not set DAC %d. Input %d (%d mV) exceeds " - "vLimit value %d\n", - ind, val, dacmV, vLimit); + return OK; +} + +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess) { + *retval_dacval = -1; + // normal dacs + if (ind < NDAC_ONLY) { + if (LTC2620_D_VoltageToDac(voltage, retval_dacval) == FAIL) { + sprintf( + mess, + "Could not set DAC %d. Could not convert %d mV to dac units.\n", + ind, voltage); LOG(logERROR, (mess)); return FAIL; } + return OK; } + // power dacs + if (ConvertToDifferentRange( + POWER_RGLTR_MIN, POWER_RGLTR_MAX, LTC2620_D_GetMaxInput(), + LTC2620_D_GetMinInput(), voltage, retval_dacval) == FAIL) { + sprintf(mess, + "Could not set DAC %d. Could not convert %d mV to dac units.\n", + ind, voltage); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess) { + *retval_voltage = -1; + // normal dacs + if (ind < NDAC_ONLY) { + if (LTC2620_D_DacToVoltage(dacval, retval_voltage) == FAIL) { + sprintf( + mess, + "Could not get DAC %d. Could not convert %d dac units to mV\n", + ind, dacval); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; + } + // power dacs + if (ConvertToDifferentRange( + LTC2620_D_GetMaxInput(), LTC2620_D_GetMinInput(), POWER_RGLTR_MIN, + POWER_RGLTR_MAX, dacval, retval_voltage) == FAIL) { + sprintf(mess, + "Could not get DAC %d. Could not convert %d dac units to mV\n", + ind, dacval); + LOG(logERROR, (mess)); + return FAIL; + } + return OK; +} + +int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess) { + *retval = -1; + if (validateDACIndex(ind, mess) == FAIL) + return FAIL; + + int dacval = dacValues[ind]; + if (dacval == LTC2620_D_GetPowerDownValue()) { + LOG(logWARNING, ("DAC %d is in power down mode.\n", ind)); + *retval = dacval; + return OK; + } + + if (mV) { + if (convertDACValueToVoltage(ind, dacval, retval, mess) == FAIL) + return FAIL; + return OK; + } + + *retval = dacval; + return OK; +} + +int setDAC(enum DACINDEX ind, int val, bool mV, char *mess) { + LOG(logINFO, + ("Setting DAC %d: %d %s \n", ind, val, (mV ? "mV" : "dac units"))); + + if (validateDACIndex(ind, mess) == FAIL) + return FAIL; + + int dacval = val; + if (mV) { + if (validateDACVoltage(ind, val, mess) == FAIL) + return FAIL; + + if (convertVoltageToDACValue(ind, val, &dacval, mess) == FAIL) + return FAIL; + } + + if (writeDACSpi(ind, dacval, mess) == FAIL) + return FAIL; return OK; } -int setDAC(enum DACINDEX ind, int val, int mV, char *mess) { - if (isDACValid(ind, val, mV, mess) == FAIL) +int writeDACSpi(enum DACINDEX ind, int dacval, char *mess) { + if (validateDACValue(ind, dacval, mess) == FAIL) return FAIL; - LOG(logINFO, ("Setting dac[%d]: %d %s \n", (int)ind, val, - (mV ? "mV" : "dac units"))); - - // dacs only, mV, convert to dac value - int dacval = val; - if (mV && ind < NDAC_ONLY) { - if (LTC2620_D_VoltageToDac(val, &dacval) == FAIL) { - sprintf( - mess, - "Could not set DAC %d. Could not convert %d mV to dac units.\n", - ind, val); - LOG(logERROR, (mess)); - return FAIL; - } - } - if (LTC2620_D_SetDACValue((int)ind, dacval) == FAIL) { - sprintf(mess, "Could not set DAC %d. Failed to convert\n", ind); + sprintf(mess, "Could not set DAC %d.\n", ind); LOG(logERROR, (mess)); return FAIL; } @@ -1286,42 +1338,6 @@ int setDAC(enum DACINDEX ind, int val, int mV, char *mess) { return OK; } -int getDAC(enum DACINDEX ind, int mV, int *retval, char *mess) { - // validate index - if (ind < 0 || ind > NDAC) { - sprintf(mess, "Could not get DAC %d. Invalid index.\n", ind); - LOG(logERROR, (mess)); - return FAIL; - } - // validate mV - if (mV && ind >= NDAC_ONLY) { - sprintf(mess, - "Could not get DAC %d. Cannot convert to dac units for power " - "regulator at this stage. Should have been earlier.\n", - ind); - LOG(logERROR, (mess)); - return FAIL; - } - // get in dac units - if (!mV) { - LOG(logDEBUG1, ("Getting DAC %d : %d dac\n", ind, dacValues[ind])); - *retval = dacValues[ind]; - return OK; - } - // convert to mV - *retval = -1; - if (LTC2620_D_DacToVoltage(dacValues[ind], retval) == FAIL) { - sprintf(mess, - "Could not get DAC %d. Could not convert %d dac units to mV\n", - ind, dacValues[ind]); - LOG(logERROR, (mess)); - return FAIL; - } - LOG(logDEBUG1, - ("Getting DAC %d : %d dac (%d mV)\n", ind, dacValues[ind], *retval)); - return OK; -} - int getVLimit() { return vLimit; } int setVLimit(int val, char *mess) { @@ -1334,20 +1350,58 @@ int setVLimit(int val, char *mess) { return OK; } -int isPowerValid(enum PWRINDEX ind, int val, char *mess) { +int validatePower(enum PWRINDEX ind, int val, char *mess) { char *powerNames[] = {PWR_NAMES}; - + // validate min value int min = (ind == PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN; - int max = POWER_RGLTR_MAX; - // also checking vlimit if set - if (vLimit > 0 && vLimit < max) - max = vLimit; - - if (val != 0 && (val < min || val > max)) { + if (val < min) { sprintf( mess, - "Could not set %s. Invalid value. Must be between %d and %d mV\n", - powerNames[ind], min, max); + "Could not set %s. Input value %d mV must be greater than %d mV.\n", + powerNames[ind], val, min); + LOG(logERROR, (mess)); + return FAIL; + } + // validate max value + if (val > POWER_RGLTR_MAX) { + sprintf( + mess, + "Could not set %s. Input value %d mV must be less than %d mV.\n", + powerNames[ind], val, POWER_RGLTR_MAX); + LOG(logERROR, (mess)); + return FAIL; + } + // validate vlimit + if (vLimit > 0 && val > vLimit) { + sprintf(mess, "Could not set %s. Input %d mV exceeds vLimit %d mV\n", + powerNames[ind], val, vLimit); + LOG(logERROR, (mess)) + return FAIL; + } + return OK; +} + +// for power rail index and name debugging +int getPowerIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex, char *mess) { + *pwrIndex = 0; + switch (ind) { + case D_PWR_IO: + *pwrIndex = PWR_IO; + break; + case D_PWR_A: + *pwrIndex = PWR_A; + break; + case D_PWR_B: + *pwrIndex = PWR_B; + break; + case D_PWR_C: + *pwrIndex = PWR_C; + break; + case D_PWR_D: + *pwrIndex = PWR_D; + break; + default: + sprintf(mess, "Index %d has no power index\n", ind); LOG(logERROR, (mess)); return FAIL; } @@ -1421,143 +1475,41 @@ int getPowerRail(enum PWRINDEX ind, int *retval, char *mess) { return OK; } -// for power rail index and name debugging -int getPowerIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex, char *mess) { - *pwrIndex = 0; - switch (ind) { - case D_PWR_IO: - *pwrIndex = PWR_IO; - break; - case D_PWR_A: - *pwrIndex = PWR_A; - break; - case D_PWR_B: - *pwrIndex = PWR_B; - break; - case D_PWR_C: - *pwrIndex = PWR_C; - break; - case D_PWR_D: - *pwrIndex = PWR_D; - break; - default: - sprintf(mess, "Index %d has no power index\n", ind); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertPowerRegDACtoVoltage(enum PWRINDEX ind, int val, int *retval, - char *mess) { - char *powerNames[] = {PWR_NAMES}; - if (ConvertToDifferentRange(LTC2620_D_GetMaxInput(), - LTC2620_D_GetMinInput(), POWER_RGLTR_MIN, - POWER_RGLTR_MAX, val, retval) == FAIL) { - sprintf(mess, "Could not get %s. Could not convert %d dac to mV\n", - powerNames[ind], val); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int convertPowerRegVoltagetoDAC(enum PWRINDEX ind, int val, int *retval, - char *mess) { - char *powerNames[] = {PWR_NAMES}; - if (ConvertToDifferentRange(POWER_RGLTR_MIN, POWER_RGLTR_MAX, - LTC2620_D_GetMaxInput(), - LTC2620_D_GetMinInput(), val, retval) == FAIL) { - sprintf( - mess, - "Could not set %s. Invalid value %d mV to convert to dac units.\n", - powerNames[ind], val); - LOG(logERROR, (mess)); - return FAIL; - } - return OK; -} - -int initPower(enum DACINDEX ind, char *mess) { - if (ind == D_PWR_EMPTY) - return OK; - - enum PWRINDEX pwrIndex = 0; - if (getPowerIndex(ind, &pwrIndex, mess) == FAIL) - return FAIL; - - char *powerNames[] = {PWR_NAMES}; - int dacval = 0; - int min = (ind == D_PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN; - LOG(logINFO, ("Initializing %s to %d mV (power disabled)\n", - powerNames[pwrIndex], min)); - - if (convertPowerRegVoltagetoDAC(pwrIndex, min, &dacval, mess) == FAIL) - return FAIL; - - if (setDAC(ind, dacval, 0, mess) == FAIL) - return FAIL; - - return OK; -} - int getPower(enum DACINDEX ind, int *retval, char *mess) { enum PWRINDEX pwrIndex = 0; - *retval = -1; - - // validate index if (getPowerIndex(ind, &pwrIndex, mess) == FAIL) return FAIL; - // powered enable off - int pwrRetval = 0; - if (getPowerRail(pwrIndex, &pwrRetval, mess) == FAIL) + // if powered off, return 0 + if (getPowerRail(pwrIndex, retval, mess) == FAIL) return FAIL; - if (pwrRetval == 0) { - *retval = 0; + if (*retval == 0) { return OK; } - // mV - if (convertPowerRegDACtoVoltage(pwrIndex, dacValues[ind], retval, mess) == - FAIL) + if (getDAC(ind, true, retval, mess) == FAIL) return FAIL; - return OK; } int setPower(enum DACINDEX ind, int val, char *mess) { enum PWRINDEX pwrIndex = 0; - char *powerNames[] = {PWR_NAMES}; - - // validate index if (getPowerIndex(ind, &pwrIndex, mess) == FAIL) return FAIL; - // validate values (invalidate power down) - if (isPowerValid(pwrIndex, val, mess) == FAIL) - return FAIL; - + char *powerNames[] = {PWR_NAMES}; LOG(logINFOBLUE, ("Setting %s to %d mV\n", powerNames[pwrIndex], val)); + if (validatePower(pwrIndex, val, mess) == FAIL) + return FAIL; if (DisablePowerRail(pwrIndex, mess) == FAIL) return FAIL; - - // convert to dac units - int dacval = val; if (val != 0) { - if (convertPowerRegVoltagetoDAC(pwrIndex, val, &dacval, mess) == FAIL) + if (setDAC(ind, val, true, mess) == FAIL) return FAIL; - - LOG(logINFO, ("Setting %s (DAC %d): %d dac (%d mV)\n", - powerNames[pwrIndex], dacval, val)); - if (setDAC(ind, dacval, 0, mess) == FAIL) - return FAIL; - if (EnablePowerRail(pwrIndex, mess) == FAIL) return FAIL; } - return OK; } diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h index 3d5b10add..552819c14 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h @@ -6,6 +6,7 @@ #include "arm64.h" #include "programViaArm.h" +#include #include // FILE #include #include @@ -119,25 +120,28 @@ int64_t getMeasurementTime(); int setModule(sls_detector_module myMod, char *mess); // parameters - dac, adc, hv -int isDACValid(enum DACINDEX ind, int val, int mV, char *mess); -int setDAC(enum DACINDEX ind, int val, int mV, char *mess); -int getDAC(enum DACINDEX ind, int mV, int *retval, char *mess); +int validateDACIndex(enum DACINDEX ind, char *mess); +int validateDACValue(enum DACINDEX ind, int dacval, char *mess); +int validateDACVoltage(enum DACINDEX ind, int voltage, char *mess); +int convertVoltageToDACValue(enum DACINDEX ind, int voltage, int *retval_dacval, + char *mess); +int convertDACValueToVoltage(enum DACINDEX ind, int dacval, int *retval_voltage, + char *mess); +int getDAC(enum DACINDEX ind, bool mV, int *retval, char *mess); +/** @param val value can be in mV or dac units */ +int setDAC(enum DACINDEX ind, int val, bool mV, char *mess); +/** @param dacval in dac units */ +int writeDACSpi(enum DACINDEX ind, int dacval, char *mess); + int getVLimit(); int setVLimit(int val, char *mess); +int validatePower(enum PWRINDEX ind, int val, char *mess); +int getPowerIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex, char *mess); int getPowerRailMask(enum PWRINDEX ind, uint32_t *mask, char *mess); int EnablePowerRail(enum PWRINDEX ind, char *mess); int DisablePowerRail(enum PWRINDEX ind, char *mess); int getPowerRail(enum PWRINDEX ind, int *retval, char *mess); - -int isPowerValid(enum PWRINDEX ind, int val, char *mess); -int getPowerIndex(enum DACINDEX ind, enum PWRINDEX *pwrIndex, char *mess); - -int convertPowerRegDACtoVoltage(enum PWRINDEX ind, int val, int *retval, - char *mess); -int convertPowerRegVoltagetoDAC(enum PWRINDEX ind, int val, int *retval, - char *mess); -int initPower(enum DACINDEX ind, char *mess); int getPower(enum DACINDEX ind, int *retval, char *mess); int setPower(enum DACINDEX ind, int val, char *mess); diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 81b54c953..a8bf98bf9 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -3,10 +3,10 @@ /** API versions */ #define APILIB "0.0.0 0x250909" #define APIRECEIVER "0.0.0 0x250822" -#define APICTB "0.0.0 0x260210" +#define APICTB "0.0.0 0x260213" #define APIGOTTHARD2 "0.0.0 0x260212" -#define APIMOENCH "0.0.0 0x260212" -#define APIEIGER "0.0.0 0x260212" -#define APIXILINXCTB "0.0.0 0x260210" -#define APIJUNGFRAU "0.0.0 0x260212" -#define APIMYTHEN3 "0.0.0 0x260212" +#define APIMOENCH "0.0.0 0x260212" +#define APIEIGER "0.0.0 0x260212" +#define APIXILINXCTB "0.0.0 0x260213" +#define APIJUNGFRAU "0.0.0 0x260212" +#define APIMYTHEN3 "0.0.0 0x260212"