diff options
Diffstat (limited to 'parallel/brockington97aphid.ps')
| -rwxr-xr-x | parallel/brockington97aphid.ps | 12648 |
1 files changed, 12648 insertions, 0 deletions
diff --git a/parallel/brockington97aphid.ps b/parallel/brockington97aphid.ps new file mode 100755 index 0000000..0198d77 --- /dev/null +++ b/parallel/brockington97aphid.ps @@ -0,0 +1,12648 @@ +%!PS-Adobe-2.0 +%%Creator: dvips 5.55 Copyright 1986, 1994 Radical Eye Software +%%Title: aphidacc.dvi +%%CreationDate: Thu Jun 13 23:50:30 1996 +%%Pages: 20 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%EndComments +%DVIPSCommandLine: dvips aphidacc +%DVIPSParameters: dpi=300, comments removed +%DVIPSSource: TeX output 1996.06.13:2350 +%%BeginProcSet: tex.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} +forall round exch round exch]setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} +if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage +userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 +0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} +B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ +4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ +p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{SS restore}B end +%%EndProcSet +%%BeginProcSet: special.pro +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N +/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen +false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B +/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit +div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ +/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ +10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B +/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale +true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup +length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} +N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath +clippath mark{transform{itransform moveto}}{transform{itransform lineto} +}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ +itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ +closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 +0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N +/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 +scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 +TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR +pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 +-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg +TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg +sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr +0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add +2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp +{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 +div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} +N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict +maxlength dict begin /magscale false def normalscale currentpoint TR +/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx +psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy +scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR +/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict +begin /SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial +{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath +}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ +end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} +N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ +/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX +SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X +/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad +yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end +%%EndProcSet +TeXDict begin 40258431 52099146 1000 300 300 +(/usr/maligne2/grad/brock/Writing/aphid/aphidacc.dvi) +@start /Fa 6 112 df<00FC100383300E00B01C0070380030300030700010600010E000 +10E00000E00000E00000E00000E00000E000106000107000103000203800201C00400E00 +8003830000FC0014177E961A>67 D<FC1F80300600300600300600300600300600300600 +3006003FFE00300600300600300600300600300600300600300600FC1F8011117F9014> +104 D<FF181818181818181818181818181818FF08117F900A>I<FC0F80300600300C00 +30180030200030400030800031800032C000346000382000303000301800300C00300600 +300600FC0F8011117F9015>107 D<F00F803807003802002C0200260200230200230200 +21820020C200206200206200203200201A00200E00200E00700600F8020011117F9014> +110 D<03F0000C0C00180600300300600180400080C000C0C000C0C000C0C000C0C000C0 +6001806001803003001806000C0C0003F00012117F9015>I E /Fb +1 111 df<30F8590C4E0C9C0C980C180C180C30183019303130316032601C100D7F8C15> +110 D E /Fc 49 122 df<000FF000007FFC0001F80E0003E01F0007C03F000F803F000F +803F000F801E000F800C000F8000000F8000000F8000000F800000FFFFFF00FFFFFF000F +801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F +801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F007F +F0FFE07FF0FFE01B237FA21F>12 D<3803807C07C0FE0FE0FF0FF0FF0FF07F07F03B03B0 +0300300300300700700600600600600C00C01C01C018018070070020020014117EA21D> +34 D<387CFEFEFE7C3807077C8610>46 D<00180000780001F800FFF800FFF80001F800 +01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 +01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 +7FFFE07FFFE013207C9F1C>49 D<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE +03F8FE01F87C01F83803F80003F80003F00003F00007E00007C0000F80001F00003E0000 +380000700000E01801C0180380180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FF +FFF015207D9F1C>I<00FE0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F8 +1F03F00003F00003E00007C0001F8001FE0001FF000007C00001F00001F80000FC0000FC +3C00FE7E00FEFF00FEFF00FEFF00FEFF00FC7E01FC7801F81E07F00FFFC001FE0017207E +9F1C>I<0000E00001E00003E00003E00007E0000FE0001FE0001FE00037E00077E000E7 +E001C7E00187E00307E00707E00E07E00C07E01807E03807E07007E0E007E0FFFFFEFFFF +FE0007E00007E00007E00007E00007E00007E00007E000FFFE00FFFE17207E9F1C>I<10 +00201E01E01FFFC01FFF801FFF001FFE001FF8001BC00018000018000018000018000019 +FC001FFF001E0FC01807E01803E00003F00003F00003F80003F83803F87C03F8FE03F8FE +03F8FC03F0FC03F07007E03007C01C1F800FFF0003F80015207D9F1C>I<001F8000FFE0 +03F07007C0F00F01F81F01F83E01F83E01F87E00F07C00007C0000FC0800FC7FC0FCFFE0 +FD80F0FF00F8FE007CFE007CFC007EFC007EFC007EFC007E7C007E7C007E7C007E3C007C +3E007C1E00F80F00F00783E003FFC000FF0017207E9F1C>I<6000007800007FFFFE7FFF +FE7FFFFC7FFFF87FFFF87FFFF0E00060E000C0C00180C00300C00300000600000C00001C +0000180000380000780000780000F00000F00000F00001F00001F00001F00003F00003F0 +0003F00003F00003F00003F00003F00001E00017227DA11C>I<00FE0003FFC00703E00E +00F01C00F01C00783C00783E00783F00783F80783FE0F01FF9E01FFFC00FFF8007FFC003 +FFE007FFF01E7FF83C1FFC7807FC7801FEF000FEF0003EF0001EF0001EF0001CF8001C78 +00383C00381F01F00FFFC001FF0017207E9F1C>I<000070000000007000000000F80000 +0000F800000000F800000001FC00000001FC00000003FE00000003FE00000003FE000000 +06FF000000067F0000000E7F8000000C3F8000000C3F800000183FC00000181FC0000038 +1FE00000300FE00000300FE00000600FF000006007F00000E007F80000FFFFF80000FFFF +F800018001FC00018001FC00038001FE00030000FE00030000FE000600007F000600007F +00FFE00FFFF8FFE00FFFF825227EA12A>65 D<FFFFFF8000FFFFFFE00007F001F80007F0 +00FC0007F0007E0007F0007E0007F0007F0007F0007F0007F0007F0007F0007F0007F000 +7F0007F0007E0007F000FE0007F000FC0007F003F80007FFFFF00007FFFFF00007F001FC +0007F0007E0007F0003F0007F0003F8007F0001F8007F0001FC007F0001FC007F0001FC0 +07F0001FC007F0001FC007F0001FC007F0003F8007F0003F8007F0007F0007F001FE00FF +FFFFF800FFFFFFC00022227EA128>I<0003FE0080001FFF818000FF01E38001F8003F80 +03E0001F8007C0000F800F800007801F800007803F000003803F000003807F000001807E +000001807E00000180FE00000000FE00000000FE00000000FE00000000FE00000000FE00 +000000FE00000000FE000000007E000000007E000001807F000001803F000001803F0000 +03801F800003000F8000030007C000060003F0000C0001F800380000FF00F000001FFFC0 +000003FE000021227DA128>I<FFFFFF8000FFFFFFF00007F003FC0007F0007E0007F000 +3F0007F0001F8007F0000FC007F00007E007F00007E007F00007F007F00003F007F00003 +F007F00003F007F00003F807F00003F807F00003F807F00003F807F00003F807F00003F8 +07F00003F807F00003F807F00003F807F00003F007F00003F007F00003F007F00007E007 +F00007E007F0000FC007F0001F8007F0003F0007F0007E0007F003FC00FFFFFFF000FFFF +FF800025227EA12B>I<FFFFFFF8FFFFFFF807F001F807F0007807F0003807F0001807F0 +001C07F0001C07F0000C07F0000C07F0180C07F0180C07F0180007F0180007F0380007F0 +780007FFF80007FFF80007F0780007F0380007F0180007F0180007F0180007F0180007F0 +000007F0000007F0000007F0000007F0000007F0000007F0000007F00000FFFFE000FFFF +E0001E227EA123>70 D<FFFF83FFFEFFFF83FFFE07F0001FC007F0001FC007F0001FC007 +F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0 +001FC007F0001FC007F0001FC007FFFFFFC007FFFFFFC007F0001FC007F0001FC007F000 +1FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC007F0001F +C007F0001FC007F0001FC007F0001FC007F0001FC007F0001FC0FFFF83FFFEFFFF83FFFE +27227EA12C>72 D<FFFFE0FFFFE003F80003F80003F80003F80003F80003F80003F80003 +F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003 +F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FFFFE0FF +FFE013227FA115>I<FFFFE000FFFFE00007F0000007F0000007F0000007F0000007F000 +0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 +0007F0000007F0000007F0000007F0000007F0000007F0001807F0001807F0001807F000 +1807F0003807F0003807F0007007F0007007F000F007F001F007F007F0FFFFFFF0FFFFFF +F01D227EA122>76 D<FFF000000FFFFFF800001FFF07F800001FE006FC000037E006FC00 +0037E006FC000037E0067E000067E0067E000067E0063F0000C7E0063F0000C7E0061F80 +0187E0061F800187E0060FC00307E0060FC00307E0060FC00307E00607E00607E00607E0 +0607E00603F00C07E00603F00C07E00601F81807E00601F81807E00601F81807E00600FC +3007E00600FC3007E006007E6007E006007E6007E006003FC007E006003FC007E006001F +8007E006001F8007E006001F8007E006000F0007E0FFF00F00FFFFFFF00600FFFF30227E +A135>I<0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F80 +003F001F80003F003F00001F803F00001F807F00001FC07E00000FC07E00000FC0FE0000 +0FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000F +E0FE00000FE07E00000FC07F00001FC07F00001FC03F00001F803F80003F801F80003F00 +0FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007FC000023227DA12A> +79 D<FFFFFF00FFFFFFE007F007F007F001FC07F000FC07F0007E07F0007E07F0007F07 +F0007F07F0007F07F0007F07F0007F07F0007E07F0007E07F000FC07F001FC07F007F007 +FFFFE007FFFF0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007 +F0000007F0000007F0000007F0000007F0000007F00000FFFF8000FFFF800020227EA126 +>I<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF +0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F00 +003FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA1 +1F>83 D<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180E003 +F801C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F800000003F8 +00000003F800000003F800000003F800000003F800000003F800000003F800000003F800 +000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 +0003F800000003F800000003F800000003F8000003FFFFF80003FFFFF80022227EA127> +I<FFFF803FFCFFFF803FFC07F000018007F000018007F000018007F000018007F0000180 +07F000018007F000018007F000018007F000018007F000018007F000018007F000018007 +F000018007F000018007F000018007F000018007F000018007F000018007F000018007F0 +00018007F000018007F000018007F000018007F000018003F000030003F800030001F800 +060000FC000E00007E001C00003F80F800000FFFE0000001FF000026227EA12B>I<FFFF +800FFEFFFF800FFE07F00000C007F80000C003F800018003F800018001FC00030001FC00 +030001FE00070000FE00060000FF000600007F000C00007F800C00003F801800003F8018 +00003FC03800001FC03000001FE03000000FE06000000FF060000007F0C0000007F0C000 +0007F9C0000003F980000003FD80000001FF00000001FF00000000FE00000000FE000000 +00FE000000007C000000007C00000000380000000038000027227FA12A>I<FFFF0FFFF0 +1FFEFFFF0FFFF01FFE0FF000FF0000E007F0007F0000C007F0007F0000C003F8007F8001 +8003F8003F80018003FC003F80038001FC003FC0030001FC003FC0030000FE007FE00600 +00FE006FE0060000FF006FE00600007F00C7F00C00007F00C7F00C00007F80C7F81C0000 +3F8183F81800003F8183F81800001FC383FC3000001FC301FC3000001FE301FC3000000F +E600FE6000000FE600FE6000000FF600FFE0000007FC007FC0000007FC007FC0000003FC +007F80000003F8003F80000003F8003F80000001F0001F00000001F0001F00000000F000 +1E00000000E0000E00000000E0000E000037227FA13A>I<0400400E00E0180180380380 +300300600600600600E00E00C00C00C00C00DC0DC0FE0FE0FF0FF0FF0FF07F07F03E03E0 +1C01C014117AA21D>92 D<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F000 +01F0003FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81F +F87F07E03F18167E951B>97 D<FF000000FF0000001F0000001F0000001F0000001F0000 +001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0FE0001F3FF8 +001FF07C001F801E001F001F001F000F801F000F801F000FC01F000FC01F000FC01F000F +C01F000FC01F000FC01F000FC01F000FC01F000F801F001F801F801F001FC03E001EE07C +001C3FF800180FC0001A237EA21F>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01 +E07C0000FC0000FC0000FC0000FC0000FC0000FC00007C00007E00007E00003E00301F00 +600FC0E007FF8000FE0014167E9519>I<0001FE000001FE0000003E0000003E0000003E +0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0001FC3E +0007FFBE000F81FE001F007E003E003E007E003E007C003E00FC003E00FC003E00FC003E +00FC003E00FC003E00FC003E00FC003E00FC003E007C003E007C003E003E007E001E00FE +000F83BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C +00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E +00181F00300FC07003FFC000FF0015167E951A>I<003F8000FFC001E3E003C7E007C7E0 +0F87E00F83C00F80000F80000F80000F80000F80000F8000FFFC00FFFC000F80000F8000 +0F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000 +0F80000F80000F80000F80007FF8007FF80013237FA211>I<03FC1E0FFF7F1F0F8F3E07 +CF3C03C07C03E07C03E07C03E07C03E07C03E03C03C03E07C01F0F801FFF0013FC003000 +003000003800003FFF801FFFF00FFFF81FFFFC3800FC70003EF0001EF0001EF0001EF000 +1E78003C7C007C3F01F80FFFE001FF0018217E951C>I<FF000000FF0000001F0000001F +0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F +0000001F07E0001F1FF8001F307C001F403C001F803E001F803E001F003E001F003E001F +003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F +003E001F003E001F003E00FFE1FFC0FFE1FFC01A237EA21F>I<1C003E007F007F007F00 +3E001C000000000000000000000000000000FF00FF001F001F001F001F001F001F001F00 +1F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B247EA310>I<FF00FF +001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F +001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B237EA210 +>108 D<FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F801F001F80 +1F801F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 +1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00 +1F001F001F001F001F001F001F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530>I<FF +07E000FF1FF8001F307C001F403C001F803E001F803E001F003E001F003E001F003E001F +003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F +003E001F003E00FFE1FFC0FFE1FFC01A167E951F>I<00FE0007FFC00F83E01E00F03E00 +F87C007C7C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C00 +7C3E00F81F01F00F83E007FFC000FE0017167E951C>I<FF0FE000FF3FF8001FF07C001F +803E001F001F001F001F801F001F801F000FC01F000FC01F000FC01F000FC01F000FC01F +000FC01F000FC01F000FC01F001F801F001F801F803F001FC03E001FE0FC001F3FF8001F +0FC0001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F000000FF +E00000FFE000001A207E951F>I<FE1F00FE3FC01E67E01EC7E01E87E01E87E01F83C01F +00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F +0000FFF000FFF00013167E9517>114 D<0FF3003FFF00781F00600700E00300E00300F0 +0300FC00007FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F0 +0700FC0E00EFFC00C7F00011167E9516>I<018000018000018000018000038000038000 +0780000780000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F8000 +0F80000F80000F80000F80000F80000F81800F81800F81800F81800F81800F830007C300 +03FE0000F80011207F9F16>I<FF01FE00FF01FE001F003E001F003E001F003E001F003E +001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E +001F003E001F003E001F007E001F00FE000F81BE0007FF3FC001FC3FC01A167E951F>I< +FFE01FE0FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0180003E01800 +01F0300001F0300000F8600000F86000007CC000007CC000007FC000003F8000003F8000 +001F0000001F0000000E0000000E00001B167F951E>I<FFE7FF07F8FFE7FF07F81F0078 +00C00F807801800F807C01800F807C018007C07E030007C0DE030007E0DE070003E0DF06 +0003E18F060001F18F0C0001F38F8C0001FB079C0000FB07D80000FE03D800007E03F000 +007E03F000007C01F000003C01E000003800E000001800C00025167F9528>I<FFE01FE0 +FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0180003E0180001F03000 +01F0300000F8600000F86000007CC000007CC000007FC000003F8000003F8000001F0000 +001F0000000E0000000E0000000C0000000C00000018000078180000FC380000FC300000 +FC60000069C000007F8000001F0000001B207F951E>121 D E /Fd +1 49 df<040E0E1C1C1C38383070706060C0C0070F7F8F0A>48 D +E /Fe 59 123 df<0387000387000387000387000387000387007FFFC0FFFFE0FFFFE007 +0E00070E00070E000E1C000E1C000E1C000E1C00FFFFE0FFFFE07FFFC01C38001C38001C +38001C38001C38001C380013197F9816>35 D<03800007E0000FE0001E70001C70001C70 +001C70001C77E01CE7E01DE7E00FC7000F8E000F0E001E0E003F1C007F1C00739C00E3F8 +00E1F800E0F1C0E0F1C071F9C07FFFC03F9F801E070013197F9816>38 +D<00E001E0038007000E001C001C0038003800700070007000E000E000E000E000E000E0 +00E000E000E000700070007000380038001C001C000E000700038001E000E00B217A9C16 +>40 D<C000E000700038001C000E000E000700070003800380038001C001C001C001C001 +C001C001C001C001C0038003800380070007000E000E001C0038007000E000C0000A217B +9C16>I<01C00001C00001C00001C00071C700F9CF807FFF001FFC0007F00007F0001FFC +007FFF00F9CF8071C70001C00001C00001C00001C00011127E9516>I<01C00001C00001 +C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF8001C00001C00001C00001 +C00001C00001C00001C00001C00011137E9516>I<387C7E7E3E0E1E1C78F060070B7984 +16>I<70F8F8F8700505788416>46 D<01800380038007800F807F80FF80738003800380 +0380038003800380038003800380038003800380038003807FF87FFC7FF80E197C9816> +49 D<07E0001FF8003FFC00783E00E00700F00780F00380600380000380000380000700 +000700000E00001C0000380000700000E00001C0000380000F00001E03803803807FFF80 +FFFF807FFF8011197E9816>I<00E00001F00001F00001B00001B00003B80003B80003B8 +00031800071C00071C00071C00071C00071C000E0E000E0E000FFE000FFE001FFF001C07 +001C07001C07007F1FC0FF1FE07F1FC013197F9816>65 D<7FF800FFFE007FFF001C0F00 +1C07801C03801C03801C03801C07801C07001FFF001FFE001FFE001C1F001C03801C03C0 +1C01C01C01C01C01C01C01C01C03C01C07807FFF80FFFF007FFC0012197F9816>I<01F1 +8007FB800FFF801F0F803C0780380380700380700380F00000E00000E00000E00000E000 +00E00000E00000E00000F000007003807003803803803C07001F0F000FFE0007FC0001F0 +0011197E9816>I<7FF800FFFE007FFF001C0F001C07801C03C01C01C01C01C01C01E01C +00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C +0F807FFF00FFFE007FF8001319809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C0 +1C01C01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00E0 +1C00E01C00E01C00E01C00E07FFFE0FFFFE07FFFE013197F9816>I<FFFFE0FFFFE0FFFF +E01C00E01C00E01C00E01C00E01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C +001C1C001C00001C00001C00001C00001C00001C0000FF8000FFC000FF800013197F9816 +>I<03E30007FF000FFF001E1F003C0F00380700700700700700F00000E00000E00000E0 +0000E00000E03F80E07FC0E03F80F00700700700700700380F003C0F001E1F000FFF0007 +F70003E70012197E9816>I<7F1FC0FFBFE07F1FC01C07001C07001C07001C07001C0700 +1C07001C07001FFF001FFF001FFF001C07001C07001C07001C07001C07001C07001C0700 +1C07001C07007F1FC0FFBFE07F1FC013197F9816>I<FFFEFFFEFFFE0380038003800380 +038003800380038003800380038003800380038003800380038003800380FFFEFFFEFFFE +0F197D9816>I<7F0FE0FF8FF07F0FE01C07801C0F001C0E001C1C001C3C001C78001CF0 +001CE0001DF0001FF0001FF8001F38001E1C001C1C001C0E001C0E001C07001C07001C03 +807F07E0FF8FF07F07E01419809816>75 D<FFC000FFC000FFC0001C00001C00001C0000 +1C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0040 +1C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE013197F9816>I<FC07E0FE0FE0FE0F +E03A0B803B1B803B1B803B1B803B1B803B1B803BBB8039B38039B38039B38039B38039F3 +8038E38038E380380380380380380380380380380380FE0FE0FE0FE0FE0FE013197F9816 +>I<7E1FC0FF3FE07F1FC01D07001D87001D87001D87001DC7001DC7001CC7001CC7001C +E7001CE7001CE7001C67001C67001C77001C77001C37001C37001C37001C17007F1F00FF +9F007F0F0013197F9816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380 +E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780 +F00780780F007FFF003FFE001FFC0011197E9816>I<7FF800FFFE007FFF001C0F801C03 +801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FF8001C00001C00 +001C00001C00001C00001C00001C00007F0000FF80007F000012197F9816>I<7FE000FF +F8007FFC001C1E001C0F001C07001C07001C07001C07001C0F001C1E001FFC001FF8001F +FC001C1C001C0E001C0E001C0E001C0E001C0E201C0E701C0E707F07E0FF87E07F03C014 +197F9816>82 D<07E3001FFF003FFF00781F00F00700E00700E00700E00000F000007800 +003F80001FF00007FC0000FE00000F00000700000380000380600380E00380E00700F80F +00FFFE00FFFC00C7F00011197E9816>I<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0 +E0E000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000 +E00000E00000E00000E00007FC000FFE0007FC0013197F9816>I<7F07F0FF8FF87F07F0 +1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C0 +1C01C01C01C01C01C01C01C00E03800E038007070007FF0003FE0000F8001519809816> +I<FE0FE0FF1FE0FE0FE03803801C07001C07001C07001C07000E0E000E0E000E0E000E0E +00060C00071C00071C00071C00071C0003180003B80003B80003B80001B00001F00001F0 +0000E00013197F9816>I<7F1F807F3F807F1F800E1E000E1C00073C0007380003B80003 +F00001F00001E00000E00001E00001F00003F00003B80007B800071C00071C000E0E000E +0E001C07007F1FC0FF1FE07F1FC013197F9816>88 D<FE0FE0FF1FE0FE0FE01C07001C07 +000E0E000E0E00071C00071C00071C0003B80003B80001F00001F00000E00000E00000E0 +0000E00000E00000E00000E00000E00003F80007FC0003F80013197F9816>I<7FFF80FF +FF80FFFF80E00700E00F00E01E00E01C00003C0000780000700000F00001E00001C00003 +C0000780000700000F00001E03801C03803C0380780380700380FFFF80FFFF80FFFF8011 +197E9816>I<FFF0FFF0FFF0E000E000E000E000E000E000E000E000E000E000E000E000 +E000E000E000E000E000E000E000E000E000E000E000E000E000E000FFF0FFF0FFF00C20 +789C16>I<FFF0FFF0FFF000700070007000700070007000700070007000700070007000 +700070007000700070007000700070007000700070007000700070FFF0FFF0FFF00C207F +9C16>93 D<1FE0003FF0007FF800783C00300E00000E00000E0003FE001FFE003E0E0070 +0E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E9116>97 +D<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF000FFF800F83C00F00 +E00E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF +00063C001419809816>I<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F00070 +0778073E0E1FFC0FF803F010127D9116>I<003F00007F00003F00000700000700000700 +00070003C7000FF7001FFF003C1F00780F00700700E00700E00700E00700E00700E00700 +E00700700F00700F003C1F001FFFE00FE7F007C7E014197F9816>I<03E00FF81FFC3C1E +780E7007E007FFFFFFFFFFFFE000E000700778073C0F1FFE0FFC03F010127D9116>I<00 +1F00007F8000FF8001E78001C30001C00001C0007FFF00FFFF00FFFF0001C00001C00001 +C00001C00001C00001C00001C00001C00001C00001C00001C00001C0003FFE007FFF003F +FE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E00380E00380E00 +1C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF807803C0E000E0E000E0 +E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000FE00007E00 +000E00000E00000E00000E00000E3C000EFE000FFF000F87800F03800E03800E03800E03 +800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816 +>I<018003C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C0 +01C001C001C001C001C001C07FFFFFFF7FFF101A7D9916>I<7E0000FE00007E00000E00 +000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0000FF0 +000FF8000FBC000F1E000E0E000E07000E07807F87F0FFCFF07F87F01419809816>107 +D<FFC000FFC000FFC00001C00001C00001C00001C00001C00001C00001C00001C00001C0 +0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000FFFF80FFFF +80FFFF8011197E9816>I<F9C380FFEFC0FFFFE03C78E03C78E03870E03870E03870E038 +70E03870E03870E03870E03870E03870E03870E0FE7CF8FE7CF8FE3C781512809116>I< +7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E03800E03800E0380 +0E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C1E +00780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E001FFC +000FF80003E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E +00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E +00000E00000E00000E00000E00007FC000FFE0007FC000141B809116>I<FF0FC0FF3FE0 +FF7FE007F04007C000078000078000070000070000070000070000070000070000070000 +070000FFFC00FFFC00FFFC0013127F9116>114 D<0FEC3FFC7FFCF03CE01CE01C70007F +801FF007F8003C600EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<0300000700000700 +000700000700007FFF00FFFF00FFFF000700000700000700000700000700000700000700 +0007010007038007038007038007870003FE0001FC0000F80011177F9616>I<7E1F80FE +3F807E1F800E03800E03800E03800E03800E03800E03800E03800E03800E03800E03800E +03800E0F800FFFF007FBF803E3F01512809116>I<7F1FC0FF1FE07F1FC01C07001E0F00 +0E0E000E0E000E0E00071C00071C00071C00071C0003B80003B80003B80001F00001F000 +00E00013127F9116>I<FF1FE0FFBFE0FF1FE038038038038038038038038038E38019F3 +0019F30019B3001DB7001DB7001DB7001DB7000F1E000F1E000F1E0013127F9116>I<7F +1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E00001E00001F00003B80007 +3C00071C000E0E007F1FC0FF3FE07F1FC013127F9116>I<7F1FC0FF9FE07F1FC01C0700 +0E07000E0E000E0E00070E00071C00071C00039C00039C0003980001B80001B80000F000 +00F00000F00000E00000E00000E00001C00079C0007BC0007F80003F00003C0000131B7F +9116>I<3FFFC07FFFC07FFFC0700780700F00701E00003C0000780001F00003E0000780 +000F00001E01C03C01C07801C0FFFFC0FFFFC0FFFFC012127F9116>I +E /Ff 2 13 df<0007E00000003838000000E00C004001C00E0040038007008007000780 +800F000780801E000381003E0003C1003C0003C2007C0003C2007C0003C400F80003C400 +F80003C800F80003D000F80003D000F80003E000F00003C000F00003C000F00003C00078 +0003C00078000FC000380011C1001C0061C2000E0380E60001FC003800221A7E9926>11 +D<000003F80000000C0C0000003006000000400700000080038000010003800002000380 +000400038000040007800008000780000800078000100007000010000F000020000E0000 +20001C00002000380000403FF000004040E00000403F300000400038000080001C000080 +001E000080001E000080001E000100001F000100001F000100001F000100001F00020000 +3E000200003E000200003E000200003C000600007C000600007800060000F800060000F0 +00090001E000090003C000088007800008400E000010303C0000100FE000001000000000 +100000000020000000002000000000200000000020000000004000000000400000000040 +0000000040000000008000000000800000000021367FA922>I E +/Fg 37 122 df<00FCF807839C0E079C1C07081C07001C07001C07001C07001C0700FFFF +E01C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07 +00FF1FE01617809615>11 D<60C0F1E0F1E070E01020102020402040408040800B0A7F96 +12>34 D<0102040C1818303070606060E0E0E0E0E0E0E0E0E0E060606070303018180C04 +020108227D980E>40 D<8040203018180C0C0E060606070707070707070707070606060E +0C0C18183020408008227E980E>I<60F0F070101020204040040A7D830A>44 +D<FF80FF80090280870C>I<60F0F06004047D830A>I<001000003800003800003800005C +00005C00005C00008E00008E00008E0001070001070003078002038002038007FFC00401 +C00401C00800E00800E01800E03800F0FE03FE17177F961A>65 D<FFE00E000E000E000E +000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FF +E00B177F960D>73 D<FE0003F81E0003C0170005C0170005C0170005C0138009C0138009 +C011C011C011C011C011C011C010E021C010E021C0107041C0107041C0107041C0103881 +C0103881C0101D01C0101D01C0100E01C0100E01C0380E01C0FE040FF81D177F9620>77 +D<0FC4302C601C400CC004C004C004E00070007F003FE00FF801FC001C000E0006800680 +068006C004E008D81087E00F177E9614>83 D<7FFFF86038184038084038088038048038 +048038040038000038000038000038000038000038000038000038000038000038000038 +0000380000380000380000380007FFC016177F9619>I<204020404080408081008100E1 +C0F1E0F1E060C00B0A7B9612>92 D<1FC0386038301038003803F81E3830387038E039E0 +39E07970FF1F1E100E7F8D12>97 D<FC00001C00001C00001C00001C00001C00001C0000 +1C00001C00001CF8001F06001C03001C03801C01801C01C01C01C01C01C01C01C01C0180 +1C03801C03001B0E0010F8001217809614>I<07F01838303870106000E000E000E000E0 +00600070083008183007C00D0E7F8D10>I<007E00000E00000E00000E00000E00000E00 +000E00000E00000E0007CE001C3E00300E00700E00600E00E00E00E00E00E00E00E00E00 +600E00700E00301E00182E0007CFC012177F9614>I<0FC0186030307038E018FFF8E000 +E000E000600070083010183007C00D0E7F8D10>I<03E006700E701C201C001C001C001C +001C00FF801C001C001C001C001C001C001C001C001C001C001C001C00FF800C1780960B +>I<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC600EC006C006 +C006600C38380FE010157F8D12>I<FC00001C00001C00001C00001C00001C00001C0000 +1C00001C00001C7C001D8E001E07001C07001C07001C07001C07001C07001C07001C0700 +1C07001C07001C0700FF9FE01317809614>I<183C3C1800000000007C1C1C1C1C1C1C1C +1C1C1C1C1CFF081780960A>I<FC00001C00001C00001C00001C00001C00001C00001C00 +001C00001C3F801C1C001C18001C20001C40001CC0001FE0001CF0001C70001C78001C3C +001C1E001C1E00FF3FC01217809613>107 D<FC001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091780960A>I< +FC7C1F001D8E63801E0781C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0 +1C0701C01C0701C01C0701C01C0701C0FF9FE7F81D0E808D1E>I<FC7C001D8E001E0700 +1C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700FF9FE0130E80 +8D14>I<07C018303018600C600CE00EE00EE00EE00EE00E701C3018183007C00F0E7F8D +12>I<FCF8001F0E001C03001C03801C01801C01C01C01C01C01C01C01C01C01801C0380 +1C07001F0E001CF8001C00001C00001C00001C00001C0000FF80001214808D14>I<07C2 +001C2600381E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E001C2E +0007CE00000E00000E00000E00000E00000E00007FC012147F8D13>I<FCF01D381E381C +101C001C001C001C001C001C001C001C001C00FF800D0E808D0E>I<1F4060C0C040C040 +E000FF007F801FC001E080608060C060E0C09F000B0E7F8D0E>I<080008000800180018 +003800FF80380038003800380038003800380038403840384038401C800F000A147F930E +>I<FC3F001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C +0F000E170003E7E0130E808D14>I<FE1F3C0E3C0C1C081C080E100E100720072003C003 +C003C001800180100E7F8D13>I<FCFE7C3838383838101C3C201C3C201C4C200E4E400E +4E400E8640078780078780070380030300030300160E7F8D19>I<FE3F3C181C100E2007 +4007C0038001C002E004F008701838383CFC7F100E7F8D13>I<FE1F3C0E3C0C1C081C08 +0E100E100720072003C003C003C00180018001000100E200E200A400780010147F8D13> +I E /Fh 4 53 df<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C00 +0C00FF8009107E8F0F>49 D<1F00618040C08060C0600060006000C00180030006000C00 +102020207FC0FFC00B107F8F0F>I<1F00218060C060C000C0008001800F000080004000 +60C060C060804060801F000B107F8F0F>I<0300030007000F000B001300330023004300 +C300FFE003000300030003001FE00B107F8F0F>I E /Fi 4 53 df<0C001C00EC000C00 +0C000C000C000C000C000C000C000C000C000C000C000C000C000C00FFC00A137D9211> +49 D<1F0060C06060F070F030603000700070006000C001C00180020004000810101020 +207FE0FFE00C137E9211>I<0FC030707038703870380038003000E00FC0007000380018 +001C601CF01CF018E03860701FC00E137F9211>I<006000E000E00160026006600C6008 +60106020606060C060FFFC0060006000600060006003FC0E137F9211>I +E /Fj 19 123 df<000FE0200070186001C00460030003E0060001E00E0000E01C000060 +38000060380000207800002070000020F0000000F0000000F0000000F0000000F0000000 +F0000000F0000000F0000000700000207800002038000020380000201C0000400E000040 +060000800300010001C0060000701800000FE0001B1E7D9C21>67 +D<FFF00FF80F0007C00F0003000F0002000F0004000F0008000F0010000F0060000F0080 +000F0100000F0200000F0700000F0F80000F1780000F23C0000F43E0000F81E0000F00F0 +000F00F8000F0078000F003C000F001E000F001F000F000F000F0007800F0007C00F0007 +E0FFF03FFC1E1C7D9B23>75 D<FFFFE0000F0078000F001C000F000E000F0007000F0007 +800F0007800F0007800F0007800F0007800F0007000F000E000F001C000F0078000FFFE0 +000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 +000F0000000F0000000F000000FFF00000191C7D9B1F>80 D<7FFFFFC0700F01C0600F00 +C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7D9B21>84 +D<7FFFFC7C00787000786000F06001E04001E04003C0400780400780000F00001E00001E +00003C0000780000780000F00001E00001E00403C0040780040780040F000C1E00081E00 +083C00187800387800F8FFFFF8161C7D9B1C>90 D<00200000700000700000700000B800 +00B80000B800011C00011C00011C00020E00020E0004070004070007FF00080380080380 +0803801801C03803C0FE0FF815157F9419>97 D<FFFF801C03801C00801C00801C00401C +00401C10401C10001C10001C30001FF0001C30001C10001C10201C10201C00201C00601C +00401C00C01C01C0FFFFC013157F9417>101 D<00FC200782600E01E01C00E038006078 +0020700020F00020F00000F00000F00000F00FF8F000E0F000E07000E07800E03800E01C +00E00E00E007836000FC2015157E941B>103 D<FF8FF81C01C01C01C01C01C01C01C01C +01C01C01C01C01C01C01C01C01C01FFFC01C01C01C01C01C01C01C01C01C01C01C01C01C +01C01C01C01C01C0FF8FF815157F9419>I<FF801C001C001C001C001C001C001C001C00 +1C001C001C001C001C001C001C001C001C001C001C00FF8009157F940D>I<FF83F81C01 +E01C01801C01001C02001C04001C08001C10001C30001C70001CB8001D1C001E1C001C0E +001C07001C07801C03801C01C01C01E01C01F0FF83FC16157F941A>107 +D<FC03F81E00E01E004017004013804013C04011C04010E040107040107040103840101C +40101C40100E401007401007C01003C01001C01000C03800C0FE004015157F9419>110 +D<01F800070E000C03001C03803801C07801E07000E0F000F0F000F0F000F0F000F0F000 +F0F000F0F000F07000E07801E03801C01C03801E0780070E0001F80014157E941A>I<FF +F8001C0E001C07801C03801C03C01C03C01C03C01C03801C07801C0E001FF8001C1C001C +0E001C07001C07001C07001C07801C07841C07C41C03CCFF80F816157F9419>114 +D<FF83F81C00E01C00401C00401C00401C00401C00401C00401C00401C00401C00401C00 +401C00401C00401C00401C00400C00C00E008006010003860000FC0015157F9419>117 +D<FF0FF87E3C01E03C3801C0181C02E0101C02E0101C02E0100E0470200E0470200E0470 +2007083840070838400708384003901C8003901C8003901C8001E00F0001E00F0001E00F +0000C0060000C0060000C006001F157F9423>119 D<FF87F01E03800E03000F02000704 +0003840003C80001D00000F00000F00000700000780000BC00011C00010E00020F000407 +000403800C03C03C03C0FE07F815157F9419>I<FF80FE1E00780E00200F004007004003 +808003C18001C10000E20000E200007400007C0000380000380000380000380000380000 +380000380000380001FF001715809419>I<FFFEF01CC01CC0388038807080E000E001C0 +01C00380070007000E020E021C02380238067006701EFFFE0F157E9415>I +E /Fk 3 16 df<FFFFFF80FFFFFF8019027D8A20>0 D<01800180018001804182F18F39 +9C0FF003C003C00FF0399CF18F4182018001800180018010127E9215>3 +D<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E +9115>15 D E /Fl 60 123 df<0001FC3C00060E67000C0EC7001C0DC6001C01C0003801 +C0003803800038038000380380003803800070038007FFFFF80070070000700700007007 +0000E0070000E00E0000E00E0000E00E0000E00E0001C00E0001C01C0001C01C0001C01C +0001C01C0003801C00038038000380380003803800030038000700300007007000060060 +00C6606000E470C000C8618000703E00002025819C19>11 D<0001FC000703000C03001C +07001C0300180000380000380000380000380000700007FFFC00701C00701C00701C00E0 +3800E03800E03800E03800E07001C07001C07001C07001C0E201C0E201C0E20380E40380 +64038038038000030000070000060000C60000E40000CC00007000001825819C17>I<E0 +E0E070301018080508749C15>18 D<03070E1C3860C0800808729C15>I<183C3C3C0404 +080810204080060C779C0D>39 D<00030006000800180030006000C000C0018003000300 +060006000C000C001C0018001800380030003000700070006000600060006000E000E000 +E000E000E0006000600060006000600020003000100008000800102A7B9E11>I<001000 +100008000C00040006000600060006000600070007000700070007000600060006000600 +0E000E000C000C001C001800180038003000300060006000C000C001800300030006000C +00180010006000C000102A809E11>I<183878380808101020404080050C7D830D>44 +D<FFC0FFC0FFC00A037D890F>I<3078F06005047C830D>I<003C0000C600018300030300 +0603000603800E03800C03801C03801C0300380700380700380700380700700E00700E00 +700E00700E00E01C00E01C00E01C00E03800E03800E03000C06000E0600060C000718000 +1E0000111D7B9B15>48 D<00020006000C001C007C039C00380038003800380070007000 +70007000E000E000E000E001C001C001C001C003800380038003800780FFF00F1C7C9B15 +>I<003E0000C1800101800200C00400C00440C00841C00841C00841C008838007038000 +0700000E0001F800003800000C00000C00000E00000E00000E00000E00700E00E01C0080 +1C0080380080300040600021C0001F0000121D7C9B15>51 D<001E000061000081800180 +800300C00300C006018006018006018007030007860003CC0003F00001F000037800063C +00081E00180E00300E00600600600600600600C00C00C00C00C0180060100060200030C0 +000F0000121D7C9B15>56 D<003C0000C6000183000303000603000E03000C03801C0380 +1C03001C0300380700380700380700380F00380E00181E00181E000C6C00079C00001C00 +001800003800003000006000E0C000E0C0008180008600007C0000111D7B9B15>I<060F +0F06000000000000000000003078F06008127C910D>I<00001800000018000000380000 +00380000007800000078000000B8000001B800000138000002380000023C0000041C0000 +041C0000081C0000181C0000101C0000201C0000201C00007FFC0000401C0000801C0001 +801C0001001C0002001C0002001C0004000E000C000E001C001E00FF00FFC01A1D7E9C1F +>65 D<01FFFE00003C0780003803C0003801C0003801C0003801C0007001C0007003C000 +7003C00070078000E0070000E00E0000E03C0000FFF80001C01C0001C00E0001C00F0001 +C00F0003800F0003800F0003800F0003800F0007001E0007001C0007003C00070078000E +01E000FFFF80001A1C7D9B1D>I<0003F020001E0C60003002E000E003C001C001C00380 +01C0070000C00E0000801E0000801C0000803C0000803C00000078000000780000007800 +0000F0000000F0000000F0000000F0000000F0000400F0000400F0000400F00008007000 +08007000100038002000180040000C0180000706000001F800001B1E7A9C1E>I<01FFFE +00003C0780003801C0003801C0003800E0003800E0007000F00070007000700070007000 +F000E000F000E000F000E000F000E000F001C001E001C001E001C001E001C001C0038003 +C003800380038007800380070007000E0007001C0007003800070070000E01C000FFFF00 +001C1C7D9B1F>I<01FFFFE0003C00E00038006000380040003800400038004000700040 +00700040007020400070200000E0400000E0400000E0C00000FFC00001C0800001C08000 +01C0800001C0800003810100038001000380020003800200070004000700040007000C00 +070018000E007800FFFFF0001B1C7D9B1C>I<01FFFFC0003C01C0003800C00038008000 +380080003800800070008000700080007020800070200000E0400000E0400000E0C00000 +FFC00001C0800001C0800001C0800001C080000381000003800000038000000380000007 +0000000700000007000000070000000F000000FFF000001A1C7D9B1B>I<01FFCFFE003C +01E0003801C0003801C0003801C0003801C00070038000700380007003800070038000E0 +070000E0070000E0070000FFFF0001C00E0001C00E0001C00E0001C00E0003801C000380 +1C0003801C0003801C00070038000700380007003800070038000F007800FFE7FF001F1C +7D9B1F>72 D<01FFC0003C00003800003800003800003800007000007000007000007000 +00E00000E00000E00000E00001C00001C00001C00001C000038000038000038000038000 +0700000700000700000700000F0000FFE000121C7E9B10>I<007FF00007800007000007 +00000700000700000E00000E00000E00000E00001C00001C00001C00001C000038000038 +0000380000380000700000700000700000700060E000E0E000C0C00081C0008380004700 +003C0000141D7B9B16>I<01FFE0003C0000380000380000380000380000700000700000 +700000700000E00000E00000E00000E00001C00001C00001C00001C00003800803800803 +80080380100700100700300700600700E00E03C0FFFFC0151C7D9B1A>76 +D<01FE0007F8003E000780002E000F00002E001700002E001700002E002700004E002E00 +004E004E00004E004E00004E008E00008E011C00008E011C00008E021C00008E021C0001 +070438000107043800010708380001071038000207107000020720700002072070000207 +407000040740E000040780E000040700E0000C0700E0001C0601E000FF861FFC00251C7D +9B25>I<01FC03FE001C0070003C0060002E0040002E0040002E00400047008000470080 +00470080004380800083810000838100008181000081C1000101C2000101C2000100E200 +0100E2000200E4000200740002007400020074000400380004003800040038000C001800 +1C001000FF8010001F1C7D9B1F>I<0007F000001C1C0000700E0000E0070001C0038003 +800380070003800E0003C01E0003C01C0003C03C0003C03C0003C0780003C0780003C078 +0003C0F0000780F0000780F0000780F0000F00F0000F00F0000E00F0001E00F0003C0070 +003800700070007800E0003801C0001C0380000E0E000003F800001A1E7A9C20>I<01FF +FC00003C070000380380003801C0003801C0003801C0007003C0007003C0007003C00070 +038000E0078000E0070000E00E0000E0380001FFE00001C0000001C0000001C000000380 +0000038000000380000003800000070000000700000007000000070000000F000000FFE0 +00001A1C7D9B1C>I<01FFF800003C0E0000380700003803800038038000380380007007 +80007007800070078000700F0000E00E0000E01C0000E0700000FFC00001C0C00001C060 +0001C0700001C07000038070000380700003807000038070000700F0000700F0400700F0 +400700F0800F007880FFE0790000001E001A1D7D9B1E>82 D<000F8400304C00403C0080 +1801001803001803001806001006001006000007000007000003E00003FC0001FF00007F +800007C00001C00001C00000C00000C02000C02000C0600180600180600300600200F004 +00CC180083E000161E7D9C17>I<1FFFFFC01C0701C0300E00C0200E0080600E0080400E +0080401C0080801C0080801C0080001C0000003800000038000000380000003800000070 +000000700000007000000070000000E0000000E0000000E0000000E0000001C0000001C0 +000001C0000001C0000003C000007FFE00001A1C799B1E>I<FF83FF0FF03C007001C038 +007001803800F001003800F0020038017002003801700400380270040038027008001C04 +7008001C047010001C087010001C087020001C107020001C107040001C207040001C2070 +80001C407180001C407100001C807200001D807200001D007400001E007400001E007800 +001C007800001C00700000180070000018006000001000600000241D779B29>87 +D<FFC00FE00E0007800E0006000F00040007000800070018000780100003802000038040 +0003C0800001C1800001C1000001E2000000E4000000EC000000F8000000700000007000 +0000E0000000E0000000E0000000E0000001C0000001C0000001C0000001C00000038000 +003FF800001B1C789B1F>89 D<03CC063C0C3C181C3838303870387038E070E070E070E0 +70E0E2C0E2C0E261E462643C380F127B9115>97 D<3F00070007000E000E000E000E001C +001C001C001C0039C03E60383038307038703870387038E070E070E070E060E0E0C0C0C1 +C0618063003C000D1D7B9C13>I<01F007080C08181C3838300070007000E000E000E000 +E000E000E008E010602030C01F000E127B9113>I<001F80000380000380000700000700 +000700000700000E00000E00000E00000E0003DC00063C000C3C00181C00383800303800 +703800703800E07000E07000E07000E07000E0E200C0E200C0E20061E4006264003C3800 +111D7B9C15>I<01E007100C1018083810701070607F80E000E000E000E000E000E00860 +10602030C01F000D127B9113>I<0003C0000670000C70001C60001C00001C0000380000 +380000380000380000380003FF8000700000700000700000700000700000E00000E00000 +E00000E00000E00001C00001C00001C00001C00001C00003800003800003800003000003 +0000070000C60000E60000CC00007800001425819C0D>I<00F3018F030F06070E0E0C0E +1C0E1C0E381C381C381C381C383830383038187818F00F700070007000E000E0C0C0E1C0 +C3007E00101A7D9113>I<0FC00001C00001C00003800003800003800003800007000007 +00000700000700000E78000E8C000F0E000E0E001C0E001C0E001C0E001C0E00381C0038 +1C00381C00383800703880703880707080707100E03200601C00111D7D9C15>I<018003 +80010000000000000000000000000000001C002600470047008E008E000E001C001C001C +0038003800710071007100720072003C00091C7C9B0D>I<0FC00001C00001C000038000 +0380000380000380000700000700000700000700000E0F000E11000E23800E43801C8300 +1C80001D00001E00003F800039C00038E00038E00070E20070E20070E20070E400E06400 +603800111D7D9C13>107 D<1F800380038007000700070007000E000E000E000E001C00 +1C001C001C0038003800380038007000700070007000E400E400E400E40068003800091D +7C9C0B>I<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380 +E01C0701C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C03 +20300C01C01D127C9122>I<3C3C002646004687004707008E07008E07000E07000E0700 +1C0E001C0E001C0E001C1C00381C40381C40383840383880701900300E0012127C9117> +I<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E +000F127B9115>I<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E00381C003 +81C00381C00381800703800703000707000706000E8C000E70000E00000E00001C00001C +00001C00001C00003C0000FF8000131A7F9115>I<03C4062C0C3C181C38383038703870 +38E070E070E070E070E0E0C0E0C0E061E063C03DC001C001C0038003800380038007803F +F00E1A7B9113>I<3C3C26C2468747078E068E000E000E001C001C001C001C0038003800 +380038007000300010127C9112>I<01F006080C080C1C18181C001F001FC00FF007F000 +7800386030E030C030806060C01F000E127D9111>I<00C001C001C001C0038003800380 +0380FFE00700070007000E000E000E000E001C001C001C001C0038403840384038801900 +0E000B1A7D990E>I<1E0300270700470700470700870E00870E000E0E000E0E001C1C00 +1C1C001C1C001C1C003838803838801838801839001C5900078E0011127C9116>I<1E06 +270E470E4706870287020E020E021C041C041C041C0818083808181018200C4007800F12 +7C9113>I<1E01832703874703874703838707018707010E07010E07011C0E021C0E021C +0E021C0E04180C04181C04181C081C1C100C263007C3C018127C911C>I<070E00199100 +10E38020E38041C30041C00001C00001C000038000038000038000038000070200670200 +E70400CB04008B080070F00011127D9113>I<1E03270747074707870E870E0E0E0E0E1C +1C1C1C1C1C1C1C38383838183818381C7007F00070007000E0E0C0E1C0818047003C0010 +1A7C9114>I<038207C20FEC083810080010002000400080010002000400080810083830 +67F043E081C00F127D9111>I E /Fm 5 111 df<00F000030C000E06041C070438070830 +0708700790700790E003A0E003A0E003C0E00380E00380E00380600780601B883061900F +80E016127E911B>11 D<0001F000061800080C00100C00200E00400E00800E00801C0100 +1C010018010038020FF00210C0020FE00200300400300400300400380400380800700800 +700800700800E01800E01800C0140180140300230E0020F8002000002000004000004000 +0040000040000080000080000017257F9C17>I<60F0F06004047C830C>58 +D<0007E00000E00000E00001C00001C00001C00001C000038000038000038000038001E7 +000717000C0F00180F00380E00300E00700E00700E00E01C00E01C00E01C00E01C00E038 +80E03880E038806078803199001E0E00131D7E9C16>100 D<381F004E61804681C04701 +C08F01C08E01C00E01C00E01C01C03801C03801C03801C0700380710380710380E10380E +2070064030038014127E9119>110 D E /Fn 84 128 df<007E1F0001C1B1800303E3C0 +0703C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC00 +0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000 +0E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C +18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E00 +00FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 +C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C007 +03C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E +01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E +01C07FCFF8151D809C17>I<003F07E00001C09C18000380F018000701F03C000E01E03C +000E00E018000E00E000000E00E000000E00E000000E00E000000E00E00000FFFFFFFC00 +0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E +00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 +E01C000E00E01C007FC7FCFF80211D809C23>I<1C1C3C3870C0800607779C15>19 +D<6060F0F0F8F86868080808080808101010102020404080800D0C7F9C15>34 +D<0F0000C0188000C030600380703807006027FB00E0100600E0100C00E0100C00E01018 +00E0101800E0103000E0106000602060007020C00030418000188180000F0303C0000606 +2000060C10000C1C08001818080018380400303804006038040060380400C0380400C038 +04018038040300180803001C0806000C100C000620040003C01E217E9E23>37 +D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C0018 +001800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E0 +00E000600060006000700030003000180018000C000C00060002000100008000400A2A7D +9E10>I<800040002000100018000C000C000600060003000300038001800180018001C0 +01C001C001C001C001C001C001C001C001C001C001C00180018001800380030003000600 +06000C000C00180010002000400080000A2A7E9E10>I<00060000000600000006000000 +060000000600000006000000060000000600000006000000060000000600000006000000 +060000FFFFFFE0FFFFFFE000060000000600000006000000060000000600000006000000 +0600000006000000060000000600000006000000060000000600001B1C7E9720>43 +D<60F0F0701010101020204080040C7C830C>I<FFE0FFE00B0280890E>I<60F0F0600404 +7C830C>I<00010003000600060006000C000C000C001800180018003000300030006000 +6000C000C000C0018001800180030003000300060006000C000C000C0018001800180030 +0030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E6006 +6006E007E007E007E007E007E007E007E007E007E007E007E007E00760066006700E300C +300C18180C3007E0101D7E9B15>I<030007003F00C70007000700070007000700070007 +000700070007000700070007000700070007000700070007000700070007000F80FFF80D +1C7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C +00380070006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<07E018 +30201C201C781E780E781E381E001C001C00180030006007E00030001C001C000E000F00 +0F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<000C00000C00001C0000 +3C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C00101C0030 +1C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C00001C0001 +FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E02430281830 +1C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B15 +>I<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007 +E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF +807FFF007FFF0040020080040080040080080000100000100000200000600000400000C0 +0000C00001C0000180000180000380000380000380000380000780000780000780000780 +00078000078000030000111D7E9B15>I<03E00C301008200C2006600660066006700678 +0C3E083FB01FE007F007F818FC307E601E600FC007C003C003C003C00360026004300C1C +1007E0101D7E9B15>I<03C00C301818300C700C600EE006E006E007E007E007E007E007 +6007700F300F18170C2707C700060006000E300C780C78187010203030C00F80101D7E9B +15>I<60F0F0600000000000000000000060F0F06004127C910C>I<60F0F0600000000000 +000000000060F0F0701010101020204080041A7C910C>I<7FFFFFC0FFFFFFE000000000 +00000000000000000000000000000000000000000000000000000000FFFFFFE07FFFFFC0 +1B0C7E8F20>61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C000800180 +0100010001000100010001000000000000000000000003000780078003000F1D7E9C14> +63 D<000600000006000000060000000F0000000F0000000F0000001780000017800000 +1780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F00001 +80F8000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C +001F001E001F00FF80FFF01C1D7F9C1F>65 D<FFFFC00F00F00F00380F003C0F001C0F00 +1E0F001E0F001E0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C0F001E0F00 +0E0F000F0F000F0F000F0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C7E9B1D +>I<001F808000E0618001801980070007800E0003801C0003801C000180380001807800 +00807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000 +0000F0000000700000807800008078000080380000801C0001001C0001000E0002000700 +04000180080000E03000001FC000191E7E9C1E>I<FFFFC0000F00F0000F003C000F000E +000F0007000F0007000F0003800F0003C00F0001C00F0001C00F0001E00F0001E00F0001 +E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001C00F0003C00F0003 +800F0007800F0007000F000E000F001C000F007000FFFFC0001B1C7E9B20>I<FFFFFC0F +003C0F000C0F00040F00040F00060F00020F00020F02020F02000F02000F02000F06000F +FE000F06000F02000F02000F02000F02010F00010F00020F00020F00020F00060F00060F +000C0F003CFFFFFC181C7E9B1C>I<FFFFF80F00780F00180F00080F00080F000C0F0004 +0F00040F02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F0200 +0F00000F00000F00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>I<001F +808000E0618001801980070007800E0003801C0003801C00018038000180780000807800 +008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000FFF0F000 +0F80700007807800078078000780380007801C0007801C0007800E00078007000B800180 +118000E06080001F80001C1E7E9C21>I<FFF3FFC00F003C000F003C000F003C000F003C +000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000FFFFC +000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C +000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B1F>I<FFF00F000F000F00 +0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00 +0F000F000F000F000F00FFF00C1C7F9B0F>I<1FFF00F800780078007800780078007800 +780078007800780078007800780078007800780078007800787078F878F878F878F0F040 +E021C01F00101D7F9B15>I<FFF03FE00F000F000F000C000F0008000F0010000F002000 +0F0040000F0080000F0100000F0200000F0400000F0E00000F1F00000F2F00000F278000 +0F4780000F83C0000F01E0000F01E0000F00F0000F00F8000F0078000F003C000F003C00 +0F001E000F001F000F001F80FFF07FF01C1C7E9B20>I<FFF8000F80000F00000F00000F +00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F +00000F00000F00080F00080F00080F00180F00180F00100F00300F00700F01F0FFFFF015 +1C7E9B1A>I<FF8000FF800F8000F8000F8000F8000BC00178000BC00178000BC0017800 +09E002780009E002780008F004780008F004780008F00478000878087800087808780008 +78087800083C107800083C107800083C107800081E207800081E207800081E207800080F +407800080F40780008078078000807807800080780780008030078001C03007800FF8307 +FF80211C7E9B26>I<FF007FC00F800E000F8004000BC0040009E0040009E0040008F004 +0008F8040008780400083C0400083C0400081E0400080F0400080F0400080784000807C4 +000803C4000801E4000801E4000800F40008007C0008007C0008003C0008003C0008001C +0008000C001C000C00FF8004001A1C7E9B1F>I<003F800000E0E0000380380007001C00 +0E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0 +F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0 +380003803C0007801C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C +20>I<FFFF800F00E00F00780F003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C +0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00000F00000F00000F0000 +0F00000F00000F00000F0000FFF000171C7E9B1C>I<003F800000E0E000038038000700 +1C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F000 +01E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C07800 +03C0380003803C0E07801C1107000E208E0007205C0003A0780000F0E020003FE0200000 +602000003060000038E000003FC000003FC000001F8000000F001B257E9C20>I<FFFF00 +000F01E0000F0078000F003C000F001C000F001E000F001E000F001E000F001E000F001C +000F003C000F0078000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078 +000F0078000F0078000F0078000F0078000F0078100F0078100F0038100F003C20FFF01C +20000007C01C1D7E9B1F>I<07E0801C1980300580700380600180E00180E00080E00080 +E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C0 +0001C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17> +I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F00 +20000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 +00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F80 +0003FFFC001B1C7F9B1E>I<FFF07FC00F000E000F0004000F0004000F0004000F000400 +0F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F000400 +0F0004000F0004000F0004000F0004000F0004000F0004000F0004000700080007800800 +038010000180100000C020000070C000001F00001A1D7E9B1F>I<FFE00FF01F0003C00F +0001800F0001000F800300078002000780020003C0040003C0040003C0040001E0080001 +E0080001F0080000F0100000F0100000F830000078200000782000003C4000003C400000 +3C4000001E8000001E8000001F8000000F0000000F00000006000000060000000600001C +1D7F9B1F>I<FFE0FFE0FF1F001F003C1E001E00180F001F00100F001F00100F001F0010 +07801F00200780278020078027802003C027804003C043C04003C043C04003E043C04001 +E081E08001E081E08001E081E08000F100F10000F100F10000F100F100007900FA00007A +007A00007A007A00003E007C00003C003C00003C003C00003C003C000018001800001800 +18000018001800281D7F9B2B>I<FFF007FC0F8001E00780008007C0018003C0010003E0 +020001F0020000F0040000F8040000780800007C1800003C1000001E2000001F2000000F +4000000FC000000780000007800000078000000780000007800000078000000780000007 +8000000780000007800000078000007FF8001E1C809B1F>89 D<FEFEC0C0C0C0C0C0C0C0 +C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FEFE07297C9E0C +>91 D<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>I<FEFE +060606060606060606060606060606060606060606060606060606060606060606060606 +06FEFE0729809E0C>I<1FC000307000783800781C00301C00001C00001C0001FC000F1C +00381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97 +D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C +001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00 +C01C01C01C01801E030019060010F800131D7F9C17>I<07E00C301878307870306000E0 +00E000E000E000E000E00060007004300418080C3007C00E127E9112>I<003F00000700 +00070000070000070000070000070000070000070000070000070003E7000C1700180F00 +300700700700600700E00700E00700E00700E00700E00700E00700600700700700300700 +180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E006FFFEE000E000 +E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E +000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E +000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C +00381C00381C001818001C38000C300013C0001000003000001800001FF8001FFF001FFF +803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215>I<FC +00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001C +87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C +03801C03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00180000000000000000 +00000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C00FF80091D7F9C0C>I<00C001E001E000C00000000000000000000000000000 +0FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 +00E000E000E060E0F0C0F1C061803E000B25839C0D>I<FC00001C00001C00001C00001C +00001C00001C00001C00001C00001C00001C00001C3FC01C0F001C0C001C08001C10001C +20001C40001CE0001DE0001E70001C78001C38001C3C001C1C001C0E001C0F001C0F80FF +9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C001C001C001C001C001C001C +001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C +>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C01C01C001C01C01C +001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00 +1C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D0300 +1E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380 +1C03801C0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180E001 +C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F0001212 +7F9115>I<FC7C001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C +00E01C00E01C01C01C01C01C01801E03001D06001CF8001C00001C00001C00001C00001C +00001C00001C0000FF8000131A7F9117>I<03C1000C3300180B00300F00700700700700 +E00700E00700E00700E00700E00700E00700600700700700300F00180F000C370007C700 +000700000700000700000700000700000700000700003FE0131A7E9116>I<FCE01D301E +781E781C301C001C001C001C001C001C001C001C001C001C001C001C00FFC00D127F9110 +>I<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D060 +8FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C +001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C +03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C +03801C07800C07800E1B8003E3F014127F9117>I<FF07E03C03801C01001C01000E0200 +0E020007040007040007040003880003880003D80001D00001D00000E00000E00000E000 +00400013127F9116>I<FF3FCFE03C0F03801C0701801C0701001C0B01000E0B82000E0B +82000E1182000711C4000711C4000720C40003A0E80003A0E80003C0680001C0700001C0 +700001803000008020001B127F911E>I<7F8FF00F03800F030007020003840001C80001 +D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0FF815 +12809116>I<FF07E03C03801C01001C01000E02000E0200070400070400070400038800 +03880003D80001D00001D00000E00000E00000E000004000004000008000008000F08000 +F10000F300006600003C0000131A7F9116>I<7FFC70386038407040F040E041C003C003 +8007000F040E041C043C0C380870087038FFF80E127F9112>I<FFFFF01401808B15>I<60 +60F0F0F0F060600C047C9C15>127 D E /Fo 38 121 df<000E00001E00007E0007FE00 +FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 +00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277B +A622>49 D<00FF800003FFF0000FFFFC001F03FE003800FF007C007F80FE003FC0FF003F +C0FF003FE0FF001FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F +8000007F000000FE000000FC000001F8000003F0000003E00000078000000F0000001E00 +00003C00E0007000E000E000E001C001C0038001C0070001C00FFFFFC01FFFFFC03FFFFF +C07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC00 +0F81FE001F00FF003F80FF003F807F803F807F803F807F801F807F800F007F800000FF00 +0000FF000000FE000001FC000001F8000007F00000FFC00000FFF0000001FC0000007E00 +00007F0000007F8000003FC000003FC000003FE000003FE03C003FE07E003FE0FF003FE0 +FF003FE0FF003FC0FF007FC07E007F807C007F003F01FE001FFFFC0007FFF00000FF8000 +1B277DA622>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE0000 +03FE0000077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001 +C07E0003807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FF +FFFFF8FFFFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE0000 +00FE000000FE00007FFFF8007FFFF8007FFFF81D277EA622>I<0C0003000F803F000FFF +FE000FFFFC000FFFF8000FFFF0000FFFE0000FFFC0000FFE00000E0000000E0000000E00 +00000E0000000E0000000E0000000E7FC0000FFFF8000F80FC000E003E000C003F000000 +1F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001FE0FE00 +1FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFF80003FFF00000FF +80001B277DA622>I<0007F000003FFC0000FFFE0001FC0F0003F01F8007E03F800FC03F +801FC03F801F803F803F801F003F8000007F0000007F0000007F000000FF000000FF0FC0 +00FF3FF800FF707C00FFC03E00FFC03F00FF801F80FF801FC0FF001FC0FF001FE0FF001F +E0FF001FE07F001FE07F001FE07F001FE07F001FE03F001FE03F001FC01F801FC01F803F +800FC03F0007E07E0003FFFC0000FFF000003FC0001B277DA622>I<0000038000000000 +07C00000000007C0000000000FE0000000000FE0000000000FE0000000001FF000000000 +1FF0000000003FF8000000003FF8000000003FF80000000073FC0000000073FC00000000 +F3FE00000000E1FE00000000E1FE00000001C0FF00000001C0FF00000003C0FF80000003 +807F80000007807FC0000007003FC0000007003FC000000E003FE000000E001FE000001E +001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF80000780007FC000070 +0003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001C00000FF0001C0 +0000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE2F297EA834>65 +D<00003FF001800003FFFE0380000FFFFF8780003FF007DF8000FF8001FF8001FE00007F +8003FC00003F8007F000001F800FF000000F801FE0000007801FE0000007803FC0000007 +803FC0000003807FC0000003807F80000003807F8000000000FF8000000000FF80000000 +00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 +00FF80000000007F80000000007F80000000007FC0000003803FC0000003803FC0000003 +801FE0000003801FE0000007000FF00000070007F000000E0003FC00001E0001FE00003C +0000FF8000F800003FF007E000000FFFFFC0000003FFFF000000003FF8000029297CA832 +>67 D<FFFFFFF80000FFFFFFFF8000FFFFFFFFE00003FC001FF80003FC0007FC0003FC00 +01FE0003FC0000FF0003FC00007F8003FC00003FC003FC00001FC003FC00001FE003FC00 +001FE003FC00000FF003FC00000FF003FC00000FF003FC00000FF003FC00000FF803FC00 +000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00 +000FF803FC00000FF803FC00000FF803FC00000FF003FC00000FF003FC00000FF003FC00 +001FE003FC00001FE003FC00001FC003FC00003FC003FC00007F8003FC00007F0003FC00 +01FE0003FC0003FC0003FC001FF800FFFFFFFFE000FFFFFFFF8000FFFFFFFC00002D297D +A835>I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC001FE003FC0007F003FC0001F003FC +0001F003FC0000F003FC00007003FC00007003FC00007003FC01C07803FC01C03803FC01 +C03803FC01C03803FC03C00003FC03C00003FC0FC00003FFFFC00003FFFFC00003FFFFC0 +0003FC0FC00003FC03C00003FC03C00003FC01C00E03FC01C00E03FC01C00E03FC01C01C +03FC00001C03FC00001C03FC00001C03FC00003C03FC00003803FC00007803FC0000F803 +FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFFFFFFF0FFFFFFFFF027297DA82D>I< +FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003FC000FE003FC0003E003FC0001E003 +FC0001E003FC0000E003FC0000E003FC0000E003FC0000F003FC03807003FC03807003FC +03807003FC03800003FC07800003FC07800003FC1F800003FFFF800003FFFF800003FFFF +800003FC1F800003FC07800003FC07800003FC03800003FC03800003FC03800003FC0380 +0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000 +03FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024297DA82B>I<FFFFF01F +FFFEFFFFF01FFFFEFFFFF01FFFFE03FC00007F8003FC00007F8003FC00007F8003FC0000 +7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000 +7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FFFFFF +FF8003FFFFFFFF8003FFFFFFFF8003FC00007F8003FC00007F8003FC00007F8003FC0000 +7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000 +7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000 +7F8003FC00007F80FFFFF01FFFFEFFFFF01FFFFEFFFFF01FFFFE2F297DA836>72 +D<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE +0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE +0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE +0001FE0001FE00FFFFFCFFFFFCFFFFFC16297EA81A>I<FFFFFFF800FFFFFFFF00FFFFFF +FFC003FC003FE003FC000FF003FC0007F803FC0007FC03FC0003FC03FC0003FE03FC0003 +FE03FC0003FE03FC0003FE03FC0003FE03FC0003FE03FC0003FE03FC0003FC03FC0007FC +03FC0007F803FC000FF003FC003FE003FFFFFF8003FFFFFE0003FC00000003FC00000003 +FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC +00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000FFFFF0 +0000FFFFF00000FFFFF0000027297DA82F>80 D<FFFFFFE00000FFFFFFFE0000FFFFFFFF +800003FC007FE00003FC000FF00003FC0007F80003FC0007FC0003FC0003FC0003FC0003 +FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003 +FC0003FC0007F80003FC0007F80003FC001FE00003FC007FC00003FFFFFE000003FFFFF0 +000003FC00FC000003FC007F000003FC003F800003FC003F800003FC001FC00003FC001F +E00003FC001FE00003FC001FE00003FC001FE00003FC001FE00003FC001FF00003FC001F +F00003FC001FF00003FC001FF00703FC001FF80703FC000FF80703FC0007F80EFFFFF003 +FE1CFFFFF001FFF8FFFFF0003FF030297DA834>82 D<7FFFFFFFFFC07FFFFFFFFFC07FFF +FFFFFFC07F803FC03FC07E003FC007C078003FC003C078003FC003C070003FC001C0F000 +3FC001E0F0003FC001E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E000 +3FC000E000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 +3FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 +3FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 +3FC0000000003FC0000000003FC0000000003FC0000000003FC00000007FFFFFE000007F +FFFFE000007FFFFFE0002B287EA730>84 D<FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0 +FFFFE07FFFF007FFF003FC0001FE00001C0003FC0001FE00001C0001FE0001FF00003800 +01FE0000FF0000380001FF0000FF0000780000FF0000FF8000700000FF0000FF80007000 +00FF8000FF8000F000007F8001FFC000E000007F8001FFC000E000003FC003FFE001C000 +003FC0039FE001C000003FE0039FE003C000001FE0070FF0038000001FE0070FF0038000 +001FF00F0FF0078000000FF00E07F8070000000FF00E07F80700000007F81E07FC0E0000 +0007F81C03FC0E00000007FC1C03FC1E00000003FC3801FE1C00000003FC3801FE1C0000 +0001FE7801FF3800000001FE7000FF3800000001FE7000FF3800000000FFF000FFF00000 +0000FFE0007FF000000000FFE0007FF0000000007FC0003FE0000000007FC0003FE00000 +00003FC0003FC0000000003F80001FC0000000003F80001FC0000000001F80001F800000 +00001F00000F80000000001F00000F80000000000E00000700000044297FA847>87 +D<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F000F803F8007003F8000003F +8000003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F803F803F003F807F003F +80FE003F80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC0FFF0FFC01FC03 +FC1E1B7E9A21>97 D<001FF80000FFFE0003F01F0007E03F800FC03F801F803F803F801F +007F800E007F0000007F000000FF000000FF000000FF000000FF000000FF000000FF0000 +00FF0000007F0000007F0000007F8000003F8001C01F8001C00FC0038007E0070003F01E +0000FFFC00001FE0001A1B7E9A1F>99 D<00003FF80000003FF80000003FF800000003F8 +00000003F800000003F800000003F800000003F800000003F800000003F800000003F800 +000003F800000003F800000003F800000003F800001FE3F80000FFFBF80003F03FF80007 +E00FF8000FC007F8001F8003F8003F8003F8007F0003F8007F0003F8007F0003F800FF00 +03F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003 +F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F80007C00FF80003F03BFF +8000FFF3FF80003FC3FF80212A7EA926>I<003FE00001FFF80003F07E0007C01F000F80 +1F801F800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFF +FFE0FF000000FF000000FF0000007F0000007F0000007F0000003F8000E01F8000E00FC0 +01C007E0038003F81F0000FFFE00001FF0001B1B7E9A20>I<0007F0003FFC00FE3E01F8 +7F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFF +C0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 +0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF +807FFF807FFF80182A7EA915>I<00FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F00 +7E107F007F007F007F007F007F007F007F007F007F007F007F003F007E001F007C001F80 +FC000FC1F8001FFFE00018FF800038000000380000003C0000003E0000003FFFF8001FFF +FF001FFFFF800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F800 +00F8F80000F87C0001F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22> +I<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000000FE0000000 +0FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000F +E00000000FE07F00000FE1FFC0000FE787E0000FEE03F0000FF803F0000FF803F8000FF0 +03F8000FF003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003 +F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8 +000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80212A7DA926 +>I<07000F801FC03FE03FE03FE01FC00F8007000000000000000000000000000000FFE0 +FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>I<FFE00000FFE00000FFE000000F +E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000F +E000000FE000000FE000000FE01FFC0FE01FFC0FE01FFC0FE007800FE00F000FE01E000F +E03C000FE078000FE0E0000FE3C0000FE7C0000FEFE0000FFFE0000FFFF0000FF3F8000F +E3F8000FC1FC000FC0FE000FC07F000FC07F000FC03F800FC01FC00FC00FC00FC00FE0FF +FC3FFEFFFC3FFEFFFC3FFE1F2A7EA924>107 D<FFE0FFE0FFE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 +0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA9 +14>I<FFC07F800FF000FFC1FFE03FFC00FFC383F0707E000FC603F8C07F000FCC01F980 +3F000FD801FF003F800FF001FE003F800FF001FE003F800FE001FC003F800FE001FC003F +800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F80 +0FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800F +E001FC003F800FE001FC003F800FE001FC003F800FE001FC003F80FFFE1FFFC3FFF8FFFE +1FFFC3FFF8FFFE1FFFC3FFF8351B7D9A3A>I<FFC07F0000FFC1FFC000FFC787E0000FCE +03F0000FD803F0000FD803F8000FF003F8000FF003F8000FE003F8000FE003F8000FE003 +F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8 +000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80 +FFFE3FFF80FFFE3FFF80211B7D9A26>I<003FE00001FFFC0003F07E000FC01F801F800F +C03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007 +F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F800F +C00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>I<FFE1FE0000FFE7FF8000FFFE +07E0000FF803F0000FF001F8000FE000FC000FE000FE000FE000FF000FE0007F000FE000 +7F000FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F +800FE0007F000FE000FF000FE000FF000FE000FE000FE001FC000FF001F8000FF803F000 +0FFE0FE0000FE7FF80000FE1FC00000FE00000000FE00000000FE00000000FE00000000F +E00000000FE00000000FE00000000FE00000000FE0000000FFFE000000FFFE000000FFFE +00000021277E9A26>I<FFC1F0FFC7FCFFCE3E0FD87F0FD87F0FF07F0FF03E0FF01C0FE0 +000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0 +000FE0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A1C>114 +D<03FE300FFFF01E03F03800F0700070F00070F00070F80070FC0000FFE0007FFE007FFF +803FFFE01FFFF007FFF800FFF80003FC0000FC60007CE0003CF0003CF00038F80038FC00 +70FF01E0F7FFC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000 +F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007 +F00007F00007F00007F00007F00007F00007F00007F00007F00007F03807F03807F03807 +F03807F03807F03803F03803F87001F86000FFC0001F8015267FA51B>I<FFE03FF800FF +E03FF800FFE03FF8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0 +03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003 +F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE007F80007E007F8 +0007E00FF80003F03BFF8001FFF3FF80003FC3FF80211B7D9A26>I<FFFE03FF80FFFE03 +FF80FFFE03FF8007F000700007F000700007F800F00003F800E00003FC01E00001FC01C0 +0001FC01C00000FE03800000FE038000007F070000007F070000007F8F0000003F8E0000 +003FDE0000001FDC0000001FDC0000000FF80000000FF80000000FF800000007F0000000 +07F000000003E000000003E000000001C00000211B7F9A24>I<FFFE7FFC0FFEFFFE7FFC +0FFEFFFE7FFC0FFE0FE007E000E007F003F001C007F003F001C007F807F803C003F807F8 +038003F807F8038001FC0EFC070001FC0EFC070001FE1EFC0F0000FE1C7E0E0000FE1C7E +0E0000FF383F1E00007F383F1C00007F783F3C00003FF01FB800003FF01FB800003FF01F +F800001FE00FF000001FE00FF000000FC007E000000FC007E000000FC007E00000078003 +C00000078003C0002F1B7F9A32>I<FFFC0FFF00FFFC0FFF00FFFC0FFF0007F003C00003 +F807800001FC07800000FE0F000000FF1E0000007F3C0000003FF80000001FF00000000F +F00000000FF000000007F000000007F80000000FFC0000001FFE0000001EFE0000003C7F +000000783F800000F01FC00001E01FE00001C00FE00003C007F000FFF01FFF80FFF01FFF +80FFF01FFF80211B7F9A24>I E /Fp 1 49 df<081C1C3838383070706060C0C0060D7E +8D09>48 D E /Fq 3 101 df<03E0000638101C1820381C20300E20700E40600E40E00E +80E00E80E00F00E00E00C00E00E00E00603E0020C6401F038014107E8F19>11 +D<0007800018600020600040700080700080700100700100700200E00200C0023F800223 +00043F800401C00400C00401C00801C00801C00801C0080180180380180300180700140E +0022180021F00020000020000040000040000040000040000080000014217F9916>I<00 +3F000700070007000E000E000E000E001C001C039C0C5C1838383830387038E070E070E0 +70E070C0E2C0E2C0E2E1E262643C38101A7E9914>100 D E /Fr +7 117 df<00030000000780000007800000078000000FC000000FC000001BE000001BE0 +00001BE0000031F0000031F0000060F8000060F80000E0FC0000C07C0000C07C0001803E +0001FFFE0003FFFF0003001F0003001F0006000F8006000F800E000FC0FFC07FFCFFC07F +FC1E1A7F9921>65 D<0FF0001C3C003E1E003E0E003E0F001C0F00000F0000FF000FCF00 +3E0F007C0F00F80F00F80F00F80F00F817007C27E01FC3E013117F9015>97 +D<FE0000FE00001E00001E00001E00001E00001E00001E00001E00001E7F001FC3C01F00 +E01E00F01E00781E00781E007C1E007C1E007C1E007C1E007C1E00781E00781E00F01F00 +E01D83C0187F00161A7F9919>I<03FC000F0E001C1F003C1F00781F00780E00F80000F8 +0000F80000F80000F800007800007800003C01801C03000F060003FC0011117F9014>I< +FC78FC9C1D3E1D3E1E3E1E1C1E001E001E001E001E001E001E001E001E00FFC0FFC00F11 +7F9012>114 D<1FB020704030C030C030F000FF807FE03FF807F8003CC00CC00CE00CE0 +08F830CFE00E117F9011>I<06000600060006000E000E001E003FF0FFF01E001E001E00 +1E001E001E001E001E001E181E181E181E181E180F3003E00D187F9711>I +E /Fs 46 122 df<00FC7C0183C607078E0607040E07000E07000E07000E07000E07000E +0700FFFFF00E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E +07000E07000E07000E07007F0FF0171A809916>11 D<00FC000182000703000607000E02 +000E00000E00000E00000E00000E0000FFFF000E07000E07000E07000E07000E07000E07 +000E07000E07000E07000E07000E07000E07000E07000E07007F0FE0131A809915>I<00 +7E1F8001C170400703C060060380E00E0380400E0380000E0380000E0380000E0380000E +038000FFFFFFE00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E +0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E07F8FE3FC1E1A809920 +>14 D<00800100020004000C00080018003000300030006000600060006000E000E000E0 +00E000E000E000E000E000E000E0006000600060006000300030003000180008000C0004 +0002000100008009267D9B0F>40 D<8000400020001000180008000C0006000600060003 +000300030003000380038003800380038003800380038003800380030003000300030006 +00060006000C0008001800100020004000800009267E9B0F>I<60F0F070101010202040 +80040B7D830B>44 D<FFC0FFC00A0280880D>I<60F0F06004047D830B>I<03000700FF00 +070007000700070007000700070007000700070007000700070007000700070007000700 +07000700FFF00C187D9713>49 D<0F80106020304038803CC01CE01C401C003C00380038 +0070006000C001800100020004040804100430083FF87FF8FFF80E187E9713>I<01E006 +100C1818383038300070006000E000E7C0E860F030F018E018E01CE01CE01C601C601C70 +1830183030186007C00E187E9713>54 D<000C0000000C0000000C0000001E0000001E00 +00003F000000270000002700000043800000438000004380000081C0000081C0000081C0 +000100E0000100E00001FFE000020070000200700006007800040038000400380008001C +0008001C001C001E00FF00FFC01A1A7F991D>65 D<003F0201C0C603002E0E001E1C000E +1C0006380006780002700002700002F00000F00000F00000F00000F00000F00000700002 +7000027800023800041C00041C00080E000803003001C0C0003F00171A7E991C>67 +D<FFFF000E01C00E00E00E00300E00380E001C0E001C0E000E0E000E0E000F0E000F0E00 +0F0E000F0E000F0E000F0E000F0E000F0E000E0E000E0E001E0E001C0E00380E00380E00 +700E01C0FFFF00181A7E991D>I<FFFFF00E00700E00300E00100E00180E00080E00080E +00080E04000E04000E04000E0C000FFC000E0C000E04000E04000E04000E00040E00040E +00080E00080E00080E00180E00380E0070FFFFF0161A7E991A>I<003F020001C0C60003 +002E000E001E001C000E001C00060038000600780002007000020070000200F0000000F0 +000000F0000000F0000000F0000000F001FFC070000E0070000E0078000E0038000E001C +000E001C000E000E000E000300160001C06600003F82001A1A7E991E>71 +D<FFE7FF0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00 +700FFFF00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00 +700E0070FFE7FF181A7E991D>I<FFE00E000E000E000E000E000E000E000E000E000E00 +0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B1A7F990E> +I<FFFF000E03C00E00E00E00700E00700E00780E00780E00780E00780E00700E00700E00 +E00E03C00FFF000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 +000E0000FFE000151A7E991A>80 D<0FC21836200E6006C006C002C002C002E00070007E +003FE01FF807FC003E000E00070003800380038003C002C006E004D81887E0101A7E9915 +>83 D<7FFFFF00701C0700401C0100401C0100C01C0180801C0080801C0080801C008000 +1C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000000 +1C0000001C0000001C0000001C0000001C0000001C0000001C0000001C000003FFE00019 +1A7F991C>I<FFE1FF0E00380E00100E00100E00100E00100E00100E00100E00100E0010 +0E00100E00100E00100E00100E00100E00100E00100E00100E00100E0010060020070020 +03004001804000C180003E00181A7E991D>I<3F8070C070E020700070007007F01C7030 +707070E070E071E071E0F171FB1E3C10107E8F13>97 D<FC00001C00001C00001C00001C +00001C00001C00001C00001C00001C00001CF8001F0E001E07001C03801C01801C01C01C +01C01C01C01C01C01C01C01C01C01C03801C03001E07001B0C0010F000121A7F9915>I< +07F80C1C381C30087000E000E000E000E000E000E0007000300438080C1807E00E107F8F +11>I<007E00000E00000E00000E00000E00000E00000E00000E00000E00000E0003CE00 +0C3E00380E00300E00700E00E00E00E00E00E00E00E00E00E00E00E00E00600E00700E00 +381E001C2E0007CFC0121A7F9915>I<07C01C3030187018600CE00CFFFCE000E000E000 +E0006000300438080C1807E00E107F8F11>I<01F0031807380E100E000E000E000E000E +000E00FFC00E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE00D +1A80990C>I<0FCE187330307038703870387038303018602FC02000600070003FF03FFC +1FFE600FC003C003C003C0036006381C07E010187F8F13>I<FC00001C00001C00001C00 +001C00001C00001C00001C00001C00001C00001CF8001D0C001E0E001E0E001C0E001C0E +001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E00FF9FC0121A7F9915 +>I<18003C003C001800000000000000000000000000FC001C001C001C001C001C001C00 +1C001C001C001C001C001C001C001C00FF80091A80990A>I<FC00001C00001C00001C00 +001C00001C00001C00001C00001C00001C00001C3F801C1E001C18001C10001C20001C40 +001DC0001FE0001CE0001C70001C78001C38001C1C001C1E001C1F00FF3FC0121A7F9914 +>107 D<FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00 +1C001C001C001C001C001C001C001C001C00FF80091A80990A>I<FC7C1F001D8E63801E +0781C01E0781C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C +0701C01C0701C01C0701C01C0701C0FF9FE7F81D107F8F20>I<FCF8001D0C001E0E001E +0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E00FF +9FC012107F8F15>I<07E01C38300C700E6006E007E007E007E007E007E0076006700E38 +1C1C3807E010107F8F13>I<FCF8001F0E001E07001C03801C03801C01C01C01C01C01C0 +1C01C01C01C01C01C01C03801C03001E07001F0C001CF0001C00001C00001C00001C0000 +1C00001C0000FF800012177F8F15>I<03C2000C2600381E00300E00700E00E00E00E00E +00E00E00E00E00E00E00E00E00700E00700E00381E001C2E0007CE00000E00000E00000E +00000E00000E00000E00007FC012177F8F14>I<FCE01D701E701E201C001C001C001C00 +1C001C001C001C001C001C001C00FFC00C107F8F0F>I<1F2060E04020C020C020F0007F +003FC01FE000F080708030C030C020F0408F800C107F8F0F>I<0400040004000C000C00 +1C003C00FFC01C001C001C001C001C001C001C001C001C201C201C201C201C200E400380 +0B177F960F>I<FC7E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E +001C0E001C0E001C0E001C1E000C2E0007CFC012107F8F15>I<FF1F803C06001C04001C +04001E0C000E08000E080007100007100007900003A00003A00001C00001C00001C00000 +800011107F8F14>I<FF3F9F803C0E0700380E06001C1604001C1704001E170C000E2308 +000E2388000F239800074190000741D00003C1E0000380E0000380E0000180C000010040 +0019107F8F1C>I<FF3F803C1C001C18000E100007200007600003C00001C00001E00003 +E000027000043800083800181C00381E00FC3FC012107F8F14>I<FF1F803C06001C0400 +1C04001E0C000E08000E080007100007100007900003A00003A00001C00001C00001C000 +008000008000010000010000E10000E20000E4000078000011177F8F14>I +E /Ft 16 118 df<70F8F8F0E005057A840F>46 D<0000FE000007018000180060002000 +100040001000800008010000040201F00404070804080C040210180202103003C2206001 +C220E0038240C0038241C0038241C003828380070483800704838007048380070483800E +0883800E0881801E0881802E1080C04E2080618E60403E07804000000020000000200000 +00100000E00C00078003007C0000FF80001F2379A225>64 D<00F8C00185C00705C00E03 +800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E10F01C +20701C20703C20305C40308C400F078014157B9419>97 D<03C03F800380038003800700 +0700070007000E000E000E000E001C001CF81D0C1E0E3C0638073807380F700F700F700F +700FE01EE01EE01EE03CE038E038607060E031C01F0010237BA216>I<007E0001C10003 +01800703800E07801C07803C0000380000780000780000780000F00000F00000F00000F0 +0000F00100700100700200300C001830000FC00011157B9416>I<00F803840E021C023C +0238027804F018FFE0F000F000E000E000E000E000E002E0026004701830600F800F157A +9416>101 D<00F0000FE00000E00000E00000E00001C00001C00001C00001C000038000 +038000038000038000070000071F0007218007C0C00F00E00F00E00E00E00E00E01C01C0 +1C01C01C01C01C01C0380380380380380380380704700708700E08700E10700610E00620 +6003C016237DA219>104 D<0000E00001E00001E00000C0000000000000000000000000 +000000000000000000000000001E00002300004380008380008380010380010380000700 +000700000700000700000E00000E00000E00000E00001C00001C00001C00001C00003800 +00380000380000380000700000700000700070E000F0C000F180006300003C0000132B82 +A00F>106 D<00F0000FE00000E00000E00000E00001C00001C00001C00001C000038000 +0380000380000380000700000701E0070210070C700E10F00E10F00E20600E40001D8000 +1E00001FC0001C7000383800383800381C00381C20703840703840703840701880E01880 +600F0014237DA216>I<01E01FC001C001C001C003800380038003800700070007000700 +0E000E000E000E001C001C001C001C0038003800380038007000700070007100E200E200 +E200E200640038000B237CA20C>I<1C0F002631C04740C08780E08780E08700E08700E0 +0E01C00E01C00E01C00E01C01C03801C03801C03801C0704380708380E08380E10380610 +7006203003C016157B941B>110 D<007E0001C3000381800701C00E01C01C01E03C01E0 +3801E07801E07801E07801E0F003C0F003C0F00380F00780700700700E00700C00301800 +18700007C00013157B9419>I<1C1F002620804741C08783C08703C08701808700000E00 +000E00000E00000E00001C00001C00001C00001C00003800003800003800003800007000 +0030000012157B9415>114 D<00FC000183000200800401800C03800C03000C00000F00 +000FF00007FC0003FE00003E00000F00000700700700F00600F00600E004004008002030 +001FC00011157D9414>I<00C001C001C001C001C003800380038003800700FFF8070007 +000E000E000E000E001C001C001C001C003800380038003810702070207040708031001E +000D1F7C9E10>I<1E00602300E04380E04381C08381C08701C08701C00703800E03800E +03800E03801C07001C07001C07001C07081C0E10180E101C0E101C1E200C262007C3C015 +157B941A>I E /Fu 24 118 df<001F83E000706E3000C07C780180F8780380F0780700 +70000700700007007000070070000700700007007000070070000700700007007000FFFF +FFC007007000070070000700700007007000070070000700700007007000070070000700 +700007007000070070000700700007007000070070000700700007007000070070000700 +7000070078007FE3FF801D2380A21C>11 D<70F8FCFC7404040404080810102040060F7C +840E>44 D<70F8F8F87005057C840E>46 D<008003800F80F38003800380038003800380 +038003800380038003800380038003800380038003800380038003800380038003800380 +038003800380038007C0FFFE0F217CA018>49 D<03F8000C1E001007002007804007C078 +07C07803C07807C03807C0000780000780000700000F00000E0000380003F000001C0000 +0F000007800007800003C00003C00003E02003E07003E0F803E0F803E0F003C04003C040 +0780200780100F000C1C0003F00013227EA018>51 D<007E0001C1000300800601C00E03 +C01C03C0180180380000380000780000700000700000F0F800F30C00F40600F40300F803 +80F801C0F001C0F001E0F001E0F001E0F001E0F001E07001E07001E07001E03801C03801 +C01803801C03000C0600070C0001F00013227EA018>54 D<01F000060C000C0600180700 +380380700380700380F001C0F001C0F001C0F001E0F001E0F001E0F001E0F001E07001E0 +7003E03803E01805E00C05E00619E003E1E00001C00001C00001C0000380000380300300 +780700780600700C002018001030000FC00013227EA018>57 D<FFFFF8000F800E000780 +0780078003C0078003E0078001E0078001F0078001F0078001F0078001F0078001F00780 +01E0078003E0078007C007800F8007803E0007FFFE0007800780078003C0078001E00780 +01F0078000F0078000F8078000F8078000F8078000F8078000F8078000F8078001F00780 +01F0078003E0078007C00F800F00FFFFFC001D227EA123>66 D<0007F008003C0C1800E0 +021801C001B8038000F8070000780F0000381E0000381E0000183C0000183C0000187C00 +00087800000878000008F8000000F8000000F8000000F8000000F8000000F8000000F800 +0000F8001FFF780000F8780000787C0000783C0000783C0000781E0000781E0000780F00 +007807000078038000B801C000B800E00318003C0C080007F00020247DA226>71 +D<03FFF0001F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F +00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F +00000F00000F00700F00F80F00F80F00F80E00F01E00401C0020380018700007C0001423 +7EA119>74 D<FFC00003FF0FC00003F007C00003E005E00005E005E00005E004F00009E0 +04F00009E004F00009E004780011E004780011E004780011E0043C0021E0043C0021E004 +3C0021E0041E0041E0041E0041E0040F0081E0040F0081E0040F0081E004078101E00407 +8101E004078101E00403C201E00403C201E00401E401E00401E401E00401E401E00400F8 +01E00400F801E00400F801E004007001E00E007001E01F007003F0FFE0203FFF28227EA1 +2D>77 D<03F0200C0C601802603001E07000E0600060E00060E00060E00020E00020E000 +20F00000F000007800007F00003FF0001FFE000FFF0003FF80003FC00007E00001E00000 +F00000F0000070800070800070800070800070C00060C00060E000C0F000C0C80180C607 +0081FC0014247DA21B>83 D<0FE0001838003C0C003C0E00180700000700000700000700 +00FF0007C7001E07003C0700780700700700F00708F00708F00708F00F087817083C2390 +0FC1E015157E9418>97 D<01FE000703000C07801C0780380300780000700000F00000F0 +0000F00000F00000F00000F00000F000007000007800403800401C00800C010007060001 +F80012157E9416>99 D<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFF +E0F00000F00000F00000F00000F000007000007800203800201C00400E008007030000FC +0013157F9416>101 D<00007001F198071E180E0E181C07001C07003C07803C07803C07 +803C07801C07001C07000E0E000F1C0019F0001000001000001800001800001FFE000FFF +C00FFFE03800F0600030400018C00018C00018C000186000306000303800E00E038003FE +0015217F9518>103 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00 +000E00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00 +700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00 +700E0070FFE7FF18237FA21B>I<1C001E003E001E001C00000000000000000000000000 +000000000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E00 +0E000E000E000E00FFC00A227FA10E>I<0E0000FE00001E00000E00000E00000E00000E +00000E00000E00000E00000E00000E00000E00000E00000E03FC0E01F00E01C00E01800E +02000E04000E08000E10000E38000EF8000F1C000E1E000E0E000E07000E07800E03C00E +01C00E01E00E00F00E00F8FFE3FE17237FA21A>107 D<0E1F80FE60C01E80E00F00700F +00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E +00700E00700E00700E0070FFE7FF18157F941B>110 D<01FC000707000C01801800C038 +00E0700070700070F00078F00078F00078F00078F00078F00078F000787000707800F038 +00E01C01C00E038007070001FC0015157F9418>I<0E3CFE461E8F0F0F0F060F000E000E +000E000E000E000E000E000E000E000E000E000E000E000F00FFF010157F9413>114 +D<02000200020002000600060006000E001E003E00FFF80E000E000E000E000E000E000E +000E000E000E000E000E040E040E040E040E040E040708030801F00E1F7F9E13>116 +D<0E0070FE07F01E00F00E00700E00700E00700E00700E00700E00700E00700E00700E00 +700E00700E00700E00700E00700E00F00E00F006017003827800FC7F18157F941B>I +E /Fv 15 115 df<FFFF80FFFF80FFFF8011037F9016>45 D<0000030000000000030000 +0000000300000000000780000000000780000000000FC0000000000FC0000000000FC000 +00000017E00000000013E00000000013E00000000023F00000000021F00000000021F000 +00000040F80000000040F80000000040F800000000807C00000000807C00000001807E00 +000001003E00000001003E00000002003F00000002001F00000002001F00000004000F80 +000004000F80000004000F800000080007C00000080007C00000180007E000001FFFFFE0 +00001FFFFFE00000200003F00000200001F00000200001F00000400001F80000400000F8 +0000400000F800008000007C00008000007C00008000007C00010000003E00010000003E +00030000003F00030000001F00070000001F001F8000003F80FFE00003FFFCFFE00003FF +FC2E327EB132>65 D<FFFFFFE00000FFFFFFFC000007E0007F000003E0000F800003E000 +03C00003E00001E00003E00000F00003E00000780003E000003C0003E000001E0003E000 +001E0003E000000F0003E000000F0003E000000F8003E00000078003E0000007C003E000 +0007C003E0000003C003E0000003C003E0000003E003E0000003E003E0000003E003E000 +0003E003E0000003E003E0000003E003E0000003E003E0000003E003E0000003E003E000 +0003E003E0000003E003E0000003C003E0000003C003E0000007C003E0000007C003E000 +00078003E00000078003E000000F8003E000000F0003E000001F0003E000001E0003E000 +003C0003E00000780003E00000F80003E00001F00003E00003E00003E0000F800007E000 +3F0000FFFFFFFC0000FFFFFFE000002B317CB033>68 D<00001FE000800000FFFC018000 +07F00F0180000F80018380003E0000C38000780000278000F00000178001E000000F8003 +C000000F800780000007800780000003800F00000003801F00000001801E00000001803E +00000001803C00000001803C00000000807C00000000807C0000000080780000000000F8 +0000000000F80000000000F80000000000F80000000000F80000000000F80000000000F8 +0000000000F80000000000F80000000000F80000000000F800000FFFFC7800000FFFFC7C +0000001FC07C0000000F803C0000000F803C0000000F803E0000000F801E0000000F801F +0000000F800F0000000F80078000000F8007C000000F8003C000000F8001E000000F8000 +F000001780007C00001780003E00006380000F8000C3800007F00781800000FFFE008000 +001FF000002E337CB134>71 D<FFFF807FFFC0FFFF807FFFC007F00003F80003E00001F0 +0003E00001F00003E00001F00003E00001F00003E00001F00003E00001F00003E00001F0 +0003E00001F00003E00001F00003E00001F00003E00001F00003E00001F00003E00001F0 +0003E00001F00003E00001F00003E00001F00003E00001F00003E00001F00003E00001F0 +0003E00001F00003FFFFFFF00003FFFFFFF00003E00001F00003E00001F00003E00001F0 +0003E00001F00003E00001F00003E00001F00003E00001F00003E00001F00003E00001F0 +0003E00001F00003E00001F00003E00001F00003E00001F00003E00001F00003E00001F0 +0003E00001F00003E00001F00003E00001F00003E00001F00003E00001F00003E00001F0 +0007F00003F800FFFF807FFFC0FFFF807FFFC02A317CB032>I<FFFF80FFFF8007F00003 +E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003 +E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003 +E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003 +E00003E00003E00003E00003E00003E00003E00007F000FFFF80FFFF8011317DB017>I< +FFFFFFC000FFFFFFF80007E0007E0003E0001F0003E000078003E00003C003E00001E003 +E00001F003E00001F003E00000F003E00000F803E00000F803E00000F803E00000F803E0 +0000F803E00000F803E00000F003E00001F003E00001E003E00003E003E00003C003E000 +078003E0001F0003E0007C0003FFFFF00003E000000003E000000003E000000003E00000 +0003E000000003E000000003E000000003E000000003E000000003E000000003E0000000 +03E000000003E000000003E000000003E000000003E000000003E000000003E000000003 +E000000003E000000003E000000007F0000000FFFF800000FFFF80000025317CB02D>80 +D<007F802001FFE02007C078600F001C601E0006E03C0003E0380001E0780000E0700000 +E070000060F0000060F0000060F0000020F0000020F0000020F8000020F80000007C0000 +007E0000003F0000003FC000001FF800000FFF800007FFF80003FFFC0000FFFF00000FFF +800000FFC000001FE0000007E0000003F0000001F0000000F0000000F8000000F8800000 +7880000078800000788000007880000078C0000078C0000070E00000F0E00000E0F00000 +E0F80001C0EC000380C7000700C1F01E00807FFC00800FF0001D337CB125>83 +D<7FFFFFFFFFE07FFFFFFFFFE07E000F8007E078000F8001E070000F8000E060000F8000 +6040000F80002040000F800020C0000F800030C0000F80003080000F80001080000F8000 +1080000F80001080000F80001080000F80001080000F80001000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000000F80000000000F8000 +0000000F80000000000F80000000000F80000000000F80000000001FC00000000FFFFF80 +00000FFFFF80002C317EB030>I<00FE00000303C0000C00E00010007000100038003C00 +3C003E001C003E001E003E001E0008001E0000001E0000001E0000001E00000FFE0000FC +1E0003E01E000F801E001F001E003E001E003C001E007C001E00F8001E04F8001E04F800 +1E04F8003E04F8003E0478003E047C005E043E008F080F0307F003FC03E01E1F7D9E21> +97 D<003F8000E0600380180700040F00041E001E1C003E3C003E7C003E7C0008780000 +F80000F80000F80000F80000F80000F80000F80000F80000F800007800007C00007C0000 +3C00011E00011E00020F000207000403801800E060003F80181F7D9E1D>99 +D<003F800000E0E0000380380007003C000E001E001E001E001C000F003C000F007C000F +0078000F8078000780F8000780F8000780FFFFFF80F8000000F8000000F8000000F80000 +00F8000000F8000000780000007C0000003C0000003C0000801E0000800E0001000F0002 +000780020001C00C0000F03000001FC000191F7E9E1D>101 D<0780000000FF80000000 +FF800000000F800000000780000000078000000007800000000780000000078000000007 +800000000780000000078000000007800000000780000000078000000007800000000780 +000000078000000007800000000780FE00000783078000078C03C000079001E00007A001 +E00007A000F00007C000F00007C000F000078000F000078000F000078000F000078000F0 +00078000F000078000F000078000F000078000F000078000F000078000F000078000F000 +078000F000078000F000078000F000078000F000078000F000078000F000078000F00007 +8000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF8021327EB125>104 +D<0780FE001FC000FF83078060F000FF8C03C18078000F9001E2003C0007A001E4003C00 +07A000F4001E0007C000F8001E0007C000F8001E00078000F0001E00078000F0001E0007 +8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E000780 +00F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000 +F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0 +001E00078000F0001E00078000F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83 +FFF0341F7E9E38>109 D<0783E0FF8C18FF907C0F907C07A07C07C03807C00007C00007 +C00007800007800007800007800007800007800007800007800007800007800007800007 +80000780000780000780000780000780000780000780000FC000FFFE00FFFE00161F7E9E +19>114 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin + +%%EndSetup +%%Page: 1 1 +1 0 bop 591 369 a Fv(APHID)22 b(Game-T)-6 b(ree)22 b(Searc)n(h)516 +490 y Fu(Mark)16 b(G.)g(Bro)q(c)o(kington,)g Ft(br)n(o)n([email protected])n +(erta.c)n(a)504 548 y Fu(Jonathan)i(Sc)o(hae\013er,)d +Ft([email protected])n(erta.c)n(a)685 606 y Fs(Departmen)o(t)f(of)f +(Computing)h(Science)797 664 y(Univ)o(ersit)o(y)h(of)d(Alb)q(erta)727 +722 y(Edmon)o(ton,)i(Alb)q(erta)g(T6G)f(2H1)911 780 y(Canada)828 +878 y Fu(June)k(13,)f(1996)890 1017 y Fr(Abstract)161 +1073 y Fs(This)g(pap)q(er)h(in)o(tro)q(duces)g(the)e(APHID)g(\(Async)o +(hronous)j(P)o(arallel)f(Hierarc)o(hical)h(Iterativ)o(e)e(Deep)q +(ening\))i(game-)104 1118 y(tree)13 b(searc)o(h)g(algorithm.)19 +b(An)13 b(APHID)g(searc)o(h)h(is)f(con)o(trolled)j(b)o(y)d(a)g(master)g +(and)h(a)f(series)h(of)f(sla)o(v)o(e)h(pro)q(cessors.)k(The)104 +1164 y(master)d(searc)o(hes)g(the)g(\014rst)g Fq(d)551 +1148 y Fp(0)576 1164 y Fs(ply)h(of)e(the)h(game-tree)g(rep)q(eatedly)m +(.)24 b(The)14 b(sla)o(v)o(es)i(are)f(resp)q(onsible)i(for)e(the)g(b)q +(ottom)104 1210 y(plies)k(of)f(the)f(game-tree.)32 b(The)17 +b(sla)o(v)o(es)i(async)o(hronously)i(read)d(w)o(ork)g(lists)h(from)e +(the)h(master)g(and)g(return)h(score)104 1255 y(information)g(to)d(the) +h(master.)29 b(The)17 b(master)g(uses)g(the)g(returned)h(score)f +(information)i(to)e(generate)g(appro)o(ximate)104 1301 +y(minimax)e(v)n(alues,)f(un)o(til)g(all)h(of)d(the)i(required)g(score)f +(information)j(is)d(a)o(v)n(ailable.)161 1346 y(APHID)e(has)g(b)q(een)g +(programmed)g(as)g(an)g(easy)g(to)f(implemen)o(t,)j(game-indep)q(enden) +o(t)g Fq(\013\014)f Fs(library)m(,)g(and)f(w)o(as)g(imple-)104 +1392 y(men)o(ted)g(in)o(to)h(a)g(c)o(hess)f(program)h(with)g(one)f(da)o +(y)h(of)f(programming)i(e\013ort.)k(APHID)11 b(yields)i(reasonable)g(p) +q(erformance)104 1438 y(on)e(a)h(net)o(w)o(ork)f(of)g(w)o(orkstations,) +i(an)f(arc)o(hitecture)h(where)e(it)h(is)g(extremely)g(di\016cult)h(to) +f(use)f(a)h(shared)g(transp)q(osition)104 1483 y(table)i(e\013fectiv)o +(ely)m(.)0 1619 y Fo(1)69 b(In)n(tro)r(duction)0 1722 +y Fn(The)18 b(alpha-b)q(eta)f(\()p Fm(\013\014)r Fn(\))h(minim)o(ax)c +(tree)19 b(searc)o(h)f(algorithm)d(has)j(pro)o(v)o(en)f(to)g(b)q(e)h(a) +f(di\016cult)g(algorithm)e(to)i(parallelize.)0 1785 y(Although)e(sim)o +(ulations)e(predict)k(excellen)o(t)f(parallel)f(p)q(erformance,)g(man)o +(y)f(of)h(these)i(results)g(are)f(based)h(on)e(an)h(unrea-)0 +1847 y(sonable)c(set)h(of)e(assumptions.)17 b(In)12 b(practice,)h(kno)o +(wing)e(where)i(to)f(initiate)f(parallel)g(activit)o(y)g(is)h +(di\016cult)g(since)h(the)f(result)0 1909 y(of)18 b(searc)o(hing)g(one) +h(no)q(de)f(at)g(a)g(branc)o(h)h(ma)o(y)d(ob)o(viate)i(the)h(parallel)e +(w)o(ork)g(of)h(the)h(other)g(branc)o(hes)g(\(a)f(so-called)g +Fl(cut-)0 1972 y(o\013)p Fn(\).)h(In)14 b(real-w)o(orld)f(implemen)o +(tations,)d(suc)o(h)15 b(as)f(for)g(high-p)q(erformance)f(c)o(hess,)i +(c)o(hec)o(k)o(ers)h(and)d(Othello)h(game-pla)o(ying)0 +2034 y(programs,)e(the)j(programs)d(su\013er)k(from)c(three)j(ma)r(jor) +d(sources)k(of)d(parallel)g(ine\016ciency:)62 2121 y +Fk(\017)21 b Fl(Synchr)n(onization)15 b(Overhe)n(ad)p +Fn(:)i(The)d(searc)o(h)g(t)o(ypically)d(has)i(man)o(y)e(sync)o +(hronization)i(p)q(oin)o(ts)f(that)h(result)h(in)e(a)h(high)104 +2184 y(p)q(ercen)o(tage)i(of)f(pro)q(cessor)h(idle)f(time.)62 +2275 y Fk(\017)21 b Fl(Communic)n(ation)f(Overhe)n(ad)p +Fn(:)29 b(Pro)q(cesses)22 b(m)o(ust)c(comm)o(unicate)f(information)f(b) +q(et)o(w)o(een)21 b(them;)f(the)g(impact)e(of)104 2338 +y(comm)o(unicatio)o(n)11 b(dep)q(ends)16 b(on)d(the)i(frequency)g(of)e +(messages)h(and)g(the)g(comm)o(unication)d(latency)m(.)62 +2429 y Fk(\017)21 b Fl(Se)n(ar)n(ch)c(Overhe)n(ad)p Fn(:)22 +b(Searc)o(h)16 b(trees)i(are)e(really)f(directed)i(graphs.)24 +b(W)m(ork)15 b(p)q(erformed)g(on)h(one)g(pro)q(cessor)h(ma)o(y)d(b)q(e) +104 2491 y(useful)d(to)g(the)g(computations)f(of)g(another)i(pro)q +(cessor.)18 b(If)11 b(this)g(information)d(is)j(not)g(a)o(v)n(ailable,) +e(unnecessary)k(searc)o(h)104 2554 y(ma)o(y)f(b)q(e)i(done.)0 +2641 y(These)h(o)o(v)o(erheads)f(are)g(not)f(indep)q(enden)o(t)i(of)d +(eac)o(h)i(other.)19 b(F)m(or)13 b(example,)f(increased)i(comm)o +(unication)c(can)k(help)f(reduce)0 2704 y(the)j(searc)o(h)h(o)o(v)o +(erhead.)23 b(Reducing)15 b(the)h(n)o(um)o(b)q(er)f(of)f(sync)o +(hronization)i(p)q(oin)o(ts)f(can)h(increase)g(the)g(searc)o(h)h(o)o(v) +o(erhead.)23 b(In)965 2828 y(1)p eop +%%Page: 2 2 +2 1 bop 0 195 a Fn(practice,)14 b(the)h(righ)o(t)e(balance)h(b)q(et)o +(w)o(een)h(these)g(sources)h(of)d(program)f(ine\016ciency)i(is)g +(di\016cult)f(to)h(\014nd,)f(and)h(one)g(usually)0 257 +y(p)q(erforms)f(man)o(y)f(exp)q(erimen)o(ts)j(to)e(\014nd)h(the)h(righ) +o(t)e(trade-o\013s)i(to)f(maxim)o(ize)d(p)q(erformance.)62 +320 y(Man)o(y)i(parallel)g Fm(\013\014)j Fn(algorithms)11 +b(ha)o(v)o(e)j(app)q(eared)g(in)f(the)i(literature)f([1)o(,)f(2,)g(3,)g +(9,)g(13)o(,)g(22].)k(The)d(PV-Split)g(algorithm)0 382 +y(recognized)19 b(that)f(some)f(no)q(des)h(exist)h(in)e(the)h(searc)o +(h)h(tree)g(where,)h(ha)o(ving)d(searc)o(hed)i(the)g(\014rst)f(branc)o +(h)g(sequen)o(tially)m(,)0 444 y(the)f(remaining)e(branc)o(hes)i(can)g +(b)q(e)g(searc)o(hed)h(in)e(parallel)g([16)o(].)25 b(Initiating)15 +b(parallelism)f(along)h(the)i(b)q(est)h(line)e(of)g(pla)o(y)m(,)0 +506 y(the)h Fl(princip)n(al)f(variation)p Fn(,)g(w)o(as)g(e\013ectiv)o +(e)h(for)f(a)f(small)f(n)o(um)o(b)q(er)h(of)h(pro)q(cessors,)i +(although)d(v)n(ariations)g(on)h(this)g(sc)o(heme)0 569 +y(seemed)e(limited)e(to)i(sp)q(eedups)i(of)d(less)h(than)g(8)g([21)o +(].)62 631 y(The)e(idea)f(can)h(b)q(e)g(generalized)g(to)g(other)g(no)q +(des)g(in)f(the)h(tree.)18 b(A)o(t)12 b(no)q(des)g(where)h(the)f +(\014rst)g(branc)o(h)g(has)g(b)q(een)g(searc)o(hed)0 +693 y(and)17 b(no)g(cut-o\013)h(o)q(ccurs,)h(the)e(rest)i(can)e(lik)o +(ely)f(b)q(e)i(searc)o(hed)h(in)e(parallel.)26 b(It)18 +b(is)f(a)g(trade-o\013)g({)g(increased)i(parallelism)0 +756 y(v)o(ersus)c(additional)d(searc)o(h)k(o)o(v)o(erhead,)e(since)g +(one)h(of)e(these)j(parallel)d(tasks)h(could)g(cause)h(a)f(cuto\013.)19 +b(This)14 b(idea)g(has)g(b)q(een)0 818 y(tried)e(b)o(y)g(a)f(n)o(um)o +(b)q(er)h(of)f(researc)o(hers)k([6)o(,)c(7,)g(10].)17 +b(The)12 b(b)q(est-kno)o(wn)g(instance)h(of)e(this)h(t)o(yp)q(e)h(of)e +(algorithm)e(is)j(called)f Fl(Y)m(oung)0 880 y(Br)n(others)k(Wait)f +Fn(\(YBW\))h(and)f(w)o(as)g(implemen)o(ted)e(b)o(y)i(F)m(eldmann)e(in)i +(the)h Fj(Zugzw)l(ang)f Fn(c)o(hess)i(program)d([5)o(].)19 +b(F)m(eldmann)0 942 y(ac)o(hiev)o(ed)f(a)f(344-fold)f(sp)q(eedup)j +(using)e(YBW)h(on)f(1024)g(pro)q(cessors.)31 b(V)m(ariations)16 +b(of)h(this)h(algorithm)d(ha)o(v)o(e)i(app)q(eared)0 +1005 y(with)d(comparable)e(exp)q(erimen)o(tal)h(results,)i(suc)o(h)f +(as)g(Jam)o(b)q(oree)g(searc)o(h)h([12)o(])e(and)h(ABD)o(AD)o(A)g([24)o +(].)62 1067 y(This)20 b(class)f(of)g(algorithms)e(cannot)j(ac)o(hiev)o +(e)g(a)f(linear)g(sp)q(eedup)i(primarily)c(due)i(to)h(sync)o +(hronization)f(o)o(v)o(erhead;)0 1129 y(the)c(searc)o(h)h(tree)g(ma)o +(y)d(ha)o(v)o(e)i(thousands)g(of)f(sync)o(hronization)h(p)q(oin)o(ts)g +(and)f(there)j(are)e(n)o(umerous)f(o)q(ccasions)h(where)h(the)0 +1191 y(pro)q(cesses)i(are)e(starv)o(ed)h(for)e(w)o(ork.)23 +b(The)16 b(algorithms)e(ha)o(v)o(e)h(lo)o(w)g(searc)o(h)i(o)o(v)o +(erhead,)f(but)f(this)h(is)g(primarily)d(due)j(to)f(the)0 +1254 y(implemen)o(tatio)o(n)c(of)j(a)f(globally)f(shared)j(transp)q +(osition)e(table)h([8].)62 1316 y(This)g(pap)q(er)h(in)o(tro)q(duces)h +(the)f(Async)o(hronous)g(P)o(arallel)e(Hierarc)o(hical)h(Iterativ)o(e)h +(Deep)q(ening)g(\(APHID)1723 1301 y Fi(1)1742 1316 y +Fn(\))f(game-tree)0 1378 y(searc)o(h)i(algorithm.)k(The)c(algorithm)d +(represen)o(ts)18 b(a)d(departure)i(from)c(the)j(approac)o(hes)g(used)h +(in)d(practice.)24 b(In)15 b(con)o(trast)0 1440 y(to)d(other)h(sc)o +(hemes,)g(APHID)g(de\014nes)h(a)e(fron)o(tier)h(\(a)f(\014xed)h(n)o(um) +o(b)q(er)f(of)f(mo)o(v)o(es)h(a)o(w)o(a)o(y)f(from)g(the)i(ro)q(ot)f +(of)g(the)h(searc)o(h)h(tree\),)0 1503 y(and)d(all)g(no)q(des)h(at)f +(the)h(fron)o(tier)g(are)f(done)h(in)f(parallel.)16 b(Eac)o(h)c(w)o +(ork)o(er)g(pro)q(cess)h(is)e(assigned)h(an)f(equal)g(n)o(um)o(b)q(er)g +(of)g(fron)o(tier)0 1565 y(no)q(des)i(to)f(searc)o(h.)19 +b(The)13 b(w)o(ork)o(ers)g(con)o(tin)o(ually)d(searc)o(h)k(these)g(no)q +(des)f(deep)q(er)h(and)e(deep)q(er,)i(nev)o(er)f(ha)o(ving)f(to)g(sync) +o(hronize)0 1627 y(with)j(a)g(con)o(trolling)f(master)h(pro)q(cess.)24 +b(The)16 b(master)f(pro)q(cess)i(rep)q(eatedly)f(searc)o(hes)i(to)d +(the)h(fron)o(tier)f(to)g(get)h(the)g(latest)0 1689 y(searc)o(h)g +(results.)k(In)15 b(this)f(w)o(a)o(y)m(,)f(there)j(is)e(e\013ectiv)o +(ely)i(no)e(idle)g(time;)f(searc)o(h)i(ine\016ciencies)h(are)f +(primarily)d(due)j(to)f(searc)o(h)0 1752 y(o)o(v)o(erhead.)29 +b(APHID's)18 b(p)q(erformance)f(do)q(es)h(not)g(rely)f(on)h(the)g +(implemen)o(tati)o(on)d(of)i(a)g(global)f(shared)i(memory)m(,)d(whic)o +(h)0 1814 y(mak)o(es)f(the)i(algorithm)d(suitable)i(for)g(lo)q +(osely-coupled)f(arc)o(hitectures)k(\(suc)o(h)e(as)f(a)g(net)o(w)o(ork) +h(of)e(w)o(orkstations\),)h(as)h(w)o(ell)0 1876 y(as)e(tigh)o +(tly-coupled)f(arc)o(hitectures.)62 1939 y(Unlik)o(e)f(most)f(parallel) +g Fm(\013\014)k Fn(algorithms,)9 b(APHID)k(is)f(designed)h(to)f(\014t)g +(in)o(to)g(a)g(sequen)o(tial)g Fm(\013\014)j Fn(structure.)k(APHID)13 +b(has)0 2001 y(b)q(een)i(implemen)o(ted)e(as)h(a)g(game-indep)q(enden)o +(t)g(library)g(of)f(routines.)20 b(These,)c(com)o(bined)d(with)h +(application-dep)q(enden)o(t)0 2063 y(routines)d(that)f(the)g(user)h +(supplies,)g(allo)o(w)d(a)i(sequen)o(tial)g Fm(\013\014)j +Fn(program)8 b(to)i(b)q(e)h(easily)e(con)o(v)o(erted)i(to)f(a)g +(parallel)f Fm(\013\014)j Fn(program.)0 2125 y(Although)i(most)f +(parallel)g Fm(\013\014)j Fn(programs)d(tak)o(e)h(mon)o(ths)f(to)h(dev) +o(elop,)g(the)h(game-indep)q(enden)o(t)f(library)g(allo)o(ws)e(users)k +(to)0 2188 y(in)o(tegrate)e(parallelism)d(in)o(to)j(their)g +(application)e(with)i(only)f(a)h(few)g(hours)g(of)f(w)o(ork.)62 +2250 y(This)j(pap)q(er)h(discusses)i(the)e(APHID)f(algorithm,)e(its)i +(application-indep)q(enden)o(t)g(in)o(terface)h(and)f(the)h(p)q +(erformance)0 2312 y(of)12 b(the)h(APHID)g(algorithm.)i(The)f(pap)q(er) +f(is)g(organized)f(in)o(to)g(\014v)o(e)h(sections.)19 +b(Section)13 b(2)g(is)f(a)h(brief)f(summary)e(of)j(previous)0 +2374 y(w)o(ork)18 b(in)g(parallel)f(game-tree)h(searc)o(h.)33 +b(Section)19 b(3)f(is)g(primarily)e(concerned)21 b(with)d(the)h +(details)f(of)g(ho)o(w)g(the)h(APHID)0 2437 y(algorithm)d(op)q(erates,) +21 b(and)e(ho)o(w)g(the)g(library)f(in)o(tegrates)i(with)f(an)f +(existing)h(sequen)o(tial)g Fm(\013\014)i Fn(algorithm.)31 +b(Section)19 b(4)0 2499 y(describ)q(es)h(the)e(preliminary)d(results)k +(of)e(in)o(tegrating)g(the)h(library)f(in)o(to)g(a)g(c)o(hess)i +(program,)d(and)i(Section)g(5)f(describ)q(es)0 2561 y(some)c(of)g(the)i +(researc)o(h)h(directions)e(that)g(w)o(e)g(are)g(curren)o(tly)h(w)o +(orking)e(on.)p 0 2596 780 2 v 46 2623 a Fh(1)64 2634 +y Fg(An)e(aphid)f(is)i(a)f(soft-b)q(o)q(died)e(insect)h(that)g(suc)o +(ks)h(the)g(sap)g(from)f(plan)o(ts.)965 2828 y Fn(2)p +eop +%%Page: 3 3 +3 2 bop 0 195 a Fo(2)69 b(Previous)23 b(W)-6 b(ork)24 +b(on)g(P)n(arallel)d Ff(\013\014)26 b Fo(Algorithms)0 +298 y Fn(The)14 b(idea)g(b)q(ehind)g(the)g(PV-Split)g(algorithm)d(has)j +(pro)o(v)o(en)g(to)g(b)q(e)g(a)g(fundamen)o(tal)d(building)i(blo)q(c)o +(k)g(in)h(dev)o(eloping)f(high-)0 361 y(p)q(erformance)i(parallel)e +(game-tree)h(algorithms)f([16)o(].)20 b(Simply)12 b(stated,)k(the)f +(\014rst)g(mo)o(v)o(e)f(at)g(a)h(principal)e(v)n(ariation)h(no)q(de)0 +423 y(m)o(ust)19 b(b)q(e)h(completely)f(ev)n(aluated)g(b)q(efore)i(the) +f(subsequen)o(t)i(mo)o(v)o(es)c(can)i(b)q(e)g(handed)h(out)e(to)h +(other)g(pro)q(cessors)i(and)0 485 y(ev)n(aluated)13 +b(in)h(parallel.)i(P)o(arallelism)c(o)q(ccurs)j(only)e(at)g(the)h +Fe(PV)g Fn(no)q(des,)g(and)f(the)h(nature)h(of)e(the)h(algorithm)d +(ensures)16 b(that)0 548 y(an)10 b(accurate)i(searc)o(h)g(windo)o(w)e +(is)g(determined)h(b)q(efore)g(allo)q(cating)e(w)o(ork)i(to)f(the)h +(sla)o(v)o(es)g(in)f(parallel,)g(whic)o(h)g(reduces)j(searc)o(h)0 +610 y(o)o(v)o(erhead.)18 b(Although)c(it)f(is)h(easy)g(to)g(con)o(trol) +f(the)i(PV-Split)e(algorithm)e(since)k(only)e(one)h Fe(PV)f +Fn(no)q(de)h(can)g(b)q(e)h(ev)n(aluated)e(in)0 672 y(parallel)h(at)g(a) +h(giv)o(en)f(momen)o(t)e(in)i(time,)f(a)i(di\013eren)o(t)h(approac)o(h) +e(is)h(needed)h(if)e(y)o(ou)g(ha)o(v)o(e)h(more)f(pro)q(cessors)j(than) +d(mo)o(v)o(es)0 734 y(at)g(the)g(curren)o(t)i Fe(PV)d +Fn(no)q(de.)62 797 y(Newb)q(orn's)k(UIDP)m(ABS)f(algorithm)d([17)o(])i +(w)o(as)h(the)g(\014rst)g(attempt)f(to)h(async)o(hronously)g(start)g +(the)g(next)h(lev)o(el)e(of)g(an)0 859 y(iterativ)o(ely)e(deep)q(ened)k +(searc)o(h)e(instead)f(of)g(sync)o(hronizing)g(at)g(the)g(ro)q(ot)g(of) +g(the)h(game-tree.)j(The)c(mo)o(v)o(es)f(from)f(the)j(ro)q(ot)0 +921 y(p)q(osition)d(are)h(partitioned)f(among)f(the)i(pro)q(cessors,)i +(and)d(the)i(pro)q(cessors)g(searc)o(h)g(their)f(o)o(wn)g(subset)h(of)e +(the)h(mo)o(v)o(es)e(with)0 983 y(iterativ)o(e)k(deep)q(ening.)21 +b(Eac)o(h)15 b(pro)q(cessor)h(is)f(giv)o(en)f(the)h(same)f(initial)e +(windo)o(w,)i(but)h(some)e(of)h(the)i(pro)q(cessors)g(ma)o(y)d(ha)o(v)o +(e)0 1046 y(c)o(hanged)g(their)h(windo)o(ws,)e(based)i(on)f(the)g +(searc)o(h)i(results)f(of)e(their)i(mo)o(v)o(es.)i(The)e(UIDP)m(ABS)f +(algorithm)d(then)k(com)o(bines)0 1108 y(the)f(results)h(once)g(a)e +(predetermined)h(time)f(limit)e(has)j(b)q(een)h(reac)o(hed.)k(The)c +(APHID)f(algorithm)d(uses)j(the)h(basic)f(concept)0 1170 +y(of)g(ho)o(w)h(to)f(implemen)o(t)f(async)o(hronous)i(searc)o(h)h(from) +d(UIDP)m(ABS,)i(as)g(w)o(e)g(shall)f(see)i(in)f(Section)g(3.)62 +1232 y(The)f(Y)m(oung)f(Brothers)i(W)m(ait)c(\(YBW\))j(algorithm)d +(extends)k(PV-Split)d(to)h(state)i(that)e(the)h(other)g(mo)o(v)o(es)e +(\(the)i(\\y)o(oung)0 1295 y(brothers"\))19 b(can)e(b)q(e)h(searc)o +(hed)h(in)e(parallel)f(only)g(if)h(the)h(\014rst)g(mo)o(v)o(e)e(of)g(a) +h(no)q(de)h(has)g(b)q(een)g(completely)e(searc)o(hed)j(and)0 +1357 y(has)d(not)g(caused)h(the)g Fm(\013\014)h Fn(windo)o(w)d(to)h(b)q +(e)h(cut)f(o\013)g([5)o(].)24 b(This)16 b(is)g(alw)o(a)o(ys)f(true)i +(at)f Fe(PV)f Fn(no)q(des,)i(and)f(is)g(generally)f(true)i(at)0 +1419 y Fe(ALL)c Fn(no)q(des,)i(assuming)e(w)o(e)h(start)h(with)f(an)g +(in\014nite)f(searc)o(h)j(windo)o(w)d(at)h(the)h(ro)q(ot)f(p)q +(osition.)k(Th)o(us,)c(there)i(are)e(m)o(ultiple)0 1482 +y(p)q(oten)o(tial)e(parallel)g(no)q(des)i(at)f(an)o(y)f(giv)o(en)g +(time)g(when)h(searc)o(hing)h(the)f(tree.)19 b(Ho)o(w)o(ev)o(er,)13 +b(the)h(searc)o(h)g(is)f(still)f(sync)o(hronized)0 1544 +y(in)f(the)i(same)e(w)o(a)o(y)g(that)g(PV-Split)h(is)f(sync)o +(hronized.)19 b(Un)o(til)11 b(a)g(searc)o(h)i(of)e(all)g(c)o(hildren)h +(of)f(a)h(giv)o(en)f Fe(PV)g Fn(no)q(de)h(is)g(completed,)0 +1606 y(the)i(other)h(c)o(hildren)f(of)f(the)i Fe(PV)e +Fn(no)q(de's)h(paren)o(t)h(cannot)f(b)q(e)g(searc)o(hed.)62 +1668 y(Although)i(the)i Fl(synchr)n(onization)g(overhe)n(ad)f +Fn(in)f(YBW)h(is)g(a)f(lot)g(smaller)f(than)i(in)f(PV-Split,)h(w)o(ork) +o(ers)g(still)f(searc)o(h)0 1731 y(for)e(a)h(pro)q(cessor)h(that)f(has) +g(w)o(ork)g(to)f(do)h(\(according)g(to)f(the)i(YBW)e(criterion\))i(b)o +(y)e(sending)h(a)g(message)f(to)h(a)f(pro)q(cessor)0 +1793 y(at)f(random.)j(This)e(dynamic)d(load-balancing)h(metho)q(d,)g +(\\w)o(ork-stealing")g([12)o(],)g(is)h(e\013ectiv)o(e)i(in)e(balancing) +f(the)i(share)h(of)0 1855 y(w)o(ork)f(done)g(on)f(eac)o(h)i(pro)q +(cessor,)g(but)f(p)q(erio)q(dically)f(imp)q(oses)g(a)h(hea)o(vy)g(comm) +o(unicati)o(on)d(load.)62 1917 y(In)h(the)g(implemen)o(tatio)o(n)d(of)i +Fj(Zugzw)l(ang)h Fn(presen)o(ted)i(in)d(F)m(eldmann's)e(thesis)k([5)o +(],)e(a)g(distributed)i(transp)q(osition)e(table)0 1980 +y(w)o(as)g(implemen)o(ted)e(with)j(message)f(passing)g(across)h(a)f +(series)i(of)e(T)m(ransputers)i(to)e(impro)o(v)o(e)f(the)i(results)g +(of)f(the)h(algorithm.)0 2042 y(On)j(a)g(system)f(with)h(a)f(lo)o(w)g +(CPU)h(cycle)h(to)e(message)h(latency)g(ratio,)f(this)h(t)o(yp)q(e)g +(of)f(distributed)i(transp)q(osition)e(table)h(is)0 2104 +y(practical)f(and)f(is)h(useful)g(in)g(con)o(trolling)e(the)j(searc)o +(h)g(o)o(v)o(erhead.)62 2166 y(Da)o(vid's)k Fm(\013\014)r +Fk(\003)i Fn(framew)o(ork)e(uses)j(a)e(global)f(transp)q(osition)h +(table)h(to)f(con)o(trol)g(where)i(the)f(pro)q(cessors)i(should)d(b)q +(e)0 2229 y(searc)o(hing)g([4].)35 b(By)20 b(adding)f(a)h(\014eld)g(to) +g(the)g(global)f(transp)q(osition)g(table)h(to)g(indicate)g(the)g(n)o +(um)o(b)q(er)f(of)h(pro)q(cessors)0 2291 y(searc)o(hing)15 +b(that)f(no)q(de,)g(eac)o(h)g(pro)q(cessor)i(can)e(pretend)i(it)d(is)h +(searc)o(hing)h(the)f(tree)i(sequen)o(tially)m(,)c(and)i(mak)o(e)f +(decisions)h(on)0 2353 y(where)h(to)f(searc)o(h)h(based)f(on)g(the)g(n) +o(um)o(b)q(er)f(of)g(pro)q(cessors)j(searc)o(hing)e(the)h(c)o(hildren)f +(of)f(the)h(no)q(de.)19 b(When)14 b(an)o(y)f(pro)q(cessor)0 +2416 y(generates)j(a)e(v)n(alue)g(for)f(the)i(ro)q(ot)g(p)q(osition,)e +(the)i(searc)o(h)g(is)f(\014nished.)20 b(Unfortunately)m(,)13 +b(Da)o(vid's)g(metho)q(d)h(of)f(con)o(trolling)0 2478 +y(where)h(the)f(pro)q(cessors)i(should)e(b)q(e)h(searc)o(hing)f(w)o(as) +g(ine\016cien)o(t,)f(and)h(the)g(sc)o(heme)g(w)o(as)g(hamp)q(ered)g(b)o +(y)f(the)i(use)g(of)e(half)g(of)0 2540 y(the)h(T)m(ransputers)g(as)f +(transp)q(osition)g(table)g(storage)g(units,)g(limiting)d(the)j(sp)q +(eedup)i(rep)q(orted)f(to)f(6.5)f(on)h(16)f(T)m(ransputers.)0 +2602 y(Regrettably)m(,)i(no)h(w)o(ork)f(is)h(rep)q(orted)h(that)f +(addresses)i(these)g(shortcomings.)62 2665 y(W)m(eill)h([24)o(])g +(recognized)j(that)e(the)h(YBW)f(criterion)h(could)f(b)q(e)h(used)g(in) +f(conjunction)g(with)g(the)h Fm(\013\014)r Fk(\003)f +Fn(framew)o(ork.)965 2828 y(3)p eop +%%Page: 4 4 +4 3 bop 0 195 a Fn(W)m(eill)14 b(sho)o(w)o(ed)h(the)h(com)o(bination,)d +(ABD)o(AD)o(A,)h(yields)i(comparable)e(p)q(erformance)h(to)g(a)g(YBW)g +(implemen)o(tation)d(on)j(a)0 257 y(CM-5.)k(On)14 b(16)g(pro)q +(cessors,)i(ABD)o(AD)o(A)e(yielded)g(an)g(10-fold)f(sp)q(eedup)j(for)e +(a)g(c)o(hess)h(program,)d(while)i(YBW)h(generated)0 +320 y(a)f(sp)q(eedup)h(of)e(just)h(under)h(8.)62 382 +y(Unfortunately)m(,)j(neither)g(of)f(these)i(sc)o(heduling)f(metho)q +(ds)f(deal)g(adequately)h(with)f(arc)o(hitectures)j(that)d(ha)o(v)o(e)h +(high)0 444 y(CPU)e(cycle/message)f(latency)h(ratios,)f(suc)o(h)h(as)g +(a)f(net)o(w)o(ork)g(of)g(w)o(orkstations.)23 b(Using)15 +b(YBW)g(on)g(a)h(system)f(with)g(only)0 506 y(transp)q(osition)i +(tables)g(lo)q(cal)g(to)g(eac)o(h)g(pro)q(cess)i(will)d(yield)g(large)h +(searc)o(h)i(o)o(v)o(erheads,)f(since)g(there)g(is)f(no)g(guaran)o(tee) +h(of)0 569 y(where)12 b(a)f(giv)o(en)f(no)q(de)i(will)d(end)j(up)f +(when)g(w)o(e)g(use)h(the)g(c)o(haotic)f(w)o(ork-stealing)f(sc)o +(heduler)i(in)f(com)o(bination)d(with)j(iterativ)o(e)0 +631 y(deep)q(ening.)18 b(Using)12 b(ABD)o(AD)o(A)g(is)g(infeasible)g +(since)g(the)h(system)f(requires)h(a)f(shared)h(transp)q(osition)f +(table,)g(whic)o(h)g(w)o(ould)0 693 y(b)q(e)j(extremely)e(slo)o(w)g(on) +h(a)g(parallel)e(arc)o(hitecture)k(with)e(a)f(high)g(CPU)i +(cycle/message)f(latency)g(ratio.)0 831 y Fo(3)69 b(The)23 +b(APHID)f(Algorithm)0 934 y Fn(Y)m(oung)12 b(Brothers)i(W)m(ait)d(and)h +(other)h(algorithms)e(su\013er)i(from)e(three)j(serious)f(problems.)k +(First,)12 b(the)i(n)o(umerous)d(sync)o(hro-)0 996 y(nization)k(p)q +(oin)o(ts)h(result)h(in)f(idle)f(time.)24 b(This)16 b(suggests)h(that)f +(a)g(new)g(algorithm)e(m)o(ust)h(striv)o(e)h(to)g(reduce)i(or)e +(eliminate)0 1058 y(sync)o(hronization)c(altogether.)18 +b(Second,)13 b(the)g(c)o(haotic)g(nature)g(of)f(a)g(w)o(ork-stealing)f +(sc)o(heduler)j(requires)g(algorithms)c(suc)o(h)0 1121 +y(as)15 b(YBW)g(and)g(Jam)o(b)q(oree)f(to)h(use)h(a)e(shared)i(transp)q +(osition)f(table)g(to)f(ac)o(hiev)o(e)i(reasonable)f(p)q(erformance.)21 +b(Algorithms)0 1183 y(based)13 b(on)f(the)i Fm(\013\014)r +Fk(\003)e Fn(framew)o(ork)f(require)j(a)e(shared)h(transp)q(osition)g +(table)f(to)g(function.)18 b(Third,)12 b(the)h(program)e(ma)o(y)f +(initi-)0 1245 y(ate)i(parallelism)e(at)h(no)q(des)i(whic)o(h)f(are)g +(b)q(etter)i(done)e(sequen)o(tially)m(.)17 b(F)m(or)11 +b(example,)g(ha)o(ving)g(searc)o(hed)i(the)g(\014rst)g(branc)o(h)f(at)0 +1307 y(a)i(no)q(de)h(and)f(not)g(ac)o(hiev)o(ed)h(a)f(cut-o\013,)h(Y)m +(oung)e(Brothers)j(W)m(ait)d(\(in)i(its)f(simplest)f(form\))g(p)q +(ermits)h(all)f(of)h(the)h(remaining)0 1370 y(branc)o(hes)f(to)f(b)q(e) +g(searc)o(hed)i(in)d(parallel.)17 b(Ho)o(w)o(ev)o(er,)c(if)f(the)h +(second)h(branc)o(h)f(causes)h(a)f(cuto\013,)g(then)h(all)d(the)j +(parallel)d(w)o(ork)0 1432 y(done)18 b(on)f(the)h(third)g(\(and)f +(subsequen)o(t\))j(branc)o(hes)e(has)g(b)q(een)h(w)o(asted.)29 +b(This)18 b(suggests)g(parallelism)d(should)j(only)e(b)q(e)0 +1494 y(initiated)d(at)h(no)q(des)g(where)i(there)f(is)e(a)h(v)o(ery)g +(high)f(probabilit)o(y)g(that)h(all)e(branc)o(hes)k(m)o(ust)c(b)q(e)j +(considered.)62 1557 y(This)f(section)h(in)o(tro)q(duces)g(the)f(Async) +o(hronous)h(P)o(arallel)e(Hierarc)o(hical)h(Iterativ)o(e)g(Deep)q +(ening)h(\(APHID\))f(game-tree)0 1619 y(searc)o(hing)i(algorithm.)21 +b(APHID)15 b(has)h(b)q(een)h(designed)f(to)g(address)h(the)f(ab)q(o)o +(v)o(e)f(three)i(issues.)25 b(The)16 b(algorithm)d(is)i(asyn-)0 +1681 y(c)o(hronous)g(in)f(nature;)h(it)e(remo)o(v)o(es)h(all)f(sync)o +(hronization)i(p)q(oin)o(ts)f(from)e(the)j Fm(\013\014)i +Fn(searc)o(h)e(and)g(from)d(iterativ)o(e)i(deep)q(ening.)0 +1743 y(Also,)f(parallelism)e(is)j(only)f(applied)g(at)h(no)q(des)g +(that)g(ha)o(v)o(e)g(a)f(high)g(probabilit)o(y)g(of)g(needing)h +(parallelism.)h(The)f(top)g(plies)0 1806 y(of)k(a)g(game-tree)g(\(near) +g(the)h(ro)q(ot\))g(v)n(ary)f(infrequen)o(tly)g(b)q(et)o(w)o(een)h +(steps)h(of)e(iterativ)o(e)g(deep)q(ening)h([19)o(].)31 +b(This)18 b(relativ)o(e)0 1868 y(in)o(v)n(ariance)13 +b(of)g(the)i(top)f(p)q(ortion)f(of)h(the)g(game-tree)g(is)f(exploited)h +(b)o(y)g(the)g(APHID)g(algorithm.)62 1930 y(In)e(its)f(simplest)g +(form,)f(APHID)i(can)g(b)q(e)g(view)o(ed)g(as)f(a)h(master/sla)o(v)o(e) +e(program)g(although,)h(as)h(discussed)h(later,)e(it)h(can)0 +1992 y(b)q(e)k(generalized)g(to)g(a)f(hierarc)o(hical)g(pro)q(cessor)i +(tree.)24 b(F)m(or)15 b(a)g(depth)i Fm(d)e Fn(searc)o(h,)h(the)g +(master)f(is)g(resp)q(onsible)i(for)e(the)h(top)0 2055 +y Fm(d)22 2040 y Fd(0)47 2055 y Fn(ply)d(of)g(the)i(tree,)f(and)g(the)g +(remaining)e Fm(d)d Fk(\000)g Fm(d)770 2040 y Fd(0)795 +2055 y Fn(ply)k(are)h(searc)o(hed)i(in)d(parallel)f(b)o(y)i(the)g(sla)o +(v)o(es.)k(Figure)c(1)g(sho)o(ws)g(where)0 2117 y(parallel)f +(activities)g(o)q(ccur)j(in)d(APHID)h(and)g(YBW.)g(Eac)o(h)g(lo)q +(cation)f(mark)o(ed)g(with)g(an)h Fe(x)g Fn(sho)o(ws)g(where)h(the)g +(parallelism)0 2179 y(t)o(ypically)10 b(tak)o(es)h(place.)17 +b(Although)11 b(more)f(w)o(ork)h(could)g(b)q(e)g(generated)i(in)d(YBW,) +h(eac)o(h)h Fe(x)e Fn(represen)o(ts)k(a)d(p)q(oten)o(tially)f(costly)0 +2241 y(sync)o(hronization)16 b(p)q(oin)o(t.)25 b(The)17 +b(parallelism)c(is)j(more)g(constrained)h(in)f(APHID)g(and,)g(hence,)i +(is)e(more)g(lik)o(ely)f(to)h(su\013er)0 2304 y(from)c(load)h(im)o +(balances)f(than)i(other)h(dynamic)d(sc)o(heduling)i(routines)g(\(suc)o +(h)h(as)f(YBW,)g(Jam)o(b)q(oree,)f(or)h Fm(\013\014)r +Fk(\003)p Fn(\).)0 2420 y Fc(3.1)56 b(Op)r(eration)17 +b(of)i(the)f(Master)h(in)f(APHID)0 2509 y Fn(The)d(master)e(is)h(resp)q +(onsible)i(for)d(searc)o(hing)i(the)g(top)f Fm(d)892 +2494 y Fd(0)918 2509 y Fn(ply)f(of)h(the)h(tree.)20 b(It)14 +b(rep)q(eatedly)h(tra)o(v)o(erses)h(this)f(tree)g(un)o(til)e(the)0 +2571 y(correct)g(minim)o(ax)8 b(v)n(alue)j(has)g(b)q(een)i(determined.) +k(The)12 b(master)f(is)g(executing)h(a)f(normal)e Fm(\013\014)14 +b Fn(searc)o(h,)e(with)f(the)h(exception)0 2634 y(that)j(APHID)f +(enforces)i(an)f(arti\014cial)e(searc)o(h)j(horizon)e(at)h +Fm(d)973 2618 y Fd(0)999 2634 y Fn(ply)f(from)e(the)k(ro)q(ot.)k(Eac)o +(h)15 b(leaf)e(no)q(de)i(in)g(the)g(master's)f Fm(d)1939 +2618 y Fd(0)965 2828 y Fn(4)p eop +%%Page: 5 5 +5 4 bop 444 154 a + 16766447 9472573 9669918 31246336 22892052 38679674 startTexFig + 444 154 a +%%BeginDocument: draw1b.ps + +/arrowHeight 10 def +/arrowWidth 5 def + +/IdrawDict 52 dict def +IdrawDict begin + +/reencodeISO { +dup dup findfont dup length dict begin +{ 1 index /FID ne { def }{ pop pop } ifelse } forall +/Encoding ISOLatin1Encoding def +currentdict end definefont +} def + +/ISOLatin1Encoding [ +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright +/parenleft/parenright/asterisk/plus/comma/minus/period/slash +/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon +/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N +/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright +/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m +/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve +/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut +/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar +/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot +/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior +/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine +/guillemotright/onequarter/onehalf/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute +/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis +/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave +/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex +/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis +/yacute/thorn/ydieresis +] def +/Times-Roman reencodeISO def +/Helvetica reencodeISO def + +/none null def +/numGraphicParameters 17 def +/stringLimit 65535 def + +/Begin { +save +numGraphicParameters dict begin +} def + +/End { +end +restore +} def + +/SetB { +dup type /nulltype eq { +pop +false /brushRightArrow idef +false /brushLeftArrow idef +true /brushNone idef +} { +/brushDashOffset idef +/brushDashArray idef +0 ne /brushRightArrow idef +0 ne /brushLeftArrow idef +/brushWidth idef +false /brushNone idef +} ifelse +} def + +/SetCFg { +/fgblue idef +/fggreen idef +/fgred idef +} def + +/SetCBg { +/bgblue idef +/bggreen idef +/bgred idef +} def + +/SetF { +/printSize idef +/printFont idef +} def + +/SetP { +dup type /nulltype eq { +pop true /patternNone idef +} { +dup -1 eq { +/patternGrayLevel idef +/patternString idef +} { +/patternGrayLevel idef +} ifelse +false /patternNone idef +} ifelse +} def + +/BSpl { +0 begin +storexyn +newpath +n 1 gt { +0 0 0 0 0 0 1 1 true subspline +n 2 gt { +0 0 0 0 1 1 2 2 false subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline +} if +n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Circ { +newpath +0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/CBSpl { +0 begin +dup 2 gt { +storexyn +newpath +n 1 sub dup 0 0 1 1 2 2 true subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline +n 2 sub dup n 1 sub dup 0 0 1 1 false subspline +patternNone not { ifill } if +brushNone not { istroke } if +} { +Poly +} ifelse +end +} dup 0 4 dict put def + +/Elli { +0 begin +newpath +4 2 roll +translate +scale +0 0 1 0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 1 dict put def + +/Line { +0 begin +2 storexyn +newpath +x 0 get y 0 get moveto +x 1 get y 1 get lineto +brushNone not { istroke } if +0 0 1 1 leftarrow +0 0 1 1 rightarrow +end +} dup 0 4 dict put def + +/MLine { +0 begin +storexyn +newpath +n 1 gt { +x 0 get y 0 get moveto +1 1 n 1 sub { +/i exch def +x i get y i get lineto +} for +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Poly { +3 1 roll +newpath +moveto +-1 add +{ lineto } repeat +closepath +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/Rect { +0 begin +/t exch def +/r exch def +/b exch def +/l exch def +newpath +l b moveto +l t lineto +r t lineto +r b lineto +closepath +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 4 dict put def + +/Text { +ishow +} def + +/idef { +dup where { pop pop pop } { exch def } ifelse +} def + +/ifill { +0 begin +gsave +patternGrayLevel -1 ne { +fgred bgred fgred sub patternGrayLevel mul add +fggreen bggreen fggreen sub patternGrayLevel mul add +fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor +eofill +} { +eoclip +originalCTM setmatrix +pathbbox /t exch def /r exch def /b exch def /l exch def +/w r l sub ceiling cvi def +/h t b sub ceiling cvi def +/imageByteWidth w 8 div ceiling cvi def +/imageHeight h def +bgred bggreen bgblue setrgbcolor +eofill +fgred fggreen fgblue setrgbcolor +w 0 gt h 0 gt and { +l b translate w h scale +w h true [w 0 0 h neg 0 h] { patternproc } imagemask +} if +} ifelse +grestore +end +} dup 0 8 dict put def + +/istroke { +gsave +brushDashOffset -1 eq { +[] 0 setdash +1 setgray +} { +brushDashArray brushDashOffset setdash +fgred fggreen fgblue setrgbcolor +} ifelse +brushWidth setlinewidth +originalCTM setmatrix +stroke +grestore +} def + +/ishow { +0 begin +gsave +fgred fggreen fgblue setrgbcolor +/fontDict printFont printSize scalefont dup setfont def +/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end +transform exch pop def +/vertoffset 1 printSize sub descender sub def { +0 vertoffset moveto show +/vertoffset vertoffset printSize sub def +} forall +grestore +end +} dup 0 3 dict put def +/patternproc { +0 begin +/patternByteLength patternString length def +/patternHeight patternByteLength 8 mul sqrt cvi def +/patternWidth patternHeight def +/patternByteWidth patternWidth 8 idiv def +/imageByteMaxLength imageByteWidth imageHeight mul +stringLimit patternByteWidth sub min def +/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv +patternHeight mul patternHeight max def +/imageHeight imageHeight imageMaxHeight sub store +/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def +0 1 imageMaxHeight 1 sub { +/y exch def +/patternRow y patternByteWidth mul patternByteLength mod def +/patternRowString patternString patternRow patternByteWidth getinterval def +/imageRow y imageByteWidth mul def +0 patternByteWidth imageByteWidth 1 sub { +/x exch def +imageString imageRow x add patternRowString putinterval +} for +} for +imageString +end +} dup 0 12 dict put def + +/min { +dup 3 2 roll dup 4 3 roll lt { exch } if pop +} def + +/max { +dup 3 2 roll dup 4 3 roll gt { exch } if pop +} def + +/midpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 x1 add 2 div +y0 y1 add 2 div +end +} dup 0 4 dict put def + +/thirdpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 2 mul x1 add 3 div +y0 2 mul y1 add 3 div +end +} dup 0 4 dict put def + +/subspline { +0 begin +/movetoNeeded exch def +y exch get /y3 exch def +x exch get /x3 exch def +y exch get /y2 exch def +x exch get /x2 exch def +y exch get /y1 exch def +x exch get /x1 exch def +y exch get /y0 exch def +x exch get /x0 exch def +x1 y1 x2 y2 thirdpoint +/p1y exch def +/p1x exch def +x2 y2 x1 y1 thirdpoint +/p2y exch def +/p2x exch def +x1 y1 x0 y0 thirdpoint +p1x p1y midpoint +/p0y exch def +/p0x exch def +x2 y2 x3 y3 thirdpoint +p2x p2y midpoint +/p3y exch def +/p3x exch def +movetoNeeded { p0x p0y moveto } if +p1x p1y p2x p2y p3x p3y curveto +end +} dup 0 17 dict put def + +/storexyn { +/n exch def +/y n array def +/x n array def +n 1 sub -1 0 { +/i exch def +y i 3 2 roll put +x i 3 2 roll put +} for +} def + +/SSten { +fgred fggreen fgblue setrgbcolor +dup true exch 1 0 0 -1 0 6 -1 roll matrix astore +} def + +/FSten { +dup 3 -1 roll dup 4 1 roll exch +newpath +0 0 moveto +dup 0 exch lineto +exch dup 3 1 roll exch lineto +0 lineto +closepath +bgred bggreen bgblue setrgbcolor +eofill +SSten +} def + +/Rast { +exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore +} def + + +/arrowhead { +0 begin +transform originalCTM itransform +/taily exch def +/tailx exch def +transform originalCTM itransform +/tipy exch def +/tipx exch def +/dy tipy taily sub def +/dx tipx tailx sub def +/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def +gsave +originalCTM setmatrix +tipx tipy translate +angle rotate +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +patternNone not { +originalCTM setmatrix +/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul +arrowWidth div def +/padtail brushWidth 2 div def +tipx tipy translate +angle rotate +padtip 0 translate +arrowHeight padtip add padtail add arrowHeight div dup scale +arrowheadpath +ifill +} if +brushNone not { +originalCTM setmatrix +tipx tipy translate +angle rotate +arrowheadpath +istroke +} if +grestore +end +} dup 0 9 dict put def + +/arrowheadpath { +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +} def + +/leftarrow { +0 begin +y exch get /taily exch def +x exch get /tailx exch def +y exch get /tipy exch def +x exch get /tipx exch def +brushLeftArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + +/rightarrow { +0 begin +y exch get /tipy exch def +x exch get /tipx exch def +y exch get /taily exch def +x exch get /tailx exch def +brushRightArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + + +%I Idraw 10 Grid 3 3 + + +Begin +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 0.799705 0 0 0.799705 0 0 ] concat +/originalCTM matrix currentmatrix def + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +117 437 65 332 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +117 437 162 332 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 271 296 ] concat +%I +117 437 65 332 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 271 296 ] concat +%I +117 437 162 332 Line +%I 1 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* +Times-Roman 12 SetF +%I t +[ 1 0 0 1 217 609 ] concat +%I +[ +(APHID) +] Text +End + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 26.5 123.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 30.5 123 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 33.5 123 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 37.5 123 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 42 123.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 45 123.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 49 123.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 52.5 123.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 56 123.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 60 123.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 22.5 123.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 159 96 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 162.5 104 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 166 110.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 170.5 118.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 174 126.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 177 134 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 181 141 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 185 149 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 188.5 156 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 191.5 164 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 156 88.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 151.5 80 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 148 72.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 192 149 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 195.5 149 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 198.5 149 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 191 135 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 195 135 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 199 135 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 203.5 135 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 187 141 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 190 141 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 181 126.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 185 126.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 189 127 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 188.5 118.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 192.5 118.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 196.5 118.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 204.5 118.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 178 110.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 199 110.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 213.5 111 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 184 96 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 208 95.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b 65535 +1 0 0 [] 0 SetB +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 194 156 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 272 76 268 Line +%I 1 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 -0 -0 1 122 296 ] concat +%I +72 268 76 272 Line +%I 1 +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -36.5 92.5 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +100 84 116 100 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +116 100 132 84 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +132 84 148 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +148 116 164 84 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +164 84 180 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +180 116 196 100 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +196 100 212 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +212 116 228 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +228 116 244 100 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +244 100 260 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +260 116 276 100 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +276 100 292 84 Line +%I 2 +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 112.5 93 ] concat + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +100 84 116 100 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +116 100 132 84 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +132 84 148 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +148 116 164 84 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +164 84 180 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +180 116 196 100 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +196 100 212 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +212 116 228 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +228 116 244 100 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +244 100 260 116 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +260 116 276 100 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 174 494 ] concat +%I +276 100 292 84 Line +%I 2 +End + +End %I eop + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 226 494 ] concat +%I +136 476 160 476 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 244 596 ] concat +%I +136 272 160 272 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 226 497 ] concat +%I +136 296 160 296 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 244 554 ] concat +%I +136 272 160 272 Line +%I 2 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 297 692 ] concat +%I +[ +(d) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 313.5 716 ] concat +%I +[ +(d') +] Text +End + +Begin %I Line +%I b 65535 +2 0 1 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 200 494 ] concat +%I +200 374 200 308 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 1 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 200 494 ] concat +%I +200 404 200 470 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 1 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 200 494 ] concat +%I +236 452 236 470 Line +%I 2 +End + +Begin %I Line +%I b 65535 +2 0 1 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 200 494 ] concat +%I +236 422 236 398 Line +%I 2 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-times-medium-r-normal-*-12-*-*-*-*-*-*-* +Times-Roman 12 SetF +%I t +[ 1 0 0 1 373 608 ] concat +%I +[ +(YBW) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 334 845 a Fn(Figure)14 b(1:)k(Lo)q(cation)13 b(of)h(P)o(arallelism)d +(in)i(T)o(ypical)g(APHID)h(and)g(YBW)g(Searc)o(h)0 978 +y(ply)e(game-tree)f(is)h(b)q(eing)g(async)o(hronously)h(searc)o(hed)g +(b)o(y)f(the)h(sla)o(v)o(es.)18 b(Before)13 b(describing)f(ho)o(w)g +(the)h(master)e(kno)o(ws)h(when)0 1040 y(the)i Fm(d)g +Fn(ply)f(searc)o(h)i(is)f(complete,)f(w)o(e)h(m)o(ust)f(\014rst)h +(describ)q(e)i(ho)o(w)e(the)g(master)f(searc)o(hes)j(the)f +Fm(d)1491 1025 y Fd(0)1516 1040 y Fn(ply)e(tree.)62 1102 +y(When)k(the)g(master)f(reac)o(hes)i(a)f(leaf)f(of)f(the)j +Fm(d)810 1087 y Fd(0)837 1102 y Fn(ply)e(tree,)i(it)f(uses)g(a)g +(reliable)f(or)g(appro)o(ximate)f(v)n(alue)h(for)g(the)h(leaf,)0 +1164 y(dep)q(ending)g(on)f(the)h(information)d(a)o(v)n(ailable.)24 +b(If)16 b(a)g Fm(d)10 b Fk(\000)i Fm(d)938 1149 y Fd(0)965 +1164 y Fn(ply)k(searc)o(h)i(result)f(is)g(a)o(v)n(ailable)d(from)g(the) +k(sla)o(v)o(e,)e(that)g(will)0 1227 y(b)q(e)g(used.)22 +b(\(In)15 b(the)h(curren)o(t)g(implemen)o(tation,)11 +b(w)o(e)16 b(do)e(not)h(use)h(deep)q(er)h(ply)e(v)n(alues,)f(ev)o(en)i +(if)e(they)h(are)h(a)o(v)n(ailable.)j(This)0 1289 y(will)12 +b(b)q(e)h(discussed)i(in)e(Section)g(4.\))18 b(Ho)o(w)o(ev)o(er,)13 +b(if)f(the)i Fm(d)7 b Fk(\000)h Fm(d)949 1274 y Fd(0)973 +1289 y Fn(ply)k(result)i(is)f(not)g(a)o(v)n(ailable,)d(then)k(the)g +(algorithm)c(uses)k(the)0 1351 y(\\b)q(est)h(a)o(v)n(ailable")d(ply)h +(result)i(that)g(had)e(b)q(een)j(returned)g(b)o(y)e(the)g(sla)o(v)o(e)g +(to)g(generate)i(a)d(guessed)j(minim)o(ax)11 b(v)n(alue)1826 +1336 y Fi(2)1844 1351 y Fn(.)19 b(An)o(y)0 1413 y(no)q(de)14 +b(where)h(w)o(e)f(are)h(forced)f(to)g(guess)h(are)f(mark)o(ed)f(as)h +Fl(unc)n(ertain)p Fn(.)62 1476 y(As)g(v)n(alues)g(get)g(bac)o(k)o(ed)g +(up)f(the)h(tree,)h(the)f(master)f(main)o(tains)e(a)j(coun)o(t)g(of)f +(ho)o(w)g(man)o(y)f(uncertain)i(no)q(des)g(ha)o(v)o(e)g(b)q(een)0 +1538 y(visited)d(in)f(a)h(pass)h(of)e(the)i(tree.)18 +b(As)11 b(long)g(as)g(the)g(score)h(at)f(an)o(y)g(of)f(the)i(lea)o(v)o +(es)f(is)g(uncertain,)h(the)f(master)g(m)o(ust)f(do)h(another)0 +1600 y(pass)j(of)g(the)g(tree.)19 b(Once)c(the)g(master)e(has)h(a)f +(reliable)h(v)n(alue)f(for)g(all)g(the)h(lea)o(v)o(es)g(in)g(its)g +Fm(d)1423 1585 y Fd(0)1448 1600 y Fn(ply)f(tree,)h(the)h(searc)o(h)g +(of)e(the)h Fm(d)0 1662 y Fn(ply)h(tree)h(is)f(complete.)22 +b(The)16 b(con)o(trolling)d(program)h(w)o(ould)h(then)h(pro)q(ceed)g +(to)f(the)h(next)g(iteration)f(b)o(y)g(incremen)o(ting)f +Fm(d)0 1725 y Fn(and)g(asking)f(the)h(master)g(to)g(searc)o(h)h(the)f +(tree)h(again.)62 1787 y(Note)e(that)f(this)g(de\014nition)f(of)h(the)g +(master)g(solv)o(es)g(one)g(of)g(the)g(problems)f(that)h(some)f +(algorithms)f(ha)o(v)o(e)i(with)g(resp)q(ect)0 1849 y(to)k +(initializing)d(parallelism)g(to)q(o)j(quic)o(kly)f(at)g(a)h(p)q(oten)o +(tial)f Fe(CUT)g Fn(no)q(de.)24 b(By)17 b(using)e(the)i(guessed)g +(scores)g(when)g(accurate)0 1912 y(information)9 b(is)j(not)f(a)o(v)n +(ailable,)f(the)i(APHID)g(algorithm)e(automatically)e(determines)k(if)f +(a)h(subsequen)o(t)i(c)o(hild)d(is)h(lik)o(ely)e(to)0 +1974 y(generate)15 b(a)f(cuto\013)g(at)g(a)f(failed)g +Fe(CUT)g Fn(no)q(de.)19 b(If)13 b(it)h(seems)g(lik)o(ely)e(that)i(a)g +(c)o(hild)f(will)f(generate)j(a)f(cuto\013)g(based)h(on)e(guessed)0 +2036 y(v)n(alues,)e(the)g(c)o(hildren)g(of)f(the)h(failed)e +Fe(CUT)h Fn(no)q(de)h(are)g(ev)n(aluated)g(sequen)o(tially)m(.)16 +b(If)10 b(it)g(seems)h(unlik)o(ely)e(that)i(the)g(no)q(de)g(will)e(b)q +(e)0 2098 y(cut)j(o\013)g(due)h(to)e(lo)o(w)g(minima)o(x)e(v)n(alues,)j +(the)g(searc)o(h)h(w)o(ould)e(con)o(tin)o(ue)h(for)g(a)f(promising)f +(no)q(de)i(at)g(that)g(branc)o(h)g(in)g(parallel.)0 2161 +y(This)j(is)g(all)f(handled)i(automatically)c(b)o(y)j(the)h +Fm(\013\014)i Fn(routine.)k(The)16 b(handling)e(of)h(a)g(h)o(yp)q +(othesized)h Fe(CUT)f Fn(no)q(de)h(is)f(stronger)0 2223 +y(than)g(the)g(equiv)n(alen)o(t)f(scenario)i(in)e(the)h(YBW)g +(algorithm,)d(whic)o(h)j(ignores)g(previous)g(score)h(information)c(a)o +(v)n(ailable)g(for)0 2285 y(some)f(branc)o(hes)i(of)f(the)h(failed)e +Fe(CUT)g Fn(no)q(de.)18 b(In)12 b(the)h(full)d(v)o(ersion)j(of)e(YBW,)h +(application-dep)q(enden)o(t)g(information)d(is)j(used)0 +2347 y(to)i(do)f(what)h(APHID)g(handles)g(automatically)d(with)j(the)g +Fm(\013\014)i Fn(searc)o(h)f(windo)o(w.)62 2410 y(The)g(sla)o(v)o(es)g +(are)g(resp)q(onsible)g(for)f(setting)h(their)g(o)o(wn)f(searc)o(h)i +(windo)o(ws,)e(based)h(on)f(information)e(from)h(the)i(master.)0 +2472 y(Sometimes,)10 b(the)j(information)d(returned)k(b)o(y)e(the)h +(sla)o(v)o(e)f(ma)o(y)f(not)h(b)q(e)h(useful)g(to)f(the)h(master.)k(F)m +(or)12 b(example,)f(a)i(sla)o(v)o(e)f(can)0 2534 y(tell)h(the)i(master) +e(that)h(the)g(score)h(of)f(a)f(giv)o(en)g(no)q(de)i(is)e(less)i(than)f +(30,)e(but)i(the)h(master)e(ma)o(y)f(w)o(an)o(t)h(to)h(kno)o(w)f(if)g +(the)i(score)p 0 2569 780 2 v 46 2596 a Fh(2)64 2607 +y Fg(Man)o(y)d(game-tree)f(searc)o(h)h(programs)e(exhibit)i(an)g +(e\013ect)g(based)g(on)h(the)g(parit)o(y)e(of)i(the)g(searc)o(h)f +(depth)f(\(o)q(dd)h(or)h(ev)o(en)f(n)o(um)o(b)q(er)g(of)g(ply\).)0 +2647 y(Scores)d(are)g(stable)g(when)h(y)o(ou)f(lo)q(ok)h(at)f(results)g +(from)g(the)h(o)q(dd)f(plies)g(only)m(,)h(or)g(ev)o(en)f(plies)g(only)m +(,)g(but)h(are)f(sometimes)f(unstable)g(when)i(y)o(ou)f(mix)0 +2686 y(the)i(t)o(w)o(o.)k(Th)o(us,)c(w)o(e)h(use)f(the)g(largest)f(ply) +h(v)n(alue)f(with)h(the)g(same)f(parit)o(y)m(,)g(instead)g(of)h(alw)o +(a)o(ys)g(using)f(the)h(largest)f(ply)h(v)n(alue)f(a)o(v)n(ailable.)965 +2828 y Fn(5)p eop +%%Page: 6 6 +6 5 bop 165 154 a + 25575945 23681433 8420065 17234821 28417720 35653713 startTexFig + 165 154 a +%%BeginDocument: draw2.ps + +/arrowHeight 10 def +/arrowWidth 5 def + +/IdrawDict 51 dict def +IdrawDict begin + +/reencodeISO { +dup dup findfont dup length dict begin +{ 1 index /FID ne { def }{ pop pop } ifelse } forall +/Encoding ISOLatin1Encoding def +currentdict end definefont +} def + +/ISOLatin1Encoding [ +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright +/parenleft/parenright/asterisk/plus/comma/minus/period/slash +/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon +/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N +/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright +/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m +/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve +/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut +/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar +/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot +/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior +/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine +/guillemotright/onequarter/onehalf/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute +/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis +/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave +/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex +/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis +/yacute/thorn/ydieresis +] def +/Helvetica reencodeISO def + +/none null def +/numGraphicParameters 17 def +/stringLimit 65535 def + +/Begin { +save +numGraphicParameters dict begin +} def + +/End { +end +restore +} def + +/SetB { +dup type /nulltype eq { +pop +false /brushRightArrow idef +false /brushLeftArrow idef +true /brushNone idef +} { +/brushDashOffset idef +/brushDashArray idef +0 ne /brushRightArrow idef +0 ne /brushLeftArrow idef +/brushWidth idef +false /brushNone idef +} ifelse +} def + +/SetCFg { +/fgblue idef +/fggreen idef +/fgred idef +} def + +/SetCBg { +/bgblue idef +/bggreen idef +/bgred idef +} def + +/SetF { +/printSize idef +/printFont idef +} def + +/SetP { +dup type /nulltype eq { +pop true /patternNone idef +} { +dup -1 eq { +/patternGrayLevel idef +/patternString idef +} { +/patternGrayLevel idef +} ifelse +false /patternNone idef +} ifelse +} def + +/BSpl { +0 begin +storexyn +newpath +n 1 gt { +0 0 0 0 0 0 1 1 true subspline +n 2 gt { +0 0 0 0 1 1 2 2 false subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline +} if +n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Circ { +newpath +0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/CBSpl { +0 begin +dup 2 gt { +storexyn +newpath +n 1 sub dup 0 0 1 1 2 2 true subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline +n 2 sub dup n 1 sub dup 0 0 1 1 false subspline +patternNone not { ifill } if +brushNone not { istroke } if +} { +Poly +} ifelse +end +} dup 0 4 dict put def + +/Elli { +0 begin +newpath +4 2 roll +translate +scale +0 0 1 0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 1 dict put def + +/Line { +0 begin +2 storexyn +newpath +x 0 get y 0 get moveto +x 1 get y 1 get lineto +brushNone not { istroke } if +0 0 1 1 leftarrow +0 0 1 1 rightarrow +end +} dup 0 4 dict put def + +/MLine { +0 begin +storexyn +newpath +n 1 gt { +x 0 get y 0 get moveto +1 1 n 1 sub { +/i exch def +x i get y i get lineto +} for +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Poly { +3 1 roll +newpath +moveto +-1 add +{ lineto } repeat +closepath +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/Rect { +0 begin +/t exch def +/r exch def +/b exch def +/l exch def +newpath +l b moveto +l t lineto +r t lineto +r b lineto +closepath +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 4 dict put def + +/Text { +ishow +} def + +/idef { +dup where { pop pop pop } { exch def } ifelse +} def + +/ifill { +0 begin +gsave +patternGrayLevel -1 ne { +fgred bgred fgred sub patternGrayLevel mul add +fggreen bggreen fggreen sub patternGrayLevel mul add +fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor +eofill +} { +eoclip +originalCTM setmatrix +pathbbox /t exch def /r exch def /b exch def /l exch def +/w r l sub ceiling cvi def +/h t b sub ceiling cvi def +/imageByteWidth w 8 div ceiling cvi def +/imageHeight h def +bgred bggreen bgblue setrgbcolor +eofill +fgred fggreen fgblue setrgbcolor +w 0 gt h 0 gt and { +l b translate w h scale +w h true [w 0 0 h neg 0 h] { patternproc } imagemask +} if +} ifelse +grestore +end +} dup 0 8 dict put def + +/istroke { +gsave +brushDashOffset -1 eq { +[] 0 setdash +1 setgray +} { +brushDashArray brushDashOffset setdash +fgred fggreen fgblue setrgbcolor +} ifelse +brushWidth setlinewidth +originalCTM setmatrix +stroke +grestore +} def + +/ishow { +0 begin +gsave +fgred fggreen fgblue setrgbcolor +/fontDict printFont printSize scalefont dup setfont def +/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end +transform exch pop def +/vertoffset 1 printSize sub descender sub def { +0 vertoffset moveto show +/vertoffset vertoffset printSize sub def +} forall +grestore +end +} dup 0 3 dict put def +/patternproc { +0 begin +/patternByteLength patternString length def +/patternHeight patternByteLength 8 mul sqrt cvi def +/patternWidth patternHeight def +/patternByteWidth patternWidth 8 idiv def +/imageByteMaxLength imageByteWidth imageHeight mul +stringLimit patternByteWidth sub min def +/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv +patternHeight mul patternHeight max def +/imageHeight imageHeight imageMaxHeight sub store +/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def +0 1 imageMaxHeight 1 sub { +/y exch def +/patternRow y patternByteWidth mul patternByteLength mod def +/patternRowString patternString patternRow patternByteWidth getinterval def +/imageRow y imageByteWidth mul def +0 patternByteWidth imageByteWidth 1 sub { +/x exch def +imageString imageRow x add patternRowString putinterval +} for +} for +imageString +end +} dup 0 12 dict put def + +/min { +dup 3 2 roll dup 4 3 roll lt { exch } if pop +} def + +/max { +dup 3 2 roll dup 4 3 roll gt { exch } if pop +} def + +/midpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 x1 add 2 div +y0 y1 add 2 div +end +} dup 0 4 dict put def + +/thirdpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 2 mul x1 add 3 div +y0 2 mul y1 add 3 div +end +} dup 0 4 dict put def + +/subspline { +0 begin +/movetoNeeded exch def +y exch get /y3 exch def +x exch get /x3 exch def +y exch get /y2 exch def +x exch get /x2 exch def +y exch get /y1 exch def +x exch get /x1 exch def +y exch get /y0 exch def +x exch get /x0 exch def +x1 y1 x2 y2 thirdpoint +/p1y exch def +/p1x exch def +x2 y2 x1 y1 thirdpoint +/p2y exch def +/p2x exch def +x1 y1 x0 y0 thirdpoint +p1x p1y midpoint +/p0y exch def +/p0x exch def +x2 y2 x3 y3 thirdpoint +p2x p2y midpoint +/p3y exch def +/p3x exch def +movetoNeeded { p0x p0y moveto } if +p1x p1y p2x p2y p3x p3y curveto +end +} dup 0 17 dict put def + +/storexyn { +/n exch def +/y n array def +/x n array def +n 1 sub -1 0 { +/i exch def +y i 3 2 roll put +x i 3 2 roll put +} for +} def + +/SSten { +fgred fggreen fgblue setrgbcolor +dup true exch 1 0 0 -1 0 6 -1 roll matrix astore +} def + +/FSten { +dup 3 -1 roll dup 4 1 roll exch +newpath +0 0 moveto +dup 0 exch lineto +exch dup 3 1 roll exch lineto +0 lineto +closepath +bgred bggreen bgblue setrgbcolor +eofill +SSten +} def + +/Rast { +exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore +} def + + +/arrowhead { +0 begin +transform originalCTM itransform +/taily exch def +/tailx exch def +transform originalCTM itransform +/tipy exch def +/tipx exch def +/dy tipy taily sub def +/dx tipx tailx sub def +/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def +gsave +originalCTM setmatrix +tipx tipy translate +angle rotate +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +patternNone not { +originalCTM setmatrix +/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul +arrowWidth div def +/padtail brushWidth 2 div def +tipx tipy translate +angle rotate +padtip 0 translate +arrowHeight padtip add padtail add arrowHeight div dup scale +arrowheadpath +ifill +} if +brushNone not { +originalCTM setmatrix +tipx tipy translate +angle rotate +arrowheadpath +istroke +} if +grestore +end +} dup 0 9 dict put def + +/arrowheadpath { +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +} def + +/leftarrow { +0 begin +y exch get /taily exch def +x exch get /tailx exch def +y exch get /tipy exch def +x exch get /tipx exch def +brushLeftArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + +/rightarrow { +0 begin +y exch get /tipy exch def +x exch get /tipx exch def +y exch get /taily exch def +x exch get /tailx exch def +brushRightArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + + +%I Idraw 10 Grid 6 6 + + +Begin +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 0.799705 0 0 0.799705 0 0 ] concat +/originalCTM matrix currentmatrix def + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 5.99997 0 ] concat + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 342 674 ] concat +%I +[ +(Master) +] Text +End + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 8 26 ] concat + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 315 543.5 ] concat +%I +[ +(1) +] Text +End + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +80 224 12 12 Elli +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -4 26 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +128 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 339 543.5 ] concat +%I +[ +(2) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -10 26 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +164 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 357 544 ] concat +%I +[ +(3) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -16 26 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +200 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 375 544 ] concat +%I +[ +(4) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -22 26 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +236 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 393 544 ] concat +%I +[ +(5) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 104 26 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +32 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 291 543.5 ] concat +%I +[ +(7) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -28 26 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +272 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 411 544 ] concat +%I +[ +(6) +] Text +End + +End %I eop + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +68 260 164 452 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +68 260 272 260 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +164 452 272 260 Line +%I 2 +End + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -71.5 99 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +308 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 428.5 544 ] concat +%I +[ +(R) +] Text +End + +End %I eop + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 284 612.5 ] concat +%I +[ +(d') +] Text +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 226 395 ] concat +%I +148 518 100 518 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 226 395 ] concat +%I +148 326 100 326 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 1 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 226 395 ] concat +%I +124 446 124 506 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 1 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 226 395 ] concat +%I +124 410 124 338 Line +%I 2 +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 18 -24 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +128 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 339 543.5 ] concat +%I +[ +(2) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 84 -24 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +164 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 357 544 ] concat +%I +[ +(3) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -108 -24 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +200 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 375 544 ] concat +%I +[ +(4) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 0 -24 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +236 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 393 544 ] concat +%I +[ +(5) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 66 -24 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +272 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 411 544 ] concat +%I +[ +(6) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -84 -24 ] concat + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 315 543.5 ] concat +%I +[ +(1) +] Text +End + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +80 224 12 12 Elli +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 12 -24 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +32 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 291 543.5 ] concat +%I +[ +(7) +] Text +End + +End %I eop + +Begin %I Rect +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.458861 0 0 0.489848 235.544 397.7 ] concat +%I +232 170 388 266 Rect +End + +Begin %I Rect +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.815325 0 0 0.489848 236.845 397.7 ] concat +%I +232 170 364 266 Rect +End + +Begin %I Line +%I b 65520 +1 0 0 [12 4] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1.21519 0 0 0.046875 83.0438 492.703 ] concat +%I +100 241 376 241 Line +%I 1 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 162 515 ] concat +%I +[ +(APHID) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 162 503 ] concat +%I +[ +(Table) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 222 497 ] concat +%I +[ +(-1/4) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 258 497 ] concat +%I +[ +(+2/3) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 297.5 497 ] concat +%I +[ +(?/0) +] Text +End + +Begin %I Rect +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 148 395 ] concat +%I +136 170 352 266 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 348 497 ] concat +%I +[ +(+5/5) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 468 497 ] concat +%I +[ +(+1/3) +] Text +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +140 331 98 217 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +140 331 170 235 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +98 217 110 229 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +110 229 116 217 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +116 217 122 247 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +122 247 140 235 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +140 235 146 247 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +146 247 152 229 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +152 229 158 247 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1 0 0 1 130 131 ] concat +%I +158 247 170 235 Line +%I 1 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +288 398 204 194 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +204 194 240 218 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +240 218 252 230 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +252 230 264 218 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +264 218 276 182 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +276 182 288 206 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +288 206 300 230 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +300 230 312 206 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +312 206 324 230 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +288 398 348 230 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 234 263 ] concat +%I +324 230 348 230 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +188 248 212 284 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +212 284 236 248 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +236 248 248 296 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +248 296 272 260 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +272 260 284 296 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +284 296 308 272 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +308 272 320 296 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +260 464 320 296 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 338 230 ] concat +%I +260 464 188 248 Line +%I 2 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 246 341 ] concat +%I +[ +(Slave 1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 354 341 ] concat +%I +[ +(Slave 2) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 444 341 ] concat +%I +[ +(Slave 3) +] Text +End + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 35.5 -97.5 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +128 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 339 543.5 ] concat +%I +[ +(2) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 54 -97 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +272 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 411 544 ] concat +%I +[ +(6) +] Text +End + +End %I eop + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 -24.5 -99 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 428 ] concat +%I +32 224 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 291 543.5 ] concat +%I +[ +(7) +] Text +End + +End %I eop + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 130 296 ] concat +%I +100 320 148 320 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 130 296 ] concat +%I +100 164 148 164 Line +%I 2 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 180.5 421.5 ] concat +%I +[ +(d-d') +] Text +End + +Begin %I Line +%I b 65535 +1 0 1 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 130 296 ] concat +%I +124 224 124 176 Line +%I 2 +End + +Begin %I Line +%I b 65535 +1 0 1 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 0 0 0.5 130 296 ] concat +%I +124 260 124 308 Line +%I 2 +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 384 497 ] concat +%I +[ +(+4/5) +] Text +End + +Begin %I Pict +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 1 0 0 1 60 -36 ] concat + +Begin %I Elli +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.5 -0 -0 0.5 278 362 ] concat +%I +356 380 12 12 Elli +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 453 555.5 ] concat +%I +[ +(8) +] Text +End + +End %I eop + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 504 497 ] concat +%I +[ +(-3/1) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-* +Helvetica 12 SetF +%I t +[ 1 0 0 1 432 497 ] concat +%I +[ +(<0/4) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 488 1745 a Fn(Figure)14 b(2:)k(A)c(Snapshot)g(of)f(APHID)i(Searc)o(h)f +(In)g(Op)q(eration)0 1878 y(is)f(in)g(b)q(et)o(w)o(een)i(-5)e(and)g(5.) +18 b(In)13 b(this)h(case,)g(a)f(\\bad)g(b)q(ound")h(searc)o(h)g(is)f +(generated,)i(and)e(the)h(searc)o(h)h(windo)o(w)d(parameters,)0 +1940 y Fm(\013)j Fn(and)f Fm(\014)r Fn(,)h(m)o(ust)f(b)q(e)i(comm)o +(unicated)c(to)j(the)h(sla)o(v)o(e)e(pro)q(cessor.)23 +b(An)o(y)15 b(no)q(des)g(where)h(w)o(e)f(are)h(w)o(aiting)d(for)i +(\\bad)f(b)q(ound")0 2002 y(information)f(are)k(considered)g(as)f +(uncertain)h(b)o(y)f(the)g(master,)g(ev)o(en)h(though)f(w)o(e)g(ha)o(v) +o(e)g(a)g(score)h(b)q(ound)f(for)g(the)h Fm(d)10 b Fk(\000)h +Fm(d)1939 1987 y Fd(0)0 2064 y Fn(ply)k(searc)o(h.)25 +b(Ev)o(en)o(tually)m(,)14 b(the)j(sla)o(v)o(e)e(will)f(return)j(up)q +(dated)f(information)d(that)j(is)f(consisten)o(t)i(with)f(b)q(oth)g +(the)g(original)0 2127 y(information)11 b(and)j(the)g(searc)o(h)h +(windo)o(w)e(requested)824 2112 y Fi(3)845 2127 y Fn(.)0 +2243 y Fc(3.2)56 b(The)18 b(APHID)h(T)-5 b(able)0 2332 +y Fn(If)15 b(a)f(leaf)h(no)q(de)g(is)g(visited)g(b)o(y)g(the)g(master)g +(for)g(the)g(\014rst)h(time,)d(it)i(is)g(statically)f(allo)q(cated)h +(to)f(a)h(sla)o(v)o(e)g(pro)q(cessor.)23 b(This)0 2394 +y(information)14 b(is)j(recorded)h(in)f(a)f(table,)i(the)f +Fl(APHID)h(table)p Fn(,)f(that)g(is)g(shared)h(b)o(y)e(all)g(pro)q +(cessors.)29 b(Figure)17 b(2)g(sho)o(ws)g(an)0 2456 y(example)c(of)g +(ho)o(w)g(the)i(APHID)f(table)g(w)o(ould)f(b)q(e)h(organized)g(at)g(a)f +(giv)o(en)h(p)q(oin)o(t)f(in)h(time.)62 2519 y(The)h(APHID)f(table)g +(is)g(partitioned)g(in)o(to)g(t)o(w)o(o)f(parts:)20 b(one)14 +b(whic)o(h)g(only)g(the)g(master)g(can)g(write)h(to,)f(and)g(one)g +(whic)o(h)p 0 2553 780 2 v 46 2580 a Fh(3)64 2592 y Fg(It)f(ma)o(y)g +(happ)q(en)f(that)h(the)g(original)f(searc)o(h)g(and)h(the)h(\\bad)e(b) +q(ound")g(searc)o(h)h(are)g(inconsisten)o(t)e(with)j(one)f(another,)f +(through)g(the)h(use)0 2631 y(of)h(searc)o(h)e(extensions)f(that)i(ma)o +(y)g(or)h(ma)o(y)f(not)g(b)q(e)g(triggered)f(based)g(on)i(the)f(searc)o +(h)g(windo)o(w)g(used.)22 b(In)13 b(this)h(case,)f(the)g(searc)o(h)g +(explicitly)0 2671 y(requested)c(b)o(y)i(the)g(master)f(o)o(v)o +(errides)f(the)i(informatio)o(n)e(that)h(had)h(b)q(een)f(previously)f +(stored.)965 2828 y Fn(6)p eop +%%Page: 7 7 +7 6 bop 0 195 a Fn(only)14 b(the)h(sla)o(v)o(e)g(that)f(has)h(b)q(een)h +(assigned)f(that)g(piece)h(of)e(w)o(ork)g(can)h(write)g(to.)21 +b(An)o(y)14 b(attempt)g(to)h(write)g(in)o(to)f(the)h(table)0 +257 y(generates)k(a)e(message)g(that)g(informs)f(the)i(sla)o(v)o(e)f +(or)g(the)h(master)f(pro)q(cess)i(of)e(the)h(up)q(date)g(to)f(the)h +(information.)26 b(The)0 320 y(master)13 b(and)f(sla)o(v)o(e)h(only)f +(read)i(their)f(lo)q(cal)f(copies)i(of)e(the)i(information;)c(there)k +(are)f(no)g(explicit)g(messages)g(sen)o(t)h(b)q(et)o(w)o(een)0 +382 y(the)g(master)g(and)g(the)g(sla)o(v)o(e)g(asking)f(for)g +(information.)62 444 y(The)g(master's)f(half)f(of)h(the)h(table)f(is)h +(illustrated)f(ab)q(o)o(v)o(e)g(the)h(dotted)g(line)f(in)g(Figure)g(2.) +17 b(F)m(or)12 b(eac)o(h)h(leaf)f(that)g(has)h(b)q(een)0 +506 y(visited)h(b)o(y)f(the)h(master,)f(there)i(is)f(an)f(en)o(try)i +(in)e(the)h(APHID)g(table.)k(Information)11 b(main)o(tained)h(on)h(the) +i(lea)o(v)o(es)e(includes)0 569 y(the)g(mo)o(v)o(es)e(required)j(to)e +(generate)i(the)f(leaf)f(p)q(ositions)g(from)f(the)i(ro)q(ot)g +Fe(R)p Fn(,)f(the)h(appro)o(ximate)e(lo)q(cation)g(of)h(the)h(leaf)f +(in)g(the)0 631 y(tree)k(\(whic)o(h)e(is)g(used)h(b)o(y)g(the)f(sla)o +(v)o(e)g(to)h(prioritize)f(w)o(ork\),)g(whether)h(this)g(leaf)f(w)o(as) +g(touc)o(hed)h(on)f(the)h(last)f(pass)h(that)f(the)0 +693 y(master)f(executed,)j(and)d(the)i(n)o(um)o(b)q(er)e(of)g(the)i +(sla)o(v)o(e)e(that)h(the)h(leaf)e(w)o(as)h(allo)q(cated)f(to.)62 +756 y(In)h(our)f(example,)f(w)o(e)i(can)g(see)g(that)g(the)g(same)f(n)o +(um)o(b)q(er)f(of)h(lea)o(v)o(es)h(ha)o(v)o(e)f(b)q(een)i(allo)q(cated) +e(to)g(eac)o(h)h(sla)o(v)o(e.)k(Note)c(that)0 818 y(there)i(is)f(an)g +(additional)f(leaf,)g(8,)h(that)g(is)g(not)g(represen)o(ted)j(in)c(the) +i(master's)f Fm(d)1286 803 y Fd(0)1312 818 y Fn(ply)f(searc)o(h)j +(tree.)23 b(This)15 b(leaf)f(no)q(de)i(has)0 880 y(b)q(een)f(visited)g +(on)f(a)g(previous)h(pass)g(of)e(the)i Fm(d)723 865 y +Fd(0)749 880 y Fn(ply)f(searc)o(h)h(tree,)g(and)g(w)o(as)f(not)g(touc)o +(hed)h(on)f(the)h(latest)g(pass.)20 b(Ho)o(w)o(ev)o(er,)0 +942 y(the)14 b(information)c(that)k(the)g(sla)o(v)o(e)f(has)g +(generated)i(ma)o(y)c(b)q(e)j(needed)h(in)e(a)g(later)g(pass)h(of)f +(the)h(tree)g(and)f(is)h(not)f(deleted)h(b)o(y)0 1005 +y(the)g(master.)k(Lea)o(v)o(es)c(are)g(initially)e(allo)q(cated)h(to)h +(the)g(sla)o(v)o(es)g(in)f(a)h(round-robin)f(manner,)f(and)i(ma)o(y)e +(mo)o(v)o(e)g(due)i(to)g(load)0 1067 y(balancing)g(\(as)h(describ)q(ed) +i(in)e(Section)h(3.4\).)k(Although)15 b(there)i(ma)o(y)c(b)q(e)i(b)q +(etter)i(metho)q(ds)e(of)f(allo)q(cating)g(lea)o(v)o(es,)h(it)g(has)0 +1129 y(b)q(een)f(found)f(that)h(this)f(is)g(a)g(reasonable)h(metho)q(d) +f(of)f(initially)f(balancing)h(the)i(load)f(on)g(a)g(small)e(n)o(um)o +(b)q(er)h(of)h(pro)q(cessors.)62 1191 y(The)j(sla)o(v)o(e's)e(part)h +(of)g(the)g(table,)g(illustrated)f(b)o(y)h(the)h(area)f(b)q(elo)o(w)f +(the)i(dotted)g(line,)e(con)o(tains)h(information)d(on)i(the)0 +1254 y(result)f(of)e(searc)o(hing)i(the)g(p)q(osition)e(to)h(v)n +(arious)f(depths)j(of)d(searc)o(h.)19 b(The)12 b(\\b)q(est")h +(information)c(and)j(the)h(ply)e(to)h(whic)o(h)g(the)0 +1316 y(leaf)j(w)o(as)g(examined)f(is)i(giv)o(en)f(underneath)h(eac)o(h) +g(leaf)f(no)q(de)h(in)f(the)h(tree.)24 b(F)m(or)15 b(leaf)g(1,)g(the)h +(score)h(returned)g(is)e(-1)g(with)0 1378 y(a)f(searc)o(h)h(depth)f(of) +g(4.)j(Leaf)d(3)g(illustrates)g(that)g(the)g(score)h(information)c +(returned)16 b(b)o(y)e(the)g(sla)o(v)o(e)g(is)f(not)h(necessarily)h(an) +0 1440 y(exact)h(n)o(um)o(b)q(er.)k(The)15 b(sla)o(v)o(es)g(main)o +(tain)d(an)j(upp)q(er)h(b)q(ound)e(and)h(a)g(lo)o(w)o(er)f(b)q(ound)h +(on)g(the)g(score)h(for)f(eac)o(h)g(ply)g(of)f(searc)o(h)0 +1503 y(depth.)19 b(The)14 b(score)h(is)f(kno)o(wn)f(to)h(b)q(e)h(exact) +f(when)h(the)f(upp)q(er)h(and)f(lo)o(w)o(er)f(b)q(ounds)i(are)f(the)g +(same.)0 1618 y Fc(3.3)56 b(Op)r(eration)17 b(of)i(Sla)n(v)n(e)g(in)f +(APHID)0 1707 y Fn(A)c(sla)o(v)o(e)f(pro)q(cess)i(essen)o(tially)e +(executes)j(the)e(same)e(co)q(de)j(that)e(a)g(sequen)o(tial)h +Fm(\013\014)i Fn(searc)o(her)f(w)o(ould.)i(The)d(pro)q(cess)h(simply)0 +1770 y(rep)q(eats)g(the)g(follo)o(wing)c(three)k(steps)h(un)o(til)d +(the)h(master)g(tells)f(it)h(that)g(the)g(searc)o(h)h(is)f(complete:)51 +1862 y(1.)20 b(Lo)q(ok)13 b(in)h(its)f(p)q(ortion)h(of)f(its)h(lo)q +(cal)f(cop)o(y)h(of)f(the)i(APHID)f(table,)f(and)h(\014nd)g(the)g +(highest)h(priorit)o(y)e(no)q(de)h(to)g(searc)o(h.)51 +1956 y(2.)20 b(Execute)15 b(the)g(searc)o(h.)51 2051 +y(3.)20 b(Rep)q(ort)14 b(the)g(result)h(bac)o(k)f(to)g(the)g(master)g +(\(getting)f(an)h(up)q(date)h(to)e(its)h(APHID)g(table)g(in)g +(return\).)62 2143 y(The)19 b(w)o(ork)e(selection)i(criterion)f(is)g +(primarily)d(based)k(on)f(the)g(depth)h(to)f(whic)o(h)f(the)i(sla)o(v)o +(e)f(has)g(already)f(searc)o(hed)0 2205 y(a)h(no)q(de.)31 +b(As)18 b(w)o(e)g(can)h(see)g(for)e(Sla)o(v)o(e)h(1)g(in)f(Figure)h(2,) +h(lea)o(v)o(es)f(1,)g(4)g(and)g(7)f(ha)o(v)o(e)h(b)q(een)h(searc)o(hed) +h(to)e(4,)g(3)g(and)g(0)f(ply)m(,)0 2268 y(resp)q(ectiv)o(ely)m(.)i(Th) +o(us,)14 b(Sla)o(v)o(e)f(1)g(is)h(attempting)e(to)i(searc)o(h)h(leaf)e +(7)h(to)f(1)h(ply)m(,)e(and)i(will)e(con)o(tin)o(ue)i(to)g(searc)o(h)h +(leaf)e(7)h(up)g(to)f(3)0 2330 y(ply)g(b)o(y)h(using)g(iterativ)o(e)f +(deep)q(ening,)i(if)e(no)h(new)g(w)o(ork)f(arriv)o(es)i(from)d(the)i +(master.)62 2392 y(The)c(secondary)h(criterion)f(is)g(the)g(lo)q +(cation)f(of)g(the)h(no)q(de)h(within)d(the)j(master's)e(game-tree.)16 +b(This)10 b(secondary)h(criterion)0 2455 y(is)f(necessary)j(since)e(it) +f(is)g(usually)g(b)q(ene\014cial)h(to)f(generate)i(the)f(results)h(in)e +(a)g(left)g(to)g(righ)o(t)g(order)h(for)g(the)g(master.)16 +b(Children)0 2517 y(of)e(no)q(des)h(are)g(usually)f(considered)h(in)g +(a)f(b)q(est-to-w)o(orst)h(ordering,)f(implying)e(that)i(the)h +(left-most)e(branc)o(hes)j(at)e(a)h(no)q(de)0 2579 y(ha)o(v)o(e)g(a)g +(higher)g(probabilit)o(y)e(of)i(b)q(eing)g(useful)g(than)g(the)h(righ)o +(t-most)d(ones.)22 b(F)m(or)15 b(Sla)o(v)o(e)f(2)h(in)g(Figure)g(2,)f +(lea)o(v)o(es)i(2)e(and)h(5)0 2641 y(ha)o(v)o(e)f(b)q(oth)h(b)q(een)g +(searc)o(hed)h(to)e(5)g(ply)m(,)f(but)h(leaf)g(2)g(is)g(b)q(eing)h +(searc)o(hed)g(in)f(the)h(sla)o(v)o(e)f(to)g(6)g(ply)g(since)h(it)f(is) +g(further)h(left)f(in)0 2704 y(the)g(tree)i(than)d(leaf)h(5.)965 +2828 y(7)p eop +%%Page: 8 8 +8 7 bop 62 195 a Fn(A)14 b(no)q(de)h(that)f(has)g(a)f(priorit)o(y)h(of) +f(zero)i(\(b)q(ecause)h(it)d(is)h(no)g(longer)f(part)i(of)e(the)h +(master's)g(tree\))h(will)e(not)h(b)q(e)g(selected)0 +257 y(for)d(further)i(searc)o(h.)18 b(F)m(or)11 b(Sla)o(v)o(e)g(3,)h(w) +o(e)g(notice)g(that)f(Leaf)h(8)f(w)o(ould)g(b)q(e)h(searc)o(hed)i(if)c +(it)i(had)f(b)q(een)i(touc)o(hed)f(b)o(y)g(the)g(master.)0 +320 y(Leaf)i(8)f(is)h(ignored)g(b)o(y)f(the)i(sc)o(heduling)f +(algorithm)d(b)q(ecause)16 b(it)d(is)h(not)g(curren)o(tly)h(part)f(of)f +(the)h(master's)g(tree.)62 382 y(Before)19 b(a)f(searc)o(h)h(can)f(b)q +(e)h(executed,)h(an)e Fm(\013\014)i Fn(searc)o(h)f(windo)o(w)e(m)o(ust) +g(b)q(e)i(generated)g(b)o(y)f(the)g(sla)o(v)o(e.)30 b(The)18 +b(master)0 444 y(con)o(tin)o(ually)f(advises)j(the)f(sla)o(v)o(es)g(of) +g(the)g(leaf)s('s)f(lo)q(cation)h(within)f(the)h(master's)g(tree,)i +(and)d(the)i(h)o(yp)q(othetical)f(v)n(alue)0 506 y(of)e(the)g(ro)q(ot)h +(of)e(the)i(master's)f(tree.)29 b(Although)17 b(the)h(width)f(of)f(the) +i(searc)o(h)g(windo)o(w)f(is)g(application-dep)q(enden)o(t,)h(one)0 +569 y(normally)12 b(w)o(an)o(ts)i(to)g(cen)o(ter)i(the)f(windo)o(w)f +(around)g(this)h(h)o(yp)q(othesized)g(ro)q(ot)g(v)n(alue,)e(plus)h(or)h +(min)o(us)d(a)j(factor)f(to)g(re\015ect)0 631 y(the)g(uncertain)o(t)o +(y)h(in)e(it.)62 693 y(There)19 b(are)e(three)h(t)o(yp)q(es)g(of)f(up)q +(date)h(messages)f(that)g(a)g(sla)o(v)o(e)g(receiv)o(es)h(from)e(the)h +(master:)24 b(a)17 b(new)h(piece)g(of)e(w)o(ork)0 756 +y(has)g(b)q(een)h(added)f(to)f(the)i(sla)o(v)o(e)e(pro)q(cessor's)j +(APHID)e(table,)f(the)i(lo)q(cation)d(of)h(a)h(leaf)f(no)q(de)h(within) +f(the)i(master's)e(tree)0 818 y(has)g(c)o(hanged)h(\(c)o(hanging)e(the) +i(secondary)g(w)o(ork)e(sc)o(heduling)i(criterion\),)f(and)g(a)g +(noti\014cation)f(of)g(a)h(\\bad)g(b)q(ound")f(on)h(a)0 +880 y(no)q(de.)21 b(The)15 b(bad)g(b)q(ound)g(message)f(alerts)i(the)f +(sla)o(v)o(e)f(that)h(a)g(p)q(osition's)f(searc)o(h)i(information)c(is) +i(not)h(su\016cien)o(t)g(to)g(sa)o(v)o(e)0 942 y(the)g(no)q(de)h(from)d +(b)q(eing)h(uncertain.)22 b(In)15 b(this)g(case,)g(the)h(sla)o(v)o(e)e +(m)o(ust)g(re-searc)o(h)i(the)g(no)q(de)f(with)f(the)i +Fm(\013\014)h Fn(searc)o(h)f(windo)o(w)0 1005 y(sen)o(t)f(b)o(y)e(the)i +(master)e(to)h(the)g(ply)g(requested.)62 1067 y(As)19 +b(a)g(p)q(erformance)f(impro)o(v)o(emen)o(t,)f(w)o(e)i(w)o(an)o(t)f(to) +h(force)g(the)g(sla)o(v)o(e)f(to)h(alw)o(a)o(ys)f(w)o(ork)g(on)g(no)q +(des)i(for)e(the)h(curren)o(t)0 1129 y(searc)o(h)c(depth)f(of)f(the)h +(master.)j(When)d(all)e(the)i(sla)o(v)o(e's)f(w)o(ork)h(has)f(b)q(een)i +(searc)o(hed)g(to)e(the)h(required)h(depth,)f(rather)g(than)0 +1191 y(b)q(ecoming)g(idle,)g(it)g(starts)i(re-searc)o(hing)g(its)e(w)o +(ork)h(an)f(additional)f(ply)i(deep)q(er,)h(in)e(an)o(ticipation)g(of)g +(the)h(next)g(iteration)0 1254 y(\(depth)g Fm(d)9 b Fn(+)h(1\).)19 +b(When)14 b(this)g(is)g(happ)q(ening,)g(the)h(sla)o(v)o(e)f(routinely)g +(c)o(hec)o(ks)h(the)g(comm)o(unicatio)o(n)d(c)o(hannel)i(for)g +(messages)0 1316 y(from)c(the)i(master.)17 b(If)11 b(the)h(sla)o(v)o(e) +f(receiv)o(es)i(a)e(new)h(piece)h(of)d(w)o(ork)i(to)f(do)g(at)g +Fm(d)t Fk(\000)t Fm(d)1269 1301 y Fd(0)1293 1316 y Fn(ply)g(or)g(less,) +h(the)g(searc)o(h)h(is)e(immediately)0 1378 y(ab)q(orted)j(and)g(con)o +(trol)g(is)g(returned)h(to)f(the)g(sla)o(v)o(e's)g(sc)o(heduling)g +(algorithm.)0 1494 y Fc(3.4)56 b(Load)18 b(Balancing)0 +1583 y Fn(Although)c(the)g(master)g(attemps)g(to)g(giv)o(e)g(an)g +(equal)f(amoun)o(t)g(of)g(w)o(ork)h(to)g(eac)o(h)h(sla)o(v)o(e)f(in)g +(APHID,)g(neither)h(the)f(master)0 1646 y(nor)h(the)h(sla)o(v)o(e)e +(can)i(predict)g(the)f(amoun)o(t)f(of)g(e\013ort)i(required)g(to)f +(complete)f(a)h Fm(d)9 b Fk(\000)i Fm(d)1377 1631 y Fd(0)1403 +1646 y Fn(ply)j(searc)o(h)j(for)d(a)h(giv)o(en)g(piece)h(of)0 +1708 y(w)o(ork.)i(In)13 b(games)f(suc)o(h)i(as)f(c)o(hess,)i(there)f +(are)g(no)f(completely)f(reliable)h(indicators)g(of)g(the)h +(\\e\013ort")f(required)i(for)d(a)h(giv)o(en)0 1770 y(searc)o(h.)19 +b(Th)o(us,)14 b(load)f(im)o(balances)f(can)i(o)q(ccur)h(based)g(on)e +(the)i(allo)q(cation)d(of)h(w)o(ork)h(to)g(sla)o(v)o(es.)62 +1833 y(The)j(master)g(kno)o(ws)f(all)g(of)g(the)i(information)13 +b(ab)q(out)k(ho)o(w)g(man)o(y)d(uncertain)k(no)q(des)g(it)e(is)h(w)o +(aiting)e(for)h(from)f(eac)o(h)0 1895 y(sla)o(v)o(e.)24 +b(Th)o(us,)16 b(the)g(master)g(has)g(information)d(on)i(when)i(to)e(mo) +o(v)o(e)g(lea)o(v)o(es)h(from)e(the)i Fm(d)1405 1880 +y Fd(0)1432 1895 y Fn(ply)g(tree)h(from)d(an)i Fl(overworke)n(d)0 +1957 y(slave)f Fn(\(a)g(sla)o(v)o(e)g(with)g(a)g(large)h(n)o(um)o(b)q +(er)e(of)h(uncertain)h(no)q(des\))g(to)f(an)g Fl(underworke)n(d)i +(slave)e Fn(\(a)g(sla)o(v)o(e)g(with)g(no)g(uncertain)0 +2019 y(no)q(des\).)24 b(This)15 b(yields)g(a)g(tradeo\013)h(b)q(et)o(w) +o(een)h(faster)f(con)o(v)o(ergence)h(for)e(a)h(giv)o(en)f(ply)f(searc)o +(h)j(of)e(the)h(tree)h(and)e(additional)0 2082 y(searc)o(h)g(o)o(v)o +(erhead,)f(as)g(discussed)h(in)f(Section)g(4.)0 2198 +y Fc(3.5)56 b(Implem)o(en)n(tation)0 2287 y Fn(The)17 +b(APHID)f(algorithm)e(has)j(b)q(een)g(written)g(as)g(an)f +(application-indep)q(enden)o(t)g(library)g(of)f(C)i(routines.)26 +b(The)17 b(library)0 2349 y(w)o(as)12 b(written)g(to)f(pro)o(vide)h +(minim)o(al)c(in)o(terv)o(en)o(tion)j(in)o(to)g(a)h(w)o(orking)e(v)o +(ersion)i(of)f(sequen)o(tial)h Fm(\013\014)i Fn(\(or)e(its)f(common)e +(v)n(arian)o(ts:)0 2411 y(NegaScout[18,)k(20)o(])g(and)g(Principal)g(V) +m(ariation)f(Searc)o(h)i(\(PVS\))g([16)o(]\).)k(Since)c(the)g(library)e +(is)i(application-indep)q(enden)o(t,)0 2474 y(a)c(p)q(oten)o(tial)g +(user)i(m)o(ust)e(write)g(a)h(few)f(application-dep)q(enden)o(t)h +(routines)g(\(suc)o(h)h(as)f(mo)o(v)o(e)d(format,)h(ho)o(w)i(to)f(mak)o +(e/unmak)o(e)0 2536 y(mo)o(v)o(es,)j(p)q(osition)i(format,)e(setting)i +(a)g(windo)o(w)f(for)g(a)h(sla)o(v)o(e's)f(searc)o(h,)i +Fl(etc)p Fn(.\).)21 b(APHID's)15 b(message)g(passing)g(w)o(as)f +(written)0 2598 y(using)g(PVM)g([23)o(])f(to)h(allo)o(w)e(for)i(the)g +(maxim)o(um)9 b(p)q(ortabilit)o(y)k(among)e(a)o(v)n(ailable)h(hardw)o +(are.)62 2660 y(T)m(o)h(parallelize)f(a)i(sequen)o(tial)f +Fm(\013\014)j Fn(program,)11 b(the)j(user)g(mo)q(di\014es)f(his)g(or)g +(her)h(searc)o(h)h(routine)f(as)f(sho)o(wn)g(in)g(Figure)h(3.)965 +2828 y(8)p eop +%%Page: 9 9 +9 8 bop 0 195 a Fn(The)15 b(APHID)f(c)o(hanges)h(are)f(mark)o(ed)f(b)o +(y)h(shading,)f(and)h(easily)g(\014t)g(in)o(to)g(standard)g +Fm(\013\014)j Fn(framew)o(orks.)g(This)d(one)h(piece)g(of)0 +257 y(co)q(de)g(functions)f(as)g(the)g(searc)o(h)h(algorithm)c(for)j(b) +q(oth)g(the)g(master)g(and)g(the)g(sla)o(v)o(e)g(pro)q(cesses.)62 +320 y(There)i(are)f(a)g(few)f(additional)f(calls)i(that)f(ha)o(v)o(e)h +(to)f(b)q(e)i(added)f(to)f(the)i(iterativ)o(e)e(deep)q(ening)i(routine) +f(that)g(calls)f Fm(\013\014)r Fn(,)0 382 y(outlined)f(in)h(Figure)g +(4.)62 444 y(Initially)m(,)c(it)i(w)o(as)g(an)o(ticipated)g(that)h(all) +e(users)j(w)o(ould)d(w)o(an)o(t)h(to)h(searc)o(h)g(in)f(parallel)f +(from)g(the)i(ro)q(ot)f(of)g(the)h(game)e(tree.)0 506 +y(Ho)o(w)o(ev)o(er,)i(there)i(are)e(some)f(programs)g(that)h(wish)g(to) +g(handle)g(the)h(ro)q(ot)f(of)f(the)i(game)d(tree)k(in)d(a)h +(di\013eren)o(t)h(w)o(a)o(y)e(than)h(the)0 569 y(other)j(lea)o(v)o(es)f +(of)f(the)i(searc)o(h)g(tree)g(\(b)o(y)f(adding)f(calls)h(to)g(the)g +(time-con)o(trol)f(mec)o(hanism,)e(and)j(sp)q(ecial)g(handling)f(of)g +(the)0 631 y Fm(\013\014)19 b Fn(searc)o(h)f(windo)o(w\).)25 +b(APHID)17 b(has)g(b)q(een)h(generalized)f(to)g(in)o(tegrate)g(with)f +(this)h(st)o(yle)g(of)f(searc)o(hing)h(the)g(game)e(tree;)0 +693 y(Figure)e(5)f(illustrates)g(the)h(c)o(hanges)g(necessary)m(.)20 +b(The)12 b(only)g(signi\014can)o(t)g(c)o(hange)h(from)d(Figure)j(4)f +(is)g(the)h(addition)f(of)g(a)g(call)0 756 y(to)i Fe(aphid)p +164 756 14 2 v 14 w(intnode)p 332 756 V 15 w(premove)p +Fn(.)62 818 y(There)h(are)g(t)o(w)o(o)e(calls)g(that)h(are)h(inserted)g +(in)o(to)e(the)i(main)c(program,)h(whic)o(h)i(are)g(illustrated)g(in)f +(Figure)h(6.)62 880 y(A)k(brief)g(explanation)f(of)g(the)i(parameters)f +(and)g(function)f(of)h(eac)o(h)g(of)g(these)h Fe(aphid)p +1461 880 V 33 w Fn(routines)f(can)g(b)q(e)h(found)e(in)0 +942 y(App)q(endix)d(A.)0 1080 y Fo(4)69 b(Exp)r(erimen)n(ts)0 +1183 y Fn(The)12 b(APHID)f(game-indep)q(enden)o(t)h(library)e(w)o(as)i +(inserted)g(in)o(to)f Fj(TheTurk)h Fn(c)o(hess)h(program,)d(written)i +(b)o(y)f(Yngvi)g(Bjorns-)0 1245 y(son)16 b(and)g(Andreas)h(Junghanns)g +(at)f(the)h(Univ)o(ersit)o(y)f(of)f(Alb)q(erta.)25 b(With)16 +b(less)h(than)f(one)g(da)o(y)g(of)f(programming)e(e\013ort,)0 +1307 y(w)o(e)j(had)g(a)g(running)f(parallel)g(program)g(based)h(on)g +(the)g(APHID)h(algorithm)c(that)j(could)g(run)g(on)g(a)f(series)j(of)d +(w)o(orksta-)0 1370 y(tions.)i(Along)11 b(with)h(the)h(additional)d +(calls)h(added)i(to)e(PVS,)h(the)h(iterativ)o(e)f(deep)q(ening)h +(routine,)f(and)g(the)g(main)e(program,)0 1432 y(roughly)15 +b(100)g(lines)h(of)f(co)q(de)i(w)o(ere)g(de\014ned)g(for)e(the)i +Fe(aphid)p 970 1432 V 14 w(stub)p 1072 1432 V 31 w Fn(routines,)g +(whose)f(purp)q(ose)h(is)f(brie\015y)g(describ)q(ed)h(in)0 +1494 y(App)q(endix)d(A.)62 1557 y(T)m(o)j(test)h(the)g(algorithm,)d +Fj(TheTurk)j Fn(w)o(as)g(programmed)c(to)k(searc)o(h)g(the)g(24)f +(Bratk)o(o-Kop)q(ec)h(p)q(ositions)f([11)o(])g(to)g(a)0 +1619 y(depth)e(of)e Fm(d)e Fn(=)h(8)h(ply)m(,)g(with)g(the)i(master)e +(con)o(trolling)g(the)h(top)g Fm(d)1031 1604 y Fd(0)1054 +1619 y Fn(=)e(3)h(ply)h(of)f(the)h(tree.)62 1681 y(P)o(arallel)e(tests) +i(w)o(ere)f(run)g(on)g(4,)f(8,)g(12)g(and)h(16)f(w)o(orkstations)g(on)h +(a)f(net)o(w)o(ork)h(of)f(SUN)h(4s.)18 b(One)13 b(w)o(orkstation)f(in)g +(eac)o(h)0 1743 y(exp)q(erimen)o(t)i(w)o(as)g(completely)f(o)q(ccupied) +i(b)o(y)e(the)i Fe(master)e Fn(pro)q(cess,)i(while)f(the)g(other)h(w)o +(orkstations)f(eac)o(h)g(ran)g(a)g Fe(slave)0 1806 y +Fn(pro)q(cess.)20 b(On)14 b(the)h(a)o(v)n(ailable)c(hardw)o(are,)j +Fj(TheTurk)h Fn(visits)e(appro)o(ximately)f(2500)g(no)q(des)j(p)q(er)g +(second.)62 1868 y(P)o(arallel)c(and)h(sequen)o(tial)g(algorithms)e +(are)i(notoriously)g(p)q(o)q(or)g(when)g(it)g(comes)g(to)g(exact)g(con) +o(v)o(ergence)i(when)f(the)f(full)0 1930 y(v)o(ersion)i(of)f(the)i +(program)d(is)i(used)h([14)o(].)i(F)m(or)d(example,)e(di\013eren)o(t)j +(searc)o(h)g(windo)o(ws)e(cause)i(di\013eren)o(t)g(searc)o(h)g +(extensions)0 1992 y(to)h(b)q(e)g(turned)h(on,)f(causing)g(di\013eren)o +(t)h(alpha-b)q(eta)e(results.)25 b(Th)o(us,)17 b(all)d(searc)o(h)k +(extensions)f(and)e(n)o(ull)g(mo)o(v)o(e)f(searc)o(hing)0 +2055 y(w)o(ere)20 b(turned)g(o\013)f(for)g(this)g(exp)q(erimen)o(t.)34 +b(Since)20 b(some)e(w)o(ork)h(could)g(b)q(e)h(ev)n(aluated)f(to)g +Fm(d)12 b Fn(+)h(1-ply)18 b(b)q(efore)i(the)g Fm(d)p +Fn(-ply)0 2117 y(result)d(is)f(\014nished,)g(w)o(e)h(also)e(forced)i +(the)f(transp)q(osition)g(table)g(to)g(rep)q(ort)h(only)e(transp)q +(osition)h(table)g(scores)i(that)e(had)0 2179 y(b)q(een)g(searc)o(hed)h +(to)d(the)i(exact)f(depth)h(\(as)f(in)g(Figure)g(3\).)21 +b(Quiescence)c(searc)o(h)f(w)o(as)f(left)g(in)f Fj(TheTurk)i +Fn(to)e(prev)o(en)o(t)i(the)0 2241 y(ev)n(aluations)d(from)f(b)q(eing)i +(signi\014can)o(tly)f(unstable.)62 2304 y(Although)g(this)f(list)h(of)f +(c)o(hanges)i(is)e(incomplete)g(to)h(guaran)o(tee)g(the)h(same)e(minim) +o(ax)d(v)n(alue)k(is)f(returned)j(b)o(y)d(b)q(oth)h(the)0 +2366 y(sequen)o(tial)g(and)g(parallel)f(programs,)g(this)h(list)g +(constitutes)i(the)f(c)o(hanges)g(made)e(to)h Fj(TheTurk)h +Fn(without)f(doing)f(serious)0 2428 y(damage)f(to)h(the)h(p)q +(erformance)g(of)e(the)j(program.)h(In)e(the)g(v)o(ersion)g(tested,)h +(o)o(v)o(er)e(90\045)g(of)f(the)j(parallel)d(searc)o(hes)j(returned)0 +2491 y(the)g(same)e(minim)o(ax)e(v)n(alue)j(as)g(the)h(sequen)o(tial)f +(searc)o(h,)h(and)f(the)h(principal)e(v)n(ariation)g(w)o(as)h(correct)i +(for)e(all)e(but)j(1)f(of)f(the)0 2553 y(96)h(searc)o(hes)j(executed)g +(in)d(parallel.)62 2615 y(Figure)e(7)f(illustrates)h(the)g(a)o(v)o +(erage)g(sp)q(eedups)i(for)d(5)g(to)h(8)f(ply)g(searc)o(hes,)j(whic)o +(h)e(are)g(the)g(searc)o(hes)i(that)d(w)o(ere)i(executed)0 +2677 y(in)h(parallel.)k(The)e(graph)e(sho)o(ws)i(that)f(as)f(the)i +(depth)g(of)e(the)h(searc)o(h)h(increases,)g(so)f(do)q(es)h(the)g(sp)q +(eedup.)965 2828 y(9)p eop +%%Page: 10 10 +10 9 bop 482 329 a + 15582380 33154007 1184071 3025960 24010342 51178209 startTexFig + 482 329 a +%%BeginDocument: code4.ps + +/arrowHeight 10 def +/arrowWidth 5 def + +/IdrawDict 51 dict def +IdrawDict begin + +/reencodeISO { +dup dup findfont dup length dict begin +{ 1 index /FID ne { def }{ pop pop } ifelse } forall +/Encoding ISOLatin1Encoding def +currentdict end definefont +} def + +/ISOLatin1Encoding [ +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright +/parenleft/parenright/asterisk/plus/comma/minus/period/slash +/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon +/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N +/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright +/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m +/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve +/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut +/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar +/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot +/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior +/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine +/guillemotright/onequarter/onehalf/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute +/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis +/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave +/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex +/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis +/yacute/thorn/ydieresis +] def +/Courier reencodeISO def + +/none null def +/numGraphicParameters 17 def +/stringLimit 65535 def + +/Begin { +save +numGraphicParameters dict begin +} def + +/End { +end +restore +} def + +/SetB { +dup type /nulltype eq { +pop +false /brushRightArrow idef +false /brushLeftArrow idef +true /brushNone idef +} { +/brushDashOffset idef +/brushDashArray idef +0 ne /brushRightArrow idef +0 ne /brushLeftArrow idef +/brushWidth idef +false /brushNone idef +} ifelse +} def + +/SetCFg { +/fgblue idef +/fggreen idef +/fgred idef +} def + +/SetCBg { +/bgblue idef +/bggreen idef +/bgred idef +} def + +/SetF { +/printSize idef +/printFont idef +} def + +/SetP { +dup type /nulltype eq { +pop true /patternNone idef +} { +dup -1 eq { +/patternGrayLevel idef +/patternString idef +} { +/patternGrayLevel idef +} ifelse +false /patternNone idef +} ifelse +} def + +/BSpl { +0 begin +storexyn +newpath +n 1 gt { +0 0 0 0 0 0 1 1 true subspline +n 2 gt { +0 0 0 0 1 1 2 2 false subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline +} if +n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Circ { +newpath +0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/CBSpl { +0 begin +dup 2 gt { +storexyn +newpath +n 1 sub dup 0 0 1 1 2 2 true subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline +n 2 sub dup n 1 sub dup 0 0 1 1 false subspline +patternNone not { ifill } if +brushNone not { istroke } if +} { +Poly +} ifelse +end +} dup 0 4 dict put def + +/Elli { +0 begin +newpath +4 2 roll +translate +scale +0 0 1 0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 1 dict put def + +/Line { +0 begin +2 storexyn +newpath +x 0 get y 0 get moveto +x 1 get y 1 get lineto +brushNone not { istroke } if +0 0 1 1 leftarrow +0 0 1 1 rightarrow +end +} dup 0 4 dict put def + +/MLine { +0 begin +storexyn +newpath +n 1 gt { +x 0 get y 0 get moveto +1 1 n 1 sub { +/i exch def +x i get y i get lineto +} for +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Poly { +3 1 roll +newpath +moveto +-1 add +{ lineto } repeat +closepath +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/Rect { +0 begin +/t exch def +/r exch def +/b exch def +/l exch def +newpath +l b moveto +l t lineto +r t lineto +r b lineto +closepath +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 4 dict put def + +/Text { +ishow +} def + +/idef { +dup where { pop pop pop } { exch def } ifelse +} def + +/ifill { +0 begin +gsave +patternGrayLevel -1 ne { +fgred bgred fgred sub patternGrayLevel mul add +fggreen bggreen fggreen sub patternGrayLevel mul add +fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor +eofill +} { +eoclip +originalCTM setmatrix +pathbbox /t exch def /r exch def /b exch def /l exch def +/w r l sub ceiling cvi def +/h t b sub ceiling cvi def +/imageByteWidth w 8 div ceiling cvi def +/imageHeight h def +bgred bggreen bgblue setrgbcolor +eofill +fgred fggreen fgblue setrgbcolor +w 0 gt h 0 gt and { +l b translate w h scale +w h true [w 0 0 h neg 0 h] { patternproc } imagemask +} if +} ifelse +grestore +end +} dup 0 8 dict put def + +/istroke { +gsave +brushDashOffset -1 eq { +[] 0 setdash +1 setgray +} { +brushDashArray brushDashOffset setdash +fgred fggreen fgblue setrgbcolor +} ifelse +brushWidth setlinewidth +originalCTM setmatrix +stroke +grestore +} def + +/ishow { +0 begin +gsave +fgred fggreen fgblue setrgbcolor +/fontDict printFont printSize scalefont dup setfont def +/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end +transform exch pop def +/vertoffset 1 printSize sub descender sub def { +0 vertoffset moveto show +/vertoffset vertoffset printSize sub def +} forall +grestore +end +} dup 0 3 dict put def +/patternproc { +0 begin +/patternByteLength patternString length def +/patternHeight patternByteLength 8 mul sqrt cvi def +/patternWidth patternHeight def +/patternByteWidth patternWidth 8 idiv def +/imageByteMaxLength imageByteWidth imageHeight mul +stringLimit patternByteWidth sub min def +/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv +patternHeight mul patternHeight max def +/imageHeight imageHeight imageMaxHeight sub store +/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def +0 1 imageMaxHeight 1 sub { +/y exch def +/patternRow y patternByteWidth mul patternByteLength mod def +/patternRowString patternString patternRow patternByteWidth getinterval def +/imageRow y imageByteWidth mul def +0 patternByteWidth imageByteWidth 1 sub { +/x exch def +imageString imageRow x add patternRowString putinterval +} for +} for +imageString +end +} dup 0 12 dict put def + +/min { +dup 3 2 roll dup 4 3 roll lt { exch } if pop +} def + +/max { +dup 3 2 roll dup 4 3 roll gt { exch } if pop +} def + +/midpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 x1 add 2 div +y0 y1 add 2 div +end +} dup 0 4 dict put def + +/thirdpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 2 mul x1 add 3 div +y0 2 mul y1 add 3 div +end +} dup 0 4 dict put def + +/subspline { +0 begin +/movetoNeeded exch def +y exch get /y3 exch def +x exch get /x3 exch def +y exch get /y2 exch def +x exch get /x2 exch def +y exch get /y1 exch def +x exch get /x1 exch def +y exch get /y0 exch def +x exch get /x0 exch def +x1 y1 x2 y2 thirdpoint +/p1y exch def +/p1x exch def +x2 y2 x1 y1 thirdpoint +/p2y exch def +/p2x exch def +x1 y1 x0 y0 thirdpoint +p1x p1y midpoint +/p0y exch def +/p0x exch def +x2 y2 x3 y3 thirdpoint +p2x p2y midpoint +/p3y exch def +/p3x exch def +movetoNeeded { p0x p0y moveto } if +p1x p1y p2x p2y p3x p3y curveto +end +} dup 0 17 dict put def + +/storexyn { +/n exch def +/y n array def +/x n array def +n 1 sub -1 0 { +/i exch def +y i 3 2 roll put +x i 3 2 roll put +} for +} def + +/SSten { +fgred fggreen fgblue setrgbcolor +dup true exch 1 0 0 -1 0 6 -1 roll matrix astore +} def + +/FSten { +dup 3 -1 roll dup 4 1 roll exch +newpath +0 0 moveto +dup 0 exch lineto +exch dup 3 1 roll exch lineto +0 lineto +closepath +bgred bggreen bgblue setrgbcolor +eofill +SSten +} def + +/Rast { +exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore +} def + + +/arrowhead { +0 begin +transform originalCTM itransform +/taily exch def +/tailx exch def +transform originalCTM itransform +/tipy exch def +/tipx exch def +/dy tipy taily sub def +/dx tipx tailx sub def +/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def +gsave +originalCTM setmatrix +tipx tipy translate +angle rotate +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +patternNone not { +originalCTM setmatrix +/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul +arrowWidth div def +/padtail brushWidth 2 div def +tipx tipy translate +angle rotate +padtip 0 translate +arrowHeight padtip add padtail add arrowHeight div dup scale +arrowheadpath +ifill +} if +brushNone not { +originalCTM setmatrix +tipx tipy translate +angle rotate +arrowheadpath +istroke +} if +grestore +end +} dup 0 9 dict put def + +/arrowheadpath { +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +} def + +/leftarrow { +0 begin +y exch get /taily exch def +x exch get /tailx exch def +y exch get /tipy exch def +x exch get /tipx exch def +brushLeftArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + +/rightarrow { +0 begin +y exch get /tipy exch def +x exch get /tipx exch def +y exch get /taily exch def +x exch get /tailx exch def +brushRightArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + + +%I Idraw 10 Grid 6 6 + + +Begin +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 0.799705 0 0 0.799705 0 0 ] concat +/originalCTM matrix currentmatrix def + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 0.99763 -0 -0 3.92857 18.0284 -414.643 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 0.99763 -0 -0 3.07143 18.0284 -128.357 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 477 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 -57 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 -27 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 177 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 219 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 18 81 ] concat +%I +12 231 432 243 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 957 ] concat +%I +[ +(int PVS\(p, alpha, beta, depth, plytogo\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 945 ] concat +%I +[ +(position p;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 933 ] concat +%I +[ +(int alpha, beta;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 921 ] concat +%I +[ +(int depth, plytogo;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 909 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 873 ] concat +%I +[ +(int h_length; /* ply position previously searched to */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 897 ] concat +%I +[ +(char *p_hash; /* pointer to hash value */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 885 ] concat +%I +[ +(char *p_key; /* pointer to hash table "lock" */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 861 ] concat +%I +[ +(int h_score; /* score for h_length ply */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 849 ] concat +%I +[ +(int h_flag; /* VALID, LBOUND or UBOUND */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 837 ] concat +%I +[ +(move *h_move; /* recommended move for h_length ply */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 825 ] concat +%I +[ +(int width; /* number of moves in move list */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 813 ] concat +%I +[ +(int i; /* move counter */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 801 ] concat +%I +[ +(int value; /* score of child PVS call */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 783 ] concat +%I +[ +(/* Generate hash value and key for this position */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 771 ] concat +%I +[ +(generate_hash\(p, p_hash, p_key\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 759 ] concat +%I +[ +(/* Fetch information from local transposition table */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 747 ] concat +%I +[ +(retrieve\(p_hash, p_kley, h_length, h_score, h_flag, h_move\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 729 ] concat +%I +[ +(/* If we have searched position deep enough, use score info */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 705 ] concat +%I +[ +(if \(flag == VALID\) { return\(h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 669 ] concat +%I +[ +(if \(alpha >= beta\) { return\(h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 657 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 639 ] concat +%I +[ +(/* Evaluate position if at bottom of the tree */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 591 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 573 ] concat +%I +[ +(/* Generate move list, evaluate position if no moves */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 549 ] concat +%I +[ +(if \(width == 0\) { return\(evaluate\(p\)\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 501 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 681 ] concat +%I +[ +(if \(flag == UBOUND\) { beta = min\(beta,h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 693 ] concat +%I +[ +(if \(flag == LBOUND\) { alpha = max\(alpha,h_score\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 483 ] concat +%I +[ +(score = -INFINITY;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 471 ] concat +%I +[ +(lower = alpha; upper = beta;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 441 ] concat +%I +[ +(/* Loop through moves in move list */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 429 ] concat +%I +[ +(for\(i=1; \(i <= width && score <= beta\); i++ \) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 405 ] concat +%I +[ +(make_move\(p, move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 387 ] concat +%I +[ +(value = -PVS\(p, -upper, -lower, depth+1, plytogo-1\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 375 ] concat +%I +[ +(if \(value > score && i > 1\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 363 ] concat +%I +[ +(value = -PVS\(p, -beta, -value, depth+1, plytogo-1\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 351 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 333 ] concat +%I +[ +(unmake_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 309 ] concat +%I +[ +(if \(value > score\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 297 ] concat +%I +[ +(score = value;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 120 285 ] concat +%I +[ +(move_opt = move[i];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 273 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 255 ] concat +%I +[ +(/* Set bounds for next search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 243 ] concat +%I +[ +(lower = max\(alpha, score\); upper = lower+1;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 231 ] concat +%I +[ +(} /* for all moves */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 195 ] concat +%I +[ +(/* Write information into local trans. table */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 171 ] concat +%I +[ +(h_flag = VALID;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 561 ] concat +%I +[ +(width = generate\(p, h_move\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 159 ] concat +%I +[ +(if \(score <= alpha\) { h_flag = UBOUND; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 147 ] concat +%I +[ +(if \(score >= beta\) { h_flag = LBOUND; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 135 ] concat +%I +[ +(if \(h_length <= plytogo\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 123 ] concat +%I +[ +(store\(p_hash, p_key, plytogo, score, h_flag, move_opt\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 111 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 99 ] concat +%I +[ +(return\(score\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 48 87 ] concat +%I +[ +(} /* function PVS */) +] Text +End + +Begin %I Rect +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 2 -0 -0 2 -190 -34 ] concat +%I +107 47 323 503 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 627 ] concat +%I +[ +(if \(plytogo <= 0\) { return\(evaluate\(p\)\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 717 ] concat +%I +[ +(if \(aphid_master\(\) == FALSE && h_length == plytogo\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 615 ] concat +%I +[ +(if \(aphid_horizon\(depth\)\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 537 ] concat +%I +[ +(if \(aphid_checkalarm\(\) != FALSE\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 459 ] concat +%I +[ +(aphid_intnode_start\(depth, p_hash, p_key\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 417 ] concat +%I +[ +(aphid_intnode_move\(depth, &\(move[i]\)\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 321 ] concat +%I +[ +(aphid_intnode_update\(depth, value\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 213 ] concat +%I +[ +(if \(score >= beta\) { aphid_intnode_fixbound\(depth\); }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 183 ] concat +%I +[ +(aphid_intnode_end\(depth, &score\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 525 ] concat +%I +[ +(terminate_search = TRUE;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 603 ] concat +%I +[ +(return\(aphid_eval_leaf\(alpha,beta,depth,p_hash,p_key\)\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 96 513 ] concat +%I +[ +(return\(0\); /* Should exit PVS quickly when alarm on */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 390 2520 a Fn(Figure)14 b(3:)j(Ho)o(w)d(APHID)g(Mo)q(di\014es)g(A)g(T) +o(ypical)f(PVS)h(Implemen)o(tation)954 2828 y(10)p eop +%%Page: 11 11 +11 10 bop 459 188 a + 16292818 4736286 1184071 44665815 23615651 51178209 startTexFig + 459 188 a +%%BeginDocument: code5.ps + +/arrowHeight 10 def +/arrowWidth 5 def + +/IdrawDict 51 dict def +IdrawDict begin + +/reencodeISO { +dup dup findfont dup length dict begin +{ 1 index /FID ne { def }{ pop pop } ifelse } forall +/Encoding ISOLatin1Encoding def +currentdict end definefont +} def + +/ISOLatin1Encoding [ +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright +/parenleft/parenright/asterisk/plus/comma/minus/period/slash +/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon +/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N +/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright +/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m +/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve +/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut +/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar +/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot +/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior +/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine +/guillemotright/onequarter/onehalf/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute +/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis +/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave +/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex +/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis +/yacute/thorn/ydieresis +] def +/Courier reencodeISO def + +/none null def +/numGraphicParameters 17 def +/stringLimit 65535 def + +/Begin { +save +numGraphicParameters dict begin +} def + +/End { +end +restore +} def + +/SetB { +dup type /nulltype eq { +pop +false /brushRightArrow idef +false /brushLeftArrow idef +true /brushNone idef +} { +/brushDashOffset idef +/brushDashArray idef +0 ne /brushRightArrow idef +0 ne /brushLeftArrow idef +/brushWidth idef +false /brushNone idef +} ifelse +} def + +/SetCFg { +/fgblue idef +/fggreen idef +/fgred idef +} def + +/SetCBg { +/bgblue idef +/bggreen idef +/bgred idef +} def + +/SetF { +/printSize idef +/printFont idef +} def + +/SetP { +dup type /nulltype eq { +pop true /patternNone idef +} { +dup -1 eq { +/patternGrayLevel idef +/patternString idef +} { +/patternGrayLevel idef +} ifelse +false /patternNone idef +} ifelse +} def + +/BSpl { +0 begin +storexyn +newpath +n 1 gt { +0 0 0 0 0 0 1 1 true subspline +n 2 gt { +0 0 0 0 1 1 2 2 false subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline +} if +n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Circ { +newpath +0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/CBSpl { +0 begin +dup 2 gt { +storexyn +newpath +n 1 sub dup 0 0 1 1 2 2 true subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline +n 2 sub dup n 1 sub dup 0 0 1 1 false subspline +patternNone not { ifill } if +brushNone not { istroke } if +} { +Poly +} ifelse +end +} dup 0 4 dict put def + +/Elli { +0 begin +newpath +4 2 roll +translate +scale +0 0 1 0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 1 dict put def + +/Line { +0 begin +2 storexyn +newpath +x 0 get y 0 get moveto +x 1 get y 1 get lineto +brushNone not { istroke } if +0 0 1 1 leftarrow +0 0 1 1 rightarrow +end +} dup 0 4 dict put def + +/MLine { +0 begin +storexyn +newpath +n 1 gt { +x 0 get y 0 get moveto +1 1 n 1 sub { +/i exch def +x i get y i get lineto +} for +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Poly { +3 1 roll +newpath +moveto +-1 add +{ lineto } repeat +closepath +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/Rect { +0 begin +/t exch def +/r exch def +/b exch def +/l exch def +newpath +l b moveto +l t lineto +r t lineto +r b lineto +closepath +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 4 dict put def + +/Text { +ishow +} def + +/idef { +dup where { pop pop pop } { exch def } ifelse +} def + +/ifill { +0 begin +gsave +patternGrayLevel -1 ne { +fgred bgred fgred sub patternGrayLevel mul add +fggreen bggreen fggreen sub patternGrayLevel mul add +fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor +eofill +} { +eoclip +originalCTM setmatrix +pathbbox /t exch def /r exch def /b exch def /l exch def +/w r l sub ceiling cvi def +/h t b sub ceiling cvi def +/imageByteWidth w 8 div ceiling cvi def +/imageHeight h def +bgred bggreen bgblue setrgbcolor +eofill +fgred fggreen fgblue setrgbcolor +w 0 gt h 0 gt and { +l b translate w h scale +w h true [w 0 0 h neg 0 h] { patternproc } imagemask +} if +} ifelse +grestore +end +} dup 0 8 dict put def + +/istroke { +gsave +brushDashOffset -1 eq { +[] 0 setdash +1 setgray +} { +brushDashArray brushDashOffset setdash +fgred fggreen fgblue setrgbcolor +} ifelse +brushWidth setlinewidth +originalCTM setmatrix +stroke +grestore +} def + +/ishow { +0 begin +gsave +fgred fggreen fgblue setrgbcolor +/fontDict printFont printSize scalefont dup setfont def +/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end +transform exch pop def +/vertoffset 1 printSize sub descender sub def { +0 vertoffset moveto show +/vertoffset vertoffset printSize sub def +} forall +grestore +end +} dup 0 3 dict put def +/patternproc { +0 begin +/patternByteLength patternString length def +/patternHeight patternByteLength 8 mul sqrt cvi def +/patternWidth patternHeight def +/patternByteWidth patternWidth 8 idiv def +/imageByteMaxLength imageByteWidth imageHeight mul +stringLimit patternByteWidth sub min def +/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv +patternHeight mul patternHeight max def +/imageHeight imageHeight imageMaxHeight sub store +/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def +0 1 imageMaxHeight 1 sub { +/y exch def +/patternRow y patternByteWidth mul patternByteLength mod def +/patternRowString patternString patternRow patternByteWidth getinterval def +/imageRow y imageByteWidth mul def +0 patternByteWidth imageByteWidth 1 sub { +/x exch def +imageString imageRow x add patternRowString putinterval +} for +} for +imageString +end +} dup 0 12 dict put def + +/min { +dup 3 2 roll dup 4 3 roll lt { exch } if pop +} def + +/max { +dup 3 2 roll dup 4 3 roll gt { exch } if pop +} def + +/midpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 x1 add 2 div +y0 y1 add 2 div +end +} dup 0 4 dict put def + +/thirdpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 2 mul x1 add 3 div +y0 2 mul y1 add 3 div +end +} dup 0 4 dict put def + +/subspline { +0 begin +/movetoNeeded exch def +y exch get /y3 exch def +x exch get /x3 exch def +y exch get /y2 exch def +x exch get /x2 exch def +y exch get /y1 exch def +x exch get /x1 exch def +y exch get /y0 exch def +x exch get /x0 exch def +x1 y1 x2 y2 thirdpoint +/p1y exch def +/p1x exch def +x2 y2 x1 y1 thirdpoint +/p2y exch def +/p2x exch def +x1 y1 x0 y0 thirdpoint +p1x p1y midpoint +/p0y exch def +/p0x exch def +x2 y2 x3 y3 thirdpoint +p2x p2y midpoint +/p3y exch def +/p3x exch def +movetoNeeded { p0x p0y moveto } if +p1x p1y p2x p2y p3x p3y curveto +end +} dup 0 17 dict put def + +/storexyn { +/n exch def +/y n array def +/x n array def +n 1 sub -1 0 { +/i exch def +y i 3 2 roll put +x i 3 2 roll put +} for +} def + +/SSten { +fgred fggreen fgblue setrgbcolor +dup true exch 1 0 0 -1 0 6 -1 roll matrix astore +} def + +/FSten { +dup 3 -1 roll dup 4 1 roll exch +newpath +0 0 moveto +dup 0 exch lineto +exch dup 3 1 roll exch lineto +0 lineto +closepath +bgred bggreen bgblue setrgbcolor +eofill +SSten +} def + +/Rast { +exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore +} def + + +/arrowhead { +0 begin +transform originalCTM itransform +/taily exch def +/tailx exch def +transform originalCTM itransform +/tipy exch def +/tipx exch def +/dy tipy taily sub def +/dx tipx tailx sub def +/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def +gsave +originalCTM setmatrix +tipx tipy translate +angle rotate +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +patternNone not { +originalCTM setmatrix +/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul +arrowWidth div def +/padtail brushWidth 2 div def +tipx tipy translate +angle rotate +padtip 0 translate +arrowHeight padtip add padtail add arrowHeight div dup scale +arrowheadpath +ifill +} if +brushNone not { +originalCTM setmatrix +tipx tipy translate +angle rotate +arrowheadpath +istroke +} if +grestore +end +} dup 0 9 dict put def + +/arrowheadpath { +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +} def + +/leftarrow { +0 begin +y exch get /taily exch def +x exch get /tailx exch def +y exch get /tipy exch def +x exch get /tipx exch def +brushLeftArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + +/rightarrow { +0 begin +y exch get /tipy exch def +x exch get /tipx exch def +y exch get /taily exch def +x exch get /tailx exch def +brushRightArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + + +%I Idraw 10 Grid 8 8 + + +Begin +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 0.799705 0 0 0.799705 0 0 ] concat +/originalCTM matrix currentmatrix def + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +155 342 563 354 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 951 ] concat +%I +[ +(for\(plytogo=1;\(plytogo <= MAXDEPTH && done == FALSE\); plytogo++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 939 ] concat +%I +[ +(/* Set up search */) +] Text +End + +Begin %I Rect +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1.00951 -0 -0 1.12603 -126.417 566.628 ] concat +%I +149 252 569 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 963 ] concat +%I +[ +(aphid_initsearch\(MAXDEPTH\);) +] Text +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 596 ] concat +%I +155 294 563 318 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 596 ] concat +%I +155 258 563 270 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 887 ] concat +%I +[ +(/* Print out results of search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 875 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 911 ] concat +%I +[ +(/* Call to aphid_rootsearch replaces call to PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 899 ] concat +%I +[ +(score = aphid_rootsearch\(0,plytogo,guess-eps,guess+eps\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 863 ] concat +%I +[ +(aphid_endsearch\(\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 61 925 ] concat +%I +[ +(/* Search at root around value \(guess\) with small error \(eps\) */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 385 579 a Fn(Figure)14 b(4:)k(Ho)o(w)c(APHID)g(Mo)q(di\014es)g(the)g +(Iterativ)o(e)h(Deep)q(ening)f(Routine)465 689 y + 16117604 19418804 1184071 24405032 23549870 51178209 startTexFig + 465 +689 a +%%BeginDocument: code6.ps + +/arrowHeight 10 def +/arrowWidth 5 def + +/IdrawDict 51 dict def +IdrawDict begin + +/reencodeISO { +dup dup findfont dup length dict begin +{ 1 index /FID ne { def }{ pop pop } ifelse } forall +/Encoding ISOLatin1Encoding def +currentdict end definefont +} def + +/ISOLatin1Encoding [ +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright +/parenleft/parenright/asterisk/plus/comma/minus/period/slash +/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon +/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N +/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright +/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m +/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve +/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut +/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar +/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot +/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior +/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine +/guillemotright/onequarter/onehalf/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute +/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis +/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave +/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex +/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis +/yacute/thorn/ydieresis +] def +/Courier reencodeISO def + +/none null def +/numGraphicParameters 17 def +/stringLimit 65535 def + +/Begin { +save +numGraphicParameters dict begin +} def + +/End { +end +restore +} def + +/SetB { +dup type /nulltype eq { +pop +false /brushRightArrow idef +false /brushLeftArrow idef +true /brushNone idef +} { +/brushDashOffset idef +/brushDashArray idef +0 ne /brushRightArrow idef +0 ne /brushLeftArrow idef +/brushWidth idef +false /brushNone idef +} ifelse +} def + +/SetCFg { +/fgblue idef +/fggreen idef +/fgred idef +} def + +/SetCBg { +/bgblue idef +/bggreen idef +/bgred idef +} def + +/SetF { +/printSize idef +/printFont idef +} def + +/SetP { +dup type /nulltype eq { +pop true /patternNone idef +} { +dup -1 eq { +/patternGrayLevel idef +/patternString idef +} { +/patternGrayLevel idef +} ifelse +false /patternNone idef +} ifelse +} def + +/BSpl { +0 begin +storexyn +newpath +n 1 gt { +0 0 0 0 0 0 1 1 true subspline +n 2 gt { +0 0 0 0 1 1 2 2 false subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline +} if +n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Circ { +newpath +0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/CBSpl { +0 begin +dup 2 gt { +storexyn +newpath +n 1 sub dup 0 0 1 1 2 2 true subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline +n 2 sub dup n 1 sub dup 0 0 1 1 false subspline +patternNone not { ifill } if +brushNone not { istroke } if +} { +Poly +} ifelse +end +} dup 0 4 dict put def + +/Elli { +0 begin +newpath +4 2 roll +translate +scale +0 0 1 0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 1 dict put def + +/Line { +0 begin +2 storexyn +newpath +x 0 get y 0 get moveto +x 1 get y 1 get lineto +brushNone not { istroke } if +0 0 1 1 leftarrow +0 0 1 1 rightarrow +end +} dup 0 4 dict put def + +/MLine { +0 begin +storexyn +newpath +n 1 gt { +x 0 get y 0 get moveto +1 1 n 1 sub { +/i exch def +x i get y i get lineto +} for +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Poly { +3 1 roll +newpath +moveto +-1 add +{ lineto } repeat +closepath +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/Rect { +0 begin +/t exch def +/r exch def +/b exch def +/l exch def +newpath +l b moveto +l t lineto +r t lineto +r b lineto +closepath +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 4 dict put def + +/Text { +ishow +} def + +/idef { +dup where { pop pop pop } { exch def } ifelse +} def + +/ifill { +0 begin +gsave +patternGrayLevel -1 ne { +fgred bgred fgred sub patternGrayLevel mul add +fggreen bggreen fggreen sub patternGrayLevel mul add +fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor +eofill +} { +eoclip +originalCTM setmatrix +pathbbox /t exch def /r exch def /b exch def /l exch def +/w r l sub ceiling cvi def +/h t b sub ceiling cvi def +/imageByteWidth w 8 div ceiling cvi def +/imageHeight h def +bgred bggreen bgblue setrgbcolor +eofill +fgred fggreen fgblue setrgbcolor +w 0 gt h 0 gt and { +l b translate w h scale +w h true [w 0 0 h neg 0 h] { patternproc } imagemask +} if +} ifelse +grestore +end +} dup 0 8 dict put def + +/istroke { +gsave +brushDashOffset -1 eq { +[] 0 setdash +1 setgray +} { +brushDashArray brushDashOffset setdash +fgred fggreen fgblue setrgbcolor +} ifelse +brushWidth setlinewidth +originalCTM setmatrix +stroke +grestore +} def + +/ishow { +0 begin +gsave +fgred fggreen fgblue setrgbcolor +/fontDict printFont printSize scalefont dup setfont def +/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end +transform exch pop def +/vertoffset 1 printSize sub descender sub def { +0 vertoffset moveto show +/vertoffset vertoffset printSize sub def +} forall +grestore +end +} dup 0 3 dict put def +/patternproc { +0 begin +/patternByteLength patternString length def +/patternHeight patternByteLength 8 mul sqrt cvi def +/patternWidth patternHeight def +/patternByteWidth patternWidth 8 idiv def +/imageByteMaxLength imageByteWidth imageHeight mul +stringLimit patternByteWidth sub min def +/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv +patternHeight mul patternHeight max def +/imageHeight imageHeight imageMaxHeight sub store +/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def +0 1 imageMaxHeight 1 sub { +/y exch def +/patternRow y patternByteWidth mul patternByteLength mod def +/patternRowString patternString patternRow patternByteWidth getinterval def +/imageRow y imageByteWidth mul def +0 patternByteWidth imageByteWidth 1 sub { +/x exch def +imageString imageRow x add patternRowString putinterval +} for +} for +imageString +end +} dup 0 12 dict put def + +/min { +dup 3 2 roll dup 4 3 roll lt { exch } if pop +} def + +/max { +dup 3 2 roll dup 4 3 roll gt { exch } if pop +} def + +/midpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 x1 add 2 div +y0 y1 add 2 div +end +} dup 0 4 dict put def + +/thirdpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 2 mul x1 add 3 div +y0 2 mul y1 add 3 div +end +} dup 0 4 dict put def + +/subspline { +0 begin +/movetoNeeded exch def +y exch get /y3 exch def +x exch get /x3 exch def +y exch get /y2 exch def +x exch get /x2 exch def +y exch get /y1 exch def +x exch get /x1 exch def +y exch get /y0 exch def +x exch get /x0 exch def +x1 y1 x2 y2 thirdpoint +/p1y exch def +/p1x exch def +x2 y2 x1 y1 thirdpoint +/p2y exch def +/p2x exch def +x1 y1 x0 y0 thirdpoint +p1x p1y midpoint +/p0y exch def +/p0x exch def +x2 y2 x3 y3 thirdpoint +p2x p2y midpoint +/p3y exch def +/p3x exch def +movetoNeeded { p0x p0y moveto } if +p1x p1y p2x p2y p3x p3y curveto +end +} dup 0 17 dict put def + +/storexyn { +/n exch def +/y n array def +/x n array def +n 1 sub -1 0 { +/i exch def +y i 3 2 roll put +x i 3 2 roll put +} for +} def + +/SSten { +fgred fggreen fgblue setrgbcolor +dup true exch 1 0 0 -1 0 6 -1 roll matrix astore +} def + +/FSten { +dup 3 -1 roll dup 4 1 roll exch +newpath +0 0 moveto +dup 0 exch lineto +exch dup 3 1 roll exch lineto +0 lineto +closepath +bgred bggreen bgblue setrgbcolor +eofill +SSten +} def + +/Rast { +exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore +} def + + +/arrowhead { +0 begin +transform originalCTM itransform +/taily exch def +/tailx exch def +transform originalCTM itransform +/tipy exch def +/tipx exch def +/dy tipy taily sub def +/dx tipx tailx sub def +/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def +gsave +originalCTM setmatrix +tipx tipy translate +angle rotate +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +patternNone not { +originalCTM setmatrix +/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul +arrowWidth div def +/padtail brushWidth 2 div def +tipx tipy translate +angle rotate +padtip 0 translate +arrowHeight padtip add padtail add arrowHeight div dup scale +arrowheadpath +ifill +} if +brushNone not { +originalCTM setmatrix +tipx tipy translate +angle rotate +arrowheadpath +istroke +} if +grestore +end +} dup 0 9 dict put def + +/arrowheadpath { +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +} def + +/leftarrow { +0 begin +y exch get /taily exch def +x exch get /tailx exch def +y exch get /tipy exch def +x exch get /tipx exch def +brushLeftArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + +/rightarrow { +0 begin +y exch get /tipy exch def +x exch get /tipx exch def +y exch get /taily exch def +x exch get /tailx exch def +brushRightArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + + +%I Idraw 10 Grid 8 8 + + +Begin +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 0.799705 0 0 0.799705 0 0 ] concat +/originalCTM matrix currentmatrix def + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 173 563 197 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 209 563 221 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 559 ] concat +%I +155 323 563 335 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +155 342 563 354 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 951 ] concat +%I +[ +(for\(plytogo=1;\(plytogo <= MAXDEPTH && done == FALSE\); plytogo++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 903 ] concat +%I +[ +(}) +] Text +End + +Begin %I Rect +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 1.00711 -0 -0 4.68604 -126.059 -714.975 ] concat +%I +149 252 569 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 915 ] concat +%I +[ +(/* Print out results of search */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 927 ] concat +%I +[ +(score = ROOT_PVS\(root_pos,guess-eps,guess+eps,0,plytogo\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 867 ] concat +%I +[ +(ROOT_PVS\(root_pos, alpha, beta, depth, plytogo\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 855 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 843 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 831 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 819 ] concat +%I +[ +(/* Search PV Move */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 807 ] concat +%I +[ +(lower = alpha;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 789 ] concat +%I +[ +(search_best_move:) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 765 ] concat +%I +[ +(make_move\(p,bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 729 ] concat +%I +[ +(unmake_move\(p,bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 963 ] concat +%I +[ +(aphid_initsearch\(MAXDEPTH\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 891 ] concat +%I +[ +(aphid_endsearch\(\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 777 ] concat +%I +[ +(aphid_intnode_premove\(depth, &bestmove\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 753 ] concat +%I +[ +(/* aphid_rootsearch replaces typical call to PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 939 ] concat +%I +[ +(/* Set up search with small window \(eps\) around guess */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 741 ] concat +%I +[ +(oldscore = -aphid_rootsearch\(depth+1,plytogo-1,-beta,-lower\);) +] Text +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 437 ] concat +%I +155 159 563 183 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 0 0 1 -125 437 ] concat +%I +155 207 563 219 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 641 ] concat +%I +[ +(make_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 629 ] concat +%I +[ +(/* Check if move beats PV move by more than delta */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 581 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 539 ] concat +%I +[ +(bestmove = move[i];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 527 ] concat +%I +[ +(lower = newscore;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 503 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 491 ] concat +%I +[ +(...) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 36 479 ] concat +%I +[ +(} /* function ROOT_PVS */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 653 ] concat +%I +[ +(aphid_intnode_premove\(depth,&move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 593 ] concat +%I +[ +(unmake_move\(p,move[i]\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 210 605 ] concat +%I +[ +(-oldscore-delta-1, -oldscore-delta\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 617 ] concat +%I +[ +(newscore = -aphid_rootsearch\(depth+1, plytogo-1,) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 515 ] concat +%I +[ +(if \(newscore < beta\) { goto search_best_move; }) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 84 551 ] concat +%I +[ +(/* set new best move and score and research \(if necc.\) */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 665 ] concat +%I +[ +(for\(i=2;\(i<=width && newscore <= oldscore+delta; i++\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 677 ] concat +%I +[ +(newscore = oldscore;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 563 ] concat +%I +[ +(if \(newscore > oldscore+delta\) {) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 60 711 ] concat +%I +[ +(/* Search other moves at root, and only switch if move beats */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 59 698 ] concat +%I +[ +(/* PV score \(oldscore\) by a small margin \(delta\) */) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 222 2010 a Fn(Figure)g(5:)k(Ho)o(w)c(APHID)g(Mo)q(di\014es)g(Sp)q +(ecial)g(Handling)e(Of)i(The)h(Ro)q(ot)e(Of)h(The)g(Game)e(T)m(ree)489 +2120 y + 15345567 7104430 1447198 41639854 22102671 51178209 startTexFig + 489 2120 a +%%BeginDocument: code7.ps + +/arrowHeight 10 def +/arrowWidth 5 def + +/IdrawDict 51 dict def +IdrawDict begin + +/reencodeISO { +dup dup findfont dup length dict begin +{ 1 index /FID ne { def }{ pop pop } ifelse } forall +/Encoding ISOLatin1Encoding def +currentdict end definefont +} def + +/ISOLatin1Encoding [ +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright +/parenleft/parenright/asterisk/plus/comma/minus/period/slash +/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon +/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N +/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright +/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m +/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef +/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve +/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut +/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar +/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot +/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior +/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine +/guillemotright/onequarter/onehalf/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex +/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis +/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute +/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis +/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave +/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex +/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis +/yacute/thorn/ydieresis +] def +/Courier reencodeISO def + +/none null def +/numGraphicParameters 17 def +/stringLimit 65535 def + +/Begin { +save +numGraphicParameters dict begin +} def + +/End { +end +restore +} def + +/SetB { +dup type /nulltype eq { +pop +false /brushRightArrow idef +false /brushLeftArrow idef +true /brushNone idef +} { +/brushDashOffset idef +/brushDashArray idef +0 ne /brushRightArrow idef +0 ne /brushLeftArrow idef +/brushWidth idef +false /brushNone idef +} ifelse +} def + +/SetCFg { +/fgblue idef +/fggreen idef +/fgred idef +} def + +/SetCBg { +/bgblue idef +/bggreen idef +/bgred idef +} def + +/SetF { +/printSize idef +/printFont idef +} def + +/SetP { +dup type /nulltype eq { +pop true /patternNone idef +} { +dup -1 eq { +/patternGrayLevel idef +/patternString idef +} { +/patternGrayLevel idef +} ifelse +false /patternNone idef +} ifelse +} def + +/BSpl { +0 begin +storexyn +newpath +n 1 gt { +0 0 0 0 0 0 1 1 true subspline +n 2 gt { +0 0 0 0 1 1 2 2 false subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline +} if +n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Circ { +newpath +0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/CBSpl { +0 begin +dup 2 gt { +storexyn +newpath +n 1 sub dup 0 0 1 1 2 2 true subspline +1 1 n 3 sub { +/i exch def +i 1 sub dup i dup i 1 add dup i 2 add dup false subspline +} for +n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline +n 2 sub dup n 1 sub dup 0 0 1 1 false subspline +patternNone not { ifill } if +brushNone not { istroke } if +} { +Poly +} ifelse +end +} dup 0 4 dict put def + +/Elli { +0 begin +newpath +4 2 roll +translate +scale +0 0 1 0 360 arc +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 1 dict put def + +/Line { +0 begin +2 storexyn +newpath +x 0 get y 0 get moveto +x 1 get y 1 get lineto +brushNone not { istroke } if +0 0 1 1 leftarrow +0 0 1 1 rightarrow +end +} dup 0 4 dict put def + +/MLine { +0 begin +storexyn +newpath +n 1 gt { +x 0 get y 0 get moveto +1 1 n 1 sub { +/i exch def +x i get y i get lineto +} for +patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if +brushNone not { istroke } if +0 0 1 1 leftarrow +n 2 sub dup n 1 sub dup rightarrow +} if +end +} dup 0 4 dict put def + +/Poly { +3 1 roll +newpath +moveto +-1 add +{ lineto } repeat +closepath +patternNone not { ifill } if +brushNone not { istroke } if +} def + +/Rect { +0 begin +/t exch def +/r exch def +/b exch def +/l exch def +newpath +l b moveto +l t lineto +r t lineto +r b lineto +closepath +patternNone not { ifill } if +brushNone not { istroke } if +end +} dup 0 4 dict put def + +/Text { +ishow +} def + +/idef { +dup where { pop pop pop } { exch def } ifelse +} def + +/ifill { +0 begin +gsave +patternGrayLevel -1 ne { +fgred bgred fgred sub patternGrayLevel mul add +fggreen bggreen fggreen sub patternGrayLevel mul add +fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor +eofill +} { +eoclip +originalCTM setmatrix +pathbbox /t exch def /r exch def /b exch def /l exch def +/w r l sub ceiling cvi def +/h t b sub ceiling cvi def +/imageByteWidth w 8 div ceiling cvi def +/imageHeight h def +bgred bggreen bgblue setrgbcolor +eofill +fgred fggreen fgblue setrgbcolor +w 0 gt h 0 gt and { +l b translate w h scale +w h true [w 0 0 h neg 0 h] { patternproc } imagemask +} if +} ifelse +grestore +end +} dup 0 8 dict put def + +/istroke { +gsave +brushDashOffset -1 eq { +[] 0 setdash +1 setgray +} { +brushDashArray brushDashOffset setdash +fgred fggreen fgblue setrgbcolor +} ifelse +brushWidth setlinewidth +originalCTM setmatrix +stroke +grestore +} def + +/ishow { +0 begin +gsave +fgred fggreen fgblue setrgbcolor +/fontDict printFont printSize scalefont dup setfont def +/descender fontDict begin 0 [FontBBox] 1 get FontMatrix end +transform exch pop def +/vertoffset 1 printSize sub descender sub def { +0 vertoffset moveto show +/vertoffset vertoffset printSize sub def +} forall +grestore +end +} dup 0 3 dict put def +/patternproc { +0 begin +/patternByteLength patternString length def +/patternHeight patternByteLength 8 mul sqrt cvi def +/patternWidth patternHeight def +/patternByteWidth patternWidth 8 idiv def +/imageByteMaxLength imageByteWidth imageHeight mul +stringLimit patternByteWidth sub min def +/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv +patternHeight mul patternHeight max def +/imageHeight imageHeight imageMaxHeight sub store +/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def +0 1 imageMaxHeight 1 sub { +/y exch def +/patternRow y patternByteWidth mul patternByteLength mod def +/patternRowString patternString patternRow patternByteWidth getinterval def +/imageRow y imageByteWidth mul def +0 patternByteWidth imageByteWidth 1 sub { +/x exch def +imageString imageRow x add patternRowString putinterval +} for +} for +imageString +end +} dup 0 12 dict put def + +/min { +dup 3 2 roll dup 4 3 roll lt { exch } if pop +} def + +/max { +dup 3 2 roll dup 4 3 roll gt { exch } if pop +} def + +/midpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 x1 add 2 div +y0 y1 add 2 div +end +} dup 0 4 dict put def + +/thirdpoint { +0 begin +/y1 exch def +/x1 exch def +/y0 exch def +/x0 exch def +x0 2 mul x1 add 3 div +y0 2 mul y1 add 3 div +end +} dup 0 4 dict put def + +/subspline { +0 begin +/movetoNeeded exch def +y exch get /y3 exch def +x exch get /x3 exch def +y exch get /y2 exch def +x exch get /x2 exch def +y exch get /y1 exch def +x exch get /x1 exch def +y exch get /y0 exch def +x exch get /x0 exch def +x1 y1 x2 y2 thirdpoint +/p1y exch def +/p1x exch def +x2 y2 x1 y1 thirdpoint +/p2y exch def +/p2x exch def +x1 y1 x0 y0 thirdpoint +p1x p1y midpoint +/p0y exch def +/p0x exch def +x2 y2 x3 y3 thirdpoint +p2x p2y midpoint +/p3y exch def +/p3x exch def +movetoNeeded { p0x p0y moveto } if +p1x p1y p2x p2y p3x p3y curveto +end +} dup 0 17 dict put def + +/storexyn { +/n exch def +/y n array def +/x n array def +n 1 sub -1 0 { +/i exch def +y i 3 2 roll put +x i 3 2 roll put +} for +} def + +/SSten { +fgred fggreen fgblue setrgbcolor +dup true exch 1 0 0 -1 0 6 -1 roll matrix astore +} def + +/FSten { +dup 3 -1 roll dup 4 1 roll exch +newpath +0 0 moveto +dup 0 exch lineto +exch dup 3 1 roll exch lineto +0 lineto +closepath +bgred bggreen bgblue setrgbcolor +eofill +SSten +} def + +/Rast { +exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore +} def + + +/arrowhead { +0 begin +transform originalCTM itransform +/taily exch def +/tailx exch def +transform originalCTM itransform +/tipy exch def +/tipx exch def +/dy tipy taily sub def +/dx tipx tailx sub def +/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def +gsave +originalCTM setmatrix +tipx tipy translate +angle rotate +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +patternNone not { +originalCTM setmatrix +/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul +arrowWidth div def +/padtail brushWidth 2 div def +tipx tipy translate +angle rotate +padtip 0 translate +arrowHeight padtip add padtail add arrowHeight div dup scale +arrowheadpath +ifill +} if +brushNone not { +originalCTM setmatrix +tipx tipy translate +angle rotate +arrowheadpath +istroke +} if +grestore +end +} dup 0 9 dict put def + +/arrowheadpath { +newpath +arrowHeight neg arrowWidth 2 div moveto +0 0 lineto +arrowHeight neg arrowWidth 2 div neg lineto +} def + +/leftarrow { +0 begin +y exch get /taily exch def +x exch get /tailx exch def +y exch get /tipy exch def +x exch get /tipx exch def +brushLeftArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + +/rightarrow { +0 begin +y exch get /tipy exch def +x exch get /tipx exch def +y exch get /taily exch def +x exch get /tailx exch def +brushRightArrow { tipx tipy tailx taily arrowhead } if +end +} dup 0 4 dict put def + + +%I Idraw 10 Grid 8 8 + + +Begin +%I b u +%I cfg u +%I cbg u +%I f u +%I p u +%I t +[ 0.799705 0 0 0.799705 0 0 ] concat +/originalCTM matrix currentmatrix def + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +161 216 539 228 Rect +End + +Begin %I Rect +none SetB %I b n +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +%I p +0.95 SetP +%I t +[ 1 -0 -0 1 -125 612 ] concat +%I +161 276 539 288 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 963 ] concat +%I +[ +(int main\(argc, argv\)) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 951 ] concat +%I +[ +(int argc;) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 939 ] concat +%I +[ +(char *argv[];) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 927 ] concat +%I +[ +({) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 915 ] concat +%I +[ +(/* Initialization required by any process in system */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 867 ] concat +%I +[ +(/* Initialization required only by the master process */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 825 ] concat +%I +[ +(exit\(0\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 42 813 ] concat +%I +[ +(}) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 855 ] concat +%I +[ +(/* Play game */) +] Text +End + +Begin %I Rect +%I b 65535 +1 0 0 [] 0 SetB +%I cfg Black +0 0 0 SetCFg +%I cbg White +1 1 1 SetCBg +none SetP %I p n +%I t +[ 0.997449 -0 -0 0.962766 -124.605 625.404 ] concat +%I +155 174 545 360 Rect +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 885 ] concat +%I +[ +(/* Only the absolute master process gets here */) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 897 ] concat +%I +[ +(aphid_startup\(argv\);) +] Text +End + +Begin %I Text +%I cfg Black +0 0 0 SetCFg +%I f -*-courier-medium-r-normal-*-10-*-*-*-*-*-*-* +Courier 10 SetF +%I t +[ 1 0 0 1 72 837 ] concat +%I +[ +(aphid_exit\(\);) +] Text +End + +End %I eop + +showpage + + +end +%%EndDocument + + endTexFig + 503 2661 a Fn(Figure)i(6:)k(Ho)o(w)13 b(APHID)h(Mo)q(di\014es)h(The)f +(Main)f(Program)954 2828 y(11)p eop +%%Page: 12 12 +12 11 bop 336 154 a + 20176580 14208860 3289088 3289088 50651955 36443095 startTexFig + 336 154 a +%%BeginDocument: graph5.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.100 0.100 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 928 M +63 0 V +6066 0 R +-63 0 V +756 928 M +(1) Rshow +840 1506 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 2083 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 3237 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3815 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 4392 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +140 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 71 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(5 ply) Rshow +6570 4766 M +252 0 V +2066 790 M +3292 980 L +1225 41 V +1226 75 V +6654 4766 D +2066 790 D +3292 980 D +4517 1021 D +5743 1096 D +LT1 +6486 4626 M +(6 ply) Rshow +6570 4626 M +252 0 V +2066 1067 M +1226 467 V +1225 266 V +1226 300 V +6654 4626 A +2066 1067 A +3292 1534 A +4517 1800 A +5743 2100 A +LT2 +6486 4486 M +(7 ply) Rshow +6570 4486 M +252 0 V +2066 1055 M +1226 664 V +1225 491 V +1226 548 V +6654 4486 B +2066 1055 B +3292 1719 B +4517 2210 B +5743 2758 B +LT3 +6486 4346 M +(8 ply) Rshow +6570 4346 M +252 0 V +2066 1176 M +3292 2181 L +1225 877 V +1226 768 V +6654 4346 C +2066 1176 C +3292 2181 C +4517 3058 C +5743 3826 C +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 394 1145 a Fn(Figure)14 b(7:)j(Sp)q(eedups)f(at)e(V)m(arious)f(Depths) +i(for)e(APHID)h(in)g Fj(TheTurk)62 1278 y Fn(The)f(24)f(p)q(ositions)g +(ha)o(v)o(e)h(b)q(een)g(sorted)h(b)o(y)e(the)h(size)g(of)f(the)h +(sequen)o(tial)g(searc)o(h)g(tree,)h(and)e(divided)g(in)o(to)g(three)i +(groups)0 1340 y(of)f(equal)h(size.)19 b(Figure)14 b(8)f(illustrates)h +(the)h(a)o(v)o(erage)f(sp)q(eedup)h(at)f(8)f(ply)h(for)f(eac)o(h)i +(third)f(of)f(the)h(complete)g(test)h(set.)62 1402 y(The)f(o)o(v)o +(erheads)g(in)f(the)g(algorithm)e(are)j(illustrated)f(in)f(Figure)i(9)f +(as)g(p)q(ercen)o(tages)i(of)e(the)h(sequen)o(tial)f(time)f(required)0 +1464 y(to)18 b(searc)o(h)i(all)d(24)h(p)q(ositions.)31 +b(The)19 b Fl(total)g(overhe)n(ad)f Fn(represen)o(ts)j(the)e +(additional)e(computing)g(time)g(required)i(b)o(y)f(the)0 +1527 y(parallel)13 b(algorithm)e(to)j(ac)o(hiev)o(e)g(the)g(same)f +(result:)486 1638 y(total)c(o)o(v)o(erhead)j(=)801 1610 +y(\(parallel)d(time)17 b Fk(\003)h Fn(n\))9 b Fk(\000)h +Fn(sequen)o(tial)f(time)p 801 1629 658 2 v 995 1667 a(sequen)o(tial)g +(time)0 1749 y(where)15 b Fm(n)f Fn(is)g(the)g(n)o(um)o(b)q(er)f(of)g +(pro)q(cessors.)21 b(The)14 b(total)f(o)o(v)o(erhead)h(is)g(also)f(a)h +(sum)f(of)g(the)i(four)e(o)o(v)o(erheads:)78 1853 y(total)8 +b(o)o(v)o(erhead)k(=)g(master)d(o)o(v)o(erhead)g(+)h(parallelization)d +(o)o(v)o(erhead)j(+)f(sp)q(eculativ)o(e)h(searc)o(h)h(+)e(searc)o(h)i +(o)o(v)o(erhead)p Fm(:)62 1957 y Fn(The)17 b Fl(master)f(overhe)n(ad)h +Fn(is)f(the)g(appro)o(ximate)e(p)q(enalt)o(y)i(incurred)h(b)o(y)f(ha)o +(ving)f(a)h(single)g(pro)q(cessor)h(b)q(eing)f(allo)q(cated)0 +2019 y(completely)d(to)g(the)i(handling)e(of)g(the)h(master.)k(This)c +(is)f(not)h(simply)1123 2003 y Fi(1)p 1121 2010 21 2 +v 1121 2034 a Fb(n)1147 2019 y Fn(,)f(but)h(is)g(the)g(time)f(tak)o(en) +h(a)o(w)o(a)o(y)f(b)o(y)g(the)i(master:)655 2137 y(master)9 +b(o)o(v)o(erhead)j(=)1031 2109 y(parallel)c(time)p 1008 +2128 271 2 v 1008 2166 a(sequen)o(tial)h(time)1283 2137 +y Fm(:)62 2248 y Fn(The)18 b Fl(p)n(ar)n(al)r(lelization)e(overhe)n(ad) +i Fn(is)f(the)g(p)q(enalt)o(y)g(incurred)h(b)o(y)f(the)g(APHID-library) +g(on)f(the)i(sp)q(eed)g(of)f(the)g(sla)o(v)o(es.)0 2311 +y(In)e(the)h(parallel)f(algorithm,)d(the)k(sla)o(v)o(es)f(w)o(ere)i +(visiting)d(2000)g(no)q(des)i(p)q(er)h(second.)23 b(The)16 +b(di\013erence)h(b)q(et)o(w)o(een)g(this)e(rate)0 2373 +y(and)g(the)g(sequen)o(tial)g(program's)e(no)q(de)i(rate)g(is)f(deriv)o +(ed)i(partially)d(from)g(the)i(o)o(v)o(erhead)g(of)f(using)g(PVM,)h +(and)g(partially)0 2435 y(from)f(the)i(w)o(ork-sc)o(heduling)f +(algorithm)e(on)i(eac)o(h)h(sla)o(v)o(e.)23 b(In)15 b(the)h(authors')g +(exp)q(erience,)h(this)f(complexit)o(y)d(o)o(v)o(erhead)j(is)0 +2497 y(appro)o(ximately)11 b(the)k(same)e(as)h(implemen)o(tatio)o(ns)e +(of)h(YBW)h(on)g(similar)d(hardw)o(are.)62 2560 y(The)16 +b Fl(se)n(ar)n(ch)f(overhe)n(ad)g Fn(starts)h(at)f(70\045)f(and)g +(increases)j(v)o(ery)e(gradually)f(as)g(w)o(e)i(increase)g(from)d(4)h +(to)h(16)f(pro)q(cessors.)0 2622 y(Most)i(of)g(the)h(searc)o(h)g(o)o(v) +o(erhead)g(is)f(incurred)h(b)o(y)f(attempting)f(to)h(do)g(searc)o(hes)i +(b)q(efore)f(the)g(correct)g(searc)o(h)h(windo)o(w)d(is)0 +2684 y(a)o(v)n(ailable.)g(Th)o(us,)c(the)h(sla)o(v)o(es)f(use)h +Fm(\013\014)h Fn(searc)o(h)g(windo)o(ws)d(that)h(are)h(larger)f(than)g +(those)h(in)e(the)i(sequen)o(tial)f(program.)16 b(Most)954 +2828 y(12)p eop +%%Page: 13 13 +13 12 bop 336 283 a + 20176580 14208860 3289088 3289088 50651955 36443095 startTexFig + 336 283 a +%%BeginDocument: graph6.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.100 0.100 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 928 M +63 0 V +6066 0 R +-63 0 V +756 928 M +(1) Rshow +840 1506 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(2) Rshow +840 2083 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(3) Rshow +840 2660 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(4) Rshow +840 3237 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(5) Rshow +840 3815 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(6) Rshow +840 4392 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(7) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(8) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +140 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Speedup) Cshow +grestore +3904 71 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Small) Rshow +6570 4766 M +252 0 V +2066 1136 M +1226 797 V +1225 698 V +1226 641 V +6654 4766 D +2066 1136 D +3292 1933 D +4517 2631 D +5743 3272 D +LT1 +6486 4626 M +(Medium) Rshow +6570 4626 M +252 0 V +2066 1101 M +3292 2146 L +1225 681 V +1226 809 V +6654 4626 A +2066 1101 A +3292 2146 A +4517 2827 A +5743 3636 A +LT2 +6486 4486 M +(Large) Rshow +6570 4486 M +252 0 V +2066 1234 M +3292 2239 L +4517 3272 L +1226 756 V +6654 4486 B +2066 1234 B +3292 2239 B +4517 3272 B +5743 4028 B +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 340 1274 a Fn(Figure)14 b(8:)k(Sp)q(eedups)d(for)f(Di\013eren)o(t)g +(Size)h(Problems)e(at)h(8)f(Ply)h(in)f Fj(TheTurk)336 +1575 y + 20176580 14208860 3289088 3289088 50651955 36443095 startTexFig + 336 1575 a +%%BeginDocument: graph4.ps +/gnudict 40 dict def +gnudict begin +/Color false def +/Solid false def +/gnulinewidth 5.000 def +/vshift -46 def +/dl {10 mul} def +/hpt 31.5 def +/vpt 31.5 def +/M {moveto} bind def +/L {lineto} bind def +/R {rmoveto} bind def +/V {rlineto} bind def +/vpt2 vpt 2 mul def +/hpt2 hpt 2 mul def +/Lshow { currentpoint stroke M + 0 vshift R show } def +/Rshow { currentpoint stroke M + dup stringwidth pop neg vshift R show } def +/Cshow { currentpoint stroke M + dup stringwidth pop -2 div vshift R show } def +/DL { Color {setrgbcolor Solid {pop []} if 0 setdash } + {pop pop pop Solid {pop []} if 0 setdash} ifelse } def +/BL { stroke gnulinewidth 2 mul setlinewidth } def +/AL { stroke gnulinewidth 2 div setlinewidth } def +/PL { stroke gnulinewidth setlinewidth } def +/LTb { BL [] 0 0 0 DL } def +/LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def +/LT0 { PL [] 0 1 0 DL } def +/LT1 { PL [4 dl 2 dl] 0 0 1 DL } def +/LT2 { PL [2 dl 3 dl] 1 0 0 DL } def +/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def +/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def +/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def +/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def +/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def +/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def +/P { stroke [] 0 setdash + currentlinewidth 2 div sub M + 0 currentlinewidth V stroke } def +/D { stroke [] 0 setdash 2 copy vpt add M + hpt neg vpt neg V hpt vpt neg V + hpt vpt V hpt neg vpt V closepath stroke + P } def +/A { stroke [] 0 setdash vpt sub M 0 vpt2 V + currentpoint stroke M + hpt neg vpt neg R hpt2 0 V stroke + } def +/B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M + 0 vpt2 neg V hpt2 0 V 0 vpt2 V + hpt2 neg 0 V closepath stroke + P } def +/C { stroke [] 0 setdash exch hpt sub exch vpt add M + hpt2 vpt2 neg V currentpoint stroke M + hpt2 neg 0 R hpt2 vpt2 V stroke } def +/T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M + hpt neg vpt -1.62 mul V + hpt 2 mul 0 V + hpt neg vpt 1.62 mul V closepath stroke + P } def +/S { 2 copy A C} def +end +gnudict begin +gsave +50 50 translate +0.100 0.100 scale +0 setgray +/Helvetica findfont 140 scalefont setfont +newpath +LTa +840 351 M +6129 0 V +840 351 M +0 4618 V +LTb +840 351 M +63 0 V +6066 0 R +-63 0 V +756 351 M +(0) Rshow +840 1275 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(50) Rshow +840 2198 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(100) Rshow +840 3122 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(150) Rshow +840 4045 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(200) Rshow +840 4969 M +63 0 V +6066 0 R +-63 0 V +-6150 0 R +(250) Rshow +840 351 M +0 63 V +0 4555 R +0 -63 V +840 211 M +(0) Cshow +2372 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(5) Cshow +3905 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(10) Cshow +5437 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(15) Cshow +6969 351 M +0 63 V +0 4555 R +0 -63 V +0 -4695 R +(20) Cshow +840 351 M +6129 0 V +0 4618 V +-6129 0 V +840 351 L +140 2660 M +currentpoint gsave translate 90 rotate 0 0 M +(Percent Overhead) Cshow +grestore +3904 71 M +(Number of Processors) Cshow +LT0 +6486 4766 M +(Search Overhead) Rshow +6570 4766 M +252 0 V +2066 1699 M +1226 113 V +1225 94 V +1226 96 V +6654 4766 D +2066 1699 D +3292 1812 D +4517 1906 D +5743 2002 D +LT1 +6486 4626 M +(Speculative Search) Rshow +6570 4626 M +252 0 V +2066 567 M +1226 33 V +1225 71 V +1226 85 V +6654 4626 A +2066 567 A +3292 600 A +4517 671 A +5743 756 A +LT2 +6486 4486 M +(Parallelization Overhead) Rshow +6570 4486 M +252 0 V +2066 802 M +1226 66 V +1225 96 V +1226 87 V +6654 4486 B +2066 802 B +3292 868 B +4517 964 B +5743 1051 B +LT3 +6486 4346 M +(Master Overhead) Rshow +6570 4346 M +252 0 V +2066 1638 M +3292 933 L +4517 744 L +5743 658 L +6654 4346 C +2066 1638 C +3292 933 C +4517 744 C +5743 658 C +LT4 +6486 4206 M +(Total Overhead) Rshow +6570 4206 M +252 0 V +2066 3656 M +3292 3161 L +1225 72 V +1226 181 V +6654 4206 T +2066 3656 T +3292 3161 T +4517 3233 T +5743 3414 T +stroke +grestore +end +showpage +%%EndDocument + + endTexFig + 475 2566 a Fn(Figure)h(9:)k(Ov)o(erheads)d(at)f(8)g(Ply)f(for)h(APHID) +g(in)f Fj(TheTurk)954 2828 y Fn(13)p eop +%%Page: 14 14 +14 13 bop 0 195 a Fn(of)13 b(the)h(increase)h(in)e(searc)o(h)i(o)o(v)o +(erhead)f(as)g(w)o(e)f(increase)i(the)g(n)o(um)o(b)q(er)d(of)h(pro)q +(cessors)j(can)e(b)q(e)g(attributed)g(to)g(information)0 +257 y(de\014ciency)m(,)21 b(since)e(there)i(is)d(no)h(common)d(shared)k +(data)e(b)q(et)o(w)o(een)j(the)e(pro)q(cesses)j(\(suc)o(h)e(as)f(a)f +(shared)i(transp)q(osition)0 320 y(table\).)62 382 y(Since)e(w)o(e)f +(only)f(searc)o(h)j(eac)o(h)e(p)q(osition)f(to)h(8)g(ply)m(,)g(the)g +(async)o(hronous)h(nature)g(of)e(the)i(sla)o(v)o(es)f(will)e(result)j +(in)f(some)0 444 y(w)o(ork)d(b)q(eing)h(done)f(at)h(9)f(ply)g(\(or)g +(more\).)19 b(The)c Fl(sp)n(e)n(culative)g(se)n(ar)n(ch)g +Fn(line)f(represen)o(ts)j(the)e(amoun)o(t)d(of)i(additional)f(searc)o +(h)0 506 y(b)q(ey)o(ond)f(what)g(the)g(sequen)o(tial)g(algorithm)d(w)o +(ould)i(ha)o(v)o(e)h(done.)18 b(Ho)o(w)o(ev)o(er,)12 +b(in)f(our)h(exp)q(erimen)o(ts,)g(the)g(sp)q(eculativ)o(e)h(searc)o(h)0 +569 y(results)k(w)o(ere)f(not)g(used)g(so)g(that)f(the)i(parallel)d +(program)g(pro)q(duces)j(the)f(iden)o(tical)f(results)i(as)e(the)i +(sequen)o(tial)e(v)o(ersion,)0 631 y(v)o(erifying)h(APHID's)g +(correctness)q(.)29 b(In)17 b(a)f(real)h(tournamen)o(t)f(game,)f(this)i +(sp)q(eculativ)o(e)h(searc)o(h)g(could)e(b)q(e)i(used)f(to)g(lo)q(ok)0 +693 y(an)e(extra)h(mo)o(v)o(e)d(ahead)j(on)f(some)f(k)o(ey)h(v)n +(ariations,)f(since)i(it)f(is)g(highly)f(lik)o(ely)g(that)i(the)f(mo)o +(v)o(es)f(extended)j(a)e(ply)g(ahead)0 756 y(w)o(ould)g(b)q(e)h(in)e +(the)i(left-most)e(branc)o(hes)j(of)e(the)h(tree.)23 +b(Note)16 b(that)g(other)g(algorithms,)d(suc)o(h)j(as)f(Y)m(oung)g +(Brothers)i(W)m(ait,)0 818 y(ha)o(v)o(e)d(pro)q(cessors)i(go)d(idle)h +(when)g(there)h(is)f(no)g(w)o(ork)f(left)h(to)g(do)f(on)h(the)g(curren) +o(t)i(iteration.)62 880 y(As)f(discussed)h(earlier,)d(load)h(balancing) +f(w)o(as)h(used)h(for)e(generating)i(the)f(results)h(giv)o(en)f(here.) +20 b(This)14 b(is)g(based)g(on)g(the)0 942 y(assumption)e(that)h(the)h +(primary)e(metric)g(to)h(measuring)g(a)g(parallel)f(program's)f(p)q +(erformance)i(is)g(the)h(sp)q(eed)h(with)e(whic)o(h)0 +1005 y(it)k(ac)o(hiev)o(es)g(a)g Fm(d)p Fn(-ply)e(result.)28 +b(Ho)o(w)o(ev)o(er,)18 b(one)f(could)g(argue)g(that)g(the)g(qualit)o(y) +f(of)g(the)i(result)f(ac)o(hiev)o(ed)g(is)g(equiv)n(alen)o(t,)0 +1067 y(irresp)q(ectiv)o(e)22 b(of)d(the)h(sp)q(eedup.)38 +b(The)20 b(additional)e(sp)q(eculativ)o(e)j(searc)o(h)g(done)f(in)g +(cases)h(where)g(the)f(load)f(balance)h(is)0 1129 y(incorrect)15 +b(could)f(b)q(e)g(used)h(to)f(impro)o(v)o(e)e(the)i(qualit)o(y)f(of)g +(the)i(result)f(returned.)62 1191 y(Other)e(results)f(for)f(parallel)f +(searc)o(h)j(algorithms)c(on)i(a)g(net)o(w)o(ork)h(of)e(w)o +(orkstations)h(ha)o(v)o(e)h(b)q(een)g(presen)o(ted)i(for)d(the)g(game)0 +1254 y(of)k(c)o(hess)h([21].)j(A)d(distributed)g(transp)q(osition)f +(table)g(w)o(as)g(used)h(to)g(impro)o(v)o(e)d(the)j(p)q(erformance)f +(of)g(the)h Fj(P)l(araPhoenix)0 1316 y Fn(c)o(hess)c(searc)o(hes,)h +(and)e(a)f(sp)q(eedup)j(of)d(7)g(w)o(as)h(ac)o(hiev)o(ed)g(on)f(16)h +(pro)q(cessors.)19 b(Although)9 b(these)i(results)g(are)f(marginally)c +(b)q(etter)0 1378 y(than)14 b(the)g(results)h(presen)o(ted)h(here,)e +(the)h(scalabilit)o(y)d(of)h(the)h(algorithm)e(w)o(as)h(extrap)q +(olated)h(to)g(a)f(sp)q(eedup)j(of)d(at)h(most)e(8)0 +1440 y(on)g(32)f(pro)q(cessors.)20 b(Based)13 b(on)f(the)g(graphs)h +(presen)o(ted)h(earlier)e(in)g(this)g(section,)h(w)o(e)f(b)q(eliev)o(e) +g(the)h(APHID)f(algorithm)d(will)0 1503 y(outp)q(erform)16 +b(on)g(a)g(larger)h(n)o(um)o(b)q(er)f(of)g(pro)q(cessors.)28 +b(The)17 b(b)q(ene\014cial)g(e\013ects)i(of)d(the)h(distributed)h +(transp)q(osition)e(table)0 1565 y(are)i(deriv)o(ed)g(primarily)d(in)j +(the)g(top)g(plies)f(of)g(the)i(searc)o(h)g(tree,)g(and)f(these)h(b)q +(ene\014ts)g(are)f(duplicated)g(in)f(APHID)h(b)o(y)0 +1627 y(main)o(taining)10 b(the)15 b(top)f Fm(d)397 1612 +y Fd(0)422 1627 y Fn(ply)f(exclusiv)o(ely)h(on)g(the)g(master)g(pro)q +(cessor.)62 1689 y(Although)c(the)h(results)g(presen)o(ted)h(here)g +(for)e(c)o(hess)h(are)g(promising,)d(w)o(e)j(b)q(eliev)o(e)f(that)h(b)q +(etter)g(results)h(can)e(b)q(e)h(ac)o(hiev)o(ed.)0 1752 +y(The)16 b(results)g(for)f(parallelizing)e Fj(Key)m(ano)p +Fn(,)k(an)e(Othello)g(program,)e(yield)i(a)f(9-fold)g(sp)q(eedup)j +(with)e(the)g(APHID)h(library)0 1814 y(without)f(the)g(use)h(of)e(load) +g(balancing.)20 b(The)c(main)d(di\013erence)k(b)q(et)o(w)o(een)f(the)f +(results)i(is)d(that)h(the)h(searc)o(h)g(o)o(v)o(erhead)f(for)0 +1876 y Fj(Key)m(ano)h Fn(is)e(less)g(than)g(half)f(of)g(the)i +Fj(TheTurk)p Fn('s)f(70\045)f(searc)o(h)i(o)o(v)o(erhead.)62 +1939 y(The)g(authors)g(ha)o(v)o(e)f(come)f(up)h(with)g(t)o(w)o(o)g(p)q +(ossible)h(h)o(yp)q(otheses)g(for)f(this)h(discrepancy)m(.)20 +b(The)14 b(\014rst)h(is)g(that)f Fj(Key)m(ano)0 2001 +y Fn(do)q(es)f(not)e(use)i(quiescen)o(t)g(searc)o(h.)19 +b(As)12 b(a)f(consequence,)k(the)d(sizes)h(of)e(the)i(v)n(arious)e +(pieces)i(of)e(w)o(ork)h(are)g(more)f(predictable;)0 +2063 y(hence,)i(load)e(balancing)g(is)g(not)h(necessary)m(.)19 +b(Load)11 b(balancing)g(causes)i(searc)o(h)g(o)o(v)o(erhead)f(since)g +(it)g(forces)g(a)g(new)g(pro)q(cessor)0 2125 y(to)f(rep)q(eat)i(searc)o +(hes)h(done)e(b)o(y)f(a)g(di\013eren)o(t)i(pro)q(cessor.)19 +b(The)12 b(load)f(balancing)f(is)i(partially)e(resp)q(onsible)j(for)e +(the)h(di\013erence)0 2188 y(in)i(searc)o(h)h(o)o(v)o(erhead.)k(The)c +(second)g(p)q(ossible)f(reason)h(is)f(that)g(the)h(searc)o(h)g(windo)o +(ws)f(in)f(the)i(sla)o(v)o(es)f(can,)g(in)g(some)f(cases,)0 +2250 y(b)q(e)g(larger)f(than)h(the)g(minim)o(al)c(windo)o(w)i(used)i +(in)f(the)h(sequen)o(tial)g(program.)i(Although)d(this)h(larger)f +(windo)o(w)g(is)g(common)0 2312 y(to)i(b)q(oth)h(parallel)e(implemen)o +(tatio)o(ns,)f(it)i(has)g(a)g(m)o(uc)o(h)f(larger)i(e\013ect)h(on)e +(the)h(size)g(of)e(the)i(trees)h(searc)o(hed)g(in)e Fj(TheTurk)0 +2374 y Fn(than)g(in)f Fj(Key)m(ano)p Fn(.)62 2437 y(The)i(APHID)g +(algorithm)c(can)k(supp)q(ort)g(a)f(shared)i(transp)q(osition)e(table,) +g(but)g(the)h(algorithm)d(do)q(es)j(not)g(dep)q(end)g(on)0 +2499 y(its)g(presence.)22 b(Th)o(us,)15 b(the)g(algorithm)d(gets)j(go)q +(o)q(d)f(p)q(erformance)h(on)f(a)h(lo)q(osely-coupled)f(net)o(w)o(ork)h +(of)f(w)o(orkstations)g(and)0 2561 y(will)e(p)q(erform)h(ev)o(en)i(b)q +(etter)h(on)d(tigh)o(tly-coupled)g(pro)q(cessors.)954 +2828 y(14)p eop +%%Page: 15 15 +15 14 bop 0 195 a Fo(5)69 b(Conclusions)22 b(and)i(F)-6 +b(uture)23 b(W)-6 b(ork)0 298 y Fn(The)14 b(APHID)f(algorithm)e(yields) +i(go)q(o)q(d)g(sp)q(eedups)i(on)e(a)g(net)o(w)o(ork)g(of)g(w)o +(orkstations)g(without)g(the)h(necessit)o(y)g(of)f(a)g(shared)0 +361 y(transp)q(osition)g(table.)18 b(Although)13 b(the)i(authors)f(are) +g(pleased)g(with)f(these)i(preliminary)c(results,)k(a)e(lot)g(of)g(w)o +(ork)g(is)h(left)f(to)0 423 y(b)q(e)i(done.)62 485 y(Our)e(curren)o(t)h +(implemen)o(tation)9 b(of)j(APHID)g(uses)i(a)e(\014xed-depth)h(horizon) +g(for)f(the)h(master's)e(tree.)19 b(As)13 b(men)o(tioned)e(in)0 +548 y(our)i(discussion)h(of)f(load)f(balancing,)g(all)g(p)q(ositions)h +(are)h(not)f(equal)g(in)g(the)h(amoun)o(t)e(of)h(searc)o(h)h(e\013ort)g +(they)g(require)g(for)f(a)0 610 y(\014xed)g(depth)g(of)e(searc)o(h.)19 +b(APHID)13 b(is)f(b)q(eing)g(generalized)h(to)f(supp)q(ort)h(a)f +(dynamically)e(c)o(hanging)h(horizon)h(in)g(the)h(master.)62 +672 y(Instead)h(of)e(basing)h(the)g(results)i(of)d(the)i(algorithm)c +(on)j(the)g(sp)q(eedup,)i(w)o(e)e(are)g(also)g(in)o(terested)h(in)f +(the)g(qualit)o(y)f(of)g(the)0 734 y(results)i(returned)h(b)o(y)d(the)i +(algorithm.)h(This)e(alternativ)o(e)g(view)f(of)h(parallel)f(p)q +(erformance)g(is)h(curren)o(tly)h(b)q(eing)f(explored.)62 +797 y(The)i(results)g(rep)q(orted)h(here)f(are)g(based)g(on)e(a)h +(simple)f(master/sla)o(v)o(e)g(relationship.)18 b(As)d(the)g(n)o(um)o +(b)q(er)e(of)h(pro)q(cessors)0 859 y(increases,)f(the)f(master)f +(increasingly)h(b)q(ecomes)f(a)h(b)q(ottlenec)o(k.)18 +b(APHID)11 b(has)h(b)q(een)h(generalized)f(to)f(w)o(ork)h(in)f(a)g +(hierarc)o(hi-)0 921 y(cal)j(pro)q(cess)j(tree,)e(although)f(this)h +(asp)q(ect)h(of)e(the)h(algorithm)d(has)j(not)f(b)q(een)i(tested)g +(here.)22 b(Mid-lev)o(el)13 b(pro)q(cesses)18 b(w)o(ould)0 +983 y(b)q(eha)o(v)o(e)c(as)f(a)g(sla)o(v)o(e)g(to)o(w)o(ard)g(their)h +(master,)e(and)i(as)f(a)g(master)g(to)o(w)o(ard)g(their)h(sla)o(v)o +(es.)j(The)d(scalabilit)o(y)e(of)h(the)h(algorithm)0 +1046 y(has)g(y)o(et)h(to)f(b)q(e)h(demonstrated)f(on)g(arc)o +(hitectures)i(of)e(more)f(than)h(16)g(pro)q(cessors,)i(due)f(to)f +(resource)i(limitations)11 b(during)0 1108 y(the)j(academic)f(y)o(ear.) +62 1170 y(P)o(erhaps)i(the)e(biggest)h(con)o(tribution)f(of)f(APHID)i +(is)f(that)g(it)g(easily)g(\014ts)h(in)f(to)g(an)g(existing)g(sequen)o +(tial)g Fm(\013\014)j Fn(program.)0 1232 y(Not)h(only)e(has)i(APHID)g +(b)q(een)h(in)o(tegrated)f(in)o(to)f Fj(TheTurk)h Fn(and)f +Fj(Key)m(ano)p Fn(,)j(APHID)e(has)g(b)q(een)g(in)o(tegrated)g(in)o(to)f +(the)0 1295 y(c)o(hec)o(k)o(ers)g(program)d Fj(Chinook)j +Fn(with)e(one)g(afterno)q(on)h(of)f(e\013ort.)1033 1280 +y Fi(4)1072 1295 y Fn(In)g(con)o(trast,)h(the)g(v)o(ersion)g(of)e +Fj(Chinook)j Fn(used)f(in)f(the)0 1357 y(1994)f(matc)o(h)g(v)o(ersus)i +(Tinsley)e(to)q(ok)h(4)f(to)h(6)g(w)o(eeks)h(to)e(implemen)o(t)e([15].) +0 1494 y Fo(6)69 b(Ac)n(kno)n(wledgemen)n(ts)0 1598 y +Fn(This)14 b(w)o(ork)f(w)o(as)h(supp)q(orted)h(b)o(y)f(the)h(Natural)e +(Sciences)j(and)d(Engineering)h(Researc)o(h)h(Council)f(of)f(Canada.)0 +1735 y Fo(References)21 1818 y Fn([1])19 b(S.)d(G.)g(Akl,)f(D.)h(T.)g +(Barnard,)h(and)f(R.)f(J.)h(Doran.)25 b(Design,)16 b(Analysis)g(and)g +(Implemen)o(tation)d(of)j(a)g(P)o(arallel)f(T)m(ree)85 +1859 y(Searc)o(h)g(Algorithm.)i Fl(IEEE)f(T)m(r)n(ansactions)f(on)h +(Pattern)f(A)o(nalysis)g(and)h(Machine)g(Intel)r(ligenc)n(e)p +Fn(,)e(P)m(AMI-4\(2\):192{)85 1901 y(203,)f(1982.)21 +1975 y([2])19 b(G.)13 b(M.)h(Baudet.)k Fl(The)d(Design)g(and)h +(Analysis)e(of)h(Algorithms)f(for)g(Asynchr)n(onous)i(Multipr)n(o)n(c)n +(essors)p Fn(.)h(PhD)d(thesis,)85 2017 y(Carnegie)g(Mellon)g(Univ)o +(ersit)o(y)m(,)f(Pittsburgh,)h(P)m(A,)f(1978.)k(Av)n(ailable)12 +b(as)i(T)m(ec)o(h.)g(Rept.)f(CMU-CS-78-116.)21 2092 y([3])19 +b(V.-D.)j(Cung.)44 b Fl(Contribution)23 b(\022)-21 b(a)23 +b(l'A)o(lgorithmique)e(Non)j(Num)o(\023)-20 b(erique)23 +b(Par)n(al)r(l)o(\022)-20 b(ele:)34 b(Explor)n(ation)23 +b(d'Esp)n(ac)n(es)h(de)85 2133 y(R)n(e)n(cher)n(che)p +Fn(.)19 b(PhD)13 b(thesis,)i(Univ)o(ersit)o(\023)-20 +b(e)14 b(P)o(aris)g(VI,)g(April)f(1994.)21 2208 y([4])19 +b(V.)12 b(Da)o(vid.)h Fl(A)o(lgorithmique)f(p)n(ar)n(al)r(l)o(\022)-20 +b(ele)12 b(sur)h(les)g(arbr)n(es)f(de)i(d)o(\023)-20 +b(ecision)13 b(et)g(r)n(aisonnement)g(en)h(temps)f(c)n(ontr)n(aint)g(-) +f(Etude)85 2249 y(et)j(applic)n(ation)g(au)h(minimax)p +Fn(.)i(PhD)13 b(thesis,)i(ENSAE,)f(T)m(oulouse,)f(F)m(rance,)h(1993.)21 +2324 y([5])19 b(R.)34 b(F)m(eldmann.)78 b Fl(Spielb)n(aumsuche)35 +b(mit)e(massiv)h(p)n(ar)n(al)r(lelen)g(Systemen)p Fn(.)80 +b(PhD)35 b(thesis,)40 b(Univ)o(ersit\177)-21 b(at-)85 +2365 y(Gesam)o(tho)q(c)o(hsc)o(h)o(ule)13 b(P)o(aderb)q(orn,)h(P)o +(aderb)q(orn,)g(German)o(y)m(,)c(Ma)o(y)j(1993.)j(In)d(German)f({)h +(English)g(translation)f(a)o(v)n(ail-)85 2407 y(able.)21 +2482 y([6])19 b(E.)f(W.)e(F)m(elten)i(and)f(S.)h(W.)e(Otto.)29 +b(Chess)19 b(on)f(a)f(Hyp)q(ercub)q(e.)31 b(In)17 b(G.)g(F)m(o)o(x,)g +(editor,)h Fl(Pr)n(o)n(c)n(e)n(e)n(dings)g(of)h(The)f(Thir)n(d)85 +2523 y(Confer)n(enc)n(e)13 b(on)g(Hyp)n(er)n(cub)n(e)f(Concurr)n(ent)h +(Computers)f(and)h(Applic)n(ations)p Fn(,)e(v)o(olume)f(I)q +(I-Applications,)h(pages)g(1329{)85 2565 y(1341,)i(P)o(assadena,)h(CA,) +f(1988.)p 0 2599 780 2 v 46 2626 a Fh(4)64 2638 y Fg(The)e(results)f +(for)h Fa(Chinook)i Fg(w)o(ere)e(not)g(a)o(v)n(ailable)e(at)i(the)g +(time)g(of)g(writing.)954 2828 y Fn(15)p eop +%%Page: 16 16 +16 15 bop 21 195 a Fn([7])19 b(C.)c(F)m(erguson)h(and)g(R.)f(E.)g +(Korf.)23 b(Distributed)16 b(T)m(ree)g(Searc)o(h)h(and)e(its)h +(Application)f(to)g(Alpha-Beta)h(Pruning.)23 b(In)85 +237 y Fl(Pr)n(o)n(c)n(e)n(e)n(dings)15 b(of)g(AAAI-88)p +Fn(,)e(pages)h(128{132,)e(Sain)o(t)h(P)o(aul,)g(MN,)h(August)g(1988.)21 +311 y([8])19 b(R.D.)14 b(Green)o(blatt,)h(D.E.)e(Eastlak)o(e,)i(and)g +(S.D.)f(Cro)q(c)o(k)o(er.)22 b(The)15 b(Green)o(blatt)g(Chess)i +(Program.)i(In)c Fl(Pr)n(o)n(c)n(e)n(e)n(dings)h(of)85 +353 y(the)f(F)m(al)r(l)g(Joint)f(Computer)h(Confer)n(enc)n(e)p +Fn(,)e(pages)h(801{810,)e(1967.)21 428 y([9])19 b(F.-h.)c(Hsu.)22 +b Fl(L)n(ar)n(ge)16 b(Sc)n(ale)g(Par)n(al)r(lelization)f(of)h(A)o +(lpha-Beta)h(Se)n(ar)n(ch:)k(A)o(n)c(A)o(lgorithmic)d(and)j(A)o(r)n +(chite)n(ctur)n(al)e(Study)p Fn(.)85 469 y(PhD)g(thesis,)h(Carnegie)g +(Mellon)e(Univ)o(ersit)o(y)m(,)g(Pittsburgh,)i(U.S.A.,)e(1990.)20 +b(Also)15 b(T)m(ec)o(h.)g(Rept.)g(CMU-CS-90-108,)85 511 +y(Carnegie)f(Mellon)g(Univ)o(ersit)o(y)m(,)f(F)m(eb.)g(1990.)0 +585 y([10])19 b(R.)11 b(M.)h(Hy)o(att,)g(B.)g(W.)f(Suter,)i(and)e(H.)h +(L.)f(Nelson.)16 b(A)c(P)o(arallel)f(Alpha/Beta)h(T)m(ree)g(Searc)o +(hing)g(Algorithm.)h Fl(Par)n(al)r(lel)85 627 y(Computing)p +Fn(,)h(10\(3\):299{308,)d(1989.)0 702 y([11])19 b(D.)f(Kop)q(ec)i(and)f +(I.)f(Bratk)o(o.)33 b(The)19 b(Bratk)o(o-Kop)q(ec)h(Exp)q(erimen)o(t:) +28 b(A)19 b(Comparison)d(of)j(Human)e(and)i(Computer)85 +743 y(Performance)11 b(in)f(Chess.)j(In)d(M.R.B.)f(Clark)o(e,)i +(editor,)f Fl(A)n(dvanc)n(es)j(in)e(Computer)h(Chess)f(3)p +Fn(,)g(pages)g(57{72.)d(P)o(ermagon)85 785 y(Press,)15 +b(Oxford,)f(1982.)0 859 y([12])19 b(B.)14 b(C.)g(Kuszmaul.)k +Fl(Synchr)n(onize)n(d)e(MIMD)g(Computing)p Fn(.)k(PhD)14 +b(thesis,)h(Massac)o(h)o(usetts)h(Institute)f(of)f(T)m(ec)o(hnology)m +(,)85 901 y(Cam)o(bridge,)e(MA,)i(1994.)0 976 y([13])19 +b(G.)e(Lindstrom.)28 b(The)18 b(Key)g(No)q(de)g(Metho)q(d:)26 +b(A)18 b(Highly-P)o(arallel)d(Alpha-Beta)j(Algorithm.)26 +b(T)m(ec)o(hnical)18 b(Rep)q(ort)85 1017 y(UUCS)c(83-101,)e(Univ)o +(ersit)o(y)i(of)g(Utah,)f(Departmen)o(t)g(of)h(Computer)f(Science,)i +(Salt)e(Lak)o(e)h(Cit)o(y)m(,)e(UT,)h(Marc)o(h)i(1983.)0 +1092 y([14])k(C.-P)m(.)11 b(P)m(.)g(Lu.)j(P)o(arallel)d(Searc)o(h)h(of) +f(Narro)o(w)h(Game)e(Trees.)16 b(Master's)d(thesis,)f(Departmen)o(t)f +(of)g(Computing)f(Science,)85 1133 y(Univ)o(ersit)o(y)k(of)f(Alb)q +(erta,)h(Edmon)o(ton,)e(Canada,)h(1993.)0 1208 y([15])19 +b(P)m(.)13 b(Lu.)18 b(Priv)n(ate)c(comm)o(unication.)o(,)d(1996.)0 +1283 y([16])19 b(T.)11 b(A.)f(Marsland)h(and)g(M.)f(S.)h(Campb)q(ell.)g +(Parallel)f(Searc)o(h)i(of)e(Strongly)g(Ordered)j(Game)c(Trees.)15 +b Fl(A)o(CM)d(Computing)85 1324 y(Surveys)p Fn(,)i(14\(4\):533{551,)d +(1982.)0 1399 y([17])19 b(M.)14 b(M.)f(Newb)q(orn.)20 +b(Unsync)o(hronized)15 b(Iterativ)o(e)g(Deep)q(ening)f(P)o(arallel)f +(Alpha-Beta)h(Searc)o(h.)20 b Fl(IEEE)15 b(T)m(r)n(ansactions)85 +1440 y(on)h(Pattern)e(A)o(nalysis)h(and)h(Machine)g(Intel)r(ligenc)n(e) +p Fn(,)d(P)m(AMI-10\(5\):687{694,)d(1988.)0 1515 y([18])19 +b(J.)c(P)o(earl.)21 b(Asymptotic)14 b(Prop)q(erties)j(of)d(Minimax)e +(Trees)17 b(and)d(Game-Searc)o(hing)g(Pro)q(cedures.)23 +b Fl(A)o(rti\014cial)15 b(Intel)r(li-)85 1557 y(genc)n(e)p +Fn(,)f(14:113{138,)d(1980.)0 1631 y([19])19 b(A.)d(Plaat,)g(J.)g(Sc)o +(hae\013er,)i(W.)e(Pijls,)g(and)g(A.)g(de)h(Bruin.)25 +b(Nearly)17 b(Optimal)d(Minimax)g(T)m(ree)j(Searc)o(h?)35 +b(T)m(ec)o(hnical)85 1673 y(Rep)q(ort)17 b(94-19,)e(Departmen)o(t)h(of) +g(Computing)e(Science,)k(Univ)o(ersit)o(y)e(of)f(Alb)q(erta,)i(Edmon)o +(ton,)e(Alta.,)h(Decem)o(b)q(er)85 1714 y(1994.)0 1789 +y([20])j(A.)14 b(Reinefeld.)k(An)c(Impro)o(v)o(emen)o(t)d(to)j(the)g +(Scout)h(Tree-Searc)o(h)g(Algorithm.)h Fl(ICCA)e(Journal)p +Fn(,)g(6\(4\):4{14,)d(1983.)0 1864 y([21])19 b(J.)11 +b(Sc)o(hae\013er.)k(Distributed)d(Game-T)m(ree)e(Searc)o(hing.)j +Fl(Journal)g(of)f(Par)n(al)r(lel)f(and)i(Distribute)n(d)f(Computing)p +Fn(,)f(6\(2\):90{)85 1905 y(114,)i(1989.)0 1980 y([22])19 +b(I.)12 b(R.)g(Stein)o(b)q(erg)h(and)g(M.)f(Solomon.)h(Searc)o(hing)g +(Game)d(Trees)k(in)e(P)o(arallel.)j(In)e Fl(Pr)n(o)n(c)n(c)n(e)n(dings) +g(of)h(the)f(1990)i(Interna-)85 2022 y(tional)i(Confer)n(enc)n(e)f(on)h +(Par)n(al)r(lel)e(Pr)n(o)n(c)n(essing)h(\(vol.)g(3\))p +Fn(,)g(pages)g(9{17,)e(Univ)o(ersit)o(y)h(P)o(ark,)h(P)m(A,)f(1990.)f +(P)o(enn.)h(State)85 2063 y(Univ)o(ersit)o(y)f(Press.)0 +2138 y([23])19 b(V.)e(Sunderam.)28 b(PVM:)17 b(A)h(F)m(ramew)o(ork)d +(for)i(P)o(arallel)g(Distributed)g(Computing.)26 b Fl(Concurr)n(ency:)g +(Pr)n(actic)n(e)17 b(and)85 2179 y(Exp)n(erienc)n(e)p +Fn(,)d(2\(4\):315{339,)d(Decem)o(b)q(er)j(1990.)0 2254 +y([24])19 b(J.-C.)25 b(W)m(eill.)51 b Fl(Pr)n(o)n(gr)n(ammes)25 +b(d')o(\023)-20 b(eche)n(cs)26 b(de)g(championnat:)41 +b(ar)n(chite)n(ctur)n(e)25 b(lo)n(giciel)r(le)f(synth)o(\022)-20 +b(ese)27 b(de)f(fonctions)85 2296 y(d')o(\023)-20 b(evaluations,)15 +b(p)n(ar)n(al)r(l)o(\023)-20 b(elisme)14 b(de)h(r)n(e)n(cher)n(che)p +Fn(.)j(PhD)13 b(thesis,)i(Univ)o(ersit)o(\023)-20 b(e)14 +b(P)o(aris)g(8,)f(Jan)o(uary)h(1995.)954 2828 y(16)p +eop +%%Page: 17 17 +17 16 bop 0 195 a Fo(A)69 b(Description)21 b(of)i(APHID)f(In)n(terface) +0 294 y Fc(A.1)56 b(T)n(yp)r(es)18 b(of)h(Pro)r(cesses)f(within)g +(APHID)62 363 y Fk(\017)j Fe(absolute)f(master)p Fn(:)25 +b(The)18 b(single)g(pro)q(cess)h(whic)o(h)f(in)o(v)o(ok)o(es)g(all)e +(other)j(pro)q(cesses)h(within)e(the)g(APHID)g(pro)q(cess)104 +404 y(hierarc)o(h)o(y)m(,)13 b(whic)o(h)h(o)q(ccupies)h(the)f(highest)h +(lev)o(el)e(in)h(the)g(pro)q(cess)i(hierarc)o(h)o(y)m(.)62 +476 y Fk(\017)21 b Fe(slave)p Fn(:)g(An)o(y)16 b(pro)q(cess)i(that)e(m) +o(ust)f(rep)q(ort)i(its)f(searc)o(h)h(results)g(to)f(a)g(pro)q(cess)i +(ab)q(o)o(v)o(e)d(it)h(in)g(the)g(hierarc)o(h)o(y)m(.)25 +b(With)104 518 y(this)14 b(de\014nition,)f(a)g(pro)q(cess)j(is)e +(either)h(the)f(absolute)g(master)f(or)h(a)g(sla)o(v)o(e,)f(and)h(can)g +(not)g(b)q(e)g(b)q(oth.)62 589 y Fk(\017)21 b Fe(master)p +Fn(:)e(An)o(y)14 b(pro)q(cess)j(that)e(has)g(pro)q(cesses)j(underneath) +e(it)e(in)h(the)g(hierarc)o(h)o(y)m(.)21 b(Note)15 b(that)g(it)g(is)g +(p)q(ossible)g(for)f(a)104 631 y(pro)q(cess)h(to)f(b)q(e)h(b)q(oth)f(a) +f(master)h(and)f(a)h(sla)o(v)o(e)g(if)f(the)h(pro)q(cess)i(hierarc)o(h) +o(y)e(has)g(m)o(ultiple)e(lev)o(els.)0 746 y Fc(A.2)56 +b(Constan)n(ts)20 b(T)-5 b(o)19 b(Be)f(De\014ned)0 814 +y Fn(Since)c(the)h(library)e(is)h(application-indep)q(enden)o(t,)f +(some)g(de\014nitions)h(of)f(ho)o(w)g(things)h(are)h(implem)o(en)o(ted) +d(m)o(ust)h(b)q(e)h(giv)o(en)0 856 y(to)g(the)g(APHID)g(library)m(.)62 +932 y Fk(\017)21 b Fe(APHID)p 217 932 14 2 v 14 w(HASHTYPESIZE)p +Fn(:)11 b(The)k(size)f(\(in)g(b)o(ytes\))h(of)e(the)h(hash)g(v)n(alue)g +(used)h(in)e(y)o(our)h(program.)62 1003 y Fk(\017)21 +b Fe(APHID)p 217 1003 V 14 w(HASHKEYSIZE)p Fn(:)10 b(The)i(size)h(\(in) +f(b)o(ytes\))h(of)f(the)h(\\lo)q(c)o(k")e(used)i(to)f(guaran)o(tee)h +(that)f(t)o(w)o(o)g(p)q(ositions)f(sharing)h(the)104 +1045 y(same)h(hash)h(v)n(alue)f(are)h(the)h(same.)62 +1117 y Fk(\017)21 b Fe(APHID)p 217 1117 V 14 w(MOVESIZE)p +Fn(:)12 b(The)i(size)h(\(in)f(b)o(ytes\))g(of)g(the)g(represen)o +(tation)i(of)d(a)h(mo)o(v)o(e)e(in)h(the)i(application.)62 +1189 y Fk(\017)21 b Fe(APHID)p 217 1189 V 14 w(MINUSINF)15 +b Fn(and)h Fe(APHID)p 615 1189 V 15 w(PLUSINF)p Fn(:)e(Sp)q +(eci\014cations)j(of)e(v)n(alues)h(smaller)f(than)h(the)h(minim)n(um)o +(,)c(and)j(larger)104 1230 y(than)e(the)g(maxim)n(um)o(,)c(that)k(the)h +(\\ev)n(aluation")d(could)i(p)q(ossibly)f(return,)i(resp)q(ectiv)o(ely) +m(.)62 1302 y Fk(\017)21 b Fe(APHID)p 217 1302 V 14 w(INVALIDSCORE)p +Fn(:)13 b(A)j(v)n(alue)g(that)g(is)g(outside)g(the)g(range)h(represen)o +(ted)h(b)o(y)e(the)h(minim)n(um)11 b(and)16 b(maxim)n(um)104 +1344 y(v)n(alues)d(sp)q(eci\014ed)j(previously)m(.)62 +1415 y Fk(\017)21 b Fe(APHID)p 217 1415 V 14 w(LOG2)p +319 1415 V 15 w(TABSIZE)p Fn(:)16 b(The)j(size)g(of)e(the)i(APHID)f +(table)g(that)g(y)o(ou)g(in)o(tend)g(on)g(using)g(to)g(share)h(b)q(et)o +(w)o(een)g(the)104 1457 y(master)c(and)h(the)g(sla)o(v)o(es,)g(tak)o +(en)f(to)h(a)f(base)i(2)e(logarithm.)21 b(F)m(or)15 b(example,)g(a)g(v) +n(alue)g(of)g(14)g(indicates)h(an)g(APHID)104 1503 y(table)e(with)f(2) +323 1488 y Fi(14)370 1503 y Fn(=)e(16384)i(en)o(tries.)62 +1575 y Fk(\017)21 b Fe(APHID)p 217 1575 V 14 w(MAXSLAVEPLYSEARCH)p +Fn(:)7 b(The)j(maxim)o(um)c("plytogo")i(v)n(alue)i(that)g(y)o(ou)g +(could)g(p)q(ossibly)g(exp)q(ect)i(to)e(hand)g(to)g(a)104 +1616 y(sla)o(v)o(e)g(to)g(searc)o(h.)18 b(Note)10 b(that)g(this)h(v)n +(alue)e(should)h(not)g(b)q(e)h(excessiv)o(ely)g(large,)g(since)g(this)f +(and)g Fe(APHID)p 1683 1616 V 15 w(LOG2)p 1786 1616 V +14 w(TABSIZE)104 1658 y Fn(are)k(the)h(leading)e(determinan)o(ts)g(in)h +(the)g(amoun)o(t)e(of)h(memory)f(used)j(b)o(y)e(the)i(APHID)f(library)m +(.)62 1730 y Fk(\017)21 b Fe(APHID)p 217 1730 V 14 w +(MAXMASTERPLYSEARCH)p Fn(:)10 b(The)k(maxim)o(um)9 b(depth)15 +b(that)f(w)o(e)g(exp)q(ect)h(the)g(master)e(should)h(reac)o(h.)62 +1802 y Fk(\017)21 b Fe(APHID)p 217 1802 V 14 w(SLAVENODESTOCOMM)p +Fn(:)15 b(This)j(should)g(b)q(e)g(set)h(to)f(the)h(n)o(um)o(b)q(er)e +(of)h(no)q(des)h(that)f(the)g(sequen)o(tial)h(program)104 +1843 y(visits)13 b(on)h(the)h(t)o(yp)q(e)f(of)f(pro)q(cessor)j(b)q +(eing)e(used,)g(divided)g(b)o(y)f(10.)0 1958 y Fc(A.3)56 +b(Standard)19 b(V)-5 b(ariables)19 b(Used)62 2026 y Fk(\017)i +Fe(argv)p Fn(:)e(Standard)c(argumen)o(t)e(list.)20 b(Used)c(to)f +(instan)o(tiate)f(the)h(sla)o(v)o(es)g(with)g(the)g(same)f(parameters)h +(as)g(the)g(initial)104 2068 y(program.)62 2140 y Fk(\017)21 +b Fe(depth)p Fn(:)c(The)d(n)o(um)o(b)q(er)f(of)g(ply)h(the)g(curren)o +(t)i(no)q(de)e(is)g(a)o(w)o(a)o(y)f(from)f(the)i(ro)q(ot)g(of)f(the)i +(game)d(tree.)62 2212 y Fk(\017)21 b Fe(plytogo)p Fn(:)15 +b(The)c(n)o(um)o(b)q(er)f(of)g(ply)h(un)o(til)f(w)o(e)h(reac)o(h)g(the) +h(b)q(ottom)d(of)h(the)i(game)d(tree.)18 b(In)11 b(a)g(searc)o(h)h +(with)e(no)h(extensions)104 2253 y(or)j(forw)o(ard)f(pruning,)g +Fe(plytogo)21 b(+)g(depth)13 b Fn(should)h(b)q(e)g(constan)o(t.)62 +2325 y Fk(\017)21 b Fe(&move[i])10 b Fn(or)i Fe(&bestmove)p +Fn(:)j(A)d(p)q(oin)o(ter)g(to)f(an)h(area)g(of)f Fe(APHID)p +1098 2325 V 15 w(MOVESIZE)f Fn(b)o(ytes)i(whic)o(h)g(sp)q(eci\014es)h +(the)g(mo)o(v)o(e)d(b)q(eing)104 2367 y(pla)o(y)o(ed.)62 +2438 y Fk(\017)21 b Fe(p)p 129 2438 V 15 w(hash)p Fn(:)c(A)d(p)q(oin)o +(ter)g(to)g(an)g(area)g(of)f Fe(APHID)p 805 2438 V 15 +w(HASHTYPESIZE)e Fn(b)o(ytes)k(that)f(con)o(tains)g(the)g(curren)o(t)h +(hash)g(v)n(alue.)62 2510 y Fk(\017)21 b Fe(p)p 129 2510 +V 15 w(key)p Fn(:)c(A)c(p)q(oin)o(ter)g(to)f(an)g(area)h +Fe(APHID)p 729 2510 V 15 w(HASHKEYSIZE)d Fn(b)o(ytes)k(that)e(con)o +(tains)h(a)f(lo)q(c)o(k)g(whic)o(h)h(can)g(\\guaran)o(tee")f(the)104 +2552 y(b)q(oard)i(stored)h(in)e(the)h(lo)q(cation)f(of)h(the)g(hash)g +(table)g(is)g(correct.)62 2624 y Fk(\017)21 b Fe(alpha)13 +b Fn(and)g Fe(beta)p Fn(:)k(Searc)o(h)e(windo)o(w)e(used)i(b)o(y)f +Fm(\013\014)i Fn(implemen)o(tatio)o(n;)11 b(they)j(are)g(exp)q(ected)i +(to)e(b)q(e)h(32-bit)e(in)o(tegers.)62 2696 y Fk(\017)21 +b Fe(value)13 b Fn(and)g Fe(score)p Fn(:)k(V)m(alues)d(of)f(leaf)g(no)q +(des;)i(they)f(are)g(exp)q(ected)i(to)e(b)q(e)h(32-bit)e(in)o(tegers)h +(for)g(this)g(library)m(.)954 2828 y(17)p eop +%%Page: 18 18 +18 17 bop 0 195 a Fc(A.4)56 b(Stubs)19 b(T)-5 b(o)19 +b(Be)f(W)-5 b(ritten)62 263 y Fk(\017)21 b Fe(int)g(aphid)p +304 263 14 2 v 15 w(stub)p 407 263 V 14 w(encodeinit\(char)e(*msg\))p +Fn(:)k(Pro)o(vides)17 b(the)g(absolute)g(master)f(with)h(a)f(4000-b)o +(yte)g(bu\013er)i(to)104 305 y(store)g(all)d(p)q(ertinen)o(t)k +(information)14 b(ab)q(out)i(the)i(ro)q(ot)f(of)f(the)i(game)d(tree.)29 +b(The)17 b(return)i(v)n(alue)d(is)h(the)g(n)o(um)o(b)q(er)g(of)104 +346 y(b)o(ytes)d(used)h(in)f(the)g(string)g Fe(msg)p +Fn(.)62 421 y Fk(\017)21 b Fe(int)g(aphid)p 304 421 V +15 w(stub)p 407 421 V 14 w(decodeinit\(int)e(msg)p 814 +421 V 15 w(ln,)j(char)f(*msg\))p Fn(:)15 b(All)9 b(other)i(pro)q +(cesses)j(in)c(the)h(system,)f(aside)h(from)104 463 y(the)i(absolute)f +(master,)g(receiv)o(e)i(the)f(message)f(length)g(and)g(the)h(message)f +(enco)q(ded)i(b)o(y)e Fe(aphid)p 1606 463 V 15 w(stub)p +1709 463 V 15 w(encodeinit)p Fn(,)104 504 y(and)h(should)h(set)h(the)f +(ro)q(ot)g(of)g(their)g(game)e(tree,)j(accordingly)m(.)62 +579 y Fk(\017)21 b Fe(void)g(aphid)p 326 579 V 14 w(stub)p +428 579 V 15 w(movedownpath\(int)e(num)p 880 579 V 15 +w(moves,)h(char)h(*movepath\))p Fn(:)15 b(Called)10 b(b)o(y)h(the)h +(sla)o(v)o(es,)f(a)g(series)i(of)104 620 y Fe(num)p 173 +620 V 15 w(moves)d Fn(mo)o(v)o(es)h(is)g(giv)o(en)h(in)f +Fe(movepath)p Fn(,)f(with)h(eac)o(h)h(mo)o(v)o(e)e(b)q(eing)i +Fe(APHID)p 1328 620 V 15 w(MOVESIZE)e Fn(b)o(ytes)i(long.)17 +b(The)12 b(routine)104 662 y(should)h(pla)o(y)g(through)h(the)h(mo)o(v) +o(es)d(giv)o(en)i(in)f Fe(movepath)f Fn(from)h(the)h(ro)q(ot)g(of)f +(the)i(game)d(tree.)62 737 y Fk(\017)21 b Fe(void)g(aphid)p +326 737 V 14 w(stub)p 428 737 V 15 w(moveuppath\(int)e(num)p +836 737 V 15 w(moves,)i(char)g(*movepath\))p Fn(:)14 +b(Called)d(b)o(y)g(the)h(sla)o(v)o(es,)f(should)g(com-)104 +778 y(pletely)j(undo)f(an)o(y)h(c)o(hanges)g(made)f(b)o(y)h +Fe(aphid)p 856 778 V 14 w(stub)p 958 778 V 15 w(movedownpath)p +Fn(.)62 853 y Fk(\017)21 b Fe(int)g(aphid)p 304 853 V +15 w(stub)p 407 853 V 14 w(iterativedeepening\(i)o(nt)e(depth,)h(int)h +(last,)g(int)g(max\))p Fn(:)d(Called)13 b(b)o(y)h(the)h(sla)o(v)o(es,)f +(this)104 894 y(routine)j(should)f(return)i(the)g(searc)o(h)g(depth)f +(for)g(the)g(next)g(searc)o(h)h(of)f(a)f(leaf)g(no)q(de)i(from)d(a)h +(master's)g(tree.)28 b(F)m(or)104 936 y(most)12 b(programs)h(that)h(do) +g(iterativ)o(e)g(deep)q(ening)g(in)g(1)f(ply)h(steps,)h(this)f(should)f +(simply)f(return)j Fe(last)21 b(+)h(1)p Fn(.)62 1011 +y Fk(\017)f Fe(void)g(aphid)p 326 1011 V 14 w(stub)p +428 1011 V 15 w(preparesearch\(int)e(depth,)h(int)h(plytogo,)f(int)i +(winstats[],)d(int)i(*alpha,)104 1052 y(int)g(*beta\))p +Fn(:)16 b(Called)10 b(b)o(y)i(the)g(sla)o(v)o(es,)f(this)h(routine)g +(sets)g(the)g(initial)e(windo)o(w)h(searc)o(hed)i(b)o(y)e(the)h(sla)o +(v)o(es.)17 b(Statistics)104 1094 y(on)12 b(previous)h(searc)o(hes)h +(and)f(the)g(curren)o(t)h(guessed)g(score)g(at)e(the)h(ro)q(ot)g(are)f +(passed)i(in)e(via)g(the)h Fe(winstats[])d Fn(arra)o(y)m(.)104 +1135 y(The)j(routine)f(should)h(set)g Fe(*alpha)e Fn(and)h +Fe(*beta)g Fn(b)q(efore)h(terminating.)j(F)m(urthermore,)c(this)g +(routine)h(should)f(ensure)104 1177 y(that)i(an)o(y)f(global)f("alarm") +g(states)j(ha)o(v)o(e)e(b)q(een)i(turned)g(o\013.)62 +1251 y Fk(\017)21 b Fe(int)g(aphid)p 304 1251 V 15 w(stub)p +407 1251 V 14 w(alphabeta\(int)f(depth,)g(int)h(plytogo,)f(int)i +(alpha,)e(int)h(beta\))p Fn(:)c(Called)c(b)o(y)h(b)q(oth)104 +1293 y(the)f(master)e(and)h(the)h(sla)o(v)o(es,)f(this)g(routine)g +(should)g(call)g(y)o(our)g(implem)o(en)o(tation)d(of)j +Fm(\013\014)r Fn(,)g(and)g(return)h(the)g(minim)o(ax)104 +1334 y(v)n(alue)g(bac)o(k)h(to)g(the)g(APHID)g(library)m(.)62 +1409 y Fk(\017)21 b Fe(int)g(aphid)p 304 1409 V 15 w(stub)p +407 1409 V 14 w(evaluate\(int)f(depth,)g(int)i(alpha,)e(int)h(beta\))p +Fn(:)c(Called)c(b)o(y)g(the)h(master)f(the)h(\014rst)g(time)104 +1451 y(it)g(visits)h(a)f(leaf)g(of)g(its)h(tree,)g(this)g(routine)g +(should)f(simply)f(call)h(y)o(our)g(ev)n(aluation)f(routine)i(and)g +(return)g(the)h(score)104 1492 y(for)d(the)i(p)q(osition)e(reac)o(hed)i +(at)f Fe(depth)f Fn(ply)g(within)g(the)i(tree.)62 1567 +y Fk(\017)21 b Fe(int)g(aphid)p 304 1567 V 15 w(stub)p +407 1567 V 14 w(stopsearch\(int)e(pass)p 836 1567 V 15 +w(stats[]\))p Fn(:)j(Called)16 b(only)f(b)o(y)i(the)g(absolute)f +(master)g(pro)q(cess,)j(this)104 1608 y(routine)d(should)g(c)o(hec)o(k) +h(y)o(our)e(timer)g(and)h(determine)g(if)f(y)o(our)h(time)e(limit)f +(has)k(b)q(een)g(exceeded)h(for)d(a)h(searc)o(h.)25 b(If)104 +1650 y(the)14 b(time)f(limit)e(has)j(b)q(een)h(exceeded,)h(this)e +(routine)g(should)f(return)i(1;)f(otherwise,)g(0.)62 +1725 y Fk(\017)21 b Fe(int)g(aphid)p 304 1725 V 15 w(stub)p +407 1725 V 14 w(visited\(\))p Fn(:)c(Called)d(b)o(y)g(the)g(sla)o(v)o +(es,)g(this)g(should)g(return)i(a)e(global)e(coun)o(t)j(of)e(the)i(n)o +(um)o(b)q(er)f(of)104 1766 y(no)q(des)g(visited)g(b)o(y)g(the)g +(program.)0 1882 y Fc(A.5)56 b(In)n(terface)18 b(Calls)h(Used)f(b)n(y)h +(Master)g(and)g(Sla)n(v)n(e)62 1951 y Fk(\017)i Fe(void)g(aphid)p +326 1951 V 14 w(startup\(argv\))p Fn(:)k(In)19 b(the)g(\014rst)h(pro)q +(cess)g(run,)g(PVM)f(is)g(spa)o(wned)g(on)g(the)g(mac)o(hines)f(sp)q +(eci\014ed,)104 1992 y(and)c(a)f(sla)o(v)o(e)h(pro)q(cess)i(is)e(spa)o +(wned)g(with)g(the)h(same)e(argumen)o(t)g(list)g Fe(\(argv\))g +Fn(as)h(the)h(master,)e(as)h(sp)q(eci\014ed)i(b)o(y)d(the)104 +2034 y Fe(aphid.config)e Fn(\014le.)18 b(In)c(a)g(spa)o(wned)g(pro)q +(cess,)h(the)g(APHID)f(library)f(nev)o(er)i(exits)f(this)g(function)g +(call.)62 2108 y Fk(\017)21 b Fe(void)g(aphid)p 326 2108 +V 14 w(exit\(\))p Fn(:)j(This)17 b(routine)h(remo)o(v)o(es)e(a)h(pro)q +(cess)j(from)15 b(the)j(PVM)g(group,)f(and)g(it)g(should)g(b)q(e)h +(called)104 2150 y(b)q(efore)e(an)o(y)f(pro)q(cess)j(exits)e(\(due)g +(to)g(errors)h(or)e(normal)f(completion\).)21 b(If)16 +b(the)g(pro)q(cess)h(is)f(the)g(absolute)g(master,)104 +2191 y(completion)11 b(of)i(this)h(routine)f(ensures)j(that)d(all)f(of) +h(the)h(spa)o(wned)g(pro)q(cesses)i(ha)o(v)o(e)d(b)q(een)i(sh)o(ut)f +(do)o(wn)f(successfully)m(.)62 2266 y Fk(\017)21 b Fe(int)g(aphid)p +304 2266 V 15 w(master\(\))p Fn(:)16 b(Returns)f(1)e(if)g(the)i(pro)q +(cess)h(is)d(a)h(master)f(in)h(the)g(hierarc)o(h)o(y)m(,)g(and)f(0)h +(otherwise.)62 2341 y Fk(\017)21 b Fe(int)g(aphid)p 304 +2341 V 15 w(slave\(\))p Fn(:)14 b(Returns)d(1)f(if)g(the)h(pro)q(cess)h +(w)o(as)e(spa)o(wned,)h(returns)h(0)e(if)f(it)h(is)g(the)h(absolute)f +(master)g(pro)q(cess)104 2382 y(whic)o(h)k(spa)o(wned)h(the)g(other)g +(pro)q(cesses.)23 b(Note)15 b(that)f(a)h(pro)q(cess)h(can)f(b)q(e)g(b)q +(oth)f(a)h(sla)o(v)o(e)f(and)g(a)g(master)g(dep)q(ending)104 +2424 y(on)f(the)i(hierarc)o(h)o(y)f(sp)q(eci\014ed)i(in)d +Fe(aphid.config)p Fn(.)954 2828 y(18)p eop +%%Page: 19 19 +19 18 bop 0 195 a Fc(A.6)56 b(In)n(terface)18 b(Calls)h(Used)f(b)n(y)h +(Masters)g(Only)62 263 y Fk(\017)i Fe(void)g(aphid)p +326 263 14 2 v 14 w(initserach\(int)e(maxdepth\))p Fn(:)d(Called)d(b)o +(y)h(the)g(absolute)g(master)g(pro)q(cess,)h(this)f(pro)q(cedure)h +(pre-)104 305 y(pares)i(to)g(start)g(a)f(searc)o(h)i(in)e(parallel.)26 +b(This)16 b(routine)h(calls)f Fe(aphid)p 1212 305 V 15 +w(stub)p 1315 305 V 15 w(encodeinit)p Fn(,)f(and)h(then)h(informs)e +(all)104 346 y(of)e(the)i(other)g(pro)q(cesses)i(of)c(the)i(curren)o(t) +h(state)f(of)e(the)i(game.)i(The)e(parameter)f(indicates)g(the)h(maxim) +n(um)10 b(depth)104 388 y(that)k(an)o(y)f(pro)q(cess)j(is)e(nominall)o +(y)d(allo)o(w)o(ed)i(to)g(searc)o(h,)i Fl(not)g(including)h(se)n(ar)n +(ch)e(extensions)p Fn(.)62 463 y Fk(\017)21 b Fe(int)g(aphid)p +304 463 V 15 w(rootsearch\(int)e(depth,)h(int)h(plytogo,)f(int)i +(alpha,)e(int)h(beta\))p Fn(:)26 b(This)18 b(routine)h(is)f(called)104 +504 y(b)o(y)d(the)h(absolute)g(master,)e(instead)i(of)f(calling)f(the)i +(t)o(ypical)f Fm(\013\014)i Fn(implemen)o(taiton.)i(It)d(allo)o(ws)e(a) +h(master)g(pro)q(cess)104 546 y(to)i(do)g(m)o(ultiple)e(passes)k(of)e +(the)h(tree)g(un)o(til)f(the)h(searc)o(h)g(is)g(completed,)f(or)g(the)h +(alarm)d(has)j(b)q(een)g(signalled)f(via)104 587 y Fe(aphid)p +217 587 V 14 w(stub)p 319 587 V 15 w(stopsearch)p Fn(.)f(If)e(the)g +(searc)o(h)i(is)d(allo)o(w)o(ed)g(to)h(complete,)f(this)h(routine)g +(returns)h(the)g(minim)o(ax)c(v)n(alue)104 629 y(of)i(the)i(tree)g +(that)f(it)f(has)h(b)q(een)h(ask)o(ed)f(to)g(searc)o(h.)62 +703 y Fk(\017)21 b Fe(int)g(aphid)p 304 703 V 15 w(intnode)p +473 703 V 14 w(premove\(int)e(depth,)i(char)g(*moveptr\))p +Fn(:)15 b(Called)d(b)o(y)h(the)g(absolute)g(master,)e(this)i(rou-)104 +745 y(tine)h(stores)h(mo)o(v)o(es)e(made)f(b)q(efore)j(a)f(call)f(to)g +Fe(aphid)p 938 745 V 15 w(rootsearch)f Fn(in)h(the)i(mo)o(v)o(e)d +(list.)62 820 y Fk(\017)21 b Fe(void)g(aphid)p 326 820 +V 14 w(endsearch\(\))p Fn(:)15 b(The)e(absolute)f(master)g(should)g +(call)f(this)i(routine)f(when)h(it)f(is)g(\014nished)h(searc)o(hing)f +(a)104 861 y(tree)i(that)e(has)h(b)q(een)h(called)e(;)h(it)f(stops)h +(the)g(sla)o(v)o(es)g(from)e(w)o(orking)g(on)i(the)g(lea)o(v)o(es)g(of) +f(the)h(game)e(tree)j(and)e(prepares)104 903 y(the)i(sla)o(v)o(es)g(to) +g(receiv)o(e)h(a)f(new)g(ro)q(ot)g(p)q(osition.)62 977 +y Fk(\017)21 b Fe(void)g(aphid)p 326 977 V 14 w(horizon\(int)f(depth\)) +p Fn(:)15 b(A)d(\\master")e(pro)q(cess)j(calls)e(this)h(routine)f(to)g +(determine)h(if)e(it)h(has)h(reac)o(hed)104 1019 y(its)i(arti\014cial)f +(horizon.)62 1094 y Fk(\017)21 b Fe(void)g(aphid)p 326 +1094 V 14 w(eval)p 428 1094 V 15 w(leaf\(int)f(alpha,)h(int)g(beta,)g +(int)g(depth,)g(char)g(*p)p 1403 1094 V 15 w(hash,)g(char)g(*p)p +1702 1094 V 15 w(key\))p Fn(:)104 1135 y(This)10 b(routine)h +(determines)g(a)f(score)i(v)n(alue)d(for)h(the)i(leaf,)e(based)h(on)f +(the)h(b)q(est)h(information)7 b(a)o(v)n(ailable)h(to)j(the)g(master.) +104 1177 y Fe(p)p 129 1177 V 15 w(hash)i Fn(and)h Fe(p)p +348 1177 V 15 w(key)g Fn(are)g(required)h(to)f(determine)f(if)g(this)h +(no)q(de)h(has)f(b)q(een)h(previously)e(visited.)62 1251 +y Fk(\017)21 b Fe(void)g(aphid)p 326 1251 V 14 w(intnode)p +494 1251 V 15 w(start\(int)f(depth,)g(char)h(*p)p 1032 +1251 V 15 w(hash,)g(char)g(*p)p 1331 1251 V 15 w(key\))p +Fn(:)16 b(Called)11 b(b)o(y)g(a)h(master)f(pro)q(cess,)104 +1293 y(this)j(routine)g(initializes)e(b)q(ound)i(gathering)g +(information)d(for)i(an)h(in)o(terior)f(no)q(de)h(within)f(the)i(game)d +(tree.)19 b Fe(p)p 1850 1293 V 16 w(hash)104 1334 y Fn(and)13 +b Fe(p)p 209 1334 V 16 w(key)g Fn(are)h(required)h(to)f(determine)g(if) +f(this)h(no)q(de)g(has)g(b)q(een)h(previously)f(visited.)62 +1409 y Fk(\017)21 b Fe(void)g(aphid)p 326 1409 V 14 w(intnode)p +494 1409 V 15 w(move\(int)f(depth,)g(char)h(*moveptr\))p +Fn(:)k(Called)18 b(b)o(y)g(a)g(master)g(pro)q(cess,)i(this)f(routine) +104 1451 y(inserts)c(the)f(mo)o(v)o(e)e(p)q(oin)o(ted)i(to)f(b)o(y)h +Fe(moveptr)e Fn(in)o(to)h(a)h(hidden)g(mo)o(v)o(e)e(list)h(that)h(will) +e(ev)o(en)o(tually)h(b)q(e)i(sen)o(t)f(to)g(a)f(sla)o(v)o(e)104 +1492 y(in)g Fe(aphid)p 265 1492 V 15 w(eval)p 368 1492 +V 15 w(leaf)p Fn(.)62 1567 y Fk(\017)21 b Fe(void)g(aphid)p +326 1567 V 14 w(intnode)p 494 1567 V 15 w(update\(int)e(depth,)i(int)g +(value\))p Fn(:)27 b(Called)19 b(b)o(y)f(the)i(master)f(pro)q(cess,)j +(this)d(routine)104 1608 y(tak)o(es)d(the)g(v)n(alue)f(returned)j(b)o +(y)d(the)i(c)o(hild)e Fm(\013\014)j Fn(call)d(and)h(uses)h(it)e(to)h +(up)q(date)g(the)h(hidden)e(\\b)q(ound")h(information)104 +1650 y(gathered)f(for)e(ev)o(ery)i(no)q(de)f(in)f(the)i(master's)e +(tree.)62 1725 y Fk(\017)21 b Fe(void)g(aphid)p 326 1725 +V 14 w(intnode)p 494 1725 V 15 w(fixbound\(int)e(depth\))p +Fn(:)h(In)c(the)g(case)h(of)e(a)h(cuto\013,)g(this)g(routine)g(will)e +(\014x)h(the)i(hidden)104 1766 y(b)q(ound)d(information)d(when)j(not)g +(all)f(mo)o(v)o(es)f(ha)o(v)o(e)i(b)q(een)h(fully)d(explored.)62 +1841 y Fk(\017)21 b Fe(void)g(aphid)p 326 1841 V 14 w(intnode)p +494 1841 V 15 w(end\(int)f(depth,)h(int)g(*score\))p +Fn(;)12 b(This)j(routine)f(is)g(called)g(b)o(y)h(a)f(master)f(for)h(ev) +o(ery)i(in-)104 1882 y(ternal)d(no)q(de)g(within)f(the)i(tree,)g(and)e +(ensures)j(that)e(the)g(score)i(returned)f(is)f(consisten)o(t)h(with)e +(previously)h(gathered)104 1924 y(information)e(ab)q(out)j(the)g(no)q +(de.)0 2040 y Fc(A.7)56 b(In)n(terface)18 b(Calls)h(Used)f(b)n(y)h(Sla) +n(v)n(es)g(Only)62 2108 y Fk(\017)i Fe(int)g(aphid)p +304 2108 V 15 w(checkalarm\(\))p Fn(:)e(This)d(routine)h(c)o(hec)o(ks)g +(to)f(see)h(if)f(a)f(searc)o(h)j(should)e(b)q(e)g(terminated.)24 +b(If)16 b(the)h(v)n(alue)104 2150 y(returned)f(is)e(equal)f(to)h(0,)g +(the)h(searc)o(h)g(should)f(con)o(tin)o(ue.)19 b(If)13 +b(the)i(v)n(alue)f(returned)h(is)f(not)h(equal)e(to)h(0,)g(the)g +(curren)o(t)104 2191 y(searc)o(h)h(has)f(b)q(een)h(in)o(terrupted,)g +(and)e(w)o(e)h(should)g(terminate)f(it)h(in)f(a)h(\\nice")g(w)o(a)o(y)m +(.)954 2828 y(19)p eop +%%Page: 20 20 +20 19 bop 0 195 a Fc(A.8)56 b(The)18 b(\\aphid.con\014g")h(File)e +(Description)62 263 y Fk(\017)k Fn(The)15 b(\014rst)g(line)f(con)o +(tains)h(t)o(w)o(o)f(in)o(tegers:)21 b(The)15 b(n)o(um)o(b)q(er)f(of)g +(lev)o(els)g(in)g(the)i(pro)q(cess)g(hierarc)o(h)o(y)m(,)e(and)h(the)g +(minim)n(um)104 305 y(gran)o(ularit)o(y)d(of)i(w)o(ork)f(that)h(w)o(e)g +(are)h(allo)q(cated)e(in)g(parallel.)62 380 y Fk(\017)21 +b Fn(The)d(next)g(lines)g(eac)o(h)g(con)o(tain)g(one)g(in)o(teger,)g +(eac)o(h)g(in)o(teger)h(represen)o(ting)g(the)f(v)n(alue)g(of)f +Fm(d)1607 365 y Fd(0)1636 380 y Fn(for)g(a)h(lev)o(el)f(in)g(the)104 +421 y(pro)q(cess)e(hierarc)o(h)o(y)m(.)62 496 y Fk(\017)21 +b Fn(The)14 b(last)g(lines)g(indicate)h(what)f(mac)o(hines)f(the)i(pro) +q(cesses)i(should)c(b)q(e)i(spa)o(wned)g(on,)f(and)g(what)g(executable) +h(is)f(to)104 537 y(b)q(e)j(run,)g(one)g(line)f(p)q(er)i(pro)q(cess)g +(to)f(b)q(e)g(spa)o(wned.)27 b(By)17 b(default,)f(APHID)h(will)e(spa)o +(wn)i(an)f(executable)i(with)e(the)104 579 y(same)d(program)f(name)h +(as)h(the)h(original)d(program)g(unless)j(a)f Fe(#)f +Fn(c)o(haracter)j(app)q(ears)e(on)g(the)h(line,)e(whic)o(h)h(indicates) +104 620 y(a)h(separation)h(b)q(et)o(w)o(een)h(the)f(mac)o(hine)e(name)g +(and)i(the)g(program)e(name.)22 b(The)16 b(absolute)f(master)g(pro)q +(cess)j(is)d(not)104 662 y(listed)c(in)f(this)h(hierarc)o(h)o(y)m(.)17 +b(A)10 b(pro)q(cess)j(hierarc)o(h)o(y)e(can)g(b)q(e)g(sp)q(eci\014ed)i +(using)d(tabs)h(to)g(mo)o(v)o(e)e(the)i(start)h(of)e(the)h(mac)o(hine) +104 703 y(name)h(o)o(v)o(er)i(in)g(the)g(\014le.)954 +2828 y(20)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF |
