summaryrefslogtreecommitdiff
path: root/parallel/brockington97aphid.ps
diff options
context:
space:
mode:
Diffstat (limited to 'parallel/brockington97aphid.ps')
-rwxr-xr-xparallel/brockington97aphid.ps12648
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