about summary refs log tree commit diff stats
path: root/subx/034compute_segment_address.cc
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2018-11-23 00:21:41 -0800
committerKartik Agaram <vc@akkartik.com>2018-11-23 00:22:24 -0800
commit4a99a6e0dd3000d8e595ec7b4b04f637e66ded6d (patch)
treeb6d0b7f2145e4370c22fd0142950e648b406b524 /subx/034compute_segment_address.cc
parent6ee77ba7bb47bc4b17df67d2683bdbb84f326e8e (diff)
downloadmu-4a99a6e0dd3000d8e595ec7b4b04f637e66ded6d.tar.gz
4761
Bugfix: I forgot about ELF segment offsets when implementing VMAs. Eventually
segments grew large enough that I started seeing overlaps.
Diffstat (limited to 'subx/034compute_segment_address.cc')
-rw-r--r--subx/034compute_segment_address.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/subx/034compute_segment_address.cc b/subx/034compute_segment_address.cc
index b302e4d8..cf5b789d 100644
--- a/subx/034compute_segment_address.cc
+++ b/subx/034compute_segment_address.cc
@@ -97,7 +97,7 @@ void compute_segment_starts(program& p) {
       trace(99, "transform") << "segment " << i << " begins at address 0x" << HEXWORD << curr.start << end();
     }
     p_offset += size_of(curr);
-    assert(p_offset < INITIAL_SEGMENT_SIZE);  // for now we get less and less available space in each successive segment
+    assert(p_offset < SEGMENT_ALIGNMENT);  // for now we get less and less available space in each successive segment
   }
 }
 
kÒblpA V R$zZ8|*fɲQFqtڎ8]sO$k)imtxrϘהzj;b\V`n9FrwzҒuTfډ+e"KrL5qct!K" vR

,٭_꘩% W3`<9YY0sb{9b5{? [epW!a7= IrU ̴Yщ(Rd0$:4Uُ#iMQ:> 0`6sQUŁcK58EOxi~w: l9chmbp_J ( -Bq Mx̀hF#pa̒ ]*6VPMC`mba\ORfL&v7[1PoЇ4L!ݗ sʳt2t;E-iM9$aLM=n ^ jpߴRq g+x:`lijf+ɾ-,! 'i qshR`@9cmoӉGƙS5Z葖+ edQ L4I/@I4<5'5U:øgqȚt`8$y$EmPIx Ersxg$8< 4ڼ>ĿR}0au}_Z8rڠ^{=иwT}iduY=Tn^C ΔbؒOP"{!&l'jvj9e L]bQ1p$? Ę0>4rõʗpO%&6z3+8.dV5 mRp&`S~fl[^[B26;(1e疴LjQ|U9YΝwI0ŗe0o]rg;5~ݾM/Y](+ % 1אtt{{Nw"՘%^(0JW)  ɻ R-&c3P}ǡ!뷍 McXW;:f H^SG>X 1նbÁ&I洬x`[iᘲcln0`4t%Sy+l7^Da˺b]؍Ŏ̇e]3[Wqr腩@n\GcI<\1ƒv9H/d dQ—Kw 9{Eu&?‹8ܦ~xt&~ZE ̰hp,{S"n2'͐hlYwέ ? 'siE-h4>HMPs a hc$m"D/x^.wz@D髫Jí ?%[W2.h;Ta%4̅;"XIL$8x JFyeo°#g.x{jIjdtI͉2\CigHZ.?fN\aGW#5w=}o9\Filpf;ˑ RrLfos(cN Do&Ԕ >E02O)e0rɴZҟp[\)4$$r[&Qڢ,9k3[/ 29Ab8.Ld\L2dhq, -7' ^vdI͸OFx]'U63g]G ^ >ަ~]`tz9\ƹ\xHg5blpCh<uk)jxGjnPߜ]**dt q$$7~P ~$lPZ#ͤ}၏2mW%\M}1S^d<}:К09ܶM<*8zAK(5z怚֎J<[Hk6EK"t@tvj#OTࠤQs4) P5/ԣG 'ٻhv6L홌7͍~irMl@н1i.$f3]i@MiFDށ2 Bn\Ur 3-;.ۖ^t4ZL_f!\]a}!oT[2 <,1㧶"O,bNUoc3rd|3h`,d([ZSg0hLh%0_1gY_>D "!2 ntE5IL,M C* El܋=ѵ[I(hE1ٸDr.@`%*iXi1JwpJ/ޟF9iy+ OU QZ۽vÅ;@NWh;|޺E,<5U#9;7-ԐE)3*V.ПmK.rh"-]Smrajm;YJ돲e$N=j\ 42&Ә*}3s^ Tqi0`[Ckk9ɕATs<\rSqZ͢](|& Gf_;Thxhy @tmHG|&~ڨ 9Ni6ؓ5j6dF 9&0X~SM- m9i0x {ǒ:"YUnOS<& dk+ݿu/ς U ksC 7oɔ7ui8C\A\JuZfEoR+ ?> 77(P1E9@ ZVnRPX)?: -*a{Ɔ*&ktkp@FY>n,СǞmxS'bCE&H5LMıF@Yfb ų?'aP/' qj8 !ĂsEܔSIY?'?;ذ_GKd)g_ձNec`vME.]t}Ea眆#}ѴL8 yvrJ*G=ҭ FWVߺ{h\ѕ1"Ñ hMyHf2=ztsėg* 1۲n,PZc+K):B֯T9]hŀ٘JUZ+0EBdwWiK桷yȅ`j$].3^ۦ@*u#Ŝhr$jQع̹w֓QCrζTvIǯ<Wr><,kcNѵΒs75[q䪩 hq/%0҂l0ڙ;7zW4q-kDx߂5CU7Exp hde[{,*Y&Q!mCɧ ?6D:1be!)k{eGGH|(JK{:{Ta% :JKCwf;s)&V @~)W_P{vedO1 8-X_5jʣy66 QP[ r\g= FWOtf݄:p0UyyVpzBQUO68#(/YXMC|υ{*lYEWkEf:ppkQi|-4MWmwLVffBIclj!qO{?t1ކ2{ed+0C~X\άj}vZ_n֭EY@;ӛ#@TR \KM,呴D*oW0* f 543tF[ tgww+w&?P*"x9iEaEʋٰ(+{HAVg GSx/)(93k]}'˹v8&u\88d e8 oY44<4݇#R84.GIV1.5t^R:o3e<IwYQߺabum`2٬Ѿz<Ӓះ?G{ch]}#pX0s+wFKSܢLL vͷ{tǭ͝{혋N]EиƄ@̰٦Rk`$.R1ptKLUk.*o'ڹ®WC; z~'WzKEKeygI>d6y(i؄E?`Bg=]l5z'Nֳv=sc$e<@0=!Bڹ*v0x/}?ug4/lI7da|z߮ޱ"?({woxB&sS KdYC͒9-Sɒ,'([Is&o)iFV̶ #:m-$3N0y)9(FINa?Ԫޑ2LS.Slݔ[l\Hҕ_s:o d̮ySsH{@, d {lt6'C1+ _"sҏҭH[hmtQN* tQ`L(W{EǫG^qNxݼ\>&EU)/M;Ҧu]hUѼ:Ib4T GR^8A#yl|ء}Yar6MrE E+Ybqg]t oC[[!lo_x.pu8Cy]vŗߵ9[XnjI8 sB̂u`P&3]}݊}ekۛN#K3M"IAjUNpL`@Zcsi1J8q쌎2IooUIl?n|Xnw?Jd=O {{_woxHY+AdKxYtaī1 k|0D.*LxG~;5+M1UՖ([㊁@VQn'AMlp̫=MmEMR1⺫L;m뵟^Aveܞt"e"/64{4e(haQ7z.IYi@a|wI)NɻKZ:.JgsfÊn4ikA@ʌ覀B:R\;^⚤TKX>_bq /.qW/Fhs^8raB ص'ԯnavv^$UV3)h9ESa >uJuÁz͉')OU@ PM_)RTf<&HK?%YDž 0|xJ̄yQ"J'$ N #<^HMIϧP".oŐX]vrN&nYIxe0)nj5J@F{ ;b4̗sG/J]o!tˣn8)r|VE;f &-J֒tbnV`[pvB"<ߚx^'jhk/06CAV}f,Ltwޑ7`cxQ =xK;ji7&3i$׃hj$&.I](kbwePpBW牭96({?%!]9[ѵo])\f/vcWӪV݅GMMe"b|XKOH5wVݍ-.4zI/Yh6V gFD=5n}Jz2OʢvP<_Tnr:r{w941\7~;,($t'a8ÛpprIi Ԣ9 CBG$W-<^^gI]`ugs 7n]ZdVbfXو, +lz^&m+VDo{ݒ5Ǧiw6 u6U֥w! LuLJ#8p|*v` &uY94 WteQ F:k*mloq]=nSNuGe.1^G|h/ ˞;Pڝ,ܸ>2:$^“p Eqd%R9X8 8!]u'|ň4[yhPs%VEm>v J.I!j;x;zuy#"2)JH%ڨI^_eӡz~0鱖KxN(B fERu`r%J5("@Ef+bۏ(?sxdҰE 6p fBWSz}j7 `JS1ɻl %0)-N' +Wkv5ڑ;́da5u5)ڥ :II69 C7!L}$!r49ˌ$IA)gJYj,8VErm· $B), ;yKԐjú\ųaRl?yMpZxoNUA>tAkx%Zs5JDI.NU/.O MC)'ɕuiw6hvCF.r(萗HcZj %ÍB@2ݖţ[[&q J?'LZxqs+ۓpz2b:^y-]F|#ZTخSGMKZZso|ֳiG5@K?zxPl61w|o˪ȍPݖ$x#Teu'PwU4 v/96e?\20'+M`7^6qoѐA~.rK~] "5*C\37_{[;25˜)[\R_۪V8blw]yɛl~О]W(tatE}G|‹Ez/vWX`{Wä4ڽ.uώW1?6^aԽKgF[)Ô9+PBnʳ:u Jſ//5P^8 "Bvݲ/P-/**{_u}=o/`e_w%ow6MXyՆέ`L&VN{IWvkKftxׯd3DÍ^ pe98U_%}duhj8dk;U1~Wz&! :e[ЦFYrwg̓ 1e+R*9ki3q ۴J|=_Z_Fywqn-I:,Vݮ`V8Ze57O_ ˣS!ς0eƯԫlꏾ(b`|Q#[*"/v +52%f;;^9;M_9n~EfQs9?*, Ͽ7$m\o~jpEu&oIm5CvnqW?:tœ#0z)o"򲊏ڵܽU )WQx[B!,B(LZt͠$G$2Vr͜y׽B ys[{z Y7P$9u,.՝$j+k'ѻPn=~GID|z1Կ2 z;NoRG.IԊ!(T=c}AnkчusGw3I@%`wfmmIE)Q GʹvyZ9(/v\!f3ԥ3P߈ R +n“5eȃ`8bw*UȨ.KRw@tXzճWX,u1[<ą7נv{ռ8E͵ D҈ĻEk/V[QFrY)z^xU>ԻkA7_߮t6N!kҐ }mظϽxy-̊kF/mhGXk%U0]!D ]zXg nv[Xnux%_ݽR^Vwi 8'.K0 _\ 7A=jIo^p~6'5p%aЀ&/;~œ*?Z6lt6,逸p`|:oqGoDU/'Vˡܽ$YEc(9̌q5h (@[MW}b7H9L8P,$,AV+C^iΒsx73Pz^6j~;vUS5Ua+Z ׀|XM NO!X?I⹋ Ypz)¶|\@vRA1>03iw*8~$BQY\tԯ:qgA< < R t &%Narw$z{mIo]Anx覕q4~XY\`su<w@=N8*O 29 e/gĕBLn7B6򎞙P)x\>ܕz)$ܺ9pt,\3a2*.fj*-eŁՄާ\ZE>5΅ !!zԄ tF5ل-Ku#K=,E>kA 5:`G u 8/ L&eovVfh=kR< ejnJD%V7[[> VE2Wq""^Q)|$]ةmx>w΍ ͫ+esFs'+p)[n[ڑ  u<{ \_?(nygNp#i2?DCJaR`J477RufO_V^PAՃ*Roв0IQ;w0gA~C)D\Mu!Qu5ambUC]8c`kڍ:TiMy?@\"Tt^f'2h[:`…oxeٛ*Yt/ȂٗD#}hзQ{t9Lhn|{[JEwn䧸a]thZ(Uɓ{o2yUG?g$TgA6а W6D^l2կ$IwޅyQ (̶OC".W r-9pI v91X.oK$k \4,oh;%$#Pth6d6~! tSLGh0VVt8 ojyR(1nU<;(- f,h;d!Blx7dAX=tUcv`%O!fQn_o@z{%ADLiUw@[/Wޮy\J'$ | 3N϶h9ޣyDLRVYg(CtsnM\YU @|fy Y2. puz*T2 rT$ 1 #zdM2}/ [7O`GS9;Yq|wF煲YCf֓A+7P/npp|y9cKw@\+Ɍ* AX )]-"N.lI[/Y˶k"cwk]|V."g:Ʀ/x78|rMX@$Q_67nn:yd' FЂ bޙ:JnA1wH-Q*Yyf8%RǽmMS5ЭgF'ΊBT8VHL ;ɹSqR:NSƋ+0ݔ~1(w3byjkՎ18ÑKF#iD%T]0(WY( D YF#I#Q`lVw-~*ej?|(LSQscWUf_^rr4bɹ_;㥹>SSQEMŎBdckga\<@gs9Q<%*ϡRM1Q05ǩ.Մ·$HqHM q1pil@/YBZ6 '#ʿ6 ԁfjW4 dJq!i$ +Cl<$H/ XYצ?3g(M Fs*tX{@ޣ ٲm࠮O3x֡m2RD:MR#ɹFhbigxȞ5,?B1a|ddF`};ի ; CdJ#F4Ϲhܭ'^^㪣&@\ݒcQ:[xV()ZW]銇 \Kt&,5w:ae1>:< Y2 ت.QfW_6EqzfrhvDd?IMmrV6]bOD(Za:zq-eG vqVhWBp,) ^p:/8׀*i'm*ܿJ؁пٌsdΑsE'ļN&\R'!qV{*`IR},g_?@B<,F90|Eq;ZkOSU:q3M_U_p='NB?%=zV`+WT\~EL A{z"Fwdˆ %ֶ>rvqȱ_3l&CJ&+i$ն@^79"֙ld/Kc.^7/.;ssײU %}:Of^=ӫ\\8R7~Y#T{{B@aW,m0.P<\Rlt -kBHof7nu)C١/}pN ނV߭K.MZW)N~ܽ%eVkYюuȩTzYPO]FJHJ!Y# i@E .?ER4{i45N1ZʥRgB;^=dz8 %% RD"R"^fpUH:pjDn1JsYeP_|q"CD2 0,(kBWM l9*fb%7h]+<>[= $^Ax|f1'BQTyHR+܀BOWmrW.OVkK/gv_~U[X aisPy%CV ( .Uh-F.jTO?X9rX8O,`o;K}ce[;1۾ʕJQq[KvAj@lm(|%%0 2` sX@Zg-ufh'B3rܩ̽c؈M  pVhk/2`Ky }t,ktMGk_x=Ճ^Qw@śAO-4m*V]'uWBRX8s]DX㸤P'LY;;tF_P`ѶC%k~)pO 6c:oCc%Z_$|":#)P rG4J ݊L0[ɴ,1f,FW8$  C:tipa 'eXeǻٖD7 71lQ3`i ħ4Zg; h -C+`V00uW,U4z/4Q427GV[zEXeֳ%>^>w(TqTmqK phGnREڃhd>S1IL3@' #}#""x'9k4>Kw[5+NfX33P #< [aDLҐ'v ONA*D(Ɖ/4  1f Gycq1crv{?^_}d pdQǛ-Mtπ!K0?Eq|a> j8IE2OUa ,B$,C@Ӱuz9З'ME{Mar :W\ZGg/c%}VӢn x=!䊐zbIwhbSh諮4![8DKV}49"Ѣɋ_~oؓX!WSTwCP`-UoJ+&{^_WXa(؃h_A +8~f̪|j~4&|Sk?bJ: R˧X  QsZN00(H!~HGYXXgS$,\X@lX4,ceAQ 9".xG ;`;)bS^{ivZՁI ]ѱsM:^͒gk5.$mbT ud!uX 4 4:SCzqAՒյz?)oH(Ƣhtf`mxmDauELJޞ]q"7ask;7 4#3e\eRiTԜ s "SoY!`ykFXɢFi_P)U%\E[|l -Vi.@`HX6lEK{X/;x8n%Y4!P✼A[iV*Vk r?as:PJp< ҹe`ԓ- {/IOPŔt4N"xm‚C/Kê\Z? NOqI#Wj_j-.8^K7`SJ3GB~JdPO^'_Ei-`@VOd9CIgF*VܭAc.J\X ,)wKd鷹-?)|>@." Z/tE<{C\ۋ2z ]U9Kt!=0&i4M0ͪG|l/\y?-f 񨩹DwC4cS`c+ `#dAkg"d ,@ࡰ/2kLEFy6auNJ mU chrR(Q2*0?a(_·FC;qV޲W,*0O(R)0?(j@vNoV[0?yd7O.'{* _cm\O.iDyzRK%Ju~w bIYt)lɥk}ֳ}D+&p%[ " u!)^$;crgN,۳b@-)y$.ݍF(Zv2[$Uu&¹K6A%", s#zxa u05x.Ov'Iƣܭ>>*QoΔ돂YҢLu'0 eL\&j"fM mڤӷɘ|g%B/|l X0 y֫XѯH{DXV_D<E0 G,U0ʳ$Xs|gKe5i5kŅtlO̞кc>QivWV/` m-׈YOhz'tw:-5yJkF%nv.ጫN^v}~?{Ysub",Qޛ_^?y?'ẺS?&0=}v&%w}J%Gh2j>zC*pOy>2T8t]FَuF2Wm%l>eF"qOxš̈́D)4\bFyHax'~ hXw3/T$ӆuS!vwڋrO1qW=<fqI8{2C̗QKV%x%Ӽ+őDZUXz)k)\E[< ӆ.CdSVyM15]{_{wZ޼|oL|'$&wA+aUK\5[qTv(nu ̓, Sz{etf 5Rp4Ɨub[laj4nX~21mGǾ4r"$h)ֺzH y`Y4LZ['_[o1O9oFiG8LԘLmnl F[r[w0" pzX`tlC(.X'erD뙅-4}Bdiۗvmd}JYe (vGoń][nͻGarUbw@ͻ!uSwN>C1R#-z{G:['\qz9J P5Q͵FVĤ)M\Q\c}:^Tۧ9z[~w*0U؅orvjg T ₛ>$B^;Yui4,{&j/)Gfl 9S 0VN",z CFT&3l)ے/^,]eJ=ЀD4}|evacgSNF$]Nyg+n* j(Y,d9V,/§vAF!yHѫNQM/Nv&`0U+uG4Ů]<\a>/:utۼƼ< qF_gxB2[]3G6M%LPTy8'9UX}`n 槖0̯jq%x0+,,m`q;XI#u?(@o ANFlӊAK Kd5`!8٣e}R#UtK8Wrvaim2DރFD~  ~$ą!ʐ&2S&aewҪ,k}(W)D;'MWEqHZ j !"᯶`j9A汗ɢk}'PD"L^?%+)c< 1B}f̢se+xVvUΖauB.ny7مѵlM #ݰi}LVj.kLNc 礒u&MZ)й`F%'wqߜu[;/8Z.{ҹ{ӿ4^@mjJBkwsI@/02=zC#!+jLB@;ۂ/OR2J,-ٯ=^Go`]SS[.ج$YI9羡zEpUcG?$>%3c1ŷ!נBxbvڏY@ j d^ET]H6^8dT'MRy@B%JOOƃ(PK7nO'z['H_@rCR+Ln0VKgE<3Uم+ AAUVܥ[p_WRLUu{OsGOj%\Wl)_GeDsiɥ.$ YnPRBZ <,Ѯ䌊'XByNJ;xVzndh. J(] [ z2Lש(LL4k?+64utܒu.PQ; ˿oPKtX/iJoxDW[GU@fax,x6.~ؿ΂9оxk긃":IKVLEWI\Ԥp⫻DgݲhB)i\)+fY["?ڗw=/I"V@c G1,D>ڹ ` 3_GH޾-;oɥG OI0+P0,!D4X-8(_p-n͉*9u fW& eiEt-f1NOVp h;_T>ά$#r*-n"]8&6_j͍麕 0Vst-{E_%qʎ3?Ĕ|^,ҝ8 c)yB+DKj `6Ҳ(1VI*j3& ?.j^o{hKvjੁ?P?]' {y` Xip@_Q|uV)4ęRTYE + Cafph$ZX4PR2DScERl=\oI?P;.'3qDP[݃tA iW}/^8wp<'+qA t+TƔNqh|#{ D̩? x ':H6C37A#ZB+媰NNoh32w IB@Q >$T)ٺĹڿ[kqE[H'iHJХ#TY]XS6Ǫ bQ8n=phsM@,h3*1 mw(l*n*<$y`}32;?3]8, uGU ;_;.]P4x>—*\ Fڡh;zx׈~`ۍ bspD!{{&vQ4e taVi#{K.{{o3Ӄb3 %o؛5ix^CxFy8\e|Κ0ѬcA M4/r96Νǚ.&/ "M?_?r"%:ajRiFO,HR:Z6!5n\ܖ$C^m^)u,P 6!sD%i!RkU')aY1fr25s{Aa|tI?{J1&MU儵c2hq8%SK! ] 䚉0;hl9򥍠Jbԩ*0MߣqDuad8-ya_}ANAt^,.ր8f1tyW6R8 [98Ʌ.0fSqqיvw Wh(Z.G̦#nr_wp(;8ڴj};Lu#zdb;'SwtC&gb;YT7-Q;pzh))4Lzǻﲧ!,&WX ['ˠ )o!fz x]R`:N Lxws5(tVyr!~pps 4ٌ̿"- N<xat; luBz&g߶txlhZ:G̐{B/]  F>x>4@/Axux9폋(UqKڂi b2 lƧN}!Wkw-+lkՐa̴$%gY^:fJiMHi +Drmiڠ"uٍd4ȷs~+\veA3 TB-&w+Ÿ.La1"I{K Y*Gˉ+'c5U k^s;/'O;uA%$y( ɞ4 g#Vp%EtB-;^ꐢK_O)oq\(R0廎W@ݘ]AA ұki~s}bw9(3Y^Meϭϙ񸨛>YDur3Dm.B>%O_0TSX; ISM |m՝4c&F)/dZL8`wbǐ jkMDGч@Ǧ.P4+/v\~f2Ƥ(@#EBd#YO KS7mE=f ش~ŗ-+RV ըYZRŎkGr ,WYYsAY龍ϼwNq sʴHB.nZ{Tl(X٣(D]18XG[Iߴtm4+V36N~BkwzC|s G&QʵGg,U|]nCP~@fWM"|[h*'?^2uR6-OˣɎB4gshL  *U "209@_};h:[^PsK0%?$:Ps9-Q{'3F 80Si#14q Wޅ2擴V,-Ή׃4E7Cg۰g(ŵc='tUe O(XnW3_rPRfK-gXQ+c_{/*:J hlNqC>d(1θqhͥv\Ӥ}8,`A-sZ(nj69樥<+^w]M vMĴL[K^D+Pe=]Z*pu1k{851ZyIgJAz7A,UMu-.b}vnaM_|kWڌFb{zH鞑(޽;c})q(D8ԭMN6w2y|ZڟFwu\1f*j{,#jAS<Ӏb̨;k`Tj6V7Psx~21cuȘ Ta@mh-G,ARj/kVQ,iX*{Z(婕an<@.eY{\"^S9PzcRu^%hvmV ة?1ňfQbpa;egflj5(:PImqJ >3~{Pyy;C=GE;c= sLH5L\;#+e9&br Tq CUǴh`@I+ Byh<\?njsNzۚpJ8_:%&L..Xy9U+/܏Ct:7 1BnPvk k$\FJN_f w+!_72%&OyvLX雸)]0;*W_YwJqݖ6Ï ZSd%|rdkh7s5 m%keɼq6sMnSc~-KXq=^IZF~T_]c0f:2}%S[*<;Sq/3!||S^gCo+E- pw; lot_.>@w婺-“<1[zc̎\{*.S*EVer('*uxO(oivI?%+vΣ/EcZ)CrE}2ؐ7 3$2D2Gb4H#PFd' -$ azZrP`T G0˽z0"b2:%z9A<ҶHY#_zj)UǜhLsJ&w5Tf` A20ț6qީւ7>nx|k]r@x T Q/8-WGOsFA^ hϼwrȴ(q|)[5=&}"o谗:U!DXX*?'hti@s :tn WƏ:(]gZ]iܻ+5+:7!p999W3`Cvܒ7=gƿPݯW8?nZd IJ G/xL̃cW; ϔ tvٹ7%})p{~zbޖC1| )`KOgF_)gYAsiWxK:CvB <"Yjw ~%Y毹fiǓj!}4Z(gQc񆽜)鹔|O4$w2ʟ_?~|󷟾xW`I3uv){u3[X]V$i5`]"ˎDmJr .vep3h;99YD\%2Dzg4` EiI;huzHy.|uxuT0 r؅v#F:<;,T:,V!>11! /Hdf߅o;r&)= QTb%@"&H.&y"py(:W1c`@FO=Ù_#|)y@O94m l?gS6o?S† =TwOS0[t@(O).*3$*EJ$%Uh\6sx vS\\q']k U'bعnvkss5390fh$ ¤(G)Xk61I؁@]TlEh!3 t g''2.AOW%8ĢFŜi~2-^vpXN^eZ_)# M@OaK VT"Z򊳘H)]jJVKBNݵ>R t_YV]̊ I̺T0o[hy2p7崭vL2|kv="#Yt '2Dv\hi6E7nyc0 4h aNYן! zG (1r@Fm0ai>4);Oض377}zrBJq5SLK͐Jb]8>+{BoRWuXTЕx(3Fn_j$+mPI_B%%'WeпuO !,Ch:\Zl ҹ⺨WenxXAUlkU+S5ꛢos <|{] ظ|wZ.@,"GKDž^9Z:.λF6;!zdFɺV^t-^R>4=SF~K4>ssOaSՃ_|~Q.۽v;t_%t5I gB{?WqookV*lޞ %"0 hѨB0#:ӗ^AR%Mn2$\pq- &ZxU6QN@lhLJN滌8߶o|TcRXQ#d)}b܎bA|a6gxX 7]C7;&l x͒6Y+\u2:(3-ݖ+4g^\ؐ5*hìvN}J( 3+*~TAPh n&*{7C3/G 'Z;@ra @4蝄I.i[? ']͓>/wUSZdGK8&?ϸu1\z^nhGY_R=|XIrQE>̐wPG< Ya mlg ŕ5ۍzERtߨkj =AږNhRz苦$HSMibʩ}[qdG䩟ٝQv8霯Fqt}*k?'{ FD0Peu^h6q+k;dxJ E PX}vDxVWNL9.i[ʥue]lId!TQT-։njYVmmmj6NL>q;_-mc瘺ō%m DX2>>7.41YylvfБ6"h? $S< wkps\!VU؉LU*!3+l`2~vy~QIН oc0@d n[6<һ5ݢUp$FπԳN *L*P揽î"\wzmw~yd p%#y~X{ocuNF hwiPͺ+乮Xc3Q""bXqOrOs!a+ < |gA28UK;)-+QVYnS\^Pw_|IS\?}YvDk$F7,,*C,= XD.hz)BoLp0Jfh{l&9ƳPAӘKkG0(GfK,pΗ$(}G{'Aqd$fA|: ;4}C8 *$0Ҵ7zf7PhL^tMb)a)ľ{{N|%wGw0(|38;=<~5%jLO`PN0+x#'ɓ_Gֶyr3]CV,-(1A 'ץf[H֓KK)-H)M[_jgd]|-u7bN6M䟔‚FեN=zSϣwy"AN -s=sg8!xI Gƃ.Is/*y| K{E)Yy'!+JN0~ ( f'V epʀ7[ #L86} Q3%Kqxt5@劫Tr 4|ܤn Aca9!6t 8~/2NsZ^DuphrO*6>fAa-ay(0.% D9I+@GT(2W.(^i&tʱ`"PqKga#! px17gv$nPsoW1 e=z%Nz]pRa092מgWMͣ &'fVC3j(y;i8."6 tDn6]Xk'H(mGD1KTh[)QԒ<2H1< ( ⩱fZW+T5DZZЩ"ޤh&W óc$ ({]dͽig<*brm͢[4Ǚ^`X7J: mh>suQ<%6i[ͽ? #>0a$#It&AWa/m0cC3զ:*XE=ZXt?{-SDT´?*t/%ϏрA7үr#w oykSɌN* Vr dR hrq8zPP:mJx-Ω"eŸsZD]kͤ,,I(cR(1LdT=Icֶ G_M^E#6K@!^ۮ\]e;MzCW\{AXZ=mcemuC$f fKoI9[ W`!ᩅ%# &ѭL^;dِ7X[2*5~nگ ; : cĹzOpid|n~Jl[@J /Dwhg MN4]&'s^OB,?;/w{V|Ϧ'C@|; ynTܚ: İc*L P鯢IC:YsvJe;nӴn4[m[My -8KñDK*i3*!u[`9 ܫ"5-UF j?FFVY[LR7ޱp]?әZσㇶga]|mX7ϙ)f9,™w)'U 4-9Wfe2YxcEc@ߛە}< 7ߪL5Z7ɫ8ngv)\tza; ?z#i I:. s 4'mtݺqaJh(!'hEgJ]^RJ@?`;-J^Tq|j0Y@kQ~vs>'{,D9%"G{lgM0V,(c78=p?zrP4 A;Z8Peut;YuXa&fO O$JtC[~wpp' r\`8v[lyW__߿~zO}~C(5;5z vdW__ ϤXhdywRC(b3J.Ԉ!"x/d>v:<~=#lcޯ"kyWOM24 JջNxCZt{\&@cjϢ) [מʿ98ޔ?#@A2 FE(K9`%E،rӃ's oo߽y;ͻW_# iCm6ZƼbub8Ǘ6"_A4HCRh_A{з~9)̣A[ЃE6%75˿)-[0{g tC<<};\C'tDcdȬol۫ei`緯[G5Ն*ö6n4qK"?aXB\eH:-.o_œVbZo~?{ ąRwJCą@SOo[oy 1i>A(ӨlwX<7@S0- /%(0hg ;Q Хuۥ,_ rۣyזi]GN>N(_!n6whsBa6/^ZU^NĆq#'ilc.teUhv@}6KɊ,┹{xf5 i;\!?-%5~f@S9Ψbi!/,"M{(ksYªt$[{@{DՀyHQ} >csq[~nA%HnUe-OtED…?*\w<eU= q@ت)ºm.u]6^ZTyuEk8d\1J/_ dNIrYQ?F`9nXc]r 6ޢq&uԢ׃ߓ–eAnբ@Dn-%3P(d3 n hr BɭOb®>?t;ژhDzT1a $HtJJ>x@\.|oWl}`89<^4Ww:w߷v!CkfNKфM%t?i<(F3qyKyk0Q7ٟ2{pc)l=>B.[j5٧dqEi˔9/Ф&<6;V6<k IkL .3:g rgNSقJoV&LcD#@~׺2,ڕ^!I/ =oKd3Ra'lS)ۙP+W:/ʲ_CqOHevj3wUXq/Ȕےrquv4\7c9,.Z.5X7]ϛK̍[<3aˤ4;0\JGv{4&曻=qAlTWg͝ܝKnȶwںK.6V 6 gܳqoXo$ U) o 򬮰ڈ_//CE>1fhpL"[ )+ `(*J$|h 7b;'_%pX) l6 &Y 珱_MnXj$ >&2O/5iWCÞPy.C؃m1mg Jڙ!;od,"l}2P/<:/>(E~_!%&W#ʏ#U mtzh=^5 b":w-L;Uv51m4q^)ʟug⩌q8ñD7iT7"1ǎ /ӟa$X4g3oNK8 ?g?ʹ,&ǂV瀆%{=TptCz+4 i@^ $` ixNȢ:.hwAZ9Sn%:FEOC`{;,BbC=#*y L#23^V\w?NgCYiRZa*ʇ&7 ɓ!4xsɢjQdQX4/,;vNwv1ň˥tբw/޾|Va I˛kKHYӟ=NJjsΖw:g6ډK{ɏhCy١+.V̀*rinjGO)!stSлUk,xk$*hP^Dp:$L"wHͳ='''( W"W$~"lQb\̬$Lraxum!C<x"SDSq P;MD4%r9f>^<ڼd`͹1TMݝħpmo k)LbuǹiyH!@{!p$<)nt(C`8 4)czǸshEInV#6cOȔzB UUQ,ӽ\/S$>W