Index: linux-2.6.15gum/arch/arm/Kconfig =================================================================== --- linux-2.6.15gum.orig/arch/arm/Kconfig +++ linux-2.6.15gum/arch/arm/Kconfig @@ -316,6 +316,8 @@ config PCI_HOST_VIA82C505 depends on PCI && ARCH_SHARK default y +source "drivers/gpio/Kconfig" + source "drivers/pci/Kconfig" source "drivers/pcmcia/Kconfig" Index: linux-2.6.15gum/drivers/Makefile =================================================================== --- linux-2.6.15gum.orig/drivers/Makefile +++ linux-2.6.15gum/drivers/Makefile @@ -70,3 +70,4 @@ obj-$(CONFIG_SGI_IOC4) += sn/ obj-y += firmware/ obj-$(CONFIG_CRYPTO) += crypto/ obj-$(CONFIG_SUPERH) += sh/ +obj-$(CONFIG_PROC_GPIO) += gpio/ Index: linux-2.6.15gum/drivers/gpio/Kconfig =================================================================== --- /dev/null +++ linux-2.6.15gum/drivers/gpio/Kconfig @@ -0,0 +1,6 @@ +config PROC_GPIO + tristate "GPIO /proc interface" + depends on PXA25x + help + This enables an interface under /proc/gpio which allows reading or setting + of any GPIO. Currently only reading is supported. Index: linux-2.6.15gum/drivers/gpio/Makefile =================================================================== --- /dev/null +++ linux-2.6.15gum/drivers/gpio/Makefile @@ -0,0 +1,3 @@ +# Expose GPIOs under /proc +obj-$(CONFIG_PROC_GPIO) += proc_gpio.o + Index: linux-2.6.15gum/drivers/gpio/proc_gpio.c =================================================================== --- /dev/null +++ linux-2.6.15gum/drivers/gpio/proc_gpio.c @@ -0,0 +1,355 @@ +/* + * + * PXA25x GPIOs exposed under /proc for reading and writing + * They will show up under /proc/gpio/NN + * + * Based on patch 1773/1 in the arm kernel patch repository at arm.linux.co.uk + * + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +static struct proc_dir_entry *proc_gpio_parent; +static struct proc_dir_entry *proc_gpios[85]; + +typedef struct +{ + int gpio; + char name[32]; +} gpio_summary_type; + +static gpio_summary_type gpio_summaries[85] = +{ + { 0, "GPIO0" }, + { 1, "GPIO1" }, + { 2, "GPIO2" }, + { 3, "GPIO3" }, + { 4, "GPIO4" }, + { 5, "GPIO5" }, + { 6, "GPIO6" }, + { 7, "GPIO7" }, + { 8, "GPIO8" }, + { 9, "GPIO9" }, + { 10, "GPIO10" }, + { 11, "GPIO11" }, + { 12, "GPIO12" }, + { 13, "GPIO13" }, + { 14, "GPIO14" }, + { 15, "GPIO15" }, + { 16, "GPIO16" }, + { 17, "GPIO17" }, + { 18, "GPIO18" }, + { 19, "GPIO19" }, + { 20, "GPIO20" }, + { 21, "GPIO21" }, + { 22, "GPIO22" }, + { 23, "GPIO23" }, + { 24, "GPIO24" }, + { 25, "GPIO25" }, + { 26, "GPIO26" }, + { 27, "GPIO27" }, + { 28, "GPIO28" }, + { 29, "GPIO29" }, + { 30, "GPIO30" }, + { 31, "GPIO31" }, + { 32, "GPIO32" }, + { 33, "GPIO33" }, + { 34, "GPIO34" }, + { 35, "GPIO35" }, + { 36, "GPIO36" }, + { 37, "GPIO37" }, + { 38, "GPIO38" }, + { 39, "GPIO39" }, + { 40, "GPIO40" }, + { 41, "GPIO41" }, + { 42, "GPIO42" }, + { 43, "GPIO43" }, + { 44, "GPIO44" }, + { 45, "GPIO45" }, + { 46, "GPIO46" }, + { 47, "GPIO47" }, + { 48, "GPIO48" }, + { 49, "GPIO49" }, + { 50, "GPIO50" }, + { 51, "GPIO51" }, + { 52, "GPIO52" }, + { 53, "GPIO53" }, + { 54, "GPIO54" }, + { 55, "GPIO55" }, + { 56, "GPIO56" }, + { 57, "GPIO57" }, + { 58, "GPIO58" }, + { 59, "GPIO59" }, + { 60, "GPIO60" }, + { 61, "GPIO61" }, + { 62, "GPIO62" }, + { 63, "GPIO63" }, + { 64, "GPIO64" }, + { 65, "GPIO65" }, + { 66, "GPIO66" }, + { 67, "GPIO67" }, + { 68, "GPIO68" }, + { 69, "GPIO69" }, + { 70, "GPIO70" }, + { 71, "GPIO71" }, + { 72, "GPIO72" }, + { 73, "GPIO73" }, + { 74, "GPIO74" }, + { 75, "GPIO75" }, + { 76, "GPIO76" }, + { 77, "GPIO77" }, + { 78, "GPIO78" }, + { 79, "GPIO79" }, + { 80, "GPIO80" }, + { 81, "GPIO81" }, + { 82, "GPIO82" }, + { 83, "GPIO83" }, + { 84, "GPIO84" }, +}; + +static int proc_gpio_write(struct file *file, const char __user *buf, + unsigned long count, void *data) +{ + char *cur, lbuf[count + 1]; + gpio_summary_type *summary = data; + u32 altfn, direction, setclear, gafr; + + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; + + memset(lbuf, 0, count + 1); + + if (copy_from_user(lbuf, buf, count)) + return -EFAULT; + + cur = lbuf; + + // Initialize to current state + altfn = ((GAFR(summary->gpio) >> ((summary->gpio & 0x0f) << 0x01)) & 0x03); + direction = GPDR(summary->gpio) & GPIO_bit(summary->gpio); + setclear = GPLR(summary->gpio) & GPIO_bit(summary->gpio); + while(1) + { + // We accept options: {GPIO|AF1|AF2|AF3}, {set|clear}, {in|out} + // Anything else is an error + while(cur[0] && (isspace(cur[0]) || ispunct(cur[0]))) cur = &(cur[1]); + + if('\0' == cur[0]) break; + + // Ok, so now we're pointing at the start of something + switch(cur[0]) + { + case 'G': + // Check that next is "PIO" -- '\0' will cause safe short-circuit if end of buf + if(!(cur[1] == 'P' && cur[2] == 'I' && cur[3] == 'O')) goto parse_error; + // Ok, so set this GPIO to GPIO (non-ALT) function + altfn = 0; + cur = &(cur[4]); + break; + case 'A': + if(!(cur[1] == 'F' && cur[2] >= '1' && cur[2] <= '3')) goto parse_error; + altfn = cur[2] - '0'; + cur = &(cur[3]); + break; + case 's': + if(!(cur[1] == 'e' && cur[2] == 't')) goto parse_error; + setclear = 1; + cur = &(cur[3]); + break; + case 'c': + if(!(cur[1] == 'l' && cur[2] == 'e' && cur[3] == 'a' && cur[4] == 'r')) goto parse_error; + setclear = 0; + cur = &(cur[5]); + break; + case 'i': + if(!(cur[1] == 'n')) goto parse_error; + direction = 0; + cur = &(cur[2]); + break; + case 'o': + if(!(cur[1] == 'u' && cur[2] == 't')) goto parse_error; + direction = 1; + cur = &(cur[3]); + break; + default: goto parse_error; + } + } + // Ok, now set gpio mode and value + if(direction) + GPDR(summary->gpio) |= GPIO_bit(summary->gpio); + else + GPDR(summary->gpio) &= ~GPIO_bit(summary->gpio); + + gafr = GAFR(summary->gpio) & ~(0x3 << (((summary->gpio) & 0xf)*2)); + GAFR(summary->gpio) = gafr | (altfn << (((summary->gpio) & 0xf)*2)); + + if(direction && !altfn) + { + if(setclear) GPSR(summary->gpio) = GPIO_bit(summary->gpio); + else GPCR(summary->gpio) = GPIO_bit(summary->gpio); + } + + printk(KERN_INFO "Set (%s,%s,%s) via /proc/gpio/%s\n",altfn ? (altfn == 1 ? "AF1" : (altfn == 2 ? "AF2" : "AF3")) : "GPIO", + direction ? "out" : "in", + setclear ? "set" : "clear", + summary->name); + + return count; + +parse_error: + printk(KERN_CRIT "Parse error: Expect \"[GPIO|AF1|AF2|AF3]|[set|clear]|[in|out] ...\"\n"); + return -EINVAL; +} + +static int proc_gpio_read(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + gpio_summary_type *summary = data; + int len, i, af; + i = summary->gpio; + + p += sprintf(p, "%d\t%s\t%s\t%s\n", i, + (af = ((GAFR(i) >> ((i & 0x0f) << 0x01)) & 0x03)) ? (af == 1 ? "AF1" : (af == 2 ? "AF2" : "AF3")) : "GPIO", + (GPDR(i) & GPIO_bit(i)) ? "out" : "in", + (GPLR(i) & GPIO_bit(i)) ? "set" : "clear"); + + len = (p - page) - off; + + if(len < 0) + { + len = 0; + } + + *eof = (len <= count) ? 1 : 0; + *start = page + off; + + return len; +} + +static const char const *GAFR_DESC[] = { "GAFR0_L", "GAFR0_U", "GAFR1_L", "GAFR1_U", "GAFR2_L", "GAFR2_U" }; + +static int proc_gafr_read(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + int i, len; + + for(i=0; i<=5; i++) + { + p += sprintf(p, "%s: %08x\n", GAFR_DESC[i], GAFR(i*16)); + } + + len = (p - page) - off; + + if(len < 0) + { + len = 0; + } + + *eof = (len <= count) ? 1 : 0; + *start = page + off; + + return len; +} + +static int proc_gpdr_read(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + int i, len; + + for(i=0; i<=2; i++) + { + p += sprintf(p, "GPDR%d: %08x\n", i, GPDR(i * 32)); + } + + len = (p - page) - off; + + if(len < 0) + { + len = 0; + } + + *eof = (len <= count) ? 1 : 0; + *start = page + off; + + return len; +} + +static int proc_gplr_read(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + char *p = page; + int i, len; + + for(i=0; i<=2; i++) + { + p += sprintf(p, "GPLR%d: %08x\n", i, GPLR(i * 32)); + } + + len = (p - page) - off; + + if(len < 0) + { + len = 0; + } + + *eof = (len <= count) ? 1 : 0; + *start = page + off; + + return len; +} + +static int __init gpio_init(void) +{ + int i; + + proc_gpio_parent = create_proc_entry("gpio", S_IFDIR | S_IRUGO | S_IXUGO, NULL); + if(!proc_gpio_parent) return 0; + + for(i=0; i < 85; i++) + { + proc_gpios[i] = create_proc_entry(gpio_summaries[i].name, 0644, proc_gpio_parent); + if(proc_gpios[i]) + { + proc_gpios[i]->data = &gpio_summaries[i]; + proc_gpios[i]->read_proc = proc_gpio_read; + proc_gpios[i]->write_proc = proc_gpio_write; + } + } + + create_proc_read_entry("GAFR", 0444, proc_gpio_parent, proc_gafr_read, NULL); + create_proc_read_entry("GPDR", 0444, proc_gpio_parent, proc_gpdr_read, NULL); + create_proc_read_entry("GPLR", 0444, proc_gpio_parent, proc_gplr_read, NULL); + + return 0; +} + +static void gpio_exit(void) +{ + int i; + + remove_proc_entry("GAFR", proc_gpio_parent); + remove_proc_entry("GPDR", proc_gpio_parent); + remove_proc_entry("GPLR", proc_gpio_parent); + + for(i=0; i < 85; i++) + { + if(proc_gpios[i]) remove_proc_entry(gpio_summaries[i].name, proc_gpio_parent); + } + if(proc_gpio_parent) remove_proc_entry("gpio", NULL); +} + +module_init(gpio_init); +module_exit(gpio_exit); +MODULE_LICENSE("GPL"); R\9%98 !{x=^^By .5zWT+4*F s;1'Nk"%<(L^O[}r[ųQi]Z1IrgޜZGp #(WMq9y'H"I-j\E;Gg¦eWwӿ Ftg]8􏻘Af\` ¼2PX<Լe\~abXmMu칇2ĝ+9}`OrJ>a˰- ̞$W d`QXyݓ)r1j.u/߂hp7j|xy? ,A*'YVCTO¹cÜBLFAَ9839% E!g2,̋ ,e$HӸ}C#5#n/t˚Y`w«WDԌfM<^oI -MVcyZ3髶sK4'aU+iʺVqK,&)xdx;*UßXi&[gGIP"&#g8===&s܂;X,Vj2Ft13CSq!՚|D1R gmfFwX40^[Y0QrHO%pJ"m \ɳeeMIG}u+ JV%fIozCNL)G`GQ\@fn4R14!K[Ec06v]\As4f$wûLAN>2aL`җ{*ݹ&0rD0ɴnP9k.<1c8 Ei[B(6(K˖,a Eԋ4 ({#pZ[o.V1V꾮ť*v4NUFT[Wبo4.FwɌK9hk%e0GUssa^lnXbO8l1oi`VaZ 'S۴oMSƽ< KZ#]2wK-;8|#8dׁU1YC4p1MsL?n>{ɥA; ĕuBfx[A?0 ׈DÑG9"vwgI?}?z]qw^mmq-ܾ t@_NQ)utDomwݿtN^uCtt ?| xW1u|=hovmдk{ߜcq[?;m= ߣ^ӌr`g.{oS'ZAcښi2Կ{L;8ߣ!6r`-Λ-ZěÓ.7!uB?;u)`͖툠K}:*m$x{ <ݗݝӽԒ9y>9eIwp>>F/B[<’[}oh=>'l0}~أCo'" [?W4M] B;mO&`vPJY$Փuw 'ԣ)7Ez[XP gv`p.z>v '@6th}= xqysLG - ӼwkxhC!d\bd^P;t©E[ݥf[o@ydɞP{P8Z~:%Ҿ{ڠ+qbYT|AoK.Ũ)﹘U e Hz])̳Ufy*MTކUk/ `J$Qm M'Zljo9#kGQBZ), XflR &QN||"\s5XnC쿃$dbΘYn&}D$T⇜aC:E^Q < d?m)F,]HtId&qU ~74g,< Pl`ca{2v1νh=IyAsSR/zH7v5\;JapΆcE_gdg6B턬b֝3rk{[Dr{6h[R]yޢ%~`[a|qފLhBٵ>'1N I!Zx:;i( * :))+Rl;/7(fD@Ӽu?F2ޕj+!|N_zF"_H"4ʪDND]̧ʕ{|&"K bس!Vdž:94V08OS8&ӇRneO3z ՈiZβ4 ؤ$&#w달_CKį,?KDajF]ojy@7A|*LO8QLGtm 4XyLPĎM;#:z<㟧+#j"ҙ<^uE?:?>?/OkzW~hŖqF 8 Ex`h >⩥ jٲ-zcS9>m9SFd0rPLgw[nAfI!BBL,sD}=>A*,:~A ^'g 1Fx| ±n riK B=%<<'FzblΏxyE~69y~QĆ30lCVXIov6EEHX|H <~bV EcFi &`/@C)x].-b T&IKM%t 'dg9V^Hf3( VϨCd0~==9Gh˳M5U+25tQLdOb k'Gc >I-%.(z,N ˘ M9E"G A{Pן| p06_:>q@h5B ?ors@.nw\ <ͫB OOBdnkκ4 jC9)MمMeOONG87#n rZD Ȝ'^6CD/՝' ){s$f(qiڃ,D A'\Q rݽg_>aW:ڬ=~Ƴv`jHM|tx&z= ASy?je|yNELE_NuӶE5d>OPIA c/@p7UYSVܟs"%rpp˚%i7?x|7LlV0@oFK>==g?;wdK*u>& ʳW"ge*粬L1S%$ >5:xv*\LzHz FsGO7@13ܙs4}+~q1Uc"lgOm硅/Wg\پ~qް=nJt01b\KG[̉gƐQXH7C$b+BnR& \{Ʈt|)Zr?@*8Tω}* Qq9/C;~YwkT Q֒Kڑ]p 0W+)0971v^q.>*cS"t}⊌'p%r={w||x|vuh2'B*3 4 [N݋cᦵ\ kJTt!@|*5e Ba|7Q#%m9%}>8o>woVI O~BXZė~E ݎeUYи,Pqv)Ea3g'd(A2bkq`YZt/3o8XAq {t/[@d 2e\>zةKkPF5ioDFAb[q F)jGKo֌"fš{R݊uysq? ZH )E& H{^ȏQ,b$]ڍI9 fKH0cwa|.{7! z S/jA&31aϰ.Y'<+t#Ꭻ.)UKH%lrSL8\+\U)1LީҔ%:z{[zUKßb>g8pY¤[e/H^@lhBu/4UDzJw8tr.5aDRm ?A]2CFIǤ L"Y Til#. ޿ JOKD9h:vtrеI>}Vp`wV0ڋ9A8S#1%f~P3ʥP6,b"1$ _˺{>M7wj)$wQ/ ЋUF[x)5?":jˑJqb .oe{3룲+*' fq,8Hp6Tt% ѯ͜h08%?dL`R wNb`!%X0DUj3 _FξDmjL~Z M h q nȳ;Bۡ~:{5_87njر E=|wM 8חocX '4&X"Ebu=@fF R,[]M\6g?{;M%r#q~C_@M@gvuu?G:,իFW'/fX ¼Rk%~F~fnVaPժ]fsK!pB0{ . q"Y׸#f3sт'N01\צC&Y3tlL!L eAU$Q"W70Y 8&eq8pCt#{{=x Ļ~Ǣ=3$OtH87):si8(߅y}c3xry<ѱ9=MNZcl}YQ8bkd?烁tga dTn!C[&&с BfȞ%5| T1{۰Kty}’b/6DWKѿ,cX1հKO,p|6 h\B*qd&,A:9# KSd8-ITa;=& x8l Δ( yadz>6J!zLId>>sn5u! %NoQu6O >Bq"PJj8tV v2]0L"HV xs<| W_}oW}"\b+Ԡ>x!P.Q Dggۯv3TѾs tF#Wb}RHqn ǭΚuZ`2U TktUNh~D߾ʩ.>(V  uIF&@2 XpEㅵ'٪&T6rT@) SI]ZE*$ߟtO%Ik:d?|v&t<{E^$^r?ѫ~[ 8J/fSe8Ƅ)j}3nԘObcP@wXtֲ=j?P Ñ j(d=uP ~00>KGu+d'sуu>gyiF`CV%dPPZ WJ"&53|A,o6 F} uqr]&jbRhkz[g,#)$%DEhiQWM6#{s|Boz( 9Aߗi}jqz7m>FFǦFm6cZoT͑r݅D-V)H4ድbtVLLxRf ):и!ITDgP] 3Zty$ȩ9S&,J*YeΆԕ8(ܪa!o'u)vZNr+ʹ1c Qv> `'g=XRStݬum=~8AxXR^4U7Of?O Lac #oϔn685 ohv*@ET8nds_i#$rN3bV 3]Ó*BG&L@߀DUꘓ6nEAJrǰ&&F̘drӞ05⧔͟><$;Cĩ $w&D&ׇLi\SͿeHetljaf"x!hAQa2>[EG^ g"~jѩR["KpT4#MKPyAVH M¹ߛqqHNk%z"L#UӇ>H 2@P ҿ)߅4z2).u QS# Zn >;Nÿ#95_Z" + Mi`.̹ؔLYndL2M vlHBH9fEiz#MR b aG|Uʡ'h.=9k5B Bt Wʝ+!;wӠ0C{|X<^oMq+-5OGp¯4^Z"Y?Y%<A0PMg݊jV+z6Y;E]Щ#}d&gZZ>vs@Ӷ!rE'^x+iM;(UVxZE-5epWE36-3B(÷`%/ <_u CKN@=;cAl=nZ/0d+L VV!1KƉ6*"I?D/'̉ $m@<9_Sŋ-4q>p$e]>ޮٴ3xmKeU,A/dru՚o!Qȼ>:ADS-mnQ|۵fя,a8 NlPkAbu؀HGH@D\8vKKSmxIeVӉ- &Qt ʓgJI`_|3Ά(uA.& BU0dN*> 3f7+4@ɒUĺ]P.rE1 y r`Fԍl$ޝgnˌ#c w=_,W PȢ!blK;s"zg'ZKPҦbIx w NBkrA9GmeEc~W ,Ε0}ؐz\U+;`&m?8h=MY ^$ /Je ~/C?T: -y9Jq{]ˎk33~#(>oib<'6Q X%ftp5:'s?Rݛ[J;$ኤU;g2YLn!Xs:fHnizK3%U%Lx)u gVӹl.obyzRFm9RDu6F~3ηU-o'Vk?Ħo&yhfb$W !lH'$# EWGE8ۦ}ߑ-)"gEHdPM+a~WXSEaܦuVx0 ;kLT'+ փ"iIr'+b۷4R6w$,>". [|_3N[xLb)#5 $uW %,Ƶm >ru2Qf^1{/Jk^Q(Ĥ'FL3k2w/9%Kr;sD yq *?yY潠+@bb[0>[i97eV[/9 y\FOgp,&?y,=נXDFPڀوZgm u$'ځmE~'ai.k){Ifm ^<4yͿHf-?i=_ ^<_MGSW{=qݷ3[{k/n5K++NqoR8+^9LLG2%!A\Ờ N躭# ;kSjw56Y{>}\6Em BpYw^6 QZ͗4KzDc$7kr=Fp`Ak^nv <{9}K m/&{{ 붐 7f3 bK:0kcub] iRs@BR1hk63Fv:Ts'k .=_wsF=fSmt*]gOӚlpo~dSTܬPcXl@}_͏&X|?$2B^%hEs3gGC@ -4LzFTӥa" MN3Vp ->9חal2%ɜK?6w5!3VEzI?TJ,nnyҙ)~0ŏ>6?)H5T0w"R4ϤCޫ蔾tW^A 4 ;/'0K?e/I;T Q}A:wE638;|rdZǨG2 WШ">K Uո yvT1O퟿<L~2K;O͑<9`|??nk4mxk.b<ߕpbob¹L$a`2 G/eD ]ʔb䖼 \\mۼ(wjPII?i Tن~yxm$u`u5=ˊ~mGӏf$Ѥ5 ن+?l $EA4p'<r|$OڹRqq!5  tRԭ]}؋,kO)0zPmqU6Qn8$J JDKBc +rg.Cs%#Jwm [YþT|Gc \IGҗsxe"˃3'F+hCkc; 6.hT7b-R=s3ƬU`rpM[[U+:DžMNC5K%*5#N.&u=|so6 ܖae颲O^YTb6K/’*3¡3?5pAm\-ǯBav`&y.Hf)(9q/Ε_[z?FhjC^Eq]ȶsVΨ̷%0A}Wy'UTipv䘦٢8[[A6`)/I3xf#E{| H˗)!Y{eLk*A΋z "g>V!r- bȽ/ғe 1$onmKiC VDZ.Jz=,WKτwQO,hl\#-9b:5̚>K1'~Fgmdl)u4@])Dg*JbFAQcU&^Spz?i Q(p˚$YӡDgsN6{o}""jqvf%86Ssïm\1[Ǵ'7Ǵ/ݝco.wۊS#EU/NؘW6V[^ɐ0NmkN0_$NYj3ʆY K{0|-B$|"'+P*!R)gf.K(\;FbOvLo+7lzEh)V{o)dV ;[Z0kM vaQ[튧 n@"P5z #LnyW7L.M]zt.f')$,Pa6H^s֚E̗2x雼<̜r8tI9asQHڪmdX L!>xI+8`б;7t>a;/ Mo=L+G@KtvU`Zl6^0Vo:/9F\g`AvvD+BrpaӰs+=&[11eӞ"k¼*SB_nԘt?P~{n5:TsP$Z*$8灪?h=^o^Ӌ1n8?& p6hzj@ sf·xFcmxkC#> wvebzc/q 1& .Q63jA7I@bH4$sXC Ht <4L~_S=Qկ7{bnoџ1}P~}ѩAiՂvLBEu&6|'Jw_{E>UkMzq7OiWzv߭" /|XQ] I^x>h6ʜR gԻi Wf=CXWh"5tm fwbC8/>p]/KSa7E㈰xWo%Mcgg[_]f+Iv?YJ=P[]O_$9P;/>vS%n@U?M7WUxa&#/(9+O~}${0 wuZI95a80aL`<}_ޗl Kʿeվ{P_?2+̿Pz0bi-tҺ*No #"E;€.hZ:Yv*!(OuOW?5~O^~ |͟k?OmS͚",vV#PWif 4Rņr.S"5/v>! l2D3 iknx7~s( -&H Tߜ遢W{ `%O0V%`)#a^5'1yWU2E#Ehj3+0C)U#^' B!_E>f>Ta sɇ=i[qؓw'Ӈ x e؋ +FY/Oļ3ф$%6Pc0:ǃl$~/Gǧg/TAP1qMu[Gu8E^u"zaUO onqۖW$ Wěc)rD@)J_ַsΧauV-Е,ވ4ʥ_t bV9+>F1yj`ڻ3K дr4_Km\2A+s}/40gGIx.DX^WuǢ׫~A;} G;{hqꇋO~> 6T=olsIדi>~o;W2t&(˯0j ;ˤWS 4/#AC&W\W%㢇$pU9x$p0S'[ `Y/ǒԁ^G]˘+JWqj|ES]b˱'zԫϖadaq}"N~"ƒ!: ocs_ q^'>VZ In8JzӄƧΖ,]@=wK Hq&ȋ9:rbus#6;d0T$U^4v(Sʘ.C.c>$mQ H4ǾLH?kʙ~ֳdޝ‘INwE,,['`G `A'NJCMrVL 6FRiN(9 U?L8/,Kr)BQrG]H61#K(^",cPMӢtFm`@4esMK aH8taGD]d%Lj%tO|#y)>?6Rƍ % K4 e,i; }uBK 9W4q.&q(n;\({Wg5J B6UJjQji41Cs u' 8F'{?]C7\bxTC1FovRyJ-Rhe4+RNtӖ KƐ%!@>Nm]1!q"#.z<)uo3I R*6y\%|g]^0j*j(*/evemÂMk0TˁOФJpމcջ5'sx'HUTrק{o>{׮`ִb%@Whmʜ )\[ sQz1ibE[^;Ոw nMY;}5`L%kBgӛ7Q 4x~i%m"< 6HG<Z9ҳr[IC99ȉtV 8c1jh`;I +"D2j遭ɺ@}=5w.( p`L%ԯQ#"~)Ap_Xɼ$Μ?Ptx&YƉASݠJb9dJ 6[̠'ê eiT4B3#sHXf@.za8E묘q o,F_)F1׎]$ZuðFqհjJ1^׌dtBzF|>az4Y:щ0)'ܥ'Z`A'򓦔Gz G̝'Ñ}.%Kn4D&O\e6۵yR\:t" hq<.7mִUvDaz!N/T4l5I(*X wG#1g=eGYUR0b*eQ_cRRԫT3 2'V%W# Idi\$h2@?i@2J:8c-Ȗ9A9@Lδ1y>R-E$<[ZTcaӱd}YziJ&._hOM3UQ33 Ɋ=i.Xnȇb ?Fm&!(0Fv8!nn]JNּ7atSC7~(nUu*UyeV#?iG3.EB/"|}DN&4Kzy Cp? \QqШ 8^&%띘9D-㡈@ag&+٧>]Sp+F!_uh )A&ۇZGp #(WMq9y}-ID?3j\E;Gg¦eWwKwN=kd]0HLK1A7WjKnhٚ|/L ]KX`yw>o/+=/.܎#2{3o\%+Ԓ%EaY0LQh<$mAa𽝟j|xy? ,A*'$Of=s;ʹcÜBLFAَ983kN0q'- 9{etG!5fa^p>1B vYʂIq?20:rhMo FbTPn5sarɘ~|4 \!_Qfp7Rqa|q pk:<3Ӻ!P{&XO$20&f.+Č?#aMRЋٯ'P J5umo(:kSZ:&OxG8G(.4~5~]LH XMu`! GFN]_(牧l)u\pCe3ce\P}b\{3.V- X.;^i4蘆b*!VTs6jLoMmsS[R`v׺ijq'񜤄y f"~[X$_h.J{IT:dLyXPwO ʀR;ʽY&_3}aς>~E pȡ ɓaFQ(ReF(\/$OL}0s7zՋZ77N OY!k0?wx&s3į`O ׾)`;.IQD_j;"[x8|Lu^Zـ>v+e?+0|tvf~91IP278btj\4e8L@MW*# ^x[ɭf 7mcY+k)VD8Xfl Tɑ7Z.$:F@5Ϯ;E) z08@}%:/c/[RdO ̙00&I!c nĉXY$ŜgzaܙbIyzQm/_߶ f: e\/2bӭl95 Q/qGL,Nw}^4J"^Yk՚/$23$~ &‹a'A[h&'e0GUssa^lnXbO VϦ*Cچw4`VaZ 'S G,,^σ{i %`.ᖝgCS! G(?w8泗\HL\y\LpO!dFzDZ# ((׈\hG9?loiݝ7']U?:>x뵿wb\bwݮyu}v]p:俻9G{u~ hv=:x={4-|wpww=w/_w쪻J^ģy-.uBӮ?읾:|sj'my`w_'~{M3˽7M=he4CikzP1tk{o˽d;ohoOP x։7[#.z`7X]4Lv_vwNRKtwh[?'{;w=#Ay%ݷ7Xq?z*0}l}O`:GcʛOE?~=hm9vnm4=Mn{,IO;{^ T"=N-N, x[3\;08Bce=  r]>8m9fsoi;5sc4!]2 1Hvh2{/iW{~迢Rݷ{<2GgdOar=(O?i_Om╸Hm,*SᏠ%bn<{.`x5Cn@<}è ]g煌R;Tg6qa=UzV^imz O<\D^Y.jus/u˘ފ 331{KFϧ#0NKP>"У f U-'&$"G,kSB`Wb:k]Ʉ 1ǃ$ԓƽ)\ (Jup<_y,/Ѽn*IVF;fBBs#A7aNZ}XuQVa>;7mLz$g@Y#5yӯ@fZ)??zX厃J תS ,IJlX^}TtJdyR`rZ- u8\xY2*wxJ"v!kWF ?諭J/l9Zg9``zw9LzSbJY]1mޤ2]x-jJ+=*G˂WӻIbc{pZ7z'P[oh'&q(s]KU&onzFUgTh&!JO֑ӟ V4:?릯?Q #ԋv|6)ө17TN;yJ[;'~뫖?Iyeۏ8BvXE8@@P)> A'7*'kt CB$֟6Nk9;sO6vHR_'qG"_gzr7,]Ө)zSYk8'q*B nԞ\uV$:]]bnĈ(1͠3z>fu3|͸-ӭ12ayZCuè4^bRaZiNNٜX%@moAo>y?0eq<¯- '?xm[1}Sck\4i{{ =9;=,EҔf0hT0W|ʼn"Q3Z@ύO#񢏟{aJ' vn$KNb:\#8[^Fh85ńUc2 e>l$I>Ґq} {Е{tr!r7tf:TLmlEohz vumvTĔ^/ռ rx$fZX9l] n+2QMn\dddCN] RWkA~jS'.O@huڙ*+[+۶ǵش/<8a955Y4p9dⵤ w 5g~l̩hI IlH$ z*-X&dRAv'P-)JFtL~?Г!RO0k%>GtYY +8%itf(!5('qb5,(Ibe4ع!Ʈǃf)ڝnh t>J{ٮ9OT6\BPn$9;veBł[lT1yN.$p k9=ѮeHJGǬ񻠃=ev~BNPk2?rB)wqwS{t|FI7 p $#$Y2%U KQ8l 9{T:q!;8T06,a~=Mށ~+^&>?7 3o|#EyYPUZ82ğ3ˆ_uXn#lQ{% 7is6QC8?gxwA8f ' /@/ߥ_2}! 1?"jǓ= v^DE@`-\x<〓? Kʀ|BǏU;C~8ՇQ3*1ͫhdzĖnf:G5gkJ 9q_{9}j4;G׾o,@;e R"bQie2\9#l /4l t_ԧAƶJK /=?=:>ܡ֥-׀!.) @'cI;D ~W<јmx%c`9Uk'0jw;MƢRpoڲ2*q=y"Y΢ 334 ~YU0_윜qQK]z;t' wA`}Tiiz%4v, a&jWe/5a.ßQP1ܯ(Lav!BB.ٙ.P-Ј37>OtB,:O$QEYcO[Y+Y}0^ZAx*jaeh87o6ɡbJiDhN8`+E^D l`57hMlf3ŽPb?FYaE%3B @Ï_~ 38 ^ /&/hd'#k;cGÈ%a4m[t'眧]"OJ&sQU} L&+e@; $w'lިwj{#I ;^]]3KpU8=\E, +'b]Oi}`GXƭ־d%f|$=0V.'g 7?qK}ELAp9_f0iT_ S}>'M+셝azAȡ8[\{ps2j^6]pV׾]ѯoi .ǩ R{? ̞v%kzq֓sWaD.-Fw).lBm߮,mBKx&qGK>.o7K> ?M QS`/?ŵ} :K>@-I0I}$g1ή36>dRsٳX_5_Y ՇI,2Hz1̌GDMSIc=nѥ O?x|~{pˢ>?©"|<͙?O=m2Q}usff(x-^opa_Ӭ_{p/cٗNZ/|oէ3.ޤڧ .mg#?ǵầ#Hq PLjx5MOWi B8l@B`Jc6L!|zs"Źz'Z;hn:B"sP@0|urI&ZMxV{qHib8aн QW~f57CT;u`+%3ٙ0DAR r-m#5tDRD!jjꏑo ¿͂ qs8e% uPؖ/6b{{曎LhaQcP$Q!xVNI_PC8zA"{ύ}zI(u5γhxB D{@3g'̩.s?HHj s6UP2+Z5*&q:=tCQ-*j @$NO_l&(c6AƧD3 P%k2wU0C7P 68Q*o5a9lFq3ŸDL(MO5%زD%5֢ϣs瓘i;b.f0ޏO(;Чg2AY$"ګ)ʽJٟ_EZTvd7Dnu=ɀ-(תuMIH:v-KB+j"Q˼O)g0UBQF~}+Y@'Aq/ tBuyH:4(ː4}z&<Ф6yxD4x0".NEU$iUOFRs"!|"O!ۃE$vzR$N`)ZӾWKRC TZg lԌ^Y6;NǏc&-1$E n8y q4'n"%9Q ԄV/_=J9*pGaUĦ3z5({u*u2ob~ [5c!o;Έ#ߵe'%΅i4yX0\IAkn&W.# VA |M09D@mAMo BĽW",1EJI.t+7sy񜾃Ջ[ǜyo5gaΠ^%rMDaK^9{J/xlY EVyk~ud, =M-dSN2րP"$9SAIl9\H+F]Ӆ}*nP@yv-IM_}vYQ)S9fXD$C&Ӫ1 NT:clك۞a5Dff2e6-Sq.S# Ye+)bex5\nY B>oVfHonx99hwkcRq 9e Nx@٩ (y.i IүA?t yZF틿oOqZzr:ONMHIv& Lw8ib:(Jr %|r4kVӓ%-q-Z,|P(g)OD ;5>,V۴0z(VX4 p=)U\i켭&nFÐRFR\>2n& cI$U[i4ebzSO}vL)|k5|p|E˜0wcA5~!EƃB&5lo؜LEXUǽ%4'0א!&N ȼ\%y@h։#KQFE+ɽ)6Eڜ#.p1Qr= /E\?r|&ic:BIES.V<-9cCOC;{ $zLBH!~ #M3P)ϡ5t2_akrBl?)I(E%dIe$_%|DpD`'t k=;{.`,Bqcjq imq'T\D0U1 jx֙"]K^kޣi_TSeЊݖ5j7'70i?m$]2&K6i^4sQʶi2PvrL8Ct%Xz8C4){";hBgXUidO -t"Q*7\#?0;P+;=lƬDpF%]Cx!n#L Uk+   vlUXG  2Hj|"Eۀ.\ͨ½0_zBa mY[hMTNgR8Xx:C3D[l"*TNvNެ3IO gޫ5vHq|Vhl]J$'OP uwI3!vPo !Po+N%'qkehXqp^zڸOZJ0"vqUY'$ڌSLʝjLM(Q [|joo-! 3О=-u!7m߉%Tѿ@JrѨoU~t(o\)~;I_[dιnh|λƬNWod- /,/|=b*䲊Ǻ;?-|cn-#H<+ss>y,@0)j?JUlAH`8\ Lb` x%TC |?nѡi1lWʌ)ϋẚ?|ʣ-8()5# 0Q:s(`e6PۜTm V@<sSC܈ S?$>-re-7``TٿY(56~uppA,ql OwBqD#%,=I7oð9ZvJ$}7x*I`>_JC" fٹ?c`A;1ػOy϶ "6IoKQ߆rivQ%[j\P  v+N 3s;S:,ӄCPLOyO*J?HN cabFevނͼobꪙ [V;Tw&Ln*5D Va8 x]yڝ'i/qRNjl][NOy{j뭃3ћ#|_٪]{JnFܪDM>[DLlm,6dlB<59zd 20Iv?><<}&H9/e7hi3ّMuc7Kx&A|uzzWgjO%Y-]UZֆ8 bs 9+Zw_z]Ƿar‚;CtY !Bg)a.< ~BߙߙSe2K"a{I;s r*'bTҝWNLm4{T.s#Zb1'-0Oh HjȫYa`):@-bbrܯ׭vR=gE%ڵ lB݊>=lǓL{5IaZN8 `\x,(ً/pWVo0چwjk{3Fvn|' Ρ_aaQ_S8. /^'R.7[W4[kl9v]Ÿy %k ϒ<^M݊Q"<'%ܔ,Oo6K]Pia x'pߎ9>0zD.]`~'jCa1TJń,."%%Ļ!ö`FoQf"p@̊qe9 2yNQejB-AF-(`Q}y2eb=.Ae fh\߫GRNב}\6Vp2VgZxϵ#c5 ΝMP&.5!?xPmG7F=:r Hqї9y  bWmJʪsLeU5@+]L;o32ms*#LT "[LbZtޏ1۩"o0+-PN:ҥ'\eDs')h*֘3c.3.65hAueA$y8sSBwvP`(-~Ÿ[Mp#6Nޟz _qɍq]fA{֔qB[ K4tnA >KFf$؃ÒӦ pOA?M5R{5\ i[GeY"pvX5oz6k[v'T5\r>r41 -; "_?W {1@ `!%դ~nU71!F< 'ƈY@4GRڌXIRH[>| uaJTԑpRMc^k\0j$ZI짩]*H+8"͈U*mŭwMP3Q`DڙA$HWٯ5L7ZA>~r4ΠV ";+w%X{E$\˫,3/'B1 v֬^{<]{7OLQ[v5y1~;=zp?zǿftOC&q]CO'Oj ɓGK.@?|6+ÿo}׺ņoᐸl~}]ڂ'?F{@]T}M|C=DH63쪖qM)vHmC$ꋻ0H;m_d~}#?#?j1!"LgVb,q-[%ٍ9u$ LGu/4덢O3ց_mzd_\Nt.s+gOІ%]v1c t85?읾:|sou|up3f>a/UJcs%IB&Wux}O<ݗ{ݓ᱿m:t;= %Zu2t9#f[D\(SO:3gMEB5r/ۃ&ܺۀ5 &FR/!ur$mg_[tZkhľ !%"qX\!8Q!atߧ}O~˭?(TӠɼO[)t4̳3ZL< M$G1iOKw:S͈ebXm1>N9(}#>q/AxoRpyMOO1;0d9uiNIiyߜ<"D3]Y$=%[M:瞟Vrml/]j$„ ĵ*y8;GS"ؿn{*tXЛ~nڨu>$6/#ns8O a'5Q8Ggg@ׇ 5I2gb>~|U¬TѨ贅BvM3A,t@\ȅR Hٔz!6ܢWܗ~[DGXv*DBЯ7}EQdYnଛi ?>6M0ަ0(]e^x=4q/~Χ>4 `[!3ʉp^yCezzkf{-/ 5Bk7X\'{d$wֵene+0`~X>YI*wf6k5,|Vdtu]^CyHptp0E;ڠ;m}!vn;BM5Qk¾.cO?*ͅWc\.z(O;E,BYC?o2.9VbK,b)ࣝbthB< 9<ieg9(W% ͍޷df NbNs r > n˴|!oJbO($1 7Thj~nGwn?cRZpZ "(SzEɧA{ Y.<˹Sed%KF66#ó7PrD+K0sKQ k.B;i@o+ޡ`"h$>OB+|ATAqb# sR?VhcPY t^1:!ͅr K lK,B(giX,\}HAU,떤$`LqTKg+ PdFUcEEvװY Hg #VeNTC[k ObMtC="S ӍP&怸$#&M|^ǜ.D_XE=M5ISIWr$0n.3€~LpcV_&Y?S8d kَ(4AT>GsY}KxEdx ״kX G}?EQ.7)ZĄQ#(fK>&vFO=5OcY8=4v練a݃b]:ap}rw:N>/V+Dh: R9+p q_\ v;Ghy]""|Ԏw| zR\lݿ ;hfo}ha2O+0V۲pB4NJ}B}]F$zAjZI8_z$(,|`54csDk^|۔Q+$M~&7ġDB="RdHXD~ l.3Si/ aN`2ରlƻW58PuOqNS8Ҁd(2Xq*ڋK/fY4bwv"1iV1:7s+ʕ֋+zvW A{\Cx]L#[F9QCpEUV VǗ΂MdR0RR^f~k+z˯+_-݀2,v[s_%OQiL~b;K@Fr+Bvyq̍M=ҿȢ!? h*}/> d r|9`'|Z&Z"r?Kp:{},] ?Y64~܂r,_X~)bMEꟘ7s_`+-sp`ZMf䍶/  gQU87}l_d㑒 %^)5umIWP0?sĨptÌ+MSE_Nds6*EКI<߾|ӓg20G(HVMM?S+es^1̚Wו \^W Dv,;4e9r!jv%lvJB ˹^Ȃs!Ԫw w>gw]7OG=rS4 ztd0Zf}px?7ՠU`~]O#j׍3<$_j4hg^</n-;}iji}}m3OoPOm\|ia+mihޚC:|.Mg9݆4WA~}ũ}9y J`QgU{]ཞW|WM!z\ͮuZ)Rh_++^w#H:lM1 {l$fb, .`=A ܨٳ/M骎ɥLT9M]5MuWcp:MFι؏N_ ! jق| xԦlc@b%s9릲mʲJ[cYa{ۃvo][(#+!6q3?m8l\_0{AI_GK,HiL47&8\G,N .Ԯa-6{~y!ݸ*ǸvvhE}[#jrrnn9EήM+VVw~C雏p]1/t:Gy2?lo&,]84+aOfS{_u!CIWS xZvXV<7D_4ziQ[|sm!~]TGm*1&|,ob}߂եx.5m&ʰL6ܤFZP̫/.";.s,?w3OEKdjyiQpqY|k)eؕNըAm&x d񡳻-4Y9?mV4w&Iv_Ӵ~ |_x7CeoTs$ls΁e:-f(h_~8H,d 5}{^LVu ,Z(Y$& zw-h݈Sr% a5.4~ @ũݚ yE{Vxq9Yg㽰Lf/XU@%#oZtFvYk13}僆X( &>Ԕwȡ_wޢ?bû%u8v"ܼhm YGTxLG3}lgZ*DZh7kZ=xԬ =l֒> +H$N YZЎ&SKp_1j)?EUwkwau$e{ w GTjt,Z]XXR/;xE2pݎijto{~,4\rteR鴣гKs¯K1\rFv&H3warLgxd6,aJw8M >>Z+ԡ -X~w6W"tTP/&lTx}XZ[xՃʥPlkƚJm"(A~cjژdPpq:VgX[/ZgO~Zŝay:R[2F A5REUy?NO-`wkUWKw;iќvzu*g3 'n'9qui͎+}~2\/!mVZߺ/4BpPrEM]y2˻˹@Yהv&9Rr!8mZG w+WR15_&45Cq"hD eIK:zW2՚q&HĹi!g`>:7ݢUO`6dBXaPX{ٔ[IG HS6G7F@~Ze~>C+X*p ~rB'|i& @;+pUdqD dcsk26Z&|+¤PѰXSD+!boF)D͵ La`e6x/n <'qN 񇅶w<&KY*ev%~dO)j-j8u ++b .ARI XUթ||>zVm+yzMzq<z{  fNT;a*ChTk|mH0SZvټ*PSʷB*dzQr|3-?F;.am֒[""/ qq>޻Wɫ_aEr`ˆ]i,cqdb՜Is/,`/a>IGJ}55Ő:b5TŇO,k r[T)e@W Q1PS ͵w~z]ųM侎Q_U3~.K{s7Qrr cͅBr]ÑyyϪ;\vl]mgi2gq6oJ ;כl=•߮/|^+kAAs8Dr\?fɭ}QPc03n[ zz<,vawt͡wPi?.U~;[:ML̨) z!]t_FbѲލ6G\X#2ƿgGHf$niB!k)/cP4N,B^ϡHiy3]2%s^ѣ;ju~MO"G9Sgr |g<y셋km򼢉N>ljbj}(N EN"YG)FTJȋ'S7u55xh$d-2C+~X1( : 좑zr,ޭذGL% ؚ/ o4nbϣb_lg򮈇ಁb".z#sCK#qvP1sI\?r>45oa/ ӼQ1h04?(wݢ8Q5jPvܫ9[=qԦj3}d&9b #}0p[bغ 1 fB*5e `\[e }{| _2,Y^rQ+7^lk@5S_J7oZ/ vɣ?UG%J*,(M'hz`;lɅgVjf-Q`9Jf{|(~S0TP9LK׵=._ ڨ>G`q%eؿTSe#.Ħۭ:pNWq}9Z`!giSo[Dlw{0^E=f2p `C*1y rhC`eh8&ggzi1AϸFǏ_uH=51)[8 [kO{;zap p㵧ӵ'>^|deC:z=lOcϓ'SӵWڣG'S^lI$ABC"unz_^ܿ)Yh#?kyW-? zh]lVu[pHˏ{]!'rn(rtS 9J$= V=gx&ϻYҶv:'>; }ma>8}1tm{Vd@L< m(g1& Z*Aٮ")D9uCLI9O FQG(Q?Kݺo KD⿄QJT<_W!&ug&臽WoNN|fYBO6tK]=苭!Ǽ;=螜/Il򏶎OvoLm? Ck`bA64Y" aTq;dPӿJ5Aߛۀ5 &{S/!ur>vf鬵::$ o,ӑj=%;E4_~|`*!1Qss $_Dȕhb5)<Ig]8Eux:b|$B_dH6sbp2s0GO#ItK`&;o׭]- dMHUVUZ0E6!t4ʴadb_$~u4 x-=JJM<_WqJ 43vSjO'y4Ֆ֊ FUZӞ#``A5Ԝ[ƅ4/:EkЌkAޜ[ڲU+]^łSsCs_U;5% ;_y*G;/B;bZ_EM/R,A|cXE)>ރh>r'uri_4h?#${I9L2AN^<.zZJ|t0oChА̏b'biS  Eg%\͍Z>V4:!?Hc߽BshN7Q% 7*a-˺Tl9:Bv;1Ķr6brIrZװ#1Dz6ӃC*V= 1V R} $5MprPЦcvI/AbU{T<_GE[)?%16#b"DOGVUXUAg!ma#jj' #b@Nk&^uh:[{ŵķҋ(I/z2(ÕJmWh6$Nx:zk e&N(oi&pex{_C#f'*KWר_Ck_JY}^*+ `sn]!#j8E0-(; hFyte@Eo:dbK1  ]4R5+WWSU9)W*O6ݳ'!0˰6TWj,] s dS evuUPhs$X IqxA% CWö*/j_;060E;)I4᷆[rY@).Hm齚f 9(JÔYc#_fͺEL2?Ugg:r'4@t1,,fx ez._}&ﳊ/`EM˰kJ+(я䥾RD3czF&(L,/"(}>*)r]a\=CЛ22eT zUH{w%) hXV'-02CWovf2Sn!" thATyh~T75덦Y㱋G>cm5?#=tFA:**R\ L!p$+ɢ-"XR6pzcEԭf1 yہHNd'>L,5͚#6+%zTK4Lb,HqDe~e-{vAXT] ;4Zp 3%>?+1{Q7O g= _ttK.4[Z4!\c,OW0 >%ÐjTJ+ ܲUn;^_$9IiPt>BQƅjX@QSoM٤ T?=jy`T Km'g ,Ļ{X70|еN2jYH4 {um,٬}%uz_¹; ^mW!#5}S Lj$A@7爰 :c1-A\q*<b||fc+⣕=xTКƤ HkNʦԍ:?ߕBƄ̽J%I Рa t@WP5z- U;j̲mԯN \&-X?*5$<_OZk!R4QҾs~x JYR}n [4}p+ie9U< *a$Ջt@LK,RzO(v,- S$/5qjDnÖ1} $x@sO8^;&A!3ʢʔϿˤC/4aQuT1IV NR13Ә ʑh:ߌQe(pC av4\?^zp.ُmuthH:͡"~,JI/05$wcD+9>&RbbPYsL@]HCcCB!ˊ^ P(dch-JTn0Np[nB0N:RP|zR˚ig9E^Q}fcQ;;|;fnCy'Xx+id5դ7z*R%p Nepͧ f%McK<{ݸ#."x]5T tFꐀ~S _ĤuEHSP8" TS ESlo6߭)Kǟ5syPWIYUXtٲhIZaOڠL2`AvE'"~e/'E|ExzdwkO4gDq+m;.I(q@.gސKnrLU/C(n |_1p0>|Vؗ\t?tr7ݶ^ػ}W,p'Ń"|K+-oV\Z|]Uǥ{w6x>Al_=-<}>aX5HK~$I;W:njcrJCy/:4YbVE"gʢO(>~ ./AtuE :|Ln}*/0Űu 9 WyrC6gU;܎~lyl=[IF݄+OFYRDy=݂}}[.l4'3Eta{,A⤚bq[;zS$?ʫ &*ٵGڨH7Y{VԢ{UU ԻYvI-ϩlꫯ6^Tv7ic`7!6auA{àl0BBYHxN|GT_έ:FHp@/b9f/hBfnӂ/oD(oINnm/^ YƂHȝZ3(YJ5w40k}TQna]roMެ&sekC- ,Ap7B(PB<"q6xӓ(/t* pJxmM"DYL:C8:!CDoNGm6!̶Pg}IķN2ۺacKtF،ݘf0^ߙXߍK sF6,,PLjtPqQ˩1tѓ:Ώ;S Z"f"ΤGa|J =~:R]P_ ~"PG] =9OgӼ̕%gUY;Y^{U6B#z]npM,c,PNV s- Î$͒*f?'V#qWatPH &[1nD?-2_S,*([kG?InY&O q_eϙJS_1kS5I:]hE$2(x[5,󡷃$-$SV-:qH'ӒxpB%nt͟W 8eR)G+#