lucene-java-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mikemcc...@apache.org
Subject svn commit: r770625 - in /lucene/java/trunk: ./ docs/ src/java/org/apache/lucene/index/ src/site/src/documentation/content/xdocs/ src/test/org/apache/lucene/index/
Date Fri, 01 May 2009 10:37:09 GMT
Author: mikemccand
Date: Fri May  1 10:37:08 2009
New Revision: 770625

URL: http://svn.apache.org/viewvc?rev=770625&view=rev
Log:
LUCENE-1623: properly handle back-compatibility of field names with non-ascii characters

Added:
    lucene/java/trunk/src/test/org/apache/lucene/index/index.24.cfs.zip   (with props)
    lucene/java/trunk/src/test/org/apache/lucene/index/index.24.nocfs.zip   (with props)
Modified:
    lucene/java/trunk/common-build.xml
    lucene/java/trunk/docs/fileformats.html
    lucene/java/trunk/docs/fileformats.pdf
    lucene/java/trunk/src/java/org/apache/lucene/index/FieldInfos.java
    lucene/java/trunk/src/site/src/documentation/content/xdocs/fileformats.xml
    lucene/java/trunk/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
    lucene/java/trunk/src/test/org/apache/lucene/index/index.23.cfs.zip
    lucene/java/trunk/src/test/org/apache/lucene/index/index.23.nocfs.zip

Modified: lucene/java/trunk/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/java/trunk/common-build.xml?rev=770625&r1=770624&r2=770625&view=diff
==============================================================================
--- lucene/java/trunk/common-build.xml (original)
+++ lucene/java/trunk/common-build.xml Fri May  1 10:37:08 2009
@@ -41,7 +41,7 @@
   <property name="name" value="${ant.project.name}"/>
   <property name="Name" value="Lucene"/>
   <property name="version" value="2.9-dev"/>
-  <property name="compatibility.tag" value="lucene_2_4_back_compat_tests_20090501"/>
+  <property name="compatibility.tag" value="lucene_2_4_back_compat_tests_20090501a"/>
   <property name="spec.version" value="${version}"/>	
   <property name="year" value="2000-${current.year}"/>
   <property name="final.name" value="lucene-${name}-${version}"/>

Modified: lucene/java/trunk/docs/fileformats.html
URL: http://svn.apache.org/viewvc/lucene/java/trunk/docs/fileformats.html?rev=770625&r1=770624&r2=770625&view=diff
==============================================================================
--- lucene/java/trunk/docs/fileformats.html (original)
+++ lucene/java/trunk/docs/fileformats.html Fri May  1 10:37:08 2009
@@ -1528,13 +1528,13 @@
                 </p>
 <p>
                     FieldInfos
-                    (.fnm) --&gt; FieldsCount, &lt;FieldName,
+                    (.fnm) --&gt; FNMVersion,FieldsCount, &lt;FieldName,
                     FieldBits&gt;
                     <sup>FieldsCount</sup>
                 
 </p>
 <p>
-                    FieldsCount --&gt; VInt
+                    FNMVersion, FieldsCount --&gt; VInt
                 </p>
 <p>
                     FieldName --&gt; String
@@ -1575,6 +1575,9 @@
                 
 </p>
 <p>
+		   FNMVersion (added in 2.9) is always -2.
+		</p>
+<p>
                     Fields are numbered by their order in this file. Thus field zero is
                     the
                     first field in the file, field one the next, and so on. Note that,
@@ -1730,7 +1733,7 @@
 </li>
                 
 </ol>
-<a name="N105ED"></a><a name="Term Dictionary"></a>
+<a name="N105F0"></a><a name="Term Dictionary"></a>
 <h3 class="boxed">Term Dictionary</h3>
 <p>
                     The term dictionary is represented as two files:
@@ -1920,7 +1923,7 @@
 </li>
                 
 </ol>
-<a name="N1066D"></a><a name="Frequencies"></a>
+<a name="N10670"></a><a name="Frequencies"></a>
 <h3 class="boxed">Frequencies</h3>
 <p>
                     The .frq file contains the lists of documents
@@ -2048,7 +2051,7 @@
                    entry in level-1. In the example has entry 15 on level 1 a pointer to entry 15 on level 0 and entry 31 on level 1 a pointer
                    to entry 31 on level 0.                   
                 </p>
-<a name="N106F5"></a><a name="Positions"></a>
+<a name="N106F8"></a><a name="Positions"></a>
 <h3 class="boxed">Positions</h3>
 <p>
                     The .prx file contains the lists of positions that
@@ -2118,7 +2121,7 @@
                     Payload. If PayloadLength is not stored, then this Payload has the same
                     length as the Payload at the previous position.
                 </p>
-<a name="N10731"></a><a name="Normalization Factors"></a>
+<a name="N10734"></a><a name="Normalization Factors"></a>
 <h3 class="boxed">Normalization Factors</h3>
 <p>
                     
@@ -2222,7 +2225,7 @@
 <b>2.1 and above:</b>
                     Separate norm files are created (when adequate) for both compound and non compound segments.
                 </p>
-<a name="N1079A"></a><a name="Term Vectors"></a>
+<a name="N1079D"></a><a name="Term Vectors"></a>
 <h3 class="boxed">Term Vectors</h3>
 <p>
 		  Term Vector support is an optional on a field by
@@ -2355,7 +2358,7 @@
 </li>
                 
 </ol>
-<a name="N10830"></a><a name="Deleted Documents"></a>
+<a name="N10833"></a><a name="Deleted Documents"></a>
 <h3 class="boxed">Deleted Documents</h3>
 <p>The .del file is
                     optional, and only exists when a segment contains deletions.
@@ -2427,7 +2430,7 @@
 </div>
 
         
-<a name="N10873"></a><a name="Limitations"></a>
+<a name="N10876"></a><a name="Limitations"></a>
 <h2 class="boxed">Limitations</h2>
 <div class="section">
 <p>

Modified: lucene/java/trunk/docs/fileformats.pdf
URL: http://svn.apache.org/viewvc/lucene/java/trunk/docs/fileformats.pdf?rev=770625&r1=770624&r2=770625&view=diff
==============================================================================
--- lucene/java/trunk/docs/fileformats.pdf (original)
+++ lucene/java/trunk/docs/fileformats.pdf Fri May  1 10:37:08 2009
@@ -267,10 +267,10 @@
 >>
 endobj
 52 0 obj
-<< /Length 627 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 626 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gaua<9lJN8&;KZL'm%S?C2Cpt3DrHp:kad_\,_:4lePae8"7a)jjt/-95GED\Y[Sc7X=BH`oEKQ13lf;+;eN8%gdu#63'e'R=&ai$;Q\u%*B@"V%V/rr.+@u/>BIa&^UsV=A\:Vh8'ifG5q3Se>)9?C3\H`F.gdD%0G]@ZO9YD@Gkc81O#-.k..g@mSH^gqXLZ!g?@#JVua3B$Sbj5-6,lYbgqV<_-MOGp2XN$pVKT[k+LB1/QSQj/eRg(Hke[TI-QKqC<W<mP5@9nWd=#ebq_!o9GCWI>-:4cKp7?.ld2=JIa_ZsVQBf];mDFbF`N&NDC3uW6c"b"oVhLM6gO&ZX1N@MHro?KJ^.VU[SWJkhjMteaA*iUIVW+C<j2P-h,Oj^O.,&3K7ZE@UgOim<?*:+&>ApDnb/ZVn$Pl\PUMlM6@+!]FVhZm,3qV*f=rP+@@C:pfEP`ehZ`Vc9HN!qc#'<`SdLDYF/=I#jY1@-,bL994*/O8Yk\uNVD?41;XtIn?$2+PUB1'DZ]UuFnSiMiNcMs%Ypf]ahWeDHn2-NmrTNs]D^#'S3Umm(=EpmZ,g.&knsoZT5E*@W+n-3E\_F_O6%Q+O]]%.""h$VZiMYNWT=_jp0Yhu~>
+Gaua<9i'Ou&;KZL'm%S?E,EX&3L2uW.TB8&i^,Xn=mltP+-=aUV8'aLZc"ajj;+97N:P]oN5ma;H1WQG5VU':mii2;L]AJ\1A]Ma'V$:s)<;7^`=gQ-gdD'`'%'9-$YY-:.*-PgCuC7mZ[[@"Psa*07K:"$lThL&'*M'-@MZm-^qd---LN-Fb],#RgqFosp!ZdIAYfp<UO'uocbt4!QuGG60j?!u"ZP8217.lX]I.<[0FQ,pBX%if;i.`2k)7T;i*4el7:#jD%(WG1X=/k,?S)rO_*jF]VWBS?<(K#_Ymg"-_DcnD=(V?&S;N_>/X$S/G;Hd'mL(XhXTuQ4)Hp2`)r2")inGB<0@1EJ$Z2OrUTQDPpQ2L@q#.d=WhK4_LMa4un2I9p.)^K?2F:?]6';?_RSFip+,f\US((#d;CO$4f>gduU$F86Y1g#W'6pg_%L&87!9X,p0UI(WA4L<J1.C\7?lYOc'oXPr?GeDl*hAdg94!Cua)D]W5g#1OVl4NkI<Zh+YihF6'U=XSPFHWX$4_rQ#p@\t?b4;@^=kd[G!GR6ih)GKB2OVAZgq&#XPkJOg-<1)n@RmI:Y$Q@XXt4Iam.Rtp?[EEl\"VTkq-qdqZhD"^iK~>
 endstream
 endobj
 53 0 obj
@@ -484,10 +484,10 @@
 >>
 endobj
 85 0 obj
-<< /Length 1526 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1538 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm<gQ(#H&:O:SkV3+hN(DcWU-LZ>K.Vt&>8t[Odg+U$Cn_QQQ0?ERlV$'XTe()NTNLR76ZIjuR58JFHbW_]Zs!=?^trDt^0bD7o"@#Cp"qH<^Fui-;Qj]hG4F>Hri<NC=[aAYqT5U:pmm_SJ$@O?7Kg\Zk\Vg<O&mi<Z?Pjfe8&to3b,@ZbO:G[nY(C'VmlJI@O/`;*0'ke(&bNg)Wn?rM\Q%k/(d>p](1DQb[G"`C-HP^8i,Nq/$2#G.lBI/U!S.GP]p:ek2QT@U\W/cI>+q'if3c:%aJo[/M"k2/olF#q2q!:M86@BZ-/+t\+7Jam"N=/!+;pBXh)<.MJ'(%+Eb^F'>P33Jiho*g_le_Z=Zl+553BE\:Ko14ON^*'rV*C'rsW6:2HhF24n6FV&^:?fE+"#"78jSM*hgk%!/'O;UXdU^q<hfQ\G%>Krg81=`I:Dkc,>_omOf46>#?.JUu'-=Zu"Yc0]$(EQ/.;Q7Te'#IB00#(h@\*96.jfU8)fI%Y2F6Tm&dr(eL7[nCGn=KJ/_>>^Ic$8L"]*l;B5<7#iFm&n'7K&J)3:"Vlhd;TD4J9JnC/?=esI?\?C+*d0cLiN;0q-!!.p"jaSr;F=\'7#rlLg5d!69#6&-;Q`Dp.TA7)(%'FK"-"\!Jl#3olAmKa=OLj,T<S_?4t7,o&Ft:6CUDm'KGrGm6q_`316O2<`(J#?C:eM_O@,/<)<>p6R;a)>'*$sJiWtF3@hUi5hnO*llD"9s1de+6Bmqk[CM`Z:+%`_$QTONP,)Rh0nS*,`:u[1YjV3E(loqVk\U7lM8&+6S;_mE,2WW&aLQ$k;M']lVenDrKMK'!d]:pN-;B#7IR)!0\a$ZM,q-u(<3uNULb\J&41)K)>#VI0Bu?AWqK-gX&od!FDRgcimNu0,\SC9WB>"[.SPA<Ro.:&IJ5[.dB"huF,$?\;8:);2RJUVS9;+cFM%(@>9Z43iZJ&<\)CQT4;-E(`G!QJ
 D^(rW"S2M-I9E=g@eGsR66*9'fUL$3f;p>C5TJdIg-o)@A7KUc'd/D$SM%-tL']Ag0Up?m/BVOR;_/WHBNcsIH'@bgo@C!^<"(NRE\T3K8mV>j$`?"P"dGr=`g?T'M=BoR>i@Hc]SuNMYTsA9+[2tTdEWYhp+fXVki5(ltSgRm8@[(DU2],i0hf:UJdr%AmhT^t;RBm:B%id]/O^DopVZ@hKK+,;qC2#&Ld[f/[!'Gk\h;K,7&>Yu(90F!+&r%'o75L,h[]`9LUbuhPV*&,F5IoAT[m%1HZC*ql317PEplF6haeN[^dZYfL;79j'0C5-#ih\'9aaBi;5:0P%`",X)?<o=M"D(.ui#C6iBk^.?T<BcG@6c^Yh+VXE%./CkO$#SP-IFM!kWqFJB8'fb(%A<NR3!f?_<"1u[h$@ng_foOHM(f:OtZt;CquLgZ8hFIG_-7iD7u-/cSaT%3eg5S/d3N;7O#Pg)em*907_Dlnlcgo4Oe5_Z>*_kBU^7MeG@Ru(V6pl+R:ed:Fl_aiBP*F)5d~>
+Gatm<gMZ%0&:O:Sk]%EC\KZ0i<"o]sgNo!V9t.O8IH^BU[O>@Y9VrFC-iNm>[r<aZBi>^3iXA6ckAk1sa>_kmGMC*/$QL/Yn&Ij<U+f-e<<%rAmf+$Q65DC?fI_PYgq7t1]6+`oU7Z8F7G+4>oa_OeP6jNh(^JeonCsFT<V$al/C`E^7=&N`<ibsapjCgZqE<J[5>r2''Mh?8AW$FcQ7_iFq*Bmj;[X'IJYq5-'DL_CW2=TN8[9=i:ePG^7n^`P7O[q9,8L/+L\d70Cf8#2nlI6/UoH<PX.slCfuT@i@jR#tTdn?h[Vl;+KoTGI7(/9i*'#$s;ZhQ0@ZBXT3utt5l3L:3hK&]++XgLqqrQZ?Xca.fReLB<?GI#_#3#`ccgUoJi1]->#gEJ/CL-=o[q9@#KFrCCN:t?h>9.^>,(nh]*![p,F_G/h/W@m$lYS'i,FkjFW$=-!$;:9T`.^Nijjt^^S+lJqYD]fmYBAla$b!*]Z%NqbQ9,175T*>eni1fllIm7l<YY%.-'\=/+oNdd1iTP!TL4'8+:ATeV?8u7`U9h#m1@s!I5ulk;U\A8UZ/#M,fg#?Q]G'Jokc]W=e:=Ed!`nNGFqHoB0jla!rp/F4pFA!O#)[7F!FHlNaf&Qdf@EU-b%<YBo8W5*R(;Z0qW]sg'fqrMsDOC`b9.R`+atC1nBTPC/L?dSp=dLOi/ZEY1CZiX:eQ@R/r/\RU?\+pY(8)&cd6[G/3Hr3Wm&!0.R'S\9e;04-sOOs/%H,;.a:hj_>PlS\W;]3YEZ0ZRLGB_//AUpd2QrT(Y.4Xs@0:*WGblU$d,l:34iu^:0i$Y%ibJJr&S`2fO-NSbIH_?EM%%)Zj#X#DC=L=2.*T6"-)=jICEkMG\'_d!9DdVX?!O)]!'ghu3><2dI5%%[lPf'<pfgI_"Jkb?5Hr.b28*-[+QT%R[!r-[%8ph!.c+.`)t[%&Hu9rY*m-3LsTWF4$cFk".R;/CFEN>l+g
 @E]$N5"3FuOi65^(Kfq_;L_C=FVDCL4?nBU$*H->]6j't$@pV%sDg[Y%Ap1B_jhA/!f;p+oif/%A4"I)'<F-t)<1d/uj"X'B1f\ikVF=W=F[FDI?d!><)c?\1n"d8B&QDV/ImCRrpLeiW%1-dQI@+m@[Adk:3aC73kdb(>?8GT,pb^9;;\PX'j0O'BI>ib-Qldhc6=n(')boFIncJD<CSL2tUBU,;fKC3n)PSK!Xhj4Hqt2MV@FjlP9m->B7kaW^a:BQ9W%9!,6g"Ik08#7(CXpj>$Dj/FK`H?$BD^^HJ07A`nW93H_@hS3enT7^+1p,aW7#u(W,$YZnL$VWiiDQIbn2YO#7nS[f1,KHV%i#J-1EeYH"gh][p>B'Q1`4mbsG3r/RHhQ3A@79ZX0)ZPX<+o,TWR,-UNBT2WpNQd*^oMlsO1T1%6$8",&LZ+uE'12\J)A:nB"bjtN1\6.Z?es3t#'@pe@TlN[J_Y`VHnVFDK?2[COJ]tBK(\r=TaXK9$X%:.1f%iUK<r,WGG]3?ED>&,1(!GLNNj?4X>~>
 endstream
 endobj
 86 0 obj
@@ -499,10 +499,10 @@
 >>
 endobj
 87 0 obj
-<< /Length 1456 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1455 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm;>Ar7S'Roe[i7jEgAjf8@A]Oqsc!4d-[VkX3Y[mnNM7/,[Uashc;s_PcPV)K'VNM?*Jg<Ci*.Ih2Q*\Hjqo.XFKV4V0I5f7L*2#9Op"tRnmjSVNVCY+E8,&4>-aRGE6nuY0=FMu;Lep7@=AFHc=.k$K,!ftP15b*76Al<LrG5g1])7rI45PFJD5A^2cI%l"HI&J;.kCO$#o,tnkRY&q@Am$*Nd?\CFk,2On9`dXdRm-cmq!g'baMb0Q::59HDo?)&gPSdjuufsF-XYb)D%/sVf]<FKg=BNDcBa'lFcYN6;gL(;G(*Y2I%YH\'K;]CIS;(b'k.)W4W`p"SJ1Le!c2[>.aNU"0YS0A(TPtO&iaq'0L36)U((L.-8I-phgg#*;$__Mh8FlW8L\a8EBK_UEGgb-[#VDr2P1=:#UdH/,&sgZlD3llP+"D:D&Bn1gJ8H0rB7h\k$@GK#@5r#dqk/amqTIApnEHj_<TU[ZujN`lh9U@1LT2=X*PEk,F+rm'TGD0Nt*+$(_t!;mQPh3TO/j[<uZ&n`,Ur9dF"Z\os$\fA6AmHmD-d?H_?<$]O!6eSXu5qi@P8%9'cdjG\!UXkYoQ]^/+;ghjjZXAUV]],^.ej+eA&2U:5a0;spj,ANs;=D-qcrb!Ns@(ke&Y2B@@b2p,+>?:j??)'*[Fu@3s5aX\a^Qg"19KO^o1u,+.&hC/G0M<sn57*_J"r6<0.[uTRGe8aA)7mP/QXR-$H1=B"QV#9['#qGEIrV0qp*9oP@)9/EKf=%FbJupf>)s4m9LmG!Vj&m4j3DW*3()hPL+jgTF,#b\ef!m(AU4k18)qFM3Guf;)Slq8!$4#ueoI=$b?'64k28T6n,2"A'mTmDHXA<e=D8!;@";6Y_<1cOC3hcDI'[[3kMWcQ>IRVj,/:<)nTSWrneiGZggU5PiU*UYS7r=.RM5XF]on@E$aQS_\&'qMH[dh-e]>ca$a#c1,\-N<5;9\d@h(E
 SSX"TG7HnW?,aaZ3!u4]Q3F;)j75/e[El(^e_Xd!<j-9Q`6>RcpV9d\_m[Y$L1eWH4RK!jBk!'6Z'VT,m`[?7]L\<AGP3LRss"Yc1%\/m8`B6F3oX&U+=%YgC*cci]ltL_I]]$FON2(PnAjJM>1QmEY6qIn59Q;o[3ccIK$n%!Y3^`!O-ijCA=#Si%L2Oi#gVP"*4ZIA`RNL:hd4UbR'U/$:NBH+[Re?"NGH&MY[Nf(\)XkWo17WqpUHj0Lb#"gl95(aupUdQq9Y7'`"D:;"&ZAgPTrB9mLm!727coJ=PT>k1-<I>0ZeG>(Sob90fYR-i9JL&PAT)fKKZu>V)D]GZS0eKj+7b\D*hhNK,hUSJ*M4YjK<KXAE#(6o7[el1o5EaaZ)Ldi/qGBaQTllC<h_kk>NoOo]`?^NjBK/o%s\7Hk.2ij]@T%IgZmK"h:XBA[9khAGF_T,hS0j%p,i~>
+Gatm;>Ar7S'Roe[i7jcq<^]R0A`s3>c!4d-[VkX3Y[mnRM7/,[U.`mT;XDGbOsT]rVNM?*MT.]i*.Ih2Q1O+uqrQo1"J`C(s*g.-Sr]TodXOX<I*ZIk4[K5r3P(j\4IJFG+\Y6$A!UIS.)J@_/QWV#h<!sP(h#XC[Sl*RIYa:oo_W`-n1qbXErL$/Au&Ec]pj>Kr8I(\N6Gm87X3\Uq8CE=Y<RoU:kbj`oIXG-(16h?q?&=!(`j]*0=6bJeVp$nCJh&ZFDJh/7s^0<9i7Bcn9\O6gdk&)mo<6$R12)A.5GM13YZ=-<$TRfc$bP<1WA9_$'pJ!;`\[f6D/29UaiZuaeY+7R`:rVPELi?^ZCaObk='CQt?ItV9F-1.`I:FL7fT44tCod<ZCpbDr<L1HL/4Ip1T,+0YpmtP[I7l.MpiO`-&++n<3cO/B`:?N='R2KLG7R4:5!>F(.VS_QW5@g([lGZ=<:+-d0>Y^.s35l6ueJNeY^\5)"&R8Xfj]:'*E>(a3KO4^6btW7ONd=J#4l?s=f![n[CT%<HJh856&;JU-Zl(43G%&k;1c0u7#$3B&I=c60$Z/B+=^`f6=<-BY[7l.Rn9RhXCt;S3duC"Ea!+nYpNVJuRV)=@>`Z*u?1bf2m8[pX#YW#CJ/NcjW,_?prmiXDu4K)0RFVC(j=AO_=McUrf=GgV:p`[fsqDne0e\urR1)WJ]f[39,b_Yd9AXVAQ]g/9r*iE"'p>.\pqe56!?"]O9NiZ)PsjrD=o4j;0tp$K@"M]Kls2p/g-5V?+l`g-=W=5%H9Je/,%/=U"V'E_Vn(*_+M<2,h@T&WQp6&<RPiQ?1qeEmYFnR(Gf,Ya7Sg^umG*fNn7K.1lsMQ\jg)d!/(C]LR!3ofA+!]/':>mbNKh5IHC"J1#mQ7f6nn:LaB>m9?i$ao6P+RnbnlH[4`%<coq^ajS86K7I2`Te<]&6u^Ec1(G&l.H@H.F!a!<j%/+BL.rkqc7s
 ]D]`lZ9f6t])\D&k0?I>0r"%"(NA1[-n"r,&nLD"+5n]WJ)?Y\uM&`F:]-9(Q:$%&)XpN:P5>P5'F)[;25QFHLX#o\^bP./VnH7;=L);kae5$a2j;O"Rrph*N+([ELrcX>XXP[R>,OTRa,9/\s3357e`T.:bp'C#!\HLc.?"Aqi[S^X%>OOmPFn,q#*X';#)0m(Q&;%iq'K\?CAKf+q!gct\hF**9_4]Q"*_[TU[o^[ImF^NPTYq3][*[EbS59o8g+Z*Zke>g9T!&;7a'KZS"G'`q)OagWl%+1"=`b/g1EbbEWS6nI:$du_5PAR?EN1MpD(&]_Pi<j&WZ=r(7VV'4EJOB8>MJ=L!q)'HUJ8*gOZ90+a\Jh%7MP)'4slhKhML'`/Cp:K29&3,R=o#o&`8Y.e=#nV!;9Ul<ijf%8MIHsc!K8@HTeU8/</#J>m"56>lNRQ*'JTI!lk$*QN~>
 endstream
 endobj
 88 0 obj
@@ -514,10 +514,10 @@
 >>
 endobj
 89 0 obj
-<< /Length 1521 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1481 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb"/'95iiK&AJ$C#e=aQ`*-#6$Rc'uGO*+7[R_#!?Ih9\&nM`A7"q@OVn]sAA48k@bcBJ>MBYT#Nl9o#2r?aA&'N'jbK8QC=W?o.o-AKq`sT^\r:L0fGoHJK+2cZUo%W6CX'^?@%kQcKd5%=Rh(D4q+:C1c\M\?nd.+5LBmi'M@TG+]SBa]W0<D/-.6Lt.gRL+$Ms9kK'J:2/0l%&s/qH]4s%(n%"50Ekn6o16b]ZPYjL9W#)MimPQG8qnk/Fbn=S=a8a;rlWLPt<U883(==+Otlqr$7;n[Mfnk_h.8F1$=G33jP1;Wm-TH9tuB-OT4nTLV<1%5nCh(c[?6)cV*S!U2Q,&l`pJq..qF_skO.L.#5<IZ2cIaPBX+#@.'mdlG<i5U)PeE5<21]4(>N.[,C)Z7EUc@6B9E*bmIoL>eXBY&Ul.>H#9\Kc&N4E0:+QQA4Gt)2N[Lf5TY"B;F8FQ+53YF+[cU!AOK*a<*F:)#SMbLq=IM+RWG8(mQVj$9i/Pj#A"0l[+n/[^lT''*_E6Q=1!jjFfB5q[7co.G_5(hNB]E$?4-[3V1F7N^CF+&R\GH9j!R9A0,rl1rH@%]dJ18C_aS)G7$<]8`R*K8drS$<8cH$n1CW4hW-a[.CrLR:H6JdJ_U#GrEs0HV?'4M)T+#9e!FcdGVc8!KNP3,R^oH6%ptg;5Ro?TDGsd@"j$BHI_3<tKiP@s<S_4M2Gq4$;8O3p'BhA+)gY!gR&[T"_g"P984>Lh^$C4k&3WKU]t4Pl"m&G:hi?'l;98o20A$\L03agrCK8ch`hI$sOE&Wm&i2\?P7e<Lg=6tP7`hZC&jQPQ.n5eZ8odUa0mG:?SVW-KHI,DC%Y0ps7qZU@iA1SX+*jQXNR2ZpG%oU+Z;(Y@$qs+t)u&tNG!1^![-[ccT5e`SAuMDQ.s0+AFI6%IJtoI(!/:B;2DC[im5";s:6g:)<ctXgc8,sV/$QiM*t3;4WSdpdT;kgFbkI'
 nD2Be"5kgLB9PMHZUZK.,h`=tI:^\?,PuiX4VN%NCk/'oca9u-cjdFJt7r;64!5!RlJ76!eoF<o)_s;tqP.!fr?t/^D"=GF>0#j>0"gU#JH]1\=rZ,CP"NJ5>Aj"H`4'OOdTGXL%F#Lb4b,Ik67'Re7IptkJj>hUb%L;:'GZ+0-=A'W7(OCh2aFg8bEVfYN)1HY^s'h;Gm%Cr`4NgUcN$[Y:Q<VE8<tPBXQ3/V\U&(qhSM3`uN9?2nOHtPQ+Vq/uQ_s9>8Pq`VN1V-;9Sl*->3$XpXIoHV=MQ.2$;g!anrVAikH6\KI<dD'37M6r7EDft)u'@0==7gD=;9G.'Y<d,^k6=#XLa<975EZ]NIoI@@=mhu']mkQG<QZ<,mo[AM'<6.H'am/GDSk+ZREYrk\0N]Z;D-"*q1#gfB#`&4`_i4JG50l@)l\`M<PJ[W7U^)f(Y,>[N11OX<XY_TQ0'S:,oD:hbO"OJ?E,6d[]cehemb^>g+Qu(H`XQlT*?G]!E?[`XQOl0nob?^AuJQ2c9~>
+Gb!k4gMYb(o\EjtjCJWoX!2ZkL&c!N%j'.B6eoE"H]TPr-74W\7:3@(+!jSBTgP\P([P]eD"o"?goo^mg$%VPk])9GV>U<J8j1dIU*u2>6.l/YLH';fLD+;TqL/"pe]6QCOFscb1+Pk$8*.i'EfQAmjJ!o=Ao$RjCZO>3IlaoC,tW>*)3,ppl-Dk+It"gM2pN7a@]osoCB`+sABd1>1Cd1.7KFg;a<:1MPTRKQ8X/:"PrpGb\0@MO]9:kFAj!e-aP$29i=0?U&DrY#AD:8fgpA]T@9Q=;G?G+=%tDt95asUJfYrJTT<gmXECY2JC<f5U)E27D*cerXEJ)8g>-mFN<6*$K5%0tm$$9'XjU6I1^s"0"<*V<,I"tIGX9&X?q&QP5AF]<XGm.mf>csf2jR_DNi7<uXB(iL58"ui/M*&eD:Fr,Wnd$p$pk_ro"1W^'%d1@Q+W^"%XAk!A\S;kZ.s0*/8Ip$@?A]J.^F^`Ml:"9Er3fm8`;'[,^8&(AHk;h!9/@7BWL-o^H38p?Ac$2CE^Wk$ldQPk57U!7=6I7+ZpaDZ@9em\_2B[(c!27lPSj]W)(u8NHqMO#;#M+hd$u\5[TV!?X"#6'Y0$SsS"Ri=?3E#3?Y)@CAMG^XS/#R`A%"dqc\ET!kK$=p@%FD+#ZFcVB6u+/["`t72`<E^<SkHdOb+R+H+Nf2;-@cR!3JI(Mj3&n@9-Q,QAi#@YOmJ@>h.U?O,Ylan`p/12CC@i+T$].DD0SQYjO%GD7[k;[a]5+PXki@"PO=>L=m-_:%`\CJFSA3U,<Z"cE:)p5jr^$2O]P&0GQF4d_6`5gI=s[ORt;tJaVhU/F8)9BY5L/A:osM0R5F#H8]Cf)Fh+"/S:#[<dg_C9WgoKeOfVS:r1o'h20kVg$H*;M??Vt^n[q6X3$VQae)^E:)h=8l0=gn9[>b`$R2emC"^"/Qg")n?;Ru+.s&\g!:3P"r79<0+K`Je[Pf+8mfm+NY?1n
 M8bOd[g_3AN=*dpQ6uH-5.*qUMJ2(0kqQ8\-K$X*A):j/No'MmqU4MH@V3nSmA6-soEI=6toft/im45@G_hL%S(YK`lIA&:I<nkcMAj%*6=oe?XZN(ElZo/hY;Gc>AN!l(mX,Os5()I+OTOfS(RQ:\`"VH)JCs)_r`tTDMJUPdf@6f"IR/@PKErVGcYNg/>dW=gKqJX4gE-\FrH>C]T^+>kj^g!cf\I4f]*/+u0h>?U:5KrWoT)R_#hsc89g'(V#po<HR0=1TT"?VGZ^tYRN1+>],Mf="7bYO]Z5ADjP+H7TSQc'PPX?k[]K8(93HPE4/BSR%l]*`=,[6"+SmZqkFhh0%;aKW>]/(H5=8`qpLPIO]i5$R<hO:Nm3mIBl[btW-sK]"0dKqXu*Tp#W-I!"HBO_p[L?*66G`^s7/3(++jSeiiShd2?DE*W]5YYsibmIuF)aS@,L.[.[PA6#IV:3H_IdLa.Y2WhhsrrAMDjlQ~>
 endstream
 endobj
 90 0 obj
@@ -529,10 +529,10 @@
 >>
 endobj
 91 0 obj
-<< /Length 1811 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1756 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GauHL>Ar7S'Roe[&Gi[88/+o;9*U+P^!&p"'\HHi0Cp5uM/nEoU.\@'o'^cN>LoKA3pm=`5n]CD\UWd/^0aQ_=\QP(Lpr,r:Qnr>#MsP`KthW%5Mmebjp+K=8`m-%^JE_$8eAm@L5t09'9@h9c(^^2*E<)(`$7RF8X%Mn#-kYiG^j"Iq1ilQZ:`M[ml'OB>np$f\`#D]L->4NL;d1M>]EUO4/0Y`3@4l05G<3IO(*)j%MZ<<P[DRO_lDc4o7uEj;#Tc5IN@/Zc2>)\DbHqdH!=-k1D"S\5.dntgWbUI]8`j-KtTiHKhj>:k.,$[%*hg4jICOl;4r"e1A%LL&50XkiRABb]6?RWc1dZ3Z$NMn?"%<B(*_+U"ocRk'3858W2g_NYE5hN-^!&B+u][62RQA):QWX.H;?@:>#dOE&<#8loY-(T4jhD:E4_U'A,c+j]<"Y;M'$:6`o1l!3B=fT7%_eO72FO.3\QRlFXcg[@*^6E!\*Rgc;,(iidrG8LEp4D.@H)t;-p"<p;H#"L)\5&I=hEP-u+Gb8guY.W.;aEWA(W:<h`oiV#Wju&QU*RB$E?8))a-Aa\W?$J0o3)`PhB\r`l[^YA4PCKn?^![Rs!s_adre%!5fcapm)2lpP#%ijNh5ge.+T$S3"u[JOh7a4X9%BV)Q-Yqn7(Ap9K!I@(LiB#)#UZHZB"d?_C7BE<;.S%*;0L-m-!^k/nc1Jqc2d@rVLfgLhM<")'Al_qo3<2*k'O=Z0eI,g=EAR/@nmEU`)W,:i%Hk/Z@,8teX]DAbE^:erQOF@.oaTeiX)%"bc5)?XJj"L8a8,KeihUqKo;;;%CT/FRi<0dm#TtT:dcZT,l0hDpaO,=J?L1,R`6;_FZ'-UnT`h$TsNU=pqWoB&uGc>0"/2i9e+(1@'K>S/==ulQ:@qH_J%WcPofW^9g&Mc1*12?N;jKB)"Q+-:?a='a^k:G=KjO.3'Uo:piMaes4T_%&Rd=R]2PH<'
 WhMS9Q@kM>B`%RnJDE7pHZ"DrQqNn6-7fgL,CJ&&_,^\OFI8+L(kmTA4.JBQY]"XCcGO)1N"=#B?4rIrEAHSZh(qQ`71$1Qji1:*o98D2d._E%)1dKU`TW53'=GWfF7[DXsqu`4"4=>c2>+Bf"2/T00QAp[dDMD`4oWM[a19O2=jiuA`C@*l+9Me;6g!7TPL%1PZ`_^(;BYa:/jmTHu`RjGIk#TL'Kl+5%(Sa9)Bun_Gf[32Zer4E2+N@IgUGjj0*=3.\.D*O7Nf4@nY[RmN+QYNR)8Yn!4kr`0C*[2WMM;oac1)K-\rO=)^q&WaGBQabBIp1%c5EB?g`!d?Y5B37c0O<*QS3I;QMQrJ<q5jX^?&IU-StB?0c"fdKX9bA^GIVXk8W3L0NLqYk<OcYI!mm(9T9fQ=2Ih28;<`X/F`#tV0gVur+qZ&Of/6"K]rG-0ZuRSY!)NGIsgh\O+:aZq-j:/8E/$liS?WhoL$^A.gAQhT9+#qA*QS*S,07`KfOc-kO[0#7hR15M:86T'QgRo4do8Wek6Zc\La>1birVkq-q;^N(Y/Z6KIM<L'%!)F9%j'#N"WY_PM/c_mjbH&&$2JZ2&A>drLb!.7AfAZb6V#D*_9:8XfL^F;dIJDKAjJ>IVW;GhY=JbR_u;2EJ&\_:('QqZm<R7,SV8QjaTJ[^$D_)69;.TL!-"DCeq:d/#]42W^&<fhI'Hg]=B_)CP=A3D'/%2"@jg4E/*O#I/]>:cl799m-#3/]35MX"XgV_s.5ir;q8J>CR6]g/3]Mk&>SpL15-Fg\8efU6FE+2/?SJA-L-&IfV]<Zs`~>
+GauHL>Ar7S'Roe[&Gi[885tGsc+m/KQ[-Z6!?:=sA_mM@;%><PF@\GfqWgYoQ?amBNk5cgO[>;OF8>U%O,*Y;R/F=Y4AOmDXo<d@bb?cuZ7JrS-`MR/9rE8m!`"?tjS-cOf0;d)p%d?f)T52FZD]-J5:]Y3iZO6g4Z,Z:(+$ek%K=#o0L7!rh0![pH=L$X2UCrFR)+N@-d&k!r(MA4!uP*A@P_1o0lBHf$"l2/=Ms#I2`9\`g-3`:G2?@2$-dE!c.A1:'aSkNjhl61=0VI2N6HAZ-3H$)V/cUAi*14(]i3*be!SMi";[Cq6+bR^P<Hh-'I59=f)iPI(dLM\`^poVZ\XMN%9\)XRr1EP#-LTf1o@W)_RImqE.X[T5k!$nJO\D+CgkR1]o.-e\ata-0KSb@F%OPlK/m$Q.btY>Y.JP_,2AaLl:"$]E%U%8$^L=RP=NeOQ6&8gL^9u3(8F9Y@Aq<'R<L]M_d^]6a*8oE2<BR7CJFb/97=n.0(!VBPYE[lQ$(?pR&o4=i:[g7D+>t<G9N(b7_qKNRtb$[Jic'B]2#Kc'5iPNGrq(JqD_UF<Ai$qE)mqe,P-2,o(aGj/2i*bJ-_0HX(H<MO_:nA:ocoSkt+1N+@m\Tj9r"69@c[.47Ite&cMjrVYgsl5hs/6:;Rl+B<?q=.UZZi$o5^0ldfS)23\7X)ci!,Dlag/'Mr\Ci/NWTNE8eiN8SbG"C655TFrdke8e<'ARRteJOHCVSCs'k5nJ#@-?"UaU"U9RBEc)LM&LhErpeK/!\R+iK\NH5A8\%[k*$\H'J+P<[2YEPbJ>_/*haUaTso:rBM4VP?]`*,db-1Xk2E=$Za6nHL+*G%r5PMR8Idcc:.hA*2]gk)eb,Bq!BUJ>[MId_,oZ_-fMZF3=C0nA^&uTnqa.eh=l#%,Bd4_Q[Zf_nL=un$ThO=Qj%I1rq^[-H1[^O61iODfa'I(jDkAX,#S?\H\=%7]p4iugMVNA!^e?i
 C1WH`=Bl$rQ(&*OEV1D@IaDS`+_j'FU,F]5L@%EU4*&o`\m@JCfI,&\QNcVO#`e_\,Qht+N*Hod\)_KP=fo$>j>hY+-Ls#%s-n;*K3rco1X_:uR:9<KlMT?e]^0n\\QdOr5!s8@%>I^g6bI8^k*:Wtm4^@\X];6/eTMjQ6kCpY4\Fdh?.AU-H0_qN4"Z(jQ%G]lA6``3'6NqrmTXT$ngLBCJH^Y!n4bOa=-l-Wu]9224E.<rE)YV8[T.R-+:;jT'T$52KG2L1M./dr3*EgFYA+93C[+`)K#9b5S2;,N6XWS]Y/?Ahp%i/GH6N39u=*2,>T5J03=tj$%FqJC%QBj1pLRW^:Pg(Tm5[ntkYkI5@[ASOTDb;V_fNiK:!LabHi<:OZib(O"F6@MSTUM!qE@G'>&7!()n?Q8oZe#fXh+6V"/S`q`]1..Y$$R)tqAPXDlf<\R0CZZUoIgZUU$Dr3b&J`"JLcS^POg5nPm_ic5]!%$E.`aI3F+]W1Ml28n(mJjGuQ7gi73I4T'"H$"\"fo3s4<GU*:%eF_Zi^CiAA47M3%h-dT\5SfoE0gQH[PX'9@]4;AjnbR`s,(O]1K'AhUgl^Qi3Q6VF\0M`4Ga(i4]p!n%F>TLlFYZ$gs$9=J"@?DY+rXH&JIrPP\NjW;DpDaqs:JuE>SYk?s97nEc#fM'o+5,e1.us;gRVS"gQ7.a;#XqU&7Yc'KIK7a\a.HKdGF4"AF4K>PL/`qBHS+%aHJ\d_M,;HL\Qr4nr<(.F]S6~>
 endstream
 endobj
 92 0 obj
@@ -544,10 +544,10 @@
 >>
 endobj
 93 0 obj
-<< /Length 1750 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1742 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau`Ts)70\&HA<9,/9+PON&GNi2M%Q?99L2C?kH<p;>ob$Ael9Jk_f3[/90%#D1:<LA#K5<#&kPhqdICpUQ2Hc$M\#HVZfcXMk-7]ntou:)$.V1C3+60_EEFMdpDQqmH1_h93""Tn@_I2:$VUZca#3aP$"jI5g]uB>/B"oQ-%bC/!+..qe')_YPfbcd`qd!Tk=Y+quY&.Q,@N>&Q(u1Q+Et6J7)mF"er;HHq_K`/?/?b5(>HJ*n.;6>k-g4r&fJ8V*QJ2s3tp.lB+&IT1rh\M.CY.L0_Zo:KQ?T2Z,!-^WYo>+0@`!I:j*RW&sc8L'V7B;qCUaUZ?)fB^SfL_aIfED\#h!#E-Cp8_&2'YEC+EXUQ4oSm,FJ=giOJEa(;GJ)K(!nRBLDiW<.&7&CdF3n634rOk>+r-QerAI<BXH%e6(X;Xk'f#TU'Rq\1*D,.h8$odh6"@.=%op7_Q.\r$/f?buY6@S)^$fhDd[9tqB.qM^r4#sp,&8`UA45-rCXheV.bNGgD^5gOg.mo9D#J3_Np^:;;A!TLdjFR8d?RR<KN."Mng36;JJlcfa-iAu!`makB5s6*J-*%0(*k1@Ls);EYZR+L<Z2b\HEg:D&9o[$:NKNt+"-iQE"\U[S<QG<dnZjKhCLB?Rt`7>C>5]_!#3)$M$MC)nCJ(AT+_Pt/m5Tj37`faG_fst]uLcIWjs!)6MD[h0\_7^,cuuX!t_S!Y'i*>h.Vu7ih0rlk*EO2@8*e@q$/mg*'Y*;QR67<$-:?68erVjeEAR0R2YJDG4Vi=a9aNG<d<7+JC8I3q'M0Vg#"Y#g+tJCN[K]KTQMg/#++>gN/LR2##e2W"V9%"<%:ca*.%aTJVpO[B.(e=7XAtE9*>U`\Lan.N=GE]Al;+!KM^F>Y7aZ"(4BVm)K+i7,(a-<<9D))lm-Re;/D9mE26$!9-MI'*s0\)h]rqFeEij6@Y0Mt9KF*fMGC$&U[Uo#l3as'K;$ZRE'&$
 R?Fb5pOobu%Bj,R0F<MB]Zd(+5Zs%1!@otn9#+N;d5Y$-,*A0D+Yp6IiF@3E>>^!2$?kd%-B6.)fCo8#gEe!5U^&g_YS&u6gE;fts`@(l/N5>,,\2=KD2`jr6G8SnZR>^"uW].fHU@g9D(a*B9GfPb,"MJY7#`NOgHN0sgPT6TqOg3K_M`#7+78A@R,(;LB>hHbX*H*Mr`uHq5[dPFUg$f-RqhEhU\n.[2Q3ANr/[8*?ddOPd&f7+5V3ddVIml_$@dQQ:[O6gdec=P/Ofu?VG*d/mD4qhAIiF<:@eE2d@f"tC;Kd;_d*X+8RJUoJpk\_FG,56.(g6.d8\CV]Y(5Kb/*FI3$?9]('f?iV[YDQ\#d[i''a\\D%t657O2d'h\l>G]KLGDqH?j$IOc;d9Nid^5[oD55(\9eL?HcOtq"dN`gOitA_qn+`nnn'M%.j+Wm0&IIGl[B!>F\aT)&Mdr9c)4Z0QnHb!-\WNTQ=?`;DNd=/>lZPiq:Xa+4E*##-'Oun-2%R3H)DU3m%7'o_$^X`blpfBJo]B)S*q]m.(+[:"$_h3-HZhj?*<q3lP'j)JZ#bc1$WLds>@q1ehuUroSB,h@oAV0?QX%*j1elf+6u^Eo(+R,GWM8<laaHjMtf-.mkIFN9##)/a\Ss3!d@^ZjcIr'KY8>^di`SGAR0!a_KWOALoLFq[5VVC?0_JUdjs.X-s'.>r2K(nnNB)Vu=i(eMM'u%:$->.+Fp;?%T>[(]7FL0*oo&%J3fWd/~>
+Gau`TgMZ%0&:O:SkcG>0/#)H8"<2HHAs#MYUg9aD=Dn4CU26R0kYP0Io]o.BQ8t0X451.#+LXh'1NS:`0'7r.jN#7#BnD:$s8P'8/CQA%hrgW7-_BLmK1t0D%#0bljQFX?_Zn9mUX4#ina.MG^-*tR%>1dBnX%"<1_(ut=/nO`=j_26(Dt6PY85g0C+Q^d+#;QPY%'rB2ATNWb;:mno>6mLNM,MV_bW-B&q\:7j/]H[U]]e)B&j.dGSZ(4W:gX1\#NH9[V^=3C=Opp=DB]Lp*<-GahbTB(0+%c;U/6\CJN"Z]VCmB:2*UEE<0G82^I&bABP9!_q,W8gR0&$3A&fI(9'2TUDeoeR'"GO3m?9n\Z^=+'jO)7*'kOE9jA,nb*h@U!24L-WWa4Qi/K;59>%nkFbY6OBVNdk_2:>9<0kds/MH2/I/[F^Xqof?Z)\$,qtp]Ph8WG'eqmrsZkhe>9]/2N*Vn+i4Jre8h9n^8BP"fI)>%L$Lur/aEF-Uk!#Dj;qQ!Z&m7N[gON3<o&docM1X7(]Z*#uJD`)IKqOd'?EOq[81TR\hg?\-QXeD%*WHm8`AgrtpoC(eHfm[:Ic9B;En&oE@deE;E/M@6@L=Wl./bsQh2LZiZam:a2c"W]V^:TsCA(l2t?^_5iEO-g6g0!u<M6QMRX5CB3ft%i8,gNdNL<;u%rUjLCDV'^j"1<<4$%-F7O@CE$6%0io9?]X$;jLmI;`V)a=\2=ObEJ>#-m78M:(gG*?=o.J`JPYA;K<@F0-dI;M#p8u@BB%\a-q&Am5R\"0H?D^VY+@a/aD^11VILR03R&7jrI:f/X^hf*<k>t=SSC#&EJ]YWm<[.^dCOOZM.Iq5Yl?+BVG=3%%(>E.[&;,bQ*IE+.'DWZt_G>14E%g!p3Ong1+BH]&b$lgbJ_#BO,A8\KEZR.p6nQajH`J;:ofGRm61qN3Mk`KnnIa-nWK$DrR^brCo#?3tj2`a-ZT(>"@%`G)e5
 %>dV:b0L`I7kJ?.r.chf_N]i,bU#8cMcV>`uaRi0l(E4(2;c-f))Jf-Jk$E3OK-IUkEb"3M>NZa[l#ePBfru83"O7jBp&%=G9PR0*(%h,A'H(K:\0A<,4/f5/cc+U3C@coGQqm'W7,aK"f+gD;##1f7i-+%-[;tqh$d^/uR6k2HMTAA%Q@c66Bnp,!4inIT]l"(J,<`.=kIp(UIu<kIg+P(*>3Cu9Gf6p+c#^HtMIY>23NTDLObfn*SJI_#RUY=Y@m]\OBX^#FqX.//dliG.?c4-J^?U^I't0\=$OK^34R_L],LG0L1KV$i7;Dk%G*EC_]TF)6SS)`f$M0Vb4#h^,#[H#r6QL(s6H9qmL,KA?a_Z3R]=+CSCY_ld`iC(+4=.3::$Hjo4,NQ8d8EV5hnQfI.+Pq]ZgEUH\(-$'!V9mSdI#p'Y=I$"U;,_tY?8KcPIUC+*@X$3%<N-&aSiS1Hpmm^]2F:5#tO:CJ8ZgI.q#mXPOhaJKt('En/;_a[X)H7'/k.?Q,g*<4o"+=r:8,k6IQt1nHHugOWChnpgFsdX[&HYU;46tksM$"6CjPqU\c7S0?Qt4nK]KN-:>>9'N^gl)-A*7*3LV?e+U`!ACb$[,-B+PCPK[AjMuMI.RP7BN5TaVUM>O,i-O<f'mZAgq4820*<(Kj2g"f:aEl;p0aNIHQaV\1aL3X,NXe"Bm/XZ!)1SMd[6G5-S[kM<OZ'n=$+As+*&P6"0]qoGSn7r@4nfbh#)k)~>
 endstream
 endobj
 94 0 obj
@@ -559,10 +559,10 @@
 >>
 endobj
 95 0 obj
-<< /Length 1845 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1915 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb!#]>Ar7S'Roe[csqYRMC==m$qlL9WJ_I)OY+RZjpb-4g*S/)Y!hIDmmg!9Gc6_/Rg_XrU_+pD>Ws3Xk8a35D";R(q)1Oa;Z)!4Un6m4;&"k:6S+j*YqH;@E,+Cf9n&RZfXnq[O;ic8B2e.>?[S7n-=4=,'0jS&<assG][3(KSNi/Rnnh%"S@HVb?dA$0BP)eMYb*peos)ln.Qeo9fm6S['D7)4eFP!0V`"9n*anXnWsU_orJ,9n.Sf:+X?8ub&AqSFdRH(p1>m[I0O<UJ`\V"2`G8)7';Jn_EW+atS5h\H's3dj?8XtbI^"&2+SFN/oj"_K],%iR2q<)"8*U:$#99=tH7bh+>jr4AZ_0/i0BYsbJbX%URZSs%"?c$s4T_0CC(18LH2#7N\89"?9F[m]ZD<bG,Et$p#+&uX#'seaICIVY22"&lH#mHJ(^g='7;eh0JI$kt)L]A,LQ:eoe_._ClADiZ#DU)iboU4*$91cp*W/-qE5NU:.B@oZ:l)>b\K=!L%/,IM@^GB;:+@C4GC`"/30=qb`],FPND+5Jftg.9XchJ'&r,Ph/-gMHS-Rf3B0bT/]*B8+gQGKt8Ij<-ZYZ@,<<Jq+CUSq]]?^q*VI5S1D#R88ip1b>"7^[_kZg9"U"0))9D5<])3Y\&Z!sLta]L\j.bSk!B@F21!&Ng9\GNNC`(T'(9pkg_0Hd;]A+7_N(!#tGkg')h5J#E7r<+N6\d=DiK<,G9>83FjJO!i&CN0=/)K>*^:Ka':>3KHtrqpT8BT,e"!qWg-0[BC.llBEPGlcJT^H0_W&"Z:!6=P%"#3F9+Q.Bp2pQ\]D?%D/o?\&eUq@Mu1<#b\F,[V?FWmJt4RDIeE=`O'SjkB)p\0DCL^:sTk!)(gJ`51@h"r5N)b#X/U!)sdR6QNs/0HF^NJ9&9T5]Rf"q)`)jmsm4bRPa/97E_DgQT'k(=phIT6BFs-56p$&Yn'HaSCKK22PR;"QC<5O1'?<
 XGD\YQ>ud2mhmI'^5TAs<]aYqH1PRKcG;Fu01F!a2'-6;sFo&oaC9]ma#+Mjs`gaFd)DXn=^3aa\-=5WO^EGr70D<i4EU'B1s7lI=Vec'[e9AgEiCDkjK&CG`4",(&NaG.<8:3?]IYWC=L*2.7)6U'j/fB7#FFu7gXr2gfQsdX?d$7(lRponfna<9'"=48+J\!q5f!J0k%Z+TppMNbo6!gKb=e9OTZ,(PnPcs"*m!00Ur`@+!,TqVYiuS?ZS-:3MdHG=q6#4VU^cPk@#rD[E14s-JBA-ogod"AZN$I>O6%EA-,Bq"j3T8MK7_rRnW/[!S<KK]q7O"RGO-/9:]Ss_6H_SDEm"%M#2>G7fLbE9;$H0afH6[!j4k4)g>E/5ap#bl\A=m4>EZC)Xp`SI$FH+FaS\@)NBK/:SJk_4r`DAT6'ZApc*\@5PPWV%<adu+j(%8sIX-t_BLL@U:WhfN>9r]LH^$iAM*;Rl.g.t]7BEhWSr,H;ag5EfH66j3C&5".SBu#+S(jT[H;J2(/Kn)e?JY:hWZFUTi8cdJpQuB,L*.*lB77BL`aoOj\C'H$N#EY"7V<q+h^4cRnNotjS.g?N.PZG?]&2jHn't%(-p+I9:h6X*L,U,7#9Gi)MmRaVr$i3,;g3NM[7V&5o73&pR*;L)SZ5Hu>C87hi4i*VZJCFs-Y;<=-Ed@-2U$Tl`[*.F"lXQ@!(OZKXA$`G,\ADc(%G`:)qcI1iqW+4&i&C5<&jXqtIN2hdrs]6D2iY&*KE?_\5$tP=;b`UZ(0/ab9%\QNeB%Bs8<%fC6T5#/[GtK"i"*Gmkh\u:Tba&T,8Vos8A?+N\f3=MNTf(f!G]#l!Tlip3<~>
+Gb!#]>Ar7S'Roe[csqqZN(Af:$qlL9M2N'^OfcW0jpb^7g(l#nY!hIDmmg!9GUQL6g'g=\Zk4VTSF`:5:Ynl:f9=V6&b_OUhhP(o,N"ER8GsW.rHq(+N!Km*P'cquha['q*XI.P#hXSiVB.)Lb@E?ulVkOo_-V2G&et/82d(KWT%rpk./=hNN7=(ej9dHPr0(u8$H^HrQHPP=58UZnRMXDbaU7W%iT9o2<11ru;'GO[>k5(eU3XY6\QR^QilV1)nsLoh4k]i*-6ISZJeWnjT$<;#3@,I'R6U33fo6NJ!=&r<%mZL#c8a#C!BBrI.E#/%pe5914F`*3Z&#ae.OS1.+jr\gcu(/URALC#L]OPWP*OIt+)O&uWu;&i$?u=J5+@^"A7AcrqS$EZ]67t3aM'W!ILEaH?am\8ETGhF;iHl_k?*taN_aK)Z&FeGfN2OZ;-sHJ!&o"a$QP^@1><)-;(N*s8$SruAp[_$[:1/dil"7O9GEY$791rEoStBu0RtReclimQG-P?1o<ND+XE,6:cP%_N+tFi4r>\Y<26W&:!0*q6nO=_3#N%a=8<,8IghH$;ShIFef&MlpO=MZ5PTIB#mVqt_ra5k3L)Em>9%q2dJT?AA);AKTV]?`5+P;2EG4Ro'(V7J4^42h,W-%M.^TMNgEq5:L$A=j!pVXUp6[h6Vg$ElDiru*R]GtN%=c0cDdJ&NYUDU0,Q/u5\.fDALc"f3>[Sbt6=_8)h>VT>\f@sPB)d'>*n<peG(ogKa,rE%GgL?g$]?#VlJjk\/iQ8llceGjN`7l?,$hO-B/#F\dfTY"N/4uTc8mOnij?f*[P?]Z:D)FJ[(U.pTh_[Pb$0%&Y%Mm:K\o;?0<fI3N.Q:XnC%9h`rgo_:g8'0!.6tcR@K!/%!]K,Y\Tm0h1EI:@IBEa`n=<Dl;U>eW2snr;mZ,<O"X+H7EX(]E!d=&)jkLYKg\A_q;>W$gJI%)GH2uZq6_.6on&JV3TU^Z
 %Z!;hp`qGSLbLB].RhDttof=pR?fo-sp6qapB\0s<dQ8Ms40d,H>/=BX#PI"?NBp),MRIZ"Efbk_A(&+'+3?jR*3gK^EkC#?jOVZ<Dk51f;k,YIBjiVq=['%LnkN_L<PhDC:e@RPm47"D2utUb\od8-WbO&cUMfE#QfB"?)$Xu%e%b*h<1;T!i+P7pn89KIr1%X4jPBH.Up$p2A].t?npUFe"YF*L;1k4>rs$a6(j2+>*]NmC8J=>Xo^<?$rL<Xtid'Y6)ufX0#Ho"A"mX*jZi_ct,2X;PSW@8Vhs9rgb1;#4:lIu@r>:7(L$j8^Oo:tU&;2GAj,RoTB4UG8R*Ck''N".PGdJol5`9'1C3IER=OsfN_Si[/[QAN'i!6hl0q3#g@Y<hb1V&*Wf]GVin37<F:',lrE2s+GS41HhH"F;_!j+7=!U+()j\Q)APQblEUc!F.`NtjNA/s^genbZ$4pu_EAjmRWm8tgI%qBPQA3S65P=nCk%8kjEaM&N3f#$:6k[cC?QpLO"p$jEk?dAL:iW-s"OR4%9*1YS"Vf0eKZSPF+I^/%Ei.HK.fj%Jr4B8c;/qP4"+Z:qg?0g]^&:b=?1%?cc96PX%So_a1n%arL2V9rSYWFebV"oD]Mks[lCUrXIq:7tQ-].@69>CQ4J)%PVNM@?C(CK]7KYkeI%>[567ZRt(ltW!PA)\d_KNU2)<HFI&031(SPI0<<lUGHng(E?^V/\mcE;f63SQW"_-5+.aesXbj;6H=oMLths7t]1?WnPu**tbNR_4n%9\1]a?.8YlfW@1R%[+3@Jk,7B(*H(4&j[@W`&r.2!XT_X\dYN3@W&1a-nYOl#Qe?CZLU"ETlY%OXRhbJlaK0QMW*',fea"kt+WknAk2soj"m;CiY<q/LP<bR*c+=$m?E"kdT7a`T00i0>TE~>
 endstream
 endobj
 96 0 obj
@@ -574,10 +574,10 @@
 >>
 endobj
 97 0 obj
-<< /Length 1872 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1851 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm<D/\/e&H;*)Tl3L,Rh7*kP.G,<ZGp1)Y1jkiqp=s;D,E1l=`d%\:@d^@]idj\FPL7PdY+oN0@/H;GNZ%&k^#G(+(8fYIQid$(V.h53`Z4W62gO'n6H_3Sl7=U1&>O)p$)]IHk_.`05#igM>CbSNnic_X8ZP*]bqA<Fa[o:EPA"8br4TT?=#$'NND`Y&=_WXY1[bZBlOYij;GSA5Sq^iBE#r&$4eAr=7Nb]]]:::^p9+5f=;lR6TY.YV,*MPM&`,6!Z7&=8J`7;J0CYk(gO@UF!dU&/5+!KQP5sfXC1i:4Bo%1a&me0_r*5/&Et4lFq,%l6u(,[X9td9TJ)Vu,A73EeA&Ip/?=bRS`Ydjh/0tL\>\J.<HmU;b@ak3K-2%:G6?q"Y*WoV@>HMTUqDdRj><+NHemahs7#1C"Ch3,R6S4gP9@jn1?ST_3<>`#1XVX]5EZ;#^:jrP_9jqT\E#WlRRL7P!(i<c7!a?r2<bdt=68.`?'_3m:]erV^8*($<u,2L")5W>m_L^sW(dN*2%"S5Sf4^lc]%BJkkG%,BkB&?fcsL-c><,2=#tZ[@7im!e7R-Hc'K!1\mSrp=USM7"iOB,$>Wo-#%AMj&Q$_`:H2NYg!/G(ZpMBhoDCEQ!B@Ag89S?S0a'E';%lq61bG(0V(<9A/MgW$O8pirLr4dX^>@osJDe_gKRNU-]6Is$kJu&FSpfNh!<2\O2a^CX?%%0p[c6/JOs\n\<(aFV["O[Kj'$!M<^J-*4./<lSkdC(JZ%+EDj$C8i"4J%'sf3nM6"kVZ?,^+5ieXrU>X'Z'tteph(tfp_h5A)DC+*YES>a+Ka)=WN]+epl"9Kej*2QSSl>[_0s6!2DB(Z3Z#]1QIei37ZarqA7/C%,qoI<"qo`.+?k5-4\dgHT&]UW#3(*e'iFc#(BZ?[D5%i1);FNo=e$Z#<R>8!gmam2lhBC*YK4]rVLF<RM=53tK&;8qlf!8?*$Cm;.9HRB
 'p!-t04cI5fUC)N7C-u/fHJ,4tkZ^07VePAj)JOYf;Vd7Y'_L7WoU@q!^].j9BdrV9nf08@-Q"R%_3]0Odo\I4OYATR%lC>g(H!,6ZBD6l&-AufTeN2P@c[21kZ,2.KamW2LE/tI2QN;9)I&B&?GO823q'Hdf8&DS@X'r%r%]8K?RZQ&q3J.#q6N*,,XQLS8S,DC@%[nt^eW+&WL>ll%[>_KU!"Em%%pb#Q]a18jF[7+29T=CV"@h6C>Sr\d=`7ppWW_f=D_YmCui@2i]=V'%B,[?YQX3mi?2m`p,&2>N>BWKT?kMi?e!DoBB-1sO:<o_UoO69T2,:XN"W=_nhZ(EAB5FZ@9Q1mon%qBOATj(#*&Fdi3mRPFX$lA*Y(=o=Djh*3rOR`h8GI>!B@<'#9b]@dd:3_1nCq4O]8>a[(_N:"c!1Y_d\.eY;@_K-X`/+9#lOG2d*rLC.%TU91^;i_YRSPHFug[JcJ<gORU<@#J,6T\5g.9dru40Vr<a/MHD-cUTN-?V$aUg/_@?m3!ABWlg&=J,;io6[LT<SMY3:@-_SX#2@g0t9no@nq63X;dqjTkW.#g$r/L*51-MmM)BX?"<G@ibY8t-4??O43..HpNiH83a^^P]AqhlJ]Yf7rp9qmfSE\.O@]V$(U*]o_h[C8Bhm3PM\r"n4DC?i__m^gD=eSufq$rJ!>M0&Zq>-_C_1so&WooQ%6R<9NeGgPrD2NcQt8@Re@?)no6>ss9j'M\I%'H:nLI2%BT^LaQiAN0f6A%.GZ)TPG5#N/g**!@[]#*'Vf0^42^S(Kn>I'mkM%&9\8OoQ"?ik!Ut2".)P%KO*&Hn3Wcf2ZV`A1"<=U&0PN]@Q]Lp<`#hi2fPcG[Lh[6iI/uUr3?~>
+Gatm<gMYb*&:O:SkUjonAotd%`<)NGgs)Qtlo%?-U$`"7;)SGXF=AZJY?snfbb7`lC9Ru,R$:.e*1f/Hj."$KFtreIENHSCrA[AbA6WIZMSFVeI\$_WNT.a[33cMJIjR+X/oZFG\`!/HH!iY8Gd>C<G.5U05E<-Y)7V*%I;?*q^0N>shu:kM>#SI&=7&cM/!lV:3FFroS7HYLodi>Z@KSVo?Ig')H:YjQFLs&:9'`IHauKPW/,PtXY0CZHQ<3:mqJIna4S$a<O?`N;nV`VhVrUR4dPBne=0u5U\W!B0<pV8Jb%A70g^)!e$X-%XIQ9-'#JUK0`^,s_+/>J:OpKa]d![$*NM1@M^1],`n*kD7E+T/0UD7)M&D<RnK>B-P/sP*;75d$9SC'G8=&u2+DFNh\6HZ&<)M_f5`Il(?hI/[(gi-lZE3<Fh9D;B3#^Um4R/shA%.EUDH(_7<c6'I,KNPr"cAjMKj*G6/$)fdT?rdJAEltGTEZ4@&Ghm@XR(OA6+B&32r$f%@"OX2jFSrms8&-pPM+/Qb$kW]X^'^dX;;[^DEZSf2,,6Ib;Il[r+-u@iqF&JK^!SL:C*r!XZFA%kMJGY%'juooh3af%+tM</mc4Kui,LpR[aa(:mR)'0SOfTF6fsOZ/B"'GjNWdW(%Pju8WOgZ6>5)'L%/^_FOkDektr(K&m8t&D5ot=:I6Ki$EMB_cl?5_/1P?oc9_M+eZ:7kUJ^FjfR,rD2$L&]L_6JX@#kXNpY/%9d*pAYM<CNg?gl,U5d8`diK-3h=7<NNKs$AI+1Mr6cb=S!&)s=EcO\YBgfm\:9R2MrMPV$=:bj)kE\hVA+e>Egednm\DBpHGI#JR_)+=uM@D,bT';9PPV9bI@X)A6;A@30Va-TYJ,.=La>)VI[`Yc0"hO\`@\Er8Zj"6frL7Qe![j5.U,dok:rU2gCqd8Q+Cfu.&R3-nRB^P[I0C_n%oN))Q>Ns22kE4kNW,&UOLqVG
 2OlPjQN_f`Dn2'*/>gO:gesUTLMOUQ;kt7`673RQd8@EgS$4X,/C.[V406$dGk%*Tuk8d)F)c<`Q3XJ1M^pn3-#".f%(hOTs!9?^#db<-m,Rr\EeT3nAKL)f(ieNQZSp9N/hP:"<4\NNh@e(sZAW:C1S!t!Z9LnkUD]k$.EaTd4A,_":`jej-iMNQQBE04&+rrEj$=8OO!<k>Q;oVP!D^`h#X>F)1?*?.4GtrmaiS9an8qn:f@sKA5B<tt,i;JW8&WH2#qOYE7n(AFa)@Ru"L)UI(]ODC^,l?=3+0l!6k%NtHUQbeh.+D(nZl$=cLsOt9iY3_ZXq@Drm6:m%#bSj"#4Q'-S[WfAr@9(phcF;Qi5uTk3rR=TiRsB5^dc5e(S<@X(LP,L?Ph1pKNF]uC3C?bo79YlpU!$=FQ%GTKbMLi-X+EPN97/A%@*X&8fJ0Oo23>@m\JT*!;:Xsp?8Hc4oXjW(t2P;"o+[(k%K)Q-]B>,DA>H9-0q'ljW[-oh:R`b=>4kI#1WH<OV3!F3pAhM$lF8r's+OG\?'CE@Ap^j^/rH;hCR5E&GVFXkDp/'j2obFoK$:7d;8-ZP4M"B.^4u^?Ag&I<@cU?/)/Jq;"*5shO51Y]*;d1^e1NWFt!Xs\t6N7N;SlC+VM2Aj!MGTm0#M^rLsQD;<V2MT:2"/lI8KFh6j4hR@3e1.471-.s4VaeasnL3t_SNQT-mDK=8S;LB>NDg>(7l;)7brC\9A/!ZjGs^-!#sSf@J+pcdI>!gJ@h-&OV$m;MK<[X7.Y^$,NWi_GD#d3V;cD23/=kb78G!4m&qcgpq;kJ2OYcC-N+LGl&;[a,ff6$IJU`e%%bJRkF`r=9Wpde!~>
 endstream
 endobj
 98 0 obj
@@ -589,10 +589,10 @@
 >>
 endobj
 99 0 obj
-<< /Length 1691 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1746 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb!#\D/\/e&H;*)Tl4^sQkeNNZ5*PrV(PY^BpO"sJ9_urR'HnJU+=A]Z<ogg(8[cW`pU&46f?U]GiWqlh*!mbrH.[?3r1VKhEl]UNaa++?4[895NC;_0rGF7:;&u=pS2(bmuJApc;4Y@^RegD'7FM^Nr7VRf72H->OhdQLj@IWpW"eAcFcBTkpL>b>8&e5qb].6n=06qI"(4;8\OLA(3RAb$%=Nr2\8b(R>\`EXs?#0A#f_hbS6GB*)!.ZR?ZU._`ck`cJSe;p:eu]`Q!+FK'tNcbkSnI2@`"<,VLsMOq[%]ArGbQ(3<>pf4apM4tD1k1-Lm'KA]Ibjs+sZN']l:5Cj;2&2A8T;**(+jC@(9K)[nSLKXU\'[h5646^89)pn%7"!oisOd'7o>S_+ZJ$oFQ?t);66JI&:IU%cciJ"u-/m3%F_taEd+eCGhB))M&?**EC.UW>#H'W&O5"G[7651:=I^>\^RoPe$_-tuaY'j(3-*CRs'-:n@^c$_u)5QH2PHTt&'/%6D`P'NYH3l7T;B&Hl`nSH.HoUBA8X>_>o<3b<b$m&0+m\d/>UF#8>f/;YZkKJ*6Au5fhfjga-h+,U\TO#$11*3=]P-KNogWhm^,L><L/CmB-Q98MN(EBu:4+R1B"dJ(k2OQb:RRb6I(Yg-ng0>KkdenB*QN/t8]OE'O+/6?ETC'%qIURGhqX8;cRTd&qrZ-nDr37Q3(B]\(`;hG#35A%oIq:F,$5O(N6*-?Y&2[^S-hg`STlPoTcdgF@:9a;R"Y_FAMFNC!/JP([gPM:EkDW2ZmDA^]@k7,e;MjOJ/HI(RE7Qo_42RrUIH?[cp,-\,q;iDSBDQ-8?QmB%R&N=>]f>^Xr,*a@0@Z:[B',9AJ".UKm_P,VoiR7(Jb#Y?l,*?-Q?g8VOQsDN2YEI!`orT"/q`8ZT47NX8c*Z\AHbuau$LE&?WjQQ>:s-jZFtXOCshoF'.m3$24Ka@%13*6VLnDBcAD
 #f\5q1bYW-<R@*Uj;/c(06&ruMJ6KV_rD"&!BD#K8^pR-EQ0.7naoO:"2HSY@Su[ShKbRKl]=;AF91\IZB(W/WfgZouKGN/@9g7J4r,2A_h1qKSbKj8..C;<V+%-Uu8.]hR9f_Gn]^NT;o<0'S^`_(CP]A$KPqI5+\8Y:R8ca\*Rt+*OTU\V@[H**48]YltU&*Q[-Rq\`3dQGg(BTFb<sV_t%((aiNKuVL,g-MJ!rI]=qAqhl8;fML-T0\OY-a,u>M5&iob-3Y+G275=W_*?mY>d`FM$DgQK9P,\=Q%OZOHP<-R%>;XdPo6!p`b2Sci(jMKNCknVN)_F.D2VF9Fm2eTLO59.Se3`->@,LREFdpH9t=0N+ncEmi9gqLZG$E6XWU3`0>mJ]6,VqEL6Iie,ZqH#\AJX3hEYJoq_D=s:#8FKG&a9XkY719jt>gCNZ`pq=$h97/U#)E[$WA]SJL'DE?Q;G4Y.0rVHQ'29\=Kj's#M4<*4)_GuNSAGiV@6e5ag.Ppke2@m*PtCR:UUs?hZ.60^Y7'[&!W,mSh6cK3,.q[Ae*d0D%lW$uBull`AYQCpI@VqUrGVo;`r>snd>ob&A/r7Z`4UDTk?aqlKJ`?$-o]I@[TM*\&4Ug%'99[:nbo+"22BY0!8+?m[k]NWS#=.%PtCZH<=9]HAueojW:s>#/<hQ+h&@/)hERUf,J!~>
+Gb!#\CN%rc'`IH,Tl4^sQk_&JO0ohO/p3:b9<uLZ#0auX7$K:=(0se_A&!JW/=Mp2QtXAE$q6U]i[)p]O2FV=S52>n-XS4Q>H4=APJfu*(P\X[T<dVJ.3g"1/FY.Wh+`?iI!jHE`sEqtqV)n]0MucNq8@3RI.\"sHV5+u*)gdinU>t?d>@UQ2uc13Y_.e(Nr?JW+8XgkoDHOrP'5G9ono6Th/a#pKf";Z`@GqCL-#_(V=l`%b1@i>%5rTeD,2I6;51%O&QF>b;,-.MiNF:1aT4BCCBm(,/5*de!:tle-S5Yo:=sC?]h4>n'PVm0#^V.HU?SLWB""K)0FS=AJ(fdCQN2#/Ara[W.i@8F^>si`jRF:pF8%+mRQDP+h.Og\gc+KK!GI[_FWk<W_B#[d\XJC*j-=m*==GB5joG%(7e!SDk*Oo?iWo_A*UIom2"P5E%X1sW`FGMa_>bNGGOB5N2TZLYbm.@9gU'SH^6GAGJGkD66[S5OY3\Cd5H]7q?t$87OKNf_5s>HFn>AV(7Ce(bQQ*Po.[Y`1/+S:)_[^(*dAL>'W6/^hZ6VOB4&s")`*VH_V*&1K1'h_!kW=b<aCG'BA)`.\@"sj$k"*4>2[Cf="6.>T`VO[9kr*6Qf';F*"[<gR@(<.RoX8'lX`)*7*+PKUTt79!PT]n+0t\C_=6[f.UMLb.qROZ+0NW)!@L)S>b?Hu_RO19q'Oo*#Oktp"rjCB0HI\Ksr6%i0=e%H2hMHRO&n;;q.EXs90f>El]$oA&bsuadqgmAsVAM8,R@hEh="QT0bNmL2^9s^Z7Id(ZUWBoJ_7-bl_nj,#5oE*'-@;Pg[ZNj9kKrJ&r4Wr3KSZb]Ot%o;BVZ4CIai-cO,J't(Bc-oGRn1q9Am87Ft5%=031"4@P"s1+j+m9F*^ZD3dijPW;BRE$ON>E?Gda3eP"Mf(\A@7ec(d_Q&>]+]%*Z[[H7])6@Cm.pH/7O3A32f"E4G2UAEijL>&i
 qrH:In;51Oh_%h3@%k8sm2M]^qom]jCQb.Q/OloaIU3,&<Eb.`lZa9p&?8U.e=RT8spB!KcRl@cCSqpCEXZ^+3[Pol3&_$>n9R;h72gU&uVpk*"/`-JMb:BQtqRp4n9$!_uo@$i05`^H?`GVI5b$dj+:1L<lYde3;F6MB_bihK"ZCNmYF![t(RU'8"oO7a^mAK9>o?.O$'\XXQpUgWK,`'#ONFS12IJs`#^F7GPKh.8'b)oLp]%E;+^dXCtPQD92<rnRJ5WP*_6n6>_8OhKWS,(H&-0[ukcXF_F5Zhh0@;^pQda4l=P,F=N)5/Xd?eB5`i:TK?Y#B>'_u8h'anW**I<B7j!;D*I[L@;*L^hb0bS8l#mr0f"*!feFU"!3LHa6M)[mFdUYFr\B'XT6=%?tUkg3Ge90c,j+I)m</0id%1O0l:2SOV6jATsZ4a*QX,dPEJO8g.jGChOoh(IuenC!2VOgO*<``H9c)Ik%]_"JpD5MZ`<_MfrbK)OV!uGg`k>HTg>HYNs^3WntH'/E4X)6G9*W5pU&KUmbI\P4%nU<?fhrN?XTT+b:+_4ITHK__HO`1@)X^Qj7I_=IjC%H*gRRXP2HcF\T'Nf<M47c-?"4*c.^dU`b#aKo2W8oi8T1pVS`DNW$OeX+m67P_%/dQo14=k,GBc-Cr>p(Ye,Q=K^@_MW-OB#fC7BHp9H_:?)!Mi4X;],P(]9]3FZpbaMa0.glWMXk.13mOc8B93scKmhX&kIfl8+;c!~>
 endstream
 endobj
 100 0 obj
@@ -604,10 +604,10 @@
 >>
 endobj
 101 0 obj
-<< /Length 1592 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1528 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau0D>>O9='RoMSLj5=RU;>,<WtD+8R>tCS^d?P;A[MlIdmcsi:7M=_pNpppI@T$8bejdQf$<frI-9d"-BkXTjSOU6/,4L]`5F!'&-VL[o@r/$hhga9GHHa*c]c*jQTmUj`Gbg>T?hnC3q+E:-DW^li/_'+7.!k/Yliugai=2Sj"+i^nt(cPc?X]SME3o.VG>2*j)fSj(\8SPY"l*KXQ5Es5F:*\SmSd8nr-kh/EJA)$hPtdnol;qU8tj&]h,\R_4)??@6n%3Ktn3t7(Q-#&8f[lNEj0$7Em?)<59,^PEonP\n2Zrl(CCs7^fWnUsfe+?"Ub'Ub1AJ0_3Y",bUR)B\J+2o,0^dH`p!_-%sp"1aq?UErUrC:n1@OBO*VsXl.aUkbU'/_q9tpF)80$)@Km&BjQZQ7">HHFKln_hX#P6-%.u``\DG04^$hIn`Q=V=fh[?!'JIU4Y2]:LNL`ip:Xnr,%j4K6,\UugXo)U@YZkN6O"LhQ=h)QC82n.pr`2>:60f&e9UuVe5.QVq/">+!N\NA2Oe61_nOWjhdr3`21!\KcG4gYGQEHMOP2`A*D`Q#'Pl(]\u`.G/mbojkC"Y$@-NhSp?_5+cS*DTo</[cf6=\6[T87(RqBK/jEJZ<>$@K*`0Im@8&eME4(U9C]SO]M)I[@<Fh+RG<QY]*%(l]="tlNOJqUi%4Jm,%pl%+Xou(LnZ%N!9`S;:fPX2HDYPX2gq:c?/=7mKRHu(Rj^<lJljVa]j<H#Be-sbP"1pD5+X5)&ch9\Z'EId\J2=WiobC^I%R'g`_UaR6Jf9Is*r:_8A1KDI;0See3_#K_P9`1caF(/LnqrB_##bb4%8#5qC0&2^aN\lLq%[@mmDlrZ*pY1;J9TCVU-KQJSPch3YlEl26KCcZm5Pi7`"Hdfu#a7[(^/gD/gP*2d<U_7YenHf.OP@:5l#T5n%[37(k*[Z+?m#HWZp;kW,c;"MrhpV)_"ai?AJO)>A:f4
 _3H'kjHsPo[B\5/O*BpN_VH[(R9bZc)M"lKja&*#]Q/Gao@>?hNOeK8?6[<]/?$m3`Y8-4X\EE"O+[lpqQn\XS-c!h[0A21ji&K.c+#^oEGB,T&VF(E&7-+<(X[M2"ru&M1r.R#_SJW!$U2k*!9#`D$h^oDu;S@Fn%*4\NCs/hTI#QV3YS9`Y77)9&lp`HAn6"g,-<;8BhunZ"NQ/eYd8[m_=.Z0Rq+_hEWR)^:3.aV58f0SJW+5deDG[L0'iogeN1@n..I+:?O2bUnKYa3mWV$T-"'Hn.18(<5')"WI]honq'M$*Lg2E&#p=gs7A6II*1-^0]B(bU8-k%-QrZ).7CneSK31km?Kou,n;G'*uL(U*134)&+jqTCKNT%V2Me3(M,S!mWa,3.GQtH\fW"\nf^MMk\fGPccFrU\r*n(X(;e:(\(&q"]R14@<\^>P=T`Ac."t0`oiX]-&g[SJjZ98auX)mX\;)kM%T<;.%1e&6Zd_c>CE'hmkDfhX8`dr%s*gf`M?GH+!Y0'i30)!.?<?OGP.T[*'JQrWrgb04\h>37Hp$7]%rQ^?\j`5il4<,jY\`dQ3Zt=ni063]djSf6_'SMS~>
+Gau0D95iiK&AJ$C#eB:+L_Z%u(Q0h&mCL@_:!uH!V'uc)U20k9kS5C*rqE612MVq0-ANetCe,"J^3L67)bn%:PFiM!XSBQf-_Y*TL?Ej[\)TAr:L+4ss%6`O-@\d.5>6MhEt-W87Hqa*:KdT#)9</RUFnGfb;#`Nn^lr,7e5W6hY]k6._[a:\E3L23kZ,`q-?j')Li^RO!,kiR?#5MM6a5*BYcO,^.;5*;"0b1BYUl&;ThFnM3[YW_S<"f9$,Bg6IS!dMq1:d0rnS(<b[kPD])BSAd$I\<;aFd[phYh$;a#SBr`ob(^&3/]E>MU.5t_D,Kkt1i$dVYLaFai@_X69).69D`-9JaBTX&Ld(;h_\VV8HX,W5V)C;pO;q[UO0E$3O:6Bijd`/c^"ss\'+LWD:8)ugP:@BW;3KpkDja1qUR+o?2o4SSUQ:#.RM^m!ZFp//E5S>a%"5iEM&#@/,K4#Mu=3?_P`W1LWC7Nf[J-te,=fF:eG!nBg-2C]-@[RfTKco;A[nZ5-H%#a_gHL6IED+cF5hI1b286A4OjaEi^U>25^!maRBKhoLP&]&[GU84OFuYeVlc1hnU]OmAar+9QWCiQkU_=l5AjWR'='L--%Q7QKZKGL>GU@Ds8os_$r5Z;1TDA6EQb19C%(2@0n\/=m!r*e*:.)'KlWGF@NgBKSYAii)jNt].)IBn.8mS85'SsOd=^Td$)M3dXWB@%s0Dc)74*^+mm+>Wo"Y`%15ssnul>SnO,gG368[5;H5it_1o'IARIor<$q2]j>FrfPi:83K^93#Smp1`8>.#Yc15E(9IF$,BhXY1VO2aWa\*tFEP61;R0gob1Hs2!IuL&E*,7G'8.3]LT^@dJ+Y#V#(q&AMnr?)lrc3H*ig&qg+aUcrn7/P+,s>]Co9*MAS,^8rf%7SjNb\naOq_MgK8f%;72crX,nCtgY1\dFs<fK/FgSoPc.1Ne^KL4ePU]ibog(siiLC2j`P4dR-
 A\`$&dTJHuXN@6CC7O+,_\'&Hep#UXn_4b:9_fiPO),7T989>O0@#4R\8&mn!aJ@`bUp'q@S&eFkN^AgTUZpbOPC5#CYD,2!dg[a@UCA(C,JjSn=O;Y)BEjJ/>'8J:*f#ZS_(h3$!`)dIG=:J_^'E92?P(oL6CiYJ#N],fPdFRO]NYBQ7)"$<)3@HFfT]A_q&%!)O;LUG"/3*C%g*(UHR'IN'2'r\irfnJ)mt=eZ7\-F=F!Aink9tb0iK,n3Pkeq_S?bYNqGWJ6+Vf:&H5oQ3ORt3<H20$`aP9gn2jLAp'Ml`:.7K"K,:miK"(nl,;>\9NR?q^(?)K-pMJ)l=tLQJ2acK?E8E`p9r6A\0:d%0cE+e9M2eqY*p\7O.au&6[.9@@S%dWAamaOrRg5ARp`P3RQp\n&r#YE-]TRuB&87"@o&_sQ%']31n575Kc-UNk^u=RRNn:IVHRQ5N\ojb)`#Ogo(Prm8/5NAD;!8\1FRApYVU`DA_JX!UlQS>q_+r&A>V'(3%'0a[j\AJRgiEDr\'p97~>
 endstream
 endobj
 102 0 obj
@@ -619,10 +619,10 @@
 >>
 endobj
 103 0 obj
-<< /Length 1795 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1832 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GatU4>Ar7S'Roe[d+]2W<_2L^$j5X0$!J$K[s6Xpdg*miD/PN8lJaeBIf)`BbX7fh;A;D0OWo(rGKtCbe8dGDAMs?I_p2$VhTZ\o+t!ddq:?/,o>:7+)`f9d*bW74Q=%?'ju.04O`+:T)/=@=q1G5UB0b5`q9CI25$kAbm+PU(p6[@S_brYOneAasQ$sK;bsbCV\XoPk#/&:2B0B]o?I`HXe"5Z/UOK;s/n91/-e9KF.F5h:W?>-F/,.cnjK.3uO@_8'"1"QIH7t`C?>hGu\`dT)c0ING2@V^2ROE%*#"#@na[HM2'2\Y/&.LJ?)+#We!XhIM)6eK:fn-a/Q/;<-?jJpgd/*4i>0e`85O-)U\Rr%A3q[mBldJ44P9%SuM[%j4mY%(oUH#Jrdcoeo-o5%VRTl!YRWD#lIt>Bs=r>+7XC1jYk;t2o-ue2IPlMNbPYatU2?gf)Q>U-3lokBc::a2nqa2"9,M#dV:D;93B:SID&nU[.ohZOr-cV*=A"K],cJOQX$S01e!gp):-2@kur(r/C#l=/;`;VI<ScBBV0\:W0+-1h[&)CUiI,tD1JCIh%AkaT0&[P`[/;p%cB[%&Qb6(HXG4?R6gSl`,n"IHRr@O,E5SJnnf4hR")f,HBZ*2g\G]Q1()V0MQaW;<jCgsH;+.nO@4?!9C]=jX%8Gudakp\.s%p/LAVo%^GI^o@u>=!OkVhoU=IG]_"LdKQLZil/cS$J8=*3*>MqP#hu5U*9S^e=ak78N!gckDWS=F(fiK4;;%lc-"`dQ6aIZ=TF!bG`@6W=1Ls+X'p@kYnOaekqoI$gn"Jm+<>?+O[(W.<eme)0NOg#M*QLDBB9#/0RbcDIbb_&<586'U^#=N)m@B(7D,fi-c0L(#S,#/*WMS5b6H>Jban99eK^\8c8ckBHn32KT6=4U`oPk(oE%X3&c!NEiWCqi.2N;SRGZW7hl5a.TmqJ.$]C+.;2kPoN`Hh\eZUA;8>/'>A8L
 LMI];cY>8aJh10QT;Aj2ORZ;Hj,`-Uqk^p1I+.%2Jo#6H1](3(l+"A(>'h](=13iZ4[!FdhJia1=ec-bCA`Bd[JaFcU9.kb4.`mANZB5]?A%+p"4jpE&fgJ5#b<SB3<?amdi6:2$iN?]D`+Y1Q>d]Yo).nmKEU?=S.1l(Vp,*T>]WrHm#N>L*[VsO$TOjQZLFD&rFTbDi*$=B=XBU\p`4`JD/Ju$<&gP_"s*]jVrr=@Mj-2W<qW70i:3UV'KXh##DoR?d4l<b/7uhDUg5E:O)OZZg0C2@GK1L7-1LAQ0g7u&4mcjq#/d]E]C?W;"`+@bdM<-TGN]N;7W@lkiQ/uO2QBtKGWOhSPal$I2Ai]_uQBSJN!BaGr=.-gWAoIu1=[0Ws#ML-Tju,4%jG1!u,%=s>V]NZd!ai)=7lp^*V`e,Kc8g`$'Ztj[qM`gLWYs%EO_;q,Sa:'lan]T%l736<UaqnOc;=?c26R;P#U=RQh8k[<p7o/?Hh5UFXbdFd`"`_'Eo:9!f4O>s545k=g^)]&T'0uLKOM_0)Y;_*[_"*VM8("^0Yp+0nBh;@Xrmh!%$nIP2A%=&5n;"iA7g`%-c2I58^`)3.V-TTC)fZ[&qslC`0a^FUGi;9e')Zi>#2N@NGP9%_0*nqaGkd8&P*mmaogBA&)a_H!K(0^ZBN@g&bT=WTK?)D9"-2'(j/\$'-E)/!.=[]6/X(ui5hpV$1?)b/W/_Sn+NkjU:AI^,f"^o&.8*/YPR&T=K`b&Mf&FBf;ENK<djla4EK5BVL$V3Y/"05FlboUBkb6[!)oX!c2~>
+GatU4>Ar7S'Roe[d+]2WAk;2n$j5X0$!J$I[s6Xpdg*miD/PO#lJaeBIf)`.2@jBAb7GA)79Vh:I-5n?6Hp=1T,*VD'B3lYhn)I;&b_qI;Z?rpI\$]T5uHim-2/H.^J<qi!K<0u_7liI%g^S_LH&!jYM=B_5Q5ihod[hoW$(BYdVs7HHc/uM/_1Tj>)(QLicR`n+/OX:Mqn2O'r)UOHSa@_])%P%]]L`K+dYpKMn6Ln5'r4^0!'MXdNC`IobCZRP0bG\Zc';(;A=k]ZXU3$7OMC0bcKA>"2B]84Nh"^AAPRNfjY,h>o),"=n.-CC2j#`b6r:94B?j)&Y"cV/8?L=E-A)6Ui]\:GDhFh'BC6trK,Q6fke+Zn;`jA?3d^IhEko9TQ=\$[KZqm+)5*h=TW:MR\0%Z"!)H;:oeYI#nr9=&^/4XcR9uU#(4gY0O#')r#W#cc><3f=j3LRr`5Fc:ZnH94]G24@=lq&DP_P&bj83pq5\?.F=YP)eXr`Lj+-4mdcV^Fn;cleALkLT`C^g`-`S:WnI_#h'^Ue*7QM%,^a)SI@Vb>DprZC@NhH8T&]U_DWRs-t[Gb7$^=0)e0m!^2&o&7>E/cGLs#Bs[(12>9#9(Bq26JCFL*'UOLn[,jNL]`A'+(?%!csoA82?-`4*?&;lP6A-1I,]K.'mFkn:4Z_Em(QB)chk[Y]A'qL0p1?@lm^;lRfKqA\S=&%LmFQ@@8u'^2hd857%`;!,jJ,>JjcD2#/@$Kh\_poAd0":)#Toi4!nT&ZMCH8p^cs`5C+ghrqGY8KP%L-#QNk28hT&^/naKZI"U@.tNdn;jOG<6dmPl?hB'T83fiQfEL3Gl,eN]G(TDg>7Y@>d-Og3r*Xf*+'Q)mGQ+s1Z/mH.bu-%4eP>h7e^`uQ9="^Z"XuMA#:,+Gl#\Hr%VSn80)pYhRLR:Bb6;sC;jJrac65Sk1alpQ<Z,OMmIit$.lV\SP.)'n6ECo-M].thfJ]s
 ?LpbL(9.['7J-g(I!^ZU3nOONq5>fVSO;$f[:1*F3LBfMH;'m.C0@FCX@=YA@mh?_QdJ-+r*@iY0^9]t0f!9re8smYHXh6:kRB25<s,1%*<^88g.Kdled,DbY`MODm8Qr[D'j[kfE?QCl4T+;-e]W6WZTYKCT"_G1StnGeLL@Lc%j\ARS;eq9]S(8R,R@MK\1gB1+&$1R<_5HYI$aAcN)ZC"KX/0WJmlOLc/lfJaaTB1.A9['6998A20-L?-eW#qbp,4"<.+AYkm.@=o:[2^TPqZf1kbtXZ%MLB4S%K.TKi#(Hm"Nd47Fc(mj+aN2n*C!P)17h0C\gm5J/n<KV0IX46Ik3(I!X[e?$F[N82rTlm#,MF'!kE<Lndl8k@b%[(CJ&f=WY)qm!`!JnEPE.'*XqRO'W^2mB'!Et+eRVS4\^/N/MNONckW4km=""#m^R)586G&<<_!8t>#HQP4rr7FCT15k22rHKI5#1'o-=*=q5$'k8Isc42%:c<TH`AkaG_^k#iSH),,Y!mZQN9UU<+i!5XiS+1KQ:.Z!m(%J.uO>tE";<9;f@U3)C1TZ_.0=So>kdF)/#\A2=[+c7[%gR(?:FPPsc>5E<C>dkMKjN\JcOf@f.'NuO"q$fP?;,`7B\It3fr7QQ2'IuW)FsEJg=huuX*7&BVk)Q`L=p7&=?3P!n9$J$\qg%EN=cVBG-?t[9nm883'k\t0+C_jpJucS)dApeUF4h"GF>-3)NB@\Hs%_'Lsd^DoR2eo[JR)]4dTWaD&jWED,mDU0e8-$A6++;mhW]cmJ:.ll_hJcF??u.UK1"t"HI&]=gYajYZC@!\MrnW3U^>>+XWH~>
 endstream
 endobj
 104 0 obj
@@ -634,10 +634,10 @@
 >>
 endobj
 105 0 obj
-<< /Length 736 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 751 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gat$u9okbt&A@ZcI,%=5f/D9sZ!2(FXEnQfCbKW9%[^W=E,$NMr;2qdfHb1b.O+F&C]%f$Hor\2A)dIZ0\Df^K,5bg!+X7N#IH_!(kN@H!c5QrhF$;9>uQ91\O^`O%8P"B0GkfZJID])WPI,tB3E?>lgf<##->o8f\OS#'t(9UCIDYE\&TkF0^(ShSd]+V@[u,-:SEiD-)%EpP7,'GTeVMP?!:eg[E+'1d(RS$g/XksI^[a3[2$8m;WDo^3#>>QZHgBA$ZfH3QatNZTAs78l,PKF"$I<t^7bu_+cKp:o\\0#:N!+`:!#&Y<5$FboAdD/9rkYr#Do+],_^?'OOl!iR^QpU.ogG'._"TCC5`*(qMMM15r.U_li6]7VOc:r"D+to7A'/_Xcqr._&,7?QH-sCNUp7NW3160[_cn"IE>FHgqHB>B44WoWIO8b0h^k#1hZVnlHb&dp%OFm9:l;>45k@mdVc^7lV>W#[.cNBQ,+jSQ3:PQ[g/3fOIc9-5rm(%13KBApq[QJ<bH7Q:NQ_-0Y#I\1fTj\,LsCh:WN<eAtVI[h">eFXVPS+GMpTKSu1<^L5'K@8;?6\n'Q\.UC`0%g:R\(g+V<1?G-&Jb]*WXE!lCSh^uqUFu%'N>2(_T@6gCFN@BQ9UEBn;qKRDR^"OR9g_E2oLJb862aXc<"<hAS1.a>'8%J^cX1WlBg9I_Z=(c\o-F^:f@,PoBD!"506jBc6^B%u$Og"~>
+Gat%!_2b!=&A@ZM5%^XNf64BLA%1/k=nU-Vfj<AR*&,4/_5W!%oCmA5`$S()<`+t9R.6YkSf&Tui$f+a"rM1Cs$MkjL]Cr/5!sWuc_K,VN<&;&F7>P$%nd6`Z)4l6;"')(%tgW%AWWSsU_WYcPLW]j9%5G2V68btp^Ya8ZhG7ML?&.aZBC(a[D0HYF4-8u5'E?mKu71@)Mbh,54]d:(`o!b.Dh4,=J>tVVhD?n:G2:fKdJK6GA4I[1nkQ$6%:E:=a.sB=mE.n$e'@"nN-E79.rk>kMhh\KiHo@ThWM\X'u\CaVa60;"Y970Ss2#OK&8[DAVAg3nTb>Kp/\&\SQ_"f;*,g&cWscFI':u?4ui*bq!!V`tEGO?+BQ2\)mVqI778&5W%U_lMpTobW95\$!oI,\FHr4`f;RWT,cC+LGbprPfL-HIN`SDc\/e)-N0Hg7>FM6@g2L-dY,J^bjs<@57;Dcs+3Nlp"=?8$,=?bn`+Ij^K^E+]t`7(%)u^8-2=dWh68Gbm+gb@Pc%2(1JaI&mlVb/I9'D<6q9KN_[F^5]RZ@p8#gc;SfR8aZ4.O'ifC:,Bg+h`Yl[^ejj<D?ckfqC7+)V3_qaYT0oB@,LImIJTnbp>N.W$UNB%;R*"='@igVA7_-Y+u%:^I!,RUM0lnP=j@2-YR9ckJ'HEXf),<'1@nGPjep5Mo8&4)+4PR^Ua^ltqA0=kiS\FD+Ch:9(%S&%fJ#C>gX_mY'=:?9bNpD]O6Sne~>
 endstream
 endobj
 106 0 obj
@@ -1083,43 +1083,43 @@
 56 0 obj
 <<
 /S /GoTo
-/D [88 0 R /XYZ 85.0 196.2 null]
+/D [88 0 R /XYZ 85.0 175.0 null]
 >>
 endobj
 58 0 obj
 <<
 /S /GoTo
-/D [92 0 R /XYZ 85.0 168.2 null]
+/D [94 0 R /XYZ 85.0 659.0 null]
 >>
 endobj
 60 0 obj
 <<
 /S /GoTo
-/D [96 0 R /XYZ 85.0 397.4 null]
+/D [96 0 R /XYZ 85.0 357.8 null]
 >>
 endobj
 62 0 obj
 <<
 /S /GoTo
-/D [98 0 R /XYZ 85.0 434.2 null]
+/D [98 0 R /XYZ 85.0 399.8 null]
 >>
 endobj
 64 0 obj
 <<
 /S /GoTo
-/D [100 0 R /XYZ 85.0 504.2 null]
+/D [100 0 R /XYZ 85.0 469.8 null]
 >>
 endobj
 66 0 obj
 <<
 /S /GoTo
-/D [102 0 R /XYZ 85.0 159.4 null]
+/D [104 0 R /XYZ 85.0 659.0 null]
 >>
 endobj
 68 0 obj
 <<
 /S /GoTo
-/D [104 0 R /XYZ 85.0 227.4 null]
+/D [104 0 R /XYZ 85.0 197.347 null]
 >>
 endobj
 107 0 obj
@@ -1130,149 +1130,149 @@
 xref
 0 144
 0000000000 65535 f 
-0000050671 00000 n 
-0000050874 00000 n 
-0000050967 00000 n 
+0000050670 00000 n 
+0000050873 00000 n 
+0000050966 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
 0000001280 00000 n 
 0000001400 00000 n 
 0000001572 00000 n 
-0000051119 00000 n 
+0000051118 00000 n 
 0000001707 00000 n 
-0000051182 00000 n 
+0000051181 00000 n 
 0000001842 00000 n 
-0000051248 00000 n 
+0000051247 00000 n 
 0000001979 00000 n 
-0000051312 00000 n 
+0000051311 00000 n 
 0000002116 00000 n 
-0000051378 00000 n 
+0000051377 00000 n 
 0000002253 00000 n 
-0000051444 00000 n 
+0000051443 00000 n 
 0000002390 00000 n 
-0000051510 00000 n 
+0000051509 00000 n 
 0000002527 00000 n 
-0000051574 00000 n 
+0000051573 00000 n 
 0000002664 00000 n 
-0000051638 00000 n 
+0000051637 00000 n 
 0000002801 00000 n 
-0000051704 00000 n 
+0000051703 00000 n 
 0000002938 00000 n 
-0000051770 00000 n 
+0000051769 00000 n 
 0000003075 00000 n 
-0000051836 00000 n 
+0000051835 00000 n 
 0000003212 00000 n 
-0000051902 00000 n 
+0000051901 00000 n 
 0000003349 00000 n 
-0000051968 00000 n 
+0000051967 00000 n 
 0000003486 00000 n 
-0000052032 00000 n 
+0000052031 00000 n 
 0000003622 00000 n 
-0000052098 00000 n 
+0000052097 00000 n 
 0000003759 00000 n 
-0000052162 00000 n 
+0000052161 00000 n 
 0000003895 00000 n 
-0000052228 00000 n 
+0000052227 00000 n 
 0000004032 00000 n 
-0000052292 00000 n 
+0000052291 00000 n 
 0000004169 00000 n 
-0000052358 00000 n 
+0000052357 00000 n 
 0000004305 00000 n 
-0000052424 00000 n 
+0000052423 00000 n 
 0000004442 00000 n 
-0000052488 00000 n 
+0000052487 00000 n 
 0000004578 00000 n 
-0000005297 00000 n 
-0000005420 00000 n 
-0000005489 00000 n 
-0000052554 00000 n 
-0000005622 00000 n 
-0000052618 00000 n 
-0000005755 00000 n 
-0000052682 00000 n 
-0000005888 00000 n 
-0000052746 00000 n 
-0000006021 00000 n 
-0000052810 00000 n 
-0000006154 00000 n 
-0000052875 00000 n 
-0000006286 00000 n 
-0000052940 00000 n 
-0000006419 00000 n 
-0000008567 00000 n 
-0000008675 00000 n 
-0000010826 00000 n 
-0000010934 00000 n 
-0000013257 00000 n 
-0000013365 00000 n 
-0000015438 00000 n 
-0000015546 00000 n 
-0000017945 00000 n 
-0000018053 00000 n 
-0000020033 00000 n 
-0000020141 00000 n 
-0000022082 00000 n 
-0000022190 00000 n 
-0000024571 00000 n 
-0000024679 00000 n 
-0000026298 00000 n 
-0000026406 00000 n 
-0000027955 00000 n 
-0000028063 00000 n 
-0000029677 00000 n 
-0000029785 00000 n 
-0000031689 00000 n 
-0000031797 00000 n 
-0000033640 00000 n 
-0000033748 00000 n 
-0000035686 00000 n 
-0000035794 00000 n 
-0000037759 00000 n 
-0000037867 00000 n 
-0000039651 00000 n 
-0000039760 00000 n 
-0000041446 00000 n 
-0000041556 00000 n 
-0000043445 00000 n 
-0000043555 00000 n 
-0000044384 00000 n 
-0000053005 00000 n 
-0000044494 00000 n 
-0000044694 00000 n 
-0000044912 00000 n 
-0000045118 00000 n 
-0000045326 00000 n 
-0000045494 00000 n 
-0000045694 00000 n 
-0000045852 00000 n 
-0000046027 00000 n 
-0000046268 00000 n 
-0000046397 00000 n 
-0000046551 00000 n 
-0000046705 00000 n 
-0000046849 00000 n 
-0000046999 00000 n 
-0000047140 00000 n 
-0000047380 00000 n 
-0000047562 00000 n 
-0000047735 00000 n 
-0000047938 00000 n 
-0000048126 00000 n 
-0000048378 00000 n 
-0000048519 00000 n 
-0000048728 00000 n 
-0000048914 00000 n 
-0000049088 00000 n 
-0000049333 00000 n 
-0000049524 00000 n 
-0000049730 00000 n 
-0000049891 00000 n 
-0000050005 00000 n 
-0000050116 00000 n 
-0000050228 00000 n 
-0000050337 00000 n 
-0000050444 00000 n 
-0000050561 00000 n 
+0000005296 00000 n 
+0000005419 00000 n 
+0000005488 00000 n 
+0000052553 00000 n 
+0000005621 00000 n 
+0000052617 00000 n 
+0000005754 00000 n 
+0000052681 00000 n 
+0000005887 00000 n 
+0000052745 00000 n 
+0000006020 00000 n 
+0000052809 00000 n 
+0000006153 00000 n 
+0000052874 00000 n 
+0000006285 00000 n 
+0000052939 00000 n 
+0000006418 00000 n 
+0000008566 00000 n 
+0000008674 00000 n 
+0000010825 00000 n 
+0000010933 00000 n 
+0000013256 00000 n 
+0000013364 00000 n 
+0000015437 00000 n 
+0000015545 00000 n 
+0000017944 00000 n 
+0000018052 00000 n 
+0000020032 00000 n 
+0000020140 00000 n 
+0000022081 00000 n 
+0000022189 00000 n 
+0000024570 00000 n 
+0000024678 00000 n 
+0000026309 00000 n 
+0000026417 00000 n 
+0000027965 00000 n 
+0000028073 00000 n 
+0000029647 00000 n 
+0000029755 00000 n 
+0000031604 00000 n 
+0000031712 00000 n 
+0000033547 00000 n 
+0000033655 00000 n 
+0000035663 00000 n 
+0000035771 00000 n 
+0000037715 00000 n 
+0000037823 00000 n 
+0000039662 00000 n 
+0000039771 00000 n 
+0000041393 00000 n 
+0000041503 00000 n 
+0000043429 00000 n 
+0000043539 00000 n 
+0000044383 00000 n 
+0000053006 00000 n 
+0000044493 00000 n 
+0000044693 00000 n 
+0000044911 00000 n 
+0000045117 00000 n 
+0000045325 00000 n 
+0000045493 00000 n 
+0000045693 00000 n 
+0000045851 00000 n 
+0000046026 00000 n 
+0000046267 00000 n 
+0000046396 00000 n 
+0000046550 00000 n 
+0000046704 00000 n 
+0000046848 00000 n 
+0000046998 00000 n 
+0000047139 00000 n 
+0000047379 00000 n 
+0000047561 00000 n 
+0000047734 00000 n 
+0000047937 00000 n 
+0000048125 00000 n 
+0000048377 00000 n 
+0000048518 00000 n 
+0000048727 00000 n 
+0000048913 00000 n 
+0000049087 00000 n 
+0000049332 00000 n 
+0000049523 00000 n 
+0000049729 00000 n 
+0000049890 00000 n 
+0000050004 00000 n 
+0000050115 00000 n 
+0000050227 00000 n 
+0000050336 00000 n 
+0000050443 00000 n 
+0000050560 00000 n 
 trailer
 <<
 /Size 144
@@ -1280,5 +1280,5 @@
 /Info 4 0 R
 >>
 startxref
-53059
+53060
 %%EOF

Modified: lucene/java/trunk/src/java/org/apache/lucene/index/FieldInfos.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/FieldInfos.java?rev=770625&r1=770624&r2=770625&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/FieldInfos.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/FieldInfos.java Fri May  1 10:37:08 2009
@@ -33,6 +33,14 @@
  *  accessing this object.
  */
 final class FieldInfos {
+
+  // Used internally (ie not written to *.fnm files) for pre-2.9 files
+  public static final int FORMAT_PRE = -1;
+
+  // First used in 2.9; prior to 2.9 there was no format header
+  public static final int FORMAT_START = -2;
+
+  static final int CURRENT_FORMAT = FORMAT_START;
   
   static final byte IS_INDEXED = 0x1;
   static final byte STORE_TERMVECTOR = 0x2;
@@ -44,6 +52,7 @@
   
   private ArrayList byNumber = new ArrayList();
   private HashMap byName = new HashMap();
+  private int format;
 
   FieldInfos() { }
 
@@ -57,7 +66,25 @@
   FieldInfos(Directory d, String name) throws IOException {
     IndexInput input = d.openInput(name);
     try {
-      read(input);
+      try {
+        read(input, name);
+      } catch (IOException ioe) {
+        if (format == FORMAT_PRE) {
+          // LUCENE-1623: FORMAT_PRE (before there was a
+          // format) may be 2.3.2 (pre-utf8) or 2.4.x (utf8)
+          // encoding; retry with input set to pre-utf8
+          input.seek(0);
+          input.setModifiedUTF8StringsMode();
+          byNumber = new ArrayList();
+          byName = new HashMap();
+          try {
+            read(input, name);
+          } catch (Throwable t) {
+            // Ignore any new exception & throw original IOE
+            throw ioe;
+          }
+        }
+      }
     } finally {
       input.close();
     }
@@ -278,6 +305,7 @@
   }
 
   public void write(IndexOutput output) throws IOException {
+    output.writeVInt(CURRENT_FORMAT);
     output.writeVInt(size());
     for (int i = 0; i < size(); i++) {
       FieldInfo fi = fieldInfo(i);
@@ -295,8 +323,27 @@
     }
   }
 
-  private void read(IndexInput input) throws IOException {
-    int size = input.readVInt();//read in the size
+  private void read(IndexInput input, String fileName) throws IOException {
+    int firstInt = input.readVInt();
+
+    if (firstInt < 0) {
+      // This is a real format
+      format = firstInt;
+    } else {
+      format = FORMAT_PRE;
+    }
+
+    if (format != FORMAT_PRE & format != FORMAT_START) {
+      throw new CorruptIndexException("unrecognized format " + format + " in file \"" + fileName + "\"");
+    }
+
+    int size;
+    if (format == FORMAT_PRE) {
+      size = firstInt;
+    } else {
+      size = input.readVInt(); //read in the size
+    }
+
     for (int i = 0; i < size; i++) {
       String name = input.readString().intern();
       byte bits = input.readByte();
@@ -309,6 +356,10 @@
       boolean omitTermFreqAndPositions = (bits & OMIT_TERM_FREQ_AND_POSITIONS) != 0;
       
       addInternal(name, isIndexed, storeTermVector, storePositionsWithTermVector, storeOffsetWithTermVector, omitNorms, storePayloads, omitTermFreqAndPositions);
+    }
+
+    if (input.getFilePointer() != input.length()) {
+      throw new CorruptIndexException("did not read all bytes from file \"" + fileName + "\": read " + input.getFilePointer() + " vs size " + input.length());
     }    
   }
 

Modified: lucene/java/trunk/src/site/src/documentation/content/xdocs/fileformats.xml
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/site/src/documentation/content/xdocs/fileformats.xml?rev=770625&r1=770624&r2=770625&view=diff
==============================================================================
--- lucene/java/trunk/src/site/src/documentation/content/xdocs/fileformats.xml (original)
+++ lucene/java/trunk/src/site/src/documentation/content/xdocs/fileformats.xml Fri May  1 10:37:08 2009
@@ -1053,13 +1053,13 @@
                 </p>
                 <p>
                     FieldInfos
-                    (.fnm) --&gt; FieldsCount, &lt;FieldName,
+                    (.fnm) --&gt; FNMVersion,FieldsCount, &lt;FieldName,
                     FieldBits&gt;
                     <sup>FieldsCount</sup>
                 </p>
 
                 <p>
-                    FieldsCount --&gt; VInt
+                    FNMVersion, FieldsCount --&gt; VInt
                 </p>
 
                 <p>
@@ -1091,6 +1091,10 @@
                     </ul>
                 </p>
 
+		<p>
+		   FNMVersion (added in 2.9) is always -2.
+		</p>
+
                 <p>
                     Fields are numbered by their order in this file. Thus field zero is
                     the
@@ -1098,6 +1102,8 @@
                     like document numbers, field numbers are segment relative.
                 </p>
 
+
+
                 <p>
                     <br/>
                     <b>Stored Fields</b>

Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java?rev=770625&r1=770624&r2=770625&view=diff
==============================================================================
--- lucene/java/trunk/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (original)
+++ lucene/java/trunk/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java Fri May  1 10:37:08 2009
@@ -125,6 +125,8 @@
                              "22.nocfs",
                              "23.cfs",
                              "23.nocfs",
+                             "24.cfs",
+                             "24.nocfs",
   };
 
   public void testOptimizeOldIndex() throws IOException {
@@ -203,8 +205,12 @@
       if (!reader.isDeleted(i)) {
         Document d = reader.document(i);
         List fields = d.getFields();
-        if (oldName.startsWith("23.")) {
-          assertEquals(4, fields.size());
+        if (!oldName.startsWith("19.") &&
+            !oldName.startsWith("20.") &&
+            !oldName.startsWith("21.") &&
+            !oldName.startsWith("22.")) {
+          // Test on indices >= 2.3
+          assertEquals(5, fields.size());
           Field f = (Field) d.getField("id");
           assertEquals(""+i, f.stringValue());
 
@@ -216,7 +222,10 @@
         
           f = (Field) d.getField("content2");
           assertEquals("here is more content with aaa aaa aaa", f.stringValue());
-        }        
+
+          f = (Field) d.getField("fie\u2C77ld");
+          assertEquals("field with non-ascii name", f.stringValue());
+        }       
       } else
         // Only ID 7 is deleted
         assertEquals(7, i);
@@ -479,6 +488,7 @@
     doc.add(new Field("autf8", "Lu\uD834\uDD1Ece\uD834\uDD60ne \u0000 \u2620 ab\ud917\udc17cd", Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS));
     doc.add(new Field("utf8", "Lu\uD834\uDD1Ece\uD834\uDD60ne \u0000 \u2620 ab\ud917\udc17cd", Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS));
     doc.add(new Field("content2", "here is more content with aaa aaa aaa", Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS));
+    doc.add(new Field("fie\u2C77ld", "field with non-ascii name", Field.Store.YES, Field.Index.TOKENIZED, Field.TermVector.WITH_POSITIONS_OFFSETS));
     writer.addDocument(doc);
   }
 

Modified: lucene/java/trunk/src/test/org/apache/lucene/index/index.23.cfs.zip
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/index.23.cfs.zip?rev=770625&r1=770624&r2=770625&view=diff
==============================================================================
Binary files - no diff available.

Modified: lucene/java/trunk/src/test/org/apache/lucene/index/index.23.nocfs.zip
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/index.23.nocfs.zip?rev=770625&r1=770624&r2=770625&view=diff
==============================================================================
Binary files - no diff available.

Added: lucene/java/trunk/src/test/org/apache/lucene/index/index.24.cfs.zip
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/index.24.cfs.zip?rev=770625&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/src/test/org/apache/lucene/index/index.24.cfs.zip
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/src/test/org/apache/lucene/index/index.24.nocfs.zip
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/index.24.nocfs.zip?rev=770625&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/src/test/org/apache/lucene/index/index.24.nocfs.zip
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



Mime
View raw message