Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Nov 2001 14:15:18 -0800
From:      Joe Kelsey <joe@zircon.seattle.wa.us>
To:        freebsd-java@freebsd.org
Subject:   libjavaplugin_oji et al.
Message-ID:  <15361.28022.743975.723093@zircon.zircon.seattle.wa.us>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Hello all!

I have gotten the new java plugin to load and start, and even print out
traces!  However, it still doesn't work completely correctly.
Currently, it seems to get hung up in the polling between Java and X,
deep in the bowels of awt.  I have no idea why this is occurring; anyone
with hints is welcome to throw in their two cents worth.

Here is my current set of patches, produced by diffing my running
version of j2sdk1.3.1 with the original from Sun.  It does *not* work to
use this as the jdk131.patches in the port, due to some unknown
difficulty in the port patch process.  Hopefully, Greg can work these
into his current patch set.

The changes I had to make are as follows:

Green Threads issues:
schedule.c hits a sysAssert when setting the sigprocmask.  I added
FreeBSD to the $ifndef to comment out the call to sysAssert:

--- j2sdk1.3.1.orig/src/solaris/hpi/green_threads/src/schedule.c	Sun May  6 05:27:20 2001
+++ j2sdk1.3.1/src/solaris/hpi/green_threads/src/schedule.c	Thu Nov 22 12:50:08 2001
@@ -55,7 +55,7 @@
     {
 	sigset_t old;
 	green_sigprocmask(SIG_SETMASK, &MACHDEP(tid)->signalMask, &old);
-#ifndef __linux__
+#if !(defined(__linux__) || defined(__NetBSD__) || defined __FreeBSD__)
 	sysAssert(memcmp(&MACHDEP(self)->signalMask, &old, sizeof old) == 0);
 #endif
     }

signals.c does not find the address of sigprocmask correctly, as
evidenced by my new comment:

--- j2sdk1.3.1.orig/src/solaris/hpi/green_threads/src/signals.c	Sun May  6 05:27:20 2001
+++ j2sdk1.3.1/src/solaris/hpi/green_threads/src/signals.c	Thu Nov 22 10:19:04 2001
@@ -594,12 +594,32 @@
 
     if (func == NULL) {
 #ifndef RTLD_NEXT
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__)
+        void *dlMain = dlopen("/usr/lib/libc.so", RTLD_LAZY);
+	func = (fn_t *)dlsym(dlMain, "sigprocmask");
+#else
         dlMain = dlopen("/lib/libc.so.6", RTLD_LAZY);
         func = (fn_t *)dlsym(dlMain, "__sigprocmask");
+#endif
 #elif defined(__solaris__)
         func = (fn_t *)dlsym(RTLD_NEXT, "_sigprocmask");
 #else
         func = (fn_t *)dlsym(RTLD_NEXT, "sigprocmask");
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__)
+	/*
+	 * Something like 80% of all cases are handled by the RTLD_NEXT
+	 * call to dlsym above.  However, in java_vm (part of the plugin
+	 * for Mozilla) libc happens to be loaded *before* libhpi, thus
+	 * making the use of RTLD_NEXT fail.  Therefore, if the call above
+	 * fails, we try again using RTLD_DEFAULT.
+	 *
+	 * You may wonder why we don't just replace the RTLD_NEXT above
+	 * with RTLD_DEFAULT.  Well, at least on FreeBSD it doesn't work
+	 * and causes normal things like javah to dump core.
+	 */
+	if (func == NULL)
+	  func = (fn_t *)dlsym(RTLD_DEFAULT, "sigprocmask");
+#endif
 #endif
     }
 
Many locations in the make hierarchy attempt to create shared libraries
with built-in references to libjvm.  This does not work on FreeBSD, due
to problems with rtld-elf.  The solution is to find every Makefile
associated with a shared library and insert the following fragment:

ifeq ($(PLATFORM),bsd)
JVMLIB =
endif

I have tracked down every Makefile and patched them.  The patches are
interspersed with other bsd-related patches.

The result is that the plugin successfully loads and starts.  However,
it does not get very far.  I get the trace for the Plugin class
starting, and the comment about browser proxy configuration, but then a
lot of font properties not found before it seems to hang in the X
polling loop (at least that is where it ends up every time I interrupt
it!)

If anyone wants to help out, I would appreciate it.  Bill, if you can
put together a patch set for native threads, I would love to try the
plugin on it and see if that solves my problems.

/Joe


[-- Attachment #2 --]
8m<jdk131.patches.new;iwHs8fxȀm:l㼗9j!XH-^:>VIBoN.uU֍$W<\)kL/~wtZћ.+TiZax|$I'jXVT=?J\.,:
T*P.O@/Ug>}ڀ
xLAqaߑ[JٹRjyE{c
E9u;%	ӆGn`L3q=:,Oe0+
@0ׂK:jYG)74U|r2nQ7[MLF|Uc٩<XB4ZJ9|?Vư43l2Cl&GcیeE8_Aɨye!Q2#@?\;_̴GA࡝S&S;+Z ӵf	c-K[/O_*ܲ˻OPb:UM5Jr^?ŇNn7C:rC53R}&_ɨL1t=rUv|,F."unR%
rkSqmy_m2,<;ecHZ=%8f01(@D<?fIXZdvtf8%=O@1w=+;dd2<ԛlZ,Y3jۣ`<eX
Pa 4ivZzپ1.-
#eX~K,s1SL$m'?6W]Eaa<rݰ2ޔ&:c~|q$#1fVCaMUtl㤶q<!v6r#VEFjb@'84;E17.nkyg[asT:P4wCL9i1dhI1Lsʜ=xV:&|O?>@1Qd.Ar͐*so~֚G!mRmBԫd~Ż~6M5`OಿNX/^?Bxӌ|kw"%>4u %_4J3̔O4nZ?C1"~IOC'uESrIߣ_r9:q75=''syAr#\%1M<Y_\ψ@Ç",K7@>hDӨ\xObXXԕhu\ϰ-W;&P>~u{CdA~1h(ZOtkCוocJ%O67cɜd^e
ׇ8Ojؗ#q(Th/iֈvcZ+K,B*I߲$a44_Cn^E*;rrJ,6CS䁗
+wvSXVg$/MXkP9%4Fsb
b\6f Ӧ6hKT+.=?|$_k௫ri^S9IR~ܤQT[D>%z%!f7D[8ؗ{n_{Mi|Q~%91Z-@|&_?[a@b8CG㉨vۑDJaŲC>}>͵ٽ."Ґ7n"+~WoTfFD1-	!%UqFV&ld!QOb2^VCDKTs	-F"D2id"/5bf?BnJ0Vf"?T)*C{87r"<’!A{V@wap?@‚DIJWsPdpd8E8	BV1Zvȗͳhۆ%R6$YKϹ)aqҠےA C!!GZ,4^R}oy(\1}+	$;=<$xj`oPѰV#,&9A>e1\7a}r%d/`x|#S~ǞY$w%R"o_2.Κ,IZ,I6[S7؝c>*r+ߥ-3QwR>DYa{(pBVsZ^*bVaUԱ6-\:
oM)^1%"TdrτG")k+Sv;p%㸻sXSL
Il#;,@k&S-|G#Bx1[U7jd	Rx!$n4L9-Gk5L\ÿß˰뿽j;`ޜۭ!*yD<ԋAvoֺ!!fk_h?R:8)+%i[e"ډT*헪{]LBG!G_OevOY#ޞ!UWF^}^}wuI?i+:ȫCpihGiLQ'<lH!\5n?Fc+Ãm8c<-ķa{w;ȣ4G>Z]ah^>߅r~vtqrkyso
T3#Zc1<֡9sLyA6;a~c^ĶM!-eN+E&DDE57:?
V`bO324>9%jSTK ѽtR]a2+Dğs]n<1f3	Vu6R=ԸnU쑯)ϓeZ,#S>dqYkK{S^KY_/wyĻjJ\WEA}ˋbӐ2fc`I޾<bLQCC/Or|Z:ӰAFA܄W)
˳O_BggYý$+I?$*IkI*9.WoI|Wٶ@mg7c?$L%$v8r8a4q.\|dPD8:uW9PNAci&!W)L?$nE}ѐ^!\2VZrme}8t ~t/%dC]V0|ԸamUozeP)lW-ƍjJ\K
[徇_–PrsXˏ4p347&VOK`TksEku;yւ]mWuQǰ+rK 횪M"h
ˆŊ:osdǰQ)QD\zBCrߋ%K*;NkeDQ-1*1D/T+`p*@c"=#T;sqw;햎_4Qn
u^i;xޝ؞Ae:gOQe-_Z[n~EvQOz-!7wnѭ{!X9;-}J1f#B8ʷ3(PX4a	HB8F,;ZB
ŻXL&Wȍ:^I$XIV`u%O;ca9g tʌ?Z4>Vi8(Zv$.[m:oir=@dS*ѧHK!dž#++#Fϖ9A}69bJv{s+yZE#y'Hh0IHkHrD=;۩D7Fikڱ-򏮺  uܦ3w-6D4Y)_1*>x^6e{lv<3v(wkvE(m/%VRJm	6Br#rIvZ4,<MIx1g
Q	+~ob	^0N
N{24fyL`̠\(AfovzPSk5Aiun/(|
Q>v|
@1}X-2&ERL,z`[ZnPkP/.@1Bd1ׅaaS@s	$R//p}iϻC"+tOA|N=̠N.q/l0`,&0QǙ$`n}\6J-Uz.0Жtܴ0&1ޙԦMGjlXԈji@PLJ5~n)(sϹAܢ'=^6MeD}/*bVr;oNZ]4k^t5y8C@B	r-/|Hh}?dԀ1'6BW2:Fa	0FZ,<~e4€5CAsrfQ&]d?Z0SwnS-Ԣf<}=JU]up	QHf
G:F+A7x2Z(	d#׾E{X$OQ1ESnvK<G}&fV`tQ6$1.[`Vݫy?8WhF^FOE5gqhBhZN}NW*&adrڵV`K(L[O/hƁӥR2Gha3&j|Q)kLFM*1ꚘиOzQ(aʘ;ϷRM{*=q!Ƞ#r3~#A:?C}1R #NW
)?+k5@eC'Ӯ(K_93uzt:gؼ1tf$f^Vڄ4HX;Q`!
yljࣿy3mth`,S. SSS+g#DXibrwT؍oI,<#T	EOl⮏˖3So*8Ŋk朅98Q̮D5%^W|TT!ΏUHqR@SZµse?\O(.DhʗQ1^"Fܗ<Lq-*KTKq4ogͼ%n|ָ+[5/z	$sbsmSXuwk]>yFp2oQiI87%q@By#dKG [l~#Ic:$:t9Hza7tWP0PfK`w/ǖ6iQcAIM7w/T7C`w?Ey\<g*>gf?Ը?,~ fP,:u=vtZ
M
l`?3ԂRsFQsY%~DH~mTcz=ajNF$o5)LD"G=[҂Q6xү/4QV:-|4<H+f<>KGQ&b'sq~怍ߏlyښ=^݉M{G՛yQngxw(kyz.&Va@Coup=
MYV8%%0J0wb$[{+[g!w恽Q$#hfOqX58ƥYUG#eK;cɤBj%ɐ
mN2Vq6eĵܙ!Ki#:ʙ9ͰYQa:xhWVgQOPgTCq4FaX 	^MBm"9znCtH3mOR{Ʊ^،ĦJ3'I?lNgjM8DȜDzSIyDR@<bo|*N@zI[/Ϻmr
=	Vz~h%KYjQ5stx}sBzJ!";%6/۾h%𦋛$î'=ueOdQj3J\}#8H1!5PF;@*]óG*:ׇ.ѦX=pR$7<Ib;@H6s~QG
f:ӹBGGX5] 3oN(Ƒ$r4Eu{YO<Yx"Mf]S]J
AGDdӟDqϵEE!thf>+\ӟy3fâ]t;InTlc7}MR3hPb%|qŵxY+!yd_L`C:m_jq_ju_jS
c TpAɆj``4?߾}n.|lFFSt&#<_7-)q6&+S¿GjNҊjVU֐JFk*[L]ճ>^rՐgȪ}AC0&Qai`wRgE>u#]YC5TSyE%X40mTshcAJaВr9XO_ 8K!_,^5|
a8:fzw'#2(|_oD/kH8R#t^02QLGb#hψPWζh6*~h	KCh@Vyp$qZM`+.\ &@	Bgg:d6RexeV%wdhu-eI/Kq`!yIXY'aq=4D[Y[m6P7y}-7jMT7)^Q%W;FA{E'Co"P'6Zz1:}8@:M#Lѭ7ϼɘ+,IC?qQ;R}JC_Y"A/Lfb|E{T/)1U͹?f*/V(JJ'yJG	&AK=
I“#1&sS]<mO~"szEgr XO>{D,KϏIAx +sP[#!G)҂gXng&]XFHYt<A@
X5xU^ہ*/@yW9CB)n2W'!B4!ڌ.ژ0[
s7$7wCTXgm!
lc<N
>
b.
b
b
'ΐ>͐:3ì\=sdKcKvcKb@,BsCὠ3.`$Dž/oAJu[^/V>,oa!WH/
k_%fuU#2$;%]}2‘22
}~
j$&cgaTT5'$$^I	
	y=|D?GNybS"(a\)Ug=Pӗx?n]K9H7-洺3Ow8;r_D%e-^zD@Rː{A[]0=:CTX@2
Uݫ d2~4Y)cQ'S>)d"GyIݑϫts1Ň@+8Abg2tӺ8{ (8kMo}i+&e 	Hd$IDF}b@E&TUQ@C(A@\
'2#_K E\?, ЅfC{@|YHw5 i	dwg6ǀ$v9dP!eƯq`Ou` mdl
F3D
PS܄y4bn셊Bfi"qP[BMr	7Cq`)|S%M)O+h9?
BWaq'mj&j3d|,	ڳD~"IOǨ?&\[˓sq/Ҍ0
5dž43X'-X75}ԙ~6~/gƗ1[`kvKG3~r0f9e!	DI#QP3=W(3>(ϐB2(we[XM-FQՐ(hl>svn/Z睼a`250~3#8,P8
u T
vyvp˙u9~wy,mO͔^gv/\Z
̧8@IkՓ;E <p͈j8t\xdX@f's4٫ KQpjGډ:_
 9Q{ƇF8LAl4wJ}dMwu~&n1=;:k̈́YDP)/QL^IX)tAGI#\
PbZ+ł_d՟e^퍊
ܶ-޳|>rdZBd*4(}2qORu)Vv3i|Ar!|`
bF4gfFai[tƕK&jh0Z#3/^i!kUp-6۩?pl2OsҍIن/'G?Yil"eqXB#o
/
%,&;B>g~;Ͼ^:3\L9G򕞪r`HQFy4虚M01khYꃇ:]N.ncz>2=-ŕ۳t߾^YX{_w.4ېtofi>PuXCY)H&A<7v)hQrMd`ϓz=Mx.ߟoFyng T
<iJD!AF1n=٧^P0rE&ow#M2@^IhA :wWulЍNti>y4Vt^{ا
KbY]bV=JVXkXvf=7a+JY~V5l!Z,Ⱥ6-/f#/nWFS9
23Uis$gH/tM/Rf(h20|
`R;nV]/C47o;mYd9O(\AI(|ݓ2B›<cKٹ(N\<`fz&ck}b	u_å[l$>mܪln9By㖰WGa]86;'؇X9T)ͮ_j:Mqg?^25GaU	.N㣎eE.ꬎZF|}+ۿ6ksVzT\rр?ar}փ]Gq7@^Py-~UK[咖ݼ-F^00?Fw[`b9i[BU>͋9w(7	/Cy:]s=˭3Cjntkw&@SqsHv:kkl=Pd~t
pa
YzzkL\y|[byB|׷c	qAH
B X	BD9	F{b	x?/E>LEF)Y\Q╥Nb*/|Y%ףIEPR
l4Ҧxn}u~clGE1z$>R;,&'./ozV-pKo^BQGǹ㨧X>%r^R+LN)xqV
PBW>ljHaH_%wVshy@u{p{!Jԁأn	m.)yE#g
kw24xu1h}jvl=,N|v	US+m -oJXׄ],h<wR4'ʗI.J-+yEf%"J
,
+J'H)&^PT f#B&YL\2AFR
SiXS'k/
.
/[̛(_~hDKd:qR[-,jH"&~!	r쒯JhO8l:95:2!&OO٭d\[FhcfMz<Qӧ ~21/mt-)"bޓ<[_XV/Ϫ'f"봠?5Q8c@qF;8-Bkloï1QjU0km	ׅ%}=&ˣs,Ay.KMG%Yh-QT5SN&lA	!~A&I:+[ۿ3봹tpkWTg<:ď.ijg[X\=z([#
?|Vǖ/QKV5+[툸:FcV]grrrBJ?V0V;c/N7GI
cn>xqT(
uh׌Yiv@R-5@so-D qX	Dkq?B	r3F'c{2B+QcbB}P	휣p0(ޗx@z#[V)(yAOSm:ORX$VEI) i\1ct,W-oDD=z{I<νiG'l֐dh?cZέ=+dᢦɼLbjbhʈG
.}1o;	$GőTOvΤShdOYp3S@[F1tuTqYntJ_GV
ft5u੶7H>ڌ^!n(4IS9ب0CS4x'&ɜ4qox}q~1MW\Y%5Ug=$`?092bjp2#uq^?vgIn'cTr~HH?k,%^Rvv؅N9K{E'k	1 ftl汨X_kBk]XNgggAYC!@ύaӮ0@\sOe#rbgےL~0ӭ_xQv
O)C]z/%{kekl+=fd|B/^Ɲvg3TF̋U:F0VkmJ[[0(#r@2aTā9_C^{*W^[ص,X3~,?v
F |=ÏIڮ
x_?o7ZMxĠC\[|2}Rf&TJd\*V	N),=ܨ~!?!XQH&bE,F/N.*SCfT䤟Zn[Uq#:מN
2w6.$Kǔ	83)02g	،b#RG@a28
!'`LXHXB"&!ku?w6mݚzGrcnBcR5d	0HԷ8iժ'uGFDv0R\VQ
;-_~qD3'.ĉB8jф߅)fTRidd%X.
d;(K{{җdmpBB?=`ZѬKUԋ*=6dѮbu4-?O_/VRއ$AI2? Gn(-%pVjQB)5u5[c&GѶe@Qc,jȲz*,dz?U<`eSՓ북r{}|u4{Bߞ5څ"pӉHn~&u4\4DVꠇC漊g|
ej゜]/GAkﻱy4ǿ\}Sm4BG8\
lFnqYH>Fye4zJ/x7BΛzB	Qxk`t\Tty]YhSơ'uo1	,GpXRFVWRR	!s$g?yؤhc)wk>T3<k_A(6GC<d}Eemϵ/4*R_8GxahXMá38Yjֵ}#t㻱~Q!RwZӣlz@F87)=C1%W6qˁ[߇rewdZv1~Qfdzď_~,B%\>;m4*uKlRFOqD#nѬ (1(&A)A	&iJ@i^iV:#Zhs]u.|jOSaV`BJlNv/.(ŞEGei@ƿuGa=o^ 6=6T)],VUj'jwK}+-22^M0v~ȹTa37wClXTM^[jo~`:JP݃THHT->3~9zwz­9Z*vTiNtcUM(ɒi8V-?[
zURXJ"z%*"+d@'2N[lT
F9<z~ŚGa97~c{hx?Ŷ3 *`%d	5Y	>+d
\عAϬ-(2|.viM%_d8`;oad!LD{3~7X3鵸qd#WPOj@
ei2OtzCwyHܵk^RuqEv?G̟WL6B@Y4JYzVH&Do(Cg-`WA8;$	UZT'Of,ͥ2ux32j2FS	X¾q
ŵÈ)vyP\AmxYEj|9BP?5ZQW/987o''b
XOVeHH5alF֘I""QW
h	㞫DT/5RkJ554[>yK
_kgg(ٮvZ'xO^#ķ-@iF£[-׊L=Y	'k]AZlUb8"⚯Y9]hg8eQ
xC	02R[,Q&IY8.X!RQQ:1ǖ_/M7E_+^ZC֖7ѝ1_RG/WLLl.8>0eEfu_`|$v
Ha"*)ڍcPVGq@P/3PrTv/~,>J] INȿ3%77;VzDXN[wЯ/ɡQQP"m̘EecuϣGuA:]7n1*e%-SJG:5	oaU)$*S8g甩7!&fwo0B̓+ǟ] -J|ݓ/x>MBD&yz01͎+wFT"5zr͝dTJz+ECѣXmBK-IP:34`*sqʋO}lm2wRSpn{*mWF~`4-'*[I&
1ޫ
vB:MP4hϪN뼰B\0P*|5uԪ'/q~Yۛe`!&J*7@h=+bbP) <	')?yS1
\˛k)ұ-B6w-
4kmfU	=D3e\3tz~vl.S_MU}z!2!n_ař}b?0kLSrv7:mPh7ВNi[$xGy4n\n-,ȑqfX5u
S-0Vfu웱!IXc)R_]c>INGIh7)5!x[}_ǀowC\Yz\OEhT\x+f0	|vnB3{(rlTP
"~S)<%%R̴O"LYPل%0K<y7p@~P	T\iWaPCVW_`ݹH	~4&&ޝ5Y0HYd1
fj?:^i5LwfI}.]nE^63_7C*7slWuFD{{ތ+7ZiMXxl%
?upgRoAa^ϳq"4P*iE5V^
DG:2+1vu}fM+dQ
ӸM%ӼG˳F
z]^sdT}	@oSJيnq-JRJsO<#5w?Y1]REUXs6$GbCۭye5Ejf]x+
}(jV3]0Մŗ	sY$ժ}Y%k[ޫ~÷V	rDžEm'L%l\Ԯ^|gkH>і ePXޕ-U̷J.NWN@0}9O׺Eb5I!Ix`z<k0:a}G6M+w3t0m?|~1^RŁtNr^=pi_
Q{+>?DR_9v1#x$',̈́'qfR	8wkO̻7,_`G$Xc({BG9" ? &x9hyt.vsm/WW>CUZXj}IBiR}5C>[t0"lZQ#SY?1?=
v0;"yv`1Pz~W{qYB`5]@ǔvurE/>X&4%Cg<0!J#lOXCkYĽ9Pz?>ipe	&#1s8V84tT;)YC@)MzSW/PK{Z_?pГ.͙*3HŲdP<J}ٹIA46q@FsFhv!^mYC=ogG@r65n1{83:s}?z?Ri$ٚĔ5ՋFuoww77|oi}IZT[NrPOo}aa Ҿ9Yk=YG~:i3!4\`DBV+Ѱ7zэ01	^6Y?R\5]ft:*G~Vd,qIG>`hVOpj'
̟d8\N($j@DPգM3F8[sb334@3#=
'm93bG&v~ _pRg+Vt?6pVEf#)l̯A[sGNxfK@0+E&	{;~Tܵ81Iv/;῅Zkg蹤6<?i(4´=7DBC!_0Bz6)4NaE![>Z{-^'n4eVHadlrM!LPESL]åSZZ|;G㊗şb7xzN\WCseἒbVDʃPP{4SW/ӄP<VoiٖO~Kޑ㏤z4Ґ"QV'uK
xUw%
(5ǰѼ n/ƾ_szk=UU|ޖw]CPd{G.1.<a͂$3$Z(UآkaKB[AU"iťuI`ڑHK됧֤&7@^`<}|uѹ^%}%׍K79Ŧ#A|	"cg1~Z 	n>qMEAflK9AR>vjw0~Ъ%~pKK{xC<l<eV3#,\i{%?o>?ɋ^y7u<Q
@"5䭒۞
%;04RGtĎ֍Yà6p/,`̑7[tE'(ZuHMM`boVouv;~uw|uӹ^)ːeȒ\Yփ7F{$yM]fVkY}V $>@Hԩye6gp^0Y*@ȐT30}EC@:EKFgs5ΰW*ta'eb,3EK-B:&N|w`an>,T~%YZS1&CE.8B8Y+eQ_ø{*J^ĵ`3JL~r|h47*b{}{ڸ3X,Yݘ Cb\9AituZ@{T$/rDDT1Qp=)T36HEP?Q~E8<Z[h؏<TѪ4JAjd8EsD`9Ap]	
	c_49hׂd!WPd/VcBG.=,SzL+yj}
4j'@JdZhJeGYW@ՆXB[4KdV_vL\k,9N_.GFyߏANӨt\-ڦ\r^ r-iG@PhJQe&0H
YdVhհ]o=XK#<\-HC^H/VTB+,>~}5RѥŅoڥs@*‹MR<gmPCC+mE"Қm#ȸRA)iz=imoW/oǭf~i*b	?z9V]M(%<]h&\.OpnM,7ӓ4QKRr9n~B9"!EР#tEhHv.Xh}
1Ih!d2*R5l܄0]1@ce",je}%Z`BRkYf(j\uA^n	CЄsXVA
GEI>|4쯀t^wX=+J4"ɏNm묫mΥ]U"fh&zn}wZa'qmϚ„RzSL=][#~w#Q9=g$?KtuT?SJi:m#NV3+̈́vkS&wzrCvX_"[QNl:K
]z8C<-DJh@*BPSj+&.Igzzdwg’^w4FPl<	QcQ
Oۦi{!OiL'X!<eE6~rζI2"S T6a2%ԏ'% 0W3;jǢg_ ߁TdIctڂP<ɞP)	ڜXN&o|4[KpͺQǨ3DT΢	~Pb~mBM*/jFO~FC"RD!w+\%L<Z3cKv7f#zr8ofD̀Iha+„5圃
u#;83Nh0(%H2uԜfôJ٘1vdm	bv0U_ܜJ&=i_9eֽԡ`P™us_MafAWILgЁM1BWk34[|6ʰkW;FQ8.EHRCB3-Wj
\zфBㄸnfo88H^)ZCTD)J61{7gRbڳ"D1f!&#U()gg5
,KiKޚc ҵyȚJLYYhfǫ7^	I1[Qx`wUFbS/0S$Tp<=_C9D҄&BM_I2ĒƕjVCXoq*oPŠ$#^{[xwYeNw(lLC<qkm7NGp(+'lnvx(*7COώu<*a {5/뇰-h0xZ~+l6o#S?=͒ob	.x{hvH*Y/}77f1{Q,؎CB5p]峖ז|
Fdwi;({Is%ۘ6`OJo<b@,a4pw)}[hK,ˆgPEG2)ډ<v"OzS="=V93pL>LL{cZAkq׳gtK0֥LûHy:_Aw9}_cjf}X]`ł&}Q&Fzr[xte(&>O@G~>zӹ۾aڮB[ZbQP|<bpt,V?8,MKOؑ	<`RAB$h$t}SB79!{(]l'&a0sqx(*ObYT!@ԫY(6=9V+9ni%G9|,~tɌ}ӿ֖zϺ[N`y[7*A9+O``ZTY Λ$MI.l
>E]0{M,Dn?AxSKGJM.J$*^MCLzo)˟'U	i?IDY=i'@;(5]t[L_XVZ}Ym[KQpl׳]S4'CRhs;I2> \4h|D6 nE)aiJ8/-E	Xx!E<\_7daOiȟptHЯpHʴ&6oB=C#&3J̘'Xl9IfB!`Ѫ*	}!*$k;NBJn6.k*IT[/%%)6߅x78$sߌo[p&(C 𼰚{ǿET2D)O
ӓniUx$J4ȨN7k}N7ܰe/ZEPH~_ik장JT_^=/|gD5ȈkoUv*<s50T?CT92=r3b5'/hzctŏ
VCOO&rekxWX}+7W:[ɸyx[aT8.D!x<>2{X\!}OLP<xEXP:Њ2U:L14uM5*¯jgɞa5TrlyPNϳm!C5k<&#kV)['jt\.pX:wcɡO1t=
˖%x+ruaq1^e ΀67TCBr
%ZĠ
~,7uMMc!
)̃*mJx8YXc6HGdce'GS3N3NՌ{2˒
" }B)sZw+d?'κJ:sSrJ%G`b+~T5];o,ls|BAwA.E6{7lJ%i~G
B7͋<4?b\XK7@^5mN6Xm@ןѳ2YbHniV;uNOfdP'Q3΢f9U842	Y@+
֚@
H/<%?BO.׽:Quư
0gf
b	JB?,lǭs
zz/WVBcšsς=ѽ:e5VV0o9(Q1:ڵcy0Z}u}6YW8y"+ğmtѭ3t|~8<_:Ub8qm}Wg~{۬׏Аq+W 6/NN :u8M@Yvnw2F8oI8N!Qmʿd/`pl̆}'Oq4$O#b\^JB4h|,ri9g<B5;BUμdex%,+e%{2o5q
)-J	[&0q]^s/nf=BU=4:)-<WZ$.eΨW1:@rPk}¹`+J]A.a1UʝB
 P\=8_Vsh#-g
PN
KçbײaQkL]'/V-k1ʿsq,䟾BV(g-"):$_j|fyPfY ~7$KJ͔ɄdVu$9.oqK=X@EAV٩ţGrY-BJy6!V\*h|Tti9i5Dz)
E@
$K+*%ci#oTB̛3ׄtvu+;fWkqkT__ŏ=qJ^kwrQD[WcP)a(jheq@0HMIi7Y7vZ{Ϟ7E˰>eNNE=эL+/~yg'g=4:&d656Sm%4/jb+LSVJ[ho&#5mMEK%fp=^Ͻ-aV$!e }YPҹx7T28uAv2
E־U(n`Q=B>\cWMUla*585=EJfYgWEl?o1\(jzC(dQmc$v0J5$){Pl
SDE Wu
c*9>YmaS֏3ֽTJW;|!NgcBiy~(SxԌ&|xi>wzf(^کιrxFm);cl.2S'-`@NQmvnݛkļ?
S'Yn྇rJL]C+`
썟RJ;*3Jrz)z\J V V^EG\;Fl{
$6ޠ7a0AkȄ!Menj68CtO/sQP6]k#E^D}`p4+̡6PAfDա~<CelUϹeE&
@[u/;k|
ǫa8/\E逰}aT7X3,DᱜdM@E.Rۤ_};g`>gָk>z/lx \>k<I!q<ϢNò!CBpMىsyRJ`եЬ$<<=gĸ'Ezt4.{]Sq
&Ӣ(ܔp/},[*JkGyV}S?2֫gm݂TII+$eVy>
S5l6|07!2c*	6~Us9hG1啷񸈶B?S/PͿz?^.omVD#j۶ %s2$t0MŋNpK aGk~U9jq@^PpQZžuF
#=D_qrJ6[:L !qg%l׭vM6coʡ[m9=+qѡ1-Ԅ򚰖EJoiwQcBʹ$]MX]ХO=+bФXlҷLXm1U=hMW<Bnl
W*!jxҠlZU\M2fcB5BUerH].Ȍ=X&M>Ox0Kfto'O+ne
|F)Bьja`긾Y-А!)]_|jq;¹9?{lx+B
v3=zzbig3lx_>*OoIB9t c"$ MQ{{|g+Օ?WǦѐ:.gs>>B"A].=fe7-lmf`ZI:#reVY79W4.POdF| sXZl1-'vFκKq;w[/ۏ+ĺoA؅a0n0+b9$ƜJ`1uN"oo4#ܺfnU*HY(qЪzElB*A?f3BT/arvSWx-QWR`3+,gBMIO(X50F<=msJ_0Rp q@p+#)W{`o{[ބ_c:P0ɿ.ұ\0h'qd֕I喼NKQ^S糚cKV{q
w<4hJ7'Pc[#Adk*.l
`C-KFV_]9G8#%YRɤ8UI,Q6HK$X9l0i;\m%Y+F~Ip@2(<@ảs!ŸAw<*z337\v㢗`27[%
vzGy0O)).e'+klP]X/)3`c·7z;`L(ʎ+kWkwa-62pѢl;lq|ˣ#|n#Qdk㏢#_Y`3#a.gLdE攉gӳHKz)%boN3YIfvI0_fzx4.HL.j8?,hvBrFuP(E4z&*\6yr4Kc}~ho6!snL	fŠGFAl?F(~87 _GnCSlfCqJΡ:l
i{**ڒ&(PK8hRl/ZIc?0MK2{)_x %MV-~%%/O㻃?i>x^߾p	3EBy#DQ*4ؙfb&_J[l!´Ba@0iD[=8߽
zI-*abhSD&g~_<]x#kcwnl2˨JrBהt(Í3a3Sdw)h"00sg,iMw"em{n~"nQS-AT7e|ʡrԄ
,͵nApg<xWImZTW`IR	ӝ)d|gwuC@x|k%fm.6$>ȧG4Qs⩎l@3>`@:}6:VބLdaY}gz|&xm?Y}&(
.<5Ѵl3=5tׄQ`as^Z8_0Yj.h{쏛8r	wduq{= n1n!o1U>omnw>T7G.oN[H,jf:oچ
?V_m:ӳ2u@m4\_tD'FuZEl ūֱ8I+uib{`UU;I\]vhNFHVONBCPC'O#=jkR3;)Y/:zkQmzZ}OC|q^?.\/^;E.޴ZGm
`4F>'6E^V:U)EAGgsC޶>@PfդaDE8'EmUq:ػ!pZQh&W4o7ku|Kaf?4[<\2հH+Ǣzݗ
;cվK<j'OtCvFON\*mlmWv6vJ{dbŝ!ZJC(` =f}@iMhNݰ+'5"$}QKƩp]/СUS,硩̨
Ps5CلHZM[*~,]rh(Qpc^+3CS{ڪ>E_"sȘo{c8qB8S\1&5uy76,kjr[ek23|kd%w:P.U6K)0
qH	UB]O8pZs}Ft3-Jfp$nCR2
/[ICh2@JB1"ʞHtSDڙGqhtwdE
4xz[un&Nό
?/kФ:&P@7m됌GO+A&r>󡜬ɺ	(jaVxS7خ7H?p9E>1FġkGUશ|Wu2B<t
5;m_)-t@?6/i;WNT={:ɘ~Euҹc૗їhO"+N֏{g=-9X?w#K%{w0G*G<f$	ܴс,{tݛ;y}Lߕd*|<3Co\*4L46j\9\A.o2SLUBNߧP9L#;j`cG_jN;;('Ǎv'ጋ띦1/y6C[C&Nϧ1GnA&<v&ͩTR7Jd*a]F:td//)oLExwi]evtU
hFOg,D%SeX^$Ovw1a^0-LlGOВ*,@leb;d-^$:60(ݾ_w^?
~+V&-+zI#5cx}w~3z&̖ks69NՠKMXiŗ
EeM:ROꄤm3L+"$[FVE
Y!=wNi0Nfݨ#ŲchTjy`*u7o9'`	FF%0REvH=Nzy|oOΛ.W/H^clxNm8LgN-zѭY8VڡX:1Wex]}QxrqNw,ME!^Fh[}؄dЙGD̗U+We%~WR!a۴@,ή>Ç7E/O<soT|;`L+slJU
qʗ"7ZR8sLiM$a[.#
)6AѠ$ggڀf/oR5]a{…0QMIʘ|xpS"g'dH15GEwf_`k
3yZ0{xeʻ,3OYѐ?_Dx0"9.]̅(CKj$bS-.}u6PYIgvHYK)'<œmbq/lrϾjj׬-s*7j`\,1k]'>(Jxn -iԢ4
n&֘ϳNҤL
Xhc,-dmJ_weP2gd5<\4Ff4RnFy, rcy{4HO)'4"ۮJf$2X5|/z=S̾YWfOxtc:l]x=ۉ &`̳DD^(SbE
}y*'!=i|!vw{Omq
ZZw4i	:
>9iMfiϾ<iC[`Q5Stu'B9B*2!*.K{[o_Ih3;r6'9ACClL@BP5@+3dFM}l.Fy!}F;}<Ys鼒эDD:9E
s2c:EMH_8dQ~LAqgNcvգgIH07C'z+dm񾶲VZ
8--/CM4T˪1ɲFk{sA&LĢ=yFm?5D9@1,KhlU8x*TdT{	K<b3Z
5B-nENs|z0S
-.ky9v,>2z	<H_3,-Ʋ5@:$nc4so'x`x	j{:#U{<`Pv<0Z%G_xa)++Ͻ^Nao!38)㔐~e5uúCg%i|=ԔpN!"oKJmԛGQ)ugPL\ֹ2,)%6,/~?,qdMv`#Owr43D_F3fij
_dm16
UoEjYUG	5B[&˒/%~o͒jǥ2&OXH},ttrFGQ#>,g
F e 	[:18U)a
%ZWxXI+k1Lk'	wiv=g!F	\joZMU'H"/\ls0lp~e)ڟq?6GV5vZ=ޏ/І]^DQ@4uG'dzg8=;}:?Sy!ũVF<gr3F8zwjpq\-Dޖj7&xźQ5/a
V'*&OKa{-\fn,{/9nš?$Dq-Wr"
O!'\\eYuYP79}iB9El+Zo	!wBg#3At0|z)#3\9vd"|u>XavƥKB_}	Fqpd[]x	efѪ
z̡ٱz
]p`uO@ExaCy-6\Y	/v4		5x)).J/t(&XْX7fh1!oqeOd8Q>fO(b6784w\Eu֨wύE+Gwڢm}6[`Y
i;RL٘Ojrc8xq͖`)ae
=[+G^zJ6A/pw4px?cgh5]vTRF1WPQ{9v]}!z?*rQ;JLвzV/ωsݾmL%A~=%T]t	ʥDku
###s뵵x,T8h-Tgk™ʞɄyY0(
BLq1/b_Y}ˣvᙦ~呒X8zI|j(FG'M%.l* `GdeSŝMkП5{j=k/cdzJ]ԺB_%[)O>4ɉ^_5Sn]}WYPG5MvQ\(Aj Ya[T
9
EhBu*ٳĝW}+Ni>+r.f5,'LĽhq0o&p]
7D@dm"i]6;ddL˙rp|V(-~H@ELDŽyM&.Id)A5Z<Fx>Xk4.:iudtTqF3B~_ѪI=2f29jOɮ<0-QV]c0x1edLoEĕp=x
OVP\8S[ܝMe7gl>ĻoPZ~;ȩP=&cΡcH};o mYu!j_ڈydrI<>')}7CoFuyޕq٫Negga怛^DD0AX
҂;#!c	acQ2ޭj)nod/jgO1I}IʼR-~|aU{|m u?$d5%/8k+aG,&Hޣʮ]Ҋ_	V/2#ǦPE^<om}@YY	*!<3*q7
R\׍fCCreJf-c06DGžcq:0Bϛ3\]PEi-!*=LӹX`H̾e\׽l(q߮{w$O9ivw0Tv-z>	6ϗT!4P}Uʊ +y]P@5ō5`_'!h߲_84b&{lj.'g'L@خ;,[XdqTNAD@`xh׵5w֘B5Z''҇SK}
I1n~}t@L{2L-xvu@ L4qM.U?C\S\ml!цR<`[azQ r3zN4U<|ܠpj N~L73](Ohs9<|'(f0;qă*o\bÇd2p9,U?sJaVpub^
d]i
!3̣g#ƒ(`i
B|AFPB³?9YԯLarR>Sk@P%91J3ݒ
/D
)[Cyd1閽QO0zJd@g
dN[}%{eA<PiR9dAO>J+5-E7a 㭾8a,Tk] ^$+x
!՛赾9d@C^q;Г7(Jfnt0;[1sl3CF0yJmY$Eρjd=	֔/V6ٝ9+?(2CM6?5'j\*M9U!!h
cV-(z2ׇR*3ZX+?
[|{rZLΏ`@~Ϯ=?n7S)LqrZzo_ uyuU=.H"WTZzQ/PN,Prӟ2hȮXB-RQjCYPA0D^;ǸlCw`k׼ď *UAM[*H!h~R
jεBY
T"!R؍~@*\3t?w~!5Ӳ,]Egv8>"4J%xnG7M
Y["hw$.1it$+
#%Krk~IV5DCqƨQ1j"U?76j9J4RQwc3+>˪T-=Tkգ#BK⑁2Hx,Gx2"U]R]3v]4qGH7v]yU_"ePJ;c+n9kѦ"J NAvzYhijFRsz}t&cj{~w"nXqwS9(jؚD:>ݑuoOH6v±%K"nAg5jφd"JR,$CwBЁJ&տ	
pvxW	f}$RK)uGaX4ͫ?'M9_.b(IĿ׷{
%D?
%'Y‰
&_獈\6~jOM4
A!
R=9?%`|l+
2K={=2z:uKW!KjQj:)UzHMy'WrJVi_Sza9VF}^Ǿq-R;KG̽T"slc2Qz%I}=8^5&T]c,yhnN>{URJXqVFS2fgU]g3B2SʿOc֜hTZ=scWdCd6ˤ+9GN?'%~Û'1tܰ>4]6(+[vNXh:-خLPOI|lsLq-tptYõc:}8}jW2;*\b	X`L-E}D_ŽapDzg(N5rYZpncoW{W!5Gsx5Pn;3=D0Gq$20|ёD)ShqR~g
gqvAM4)=l7N@vxW)|Utt aVP+&J#±ɥFw[ 
WĔrNXQbe|${>Z&NQGKJ}q$EܙKi+s+Ãx[Փy]w`욆M:'^篡
ɂ7!)6P6Q
bbeF*1EtyRQFf=o~ىT7he%&$ӑSȋͽJq{|Cy]	N>'x|AW4A>ZIk	U<G=Ё%F_$u6t'ӿa6_aXȏBp.%"UxDu;Ųl@!"z**b{QbH*dƵٴWrQ~sǫCgHuAhVCM]Š(p+qx_':aoM'W*C
ts}55LghCŝ5(lLҸщ5ϯp0^`T/h(P ^]NK(/MlZ)o(X}YZ|;9#'aɰdžsW5.(,ZkE(6ɨEbh4dw
j枈n:`P
GzZPu	4C݄Ц>/iJ!D"{[MBO\<,&6iraRF2!آ9nQXZ[S_SɤC,
5""/K>o\&t85;'y86;'*?(l`aH.^UH361v}Ϸ|ehb=È,%.P[OGCIY{ʌեzFYs]t}sяk*gsc o(XNOa:gc	TxU:ڌZ><VCH6vv/_F]1E#da\z9O\Zmq|ʆO|쐹V>N5eI3v&l@omT*RDz)o
8`lO^9/ַck%sd59+!<ąZ^͍֑||$$dꜼź;}R2`0EX?`Zŏ=BXClֶF$hUW:?$G"ŜB{F3=Q1;\;NE7[ydGj|Op`P-nwuk8!ImëZ%a^-VE[=:KRKy(uD8P|1̭;01lWjbPM3'=	-FG"/[Bݪv6nGLiS[wr)CB{mG'as?88Fܣ+[|tqTD!Y۲޺`>U^`:2Y]tg6fk46uz|Mp%FaQJk)-nBm٬yݐ9ʶGW]TBCjwd!	۹bYbw7y/l^|oFlg3mfIx>64xWO,#x6=zͫ[}8lFzg߉ ϊ.R5,J|׏k;",MԶwpBU|>	{ '>,m$^R/#.D_0	̸t;ŦNcDIa`/=@Q[}.D]A	/K=S8rmm*[.\\$ɰ6}բpk`3t(~ Z998p< qrF!Wh>@96n;H1>:ul"9onH
Y4lBݮ5Yȭ=xvc9kuQ{%6
ϤmTIfgY(.uEѵfz{Mx{[eסR`\MĜqWԍ
Lly<jjFfy9gؚ#Hr&^©)(1fSTx}CԘ>87I2q]?_7V`cuj_9mG]TJ2]^8xya6001krpcɔGSSVQ^7MY	BeWDaf!ŴK0CEH
"ɕl]
,&lH@'Š	³ߢ<LSek'E䨹iT82[ml	BZB9hOSNx+rpEgZZ(,Q.R'لV<yaS^HsX}9˜5ZMr|ѮI\l5LOFsJOI!F6n뵎./47fR'y,	?'=2!+t'	E$Itt'gI~jED-XZ3"pF
'>R̓RB7NO-$#i={#z6Cc}%ܮ9&e5*{z	ac15$`cT܀mm!3rmLP_g`8:?FEa<Jߔ2|d6
M)CPfS2s';V=(RJ	eKJdEߔ,w@cVPkZ0&/iKc񗴹Gx'=4o2f\whyiBnM~XoA3z
i@uǡVi%m:ƟJ:}
*/E@7ȆN%;$q"DtP傘ҩ{-ㄬ.6¿ҝ@Śp">2@M}CŻ zg88O(DƏIF䗮Ǯ'ݴX2B&)2L*)ʅhn{kcBBeYv<a_쥈6p9\	eȂ(mP403]
P-_AO
.nNKݸp`$W*Y(ݒ&O9Hc~6
#ު2駉iٰ5o(3@w_OYLxҏ4&_c5$$,do{LHQPטn #s)Qrc2voLUJ[$/c|E3qġy9mqm}Q8_=%a
(QyH8A5vT?^tؐk`o̬s{2]+<ozp3dMTG.&ʦ&k%X\I?8>	ҚbIQ퍭b%pB5	PsF.plú8_vѱ(@#&&:]@u<tp"J"_шOܲL"P<[	}*MS.i}VX\L)3}~jbJm47•e\s-b&B=CZ#`gWE=XUeqF^hFQ5[Lϕ-H_bc`˻ݕ\o=TnAaO*tS}8#
ruC7Ϫx&)j>t&;8JZ?5N'sSq9^UE}+B^O4 /yTB=m(LI|%09Ɣg]@%VTnNs-s;K|n	c%_KҕB(.P1{<.Иb)`B`RG\1zhlޡ!>SWeFEb|nE"z\1$Z9*-$KQH-H*%^7U
Aat'cZC	ц/tژ|0S)
ۂ|/?խ
49w.“fz]-PԐ䶒ěS\i@–B꪿j_a:ƠWH7Ƌ,"0QR4	uS>PtW]j&ã+ 572Y.0#9'^=ӤN+xjh8{<LL"7ciZ}V5'VmR}E!7qj$"AAy7rx?'p<ofy	J]/DN^$ͯM2ΦQK
,(9{*`gcwi(l/gD^rEF~pFrLyVӨmJa Wd;бy˪-[d ~j\p'a DA[Lv	-Q%c9xc"*3<m9qssOC*}@x[mNLIǭwJalÛ;0^say?B6SߥՃwCzIQqz`RQ9ۏ"Syn/{reoGk2Q3/ae|{ٽ==b&}<Zޙ}qœnv	#ܤ엟5c:gc!aUTHi@S~5u=:q׊DJ~H{9CPI<W?>I2>9K8- hHz32_$m0SLQFȰ/TY~we:~3BG%MeJXoa2KkFͺJ.h?FkYVDv	)xC+)]<JUJxM77%:RL]}M{5?3 ľ~ZLH7@;*gaGѢ|-'_G21ueNɅ=,㿁"HW_aMP*J=JKj%xW|@5bMiK.Xx,3Kq{v+K\zFGxhϩkNX;
(v]$2LY[{*ģ#Z(p
v.GLAю:DE4DoPP
UT 2r[*9	uW#~ƹa2ן~)7GzZ&[MkRJĤ	*6wt)j%Y>%eULJ&v|2]ٞ42k@uxQŊhȵ\@b~ѮDsEXSYO	17Rٖ—C5܅s3YV}˳F:ҥqJ"S_r|[}_Ǩoߣ"IVJD>˕m~J1gf
ڲ/Kbt~)+ٺp_BgF̎ʚa
49`+i$&[XMm7>bASi̶0[ӥ+`-HIʟD'Գ0.1Q,Cѓq<l(7헏03'?@VϢ4GDɛg@JxrcaِR+>Rj<R갲-L96yc-Z/%!lx)cJE'bGu4D%MpN
lWEc%CK}4W}t5?ũC;WFRe?L:
X;p&
OFkY ƮF]ˢ}PHR$	9O6AC~M)v8x[mV:oz@<ESDSh4'EN^=j?hE0F<7ބ`gS?=׿[;{p.]"P)kgy&$u`-<q
ކuB2x/|!E>}y@T]Cg,]T^X<-B7ڭߒ3-FݮחiL~Cd^
i{w8zcyG,]Epj|M?{~>HR;g`cvꃿ)YG8t\#2Ei}o8ΙL;p' ]7/\^	ǵ1V]e,!U#pE
&=Bl4y\Kp&KJP9N
e߮uN(Fvv~"s[2b@QT%?茦m[D^0cD<cauFf4[z:عU7r{zFW(gԵ]ž|
==bw"}K36Φv3QHYNT7toMG7J˄|7͋Ҵ8LABLt)Q쮇wSzb(gpahg]ǔ&f9'?Az3VIhJfWٞ4#l&ܟWha	?O0*Gm5zqrg}jfx_W40i4:7_3.!PVj0v
}4aҙzAj)0[δ3o=Γ'[(&?_6tטv)|YY6N#3J*+iW@Aq#ˆ}Q|a}#7 *iV&( G.\[$/O
2Xݠ~re|(T.}m8wto 5m3^`Qߒ~moưwX4jx\eD7xhnyO#k_R\3l~/RPE-nr$bb:zV}SQωV3<ho`vNB(T"Y;nM%3	6)zhM?qoif=כ\~tGŏ7%mnX
q_mG(6&qP%T	]^^fLLG1nAzkh."8AY&vO 7t9+(2ADIymtmf߅5v)g[f"DKξ8Èfh}* /ġ]C 痣w뿜nwH4ާ]a75:ex_3Ƭ:Ȑ/߻zZKV,Yj9w2h{K=ՙx*?abgAeJN54ι	l{~ W@Giz?f<{ѰU=	T]G="w5$"y9sYM]is27.6+#Pqn(A,pVSWby*.^)rXg$F%2sᗩ
UѢ:QC
9lw'5wNN8+qI@a6g0Pvпd8ôڏTI\
)Ah^V6zn7xץw>Ju%*
* wRZ9|?-o"o*躹"ΐPǰ)s0]	xu4}CW_Q$jB塃<
<yFXKP&HP(|ĪDfU93˪%sߩvt4zkx"w>,О]'uSAWeeTJ)h
Y\YWa!:}	R/(d<f޴gT	2E}7Bdb5+/lVsrEtrj'ќ(1PhVL,ƜүRu<:!h'`6tBmh'\@>+gUId!y\MM3WfcթOW9G2ǖg|FnH1X+#]'I}Lky.aPį!C}~C!0ԓaK5gF3˓j`j0	Y
{\}v7C71c

;H'UFQOx{	ωC?FWS
}?gZD;U|m
2&p[*>'S6	ILx?QƟ3{LcOy+YFXS%<k):PU[şv@jyϠs0䭽|:Y>N>Jɍ,mTvҰo[XIYK(ף1u$k<.QרtA~8*ʴ G' X#i63E,o,Rv^]{.+blG
8HA1mZ.NLt<9U}BK8mE*[3}V<%d&瓄Vb++m-JBxO(3d?9;Ty+)
tT,fopa=>MxµLk/;R)QN`R*2_ܡ9iu@N
4G.z"EHƒYD:w2'hp)qQ6uGY^zfԟr`p9z`LֶqQ&]٨Wco	Ca`.vIY6e]@i@*tqQ*lF(Pޱt!NSnT)s|+	#}+Go޵[S֭Ɛr5/M2<WeHsdJ-G;q$bJ1v7UQ֭RLco˕	t[*'~-?0LFK2ywLipB
f*ߒ;C0Jwzr~6r (ȓ^S"[\{.,
ICohҶ!d|COւ:_4	KŠf.P<g$]s^?+
jUɄ9cWat"aHL56=Oc{zUƪ{q5Rۓ#Z)aQ"3jlxc:i4hyE
$bިFN_^?u`*a0b." v#q]eZB&veЬ]yͯ˿RW=& K2Pqnxf-ޅ=^Eqt!F{x1zs%+*G
Wp9p6`pi
3hs5YMO6f)<!ͼ}VYO#H?Ly}cm*ԇ{, i*W/DdG>⮗Q[[0.[| 5asK=76G[l{XvVxpٌ(+L>P\t16Q	7c22HI;VGeV"
;leUËr&o)q(8[w $x
}N4SI6dm\ؚ
DHBfnW$^B]
GrUVeL$|tHGƳプۇQshf˴sKDxYAjO[''G	zHF+fH;(^ѭqʤND?E0Op`k*\
L4fv[:uw2\X=ۄ[׾x[ճ(jOwQ3Gt:lEuYb>Sr^s=D\ޘ2l3/_oUCo2,-)}
B}8i4/.i}_*	I
Z,n!4Ag.|˹1P5"	
ҋl)ӢB&Z;lE1zȣ\"NYPwaZR7>%
mUg:ӹNYɿyUZ.^3,N:e!|Cq*ޛ[:=JeJ+呉)$W<fRFSw|~Y+^t4uM&Q\)o]pN;~i6E!R'|uz
jr4yrz8j+1uzҮH>	&ޖpCԍ8Ly~rdT;ǭS9o4]{@ӅZI23#‰	#$>p(Pa()Mj*f>_q"Yԛ)E"1#Drځ3Hc
\&Wuo
g$KqR~$11{υM
T30h:h
k+M+ZMY[O{~fo։΄hϕg3ᬻb37 'L6hv]baw+:g|Vu|W[}m:ș	9A!C
(]!d8}qFfp틋fR⢹_.3ʾVo.Ld5h6VVjXH.mfP
kc=jEI0S!cY~8~ǐI5fxQ0ΪswNςKXDEo9;C&<=4>Wɑ1TȋLM(3TywGp|v
ת4燈.!˚ZCJ.
,pWs5.H=7*ʖ>x96@_îΌk/Z9]dɶc~P`ATŊb~Q[""y&6$',UuY=y69KMFԄZnF՛:h`i)Z<r?a#)V}!V/JJ0 P=uS}2vv}3:/LlZۭݭ+ncs ZGvsJE2}/DABkh\+q9Ʒv̂V`)X_&#ΟU	؍ľ6Υơ7*{E60LgsbŹDO>NMCv"3vrgLd[٣Hݛm!Yhm)hd4v1FHEG5rH \
UƕuL!+"zA^G|jws޹8or0eC^vR"C[DI	z|`S¬0l|ĺd
I΀ 78:Evg[!皲+8WtuU^$b7&hWTÂL׻"03aP'5]"S-&,܏#ť}!	uwbwlK륝r)ƖlKF⇥qx q\ez96;4pQ8T^hle)zwQZjFӟsؽ]ghH(.cۡZgΰhBGze	P[x0	eyO%-pEÍr¯G~bs~[lo8򂟁KRygs+BMqJEC7et%8),_q;]1_>LCәܰ32CikI[.5X 43/L)8R㦜-hg1ZJ/ 7ȁM.IGoƗFjijAS*I5jiBISPaGN5XOոHPlTIс}JSV:vC	(@&!́3A[k|ͮ%	yP*E'%
وr@K.yRzxDgTަsOZn
"}l?J:C%+0n9^"0[]3
Y*?ˑDY
4~8v%URpEvBeȬ~N,rՒ!paDrҴ#+
4جB1i""J[CµQ$Nu߄]x"ȯ_܁5Q1 
 $Vx+pMF?ZY	ѹ֓B#Ԃz"q^nv2
GT>LQ[D:E
'>}r'OʓNÙ/Dxbr"oVed
%lmp>_RyN}rO,yYD?qZeraC|[Q/fSv}?~dSˣ06똾1i%{trRHtL`B{S	WIGN|lS"mLiC"F]oC'#Bd:$^Ožy)oi#q>+h	T2rkT+qPZQ(X>ifg䨦o#3oM^S̭
O,*tM)U[&O66iSsĮiT"ȾΚ)wbI/bcݮBǶ]ԝٟA_G䛆1^`>U"0?5ږyJ:1ڭڻzfh*b@yߣߗ:&cIb>N8>kg
{4/ع<j9{F,16(p)N:.?,f}c(شc]g8¨3`E7ZIhKR5[jR>cJeuaX,{8xmifㄪscrg$ٷlͶ%>C)y&
<Fk8$p_7ՋUVij{`n5ī' \ȒrJ>B(VJQJB2av?F"kw]èsus +Trjf	$7{J]hUkt#<Ae_O1B[+\ƀ@#2>K]_sx!sFegS󥼆UBI=%*ْ(14hhdvf1<*̯@Bqfz_s4BԼ+LSjvɖcnnC=e
DbN@{6rb7=GKmĘnƤ[ywZ4Cdι1浼&&h丶g}hߌ@,
J(f$AAa~6X+"=PP<}J/	VdWx:(EXD)a;P\O54̍Q8BFHJ@Sm1YR;5\}5>([S$9dRXzscg,/yno}cT*gp}R.a/[`{=*dSyJɵ1@f(=匏DO,10i6ݰkvQ"QS/`<GA/t/Mתawnu^H;lsQ=APX+p+Y*8QƖLƘtJ.?}
1q-Ý\%àn:ڽݻygߐ龐f5S陪*Lut'ngv77-)]CZ?$j`0#{vy	jzEt
:'&-kxG+wG?+bc( RYo]ċWEyAor%,h񰿓
BM?F: ;N@B$&);W?t㓋[㢉Y8llr.4
`L@顕ӡe+)oe3TqhGQxB(o儓R$1'}H,.Z;N:'s:4
(uû0-ToHE.4~[m"Daz]EvSPNZL9:3~/w}nPn̕M=eS+R#u
UG%(`ACCoc+bhps=
-V6BZp\pPMM߹257<钾Dcn^~c:Ktb$K5RiZA8tkxbT]]9BF08=MuC;Ju!?0OOwE1TxJmh3!"Fsa&E/TWN8qzس=j c6+󖣒,Z3ǖ/<sr/}s"*F>6iEg8`Mm3Jf=ͷ]Lȵvj4W{Gk/76nFV'V?xUdsqJV:NͪZbJmRr	xLSJ'$A`mcu<?p!:_fh8ޗ74sz,^ovN}m<Cn+,ٶRq岍@A$}jGkq	ӵ)녟)h\z/Xj\yYos?e6@j?hoWnh}U.̚_oh(?S,jA{tIzĮ5F(W}{S+{(Q
"'lL5}obť %D]q5\ۈ;6BȤ)rxeDiҺ>h	 6Ep..Fa6G>O<P
#Ryi${DՈ)7钟
#/G֟yc
3l[?zؾx9u+/5H} %?u<뾲{ku!
Y-t쾷]C;*=bpX!o/I}Ur]4`FSes^
PMZ:P0".b&*ED\^)p>Vj)I	Xf;Qʓf~~rfY_6+c04ERrkkkĢ%&~[g(NXj'WrLv7odGL
'CWC̓.I<8q~J'YdW
uԯDtN^K+E:8*Ӹf>|ǕW?h
G)yje,(1ȕPOߎ힏442փS+tJjv02JkFV\g1]
<޹XYpırE4QJtѹO2+baa	z	OeFLhRan`[Ary{SRcXع9z><Kc?'c% =Yט
H/kHA-|pӽgp(iG.ר*kIoQފ])W67tɖs !Yw&Wm(=a}l![1|;Z]Z9@S7VƻWΐ%K,VPزk"AܴU;?s=Jī<FU$gGRyl
Ց&׆;f}eR&o|@Q
z6u0Nז eb@)6!9"hvр?uӑ脌(,}{ˑyPo"GRms]a~n4ڨ(/Mߐ>?=[QΤæ#_o͒ҤRddF$VOPnPqG*%>g<NFICЈ$gcuzZ>*G>Y<-N;dgTZ `p1ڀN}E€Sn
mRiF]?"w,o)8IܝA[>#5mRN'>^;Mvg
8B//
*IWG'	r*K 8³5t5ሻ$955
f=DN
C>TJǑszտ%I>T>=E-!<."UCy5Cǹ(UXQ
chƵ{pM)
1o}t|+8W<[rG渻Yp7'[hě=f"J#¦Xu76+wtg;?~WZ&%{Eolmr@`
z&Sk8kj٪Zگ:Mfz}YPkw
={t>l
i}1bD+mDwkr,f{ū]Դ@Pפk06|Sm^zÛyzy0VNUJ3٢`HpHhj$gsʙ75SYpT&˵+wi]TF]JF<]ckwٴ,$1e	a\W+dUR{ӎ	J#||EfdG,{[Lkٱ'ʇ#PڕA}l5_CDO2ڿ6kH=ǿLj=OD2GA@؈MN2AYEV8?FS0U3{dkbIf/,qBewgE;9n	r+
	];Or*O|A8il}PNVL/NRY)!f,YLfqEqV)')cӽ]"mevc
=+bч{*\`9BjVSTNgtbY#>&WZd
j'{uvR9}^ݢ{k:o&`#ޙ\^d%-Eޝ98.GxY^
C)D>p_<v[	@ݹ =%Ũ?ox(˿ߠV$*VW"
܃0zG0$E`}SG/X,l'Ǎ˹C
Ƶ{Jb-݆]r4KzL-qm7@||*OAy
X'}(ei86>O):7OZwTt1-l5>G-ae`zig)-T'<8*lrtw:zQ%3G6+(0!3P0ɱc
b=p)c"FS?owg W>P50x4C
@V?4Gwsn7Ƴ2>8V<r&%Nc%4r&+qlݜr[gIjΒ/X|C]0x%7&ȰB!a"4fͷ9i	/%Ѱ-#Fhf&XT^ݸ6ϔVҧDjFc3Z9<36Ԋ	>Oɽ
MHA_<w/?1" `B_.my>ۛ,?<c3ٽ
Iy{eHAS$u`sΝ'"߆*kZo*nphk[%yp?dq>(,BL>Q
)a)8]***{|\,okls,(TR;Ҕ
eɍrtvIy-[]P
]VKr_@{E(=Jo-7¬hʇV_d_*~0,K?qoeBYd*ka
(:['E]\X
U̕EŇ+''^<׏nX8õ,NB1Mg*?bCTxx߅mݑյa&$Flsh	$(OyIɇw91~
/Nʂ$$‡6Fq37XPZ.xʈ*_(x2%pM&+Tc21٦ߺ:sߠ/,T9?R52	":roM[JnQvT<JB*>ڎ@&|=<;ar9rݡp72'aɽ`wBB('V
Kwm/ke
@xnFYdR_]'f̮=T3I^p/7J^gy9{}ުNNյ\Y}n2z^O32fA@H]7juVpW#~%7qt FJ~-^OܕMٕ[(~@>jqp>p%[㛇-s53Kh	@V*=)Q^K`t
0}ϡ+-$E6+H2w@Ɗ
M]0t$ӊrdY`G'a9!3Ha=d.ʮl]fn|loRd8%)q=_tN݀Ke_ZT%dZgu?$q<[3o%7*_GOcqjD2'^]ob(TY[ԧUZP7³@`F} hS.XD1e)*\fMViI*AP%Nx,CԊ5~W,wK60SK@(ERSG1#_~\@9@Ozi;-Ya S/#qjs3/Bd
}s}*fXFRv6<[2ep$81uӇ82pXPBŋ63&3ʃbq%"Kωqw{&(1j肅,B.	17(wqieܣ=
.9!+m<YAk+'Y#
q{mN]<qكojL0FVF%Ht
\4	#0;H֮F+,
.$o5!]aR(Fg5ܯ˖Õᓥ$Lm<2agu Z]b‚v#zىHb!q|$K]|ZgYĆ?t#@b֒S +H^QꈶOƒD-,c}O8N+cNR0z!EJNv}hY=CZHCb&X.?`}¨"gRht.Maݞ敁{6Tvrk2{[isK\	I{NKHѳ9M6=G5F/~wҧؾ6a4W
𥽐/CǑbdA[6t
YIRMϱ:[(
[5!+Qڛf

+1*M~R8ct8#wz]
)I|]1rQ9_)͆6Չܸ;~RN7Us~6Аs˵@ov^ֶ_pʯn*y"<FOl0s!d2poM,CctC&An"76<7EqIpJk	tڕWANIGs%mo%f;Й 8Zj!?=2#sY>[*=9k{=hD
@5I687G
|7=gԛ2%V6+z@9_lJ$@6PS%H<I^o++,2ķuX
wxHgQk5ǍQI쫞DeO̮v.3(QMP?j?*E[y=@Ҹ1ڏ.}Ν5=ȵ%bC<-&1[bK zcx;	ˢ1ZUBRr1]0@Pm$lIٴ2H&>l`P&^?5qhbxC$&u
WցM}J1&K
~~mNkOxq[f}KQ8Kv/F#
ƪ}	IO͡yc~@]/͓ƛz.U&}Wq͐:MǛ22T2"DU+>+)@oorJE@tM(P$@dx>ka3;| pM9ł1Jogc]O }.1APQ0:*,hL[P'ݮ,3*?C@Z Ѽt%3p+H'4E?>Qz;ߓKҢ:GVRyɸl{F>y\M=05U@qG+%{o‘WMߴ8	M)kE5\J#{2$"ۄ~r-33$nQm-QSxJ9J1F$80*bS42X+mx6s$'&RMX]t= c8Tƨ~
#4:Țxe\RsѨYt`̹˧Sz#8sbINAiVrS.SΣ,er<%,T\[*"UŅ]uR
dPyU#ǵI{uqRDC1EV\&W(n}~<Sp@saogCq._cl9Fԣ[Ȼ !)IW[	m_q)g%HYxG*EWFCn1_Tśk0;FĕG;C
DY_&UdͲæUR
U9C~`HK;
bXSԝ4z\>{+"kr4T‡.cJ0@]Tm@SKCib?u׊ܽ۳+KLF=&؇*r7+"O4rd &\JZ͐
R/7Sȍ-^/D!Q- m-熄L(ե^;k÷HRP#ɐ/޾UuH!*bt鮉13P	<pc{
^CD{N)EC;>HP	rkY6m{nS*iZkLՌ'oas~'hLC#4;OG&!G2)cxKH#*C+|q(gu͈6v{L.O=Xϩ|9~X!n2@2 ?`>{%UELXN™~ tFQFfcwquW6KA^R/l}UU«>sBXգNEQkw~ʿkgf?SW$.r$EĎZT!Rnݬ҅|oB跦j͚BF/0/X@"Ktt1pFbNߦ(;EdFS
SN(ڬl#l.%S)

b\2FkT4L-z8 E9qLts{n5i~etEϧ_<a6b:d.P<Wr"䛥EkI@~9XDc(*ȄQ~[?9%?t5no(	k~ͨS3$6?&1x?=x,A:A
f
*quy8^Vߴaa|m74(qGF\)IjFks ^s.FZ,8n8CSIApi0SP&Q1HXѳ3kwh}Cl#8`(Y42
V`.(B!*Bx#gI{w.xZvϬ"'4w-l?	?RӭY4EAl<q7Y&N0AAaj8(kGTJTsB
I_T⻥%|Sj拑Tbk-*`6W
r+x|YJ֍fْ+rc+!P~!<ߘfksf,lV&IF1kP{eŸ儺srI~b<‚e{(Í-tv%Lq:
t|ȯ
.~SyJȑ5TЦyyJ&A0y39}gϾטY-`$*Y)aAަ%;3ɑ&l?f
9;LOX%$y^IaI[┖)ݔ? 8)kTvOׯZL 6gR.F~*3|َۺ	&+qTmw1}Xaih{kL1i#k6eJ766G@C鯘blZC3
׸@a2հ=0ڗS^:'%U-Iܐ"+{/wpZ]O%id@YLs)βLqA&
p_Ai`N`_{͜H"0Cĵ.d,FcK̯,qb.)—;ۺ'x~[?xpK`&wmx9.S5.Ww@KאZҙgKHGĔu۠	_CVK _/dG[
$u{[K ̙jM69tc9Əplb:)<tel\#ݤdd;$js{h&TM請z2uUw./վna_F͠Z!?
ֆٷ
!u"5Rů)Es|7TVM65ҤOAh
–KqZovZTz2`]x9muyhvfu8O
U 2q[	Ag;q~l6oRnN.;N})ͅ[_O!Ѕ눗
uh27Hboɝ#^a!; @κƲ11a4k̠8j$dw}_<)V.qs\	i*}?{r
wisd/gN:i/	Z"TUrCT_97o2@)EL$F%Ő'(Qf>:u	,>}u	%0~֝f։Xzt#3nY<phF6`::e0@v^#w
h޵I'kSѳ{hS B풅^h,k\R2XZ`5_N$ r
&牺y^ºg2u=`$GkջU/3e})~jVrS
2ѹG-Vc#V=RR[1eY$7b5glEj8]o9/WIj"W+~ྔfIU9v+s?rpu[⥨9CoOMSP8=ƮK@[CFs~bV|o{ޟZW?n]RMy쒡>4LYhTOη:ڠѤީ7|O7;LSz6D(?_^ɎQԕ]+wі
Xh_{}SmjǼb;r8Op(:Fe`@KKÇ0.c`<yB2#H(!.J-0*>005.vPE(v.D

ic_8jݙQG~u?=>\=Ƿ 
v<Y^OmtI3(WvwYFյ.%2O	`_-_Izr#67J-)hPr:ȳRE/ozn]\s4́S>7|揜aZ6Xi/x}Kk^}Ѧ+/߅|n4(sZ"FC>rϘE{		(=J;ǡ%z-Q)1!٢,rB,RmY	]
wL6"`gcu&Ŧ_)
]SZKe߾*
9QuzΚW ?#Yq%Rk^TOʼC2f%,gԪ''=f\cPƟgv$Kc
#|ʱ7)aԓ(]Y1|?Kwph:O=XX$--t-`S.6eu>OQrt:giÁt2NȎ-_iݷE}bMMZ\x#+
O(qk16o;̓	:	pm%L%8'X!T>SV(zNuվmCYj훌
!Mc76FV3nqR:PgBGiQͱsAﭣt<^q^|CHy11j5N(IYe2љg;>%
|%KiL'/Lu14z՟d:FLcr!Lz/p*ɫ,yn7C3;1#x?

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15361.28022.743975.723093>