hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@apache.org
Subject svn commit: r674838 [3/3] - in /hadoop/core/branches/branch-0.18: ./ docs/ src/docs/src/documentation/content/xdocs/
Date Tue, 08 Jul 2008 14:17:20 GMT
Modified: hadoop/core/branches/branch-0.18/docs/streaming.html
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/docs/streaming.html?rev=674838&r1=674837&r2=674838&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/docs/streaming.html (original)
+++ hadoop/core/branches/branch-0.18/docs/streaming.html Tue Jul  8 07:17:19 2008
@@ -287,7 +287,7 @@
 <h2 class="h3">Hadoop Streaming</h2>
 <div class="section">
 <p>
-Hadoop streaming is a utility that comes with the Hadoop distribution. The utility allows you to create and run map/reduce jobs with any executable or script as the mapper and/or the reducer. For example:
+Hadoop streaming is a utility that comes with the Hadoop distribution. The utility allows you to create and run Map/Reduce jobs with any executable or script as the mapper and/or the reducer. For example:
 </p>
 <pre class="code">
 $HADOOP_HOME/bin/hadoop  jar $HADOOP_HOME/hadoop-streaming.jar \
@@ -303,7 +303,7 @@
 <h2 class="h3">How Does Streaming Work </h2>
 <div class="section">
 <p>
-In the above example, both the mapper and the reducer are executables that read the input from stdin (line by line) and emit the output to stdout. The utility will create a map/reduce job, submit the job to an appropriate cluster, and monitor the progress of the job until it completes.
+In the above example, both the mapper and the reducer are executables that read the input from stdin (line by line) and emit the output to stdout. The utility will create a Map/Reduce job, submit the job to an appropriate cluster, and monitor the progress of the job until it completes.
 </p>
 <p>
   When an executable is specified for mappers, each mapper task will launch the executable as a separate process when the mapper is initialized. As the mapper task runs, it converts its inputs into lines and feed the lines to the stdin of the process. In the meantime, the mapper collects the line oriented outputs from the stdout of the process and converts each line into a key/value pair, which is collected as the output of the mapper. By default, the 
@@ -314,7 +314,7 @@
 When an executable is specified for reducers, each reducer task will launch the executable as a separate process then the reducer is initialized. As the reducer task runs, it converts its input key/values pairs into lines and feeds the lines to the stdin of the process. In the meantime, the reducer collects the line oriented outputs from the stdout of the process, converts each line into a key/value pair, which is collected as the output of the reducer. By default, the prefix of a line up to the first tab character is the key and the the rest of the line (excluding the tab character) is the value. However, this can be customized, as discussed later.
 </p>
 <p>
-This is the basis for the communication protocol between the map/reduce framework and the streaming mapper/reducer.
+This is the basis for the communication protocol between the Map/Reduce framework and the streaming mapper/reducer.
 </p>
 <p>
 You can supply a Java class as the mapper and/or the reducer. The above example is equivalent to:
@@ -372,7 +372,7 @@
 <a name="N10077"></a><a name="Mapper-Only+Jobs"></a>
 <h3 class="h4">Mapper-Only Jobs </h3>
 <p>
-Often, you may want to process input data using a map function only. To do this, simply set mapred.reduce.tasks to zero. The map/reduce framework will not create any reducer tasks. Rather, the outputs of the mapper tasks will be the final output of the job.
+Often, you may want to process input data using a map function only. To do this, simply set mapred.reduce.tasks to zero. The Map/Reduce framework will not create any reducer tasks. Rather, the outputs of the mapper tasks will be the final output of the job.
 </p>
 <p>
 To be backward compatible, Hadoop Streaming also supports the "-reduce NONE" option, which is equivalent to "-jobconf mapred.reduce.tasks=0".
@@ -380,7 +380,7 @@
 <a name="N10083"></a><a name="Specifying+Other+Plugins+for+Jobs"></a>
 <h3 class="h4">Specifying Other Plugins for Jobs </h3>
 <p>
-Just as with a normal map/reduce job, you can specify other plugins for a streaming job:
+Just as with a normal Map/Reduce job, you can specify other plugins for a streaming job:
 </p>
 <pre class="code">
    -inputformat JavaClassName
@@ -500,7 +500,7 @@
 
 
 <tr>
-<td colspan="1" rowspan="1"> -dfs  host:port or local </td><td colspan="1" rowspan="1"> Optional </td><td colspan="1" rowspan="1"> Override the DFS configuration for the job </td>
+<td colspan="1" rowspan="1"> -dfs  host:port or local </td><td colspan="1" rowspan="1"> Optional </td><td colspan="1" rowspan="1"> Override the HDFS configuration for the job </td>
 </tr>
 
 <tr>
@@ -571,7 +571,7 @@
 <a name="N10194"></a><a name="Customizing+the+Way+to+Split+Lines+into+Key%2FValue+Pairs"></a>
 <h3 class="h4">Customizing the Way to Split Lines into Key/Value Pairs </h3>
 <p>
-As noted earlier, when the map/reduce framework reads a line from the stdout of the mapper, it splits the line into a key/value pair. By default, the prefix of the line up to the first tab character is the key and the the rest of the line (excluding the tab character) is the value.
+As noted earlier, when the Map/Reduce framework reads a line from the stdout of the mapper, it splits the line into a key/value pair. By default, the prefix of the line up to the first tab character is the key and the the rest of the line (excluding the tab character) is the value.
 </p>
 <p>
 However, you can customize this default. You can specify a field separator other than the tab character (the default), and you can specify the nth (n &gt;= 1) character rather than the first character in a line (the default) as the separator between the key and value. For example:
@@ -594,7 +594,7 @@
 <a name="N101AA"></a><a name="A+Useful+Partitioner+Class+%28secondary+sort%2C+the+-partitioner+org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner+option%29"></a>
 <h3 class="h4">A Useful Partitioner Class (secondary sort, the -partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner option) </h3>
 <p>
-Hadoop has a library class, org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner, that is useful for many applications. This class allows the map/reduce framework to partition the map outputs based on prefixes of keys, not the whole keys. For example:
+Hadoop has a library class, org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner, that is useful for many applications. This class allows the Map/Reduce framework to partition the map outputs based on prefixes of keys, not the whole keys. For example:
 </p>
 <pre class="code">
 $HADOOP_HOME/bin/hadoop  jar $HADOOP_HOME/hadoop-streaming.jar \
@@ -613,7 +613,7 @@
 Here, <em>-jobconf stream.map.output.field.separator=.</em> and <em>-jobconf stream.num.map.output.key.fields=4</em> are as explained in previous example. The two variables are used by streaming to identify the key/value pair of mapper. 
 </p>
 <p>
-The map output keys of the above map/reduce job normally have four fields separated by ".". However, the map/reduce framework will partition the map outputs by the first two fields of the keys using the <em>-jobconf num.key.fields.for.partition=2</em> option. Here, <em>-jobconf map.output.key.field.separator=.</em> specifies the separator for the partition. This guarantees that all the key/value pairs with the same first two fields in the keys will be partitioned into the same reducer.
+The map output keys of the above Map/Reduce job normally have four fields separated by ".". However, the Map/Reduce framework will partition the map outputs by the first two fields of the keys using the <em>-jobconf num.key.fields.for.partition=2</em> option. Here, <em>-jobconf map.output.key.field.separator=.</em> specifies the separator for the partition. This guarantees that all the key/value pairs with the same first two fields in the keys will be partitioned into the same reducer.
 </p>
 <p>
 
@@ -746,7 +746,7 @@
 
 <li> Hadoop Streaming and custom mapper script:<ul>
   
-<li> Generate a file containing the full DFS path of the input files. Each map task would get one file name as input.</li>
+<li> Generate a file containing the full HDFS path of the input files. Each map task would get one file name as input.</li>
   
 <li> Create a mapper script which, given a filename, will get the file to local disk, gzip the file and put it back in the desired output directory</li>
 

Modified: hadoop/core/branches/branch-0.18/docs/streaming.pdf
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/docs/streaming.pdf?rev=674838&r1=674837&r2=674838&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/docs/streaming.pdf (original)
+++ hadoop/core/branches/branch-0.18/docs/streaming.pdf Tue Jul  8 07:17:19 2008
@@ -364,10 +364,10 @@
 >>
 endobj
 67 0 obj
-<< /Length 2066 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2070 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb!#]9on$e&A@sBkg2Zum*[*NAbD?GfmEe=VN$/"kS==Rdq^k)kYT\ggL"=1P0BUfHCZBW(HH"TPJ`eI1QP>koAse;Q$>8V^:2nAI.)654^\0*?L"S(E>Tf<`87fhIXcss;t#l;mIM^/kurn6*l"m)UBN;hT6c!3bI=gEbLn7SW\sNcesQk3["r3F4=n"\IZ0HBPK[7UI[N?;rJ3R03^6:[#Y&7N\M2mKdb>7mGbtG;qTl&$3NqoEK6g1+4j$1/^qr7<[r<g<8&"-.$,0=270rrt_DRP%BqC5Gf^E-'4`G#srW83GoND65<R`n1:Wp-eaJRI>K'qcaXd]aCr_'>_U!aQuaZd&4WTbl;MhM;tB9M]`LpV21VS(P9C%scFL(9EFiC@U8r'($2#RM'VJem!O>3p;',:l&$`F7arSrXL(,c(B';,9;MhKnT3IspF$"WK$+7!-77.Df]1VB5F_obo,?_RT'&+'q0YEIIfRce$c5^RVKP3St>.K8JJsK=54,h8#E79t`[?3&7Afgl*AnLG"Tr+-EMZrK<MZVUfO?q`!np(L0uO)cC)Ll!R%=ouPSSiJB>_Ybf]:d6JnBa'.[C*DjjkrNM\TjX_:no^soDZd8KEOO_SAp^n\nl)YH;BO\.M0*Gg<pJ[CR+QQ$?eV.^r;H6YDjTKRR!cee$Ko5q"6\oYQ7lSh\\7:`N^X,bW_T?,M:3=_0!"W#)Z0=L_7aFFo<LC=5pLQAPGh%s*(]`2Z;*_-gF+D?VPFRuTj9kBWqod5_8!'h1[DT+VOUjY`@sdn?f`](QH%(@Km0%:B,>&Lgn5-b,P$BjpG9gq'4U_Z?<2C_V:3+7[/8qPWaU8?"Kd_40U$c?^m+k97JW^S6F$+82Kc_]RHYk/_Oq(Tmo30[lbpm7p8k;V<h:)s><n[SYSSq=g<'-E9%;-g_%?.u9V@$_MBXSr]%KN0P7otQ.Zmde4f@h3]%pM]fI]=7gPZbtK<#UTo\]Tk
 1m1#R\Z3CGgX+K7dkC9fqk`0<=8c]S=V-P46ge_\G*KrA9\[Fht%P>pK#Gs5gL#()g"dFqLdPm,qk\IO6=u>B$.*L9OI4>5E:@9bP<P;9q[^X+hJOQ+]=LV(tZ`J<raeVr\3@em$7Rr\N[7SnY&-O9/LJVrcA"%kQf1_OU1fGnGEN89a,J0T*dCb%u:_$WI^ZBDrfE".&&0Rk`*Zm+31qH),P'@I3QSmOE-EkHYcmt`5+tg_l6tp=h]T[0L5MJ>p@pCVT7Br`B#.tI,]4%I6-TnR\2up7d@OD>Q49dN?8;'AZ:bpJOR?)pMl>O<t;KC+pc/gGDVfkb.kn:I7)TeoBS2?^HH_Zs7*PcGXC79LVW*-D<!o\A,'5AZ]ZrrCEG/B!_&B/0gma/GcM,[oJ`hBpKd[LPuFI^+BGdq"#a.GWLC_WfJ'U_R+3k5-9$%PKFZrHS'MSRX;LB=dpRc3=`HOLIS4?$VGfU\_^lE*?A:uK,GB1gd4U-5A,m&mL:V<1`2P$BF?BiS8ddM_hp='5DoLg+=_hGV(?`Zf,mC%TS*<peI?P=WDSA3GIcQ`D\)LZ?@5/;V-Bh.[3s[`@XIemYIuas.R/(2./"aX<L%`(KCU<*@l'QR2@Hd,H9I#"\<IWNYR<`\Z\BL2X)n/C9&8O&#o10`%*Xb(cKrkKLj/J(-K3!!R/g3R6Om"nq^$;W9>dE@q\2S>!#t"b58d^W0lZ.%6<3[(Vt`qR[NCDd[tcSt13+T3NRV,V@[Jn.jGY1"1*H3]iC5BXth@?@1hGs"#L[:ijctmDXo>AQ?(kjfk?LT5Ws7(hG]bhE&F:'#REd`qMgs-X8J#QH3R;.>*%`\>j7c*^GJTQ5:Z'$;dB[A)e7LjI?Sh*5mXEo%bo`k#]K*TQ&nGM@3jUNc,DkUnnX^\?g"T5eAHB"=6neI!_d>L;"Nla4;9]]@%nf2ge,6RB^#tg`:A*d=NWP"Kl$MUr6gaH&GMpN]U0(M;>
 l+\(a9IPJn\i&n*q$81&Z4='@P-[SmDg(r$lVHJa4pn"*d@VHhU1ojtn>e'6_,Y]g8jXCCbg+@QOnrW1t>6#H~>
+Gb!#]gN)%,&:N/3n=^B7N"$BW:$c*4`4=*&S0j]HFQuU+U*'gQ8MIeZG/(cL9j!L-XYabWa[6ID=R;X84ZF^YY8>B?aMC&\Sb6mZ3nFc+\FL_b@TP`$I1Ka>FOllOq\+p[3p.c%T0ITq[mCdDr37jlc$4^9eG7!b^KnKW0>9tUXgqMkhN[2u<>[cG\)87<+c8UaABnfWlf*3U8)Re'qk<mP0_2!qL$?%2g3.k^/+ki$Il9/[H$uS3e9bB";'Ib"(*7_6LJsU(nh$2'n;Xe.EWFH)Y*j-%do7=&IWqM(JC?l0=,79Yf)g1IUTT/rRW$`LCiVCX7uQI6[VZX2q_,4ZL.ZOF-+d_[;q"GJ(5ifuT9Qtg+O\Da=[n=$Q(#H\BW.C_%mPjPj::.8>nA;Ip]=W,[koU5p+n6a(PR>!#*+Tclp[`K5E\e^Vn@3>5CRk=oE?28,",DH"u3u@]uCP*%J:W-0#DksR@deMHZ=?,rm02_mp7V*4C@Nso"i93ZU*>"_LA.Pn#)a!CE.%eYHB46iNA)kcp]2sG!G/8dF;o*G5%k^n:I"W_hM^S?9B,=9g,b'ffbIp*k(.A-l>P:r)a?EU(3HAedn8?ABppsbYSf`4,7?K$<^*LNZ0,#PMQXtN$]$Ln3TAupc)oS:SRc'V)ggN;(QKtW#RJ_O@N'>3e-7b?juR"DWrLZ&N=N,qIf*87Te?ed#"'V$K,o=WGO[oK@]XU;C,p5gI#,h4'o?@njWV&V8se0D`L)Dl:K->?uc?oX8V/FW?k*$n_3!RZ,js-Ksn\mq.,(An2.h6YK[2e^a"XH*q>?)%?asR)g`iNW]:Ip+I&^!MPB1#CJ!5Z2(R!(k[bt$oo-K&J[BW,Z3lhLfU_#1P=tg=H'iA7C6<bZ6Cuf7k%e!@j&A?K3q&tqg9]QCJE_H6nt@O8_KVN$pieFc^6pI$'r/m"qE"\-<hF4TP0t[QCgCgsZor47Oh7l-&5ZsR.qkn.>37<
 ^;K^?*\sG8s86co5V^_Y8D*`A.4&lXOQq6TGiT-FobAUKc_jtQf"S0o;*7?R$jt5qSQ7/D2KU'8]bXPs'A^I/0DaIUX?5QQ@i3RHR`i/6h%'mPY?3;bLCr*-"dZc&c/P/"2MNY<YL1p3I$!-@k4U",:;LJfS9025"f6^59=\gh2iXs1f:-Q"rjUFp'kRQ^9"V5qi[t>\TJ-c7^.cKV(@n!.g,UeN4i,mYX*Gs5N=p0KK$"r87%t,/hHH8OsG5TqX$(^'jJ1h0C`AZY&aP%(bWB0!`7DT"dlm4_b#g6]hF+m"QJ358*[@R+-BVk^*b6'0u?!gqko7#SW;(u?d=%j;'<1T1a]kjkte&qi<X%?$6NtsT?2LHVeO'k9`Un9Q7WS:J+E9s?]XRmNf<k0SX(r`2P07rhn_bjU_hcr9K/umt#6!/%>VuS*2QI^.soD.AHN@JYAi`d:OV>7_)1D6/=jFhk:&=PH+?W5U:VU+P@7Rg54^bdE:f86RlVU*JhDL!Pk<%sJ7.YcBMYWSm@n:.XGL6iI``1"B9quD^Fi]toTf4h>?Y-DT$I"TLd!0s`h=iq8uM]5e2NE,l)'Wc,3dsnL;maEVG9SaRZ$%X@oA`aRTZ*X>M_PFmSYm6^5T856fP)i:bc+c0.+MSV<F(Jp5`Wpg;-Fh(CpJb0?oJAWW*`i<9c63<==JO0H#1jUBj#]eg]2HSXei^0kZCr$2D.iegPDCc*Eh:YOE^K*\>0+F/n^RkV4do'2#eQ73m*L.aeLG/P+dU11OoHb]2#FH0^\03Yru(/l^>bC7g5?VSb,V<e;HV91caWNNN09E?Dk5d-M.%bCm<bQ&'<[pQ6f]CkPek'j>h68E%j45ecO1:(GfWgUZ#P^HElnOkp-M.Qq-b'^b7!=2O?`>(`e?+'V`0B.e5?RWgf_'eTR@MlKVDi[^:dHZ6f3lsA)iU??"k#_)nr6%9\[hpmZ+ffBLO+0!8"A5OQ&#(S<YaUa1\
 HZ6uc<!l[>,aB[m8^!j"j(a[hDG9'Z`.$@,I#nOKjb&&Y=CrlKk-nh!"2?Ok8*h:rOP]dkdK'e=2`.67P)%g[AEXo~>
 endstream
 endobj
 68 0 obj
@@ -379,10 +379,10 @@
 >>
 endobj
 69 0 obj
-<< /Length 2023 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2025 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau`TD/\/e&H;*)+VY%0!];3"eD'\r?(3_U$>3(j@9A88Q>)hJ/UA$E=8VYP]cUh/%Zh)dd3PO/Hb\b3q"An%rc[l,`3EA4s2-+fM/E(&%mQI`r]L\m@P]MLepR&SjDAtn-9_fRca$.#\,e12#I%]@l,jqEpuR-NKRk'SL)F6$7[?u%\Qqts8h:q\3L8^0nu<K-=mL6HrUFnXP?k=u=]=31cbJ6N=67F`R:cE[h;'UI:[@`'O:DXikV[H]Xp9VleIGD::WNu:'K(QPI('dQN_3B+ms)J\ABbo_m0K4Q`I_peS6RX6U89J+%k`hrU(MD#L(VeR@smNM/sD3Agt]QPoIPdK2JfABQ?QTnpoL@`26/.Paq$.8T(IqW-XsV;3c`UK3@CIFnjAUMVGk=?,Z+mD8#2#umnsgeOX6?`4;B6>F!K%L8<.=1"CSH2Sht?K1dAs50c,Kagem;b/tNS4bR7(Xa\Hl5]Rr:Lou>hYHSKJZjW"eI&9YQ/B2hosaf=7H4M++a2:qf,1j[_+pJS3l'd=#lR[.9sN4@0\<@mcIS?S1Be\PX,E-^%!bk?lT]QW!L:'<MCH/g64A!(?#(dYA1_eZ5"UKktIYpmakItW8nX#g3fk\[R99:g(ola&4d9Wo;j9u!3B"tr^(-*'Wn\I\`Cj5+PN/sFU@<shDXCB[`B012Q)+Rj6(i_"K_o[g9lI*YlMr[!XrErK\7oh!F*`D&PRat/`!I)Grfpin>4+n`J4?phpPeR8U64I6Z2^uOl55DO$F<KdL]8Ar($o*s-.j*Xt(%is5FPSP&b*BDp52)=2DrnK;!g_L6PLHZWMe021r3Y>l<!#9,RiKk^H:s#Y:nQI8A$orJfhW1(?l-K=R>4':]85W^7V/[C9O@ju?),t"9mH%r4PTSF,c]/+,*>5t=bDYTtiq!=OIA`p85,+qYk%eYB9_h`U<I-l=A&o!ERIlkj&NMX]E0P?928r<X`r(S_.dQZj.#tQ
 gOg$R\V(r26gYG?sKTkq_XW8qh`BJ_K#Z`1pSLGeR%"eb%Ie`^#h/%95f>lS-pJk^%2btR+6gJpY)b7T&EP+Irm/WOk7n7kUk/19@IsP=%WpP'11\?rkfn?g/HdGl4MsE^5<H8bNEi7$^3)@l.!?_9HrSomne0\MfV^f)L$?`p!AMtc^e'&bUaQMhS*5q(Q`hbYd27_,d6Ep_[6NC!lq'=H3_snLH%Wg!V*5W[(8VlNUD@!@R%bcjJZ[7?Pfij!G,PZNmcVN)C!DFM21C+;(e9i>,E]jDeL>irrPqNnn*6:VnGHBd@>lsZm")'V3*X-/nKg5Si2j1)XJ5s@s""!!8BuVBd_Jg,GRP&,U.`YJ%L^\.X;QfSTS!jjF'0<jSKtWGcK.TTFi][qU%>Dp:(^ZBRp-"aJIr?eInC0e@Io)G98kE]?AI5(f$m/E6>h^L;pOAGS$A2k#4[WAH+\\^"F-Ish^fV.1?Wj,;%tO32Z:&,)EP4l/V/t.R:KTGCm9Q3N"ju6#\N,O6Mf/F!VSu@Ug`2?5Z`8C`7W.mWY??QG,BFNP$6)C?Ha[u<DI"L*5sY1#J.DJcCt8sW+;*q+WTbte+>A>&DL?bO6BK'D=t)Rqi\A??"5TU(:2dJ8(<ICg)sF]m#m*#+jAGT65X36;+l>0]>T4-)i<G=qm1@M(8SeI38ueeAXqs>9/;u>70g'(]i!lZJM5.s/oT@(+NRGHYed4YID[T\=lJ6<Q4TQ`C22.68c!^BGaDN`NXN#Z$*hW>rD<8Vf%An$%P,Qpu$SMnQCMYY/D(BEhg8a8Ua^Ja!=NOMM=$C]PP6p+Tfft'M1c>6,$FN4;N#*mun-Eth-m&V,o3V@"XWKA*b-0;["]YCB`G2a4!=?Cc]3mhlb2ca7alNr!HGIaYafh67JqiH2e&lbP)%sN-G:+OCR"o&+^%+nHZU-p5[__i0m>=lGes1BNUm?O'4f;XQ<=J_('8lJB:%^!mYA_ogn!b
 ]-HKS2faeENl#eF'KY[1;A1UIqEpch$0oX=W5+)(2t~>
+Gau`TD/\/e&H;*)+VY%0!];3"eD'\r?(3_U$>3(j@9A88Q>)hJ/UA$E=8VYP]cUh/%Zh)dd3PO/Hb\b3q"An%rc[l,`3EA4s2-+fM/E(&%mQI`r]L\m@P]MLepR&SjDAtn-9_fRca$.#\,e12#I%]@l,jqEpuR-NKRk'SL)F6$7[?u%\Qqts8h:q\3L8^0nu<K-=mL6HrUFnXP?k=u=]=31cbJ6N=67F`R:cE[h;'UI:[@`'O:DXikV[H]Xp9VleIGD::WNu:'K(QPI('dQN_3B+ms)J\ABbo_m0K4Q`I_peS6RX6U89J+%k`hrU(MD#L(VeR@smNM/sD3Agt]QPoIPdK2JfABQ?QTnpoL@`26/.Paq$.8T(IqW-XsV;3c`UK3@CIFnjAUMVGk=?,Z+mD8#2#umnsgeOX6?`4;B6>F!K%L8<.=1"CSH2Sht?K1dAs50c,Kagem;b/tNS4bR7(Xa\Hl5]Rr:Lou>hYHSKJZjW"eI&9YQ/B2hosaf=7H4M++a2:qf,1j[_+pJS3l'd=#lR[.9sN4@0\<@mcIS?S1Be\PX,E-^%!bk?lT]QW!L:'<MCH/g64A!(?#(dYA1_eZ5"UKktIYpmakItW8nX#g3fk\[R99:g(ola&4d9Wo;j9u!3B"tr^(-*'Wn\I\`Cj5+PN/sFU@<shDXCB[`B012Q)+Rj6(i_"K_o[g9lI*YlMr[!XrErK\7oh!F*`D&PRat/`!I)Grfpin>4+n`J4?phpPeR8U64I6Z2^uOl55DO$F<KdL]8Ar($o*s-.j*Xt(%is5FPSP&b*BDp52)=2DrnK;!g_L6PLHZWMe021r3Y>l<!#9,RiKk^H:s#Y:nQI8A$orJfhW1(?l-K=R>4':]85W^7V/[C9O@ju?),t"9mH%r4PTSF,c]/+,*>5t=bDYTtiq!=OIA`p85,+qYk%eYB9_h`U<I-l=A&o!ERIlkj&NMX]E0P?928r<X`r(S_.dQZj.#tQ
 gOg$R\V(r26gYG?sKTkq_XW8qh`BJ_K#Z`1pSLGeR%"eb%Ie`^#h/%95f>lS-pJk^%2btR+6gJpY)b7T&EP+Irm/WOk7n7kUk/19@IsP=%WpP'11\?rkfn?g/HdGl4MsE^5<H8bNEi7$^3)@l.!?_9HrSomne0\MfV^f)L$?`p!AMtc^e'&bUaQMhS*5q(Q`hbYd27_,d6Ep_[6NC!lq'=H3_snLH%Wg!V*5W[(8VlNUD@!@R%bcjJZ[7?Pfij!G,PZNmcVN)C!DFM21C+;(e9i>,E]jDeL>irrPqNnn*6:VnGHBd@>lsZm")'V3*X-/nKg5Si2j1)XJ5s@s""!!8BuVBd_Jg,GRP&,U.`YJ%L^\.X;QfSTS!jjF'0<jSKtWGcK.TTFi][qU%>Dp:(^ZBRp-"aJIr?eInC0e@Io)G98kE]?AI5(f$m/E6>h^L;pOAGS$A2k#4[WAH+\\^"F-Ish^fV.1?Wj,;%tO32Z:&,)EP4l/V/t.R:KTGCm9Q3N"ju6#\N,O6Mf/F!VSu@Ug`2?5Z`8C`7W.mWY??QG,BFNP$6)C?Ha[u<DI"L*5sY1#J.DJcCt8sW+;*q+WTbte+>A>&DL?bO6BK'D=t)Rqi\A??"5TU(:2dJ8(<ICg)sF]m#m*#+jAGT65X36;+l>0]>T4-)i<G=qm1@M(8SeI38ueeAXqs>9/;u>70g'(]i!lZJM5.s/oT@(+NRGHYed4YID[T\=lJ6<Q4TU%=I&SNaS8/>XQU5kR+_EV"POSA&B5]::IVCKYA!BB`DI7Wk:g[^ZiG)S*'@Ko57nsOEe%eSQ>.F-kK:Yd3B#sr`gnC_3+'#6S&n\dA6%haYRmHiu8=TA5O)=ig5u<$,"tH;*#:W]Cbmm;&2;&0)JQF2MZ:uraaOC<(/kg`Ur"h1PYFARij2d>/h7G`TBtuk/qX0VeR[t5q6F73Y05=RaEj`'O"!t>X<9cLB$E@R^YF8:h(N6<TnU>n]Q?q
 FNERd.;.Sgg[UI3D9g4f3oigldNJB%TiZD=tc^LLF:R/~>
 endstream
 endobj
 70 0 obj
@@ -394,10 +394,10 @@
 >>
 endobj
 71 0 obj
-<< /Length 2097 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2101 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau0E?#SIU'Rf_Z&DEH\BP<8!Z9%?GmHQSuf63./@G$<cQ6i#[/?4qF-i\Ws?e2&)g0U3k87K^SH$Shgk8r?\(6^\8ag[+<XPrp@,VY'hGb,.i*Og?Cj\h^qe2(WG/182-?CcM[G)1e=T$CWZU@?/HSs]1<-N$t8o:Sa5B0+%AC]+!E+au,JBKaJDAV=Brn93.=WkT1(D8lps9VU_K`HQ,E7+RE;$5p*#:Y5OkQK2_=]Z`,SMnHf&Cs]I`Y%4mh6ZhGMViPbfoL"`U>bhqIho=[S?se(BS8M^2%1bDr@iR';I4P,R,uIj=+9[_`X&t*#NVc@QQ9ecOM2`3#^Wh6`T9(sgl.e3K]0TY\a:*l?d3^&m:kF5?U6*Fi$<!Jr$J>qS-fpep..C?3GMe<ihQB)[%FZN(j*0jo4I>g]H7/g+ZPg#QWsSQLR3RA%$=qHjKIuLsVF#0'U>RpM-5=6a"M,BqU)6N8;]:<cl;`)7POP6<nmbE]$nj;Z-Li)5F:FH/QL3/d^COBS6`pmsRpY"jP86'?fKJ"b5\pVk^p$KID9JGLcZqFR!l'<`MPjT[`"dk=m%2n+RI/YmK]W#"[Z(KmD^TOA@b]]aU+@?DMdmF@mq0\//9k0.2;jfs@b\i-\k,.@QMg(XH7iBoJK5OC=<tau$4V\=I7`iaUemkaL0M3nJZP>S,K^/2T8\Y*,'r*8pJXnN'$Zdu/l>jT$-4=%.g?qX@W3=uG&o3PXpGHmTs56?jGFU.K+$tgL?kM(CVZt0^TO0#&"^YT>36CuN9N0J'ud7J$7poo`<oK"I11Z?=G._$TaRg@;m%B<PEZS%?2lO&_4[^jE>Wd1-IKLX/4u49^+&<Fb%Q1e0d_qIfS?If,b5ZDQQC:1H_)>h`a+#3o+7@:[/(AgQ/_S(Bkr0)1i^MkS9s$dPo3*!(j\Rc8M[l,f-@X%;$%Z@e<bjJ)Xa9,$LK1nXdY:=eqObn5b\d@GU+/^'L,,-c671
 .*'Vmd4K:H4p/VZ.p"c;4<]6,)%ns.RN%n*^M-5_ROPtr_nCnqVEl-XIN0e%+dgDVj#uJqq%_]f+f`<CB0H6_^<QN$O2!7u9PW^i^]PMbC;Hc.n]^[6ZHOXaEQa[<gru6:2i-D'^Bf5Q<R;G.gldP9'+[GFt;)T.C+LC01EUK3'aRoH)jn]$=MA9)*s#>\<fO//=i,'=FOX38U'rnSq9*AH.Q"'q0E9TXnah+2.2_#+/_io[V<_X?WHRK&`;R".XrBI[g*#bs?d;IUG&"j3ioRJ0Fo7*bri$\eK2YB-?L@$@S@]N.4:-.?)CN"J():!4AFdjD8]]/+Q_V-mfRgp<lPYR8Ed2gtR8d;Z9IB7aab'_D8LeV_;4'"UoHKG@Y4D/so\'l4<'Pcsd2leof0qD@eI*ng.$:6AC7?eT'$V>>>4KSeo:N+Q^H4#-b^W#q.eNh-?@Wr6hY5)>dYtBkC$]>C?P'm+3%4f3N2L@Z1?%mg/DW(=Xcj@Zf<3>>NPgkI0if>O"=A#Q+iEjT0`ETIS"OeRU]`t0]eDBD2ZG$pQU\MWUr1-)"KGLBIi.3gsh,eY+TUnMaLI\j]l(H<):R07o`+Y6h#k98XTu_=`+iYbNIK@^P)(ohu#m_bN1mUl&RN"o><LQ(J/l47KNo/TRJ@MpYFFi-HZ0D#HJu&a*eN\n')bDZ8k]lL3B,@8a,4qu7J7WgtGV"i.)E9/$YljSjA^OS6Xaa&)jiF:!3ec?ZFZX9>,?P$*[+d2`$N\hK&(W@3#k!@+_WihqrhriYa!@\h(>*mt'=3(QfP2)c1O3s^!uqeEZHk8IEhP\B2R4*n6"`QEm$(PF=>"J4j",MX/of)hbOLDM*sr@qGI3u@Ei^;^O/#R+4bks@>rSnm/L0A(MmS;)V=c1oaJg]?;=ij6%;O+CF2SJ02mI%C/FCcEd),tCUREE<obC1'W9M3n[]KP.?FSpDh!s8?>qp<>b\n<qbaO1Q@6#-XgD,
 c@B%2$0oX0eB_TB]:NL9mR[i[<:"ppK@]r?Rd5)1nbrC("m++_*"rMZ"1B(.RVMQe2[Lq)*H%_B2+(M10eQ+@V#=Q:m"6+qH%`c(p@]4aWZi;NlsB:[r~>
+Gau0ECN%rc'`IH,+gbT;@%en3ATcX\[]A-sIBE#n%,3J_Z=L;(7?s&&jPTFkAR3HQmA1\P,c3,TQfjrem\0T"0mUI"I%+6X)LgR;!gB"+kBZRKEN@\m0(k&k4[V]YEq8PWjk0lTLH+Mcl.e-I$?%KTM-3&R_N/7b&%\!MVIM0c`h1QmiWnM$err4#7d)];Dtcr.qCA8lAusq6,l4d\pm/%8aSPF$+X=GWl+4XJOrUTdQWYYGOnVq7%9iJIQ&JaTLou.'o^VU<IOMLRM\IB1gK;*-m)olpe*UqciSgY`N2$QOD^F;G,YAFYKYT<i(!BFLEIV]G15LiFZ&sY"\,"A4'@K?)Sbn.Q2e]6(R/q:Zg-k!58e=g%'_;$*60]+K+oC6]Ug3L*"We'DmQ7\tg\"(H@9UTlr/Me`k7V,h%jbV-2C"N'2$(HBF+b)lJa@Z5Y\!dV<6-XaqXFfV9tq)L$K**0h2;nCN2;=Z%72K9.QlBUGYh640de-!k86=FG`H^RL.Qd9p1a3WLF\*&f7s:L05le@$_'`S*c<>J[Xr[1=JgtaA^7==4I]H(hnXZZe#Y+[$Gd'mcYV%RG3i5Go)'`e7K_5NPINNUm;<P6((ZnRZ&.LbZXc`F]IL9,nB32aD;n^S,TmpsIWboY(G4"LNf+8r&n*YOL-h0>,ki3T-rO!]Xk_PoekNL`AV/u=7R\a<4`@+m.B#doB$;*Y-n^&RA.dW4K+/qX\;gg+3>OR*"GQ<k=:&5Q`JL&""a+FpF\k;;^oHD/Y+D6rT#/?Jjq.ZRkqmi(`N2`?/;?:+$;o]/%"T'oKH:Dm$`M0GXs?W'PkQA-s"8T5TVq$o(j$B;dCh(^8sWl!.I!eRBRK&!-B@HFLT3B\SJ=hb*d*NjSfeK^?%']`&=RpPq?_k@iqSdQCOTVIEQ0f)He_A])+V%NH>=9f1:hte,I@DI!ZJ>nQ\=?:m\$uqm3^MgRZ?jfL(Q7-U(;j#,T2@O5=ca
 =+`UO&51L</W]H[D<XrC-h4X@?2Nj9u9Wld%0i'K[=c1+YiJ-gjgDlo-_VJscQXbWr$CoBJ:sUL!]u53L!@;nC)km+.aMLY.k?+LD4Z#+1BQeu*>!$<.nK\]n%;RYa[gJK%)g]lhH(sS<2>&\lD*J$de*^9\5jb^O2AIngZfP5-m[.J)o_nLFq>r[7'iYqJ3/"Wj?t(YED&C!L,s[V.Wj=HR"Bu>#@g!E`ks5QrgL')%.L>jfPCd">9br,'-j>o7Yf7OY5ICD0)Qi)JDV2E/TEsZOJ0U$EJ#Y<_-jFWKofES:m3e3/X%Qtu3oNVFDg;U+c>ahHRiR^*iod8Wg,9q?%N1(e:6,Y-*SY0u#.2'lXEpAYI*;\K9l2FC<^;%Yjoj*pB6l8@di!<CC?sM2X#PSmSQ<j[hPP,s68#0)PSY&B8T@foXTf)-DpMR4$@b4R`V2FD5fT+!G7:p_q-<-g8r9&GM[OoqI/7+X/&0t"HTuUXKn-1@i;#ae$,o_?Xll(9e;#+)O""XB8uZL_?H??i>HPC<dj!kd#,-UthWT'e^(IKBpqVIYSNnNT(8U0PJN%)p=*"eCSjR1H8%;pjT[![9Q-Yl:BTS&VnL#*GaE1f5`Zr\kJEH>0QT(]CKFoRMb9hDWN@!U7boTe"-l?X<n*NY2gt=!b5ja*SoQt\r;M;mOT>\'q,Srdh]QW8?MbmssH<,L11--dFQGu6#*0fmDJbc.JkUXR%^F#IkjO.&!6LLV[*Al@[/-0_DD3pNA!,KjbCR6IQGJY>.FdQZge>i(LP19UAlo^qt=h[OF[>FRE]XX"'%L4?6kEoej:`j<h=c:\#Z_9j38h3ai(H7Cp(-P]b3+eQ>Gf9.`"bktug<V3.<Y'`$dAXpR_jcdk)qTb/On-1S>"$N]HBW=/e<T<tH#fP^2.jce@Kqp`=L:5Wp?+s0iIUGpbn78XMP^F(o\iX$<WH+&>OarGphu.p(cZ'g[gRXsc,'.YS;Y
 8OMT6tul8pWp>0(aCjPdYhb^nF$%iAW(KLro7eA,.X6Q+5LU9<%-5[OA;eB2J]G`bupfT0r=>jPZ"h-?A+10q.W>mYhYE>?`k?9:Ye2uq'+Zm%YPrrN31SY,~>
 endstream
 endobj
 72 0 obj
@@ -424,10 +424,10 @@
 >>
 endobj
 75 0 obj
-<< /Length 2661 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2655 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm>gQL;L&q-CU@-,M5>%%[<i5J]AYiD:mXsD;=-E4-$aTFsu,MJB\OH_*`pC#iI,"M]Gm'80?NFqoNT7[OAmc!<c%l]!o@-^D^qsc#;O_qY3.m>D_^2FkYOirQGF)--oT::&I#2#e$\2LgY90JbI2Y&QlSEbT"gp*sYadW8"o8f3u!Am%qSD1Zk_UT/-],SABaqfK3Ke]]511,:6*Y-d$?>Ykcl!1s22Qg?=^H0#TW,B7Dnm]-)q"WS>dsCe6m>(PZB<@fm>[BGe<8S:Ze;a['6-qYRKVoIgD6j'GKr6WYF0lJ</3>"`On0EdaVK;\q6<W9QXB#IF7,S!@FD_'/^G%$J%JF8\'L0t8/rbmCV>,;[S_5'JTRBK)XjU5Mm(+o:@%*:N`k"KHDC)bFJ2D?Z"`7i@F'WhVs[@UJG.:4"1k+gj7'a8T#,>f!LN`Qn8M"9NT.mOA=)ce[*OKqk5s;%cet-*8C27@j]BOR=YfN(].?IWM'S4jKe)G^CN3F$m8:rFcp$T'R%tjVC^u.*S>S%O&%in$?Z?"A%At@_*Dt'@iaCjB^51!#Squ`@;(Q1P[(he3MYbQ'SuqmEK5Kq3b[#7A(Q`!&e=2io_K/nTI<eB\](%=FVCZU=+p#!Se+fSlTcoIm,'AFhrV:QXnrh&/i`%8XZ%0rV`/>4dCnWbX\qiE?7e/<5cjY7f(gC^b$7"l.g"gnpcEOrgY&!UiWj;JY#)6^7_aAHl)YGp@*EPlGjiJ:t+9K4@Eoc!7O2.Le<[5I4Ada;-LgZp`Q(SL:?rKA[)G?M)5V)`&eD:^h4VaT4i74,nTs/fhLDVqJ"7#8"!SuVkI`0$@`1RsXY!iF'@CK7Oh`C2(OE7?\FL!f_fGS0bN7"LPoK'?!:C'!nA%3G_L$@u;rms0PX86%TNI4+4akA;_ArHdI``ZGd*Gi*O:YAgR]s$[(@lL/]f?Q=L<]q0JQf=.5P.D*ueRXTFrYI(^^HiN0B.jR
 )V#%GRp08<iDAEk]kFucLf(1CT3so<:^lh^%$8$DNY>(W+"&)^FogGShZoT,Jn<'!9$6OD9Y>(?$"0*oNIO6hPVYfPPN:oUjD0bs$q/Np,Al47gGPP0#Dn2=N[=2C.#*%2PG`7DIfo^mp:q>E#Y.;^N+Y1+Y2ku1P0t.:QS&eiEYp%X\Kg%&\-e/I,3:P\j+V%DnK=61A:1q;fR11d%%beIMGK#*p4tFc7eJ(giIG:s3WaPt&R\;5t+f:o2>ngMbJ1t_/L']hSHEKr-R=_DD@UrYPT.W7PP8LO4?#__<n*f\"Me_XE4Iu'TN943E*G:J.*A#O!f6VU)a7W:N>$PFU>fLpGP?s,h\?9aWLXV_C\SaK]^2CZLrts9\&6(H$,ppPEF/fUW96H&b#1ZG`;)<!!ZHO"Vm0Y)e&lVX*A%$g,_rrVchYq4oOT:"GH`R@@Mf3,'31Z%%eViuE"Jh:&I_X`Z?&_:`6%^MWc<`qciaFOVLN/h@'jDhbD3t`n<EHdX?!%E#!N.9q=sSnYel3HtL?g)Re6FrM8'S0DkqZa6[;1[oMsDF%#ra.FK'M?7E7pWfnq71a+Fa^h,i#9d.1&h(&:FNH00]Q<85^Q@C%>9<:*A%."K^Eh/Wu9l^CTSDi$62B,)jP[akRJH&@$<(DE5.@QZH=W-Q!TNl^Zs6^78e%G2/c)^4WThL=Q7sQS:Son)bp9eE&`TTVWip.AGk7L^!X=+FX,JSDIMMLGjch+buF,0/BUE<6tau[Gn:3SsZ6FFl@']&E9N0JL9<Rj^r)0bS3b<=sDF)qCO5uF[p!h6jjPd"0+>nM3'FG&YH`R7G6W2*om&jMfIB1**u6:b$i<dO[P,Fg@e6#S[jWqNX%I`2Gs.1pMM8FQ.Z*dW;QPU&+_nA_FmUmPm@q"KW-S7%?F#HWHi:_Ng_jVP@^V!C=a,e(=`<P)K@Nj):'KLPIKKLq35K"bi>t)N8Q<+L@3IcjemDLA<,oL`&<
 Q2W@]iQ!=C:)D;7Ka2-&5<[XAfaB<Gc+Fl6q=1&Yr1m?<G_fhESfF)*'-`"Za^Mcrbs#b)%O9u'VICLsfq'MRnW,1Dua,5W09C7?tc`ccrhi>d020HUaj&,W0L$7RFb%s;]m!]^Sm3>A@[>\45GoSULB"Xq/4<?7XSZQ0J6'g9Snb8-ILFoH&\eOD^#V.pBd/lOW$4X3tU\$*^6buLcuI35CkI?[K#"(V*up1&=RIn7P;o%1j)ZUU=]<FdB_`"Zd_$X4ik,MY+dblf#oMQBL;R=_DD;e0'2GAq&6)b+2,_`TP0@L[;iAD\_J;SKf+Z5S)H+B$2<Q;5`#/<Ac_\;$cc?4k:#ijsaj4j%tIA32j.WRG;Q=(mru#m/mJS>ngq?dC4J(hBaI>"ef<Poe!5hl^[adP>L_"Ou*T`J7844r9f/ZXQ4/bcjr#H>Tt+(f%(=:Fe13+191WiM.amg2r`;T\AKpVY0ON=$Acgg[j4f8Q<b$&Y5HdoWVHk3:4iTmQcTti1[r-*UD8SeZMFVEDu,=M="<`=dh^Tp,KPH4JM2!,')QK\p^"p5'i_(_X3E!,@;u/R0AU-$:P8+B),EEhO[aG+ZmBuajV;Ed\F_LE95`\#Np+-WOMQZo\oX1gQg).4O.u6SW@d(/IpoqDc:VBVLE[h'tE2tKu[j,mf+SXLq3~>
+Gatm>?'Ca9(V\d6_=T4FH*'M+iZg7m8=OMSAD3p*DEFERp&]lZ-Gd\*m-XfLMXQ0081I=\Nkn5@Eupn8d0KO1iT@b-S%ijFod'NbIhUJU[TqE!T9N@52iROQA]2a%[CuCtjr7k6Cf;$QS(l#\T$8f*H'ihOotMmB=B>E3c2[S'HV<o0)B]mBm9O,YlA(/NNEo%cMndo]QrYf,0>(I!#O@FPS)efTQ`mNNCKL55%PR:O)t/s&(iDN$^:+$J*^3j+Tg&$MlR+c\=,oJqGD%?O,CsJ=[#PXTl,5lW/:U"F.?*s?mDCp,:.SLJ4@X%j7IO`8/<fYda1BZgHRD(G[-gB+Es2I!DNj,JF/09Y#KZF=0;#RfPT=rjh'T#=4"A/-9C]F=qRO:L(3Z/'k^59oBG3dMgA$'JF5bEDq\)/d]ef81mcWXjHnV1kE1:.K-3$%hS5O=$3:SEM-+j6FZf1el!4LuFpn\-,[+f0f'lnG_9RPhPb>E("8L/03ML+Jigf7[-'XA^cO*MTi.>T+96X^&Z.Eo[301YOKSA/dUBa@m4<&9Oo(cf;`,4gmD,!/m@M\mo1n"bQ054bjglb;=cgU\SMQe^L&jOY+=-K_r0S<dhq*n%c?4:@?%M]7UGJ8FR/4t'lRaQ'$d*FO&?5+T!lj>!kuPt?-M@'V$I@K[o[W(j0BU/&Ca]Z_'H_k%FZ<a)ZCaLZ#-2dWdG/FSqkRXDZGXM1E[@@?`VO;sl^4Uk**eP\e\Z@t8o!3`sRq6p&CYirgOLbOb?6=C$A==A#4kX#[0<7&7sOsU7Wb'k_GpB+i"`MX`$[:N>dCu4"lL(3EuH@&4K[s,>(0eaS%-q:@TdD/-%D:S+<N]S`O*,5tSXN_r4``Nd^[&FDG%P>^7Jr\M$Y(gb$HM`R!F\_M-rg$t;s.\L`D&-P97Y)H;X=Upm2HnA'lmp`FeT@puS'e3Nk8R:!Sr/e+nOQeSh$2;BZ:.ssMj:6uTF%R'QNT-
 CI9IM8/dcPV$]3;Q;)T?Yq3@Nl"YXFpaXUDHQFcA5VGE-OVCKB-,16d$*=ZTTa@]HdO1N!UVTXo!<>JOu':DnMrGtk+qk9=a]R8l>38@'2W'[]"r-pkJ\XL7?IU+9)NRi#mN/'mUOb4$<\_Y3,\]X^k/%OFoUPO(J[fi(faBW5[+k8`04tN?SeH`?=nD!@S%T:K&[XAfaB>2`\%5*;Dg:<&a`IR)7/'9g$'Mo9fgTRr`@03-kTdrDPVP$jn'O/\00PX.5#rl[GY"Y.LJuN$bA6NIb00IRE(pLGSEOGB,md=CV@)j-QVco<2:ZjiVLAA"B%bBgaD*>S),Prl$/[@%*/gEIJ8[$)oACn;o_s,F2A@J*q?oO_$s,?7j#cal3&ee`33Rn;<jZ5e,KBjlBW2[0[=_8#<G(l&mM(,t6+ko3A@J#7\n,G5I8:\O<rEh=/SBf-Nl;dWm!`I0N^L-K?Y/[KsTKs5fB<NLBnLtg=_`1D[MQIGlG"`+]WiKEg/h@1MJ5[+s/J>u=CT<:u_t=UdC9F&bUZU.]FI=kVg9jAH`H;^cKU\,36$70,\Ent==4ENb!=OXert=Hc\4tp\&tfLRq#:/O56.ZR;BQKanjU8h+OhJ9XPID=P*2TT&*a,P,K1!6N5lgXg_"H9Z#e=\3OXj4F'9n<(_t]iSDmM^S7Y*2gn>CqK'r\ojo*et0Ko$2js>#sjZ8TuV';$NU>rkA"o=E*IJZ'qhH[%82M6?"LR9/:19;6jcibl,iiL@qR%d5riG'YMih[fL-K(iaAnA9l'MRmt,1C#t3@k/Q7qEu7$P5<#W]7YKO>,E$T=l(1g#3J`j7uu=ES*;l?:n2>@E//+7#St:p.[N;\Ve:b#Bk/H;>$7LDC"\9f`*4qr9L9To/nqJ921n@#S9pfW@h]jO%5S:H#*VDRPl[[AYrjMf+XPfeG\kXEAEFicQXKq\)@8]P\+@Jj0>G>i%>n%m^\;g$.DD$D&?tb>@R
 F1'N1g_\;.Y1WiU8Yq^.iY>fh*Q^sT`&qV+-d-Pp9uRm<k5ek-L0.EGI)[?g.j2@Zs]J>;8Xb%-nhR+`iTVDYbLp<R^-2J'U]m0!s;3V5"64rQ$qp.:qm;GtRXlI]JJEYK"(-qrU1bRS+H'np?/:k23=3]`[A3uGmdHB)X(/MO[!!7JN[NI"DoeJA!dVJ;KE7]N>(?\d+"X&KQ*5#AZ`/=i.4`pfPcL[Yq*Ru/*F:Q$l=NA+;3a@[/&.EYU+[RSh;\7s$Q#rlZ7=d^fs"]N%1aL%o6i5Xt=N4qE0H!G1()WE$`^.m%OI!HrJ2>4[KUl*,CSX`2Q*lI;`%7b-G,*G+-FU(ciPjbKjG'(<*Vo/53cn>,-"Ls(D<Im9HSlM@:aBHWkQMO$"4c\:3?ILs4A^I(VW3]Q_&"u79/j/$'`Ibso@A@H,g16$pS5^;r<b*=:C6:6g7nr9VkqZa6[EF>!lfYa[I!Xq`#J/ZbW/fsa3]Z]o@Bo0=g8!EYM%JX^6\4D]euS\K?'-JnVUC/3gT/W+1oF%7EGj<X7+i5BjLuFPq_V)roJdA7gRisc^/u()$_1oFMA!GCnu7GY4fnKsG'_8oV`iD&7u-'^b->docK,%(DsPm:_tAGd/"]1RT&hRd+6.ZO*6\ZFVVj:*rTjS8E5D,RO3ms_5D6>!!W~>
 endstream
 endobj
 76 0 obj
@@ -456,10 +456,10 @@
 >>
 endobj
 79 0 obj
-<< /Length 2195 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2197 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GauHMBlD`a)#g+6+U%\h!"H(-(mY5;Rl8q<,YO(:R"p9Zka8ItHBK8gqt5:^;:/$@XOX!`MRMO;hT&"[p%7HWHM#gOAN[ccpIC?;9Z-UQpt,3(mo.uHL`IB;1Zh1l+2.[MrKDGs@G.kA>o]9W0baOg7XNXkM/TuF1c,,U0bl'T^*3*Bh!ce"p>\062N6br`,R89RND2:QS]:`eW4F9oE1431ar4h9GD0:@%!s\Sn=LqbDI$G5I2uip/AMN@f0q6J)&H$M29o#qEn"6p58Ji?Z5i1KIuCKX^:]Wb=7Fh\Nlal<26>G=Rq@:m(uqXbR*8l>n3m]c*XbdWau"FmSjh"M@8L;%8RT9Qn!jemdg;Cc->XrbF@gU8M'GO6qT'@UW?aJ*!WD]rJ9VZ2QcWj&Cg?.3>?&pP3*:2A;*b*";k<P)2a*#(G)^WYuTl\??0t)`$E&9R%@`L^iBLgr]boN_^HQ7rSlX[UWk8A$AdMLPnan`KTdl@/@/'N:0#K=Zciecg1s\Or?UO5F[8LSCrK_F,bYr!+TL,jW\nMo`_!1tcLY=NL-l9Y@PM44okBTY3Wu\37[]@Eo"QuTkL\6T>-UggpRi8=qAa=Z*1[g#\gehV)XX+J3K_H6i?tVX&[?rjeB0?GE7U4ga2@Nl**he0^"V+%[FXsTHu1oP+6i*8qC7o;MXhHA%Hi-mNgs5!!chJHRO-_YE[+!42@"p)D&7l1M%.=4L2/[fV41#lc(Ppj)rn[*U-)Zc7&NdU"DP5A7@.$*H#'T8\REZs5O)C*95jjTnjd#B4C^D*n43p^k:+;K$6;WIX+J`Xk7=LJM(DS?q_ue/2fS(npknpr*qQ$S75FMp/-3H]aLh67r;--)`Q,GhGA!,9aOl//d;5)R8]'Mb2Uoi4H&feXYhUBCNWgKt>:(EV<7aHR@hdO4af<9;;IGAt42_O*B:ol_`,QbcBb8?'&dT].NP\F5$]4K[\u!LChhple2Y&@e72#@
 #qc1d9Y^G@h/qc@-H[fMZaY,JV,J(@K(OBY`#a>M[3b<_8O3//B*U"RV19I_B8>$ra&IM#tMj1OLTp3e7j"nXY:m*/%PL_IW>L[4m,DseaIaOr29TYM%b#+:830dJff#Xk#TbhFnLqaH:*5JmXB*.FoZM%D"+fL9s\drNG)*I_nH?'1\*/t+:Sl"Ver+UhmWc2b'Ks@#fOTgCSd_2CH6!JUE#s)8kS183RTLZ.@(YD"U@[1fQTO?juf;d!=TJ?MG:%T=WW.lF'X2F:7KGKOp#;N.:fT:X30UH7d*gL9hMD[lD-ui^!;%t6_!P/Kdchspl[ZAk@K3=)U?F%.@=1IW*d'^Yu:gJ\=U'(7Lo7cCqWDo[*Z]g`Ed*Q!6:Jlgb?7dm1FRI[^s(u22%nI)Z)/BbN49H?RrP#oSji]>CfF@(RZ_=/*J0".MhUQp_Sp%BrN>9A[]CE?u/9V^c%9p9J+=(AT#-umT7BB=;H0+0KkIJ6MK&DsNJs]?@kRif[]t7Qo@#ZR=B<tmFhLHP,Y_Ze5<sbJ%RdSZkp$GaBn[@]CLC!\U6MuiT1q=W!2pDbm3_[Z%Li7I$g.'^:'#asH.iL&YBb_uNFbe;b'`bt*=53&36TRuF709sYe09FHATbJ/9#mu%NM6'kep=H15[)p)VZ)_@KK(33=kJ7llpE>p[DE+\W+Au#\VG'12H0q1PL\VaQ]cGC*qt4=WgUo*Hag3klD(hq[[JZ^o4,G9/MFE-m+4BNZC>'&UY.mE>)5L4&k#20WKFmDonP2PUN*5&X:*f7'X^FGBD(5!Y/<$lF`kK55t(XrB`A;M)UKOLQ'&*62MS9O#dZ+&9YiS]M(m^tCDdinb<Z\X!Jkr^m<$IW=c-0oZ%).6]j8Vh<ur-_<J@AIfb8Q,r"Fu=m,=1Yek+Q-JI`S)&A6g:.Y]FH>k@*6GKr+H+L;m)&0J6B5lb^%!.M(^pH7Ibg_dMq+L(E;X=n1&5LJ#fqhs3=NE6
 Z_=c[DE,VC^iXricSn-o@B`9JC+qO[kATO,%b'&UIZi9.1s(:%%S5QX_*()+nsj-<&g=0,])*\_Z.KgdU#"3L.85&rc,%$AmWhD%T8#HiiRYq43GOma0]$f]@-_Dbr3/bm5h$()iO!X>ko56:s%oHX1D5W^rDg2oQn(Q3#QIoU/phMHBHd/'#_TOVhp[tBEZM8lW-`?T_YZNo7`"4j8Z('~>
+GauHMBlD`a)#ir1+U%\h!"H(-(mY5;Rl8q<,YO(:R"p9Zka8ItHBK8gqt5:^;:\BEXPKQhMRMO;hT&"[oji/))>uFuN(<[?IMA3g1jn29IpK8W5-li!fV).r@lF1/o_RnJO5G5;A])r,4u/U;-N(--p8DU;hfOiLB)M1.,#7*E6fphJk#K(Xa"pbu)9_o6P>oIW4m=>sBHkC#+4E@:#9meo;"WY5.*tT&1/TbhbrB!o'e@FUAlYSmB6*t#psYW.\>-#:&\$6]LR_uC($SN.hXo\3S'tA@^$KAIN>Q;KJNRSE7SUFuj;$G&Ks_&O'?#7'(f[2uBk8;aanCSIW?dcE(W\gVSg+.g<=JQVe]$:tgUiMJ[l9Z6=QK(YP[#+rOhDAe$rf+\&^NaZ>3e$gW9Fn8.*CNQbo[P>$Cdar0XShT'F>(!=Bp\lUWE&?jPJsR8UNHN4i8OrjTKc*IfM9Z;*5cn`V]C!RoNc/&A-+8.jD2(-WO\ZAt)bjWg6e#R2<`If;a/j8^(r8JrIFsMENUa67YYnrpt,0CX`WKP>j9-kI\Y@LD"^N@Qm<Idj3mp#[j,BAO=\bs3?Fl?WSId`B"1YK2rEHF0O28FB6WLZ@EX([+ec)/<s5P:K"MD@L!.:PoC"eX=)V[LZq)a\CL\,[BY'nXm$Akg2t+odb!s[<AIttjXG3gcMLof3O,@`jKr)J9=EmB7Yo'$%LD%J/dPr#)hc<Af5*K?2j&]]6SC.E`^B&\H+4??:7[s^dV,P9/ul#Eem;R$_j8o'e?]LKhYs#+:V76a`cAHFM&)W,;MM4d3f_9^"eus]+&Q_b=f0^BDk%\_i7?$>(%nCdk!<")AE_!8!daU'GPU"4c/"/uO)M5jcc6EUYq^U&feR.!KZ?f(W0;YBNPiQ9g`[`!"WmAA-6DGO2aV@k'\@6EWl-en@#A_]`!cMq:l.<o30'^i#ilC#";0ie@4..j7!\sk;Io]D`HOonq3@ZuM0mp
 n1?Bod54BO.6D!5N5I&K.(RhK<h)iae]s:B9b(=f-ZG*5,AW!W#oFD4q<n@^):_(PPKd3?]b#s9lb'JX/R::df\fBV6A/1lMH!M3:UA0]+(JW&g"A*mA*#4lr;ctDUKrccd3udqAJHPC!l847T\Q#rQ/h1XtPo@rJLoU?6-D/,<:T>e/i5qb!TY_?LrL?*%6/,i,<i?C90pNu)#d8!i?CjN9c<_6V.<);[Z%=%-c<O`^%>\#m.>*5;?ZPP<Z;[\1!,<0qL(<N'4Zu,i`fl%BdrB1p5\[&FZ"?d(=Dbt`ULTNJZ)f@2&[27@"7'TKf+Qh.C"U6Q7:n2Uh5Mp[p''Y`?nnT4_&F$t(]jJjdhuR:3i4AAWS-q9V'\%k<ngPP+e2UAbS6UpFl%UPf]<4`Jp!*]LH]uW^FucXq(`?iG!gT.D!7fM?jF?WGI9Ui:V59J`X61>h=t1u(-;kmL+QV5&<\_0#-umT7BB=;H0+0Kj12gIK&DsNJs]?@kRif[]t7Qo@#ZR=VpeqQhLHP,Y_Ze5<sbHOS*nclp!%VBn[@]CLC!\U6MuiT1q=W!\'5>C3_[Z%Li7I$g5ac,'#c)h9,]H#Bb_uNFbe;a2#t@J=.>\M6TRuF709sY<&=m=CK]K^T$m//;.HQ<ZaF,?)3EEmUoAiSRh4cD0FJg2PC86U^/ETK!k#,PF8+#jb_GCjHEoS:lV`nk`7$p>75a\tD!r-_K_jmaXf\JC`V]kBCWhY&.Jn86MX9KVen?s<K]]#UO9C\C7quQfFoC9Wi93/M,?=tc(5gg9'kd3uCSo!)qfR%sBL,&ac=m4_&fT+<GEjCQgMIANo-;Jf^bH#E3$lF\T<2[(,cmbL^ik7n?"?$&19D?:eQV<Hqbh@!@u)WG$e_gPe0jT#4+?m[`>/)cb!53fCu2r4$jCV,mL0gtPu+W/1W2@fCK6J\M\Co-l00;j[K$;GCY8g9GR?CLbu#$SGq7G^ZaQLilIj):h20
 -%Lnq,m[Lj,gQXeX.8/1h'J.Z75%j(\q!C9Pcg2Mo;?Z,@Semf(j/2JE"-P;7CB!1[H]Yc8N/lN:J3RGVeQ\9qNGpa[o[N%X[FGG'6'&%p&Tk>q"o17qh7d,I!nu;,<=DeKF\7bpj#b->F/C9FX!<rEmr[uP-/t+]SNuu<Q>0C7fg6m.oPp`qfjWWhi)rg7XiE`04.p;D\[VtkI]70ggW+=H~>
 endstream
 endobj
 80 0 obj
@@ -488,10 +488,10 @@
 >>
 endobj
 83 0 obj
-<< /Length 2048 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2060 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GatU5gMYb*&:O:S#fT!75Vj0)l;f#<]qt*K]'6Zkdq5kHD9>m09<'Ufo(P5O/86M2[Za/,<0YJ7n][CEo4Bn+5F_S>0Ooh:5"p>;9Z(iir%7:3q9$-.i5.3hC!7rS:#;CG?jRBTp@Q?_(rm/nE+85ORJ=[YAtdJc0nh@:(k4b'b$5,i8?*-[E`jt>UfEg_-%qD>Qc8Wih`j>P@9i?9Rce8958T_m7,\7D\<d(9.G+N+08lor=c`l"ReO"[UjimNa#H\IbVU:fqo>*&54Hhf6+"?`%[$F2cO-DG(pRCWiEV[1.?fkt5:$V(O=Wo!D1f?]E%lZciu6-V2G&&.oYG.PEP_ni]n"`5j7blp<SWYM"F1lM;4:$bp"MGSLm*&Hfcj.V5u,WUd_'rf@dmAeV&m\3p2(ALhjBkp.gWFgZ'MU(Q>)f(-HL->+HGURLO?V2@IPTljAKc/Ral?E?6&SW,Mr-!&ADg4O*\V_6bR62/&:ej`la?hdsAE;M?3s.o3@.$U5gN+e<AZf!ZdLN!t&mm*>?*:nnPDh+iWUk814VI/<1K3Xg9/>RB<5ni"0$)a6@Im,LEj_0V?3EfZ7?es3q]M#G&2(CC:rKek=M7,%]q[4NVdk*+L'[pQA4IKRk"52_RbG&PmW:1fcE%7du/P>i#^T/=*If@SLfpCYFLL0!eehs6nqd_oPp!prBQ[N!%(^^q:`KN-SfN"lm>59HD,5a)!^hhesTD^Uq2Xo'aWRcgRe'.%.5BcnfS-:&bgTIQ5S;RGLWNC'm=mX?`2"G;n/>`^HpLo?Qq;g974R2m$GnH2(@RGSfJ\GsNc4,&[WBgJ9-Omba\9Z]]u[!HVF9LoO.3744;ndo%Luh1s=/7:VcK$`pf#>W#[T=B/^`X2]7l(5R.'<Hc)Ih[(2bUY)iemWS@q3la8op8\[O"DUgQ#j<c&24R`V>N#'n.dC&gW58CJHPLO,K<W.47Q'DJ50a8s_b>,NIVjCL0-Ga
 3[tE<1]Q>cVM,W!W]6n;Pb+SN4>Vk4o)^DafQl[rjXc5*&0=qtEd0dm@YaD1<,*oSV`?en/29QUZLnTu[:GlmRKk7P:^Ce)<.ur^!nCred!,L(fmWd[D>a6/eUk6tm6Jc?pJ5%UE@?Fa1[S^3C7jUX(iC%k",6`91jA@UlV7)Sl4GLgEB4%K7eG7"$+0c%6$[f>EY0eHo#&q.lG\Ke^d>!]IVVu17>)o(f\!G>E:!'V>:^d#SZU;2`o5o>VcTrPu`Za5IVaR%]#?3sU<lDr]5Xu';Z%,&kBDN0IK4K*rRdT6[cq-F8;qj`\9K,GuX.>&gTm&e*(1PC`I259;0Joam;3=_fN#oioXKDmFVHosrV(id#N-hSo@i@F!fAd;%id.5tnseYK8`Xr'.kEg@NuFu('fUID3a^%L)9lcDV+-a%SG"3'L_I+84AdGL;&h`fX=BI#PZ$%5T9hB`RkA,-MX!juW1YS*0.g/t0RoYulfc9PJYJVP51]s2/K0k07ugRh92\9MWX";+'i)QJ&V9>HeT3D",5Nk.:bKn(.k*-o?WDa[`u:X)+,:6"j1Ke4Qq+?#Z96hha7p%GC(bfq72s9^e.^8o9^;%R`iAlLRj3X\-n:I?lYqIWIX-djMfaSA`B^O,H<01Fl)EW`\.sF\gF"if0(c9[ZDrt_V`<>/>?.hp9!6KtW:$^BjuBNJh\iq"m4$WNNdP"TID=27LYFs6h%%#Z6-n!jmZ,sd]aFY/(CQbD(l.Ng_=@&_IEB/hI:(p?LGHjLj33&>r+>`YGK<GY*%^JNlp[=6An&RWVOctG1,7.YTBS&6]Rfd_V]TO(@,$IMqJt?oWB=r:&SNo1JHPK&-[9+5)5e1C-Ak";42ag2\D_uune]])1%^5[Tl,i!LE"RSoc67_T!<#a`9Ks1+!>(q[qbtt/V'3h,M"!`p"KJMUnZ-^k-jKSiT:K:r7-DP2?M&[49Pt'NMs=#p5heFofg<s\).1%>l#
 &lf'Ps4H>NkipQm-'pfeZ&]>H6XDf3u1Br^Jq%a1:Jh$j"g$Sn$%bdVipmK<2*@mFI2~>
+GatU5gMYb*&:Ml+#fT!75Vj!$l;f#<]qssGZH9Q>dq5kH*QhD59<'Uao(P5O/86Mr[aR[l<0YJ7*mP`\mqtobhOaX-@FbM[I6%[OYV"2mn@*Akk>Tt=J.'[QV):@1lf?m<"c`RKAtNA=(?>2K2EnB)Mer<"<k$H;i7YuY?!2ZlXQi\Q/'+.oPk)PV9?<U6BPN>:RGM$.It#"Un]EoS)`9;7I!i((3D\W^no6,!5uoYZ_+#2C.>t-`lF\*D-/&&5NK7e:&Xdo,;>-&nqtn;j-Nqioei?.LD`k(VVTN;[`kn.Ff2?48"[=7=7$QLHVEI=],@PB_fnF?!Vb<3<KH5ZfGis_f*(BsIa2`+`N14o/haD%He4H6'@eKUTWecj_kh/)Em\>r4>NKGpg0jDa6)F"hgC7F"DV1AGQOAV,BYK_8N:-;MJ5oQV&g0n\n:uD&BOUB_WoUkEf">\RgqDG,fgWOmp`MoN@ik;pDaM-PV(]UoK?hW_NG50A,t3B:]ih>QC#6jm"R;?/<<=2kA-Z)fpj+h$^#dKaj"\O9.`s.BM]tmX;6.#In@;gOe\iW:-;F*>Bh)Ds`S$U"IYu<^-.dG<6XLr?kT&BcY409n]u2&]fs7qBT&_sFNj4Y/7nG&VJq6"J-83PXK;\$HSuOlA7du#L>WtWX,*d'p@VtUfDnD;E5'),.rpSkdb:4<oq;[f;ee[:J^k*0YN!8-Y"ll;qC`UMUa5*u%I(rt$rG[15oC(f6e]5"!P+=1OcnfQX9`H0AIX'[6RGLY$m2A?T/O5_MG;i)9A"qM6q^r/_g/!n@P;]RH4ah3THq;EFYTOl8,4>\Xl)0]I2fDOB5tN8BJ9egR6rbDPU:m&jo=`?Z\kcCk74(`["&@`q::m\#>ZG..X%^*P#=P1r[5oD+Dbh67T\+>$*A[OUT4&gua&Q=bJXR8S!CJ4tLVkTH#CLtk78$X:)VgrJ<tU3F#R:FWW'Mg)Goe(=ZYcK8f(@?
 r_"nL-#1**Rl!+3%qlF_B]VTUj<;ic@)'?qSTf3<?!9X$h;3peGYeo-t_,psQo@-4IP+GMj!sYN'Nj(fCQ#&FFd4P[YA6\s?G3sGm-PR-c'9<0[d9>rAi4E6Z(mUnL:jsQ0M_mau93PGl[]kN4DlT?DU\&LL]3^\Uq[f#a1eX[28N6agAtu]9;*+"/BpqQY!W!"mChf=,#_2q<gCR[`#nfl*#\:OC$sLh/\Sc>rik:'rW/Z/MfjVtI/:TXpEtCj+30Yq(9#Tt*6j:MS6X8sXZu`I=#$g1F;Bi#_q?=MS!4^8)nmTB\T?l$<8Xe)GkdfE=86:,].*H(9q35O"B[um8<HHg#dtekTVrkIf<1".`;cbS2B+P8uWd)"3*@f[\RNV+=VC#.8h=66^nNa>oIaF[)$q>!KaR-56*H#HNMWQ\0<hmh':A]lq`edhYSg]eX-lS-nM[$"h[8ch,k9Z,F[SJ@l7J/CsW1mLJ?<X;qiVqL@CX\;>p08I`\uFXE?*MhU5mssV=N.Nk%>@aR?qXC+&,\I#82m*Ep<jZ&B,Sa1?7-8Hej]D@8MK)T,P:A5H\&Q9Dgs(W`iGW(9NK:jrlD./9Km4=`j$Hlg[Wlh)X_!,?%'K4M,O$q.[1r4i!';]qA>:Vq$N1?OkKtZD5lL2)b\*JE%CcA[nl9I37>;0b,RUnmUMAS93&N;._.aDP*T/]c"YlShjLuMmAZEIRXA:Jq0o(J%X5s>F?O%Y'@&BDmWPX`H56-<0,?P=0b2+?Jf!E$qj;_ap:_[5%qU\#`gHkZq9ADQk`M873&oW[a@2LkAn&XYVOctH1,71ZTBS(LJr02RV]Y'2i4@ZJh<^:I[E^fp"gg$3E)O@DSiU:,j0XK<)b%Nl#K3-<E%:pnj"I,/@i.sZ6N%Z=*k,I)*>q(-T!dc9`7duPDBWNmG?Y'd4b/o#,PIeG&,Q>[UnTIek4\"SiT:N7r7-D0/cs5(!X&gBSZ):.nPginjX.
 o:PhH6_E>_9&>CRW0bA0%]]=An!a'\GJ?>m0s]t)3'/5lX<fe2SOF>qk9Y/j^GZ@'IJpDCF?!-I=1WW~>
 endstream
 endobj
 84 0 obj
@@ -550,10 +550,10 @@
 >>
 endobj
 91 0 obj
-<< /Length 2193 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2195 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau0DD/\/e&H;*)+nSD@@,XN=4i8t\=d*F4g9'mA%.c[0&oA;E7#dAhAAeED:2eNWOjXr]:t-(knTaf`F)QN>?G0RHr`i<9&-&h6O\KZ8pO2gY^#o.7F"-Xld*febY'sNe?*CuV$nU\ZGO+)-DU7#*O':@Bf-(`;eiL-d5Of%+Vq)`$-(Xt,NoM<\j7Ds==I0(0i/(@N\A"rLi0hg`j&UlPkW0e%*'`bkX>JN>j&RV/EM7QRefWK>a,))n,,#fqQ>GJI-I4TJ1/C:]i$1_n.ULttht9<Jn77c:OZO]N#/iIYoIS-G3)'SCOLS0?.I^bI$"VJ:WopY2("+TK,!fBR&@T239ug8-N^B4c%*q.XjFN@9WFPJK\?W.jNd:K*GkmMtZ9#*uOWr=d?<01L760NG0CfAf5f%abes/?bX$Wl#k1R7a2EhHS#I3Ma[7'G+65uLK\?<u"TF:u:??$+3>.EN/V'claTT>c</3"gBBE2[OHaog`\jU!&)l?Mlj6")Z,N`NZONiK]^,UD*\pKAigE.%5qng8P4pK"LfBd#t9'h-L1BP0Nj2H'*HEKo.98D/BC^67ZM-eN58a(Jk4`?Ek(h%F11Z1Gp1KJcM'<IeA&MS9qMJSl8J'"E=*3oTb=ePj4f\W,B*M1B+#(Yo.X;/aa<GR>@'XHJ$p0kh+33>h]hi#Rrj+A%i_IO8@VIA_Q0K'"H',^l0TT\mDOcX\$JMqn]h@_m?pSknV,jOfGGHguKdDBsh*b,1>AHjLkNg?r97<Ld[]Xuf*"5m^>nV/b/N`"N$]+V[$]FqQRD`hhiYMq;r,C6n2I"-Eo'2+ON5+<9u?JmZk1(9<(*VeE?^oXags/A%RVHC(2BaJ$R%p80-C?,(J/^KEpbKGaZA0,k8`V0N.$ZPe@k4=U%VB'2p5l"e@mr7*TGd#L7]mQ's6\bE6-OoZeg.kYlObcDk[oaNh0[F<\h?PZ*!TmAdk7'%7oXs;U/b["YN>8;
 >\AqEgA]RR'laThehtMMs].=phSUE]OS+e!lI>r@^pTglZ&=R3_bGGCaQ+gN0B'LrPo:*\bk"6kEZOG24kM6L4U/CD6VRnmM/#i)\>Q\j4?sn>I9`jS_XSEgNNb.Ig[J].,.r3[VJ5SW<asM8#ZKXf2RQYQlp.h:R)uH03l>8pNq_*L_+'PRK.\6*e5d@oa.pBF><4I>-:t2s9X*$!PVr(1Qm::u)ELg`QGO+2lV(Y_QQB,+k:u-\Eis!+aV>#WZOM_4c$6PCf$jE#'60qjT7)U?gV(V#r]7=WLZ+5,/X4)-2nm:E:74KetS\SFa=4d7]`:L8t(FGT-m.YYRFnP'4LtS<Nj6>Y*E*PlLE1Wnu[)BLn9"j56AtJ$N`"!lW(PJIFbF$nK3r$"Z\#G<V>2:WqN%;,Ae(WKbTV2bce_<".oe5*X#K4aC9dGas[?sjl<PWWkk^s*A%"q='2N`t#\l:UAJOPMWK:>)_6Kq+8UUo>sqnXFj%U'mrEIIfEh0gi3`]:B<B/"#/6^7R5I3iXdA-!qS&8[oK&.GZa)e_naibhKr*/8f]BJGh*bBsNNmKNU]=c,*W$gi4s^/pTI=Rr:T3NX\sc!;g0`q6qZ$W>0eI`&g'bIu,>3?GARI[4G",S>0R=ism9V4_:jJR,a!5U1Eo6e?"rbZcb?/e:Yb+tRcP@;',7Ya:;B1^XMIJXtLR@L9b_7K"KM-,Kr6g51?G2D*/VdpC[=N92_LFl?d0#qjLGG$p)ZO#nedR*Z5BUNP$7hk+eLd@g@b"f^D@<'B9@-U4"r+8VhS_:M-$]&(\@DiAKi6Gf+^;JC<[aR/bXY_0^omb6(-QI62,VMd_VmOI#ESopSV&g`AW3!^Q6j.;9oe8pFa#Q:hDl?q!fR""on`aO2%UTXtN#e&].g4I(skpt5]AS+lm"(/AfB!qe5h<fXgCH7db(Cb^<\MS%RrB,2B[I!5(!-Z&0[^<'HK`:0H4Pm!83oXb?RsE
 qZcZ@3ub5:'P`n?e`cm`Ha>X'E0i*0$m$"_M+=q6/H>@n;f3-=o.)si(X?LJ&e5jJnTfF:TKdn;j&#]QI@]k&&QGQ,h\_RP^`V"N(Y5kMA_g@6n.WTTDbpFPMS.I4%^Kdn,d=W^fh"ASQ?MW<*(`G@UQ=8g(a/`*iTj1)g#]B[Hpg::1*T('aB"<Hfqd4O(a9=0H$5i7EON8XXB+P!O8~>
+Gau0DD/\/e&H;*)+m_i8@,XN=4i8t\=d*I5g9'mA%.c[0&oA;E7#dAhAAeED:2eNWOjXr]:t-(knTaf`F)QN6?G0XJr`i<9&-&h6O\KZ8pO2gY^#o.7F"-Xld*febY'sNe=g,QM$nU\ZGO+)-DU7#*O':@Bf-(`;eiL-d5Of%+Vq)`$-(V\Ia)R6?nbIKYX@n*Sn3j6b>i/Lan4`!AEN;E8FIeI#Nh>uF<gr?0EN9f(\59e9lORe0j2;QGOjK"I9/^`5P@p@`R4"^?n<"pr'eaLKms?36GVVn.a;kh7"6(8=H5:'4S>H@28DGW['_no5">]4-ealo*$L*f`OWZ4d#hrXUVW4[Q8"iXBL?G0go"[bXe?Sdpgt:0pa#ncP]R7gu=e/U!8<IXB0.WX7U7Ch4(O:ZCTO9nllUmbB<M@rLo5*2A)]sceK@k:A=sA/PTaad6>Z^#L:kf#XY;h,*/_oiSdLuokcppoY(7Yq\1k7Bc4krm@?)"S$%9"^qEV!Oh&Tb6=aQC???^s5Ph*"5pm15&+I:;+8*s6#7CN_HJ-$DS7)1c(bnR=M%4kD"(V*jT1[KF^>7'Ge+,]p`FT%?LfN3KhT)/p[s)6:E7$!,C1#ai.s75iK-^LU1Y%bZBBXO)J*Ci<(2%aSZP"$grRedCHlW\m.0$JB8Mq_6u&SCT!jmmZ<tnNi$o@Bp/[e$/I9(n6)5M$sE(:e>s384^>M5T;miD[@H[qpaL;&p<r_4';K6B]1sDO"gX014tbp8'>#XU,nnhhHfK&!H>?ZGf,mRa!g?#?&;g"?AVh:2]alE=)jXt&\VF)hYhD=K/6/aOZo6MAR=:Wekup]i@R%F^q_M+-ip>/9r;=&[VH1S@Lll5%;t2/@%*Z+R?s6RKulID4ppcclkeUI"jlEqMbH4Rpja!o?JaYX5B1&*3I:KLZ&9%^9ii7qj1Lq_Qm33"/8qdKOCFeS!PK"KPQT.1%+6)"OQ^u5j'1l&V'7E
 ^WH",qlH53V^t3S&R`=gl=Edn-`]F!EX>fT4`qgV>,jo5H))3sB"d_pm4t:um&C&^/N98`Kg!5jPpgtD:>L'hqqF.1=@8(lf*`l8$kI:fOi5*5&/=Qdl$!?dXJ/uh]HY`H#O&so4k5_?/&CaG>2KdK,#W8+.#je*IlSnN!&JX#VG4o8EGs8T1]i7&Q'nL+Bd?h4X^F=0uY+_e4G?4$5Ceha9@b]!7?/dokaR7Ws%8(!']IY/.R%_(nl,F*WM+[4C0-H#VdT&IT'cAJT\UrJE:l1!"ge(l#d<>WA?=J!GW)on[k2a4uDi.Lp**Rp$\?E(,d>6ssHS176'A;j?XD@.RbnRKEZ,b>:!T:JHK],$d5A>sqhirH+s3*UGM23091+ro!d?cSk0m2ts;/]ANO0lJs1)X/$`MU&LEBur.BWS[[T'Kan'b?+a_ja1::MV\]<3(Q2f['m7";hE4VJRLr"a$_]?36$%E<\@O'SXu#5Y#t3dl)kHe/YhVQK.i<_qY&j'TI0GH-]mHE/,k?Hhp@a^rZXIr#s]RFWhT*6T3;Z2T4FA%QFmkk0RThZ'Y7p]\NtnkHbk>3#:6>'Rd/7UU0#SKlU?oL75_REfKU9.i+qHMuABU\X%T1j)R7gs84RiBLj?4%)\=91e^3S5SLbIdsspQP_ZEhRMiVC3*`&D(dqKeL;VNZ-t+csR:m9GQifFXDo<99du*unhF`G5*ju^_4`+Ak$)YD?bo"]0^?`YT!"rP,60uAs$QjRj826eS=@_\S;nbKP,bm[";$p49bGfg-;bqiuUH\<CO-?c*S9;N7`SR!8C4q6p5c)oqA<GX:04>*:$/Dq`M_1bC.SU_30&0I:Ys%D6>pN#T6#[At(re_0-)p&=h[]LT1Xu5pD))"W<K+ifCe%hE9Fu$XfsCq_.]-R@7P-Ec\fUX8I5/&K8Et*]j'U!O+Ll+;1WcIjF6WFm40E.%D[*H3/[V?Sh'M\`LZ%tl:"9h7e(i
 .La*aIOk#gL?TJ6r.b^rS-_r:G(M#uRdqFrArVW2\.1uC&u@`G+Rn(h@V,k-+5fE>B%E5HL3!hEZ_5t-;3/a+e(TYL)2^)+eKPTd/a('1/%"ji9j+\OtZ7)!;"01f;RN@n3#!6P)aqB0IO%oaO0N[n_r_78bXL2QOmm23n:NS7B&Y0kOkWq1m&Xs<.4a,Fo`hHcj5N!B,R,\.&H?[%m=&c~>
 endstream
 endobj
 92 0 obj
@@ -1064,139 +1064,139 @@
 xref
 0 134
 0000000000 65535 f 
-0000047287 00000 n 
-0000047437 00000 n 
-0000047529 00000 n 
+0000047307 00000 n 
+0000047457 00000 n 
+0000047549 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
 0000002128 00000 n 
 0000002248 00000 n 
 0000002420 00000 n 
-0000047681 00000 n 
+0000047701 00000 n 
 0000002555 00000 n 
-0000047744 00000 n 
+0000047764 00000 n 
 0000002692 00000 n 
-0000047810 00000 n 
+0000047830 00000 n 
 0000002829 00000 n 
-0000047875 00000 n 
+0000047895 00000 n 
 0000002966 00000 n 
-0000047941 00000 n 
+0000047961 00000 n 
 0000003103 00000 n 
-0000048007 00000 n 
+0000048027 00000 n 
 0000003239 00000 n 
-0000048071 00000 n 
+0000048091 00000 n 
 0000003375 00000 n 
-0000048137 00000 n 
+0000048157 00000 n 
 0000003512 00000 n 
-0000048202 00000 n 
+0000048222 00000 n 
 0000003648 00000 n 
-0000048266 00000 n 
+0000048286 00000 n 
 0000003784 00000 n 
-0000048331 00000 n 
+0000048351 00000 n 
 0000003919 00000 n 
-0000048397 00000 n 
+0000048417 00000 n 
 0000004058 00000 n 
 0000004193 00000 n 
-0000048461 00000 n 
+0000048481 00000 n 
 0000004330 00000 n 
-0000048526 00000 n 
+0000048546 00000 n 
 0000004467 00000 n 
-0000048591 00000 n 
+0000048611 00000 n 
 0000004604 00000 n 
-0000048657 00000 n 
+0000048677 00000 n 
 0000004743 00000 n 
-0000048721 00000 n 
+0000048741 00000 n 
 0000004879 00000 n 
-0000048787 00000 n 
+0000048807 00000 n 
 0000005015 00000 n 
-0000048853 00000 n 
+0000048873 00000 n 
 0000005154 00000 n 
 0000005288 00000 n 
-0000048919 00000 n 
+0000048939 00000 n 
 0000005424 00000 n 
 0000006309 00000 n 
 0000006432 00000 n 
 0000006501 00000 n 
-0000048984 00000 n 
+0000049004 00000 n 
 0000006633 00000 n 
-0000049050 00000 n 
+0000049070 00000 n 
 0000006765 00000 n 
-0000049116 00000 n 
+0000049136 00000 n 
 0000006898 00000 n 
-0000049182 00000 n 
+0000049202 00000 n 
 0000007031 00000 n 
-0000049246 00000 n 
+0000049266 00000 n 
 0000007164 00000 n 
-0000049312 00000 n 
+0000049332 00000 n 
 0000007296 00000 n 
-0000049378 00000 n 
+0000049398 00000 n 
 0000007428 00000 n 
-0000009587 00000 n 
-0000009695 00000 n 
-0000011811 00000 n 
-0000011919 00000 n 
-0000014109 00000 n 
-0000014217 00000 n 
-0000015946 00000 n 
-0000016054 00000 n 
-0000018808 00000 n 
-0000018931 00000 n 
-0000018958 00000 n 
-0000019170 00000 n 
-0000021458 00000 n 
-0000021581 00000 n 
-0000021608 00000 n 
-0000021821 00000 n 
-0000023962 00000 n 
-0000024070 00000 n 
-0000025959 00000 n 
-0000026082 00000 n 
-0000026109 00000 n 
-0000026360 00000 n 
-0000028499 00000 n 
-0000028607 00000 n 
-0000030893 00000 n 
-0000031016 00000 n 
-0000031043 00000 n 
-0000031225 00000 n 
-0000033134 00000 n 
-0000033242 00000 n 
-0000034912 00000 n 
-0000049444 00000 n 
-0000035020 00000 n 
-0000035208 00000 n 
-0000035452 00000 n 
-0000035761 00000 n 
-0000036071 00000 n 
-0000036270 00000 n 
-0000036584 00000 n 
-0000036962 00000 n 
-0000037401 00000 n 
-0000037642 00000 n 
-0000037905 00000 n 
-0000038331 00000 n 
-0000039165 00000 n 
-0000039705 00000 n 
-0000040087 00000 n 
-0000040378 00000 n 
-0000040958 00000 n 
-0000041285 00000 n 
-0000041585 00000 n 
-0000042436 00000 n 
-0000043017 00000 n 
-0000044062 00000 n 
-0000044439 00000 n 
-0000044838 00000 n 
-0000045301 00000 n 
-0000045688 00000 n 
-0000046111 00000 n 
-0000046507 00000 n 
-0000046621 00000 n 
-0000046732 00000 n 
-0000046844 00000 n 
-0000046953 00000 n 
-0000047060 00000 n 
-0000047177 00000 n 
+0000009591 00000 n 
+0000009699 00000 n 
+0000011817 00000 n 
+0000011925 00000 n 
+0000014119 00000 n 
+0000014227 00000 n 
+0000015956 00000 n 
+0000016064 00000 n 
+0000018812 00000 n 
+0000018935 00000 n 
+0000018962 00000 n 
+0000019174 00000 n 
+0000021464 00000 n 
+0000021587 00000 n 
+0000021614 00000 n 
+0000021827 00000 n 
+0000023980 00000 n 
+0000024088 00000 n 
+0000025977 00000 n 
+0000026100 00000 n 
+0000026127 00000 n 
+0000026378 00000 n 
+0000028517 00000 n 
+0000028625 00000 n 
+0000030913 00000 n 
+0000031036 00000 n 
+0000031063 00000 n 
+0000031245 00000 n 
+0000033154 00000 n 
+0000033262 00000 n 
+0000034932 00000 n 
+0000049464 00000 n 
+0000035040 00000 n 
+0000035228 00000 n 
+0000035472 00000 n 
+0000035781 00000 n 
+0000036091 00000 n 
+0000036290 00000 n 
+0000036604 00000 n 
+0000036982 00000 n 
+0000037421 00000 n 
+0000037662 00000 n 
+0000037925 00000 n 
+0000038351 00000 n 
+0000039185 00000 n 
+0000039725 00000 n 
+0000040107 00000 n 
+0000040398 00000 n 
+0000040978 00000 n 
+0000041305 00000 n 
+0000041605 00000 n 
+0000042456 00000 n 
+0000043037 00000 n 
+0000044082 00000 n 
+0000044459 00000 n 
+0000044858 00000 n 
+0000045321 00000 n 
+0000045708 00000 n 
+0000046131 00000 n 
+0000046527 00000 n 
+0000046641 00000 n 
+0000046752 00000 n 
+0000046864 00000 n 
+0000046973 00000 n 
+0000047080 00000 n 
+0000047197 00000 n 
 trailer
 <<
 /Size 134
@@ -1204,5 +1204,5 @@
 /Info 4 0 R
 >>
 startxref
-49497
+49517
 %%EOF

Modified: hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml?rev=674838&r1=674837&r2=674838&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml (original)
+++ hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml Tue Jul  8 07:17:19 2008
@@ -20,7 +20,7 @@
 <document>
   
   <header>
-    <title>Hadoop Map-Reduce Tutorial</title>
+    <title>Hadoop Map/Reduce Tutorial</title>
   </header>
   
   <body>
@@ -29,7 +29,7 @@
       <title>Purpose</title>
       
       <p>This document comprehensively describes all user-facing facets of the 
-      Hadoop Map-Reduce framework and serves as a tutorial.
+      Hadoop Map/Reduce framework and serves as a tutorial.
       </p>
     </section>
     
@@ -52,12 +52,12 @@
     <section>
       <title>Overview</title>
       
-      <p>Hadoop Map-Reduce is a software framework for easily writing 
+      <p>Hadoop Map/Reduce is a software framework for easily writing 
       applications which process vast amounts of data (multi-terabyte data-sets) 
       in-parallel on large clusters (thousands of nodes) of commodity 
       hardware in a reliable, fault-tolerant manner.</p>
       
-      <p>A Map-Reduce <em>job</em> usually splits the input data-set into 
+      <p>A Map/Reduce <em>job</em> usually splits the input data-set into 
       independent chunks which are processed by the <em>map tasks</em> in a
       completely parallel manner. The framework sorts the outputs of the maps, 
       which are then input to the <em>reduce tasks</em>. Typically both the 
@@ -66,13 +66,13 @@
       tasks.</p>
       
       <p>Typically the compute nodes and the storage nodes are the same, that is, 
-      the Map-Reduce framework and the <a href="hdfs_design.html">Distributed 
+      the Map/Reduce framework and the <a href="hdfs_design.html">Distributed 
       FileSystem</a> are running on the same set of nodes. This configuration
       allows the framework to effectively schedule tasks on the nodes where data 
       is already present, resulting in very high aggregate bandwidth across the 
       cluster.</p>
       
-      <p>The Map-Reduce framework consists of a single master 
+      <p>The Map/Reduce framework consists of a single master 
       <code>JobTracker</code> and one slave <code>TaskTracker</code> per 
       cluster-node. The master is responsible for scheduling the jobs' component 
       tasks on the slaves, monitoring them and re-executing the failed tasks. The 
@@ -89,7 +89,7 @@
       information to the job-client.</p>
       
       <p>Although the Hadoop framework is implemented in Java<sup>TM</sup>, 
-      Map-Reduce applications need not be written in Java.</p>
+      Map/Reduce applications need not be written in Java.</p>
       <ul>
         <li>
           <a href="ext:api/org/apache/hadoop/streaming/package-summary">
@@ -100,7 +100,7 @@
         <li>
           <a href="ext:api/org/apache/hadoop/mapred/pipes/package-summary">
           Hadoop Pipes</a> is a <a href="http://www.swig.org/">SWIG</a>-
-          compatible <em>C++ API</em> to implement Map-Reduce applications (non 
+          compatible <em>C++ API</em> to implement Map/Reduce applications (non 
           JNI<sup>TM</sup> based).
         </li>
       </ul>
@@ -109,7 +109,7 @@
     <section>
       <title>Inputs and Outputs</title>
 
-      <p>The Map-Reduce framework operates exclusively on 
+      <p>The Map/Reduce framework operates exclusively on 
       <code>&lt;key, value&gt;</code> pairs, that is, the framework views the 
       input to the job as a set of <code>&lt;key, value&gt;</code> pairs and 
       produces a set of <code>&lt;key, value&gt;</code> pairs as the output of 
@@ -123,7 +123,7 @@
       WritableComparable</a> interface to facilitate sorting by the framework.
       </p>
 
-      <p>Input and Output types of a Map-Reduce job:</p>
+      <p>Input and Output types of a Map/Reduce job:</p>
       <p>
         (input) <code>&lt;k1, v1&gt;</code> 
         -&gt; 
@@ -144,7 +144,7 @@
     <section>
       <title>Example: WordCount v1.0</title>
       
-      <p>Before we jump into the details, lets walk through an example Map-Reduce 
+      <p>Before we jump into the details, lets walk through an example Map/Reduce 
       application to get a flavour for how they work.</p>
       
       <p><code>WordCount</code> is a simple application that counts the number of
@@ -683,10 +683,10 @@
     </section>
     
     <section>
-      <title>Map-Reduce - User Interfaces</title>
+      <title>Map/Reduce - User Interfaces</title>
       
       <p>This section provides a reasonable amount of detail on every user-facing 
-      aspect of the Map-Reduce framwork. This should help users implement, 
+      aspect of the Map/Reduce framwork. This should help users implement, 
       configure and tune their jobs in a fine-grained manner. However, please 
       note that the javadoc for each class/interface remains the most 
       comprehensive documentation available; this is only meant to be a tutorial.
@@ -724,7 +724,7 @@
           to be of the same type as the input records. A given input pair may 
           map to zero or many output pairs.</p> 
  
-          <p>The Hadoop Map-Reduce framework spawns one map task for each 
+          <p>The Hadoop Map/Reduce framework spawns one map task for each 
           <code>InputSplit</code> generated by the <code>InputFormat</code> for 
           the job.</p>
           
@@ -935,7 +935,7 @@
           <title>Reporter</title>
         
           <p><a href="ext:api/org/apache/hadoop/mapred/reporter">
-          Reporter</a> is a facility for Map-Reduce applications to report 
+          Reporter</a> is a facility for Map/Reduce applications to report 
           progress, set application-level status messages and update 
           <code>Counters</code>.</p>
  
@@ -958,12 +958,12 @@
         
           <p><a href="ext:api/org/apache/hadoop/mapred/outputcollector">
           OutputCollector</a> is a generalization of the facility provided by
-          the Map-Reduce framework to collect data output by the 
+          the Map/Reduce framework to collect data output by the 
           <code>Mapper</code> or the <code>Reducer</code> (either the 
           intermediate outputs or the output of the job).</p>
         </section>
       
-        <p>Hadoop Map-Reduce comes bundled with a 
+        <p>Hadoop Map/Reduce comes bundled with a 
         <a href="ext:api/org/apache/hadoop/mapred/lib/package-summary">
         library</a> of generally useful mappers, reducers, and partitioners.</p>
       </section>
@@ -972,10 +972,10 @@
         <title>Job Configuration</title>
         
         <p><a href="ext:api/org/apache/hadoop/mapred/jobconf">
-        JobConf</a> represents a Map-Reduce job configuration.</p>
+        JobConf</a> represents a Map/Reduce job configuration.</p>
  
         <p><code>JobConf</code> is the primary interface for a user to describe
-        a map-reduce job to the Hadoop framework for execution. The framework 
+        a Map/Reduce job to the Hadoop framework for execution. The framework 
         tries to faithfully execute the job as described by <code>JobConf</code>, 
         however:</p> 
         <ul>
@@ -1204,7 +1204,7 @@
         with the <code>JobTracker</code>.</p>
  
         <p><code>JobClient</code> provides facilities to submit jobs, track their 
-        progress, access component-tasks' reports/logs, get the Map-Reduce 
+        progress, access component-tasks' reports and logs, get the Map/Reduce 
         cluster's status information and so on.</p>
  
         <p>The job submission process involves:</p>
@@ -1216,7 +1216,7 @@
             <code>DistributedCache</code> of the job, if necessary.
           </li>
           <li>
-            Copying the job's jar and configuration to the map-reduce system 
+            Copying the job's jar and configuration to the Map/Reduce system 
             directory on the <code>FileSystem</code>.
           </li>
           <li>
@@ -1253,8 +1253,8 @@
         <section>
           <title>Job Control</title>
  
-          <p>Users may need to chain map-reduce jobs to accomplish complex
-          tasks which cannot be done via a single map-reduce job. This is fairly
+          <p>Users may need to chain Map/Reduce jobs to accomplish complex
+          tasks which cannot be done via a single Map/Reduce job. This is fairly
           easy since the output of the job typically goes to distributed 
           file-system, and the output, in turn, can be used as the input for the 
           next job.</p>
@@ -1288,10 +1288,10 @@
         <title>Job Input</title>
         
         <p><a href="ext:api/org/apache/hadoop/mapred/inputformat">
-        InputFormat</a> describes the input-specification for a Map-Reduce job.
+        InputFormat</a> describes the input-specification for a Map/Reduce job.
         </p> 
  
-        <p>The Map-Reduce framework relies on the <code>InputFormat</code> of 
+        <p>The Map/Reduce framework relies on the <code>InputFormat</code> of 
         the job to:</p>
         <ol>
           <li>Validate the input-specification of the job.</li>
@@ -1370,10 +1370,10 @@
         <title>Job Output</title>
         
         <p><a href="ext:api/org/apache/hadoop/mapred/outputformat">
-        OutputFormat</a> describes the output-specification for a Map-Reduce 
+        OutputFormat</a> describes the output-specification for a Map/Reduce 
         job.</p>
 
-        <p>The Map-Reduce framework relies on the <code>OutputFormat</code> of 
+        <p>The Map/Reduce framework relies on the <code>OutputFormat</code> of 
         the job to:</p>
         <ol>
           <li>
@@ -1404,7 +1404,7 @@
           (using the attemptid, say <code>attempt_200709221812_0001_m_000000_0</code>), 
           not just per task.</p> 
  
-          <p>To avoid these issues the Map-Reduce framework maintains a special 
+          <p>To avoid these issues the Map/Reduce framework maintains a special 
           <code>${mapred.output.dir}/_temporary/_${taskid}</code> sub-directory
           accessible via <code>${mapred.work.output.dir}</code>
           for each task-attempt on the <code>FileSystem</code> where the output
@@ -1426,7 +1426,7 @@
           <p>Note: The value of <code>${mapred.work.output.dir}</code> during 
           execution of a particular task-attempt is actually 
           <code>${mapred.output.dir}/_temporary/_{$taskid}</code>, and this value is 
-          set by the map-reduce framework. So, just create any side-files in the 
+          set by the Map/Reduce framework. So, just create any side-files in the 
           path  returned by
           <a href="ext:api/org/apache/hadoop/mapred/fileoutputformat/getworkoutputpath">
           FileOutputFormat.getWorkOutputPath() </a>from map/reduce 
@@ -1456,7 +1456,7 @@
           <title>Counters</title>
           
           <p><code>Counters</code> represent global counters, defined either by 
-          the Map-Reduce framework or applications. Each <code>Counter</code> can 
+          the Map/Reduce framework or applications. Each <code>Counter</code> can 
           be of any <code>Enum</code> type. Counters of a particular 
           <code>Enum</code> are bunched into groups of type 
           <code>Counters.Group</code>.</p>
@@ -1480,7 +1480,7 @@
           files efficiently.</p>
  
           <p><code>DistributedCache</code> is a facility provided by the 
-          Map-Reduce framework to cache files (text, archives, jars and so on) 
+          Map/Reduce framework to cache files (text, archives, jars and so on) 
           needed by applications.</p>
  
           <p>Applications specify the files to be cached via urls (hdfs://)
@@ -1558,7 +1558,7 @@
           interface supports the handling of generic Hadoop command-line options.
           </p>
           
-          <p><code>Tool</code> is the standard for any Map-Reduce tool or 
+          <p><code>Tool</code> is the standard for any Map/Reduce tool or 
           application. The application should delegate the handling of 
           standard command-line options to 
           <a href="ext:api/org/apache/hadoop/util/genericoptionsparser">
@@ -1591,7 +1591,7 @@
           <title>IsolationRunner</title>
           
           <p><a href="ext:api/org/apache/hadoop/mapred/isolationrunner">
-          IsolationRunner</a> is a utility to help debug Map-Reduce programs.</p>
+          IsolationRunner</a> is a utility to help debug Map/Reduce programs.</p>
           
           <p>To use the <code>IsolationRunner</code>, first set 
           <code>keep.failed.tasks.files</code> to <code>true</code> 
@@ -1703,14 +1703,14 @@
           <title>JobControl</title>
           
           <p><a href="ext:api/org/apache/hadoop/mapred/jobcontrol/package-summary">
-          JobControl</a> is a utility which encapsulates a set of Map-Reduce jobs
+          JobControl</a> is a utility which encapsulates a set of Map/Reduce jobs
           and their dependencies.</p>
         </section>
         
         <section>
           <title>Data Compression</title>
           
-          <p>Hadoop Map-Reduce provides facilities for the application-writer to
+          <p>Hadoop Map/Reduce provides facilities for the application-writer to
           specify compression for both intermediate map-outputs and the
           job-outputs i.e. output of the reduces. It also comes bundled with
           <a href="ext:api/org/apache/hadoop/io/compress/compressioncodec">
@@ -1765,7 +1765,7 @@
       <title>Example: WordCount v2.0</title>
       
       <p>Here is a more complete <code>WordCount</code> which uses many of the
-      features provided by the Map-Reduce framework we discussed so far.</p>
+      features provided by the Map/Reduce framework we discussed so far.</p>
       
       <p>This needs the HDFS to be up and running, especially for the 
       <code>DistributedCache</code>-related features. Hence it only works with a 
@@ -2717,7 +2717,7 @@
         <title>Highlights</title>
         
         <p>The second version of <code>WordCount</code> improves upon the 
-        previous one by using some features offered by the Map-Reduce framework:
+        previous one by using some features offered by the Map/Reduce framework:
         </p>
         <ul>
           <li>

Modified: hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml?rev=674838&r1=674837&r2=674838&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml (original)
+++ hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml Tue Jul  8 07:17:19 2008
@@ -31,7 +31,7 @@
 <title>Hadoop Streaming</title>
 
 <p>
-Hadoop streaming is a utility that comes with the Hadoop distribution. The utility allows you to create and run map/reduce jobs with any executable or script as the mapper and/or the reducer. For example:
+Hadoop streaming is a utility that comes with the Hadoop distribution. The utility allows you to create and run Map/Reduce jobs with any executable or script as the mapper and/or the reducer. For example:
 </p>
 <source>
 $HADOOP_HOME/bin/hadoop  jar $HADOOP_HOME/hadoop-streaming.jar \
@@ -45,7 +45,7 @@
 <section>
 <title>How Does Streaming Work </title>
 <p>
-In the above example, both the mapper and the reducer are executables that read the input from stdin (line by line) and emit the output to stdout. The utility will create a map/reduce job, submit the job to an appropriate cluster, and monitor the progress of the job until it completes.
+In the above example, both the mapper and the reducer are executables that read the input from stdin (line by line) and emit the output to stdout. The utility will create a Map/Reduce job, submit the job to an appropriate cluster, and monitor the progress of the job until it completes.
 </p><p>
   When an executable is specified for mappers, each mapper task will launch the executable as a separate process when the mapper is initialized. As the mapper task runs, it converts its inputs into lines and feed the lines to the stdin of the process. In the meantime, the mapper collects the line oriented outputs from the stdout of the process and converts each line into a key/value pair, which is collected as the output of the mapper. By default, the 
   <em>prefix of a line up to the first tab character</em> is the <strong>key</strong> and the the rest of the line (excluding the tab character) will be the <strong>value</strong>. 
@@ -54,7 +54,7 @@
 <p>
 When an executable is specified for reducers, each reducer task will launch the executable as a separate process then the reducer is initialized. As the reducer task runs, it converts its input key/values pairs into lines and feeds the lines to the stdin of the process. In the meantime, the reducer collects the line oriented outputs from the stdout of the process, converts each line into a key/value pair, which is collected as the output of the reducer. By default, the prefix of a line up to the first tab character is the key and the the rest of the line (excluding the tab character) is the value. However, this can be customized, as discussed later.
 </p><p>
-This is the basis for the communication protocol between the map/reduce framework and the streaming mapper/reducer.
+This is the basis for the communication protocol between the Map/Reduce framework and the streaming mapper/reducer.
 </p><p>
 You can supply a Java class as the mapper and/or the reducer. The above example is equivalent to:
 </p>
@@ -109,7 +109,7 @@
 <section>
 <title>Mapper-Only Jobs </title>
 <p>
-Often, you may want to process input data using a map function only. To do this, simply set mapred.reduce.tasks to zero. The map/reduce framework will not create any reducer tasks. Rather, the outputs of the mapper tasks will be the final output of the job.
+Often, you may want to process input data using a map function only. To do this, simply set mapred.reduce.tasks to zero. The Map/Reduce framework will not create any reducer tasks. Rather, the outputs of the mapper tasks will be the final output of the job.
 </p><p>
 To be backward compatible, Hadoop Streaming also supports the "-reduce NONE" option, which is equivalent to "-jobconf mapred.reduce.tasks=0".
 </p>
@@ -118,7 +118,7 @@
 <section>
 <title>Specifying Other Plugins for Jobs </title>
 <p>
-Just as with a normal map/reduce job, you can specify other plugins for a streaming job:
+Just as with a normal Map/Reduce job, you can specify other plugins for a streaming job:
 </p>
 <source>
    -inputformat JavaClassName
@@ -235,7 +235,7 @@
 <tr><th>Parameter</th><th>Optional/Required </th><th>Description </th></tr>
 <tr><td> -cluster name </td><td> Optional </td><td> Switch between local Hadoop and one or more remote clusters </td></tr>
 
-<tr><td> -dfs  host:port or local </td><td> Optional </td><td> Override the DFS configuration for the job </td></tr>
+<tr><td> -dfs  host:port or local </td><td> Optional </td><td> Override the HDFS configuration for the job </td></tr>
 <tr><td> -jt host:port or local </td><td> Optional </td><td> Override the JobTracker configuration for the job </td></tr>
 <tr><td> -additionalconfspec specfile </td><td> Optional </td><td> Specifies a set of configuration variables in an XML file like hadoop-site.xml, instead of using multiple  options of type "-jobconf name=value" </td></tr>
 
@@ -282,7 +282,7 @@
 <section>
 <title>Customizing the Way to Split Lines into Key/Value Pairs </title>
 <p>
-As noted earlier, when the map/reduce framework reads a line from the stdout of the mapper, it splits the line into a key/value pair. By default, the prefix of the line up to the first tab character is the key and the the rest of the line (excluding the tab character) is the value.
+As noted earlier, when the Map/Reduce framework reads a line from the stdout of the mapper, it splits the line into a key/value pair. By default, the prefix of the line up to the first tab character is the key and the the rest of the line (excluding the tab character) is the value.
 </p>
 <p>
 However, you can customize this default. You can specify a field separator other than the tab character (the default), and you can specify the nth (n >= 1) character rather than the first character in a line (the default) as the separator between the key and value. For example:
@@ -308,7 +308,7 @@
 <section>
 <title>A Useful Partitioner Class (secondary sort, the -partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner option) </title>
 <p>
-Hadoop has a library class, org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner, that is useful for many applications. This class allows the map/reduce framework to partition the map outputs based on prefixes of keys, not the whole keys. For example:
+Hadoop has a library class, org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner, that is useful for many applications. This class allows the Map/Reduce framework to partition the map outputs based on prefixes of keys, not the whole keys. For example:
 </p>
 <source>
 $HADOOP_HOME/bin/hadoop  jar $HADOOP_HOME/hadoop-streaming.jar \
@@ -326,7 +326,7 @@
 <p>
 Here, <em>-jobconf stream.map.output.field.separator=.</em> and <em>-jobconf stream.num.map.output.key.fields=4</em> are as explained in previous example. The two variables are used by streaming to identify the key/value pair of mapper. 
 </p><p>
-The map output keys of the above map/reduce job normally have four fields separated by ".". However, the map/reduce framework will partition the map outputs by the first two fields of the keys using the <em>-jobconf num.key.fields.for.partition=2</em> option. Here, <em>-jobconf map.output.key.field.separator=.</em> specifies the separator for the partition. This guarantees that all the key/value pairs with the same first two fields in the keys will be partitioned into the same reducer.
+The map output keys of the above Map/Reduce job normally have four fields separated by ".". However, the Map/Reduce framework will partition the map outputs by the first two fields of the keys using the <em>-jobconf num.key.fields.for.partition=2</em> option. Here, <em>-jobconf map.output.key.field.separator=.</em> specifies the separator for the partition. This guarantees that all the key/value pairs with the same first two fields in the keys will be partitioned into the same reducer.
 </p><p>
 <em>This is effectively equivalent to specifying the first two fields as the primary key and the next two fields as the secondary. The primary key is used for partitioning, and the combination of the primary and secondary keys is used for sorting.</em> A simple illustration is shown here:
 </p>
@@ -456,7 +456,7 @@
 As an example, consider the problem of zipping (compressing) a set of files across the hadoop cluster. You can achieve this using either of these methods:
 </p><ol>
 <li> Hadoop Streaming and custom mapper script:<ul>
-  <li> Generate a file containing the full DFS path of the input files. Each map task would get one file name as input.</li>
+  <li> Generate a file containing the full HDFS path of the input files. Each map task would get one file name as input.</li>
   <li> Create a mapper script which, given a filename, will get the file to local disk, gzip the file and put it back in the desired output directory</li>
 </ul></li>
 <li>The existing Hadoop Framework:<ul>



Mime
View raw message