ࡱ>  @=&vΉGk&i])&x] \T?3 #0*3PNRo~FERKYe>++VaQW/X*套ia0_}^:ϨAhPAj (AAVU G'K w)'P@uW`gZBb}sپSd?zR#tt dS8HG.g\`ؘ>XvX3wfrADi?fozBpdHP`2 390~ilmiۆ:\Xt*ql3jv D? ޖ"s5Jo[98a>,O;**R2 HݏPSS?n7]dm@{dyh9/cP^.mL>n|2>=!8L*<$}W;&=Sdvg\<߰iHz{B"8B0Yc}&bNl!@f S N&]OlK.Tn)LeiTOdϏ>[HwEDygMoH{n鰋_zUOSgvEzDT"brʣm&%t!VZ5LJ 27!C&*"<"F7㰊W_J-xOXop'X0,56Yy`i`kU ;_ C@*@Eh͹]t<nV C^}/H>ld5뛚ciKWyz$G nt`t=_N۲!ޭ4gI`M*Xuhxao. s=OS:I}4uTQ2\b*kA&tL"iD,e2DRk]r}Ay ˞,\䴻X}1M$ebZc~Oq ~#џe~>]߈nDD)G5Mz5q\r;(G5ї\;̸vZ5oH[A999\(~d\;#׻^ח\qwCOLsrss Qd\S\z\Rk 2a 0\|V c#\(.0ɸ.7V/WSqsmp#1ϥr-PM)׻Z䚙q-V5OcE`k@#1ϥr-qk\r;xu\Rk1kI2ao`k;t>ʵʵk\r;xk\_#ڗke\~a`Ntu9FQ3}#׻ח\;k/Tiڸn8H>>ʵ˸.Wc(ӗ1Ƶ2aL;8H>>ʵ~q]nP/%ǵke\~a6`]t9FQc\(׻^L_Jk2ieC_ؿ!LwTGhd:#\(1dCv;*T֓(Zjاaa?`З)#"c$KZ*M5w5/%ǵkCe\~a G`?Wpq|.}k׆ɸ.7$׮g\- όt+߮&:#\(3,׻^L_JQkd\~a~ t+ot9FQĸvk\r;x52})9e\" ӭ WBc'Gv;]2q$&3ɸ@`Эt9FQMd\_5wnVZv5e-d#Z*FVh v~D0}RDd}.u yx[E| gvoJf~6fs W]\xںNEm`ΏSf Oѡ3*UT4Ar"&ǡ<q[@VQOo!R M%H}?ؠz(!EEΨ|o|&9oI9J {[#y2d\ 1Ce P{P-Cv}ڑ.nW,fhψـ<@gPl}Aڐ@ [m>vJLWf1e2Sl} G yl >nݾE۷<SŐ @D*mAuۇW>Wf*Je T-:=\px$P(+osO[^,^(TëEaڷ7ZZ({CCc}=oND8/PDTwE8ۇuzjzsP(כm+osOlW,NhW(T:=o~d87P(GK#c}=/%XL.*Ĕjl}WcW%uۇW>K /10T1aKR(b)GYcoڈZ,0Xa|:ۇuzj%ƗX_ba|--bX7K\a<Ծ0K|3Z/_1tv`|K}O,ǝ#U^wӄBp\|E?`u=;ȵ^KdԸ=D*>P]9<+wD}Fw]ysvM".omf;\:JԞ)D2JC@3kd]*o'l8`8NX&S}vrΔ?Cӝk?|}T:b?^&(]"sQwBaeC@bk\}l\,.#Uh?7g\s,[%\\1SƽsyT>nX~&,@{$H)is3kIM^M{K)Uʳ@ rBB{ _$pfmP?=\SU^*>}9h8uV[^߃pkظ q~؅ޑv!dƹ~#7b?6nc֞OԔOInĻwPؗ-!X&^!Z([G_ϗ}RJ<%i)KfE7&}m?Rfϝ/}='󻯵ϸ)I3>RCI,fXo^(͵@ZX=ώG%.g u3ٽ4`NV %T}!<@\|\OJdCyf9ӯ})j'S>N~ jSMSPKg7v?}uW1}%Uג U-Ir+ڒ9lCsƲ[%oEY_^n~;>u^ t74(oEd>2 %Gy$+y?yLCM%$mDQyQyӧ'[ՠۉ\r^x^Xo74"2 Frk#((9)~s]rɛiD~r^x ^kT\MdbxOr^,G^J^/|UH[\0`dU728 P.}/VfE,U7X<hpAyЉeAVݲ,@nzPറ\5tA{UwĐ(ҽo(&6fM2$|a:ysA-9dd~q $7S~n)-q^=\/>.8s ~z M1V]Ro [5^4Bou%zt[k?7&OW^L./m}NQ?n+F+$͜l_{.8o\z]s+Nx+re~),\Ӂiu54Dx/:~}}]ތ=݊\qs%KV5D"ǘx/rƵN:R:sV9ARzmS#Um0քk[Ync^1]Ij<ո'a4# z?Vq/qߴ8.M8&MYe"LikqN&-7g߇v;7 kwS|˓ሁI&:M7<9p[_cjT{?l &o]22p;66܆:2~iNG saЈ7~GMC0O/=}To{{HOX@A&mOa m`"ǜ샽Obm^44.̇ i6hs·G}e\Kf>iR_;_>|niyqMܭ%QL=mv*5-/AۻtlsO!^I=^v&d)a_gG$ΎH}*ǻzTHt\& HpD&Ύsd|lC{58\N3N5Iحߗ^Y?$0ZoOM!qÊtüΓzLXFϘUq2E%il 8gˏvvL0T|G҈(m1%8fΎ7!}IgDZFy45}^C>D|oSS 7^6hOS :#;OAV(ْgA ;Ƕ깜]dlGre7rRZ`C 1N|wyd !O-kd1J !f(%,N"T 2\ oa;kd~LǰtTe0ux{#r-xL8'a[TndA%jeќ 旅9xaqx?3u@v&%`:%`?/%c_Q#c%@~is7=F}gͪC"ߞ !w|sO%>\[e?}J1]Jb-~ɐ8b陟K?5A籟&;D}J|F~Q,K8oU?0TBSRM)?!mD0, ?{7AiCs=h:CJz/(yJ|;_w5kp`_54v?=Ui?~`'=hʮ_{~Mcr~[hEn7$%kWU|,ԽDzF.$+c)? /REgIOAMuߡv!K(2wLkJMg&vW{.n6ݾd5uu˯ܙlN\rnj["Ns)=OeW~%3QArFu=\Jꗯ>|O&utx-_:*rI|0+U_|uqj[WQW`Ѝ.h.SW O}ke<~WljWD>}W1_}-嫨?%}U@t+݅wU¾O&%wE`y<>o>%,aVjYj[WA)eq7Zڨ:\ҵve<2hW֣Y:V\rf[Amv*5櫕n|uo|2|SWfzJƓIq"0W6J"ՓW*'O&-[zQ\>}W3_Amv*5Փ,F՘VW UUƓI]nOGQ_}0+U_TQ_AmvK*5U3U_mjL\=|unWu>Re_2f fPt,|ݒt@e^-#8DVtxmx4?=:Ƈ'2!rϏdoWk}ߋuK0N*rlk2m_B9t[l;8 G5'LZ }/@n`e#r;\>E-!3|@=/@r܌Z7\knvw`mT`s`f.EPv_ 3~/h->d^tݎZߠ#uawmG%':R~@nQ~әmGt/t9L^cOͶ:_`^ZVoo\.a~ ݦZߠ#9)?IK>ۓ>c^܇ޔ^_y~O3m 9XCm1H A o3~~?4/{75>lv"~N]4)?F}QGP~oNnQ~6mmslˌ~A9t6l;j}cュ7Mp'&-owD)WId};v.7H_yo.:[uptD}(ϡ={"S~2uݢ6۾ N}c[i!6UC0k7~~Ԯ/,Se,SKWS')'m O,Lft[)f6e BY qo\#{N\~^\HgO J$<_q]cKc]őGMdlX~坅'gKj/֗x]El3.cMZ 5\4u@C6e:MusؤR6!k &BlԹ$6yJ76YH$C4Q&8w6ilee6MJias69MIz6d^ l;{T&86i✾l6mMz (kT4qVC6ed6qu5&YI]MIS4dl6IFj_!b\dTb> u~>VBZC>b<k>V?8j$땗ou&߼J=@^g~eV Ds;'{vk'O󡿠}OZ C1±0@=0Bήpʜ"g ?xZLUU}=(O,RRDMK49B Ej`LBE%3џmIYMV&lc|tYZ9Wff5Ӱ;çB>~s99@%g\) @X؂p"pHCIA*9 (J®oQXB}Qpt]ytCq|ZDḱh.[jذQ #)g7>=CKw*q@Q]+P87uztdd6+P&G$qv:,p4@|3u2Tb6He}Uc$˴Yx?!D?<^>Lӊl˴*VV<睌9s Ja`i>} >A|K39/U9K>A:9Er&g*s.kTW9|NQ̳R_KO^9Kgeͺ|e`:y:/wp ]z ~ӘR]ߐ2G&MZgV&w{rꦣT)OY<ةsC5TU}}ԽR2ȒSJV5B}d/(Fu5%}N(X}MWmS|åTzJ?b hT2ϕ =S\1yg/܃64uR$lv.ҹ-pm 1]="ܼ̕ȶ5Xq(s7MnjbnLS~fǛU&n,{iP4UKU]wkǯcWI]bE9/_}{".!M^k4X?B)^^ 珋ǥ13l/edRVZ |h!|]NEĽ^^yw"%lޑAޑ8rD~Yy'PxAyz`ϵYeY.WJuVqtەR3WbqVGϩ ) q'h<;\Q's? BH| !gDg⻙gn|{zs!L/CkW~5OEZs3~Ǽo\`0Vpn_a>taα黟f~׫:B,W5Y6/@dg>_!6 %[qzQA6@m2_K㙋v_z.B)`8|7BrꞯkOpuB$޵,ӚjKouĿ_#AAT;w^=9"u5ȡ h]t<7 sHs{5rWbn_q~+#M>ѧ3O NH~:!u«߯gnNJK(޿gP~=g 6|ݒ.?\7X'}}{ lֳ ߦe{A6!gGnٔӲz|ZN??/fkwz*vء OaH)vܖ;‚pTflKq|vҜuu,KnYcl[SVߏclW7&r+uJH7f@=pOJk&jHg 0>xXklU>3lPҒRJ؅vwv[XiI!)J !+FRkU45K1h0R S1FyHb;g0+s=;ԡbyUH }+HP1`55ਵp? |x Eq  ;"vSa GcTY wj1 ?q]*ԙ(2!,…P:f #ٌBX4+Ml&Q'+qB0uC]kB64~I_bz033F>| ea r Oq_›^颏TQX)4W~wR_Wݿz?H$J15נvXI۪4C 28~Z ?=L flxrX wrX?776h3^ c+ѴCB,=3qn7؉m+؁1lE~'waN6 s@2\HEBm4. Dz8\Ðyo~ۯ`;9`  FM;ԻMqN v;M~[@ oYk)͌(:g$Q{D9?.D,k>Ci^a5NH+W(ٸ]3Ÿ U3GVPzȞ2H_5}j)lClE?)?U 6 ݓ7B ~e/ m0b;%{4Y|2O;6tȆ=e0⋵cuu|NR>1wO-s7IυOJK^{B ݵFdJ-VƼlO9?5girkSDЪH2`a+bywD'<.z~M1A2ۦKWmAJkS=!_ 7ߞA- ,S6e㠖ێCSM8^͓ࠞ>E6✦yCG %Z>'sNV mF: Z`֥MfzlO5hِkb',0C)yk̞Ǧ<=sIbBY2Řn LWJk81=SRȌeL{v1 ̲tY4iJ fRO}_{#HH*V+~h+Om`:utHr Udo|1Miա)%(ox7J2O'd]\) i6>YlJW<1{EWTECz6K ,A^ pLޑ4׌ bbDzjgAA0e' ώۢ^<y]*s{<E܋gS~(ZlWgzopO/]5}SRIk`'}8/EAG Rb^eXc }:3#g۷sBlEʮ^:!uBd ]}]!}ѳcgY}]M'"`7<}ߠB(~㾧y)4|IzMوt_Qt_ot_ +0$w!"ӹG0>x Nm&7~d716X%`00 gx`I<@xgpO9cT+Wɯ_!<;ғmmv9xbVANY )f%1+'fƫYYyFֶnv1kSYjTcfYu{̚5:|#v]>?QX6B!9Yأ.W!b3+oD}u+D6#_KfwNt~ac S~Ű'|4?o(\[ՅHw$;NCr"xӓ.Uf\2hlɈ%l>,ڝsy+ɯ{9s9U6Dc'8$Ɵ'-[+$lbYPJwG>K4E'ͭP؁|Bd;,[B$ W&XD;: ԂVBHsSWbϽ7KޕAH&%^&+ܕ)AW<5 -A``ьh3r;TXȺ.CH oooSC &ޟMr~ozrt28bUJv4oyzuJq㫯$IQ~)UcyϻⲒ8TCl͆3w(D4skgpaΠbc 7a#E>i͆|#=Po5T9ԄMbY83<AK?VP/y!sqǘ:[I{ߙX,faY :ƥ42[!O<b\ˎG`~PXqLءym HU\^Ň[q?w8^k}r73Š솾^y~qL 鍱>Tl}Sr%'#s圇@kݜIQo`M)Cxy cϥ4 Kݷwxa][%&]zMDߒcni(m?], qKRMtZ-{2V^NNX5u3w$-ȿSO^C;gC3e=aYBo{/gjLImOVF(*=]XWT? uAȶ~|YGg?ZԿ+|JUC#](/ -Nғy_zQ*IluB(FxIu:9*Y56fM m֥Y;O?6gn>\%D;т_<;9ܻ|LңI}fȃVMJ'<0v Nwn_bFt:禥Gsotoߩs^%ElFG^<{ҬWb'%{͆/?$#x !m3JFIF``C    $.' ",#(7),01444'9=82<.342C 2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( *j6*ZpAxi??*??*??*??*??*??*??*??*??*??*??*??*??*.0MuPQEQEUy/!-㪴S?*??*??*??*??*??*??*??*??*??*??*??*??*??*??*??*??*??*|Wna ' 袊((f`\E<?Ga?ƀ-QU?a?ƀ-QU?a?ƀ-QU?a?ƀ-QU?a?ƀ-QU?a?ƀ-QU?a?ƀ-QU?a?ƀ-QMD1$n)4((((((((((((((((((+mvK ^+gG׳0̖͒V11K (faz%vm$*F@ ilQi(UQӵ?2|Z*fXϕ_2|Z*fXϕ_2|Z*fXϕ_2|Z;~w:q{5Y6+,?/Qa>VŸe#Kco#ĬԑTu[cP68P,E'o2|ٖm~*]Ķs]Ƨ!?Yڧ/ hڟuW[g}!(s2|ٖm~+}CHFTPHtTKBA種OG~{AN0Wu#{2|ٖm~+Q+Sm:[.;9J;޺Kk/-&UU e[ߥ ?,?/U(e[ߥ ?,?/U(e[ߥ ?,?/U(e[ߥ ?,?/U(e[ߥ ?,?/U(e[ߥ $5-@̞YV3oZ( 5 ΗVeOMCPz[`ک}\_鶂NܖfcVcܞ!KumcUǒǒISfXϕ_TP_KfXϕ_TP_KfXϕ_;ռSxP<m-bN˭BLb>zVo{kIa-Uƒ =s@e[ߥ ?,?/VF jmmZ('#>RHz' MmoL q2(Qzu ٖm~(̰+o\|LjKmk:e_ ,VޱZR+kbp;382|ٖm~+o GeȷH$`˹OZ6)Ş*:o.Ē-@KݟfnfXϕ_2|y߆%C]6Op%`|N݃$vksyl1*6,?/Qa>V±tox[_6:f Y/wC5>?hvEmu"vYUN݌ϵifXϕ_2|PfXϕ_2|bYn>Rqr>߹oCse^{fdD@ d3uٖm~(̰+oY|5{5X'AQb=@p *ğO<$\2A(̰+oGe[ߥ ^!mmm3B;ϳ7Nw-a.n'VHGdZ,?/Qa>V¸_,t/x: A .ݒ} ܂:I~!Jա9R@WpkfXϕ_2|r|B^wuYX4b?-FEqӫ?@2H5Cdc||Wc(22~d zXOcTAI6,?/Um#:Vyg1Ll7`==8w>е4XF߂>GQa>VKg+M;:~j'iUJy X:ʍkR(d\ۓok:pfw#Ԫ6?,?/Qa>V¹x)~z1@ Xc#&Hakqy< ̰+oGe[ߥ <]d:6GˠVGQ뵀8VռmSv!L{YTGR(k2|ٖm~*d~Y"H,10 Jg 5yo#Elmc KfXϕ_TPUSDBW0\ջX~=jܠ(((((((((((((((((nnfndⱉ]FpXD}{3|*\ͮaa+cbfwWf;hHBh0 -$*F@h ( ( ( ?M/??AkCӼE>3G$T@v1i$ՄH7U?nړFН48ʗgfws F'~=sfu7nђ8#B֍V#cےbI?S5OFE[ۙ2o>߈4[Mf ؗo8[ RM u]nc tcsc]MN> 0ZG4k/L#úUgZlX'We*r 9<>~!- ZdkKǒz}z?b{Vt:tmE 5* PmSR:އ\nfGt s I'{KkkV0D#5¨-Q@Q@Q@Q@Q@eZϩ׽k*F}OYq=j3S쿉㩨jݝ/Ka=[U=ϫ:}6[۩ےr1{mS%c՘'TQ@Q@Q@Gf4f]Cc-黷$ğxG]|;hZ}~`Lw޹ g!_O:_q_^>% 5Ysd Ư?RhczdckxJwg׭yFgmԘ;e}y#>^DQW. 8]SWEv[-J\p0מuOm:8rNQpg9>?| !Fg~c?WIj?0~/ۥOqmjgť7 _onȐ9Nwq;z+D{K>"=6oh_'U@-9M,ԴMX`:o"w^ nu4c񴝣/Aڵh6H]!ap5b[ ߇_5ɸev,sHtZ;?o&+,rkn(Ɖh:e@S={]t-^U- s!va m'ql tg}>+ksg𙯙Mxk cLYyO\å>ťKDWa-.v[+ILbq;G:W%ſ_eϽccXŬOdE%Dž>CM2B+|v{~Ac8'ß_PVjݿ?6޾^v~/wzwt_YX*Csp WS^Nh~ tyj\G'뎃ԵKmBuA}\2  {gGbEf1ج rdNOz^%h܁Yk+-{e;ƩXc:W'Fk7{<ͼzX+t(tfRA+`w\/ti)"L `t'9yŭ'=*}Z@Sռm5n3,6 BՇA\σ?%:vhTS(8|潣@~q'6Iþw#sqU]WuLj:y d ɼ}:恞5y-~1=WLfHq"uoudž|}?#m8uXiVGjx@ `WGg_ ik65WKy8R{jpt8{▊(?NJ?'sVQEQEQEQEQEQEQEQEQEQEQEQEQEQEex_s47* `V_?/9^yekڽ76tlVW!~kF~xWQ ¿_rB+B֍4_oߘg+Ž2qJu?yg tzG!~kF|!.uPX%Te<?r<gmE J#H"@*O_~~b_o е_Mp<+@g(_?/9]!~kF? Z7E ¿_r_~~b_oZo|+6o2$6qǽr<+@g(_?/9]x/ko/+O8->^9Ok_oߘ<+@g+/¿-hG!~kF~xWQ ¿_rB+B֍4_oߘ<+@g+/¿-hG!~kF~xWQ ¿_rB+B֍4_oߘ<+@g+|Y[*If=>"nj8U t+ziP[LYƉfg E62x(ߘwW"h/¿-h@ߘ<+@g+/¿-hYz;;8>|*~xWQ ¿_rB+B֍5^^ ӭ{6 Kg I#ր8_~~bx_M{Hqen3-dA;N2}*ZwMC]68h[|!CތFq|g@9_~~b е_MW"h_?/9G/ ?Y1? Z7E_Zѿ/&8_~~b㕏uGu6F!HZ 0]'צ_oOiQLImlʆ<)&\6P'mvh-knK34QVcrOsV~xWWq_Zѿ/&B+B֍4ߘwW"h/¿-h@?/ ?Y1?~xWWq_Zѿ/&SH:/pg'1 Nvg4ߘvCp")f?`Pi^Ac[[gFPG@/ ?Y1?~xWWq_Zѿ/&B+B֍4ߘwW"jѢ+gT €8_~~bh>3Y4= νC%f ($UB+B֍4ߘwW"h/¿-h@?/ ?Y1?~xWWq_Zѿ/&(j-?hƟڙ$3r?<+@g(_?/9]^#\ԴFpLrg" P{UB+B֍4ߘwW"h/¿-h@?/ ?Y1?~xWWTt?1to7"0wgn:_oߘ<+@g+߃4WIi)'?:C5pZ*Iy7r60N܅8z9__~~b е_MW"h_?/9G/ ?Y1ʻ{$\[x\nBi8uBO1/D (lFq@n¶In/0n.L<ϕNNI$ е_MW"h_?/9G/ ?Y1? Z7E_Zѿ/&8_~~b е_MW"h_?/9G/ ?Y1? Z7E_Zѿ/&8_~~b е_MW"h_?/9G/ ?Y1? Z7E_Zѿ/&8_~~b е_MW"h_?/9G/ ?Y1? Z7E_Zѿ/&8_~~b е_MW"h_?/9G/ ?Y1? Z7E_Zѿ/&V€;4i_2|ٖm~(ӰoG?,?/Qa>V€;4i_2|ٖm~(ӰoG?,?/Qa>V€;4i_2|ٖm~(ӰoG?,?/Qa>V€;4i_2|ٖm~(ӰoG?,?/Qa>V€;4i_2|bxOOv˦DJ>[{PKEPEPYZ7}kTuYZ7}kTtEPk/k>*n1lHYܠp+-Cģ[GӸKD <2pˌ@VZFPx`zz鬼;-Vi[Zm%"qt⹯>0rk:tBk5,m xGR<%{HK$HBS\ޓk{þ)G\Ƥdz?vAikS\MGw1=T^-Z^I,G.bpAN$lU+.nmİ&X8~$[:w OI&7i4Ef;1>aگk/k5)2{q@~*kFNFco .{? Qu]lIMѾ%kKrBMf͠xMvx}7ߙz =jޱ{xt5;뻘0ln끟ƹsNռc`Fw kʎO0ms$WXN!Iא8Tό?EsPAgo6<T>Y15XF:VjͦG2̛0ynEPX6k歊dzV[_5lQE꺭m).3Qm\%c?0 1qҲ]ugxQo4;T[\Kt~cc#UO}ZX 6V|rpG>:֋k,0go:fMB:֟rB.'H0 ;,(#IP1-p~V=^?4)<1sZ}_t@nFz}+a<5458 m6̛Co\.3:׍|AټKoYg<I֡3.rӊ>;+񶋣I[-.8+m]K}Nkfu3IʺT7öA J^M5s&UWԐӓYU#q"6ˇ`6Ҵ|[᫭gQ,"yd|B95GjkxV"l~Z"xBwq`/"?C {WiZM_MWPN).Qi>[&}Zl]RBSdPG:w-RڕjU7nT!`=q3M]UޟI$,UY,@K*Q75>dvzsyWfB3ǵR$N5?0mȪ{##o@O$ErO75}a?ZZ]%דGy.Uz$'q bF?e ]ӐGfX_x:;xHԭ,{Yi2ZȤBARqێ+OMux^oAgm,)p't;ˍZlsM$kJm/޶zj%bH##,F{q@|A<5Z֠ky l`6R+Ӑ=OxMڍķ2,RBxW >R:S\fG_ΛCgio rG4)lLn%z}׼y[=r5KIY^6ܰ' >S8}oA ?ጸGa=}z䶾8Դ/h+|Ig,%{G$rzCVNk_<5QYڤrfFʨ8bXq@UBJӮ/em+-GS ?KH$yn8ts'7Q5 |[J ժ mG^OxV4UӾ̌P!9Npw泪]kJԴ_K-/"I9hy":{eEyw$Sk񼱥X@ ̽G#9"=vĚMawPRֱn|O `~$VygxVjIݞ)V&{ GU\?ȋ\覯?_fgܥ̈Cer@`F =Vտ|Ej\ޏ,l11 7W9>EQEVVZjVZjEQ\~%L1Jȫzݬ |W9te>#[fA|q s4uKMլuu63fvʟyy8Qrv׾%Lj4wVZ%hco$U8*p}YƺH+IG. T*.Xh'ր;OY\#6_;WqOzŖ(:k'-KQ@ He O<{׭Ey^dxWS6+;Drw_=krjm`)wgzgڀ=]ZZJ}1E\n92:qoݼ04)WE PAּ}N$dK&`w854?9u)Tq;RSÖw[hTےHVSjz5^{TZl1ۉ/ ʢ|( ڞc&G[`O,]Fz+n8=_mgBO强"[$B8+w'z@aw^pOFa8F@M^%e$x ,fCcFA&'C4M_PuH"*S@. [&n%J%8:OTOXGZp>uK $:.2ws/I%WP=;FKK VGX|sk ZqErKP6pv6Z&6o%heJu C#R5sAO$eSzp3MLt >k$ b]x`ko!x7FumAd 铎כQ?#w-2 b8qzEMhvۙc=P̀W_ү[zw?f^Xnc@U^Yj]Z%+㼎J c#i9xR-Dy$xbph?\ѱTAZ8&ԗuIР7ӎ0gpj:sɤ] Y P=I $>*TЬu+O5JA3@YI*GA:rF<+ɂ=ןwIo?a܎N9k.kcZFB[E\,^@6Xsh(((3A.d&rI.r{c8CDśj=I@Q@cj4h\+[5ѣqlEW?kZ.I`w#.b0H wVy5 ےa8=+,,C$0#sOc_-^R9c Q11jxIڴcxM]\ @/K}G X5K{hs4Fs7\⠇+֮4+MEx3u+{8c7uѵւ)'N8ɍ^I^ >kQK%ݪ a?$~`IMnku5&wkt[W-c*0C[IowH䌡ɕ@=r="6]h {'8tJH((E,nt"V"4w: Tc4!ĚdZF&mKh/6s[BX 4Kؾ _mT-8%iN6I5tH}J%s1XUrsOZDku?ZVOb+Y,71z/ $ ]+WҼ=zKmZf1Ƞq)u>*xr6q]EktVkfUe|r²g\u9 tu' X@io}>-?M!Fw[F:("[MRY9xs/:ׇ׋ybMR;&+(kX9O"$t̤}@h([?NJ((*äi»Ci "b 8>]>GTw,ːH##ǵwO◆q )GNIF}3?UOާ=iG5ݕ\]y#tW3qZ}FC]o$Qt͑!IA'u[O"'٦[GywXA>;WwEpޭF}$Fuq\MZ:ig[^5)#<1RF'{_Gl>|=cdwyP[Nl0FG<1x{T]jf{ ko7yAAz]VtW^mųn dY? <wu5.s#ڦbrNֆ/xb}7/ϑFsuv+-ڲ 5+"=ꎷ}<}orhQu2(/A9Sz:N[Zmmeqbb mp0Г{ÿj }JȖY`_1z~54Pi_5koP,?5"GWPARq힕t~,l:TڭȞnf*0ߖ@a8gznuA咤 %4jRKv+ٹ$`;']-_Ylt\(ڛn fumܑadթ_\> n5F0A1*F˱#`W[Ep^%?4wIEiKq$ e 2}YZA#"WZV C Q4P68=ނzm^"ɐP3#ҽ2(f|=m.bCYrZΰirF/í}B"fŀ?z5͢gvCsv\Y[V7qR7)##ǥq< @/ 3kjwCe#=G&tjqC9}F3{š'b-;yZ٠I?uw<[l52+Dp9o0r0uAw|Ѣvoa.n"'g"ڭkmysu"9IʌGL88]'YޗX߲ڡsg=ޟ]ķ%t/-[9)#Y@(ïxb-;h$nnێN8h)ГLxDq.Ed\e#zq^Ep2x#_.mZZRʦ9R)[BKM~`ë ^AHkz+4!躬pnYwͷhrsWMEr/>)C*aѬ;vf# ? 5i;nlnc AqϧnrO=|4bI$=p*hpƑ$ErrxEPEPX7jk歊ƳV[_5lEDXuTu%pZ5E-W?e^vxxO;r<TUP=uzO]ZS}H]i,Hg9^M{o:[ə"ۗJ(4Zh_Y=Kwo;ձa븑kw$AD7RMOxSXb-N8# 1aTW}\B5u˚X~<^EyݟzF6[.%$ p1_P~H-ȅ ߮[YмW{K>?F .)`~v999?u5~~ԿPХÞ4[$VxSPrWp9dtv4!=Q@|[x[! -b_³5mu)nRcݔhe<ʲ{P+}~|-KT} WX̂hi!Jsȩ~$ԭ,#el##WoEq;>'|Ei{IKwI:^t󮶊+#ZlDŽm:؏>H,Tz(tωv!og%[ tmнIQΡi->ؽsG%anץ@|+ea쭀HfNMs>-kX dѼg  zԢwmucvKKq$|dgfd'F ұ/e;b}5 bhqQX׊tV H̲ܜg秽Ax_mk=B.p:t=t5DVcVMr`$F9:s\)?YnLY[@A g'x'mfKZH%?諹 P[#%ySF9,cj\ 7Ræ2%I3?͓/ Y]C)H#(-.Qѯl9.-; Q;da\;T<+@g+4mSU{X]N(*!M3oI'Ӱ// ?Y1?~xWW5RkΣcwC.U*kshOE ^Yé4g c +?Ғ>!AԵ{g8UZZ䁓p:g9h/Ծk^*լ>^:֠((((ξ,4.emS$gع s;'MvL((mQXE֯D/`O i*dkOW2·@O(gCUEe51H$15[v44X~4? MO 2H{-J xVSo(QX +ž okבϧɧ\*vC1UqcEbhW[-#X?ucCo~Q@Ucj!k_u6c9DYpAR8[< @/Px_7?Z,t+mKM`-!a{ٱ'$'tuֱ_EG@QEb^ ׸խ-Λv!xed 8b8'Kӭ m]bpO| rsX?P|@q37m?6~*᩼Zqh&H'ki>1XI6ytf'm$^CL>h>"ԣ$H5i(UY5/yVzm]]^8@@X ҰEχH%m+roʑpsjYo5]F–.4-e2Hr[)l +k A,hg5q,yie{COCwv{?xv!L1]MK(_abk'Q`txzJaӾjMw=KU1ZQżpŦܢ"Q+TV )fc51״|H\lPɱW(&xo~h}ue2 %LeJ,wY~"3ZyC1d(3XOW#O3Kh8\d~8&$km,3r/ͷP0,1uG%l,DAvg;n2:נ@}2-cZ̈́]Rk*ЫAxTԼgڒke+<`c8ЁD5k loϫj3y<6l%!0'wQEQEg#n^jج{?uosPQ@kx H[)[`Aw =j7z֔b8D8ZccfEY(07(N5ͭŚzI4)?ڠ)hO"I%oc'drx~@[^Z{oiC- )O1F|̜A? _1-f[[vc8ڥ:Eh-'?Z|Gq{ƯjZA _yMi'KUgW,}I<\M/5 x/mӤ L z5;wעPj1Gar,' *xKoHi4Y=r1k+skr%>$4? ߻y阪#LhV|QWpcuMut oogk_:hp9{TxKּ_vik hMݹ =q\汪YK+? Co;bI~xgs%ŵDž&=>L^_ݰqq5Oi5֟oi\XIh^E9,nIn9"O/na鳠gqdkh}sxkYH1,2eULӭ#hv]IZ_\X{d uC7AS$]#D Y=h_OxDH_^lTNأHf>@MVNJ<] 3K(Yc HPz TZ*?Ai_4R쎛Y^/<6־S"NEQLԦxgDo#?:,-&ڄ mBME3>vOLP :ܝ #8c=k/Y$|NhV+i61\H W'а*e[nTKYes2]ƫ{Jj:H@qPA쟰_ǿ'cfJЪZzko"Co3oMzU߃ZQ]l.uxee.@{Vdž,<<lv@5:Me"v>dQp~P1A@Q@s8>}ڝ'%]غG t^AO]nxO@ҹr8TM ɹ((C26V"").!dqγ+U$|zuqX9r=Kؼ($6FBg%,#~5Yy =KÚ.h5O I$dI#__%Tc5pe8~{gݫ_uϊDV^">a{7?Lju⿈Fd%G ]\j6OII&O1I?2r=wuymr\>z*ҵ ,fudz8>Ҷh _=bC2ap=Jߍ:?i9+6Վ6f>wئ$REWCVY]C+S Zx^GgrXI>v_Zѿ/&64.G$+!Qo)orodmpA; 3$~YlcQ4G(KYM\}ǨTO(ȾT%d=m쁷OŁ.VZOӢ1YZnh}O4Q@Q@Q@Q@5$B 4(((>?*:լ>?*:բ(ic?i`UU?)q>v64O((7sjآ{"hڤW2GG9S4}bluu./I%!mB(9#_c-.ED :_ν +sSPkg%B9tqP_lͰ7Lo4vnxPҼ#p<>n7 g+Pկ`qO+;ej̻v#=to-7b(오۵NH'8xQ_lG[c#)7.I<;2,>nUV|zΡIBYi`%qG9_|mZX/'Β=BmErpA@ *[Ƴ%Tu]d隒jZbV9>՛x(iF">Z=\b7hsYEl5=b. W8[Sn^Sj0I(EV24QYzޝiu͙"1Xۻ9//4=K8k`Bl qߢźxZ&syondfRoR#gp*:zM?4AT6q6 O]4XͩWPS:m(Mr0H9)ri0j>ZQA fa6qG>oYcq@Q@Q@c۫׭+F[mEPsռG42)GE E[ko1 j#BL؋~#L`gxJ娾&<™q3Ҁ+Ǣi0-E%땷A#}[&-᷄,f!9A!9+3*zޓ6tZ'޶[25܏f.4j֍)`}q@I_}]66C@M{Ukh,㷵8 mH@F\^{Qgj/p fs*/ j5K'duLq)C$h6ޅdzGyZyv7mUMCYRԬߴαn#5}5ōޛx̽!H}SDuY#Q.#ktp8c\Z/P n>`<uiH٤e1ɤ:Ρhc2FA~~\y@4B;{:(y9WD ``\]?jִ[r.G\-c[P8.%X?R@ *ځ6e"G˂$ ;[DuĈ%@\tav5BZ|1kDHٕI*yv4Sk+fgX qϭEͯiœƗ6>@wB;uo_\ރ\HrgrFMkW!?5:IQ"2푐m ēh4.!KH9tcV=9 YhV4Xivcg^#i 0§YXDV VEi4Sd7n}snF"&Z^²>p8ɧX̖- |zTgִ[䱸졻E'&&ko%E3F PgڬS&+xZiHAw`5u+KX"v "ڀ/[Awo%1C+BU J+6F%XkyݷoU$px\k5OUxZi6Cmp$9@E[:.ck?Mk[^m!H?u]_yqZ.ywwC#9,%hԏ6rAtLX`U;Lҷgi֖~aqk'^ׯ,ChlpP\$3[wie5vPB-oMJYܪ@}ђzJ@cj4h\+[5ѣqlEQEQEQEQEQEQEQEQEQE?NJ?'sVQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEֱ_EGZֱ_EG@QEy_ V"sLFTpOҠԴhm}v{gZ|8F4qwIv%+*gidwںA,_ӓm޲cg YZV4ioƁ!BAa?xz׬=ǧye{6 ǖ$&DŽ$ƨ߿9mJgi@60&SFVH6mL1V;k+SӢj;횵jqvd$8s:@M'mp^WF 0Ԟ+(}yR4Yav'hxb̖.llfB?2(L%e.;`I<1aO{[so}UܭzocUe.}j_ 4$#Wc`s޳ڡ# ГֺFЭ[đk1Z5#X6q# ÞuKX&}E_uH]Oÿ'zz%Uk{q(ᴸbݕw'%^=t4-Ky XhҐX O}ZxL51*$0De\OZWeπ!4ۍ0Yc;0+ 'r1ǵv:ǁ,5]NMFKWҮO&va07 N1ϵJУ!Dp%^4MK*mr@ ;-/OďiioHdX)%ϵsmiz7 +hk!;b4;Q['Y XؓO-օ.uw,I$/?nxJ7kT}^K㸱30 ӽKbƐ:=5d2(mH8ⲞHdHٔ{y߂%wcm{uD̠˼<:qi!ķV{C̉|˴g|1nnhukK+LuRs; PO?tχZV>u5ߜ$'9=]9_^i{s t9A;2Xz<#j-5mjTWFTcO%楨^@ysJʀP}ݥ0:4(\$ ~ߌ?`K]s3xYl4OC_Ry.G:+6ր:jB|Q(qD(}_gY[4IR5WrI`k+>i]_G[Gw>Rx8fo5Fz^ʮYC) +[v Tiå !9Um<'$CZo^h pKF{uk|> }x^겾q׬ sGW䬂_-_v~pw.׆t-"7:mۖm wgy>:PI>(]k5]OKr< )9,qS\ׅ|Mq{~5ogw<[]4h3D}~^%mao21!ݳOO i-` F$]W׶jټw`6ll@rzNKhkw/T?";H+x5d5(XI^,]p$F9`Hx&1cu0X[\OqOpAH ґ,G'bmտ[g#n^jآ(@bΗxOqV\*V~/>CЄy?m6[ ؘ 眿,r2wt:>"j:ݤwN1t^R{:lj%.5FϷ8qT|;ovV<%ٞ^}>^`Mxu&v6]oÿ'zz%tW%vx?]Cg9#,Jʎk%'.Z]Uƚf#yzD\ghj6}vkHEo 3k8i$t*k K{+[([YO?vO8N)oi<%ޡ [98k5j^=cyq3|Hg^X OoO^SƾW;/\Jۮ'~F9x^xJuHT\};a"$` Pex+ִ?ىyf|1K}qzVyzf[o䲎23FH'85^ |{\dxu/W"N"XmaB3';FI\㯯;mb-$`WPEycxOVu೵G,y{kTχajwmxcȠaO~mb?ڄY7y g=9;P/^i$yڟIJ)`2st5y6z-fT`9nZJ5i>4sge2F\C䀸Sy;Ntll`H-]ƃ?z-ڊBssƱ:JTõ?I$u d>$xͼ<-@Ӗg)=s·kK}뷠 k^e.#(S|H~"c\;4k_Wz:G,?y^@O :i&Ek17rs=ћpSOֳ=]5;&hhn cp˞i;jb]6#l<{iIŚTis+F܎FUG@[Ot:/*q&Tt$՚+.COEjV]mԢ(((((((((((((((((((((((((((>?*:լ>?*:բ(^ҼQsO7t%[ N@J{N.,(Ixtea5Es:4P{KTU)ΧrfxU}X'VI.m5KnI;N;ZjhQl6sǽrH6W7w=w6]]0"1YC)V s\s?cPp/'ڵU2k_َf ˞@?𭗇73[Ӵg$0eg+9 :nw-\wGJ ? egK?\ok vԐ8SIwA;@J0GTLA˷z5CU X-#Q f(vǧjZu}ws}|b;W94x;L4(^Y5"_2y]f=ZZ ڪ2N'MԬ-$-#Yb}nR2#ZӼ=Zڼ4|/_~y}=>re\r̢=P1sLjXklz?k!eY62*x`Ph:T3vlI$ۑ+z0bώTi>!o@b7L/5k>.{ V뱎$d |U5__>sx{SWaEڋtR60SZxKÚ{%o.gl,l^5 RFҬ`v'=j-/Vm֟?-S R٦⛽WMfkt,wuLq~OVN^0'$>@whoϕF1y*$oncybcʸs du4E<=xYߧ/}1&۳c?ڟj&bH W3/5F6Pߦ+w}_K7r4[ pƻR>83W/En}!PQEe]G濏:fUKЖ88'޵hE|GqmtPqr*oxq^G$y$~SVjv,';[B0 "PHǶEKuZ4+q.֚U0.qx2'|!Ḵߵ<\23KN=:xĩ$jeƎԬn;WdR293|>u1m@ಪ!xqZTUh5 [˫HũQ2*WpʞG :@k.COEjV]mԢ(((((((((((((((((((((((((((>?*:լ>?*:բ(55Xjr˘Զy,PO8VR-i[j~%{X{x@ &ﻅ*$m]Ե]7URK$od|tI5kmW__x]*y']?#-Sŗi{3i28*x m Y j]V@`=Z_; 9-NM~ʚFY2pp67Z9<+]zEXԴ}fȆ$Uay;E .(&@9\j>}ͤ<:cr*A`נ+u=t}jKOҬ&yn&CvcM^¿2@?K]ض܅MPÃzsGJ]][^Scpyp8ju17C=ͳDO rs3: "$R 1i8V9gg Ӛ<->֦~͢E.c'`2@Zv~%֥y}QRFX9\7@5]3Wm'Va.<1;\[eg3]qhf@F;4E'''s>o=ϊ8-u{-}aTd2]vYYC1RҮ%Q1|\ցrBT?(r0@sx?Q~}3:}ԠXI!d 2%IS@~ σT*~j+NAԼ7=-F&f8h'qߚNow?h6ۻhHӵ_Cs}[MRck#Hh2 ~ Z ~sk=1.]jmiYo`҅靸5vswo}GIʺ9{R,# Oz𝶝UMA%9=1@t m-u=.Dqy9ձD/R@ǭy߁M+G]b2\^Qą[ WGnKjQ[Y+i Fzf-^Hkx>f)FepAz1,J\(P]1ǩ&.f캓@mcqm~oxWZ^[ Jb,]sPiioK8-fXٛs71ORjjssYO{X rC@c۫׭+F[mEP3WhΓG%QpF݌0qJ˾u՞DIHR!nq-͌eW9YlXo#1߅D|8v#sJw/ a]2fD8 aOªx7I<75,M& mɔ1&&"_hA&bo.jIl|xg޽*7Ƒgt:U+ǒ: caiK8pR1ש<㡠 ~=n4k7R;rU$]4=?EЭ,XD@93),ǹ9'Z .hpF2=뎵Zť[(=A/ sg/4ιYSgD A#6=jRu/l [^uk;{r (ټpq繮fZ4kt)iPʤ'sl+E}V3dlnX? O/m2ZYr:uWcEpmiiIjKra޶Я6Fx$nt [kȮ-a6:Ar<\`^(Ix@O/ω5kF^-6͢å$1dyHq4OYnO<=oS4b]մ>Ζ&/.o8? HBI}!'"5(((((((((((((((((((((((((((++Fck:mLIYN`7@4V_#WF?ҿ"7>ƏGtȍ4Ee;ϯDo+}#jQY_hwJ_@V_#WF?ҿ"7Cuo%Q QC+)<XW"j#WF?ҿ"7~i֖K!Ŵ b:gh# Gtȍ4;ϯDo ֖vkgmy('<䚚ҿ"7>ƀ5(Gtȍ4;ϯDo`/.(NP$RI+/+}#_hRwJ_G#WFԢҿ"7>ƀ5(Gtȍ4;ϯDo K{"VSx"B@pf;ϯDo+}#jQY_hwJ_@g#n^j+}#4xgGYAfl:w4Ee;ϯDo+}#jQY_hwJ_@V_#WF?ҿ"7>ƏGtȍ4Ee;ϯDo+}#R׼\-ƯEq:<:TG=WLҬ4[m"BH%}ϽWwJ_G#WFԢҿ"7>ƀ5+~Syr'%L8VW+}#_h _{]˸e1r ;cY_hwJ_@V_#WF?ҿ"7ư}B;TqK $TyV+/+}#_hRwJ_G#WFԢҿ"7>ƀ5(Gtȍ4;ϯDoJ`%Vpq8du>ƏGtȍ4Ee;ϯDo+}#jQY_hwJ_@V_#WF?ҿ"7>ƏGtȍ4Um.ELXm 9<02IMTwJ_G#WFHbhDisP c'Vum?ҿ"7Զ.gp[A ɠ QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEuIUpAO2'{kghb!#h٘u;QqB* ZShѿ-a)5sG٠1")o?o XJ\4?Qh?Ƞ 7?%?ƏW>}(Ak OFϳA}(Ak OFϳAX1%,H܅ZlEPP]^Y*6 @OPzZd ,Ҷ-I< 8iKP s29Ǟ2XFZSj٠1"AOFZSj٠1"AOFZSj٠1"AzkM`ƃ/+?s:v,OjdvKXY;@?o XJ7?%?Ʈ}(4?P?GAk Ofx|>OFZSj٠1"AOFZSj٠1"AOFՋ]B)Tԟfx|͂4ŗATz EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPX2'{kghb!#h٘u;K,#Qp䎱faנFQGIHƊQF@QGIHƊQFO_x\GEj򉵝ڠ{gD;#w_Ew8bN3?Q\/:ŠcҮƼ6,#"<'' a#K]q`|!ͻ89;U_C_vfZ2`YC{ƞ%FZ0 0FG5 i Mg+cqPBuc %$s>?e>>o4tW-$IyeOBNs^g_6h#35C8FX8ZZ#/t0vq]Gƃcxl[}Zo;q9@!z]cS=`۔E-*oMGuRAʜsw\*ADiBBҊ&{j=+#]0uM#pr?Pß͞>z%$Q"F#@<־ zӴf eF~`t= O^87!lr>޵k <)cl%m[oʼ#zx4 _Я4pѹ ssZ}K\ 'Wr?-Y|50vZ( (2oYZzZՠjzZd ,Ҷ-I< 8OSL]V|''U}3L;Ե'Iu)Wo@|ۦ[KjZ N\y-ՈZ(((O??v-PXn D`l~;Ƶk6c#I7>6f><ُ/h߂Dߧ䑻ހ6l|ES$ΗG+Gz>!xOFԿ"ݵ+>A \ ?g]?ZgoWyj}o|Jt#wߴyٌXG-j'OufVBv7Bxx~5a=[gW?ku@OOy!|v|SмO3:ee#"(aI%9=MuztY5p< $u3)s-tY1²TUBw$tcZeΛ v,B&:D/{=((((;_sTIW-/zzKm?KUuBM7 v*z*m]> fcUӬ.nEqA[T=zpd=o8 toN][mP=~PEPYtk(![-{>Pqrp+N㈵ǫ!f=ʟh:]ח{~Hcy"y2Wo#7 |rk2|`MJ,fFt?\v@xi#VxmPHV H;XhsVWUGT$eXdv<|GK$N.Z@s82`ڬ:hc" !Mڤ//(}L\}]n1@/:tb7WeDIǍ]N]VqjZF %$?U[ouPSyfec+ g3sYҀ; ĺ7mZG"NnC/H~"O^ѵ?jmd ϰ1PB$W!ۏ/v8|_HҤ}ǮlnAm2[A<5&|H 3Q]/%:7$-Wf8.3` GQ+~ '|"<A/q׏¶&x{[DmzIٻ䛘 9W(((ldYQs^0(V(((((((((((((((((((*y6^[5B$ @QO?C@(dq44We=le=lc+>Yj$'3G;dmz] *}6_[Mon|T8v?c!q47.[/G.[/@}3E| _צ|&޵ūE `E߽zm`,#Qp䎱faנCLM]Jם׸^~fw"Ojx{wnnV :za@E$Q"(UE @>g?e!q4e=l7.[/G.[/@X>ìi\ ,dp=7)٫:'t]"+Hd>IMq? m۱8/ekxY~s6bɓlwqԛ=F=G:?xGAJ59.${#.zAǷJ4h6Zyg`^A3g޶޷{Is X.XH3:>o{ocb-;4Fa}:U/4]LZ~W{+fOC`+wz8?wz8cGH?'q;fo]2_?Ə]2_?ƀ|.V K}DFD9ԑǥv(wZ|j|K% C`` z^ _КzZqi+Zuڣ<y=;L%-I]JU'_.f/eh/eh B>|AO[1r-%Bq܀F~"i>ƇAvmH^ÊcSž{VG,rYpۧ~P#./Pm~;\jD!1d㍹#jOXԿ/Ky.ogRɼRtRO~~l$XV]<#y,>?e=l}tM/f1oLcbi?+'PӴha吳> H^+wz8?wz8c[OVmkPn&hҴm.l29@$1Ҿ{e#q5^y>0'Y! -A+<hv+~-x[tdzLp\i%2aGnӨwz8?wz8c+o]2_?Ɣ|oG,>跲Z}q5ʹsI?#2Wx'zzK[};J[6D8$prI8I83kÏad#˹SrɐAE rs#9>-[keTQ8 2rMƨ("̐EGS#nWe=le=l8,؟3IP,.-iYc$dE(!>-ſϚ=bq߯Zt=3:{Xq[c`9筗筗v=tg"kgGfN~nfm|9Ykz彮JO7xNj筗6x`M;Q䭿2sFrh o=V-\z~-CV>Vdn8<6}:WOg460O5K$j Z2FJ8$txgG׬mu%E0pldYQs^0(Ex_,xBugoj d?>N85q4hwz8?wz8c+;_eԭchnCʪ`H0dFNOA~BY$dJ:+þ |U?]u[ko<G?8'{7.[/G.[/@}3Ex?&?NYujіygз8 _JJQEQEQEQEQEQEQEQEQEQEQEQEQEQEEh?ȣR@}(4?TPQ1EQ1N*/A-DaT{ Sh,dxGi3ʞ_Vmtk6f.#+N[$qlfx|G٠1"kfocH"dVX@-`:ހ4>"U `1KE zKYzk)xVD ˰QԎ/(4?TOUԡJdhm!ycU8{®\“ p`;VhU*P;Z+,k><$)!]Z\ sd zQ*=>S$[΁ѽAGڬ6x1O+gY^' ? ZR*(UPvPHʮYC،=KPͷIwuTe{n8F~Oa@(4?Tki2ͦȑV,x_4?Qh?Ȫ:k^iϨ}#+m'-08ӠUT]GZoPhNk"ieFjhUԫ(`{UmZI $2BӶ6Ā9'ԜCW/A;]F.#;%+`:O@جgeBq]OE徣c-$ף)*x9Pشl-εSG5O@5gOmqO(fx|>4\1m|W>,G.Ǐz .FpGc@1"3Yc-"-SNvb7e*[k'kފfEEh?ȣRfzcxIѮ#.!dPD>@zեkwo}kդo ܒFە#/٠1"A t!EIUa=C, dڀ,VT6\׌?2JеiVX&A$r!e# ϏF˟FI@M NrR~-٠1"AA@}(4?TPR4;W=vS ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (2_ҵ+/E~+R ᴽzOI-ZyƖn1fkyr$`Ws\?| ?28!\A#>n\'A뎴LjNNsoK5Bovv :*Zu4|>D/!)v-O'k|;R7zKl-.ms(bNw k]qƍ{]\kֱd 6S@T`bj"O thNj' /jksiO=HePz /<Em\lѼ-mcp#ץhhG[PRn4D6:ym%cc$qsan<%gS^Kiv50RR2;]'>s#$'*Oxv}Z,Q 31F< ï][FAo(T@x-Ͷ>l#2 mŏ]}rya5PkqQ"'w ?xYJGmV/V=+j9G ]\s[NWCe`Y[*Xw OA H ƻFPU*F#+?<-jwWWipf`#28 moYGiKoemJ#PpwA7Σx-6k Q*@+hkz};Iݏc)SP‘iޥzO9ā{Pw1j1񎯧.iznGOE$Һ%߇ז'ڮ#ZrLI}Zu?\k/musYNCcw<SBԵVuI*rx4C,w:Ჸa&+d܁{Ro4xF~34zFM)zV9khiױIaw+H䌃3U=Cotysgm#,o q@>јHO/ jx7Z$TO!eK0 =j׀Yn,ƣ,],fD|1ېS[OYxHR(/a~u=3q@<#skumE ?aizo Z|O[7Q"'%P9}ϵt>] eE}18uX 8y<1Gt_OO,RyrM(rLkԀǞzq@WQ}3ỽ5۰&f&o1u˨&xj;kkr k J7zM6ڞ\[Ԙ c=EixgJHm'WTplݒ9$;`P %|I$ڤǪ<VTEbxx=+^׮tM~/l/ebWFi]=J3Z0xctdP̖HM0$5oUUe4뤽賉&RI2H_@M˫x>nfhY<\%5jڄү# UB] :WZ^][/t,jr,9qVNJtNO `'km$7hu\(K:xyY $ьv^pqA~&𵿊#y#02\+g~`:>)m vic1vj6k8`gѢpw:p>i-?X:棥iD i҈Y fv rޕxw +yj>m( sz^Um5mFKm/$-pB\HdxHݘl5Ir _,k;MNg+v)>RvoZM}\+$ު0H`]@:zK6[_sTIVtB2|mq5ixd6*BG 'k+ޙm^AsM ς>b25LZ𾧦[4k=ճ!!AaqV\:6Yimg";1q ]"z߃[G gĘ߂ټk{˹~_˺(vk=O ?kIT$c}6mk %!x!{z?%im԰=1)'/ ZZך.ZI\@qqhKk}G.lfe(HeT @#rws%­FyN#l@ss_ %W[+]=Dؿ%: @j6݁ <'MvZO#xZ!/$"lE2[~F9Gu?:5_6k!ƒn8xf?~ր9=3Ě:ڽvjZ*XG8ݜ¤]Eb31Ȁ_y>>,<3hŁ6o,{IS<;j^[]ITN=ԯn![ $\f %z98ĺ؛Gv]~Ȋy EwwF1}a3Gg%Z*FXn$ێ*cᥗLΧc<-Ne rBmI#uV]{\<]V\x^'VM|RB]3ҍ_mu$i ?R=3U!𷊯ex[MKKҮ>AygrA>lmm=epkwqm4!;v\mR~PzqjKNׯ5/ _ivڄnʮ228b [#OSCMV U T`8&+ih"?xYJGmW'/iZ,Zr‰Zh5hI? G$m?Z++mQ 6A[O(VCMV բ&+ih5hI? G$m?&g6,n &x8=OeWFGPH"&+ih4-1"@T 6A[O(CEeMV ?&+ijY_hI? @VW$m?mP 6A[O(ClnT9%p1ZeMV ?&+iIȹפ:m!Xz߈itF8;gwUV@I%N|IlZ( 8P 6A[O(CEeMV ?&+ijY_hI? @VW$m?mP 6A[O(CQ#K!$* (8p?*CMV Ӓ4'TWԫ# #io1j#B8&+ih5hI? G$m?Z++mQ 6A[O(VCMV բ&+ih5jbec<OUCMV լldMV Z'9[8Tg PQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ji=A5B)'1@j?G=g-zտenr0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~G=gܢ0ugS(wQOY~E7ރ}V)gkvM7dGʍڷ+]dž?&Iq@QEQ\ͅlj5h.`txVNF % !3u/3_I*΍&7(?:7 e> )hr/3_I*΍&7(?:7 e> )hr/3_I*΍&7(?:7 e> )hr/3_I*΍&7(?:7 e> )hr/3_I*΍&7(?:7 e> )hr/3_I*΍&7(?:7 e> )hr/3_I*΍&7(?:7 e4WvL糸-#١X)4yC7((((((((((((((((((((((((((õVe,mu?4[rPv܏scLVe?Ê: j@5Mn=&KWN3ZB· rLdxR>4N]:-SStS0~sW1Ԝg5exG\|5{]7\f&@|OuC4tH`ҽwgW?NvQk:MĚhkssnI F̙+}FEcN>+xd]Q^@m}}6Yw[qGBr8<}(5I4qo}@Zq@30H#kums_jS]lQ\N- /lN:P,![d"0HeW?9-#8!+s^Q-*)gEUkNȚ~b2ۑ*}q?V=[KfMMyDer8t47R?V&rt32۞s85kGlzeս9y:1)aN3wJ5Mz] 0E hrȀ{@xTG=hWFr:Tʷw^8Fۂ:n-oǨtj[]^?V10N}kM.BcfhRxxALL'.)tmBe'vmT~HT㡭gVs4j%v 8$gvSxǞ%Bj0C7 М1ZoZ,5;{>T. Ip>8@ ;6/O1ls43 >K5Y#O˸ݵ:s\6ef5/j ť٣ A8}izn>fеMo[m%cEp,OOom>-lᴯ,"K/ ʑZ4(彖X!h.);F@'t+G,:Kc}`v϶=ϼm ? 浴ymHс&Ry:ZWSHAhi"#qq^_Ѷȳ[Ē0=H9x97Fn:ibs|bOxˢKt4 c?,{dqkb.){HeKo*JMPW$g @/,׬4$y{d@ {WyG%Ii݄LV]JŤB8l|zEu0^Zum*92Ex~m|"UtH;1u1 DW$q^ Kkvql_m*@pJ|IxőAg4eeG(lK1   9 c&~"Z+m]%wv$MtM g dgkfcqs#Tҵ{=Bᧆv rH隿Hy<l_5?J4^Am#d z=Gr? Ѯ;rf8ybCW+5EPEPEPEPXz<1a7Kܬ=wC%nQEVqa;++@QEQUou=9`71'`{c|p=I TQP^r^Ю%(z)"+ʰ>((Zc57 k;Vt<*H Iu #EybSEl'84f*,\]7"a1׌g4zd0")f8P[K 'Wr?EPEPEPENU.omf%CpXl|t\(;_oY۪ܬ;_oY۪ܢ((((((((((((((((((((((((((G[_6nloDBR cc3ЎƲzտenVk[{-湆9 2BY-eYH|LTA}izFچgv ⧚h!ŽZBHPzsWZҭoSN#}姗_/vzb Y lt'FwsoEƟsRTrHI@ulp{fմ PceFs'€CHudDԴKC[V@nf(%8aQv_&kmF{TDlrO>uwmcl7w[/,T{ E4Rl0 B* -FRMվH`]x8z6u8}f)?{>^~nxohbmX-ؼ>U/`ԊujG&YݼАqT|O4-R,8ibqQW/-m^q )}Wt6y.ʙK9 qO=ú"G4ii$EC0'<Ժi*j6JngXmf,,syoUT|E%aAjVp>]K"A-m-+xa"*`87Hus #C9=I*;SNҢYucP N4}?(b?|3Zw_ڛ[K{stbK%1WpX#=1Yզ4fX᳙0@]8`lhZioek b0>qY&6wFt76LcnsDcSìi)m%e=a֭{kqs=70=Q4I -##pFh_-eFh!T[S6WZjVVבRxEp§K{fh(ޓ{w%eqs WU"&OSX̉V( t@-X9&<{ՔKDbPB@z@4ZO<$,ѣђ2#h/l,+cmib0HAiַ qoak G ,y@\󎙨AuK)/S; Pr*PC.o}*[n$F}!ľ1m"03$CͿi.[vtQT\#K% n:(,W9ո'TT}~+.nͭnItPKH,lശc8G ` xi#FY݂fӯo"Y>RhJ}_MmB;ۼ$Xlj<ej+o yO(B˟pTcKՃ7R iM]⧻&+w4,@itdhj+ZeXep!P~^>#ٳC6IqsEcWBP(cʷcx9O}+`@ V! M+]dž?&Iq@QE?NJ?'sPQ@%|YoiTfIj GdƜyp@ܠ"'}ꏇug=GExig(ve19 @?\kk7)>"[y,$ńIPS[hF+–z#?)&qg([=y5ewwkۭ)g<ؙ_L+Ö5?O%,]^m+_.ՁcGN+/.~ zu6, p1z ,.Mi:E88G,˜q@KkVM]i$qG@+7\5WōŦ}nnL˹x9 xjT}>_[+ōm-Omu`YU @ng×Aoy-Vu8 ȧ+#u2(u_\մ8-Ř۫]Ѳ {/4xDVΙb%GrŎA@Q10iic@.IOjZ~YiOrN;JWq\1T9{ \63rJ [#G#wfqI?iZg\Le@BAuρ4cY:z}܈}ч:+r;q@}jxOα!Uƭ98O|KK {:/-$Fcs9EZvEIcdR \ qI9E弲_,:Lvt>-xO?W+\ZQv,* jA1]ֻ?]!٨ѧ}ɅLc9;FNŪCm[[Eu .'9$I4> ÑJmD-N>)bU:k٭˛X!ArGq [yW.4\C[ {dXh{Pqkzof_N$4l:0eǵ ujZO,]7&i?@7xj݄2=̣2FP),qZUxut.JDW`wkR{şQC%ݍKk=L:zm=Cy{Xo+5X} XҀ9 / ko4[]/͂K i_q׀{W ֹ}zvEj+%ј0 m Kgݒ[\'3t߃}wy5Û4T]y\m+C)F+JŖ5強fyLrjŲ#R3ۤ%?zW_zd]x#Cv-+ǫִ9`m;pbӸϕv`@$qֺx# HvP0IXz<1a7Kܬ=wC%nQEVqa;++@QEQEQEQEQEQEQEQE\5uޤu vf,g%zWWE5"cU@UU uPEPEPEPXv=j ѷUXv=j ѷTEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPZ,mnV=:a4Gn;)lA̍Њ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(rl՟ QYVb7(?-GgY?5g(r xcoaj?6k?Qfв׵;߱EnI]Q@`G᫋c0m ?[2H#Zǩ5Eaaj?6k?Q٬߫?1[PCf~ZEaaj?6k?Q٬߫?1[PCf~ZEaaj?6k?Q٬߫?1[PCf~ZEaaj?6k?Q٬߫?1[PCf~ZEaaj?6k?Q٬߫?1[PCf~ZEaaj?6k?Q٬߫?1[PCf~ZEaaj?6k?Q٬߫?1[PCf~OhNS8YDCjF\4QFիEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE'(  J T Visio Visio.Drawing.60.Microsoft Visio Drawing Visio Visio.Drawing.60.Microsoft Visio Drawing Visio Visio.Drawing.60.Microsoft Visio Drawing Visio Visio.Drawing.60.Microsoft Visio Drawing1c Visio Visio.Drawing.60.Microsoft Visio Drawing(/ 0`DArialgs 3SnsF0D[SOalgs 3SnsF0 DTimes New RomansF00DComic Sans MSnsF0B@DCourier NewSnsF01PDHelveticawSnsF0 "`DWingdings 3SnsF0pDSymbolgs 3SnsF0@ .  @n?" dd@  @@`` }v. ' ! %&'$()w*%-w./01=2&I=X>(C_D& OPQRIaHbcdefg&hPkl& `$"$vΉGk&"$Bήp8&"$OJk&jx/"$BS16MS5"$N~ xڀ; ">$R$&R-2>3&C 0AA @c@ ʚ;|4ʚ;g4KdKdF0^lppp@ <4dddd@0s <4BdBd(A0$___PPT10D[SOrier New4B<F0<DArialr New4B<F0< DCourier New4B<F0<1? %"NCertifying Low-Level Programs with Hardware Interrupts and Preemptive ThreadsOOb  O Xinyu FengToyota Technological Institute at ChicagoJoint work with Zhong Shao (Yale), Yuan Dong (Tsinghua Univ.) and Yu Guo (USTC)(6bPb   <         a+?How to verify safety & correctness of OS kernels / Hypervisors?@@b$&3     d,"Layering of Simplified Kernel Code##b( # 'Concurrency with Interrupts: Challenges((b$ ( j/Our Contributions`  lA Hoare-style program logic for modular verification of low-level programs with interrupts and concurrency.8mkbbbl  ^AIM  I : Single Threaded-Code with Interrupts00b$ 0   Example: Teeter-Totter`    Non-Interference?`  9Program invariant: There is always a partition of memory among concurrent entities, and each concurrent entity only access its own part.But note: The partition is dynamic: ownership of memory can be dynamically transferred. cli/sti can be modeled as operations that trigger memory ownership transfer.`:bvf3bObPf3&  F  4AIM  I : The Memory Model`   %%Separation Logic to Enforce Partition&&b( &    "AIM  I : cli/sti& `a&     'Example: Teeter-Totter`   ),AIM-II : Multi-threaded code with interrupts(-,b$b$ -  +Non-interference?`   /.AIM  II : Memory Model`   1$AIM  II : cli/sti& `a&     2"AIM  II : switch& `a   8_*AIM-II : block/unblock& `a  /Threads block themselves to wait for resources.00b 0 f-rImplementations  An Infrastructure for x86 verification::b( :  M!Summary`  ,Abstract Machine & Program LogicHardware interrupts + preemptive threadsOwnership transfer semanticscli, sti, switch, block, unblockImplementationsInfrastructure for x86 code verificationCertified x86 modulesFuture workMulti-processor platformsLiveness propertiesVerification of C programs!PFP!PP@P PIP!bFb!b b ? b  b  bIbZg      ' O" Thank you! `   /h   " #&(*.0:@BN$P%`-b.e/g0r2P$  0` 33` Sf3f` 33g` f` www3PP` ZXdbmo` \ғ3y`Ӣ` 3f3ff` 3f3FKf` hk]wwwfܹ` ff>>\`Y{ff` R>&- {p_/̴>?" dd@,|?" dd@   " @ ` n?" dd@   @@``PR    @ ` ` p>> VN(    6,B  `} BX Click to edit Master title style!!   0B  ` BRClick to edit Master text stylesSecond levelThird levelFourth levelFifth level!  S   0B ^ ` Bf*b    0B ^  Bh*b    0lB ^ ` Bh*b  H  0޽h ? 3380___PPT10.@;ݼ Default DesignV0 0 f(     0@P P   Pf*b     0P    Ph*b   d  c $ ?  P  00P  0 PRClick to edit Master text stylesSecond levelThird levelFourth levelFifth level!  S   6 P _P  Pf*b     6DP _  Ph*b   H  0޽h ? 3380___PPT10. 0"N0  $(  r  S  P r  S SP `  P H  0޽h ? 33___PPT10i. ^߼+D=' (=@B +.0N0 > 6 0  (  x  c $DB@ ` P l   @   @,$D0   6 P ?"6@ NNN?N ^ Code loading"0 2b    6h#P ?"6@ NNN?N  ,bMany challenges:"0 2b    6L'P ?"6@ NNN?N  \ Interrupts" 0 2 b    6+P ?"6@ NNN?NF @T& "0 2b    6)P ?"6@ NNN?N ` fDevice drivers & I/O"0 2b     62P ?"6@ NNN?N  ] Concurrency" 0 2 b    6L6P ?"6@ NNN?N zkLow-level C/Assembly code"0 2b    09P ,$0iIs verification possible?  2f     0>P   ,$0w'How to do it in a clean & modular way? ( 2(f ( H  0޽h ? 33, TIMING|11.7|21___PPT10. +nWjD$' (=@B D' =@BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(+p+0+0 ++0+0 +/0GN0 Pt(  x  c $DP `} P  0  `A 1? ?  1 P8    0P+B: concurrent code with explicit interrupts*, 2+bb ,   0P cHow to verify ???" 2g3  H  0޽h ? 33& TIMING |78.7___PPT10i.:@~+D=' (=@B +.e0pN0 <o(  <x < c $P} P  <0  `A ? ? 4   P <0  `A ? ?bi   P <0  `A ? ? ^    P <0  `A ? ?p }  PB < 6D>" ,$D 0B < 6D>p,$D 0B  < 6D> p,$D 0B  < 6D>Y,$D  0B  < 6D> ,$D  0z @  < Y,$D 0fB < 6D>@X < 6\P Pirq0 2b  z   < ,$D 0fB < 6D>p  < 6P?Pirq1 2b   < 6P ,$0O(1) 2b   < 6m#PI9O,$0O(2) 2b   < 6" P ,$ 0O(3) 2b   < 6(P0,$ 0O(4) 2b   < 6POy  ,$0O(5) 2b   < 0+B#style.visibility<* <%(D#' =+4 8?nCB!#ppt_x-#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<* <D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<* <D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<* <D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<* <D' =%(D' =%(D' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*<D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*<D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =-o6Bdissolve*<3<*<D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D#' =+4 8?nCB!#ppt_x-#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*<D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*<D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*<D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*<D@ ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*<D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*<D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*<D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*<D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =-o6Bdissolve*<3<*<D@ ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* <%(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<* <D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<* <D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<* <D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<* <D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =-o6Bdissolve*<3<*<D@ ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* <%(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<* <D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<* <D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<* <D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<* <D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =-o6Bdissolve*<3<*<D@ ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* <%(D#' =+4 8?nCB!#ppt_x-#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<* <D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<* <D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<* <D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<* <D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =-o6Bdissolve*<3<*<DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*<D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*<D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*<D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*<DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*<D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*<D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*<D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*<++0+<0 ++0+<0 ++0+<0 ++0+<0 ++0+<0 ++0+<0 ++0+<0 ++0+<0 +20/N0 l(  x  c $Č `  x  c $ ``    C .Acertified2`,$@0  6p"`P`0 ,$D0  6p"`` `0,$D0RB  s *DԔ H  0޽h ? 33 0 TIMING|24.6|27.7 ___PPT10k .0͉9+*ID? ' (=@B D' =@BA?%,( < +O%,( < +D2' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*DG' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-6B'blinds(horizontal)*<3<*D' =%(D' =%(DG' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-6B'blinds(horizontal)*<3<*+2 0N0 11p%&\T1(  \x \ c $t `}   \ <?"6@`NNN?Np L"0c   \ B4?"0@NNN?N ~v0___PPT106___PPT9jI180ck   \ 0?"0@NNN?Np ~v0___PPT106___PPT9f1:L0(2ckc   \ B?"0@NNN?N ~v0___PPT106___PPT9jI280ck   \ 0?"0@NNN?Np ~v0___PPT106___PPT9f2:L0(2ckc   \ BD?"0@NNN?N  ~v0___PPT106___PPT9sISR@0g3o3    \ 0H?"0@NNN?N @  ~v0___PPT106___PPT9kih:*0(2g3  v  \ 0?"0@NNN?N  ~v0___PPT106___PPT9X& &0(2c    \ 0?"0@NNN?N P ~v0___PPT106___PPT9w(code heap) C:0(2 cg33    \ 6?"6@`NNN?Nvp p~v0___PPT106___PPT9W0&0(2c   \ 6t?"6@`NNN?N0 p 0 ~v0___PPT106___PPT9lr1:0(2ck   \ 0?"6@`NNN?Np  \ 6?"6@`NNN?Nv p~v0___PPT106___PPT9W1&0(2c   \ 0?"6@`NNN?N  \ 6x?"6@`NNN?Nv p~v0___PPT106___PPT9W2&0(2c   \ 0?"6@`NNN?N  \ 64?"6@`NNN?Nv` p~v0___PPT106___PPT9X& &0(2c   \ 6?"6@`NNN?N  \ 68?"6@`NNN?N0 0 ~v0___PPT106___PPT9lr2:0(2ck   \ 6?"6@`NNN?N0 0 ~v0___PPT106___PPT9lr3:0(2ck   \ 6`?"6@`NNN?N0 0 ~v0___PPT106___PPT9l& :0(2ck   \ 6?"6@`NNN?N0 0 ~v0___PPT106___PPT9lrn:0(2ck   \ 0\2?"0@NNN?N@@:~v0___PPT106___PPT9w(data heap) H:0(2 cg33   \ 02?"0@NNN?NP  J ~v0___PPT106___PPT9{(register file) R:0(2cg33   \ 0?"6@`NNN?N  \ 0?"0@NNN?N P@ ~v0___PPT106___PPT9s (state) S: 0(2cg33   \ B2?"0@NNN?N ~v0___PPT106___PPT9v@ addu & cli sti iret & j f!0cg3o3c g3ckt           \ 0?"6@`NNN?NPp \ 02?"0@NNN?N ~v0___PPT106___PPT9u (program) P: 0(2 cg33    \ 0 2?"0@NNN?N P{ ::=(C,S,pc)& 0(2 c&    !\ 0%2?"0@NNN?N ` { ::=(H,R,ie)& 0(2 c&   d "\ 0?"0@NNN?N @::={f I}* 0(2cc  ck   #\ 6x/2?"6@`NNN?NP~v0___PPT106___PPT9\pc*0(2g33  B $\  `D?"0@NNN?NP@ %\ 632?"6@`NNN?N @ ~v0___PPT106___PPT9ieB0(2g3o3  H \ 0޽h ? 33___PPT10i.w`p+D=' {=@B +L 0ȫN0    dg (  dx d c $=2 ` 2   d 0@>2! 0 while(true){ cli; if([right] == 0){ sti; break; } [right] := [right]-1; [left] := [left]+1; sti;}print( left wins! ); 2a aaaaaaaa7aaaaa         D        d 0O2p `,timer: if([left] == 0){ print( right wins! ); iret; } [left] := [left]-1; [right] := [right]+1; iret;y 2aaaaaaa7aaat        7    d <20L50`   d <0a2L50`   d 0`d200Nleft 2`   d 0Di2$@ Oright 2`    d 0m2p W,$0r"How to guarantee non-interference? # 2#e # H d 0޽h ? 33" TIMING|26___PPT10.5y+DO' {=@B D ' =@BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* d%(+8+0+ d0 + 0|N0 l0(  lx l c $hv2 `} 2 x l c $w2 2 H l 0޽h ? 33___PPT10i.`+D=' {=@B +# 0N0 pht(  tz  ! t  !,$D0 t 0+B#style.visibility<*t%(D' =-o6Bdissolve*<3<*tD' =%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*t%(D' =-o6Bdissolve*<3<*tD4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*t%(D' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*t%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*t%(D' =%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*t%(D' =-o6Bdissolve*<3<*t++0+t0 ++0+t0 ++0+t0 ++0+t0 ++0+t0 +Z0tN0 YQP(  x  c $2` } 2 F     0p2 l n T 2c  VN       <l2pOnc    0 2 cl2 2ck  ZB  s *DDpDBF         02 p * qv 2g3f33f3g3  N      `   0 0`  00  0$2cp2 2ck    02@cq2 2ck  F 0  0  0X2pemp . 2c    0(2 0e empty heap * 2 b  F       0  p qb 2cbbc  N       0 ~ p qD 2cc  `  0   0`  H[Ithtiaq & O Hearn 01, Reynolds 02] % 2%f&   H  0޽h ? 33___PPT10i.N0!+D=' x=@B +Q<0ON0 aY |(  |x | c $ `}   | B0jJ"`x00hKB`   | BjJ"`x0@hKA`  rr | <ZjJ"`0@x | 0@ I)UINV"(2f3  z (p | (p,$@0 | Bh#jJ"`pKB`    | Bx(jJ"`pKB`  zr  | <ZjJ"`  | 0+(yUINV"(2f3    | B/jJ"`H8 ,$D0KB`  z 0H @ | H 0@,$D 0 | B,jJ"`0H p8 KB`   | B6jJ"`pH @8 KA`  zr | <jJ"`p8 @  | 0 < UINV"(2f3  z H  | H ,$D0 | BD?jJ"`H 8 KB`  zr | <jJ"`8   | 0,CP 0UINV"(2f3   | BGjJ"`H 8 KB`   | <Z>"`P,$D 0 | <Z>"` P ,$D 0z    |  ,$D 0t | 6>"`   | 0M p [cli 2`  z   |  ,$D  0z | <>"` x  | 0OP [sti 2`   | 0TPs`ie = 1(2`    | 00Xs,$0`ie = 0(2`  H | 0޽h ? 33%0 TIMING|10.7|8|15@%___PPT10 %.bpK+pUKDD$' ^=@B D?$' =@BA?%,( < +O%,( < +D ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*|%(D#' =+4 8?nCB!#ppt_x-#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*|D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*|D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*|D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*|Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*|%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* |%(D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*|%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*|D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*|D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*|D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*|D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<* |%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*|%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*|D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*|D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*|D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*|D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*|%(D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*|%(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*|D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*|D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*|D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*|D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*|%(+p+0+ |0 ++0+ |0 +<0`N0 p!#.(  x  c $Hm `  0  0w while(true){ -{emp ie=1} cli; -{emp * INV} ... [right] := [right]-1; [left] := [left]+1; -{INV} sti; -{emp ie=1}} 2a ae3e33e3aaae3 e3e3aa2ae3e3e3aaae3e33e3a          H         0p `**timer: -{INV} if([left] == 0){ print( right wins! ); -{INV} iret; } [left] := [left]-1; [right] := [right]+1; -{INV} iret;h 2 ae3e3e3aaaaae3e3e3aa7ae3e3e3aaat       @     0w,$0zdINV: $m, n. (left m) * (right n) (m+n = 100)3 2d33d33d33d33d33&(   f  0"`@f  0"`@ f  0"`# @f  0"`@@ 0f  0"`0 f  0"` ` f  0"`$0   <PL50`    <PpL50`    00wNleft 2`    0pkOright 2`  8l @P P@,$D0ZB  s *D|@PZB  s *D|@P`8l @` @`,$D0ZB  s *D|@0ZB  s *D|@`%l  0  0 ,$D 0  0"` P A {sticli 2a4    TB  c $D 0 @  TB  c $D  f  0"` f  0"`  f  0"`  f  0"`0PPf ! 0"` f " 0"`  f # 0"`@ P0H  0޽h ? 33# TIMINGf|10.2|18.5|11.4|15.4|5|13.4|9.8|10|3.2|27.8|1.6|7.18#___PPT10#.5y+BD"' x=@B Do"' =@BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(Dr' =%(D' =%(D' =4@BBBB%())))?D' =1:Bhidden*o3>+B#style.visibility<*%(Dr' =%(D' =%(D' =4@BBBB%())))?D' =1:Bhidden*o3>+B#style.visibility<*%(Dr' =%(D' =%(D' =4@BBBB%())))?D' =1:Bhidden*o3>+B#style.visibility<*%(Dr' =%(D' =%(D' =4@BBBB%())))?D' =1:Bhidden*o3>+B#style.visibility<* %(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(Dd' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D2' =%(D' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*%(D!' =%(D' =%(Dq' =4@BB BB%())))?D' =-o6Bdissolve*<3<*!D' =1:Bhidden*o3>+B#style.visibility<*!%(D' =%(DB' =%(Dq' =4@BB BB%())))?D' =-o6Bdissolve*<3<*"D' =1:Bhidden*o3>+B#style.visibility<*"%(Dq' =4@BB BB%())))?D' =-o6Bdissolve*<3<*#D' =1:Bhidden*o3>+B#style.visibility<*#%(+8+0+0 +e0N0 ^ ^tv ](  x  c $}   F @   @`   <?"6@`NNN?Nd L"0c    B?"0@NNN?N~v0___PPT106___PPT9P&0k   0?"0@NNN?Ndp_~v0___PPT106___PPT9f1:L0(2ckc    B?"0@NNN?N~v0___PPT106___PPT9P&0k   0|?"0@NNN?Ndp~v0___PPT106___PPT9f2:L0(2ckc     B?"0@NNN?Nx ~v0___PPT106___PPT9T*0o3    08?"0@NNN?N@iO ~v0___PPT106___PPT9kih:*0(2g3    0?"0@NNN?N p ~v0___PPT106___PPT9s(code heap) C60(2 cc    0 ?"0@NNN?N  ~v0___PPT106___PPT9o (state) S6 0(2cc    0?"6@`NNN?NPp  0 ?"0@NNN?N ~v0___PPT106___PPT9u (program) P: 0(2 cg33  g  0?"0@NNN?N ::=(C,S,B,Q,pc)v0(2cg3cgc&      0?"0@NNN?N  { ::=(H,R,ie)& 0(2 c&   8   ;  v ;   H ?"0@NNN?N  ; ~v0___PPT106___PPT9 cli/stiswitchblock wunblock wL!0cg3k  T pX e2  #  p  J   6'?"6@`NNN?NpX 2 ~v0___PPT106___PPT9Xpc&0(2c  B   `D?"0@NNN?N e F 8      6#?"6@`NNN?Np ~v0___PPT106___PPT9W0&0(2c    6/?"6@`NNN?Np0 8 ~v0___PPT106___PPT9lr1:0(2ck    0?"6@`NNN?Np   65?"6@`NNN?N  ~v0___PPT106___PPT9W1&0(2c    0?"6@`NNN?N    69?"6@`NNN?N  ~v0___PPT106___PPT9W2&0(2c    0?"6@`NNN?N    6L?"6@`NNN?N` ~v0___PPT106___PPT9X& &0(2c    6?"6@`NNN?N    6=?"6@`NNN?N 0 8 ~v0___PPT106___PPT9lr2:0(2ck   ! 6LB?"6@`NNN?N 0 8 ~v0___PPT106___PPT9lr3:0(2ck   " 6\C?"6@`NNN?N 0 8 ~v0___PPT106___PPT9l& :0(2ck   # 6H?"6@`NNN?N 0 8 ~v0___PPT106___PPT9lrn:0(2ck   $ 0S?"0@NNN?N@i~v0___PPT106___PPT9s(data heap) H60(2 cc   % 0X?"0@NNN?NO i ~v0___PPT106___PPT9w(register file) R60(2cc   & 0?"6@`NNN?N8  ' 6]?"6@`NNN?N @ ~v0___PPT106___PPT9zie:0(2ck  Cz ` ( P,$D0 ) B?"N @ *  + B?"@d , Bb?"P0~v0___PPT106___PPT9Vpc$0c  c - Bf?"p~v0___PPT106___PPT9UR$0c  N @ . ` / B?"@d 0 B4j?"P0~v0___PPT106___PPT9Vpc$0c  c 1 B(n?"p~v0___PPT106___PPT9UR$0c  N @ 2 P 3 B?"@d 4 Br?"P0~v0___PPT106___PPT9Vpc$0c  c 5 Bx?"p~v0___PPT106___PPT9UR$0c  R 6 0z ?"`P ~v0___PPT106___PPT9V& $0 2c   7 0~?"0@NNN?N`~v0___PPT106___PPT9z(ready. queue) Q:0(2cg  l G uG,$D0N `` 8 ` ` 9 0`` : 0` ; 0` < 0 ` = 0 P` > 0P` ? 0` @ 0` A 0` B 0@` C 0@p` D 0p` E 0` F 0` G 00` H 00`N `   I   ` J 0`  ` K 0 ` P ` L 0P`  ` M 0`  ` N 0`  ` O 0`  ` P 0` @ ` Q 0@` p ` R 0p`  ` S 0`  ` T 0`  ` U 0` 0 ` V 00` ` ` W 0``  ` X 0`  ` Y 0`  n Z 0"`0 N `   [   ` \ 0`  ` ] 0 ` P ` ^ 0P`  ` _ 0`  ` ` 0`  ` a 0`  ` b 0` @ ` c 0@` p ` d 0p`  ` e 0`  ` f 0`  ` g 0` 0 ` h 00` ` ` i 0``  ` j 0`  ` k 0`   l 0ȏ  Z& & 2``   m <Ȕ?"6@`NNN?No ~v0___PPT106___PPT9hw160(2ai  B n  `D?"0@NNN?N u  o <8?"6@`NNN?N  ~v0___PPT106___PPT9hw260(2ai  B p  `D?"0@NNN?N u  q <?"6@`NNN?N  ~v0___PPT106___PPT9vwn60(2ai  B r  `D?"0@NNN?N0 u0  s 0 ` GQB  2d3  H  0޽h ? 33f. TIMING|8.9|10.2(___PPT10.w`p+` D' x=@B D' =@BA?%,( < +O%,( < +D' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*(%(D' =-o6Bdissolve*<3<*(D' =%(D' =%(D3' =4@BB BB%(D' =1:Bvisible*o3>+B#style.visibility<*u%(D' =-o6Bdissolve*<3<*u+}0VN0 _^vv^(  x  c $ `}   F @   @   <?"6@`NNN?Nd L"0c    B,?"0@NNN?N~v0___PPT106___PPT9P&0k   0?"0@NNN?Ndp_~v0___PPT106___PPT9f1:L0(2ckc    B?"0@NNN?N~v0___PPT106___PPT9P&0k   04 ?"0@NNN?Ndp~v0___PPT106___PPT9f2:L0(2ckc     BL?"0@NNN?Nx ~v0___PPT106___PPT9T*0o3    0?"0@NNN?N@iO ~v0___PPT106___PPT9kih:*0(2g3    0(?"0@NNN?N p ~v0___PPT106___PPT9s(code heap) C60(2 cc    0?"0@NNN?NP  $ ~v0___PPT106___PPT9o (state) S6 0(2cc    0?"6@`NNN?NPp  0#?"0@NNN?NP  $ { ::=(H,R,ie)& 0(2 c&   F X 0   X 0   B(?"0@NNN?N p 0 ~v0___PPT106___PPT9 cli/stiswitchblock wunblock w:!0 g3k  T pX e2  # X 2   6,'?"6@`NNN?NpX 2 ~v0___PPT106___PPT9Xpc&0(2c  B   `D?"0@NNN?N e F 8      64?"6@`NNN?Np ~v0___PPT106___PPT9W0&0(2c    69?"6@`NNN?Np0 8 ~v0___PPT106___PPT9lr1:0(2ck    0?"6@`NNN?Np   6 1?"6@`NNN?N  ~v0___PPT106___PPT9W1&0(2c    0?"6@`NNN?N    6=?"6@`NNN?N  ~v0___PPT106___PPT9W2&0(2c    0?"6@`NNN?N    6LI?"6@`NNN?N` ~v0___PPT106___PPT9X& &0(2c    6?"6@`NNN?N   6XO?"6@`NNN?N 0 8 ~v0___PPT106___PPT9lr2:0(2ck    6T?"6@`NNN?N 0 8 ~v0___PPT106___PPT9lr3:0(2ck     6A?"6@`NNN?N 0 8 ~v0___PPT106___PPT9l& :0(2ck   ! 6^?"6@`NNN?N 0 8 ~v0___PPT106___PPT9lrn:0(2ck   " 0[?"0@NNN?N@i~v0___PPT106___PPT9s(data heap) H60(2 cc   # 0e?"0@NNN?NO i ~v0___PPT106___PPT9w(register file) R60(2cc   $ 0?"6@`NNN?N8  % 6hc?"6@`NNN?N @ ~v0___PPT106___PPT9zie:0(2ck  F ` & P ' B?"N @ (  ) B?"@d * B@u?"P0~v0___PPT106___PPT9Vpc$0c  c + Bq?"p~v0___PPT106___PPT9UR$0c  N @ , ` - B?"@d . B?"P0~v0___PPT106___PPT9Vpc$0c  c / B(x?"p~v0___PPT106___PPT9UR$0c  N @ 0 P 1 B?"@d 2 B@?"P0~v0___PPT106___PPT9Vpc$0c  c 3 Bȉ?"p~v0___PPT106___PPT9UR$0c  R 4 0\ ?"`P ~v0___PPT106___PPT9V& $0 2c   5 0?"0@NNN?N`~v0___PPT106___PPT9z(ready. queue) Q:0(2cg  F `` 6 ` ` 7 0`` 8 0` 9 0` : 0 ` ; 0 P` < 0P` = 0` > 0` ? 0` @ 0@` A 0@p` B 0p` C 0` D 0` E 00` F 00`F `   G   ` H 0`  ` I 0 ` P ` J 0P`  ` K 0`  ` L 0`  ` M 0`  ` N 0` @ ` O 0@` p ` P 0p`  ` Q 0`  ` R 0`  ` S 0` 0 ` T 00` ` ` U 0``  ` V 0`  ` W 0`  f X 0"`0 F `   Y   ` Z 0`  ` [ 0 ` P ` \ 0P`  ` ] 0`  ` ^ 0`  ` _ 0`  ` ` 0` @ ` a 0@` p ` b 0p`  ` c 0`  ` d 0`  ` e 0` 0 ` f 00` ` ` g 0``  ` h 0`  ` i 0`   j 0  Z& & 2``   k <?"6@`NNN?No ~v0___PPT106___PPT9hw160(2ai  B l  `D?"0@NNN?N u  m <?"6@`NNN?N  ~v0___PPT106___PPT9hw260(2ai  B n  `D?"0@NNN?N u  o <`?"6@`NNN?N  ~v0___PPT106___PPT9vwn60(2ai  B p  `D?"0@NNN?N0 u0  q 0H` GQB  2d3  B r TD8c?"0@NNN?N ,$D 0B s TD8c?"0@NNN?N p ,$D 0B t@ TD8c?"0@NNN?N ,$D 0B u TD8c?"0@NNN?Np ,$@ 0] v 6 ?"6@ NNN?N,$0-Use memory partition to control interference!(.0(2.f . H  0޽h ? 33< TIMING |4.6|3.9|3.8|6.8___PPT10.w`p+DD?' =@B D' =@BA?%,( < +O%,( < +D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*s%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*sD#' =+4 8?nCB!#ppt_y+#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*sD' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*sD' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*sD' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*r%(D#' =+4 8?nCB!#ppt_x-#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*rD' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*rD' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*rD' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*rD ' =%(D@ ' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*u%(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*uD' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*uD' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*uD' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*uD' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*t%(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*tD' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*tD' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*tD' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*tDA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*v%(+8+0+v0 +,0N0    (  x  c $ `}    BdjJ"` KB`    BjJ"` KA`  rr  <ZjJ"`   0H UINV"(2f3  z  "   ",$D0  B\>"` KA`  zr   <>"` `    0 N "UINV"(2f3  z  <     <,$D 0   B>"`  KC`    B>"`  p \T1*`h    B>"`` \T2*`h  zr  <>"`  `   00L VINV1"(2f3  t  6"` <Fz     ,$D 0ZB B s *D ZB  s *D  H  0޽h ? 33. TIMING|6.1|10.2___PPT10f._+5AD:' =@B D' =@BA?%,( < +O%,( < +D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<* D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<* D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<* D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<* +kD0N0 &&<<&(  x  c $ `}  z `    0 ,$D 0`  0 >   0`  [T1: cli> 2bjb&     <"`p0`KC`    < p0@`KA`  ^r  6`0@  0I)UINV"(2f3    <"` \T1*`h    <L"` 2\T2*`h  ^r  6`0  00yYVINV1"(2f3  q z  P    ,$@0  <"` mT1: C8`h`    <l#"`mT1: A8`h`  fr  6   0(| yP UINV"(2f3    <ؕB"` @\T1*`h    <0"`0\T2*`h  fr  6    04z N VINV1"(2f3  N  `    N `B  0DjJ ```B  0DjJ``B  0DjJ`B  0DjJ `B B 0DjJ  `B  0DjJ `   0L:P`ie = 1(2`    0 >,$0`ie = 0(2`  Sz N @   N @,$D0 ! <8B"` 0 LC'`   " <hE0 @ LA'`  fr # 60 @ $ 0JI )UINV"(2f3   % <I"`N > \T1*`h   & <L"`N 2> \T2*`h  fr ' 6 0 ( 0Vy YVINV1"(2f3  s z  P  )  ,$D0 * <(["` nT1: C'8`h`   + <X`"`nT1: A'8`h`  fr , 6  - 0e| yP UINV"(2f3   . <i"` @\T1*`h   / <n"`0\T2*`h  fr 0 6   1 0lsz N VINV1"(2f3  N  `  2  N `B 3 0DjJ ```B 4 0DjJ``B 5 0DjJ`B 6 0DjJ `B 7B 0DjJ  `B 8 0DjJ ` z   9  0 ,$D 0f : 6@ 0  ; 0py`  T1: sti> 2bjb&    < BZ?"6@ NNN?N  ,$D 0H  0޽h ? 33m> TIMING"|42.4|8.1|6.3|1.6___PPT10.0J]+HEQD' =@B DV' =@BA?%,( < +O%,( < +D ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D#' =+4 8?nCB!#ppt_x-#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*<%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*<D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*<D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*<D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*<D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*)%(D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*9%(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*9D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*9D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*9D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*9D4' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(+8+0+0 +Ji03$N0 550W^  3(   x   c $ `}     <<"`p``mT1: C8`h`     <"`p`p`mT1: A8`h`  ^r   6``p   0yYUINV"(2f3     <ԝ"`  \T1*`h     <"` b\T2*`h  ^r   6``   00VINV1"(2f3  z ` @P`    @` P`,$D 0f2   6` P`    0B` @`  y T1: switch> 2bj b  F  `    `B   0DjJ ```B   0DjJ``B   0DjJ`B   0DjJ `B  B 0DjJ  `B   0DjJ `  z     ,$D0   <"`p` mT2: C8`h`     <"`p` mT2: A8`h`  fr   6`     0  UINV"(2f3     <"` `\T1*`h     <"`P \T2*`h  fr   6`     0L  VINV1"(2f3  fN      Z   s *jJ  Z   s *jJ  Z !  s *jJ Z "  s *jJ  Z # B s *jJ Z $  s *jJ Z %  s *jJ  Z &  s *jJ   '  0(9 0 `ie = 0(2`  l ` 0 PP ] 0 ` PP,$D 0l2 1  <Z` PP 2  6 0 y T2: switch> 2bj b  e l   \  ,$D0 (  <$"`^ `NnT1: C'8`h`   )  <,"``^ pNnT1: A'8`h`  fr *  6`Np +  0yYUINV"(2f3   ,  <"`  \T1*`h   -  <"` b \T2*`h  fr .  6N` /  0`VINV1"(2f3  N  `  3   `B 4  0DjJ ```B 5  0DjJ``B 6  0DjJ`B 7  0DjJ `B 8 B 0DjJ  `B 9  0DjJ `  z   :   ,$D0 ;  <"`p` nT2: C'8`h`   <  <r"`p` nT2: A'8`h`  fr =  6`   >  0r  UINV"(2f3   ?  <dr"` `\T1*`h   @  <lr"`P \T2*`h  fr A  6`   B  0 r  VINV1"(2f3  fN   C   Z D  s *jJ  Z E  s *jJ  Z F  s *jJ Z G  s *jJ  Z H B s *jJ Z I  s *jJ Z J  s *jJ  Z K  s *jJ   M  BZ?"6@ NNN?Np ,$@ 0l @@@P  ^ @@@P ,$D  02 O  B>"`@@P  P  <Xr"`@ Rswitch 2`  l   W  ,$D  0rb U  BGaH7IN   V  0,rS untouched 2 `  l    Z   ,$D  0rb X  BGHGIN   Y  0r  ^INV1 * INV preserved 2`  L [  <$r"` ,$0& sti & cli &  (2b@     H   0޽h ?/@  ! " # $ % &  D  E  F  G H I J K U X  332L TIMING0|11.7|14|2.3|9.5|1.9|8.62___PPT102.`]+s%D2' ,r=@B D1' =@BA?%,( < +O%,( < +D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D#' =+4 8?nCB!#ppt_x-#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<* D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<* D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<* D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<* D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<* %(D ' =%(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*M %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*M D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*M D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*M D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*M D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*[ %(D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*: %(D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*] %(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*] D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*] D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*] D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*] D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*\ %(D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*^ %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*^ D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*^ D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*^ D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*^ D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*W %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*W D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*W D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*W D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*W D' =%(D' =%(D' =4@BBBB%(D' =1:Bhidden*o3>+B#style.visibility<*W %(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*Z %(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*Z D#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*Z D' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*Z D' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*Z +8+0+[ 0 +.l0jN0 r7j7WW4(  z  Y p   ,$D 0`  0  p  09r Y -Qblock 2b  z  0    0 ,$D  0f  6 B   0B 0 p Rswitch 2b    <?r"`4p$mT1: C8`h`    <Er"`4$mT1: A8`h`  ^r  6$  0KrvUINV"(2f3    BHr>"`p`\T1*`h    <Tr"`\T2*`h  ^r  6$p  0XrI)tVINV1"(2f3  XB  0DjJ@ XB  0DjJ  XB  0DjJ pXB  0DjJpptXB @ 0DjJt@ptXB  0DjJ@@t  NH^r3jJ"``Q? f3    B(br3>"` u ,$D 0Q! f3   z  `P   ,$@0  <"`XT2&`h  fr  6 `   0{rL VINV1"(2f3  fN  `P !  `PZ " s *jJ`aZ # s *jJ`Z $ s *jJPZ % s *jJZ &B s *jJ PPZ ' s *jJ  PZ ( s *jJ Z ) s *jJ` * Bdr3>"`Q! f3   z   +  ,$@0 , <Lr"`   oT2 : C'8`h`   - <r"`  oT2 : A'8`h`  fr . 6   / 0(r~ yRUINV"(2f3  fr 0 6   1 0Xr| PVINV1"(2f3  fN   2  Z 3 s *jJ  Z 4 s *jJ  Z 5 s *jJ Z 6 s *jJ  Z 7B s *jJ Z 8 s *jJ Z 9 s *jJ  Z : s *jJ   ; <Мr"` \T1*`h   < Br>"`  \T2*`h   z @ pP =  @p,$D0 > <r"`p  nT1: C'8`h`   ? <`r"`  oT1 : A'8`h`  fr @ 6   A 0r| PUINV"(2f3   B Br>"`p ` \T1*`h  fr C 6p   D 0rIz )NVINV1"(2f3  `B E 0DjJ@  `B F 0DjJ   `B G 0DjJ  p `B H 0DjJp pN`B IB 0DjJ@NpN`B J 0DjJ@ @N K B"`  \T2*`h   L BLr3>"``  Q! f3  z   M 6V ,$D 0 N 0Dr Sunblock 2b  f O 6Z   P 0rVThread 1 (2 b   Q BrjJ"`,$D0\T2*`h   R B"`  ,$D 0Q! f3   S 6r  `}oAIM-II: block/unblock*b(c(   T 0r@VThread 2 (2 b  z  `  U  ` ,$D 0z2 V <>"``  W 6r"`@ - Qblock 2`  H  0޽h ?3456789: " # $ %&'() 33L4R TIMING6|5.6|2.6|12.3|5.4|7.1|8.5|93___PPT103.+VQDN2' r=@B D 2' =@BA?%,( < +O%,( < +D6' =%(D' =%(D' =A@BBBB0B%(D ' =,54*3>!Bstyle.color='`B@BPB<*)?D' =,54*3>Bfillcolor=@BPB<*)?D' =1:Bsolid*a3>Bfill.type<*)?D' =1:B true*]3>Bfill.on<*)?D ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D#' =+4 8?nCB!#ppt_x-#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*Du' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*Q%(D' =%(D' =%(D>' =A@BB BB0B%(D' =-o6Bdissolve*<3<*QD' =1:Bhidden*o3>+B#style.visibility<*Q%(D ' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*M%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*MD#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*MD' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*MD' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*MDu' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*+%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*R%(D' =%(D' =%(D>' =A@BB BB0B%(D' =-o6Bdissolve*<3<*RD' =1:Bhidden*o3>+B#style.visibility<*R%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*%(D#' =+4 8?nCB!#ppt_x+#ppt_w/2BCB#ppt_xB*Y3>Bppt_x<*D' =+4 8?\CB#ppt_yBCB#ppt_yB*Y3>Bppt_y<*D' =+4 8?RCBBCB#ppt_wB*Y3>Bppt_w<*D' =+4 8?\CB#ppt_hBCB#ppt_hB*Y3>Bppt_h<*D' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*=%(D' =%(DH' =%(D' =4@BBBB%(D' =1:Bvisible*o3>+B#style.visibility<*U%(D' =+4 8?\CB#ppt_xBCB#ppt_xB*Y3>Bppt_x<*UD#' =+4 8?nCB!#ppt_y-#ppt_h/2BCB#ppt_yB*Y3>Bppt_y<*UD' =+4 8?\CB#ppt_wBCB#ppt_wB*Y3>Bppt_w<*UD' =+4 8?RCBBCB#ppt_hB*Y3>Bppt_h<*U+P+0+0 ++0+0 ++0+Q0 ++0+Q0 ++0+R0 ++0+R0 +0-0WN0 )(GG((  x  c $r `} r x  c $r p r F ``  9  `  0``  0`  0`  0 `   0 P`   0P`   0`   0`  0`  0@`  0@p`  0p`  0`  0`  00`  00`F `      `  0`  `  0 ` P `  0P`  `  0`  `  0`  `  0`  `  0` @ `  0@` p `  0p`  `  0`  `   0`  ` ! 0` 0 ` " 00` ` ` # 0``  ` $ 0`  ` % 0`  f & 0"` ` F `   '  ` ( 0`  ` ) 0 ` P ` * 0P`  ` + 0`  ` , 0`  ` - 0`  ` . 0` @ ` / 0@` p ` 0 0p`  ` 1 0`  ` 2 0`  ` 3 0` 0 ` 4 00` ` ` 5 0``  ` 6 0`  ` 7 0`   8 00t  Z& & 2``   9 6pt?"6@`NNN?N!  ~v0___PPT106___PPT9hw160(2ai  B :  `D?"0@NNN?N   ; 6t?"6@`NNN?N  ~v0___PPT106___PPT9hw260(2ai  B <  `D?"0@NNN?ND D  = 6 t?"6@`NNN?N ~v0___PPT106___PPT9vwn60(2ai  B >  `D?"0@NNN?NYY ? 0 ty`MB 2`   @ 0tpx,locks: wait for resources protected by locks- 2-` -  A 0t p6condition variables: wait for conditions to come true7 27` 7 ZF p  B $  C 6!t?"6@`NNN?Np ~v0___PPT106___PPT9pR1>0(2e3m3   D 6(t?"6@`NNN?Np ~v0___PPT106___PPT9pR2>0(2e3m3   E 6L-t?"6@`NNN?Np ~v0___PPT106___PPT9~Rn>0(2e3m3   F 03t  ,$0^R can be empty  2f   G 06t ,$0Unifies different semantics of Condition Variables: Mesa style Hoare style Brinch-Hansen styleRead our paper for details!8 24b7`b&W  * H  0޽h ? 33. TIMING|20.8|3.3T___PPT104.P)+D' t=@B DS' =@BA?%,( < +O%,( < +DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*F%(DA' =%(D' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*G%(+p+0+F0 ++0+G0 +;00N0 p%(  r  S Lt `} t   NMt?"` x,Coq (Higher-Order Logic with Inductive Def.)--b -   NRt?@ @@ dx86 semantics (a subset)b  8 @ @@   @@@   NRt?@ @ V Sep. Logic  b     NZt? @@ cUtilities (e.g. Queues)b    N_t?p@ ,$D0aAIM Logic & Soundnessb  Q    `btvd @?" ` p,$D05Locks, Condition variablesTimer handler, yield/sleep66` 6    N4ht?p` @ ,$@0PSCAPb  2    `Tmtvd @?" Pp,$D0`switch, block, unblock`   z Pp  Pp,$D0t  6Ԕ"`PpN 0 0P P    ZB  s *DԔ0 P ZB  s *DԔ 0 P  0 rt`,$0T26,000 2d    0vt0,$ 0T12,000 2d    0\zt ,$ 0T26,000 2d    0dt ,$ 0S3,000 2d   ! 0āt4  ,$ 0S6,300 2d   " 0t4  ,$0S4,000 2d   # 0tT0N,$0oAround 82,000 lines of Coq code 2 f   $ 0@t 0u ,$0S3,300 2d  J % 0t"`~`k,$D02See http://flint.cs.yale.edu/publications/aim.html,3 2`0d&  '  H  0޽h ? 33&F TIMING*|26|5.7|11.8|8.8|11.93&___PPT10&.G+D#' t=@B D"' =@BA?%,( < +O%,( < +D' =%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D' =%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-o6Bdissolve*<3<* D8' =%(D' =%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-o6Bdissolve*<3<* D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<* %(D' =-o6Bdissolve*<3<* D' =%(D' =%(DG' =4@BBB B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-6B'blinds(horizontal)*<3<*D' =%(Dz' =%(D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*#%(D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%(D' =-o6Bdissolve*<3<*D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*!%(D' =-o6Bdissolve*<3<*!D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*"%(D' =-o6Bdissolve*<3<*"D@' =A@BB BB0B%(D' =1:Bvisible*o3>+B#style.visibility<*$%(D' =-o6Bdissolve*<3<*$D' =A@BBBB0B%(D' =1:Bvisible*o3>+B#style.visibility<*%%(++0+0 ++0+ 0 ++0+ 0 ++0+ 0 ++0+0 ++0+0 ++0+0 ++0+0 ++0+!0 ++0+"0 ++0+#0 ++0+$0 ++0+%0 +$0N0 <$(  <r < S Xt `} t r < S B ` t H < 0޽h ? 33___PPT10i.v2+D=' t=@B +%0N0 D(  Dr D S t@ `  t H D 0޽h ? 33___PPT10i.b3+D=' t=@B +.0 @>(  X  C     P  S īP  0  P@` H  0޽h ? 3380___PPT10.p:0 @J(  @^ @ S     x @ c $ x  0  x@` H @ 0޽h ? 3380___PPT10.%n:0 `J(  `^ ` S     r ` c ${  0  @` H ` 0޽h ? 3380___PPT10.%`L 0 h(  h^ h S     { h c $T{  0  {(Do not explain cli and sti in this slide))`@     H h 0޽h ? 3380___PPT10.50f 0 pv(  p^ p S     { p c ${  0  {l&Transfer is logical: no memory copying''` ' H p 0޽h ? 3380___PPT10.: 0 xJ(  x^ x S     { x c ${  0  {@` H x 0޽h ? 3380___PPT10.1pNd 0 t(  ^  S     {  c ${  0  {j$Explain memory models: add animation%%` % H  0޽h ? 3380___PPT10. :0 `J(  ^  S     {  c $|"{  0  {@` H  0޽h ? 3380___PPT10.% :0 J(  ^  S     {  c $({  0  {@` H  0޽h ? 3380___PPT10.50:0 J(  ^  S     {  c $.{  0  {@` H  0޽h ? 3380___PPT10.%а:0 J(  ^  S     {  c $\5{  0  {@` H  0޽h ? 3380___PPT10.%а:0 J(  ^  S     {  c $;{  0  {@` H  0޽h ? 3380___PPT10.%@:0  J(  ^  S     {  c $A{  0  {@` H  0޽h ? 3380___PPT10.%pU:0 J(  ^  S     {  c $G{  0  {@` H  0޽h ? 3380___PPT10./P=9:0 @J(  ^  S     {  c $N{  0  {@` H  0޽h ? 3380___PPT10.%.!0 @>(  @X @ C     { @ S Z{  0  {@` H @ 0޽h ? 3380___PPT10.J4."0  H>(  HX H C     { H S da{  0  {@` H H 0޽h ? 3380___PPT10..9:*0  J(  ^  S     {  c $g{  0  {@` H  0޽h ? 3380___PPT10./:+0 @J(  ^  S     {  c $\n{  0  {@` H  0޽h ? 3380___PPT10.:,0 `J(  ^  S     {  c $Dt{  0  {@` H  0޽h ? 3380___PPT10.%$.-0 >(  X  C     {  S z{  0  {@` H  0޽h ? 3380___PPT10.G:/0 J(  ^  S     {  c $,{  0  {@` H  0޽h ? 3380___PPT10.9AOx] \M $ADPj!\BE x_m^Azzբֳ?+**p YH#i~iUjU1t<ŢDP@P(H2z2l*s2& $U&$/;D`z3^1S76is sы6M@MAmm +:vZZڀvڂvUnA@A@A]@i@iLA=A{h_~zz:tCA@AA@"ڦt$(Ѡ 4 T hCGx8 =@c &NMJiN44]U77/{ N2?24h?roM>!mF5i{P.bp5@7M?ږnBoZ76m>e4aӧ|9yο]2dGs\yA.]rŠ_.] t9 /AWj*YZwh:٠@gHm1߃hQ;GzN0sz]È5}yi騮ըW91lj?FοhatL4$\T^],|_s^|z1#bceniJq3z GUu=k#ě~1dJ(t&URUJ}\W槗VCCߧйsО={ѪU}DS( S}Bմ&\j,ʔT4ܫq>G5 ʔ')=Yỹi(ы4Tcq(K%'KH P z7xp8/STm;bq6 M Gl6*[ZYF\e3y&c1Q0iQ `z!eJQqyQ%BP\5ʫ=t;\amj%Lٱ*ndn␢jV2*—V#.)-nS ,S(dnkOC:ndY i4DQ^M-uC10&ҐC˽QF$eIfidTbA'Ap4>*Q2˜z޻'!Bۼvi)1G5"GGϔmT 1Gi>2"<%I_yg\VH΂sl5NXŏ'Ơ$Ik>qM#6{Kb3F;{`b?G"zDwљ8CÝ,Q%&q!~c؃'6b%%""q=q h֐NzNlG'2bID,D0X fj3W~JWŜ\7c܌,$i z 8az3dQý A;aH*&%}7C?"G?$g5nڋm}&੉IQvӞ;yѣ 9,(g HƂ]$#Gr$$"r?FD/6,GO4d{I('/h0|x,%?*0'/M܏,Þdv$ل4&:SҞhE X@)D<">"D4>1C,#n}M\#+eKp%1(LW k;›I;X>1,#JbXB>%HlE$MSd&=9H wpȯ9KHg%g g<g,9#&gqt;9#$q)yLL攁3#pv8eD:g.13lj#>|D| " ${bcL尉Ӝ:)W97M|sqa%g3E)Sp4l`gzځF`S/sp#%g+*A8rt3]$|N,:al(uڿV%YΪ^bUW?O6?ϋW|6z6Re#+ (".vXJ-^:scoBSZQ+*}Um82?GޛC s #Gj*((gW#/zߦrJe+V "&&bʔ)بi&h R4c hqXX`y՗gFSrU~Ml<&+f7(:l˻ٳg_" _x1zy k8{6<[ϻuҥϗ -LBb :]]6Eva]th6Eva]th6Eva]th6]K. ׯٳ\lb0= hPHC`׮]Y@yl~1^-0 FRm lf_Z c(-Q20`(̩76}uad@D!fV48`aClF3Áz<8316oV%l^"-#l7ֿiL\`_F.:lFKبKPiFfI[OOEva]th6Eva]th6Eva]th6Evy0/̞=G߇D-2ϿƼ|gUYηE4l͆xWGM.&%))I}{-zݽ.TBz[[R5Wi4yfΪmlep c([GJ_ju'j0 @s ]졏SLTn˱yysml6~MMmugNi~U/6̫UP)fZ/v̫}}5'ŗc RڵkQޫ 6 hMԳ@sXib4w0i^mzFsa &0V_p`Bij~k =tO4/q[^30͘+;M _LfyaDW66[a]th6Eva]%ltȴ.v>F.:lF.:lF.:laü&&FM뫘xIZė4Ug @!'5񛚹!?Vٰd{`+>?f}uԎ13t[%LPw)ܗ_-\15֧1MfmÌq4-=IƠv*M2+Zh=@fFaL'oM`Foo&g xQ{[Pw)Pwfm1Wqf8A}`R:3x0~@s`Q * lޒ.:lF.:l.a{O.9F.:lF.:lF.:l\z?ywtBy.:lF.:lF.:lF.:lg޿gfFռEzPP:9zjBWKRR: x~g"tȁJ+<;;[}rhQn̟I]UؠxيyJ]55-1n<N12ol2;ZK^ `sALY/1JM_`Ӣ/X+Pp1Ub,O-Wlߎ: cRLׯkkjcj9l {7-YK5p1XfeNz'Ha2y 6:g9~hp~?VSL:sbEnjќՙ0/uV zEyzt4G'D32o]tsןbWŒ6PSSM^Yo?F}zaF^F)^F= _ 3:v0v\ߩ^:\poeѭõF.:lF ii2e'"|I DڳeJeJ,2a|1*S.S.)sZGbpk^Op RKf`V|BL3fiDH/5p7efgPv|r9߄JSRSGqVsҊeOXE$y]x}/`ܕefe;D Wg}CM}M}Ͳ}ͳ}p: ywI{á oV50dbɮAs7\Ws8}d]Ya6.h9 >'5t.< @. sP9bL/@KeAW~ tUSPh:У_n t+6;@ t7н߂z w@i1gZ:EY8v9=·EBqVz\Z+}R4d^2Ѽ1m\4yR!!!2;8z L. K3갎|]gs¹J#>&E|OZl)֗pCYn Pp<Ώ_{aZ闉ٙ--Cs"gT]-^>dqv~(| fӶM۾B~|v&~{R;wJ5EX㊥TҊ{K G"/BO9unjMӔIBl5l-ZfP̰hYeF!.G?1,uk~soNY;^TSV8ssscZxc'D&#e?]4>%ɟ_X֥:j,ćخ\t[f1ԏ6o~A9[rL,%-~hq|lJ:Ewe:Sw9\Oϋ}p77 -?J0ZoͿpz:晢'.O/ͭ.+w7R?{ vp9M)_Pw#u҄I_-oUC% J{աwngiaioϢSE.SṶIEۜӏ撣#se9u]O\~lU˥\5״|ŔAhS?pu9妋6vPLķMgqf[b١aF6 /;=%%oN/z2[KKόk/܇աO%.Âb!5P{Xev1ML"h؝!]s2ąîV(+"% .s܍KD0!T?{C޶Ɨ"qrM+;}aᑴ5?;jĕkP?m=gwD$?JnHRMZx4ް/|tl X6X*dOvH9NrHK#dxqY*AƟ 4|X.|7gaWG;#$A~)EA탁aTZn(DZ".q'DtGdqxk'OsG pInᶿ[kQR⻵+O$lK<-C$WIޏ;ߙkH}ȓXvK,Fg,c%eil<9rnuZ4p9k@.m+#Qcz25ZIm*MUQln[n7.J3˸'o\]޲%ZvtK:='-ZLkgKgWΡT_98Ӿs32u9D Q(Y4WVEEU"u%IeMbtPNfY$t g$X%I̗쐠\IF/k'./CbT(G!Y!h$ee Rn}wxaaIågnI1a ai6iiJElV`c+f5_ =eBlV4i,G2)Yr/s\@"WĹh 8f%$:$@~eqa__t^tCLztүG$*2j:^ycSAnZ@>4"ZN:StqAs"s&Yaz2% XPOlb|;Ed0 Jp?>UяYQنKQo5<()eJǎÉ2%I( / 떖) P*׊y}[عUJ!=\sp1q&&4FNU,3$ʔK*e@KͅuAJUn$q#I&f'R"b ID>Z7De渴BPDX^z&M!Q2Y΅S|.\dQiu-uuʂy (:}PfQDnhQr9x<Φ#ѼCH9CATX{#CEzSV!M b(i B:QNE p0U%1)(OEE dIIpЄº[UDՍ$Znèr{%Ȕ%׉lhUP]l;ʪC@oⴤ¸޼jЕ*cU`T}16 e)`6º(@E^{Z+/ϱoc_aO~&l7,l1JK+X ;pkSpl>07ơaQbtm(ɷKMɋQ\5>%nOfDQcE۶Zݹ™h`sQ 󗡘N1`#=6A`G6vɼv1#? ٬F^ߑ5ݚ`n&X,7⳧[ې{͟5 TdٺKOy5fi™E&`]]<<[=Ob$ "n7WA(: %TRl@]'uKà&GE:1@aT$oSD 5ƭ&ԸWžZ]PԶMxwV&|u⺚ɝ̝g%?PXYa?<2Vr]WFXe6KLp>XXb7%33mpWwGr~ &okCg/ל"KE&'&b7$sf'L>pwvWk?dž;~JƆ^$ Rvc|V7~[&,7uR8 h4/7n=~a&߅%H!~d,†Q8 ?s7MLP Ns;5eRrlڬoe&ٙ1;I_8^2iGR4ޣ:YaݖºuC=]z6[ފ&Nu,>i]pg;}VR|[7,S>n~f{q6\P*jsAߎ?>zڵK>7.v>Ӵ%> T$p׹vXǁ8yY*L%9 &F8P0&H-K(!q ^wJ>NJH7NvXGϭ߶ezIg XSHP&̥0W>۸ -pt.6r~(Iy .!B3h%yagꊈʬWEj:bS?"V#47ﭼSy\T,T!R+S^A6eKqvkt-SF5*mQaPy=AӅ8~ yJʊFjdǭ)BRbYg eJJ#bUVeKA^2s>Te-8` d2В@Kji %k%2:/sol NK~U#Tne*hpGaH ppM!e*qHG9F,n~=˝&6w&/z<%]"'!Bɝ%#0[ آE( !w.P1@ebT,! DJ/*HzdPkv, ݠ-B[>}EbC-Ρ&lQїU/#/|D_63r2&1ּ:^Z@Eb8'mMKWlB(b`)Hq2ؚN9_\ aF|"|Ĉ^d>dCC"dqmmgM1%!bhK7Ж-C[b)=DhKbTC[P mIP m`EѴfxĨ{BOLq+`-4m=L3L=z=yFy=<0֡6Uf*t?}C38F@uvŇ;NJj7.vxuTvͰ:3,d筁 tyNe۟Ek\+Vs:?eP$ݬx>K7ÈvA<ʎ3?KiA9$#X?_8);-a]ԗ2bD/K{xNxguer%MД{`)P'4%*8iը$y&р~[۾޼-s_1YyyhJ1?pAyOD 0JLJT(ZńŶomv=Q'fZxD9M$ia1늏,8/9"}s8~ohpƑܞfޯć6Xt۾zD=>}\7e8: T(!hD];R!5X=~g#J\r?@8iW0ܥ6e&5dohF yэ=4!u'|y$PU( NhKa^|T9[F w&NK^ґ{u*4ģrkAQX+!ăbo<orx@x몌TvQVţ*/dD,l Nn\\kYu^q4=C.oh@޻ECbSٍ<D =zhC6 =2\&=OJ9%Mz};eWN=&|_~3jrUr/UQEƨ & q±t^EAʔ:!cw(Hzaܤz Sm0)yݠeQ JSl!{@ھ{2%g7`VޘWR`ErWzOE Kpe+& sN-S|ϑx ⪞coLP0CfteJ)Ly"!MwV0}#%VCz"š)~-`@Gdӧx!7,?T6kB& (_u:ߊ5>ee&% qZKY5F5˶)ʔrQ5P(mS2)SVD!dmE\V 7jVgBTLh8C )SMVl>eoMK[a#ºZ}( M egkU+PEUTV`4cdЛ%J\{({a*ڃ&nPU1!6VH &"BTZ\quE%I&jPT_T ݞ-i_iQ5+!(@r[a}bͷXEK ̏I[6$"o2RJX"7V^[\ y9YYFXީ(2 [crp4~D&f^F䓼I(x,QJCa'_I%ĘenegMFiwR'Ƞ_;# l2"q985Ӫx A 窶 `|(#%]Nm´=!KyГH[ȝ>bgsa]^;ۯy !2m"dw"'Mz~(Ks7:u Zt/}%TxC}ȩ+ ҽفZzWuV( HSjLpqgY=deewOZ.pvF|e;=7Mhxsv9ncQZq+8 gX^7Mºu߇Lm|@";xw/<MxDܞQcD9gZ8f]s7X 2B&}rl7[*ga"sd#eE3۶ڝ|g'or Ȭva.+SHp3+rwS{>奬=r= OV㏰~/]PX7jI4;$G,^6C4-(_R/]U)[B!+ޑ&OI7iklKs*Y=>f1`&|g|gVE~''?Oh=bbaՑ S?K9~ε9iNf4{9\dʓ{#9GW}9C1E_1Xc':9dkx=Q2"wϤcS8ǃ!um+K>< [1x9W]nsxUCYYfytPBتG1V\aONN qHzK^c.ޅsE66P:OQ:) \od/'[~ }aId3EN_vJq!ۃV]|jkɹ`f3Q"ʏ̊=6na6)4J3,|-~F;c~I`Eֈ9 R.#a&6xל <]up+y*g\[j+V\~@5VqC &:z 2Q9C4O1c [`hrt i"~?NbP bA_;j< otvGp΄g٧1,-+$Fz3pt .%x_s]j x1MD4)-ơ%vY2~XE`jq#U](F uZ(#DP7i"cނO/'}(z߽V]:%}WP/ $Ap*"dC[gA7)6oWu93%P*[s|l ih\\UYĥ!lƚ1rV.nN:߸SH:3ٖ r۱%۳zs 2yT1"ZnNnI%dN="%l@{Prld (Y0P:.MzJL~rҗ&.9`$HTG&..*QmMGMLRj՞?}L&0U}~YBXX^L6 Iiq5meM2TY- )) 3){!Þ)a*, gef )cҙ'L- ).5 e=4))+RB W2 R>R~g,ڛi}&e;&e/\z&0\S4;Ȧ D0LT΀n/&FzK*aAiÈڝNP (܉#q-"%J+TY %oՍ5_RWDv=Qc7,1O&`p_hoR@M⯡b@~ 5|cHЛcBװ_'[F+J \srحLXgȆeo'{a\YAmxr^01*M!B/1pmĦ6EgW*k KkUÚėNeOrh/3 VYBg9L,S^DeʡUJ+}>=wJ9E=)t7eY}F&~̄K'XK~).eyEB|t oq c:ޯ͇=I-Yt+Sze뾂ߵLy7]Ŵ~']eOwk<[|~-a2s5#Ēy0!{8\Ih{8RcmkT,h3Wa?W a s7B yw`KUJ7PKMJ*/1n vI(Evl&0=#UhJ wv"e0~Y-Zsr*o./ERffYǡ8/jԉ)Ɩ2{T1אũT'ฐkN3Kۀ|3)xP9ViأI{*y%~4o & M8N5 z8c%W]tST{$-B;pf@ꁀm6 !Cmj}9*;h#ST!@'*OoMFeKt/?&j+1]H_XKcr|58@!'d.Η]nME2"G8w9 uüC|y7>PamJtnVT֋cx2xi]MmTkSʚWXK#'ND7=P6bW4@0?H5] ʖ@a-$Q0% )JAh"t9+^@ YtыlY|p3:7իW EZZWQի2eʔ+V翑*m*-,,fQ_vi&eܹ111...<k[f#GNSTTZ]`FnհA4hӦModl`HoV^hm `?3/@w/[Z؄R^wUю>НVp?s-\W-{T Z LN}>( EG%aFۅ Tz>fW.$[LkCoV`g=#K+HJjP 4?œnkv(ByyyΝ;SVZe+h*: 4wwԾ}?}/X**z\mǽ~O]a%19eʟ~>{ODj06Ri(ы4Tcq(K%'KH P zeNQ06b k(5ͫfVVVx㾑+WCLF^j`L@നh45y)EUEK Aq(m+,LC۫Z)Sv,ʢIbHQ5Op*—V#ิM2Hl ]w]]]]]]]]twH']]]]]]]]藗~IM τ~qHⵚ_RSXH~yOwC&ӱ_>yMzxq|S'Q#cY"Ėu_t_t_t_t_t_t_t_^ !NԌI_֬a*ϗlLKMs~kx䛊R2)MuRf fy_L0_A wQ]J'qB\ѩ9B_u~/ĿIIBOb67~Y# Z&7ZD>{b(C(P* Q#&JʰEMa_///Q&.:Ie_202_/7(Z_#܋A3^k{qh{ ^fN"Цp/TqS0LQq߁N=㽨"De"5k:)Etmܬ9r`^M^Ft|<]lHNVl68F Do0^0Ni 1P#X6>Ȋ /q#zLey.3ܕ}fE.LpvH6)˧>[~䰀;$HwIhHBl'Y#&fKUwbuH#O}'DutȖet̖;DO׬=A ީoUhd_?S ,&yl8L=*O;yqր3e}|kn* 9{JiS";&I|؋rxCbcWa,w Vg6/<+ \Xw/9UB'atIuFajuiߛmdҰuMQ[,LENb?QZ!Qm$b>t㪨-C-UԖY-пUQ[5~GD'lh?}u*j8:$-'U_nI6Y'˷8emazkִJeyY:qI%8zpVۓyW0g$wNKr6,%{TV.VnΈ[^Zh[oA.,2jҽ?fؓDURPd,yM ^6#-Z"+/gJ/F1%S͓/y?ܛ~~uQѽiSfUyIUB9ߟ9sΫaJ5]_OV׶|ZxdrQ.KݪT rW~ST9}=읃:-pJ*O{S+h|_作8[+M*ybs_ut̖'ÈڸXC/D"b={*Yf,uY'Y1`ܾ|yͬj^ {_gמ7v0fV?oKk~ƞ' v$78VLً])aiz3;95bgߏX-TtUjy/O_#V#BLX-7 W/;ձZ⟻jj 3ZA tZX-q-M32 g/?b )ijqnS| Lԕ1bLJX?et5X-{!X-g!e3YBJ3)'mq3QW@K<w>2ϤAʬw:V-~X-Mm׊K#V^`;%NjXmycbw:V"+jjA7[\?Hn}*VKZTU}F!7)<%Y4`US2@E!ߨ\kLy2&^BJj5JY +ee\@Gj1G~tyv[siB<!iVeA!]SxW@-ʐ@-N>m,4>;y܎Ӫ)sA*N[m.j{2[=2Zjmp^2 ^)9eZ @E9N^*ͿիWXXXyyی76իPGho7D6m]\\N>ͤӰap)NlJK\E,5D*%&z" ?&'h7!BD% QqU? %؎J Od;,tHA׉Xt`bL̔?쏉BhDUyQ5XMW?"D`{fdC?gq yB8Rs?1q8M8ML*ٔLS& T3=wiCBK8:`ȑ$GS$%pGv8 MH@g]bz B"K.xArYP$D@D=H6ڶ)_`-$eEQaq>vCOaax9jݺ7ٛl78hq2fr^2i/1esÞe(f9 Y ȠG!Vщe#1,"yLa%o֝Ŗ8λQ%T1j.hd au1aze!Yw,SQsD}Rf٣:vb*آ#*aXbpO)NShVa!hQ?ԉvEХzT^`@A #*GTeqy1;]P&5cW4aSٴFmF,믵>e[t[pCgO&fSo͚=4I7 kuLj' q=ۦ{l*pTH~-8n'?=wy\g;'gY߭6_Nx="Gf9KN`8W.:oW3Y?::#hț\ ro|T?~q_3x} \GLnnD@ ^\n*րB*6PZOjjVmjkFW[-(@lpf3DZ=e 3;fs^ɫM @G41(}b!t ϽIok'MߎW0 McJ 2@Ky3 cE酜0 P97^:>`t/LOaѨS /~9yg^Ma{ܡ|65{A,~'Ο:Fn r"p;" "7 Ƚ =-3o!ȅ"\8QȍFy_9Xz~FtNrE8\]?nS[tpDPggo "炜+rnAݐi(7]$dϿ˦]hԧ9O*slLBfnZh3嚳!q ļeKL_"`C9LːBs+0C/۟ Z<<^T: 뀌?7X1hR D!ôBLs?fk#8dmSz1~b@~&L ;~yZj3'9NOeclNY؝ewȷs1cנpMz;?@e&nvF/wMѳ9I(|ioᮦ~ }ZRwˉgeӦ$+G ǘ2qsd)q9k;})Vt)ALIIEuړ/n+}ie5J9gFZÜ.ˁ9;)ʔ_Y8vr蚇kq3Wq0H9sGWӖο i$f%g}mE~8˅}O4iIWTpTocr|k=.}zT&MOKa9IfzȸHp@a\ZRV8thdF\XC,Bc]X?4+| 1y:.iYb01?O8; @`,  bf!?Y4HELp>ó#?l3`oi?ǿI$7ahھ4b2 _#A.#ϰD8Zvdy }!GOF^Y@=jTXS88:1LO˔XCF"'J c `ͩ~80퐫QX>iԿsƽ 2(khP>؃~z%Jͽg3FɭTU~;Jt OGM&\traٴX~2^q|91r'gs0v :_Fib0sC|cH~ykzDnlra'ȄRq'@Ifwmw<=[{][i(o{|>Q}׶y>] o}Rv(T+XW60k_uc~k WMOЏC_4+K H+H^:J9z'Gjlo\Dk!iBDNz|:1cXBm>nC45n۸Ud!>赵ULn%8AXa5A)O<3&F?K~ოdt:~1 e2mFx7Nv᱁Ly 1ôߚ'ҷk43 if>#͌HShuL3ːifP9̐f3Ҕ@*g!͹H3%g[yi>6<70CßHST4G4Gr4&B<54C_xyO;NA<Ձg9 U2uDhAwՋw(Hb;whv])IbK_ hmmomtwG2?u )&z^d/Ͽö>e+ 6oz*{5Kd~~z d/7q5턎wxTiLX*G@?PY4+knd$@?U! Й!aA~ fjЮ}kSw͹EAfMmKd `mO|fߚ5-aؙؙM2K囻{Ѡ]5Zmm"Ԝ,cv|UScx]pX̪D?bjҬoO5)<%lԨ79Z(^۞>cq}?f;ּaqўyY#f-8v@{N"g}hη(,*aQ`-Y} 2rc=|pp/'5n5ԛNZEc$Gx[[ln5|pon&O؟< F1M`(2,zؠp\bdjrs_.ڐ3 cXcc"EVle'D-{nᖏE|epmtP2]1l[bSY8A<#s$9 cm*6MI%l]qg{) eLQXإ88R ĪT>w{%y= .c V챓ﱗY |u#Üzgs]^:u>Ԯb6hשׁi;Hz&|?q' s5666j9wW[]m͝yoa #+&WԴj[.>K4d)Aǎ7U <W]ՋE:y;YN;ϰoƵ=3%Qf+k6S 2r^ޠޫT_TVW3إ˹jFG1!MiNxgEA_K[Ք s*{p[Txԣ;vsm^6{4Y=XFKг={萛+geQcFfuׂmu3_ hX^y'ߒ\.)NiZ*S_ه?ށɫYM yx)򇃨[c{7?ą#ү:<=?fo2}taxJ2L_%$=ʄe,l|YZܲҲMeKeemerA <|vu# .H9°tYVFs>6 XAkɈ5>lLmcv0m*s,#iìG RR߭iۈ뚸Ak*ɃuM  f"ҨN&ЂRN6D$6/i`r^卮o`"+iY|ܨc˹^0<^H4Ȑ˧%]>_yS+&QBY4,AҌMRԐtolLoBl6Ats'[ `Pnf״-a$v9JCNoTf_#+v%W ٺf;o9B~ 20B>^Mcc }f=FaHluX@F]%h ^`I*T5''}F+;χ(zgQ4ʒ$%(gdL"Kə]<K*I\D5pzZrP۱ e}=1f3;9|m!a4[ ϰN2nAESm2@U~#D hN0J<N-9Oe.s?=9$R|'f G:,6;tXl?նjmM[.fPX5rx[r0hf@ʄgV0 mc$l 57$9lZ,-E1 K]nƷ{q'`RW9K1273$Sk0G[[ f)}w p=8A#XkTVf!DVT tC~ KsRudzI2tz:,O}v)+]Tp+3Q na>DbYL.3 {=d-TH]2Y[Jpav<[҇?ǦȤrg7lR˜v1+0*E$ΛS+yp^nϲ$L7! =P̟.4hwմ+^o쇁,[O7  +%'7sx4"<9M.\A`f/Le^_Q[VRLvi N'-Rt yu1^T}A[Zg{5" +$Oœ9W,i4'+͔WrzҌ*ܤCSdY)92SGx-e}fNikF67똬kuDQ=+Ogn\3i"Yͬmm* b4ѩYcńPWՊ)H(:E񚏁* "p1"9Q ͗KU`0`-h0Crf6#7vD*A"\n:6+nG1a@yh|[gGY u'Mwc5p*~֨wȄja*# "N+m3Uas oWΦ)GY ׬mVa԰YP]$8IX?[JDJ:=}Gjh? S5|D޹{ YIrK6 bi0AGB1vaw-]θ.նgcOU/֒AKN^t"EKerG{fngQ79XJ*ftc0|V X}nGf~jNrn6 P}Q.%Hϋn.Y~ ɣO+\Op4Ho>LicQN2e™9]p,if1IS7o=-5mɞ8L2(?iOm|6x,g0g|20V)i[Rs"j-5Uܷe@6gc(2,eq5W B}[E6KqK:׮7w%MB}E Aq~0RKa⇴!y6^fz+l5/5l(_nL<{v{&֠u("pk$"9NzN\0'FEpne1\KW>|I̋LlHރGw4+uXL-jXc`tstP7Ε\mk9+5X̹R躦m:h Mp"+T/&:{ѕc7+iS1 Aq٧^|gP]#vKM']* a"^睤<8[ J,,)S1ONioDp˄^H0˦'f܍[]%\ Gw uGF:apq9PXюR~RP:5ud++ 3K9RUlybU]\D߇H;ʥjPUxՄyU`YU_V]T 7ק>#\z,S}T论`LD)T>UB>* T 4Kk{چ3kdPߊ)-k“u„h׸$~?#pԞG\ Δ _͂O'NP`)-@N&3I$I]&M_,%яRR+y2˶*_#K}qǻi"HmA9!ǢGa%oDA`$F b@5'jFE6.2(Y fH9pP` Fy@,l4H3Q^FُcOӨ_=2(BM2;pQ.q֣cc2{M#sQ#Pk\[dX^}}mmKUŮfa@XԨ!(j {yyu{?,] dzMdؤAk{YOvoxxtYoK7v_0D6^ޣғSOK NI3R}A5fT,IF }4)ŭ0 2>z<<`ayz\ YPy9.N2'_xd1d9_BXWAǡ7s`no~pr"[SHOi%%(PϮaMsH6ӡ)c쩐ӽHO @OdH#^1Q(PGʌ(\AǼ,=S@{HOqFa8}O'JDG'`[bbKkgecE][~}mM !0lC' T`@Vˁ͈`-ݘ(:uC׬ZPI (3hZ t`dA.@"~5+xw|jv{/{!wPC+V?߆xrW#]}<P)Iy?0u5i!~_a#m>3 שj"HDUwGߍky3IU㏔Eߨ=מzY N7^ӳH== A?t;}3}E.?%y>2?4d:;5)æ5 n@7tA n@7{ j@8`Ɓn0@7 t}ݎ`s; y$E-t &zFAƌ b@v;|$GD<f;|"t7^;uC_!#rwx3 `{܂{Jhm.ԉz0JS A;F,h[6e<H.'j[4k)FB/Ti\S,b!qIq8eq9>R涱V~¸N5Ak$!z)r P xe D͆VIP۲ח^ii _@#+=fCWvJE?siG  .gib@hCH)!HUt=!* !P7ӟR7ghNAeV[>$-wa ?Š1+y!A> BIS- 7JuW}o8Nu!LNޢq>er'>pޮd^_v*1SOqvA6hk5&.Y&Ej0cK_nS-j]<~lUMx#^\?+iSWH?%͗sufcg<5> Ysߘ Mx[5m#&8xe4U o4h-g0#m?w3;2S@@#LG`.ˆY 6F,-H 0̏9cQ M}bbp 䍌sYvj3r=`DG=8u;a}lrwzN Yv~"l{twHO[is-d כ `1~JrPm`wЭ}# H0FšhF)+))@-*!8rصA%fK+~{)x.7(Bɸ_8xك$b `Bi S(TGEճ4F0Ow5&(lրQ)A_aT{U?56|UR\^ܮ<<, ([U=w}vW` 0^;*^oqiNMWܨ[z eE@%[Ds":CDi(aCxbuxS5xD Ka)Lz%Kpwn#n^=/Z LE@X$2Ty-锂?H >A|\N om,'U4WWcqqD>(gSR(:Ź(tFs(qnSP ()uyR8R׽ J68(URCUOF)\G%lGQo&Q wpQ wu7fc[5'_v v*Mƴ1Va^oÕ*Mn?UNAc<6l;wCT~֤yc !+ uUrޠv`~/^;|x+2xchB٥Cu\ V;!Y;ɕ{G*H,C3F*< P{4 7tac'QfMV$}yhpH/q|yuutO \A  {o}r.a`O5f`׃Xgw9rA X>pS iX*nҟm8eRRF0aVlǒS/TK墇>o3DׇZT61Rj*C7={ e8~?0Iبqq~tl q4i:&z5$8.m Ze]_/zo?W]\@ݽK_26^-ǚ,,CCt3g_˄>^ďz|u4O+ c֟!ו/CEh6-(Ťfgdg*@x>M0M!OBRzrCo1+HvofhG|FDZ3RgPo;%w |Za!]cwHF3q^̐$C(K`942ٓ͂#?no/}Ҹjct8ZfApnp;J9!F}poi?X  aO|Wcݡ|>wv}gv}g?d4Nx] \G@pgD@GP@mկZn 9<*6XEUOh=+Rjj>Z[PPl 6 ElZ=ͼ=k6e@ 
@-P](E+ٔ}o9<0Ǩ:Zw`DQ0e$\{=HZ\3.7b0Ije_~AmNBus{պX{ YP >z"ih,%Qdj JA| Z@]A )ZJՠe)^Aƫ(Gx5a>/RRZP|j7ESSx2?X.(H#QNՃEy])BFXŽL0vfAB@ L &h5(4IeOQ9՗|V{d;*> ;RHJ%{QH/j9!k<[K[D"> wb,{<_r#/NٓA ?B4C2JߐmZ\D摳ȋ$4C'# }Ⱦd6N }5䑻jk&'Ab/G'Klr9%AiҟHzydt"$IAF51)'C_ 7žXgkP?{z EWN'/7 r) |s7uޙAUj@QTNM/z{/hpx#'H@cu1%5i,**ڰaCTTG\\J+K.UթO[\n=&N{;waQfJOO[~<4رc/^|4~ TV^>RW^SP3fO\xX@#-ZT?LOX|,^1`z1`z1`z1`z1`z1`zyX~~~&yj V^2YYYR)sYfV![hl%cM՝mhnm<:`ŋ#!BZ`@X-ddd_{M`  ]aNj]濌jm<]ˏ %{}+)P^ ,+ wJ|upFcg#/^ Xŀ^ Xŀ^ Xc脝^7` ]vx`QM~Xǯ 4Vk,^>XahkG^Ћ Ћ "W^E1`z1`z1`gE^^8Yf>|ĉٟ6l?lPtO'>&ڳCgɇџpڛMakfX!|}}AWw# `'}<ԣ1ytPm`:pS 333O AAkt_#nX@r$=qlzC,={*j]Ǐ 89`cHc}65,@fnb} ]}|~ה̺SQl3""_x7ǀ )G?>K `GZ;NI>? ,_=M(2K3z V#`ב_+lKB! My0FauuSU'Dvh|qߊE}a9 `&:,Mw,Ћ |, qQb* Ћ Ћ Ћ Ћ Ћ +_~`/SyQVV{e}t})d,y<{9Xroy-vX4rF^naW/7u]d>_uqX`l8lcWҠXEkm/^ Xŀ^ Xŀ^ XcaCbbB/,bB/,bB/,T,P mi//B}g?[\kP];ޫW/6> 7x$> ыzw VFF4Uw;MxYYYlݎ+t8>&.-ꤑ/o do*vicQ86|B/ʾ,z=,l7a[!V58>{l:4,w`J}َ6鯰`{S#Xٗj= nd+ VZ{T2l1ٛGnzݐu҄M݇mwNı[ݱп8,.*6a_0\m6\HX48^4Nj-)Bƨ9Qʹ0L$sv.\F9֜{G[.'gP=HޣƣHjK-@I*4ڂR{,{4:PWBJR5heWP*^Mg h˨/Vf<ڍgQGTL$<#)#=JDRAE zQDWʟQADG*&9D+j)aE'̩uP'Sw„ Z#M)kR@ٓf;iN%(_َ!Ȏ,RF-"Rk^6ҋGrZ-#m#O֒?y:$IDc7H$BDl6.^\^ Ν5s<E@aH2TbQQ׀ℼ~Q&) zNK  lm%DӦbķ*%/m+]qqEJyAyY~u'|,FQeo@3yޖDcDc܊h%fP3-,,:0Ba牰.!0d>cul} ?.(DsaJdyn)"DTh afI2J2N]c)٤YO7ߧ'Vj(RdTH[ܷOZϢɷK4KeWoj/|/)ה4d?_u&.҃Chpr%/يaT ΚId3^g1Mn9ҩM}GǸm扚%[$[&[5ߜl%H&[%[J2O6[T䏏 E@D o"٬32; C^oO\fޢ @ o o o -2; cOQ2NW䧞Gxgaf6Fm~n }R"rP[q=(9$fVkk6RDp/hc-v"8.5&OiŁKԽeY)#4泧/k) yW16|˙z˙@ٺ7~EݧɄ!*kqtQ*l+L KbV)2 8O=0r߇gl݇-[ub SV|vm품Tt8=!uFMRJʦ - E 1_o*/[->/V-T[ZK>_<Ǽ%'jguUdfh+[D%sv-o][TPu?5\e|xmI_ɿshDnv+7n.Z+Z/ZܬhI@' o'j~J2Pج3vouM*ԽN:/.ըNn11N"wu1TP܂*0HGznQ?ĴLf'C]ee#dcdSd2tD1SX*O1[ 40w@3cÖ=6c9PJ%{ȃF[gQ= zENhV POP@b}h$ r BÂ>:h{С3A0*l)">/vSX*' IyUL3v^ݑ!\.ɓh|P~'iM||Nh8b$h'J{ s#CGS"sEX2,AQ"W1Ks:OKґ[W积NߞI/LJg鑉33g\n _.L&WtB\L= h"(GKa*WȲQ+6ͯfxrTQ%.tjO 3?-Zp_=+KM_oWhY+""D&0ȼ&ww`rZA?4* ^L#\Ď 嚣fHIDtY\X$BG%~UR"IC%a!c%t$>"$LE(b"hgIBRX$NGM%ʤĸD3pQlhAU₼.:nq"\ս%ՖCe7R/=J8slzyyJ;;D,a>s7>70fEAUOI@ϢJTqNq(n\1a<1Ik(3ZHxb|ٜqD+(XS3cLq`W̵"$DDsNrWs8;C[6mٝvyPbV<XEQl&TDDztT!(qsqq hI?e|2>NV,xމ%a #;5Q@atBPâX;n]]l@5ff#펫Q] Y Zy.x4t]N```63jxCo=mKnC@Qi":(\NbG_LLmּ}]nWAۻwIxxЌ{,Mhvxh8IhGp:x\(~qBpxO8ݕsB85sO3a(:}:`تX *S!Ef-eZD.`qkK]%CeNG}ԄSp57v[] /@on渶quOxŲ#b@K2,)õڙpkc27$!:̙u>=6R{;9!Cb=N|yD2zlD|v^~۫9{WpIPOEUAc{ԫO,o  j43}~4 fQ[6X0]Ei49LL}\'(~YE[̦(%"w^aMu6([1铐;V6^gٕ{Ed)d>^9jJ4x)ڇfh2 c=QbtI)+Q]qFN%Ec1J5(/?D9 X<bq;`%&!CC1PnOC,1-wL#uD"p%{̀^xɭ:^B+kyɔQ,/(V%]ζTK5/lT+j-Ci:Lr )kT,H RkY b`)h6$灥tF )%osF}F0<1!!B#$jTl4]e(2 :QTe,- .*IG)'T-O-61e>Ȝ%0Z0e#K`%MzHQ(R4/bXLJ˕}C7njY  җ-h%}h 2/"6'Ri'@h8T}DDYg˻ MD}v䡎@[oiy 2x^i`=]k[YMfyKt]{!h-11$Zޒby - A4[bmh[59[ׂz㾹O|h/[{oCqK4}p<>}5ih姾L[9[pխjcǃUmϹsurYpoݐјw ysb|ZK(/e;+ðZۀ(3X{hz8_1zᒕS׫ G{ȮG-,/Bw$m9eRA,@-9m @Aq|T,qrM8\Y!͟d i ֌Bn!F^I'`)P3cT5 VJ𩈼Ł7.a.Z^̻^y}bƽ<p Z.ӭTA!YR%"ԢD3_'"&VK#{b)=<ݒ9|J %l-a1p )ܷ޺O<[b ܵLDP(`6NVK4%8XYޠ8_i?N,\q(ьgˉ0U?N{%hf>"8!s86E/ЪeD1"MRcl,8ض']C~lYPu6SӇ E oiS._/%LS)h4ƈQQ N]If'C0*Ѭ~E\+9}gv" ܏"-| ʲr5K)j/q"y$h9 C<{$9Tܼ8 ]a8Z%],5K%إ"[nmL=5%w*rxd]LxMeiܣʶy͈ܶ\R8_* JyYTW(;|SsYD./[2TTN/V9bSr\߈Yv`ą 6%fh08kg#P&6&6&lLC#Pp̀{F,sqs2v]jf "|YWgSd$@Z3|Wʷ l2ȗ5ɖL&':_r&hdùV^X|l>x7뀟$_wefPevE5B{/+ζ#gؠ;~ {lw;Lls~sZ[,i[y4B`MӶs~dk'注x~I޹o n:yNX6.+Η͸LwN6gYAU-JnZ/KΖ>m2QgK/>Qݿ mrK(pjlQ-39n(t~ Ev;0睅:KoӉ E#<#+EUdx{ϑT)v@ELI^n^kpp[D9EwD@׍E/|wO%fW]? ?hDИ)AAm0ʌqjl)TCJ\RVT42VT9ůM2S۩GƪPg?Uy2I`9,,n1%{~ljJubER ՅG/|0cGkGNC.<'reL4 x sW.ᨑ@`#xS=X'{D9Z^Ӯd.#_?3g4WHHWbWJ1Y]?+ⲷ쨺3?ALN~0S?kdcY׎vGYqɺu0rj呹ܩ_%wWB[,wT3r'Jf좼αAqʡtȩ Q쮻fd<Q+T_—] )=*Pʱ̱-F+4qc_̸wyR5MKڴ_.r(t²f/_o`eeBr1S *"v85!q4.cJcǟJs~|va.O2!fv,nɝnz:4_\0 g.:4!cy?qǏ'Fܨ!-N|F/ /SmZݬ?ǍG)-E)_/4Ŗ)f[,Qi;Zo$>2MDmyv4?D׳kCajb WhFx#xl&?噫tJI|eI5 ^NԱZXOjqwezLB9wGFPfhUQw3R{ao%lJ:2 'U jΖ (': }H䁔)peѥ0ZP\aن!4b&|v!Pa'B{2?MY˯0[.D ]$etrA &<3 Nx7%b#9enl\/g֍?H#&dL'EGhRin zHH#$>0/2IfafL!9]y%%}WʢZ'.hT^ٞc)uG8ޗmf`Z̆1aY0ӰbT8F#%Zig;C`pDTZ%5o7VI j*kjn1sQ=*ki˺2Ocvy Dx&+FWM<@-Z a7Yǐ1WVxh翞\ajj\Wv!.B3$390u^>Ⴛ5Wta&W8v*\3sw]%\spƝۖEV%4z̿fpw)fiN;%#%Sh=RBhc,F}Z{oF0 ̰B>.YXn -Z%#h%u{o ' [o5Ĭ7R\PhmޱD30Z8c:3;",݊j)k!kz`mǧ`Zz!f2}X$gf ;vB6kWU.A_۹۴s|0W9&, uj)y1d=K/ח\s't5#Wry H'ysėX"Dxa^Gq׎'" xFM]\c GlOR8܁;;{:ߦ^:5HʿlgP;oA*/@$*yD=x#賬uϮ~gW{(琌7mr',$y,"9음_. ^`"G'HbK! ilA/#%w?*^IOZcVVKcw5Df]bI[mX1?ڀڂځeك2}#((LL۵2Pf_7Į꺃vE2Twoe&]o>̊Gmk*L|Ι@g :t>ii*4OA2~.] 2UAA׀2<@A7nKmA_ kݠ{@~t?ooZ!à߁4Z;_60@ 4 %XƢD4i^;j1j>jcFg< g>XP>S.)"v,bj̔&=u-G{4u7ӣuҔYƢ8w=i4ε5}?K7X.QF|6? A A A A A A A A A A A AuAވjdddddddHCALA*d)vdb?R21m6P)R>6кh}mR,lddddddd @VKARf @1KK-m^KpdHgW_NMW2!zY URܧ.Ph)GzRvۺ? '`Ӯ.P$OtO>@=P? hE>zJ|j @f:+Bj|%pA)!QiqxE"iy`fP[3쇧ZG(&kgJY'^h9pNMY~sY[loBroBӮJpnPW .Q2gU{WJka=oŃٿX|/a 6zP:S9.&zt/ch^[J}&g~YA[*%_vhtZ=hjj v?%defGlo}qуZp(bp.n8mnnP=ʐdǓ t^yw$NJzYf)8؄/4;S|Y9=;wlS1Hqع_ʲ~?+|l٦wg0lzylAfv2FYŨ9JQr2H9N9MIm*R,UbJBYa:Vfĩ?RS!mܠgG S"T8q^@O'~ݻ+5esÅt2+3%:[(K |gpwoNCkl_ Oj!},\zqKh`z[=#mZ\rn)7dnܭ8@g ]X?hD`q?\n#sF]]{8`냃-D/N>uc6ȯY-ק,u0䑩?\ޗȕFe(nnB:B9F+gܵ_;<_d(-TUUO+]+L=gtl*U&$V]O1Pꗺ+g^jk~x6)uVyyu3+hzgUq6lܳCrs*.VP?~w}΂=7{?.1kD|IZ!I4/)ϩϿ(8$w+?,61g#)U ENZuYNn/;K6(Ɵ|m(U48jƷƑq.,B6 B5msnMsVaj篹M<;;?D2TpF5f!w\_Zۭ^*Ne=P{:G}BȨ!.D}zBg?Bhc B_B%Br!CJC!CՆBBWcW!*!͇QmC)P!gH~(Lz(HHPJb[6Џ>tHYPB;!eCe]s 񵇂݄x(~ {L8=B=6rzC)OBӄ NBWmB{CV:!lW:~as!SCo!D՟By1JbZ~3YWM ~/,bM*Ł;a Oh~ӆoH*4lu/["D 8E "C@._AuX)~O1QAfK"wZLAR|6еGBmoK4WIqS¨Z\1 lijYK 6S2Q%gT1l!Fs7`&F#dxzԟ=~ve…K6r X )z,Rˌ#k^-eǢs~~C@$TtVlLm>ȷ4BM$ HB(M@h,]*뺌`ꎘgKM?{c~ m'8vIo(},ܹVU*V\\\C, ?J?'yj,U'Nѣ˅jVZZʦ',)0`j֬Y999O[RQQцDhϧ=&a ݽ{?/P4Y3yBw{e(<#=K,W%CݡbJi< yXP`}1%u]~`R%@@ɐ(@uww>V("[ݚ$, C>vŪw.S Scż-ːL:M `GTFvyV`XT1$È3 ((7+-N2x} XSGI!` ĭ T h@@P0@Ԣ *EvqCTlmKZuk5 h$A/}=/s[ck7Ѐ6xc$I}r@~@ttUYu΀ NP*az=0 cJ@ ѱqބe=OI5 #L}y4'DD?a,j4;WTeNs1s>G#nMtCמ4aMÄ9R9+nҀ5ctK2:9Oߚ5e|5pMz7ٵ>5Ok鋃][7\|Hh¾DA ңaݥ@TҥšHgeg%v6Pnk힖U+U*'Z9_[8v_=50C@E.ɨYiJQ0PB`t4k74k$4.&&?Z&$t,,p hIoms;_L(2V?rX=3hOC?Nc ЫBQԸ~~Rs|W*)i&Oҹ{G0M%ȩnX5o_H c(~]cU$e?wJ˩ muȖj Pv?Rh)([‹GcwYkZf%_PY2eLca{2Ӑ5 tME 螒h<y)&9=؎fkc&{)0oLR']R`mJ'([߇f קOKzN?u#RL7K}ͭ׌eEK? iA0F9F7n.togcdx|Rr?=:>zzYmzȶCX81y}%qN]SgPKxi$ Jv>VևcZXYcAC0;k~h-mJ`i&Sq|@-U95Ӑo%4P!=#kb4[3FGYkevwɪZ8b 7 3&=$˽Ą"K[н.XI<.C9 c׼3DzڙK1k ~Ң4񳑟aKc"1oU XZt_Skc!GXsm=SD)8ߚ'>IAybco͓Xj Ri+i|4E@4ZҌ4>W9/Ҍ+i=W9KJ^9s]Tx$Ի1oATxݵ3rf)Xd3Vt4NY)p°;D7!_΢m{z\`+.'„GVʣ ºn4HTWx2Aa_9nObI8FgM([eIߚ ukk>;߰]MgK<&#*?|D}%QR\gBt( Ŭ(8Vͽbh:ìDHuTni'04tC6ڣ-T=pOIm4\PE~fFPVht;r$n"3g~V LOƍUwwѯ?Ug |a5Q-ۍ}}c[m W =}SBZ81 |"|l'%M:SrD(h/сcfY) YRY+QW@:TLD'Yժ&c8Jx1f }( Gd&JSf#նf@ o>+i"6?6E͓`F@;UKQ߼WRgUSBIgj 뛋Q&cM[l4f4ֵtbu$}\{p24?:Cg١3غt`Vs׶"!_@-$ lO%SCgFiA4G^]"G:ݺD>g1™'8 h<>=%:1mm'1syv^˜ƕlBz-vI2-dϾ١ٱȹێ"gv3ș[S/nο$<?̓n"6Fs{Q6l8mǘY|䘤9(wcocT"c((Q+]6FpJN4=eg71pI{N PJ՝ݚp|(܃4(޹":ޙ|I1Q-:/J2,uYΣݖzؤ0&Y,uRCWO2H㯔,z9'/6Ɵ>Ɵ1xӲ_֠, QabʡN8X\«@n' ZY{ML(3GeSFWC@b0ީJڳ].čnnx7MSSoWPQk"<"Yn3W<]N sGڵU2Վz{Gg7|F?WЋڅ 7WԶWrz ${ʬO$G%C:ېt;$g;^|掺vu+Yu+V:$pfm -9њ4[.ݿ] 7߉OJiZ;IY4*z`u+[S݉9O:xYm)EkvT7tӅ>B/֯Wo<|>B>Ga|6(!7[vo/ \=gs"D..Nq^ګdP-hʶZ{ߵKlz0.psPw֫Ogn=7rsψzY{Sm0Όv nvo,ֽ8 v~Nxr}A#4ѸF}9xwouhBEPiR\ (\!wJ?VҗɈxxɴWI1<r9rpa$!5 vg%͹c?do>/n rzH N{]Lk%{93Fy4uߚTkɚրaR37+/2|Y n|uHr=h ( 6cU\qN*ZE0\Àn%4U#o}\~6L-S' Dˊ=HqB^{I:IN6M@\4Y f+S=tPe6F$R촏c٣'D7Oo<@mo<਒`!.$Ć@Eo0 ٷ7XkL'\.'? I!W##œsjbpLlc$XR@0:1v=pmB!t{VWNgŻB1kv)ș6$5%$okD5=i*%{U%+[*PW.ee"y{%{+s68žKABP^9BpS1%!5eBqx8QoL٠r 2jGr'ߓ*a S$+xoWP({fҐr6ZRWUgO4^-%dUM2#C&qU>TTd7:N=>Я)}&{ogfg*Ŕ>FLE`LN7zZ~I-"_U/e0پW*OTMq!rE :ϰ2Kx\8Qޖ";Y^}$qmN:NmZ$^̑X%ٷ]l?:פ6ОRNeNbOc׵̯me-^jhR,#^j[ў4qChRq'eD]tP59#YL<9Lc=t/54\E2ٷ҄}! rKAd9A^Lv{6=]9:O&"<}(GI*&!Ll@0K4-szuH~HRQ09̜v7@l12BZ|`pSa>]8$t.03eDbu-JG^q$$v]5-۹ A>: 2P2 d0m*s{Lr)s+;C@#,b5>61=heKa9&lp<wiDv =ŊOe%ng}mÒXi~pZrIzG銞SU4ƭߔ~F'zxw0+1lok^\IGRC#pJ Mk#$E^`3?jz>g&䈒3TQaf9yhZ)MKA)0GV<۸=y7 l}gj4΍}KJWyviy95K d*Ѧ)rEe*o+.d(~+?N^~r4{3)Q,`5׶W]9Q]7V)3ϳr"h)"F۸["{UԵ,Mڕe*#jt׼Ó1A#>|Pfʝ_:eʡ*LzC;XNl5׼~:/.zD}2Zf.ߜ $;/d2/s?$%3+lI)ljr~iyTE4e%:R`CjĿJ{J?fԶh/KZZL4eGy1d೙,qKvcaDʀR%??IWb3`O-9ۉD&[ޅxHgpʸ9_gշ4mJfW/y# mԶB#—*pFd¸Aqb< /䤈JNgU!EEEF^I'Sɬău>:"ʈ:3БpRg(J'Qqu;Ro63욝+lƷp{TJKbA\TxTh/g@Ztv߻GPTfjkśsM^OMC7u-t.d$HŶ#!x5_tǚ3¡ V!5?H>p䢑#orq֌N9aD',$wm>.|{k<2Hv{nt QMZBtC $M kZ/&#HEE33M0%<%\ZgUaֽwL%9aK/TLmE9wWd`gT(}Tvt6ĕR`# /W{ `Zsπ7pĮY,_3aթFro2Ël2gz&[~}EmPz$tARHc {();}xyc")SߤcTN&C{(5A1%%h I;|{MG~8ZQۺa|=<P-qy3u^\"kc %6Ub+q:MOSy~F=^v#>nbWfB†%5L[JA>waťQtzdC]279>~/}z+Dڦl0gwU/+j+Wsf໗V64 Yτ)7\?WR]E˫1 n4fe9xc]Kc7\NqR!mlO浟ߴУsV|]ܪX?fD[K^Q"=;{k?]7|"&<>DCo3(&qkA:OȊ ϸ1YAC&mrojf7mOU^o롟z&I,eޯ詣A&La1 >>&hhBּN'Z Ngk5 M"tHW!ZzA;j-?-W‡xq~f(C(jd fee^T2zXPgBZi|b7=3D+v7c:hX sqJ9%[7 ܳ_ 6f v7 q> RgW.ۀΰ5*h Xj3 Lg6;p#eny"5׻瓙 7ZM+{AŜa{W徫ِ 7* a+Uʓu]p5b&A`3lRI`ZP4A2'L?:0wEkC BuD1,1 {;9qg󻥟?:5S^͸R3ؾ}S0gÌ~fх{f~O3x ǍYm.|z~~~#RwLxz-|8D1dO$Xg !?<c|EGro?g?W{,>Ј§F#ۚ.H t@@ ] .H #9 Ă ƃ.0H tA =s}a]'0G/a:T$UX rAjlʚ0Q,3.Ox#L|NY0AO ˲}a SA=f-Fr!$K /v Pco0d u3Q|Z7&Lj_t0d[ nPY2% H`h0!=@ۏ&;6CRfeC5R6їB\!!m~hGUt{O`OqrC.1MƊBi}Rƫ%[@(fs17`9ǾUюB@(QfB/ BB.b(ܞl9˹ h5G] |B{)oI0x!+V˸e\5#( In VsGQ fۑٞ*Õuv˹U; Dd#-@K/:Tu-'pzEuw6H.Y,y%0X(זP@ZJ/ vKXfN/&RE:+{Q K( 7{끚^zpH ESRjl )͔)K!ְv='X)Sh dr[e%v(mŀNU *53w54͚^J|D)a;R+B}ςXPY2=،XYm]*+SJ<ʑsdj{_ve-¸ū\S %m7#ø\Ր8 #U T1./Dٌ6Š#6eEJ~e-q5W鱅6 K+F$~dT1Tnj:DM=W^q}q6YA'uyuT/1jUzR/SD9d.ݩlen!!ɲ_YwBs(nu T۴iH KTL<ZFa-w W!U Զ)Gq撦AӦqVW6$VopWS0;ǝO10O1gh?Is2ؙF` ;zhߌ8|}C.nמԂ$pu>Sz9 q^_ >kE >_n/ȳlhQ*ˑȤ %/L=_(_S镾pǟ}|^0T(S0TuGGJ:TQ<`*S&SuNrqftFy=:Tn #g{'ɰӾpn\_tD:B`* sn'0I ĩFV2N%/7TNu{km;ov+|pańK2 o0A&A/\33UB}a`e{1x/| X?S VL}A}h%opnx.W }*竗 WNo_ȡ*cGV9ƙԸBTrO `adAjWA 7rXc?D3g`=V0L<,ҰeG9hbq\r^>Gw8漙1-ATlUn Ke /?ё Q1 Q10T i5at4)>frD_ipԜ|-^VjJ+28;׸ ,w˱C?REa}"~o_f,,} :pq8nfȳZ UT4py{{=ޜpnl&zI>B4d $+"d0$IcA{dD(MhTQ2r׈bHiެ"K~s|dB#1 )@΀ؖZ]Bmm1x::ހ.@7@wdm_Di{$`@ dB!aO##0@8 0  DwE 0` (F&&&w4t Lg9 wi=޻u&(2Sލ1JsS}Yﶽp7忑KS(C.?Qfra{`.` ``1` `)`  @ X {|8{aQ6(8$4 ,?4 Kˀ_WW~'@ 0^ـ-m]@.  UxP(J )๱}]4GcʿW`([8Ը"zZ#WctgY4U[pd͐|>Y=F<et-h d[3[[af[QǼ5u h"7o^.äܿi^QNřp&?,Ѝ+zE,g4޸3WW窵y߫?p +>=37'Ib|`p88 hhh pbTa/8)XXS]dQnldv2;*n7|8{yO0* `1fǭ 2O~d@}u0G#͉ph[6[]VGWX&c$aflnFL\DQSE G0,CƖ!O^ƭySϽ~(o0L^C ܛ{%Έߤ|4U_㘻]6^^(h (ߨYoP&G'DDC wIQbeuyK1j "Լ^!: ɢz3K+ГHQ2Н;wHO?oVV^턒hrhԯ_?IzzF!ӡ'OC:WDl4)N)j|=Y Wy=)6c;o>yXWPSj}"%A ~w# H~4M40O x"&EIEd)4㙱hqXw]Ӓ?l(Ms9C,;$X`-H'77z|Y7[|=4u&/_4TbclO~1Xs1 h ӾB|dg:dNItn:[XO[ǚlk{i0~i05xe̐!]4D^6Db2ܢ/H y+pbMb_¢/5_k,bp=i{.o.o5`}Qv=:3hWՉ!q/^Xdg#;|F m-{-Nz^S߂}wPt›QWrJrM'JZHAYC,B.|Wf}5zeBhbgS_(*v)PaW-Fئ/_fr'y3fD`uj}jhkBc5QqIeSwΒPuCILu3vYt ra;!I2 Ʒ]y8Hm 139qivÚz~tӭB/l霫㾧 j[MN_;%g%us"uSNĈ0/st,Qx~GkpL~ClnNiB9-C Pukcm~*֋b8q֝2/2X BlK'ˆh֝ݻwف~NIIŰ1lذFBB\.7ZH$z!PѠ*vfLK.ڰV0336`ge( TZs)JrСu֐٪v1䇣b+QϞ=[׬FpKEӕaaaYr;kV x{{RfPd֭nnn4H~0p߁]; BnZ 4 4c}w{$Kwvk^Z&+ ہfWҏ:vk^j>B{rkǽo>hNݥ^ށD5lڴ6Tг=)zՎxdmGu@%MQz>k^e>]V[!Peaޞ={0䫞tTZ?hsݻH"u1::UG]*K>>>{dލޫ4pJO$:tʔ)`k? BVw;(h(Ѐo{fzrpphb"bm.WFX]C)=8tWqn4HRzd Yg:^R UstPy?R=>}+o{R;1Uzd'_5{*_iJ$ UWWu[S ӽrE=1gy{znJS yI&6R>8z!4p{/)=҄{8PɽW$^O9o4HuRUǹݻwwvv~y.dnsRU5͚5y,TH6+Y=hRfpy7Jү_?dGiժǻaJ߾}דqƍ J/\дi&T@DbbbvZu^bEf}H1ă ^jCk}OMȲccckJO^6D ƷV7gX^e`-yRRE,e.P:rԢ_ƌӫW4LB/L_ɥWƹޓ&MTP՚rss2dHa@`T֭++3tP0<+܏>hݺu ] d3st* [RzzV\ ++2@z)w_Ӈ5 aN)IU+_Jhhhs;wVh&Bufz1&MCX,V|k86Tjۿ@REKTKMW]s+Ztz hcQ_G6$$$>!((<KqPm|K5VRuܼwW_ɽW齰 Rjq.AHcu7_tt4Jfff!666m۶9dlRT*_RMU+[˫d3YJCZ=:qė֭w51x5ok-P qOW}5WV ƬYĚi ĆиYfUo#?XWҏ"O2YO1[bP6)Re*YfFz1uzmΜ9Õ)oʣވ{<~Ohʽd5UsM^:vX( ,rvBakT '>F ݪx1|Νѽ{|m v!Ԝ,kRޫxqO^uJoUセTuQʽ}ng]J@jgen*pGP:#UWGCw^SI^iC9KGVռ$7$}V=T&5TFRݲ{@WV=܉Zvq/qApUǶnzdC^j[_Y7Hj]UW̗Sh h7Iu8k׮U^_CԘJRPm{{EPWZ暄=诤UA^&WWQlllVZE=TnȊiTbeY|޽5w!c+n:w2iH$j4 =KKZ_8S&^+kҭ[uս&B/yAa߫Nz .PTM-QUknS$1o<*_}+WLU)CqGuZjʪ.fX7 4ԤR1ֱ&2`Ӕ^z̙f*54.njg@ũ/Aj!q-Pt+@nUݳ \\ qׄi#G:g[*A?K/^iIhy1U}sRﯽ y? :x5vuq.'O~Y$~(qnR99Xa=y}ӧO9vk)P՜_\T(Ru<{U;jpR}a+>n42tЀqn׮].\A T{j5p!m֙Rkz9.eãyB͍|I^ %Ԍm I9}4fΜ9.q]u-5} `*ˢoA]j(V^S1}*ϫlYuD5/x@WBRKmL50ď[Fek"ŭXowO Ԩ;t%t(←'xn/JEcǎ(Jj*kʙo0T\ʊU"Ȑn5P@W ' C|Z..]-nD_C oBvϕskIܫ)-24.)@K맲n % ';⻵%j)a͵LXS6)v6EIsS$I+/G.z49=1-#ˆx/Ԝv[F q3E{ ?]fFp[7t* sbQc=@ZQ.y}ݲ֎,]}ş?8Xy}> /f:9e3*i6,&9ag-g;vW*?tYfx^v=׽}NtDږFc[)s?rot#"iI^~F'\وŔ٫²&=SQmJ7IȾpʉz:Z&iq\Ý_hzmOVR5jY'tZ'::9ͨ 0900K|B XXX XXXX X `\.n=``#``3kV@``;`  |p CGj@(8$4 ,?4 Kˀ_We߯~pOpp:P(%GRcS3sc~%,Xeb-/:dO0=˛[M,am_<]Nx ĕ.qubH\7:Hnx~^Է`&o앜\I|+id$wV.=s!4<6.:յY_^e8] xbǕv"ئ/_fr'y3fD`uj}jhkBc5QqIeSwΒPuCILu3vYt ra;!I2 Ʒ]y8Hm 139qivÚz~tӭB/l霫㾧 j[MN_;%g%us"uSNĈ0/st,Qx~GkpL~ClnNiB9-C w6Z[}χnS1bNu{̋hBЧɱ0"ՠTbPJǵ=z5s9;ԖKuqg@ Bz 4zY{m 0ݵ=ki\rBSoNwoXH@ZU2KL/{cz~])'\qԲs=`\سE+4s6tNXn|cL.[,s=jA5NMrbkeWehe]n3Vh;V۞{4ݛ)&JEmq“`t#DwjjӸ'.qcЭQ+SsՍ_wQzrrr0GC~4h&[s\64p6D;Z;Evvei/joijYF:WG:4@K}[ۮ^d# ENd/#cș@~K$.gj=fQE٣I9Ul}ad?6 [pp0YDY ZlgqG1)*'!^(^/F|Bm vGѝ@"H ҈6DA%$]$}$#%H&I,|-y%a  ʕ<L&HGKKHܹAJNd;I2{YL*(ϖ=fQWvJvM'Cd6rCC>X>V>M7{W.z"q/rKESXaR<`V+*A?:)[*;+Qo'&.9mq&%ڧgQH% 2*O%qYe?.x $4#Kda]}#2it}_(_\ʖ9FMu״hiT3Q3[٪9AWsi-gX÷}?.>nݭ=^v4C~mI$F=[~vB0g鵞GgQ&1v91A=ŝߤ;w=i1-V+3IHgECU/sakl-gӷ r[y[v;"aoO5(d!\5sN7nIv&#\+@RI!.{{&&װw 6C̄vB0\h/IoP \,$wi4:6R.VZly[bqKxgswA4nniCDn=G7~i7ŔjD̖t ›준 b|+&In.$j2lټ`re7}w$E=_`yhĠ٩r4CHRLLg":#C;I>V c$#we7;C2%l'᛾!}Cϙ,\r<#Ins˩KeO38YeِzE'QQh:o]d_Rj-;Ak+ +E o'W[UHG# ߣ{\R\cQY=po:2;Ėz8b;S>{mN|oyy2'3㌻8 Z?==>؈17pii{I^O9Jأh4'G-|UGb+>"D^Iqi=֠J^;>p6J;4e1Iuϋ~}/n"WDwLьt#Uj^IU >{96N.~bˇ.Do%l aqT5,y0SxDx^-DBAVM_E7a- Y Vڀ?';g@b$!#RׄOݰ[Dȁ{N^aL R6q[h%3^{PMNK2zE,I#4ϖVAYxrBڻQ9r2"-9&!K7KKH?u槽E7STA/6$[&NM=pT}ĝfBsX&S4MEG3R)_\V"'4R^7&P_:NqlvZ^&ɸȽJKUrSXܫ8Xm+_Kأ\ (q3Io*ĐHUKT=cӤFcvVwTTUѡRBzF:WF:ē4\>dɯȑ"[S ;tڶnIjMU֩TK$b##]Hocd-!73o4|-3d8,.m7$]~.5% _osE.Fń8M&>i4xы[!GۈLySZBg{vvlm5BYӞ.Im 3sO|m!_y^EQv$$SCK-b|Ql$+[-ˌ^_Eya{zYC3X~h%5!)/txO]\J\ UJHYN ?(n*WQ()eыzw%!\F6EVn:y FIr-k4$! YvdE /kvg-Ra}6` `gٍn=rWh>zD<'mр4zcHdؓH [6ڥAw4 mmv6R&ijWk3Gb-btmutuax]-e$QuI>O-z-i/Dq}q'ѐ7ITD26lv?=f[?`ؘp { !`9So'WObġ1/*1:*$-~$6'c"QD1XE $^F#'JDlIdd2!+y,6~A(),']#)UK/Hs%Rd&suIdY,nl쐬ټ4u^D M-x17iތ?u#|6,^ˑ7wȗDoW`%3.z}7팉^o\64e|v׷!Nu¦&EkEW,$ J@]ۡǟcO"B=ڰuimLI85idњcQ''e}0l [n)==chr+n1eeY:|UUI*zFz2GzR$NNەX8mvz:- B7!z B{!z<_#hbڰI2`Ӈyc?bb 8@)^yX~IN#&:/:D;HOtO(]>KL|3Ќhdg,3>3@=fkcL?`g!SUxPbY\!m=| ٸm\6>cHD͸?oo3pqiBOŚ 7`坒ٮ9żPF+jg. G'#9l5+/{0(Ibsz`9ȹ?0L9Ißűgcc]g?`#!|>6_%JHQh(=-\%h'cEceQR\IH;**66`LH"1; ybةMhS66rqF׫c0q&7߭bk=фO#П{ :WYqOc{kg]|kggX(v .d8 -*%2wB14d2q1ANODE7 K#i>8Ǚaf|ָbT Oag<4>B|ttkagAxz f=]pq ӹ9q\Vxǻs ~p8<ƽ+]ps̻y 5g:y7?\>}悷^x ur#ag_/ep~bF0B} '3Ͱd 䂍p\`^]L, \vr]g.6텅yaެf9}Yi3(zDQkrT=*4h2Q œѲ D"_l(J١2le;P,ӿ:C<Ñ0}0|}Xfh+8;NA4w 1ǞqNCW) =Q@,2c5f?K(jpdL"sac?Ps `$@$B[9ra$9A󡑐vn5js]F4iwW<)u *52:4,WI@Di5*UYz^ ۓS1bn=JEV)iBaj  \i}hVEdS:{y&`ì:aENJńd<kvs1#9H&6D=}%#ţ>I \OI8H@1[FB$wIdahR JM:W%$Oa%\ϯIX8V~r?::5~ 'sq{I.SN#%?GR-=9G}V)#;{m-o+ZwR(Y-D=CGg[_toWݾ}aFMa-.{x1;ݔ{1{]|16`l?$8bH5,='7F&*l-DYiꜬC')9l4Q9[l}/lWb_US^=*H)4 !b  WvB ?&0B5$ǫBB1a g5h zcG c/k 3"#$^Ƙ0AhCBR8O L1zk  _6hv'bL:;$tOҍkX s{BoaP!3'1OiOČj&I:Se8[+z[gmoC,zfX1#:\\#o %vIܙyxa?D|УE'+k(lmo'nASĀҺ̉!)sbHbʜ2'F^щIp&)sbb!#p"30uSڵ!s<8_cn~\9ٚr}Q5gM`_rљ(# +DD]Ft}cf|hR5e,VH&z2<+DF2+sZ)la9xgpږ=PI/F : Et0p!w `2B$#rw0HrFəFF-D9#)Q 11匸 (gzoD9#<(A1;F)QΈ2JT0"#)QݛX'rJ(IE9ڐT/DIE9$>5r$ C@'^P"eR!(J<4P>U aG'RH6U@ DE)LU[ģS¼Ƅ zw`/8m '.2N z0ɔ{Wp,|Go?47NzK(;),f˳8eXKϊv+%Wu]]+!XF%1Kʗ0%]L|'0l!ȬЁ$} rl/Aܗ } rB/a(CT|R/g|:ѭҗH7ƀf+ Jv=H(#b > >pk|o|0PC^ \z3@d@oݑxPwrܷoȫՓ46Q",>4q*_?*blEɮQE\/b:UITp"b 8|Ja/)* zR֕ėˑ-aiu|THpޫ:k֔p淪Bu'E!Hm dEQS`œZ(cE !+пi_Ba>gj;/97x}L⣿awmg0 ɧ 2@a(Lc*)𔶠}y.ܡ|B`\ZNeag$aprU܇p">< ;<< uq}JtFT@-+=ECG}l MA3Sx-b܁=Q1#G4B go g{1ݑy%Ɨ $H&Up<,(@~PaA ;ׯSڷ;r$ł;eJq'G|RC=ISPpW 45 \]Y4y.6BCK61׸`@CL.!{ )>g<rGs'c.؏-~|]0]?]0zwt.zXۏl'<|}ϙi" H[f ꁐ!|7r7bʩ8-*&[4 xߒ3ixbJ,bC2 Ov)أ0yFB.ZWO.H7DwJf 6X ;eSri,=V̽vYo`:!mQ_sq2#_5nȘa+Sjn6k [&"nSS:h=hX*°3%BvixE 5*1>zTxXd8caWlx`>I &q\GgI2k&@fѬdƧ#f2>ncf@l$9{.OV#5d"#SI,50\qbD6Mtܹϧc0T:F:2Ɋfx){$%/ЇsQQqeDhYRh43PceQ1Q:z(qj% )oEO;D%%vGDQ7*zt4 ~^[EMBRw>M[ד7F\+=))Vѕ<->=j-._aq5jm˵91;=y=B'l2· Ph?Y;Fr_Q3 8|:kÓ9i$cb4 b57)ؙWjf#`;!l0f R Em2~x(P'x0Sm{jmVYs`-0W9ƕe l;Tt<_F};+kSRܐޖ,/% A8 ;[J>5f}5<aqis{;_a`h"Yn9۶!u_^7DH;q+ q Nl&դ[ vlꚥ2/2c0n.z U +h8jÌI7EzAK|1Ǐ |hs|l$w- C+ysa#q_KJڧW; TD},`\Ю: BX6C"s/_q]ά،+q, h99;{)Ns˙٠.hፕcg$]^Xm@22:Ʒ2tbxh}̱1/zY &ըeiF?;q(,Hvqir_ K1٣ig /쭄sߋVBzc0R+0èx;u_L DܰeM+.x_qr66aӜIWv/.tEMC4ZԶ@`.#n& ܎ ]qnSY:-r[gA};C^e1U<;8Y b@Aҁi Z8[#,yY+ޑf`y7Ny1OEZq&I͐7,Թo0BѸxgGƺVsŜ4c2\ÑBP"\-.A Lї&B{8<qQ}"C+ͯ}HX8-m3fu']qIDf_O:)\#,tihOjݘMBYdsop=.-I5* 7 OX>+ * :Oq:e3o2yIE3BEcik]ɼY+Ur]GKy%&)G>z68e$KC٠/ÍBU@AM "{J@*dR3sGҋYCm1˟QTS;w&/W N":Y*O>Vf~Jˣ oG))e@?4,-1KO9m[ϚgXnbv]T4BN0,tEۑ+ά*ދֵ..‚_x࿈w-I+"ҶO+5ftJ-rVVҝOci*kw4>oq:EG6=1q{Shp|u\dju䳢]{ǚLCEϮ68'-ϫ'Ј![x_mU;)yǚB?fR$OIj諉#ny~F\(q~Ā 1ě91[/Zw?1eylԪ)3Ȏ>~~V2GKG-HRfU>vf >dD(1鯖$MyUjɌ¬[)m{|/r7l7{^?68JU8s~LZv-7k7s܃)*, F&: 4\ű`ؙ;痏qJ9o Qc 1:ƻSIFAbѲ%<x0DTyS?:CºeOic0ضXTSna AFl7FVhjY0iN'R72-}vcfG腫I}:QLHE!CBwPH;OM(0pGSS]yRpI,rb*laQ>ogbfkM}Wˍ/puȯUF:

yO ǎ=:ύC+ͷ]A!mQЈp Th[E6lž@B/ !{l2o~JVRWK|2l6:G= XFZFP ++&Eϖ!֢Aχql6BN#$E2(sR+J?dȠFw}v?@_~GCџ[[۰m&mL}l$RPh:u+BQmZƳQ?&[kk!m I9C!Ϥ#-D"83!fImQ,,C T@纙\r7}|91n~ɝ xYGq9UomK)O9@%|;tB&+A@CQdIK sX'-5gN6 s{!+=ӧq$3Ӥ)X0\p40LzBgL1s7cVˆ)o7SAB$+o1o2 Bnz *獘?c_o-d|0G.Thi9-q)l';-iMx9/p+C]ߓ%LEcym&>I񥄲$䁸rqg4c U.b6mbnxtkH$_r7%J Y"$- EܿFqg uu 5GY)f >K~922v#6 Wo:{.G\e/*%8;\څPGRXփc1!T?:H0ژBFΧ }iYL?L71tJXB2Í;}#OEe)e\4ɢ#ӫ_Um q/\5-_=\qO,]7JD瘝#OhTau~LbY~su%L,݀Mr[pNDG?:e&Opn\䆳ӧʹ38t4qv#Hk>KƂ'=ci]`_!X7w}%1|aS0naؚs;IzTq7մWD>Ņ}ﷷ=;2i77K,qN\$Bω@ˑ>0mI>|Ǡ9뗿?xF70L(1^d>gcI*!d<9dS5a8ay)u; VHc:&Gl==m)`20)4V1D; =_ H'"d7PDvc1*L_ՇFHcT̋|-~D2X_?!odzL9 (xMH4 /4# 1JefCarzyB$+!i~?Km(dܙd̕ !+Bse}DʟmZ$s6p8E9-[zI3L̗yX}@#= h$e wpgizoƁPlXY` 8/yY(b7`HϥC)F0KAF;ƗL@}:{sXP.)@6 % o+}i8j"64Z$6"B=t:9-YH3ThN 4&vݭp:Mo]G 8,hl?& ?NX/ La5 +HĥBזZ2w8yʊW/+4&Ev]Ջ9(=G GPqN~("`!;Lo7ُK^[^'~P!vؠ`EoM^gm 1A:9)sָי zsDmrKuJ[T j<j.td|3AHI4Mngsrf+Rw3#w;(8\'o__TU"^#EN"pQ6927IgC-!TOX`vP\)xFj|o>n*݉NGv\x \nRnǂ!_vBc14mn723dً !|TmB)[T)ˇ– V&?7ʫ_#,#&1]|kͯ^3++PǕ3 \OٸSZpvbu]$%?h{;O2c;{|侥_'=܂,ڟVo&c钙2mk|%DίsJt6n$;R+{2Ȼ\3ңjA:8Z\QRG6xGIi .;}~Fb.F$uۋrρTN];} Ǩ? 銿LMܭ+(5Uoџv=49` Dޕ̲G.vꎴ_,X)2hQf1@I]#H *D }Ύwe=/ &@q ١lgԆn$] rYYQ^ _g)2{$Vh%Xٱ^{v,PkyJm5I?v'EI\޻nLcF05{ +6h$sH]ݤ4d&vwbP['^#8f {@GdB=_6∞(qGulY.ޓC|JmsF{t[@PNmSRR JGv G@8Jrx5 _\q Q1QQ?Y(?m _d]la=+Ed!D۟4&,J`?'U$\L@Xx>8d&'ۘHO҄-Y'kYD' C e!2ȥ.NA u$D:{E )mCM_)˙C11Q$[6Bpȥ ޯ-6R6ѹilʮ';~u ZBLh<*1%.!&r5}"B8zkE)qg$)kR$QR#pdq<<譋&M aHx.وNQk.pfox':FOH"MYjv#cж8n2*"qHHsNAc=r/r5E)GK푄(^6!ǟ#?Ga=b?NiEG箕`lGD\wQvleu2uP":Wf@T+NERxͽ(:@db%L@M.cTv$J:sdnP[CWjW~Ph䏶JuLj&5i ҹ)}w]$c@u:@wav^w>Q3C[5#pw!*Ƣ?F/y 7=!0.V#fi=`= 驯iA_g?`>L uEA=ǐ!ƶ ]Rn-}.jա ݆FIUmE-^>E=1ȲLEbL3#0s[P=aȡ"{%su~ "l1-dk+.nhUAe=n1T?s|x׭Su:0ޡ:C$2u6eTbqQ7Lu}\P?t!:@^on2䅹ܑQ~.Cׯ_;:7Ech9pax¯ t_avQk&!%CO]}e`Y*DE dޞ.`Bg⿍˾V4h=Pl`dl"C$0C1̷ KB(Z0Hs&Bif%>vh4tgpN $&3&33t䎥=3F3Cng83#hw,`3\Y33&3bh@ 2|&BiG$sr39 uEi:3eV Rg33E<|UYK@̔AAFayLa;i GQC}gar ؎*p=@"`" ίH+SϯOŖrh4Tp(j.m"BhBnki{y~64]9& "r]GζT6A_ez;E:;r:jaKxv=Y);mzKz;5ӛ^qn|}7ھo 7q'"JBgڞEW2lIE"AܠDoww9HDLWetXW+TFLGuZo=kۯݰ}3LmayӖA5Hr%(6D\,6Ո"Ae3ұ)).G܌Id;iwn!*g"Zywu51N#ڱZ\hsD9e%-h3sK'y&-Rat$,-c6kr[I'/GEEȨ 9g'7<3V~V% rɩӷ\P4cC>wڿ<{8eSck"I"˥#7iнnZ_ ,"KtNlCm@(<\H(@eL7bpG>g'MI瀯\%P(⫕ ΎYw\J>5Vt/<}<iccs["jOЩ莎n{n,6?^}"o(O xpT3EuzTZG].ik>چ+BQ"AD6U3e͓-3ҳgGP`xF.MYd\U HTwϜZ`?sݶ9HAyk#g?nH% 徆[gZV;U6"#~o]d4|R!if5x7i7\L{;;7A-0j,fG Idu:M-C>==a"z|zGfQɅ"YXN+v)J嚖Qyރcc}Di$zԎ5y#QEzZ5\בG<-]ˋw Λv4M_؛኱Lq`v@lb%'S~`Hq_7;];-ʩSC'y<%+n*Czt^3G%QԘz=ՙy2H]Sͨ7f=f1PH \u"#uf|ҀNV K:ұ|D?a3B$^-Q$ ӕ?6kv:4bZfqsϮ==g8[-}{U\cK*21QV?wR}2n'^%Xp2Y+AΎ\S= 5zQf 2BD_/^rLeeWhtko~#ې;i|~[T.焪vgdi Nc00)}[u 5cOT0JނA ]0FxHpFT7pqi  qrp(Q)7Jhb[1p/EJ1?$5GB%15mq"2QOae2 L-˽\~Lv^n^ɾȀ.g"y|K@8g: OïǜZTV_&+q,Bd C:_= ^qh7 umxއytV!STaUns?袄Q{,\ OPYz}5L|"<ѓj&2o!xUr4Ǐ6ykޥr۫ 2 ɫ m2IJc礦!&TaQ)ੰM(Zz.AX-K)>:T4e< !++:|! XZ*n2?ES8Y.Zp-O lp+W ؼgNish){Py`OHmhʔ=Ȕ=$.6p$gEIVNɗHBpNM90^Lba~lqܽvv>ްh4>LJnX-eR*m1KԒh=wjhH v>T6 ׼*YC+\#3ZUr >Tf}QPy >eR]ܯ MT4\r*z*.~x%.Dǟc\RkJa?3v}2ؼɼit辫@,>/j|9?uKXQـc͹; b9rݗqchaE•ܿ(8,th΢ޕe,i˽=]G̫)_H+eXS*8KSmVy~ezC۝bUR5֕a}e-kڏ]\O OD^ߋ4#6(n1:/ Z֧?58+/[~|Jw}/{/)_șKڋOۺFJ|#Q+#zA9ᒂze՟[zL>QYۆw;oTc~dm^хλpvDY˛aVo-+֜-fcLno/1^=XJNJ|3>S{\̑'X"."mB7#a FH'gh5Ͻmnc:ΪwSGoQ2%}/ğ\࢞ UDbb@I;T_o߭H|P(W9;" ǝ/*uo(ݛOil?|sL`tG5@P9ƴ7huu|N=rEPP&X/y$~]d`.19l1ڹ4ȝ5q)\š DzJwTU'?QzͿ~mYt"id6FDg:ՎNI]E޻GR*-#wRROT0X2\6aK{f]B{?2.Dpn dr[_Nb6_N YdZ49t3<;0m lL OC֐}8 =R|Bg"^$Y,=T-V&`ut^Ho#v܏ar6oD2qak7 !~`@ "?]{i^Il=N !g*+(=>SS.d>84C8o2zZ4snò$V9 EVt 9zJ;x4ee4\< DpR98}K8NyX n~k/8% ]nԔ'N! jí[o,-V`0W]nև ssMnBDZi3W615>kennH[/{ef0T * K-n !X'!,V ?xIX- TWW*+mW?f6L2rylRUܺC~_]?$9P^pQh;ZIx AQ~uG[юZkfkh\TzF.ռV^kt|_[ {g=M@<}y9ldF!^ǜ){JA̲p6ƛzBM}YYq[y[-Mo W[Prf!CFW"Zퟱ Ϫu7溱Θo᨜I&ws:L:'rj{ibeZ'=d}QDniZ& J(ojKp>ͷgA˗fAPL板54Γfvz,m/[fasɓ@ڼU̚lS~{]7HCѩB`2KA`tip`" [ UI6Gܒ`S(ipi2 `shl(l嚬A6uȇȁ4''¿u ɼ;uK oML AX#NW̓]$D)l\DHZ$Vˎ]+3a %n?Q{gw~z:WWaUDckkp,ҘK455X̎ }̴xV8MM4IJ[H6"l; d{-[}vz{%kbG-o{j72ij;YR \pan=']JHX' QmnnaMGDkن(}Ⱦ3HTaDz5hAlsm'֐^pʮ=L>cdNep? b+->նijp&>lm A]j]'&T*BΧ s-5*SQ`(f2r%ח"~s ㊙UaKKl1c+g6g 'jr9fb2%g&#g7Ua70|\R3"L,{d NjA$BOp?9-Kg!.}dMċxσtq xO%sexK( 8)$G(կd2Y,SKvLLd22r\5V>Y>GL(ϔ*Z#yGn")6++ߊJIѥ(㔼)UaM)l%^sV(++,-~P@}mY/V^ި}JwԯZ5`CW}]#Ҥh5{ IZm6FFM{Xb<=t'"m?҆x~/$EK]O1n)og̡?*9id32hoIeʙLp|4p8| UNOsUh 16{.`"0y<]Wa , n?2p 6 fht BN.& 3NbpL"-$b;RYHc8\,QWAiR@,ǭ칓R2Z2I$I<1`KX|%JIRʉ"r*Z05nSSIuҦ îp]VW󿖛v=ܕ&5:YyRʭﻒgU'~V5 QϪ</'$K^/*|~ $zjœOkHc/j W|7|{CjƋ>ri6N]!cĘRyg5轌~Ǐ?,MzicvѶ;>>kgȄٳZ2*a-v~JQzܯQGoʪ]sFh'jͻyC2?-m|7ɭ^wJe3+pLi:&uT"kvrM4?%匷C‡Y]>zȮQa-!6ߟۚ@~&:]ɷi{dW&6'잸ºeOwArI~:s>gݽ7ہØ,uۋKF,u_K=dimu" :;i.>i d(LEѲř2DqPfQpP6.(".4 wDA29z=?Cwq뺎v'i@kvqqU8kYSisffMZ:BkcB $-\KUxuczcύFnGEm5wo'y*P.,j@5X?^p.pa?k1\ X/B]"uv >Z(HX%l{)VmwpEFA98ԗވlGL &[:ڽE皻ktjoK(v+ߠ8Go->]|9QN++w<\>_.b[;^wW 6Ul:erU@c {+Yķ^? {LcL3IG"i7ŤL&w B> eIԖȀlll3|kTV Td76ҥ9؛tjNS7'[2 .A5X`=0fcͷfYU `Ų6Nc17:g8g`e9ùto''Y`SA-N1ƤOeo2Oc.OVu[xGx' 0ڥ$X 8 n @K"*%neDvkK{gaZwL޹ӺMS{[b#1.+Ie/g9bkCD{D'EH~3z;}48P'N'f}'f] [b#q%Ւ-hEź\<Hͤ҅R fII ϥx/VI#|:IFkˤ񙋓+x]-ԁ+hb1p`7:K6"Hh&~HҊt&}PNUY"2m GȸjBR6MF.SZ-;P?>g ddeQ^J-)FER5(/*28Cݢꤔ! &sQJE[]P5 c6]Kcw6EH6{6Ӿ`NANld:F1%]^),l aU͂  ;+qB*RxaHl#ָ,,Rt~PKXd'r-)F#->A): :+-w.xxXDh/=b\o w̒65%%`N7c1åFШcg(-],J;@$wPMp`pBO]“>uO\p58b"H#opoЪc|jE "٤JIN&G d YM6 d2J%Ied3Ye2uV3UBk[R/B&UEqXќ |a%:D8M <]:б,0u{<3kk^<i{hcK]uKX5[Z69Ro0kѣr4SۦaK,&q+2^3iiһy/B0]wXy`Jg-V7#&6kDO7_Y1`yah'W'g|q$܂/8w`mTF% wBτ U\o*v߹" O瞱&M裰d۳ވ21Z&/i0^@$-U1{VCj˗M^Im;h&}3_sꇽ)8b0rآd-g5 c̸^ܣʶE6y{!s_i[pȀcSnӄ 7U GB =PyއR1?؈mo-n-z)uO1@Fj%$K$dHKHnI50P:Bʑ:I}!Digu{ X_oJHJAT G9=j}* 2|,:)1pGm'kEh @5=@I.M d3DW#_F4f!lTvm?>eF;I>cmw̜^,Ȑ/ӶUb2P{>8 PgôuPVwH͢`Ck¨%:U..znddy&Kk1sdf\Y|r0¡=r-8ߞ6zFƯN_θA~~؉8 rwZn41n+ z|`{'uN]9T4Ε~7kɌIaOET[5IP!0D[|襒T{Ct^Ɣ:Z8~ĩPý/eܸy \gU|W'<4,Lemi$%VH ,zo%c;c%w^ۛ0?AG٬aw:E~s1_qRգLn[hm–MM)s3҂Ы7F}Ou)˄Fج}$(c-*] ش_zȺ?bD5bm']5nia헀ڰO$T'$Fb7:<@$P{,Oto]csL ~ ![h#t}S/BkPe $ e?z\"f-m5H/@h-_.^-">"$+O%H% ɔ,Eʒd;d\YC<=D 礸RLvKGO9|<߈8^kL2<ⴾ1.sDWg:5M79?kkC|a;Ih,Қ܀a$XEn&R|J6H..'d) h"l:e XPT/x<<^oOFi"45T`; F]P=EjWR^Z^5i{L}wҶWFIW6zbgO<=l5bh"sUС#k+tf BO,jB.wl>܁@L̅y?C3{F:9g*8XQYSvQhou>bc${>8ѭOlaވCDXITj cE'ۘ%=sZ8!3Y JnA(J'Br{Y!j,?nW7hj-ZN^b\2[~95?"״KHf0.ŋx#k ;2O]h" CfSL `B%2'[QFܵ{ƳZI$%jIg>C|OV89J6?8qU iЮfUʯ\%[NUb]ӷr`{MՁa;([9!VLWՁ %(QW LzF.{MWj=&XYXU12$sfpp*wsν ؐlm}ul}i Rh%3¯5vQϵ7޴k/ tO#k\ӯ3\oϳ\G*F>b,n~bj^.#y~p2& $F9oeɣIH9OW";EU_mHYʚr`AIQ S")Q|$!zA>Vɯ^0`Yk`}68c>(Z1X1O}*XNS;teTjYS5Ԯ~}3jIPMaVWe;Ҷ,۱,TL3/(CZjN`-t T6tͷ-G*TnC3&9iiFz~9O gOn?-77z7gӕ~DoD CI^\qGclI/keǪ2Z~nxjn&uh`IOfkc}QX d *Ty[Jjy+ro`\d^A95(pb+4tkksNRl:NccDRޫSz%+WlK5 ޷7tީ&Y*\)$=w6kZp6kI%U ѦWYbmc>;FW QIZr{O~!:|k.M͌ycIm*[@j礅lÜEAmXoEXɇ$;ܪϹ"[[l".3?$;%?`.? nz/9-y:|R-\V6ȉ~ۘ$Del.(hA o8*! ,\Vav"i奀G_>sfΣi3>8n{Γ)>W7"3Rz|2R\~!mQo u:;~DlJ-J4eܷ9ʍ6a'kC0$nFkg@/Qهl>`"Σ;[8%5k:_f}[;Kvv{B/-cNN l.`&w`{ؠ6¶7X05~ӧz?R=Cܐ>z7K>\KlIv7BU\zvsPU?)OdĺUL$+' lqȡ|Mg#U/bR6׬,@gAgZ}7Sb&m1;i[RğBpmuS+v"D\TS(]dy'j8y[R~;3|GL0g3O+#& c9Sjbbt~Jl赓mbԍt 3`41Ewd(k4kkŠ9a:=mφxCǿ"gJ[X?YIK#ߤ sޅWΛihsszuLLmBMKa|g+!ngn-Cwsp]h[mR'O#/,EGH1+ؐ r耉djIIݎɑ<=9#vҙTvEs. ie{Ce]z&3X$&+ԩhǒ'@Wt:lEGނ@52N{@tl#iDcéX͔#$K#2N5#S bn?W,II\$l$P%#bnY2 0(TS`/x^1yR)TFM^㕯 ݓST>0ٿѱ?l9Bѱ9BұW ؖ+A#":V#TFW͑OZƣ },Yxg-S5UИʾa.~wk嘇`|.-wE<hxKg/^Z#dYlYZçF uVz;wZ5O;F=x;LB^&Qz-S: Z#k~1\nl=pI]"K΃ü@{rk$(1(D-5:,Pb 1حf%9AAo/Y3t1.KB}8FЇBJۉo; ,ZAkr&q޴W$Lʭ[IzuQZ9uRhn[#0 Q]23ηZa{^M~$nmZ]iއ5!n$]ʜZ%{GjhR$J~Nnr>6~X!tj|R#wyV0'M{9Cɲ~k$V1jhFE|2x߿k2>=T<º.V}veIeʇL NP([&cW:}{S2FH!&Ib׏qq Z# ug9d?BPKn I6,ݛhkdA+!ov$v¤Buf~r뢔*E"1غc.+rf1J 49+i|+99oNe;3?^9ƛ;b19N"i=^DjJH4rҵuv5oe}$n|kO2ds;k7C~k~Q0Α$yxQϝ6^.i滮Ћ/ .] Ղ>@]tskaˌՁ͑% YKq-oet` =!29%]?'c< 2F`ߟ*|)Wm߶(76ʝ3v`}pML]W%W0 Z]cW 6  *-oӵ;UUnq}rpƮ"Lkoܧw=~p,u{()ڄCOn@{Dn7G~Xo0V-Ų^?JZmSl&'TJBd{&wIwͤ²d2a:~?&boҚ]=mmlLY`!;gV:W1Vlz̫:XDWr̭xZN)'et(f!h~szIˇu*}S+4"?nY6(g]Ǩܫ#7PcGmlp4Gr@ǎթ.Zw^M V:>~qo-|'RҧAS"ZTtTu5EӸbI-!L$!D:! q^|tqټde_ٖiAH@DᤴjX<_婧y$iߗV̧A5|5^bu֎Ҝw,s Ut9v|)@"~%Ù_p9}Kl`NʨŎ9}i6&[hԵ sozraɲ%:^?r -XuGPa,W(޵3(X^k}/VQgs*JGk~0윆,ca,/V ij2XYgXE1ҥxt~B_h9?=tG|z @P;!mI^xwN0{N)SPSpJVJ6I ʊ|-?rw]ouRlYV <,L~j^E Jm{A!SM$@m 6aD(D";XדrFP%FϝUSR+а}?gx007HYN9`ig4wHcNзTVM-eZBJQ[i=3Rpm@ajX:{A0;4VIe# ȸߙi35U0u<,q:(\ x>bisW;1q/ ^>%qʽNpoEys_\qs8cNgw>`|@0cNFNA *[2'Z8C xu`Ȋj2?+,֘Wwt}`Q@8~ȧ:>[g٦g/&|.*6$1l|ʼnsXMMDF޹]ۛih:*=yy?(XRchdȹw/yFNؾG7Y ?Y#]R{\3;FQ1la ֭(snexG)NJKZ+&9tc0IqR.Hg-u,LJդU0Ǝֆ\yl{邤}ӂGf?b6ڱpU[|ݠW_5*t<*̖{E4UYTQmdzQ4K1%[L %x0;OLTZp6Gэ҂#:7lOcT# Jr^S`v=K)þ0,.Vgy|kWESQF߇Dmmw{8*/Sū;uf7ʧ={[n@.RvF{ 0^4vouܕ͎z#K|Y'};6׃ fuֽ&/Fm͜XSrV>b%a]Mbg78nQ2Tc:$Fq^sd:6sb+,  {sPN w[y޾DpWBVHy +G,KfD쩌Qa Q/ŗw?h%e>>#^'+DEFkn`) `H &|V'7Eb:,J'W;q O&e/u ҹLj㽳L&y*d,<Ё'g oQZqf~kMG#N1aZJܬ,X{y^ͲZTeҊsGq1K͞Ʈ)=vEX\SvbP]1z&k;JȋMhc]ﴗt.*Nm6p~pq+ppUoAԥ Ukݤ[-ڠCDQ33:lwǙ``n6-F5Fr*:86&`AjN}w،mcQ`7:*h2rmIJmou7g'ڔt ˆ*QZ6~+#UX3?N{5 Bx4ݏa rچ2XC&9@;k!kKbcV9ZM``$BWp8¯P*|y%"D9BSE`>By"f%|{}0-1ỊWyݼyxu<_/:.$.%!lm㗥[s"^i轨[ĬtCVbg8TֹR$JE?7T9͓ .՗]:~қ;JB1ŵ Ŵw5̸֪]T*&>/)66h%׾˪D^[l,vR7|)YmT II|_Z_3k1_NQ;pzхXb*aIqD:tcq ɫ@|'#HDJ!$rKI֎{i.xh&qeOeo2uj^W4CT-uAkTA318Vb, =PsEQvj-Rg~%pppjNϊ{us96S1:*[%͵©cTm:uwsOe/3RƸ~=sm>DuWDuwGu+Eu7 Ra"|dԏӺ9c>R28Ǽ|ӹƬpC*ܘnH.15!l>ӎ3f6}BMG;pZ5}%:7Z/ct^8lY0pJ˵Xnkze^ az6,NyWߜ~xXSL=bq\9QȘ}P3{٨>nO }d_Ԁ#=ҙIZ} TeL4y)Ldq*(KN)o^TvM-]p_WknKxCGyͮ LO9Tͼ`Ԗ.P9Cq]R;4-=Le0#fCф;f6勉 :`s1Jv]9|ΰ!n%gcBCb|ؓ]D:c D :1<:,-,ƫsIHjaK4q NyNa|! uʄτ>!/5DqˆW|;wt9Rt@<dbMI;jIK$ZW3=(D)/D-Ck*{ VIbLL|*: ttIMFB)mA7L"#IB%)OƐi$wK%$АYɜeYt?/IYI=j5M-3Za'HFEJ(-4g挟`FAi^܁3 =Gڃ`qƳEqȍvm`cuT8C9c8S8^ 9Y-hrlD0O bqs=bˉ^NO/RL|e}:{u1d}z^}xkv/l AI`/ 4X)W- &3gQDns@cJSyN!gkұ'WM>¸5=w+Z]T̤Q|*g'<ڒCkKhr9i=_^3EaK#E2ƴcڵ <.0edʼn-/ 2( el}Q_x^$˔[2fo[ԮCkfY-s"\X˜[̭e Z$50Ε \hclb ,V͒rZ65N_8c!IVp 2L|-ů`aj|~h$%N)KDi16R,Wӕ:},9OKCK+}sWe6a0jsc˴#=z+eu/Y?MHw]n͉d |(QIr6ڝzU8eyƜy eqsO߲GWư9CNXn<8=,o2h=j;K쫨x~=H5'1c.[_zB:HRZAi#Q+I(=+O= _1>,#̈lYYt5,:}E!)q,{ŧyB[!w8V"gwNpTxHNA윭BKucx` σϋNyV*mͼ<[u B.sM Юծw+ pp_-LAAılqPYTmxކܜg7O+c )~LQKN!~(`t6 ?U=+%SF"1iGɥdS5M$8D'*dJtFW_.[-"]ȪeMA ~a,5QT,6Pt &1ER픐q^/_--CA#z q8|ǥm[q kpc< =O7y2Ĕ W&!ۓ3H\F#dy,CHB$WQth҇98,UrddlN\1>I]lq.`ag3uR!ATQt. :36dp;wMiuZ-8~ŋLH+'ݕMC\׽^] 1V}?:{fprbg)N1m.NBCpaeV(cU \XƏ e Åaua󡌓Ì2Jʧ"Bơq(C(ʜ̂ KB%̘P$."Lyw%HI((D:wtFagat<'cj:ךpgD5t4`î3[8Bg7Z;3w]u7hpRMUNڙÌv'hv~-6(~a$Q$= ZG}(яDk6ԟ _5궶10^ÑLomsR6 tj@c6.TQ<۔m goFXS{X<$Rxk!{=+ ǹ 6SϰMmoCZѨyjHsgGJQiAe !|)B3T>|ߓFW"UUmmS֜5BYm,030300t0|AmHs8`Dt4EqGB=յt|3]x}A{,!?*  gu6#$6 a cVān~, Bba1񬀸ʏ'Z/##C1}ee 6/`6oc6oc66oc66oc6oc6o3m ͱ}eD_sb""6!"vvȪDX!1pw]/Bb_qzt|DԊȸ4ww3Cؾ1h@rA'Pr̛3 <6&<$",<>6.$#wL9ǘ"_]ؠUaXϑ/nCvَQq@L'\aѿ( 4[N P ox)H7<"<"Z!+Kzظl?GUЕ直;N~l#BءwO'>ѿaXX6Ӧ5^""n[Ξoma1!!Vd<% Kf=~m骭8ߢ?PiՖ[%OvAbI.$ 2$SϜO!dؿ$o~I[TKDV>`BUa)P P !@ )V y@.CRCҬ@ V aMtk-TXBb@\!P qP q(-x*\H+,U Ր$]$m߿׎R%Zօ$GaCHé>VK_EZ" !S SRIy @ y_ v ֠рхWBB@,!QW vh*)h+WHH /$#"HH0$f d9$ $q d-$ ${ d$S!HH.$YHeH*xAb7!Y3$dIQllP؏!$}u !\!9BH4%@ߵ #ŒP,yH*<$u%KH[>g!P,UH**$?H)$} {+  A $H$~:h|D+ 1AB2IXB2׻+$s"HQ*% d9$ $P $H r $ ,$) 2$ &$H)$ o97@rJv 9PJ2K:UuD%ģ]FYC }4y7J4YN}_25ȏee eB9(PPcg-8 @M`k( oAC9@Mr5 j2]PSA}o:ʅw̄r5@q9/@†/j[s,j!.Z% n:BACE@-ZE77v:M {$.X JyVBZj-:P"$dT4PPPP6Amjj;TPvC j?PC@eC@: uIStoڦڦڦ6aKLf $[*FXh(E U[֭EU"5ŪZ j֊[] n& JmCmϗ;|s3snTZVQ*U J+\J++hRi㦕f𬴶VZ QiNDjuN5:TZUZWZWÅOnU\QN5^"7c~{᬴3amsxF7gڪmu-#oRw;&W0U7ocb΅A%6ZǏcп|/n]0cӵ;NëO4THoV\:CX>SnSZc]}nx$X C^YGݽGqg6Q㳛sZ{%ԧ|դ<"l}OM"o[GOQw|6+)ֻ~ͻbUZuNcR(_"z yWZ?66"~6ئNU XN~}3=3P RwTZ֕֫ǶP7ȷv<k VhICmӟ&,:"Hƫ|)ӟb?]S!}_iݰ#ֳ7;bFE@u_0ԆJơ<`pyH;5AM 'H$cc) I 0Hd2SoLL08TdvW:ʙ/نlisngNq߹$$;e9W/F縤-wr:۹ct11h'M4%J{)u>WtUT,i>aVײ?/_q ' Z^eMfINo3Cաsc]d0:-C&1R)܌"wO CRL\½w@tLs-L=-֎<'$~8`A? 3:Ф72s(7c->?&*Ͼy'mif@CZf6XY~暟f24;l>cnJt|AQà h@UBUFռUBnWlSɚVlYl.[b߳oGG;&lnB`ʘK̃ç* q_M}$Kj VS0^Μз_e<\vMŒ#9Xz1ptsPa@ "`ebgnҕ+WVHq|-E&W;879ffNn^\7ܟsr1lB}MMLK֛PS鱉1{(,sjyy3|||jinZЯ*VgoYi)pQt-NQ,.3,;\v տhj}/p_.ZU]^Y_D *d<;gi7^}Nx0)tf.laJor&ڂx4c!nl}ՇOU_>+zBMK&\Ⴉo|)4IUɪ&Ŭk_%4J vGP KhÂЎZǴy]ӢvğE:qC?h]ׅߍYԸɯU0}i 29;.,Gzi4DR o0w<JS{m#Z[Q[K軶?M8k5)wgnө2#&k*͝MK{#A{ YiY2ԭ޷޷x(CܗAy&E$0˙òP.$U 5?W}yբ\_dجp6v|ۼE⹚EvLz~NqT;]NL>̅b#D ,"#,=}e%ZY%-~sljئ[/t9Q#DŢGDi骸J=tw쪶eҠ|=> Y:ܔ-}ޭ}BjǴ)cOi᎖k\3.Rm25$ks62"COZnm=n1}ه.Nd4/\/Xabڧ,~ؾ*i)A+ʢFm^_81!OS霾b=j-~vWm~W'YUWx#Ԑ%Rd~RqYܔceҶhh;;M+ˊwp7ЃXnj(DEznjw7cjޖakU^ջu,8I۲ .}|8ߌ(rY-T5)o_ν+uEk~Ss֘s#n'o{5H5Y,z:5 ńijm٭}az܄;] AwU_jvh59q#|#bܢ]1Nnk+L#?Ph#b^XZn[/pyPx-6'm7lٶӇd9p/O|^TN=c7lEd8pnoދpf;ק^a{/'6Wr_^z>G\#.>noދpvp/O|^TNiS/߰Շd'm>{Q}8NS/߰ՇdC]9p/O|^T@/ V _^z> '{noދpק^a{/'ɚxo  z8p/O|^TNc7l}?|&O@؟ b{W_jTE69YnG2lP6DA  !F0mA۝``_`>oС-sf*֌b*1ٜ& 3Ba$+ƃSD-jyRW?B "HAI]"!em",zL~(KYBQVt4ΐ%W+E|Q LTL.Emۢdh9Sd"VdL哯ѐ N2~ h m6v GSؗ tp]t *; %}zP S7-KB5Г5 H[ /zۡf[/R&!Z%ĩ|c2Ox|Oh% +%+d< [r(YB39C|C"\GN1dp9\X@QvW!/Nd pd&m a/ɇ}. ::#NM n UuAМ^В:)PSa~@1͐C5P\hg!6#KXlAi\'o4Նe=...Ka1?0ͩr%uQS2TXM-)9%{PM J%PBĢ:qO %d _!_{? UKWogf+ϓ3d[ҨXnG[VCɠAY|y_%d(Y)'oʯ7u*K^?&/qG9:+R'kBAʛS-]r5]Im^ |.˂A.@;Xh?K&A8g45z}Ѡ_F|Dv&+LHI2[A5ZRejj̓Żt6πL ǃ\2ip=,X~#rKKЗ J*j`-sG8?< ܉ h>fخoJ#woE8g?oQZg/p0ok<ý*J-d 0Ηn|cw{9z' Mw5Aby^=QC"<;HbOdjr3܃-[^vm nݺFӦM`>߱c\.\^'kذaPlFpPSח'jSB/cƆ{/{=V(eI(W3*۞Wih\NFcF='iwк"k+:pr-[mlOx!~E-͟袃Sᆿ.~'Ñ=O!}sP6nc@}Uø2yLG{Nw|ܞ< *Ŗ_Q$|r٧ڕ#n ]9pی L>95{^-;Q>\K\vӕ~sFs\prc{}fu59F[jhPս1M{Q}}~}m\#}_#}קHקHi}?+7 yzQ UO|$* vVDkbQ![Pi3b/vJe}Ļ=B!pLx[h& ͰB_Qa9*- zJW5Di!) (wAy1pARB#Ԓ=D pL𐘉&"fHB(J ~>9P z<-/ UH |!ou͐ ʋJ@)![M|t }}}} } }} }*uqLG|(S*b񃢐QIE6C.(/z{>^{AǏAvнV}}}^CyR<"POv/ >p_E!ֻ76 m]P^ @} SF>br1M S"2f"CYD+7z !GP?zppXq]6*8CCuiG/p@/rDG/q BZHC~GB(A>ΠTDBEcH:p:qT!~P u@·p߇CQݎDwcNPڏN#`@@ pȏHhvn.~t?#N?nB|?(:@v ЃCK|h9[;[['ZG{ҭ܂n!B:#<EA~ N4lC|t>@_jO5зZ=C軎ЃC$hG_t :?RHӿ B`t8G@y$ԋ@.䣡h+1s3>쇾>퇾>ZA?cCBzȇ*jG$@uwbQ [ h!P ~?hh'^X*G+ cma8=O C` @rਰor=8$0>D Hw;3~[@((zQP L4=0Ge8DpZhh&|?(2~;sć"zHѡtOi':BGґ`@@ pȏHpAMՒ(8&=$tt A9pT9jAVCrM;y'Z$@Z"Xk!P ~?hh'n7AkU22*&ԡ15Lю>@Qt)`'E(zQP@ݠǠy;^} } } }+>n> }`ܡyJz(poGv@މ.t׻܃!-!?#^ra>]ɴ޳~աߖ_,]5TT ͝b\1>)1,S+E{7Dkru4u,nJuU6 }+-*11i|ǨA}]z~uHNڈ4skrRl4ʛ}[by[Ҵ)BKj$o:exʭ3?Id}8?3bE1' b |||4z⶷ ᤊ;;+F:(̵GzhQb%6fBGO*,ѴҠ.> Y\?tDFUiY"xHOu0<|1od 6 Cݘ!H{Z{M;j/=0h22t uIF"u#tuo:'/ttG:-G;O]-t 5 2$gpЀN.j1ڈi#y]uHC)%Ml+wHhQ;r?={-^ 57BMLI&Td:h:al5Qm[ xؽ;=`¤_diiյ@5ϵTQ_ŒE%222݂Y>|f9mfgq-C|B%M-_ljQ/eh2'i2:e%W?*C7/--TT/_Y^T~DrDU5j_ս**** qS_ٯWN*$4y$w۾߮! $:eeo+mĢdܙvLӟ3S4c61{*S! ~ERPj{MCP MOMffffƬA4i~y~"ەJj tK$O˟EгVC1ITS(bNlr#A [\-Pf)`ScDH,F9PFbb^l=Tk wBUX!&+*P5W@(/E{:N-߂P*L ݕ-F,4_62T6F1]Y$PKVqzMn2<=bڡuQG@V Pwa0( zN~{4m4 pfr,4us](U*uN4ރRAC> $@V%t_oh!2"l4Wc]1/~gLc]"*A%w.c/\`%.3..K..]vb.E.Gw\Na \.&k!rW|_7tw%..Qw.%8e<κdb[>ޅ_o3 ~)WpkD!>nôwnʣ\=y\}x]5)]x]Fxw$Hɻ(0 V ^-bd^/m/%syI#"y.MMIeyH|Y8o;;Y]L!ɛR:ǻ(視(~'+N_⅊R|S#bP gKq/|-K^5$ݚn5 I |7Ȥ6zƙt"LMLLk52'ʳVZfb^)i0\b|GV:ԺUTǮGDӊMB rۧ׍1j^}[İlE;^+ 41X+Rx줰5URvuK5V")5ʳb۩N2ޝݔ͕¨%sP;7?O;CmRUJj6>Zcaɫre#!H1JkdtBGWQG7Ql"k>pmkus:^W+%+}Hie7Z]cEbvL2>S ӏBbY^V6R2f#9g~cJ}<0$u:L0LJoIg3 ՙuA몧4uO]u?6-~/2f$O8Ф+nX\[kVK l73Fh6W͉[ic~{9ܼ}Z"ЊvpPtxγ|@X,V'(UW-] 8QsOSB7i4b)b?QFEbMFf.BJ[8g \%!B%b #$]b-b je?Cy-YH[2JJ3Jf$3ݒTi`[TҵW7~#;ՐL#!J qڪ%Kqʳk޸V^7[Poq AwB < .C`J2+~zRb[;{cHo,ۚ7V䍕B7v{䍉񭃰AX\-ދm@w1ǗJìP<589#)͐!YoCӳ}Md[#s1,NӐNKfW~~j~6CӐjHc3R }ꪰտ䴩ImmطgD=w 0$\ =G0 ZiM&naFM/wnapS-bn1ٝH =P ®EJQnIQ,T"ac;Ղ#`eIbI7`c0Rx PC Ppq6ZCcr5AFWX$!.8A`RG#bg#*\{4?`Ovpr::sR6QL6o\;!.B,y#lc~1,Eʝ{1JrxrKF [d٦9Sڰj:#M֠Ҭ5=!ʶqٛ5қ7қˁD7țW;޼Gkf1A)ښ k>O֨µu}TUTuA2\1'\+]pT πZW&VApܶm߈ծ'o#m#Kmvhr;87 FkrMzjSQ곜ham*$HS(!/ +ynҦypȬed㛈1W*Bɵ`MwxԫJr^)^$6 ނkxn[T鬴jWԶ>f j֫u(@Se;1؝'/᜘t//&JIHW$, |LR&M8#AWuG#$C&_Q#!\}IgԪXJѱd](Spm)afw&I AhMu;hRamuIZt@;?_@ D .&dԓKlvgC6Z׳5I@6; Сte:Pz: 9wa6 >XqNL`čm9J8Q*NFl(QvFSɈNFuP9J8`nا@ `q1vJ3N #:pgĎ6vJv* [?/(ʉ`W9arSu\ [,ljzJ 'R"a!jJ|&3|91Ob~<! jh8B#_3$oJ-|K?kȨ6B7'CƐ4i&_7Dd8_'f{j#P=zNTߡN|Ckkgj$&#!|H,g9X 8׭s)zrGBouG/[B(V8I!B=);3xʊ/agœ)+߳ӧE?eM%cuh7=X(q>ސzߓxwtQO[N2f9ɐum'pȠ2dGqeF! ?@?y[:*\ivH\d9a? Is~ :y8a`_qu6znza$G'HQvVS\nҹobCӤh0؛6 ^pQvLd4B+F-rObjS7{L7LZ^HܩSZSA JWgHQrXU!(,lw`M((i8{0F12,._Qk$oλaO1WJX4 8*l.T˙4;t)d !P0 RT~`S#!Xs`8G69B`2idOēPoB@ `3A]wl.v6tIXIZLu/yتd1 =q\ٚ0RM`x7%@)M>0աfUUmSC})啹r1;OZӉ||>ўyӪɚ,Қ5AΤ'(*\GŖi6j_ʽ+xi2 k?rCH>s`'&'f$OD2/,8*sYy=P盷5lxeKgiIZO@.-2.rq!};ers,/bPdrߎĘD(aܚ` ;Mi yxC 1?7aPg'WZ%#NH^dS 1LJ"P'(:cZ*Y5)!9K75f' t2& ~r^j >[sЃϵ]<ٝ:uwԑQ~OFtI9kӚSx˸Os12_'s|)vz3r6mXS/pO*) Ϥ%ꭻy,SLXrrKZ^{.F' M<#|a؞$g+$tE9[ NaxNy/磊gyS8lqn0?s{HlLtQY(\Q>}h!>R] ~jCne2)ib8* [BmkF^=rcb3K,Ƥ^[}Β+)6*x8?Ikum6*/_ڍYgJ&] }Eu`L-ۅOdͣ\I^QWJ-gCplDO )..C2䅕O_X G90.%>6tw!TxODo8vg.]E6 :'u^ty:s|-tyl~Ck<|ˁ.R-mR(X|G# Mj{Z<ŅqAt7<͏.ހEڥCjIZ}K}][F\*A?AL8tR{Ң1lo89q:qLYh\vICUĄ YB;,5bf3s0^BB"V64+B7nb}b>ix~ڀ(.F?e _Ān%2&m( ]B1~Ml8E^hI6$6^BHqț+r7coF͘)q[{7#FIK`0V5Lv+cğPt&EDEiX4YB_r$J/${-^u_2t_/.Lm{DʈcyԶε!$`'D4&XX ņ@nR--X0 [M, mTP "Yw<;}o;}0VW~_YsZr"')$pH;?)cUN6RUeDqY|#9bgDMOEhs$%hKٖ~ b]-zx+a|4X0lV@3uj=E!A2gZr#lhHh,4$1{~mdܻʣvSWϏwTgy˙( "U #%6.'1Kҙx%qRk9)BaٺWy'b(ZpԭQ>!\y ;8+I$bGK .DỊ޴˴r:5^.179вw#}nx-*oBH^0_3窗+^T]f?Zet^܏Ȝ޽3}rUaꬔeIpds'u]\}'=NbϨ.Qa9hu1\,ɞfvmD=zOs|f)܃4U7Utf3`>^j̹** 6d23+<26}9f*Tڳ(n!(, zoP6ts&,B"ZOH'N&:ԇ+"Sbxo!^?=l*(q9Ǿ4_M%Hpni0iM9B<&lI諊-nuaF\`8cto@o}:FdGݜ+/qV';!:D99rJZKǭ>VЯ}lM}lhaB⟭U)2R >KcP?]as٩',r5iCTBU^v8cڭn9'5ԝߤ׏\LuGyz?eN5Xլ/|Aƅ$`_hB*hwܓ/^"E6܏buX9} :9!J\-0zј,;xN z2$Yռ{s~ Y:i#oGƋ~~žnx#1&a \cB'{dP?ŭ$B>s3Wsh.ty<$xf_DNQ<.§Mql{6v3O9RK\/k"HgċrrqGY =;X7q{Oo(}@BY: @LUS؏_=ZAEB dBs{O}1^/IrR.gX,E_Oz,#(Jf%a,MD?!֢@χvz>BL%P#DH bKR?x|wC}@WS_-+Gc_Zme(鍽lԮoH M#"#AH>B p>*@_Z#l3vaqB)T= bL*2(H$e!bv 1EYط[^&?[I#X@_w7yz91w7Nm̿&N*Xm;,V֝GPcZY1n{=Y,dcP9XO;8̝^tNuvgD rbO mPa1[~d7 3$݌Yo'#Lx!KPĞ|8o-/xθS0s@aAeZ QS^rw`;EZOfj455X3N aײ7~$? 8rZsCs%H|g4S)UT/c7icnuZU$/69#%F"LJn .E',%Mt0RmSHH}V1(9 e J?e C{ C6,WC/:w!E\e-/*&*X:w y*#]jdA n`vofưwLB&5W+[NFBTBGbX[y!BP")"q4z"^*4k qFvn?z. 1e6*89H{Ji ;~ϟaxөYj' Vuyx]&.R[YS Z(psu\kO3cNsǰ;Gx twٕO]76م}ʍ 6Λf[]8u? +r!`eE 5_}"{)h.%3pz؊İVwDX(:A]wX\mW>?H(^MfF9X$B "g7V&]ԫ?W ^h*}a41Zg/MAǠVN|HPғj>44P%vFXi!T$hBB}HHdZI>"}Aj>o_Ǩ{:4TLF_\e.()@B[D#B#;JC/Dgv[P?u?@wɹgqմA1jRca~z9aqnk?`>{.seF)P\Yq_>"X[XSe=%X^/?36Bx"1(iw`YyZ/ƁPl0Xb8$t8͋K"ÆkBb0T}/u/HJqES[Cz{2mʅBuFq @Ta4nyqN~{y?J+ ̓!!:qJ%pBa.K+BTH +p51TtjS)ZZ9A7aCFc_ Eۮ09 q|wT?J%![+dFr>q)b+K皆bZ ƹk9#bHh[:5>F? .R@v?;b= sBer|:B:DC>|k%3$Ew4)+SO;5b4Zs(R1r5C J jrKqHRHv{Idsr.<j.$ti>i9 $8~6ށsY;dlӵ]Poj)򉽇p( 3 p>@1UHf"}BJ(|M ZvY1ecO*^zҲ1[(H.K<#UwL&\NqR}V._d ꝋݍKݍ,PKT)Rp#RYϛL.-G:tJ]s8oԥS8kx4_.1Ƣؽ'e}0晀Q[[2ֹ \$oZ,=X_4"U{boiSb bga->Rd=xxΌĂA^`,U4w^XͬcjadT߻JJS)Pp#yjs'?X^ԗbUL6L7iLEK㤛wDR'Q{.Yr룟 #k<c[E?fr8DԈ&VXE4d3hgx)R u4㹈 F/܊"|``}Tjdq/lrVG5|58=)2_.ꦤ]0 z[EW# CbAD7[ 1Dw.τQ~$,igЕvsbD`^p^p4S\4|FT؜En`e&' W# a"1r力릒o] .LHLxqoj;3y5]q,&)5wrOxt_ZLS:W4o?[ `&cQCqPXS,jAr91:uE)Q# q$:1*>&.>**'i^ZNu{B[r\N ":&y{O[Lj=1n1Mr\W^f@@Nj:5H@;(;{-L(x !Ck>9}:͊Svȣ*SO!Qe0CSPD4`фNש>(ЕߩO NMQz_]ZU6^;x.Ȩu@up;@.y^w̠.NDRYhXX.'"3~qb ٙ9B7XPسaݿoaAYgh(0gݷ2߆~? ¾SS:5_i;5YP`4T0r,wbOr )yLEFt#ѳGCiSQroGcvrd`G:5DZ|tj*2o;*F2̺ ,Dזx:jќ(ht#gqGh\jvᯐ;|?zLf%=f|gQwg#'EW ;E> C%n>jYn7 ywi.{k*nq+w:5}_{ Y /|0 Bhh!(S׮n( ~AgUW;TKBH6FIMtŖH D+_ɾ-}= g2nZRԅ`cG!bSij$Jpht"BR#T4FC%H1-ADXDusu4f]Gs 16XGPGTG", 56V)\G󮣍sAՈb_K_M5 j3M;; O?6Vѐ3JWlq' ׸ȾO|'(X[(&myQbtVg3TRˮbl%SkbBDA_a[uj :5r(cB w)\5ETw1]>%(dܥTŜ+A\n!H57Tyd[]xeM-|l5U:2{M)$#U1!kQ^Y#ґ뮬I_YVR*F^AUb]Gl,Sፄ `G7<|l;paGn6xU#1i=p\ cSU1!IWd M$_YGՑW֤g5%|+k$ עU쓲SjM { *j Q xYxI)|(lɣDAԀq,M+L'JwB6H'g]HBgOfşRgu\^?*7X>׶vDz}.(2mj˜HZa@ ;B v‡.yy.uci>TU2V圱wV][wxfMeD|7rb1EAh R#JTJyꛇ %<\}_9-daF:ڜ0h^739Z4zԲwZ9lA`wQS+ڂ. 2{gc-/ybd$XcKIhtKF[]dt8H"R&xA&<>yi]c*#nLՎѻNK\"Vk3uuFt 9׽v {@@omȿd/Uu&^p}{}jsQT8gjbtoW[ ϶S|߮b"<}[9}5J FƿTNO [UM-:U DooHX}v֤ee-ϊ ;L&$pc~UIdTU oHTvuj`3}wQI$4~vsӉv/(DQp3-XIJ"dJ6eO`-n5!NYJAFg~-m*j[[Zz9) >f<$oK-aa'(@HR3۟͡䛁" 6nS (T 5Σvec%Y2>yV.w)lR (m8;1'G9/ςg͝`7UŐ|>MYu7P4a40g5u涴5Xz~U }FBF II[#gac޽dkY2ӭj'upm[ z*[Zşܽ;C'K:p~X MaڌKx+{ 4_ax:sjy Fy[NE~ոVՆkOs>ς9dy"l{DV` O4[]qt>eCЄft8K&fMea8NgWJ$$rEevAf6A9-ŝu.tJ (вw`C_Fκ̫ 3&rS8|yasYy{ֵEfv #GysMaMiIN#k>C2.Fv#R [V g*geg2VcM- Ŧblq6/ۋ ā7x޼^4/7wǼV7qe qR!_7U16g+mM8GTVY( ˅V\!DlbDEEEJʚBbOf%k̖,o{)=-"%o$_$@JJݥs`tt4WzB(#}!?f2]dqI\#KeE˲{2Z +g_(*? /_?QZ('()۔˕@ST^RU~W;+)*|sjjj$AگJqm!nfURORj:QU=\q- 42ϡO^?u@( ކI)d1hHL$F#z{Wft36A:бCn͛jqk ?\Šdfagd\~ 6s¼,Kva61kžaxy ERxyW՛Gfpa$O\l^$"/o %JX]_+O- B7-~' iB`/.\ \%Ln# B.M7_q-).Fd7R Ojg5ݖs[t/VD^)s<˙fY85K|Uzt6' {\0?l1MX&JX#1cn @.oo <9o˛*ƴqe|:~.3jl-V5񄣅Q% FSUoa[HD5".]%C)r2]Rf='fZJ0동I$IMrMb%K%$ *NzH| iT,'=%^I-d.`2jYj8B,MVT}7Pl^Qo%"~M-*[j;z?]9*<ښ,=LPF+ۘ/Jz M(G!"+Ek!];${B擝G.\wJ2W[]??zhuzZ9} j 7r{zH!U&tޡޞ+éS;>_ _oTJGoSi5K|d'>ln=л@S).չ䜇d(3;E~>>}}ΦZ؄#0>tR6a au ]VK1̕E;9RyxiŴ&4Ӆ*x]J@6{Ls&<KT{j")m#ʏ@V;$$ܣ{"tg~9~Zs^Ϫ2mũq+Π+bc6<4tp x<횂nqX)B"sP&;[8z޽?ɊI4o7:X\RZjQaP?2rTAOӌ@Q_S0c%+uPnqb0bts.aǞ^&\]FWyrCIG#фh.ĥctʣs~_X7]CCX5X|҆l?tQw>f^Wt%UXCmU3cVR(nvES8W*Xr;w {[Y^|;2eK6#.QWh3+4#Ѥ ;]h,'btj%ڐ2#O- 8_8#o‚: 11S%^fa;o_-;Ne_̖ fX\Vjwrٓ=~nMhΕ҉ :}FeeI~J{y&^΀5pU΅kEa{ BCllHl/ߦȂ n{yXE/#85r.~x%.Ѻ^K%\o^ʥ.^jCf nQm\@O9\TUT?}u8sΰ5V݈c9} `87pӚKԗ1Ko~ϸ8)Iq^۔\m[wOWi;PTR]ٌԞ S,blp^~z^p62䁠;#EpOѹw>e>}6}շ>ZOm؎#[2-3ٗ]׹Wm',v\=NB.$H:O} E,?9ƊOZU7J%3HUvߨgpH: ,Rw\ \Zt7ؒw-7ӵ}jF]9[M,Z͟v471NXLLq1~3ƺ[[θWs}0um6ߩ F/M7`;a[YϬu(R^~!ލ453ǻoiF-:ӊF>DQENpѤksvwVϞ0n故j^(@ȃASnڱLnMfCc0ZFv[gFª $ض2B:Ҷ<*(=%c ٘,򓤤̌Z2Ŀ裤1O_DBbPGkGHTjv$c3u>Bg':^EBTHH^H>)Sr'tyct'xږh7!K{瞛Y2fk~X {\"--*8SJ>[Vh".TD5M]-۟ UT]>WxYuQSzQ併=jgBc`j6sػcܭl[WQߥL}{ov˗ >φ}ruDÅS뽻t7e,4hbl fb "t iV]DjnC^Dg Ǖmk=d*ٖNK^fF?zPF5ȧN:+g2:edMB{$3/Epӯnq'Gp;3[`\RC9im\,3)tIXC6!|熄z`4,S%U9m)z|0jעPϙ wq]*wI׿0pUq>4NS Nʰ!I}ob$<oAou@4`7wܻoyM?NB9_y79]'&Lr'D0/,&`X۞WG!ƍ_$/bB5GoWOm;12#kY̤"X),!9u߬&V7[2ҞcvMǸ϶2CWt|13GHR׮[OƖ`kt "ȿ>n;dyIׂhϙ5\`ؔI; uW{qqFI3a)t^~_oxp :s G&["X+,?&(,;oL3px>QVܻqCk)і߫<|%:N<]bRPW9RzeN壮Vƨ'T3T`JKUT^˔@6ǭqW|6_{9&%LϖA^3P17\y[Z5]C@8T -ǻc-+14׻5'{{*xDĭff5.uLz-R{lTZ^0k#R#"K)oȈJAK6)@z J'[9s!o5bKLt?Dsbݨ"e"at\F.=X?WJB='*O9\#ѮD=+|gE4@dFUY|cFHmG,S#uκ;0 C1b33ژ{;V쯞ĭA`dɉ#@s !t43dnZh La+8k+to՜bUߩ9sseJ.͍o`Lgƛ[l>;˫=x]<=|,!(_3ypkHn3$?._h3"D2Ή5Ek$`dd$A)/9-y!s2ܬFD)MN.&H3zpm{LZ-}"mIe`l p2l\)kHr+$9g|x\XsnGV҅hoIΡKtpHHN7fcX\%g9c8d% 0#<:۬w''fcyT+7ñw7 ?& m+%!pX@ ;GraE+[ ṅhh&(]/D'EDwE२S4("KG$VFJr$2V">y|bT MfIVI1*ܷϤRCj"/syBdѲ4%;&(SZedrP)wRwSCr9yUgsyA9YT(:85n+V4V7JeGIRY&_ڪ:*V]U=Pj8B@=MF^^>M>kUMmq/|w~Kвǁ߇+:lMv%&/!!Lz9{F&`'zN.|zTV:8@/_?K?jl r:aPV k#k78Kƪf=a6V{c c7f#: m=!'ܹ'tF>3zKQƭG'?龑'q ~Q.>ćJ }|^Iؖ3,VRʎ"^TdbkLB Otx;9:fm^08{ߞi]Ӻʀ.kvR§͙?y)yzG[8ua\OωQ[.StϥG{>}u Jvy[32lʁf,y+ {y|a@u8GfEYf{NWfGko3Mݍf,] ttSXYnr~8ͺYGcݸb 6\v:@ ֋:6[\yy^\B=] BB=Y y,T~{oT0z(\Ja!-T@5$򲠋taGD.0yS*Bx3^YlX"Zv.XPNF  &,&1(PX>faii)K7T?KGUE 9VV#`0!a_㾆-}o{}طP:x<(wT]>F%`WmW}g;h)‚}_MEknM0tETCĺ -tB &`ŮP@ԏ*Ŷ 4XTػK5{=+<3.[k탺c{F]~sgXX@w{>[:w 'zf?[j-{yYEbn8} ,pw:w&$X탒+JJA~I5(5 riJӥ9bit@ Pt ]FP@5d7ǤBbs6s0}wCc&2J&BƗ2d WvUV-ۀ2m| l9~s|Z~ eRaB}F !$8K&ΘX`R80LLx `F3w010}D;S=m[~$ϱo C̐P H&;TAqgp5py\N!g{ \>Jgě$³^7O??W~&M%hK ;#>Zq;>m5<lLt8vk1 E"DAQ#_X?+#vTg=āb8I<=+PGm7n^ZyГ$gdddlEMv:-./y%JIJݥˤ@$MI+ϥh?ZKQ,݂^4#6j>B.T 3&`ӱS ^ƶb,v@;ӐYe޲PDUesRYE6 s|6f*\i3~y(us<#ޏ3dά “"bd7 h&t0`,`rglBpĜX̚T\f2zȋRfse9٨gA `+.`ԐK7o5r Cff?z.!ȁ#?'ը8.sr?<>χ)- '1d~Ҹ¯T_Kd""r-,'upbdzQ薨FވEbP*|x3!f=I9j/+I@ۭjl:N1Mr;fԸlYoIIWH8iJr6:]bbt~6;&抷[;Rϕ2]L%b&y/kEl~aCe,Y+de{d'drY qVoĽp\J^1ۭD[mN>*%6DfF[Pe`3f3< !$132J˥1 fcZtdnaՏ˜ʬF`jƜZ@I#8EgD3a5vl̋6JΪzeUg]-}usL-J*F3pRI]=ZE9<򘟵1> WEK7*5Ai6Ϧ:l%`F)Xf:qm.' -.} uq ]ɦU }ƇU:r|G(O{/ -'D<2ޫ?fC  0cE<*vc06DbVpA. Z+^2yd>l#քf!%*VcWM ]%GUM ZZĭ>~*%VOv5+VOwKMK\_ZJ)p乥P+2%rT5N=E^䜤۔Z׻ Ƀ|.|Wvߩ<ۉ|@|~"O?.RÛklP<^R ^܀ˣ`E5ۻܭj.˗ω{htmpsBH<%AIDKTN'Clt4DAZJ?#itIPt:Dߢٝ:̔+IJp;[1VaQĀX цb@]f$,ȼdgc^Ff}\ ;.]aRaN ]1n@K}/~׶Q E6ԭԕ,i6vtYvv\4EI!t+Y0]ߙi2Q 1qw=h9{R.`R]mv3jX__똯zyi!q8w@>0&4ֵ@8 Ajsу8v;tJ.1\dL:_p4!"1FsH/-Vވel $V䈀aںw=Q/=Ox 5<WwDGn;>*o_\<6K#\ *J_Qq V]Uaa6e*TuÓutD1Vȸ8$ 9qq\qzDž\vqw;/V(JuFg~@ud,4ӷ7O/^{絫\8> 9PxvתPg1~z{w`>oߚyYKh1})nyž虡D+qKAږ 8߹"98LB}Bތ:dÝvSyz[Ƅ 2K텍e'M㡚ƷѮFL5i0SѺcGD?0x<^h1/\I3/g|_㾫U8uIAq:JJVq2Jps-mZWDBLAK4T[WJYG|B|YrW %?%RJ$KzId98'/ƫBl) )=& ERGYt 8i(:`n@w (֢T77Ck`~ T<̰J4dׇyv Ӕ1eV Y leʤ2cY #q  y- (ef)YU_q:1f bя0\  Mh 2V 'rMk B%՗tL:vN] ˂AUpĵaIY)l kBI"|]B./)- ?TZֵey^4^@kld;جa Y֌7~i+jWTP%á~3͊5AF[V Lea'k9;23kiXax2/,a yLc0f#3NfEkH8'6I~tDKK_*{rNtMY,&k~?쏩(p8dBvDa-Wc5P2?N7&%MOӊ|?y禯[pS%\Qh"nrQ=NtKrqi|מ%ƾ3 /KwUsogSSH~؝Ƕ "ďNoY"B%^2YoY" zF/f,dPh/,yٮq_0WaWd&qc15ZX5* *4MK "SUWy?]zEO|g9wJvP;x@q&4QٱQ䁍)MaUY]Qif@gӉ5/aӢ:63Z炧EEq+:.sZt]t_J4P&Lp-`oDCrE+ W7P|o^L/` @h֌:/3_ X2&p:y/^lnjڄnOMs| 7dgo0I>k25-nyz[Ǹ o5zA(b3}=xyz|xvJYW:w]޻),}zDBq; k;.jaz?qi[f_\`YSm1A%Lx' 7vx\/ťU^U0{ Blo/dEeZmʯ%'#kOǖ5\ԙx9dM<|1qњxp^$j67|, >^W@ژsGl)N8Lzf]0LEUko9>MIEC8Se_Ofg?|T<+<؝˶&z/%$D꘲v#ҁJ)ma Et͠=t5DEڰ;P%?!*?@8Z-AJȠ*0(A9ǠPA` 2 C^4`6db0bL~고6aPP躾w[?F5ЫMzL8W`10Ro?iChiM"L;i?4ҖMN3aӒ=#6Wk/NZjoӉ M]D u:.Τ=ֵ}eFM3덠NꡕhMz?aB+l {뿀#j8[ѿ? 4 bv1 8f0i3 |@.0߅=곃r@݃<mM]]Qzq |cKsD9Ɓ҄H!C͢"kkƞ SuF 8pʫiwϹTϓeK?ֿP/˓]ݓOE#)4On|[O&@sr˗^ABS8^{ȘwZ)bJi 4\elzn`?Ǭ2k{;4TY_Xh%4:;{αye0'[Kؼ6RT`YQ3mXeU[6͠dci}9uULB5TM]0UcUL}P+*q]xd?Rna)!?%c[(μ*_1&ɸ'<`Q#ن *,qR-)3~ia7~Ҹ绞v\(1 9鎂=<}&1Q%sMEEB5|_Os'ⵞ/sZcH~jz@Slc<\@v\Α J;rI.=$CMMPv݄рWkO ݄AE@Q{jˊ< ,o Sg>GB)sgkkAs As;i"H{d54GEhhHa}?,[#=KBhw(kd7cQiڻo%i! E[`%ꢨAkDC4Wyj+NZ>|NZUaCS'sf=)x&(|!~{H-zH "[0FҜ!??AZW$SV 47[Z#R& z^N%yP,%~{H,*#;d͐iEQ75!~{H!lC*NJqkz/ӛ5SRIkD&y<#_ϯ[#e&! kcKC/U'VJӰ|m \C*_,Ot@SHLǀB<6*deKl?z͙Akd9l?QTOPGE)LG͎gxձ\F$f{Oj!#uW Զ9Djٖ=n>ت#o'sgq'u] 2nF\1K1c6E58h5CY5r>C6WfN(9*sLvdm T[V:\9; kͱA^blGMY">o]_E?<:AdNSX`cHoH]d$l->dVN`A!b$Ef+yU\̿  ,'n)sDeO;Zrxgc^J 0"o9/K.3Z ?]}b;\g1SڻAgJd}nq>̢PzEDEDVq#$O;啤9b<*{ٌI+=@0VP~9>|-BB?wNjJ[i-b>}7["?zO8:C3]:{'g`*k(†jmd:w-?hMYwFn}fLrFjS ${M-!bUIY .#:U gNb)eT)r7ie/56s Ӗ9\ۘbf2.!aw6[:r-f7-W[@qf#.@D$M ~D0kJ`rr4"F\׋-]MWciõΉ8j,o{ļl̻ku4L~,Efyb~75Hᨕ.DJn6)8cl.g')uu!bS|L|Ako=wc7{nUsk^be'es%W%RYBHcv9R?)X#}LefKii& 0#6ۈD ^D?ɬ- rCYE`X:Vp;k5FW1?W5OGe0|9aa~e<Mv(Grf-G|Rf|mdԌdmu@@0zC HQ H N5\8?+xeO2ITBC?w*?[M>^nuXAY }vo"- )hbN3=dC PBޥW&KD)~zlEǦ@6oEc<}˨t{+IqQ?)S,BGw`տθTd)O3,S!{\δ˫EUMM<Ćl[kX17%Nv[t,2KׅesV]5o{ZZŪYHw/:%_ͣ*V6nKdʰ'+e:ײ}{ߧ?)'T]36>^5cKH4Y}B ֈmٺ#8nt Iǘb#"~WT^<|Qi|r.U&D>H),n.7~b`6W䏫ԲȻ,fA-{ڹos,J0p(@pb!L\XN0z98(5u֌]X-„,&JEy]tv+'S9}S>sFVVf'3 ocG T۝?`ˈY88KD$tʙO7tcq^9}B vJ,[=.teaw;۟r'(ئd/jцtN.~3V5*(o-Uu(δhUa`">s%3|13П<;ywrUnJ=| iXCC5lZ$w?N 1H2r琛H_.3.%&pnpHm;7ǐ8"^oo'^VoRxZaoHl`sh>*>_zVlJaA6!qӷ*(f/(Nn}k2,KtItGE"祥QI@xxxZ'nobC .-J2U^/%Wq@Ud4VJUdkۤ@,-S.&nK+vf7LX>]"f]ѢW&)$`H(Fi-"j]NsOn $n},%J=Ǽm΁#}MW:_j=Ѫ*GK#)'2p-c՜5eOi˜4NI.װi]w=O9Lк픤(U=W"ӿLY:\:Q D.#Q1 loϥmk땉@ˉ/{h!q x@ '*GT@YM\%jl'0]o^Ip x\M,@JQy;T덬[[45ў.W|<sq_q1q6|x5I8,y<*lY߸x?+9݊#t~S̯ˇܬ2k#S?WM${D6bym.Ɣe8))]['I$y"I䣤_2l֑R{N nJ?\lGnˢhkm?ZrOV62+v(J5O+edĵ / ce-*X5Nc59zg=dl+plkvmt];LB/: 8©>,W(˕vCr\iP#p:\iJ>m/4ܗffrZHXNS|hT;8DSUpYY'_qXR̸*2nVnpp"P$A&{gaaGb%hf3/k3 CPdRdL5ݐ Fgb jag|vYr!pih'St7TG}.)؞H?."1Hdi bAU`ϣ:X;V=^b&VR&S|1;hLx?E%7x`Cy lF7޳iy|gqY~ k>{Z-yǯ8ay4+#DBn*ƟMu'y3I}H%o/yTLɼ_>dr( Y+c$'Շ2P( Dy wwgұ|`w/oOu;hF&]yP$@ԳylSQ?RFMӊܲ7\|40јޞl.Y;SOYRJ_<+p̿o? GViz]+إe~]Ha#ɷV)+U&OTPczxϭbzxbzx߭bzf9va‡\5Wz*2VFC}hVU=ͥrC~9?}uuԳ'jE5#5#U4#Wv9D}4%D&Lߥ=ЊC~7olVV s-jxXVƷB Whh-}.gV~5eh%tl ƣX05ijf o 4,Ӱ&C|f`X5Ke`lllOt*By ȊeU?W@\,x$ǵk=wVc+4 ȱcƄB,&‰-Kd SbGdASⱼPf0'c4Q ןOo!v=Pf [8TW6:;3Fw>.J#1]8mg 8&,5|W _}3'|f|qcG̟_)}oSn0wvZB5p4`YpwAZkBC.Xk"iSj"Ǚ{g"GjۚJӔrrmx9-x IL4J V#8L{g= cBW}HMD5Qu6|fA_:=1ӌDa3)mb$+/yۛfX@TAל;:`#L4|ihiUP1_n`4Fuu>u!}ױ.0^l?I91!)U!G@X%sBD S A!V 8 w|4?""$H3glXXXXL{{yƑ?)֢U爺#U>?,bϧhzp5n.\l࣍h-| BBẌ01C$aK!Ta?2s~~)!S@^< c&濯O$N7I:$ D9ԫ@4HKDI%1'B-2$z ę$|)orU $@֒\Ib@dI$C d?I8 8IHIy'!ܸC7_Q$*lB I*n*G9$VXG$eJC [M!IޛggD_M$QB̓'#3O:3Oz 'gųJNųJr$} $ I wI IH#I4H I];":J! A+G[bDioߧdOI@d &IYK"$IJu $$Q dIb~lR IM$N'r$;I2$9C|&I:HrGtCUCC!2$9I4)$iQ $iW IIIҡX$V,e*2I~)2I@B).sfg̙e -ADh^Q RfnVoeiE+E+״(,T,-oihjm5WQ1Q`?]?_gsy>@"\P]b$Aeӯ i\Prv@Ү$N$t-'9IbAOsX#ro9?H/(C2ܹ Frΐ)'Id\9IoH(({$ IjAwȑ*$.'yy$CY9 H('ɀ$$$_Aсd]cZdW9IHIO#{̟r:v*ZAkZH쿗I=Hˏ%Z׃0PuA=P pH#/ >k[ঠib@K n@kgd[cqA'c}sާ|].f'tDs=8ӹ;8I nc;]q7qw~> qq8<4ӍOP`s<#s~?-=ܞ>1nFcq{pmCVr{p{=!hv{=ݞhĻ= nnSh q{^u{^s{Ƣ373/=QuJ{T?y`<>3ܚut{:EN5CC'x=LF_2p \^@`;ŕ>َ?< ܅C'H`vۥ_؏W{ru)[zCMfUa#2% jDC Ǿ3'ԑT\AgSE3#puVxsEg8u5/#, _Xrڇ~yd_> [Ѵ~i[~l}up6'}>u{pޚ-};8×ZnϮ4g3wUqڒ'nDžZ.`1QN/=gX` zD]B==q')iir;whYRx/ &[|۠:eû›qdo3%[k@q6mj 9nY[k[cv#R\89z6fx-͵s{Vzwↅ۹:L;ݲђ>FE\]>YY )v\}A{" 3]n^H.{0e&7"=害Q&$7){ t pQ򳲓UAnr[q?(Y0b%+,W%JkLW`@y&_*`: V[LlĪ:L`Ej6q1f RW`J\ IGRO@"ԍiZ+dAoߣ&򀺙i@m4,D|/6oo{oe7M#myݶwVͼW^%~^MBؽYZl!VQS6.eTmJdf%KOE^#g"xl;Kc)/lj)_ J-B~1l1TŲXrT8gV'aqo"q";/x*(>iLc:}բ0z'M{8[1"_nxvg@<~όy͘_ K<,b9K,?Osģ,/w-rQNWSKYŐ}Ĺn:Ƥal l [oD9G/+WW O#_e\$ G<&iY`z^r-$.rmz`0ءg]/HtX,QWu O*2mbU &*JԦ.2< 0=Q1o`;lfl9>\0l=[y~qt<[1R{ޭ 91^2]ܒ+z&VKӥ+-_P˶1ڕyiRa욏C~f#O3;xIw yu9^R8B[GwϝINkץY]s0( S\;.?u"v.Q~Q< =:#uZ:!t\.}R.um&HrxTFD7fa5LB\JkzQx1~~Dw¸6;ayʘiOUHчRpϸ]{h.k'}ǵ~9s2|O*]72[Ufk)EHSR;W~Vљ0LhZi@ӤH"Eifi\;J[h l9me&ڧ4JEjhmm`-ު}B;kY4Q~2:P[AVѡyH64m#t3m#)mN A@[kBk6)B kj/g7OC Y6ÿRk-_jjHIvVO+I=˚E~]˓ yay#ZZVW,"۵(L6rAnu#dGn%ɵNrh@n;50?1{Pۂ^20[2k/Kl޵g-իp:ExY"ca*) oK3IR0YsA&Y/@6A `|0C`DIwȒwtbTw|;ݭ5 tc˶1d[ͦՊ'W Y.ӌ}~<Hїx9!tn`_C)oh_xxO& .ӌ}~<O_ɗ3] /ӌʟvUOy;FzE%rN6O70cG<-/m yXWPx1#:/a%'yn`_C)oh_xW]w}< eJN% d!OO ApT g[z 6hhCDpN*A/p7 sqc0u쏁%}y k~|9]]*U屫w2R$;6-ŃzsD'"fn  ADBH$~w`GGsPy`4m*_< %הS. IqC\nwqCNĿy؄|l~Q JȐSuADex?epFCc?zN!(tvWdyʶ eNl.e:e3yҫs~ny߿}cم#s݀"U7*C~r!߆|!o{Ap?!/AfZSS:U9+'tAW018Nïcf=ͫ*:ySB}L߮Q[\geI7"k5[8W 5y XErW)uJ <( 'K0N4PL=s39?yNb>=~{owS +cJJSPzFشM}2Rd5Xy^.Yi~Vȗ+-%+1`rJkhd% +W=|]}F4:]z%Oo\i'@*{V7 %%nŋ_! 7640G APk))Lofk,K@~#vr`|\_a)bY"b^ ^? R)l)sTa.,sA&Y/@6A `|mu0Q& ,a)Ubv:3џT`CaD`B`02pr`0*0hgA[%9#w,z`,nzd s@;H~ y0LbSV5EhoM:YӄxL5]Hf ,?z㰆A%GhZaEBk̲@d .K& 2N|&F-O8'Gm۱) ~4>S {`6,?zr0>vr8E %1#Ġca ~qL~?9R͎Ta#M1SHv82fgCo`0XK:>3' bD!Kľ9Xla09E4ERRAAiBzLavPL _l-90ʹD\$<s.uf Ý0\l3N|&FO8W^ ^/~ZVSK9`8{Y gcX)M"ٛR{[fl @;;B%B? 1>lLc4 !@ڎO㰍E9菂^$#0.H[9ue,`'d}XEYs֏ł8펐ǣ?zO ;ɬX395X"厬āXC(EB?~P%Y\bdQ,ꘛXVm;;B%B? 1>v.bxy>'C!b)DL$bdhߜ-q!Gq ;}0YMbol5ƳՎlڎU㰍E9U#q^? g0,0d/FlT`,y<$$_@+  gtd=ڱ8lcny4F"q^? "-,Z:YX5u6g Xڡx'@/I5 "-ɬkIbaDjij`KG沴q Gk ap~ozG0fd~(ofbeV{y<$KdIfp>s|ߋK>bGl{cbݏ!#ȁ`Xg?l#muD_l9e;qضC#O^"0k,_B%|? be"|%b_,{0 gfEXzP4Ԝeł8펐ǣ?zO8a0ΙƀQ$6ҙȞwb9ٳΎl6Gk aP@uȧKF6s֥.T(}Lg<L>kZj5g޻[7]d/modzoĸ7 7!}&.YL9WlR29d8 $s|J:Ξ$ޙ@Z8o%u-H!)v 'Iws'ގ|vNwr%5 ["n <~,= ~>^چsVۣܷܓ\5ҙ{Җ-'͸sqru"{qgtFu_̽WfG}pn7UUqݕ}*i\ŭdY n [=Vplr9?V0T>͖@Da$FnH-H|+)1'ɗ%?KP#HƑ$FIs{i)ySZMސ6 oB$%WiH JRK>Gj %?K}|~8_":x>Fwr?\(ϖWKVy3w~l|<+df2bfJf50Dڦ%]ibĘ*mLK}J 4b~74_=~LmԱY-=L5 x4 d--'Le!(7CLOZ1x^x[Gg6m1"[S=^t]3bfͦo&{1_b/uű?̏w+Ŏ\~G_H:| |s88~~3lϿlpF0STlg Η8oyߠ37g፳𺝅e+[PpAe-S6pەM6eۍ UA[~nTo Rcw*ȍ 7TUowVA_oUTW1U}ч 9M\[UA[UA*H*HWصU|UFU۪ U?KQ*$7\ UUA| LUA*)k3CUWW; j@ 2Ԣ,)|tUZZX YZ} 5 TNa*<#r>#* RU qZU!>6կ qUU!*SUUSyU⩪*/TUfT^x Kn`A1//dv%    TTE*F0@BBE0LP- % ( Rp@Arial'Bhh B0 B5B:Bd;BX22,/Bh.B5B0t!B*B-Bdv2,/B%/GvF4->n0"B/dv2,/B%/GvH4->o`A1//dv%    TG*0@BBG0LtLevel Programs with  % ( Rp@Arial'B\}2;Bsh'BL,B{25B5B)T(B;BT(B5B<h){209BlX25B0 BBD 0s2B )5B t$h5B)*BL,Bdv%    TH39@BB9*LHardware Interrupts and Preemptive Threads % ( F(GDICClFGDICRp@Arial'B[SOaxxYP[SOBZ0 B25B O0hh B0 B5B:Bd;BX22,/B h.B5Bh*B-Bdv%    TlCEOJ@BBCJLXXinyu % ( Rp@Arial'B[SOBZ0 B25B O0hh B0 B5B:Bd;BX22,/Bh.B5B0"B*B-Bdv2,/B%/GvP4->r`A1//dv%    TdQE\J@BBQJLTFeng % ( Rp@Ariale'B[SOaxxYP[SOBZ0 B025B)O0hh B0 B5B:B;BX22/B*h.B5Bh*BL,Bdv%    TD MR@BB R)LToyota Technological Institute at Chicago % ( Rp@Arial^-B'BT(B5B;B5B|h+T(B9B5B;B;B.\Չh+-0 B,T(B;Bh,*B`-Bdv%    T"\?`@BB"`LlJoint work with  % ( Rp@Arial^-B'BB;B.\Չh+-0 B,T(BBh,0t!B*B`-BdvT(B%/Gv@X4->u`A1//dv%    Tl@\K`@BB@`LXZhong % ( Rp@Arial^-B'B-0 B,T(BBh,0t!B*B`-BdvT(B%/Gv@X4->u0"B/dvT(B%/GvZ4->v`A1//dv%    TdM\W`@BBM`LTShao % ( Rp@Arial^-B'B,0t!B*B`-BdvT(B%/Gv@X4->u0"B/dvT(B%/GvZ4->v0T#B/dvT(B%/Gv\4->w`A1//dv%    TY\`@BBY`Lp(Yale), Yuan Dong  % ( Rp@ArialL'B[SOaxxYP[SOBZ0 B25B"O0hh B0 B5B:B;BX22T/B#h.B5Bh*B-Bdv%    TT,a-e@BB,eLP( % ( Rp@ArialL'B[SOBZ0 B25B"O0hh B0 B5B4&^WMFC<<(:B;BX22T/Bh.B5B0t!B*B-Bdv2T/B%/Gva4->y`A1//dv%    T|-a>e@BB-eL\Tsinghua % ( Rp@ArialL'Bhh B0 B5B:B;BX22T/Bh.B5B0t!B*B-Bdv2T/B%/Gva4->y0"B/dv2T/B%/Gvc4->z`A1//dv%    T@a\e@BB@eLhUniv.) and Yu  % ( Rp@ArialL'B.B5B0t!B*B-Bdv2T/B%/Gva4->y0"B/dv2T/B%/Gvc4->z0"B/dv2T/B%/Gve4->{`A1//dv%    T`]ade@BB]eLTGuo % ( Rp@ArialL'B4->y0"B/dv2T/B%/Gvc4->z0"B/dv2T/B%/Gve4->{0T#B/dv2T/B%/Gv@h4->|`A1//dv%    Tpfate@BBfeLX(USTC) % (   x--$xx--'@Arial???-. 2 0Certifying Low."System????CEH-@Arial???-.  2 0E-.-@Arial???-. %2 0GLevel Programs with .-@Arial???-. F2 9*Hardware Interrupts and Preemptive Threads.-@Arial??-. 2 JCXinyu).-@Arial??-. 2 JQFeng.-@Ariale??-. E2 R )Toyota Technological Institute at Chicago.-@Arial^????-. 2 `"Joint work with .-@Arial^????-. 2 `@Zhong).-@Arial^????-. 2 `MShao.-@Arial^????-. "2 `Y(Yale), Yuan Dong .-@ArialL??-.  2 e,(.-@ArialL??-. 2 e-Tsinghua.-@ArialL??-. 2 e@Univ.) and Yu .-@ArialL??-.  2 e]Guon.-@ArialL??-. 2 ef(USTC).-՜.+,08   On-screen Showttic'  ArialTimes New RomanComic Sans MS Courier New Helvetica Wingdings 3SymbolDefault DesignMicrosoft Visio DrawingOCertifying Low-Level Programs with Hardware Interrupts and Preemptive Threads@How to verify safety & correctness of OS kernels / Hypervisors?#Layering of Simplified Kernel Code(Concurrency with Interrupts: ChallengesOur Contributions1AIM C I : Single Threaded-Code with InterruptsExample: Teeter-TotterNon-Interference?AIM C I : The Memory Model&Separation Logic to Enforce PartitionAIM C I : cli/stiExample: Teeter-Totter-AIM-II : Multi-threaded code with interruptsNon-interference?AIM C II : Memory ModelAIM C II : cli/stiAIM C II : switch Slide 18AIM-II : block/unblock;Implementations C An Infrastructure for x86 verificationSummary Thank you!  Fonts UsedDesign TemplateEmbedded OLE ServersSlide Titles"_JH Xinyu FengXinyu Feng  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\]^_`abcdefghijklmnopqrstuwxyz{|}Root EntrydO)PicturesjCurrent User~SummaryInformation([d5PowerPoint Document(nHDocumentSummaryInformation8v