From e3947d8c5fbc98ad9617a8a70abd39e2b21ad285 Mon Sep 17 00:00:00 2001 From: Carlos Jenkins Date: Fri, 22 Feb 2013 17:47:54 +0100 Subject: [PATCH] Implemented most of the motor controller inside an S-Function. Phase shifted, don't know why yet. --- Motor controller/decoder.c | 205 ++++++++++++++++++++++++++ Motor controller/motor_controller.slx | Bin 21954 -> 21942 bytes 2 files changed, 205 insertions(+) create mode 100644 Motor controller/decoder.c diff --git a/Motor controller/decoder.c b/Motor controller/decoder.c new file mode 100644 index 0000000..e6fb48c --- /dev/null +++ b/Motor controller/decoder.c @@ -0,0 +1,205 @@ +/* + * Copyright (C) 2013 Czech Technical University in Prague + * + * Authors: + * - Carlos Jenkins + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * File : decoder.c + * Abstract: + * Motor position and rotation decoder algorithm S-Function for Simulink. + * + * I A Ap B Bp | O Err + * ---------------------------- + * 00) 0 0 0 0 | 0 f + * 01) 0 0 0 1 | -1 f + * 02) 0 0 1 0 | +1 f + * 03) 0 0 1 1 | 0 f + * 04) 0 1 0 0 | +1 f + * 05) 0 1 0 1 | -2 t + * 06) 0 1 1 0 | -2 t + * 07) 0 1 1 1 | -1 f + * 08) 1 0 0 0 | -1 f + * 09) 1 0 0 1 | -2 t + * 10) 1 0 1 0 | -2 t + * 11) 1 0 1 1 | +1 f + * 12) 1 1 0 0 | 0 f + * 13) 1 1 0 1 | +1 f + * 14) 1 1 1 0 | -1 f + * 15) 1 1 1 1 | 0 f + * + */ + +#define S_FUNCTION_NAME decoder +#define S_FUNCTION_LEVEL 2 + +#include "simstruc.h" + +/* Static data */ +static int8_T DEC_TABLE[16] = { + 0, -1, +1, 0, +1, -2, -2, -1, -1, -2, -2, +1, 0, +1, -1, 0 + }; + +/* Global variables */ +boolean_T a; +boolean_T b; +boolean_T ap = false; +boolean_T bp = false; + +boolean_T err = false; +real_T acc = 0.0; + + +/* Function: mdlInitializeSizes =============================================== + * Abstract: + * Setup sizes of the various vectors. + */ +static void mdlInitializeSizes(SimStruct *S) +{ + /* Configure parameters */ + ssSetNumSFcnParams(S, 0); + if(ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) { + return; + } + + /* Configure input ports */ + if(!ssSetNumInputPorts(S, 2)) { + return; + } + ssSetInputPortWidth(S, 0, 1); /* Sensor A */ + ssSetInputPortDataType(S, 0, SS_BOOLEAN); + ssSetInputPortDirectFeedThrough(S, 0, 1); + ssSetInputPortRequiredContiguous(S, 0, 1); + + ssSetInputPortWidth(S, 1, 1); /* Sensor B */ + ssSetInputPortDataType(S, 1, SS_BOOLEAN); + ssSetInputPortDirectFeedThrough(S, 1, 1); + ssSetInputPortRequiredContiguous(S, 1, 1); + /* Contiguous is required so port can be + * accessed with ssGetInputPortSignal + */ + + /* Configure output ports */ + if(!ssSetNumOutputPorts(S, 2)) { + return; + } + ssSetOutputPortWidth(S, 0, 1); /* Output */ + ssSetOutputPortDataType(S, 1, SS_DOUBLE); + ssSetOutputPortWidth(S, 1, 1); /* Error flag */ + ssSetOutputPortDataType(S, 1, SS_BOOLEAN); + + /* Configure sample time */ + ssSetNumSampleTimes(S, 1); + + /* FIXME: Check the following lines, not sure what they does. */ + /* specify the sim state compliance to be same as a built-in block */ + ssSetSimStateCompliance(S, USE_DEFAULT_SIM_STATE); + + /* Take care when specifying exception free code - see sfuntmpl_doc.c */ + ssSetOptions(S, + SS_OPTION_WORKS_WITH_CODE_REUSE | + /*SS_OPTION_EXCEPTION_FREE_CODE |*/ + SS_OPTION_USE_TLC_WITH_ACCELERATOR); +} + + +/* Function: mdlInitializeSampleTimes ========================================= + * Abstract: + * Specifiy that we inherit our sample time from the driving block. + */ +static void mdlInitializeSampleTimes(SimStruct *S) +{ + ssSetSampleTime(S, 0, INHERITED_SAMPLE_TIME); + ssSetOffsetTime(S, 0, 0.0); + ssSetModelReferenceSampleTimeDefaultInheritance(S); +} + +/* Function: mdlOutputs ======================================================= + * Abstract: + * o = table[i] + */ +static void mdlOutputs(SimStruct *S, int_T tid) +{ + /* IO ports pointers */ + boolean_T* inaprt = (boolean_T*) ssGetInputPortSignal(S, 0); + boolean_T* inbprt = (boolean_T*) ssGetInputPortSignal(S, 1); + real_T* outprt = (real_T*) ssGetOutputPortSignal(S, 0); + boolean_T* errprt = (boolean_T*) ssGetOutputPortSignal(S, 1); + + /* Reset variables */ + err = false; + a = inaprt[0]; + b = inbprt[0]; + + /* Assemble new input */ + int8_T input = 0b0000; + if(a) { + input |= 0b1000; + } + if(ap) { + input |= 0b0100; + } + if(b) { + input |= 0b0010; + } + if(bp) { + input |= 0b0001; + } + ssPrintf("Input computed: %d %d %d %d = %d\n", a, ap, b, bp, input); + + /* Check input out of bounds */ + if((input < 0) || (input >= 16)) { + ssPrintf("Out of bounds inputs in decoder: %d\n", input); + input = 0; + err = true; + } + + /* Check decoder valid entry */ + int8_T value = DEC_TABLE[input]; + if(value == -2) { + ssPrintf("Invalid inputs in decoder: %d %d %d %d\n", a, ap, b, bp); + err = true; + } + + /* Output accumulated value */ + acc += value; + *outprt = (real_T) acc; + ssPrintf("New accumulated value was computed: %6.2f.\n", acc); + + /* Set or clear error flag */ + *errprt = err; + + /* Save values */ + ap = a; + bp = b; +} + + +/* Function: mdlTerminate ===================================================== + * Abstract: + * No termination needed, but we are required to have this routine. + */ +static void mdlTerminate(SimStruct *S) +{ +} + + + +#ifdef MATLAB_MEX_FILE /* Is this file being compiled as a MEX-file? */ +#include "simulink.c" /* MEX-file interface mechanism */ +#else +#include "cg_sfun.h" /* Code generation registration function */ +#endif + diff --git a/Motor controller/motor_controller.slx b/Motor controller/motor_controller.slx index 1857bc0ccc59c9bb5e8e2e5a7753e4a24aa6c2c1..9bca76a0474d10c33ab2c70bd4214922368f84b7 100644 GIT binary patch delta 21159 zcmZ^KQ*@?H5N7OTGO=yjw#_fLor#k-6HIJpV%xSgv7Jn8Yr_3^_w2=RQLc2S$W-k$L17@Hd03g1mq68{12f@sU9jCmj9Z5)^SpLT<|I8l)h7q27=KSeze+ z#s%bk>#95PuCiI%JzW(pJvzf zcrslPMbTApM8fu{k2!lgjTlu@iYek27^wb50tzP-#cLPceZAA3eSdW~BH1^rS1hE; z8=-j|i*NrbYj=B-hIk;m3Av}(!S6k>n11q^y*-tE6b7VLk0mRWa8O%4DhCGigjQc% znMfwubDhJ+sT~v7+B{;UuSs9$7MXNnV>i6Q{NKhOA~4ie#Rdb@#Z77hCj@jtwKep* zU?fCDIX{-^YCQ0 z72J`8|8@WEjlFQa^sYLsn&jyCjKWr(HF+x(nXOkH55dWtCrUr{Mk5fXoCztu{2{iS zkrQ4^&C1Tj<>Bn?jKG)|%exLLu!+m$-;k!6w zeKGHs=RXEvdo*=-cLVOtR9aY3R{q(698APbl@%W)7ul&fM9xk5l@%4X4j*u`d%L^w zePpBWr*8*EYH0ZL>O>xISuwU&@Pv`B`F=9;(rGs;2n1F~#~C@AY0Q4c&9*LK9vfX; z+%ucv!27}FaVxiWZ)@jlmEJFOjeiQMAl;F#ZxRu^2GXl>e}Nn4E~)$BaoICv@Ah`B z&rch55CY2xZ0o|Uc%_3Cy-Qq3p8_)zglRI>(Xk$cvZve5*x*Q~r(bb{RGJ&jbxtdp!=G@3@2$FJABbLv_Exn$1 zclYdnpm1*H5df!o{XPZ7?5(YF$ShV#ki{lXw(xv`uYDISk${Yn!o|xyrsH?iB%?&V z_YYhGH4lJ7DKDmH!Oh9(n@|&IK0PU=xVS`W@k>MJ1sp=0*d@B|`C*YB$J4-?&0Mjn zywvGMKMh>5&$>(dv<1PBHBMuK}QM?4`2K< zH{PzSuIi%3YCo=>mv}tvOt#jrd!FW@slMLj#|K!1p<#=XX_ARjx@(SWjby$GUZ@Yj zxDpu>4fzOFC;RW+g8L}kCN9aL&FS@?Udew*PpgeCLj1qiuFhY-xcqGoDfsb!V}{g; z2lMte)BxejfB!AvymcZFbj^q7YtBgBJIiFh%{$UC`r6vsepaI!bXb=Y|Lun7cmG~Zq5ZpWyWV^ z@JXHadRo1B5sE{cTMB-kzbP z+_|YAt?OJ4Y^6WvYXo?*xe!D}wIkv*OMhDnNApJJ&G==A?Yp0jf(eZ-2_eztZ zM45-r2`?$3a-57=Ik}vo#mmVAX=pSBnOc7nCqZo=RG1z*IVXI6?dWhKEj!tqE{Q(} zLq%ZXCBX0p}TNCn8( zHaCyQ|Kwr%$j;6lae(C@Kub$YJD8k*s8WGKF0=U-)kiq@jAn41tFfQp^PU{lR_o+6 z7Wh3qCo5}l>@$8qG?HJ=ZtHQ4B2)`9H7jdUqGUpHs(&Pv_OE0g6Mi%$EqPa47sH|( z8(Tp)DjbbnlxY!-Yjw_H@lsRkF%KZ%74S{>zoj-nN%OM4)0^M5>3_5#&&!qNp zt7~9@=z^7zlas>A$E*-)l{i1qB5qqtS{cN#CEZ zcMMbyz}^NOADPII-fyCZhCZhD2vC%!`?L@bl3^r0?RHPs*FiC~xebom+ACX~o{*r8 z$S6V)(!brIe&G{MD)r6&00VsB=(o5(%(%F7OpEF(*;%={x#@ZH1J>APT7sjJ9)7=b zhmPEkYkcI)ZPI2qTATPc4akJIaz%H-eR^~ECMg$KO=@!&1{RIEQltQTALa0ii?=vd zc#4PaKTO&Ebl5YU5ztjE)DMil63(&;^X*x%qH@Tl<3Y}Uim=5wfdQIELYlbg5f-_^ zMB$AOA%ZN{m9XVQ5N;QKiWK49a(@j;_b{O0l*K%0q2UgYMRlmc=E^Z(o3x;o{af+!TIN=sgAP)Z~ucG;;X8JL3XxY^KTCjNu51aI#@v?Ey0 z5ItI2S4P>yC?;SieNsGDNXW>tEdCm1>J*huwuu5D9yn_t#ggbp%@j3@nc{;}vy3VJ zSBI;2LofrQX1ueD3$Au}eBrNd1@aLkTs_0u+5FQuDo&2D#5JzU=ir#xRz)8Bv#Rmb zvGT>_Gu|2#@o-Q6R zP~AL&Q=+0pLzz5RI87UE(+rnJCL7XEx+pAqih0!`;me1HhR`V<^=ZwIdV@cu!D@n6dv?xnj49FAhZ%wz+F*u2_bFwBRXTE;!L(wZAN zKoT#7`Y+NWcWjmuPbC(p;~;|(QTHBPOy<67^9RUpgK-?h`ly*!^2v{7G$*N-d$0lx zMF+GHuMCh&v%A-q$R4-5yMgM|zjGe^H8q!B+L(6J4$Mt#PO(Hb)dD*0FD`-@J#in# zXRMo=n#@<;3U$OzPEU57c?c2z+g|=D&jxd)P{M3ZAx{1fh295Z$&i{$YO}IiHFSdj?Y9zK>bea3XJo?R&G(~Z zc3Q$e?cJbb8~ZXDIi(g%lXTZ7RSl%HFb*gqA$4U_MTYWP?EQW5rDcfcg{=iQKfld| z4d4DtrjWei;>*kPU@P+;zkg`Yjz(8W_2IS8MxZKO@6q9SHpj6o#Ot5STJ|EprO!AB4YyO_*62HYE+|yI37Udil z_gQ@-BVpi^fO`av7J;^^mYWF&cs-!aQDyjdG(C;+r1Lyp$xZ+DAx($jM~TFu4Uej= z%Nt?CTgfO<8F~_tj=MS zJArx5IZzk5iP1a7RZyDxE*ke)RQuS9=6`=s9>20PX&Z8q_XY`}k@gnJz_^FOu(2ob zu5MI<1vfd|82{9T9$jAMienlD-G}0An4L?13y+Jz-W&?CzC!hD!v=EB9|l!Jb`N6< zlNOG04{HP;E|JR!MOEki14~e^U{ptRW`mD#eFK8Jy1JmhzanxBYsKcrhkuYK0`xv3 zH?|HRIO47|Hoe1}R@m;YmGhiGMBl+!tx+o%mjFd$U>etf5-Te!DJiKpg<^@wu@r~> z(RK%&6UA!0T{yV2SaBi+80F2|T_}UmLOilhu6=Y&! z5`pgu-09|*^v0h+g+DYlHznJuZvlqr_liK#s#cK0>9!ls^^3dbPc7$aKJ|*lU*32Y z)K4#FettQ=bBt!#3+9=TqvUH!rWZQfZZ+*)$Es#Q2p9zg1&b5v3k&~R!3wZp*^`nm zUQ({)8(KjcfO}I@mCf9jKZNgFt93n{Y;R{LIoP;CHhcv&E*{S ze?pI@G9C!@%PU1p5MFmJ;ZYpQ>3e$DcSuP~50A0jT!gPrJ-GcxOeuflVVef=$cl8C|B%SUHKF0}T0X1cpl2t#E;h9bBd9{5e01ZYvv?k^MO)_k2+g!Hq5}=IQLE z;}|hLJ-sb??x#M<|HisdB9>oNF3Wc70E6%MbgVjkaekMr%kEl%b!cAV7w2{r00qMj>R{ z0byVJZJTBizn<>cnYzdDMT6#9gKi~>Uy}S97+%Vy;hjg^#z20m#=2h)G-K)De|-&+ z$dml6ePk6;^5&AeziIRGfq*pW%NC0!77}zwHY}Q~z{kTwh_27jg^9*)gWZ$SLO}__ z30j`%GuY7X^=9vI@$YDA?eulkQ$!tkfMznrZOAn3!tv{v#^okCVB0Sdz1&T zCX4UP%zRrN#n#t0uGBf}p&r``7Y^7we2sP{-JrM*JvT)(rGBIi_Z1QnYGaM%aow6C z@$iLITMW5hn4RTW$~>|sa*W3I`*&vnMBjQZ$%&n$Ft#oCn-E4{x6HZ=SfPaW6$%w3GV9A}*l2$gEOJLTiIft!LMx_^3X)ZSbQE;4D?Ee@-Uh ziTeEgy5YRKnzD54j9>4^aIk8$UOtN$e`<%@#?BmA@xJX+f44RQ;C}gwS%GQa4O6yY1lB7Adj zSazjIEF2uLhH-kJZqu$n%RW9nJNPe7F2o^9ZzI|e2@nGcOujJip58LRGIraF-1BI% z2*yeX9Dn@eS}o&cH!GE=Z;hF3CZGM6KCX=X+MLbOCd$~45}KVkdt9mpq2u+Wq$H|) zrw9_3i(V;_Qf%z491E~tT1fLDTllUuOU8w-*`>z$#2roTl5{C?zmd8kbK_=`l0}Vs zo12^V(9vXW2C1o$ZC?)o>chpn*x1;)8h?}SZn|qqg>bNQueX1g?`)Nxf873SP0R^+ z-Ao_l_vGZL+LKjuy+2%e1Q2lvX8&ZU=*Z6pK2UX@iEmX4&v6o#DRQ!sBb~6S1B03x zi{)eDJ#V+CJ6`21Ip3~MNJ}x8RQK*Yd2TRm&(5d3)Uh)^>PE2vr=6ad7)q=NK~&XM zXUrn%Dfsr)&99|2b%}baW=$7MF-|BebQtay@c(f6x`#6e z=wXI(N^{$HbS?ju4*jiXVqkz`ui#Aaer+0n9|V^%sC{U)BDZv#R}JA0<@bwjV2WF* z7lc4F=*2Av1F<_r#_oKNq)?u648#_PvlHfAn3k~IzS@t1WmI`FCg-$V|0` zVT}n0=s&gdYQ>NeOo^NQZvA71k5*4nc4^K}=No4q?8LbLGS%Sgj zZcwVuLSrTSU;GBokB4!lC>WNua5KvT&HITHqozluAbp?HWDXCw$ z0Mb+U*-pMq@|sJag2u|x$jGy8SjZf@dX?K)<`?L|RtgGkq4fsGp}DRhnGB9L`acml(D$6W$nf1Y|ACz1!lN78iQ>CKPUYD_^JK<^|b% zyCHwCYCwcmeI*zNJe5UAVC($?MNL0i!VV9NTB+-u$`l z#oIr4hQ*v81U@zs?fCW{CaC`2KitU%u*E><+6$GHS1Ew#JyS0|Dxb1d0L;+en1HL$ zTfAZX_yU@gcp2A4Jm>?q?VpnmC;&cEN$o{i>fk4Vg8i$J6~fmC{&f+TcLzxvTDq`o z1D1@C5j7{ME94XlZ1yd6bGKIUJPGk2VV#9>(O>Pin9WN}@;jE``n0P15 zb1c+(XB7ZV0*6WyMz@=c{+|It6CF#xZLlcGxE?Hxaj7I#uNUAiO(yBW=w>ZaIG1I> zg=$UatHKojORQxHoKdFxkNx5GA2WuPJ1@9uV@kO@ zb=QDvoxNJ&+0Od87ncN5KVI@;!Tict1Q}Ip(E{Tb!2@!x)Pwcx#(>fYb2a3P!A^^G zp(=3FHa$f6UOmB5!(G&?{pmpYPD zdRbft3f2@!m5#Go+&&@v9DO!3qzMchJwiXdJDh+Er`g{dRqTr1&t*@ud=g$v zg1JDjhpX-H!ucRm89Sn-lPb#~z^uk#1J%E!;`SYUFte%P8TjYAzH3hMK@fUjFa$#t z5nG;yPFYX=6z${fAczSJo%6b4e@}7CGf?||_p8XIZP12;OT-^`Bl|m&j9jYrI2xr2 z`=15ay#;Vl3idk@>h&=-X82E~L)lb@LyEH7NMW@j7(IvM;*_Y7fOP}{iGJlEMnK6p zhqBHv6U4a3BXHL=4<<*pQ49m-Xu%?eK`+G&MLY^Q5&_lm3%&tC_~; zu_6!51j{~zj$WhI@uyANDV_;*D20!nY!`yF+Z>4m?gOn-Pm!Lp%h4^E^jec*4ckwt#3LnBGvsK~96kI`6#{k`{iR^iN=6tC(! z)<&Rm+iiixwKF8}FU#C0#Wi8q@c=U8*ebx?Rco-3tnNdx+#P6R3%mzTzZEcwqgHL{;2UiJ(I%y{Rur|W=5HBri3N! zQ;Rs=t<@Caba`8^4%t{}a;qGlU??u>kX4O{3-%HLBGB$z_TWlpt#u@u(L&sHf59Dx za~hOJPVNk9i(RofB*~}BD!{a;x~zO@(DKs&Zl4uNr5qX@MH?}n@8uVRr~5G!z2-`v zl@8%Gj=}Xf8B_AGba%_)Q2L<8z?0&HDp(DP`M(WxL0NecDM<8UoFPs3%S$!WbR{Aa zz8C?zU)t+LbL}#H2t3_gV?PgL3YY?%?zwm(P2Fa0o}~?scIp|$>;PyL5w0^`9ABy{ zw_QoJs`6IoNY3^0XF~8MnGn6icV33hwfIWx!;c<#}Bbyg}%7^d;vpO-tc zCk6yeLt8gFi`!00Q0XBdpB>Dmg=AC8#T#7?B0NRtW}QB0PpY9P?lc+(`S!V&gBO3x-G z#`kdU*ZqWxkque3Jqu3gZ}i7;`xavnY2?QAx})NMI@9L!u2lCtP`-OFJlC=wT8UL~ z&&Q&L2r^w3sAVs^#K@Z$Tn0n=d8ZX%R{fB=)9ek!W^1u%Cjtl!eTcZ}EtT@u;4=n6 zaDR;@iOcv0SpdO%{jiDa-q$F8fljbtI~*jO3^my2oOhqBy>RYbRg#L>5A4zGcj%Hl zd_zb23qnmDow114n2g~uYC#n-h`m+{Z{;4#-M@opGX_?S@R`=*W!5Dvfzsf$M0I({ zyeE~15pv`kVwN4G8JOUOuboh-ep(?oa>IGX=&*)kC_sY`#ErkK0=xNtblEK69pH!W z^?h~D^Y$+NA1#d9^mP|wJ4^=oxFBucA9S|n^h63Fr9BQtJeqIiO;eVC`F<(hIEtHv zZ_jU#5idpY=qGIqA^Ju89)^G@IypK?&jX#XZPhlx)Nl*MuWu&h*(n+Laob_>pm<70 z<;=^uhyhzku;vE*Raoo@Y{F0@q$*5^-@DWhWY(Mh;qUKG0;swxeD2}H-_hka$5|ij z9e(xKU>ZielBm^ZsEb=k|^=_8UBs70^ z0>=^3aUQ=qn+48qR}20I$ddc@0vzOAqM3cBa~?5kNSzAunrAay3MvGkjk)pn26!l~ z5iE+%lbIrI6ObB~h`-&KhpdLzE|R=@ShyMPxL3HRZQ@*E1_Z;x&-z=rK54={2>}>< z2;hkCCNUDpBg1i0y=}dr8TpC9n&OFnNVIw+^qS#wF|)xBc40C!hRG&f>hNflu^GRh z?QgxQ?5Jk7anB>;Eq6I7jr7#+HOBXWLLQU|?Bd1;nlUYK_%xgE1?v4qgENb7CK8#H zcGm07k|tbu_>?WB|yb|6eBYvCUuOLL-=qSw=r|OR{{u z@BnSTI1wq?1f=3Qp+Hg=@RPe7^Lv(Uye7uLd6}6*CVOc8{4Ao>sRx0MXEYYJMu5yl z0XA12?783{Zeh+yq>jiITJL?|p&^m?XBvCF7wwbY$}0R62yLwrT+n}Y0ME4az`IsT z7FD~gXM+Gr(W2=YjY`1F`qtaTnbSD?--dKIskkuW_MXgT7HzZqHR=h(!z$&F+#QY- zq^i;wS7)K6*7fWUnEn1DVZ7)iDu74YM`=QOpxO~i_YJE1fVG$)(wS> z6AD=%a5`PQw|nsZBsQ?qsyflj%;MpqMU?z+fk33^+`Rn5AG8bPrp@4Zih^NPqWHyk zS%Eod#3L@H@i``uwdMTqH^{28Iyk{BY3^+`4ZE0W6+v+peW9T?r`-vjbrn|W$$RiQm?Ni@G#3-BAw3#FB%u@Lx*abWwYn%1>-L-|F z*9;t~7c>%iRrPnx&c_f8Xp$xYHTRxJ1PHK#5-D}C_ys%rTz@mbLsKU7!t82vG-)uGnTV% zoEM=BOhEC)N1uVImo1ZuOenMlUjbzvW4-qjj_cyQTF3t`G?=h=i|9E559$2Heei4$ zA779L^Ts@kUgCHJj-KGx3_p@QjhE0!FpIr-gn?@Vtg5t=S>7u9VISvy*JpxmL>c5BH$mz&CjH3Z_mGC1$=%$!61KY*zKL zd#K_Il5W=H4!9tnV@mmx92#=@x=W_Gpo>h3(T8}e0*Qi<%$<6M4OPfZUQ3gQEts+> z9DrOr#&~hS3EXo){pm--D@6R(m~ym%q45~ol%;MLyx&#k14@G2W#)}+?+V`6Y+yFm zmN5#soQc6*5G}C>T$8J_uNjC{4aRQHHf(}x=o`33kZTA-n41u6%lIz-%LqGji z&~KMh!CmhK0c#Ax_WrOVn7h67R*~Nu1;51M^`Cm#cWX+&eWdD13@2+jU@$NmzyRh+ z5Gc8|#-2T(zmn&b6vF==#Ns!t9pLsVeCVr8yDx{bir(u=5*1>p1%8o>{h+s%GL+mr zYmePmsf9=(OynUK}-zdgDl5(>!Q`j`p*)ED1oU4_l2cn zlHP=q&|IfmdGgM==QRg!I`#g!-^0|qr8J0xsSSOgRP`n4J%N#bU@pG-IZCk ze$p9o54+j)97#nM4~$*(F3e4$4!dil03r{^`m^;tcQYcW>vz(6xBdRC<+N`%5u4kv z2X^#2$x0p;T$dtL_RzbeBtTHZdj278{HZ-QXX!rS!pYG4``+t&kQDmltd}yo@V$BK zV|nM=Y*Anl?*vE0l7eaZ_bYpN#-1bDlbg^&dF(2qXCrD|m$hDm4@AR$y~IiyKaLRD zX6{$aEmfi9ACOJI0>7Ybc1owJh8ir>uLV*gn?LISXXVokym9usa^Jz5HW}?ZuJGut4UO z7dd0nV}_Jo$b+tPBnH?hBE0iDt}^p%L3-aR)S`YZ##ShCtp2r)vF@`{Y9*KKAN_Q>31^%=(9$g9SdN z7c)>mrNdi}><&!lGLdJ^@=!V>FCI-XQ82>vk4c2VaNw3g`sLUK^bA$-Rf1I#a&h%* z_{O&&^Z&B5@3V-^;h1SW0;jv_4Y{qx4tU_>9txdpp29WUI@uhHd$MMeUpCPD?=>-9 z%a`A;H8q)G1j zW`-LG_yUgqj9^`$LW?+oz|;lB^7Z;&RfQsibDMv{OwI8tGzjOmp5@RXhxC4Iq9|7| zgQl}9;056;@pDeVWTQm3TilJ8E>&Q)>zSJpi<{{1C~}`{m*o_ybalsn8G2`Yzxu!v zJ=gnjs1}UG;56So7zHNZ9AZP*qOq5mkP#Iy_y8=T0n}5faPELrtm{1_8t?2@OV%7S zcT~X#I-?2E`Lez3zvaO=y`MfVWcqgwX4`6C=mhc5vgtLB7Gy)eH}?31+(hzp5$V&2 zc^AyYwaP2&kzYm>PRi^qB?DdD3bR-kZizbD9)c{J5VSEpw#a_hdb9X+{AyLW<3Ze3 zj|RLQIgje*BXNJ~M5xQJp4+{8wsbe!Qxq4HwbMz(uD@?nQurOTqg8`$8YQ$o_wyNF zE>gFj^V5jezaXhBHD`=M9tOC7-!#=7Bw6y=NkVd2i9YhCB5`~SAQ3s@eLDsr%@@IAD<^n=m)@{)xo`q#DF2#gt zOZgPp$U$)fx136;Wv0eSkgjv;5b_febDR^^7@j<8_C%aCzASSaqgI_Pe$oP3gEIBl zv@7<(Q;fA5TOP@Vxkeb?Byvd#O8aBlIX*eY;DJ3*)_B!6U?Vfy8_`Fr96`%;UI1s4 zik%btj~{xHs=9yf?&d+50vdQmQ5+EL_~Du*`Q?nD;Nl*}lW0^@6*@F&vsm&U&Ko?W zClRv(Y?or?4s5^1wH`7v5wLGFv4;+?$tbMX1GIRd9-3;j49i-U>G-wuUMN8_B)ScIn^;alGAJW^3%3`qn*f6)L75hY z^wM{_UKpHAX^&zvPVJ4xe;4aZZEON(%oflxxx>nmGYqrjgyTnHaAb#QwLEtGH@4I& z!W+v!wUIUZne7A#8?!Gd^oPoHkzxB&8b^eon=Gu7rj2W2Mn4UJYVVtpou+M3okt@@RfGidr; zkvu!oP-QLnfK!S6U-Nwli)Sic4S62b2jS*M@DWFG2{RKxS_G^r(vJyzttSAJxKjWUpsJUX>9hk0gCd%WwXrp>1oDO+L=mR}MZgDcgG*mcfI;)QK00CAF7@h1;`jr_DLyOtiYgP^u?gDUz((|h)md`dg`4>4#G-26=c7?f}9bPw0HQ&SdllPM?So& zz&?rdg+cA56)OySu!@pPdK{c8jnlOHO9d)$>XXA*Ne^6kXA9y!E}B>5Yu`uWcjimT z?DnVNWx2t}s-DS36Mz?R=CX}d0*A#a{oD@&7+2T2?kbX`U7?`G5jQbaE%)O!jsGTK zvJ!}LV)+Y+o@)LK++MhY(Q)66MrFz9ztGt!e*vY&2MPuomUQ;(rJ-F#k~)r2jd0`M zsTHC5`D6Hq*Hz6yqR{wC(>Hf5LR_;%%A|vYi-Ls8<V;O6kUG4u=gp>?~5SIh!zYiY1|wE;fTPR|-c@?LZK zbl?MeHV!niu91D@corDYvR>$l^PGKC0;thgIksdwDq$&cg-r{ZIwldC>Pl+~Q3&Be zAM{;l`smmJ(pct2>2lOIg$=_5KF|=rom9mDYSa;d;CyK4jDN!`WtBFj5JpZ7dpy1V zLu*s2BWDObz7R)%dZS_{CA7F|RZg`btK^UB{Dn|(?t#o^6HJ@Mj^TZ5PJ(jFqYWgj zBs0E_ojhISD z?wXGOx9|~br|B?$b~F#)u>`wO{`A~0S%}G2;tt^3 z!Z~x_FI$KyR^ra#+e-gW_+O`wa<2dX?y&9M2Wd(pG)1-|y7!_#xn|EA4Kzow}QqF8pr|fd7{YE;0XKMb@v|w3co$qsM0B{j(@2woHwgKziUX zzM$#XjMqzH_1<8sGtU==kJy~@om=)te(#ci(wW6tGhyw~ndZH$W032#TQ%=-J686+ ze&w`x4PbFBu+rg{WA~SLrulC3803A`c=_Z1Y~88_p4+u@-t_5b{A*H%78~DC8ppfNH!A|1#7p0PH7e736Q*4Evk?$ny zOI`>%35Y`pSUw0cdYG2k)*Hiz^deUQ`JAugxVqDeu9vw48?IETdWhfEoqwPP`>SQH zUEIvbjHDBptA^;;XP&bZT2{tsByy)4{Y%(0Ll%-L>0%c&@6Bpr{W^DwnPT>A;n-_qjC5pm$3(LGbf!c{Svury0Yx zO~D6Sdb&$O6kAZBWrM-3+CU^j?zi%nk!(J}D1afLDlm}k9}Wd>{IT_lU}tJ?>k3oK z<&LbavW%Kp)PpUh;O8V~o9j4RxUwh3gx%Kz%C(Hn6j9nMecNo}$IAf#UtB7dS;@=Y zQ~eG2+sh7duH$Y|C z0n1ZZcYmSMe~Hx%#~91ruVRtgJD+frA2d}dwN+4x-hjL>je**3FQTXaj)R>^6YyY5 zUcyh$xX|}CV948#)|w3Xy;LGB*1B}HClmG42z?|%$q(1oliPOCt~`9@H+ZsCec(~n zzUp=9HHP0FX1dd_n8b_V{HFP&DP3ZO4oIOEU(h?({635!166QsTz*Gr;<)#mZy-OI zhE|a>U*4>gOVXv$edhz7V!x&=f+c}h#9ii)&!giA*6(3kEcyvpri5NkYUf#%6*q3F zx#S-+koI2790)H9-=2f6WfDKSJ1Wa+!J9`whLty-p9Prywjw|DPJaLO#n?^aY7X%h z#H_g%@Qce^54si5q}cgyrh%hdcT22sMkpb#Q_sU&mx_M76{b1GF1(Rqdv}L*xFwQe z`%bwX`6u?e5amB$Y5_qdbwzcU1LUJ@Ix24$x^!Xx+H=Za!9408z9>7<)X;jWX*cXz zScW$qL3!j~@z#%o>0~xWA}W(<%w$5bR~R6j1c@kv`J1}aiK;8K*l`pAKAvexMe{Ii zbiM|8CJHfXYdz)P3?pbdcxp6o_F3^X*nQ%+_~ve(1Mw4pTi{y=+AwYjwNOy=Lqjb( z|8NX;N+c0!CbgHz+jYAyC_`Oh*?h0k5$hg&*1lFgFL5jGP-%DKN`*h~xW7JV-k?Jk zYSsOET>&C6`R+fqj%?;azkdF*UupZ(+Gvg~TW4s-86Rmi0n8k5z|Zdy?zk#|gyFNP zd{)vCfIPtc>FnEk_61t>1lG4`jm}?+A>O(jopcv=(-_^q$0pSg5?P~dJG*2$D;P2z z8##RXvqHKSb8L>i48y*ADWL$^(J}RP(Bl^MxBX?qJ7|4J?FxbX z+eifV50BOsl&b5m2bMQl<}9tr+QhNMX#?pBSIc7vS%_xQccS6nEm`9wr(o%>5em90;)2 zsx-id`}aViAz>U$t8aBlFu2XS#ipi2e$GB&U$_409~1&v|33Ks`0uW)Mit0Uq#L0* zA&wX~udsLNNO}>XGccOp0=yFtG}BdJO}l_C>Vv%-%V^NoQvZ!cP*4%U$S3?~b5^c> zNU89~gVp=O@*~R(5p4>}r|P>hytF)WF&p5K`h7wE8?p1$+vwPdusfh3%Y3$vxEe%O z?%XrsR=dM-9NW223y4f{mH9Goj&?cSOx}lipH{*~b!cln&&T96RWHProG)N9lG29$ zt?N|7$!EgZHzgcUt`S_c3AN$8F^Qzkqijevv*#D9Lb@8F{1J)zRr=a3~ar4SF9Vs5-MDwkzYSA*N3rG6%Bb+KJnBIoN@=Uf8 zs6=czy>uR@9QYpr_Yny07!40P<#iNxwUG;G=Dw$@&?6`BmN&={k;L|Vf@&H<8kIlV??>f2+-_`wv^5H$Tw=lGe@46}? zMH~rLl{G8Gq@TZhtrCY3O2f4O(n2HJwa3K-#ffl%m<$ykF|1NlT0t4KB6|70m~JlS zf9+LM~am{$~E+sV}sX}6%(Ku`K6$8)yTRoUABO& zORWmWh_36XkjnQ$`Y`CuR)9z)h17j$%7b*G$x%TQ`^hwMhm)KpQ`bln6~g~gnkdaN z9#`Q6ni>eyK%F6)VnfFi@jI~L&|Vzpwsbu%FmS71n%pI}tCwq}f7OJy#f-zYQv4E`Y3vbEF1N6{$qbO;uxyk#A=-!UzQZG#Tmf9aq1ok_^hsZ2e)p(+zW> zNFwjhIXJP{Z`q}g!X4L8e?YJ&)Kr+z=mhLg$aDkGM>RRsmTGjWkcL`~_8Vtd8?#%P z1x3a4vIF`YkeI|Q1eW<#Hu_4`OY5%=-J|h82QL5D;s5f#iy-)8ZQ_QDYl>M?Xu|~M zi)d$I@wBMcx>?4%;-Ziuoo61Y*XAwKgu)j%1j@mJ@8bEC}VQ3FWpSlrtV9q3FTuL{F%Z zk`hJQTKN{7PK4T~t+h)CtC&MA2v@PV!No|eEQZ+>N7oY#83zqybTH2ZjW`#77}sG7 zRaX;;CaZd%1C$mge<+=fPz+}%-49V(ouUZGD4owy3!K$qqkf)`R7614ZdaZq*X7(n@-$mc-zla)Y@WV5$*1p5&C^%TUbd;988Np&Y}Aa{ zz|IjHIA+9@vzJZmXGW}_BQ_m0BR0g1k0Lf4x@L~qddvpTe}P#opoPfIiLj#B;YMQw z%Rm8i|7>J0b)Re_0Y<8ih8Wh9f><0^eNQZYWdI9~gviwss9h+4sq+n}O{0d)NA#c2r@L5WlL57sT`Cmx9*~k+aPk6#Q%Xs1{}wR|Jx4x+mD8p!joh81`}CY z+$n1-LB#`jyx;Qg+-Oq@P8m-^--;bh4aLJLwOA;ne}Y#;P+C1zZxtNVNn6Ym&&cJ` z0DLkUKUv~89#}KuJ92EE-7~^Sn%iKcI!aqc9n3HyE=77INY&-7is-j+*qh0j7mg?$ zU;L|JBaZbN#%-Zt1~lE#riWoe8e=z8R&C^~qaQ}nwvK@O^N3oSf=ZXEBT-#9C#pMa zAgbCWfBfG;)Y9NnI@leF+8^XZ?T;IXstzFh?;vVn)=ehgfT)8}PSnBFOjNZa{0F0H zUW%!he!1(KBMKuLK*takwZ`105Y~Q?p7z_3j3;KH)hU+vuoNcKKgGN3jV36?Zbtov zkrLUcKT5pFztgv%c`^TrCdK(eiazPI|ED05f027#=~OcYZ|^p?@7AC5jr+6B{js;d zo26hnXdwme7^L7QJbybFnTS4_;G{$cwdExG`bmgAJKcM>n|hv(_v?9Lm~%lmjK6cj z4b+7rFuw?uEWCwgupdc!@@8+}XkhI^tnZbWaor`WeaZ&;!S9GxHX|7vo8A7!kf0Ki zk&37cY64K+;dE$TEhbabv@_d~O5n zs9!q`Q>&4qY1Ijf zNh22hMl8e_<5XqMGAGR02Tj-hCTR924QRUE&^(x`OkGi=-PU+YA=LgFjNH1an7qvVroc1!fB)7xvaF-6^$*Ls zf?t7I_Ts?s&kNiB(Xwpe|IiTsW367;j`+!;pAH=M$^B9IJ!|z>{;4m1a-vs&<#{ z41kz4osj?bKJKi!7p2x^9Mvzw03@r|>{Nue6jy@?4<;%R#`--lAVnvAV?q=a#$c3V z+GS`~BcM7mb<9X|;G>T~^A=~;(F@zMUpVw%2Yy!QuQCA^e?z}RXRiqjloP5=1SZg8 zBDA2>eiKpi1Z3}xRm{f9gB>qG7~fd$-WKz<}QI!WaO}P@Nddu}zg_!=6-Qu4Pz8Szt}Z!o`ChiiPVM z3#d)|N`ZKu8hVDv%%~ZqLCzR=Xl9IR;!=oaf0P6hNVccsRDjCR+@QlHCDmH0TFtTz z)*t?fFKwZTY-yW&kaBQptp$5dkJe<|j8+-=QP&${e{+!|PwfVuwivt&do_;kb{gGr z2Q64SZpl*7vFd9It8v%L#I!aeIO9nf3N#Ic5+(;0I*&!i=xgfV(Lp9v|E#+ZI&Qz2 z6NBL%oRDQkY^3nVWLzsA(`2l0n5t7y^e!^O)VkBccbzBG+;y}h7pL59Nx612A4{*- zw4nL$e}ir-x<70{YOsfv%6nDqE!>$N?cb|vFJnBeD2k%j(zGlDiS1vx5Y~=!#piSR z5c$JROY1eYF&RuzHh)wpQZ3t$uALi@Za+V`tDg$hDt1?2>wQ{X?aLUfP%9--8Yd~m zfxm@UUUVC1UOzF{+Gdpium~Hg#HN1$U|N0hfA`Dx45lcGsF zHCm+O$u~Epm1Sfm`oh93d_Q^(+`+pl^mz+sZ1n!d%DUmoTNM(>zLzRw71^q;OjDI| zXvs5r^4XWaVGn0Ksk*m=H!oP(MtWV%Sd4QtYB%fZ9ZdS{rj_0WtK7+*s3t8>%AvU> zeaf!qd`HXv5`t+RoLgBMWxy$ zb{d(*cj9*YSfBq*H(mjqhuyd0ai`dFlfwoh2gPpgq%qcqo@$Z8s86+=NY8*(b9#T=5vV zY|{&bB`~flo}VcMW?IWH zs19uJHSl<#7k+2le~R>Lkr|e^WSo(Xj)VQsaa!{4z%??^?L6?ve>||`7HQP#aR>X+ zTBE##D@g^)8d8tOPmx%yitF17QtMalaM(eUNeX1F(;r-h`cF`GuG_%XvLwYsw=M?_ z@>I?B9LX=0GmDZv1Xg5hT6bXgy?ODE7g$!{;J_08`M^G$w^7i#*yd)w0e~~`&f(K34R|DLW2<8nN*oq=sTui#%1^!P3amtY|y{+XAoNk(Vq_N<6^ zv5P9tm@i4{Cjqy|PsqyKg_$+ywyBVaXf0@euX5>P-Ir7>6^CYj=hR_D6iCM@dLFIl zrG85F{|B=WQeFZCW-7R~lX6r=3d9^LlQLB*0R)p>RX_nTlb%%`22xZ20000u86MC8 delta 21217 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