From cce6c58710fb5d503af6111bf84c603d33f8ea7a Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Wed, 11 Jul 2018 09:42:27 +0100 Subject: [PATCH] add slides --- shakti/m_class/libre_riscv_chennai_2018.tex | 35 ++++++++++++++++++-- shakti/m_class/nolibresocs.jpg | Bin 0 -> 29700 bytes 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 shakti/m_class/nolibresocs.jpg diff --git a/shakti/m_class/libre_riscv_chennai_2018.tex b/shakti/m_class/libre_riscv_chennai_2018.tex index 4fb00249b..1b0e49257 100644 --- a/shakti/m_class/libre_riscv_chennai_2018.tex +++ b/shakti/m_class/libre_riscv_chennai_2018.tex @@ -79,6 +79,34 @@ } +\frame{\frametitle{Does what we want already exist?} + \begin{center} + \includegraphics[height=2.4in]{nolibresocs.jpg}\\ + {\bf Analysis of SoCs over the past 7+ years (answer: no)} + \end{center} +} + + +\frame{\frametitle{What's the problem?} + + \begin{itemize} + \item {\bf iMX6}: Libre bootable, Vivante 3D GPU (libre etnaviv) + but proprietary VPU (and a power-hungry Cortex A9) + \item {\bf Allwinner SoCs}: mostly Libre bootable, + VPU reverse-engineered; GPU: MALI or PowerVR (i.e. proprietary) + \item {\bf Rockchip SoCs}: good but using MALI or PowerVR. + \item {\bf TI OMAP}: good but using PowerVR. and expensive. + \item {\bf Samsung}: good but using MALI. + \item {\bf Ingenic jz4775 }: GREAT! performance + sucks (1ghz MIPS32). + \item {\bf Broadcom SoCs }: Cartelled. and boots from the VPU + \end{itemize} + {\it Basically there does not exist one single commercial SoC that + provides full source code for all functions (CPU, GPU, VPU) + with modern performance. Note: All of them sponge off of Open Source} +} + + \frame{\frametitle{How on earth does an ethical Libre SoC make money???} \begin{itemize} @@ -102,11 +130,11 @@ \item Customer entrapment (through proprietary software).\\ Strong business case for not entrapping customers:\\ https://tinyurl.com/most-productive-meeting-ever - \item Funding, endorsing, empowering or otherwise supporting + \item Funding, endorsing, supporting or otherwise empowering unethical Companies, Organisations and Individuals.\\ (cf: definition of an ethical act). \item Being totally inflexible / unrealistic. Goals have - to be met: it's no good being an idiot about that. If + to be met: it's no good being an idiot about that. e.g. if a Libre 3D GPU really can't be made, use Vivante GC800 (with etnaviv). \end{itemize} @@ -124,10 +152,11 @@ \end{center} } + \frame{\frametitle{Hardware / Development Complexity Comparison} \begin{itemize} - \item {\bf Server}: relatively easy. PCIe, RapidIO, XAUI, SATA, (1/10) GbE, + \item {\bf Server}: relatively easy. PCIe, RapidIO, XAUI, SATA, GbE, 10GE, DDR3/4 (or HMC) etc. etc. No multiplexing: all interfaces dedicated and high-speed differential pairs. \item {\bf Desktop}: really just a variant of Server. diff --git a/shakti/m_class/nolibresocs.jpg b/shakti/m_class/nolibresocs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5374c4c8d1863de45cb06640baf3753dc83ffc82 GIT binary patch literal 29700 zcmbSzcU)6Vv+$-6LTDlM9w1aHp@=jkp(vqA2Njhrpdd{YEQH=W(nPunh>D0573ocp zB8Z5nbPyFq5k)}06V&JNy}$SV@!ic~&+N?Z?9A-U?w({1TccYO0Bg9HvKPQ$Fkk?E zz}8Q|uIuOO7~txHKkX6Vj^9TyG240xbOAS(jf0Jan*+ze$HUDpsxB@nEG)WLX{WTh zg@LWLxq+GKA-C|8haAs2nVR`s@;?_HpO%qk=T%r)kW>+#oR&yq0^{N16BQEG6&Ke{ zJYsev@&7w*wE{LYyb?BzfUyBM8w|k)+iC~AH2G;N{F~q~1dVwtztFD;H>b=PX=Anh(h#5(YKT*dmyE|}3{nPe9j)H4DAA~jkkRtjsN zL1j`4>!TvFRoaX-Ku{tPaoZ&iBPB>u!`cq$tIcij)O*$tzxVW1tlaTrB9_0 zNGuwv00ue$lYrV85dfp8sqbDYY?p<3A-5~UnN5NOU|A$uCs5+@mntbkQlNfa2f((> z=yW^)j|*u;C~>>-csTrNBL4`&h#FG?LY_(^Ldh%diOPEz&IM8{fTk0J6o5s+sUR&h zit3;OVB$RPAeJyhLS6Ev0wNy(L%l$y?J29`J|Cc#=B`O4ci$-kLOQ(~f+VfA^h1Iq zI$K8fB|tCAa)k<`ZujvgL-zt8Qw!N00K|TgXv=!g_Q?D#K*aX0Z7Od;tJcQS%EnAs|ef0ib7RiQov>M*WA7+Zb4PI!iR^7tx<) zi;7>i_=Rz#a{L1RHj^nGAG6dDi#X&nbIgQ+076ueiC6j;ykptFeuQC9ug^_@N?<0M{e4~y8g)9Ibv$F5qfsj+u1PJPpYI_Qs&&nAt zgzeiwPjdp7kuEcsb?X=;WA~incoo1mJ7_>L0Q^X@W@?WCpNBp-WZ*xBL=%RXGy$u$UM^*H5vt~^o_k;vkyj7EpDE_I zZ~uuO9(UwpD!|+!0k|^cb2n-LXa=b8{p$NHNhkq~CV)Kab|IX_mB-^6Dd-6#Zkv)! z3FIBKUY7w%D9B+6K(n4wq6$FMQDG4o?x2+%mElfEF9ZU2h#Wwsde8yEV$tIOe_t5X z5``!lD1^iUAUyOfO%2FqznqmP=t?>>z4Mg}va_`RhlJ!~KRr^mE&9{qXzYG29ruN)Y_u87s}Ruh`V29vymia}0E;dNAq|q!p9;BU#;WRJ!!-lrx&O*ybSqcDe zDtJ6H^elG3N5rKzzpG_b%4B}vQ0(`n1Ce@S_N`9q~LY6 za12o}9wMp1sl*{jD=3ixu*-x3iUA-@SIxFjXyO3nYUVb`L!qO3q(KZEB{-N=-nnig z|H;(z5>!^Gdez&A`%>FC;y+X#cN8zAK7>9{vyJqaSK%?2bT*|+@faQOB|;NUc+N2r z(CW;m0%*wpNC*r-FsTdxVp=np&7tDVuRI+j z0cczS_yX@C4wdgiutcPpkN@fWPaOU(t8;ktF8tCB!u;{c-$ch=4$8lJ{k>@7JPLW- z36S163^WZBhsaUku);PnzVH`@Md@uMIGpP-j{XbxJMF z7?mH!Kul-W5M2;{TJOB6Q*lJG{WR`zKq?#B0i~S8j0RT^w zf1)zyjtUFyE+!8Qkg2Wl$ZW@`On3EckH`!(k;mLYAdVnNj%L^kEht7(0?a5xIcds+ zTHVt9lzh#M90AR~;jvfYNz^$8Izgb8>j3R1weA_9E<+O0{TlAy-LbgvK^s*_%x2=e z6ttTP#SfAGk_i^UVFv93qz0Hop`dr8{zdvfgV1hY91CDb7!r>7=V1Wa<+I`NSauO2 zLR67tMpp8HHveeoQ2|B=UtfKPjG)0 zJ(tq@&U5v0&u5Xd>lyaTx6<5oi_fL+F_7%e@j4$W{~0OpncqkLdx5CS^GA%)x0Pq{ z1)>FnYR}|0zPb1yr*kn4pX6Ec&E};)b3T5s&yTrJtQ%8h<5^{c#-3vJAb(&Uk6=pN zpF-~quYNKlo-2c5#3jEh|VWG)Yh}!7So*9-w{@C!;_9_vBSUBND3p_U?$J4 za_ffA(i^f~-dkgZi6J6+p^PQ`lO3io?L~X6wUrfn*@CFes5Oc7POiG5f;n;Dpf+y< zJ+9KaSK0jAKC5zzD~1%f)E zNP7`woAZxU^F1ZT@+XHcEaOEd=)$U+zp<2j%VW?yXPLWPzQotPTc{|w%&bT!vb{C3 zH4?+k7>VJKGAr_dK01+ncG7wEG$MwZhAlz+MN0)=r$!s;M%9Rr^9)pBj|BK&wKs8N zDF@We9|=_0COO;2Vs&#_M69TY8}XN91TOsyF*q;eX>Ya#?7pynh`qGLBg~_{F&fr& zNLs|cPa#|QZT1!rZ>HyWTC+`a)BPhSE!I&vnS^B zj#y~WTh6_!ztJZ?@GjyoTFa!BB`wc^J_4=ojSsqauZd6n8F~EfNY{5EOqDvf?yb%M zOqdiWypW3bu(mI`e4En>eWsaA{8=!!&#(+@N)Owcdu|WCvp$V2;_W;&yqU8DDAhJnP&T00La(M zqb7pCc5<szjQI|zI7|>L}R1tKqY6ZJP6mQZ@pI!1rS1nWqIH*3oH4l zH)neiEr{|y#1tk~e5sW@A^L)}_a?5atc=qPi~T4_S6G4MffwrMIS4t;+TG~z%cU&J z&n{qkJS;JE~dqlDcu~R;nA#JpLplXFhyUgfD8LBTk_D2NAhBle1*m} zecDgjg&5lJ2|DvIyR)%h)+u|uZhl!Widw;`6Ejj|<@&jT02DDrR;EPGy}Ys2c_@#y#RoN>1uC&h;n()@#Y<03$+88wbGFv%wN}eVI#hBt zJZ&-PuBQuNnmgxr{j%Cs$;sa8TRSi6@gvbvvE-B@uL{wp0qAOTmjr{02Kp6oarXvM zE$y*ZCY*hXiwoM}Gt;FTr|AfnJLUKG)_{?{8fA$aYJ(%;i&vlg6 zZA@4-?3(9(l!Hu(pP)QnlaF#)v&dO~%CxE6d8{n9U8H}Y_@$NVOU1gb!PA{%dz5Ow z7hPs0;{tn~H<*=cbNf_#2MR|`CL4Dh${Uy7b#I(Jk^hY^vAK@zGpK`)r2!pp32cHsb4cpffpB{B_pj!XnnY(TFff`?{fl8$iF7r1?6NgnH& zjk3;PVu!Bi#&Fy2@Uonn9%;^r!J2U}EkbJoMNciu zBr=61$+c-_LpNi$itnTADIRsNgNA!fAf?akTAwOU;tAL&I2b@k=8nV&y&J+=z9c+8f^1~YDtf7`lo=u)I_D6#V9 zjVBq8_y*0*Q6ke3g9uU|V^DE1GgvqzUvZ7Yir$t1R*`3JzO$&r@Zu3^nMf1}@JT&j zEfb^4Qk2K_Mc-IJoU20SQ3Vr>+52X$Yg5F$mG_R>`kT2YG@`0FSljWOqza`H>%H3x zBz6nrZ2@RE$Ik|!jT}JyyCa0LnE@&(rD}T*2hp@)vy%abx%CHw=JSK*3sU6cix=+g z(L=qx=Y8o~{Sg{=eG=lt!3O)6$u`uy%>qtiA@&WbL4JM8x+5~U6QvUK~r*llR~e^@nhE`?0j$RNq(6|e0W z!q0tSSkq5=^z15|_a;-x!<{bOPta`+{a(ofO^>aAN;TT`epVjs_j-KqEbsgC79kwn znfBbqP=ifjo47N4{j#}d{bb+0SJK`5s`qJX&T{mE=ds$U;ts8QX%R)zPG+^$;or}x zjy6RGr3@=eyO>MZ9jN-iSAVIXYp0AKyKibu;$gkq=Pteyv*r6ZIW7Inj2j4Y%&8}x z-hGnmUqk2BST5Qtvmf*CXw-fz{=iaHY_^|s#>*~!&8i}YtPoYs%KFS@G`Dnr1;f~- z=Q2j~vZeQiM;zi1-ipOnf?<$|4B2<5pJ2+`;^uS-WL{zhTWwbk{ z_1xRMnTK&%fr?Yda~iI98gagXcgL6*}!X|0F%Grh|Zy^c?B?C^Gy!-$cC zFX3E1q^;bN`OrUA!)3Gu^sFEH1?YG$TR)c*Jvvv~n9*UH&9>ukMBHV%eQP(qIacgF zP<5a6kmvp2;h3F~p|F4=~l9|2B zhsyG7yn0VzTh4z!vwO0O zFII4I^kh?-r{BR>JHGkZT;sbc*cF`RXVY-&Ro4yEh#PhrJjAmiC%-o8Gk%_Ex+Pgw z)Dy7&<5kK%_e)zq$J*5~_rAT`!7P{aww{6kChbR@J{ZeU9+o#O?ZQl5m#fE#*)C08 zkg@c5Y9z;Hu1ZLswjMtocyqrSp?YxX>($nd)d@1veIegN;v*8fqlmtraWqjZ?sh}? znq7;KHyWQLfZfMOH-7%}u5YIrKc)(GuN_=!@W5?>ooDW`pN^}%;lEg|cJZ|AEepj{ z3uo0sH3njNj?%=g80cG_eQVtv}uei+;b@jW?aTPVD>frikx=l=ra>&w%Eb z@`LXUhZp1~Y}Hc^&^_HmSG=gIn{bGDiWcFw!`H9M>52OsEECxgC}yg69BGR_c;BQO zdP1p6AHV-i0j@2lJbvkCa@le*p(THIdL-MV>+9p-i%nmW+HAhwJ^ck!;LoEN_TGOz zCinGzuGvcGqR^F5ljxf4MTgGJJzbI9C>4WeC$AF4Zik8)F`eb%QgS}jGc|rUA%M82 zyg5;Lcp~iWCTkkb5NF7Gy*kknTQYp9fFMUKK3OWar~goO;=y-}rkc3@q7;5>Q|D_I zlpH~JTSdZXOm!>A?=6+=KXp zyJn;fcd{A6}} zvSs<7uN$;Q*1w9-7eCo|f=_$-F)3AcvUCgNJSkt_D64^)Zh`E9I%lH{iEsOV+>tw* z?z=kma@z52|)S5>48X2NhGx4D&7{nN6*{0+KioX3azdr5#`TQTiG z*r}ng-{6%M+@^RSf`6S`z~iLvtJH6?E)d92} zNhQET{?g;B?lR*A0p9QcagN$3CK3E8h4ukmqwYnqOyDcN68lziT-W`&ln&8g@H=+t zpbN7GI}C5oa#-(}Jf5V7X_Uu<(~W0M=+%|rDaH}Z(N)rq zTJ9tAz_XoqXC3TYZ7jTvd}J?GZ}foh__Tg6&v%V6-|_%Y#18CA7*|4Yd%CNdeZ<7= zP=3^l0PK6g516VekK!G(6B!M;Rda@d3N!<_?O)LQ3}QyB7TVb~hL(2F!+q+R@zxi2 z$$A{Vbz6!nLY&;n`Xh6sbcgAH%dVKtXV-*hkPI_;%(o=Z(i@t(4y7r1ZM#}XS6fv+ zMUI#sLf~|Lr#@XFo1y7OF(k=w4s(4DbDd!=p5i#EqINv?%`x8BE(N_uslJz|H9Jp7 zG9%IvD4rnN9p)I$`&#+Iu^{*DhJ`u(iuxQDv3Xx)4bIF3x0>DIkj#{4GZdN&?ziJ- zez#rsOy4rZrx&i3eZ%z*^^_3PF&btz;_$9o22xO@jhMRHn7!=uxpU11ayRxnc7Ey# zUlvDZ-8=i1nH0}@ip+kpdlii?-GNb!^Pb}3IOwZnK67v9C}F0%9pAOLviT&Z`y~Fr znHmw)kvc%c+ZuwXb0;};9h6z^u$og`-nN&wfc;JFK{SJsP}ma87Yw>QBFeecji_>e zycDG(RD}-PcYnbbzQdd`hvDosh7*i>$FlKWYeFrAn^8E-4jy)Aoj~X31yctL+KrQZ zEwk6JDRfmLS%2Cy(oZi$(6ReOu%9`Tb4TC#?*5p7o5Q!Xu>@hui_$&xYJGbLuuSI- zxgVVy-r2FUUMACc`sQwP1$r#P^4jVITS8(xI#*$GU*+ZSL6R8LYrJXv_oI4Blt2y% zQA$0R%Q%N7M`hU5lBK7_95FC7Jk9UxkCf{J4J4)_ZvR`oe9^-~`!Vtn$ylIbz)w1Z zKGn6PquW9!Vc`4-vGd5jQnzSg5`SR`b^6(|Fx&4-OS4&aPa(sX;S9UmP95=FVm15R zlLiHgHT42xKCq6ou`LgXHlJ8OIz{XbrRR;UJ59zG8410~_C%>Jp^?Yv*CT%JdmHT< z9GJ?iJOz&_Z0l}Iz)zlLyT`}u4+BrfvwWMy_*$7Ro;Y+8(@`QKE)~j9N%CU7T!_=D zzW18Vvw3BsU3EzYdxn+B6?4rj^!STF=V$Mnk5oA``2&RDo5c6jwgwbSvDA(u#sD3d z(yGzw^kI$KN$;!dtRC^=!hAgy{g~^)IFm^39RLI`Pdz?LWZj?Nl+cKWu}s1CQ_^?! zq6D)yWgo6N9B)*k9vrpgE$dgT@Hwuu{32_l>#ggzQ4kb?^i@FD-HzZ3i`!w^`>F|eV&~vs>e&^64isSlz2z)DIJ6&R1m!Og~yD04mNy7c_g_1z&p5cZ`LNQ zVXC;FZ_qY?zGtn+GUrg4Vh6FWEQv%|6bO|KDyu!=?YGAJw(nXC8h^ zgt```q**;wGir8G*xRu+N3H0``DX~T^Y|S@LIuQZ!LH+Q@iF+58j4n{vUT05`%Wd# z&&c{M>8gq|b)9u~_ljCLbiTOTs3>H4L;xAiv$9kjMLAEJofG{C2&m3r&_?ljr!eKS zE_fozHPPbOdVcrMBB^2dZ)FzI3f~jMD z*35+_6P|?jN5_U??LDJOE>*YZkO}7EF7MEtr8Ry53HzXM?Xu$Pa}jpPwKXr-RS5c~GADULmAiuBN%<+AGIZd9~@J-`6CPEW3|= z=Sf9F>nVUv-P|YO+x5>SJRtL@9@O9mNE@k_x8f6}jQMSt9*yl^hJj8E0jmzG$pJAz zv!icMd#83OdC*lTb0Q#Y@)Eb9BN?5|{x*+sf;essOHATwT+J~7MSdRoF7!O8-mywht)^F{& z_C?^tpgkL&fE2-vG2X~S1Il8Uvf}aXL|l*Lg>g~nhyBo<<9k=l&;Wx+zd8>)iKhg& zC|$Bd@V61J?O4nVx56=}aW}U(ykJV;R6$*tde&;KKpMSu?M~L_ju=7}U9yFUc$M(c z^5{>f5e8lp2YlL2VXG)J!1sL7aRUa+pj;N&ZO7v8ZJs(k{Jd9zN)HXgj{oME|J7Un z16fcM_1_(SzUU^|(aJ$_<gvyUtkPh^~|}r%sP7b)Y!PvXFUGe zc`!<4ep&El1e4pF&+_qJiyJ0$M|tWGM9hR7NpYHpcH?0GTze$->3bWsknT2%zPz7e z2RQEDn;rxz*TtXQZ9Y@gCZIzm7aq|5%o(GGJH!_;8XhWsyZi*>(Mh>ox+w~xSj35@ z3mPyys%K&x$fJyREOFVXR^=hl(67y0DH%AQ!H*1NNoJu>Y#7I8H}O|NVFeMe6s2w@ zKOJh1m)%mmP4F^?n(yemC~6>IS~#)Wdd@y|Eu+OFXffRLho`U6_1^jj=j>fQoC8!p zVRC#+d0bX}@0DkB=4U;I0g-!9hF9Hb-<&EwUh;wxuA`OX&UmIC+C*JZ`Phq0d(54k(p@fu9b+>!?#9HP{f*QxE}>))U);IaMQv()@^h|!&7a@OuBc3>5n-f=Zg7g;I$0d~6(@u91HhqG4m^`{GEQm1jqyFpns z=hsto%PwArHcudm-UEcOFsaH-CE%Oa!Viw%q2(DNcd}dz+DWZlSegQ2viuLmTSLy* z8{(eL1+nhFhD{gKR~%9Q&~=0N(dwCmyG$PaQ%pm2v&VjtbO1d)Hs+HgN&5hmE_3LB z{+{MG2`@C6-t+GKMmYCs_UXL6U9v@k;EC45f8v08}xQL=03^HfA!e3X*e+!)nnNa*Iji`YM_*>50ufpdEu zlPCf+M!DL!X`?4P#?dw9qRRl@E|XkjAw@74wmMb+Oo(;5e(I_$+_Q&gF>DJM-494o z&zPTL6s&hW-p&F;Flm)I+aJ0sY%a_@vm@x5)>U zvlcp?-Ev%w_q(m?0r}6u*b*t#TT-%&A#IbdeVHQo6RLpiW)!%~>b9E{VJ3NAvmby7zKagZ_$fI}XbUm7D!ca8Vr&vM8e%C`} z*svN4bpabr!W}HD6vFb&X3UWogdU2TzC0M|`TpkQB~SAJ18D(E$Es+?TFbM3fTu^2ceuFy}EpSAE9# z7KKT2W7S&k4yhUaJi0;hZ0{vOMH#L!w)y8nmXWF`ao=uR* zwzURHB*zj}*~Qxhy~Wpg>nXF<3@eKs`eYGQ)a4SQ+gKhFBaoG07k8(Sbh?^Ofm@h7 zaO|S+;H6oea#gdRMFK*+lP&S<>2~To-n$~AHl|~`=reW?qwVZJ>xHa8bQJBeIP*h} zo&np3%2EVv`_5k6sixe`hn~1IXzYWX8nOv7 z=Z1Hab~K)?Jl}Li9?RHs9EB*;wvv|3yx*1PfSE4qgJDhU>Tj*GYa#1ixiY2rn7rHZ zlwU#X;e`}ff*USeZCw=fk2Xtb`bNMK0^x0fFr;GmN{+L_U|wyoJqNZlX~b7L-b@&q zBkA_ATMBbzPrIEQnt0J!e7#jLVPMLoWoI_09G}Ng)8!hl@5~-NqwSb%1l}Ecdyqsz zQ4wPtRq*WB=7gawa1&-Nz1i8~jD8eGV!4p+GlphlV*cnrIsv~s#jQeD)-3KKjRvD) zLr*0iHp@~?Ft4#(LOvD7S7 zRp1=EoNo4JV$G~vS8s>i9M0u}16LRa2S0L>S*XbY?DZkRMj|2?gEF1-dN1ZX(6N@F z%u<|y+vAXjPrINm;7}@a=C>X&*mN6*MB~{+JCP6byUD~8JO}IhQ%K)7&KC&Z{(E?T zKPM`uh(8V`a?0D+lNEmt?W6yAf*gzh%MWDgm?usp<$mOAmot1T+VcYjW%-88%d)0{t-^00w+Yx-Vui*~zBKVJEE)SB4=oCWn8NX@9dX*q* zYpp{iS~*Jdj#!KlZq^9v&}zWESN@_riA$@i;rOhYYv@2rW(tz{Y@cRpg!#wuy}~nd zs2h6Jr%?v7nJo8CUxO*kVN+hJA%(z>7(fD3Y|<#Zu*d)cI&7Ka;O=476rtPfNA@DC z?8*#axj9Vw-jgF3@AkuU=?gn3=PWo;5)9{`;_$*gutR1bOOK`7_gR-V*5gj z2*n-|jo)`~$@HK}7mfdPBU1{?sYqAqV8KWf{ISALK#`HyX}$$Sj}yD1=S2Kuv}bVi zY3iwN(k{}A?bj8oFC-|(A7R3inOmk@V6qz}vTNsm3j0?e&D35yH^q?Jd>AltyG0w{ zG&_DnwT6YJHN)%ky7C?2z2B+ki5?GZw5e_HeZ0f?4PEtALz$dJYII}JsaL1Cgcl*u z{gq{m7j_K0bSD2$yRLiGz*Q@BlqkOrLVNg1;W8Y?z!NpdT&R{xs|0srNNBdJnW8l_ z$gqNH4{fL*`yS}2vN0Et9+@d0)KiV|h2d1jb=o!|(2Kvqm$?Y$#8FQIGgAocdr-_D zPz^g4_=#te=%ka)8g;A;Ms+=ObXkzk>zSVcd~DnYb8cMSJht=k7Y458_zCgY2=R@5 zX&w30Y*R-?e!e1H^MPP#!=4bmqPt85tr2CY1dJg|&ngZsO?&2h2>prS1++`6?lxsam|K zRz$f>bntzl_!cmGw_~VyCWY>9{RGEayUemLS^TGnX8F4-zUrz}qQ;)`IKpM5x%zd{+xQ5JJoNejZue4KwdiydQSPS=xxca5*MIvYat7pUq{w2Y=9WEo#Ein2`E)kqY$P1uCj|}6 zxXYkzl_PX|A|=)JkTuY3jKiZ(J!pR$x_!^6o)I1G1_D4M0StrzBo&6I zy^9B3P$B`G0Uk#oq)-SA?_W~fUZp`WjL)lfWj`q^^;%S`AIs@nn& zx4;SvNo)J?&35TK0Q@d#P0*nVu-UW#07Qd*go+_epCCDU#6xHdLI!9p0D@NQXWAB+ zfOw}F(n`NR#S}ssRB^5LrB~g{c1VacgO^@+ylNe&0G30z1d-lAf9tf$$TYYTMFC<% zh2Gw(rtG2NYX9)rFaVr{w4+U%P-hSTwfXz=Jq5^62u)ky2SkRTziBjhjR36DC{Uvn zhz>#jlRiZPWSo%P> zKZ(2zpaBCRZQ>6Ox^Fju?tjFFZTI_+VWCnF4U+=!X=IRwMy8-4-v<^XWhfN3*&wkn z8Zw2ZQ7y%L8wX`jWH2DXwuCU!Z)-!^g+Z*ygqNzX!YC5Fga>I9JdT2-(i#x}?By2N zzyoF_O3*I@LA}zHhaCJR6cE1zPa#2JhKKNBXoS~xG|=n~LqY?d29clvp{M!M1jO*S z#o>RHiTA2iq7b$n1=13~?PLH_EQJJVQcRHmU>_6#p^zXD8$6)kp;3Y=9wC8bC=8*9 zr$TthQnUKA^M|K!_7N3VYzq?!2N z3j%ux;Xl`j1^}`(G^@~Z0E`IfSRnSXi3E)qWPO@(XsMPW55V4+KSPn*lKn!`1czL_ zAY^k}o8QQPdTW80BFCw;F4wsX}+!e_AqRI+XBtdi?2Z%tR z$t3(Q)qoIAD@?mUZ-D%cFYQ0npU~?$G`N)_PNlVkQatd+F6fNP`3+ z(Jsh-{7}oy^IM>p7BP@lL4Uu}u3sFX35tX>fKYfUX`288DJN;9uaHl~LiVPq1sNVn zI5hsvuSVZqZ6iR+wnsu{#8H}{>gy-({lfpr8Sn^*|F6$46GJBaWm6nQghIGj`x2TN zAq*5ocq|DIDMa%?CcG{Y@_VRfLK*|WL3)sA+VH!keTMuTK=1J&;k3%X(w_+4F8%8Y zf5HGl|Cyp_HU61+a13}H8M*+}MG6IkkqBWd>nBoGg={Jg8xi#APF%d{U`GOR?>zJhloJu76I)Yls_j4AqQc@n_-EHA|$ed z4|V(SAno)bbkZ?}?LQLshqR$Z#-eNVXpDXSFOzp^SR%4 z4S)H%o_~D&4>=?*;|i_gKiPSx5MK-x0~v$suK%xB&GIifSsOjJK*F2gVf%vMXU4+8 zLzQoWhn_;s_kIjsNT8);hdT!vgP*v4eYf+{^U9HvNAB473N^abKd|`p^k5= z9k?mUo(1JLtVg!%`V)h{=1yhBw>`g^9NjkgX{~Kz$LssyAHS|YuQ#4lKkt+GWAokX zZ*SgxqgmnB>&B1gf7WpP(I8j{vVsPm2wDf5d+NDQ@a*fakFUBwe;HR4Sncn>ZaCfO z=R>Q!0_uM2*HpYQJ&7iN$UJ$Xp?-H0t;-If7jCPMchw$fY}BVE-7TOF4Y0uW!PLM1 zvjFX2DhW?jOxYe=+ObmX+TpyupuE0gTFisc5!HRV{aRo8wbn)sxMm(W*$aVRrqqK4 zy9(F;kpYu>0RUnk!?fluJdSQ8k- z$-ayQ*{hPohf6g?JG)TE&D@<*2@ytZEP}%8jOF^sEYI2kb3;O#a%viXUyGqwUW0<7 z#`tYd7~^1C_mkSjsarQZY@c~KUs@gBJ=WMJ2Gsv zLA65~PTHxb;bilbpd;e{)Qsy;;p}0#U8Vhwq+(ND?z+hUbAd6P;&x=&0cx%Bi-@IBixC%Cpw42cvO89P;WRsTeZ9xyfFNp)LUNf z#bo)JF52Q{&+)yHJUXNjo)!B?Ck=36oMB<8J)*g18Z%&Lt2(CQPv%_`wOw16;nr_u zy2{2^L#aXTZH~&ldNl?U%w@b|Z|&MOWnPCcvlR?k=Ehg^l-3C^DdX3t?otXv>D7%r z6&od5C*g>hUGwh_o_=&7lp-7Y<*sCALcOc;i+DZfkI&FmZe~#n4{NVSaT$p6QW|fO zM}yrh1&(Curc~iX=pLF=2+V!x)Woaan`e!gtMp<{YUkdeRbOEJEJV-vSi@C$Rbv?U&D*#luu~ zwvZiDB?jI|1|Z_Y2%dep!Ec+-i4Cb2eFq zYHfL!JP2`~6eUFs<8#&t2W#nasFyf>To?~W9jMo@FlCU1X`rGjb$xhTQBDEHmim=w zj*GqNS_36^X$F-?wVZ!^gQfZzD_uWburjiXUsm_{%O|2hR7QOo}%UMtU#u~m*Ii+Fs4}a5$gU4nIBZN3NZN=_6aM+?MhIS`i zPkrU5d2?St2p%tkF^@>y_Zb5(!X>u*+b6xFkt&}y4&f5gu0X8aurjcozxnB4D`1bP z$nkJY*6CAHW!%;ss(Ry(r*h#{_}r}10XLTxj>WX$q8bFBi`|s3+txxOxRQFP3hyQ)E`MLpWRV#}BmgYIPY%tPe?q=KA{@ueWNf%jKk$sZqLb(lI zVp`+PC>;a3^D9c6?gmFydfo8&+DFzXeXe2#-WUBtUrDwU zQK_heEui8c+d5&?q;idNAo5C|35$n09BI;<6!HX3$Lsf4uqpSMIn^blRlY_n$UOl>(iwXOOeJYFt^<9c0AMx7Mqkd+|qRVd#jw_uIH94O6X zO4}=+=M*DPfyI^P3}`)jWt)Qvypl@ncv5n7VtrMH;ogR>Nz!y~um7&N&)F-Uv;RniDrfow~r^eBeV2URSP2oZd=6b1KB#RYH*S19o(C<21qad zy)_>CrA<@AQc_}yMd>GAlo51*-jr&bX?M*2?{y0<*GEfrOP?55SsGFJP0-#`(~A6N zREhSZqv0+v%|v&3d@9`>HKLk}z>ZRPm%dDGg$rG!0yOL4qeZzN(628hO}14o+6-=< zGIS2kF*JUyo$UOBw`|ne{HJu^=0_$)2{kE86`oqN@XMInwnxU^JimFgV02~^MJ~7yIrPA)?#xx@XZzer?wG$Qdp{iLsi|Us_(4rMY}8-&Xz$nN=LmadpPjTD z>jL!jEarFX?orQ&&(2q@Td!XK@X`I|NsCw0Pn)GS@H*#Pu9~!<4P#C=vYES1rkz@? z&lo5#O%EanAFy!2R^#_2ACHq~uH-`4t{>b(Hgk~5dpBt+ZSoP{*SBYPS+l;_Bk4i3 zj@}Mj|t5 zow3uq&6&i2UK?-r6+eTHv~_{AN*h1w27A4(e=)`wvRRDkD#)3(irdbQiAOV7h{lJ^ z6b;n5THAhDt-q3MM_wydC1ahwH&)}Z<!n~wB%{CII8#Ax~K_=RzE@%G~Q zR!*`+dsnX|mQ6O|08_uXRye>`-`y;T|60BAGi&Nw{pS6b-J&`srKMI#qSCPo7v7qE z6_w2TJ~)8ZMJl;IfAPJE=2E7cL&yeP$Mz~v19#aa4Xp$MtI#4)7)Qcgk9#g7ph6UX zaQypC)}1YL^;*yAb0@wSggV)3TX)UXZ#*T1nz3v{&xLax?2M2No;sa8jwAIOP0kA zH|AJlu7B42&G8#!&Xo!QVFFc(3{ETkHvaFUXyGoM09im0sGgo~ELNaHu}CU329ftf zZ4G566X@3*5wLYR%QZD}!(sNNw7x;j*}+42{$w33E7@q{@Vv{k(GZ9XrBS}KUuLH^ z20ouBmin~yS8%-q=^9@mIS8YJY)#`q`{EWPwf%+MSgOXVSBetrM0Fr4olkzS8M&Wl ze&Ef{2H8-MPS;@N)yr|W{~mQO?)7Mb3G$`@G%C-sEw zPX6+A;lbKhWxU<{docEg2x-_5D4DbQbb)88gn~@xN{G&SNzjbmyUOIJmV9?BRnA!W zpRag*&9vqJhuCucdw7S#qbt=w5AVM|-V1UpH?w3%@y@-%ZNosl-6Ux7u z+bRBA|6W|Q_+P=`zrEp4=-{8eYC5K`^n1gA?fB1l^52isgK-0ICZCn>hP zHIQ+ReOL*(qT5I0wMMaiLMq;;V@xBmXq_*5kZ1fQ`LnhD<$AGn^(xz0nH)7Ct;NG()Zlv(goqY<)CfYYQ-!c`mSQy!2fc6Mt zn^KRm?@8Fh;$&~hN(*N<<$X`;gW!N?os$4z*K0+JlgzO$`t~k1t&?of(}RnJ)wjlV zCE~c)rna=|i~R*vCckMEoz=Q;g;?<0WxoIu6oi?*T2AKxIJbP3kRX&@vV5gb^PSn9X1Y87oBjkdkdrWR40t91KRuCQ;E-RHc9ZGW zBqH_>9*zrJsKd!9u$SqCAp4EK5JxL|l`jbIYUCdQHSt)y!pS0MuLt=yK}uU>o>pWq z@X|4Wn+(ttycTpJa^qWMk4t1F|Mv8`wTi1#*wwP4=f*k@@@`*LIu-8yFT{!$YdO6P z?N@mhW(ELBP6HVsLNVQlUn2g}&HrSx>~AG{rr>|@0O|?U_|anSR?Y%Rpiv5=3pD9j z<}GoYb?AN*MUhKR%|XuR)~rv}z?F8J7Y8MB(x=Jz7+f!P5+cMJ4=nK$9&@*$pTE?* zwMl4S3G@CLWjp;VAA!DVREtaI^~-3d*M7ApF|WrI1jxW9{T2o37`r15ZQ{(&x-&$3 z!DI4$ih&8=PwZKfEoL|TXGN(}71Impg~6^BLV>^s9*0dj^*XS})@4?>raO{%^qh)q zIpR0Ob{a>*@3u7Oe~4WmF*LXYY*b#M7xgtJbRZER?^|l>^8~tat33H=VY+Lz$|Vhn zNEY1Hq=>{~+6O%FA9+{Bz#rg#KHXafum-TPoZQm%a`3$H?dNk=4XWgw!-@AaO zwH~L?WSPM}%kJkQ+}?%?O;-`|Q2<^dJxjpn8TqZS7NQ`P%oU0+kLV<% z8yw$c4y+jd;PPE-n!6#8@8;+&MJ8TNYk+3gm>pRxLLebMfFE34m-*hq$Ol!H7ZVrS zRgUC>h@3|}QF+I~Pl|njy%|pkRmrnWonBVjHna0cKFActMS<;M zM)nttw!_6*gPFfAxc|Ee^8a;4{$nx!r|rMb&c8QW({leF1^%4W|1hzw9|WHQ^>pA8|!x{3&~7TsyODV#3q39`z4nW(!J9owTk zAUDR25%kF8)}xD3o*CN^>J@#=DeXJAWhNxS?5h>j^Dsp>KBP}Hb`DEMY7ZUqnPzIk zbp*k$Lcio?z)z9JBpnQ(cNPvTnjsZdQ;K$p9b0H^FE&2FDW!B%kE`iUf^pVS>>Y5l zb*`%H);|vG-O`!`de)u!*w8Sh zS4Aa@s8IGfW2U08xiCT8mm*mJipe3g;!R9^lF2ktP*hN`<5b337L8wGdua00qcn%W zhF(Qj6IY$mtIJ~YYG(4MVniAjr>z7PXatIJKx`Fz8a5G)4$uK7>)tsuiv?6E2&g9y zdIA74G{nQjmX1^*3u+Q0J%q7D;ntcrR*#CIIrnZg&q7<2H@E$zqqk~;i9zqTL#(%< ztAQumujHyJ6%pT8IaA)sCm~Fy)q74U0QR(*8$ICZp~V9CQd&_b2$(RlqDtnukF-mA zz7A=U8Eoa7elLe$?=*Z$%uA|LK%}c3xn~q%IaS<0{m@YP1iQYOPOl?u7`m;QQ;YhL zc(?L*_u)^@2P8xz_3&~BxNCT8`pp653Z0_V9fV?=Q2-;y?kK2mXz`}4Ssg-n<X(m5%xN`cgQCv4Nj>i>{E(& zTo-`A71^5YtYuKcn%dTGd7CMlpSD1UQ~*YC0OA#%l2LUYaNT)kuY5bLy;>r<`j-vk zSr_RAS)ZR~VD}_t3&qhyb}8C+@5Tz_>L58C<8ff3xDK(t$TsPvQ_!8s7%`Z?{+dY^ zNnZkf4DhlY7&-8BAEUqmgnaW+N3fWIZ0~Wsu8>y0926>2z={c0%U_L(Yh$!aB#;8? zx%p0ZJkJ0Ig@{S-Feum-Z1kP6Hxp!7Y_RYB_RPUCAb*?j@9-B7WOdh^RLqms9B^bH z6Wt6OcpSET96s8_CiJIdXAq{?iw4n~5%6f5{AbOFV;J2TnGfupGbDGkQ+BXyqE`ez zeNuPc{n;B)a=YFTIxFPHfw|Y93zB>c2(oz`ZHt^AlfDs5JQdQ~eap;%5#fCAV~Gka z*3PRtyw*2bJgC|`SF^8A5RL9*=y zT)Yn6dREEzRO=54KoF*zD0!ZPbq6@Wx_k@>Kj99Ih7i=6+^bGQm!jjd?HLpfbR|Mr zmi*1K6(v&~u!CI+-wopd9qqF?ft9rB78ya=Zy}KvPl&pMF2~|D@`K^&WpS=D%8TF4(fHi8r z@+bYo3Pt}$R&A#S*#`*OsrFOCy7OI=9@o8*fy~9-^DTwPmvcyfiCI-v^aiwTF$02( z0k`bV?Q(JsNYgyr+bwSxQw*Y#IOLqMZ=C)1|b^7l^yoqX>y z3`i`SD-YHo+@5S*Udmc)3U>U4i3JKGroXGAichF0(C4W7a*^0lwtAz(!a)8cKo@j3 zpsnkakfzmnQiURb6Lm|Y(07v-wVV@L%gHGnjJF{?0n}QHv#DQfjg*9m_}eketS_>& zAO~d}=1+X|)!Fx0A&gv(*tF#9>sV+?;D%PpHAS%%NEyU=`UtGSq$(9!isl)uTF9+}#Biq`N{x6haapbIeINOD4AA&Z(Xx#e=Hf^+O?79FIXE}z zg-DcF1vWQ2lvOF$f02*FMSgT~p$T;p*UpWhxg5;a@3y~fwOILY9j1TsdHyf%)nCvy z|69@Yem3)8Tr^Naa$X;6@k$00eXd=$Qb;G%`^-mI%{Tm&o8Qx!TzP1h5Rsno_djD- z%cpqWsjv#OT-Ahd57HQS3^4-x;}gkn6dx0v-b?+w(MHz#!uWS@pf^Up&Kw*)ro2~y zuv+KDp0#dmg2R>#KDUa%%oC0Q7ON>$XbbpV@y#?&Sb@Yf#lo%-pD>V+ri0S+ejczT zY}-@*`kjdA)9wR{FDzDc z*efM@8d<>QPZ1e(RG66c>y?0di%Ig=XFbvBEV#qI~JNtOFQau!~?%x+8O6Xi$uLY3W#*PXPPPJ{~H!)x5OLXUx&%5j_H-K=OVP_ zJLo2R1;<5jE}u#-i_oiU{H{(Ety$H5rcudF(&li>I`Mfn0IH;r+DM5{nWD5ZRPLi& z!H36y=fA&%Bl_(3b}b)*6bQ_055g#5ZAEv%!%096{i}f=6Z{0AkyYTz388M`FMoL1 zu~3(#$j)RV@lB9gjrcX{W=p{fwzlQ#|0^Q$!arUy!5-oN*>I`Mz_y?Q|GlGea~{2i zI?6A<2V#4XZ?Eo?{P3D|B_dyTwThkLx=E*w0U>UZ!%rT{xPlnWG$y0=<)Wn*!w*+!@9;c3i~ZGzaHOQ(1p3`F7pk~1m zBwZ)JR+%PS1IUay$?YMgN$P+kcvp@A4sR2e&YxBsn6ClUN}gLLzUJ`nQP|r|;OO_I zvW3&@ENyi43nJc&8w7o<&9NGvO?CoEX_^!&D*ExXZGGd@w$OdeG9sR3eN8`G zB?f|k{P+6Ik1Q@dn+m^kbUo!HH{*d78cRuSTI8Tdz@UxK+_TJuZ{Kh`{3T_G!0kI( z#-H2`hCX1*{eu1`q>)=Z?c7`}y$dX`a1k@T>@N1=VKgg*=4zp_1x^B+>)FtGVLZnP z_k4Im{e#MoFjD-RsqGRP{jk%2T3VopyNj6eZt#$1-&l8!MKnQaC0!9s1I;>$XXeoX zi_XuhRBQp@Dvc-Ub?rX_Z%!s5-WLdL=Auf6-8ua&rw5a0Y0BHN4g)`zcOK^zw8V?s zG~+Nlu6Wj_P@7$eGLv1L<=Imbfzin67sCGD=xF({D1Gsb^$I(9bp1)TmI|sX*ZG6fcG0?eIBPhF?lqR3QpTyr0LmwHhO(HvKDR*nP`S z(mHSg9}8Y4NvUR><+;uGz+2N95Ge6f&KOK_u>HIix4NCd<{~umx z=Es2L@?${%31dktJO*%R97(t!{!Q#+V-lLl9o%!5j^Kxt7&Y#YY0ha}yYjIat<`$^ z-^LM=4nX{Av|oODXSQ(+9(?91_&HmKWf)WHy^fGInc69%uXG#s{Qh|Y3uFI6_q^pK ztHKwjBzf=c)}~%yYGNb(7)I{Yvh}MBp=oNpFp6PkY6#vf3vjvcXwOEasc0v&S4%6NhDY3{YH69?$S4>0CDArB>aPKuTncmN;7#O6b;b_Pj)|c@fQ0PCRV;iKQt#* z(>n2U{8h$i7^4mWhsQhH*Lya2N{$!D&-32>felGxYA>YUEn$KH5$YN^0<$V_T=+G@ z6VTZ~cfO~`0Ph~0l#3Y88T&@5ARQUYC7_tfGSMj-Ll247d$|$|uuQhUr5K6Ngv=hu zyB0$@MOGjm?SJ$bL9h65E-y@hsY8l)eCFfDv|qe>TO1_XB$z4tXjW1I$;Z>mLtzq> zSM731W#F#x6b)RM44K~hQQ<&?6m;H2PUJ!|UIqx1`a^(;@+=UO)?!R9p#|i4-G<-X zm5?YIv8kFDj}@)Rop$OMU>>FxOROL+Vo?A%4fA8l-J0Y_Ui&{2k}{a_UDsGXuFQ#l zAxia#z$t^IPf%Ud+?jWbM)jug*{&*YX6yLDLYK7_o>a?^@~cbhe`M-}>wL35gVl_$ zi}aEZ8%2n@2K1(D!k~8?R9*)ungU~mcC4SXUZi2C;cI<6rVNrPSz+6L+0p*z}`_#Qe`9elk}Z-^)Z1**{eG&A5XtA z>1!*veNFAudgz(yPimC8>*lqa<<5UujPA8So}8wb`MZH}0GOP7!Qu}y#ew=tTh|@A zuKi<$omOJi`K{7*@(BOyBQKJ-OWZ-$p6vtsrRFTmuz2=K#WHYQ@Fiw1Bd8*cU7mby z2_nvmd%#~{nKU4UmKTAc<|27#5TmG{SPQ1Kp;Cur93sY+Zt}iNEXR#R!o8KSG6dSa zzo_cw6fIoa7DFb`a^0Tscv0Kfx4Gc?Nr#1;%H^+ke>^T)+2iH5!`s@S83FoeWf5jx zy*fi@S9t}GjV*EYw_=5vqGrb|*=d7AT0R~L@p=G(|S+2+Up z+L(L4=wq}&PTK{G{v07EJNuR*O(Kq&NmkhWp!}lh1Bhn@(|xhba3w-7oi7(AupVr= zB6b3y?_MicS93)z`)wKHDZ)*0c}l(@_#C4D{@NE&dgo}nC$kw~X0%aMp_0$?l&=M2 zO1mgdd_}T1L5og`wFQ53{Nw{iw3l?jWu}lP)Hk_PGTzH4Gs^2iWqx=wZypl&nD1GGB*M=H6yT^;Q2FNnn>7czsVbGXSPjtXpC5- z_go`cI3N%V^qs7igGH1;Zo?Cczsf^OKNFM8JdOdTnzR5jE2^o@aHh{UGrYM3!TuvV z0SMhawTW0uU^cZm zh{$Fl#8qZ`bMnHtQG;*7u17){PEd9^HX%+xk^S6~gB#-6R<&cR{Q1kHQ8o!+SNo*k zjho{o?@7!$)@Lmwb+7gCq(<0;R^KnV&079gppF zFD*$F3mR$Mt&lyNC&_| z;wx7wb=fCzCg^-c1N~G@BMVR@>qLWIGe-z>$X-z5gnu;aElNryE?=`Vq2L?o2kuJ$ zrcKe~CQ#pP8EYfsd!zDx>#X4D#p{0gU9TbrstW30KhF(ARd+N}f+kLS;Q&!P4kAlY za}#wvl>^{LOd!DK;vy!71A7sd%32DpuvONL;%Kc3`%jD;$~OV|<(Q8F!@4C*3Pzmf z_>FKPk%&tPXbL*NElNVU^Vg=_C`(|58G4`h+at#UhT1ZdF)T&3$s*Q4&ovZTXPKn6 zueN=wk#vR$dz2vh7d$1HEVcZCd-|<{(IU)xwo`@$G!UZvz9lsl_%T|vrBt-yiKXc0 zj-!v%SB#=otSyTh6GVk1o&}+;QkhsW<5%ZVx2B4SX7&wd7Rb4#EV&0c`9GJ_Sj>c> z`NnS#s?NUQ7SVotXsV6VJ_+xN$D_hLIbq|&&~7oWxYID}mLpGPsMK6^b*n%nssvOM zC<;k=%I0+2*fUHhMRLkk;PWkz49tp6y6THnueXZIjS3^08*NW`3&tVxz@6mT5se=h zZS1e<14A>;XzDXYU)zG`U0PWqY&v`_iZdWc1*d2HGyW-7&%R7KjT1M0f5dV{|l_3fUSf)rY4HKrx;p;a*osLQp*osg@K? zdkE+;JGqI=o80lZ>kW6lv&ci5$9z98I}$O>&}%~PF1%ws=MfsJ?Riz7OO!U$y31j- zOT9i;3F~|%+*?_F%WYg(t(2{IXi8u^_|U?uIh~n}Z&DaJ#92G?AfycJgMjH&pX@9K zbKPDcBr=2@T|CLFl5k^+#Tu=J99a=4KwY0&r12qHxL5>l&2_*Xf?a&AI*tKs zTC`{N7D%uvG_~%vqGGBC;IjA?Z(+vIXTjM+7z{fVtfx(E>BNRUrc@1U@>a(di6w{- zl7FFO*@=w3I8Vk0nEOVvtSCveYB^2T$?G{>7QmWgsjTBq7q$`poTiYztlgKM-N4)E zr9}>Jh0teWSJ}U!NjKF?ZlICpJL%KFjNnE~D)qim9q&LXZYwz`;)`ltC~!C@T3)=e zM;0~*lIP)9+N;$~KVydW9Yok6;&*Y|F*k;i>u|e=mueh|Jl$`SSr0SPcuo#EvJ&2` zJyNdd*nL@uq&*drNaO~hbnAx{9`K$wXxgjlQm<4d=v}cdT#rpGC~tj#)s7I5xsrXw zz>RW!75y-inq$l6ez?XVZH1y z;~}y=n#_U{>H+V(CfBFD#j{+Z0~0v(DMFiVYnoI(8udE(XJkOu{-hT^osE_yHR48@ zA=C81shOWNIAONKX*+g=ant^H#oX69`){Qbk&>6H_F6ti=~+Gb~@Ln0Lnt