summaryrefslogtreecommitdiff
path: root/samples/qmi
diff options
context:
space:
mode:
authorJeff Johnson <quic_jjohnson@quicinc.com>2022-08-22 08:34:35 -0700
committerBjorn Andersson <andersson@kernel.org>2022-08-29 17:33:01 -0500
commitff6d365898d4d31bd557954c7fc53f38977b491c (patch)
tree2cb37b91cf3f2f6555f32483c209323c7023951f /samples/qmi
parent7eb89c17abd2574f627c1277a15f6ff64bec33a4 (diff)
downloadlinux-ff6d365898d4d31bd557954c7fc53f38977b491c.tar.gz
linux-ff6d365898d4d31bd557954c7fc53f38977b491c.tar.bz2
linux-ff6d365898d4d31bd557954c7fc53f38977b491c.zip
soc: qcom: qmi: use const for struct qmi_elem_info
Currently all usage of struct qmi_elem_info, which is used to define the QMI message encoding/decoding rules, does not use const. This prevents clients from registering const arrays. Since these arrays are always pre-defined, they should be const, so add the const qualifier to all places in the QMI interface where struct qmi_elem_info is used. Once this patch is in place, clients can independently update their pre-defined arrays to be const, as demonstrated in the QMI sample code. Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20220822153435.7856-1-quic_jjohnson@quicinc.com
Diffstat (limited to 'samples/qmi')
-rw-r--r--samples/qmi/qmi_sample_client.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/samples/qmi/qmi_sample_client.c b/samples/qmi/qmi_sample_client.c
index 78fcedbd25e2..c045e3d24326 100644
--- a/samples/qmi/qmi_sample_client.c
+++ b/samples/qmi/qmi_sample_client.c
@@ -42,7 +42,7 @@ struct test_name_type_v01 {
char name[TEST_MAX_NAME_SIZE_V01];
};
-static struct qmi_elem_info test_name_type_v01_ei[] = {
+static const struct qmi_elem_info test_name_type_v01_ei[] = {
{
.data_type = QMI_DATA_LEN,
.elem_len = 1,
@@ -71,7 +71,7 @@ struct test_ping_req_msg_v01 {
struct test_name_type_v01 client_name;
};
-static struct qmi_elem_info test_ping_req_msg_v01_ei[] = {
+static const struct qmi_elem_info test_ping_req_msg_v01_ei[] = {
{
.data_type = QMI_UNSIGNED_1_BYTE,
.elem_len = 4,
@@ -113,7 +113,7 @@ struct test_ping_resp_msg_v01 {
struct test_name_type_v01 service_name;
};
-static struct qmi_elem_info test_ping_resp_msg_v01_ei[] = {
+static const struct qmi_elem_info test_ping_resp_msg_v01_ei[] = {
{
.data_type = QMI_STRUCT,
.elem_len = 1,
@@ -172,7 +172,7 @@ struct test_data_req_msg_v01 {
struct test_name_type_v01 client_name;
};
-static struct qmi_elem_info test_data_req_msg_v01_ei[] = {
+static const struct qmi_elem_info test_data_req_msg_v01_ei[] = {
{
.data_type = QMI_DATA_LEN,
.elem_len = 1,
@@ -224,7 +224,7 @@ struct test_data_resp_msg_v01 {
struct test_name_type_v01 service_name;
};
-static struct qmi_elem_info test_data_resp_msg_v01_ei[] = {
+static const struct qmi_elem_info test_data_resp_msg_v01_ei[] = {
{
.data_type = QMI_STRUCT,
.elem_len = 1,
t~.KSyE+SC/sA\XB&&V.ؖΖ8~Jkjm5A0O6z4W_eHHPCS߹F8u1]>|S$4 K(R@H` -,"q_ɁɟgrΊVsjޯӶY5k1|܅k @oQMŹ~W!4E'ȽU}m@Wy.u֒Ɨ4_]`#u)\k,S#{BXN .7cs 5d ۤƵ53o+>m&n$)m&9<{'W l3zxir+؂\|f:&1^hΔCf.лכ5) -Q+=RU5Uiڕ}|/`#+4{V͝zfyl~jzo] =@'5 D5I8AV6/l&δ)FRpcl8Yn#%$a1f뀕od.2h“?i'2wqhG,T]@ڽCўw MM_E<@[@K~@Ol)lD&-obUjCd:c[eɴ]r%Zӛ[[Ջzܸdߗm_{߇'oo:9?^?gĿ;mCiءAT^|+F}\5 T0Օ@4$۱P(?<Gl6/<^ 5 \*ʶA[lЧb6բXƦS{Sa>8}ql*bbsGĦGJLەIj_Ii$tBڒQĚW=o(wn]]+W%4'i6{*>w> e KH*lh;5pgHVbOyO{!GdMIػLXsSL $mW */vTTGFn E4y{PSyalʼZ \8c?nUG;o+/m4yNe~yQodx!7SZ-MF򊅬MEl#r6 _ Mn^ξ*<,%GL/^JuRx%EV^e%m).2zE 26"jWqRU+9ȰpQ by&ͱ|aQyb\x^fdnUG$:N8bK :| >TfJRb\*{dwK=yVǗkB僑2&Iw/(VːqR5PM:gAʧWJUv{{k`nj ˆk<~7Ezt|DsϢQ t|\#!;H爇p'eX|V(Ɋ$͒گf ]9c!,1.Ma{3M6wP%- 6M؜KXu:'|0EI&Ys>>fM?fČo3S)w}0%vXگyIlFvLW)J.y؋`x{6`h ;<7|]Kx[ύB GT PE>:퇈풭7q^w %ޣIդ#Y)bQZn%e,7pAp3>P,<2w+Оz'PsdG̮.5jt/mVc9 IDtv[>{nT ,N?0veǵٮu;xNΘݴѧ4RM:F|wڥ(>0 20>p$Y5Go;ii˜$|j;~rjs9qY,˴ϲ}FR~^QUNj mjmۣ1 ۤ逎ۭ1 +lڎ# 4, 4qO'rtuմ]Q PDS&uᲘ6cVmǫFfH6Ur\ky0*[֦d63ܟG!MY&n( Q9O-[`4"ջ>aoQ6Zz\?whbmCj`Dt| mu=ihy~r'xfqaF9#z R>(j[0\  H}΀i31#HB>e #<KFtnMf6pssr`Xqfp tZM֚֌Q3 qwp:[hNty9v٢! &syFǚk\8 CA|ܢ m˳ءaTrG":Hv?2%@r1|D# e8Xwg@|G ]nUi/Jh{^Ěy)W?1<ٽ=b[6qpD[" 8p0f .,CSK--]}oQ}8\i)/4I5ƙ~|W? b'WxqG>˶p%s9#m!qnل]F8=1dSt<܈YyRSX!ֱVܜB׹cǍNAdYkD)(K*rfxXp(RzSjv{x ;zZmծ~i2x#0!}W`a/9h_Meu QhŖ%4!-WiR_wĘ;p69[2BM)f@!쵾f{Dͫ2z~v[F:›ϧCg3YKϰJQ[`w)s@ ~l KJPƁQx*z=#]$!e aѡMS'!P8!w@HIco~d3]5[ױ3QaY&jRѨvSWtE=)ɠU6hxF'4lu6 $#˽! %VY`d: 踻o.ٸjR99N ik70·@q>wz܀zX +J)w+"g&!r㠈_p,խSQR7NgT2f$zsr7٧ˋ] 'lb% YK|nRyQ{"%b{ǸX 8?f#cY]V,dojURkݮOpqq>zSFj TcVRi25ۯ0>DL\*\P6P܁lpp).ۘc}ƍL;0lL6Bf1%Lb^xw3?IYryo᝭:b,K6Bcҥ7`ޱhe̬5F-fe7=eOjN#ýE1W\ \&vjǬ 2*k.=Z·}|ƹUf!n0i}ޟ-9r%٢}%b7S$Q'+sG.c  0w#%rEJZ6A28d2CͶ:,]*JV;I'އ R@QTXW޴ZR{7/4M7xrZE=Z:Xpؼa9rkYȳ / H6AuS/,Է PB<@8W2wEz"rk>Ē"Ǥfǜ*5״+&x#UT/N'M79e孅eG_VBK.=ܓIojUO\ԚVQ+K~3ӯsg7'ג٩6:p/X8FxGr8Ԅ7K䏳45oi  MZ80W''Z ;Rͧedi[N - ^btSW~jިsl-5jV ci,_M% eY[c!MMKT 8=.nc.lf:^tA>`<0=p2InFHe xIjKͳ`dYAIcjbS.{d%E.Rq,MZrK8\zo.A`qW^,+Ԡ˅jPKjldz+m@1.B3+J.xS9W:*7*NKյ˕+>޹N7x͵`€y򞧺Sٝ,meKoȥM]Zo#&!b= .}ǗVx99}g)D* i|ĹUʟo\CU*2`εBY+B2]q0{P/6=X./B_#.I /бC&Ǵ'T댆V7[=8UlQ#P5QoZ1s_SA8<S+~(;ogj߳_VUEMջ%m-Kǎ"8r%-v,VI\._;xΦ&F'ۈ?躞ɟ;T (u9Ђo7ͺo좿Vk[zsG@GL]ؤxƿao0+zG7twiy9:<;^4KStHG}5jTSy_*na3*kU_t%X،D۵@KĠkK ӨG qCuLUS7@ :`KQ Ȥ2ȽB9x `^t7˵9ٸyK5Tg\&3Mw99"I$25'z^h^<ht+X)q}5ìˋAeoޏ&WYȖ0g.k"b0A#ݑxOt:P@otE|es 6= XA~;>LS٤j*x5H8 bHf {#q9^ 2Td(oV?<]ZҎAʱE9Q6"cb>,t^Pwd5 pNU ikoB›;$AB' >Cd Ii_QM|=3S7S')Ŏ.jV^h _fRf9\o=ꨡZeHz~V~]R!UWPh4RZ&vϹ9XcxHMqzgYdz\*ytou9wS|Qq8"az+w*UuEo;I\{jetڍU!>Yw3 D?RԐOM5*"DVDѦ~IahH=ZJGġ[3V7~.ȬؤQ-v E'-W@okga~eM@B Nd|~s}h{2֞l˨ۂE+NdM}~D I[ʇO*e23F" /LczKת.)ib;b"{ ٨TKhЩѼbc'LL}r#o 9ԫ$XxW^µR'gpB 2ۘc?7XMJk % 4jYaY:p~@6$a8]i -=J!;B/B>15vh߹֖\O-R'BS>0.  Z3+YհBD1hڍ+.`av Rzx^SbD{]AI\Йw.W+Nf%a%IF?W҂Z{;TsVF'SN ,m2"@QNz*ΐc[-;٩̦7w/YXKZ!txvr tƽo3n T vk$I{PV-lIWX).Y4x%ܡ\/7ʵz^ݪ%fwh:soRu]ΧIQ6'6;g)gv i7STKݜ_M ^I-QLf Ȗ*9E<:Q+Sk.5 vJRcV*i#ZXxTh4Tc)ծ^p5 X.cIcpv)m-"J(WTo.m5'4S/1;ρ,2fxD_[#y 7ٙ\iLet$x&X7>䋞U@wɎɖQI|;ak3 #hKġB+z;>>je2#dѢ)*O{ډ77Y`#Q9q, 6Ek^Cz/s ;.,z݋@^TY eY@p<НvEjlA{ʯ6^z鎦g@T5"{j Qt@xg>O\lˆ]"$_a: l5*H&0q(,ނ![8i5g'!uZpP5BD),DӮq<bC3?`N}U翸ޮ[jby{}y,kzEҧ0FvY3mx8ӝ(es'z/`29-M C3ρlxnS_;ZBez6Agq› Aר41/evagGjA} ԡ[:l1"ap=_%D6rf`宊/_'tŠ뺈!L#VgloC2 qIj4+~.k P76U tE 9.\h_.l\c^;;uB2)at_^. c18Cy[ B[xۇD|(ೢz乤)j'=>Ċ$Ԧ+?N<y @?+ haa>^&{(Yk'zd|~V'B0]5f f{hE gSy>i%l3厺O+Otsnp=4܈g)JoD4Su2TD|DL)Rի=qUU5};Ֆj-UWI; JC +j5+.aU[[n'SpMF;x>{;OVu6b`TlC"2(9`8R&7קW3E] kQLvIM T f~} j!&cf֌wEuwZ Ci+LN3.9eYG<~'`zkEeEو:7&c/>n`#1K^q} `^q[g0 !0&[GLUI/#Lrj1 !K7\^/x`|da&usNm4!Z]Yp.I|;]jdQ}#N)ڂŕ+Q(]5ůFH+,{lϐx8$=wIlR[W.WGcp'HD5aۈIKKGƝ|t킪h|N|dcF7^ێ`jdƼ(OʥFKzJr@"bMkl'fףjۙyCi rh8hjS7cUvj,U `XsT!AiUոnBlG3)"|DJ;XK A Z,3^`Җs)&| ;7kD F [77|$wGc0t8T'|n^jt["a"ol'j1"녨,M8HCURS+h߰HXI+؀$pm,2+dBjꜴD$| 9A9I$}MT+6= /㹻Հ[؇3zNwfW¦Ϋa%ip!mPs!˂tF#xLjmaw^$ ;W- )6<rPf$ 4lw!?68PԩtIlP C{f]Z:uOZݐCQ>jCc"y$l:}/؜7w%JѠp;}a ircPaxEfTոmAɡQA(_)3哏{/6%O;W<5"U|]x9ݜ?}3UExs%6%cl[섦xpjL%`]Ӟ}#lh(Uݱs ŵ( L3(yJ@#%I9[7#ɾJoC511U&ڡVcO߮;|Tn#!ᄹlvIm@_$)q1z@w]uޖV&rcsu Qz2@XcbqeUlMn@h4vM6'oo. wn6i6^%?p}Opp83O (&+w7TuLU]@=G l^tfY5܆ªڭcWof%-Ia=t[bQ4& 0>~֛I\o{t6^#2T k`C&!KIV(t9F p|v̻ǃytd3Jɚk7gjUd>i>ügAHܸJBt 3@t23i 6il1$ʀǖllsY<>ͼ>otCy'5ޙ|zBF9&M\MAzGQfQ@ֻyOpCUrYAVz$4o22n]25{"{wmnpR[?^>oqQĤdz Q:(BJk#bJA\΄B؅DQd5azUPoة4]v@CI{ ק GOajP C9zq5Zh((!~]Ȯc T/K^Y^3FK֩h"C &,|Lx϶"qCSӮ}o)j7oF]Y|] 2dSҪF8틏=Q;7 i(G'6^nS83=9%v+bM'%53L{W+]8;Z#EH1ځ# -H4`↥sD H R`T+9|Nh#Vn=MJCq̨T1xi"~f vtN )cW(RcDgwn<{z 59"cM RCeҸA,tλHaݔ,{(_gHE^aZ\Uw1Q_I,ZbKwg0I!r$_āVf]ORعXMַߓXU?ot#"{;TVi[ۣ bz{k'j5›viOvNIoYT^nH0&Cxc+$̠E9T 7.YSD6uDe{WRh%Tՠ3M2eP-詓v*1hΛJd#|t_^($8[[Sqޯ*CT:lAD/w)B.֏U=\sKkRol v4KI+i.ǒ9Ykn~ Le3(H|)ՓAOc}X{k٦`dL9]ؐNֲg&H|"G+[Ph#*n>覸,Bԉt ig%_T+EF A~gU$ǘcJܥnsM 6[̤;߇Ux\ /ڑT1n呾$X4yi- 5M$ImCQeY_^Z ryGOͼH=_s`:aQXzLѭ#o&08 F:Cl ]k_':.TCXN8>@d F:b/.V@|6V)ӂd/+t!VЍYYpܯ ݋DGLA/b K?-Y$w8j,e37¥}ޗr0Oo12xa[;.J2 AUҧ \g-nRT+] d8M*TS`$ -knԟ}|U鈓O!{f>x'aIXx{2/ēL3 h2?4 H3/Фgi+ 'A(ˑdp\ٶW|efh$8;p`@kOJKkƆ|zx[P.ANsY(l5XU Ob ̊<ΨڬP]$lBfwKȵFsqDU^ =Vj圻 !asQő}G41;dY5 ^0kdHȀkfR8q`OoG]|`Nj>\ѯuc*os,EUxI -Nw_r9 0;zO~jC< O}Q>0DQ7JUf7TPj5jy\Wq|XFUYkk&Rɕ49D&*-q̮BO 3̼XBXQz"`t6~EgiҢޜ%Z: Hav6)rh]I3`4fBP6ɝ2ơ,E5C ߼7]ɟhҲ"4qPLPI5 u+~uTQ`55^LrMuȑQS9b h1hFFKJFwiA{Umucdl1=]6Y )\P#s˧( C)! X&ѺnE{'bQ?sV!tTE2{ ҈.`?o #MeFPDfλ,I1^e6IZ`ŦIj:}tXMe["MME+Vc TL>{^,u7yiC*9ܨ9a--M|Sg_-裡Ъ75tL1jD>2u. UV%d*#z JF7j;p3 0+ego`Ha`Y)0zhn4Y{13u|E$oTPHK{}9]uv 8?0?!"MVR+aWֹYѸjVB”TeTJ)lɰF VzAoUFL.r̅ p/ 2l Âc,ٗsנӆ!i}.>R A;Ji2j|:{Yt9T}V{1yKvydR{&:h&u._G#&p dlb&ct=Es M[&E)f!jb n|bvt!F$lԦ+gbn&/__ө%of[%Q+ v] ;2Շ/ V,:[Q*=K7) ? d=ngAҫJ-_UU_ [)8sv 9qsFy4Q!oAܤ(pMf_ava=>fORb`B9{:w"zn ;xpyaɛn-mϾs T5:rFvf{^oBAgPDկ6gt)oqת1iDr/e1fc[^b'~}ڈꚃ\3a1o"g"lػZV+L(ȢRn W+ &lvNa*J%CC\x5UfO'ˍ ?l"[M ]$6͡Pd&2/<{p+.;R{N׎ug(Ժ9$؝Ex&|ғ^,wV&d]8[kr!Hɖo}au: 2塪c2-Ui9z&*U1j2Q$y9N=Usx+/zC`gJ/ Jpg2:NC פKKluh >V'ѐQ{+{4 "K]0gMn"M$ep;i9̒r5!Pj*bXp cLs^*xƅe2!i!e ^iaYߴ.-&l5 j}p`UXh~\΅"'LȎNwz{7Oϛmek(zA_!jL^Fb֬A䨯H"HF]p:G~C*t-7pun q:R;t2a: @-i(J!ő*70F1 !K󳻷W~MMI}U6d?s@ع]Jo,;9W`jC6:q6 UYxܐ " Ҙֈתj9-+i` ܥ5ڭvaFqqvG,}ogRuԮvjU`TFxi稪txU8 UkjMI-gb7Zrn_GjiHK2]y }(#iiÏhՈRg_RR*dF!A`NMmҗEfoܦ6uykÓZ [@X:p;-tb`ϙZ,R)خxau`kҐkQI!ǻEkl| SfX35xLBSXhC_T컳t 2݉Ũwutg.4l"* ,,ih̬ W^;{n#s3Ǵ{6qTz3ێbj,&m(y!? rY8_"=7k&/$;l؁@Jj^.WjBX&q{F8mfR^$DkgK@ռz *MUy1 !@%͒pk'؊(mʟVz4b>p=Ҙ'8*)>~0I9vuچ9Akכ;ENZPwDU@w-_]bj!&m8m|F%Ҽʈ䈑|x6#xv׉v$X[Z=F ,Zk`:sU&oW٨PSX1]hս5 e3 DG 9*ށ,YZZͮX}7{zI?Pvc/Sp &̾9Hb{HIM>CcS%w١⒤L1Ud=&Y^jT>h`Kv\%z+ 0}5vhԌ+5rq@^d,7Tsfn AO*jYU` GU-^)Z{8+.a?qa X'=K'tܔ/.^'WCI 4GL~aeZ}|OH޹y#} ٧\xv;Jbjs>ԮuZWƟϰ;NtN3zD' 4Dy9ZeGO`VΞjC'HwMC#J •zA1ZIP‚'nO:d#,}7 ٬x&&0G74$vϷ:y&S)9xN\DhemS$rF0oC l$m]R(6a4daZaDvtC1='_+(:ΧD+K^ޜ٤=$pay8Fm֢TI 'ZAN3gcf@+?V~)F# @g"kZg x56wzF<ϨI^Ȁ : [8s'#sR9%Bg: ](}OZ@l܄(\)r:L ٞYaxdܢZ,4h.5y#L gִi}A.] y=TWp4E)Q<%Ho.esPgl&vߣd"X+I<%8avɕ #7u5&ZvQpřC2`&_we8"gX'qfD"KFd"J۹,q O #W6bevtw{~BxBx\RiʤGⶡ E1l*/HuPǐ>(4{Da^dL?s΋[t>d:B[)޳ "0IeSoic>!t:m`Ƒ\es:/בRz,6y>b0êGO1׆wqfuLd=RҚ)$[eP <6EWk7E#U4MƊm2?haKO &mSC.[Z2D:Fwt?+cz簰kyTvTvX?Fk#\OO?Met]H*3iIar#tI¤1fRM?Oa-Lu+mR&|Jo#9,؄[G+slyJU7GY* Dwhoܫ@ / ,: O"o$BUV=}u^7+%>rBq L="vl朅CL2 !M\锛&GQGl/ n{~~qܣk/iɔs1+/tf?$:ҬH7|iidk\Ե(M8Wl2>GCܦJ|UiV Z-9Q]5>_w* 4zb9#64OƠ̒ޢFVsr<\^E6, ʾH|>tD0=}e:suBO7)W?5UNih!k$m_>1 EzIp8 fp>ڣE];F˹Cx%qfCεܣ`& y-PS[х=Á{a%y u`@Fau``~'9W`r HǟUFŕ6Imnt詄LҮxESU/^?Ŵ9C{Y>ȏ|s%H00K{MKHqD!)[&V,, ߇iqY QS;k5eUaz 9̨VUN]N* ]f3ԑ^)?Pm$Z՚IM`֝-itGԅ qKݮ*VL(yPO)>35ŸR->x+eg1FkSB6ڔ4]n+P1]j_5+^f0#CK7dr&Y:Lz)  -w ULw\@z \2b2&8,$XUըԋv%&·.b$IX7=&4J-_qRG #qneǂ}oΜ 32Gճ*-eYg~y ZK"~x0(l'Yf.ag%z釋P%(E΋ AO}$1qj1UkaWUޘ&+Po5iZG*]3svǏ \Fw*vRΓǭ\Y WIBoJ7z e3P/>Pl?Or`dB34&}VWp#8`M-1/θ3~EH9WZ |.U\ilJAլC)BvLB?t\]9^G7ilPzX~ACW0T?&# rD{-'Bᒃ\;;Ζ̜t8]hlup %<Ũ5 ;bi>?rԓ\(ּfB []`@dr؛ڨ]N`ivAqV| }t/l[=d^]mK_swe<;RMo!:kZn =F"iHn:6m3g x (lꮧJm֙Ѡ5Ȫ;}HM0٢rU%^PЙ!)ދ[RjUP7~O ..޼bUlX ^\nlZFe2VDeB`+9xA!0PC'=ZlA.g,9i ;dNx锧^ :M !!JL'Tq{43 .ڍL3\e\ Ɂ#8Qz'voAO w_]F0%vp9&Wdlg9~qnfB$eo٬BӉ6;vC^ ؟*)aM{-,P .j={釔A핱=#3NM8Ad=BOck WۗQ[$ߟRol\SkM+a}jc?/[5DzWnH:?b_zN;ۋ>h[RuRGJc:qbO˿Jz2y}Q+T)Y!w"1f:Ib΄Z#b89mԵ{Z5q4j3R*ZL ƀlǺx#]~ݍݮ7ia$윥M=jEH&$ܤ;ȗ6 ;`C(#a:@Od+<&A8rd6^w)IZa0 \" 0 iqR:Ll +-ِ3>q*%diU`sȠ`y*1yr$@z$)}R Y(7r^Wƙ+U< d \ȂkA*,y>)VF㾀[_v;qCMJ8]V-֚}Ğhy6gι:?g7dL,X>RQG_Ǥ ^P+)v Ktu%B֓LaSju'Sr/CI.;=nXmҳIvatis+>eJeܛÇ2yeG!U3zU$U^|K { Iֵ+ \DT.gޜ:$`(d9z9=sD҇~a !8= h,f_RD'g"oLlTP@W^,Owni`S.$dK?3 i͊$ZGL !9&>[XEq C4 3k. 8eYEˍ6MVцm x|[T|zi&0c*l=/e*s ɄCO\VtW/8@Eӟ~D;aڑSʕ^vC[(jdհȼaŁz}1n!ih”8$} y)ّK+!k֪z<^gd@+v=ϳ<" {ݨS'}IJHuPĶY|l(|qutxNrn=7(D jE4ІYj:ډ_ҷb'WH.-lpc-B˘V\i JiXqιdzl+-{w[N 푮EKXjv*$Kو+ |[͇7/lR{^Pҟ8! SުjMD9-2,[sـ.F\ȷ7mBeg9cEj?wYe>?<`Li{E 8NSNGz{Tof߽ǥep]iPPrϢ$ޕ.'uih^N#rR80R)wM‡s{Ae\bk ]3>_ˇ*tZEaĹk?GY7 ;$QtqsOdD4N󣄃vV!*; {VQ3%qԘ\]( ϙ; $kEL}LkiB5S/B`mPGLY|5Ãh[fnUUInD@5!MXo{(-9c3,5̹@*-TgBXDq̑:RgkW%w.`&Ӱ]v_wAa9)F ;f#-Vo^_nzWQr?Sϰ珡q$ҧpjF "Q`WU9оr 9Sd]ck{.FWףɄmWN ?v:La/Cu5(J2NY3uDWo٦8̲^=Ցb{33 cGwj DHtnvq´~P 8v_d|ٟS\\h?;?O/4yM Ƞm܁1ĂW5h:'*'' b)(+@h/6^>۞ӈ,ɝ."$E8+6zq ' 1@{f `=0fʕnӅ/y]k2GZ[cؚ͓oO 5aSGou,  ]OvA މ[n!sht5`x@S2у9qATJ 1/4+$O5<~IRGN}Z-u k-e˓=\H,󴂰 QvBJ1s}5̝R^g7]o.?Rp#sRng򆥳m妚;6)ݫ=TBAZzFZD6$AvK{o|N30 ̤2]]}}r" Ut`]mxux;⍿-^DF Wk7ԋ+z^F#~~ I\ A\.Tj徠]{z3&<3D8d9[66U,[]T} nbcx\7<;!k5p0af6|T0"kѢ+q,WVt QW>l#m:Ho`]?Bt8fu M'j՛jag9CBht䏍I)jATcG'9ԐT9#yɎTbx#^ OiU21zJ!;c)Ö+FŞiPt1PsA2s!FwNj)DQE-2ڄ4iVkqHgn1ծ{ZRQ gD.x^"&rJ[bw {6yK<̰EA)JhAzsN:9; 6:R'9W@ǁ"6vŋYnO L3h9?& 4](ךa2R`s2aJSIn & $<2Y ءOp6A).5lWRPI2V֩k/2qcXG1gFwE6x4c*K(IK Qq3bhݜB2g.`Gc F>dFS~W;U MtحڨQЎ>49_Hc_J,J謟v#  I2Gђkz]xݳJT85a;LsL*M 4"23srm ҂ ޸42HsQMQfJdIb'E/O/'_;nҔC2+d䢾.bHeWjG!@2(a>Yvځr+ F'SV3o>fI62:]F)I5&AXܘ8,VDAI [PVs&aũa j'9I ,$ieDfe6FguC2>MT.e@tOYاբpH1˿rl圫"ΨkqiNŠE;qfK;ۻ}>Ynξ/,*˫Jg :DNcf<ɚ'Yg%Y}-n6` "2(u]iڗ=[^< &dWԾs7}+]⭩g=K w3m9Ԛx~+gNX%K_:^(MpN1XgC$פAѯVITUլ*jX eTVqHt@8͐DŭnEqu_E-QgkCѹBV Mbss!>29He7ZU =*˘r"<1t^h&r<C=<*g%7/iE/uo>{'$8'ً;Ƴ; ۩ǃQ^KuFuv4LUf!iBq,"@]G U'~"AogY mT5af\[ ?6Pĭrdoº kv#HHI xQ$KRhѮ?Z a  ]G]H&Ʉ;d9 @$Tq ~#%ѕҝI-R7Nϋq{y\uyj@[gd<8Ҝܔ7PI}Ad+Ps.qqQkR4I{6>Y6]g#{4Haz94Cg'cT] ~a (hW`gQ>uN,7׽3;оG% Hzk/UmN8Ͽnchun!R}P|ӑo}OZ.lxp鷵6'eJK R:3Ys XKΟaxI}!5VOPaR3xzz O "aTHdz?FHm`ёѻLavܿcjPB|S?|0B1?d' B%ݝX]jkw~E,Gj:-j1ؓ2s&ПNɓdf"-.k6\;+_UBgZiW8C,ڦIxN-4^o4a^M5Gu fE!DunȽFu5LZnFMZte2R}_:5TmD86hPPNҺg܍\ 2Q%#lgF'N4_TKR4# vm5DRВ{,'Us?ɯ6 p[x~UĤyJ.L"9onY}̹C7iX8OT]rMDV)qĄc!H᪛K0\r 1kkr31֨r${̳Q[v2wqH V)yRqžD- ?0f?r&D'0E+mDS G7^KY -E'эfh1!Xfٝ˅GIRؚ!Pɿf$Z1@L5Pvo*ZGU{IU~Xj ýʟioo9L.3Q928΍j 1iMGvGh%;:9ܶ9dp;?3 hN5e6dJšG$UK]0I)-+J1"a߯T۪5$=#'h} ::st%xLOԊۘHgKgtq2t&>IG#X1=V5w,3pf9{oH"͝ Ȫa9~q ^Fκ`uJo.gB==Ĩb_;TZӖ#6\k 0=q96RU9,+,=tƧT-ş3gJ&ae!<ƯwD)`gWɺag%'qN .'X6X{e;F^8n iq)ZݍӥE*14x<9m4ei{y[2;:S1u1^^qHs_\$vֆN/M|rT'2rE d׏j}iU@[voT^~Wfj]o ,"gg=JӝWk+OeW$O;.-I|u?+F I$>oeSǨ>2LZ3ʖkksEkHkh ^Y.gdWR.)v:tIv'N%hT+U5 0l+Hs6h`{ʹ::RRo4rC@KHg]sPApBS0f,Rie +2I|zvԉŠA6 [Zm]mo%}dz Wu%!?ФFh\ zLa08&pHΕv\&+D ? Ck=,mb̺f阗Bb6 Nj1o9= ,}atVZf4 AN7ߊl5 *3$>zO\z|~0v׹wf)=PΜ] 4͚h5ΒK˗DB6eη;kﯙ4Z57:\?@kD]&urp2&a3FsdDIY}c/UAۑ ܜ r^i}wCu9doB샿u]K}1-Hngm l {)t5U! G<"Hd^P ]򖷨+asڰӮh͓>(IQUU;RQEfs*} I]2k`~RegjpY@D[Ltg~{(}'禉T5TTWx HU[WVaQSjP`"8}pQ\|Tō#:yiyL+;bbNbkT+ pjMxB pzϿ篃%‰S Y x)-qK@ :UWh~(͟OoKoIkօcr.Q脇aKR6Ta> n' |I*%u!mð.>pvT&Hp~˫oâ{-"+&m6il:h|o|qGiPJn\M;Bc 9#@c֠U?ľhAЉNî>z`wݮFFq`+vARm7SIM~2oK h&8@?8=<3DJ"Y;O&,{S~33/0$n>QAHD"ږ3sYR2Y殺7BP@[B02rN<)DL]X{]87k(~qu)%n?7 s*!;#ۃB쬻㔒K-g 95aD:U">EV1 rR3EZ=O7@ZK-Yx0ZSZAV}{)Z:ooǎ]Ǟ1:Յt?uO(JeX6l+Vu7RG`LJuU5ڪSmRM;JHQ :"K1Sl>Rjh^7ͯ[O hʞ,/K,fT36Nk~g'CxgϑO%֖e njF_1UPN>D\|~=TkFB Ir3d!C ;7q/NР84#LDRJruj7`WUPFh0 1Щ1꠩#CbԡF iWg^ g=J\p*(Mګă{[M~\IT3o#ma@rH[ZN $.;gKtIX{sGGKߙD/?xh7sڔV"˻NFR>6+FREoSWwDm53p/9~&y(.f.-{{ "g }M0ޒhBk"`aHC;VTCUb #Uˤ,1/}b[`z˷^:ɐVs2HZn  K3 E-õϠ^G}abivȯn[#Z-X\h#=,)^t˚0U6X6mPFe&y$p=y;y@Qk9L' i|Z¼|4zK*-U2O?i-RI 鬝B?M͘ _&^)s+dXȶ/te"4s>M,pH>\\m$)^o,`PH}af jL92̱}I4=<=x2+`=G"|c,vٝ<)F#ud؅I#`.Q32eޜo̹$]z 21L3aH6ы?@S촴.+ճGl`~@sWթB>;uudՅNv7|. n6š=O3dAnW B6yz]jG,H4s} 8`8csђuP61b]f7e} O K- 9.{+]Gs+}`.ILҬLàČҸ<(:GٻN1_?+)SMۗ1/4z̒\Y)8,kA=`H89bi36kOϑBكbQZ^vS8Ե=DkuCgM߁-Ǭ1s~I|{f-.6Mۘ]MUzq&~v\-k28̩)r>üFǗ lWYmI_3')Ȉgv2;ͬdHrb ALOӵgO *SeՆ&ONI`y>Lwjj4k̞K?_ܜ7[ /k5nW&'VrP放l@Yo(歹SGP/[djUAoloU]j&|BauSݹ#p9NJ$Kz򆚃,+[YpÁdžD')n;9x?"U^⬌-6oݐ¶uAMd-Mheɵm܂mzh[d\ZaVbJ3uX}yN " \w`031PV`Devtgvjq*fakAv 0BWjTkj}:0%{v`FꁛS{RD4idI4 TUW%=01d {M)@zΒ ߋ n4:LCkD@ Ps/L}-V;΀PWw6˺WE]ǐVY2)a1'5 JROS˝/I%;%{-;8BKz@F9p@è +(GGuB>ӁOd+KhB2 Y=LY 0Y3${gr>+.BRɬax 7>jRd+Rt]A+'ED:DRkߑ?RPZt]i+ώϪ\Ϸ|ޭ-CZ5#7;Ϲ$3\YKzJigb#S>w3[|;ߡpN]=]"B% ם,5!OK~v[hcKehbL )L' 6xwb=@0p=j ͟KpCuk׹Ei닡(gKY]Y o@#kv#1{iӖ63Jk8\M w+QP8qz$#VGyҝ֚S|K =Gd8I ^d.Ȅe |BZ`OGqotb(4罩O[6hغU.x$qZH`OGXtS]P|yB"4}%t*P`l6,l-?]WVGt.2Tp帏*DxΝtIe#@P-m5>I1uf/{ ڄH$?YB`B; 3Nh`+TrSŇWT4FӼ;NU)fZKfNmn~P4rSڑb! F6Tp|_">CRlsaGx+2 grxiz*oi8(EsNC VL{akWQr HZ_;7z=y#x*b9 芯 ^~JW5HqP2T3?5sH*.cJ0/)CQmAmW0Rp?^[uWL/뢦T^mKQ?rR`|!&VN/gw4l7TA);ƜuX6l)|q3` -迅W 3"8vg= y3JlfPM0C#з¦ɗg"MF^]U IeJQlak5k[1cF:OTQ-1yX64 ٷ(} 7O#Yn뷜9>ǝNNgwݑ0rzڕ)$UMGыHX+y/WV˓5tj jZ;~;4^{M=-# l.*+UnMŚYݐĭLo nx u';t`j)u&@uIU%>,*uO յw;loM66[~*JM5 $3{ڕNFI9'G1!R™]"45s4S 7jԛ1wkjjwd㍚v` l#{#]J]u.'}&zL,7V@C w|rI2E=Jo ΰ4|R>%Y`q(n:(e/Wo{|t`^sߤ ? < 4q/"iϮKrGXpݥ޿wf^s5Sf ͡W461D L^ ҢSTU2M_Q]iڑ^ɋ餧2mA6 "9t Ndެb^!b2#{{Ҭ84 0I,6y._Y, RpZYckRSSDP.#rB׊C8.{^R`A\mRhƆrilQAL \=+$"靜T 9\ Z+9MPny[v/3J5GL iq䢫oq[d< 7= 6Q1Yi4[ C<,HHmz_kH>^+˛VyI#F&ق7g/(G8fR*dKk%t-ֹvc2~MT,Ѝa:$!6 # XdŁk?]LU&լ|åEOx;S63]%9KX8_ȱQ<>LXЉbOJ?z] W]靦 nvV=R,FNK$#k=үHr6[<vHl W(\&  Hx\9s] De Mvo+@CVP`!l LW$mLӑnZ:R[}RO֕€uwVQ,6H<)c=g@m0 v4"9miZ4{/N ~^0e Bl܈5b>,6r+Y~ø8;>&p T<}q~,6>#aiJM(Xx,iUk(glh@mrrzR롼+Y޺>m+Xא 4d34lUZ͜ĽY9M|> oNxs (+CNsgoyֿI_٠,KnKƩ.BI}NūHU$9@ M5T:S=fUw9#+*!4W2I;لZĭvE5$#]SmW@ KG.6RJ\] Jk`ˈY3TOqq~: ng†Rcۛ]免4ᰯ3R`%B{ӔTktF϶0Sa $( 6vvCᾯ(Kޜiꦠ{kXwm"3 [v[M"HeT -4r/D\KAWݩ@s$zUgP;Z-LL6Bj(Ĥ֢00E<BאlR+]N `\`X abc9Qti7n ۛ/7kMfTo,b1V.ϙ1^A^s3{# +Us̄kAI% O#[Ѩ/BO!SO}nBQwsx4p Z[ɛ^8w3.t&$O}Eݡf379E5#] RVV e> #DgVUV^4ʘIjhVƫݼ܀q7%@&#wӝazk#! ^Ш0;THY)TZHeUOφKM@ݨ -8ɶy+)]ڵn&zʹ NqzoQDgzMlfAI)A5葁 F<&%kոө;Ո 5Gl*\pa-};z\IiG4d/Fj1S !8`smKj$0~dua!@9;9 J.t,C{hcv/c{kPL!繳94V.pkQ7lx\I]|?+N^):Q:vA{|px>s~.WE.$ {}2z&s Q .aoR-c^-۷oeb.0=^cObI`vwM>+,<Уm "}hEi8E{6'jt+fXvٍNm2g;FM[UckAY\pIv:-1d{آ.qgo| {p g}}vF]'ܜ{!]( oD?oӪԝ.锍z9|kn|lngc9$>PI\tJT,7@+4A/7XaKZkNTҮNR,T9̆)/~zC^#}g>fd)l*љd[fu8=;w;lP~[RP^d8?8}[ih&.O{g C>\S6I\ѡlE!&)/VQ)P ÄJ͎C)S[ |ZC #v&fBbXgJd p (UsK]4R5J k ^7x 0:jo!j#;)7aK:2AW5KdOHI6WFŗ>P9 w݇;'ܠ,h(ʭZQfEV[TR\*҉Է] V.IAe\Ee]rmVڢ;!AS!?$wiYA%di CZѲpN|1N͆v9sG۳f 0NuJ9XSQK;ǧSB>D,]Ee YɐTcZaiJ;AF/b.xD}8$%n(M> J" 'ܦ%GLj6N&m"ȡ^@uScoݡF8=X{Voz5dl&$ Y[Ж o|AV~NFr ,ed^/ ,$k{+QD1IBo}27Hzԫ,h>y6)-e_B*2B@LL/"5Fs` 0ϻ3%I!'L%n;.%@'YkjVCS E %/xm,[ZH W`VZl=09Иh^53u0yiZH> ٚSu(Jm`5~(Eװ ecRoVVYy{DImtch`3'8(opޙTcsHjYE"WP5>NV\T嚝G#2ZtU$tK-C3g(yDL fqvlE-uf(\ֳdO^_]ND؀noc'o$:TW)w ;^Aa햨$>w$`kr/ʕ5j w檯s|e(ԓIf:G C=6B$ 00Gj+rS>VwItkq ܫK.K]i2[W}2J00srB\Dkk:T<F/բis3]״,ƩPK nb 2Kl2a֬#&)Ys1Ru3ϵJ΄pݩ#[.SyuvzőfIdB 5F&2ꤸd7jojA– J6da-c`UEi ƵSWI"HmY!j\V5wj<SHkdj5S!ɰ9VTy'Wf?FmA'STS)z-)I@vmYN͎Z.pTFs#kou?KG]~nRb.I5ͿJY&(PS8s iBI;[pѼfe'R6ť1tx5Yӫ7vzΣϗd{7_+{io9-+kp+`'f9'GSc%s zYE%y}[/*ʪbJ\Yk߸ 2i;UT$s3|!l@t|MFiF`s O$_rIJRbZcp-h7x{^D⌞圽[iYOVSkǙ.Qa~3PXj_ޮԫfRװZ??~ğ 0HC?v?ɟ֒rKGh6OqfojxF6tsT-_d:+VrLqb/ug^Ǭ kZ/Gլ4J @'5TP0j&54CNlN>gl֎Iu:ϐ`U"t2H:Rs?ozfKcI\)}0 +rȇ;Qs6wd}sJnKq# T, l}NSܙ`>sI%sP>I cFMV!Wev>@2g<@Pl=5|֖ٳu0}kԐ> nFq(~qa<} t4d;)n. sv,sӘfso3M$mޔ,5ƻPQEKvhiԍ =VaCw' [Be8_<#Նgw"ĸ?s`{86uz _{%6{9~9KzWg;#I`g.pB_;]Dž~:UOI4A}cW?KS={O0M OfuJp[1)Xc g11-7PYBN4ǔ9HusCGsnQ V{[|p,ʊx́M.esjy)ߛ?jO# &Mۇ5b;\35 ~^@$mԸɊKi~>RsәGP.73>5qt)pX0ҍNfWM3"rϰDN0}>C;y21%}Y\>"cV>i}.L94Ϣ.^<Ћ9`>13G2Ul2'icL[\3\ct gg) }|] to?2NbKkßpX0' ,?ˬV8@F>Ag<~ѝC+C3UH4ڙܰdwգ,$O˿;_D%vE)+@ۿ-|_>?6U(Ѣ1"0(SZ6<[tQ'wc=Wr#'2J!AB=co?X -ƪ"."*YqKKU=n H(~nX Y-~,"jk\#|FeqF;Z>\J[B?g (k/x9SGnm̉PSHvk2cQҚ4.ӜU3˨O 93To@,ܒTŠ鋥~򡐴c+ϒCt0&Qzg\譶Ȝx[+JyuO_Y0XH.|xRRT*r8Hci-ԯH'tbͨGoA2q<&?$Uwn:>?|O?r7_M??jQ7?s-(`;3UJ_VjlVLv}`g"/y KLV"(/U#R7SR#xrc(h8{2` 8;Vl;F]D XAT(/v}X|aéb8`UHX袷6Ku,wziLM\J, ?mK(:[3$<$> OO[E~m?4op/7̟HǘCBXԭJ=c۞GW;&`Yڳ}ƒfv/:kg=(iN>#v& I6;Ȣd$`6!a0cHԙ#-$ۙ ʍ'$ šжp3 k`/h]~qPof龎IR; xx[$!ً0@ミ:m_ns1=&}r8[1?D}Wl+ \shuL)5Ry߽]: ,sR@C)a:,y,|fjbêT 3I@A!9<9:Q$f|\՞akV#=<Tf6{{Iډ;WٟMcN \2О A?HK&-tc-:_~xTZ:r"=~Iwh.(3lJ>2 ;:CVls[t{x\~uOxW}Oۍ~«e?=|} v~w!e*zg/V~78I •!i޹zaQo|v?o?O'<$~„~z@OUs'͇ocA ݍRK!8 -8s;J{[U_kOLO.ߟ|y??뛿_3IM~m*>O@R}ʳk1C1% 0U? t$>cU1fbv(Ap@a6sCSx|q~E}`-@56l:w\TvtY18s%.a?~j">9]qo/S\hH_Ҝ/1gٷp?ˍ7>wnrXg^x^Hnɇp P u6c?|("1b)w.Ʃ  Sls&jXUcyY.`M# |z>V9~'Fo`+`zh,(>a$NUr룒!}zÀKd;(ĞY f+T*K_ZMPv:m2f~?YC&/587$\{ȀaUceπpFypAD%!C?3ґOh]D)I>ؔm£ss[?o?џdK?S.M|7?O{ă k'Χ^I/]9pS+voza~wY74'_Ipq?3'=ݨrq0Vb!U X؛H7PVC?%3O`K2r߱>*d5**Ǥݬb%;a_9d9~!Ωa.2~@I׼w>wc1!-ai|&Vkt*s 7EO,Qش*=+0jɏa2o[OՈMBlSA|\N23oЖl)}ljBnF"_˷L/U,^#8ƨ u/4P@Ӝyd6 `mqC}܊I\ca &Tl wYdq i9O9hyv$ꃣ!'oA7"qc@C6橜P0=|wI2Ir>?|OI8 Nf&䠫??+@VGVoPS%s%^J 45 gǓܩHdZ k/$Z oݹOz 2z]U de;!<<3H)ħClbRBhzC^I- L |7ʿ_[L$!3dbmSLFوћBje3T#}m3]LF>RIp#眎B_߃_&+8zkg[Y 8*M{DI-Lvm cECi\OM䗙YM\ hx<RNvET@1_u}g)Ⳝ݋µf" \lKN*$C0O"$FUecG{XjtazIʖ9?ԾgFR$uZC`d2PifYJj,et̒kve1zu~pһx1b ,ewiڃ:l?.v^G?o'+G<%ʒΒoL / $Cn.#eJ0IT\ʜ'pIBtfN"6y@$ 3F#/<4[CM%pI{,(G,sM$S%W3z?|ѨԪ</coZڃKߥ`%t-EEwNۻdz?[%gY"m0L#^^f/OƱ<0h"G/ >D;]fB?fWGm UK@68])6c HO x `[ 2 w뒐ugز4&HOi૒f{;(~Avb ,aCسlL&%o>v%pC z3}w?tJ>t1uV97=mjeƖ JKg\Cf4!MJĠA'j]G h:hY7ԡQ1_-Fs&S¼lX#Y#:oFHAں@&Ie4so#xRJ=IFȪ9G!ygޅW!}JDTxL9OjNny)m͂7ps5EF=7jOCI*dYkpNH@uG٬UV.cvThcّTJ;}ޯ:pRWi5kI?-=_LJl!@0%k5t\?JqBL|)^\bjG H&؎I5X~3~AukpϪSQ~}H5cwF8^2.ʻ@W9{-xQ(Sq≥aiE_ qB—^|< &["~|