%!PS-Adobe-2.0 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software %%Title: thesis.dvi %%Pages: 137 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: CMR17 CMR12 CMR10 CMBX12 CMBX10 CMTI10 CMR9 LCIRCLE10 %%+ CMSY10 CMMI10 CMR7 CMMI7 CMR5 CMMI5 CMSY7 CMCSC10 LASY10 CMSY5 %%+ LINE10 CMMI12 CMSY9 CMMI9 CMEX10 CMR6 CMTI12 CMTT10 LINEW10 CMBX7 %%+ CMTI9 CMMI6 CMTT9 CMR8 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips thesis.dvi -o %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2004.10.14:1850 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}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{A A 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/IEn 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 IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A 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/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 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/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/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: f7b6d320.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10 % cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8 % cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10 % cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10 % /TeXf7b6d320Encoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /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 /quotedblleft /bracketright /circumflex /dotaccent /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 /endash /emdash /hungarumlaut /tilde /dieresis /suppress /.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 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis /.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 /.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 ] def %%EndProcSet %%BeginProcSet: 74afc74c.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10 % /TeX74afc74cEncoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /sterling /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /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 /quotedblleft /bracketright /circumflex /dotaccent /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 /endash /emdash /hungarumlaut /tilde /dieresis /suppress /.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 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis /.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 /.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 ] def %%EndProcSet %%BeginProcSet: bbad153f.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 % /TeXbbad153fEncoding [ /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /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 /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft /.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 /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /.notdef /.notdef /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade /.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 /.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 ] def %%EndProcSet %%BeginProcSet: aae443f0.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10 % /TeXaae443f0Encoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi /omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf /arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft /arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash /greater /star /partialdiff /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 /flat /natural /sharp /slurbelow /slurabove /lscript /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 /dotlessi /dotlessj /weierstrass /vector /tie /psi /.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 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi /tie /.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 /.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 ] def %%EndProcSet %%BeginProcSet: 0ef0afca.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmr5 % /TeX0ef0afcaEncoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /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 /quotedblleft /bracketright /circumflex /dotaccent /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 /endash /emdash /hungarumlaut /tilde /dieresis /suppress /.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 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis /.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 /.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 ] def %%EndProcSet %%BeginProcSet: 09fbbfac.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9 /TeX09fbbfacEncoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /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 /dieresis /visiblespace /.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 /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /dieresis /.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 /.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 ] def %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def 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 true 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/setpagedevice{pop}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 /setpagedevice{pop}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 %%BeginFont: CMR8 %!PS-AdobeFont-1.1: CMR8 1.0 %%CreationDate: 1991 Aug 20 16:39:40 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-36 -250 1070 750}readonly def /UniqueID 5000791 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA1772CE422BB1D7283AD675B65 48A7EA0069A883EC1DAA3E1F9ECE7586D6CF0A128CD557C7E5D7AA3EA97EBAD3 9619D1BFCF4A6D64768741EDEA0A5B0EFBBF347CDCBE2E03D756967A16B613DB 0FC45FA2A3312E0C46A5FD0466AB097C58FFEEC40601B8395E52775D0AFCD7DB 8AB317333110531E5C44A4CB4B5ACD571A1A60960B15E450948A5EEA14DD330F EA209265DB8E1A1FC80DCD3860323FD26C113B041A88C88A21655878680A4466 FA10403D24BB97152A49B842C180E4D258C9D48F21D057782D90623116830BA3 9902B3C5F2F2DD01433B0D7099C07DBDE268D0FFED5169BCD03D48B2F058AD62 D8678C626DC7A3F352152C99BA963EF95F8AD11DB8B0D351210A17E4C2C55AD8 9EB64172935D3C20A398F3EEEEC31551966A7438EF3FEE422C6D4E05337620D5 ACC7B52BED984BFAAD36EF9D20748B05D07BE4414A63975125D272FAD83F76E6 10FFF8363014BE526D580873C5A42B70FA911EC7B86905F13AFE55EB0273F582 83158793B8CC296B8DE1DCCF1250FD57CB0E035C7EDA3B0092ED940D37A05493 2EC54E09B984FCA4AB7D2EA182BCF1263AA244B07EC0EA901C077A059F709F30 4384CB5FA748F2054FAD9A7A43D4EA427918BD414F766531136B60C3477C6632 BEFE3897B58C19276A301926C2AEF2756B367319772C9B201C49B4D935A8267B 041D6F1783B6AEA4DAC4F5B3507D7032AA640AAB12E343A4E9BDCF419C04A721 3888B25AF4E293AACED9A6BDC78E61DA1C424C6503CC1885F762B93EC4488CF1 43FF3B2A427C5E1C756D1925B52D26103C0E620D4B6CF9C49D4A75DB63A2F3DD 154692023E81DE9950C15EAA7EDDE692D58FEFD061D9032926692234B283908F 54EFC2384D86B444F343FC4B74E7142F0A7CF28AC0DE181928AB8D94CD13583F 05EDD18CF2582518BE01DC67DC5599E412B60A2767C155A5853EF60122F205CE 119FC538B493BECDFDE17849C2F8D052178F54AF9921A0779394D333DDC1DCCD 7820E46A07926C88BE7B148236F0D8C3D8C0F05008521B61C09AD4D8EDE82D60 883E42920603F63F3AC8BB9FF20689E58CB218325533E850E51F28F41E74373B 386E5F59B6C8F87AF867CBA04D1A04002AB3CF9A0FC2634AB7ED2E7943E32848 0BE07B4720F27DCCBFDAEA7ADBCE3EC87BB9C20496219178EE14B16FD57CDD94 3473AEDE343340E98C5F84 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR12 %!PS-AdobeFont-1.1: CMR12 1.0 %%CreationDate: 1991 Aug 20 16:38:05 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-34 -251 988 750}readonly def /UniqueID 5000794 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA04C77322EB2E6A79D73DC194E 59C120A2DABB9BF72E2CF256DD6EB54EECBA588101ABD933B57CE8A3A0D16B28 51D7494F73096DF53BDC66BBF896B587DF9643317D5F610CD9088F9849126F23 DDE030F7B277DD99055C8B119CAE9C99158AC4E150CDFC2C66ED92EBB4CC092A AA078CE16247A1335AD332DAA950D20395A7384C33FF72EAA31A5B89766E635F 45C4C068AD7EE867398F0381B07CB94D29FF097D59FF9961D195A948E3D87C31 821E9295A56D21875B41988F7A16A1587050C3C71B4E4355BB37F255D6B237CE 96F25467F70FA19E0F85785FF49068949CCC79F2F8AE57D5F79BB9C5CF5EED5D 9857B9967D9B96CDCF73D5D65FF75AFABB66734018BAE264597220C89FD17379 26764A9302D078B4EB0E29178C878FD61007EEA2DDB119AE88C57ECFEF4B71E4 140A34951DDC3568A84CC92371A789021A103A1A347050FDA6ECF7903F67D213 1D0C7C474A9053866E9C88E65E6932BA87A73686EAB0019389F84D159809C498 1E7A30ED942EB211B00DBFF5BCC720F4E276C3339B31B6EABBB078430E6A09BB 377D3061A20B1EB98796B8607EECBC699445EAA866C38E03ED7D4F3EDBCA1926 2AF6A41F67AFCFBF3630C943FA111E4CCD988A7363F7C2B75EAF5830B049460E 0D2B337988F150B9182E989E7750C51BA83DF37685483F86D1F47478883F3F6A 4B7F768DA5AA89E8F163029ADD4A9209DE8A4F285766C06EA859639B92CCCDCA F59B1C2BB8D588CA754D1257BFF76B53984DF4937093AAEF79009D32A29A4C16 FB610C7D6713482C48D7F9E8410C0F00AD6E67021056B6035534E79F05D14EF2 4E839322B785F783563E93E768B589AC96E571426AA6862854363F667360984A 0922A53B89E605B77E80F077858CE21F181DA4ABF7F157B9CBA858FAC0BCCE48 0B1A8CE2B28E2FECD2B939112EA43610E1DCECE83BF576A8016B902CA83F8629 2E96AD3A63751F07E5D702BCE750A49A16CCD5F0BD45DA9B08E1BA9E7AB1BA86 E43CBC1AD27A743711749A1322FCA4821A9093F6E4CE557B6C8657097BAC2EC2 2FCE882A620083460A7FE19567EBDC0770D847B7712D0031290A96901DD985B6 223A601694E4403E933A2BBBB9820B68F4A722AAD72554D97C8B60048F9078D9 3390A4C974FE6288B45E1DFABFE0B4FE6642BCE92FC2DC26C54B1EBFCEBA49C8 B55C46E8E1071A6C36B0441AB722A09D71FBB32AF1A74D97725F6E91F1A027A1 1EC87F46995CEE7998CDC1D060BA1E7364CE93061A1F2C7A740E30B802221662 635647EF30106D6574F05CB2E3953559CC8FEA4F0B6AF4D76DADE86C73D22385 2F81C70E7B9A274F61462065A874C73FCD8854017E4E6F2D68FE90AB33AAEFFC C75A857E5CFA1C7EED3590994CF8FE76EC670C4BFC787B56F7F2C782D5F06B0F 2966D8DD5CCF3EC7E54F0A680E10DC99C46225D207270622ED4FE8F728F975A0 F92746EBE9BC95950C7BCC06A70E4012FA1306A09696472B572C5536668D1C1B 143ED7FF6637B02D4066CBA7C91E3092FF2F83D72F0900C8B338ABE49517427A 87673D014810E3EA7C7172EC7BF4B18B7EE83574072DD78C4318F7A79D2B963E FFCC12B790EA9E1581BF54D4A805DD0F29A26A140C81AD38DBA69E8C30AF5BB5 091437E36A0E788CC1857B3D2EB6DF4F4BAC79CF77F035FCB7CE9A51B7EA0065 F8B1DEF787632F9A30623A3824A1B69E90D5BFE13B2354A28840C9123CC182EA 9620EEE1B04FD95DA1818A7EA5E0D5438A4CA2D4466F29EAEE771871C51E7398 C962F8FDA305F9921FAEB85A76A551B26FE9A8787262FC3A580C7455A33D9553 4D033802B80590113D8B32BF08BCCDDA311BBAAE51A4DEA1FBD7C2D6C57D4065 78FBE3FB6632004CBC9511D13EE869AAB29EDAE0081DE691636226A524949173 5232B14AE8D67D0A36C66661F3091A45661D4386446E30256A2D9B04F87C8C64 50B17C04842125990D5CA946824E78270A77A5D139E912687E1CF78CD9D00549 57666A72C04D5116533BB4A7AC150CFDAEC6F90D0BABBA4C014A48FE815100DF AAD79727045765009EEB2CBA6B4C85350E55EDAA4DE0076D5AD8777ACD36CC9A 546FCDCC7683F74186C939DE6726D1D242E79B943090E972A93757861EC775DE ACBEFBCEAFE46968ACEDB436B81E020970545A437DE31A1EFAEE1F70534CC8D0 1E69FA20D07A9D0E87D85627D17694448A55265381C634E531F5303826B94191 9E77D877D25A992FC58659A7F2C00860D0E84312B7ACF15C7B05B3C7B57FF198 7C77D16EC2395EB23DB6547FF8B6946A04E9B57F937EF0854D170FD839387E5C D15C8E01C7BF25357C0B8494C1ED928625E3C6E89E0F3B4FDF6DC60FC921E5F5 894F41CD15B07F0ED3D68FE4B364C7383518DA080251ED9853DB0B53F6008285 E8B300A0E4B377340BEA1A3D1E1B02D0460112A72647E2B48AA6390732497076 D72CEF93B3E8D78BE29370B8F0E7589DE317862D857CB99871F0550B808AE2E8 5318E24A00714D52BB764807741AD26AE3B58BCD7CAA520F6780A78AA8377A6B 161E71E31A2A0AC80217106AF94B687EED1AF6F00E5246E98F22040916D08D23 488A1224D2F717BB793C6A4F667D87A508D50DABDFED4EB8B0466AFE42508F56 F9D47F45D7615B36C68F5EE253EE68D71F02CF37F096C46FFCC41DBA1F603CC1 A36098936D5E51FFD674CD9E15071579A28D0F8F893AA80C0F9D63BEC85A1051 31DB51551315FDB8D10B688661DEC3E5BDA4AD28B1A6F87C91C1B05CCB51488B 246F7762189BCE75D571245D053F1F7044E41C5FC3C1D36CA03197FB340D27B8 7EC68F1E77519B2A38AA527F890ACBD84EEF1BFFF8046119D7E39AB406D1CD0B D21E95E92330FAD9D9836A2E2A6ABA8DCF93506AC2E206482283207C995FBECD 501F3BAFBBF6C7FBADE7C9D2D1C1D527E88DB50A12CBF4CB544E81B53A92893B 848B01DE1CF5204370B397B160BDB82D268A930D32D1C3D34DFDB18E37E0D4BE D47CC771AC2C024B45785B6E9EDAFF6F1E5784811CF9D33B586DBCCCD7674C9A 626131A4F771EC126E252D57FF69AB38CD85FA7E1745E33E20771A06EDF28D62 34A101EB9D9E1D74156B326689AADAC461054F1246684711833666337CBC7841 D894B72E4ABC484F27B2EA9FDFD94A30770224A3A164E2B47021560B0E783C7A 3593AEC79A5864878E09319783BB665678578768221464630B2A333FB0D3A491 CCF3587000C87E294CC2DB77C41945B17CF64606AD40FCBE3E87FE8A0A9CAB97 F91C2C04B373E0E9DC2357CCB8956BCB4827717C3FA125067833B17EB81D8305 55D04605BE73E9ADF5F5E697C2298D849C8634795393ED52A40555D4420753EA B6D77123E2EF827643367868F26B6DD4D0AED8CE00BD898DE87E7241EE96A107 F55B52281DFE362F28814B137B15B0203D9AECA06E5A4B855CD29B440DADA0B7 B0F5B4B20FC83F896C5AA0C16500CAE634BE2A74DA2ED79B4E74C5241657FC9B 84A46B5C60143F836208E7FAC0FA6599969EB8CFBB20D457E74F0CC4C7D6024C 56B1801A87F8E8E40EAA2E4116F03280FBA7000134A854EE1B4E24FC804CB05D 9FB76568D965AFD08E83010246C75FBC65E69AD0F1832ECCC79B77F8C4FB4AAF 19A504F268C20ADFFA8A494A693AE74C63D5ED175DD12EF793A36C7C68E77C26 A8F90DC1DF7DE1D263615B2C3A1CB916AEBDC2CE9D21F4C637AEB2F4666D8A18 79F3E9B4D2770DD36B18F4E4DE73AF5CCA3A3E050858BEDAF88988C1D1DF835D 595D95D7BE6CE6790E9E89FD192FED6293E5325CD9FD06C053F0EC9DDD4626AC 861272A6FC32A877D430D08754048C21A78AFA6AB8B55EE0024075F2078750DF 7E1AA5139A952563E2F0680D0D4EF750F1BDDF48B8C9BCEF8276E459CDB81F80 B04ED096209A31294DED9DB89DE1EA711370AE2CF5D26AC3F0E4FD5255B64945 DA8BB9DEDE2C3CA473CB3A5BD61D159E2D0C6F4991B15C7CD1C5704868D1D427 27A569BA34BACA1EB7FEB00552954E589729A6F9A3C42AC95833DAE2EB08159A 28650E693B0A1AC1B3DD397C958F647750AC00AC7AE4670E8CB0637CB9B7A9D0 982241A1058170B23A3235CF8AD343E134D280104BFE13F58D6577934427929E 10EEC2FF4E8F9391A50A1B111DE81882CFBB8C99F82CC7C545E6E9AB72230B49 0D18980675E8D5767DB4067C9416D58BFB87DB594DC529E98B3FFD66D012FD89 3A4A95CDCE352AFCB2FBCAD4FFECB131479AAE1B61E0671653D5EC45106D1982 9D461CA8356FFB7BDEFD43B1429654043DA1BF50651E8BAF6EA5EC357AD446F3 D5C5BEC09AC62A11FF239EA414459414558BF7B0EB033BE98BC47B142BC8BAA8 7E0C5E5FCDDB54316841990107161E758D5B203F0C21DB12AD243E7C8A5842FA 58FE14F788F98BE28D93B1BAEB21C9C88964CAB48FA87F380F94CA6A31C345A5 24BB3E8DAF843CA115A8C8D1133AD4C5060986867F61A3CD9F313CC3217D4991 A8474C161B7288AB1DDB1712CFDE8CACB66427DED49D72CE2E474C09DFE9A73D 6DFA03ECA7A298A6C5B17CEBF589DC2EF6D0C821202712B9076DCE1CC835DDE9 F80D67FD0D6CB502BA96EB1A66AB146E6C64359401A65491682E6C49FC56FAC9 2CCFBBAA65EAB6F7A6886617BD4011DC680D694A319DF7AAA1D201983E880D2B 6CADB7CDB42D2B84B4988BF2CA22806AF53B117574BE59F936746BBC16D69A90 B2DC2463521F2045265FD62DC54C723109E6FDCE06451D0049FD024A829BBB86 6A8FD6116E431D8AF455A3EC7E5F79073823AA59DD041E765D628CF0498231EC 8F99286F35E15D3DE338EAA8445F7B6715B3FFD26391417510E52721E71598F4 7C3F2CFB7D454FD88DA0BE4E8CFC9B6A10B64E59541FE42F6B0FF60ACF8DC061 C00C8491023A3BAD74555B44DD2FFF616139FCA7AEF2BC8A9D75DDB06AC0DFAA E64AB5C764D145CB449E1247CC96714559BC056BEFE4FABA0488455359D26DB9 7E673E34735BD8EE916338586EBE141A72C35D5D7A6C082F22DD00854E60B6EB CF3A6597566A7491EBD90278723E5B92D36495DB16E3A08BC7F92D4CC7250546 BCA3D3FDFC2593349D8804CFC93C41C41392C7F204CF5893F543F6321FCD0D71 7848B5307B0CD86B31B86424AC07321395330FE4A7CC2B1F13C64070DB68040F 0D5A84F434AC271234D060544F0DBD8CE4042A219F1644558F962438CDB88AD4 DBB05AC285DA049B5217BFA60F80C2744FA32B8E6D582B07BD38ECD73682E761 F1DD29C419F600FF2DDF4C91271486D25CEFD07AEC550447D19BDE483D30D336 1564C17D7F3A8472F9F7288EE6CCA0B8175D664C15430901E598AE2844F29E92 201C0E6861504E76C414C5903D156FE89B568421D8B844CB8DEA1381A726C30D 1C986E4AC75968B06514941B84BCA08148C1708382AF7906E1A2B6AFE224E8C8 DB32C7EB32C090B71C54011F68D83ED8A84E1E53EA9395A0332C0B432224F76E F46157B43CB1D6F3FF991C4EC647F067956C5417C3230C62A2043DD15BA99E25 F94F59E738F16BED6FC326E4B32ED02B51553101841987273A9CD48D5B92FCEC E6743F5BD9BC2C250EA17D2F9D5457947B1C5CBC3222AB2BBB7A4FF22146E037 08A0925C5EF7065BD664CF8805F3A6ACDC29F630BCE6B01D431CC268D58D1184 6C36888B8B0D436DF791A0E77DA72B62179897C44969A227FF8ED6518F1FE475 77FCBE9A852B75958E13DFC5C2CE6635EEE7B051051A7135A139C4B9BC99A748 38E379FD1AF3D9B6CE4E0AED17AB454275706203C729A440AB966968D6E3B853 15A48E4E11ED0F58A78BA1C271F62520916B129B6791C0487FA77D1ABBFD09A1 CA22E02CFECB210EE21291D45535ADB4773F67277B3570F06C937277F55B7662 DC47C7F7649C1A0D9822A999E43D535F1F3A088E3B7C97D7DC41BBB1644BAB69 5342C8C5E31B48EFAAE09645AE623B91D0EF97F365455318E460BE20EFC9F0DE 2C892987B708E4A0F3E3911AF05408BC9BE6E1613A47A5EC1EB0F1C4CE7657A2 06254A5AA65A32B7FC9810D008B8FF4D89F75CEDB6142EB70283243440612826 0C6C676504F70C08BE47F0D6A57702F1524E884ED49AB5BAC32A7B384B2A7FFF 763006F0C736B508372B1B564160583C1F0B95BFD19D152BF9EDE180A0931205 C3FF0C1B1B786D1D4BE0FF1D6C83DEF87FBDB391E39261AF7E68900465933753 CA37A5458D17C1F474BD8D140BCC31D2E6A008C7E3CCB2368ACD622139C5EBE5 DB38D2E877C279801A878CB2EEECCFE9E425FF8C1C867751F8CD0B9D7C1752FB AAE58672C63B983BC8D689575A93763819F204F285471720D535E7225B85F4B3 598E5DD46C108676D5CC1451CCEE8A8FFA07811D6358C238D9222D7AA2024F1F 796E169884CECF7BB19FC7AEC6F1E864893F6FF78875F1DFC4FEBBCC68620DCC E5E880F76CE137C684614E8033BA69CFE6C8ADF0DC79050A23B242E456AF0F5B 0FAA8197989F96A22B31E11A94DC21F7FFA2893B5DC847FD5A95CE9E5B0823A9 07737854E3C409343DA629A43DA5A0B8D39C2783EFE54EDC985A2A4C29F61146 004F26026DC65122391F742ADDB2F17BEE6AAEE1EB9018271D80F392C333C9D1 589B290082FF1E79FBEDA67F83FAE0DBD537DDA8EC7159CE994101E65A25D86A D3F4A35C6F4132C61B9B04CA25DBBC9EF4CBD27B0ABBF52E77D1833AF5AC6B13 4328AF7D6B7256E2A0A002523155DE24237240D7AA027CE8B9B74590EDE4F695 6D6EFA1F7C4EE4A85208E475EB009E5A4BD0013ECDBC2D2AE288808286F9EE28 4299C0B7107E4CAE8CDC3A3ED71DA0798C56D84CC0D8907E4D5CEC6A474960C3 8C9B06AB43A7848861B0CC996C5C2AE30072B42B58C7DC6F07B4D4BEDA8D0F59 22AD2A8D4E782D4EE80797A6667ABEF3F8EB1985FD65D0FEE5A1A5F2078ACF9A 946E2173F7F8B253A36F2962AB6E453946129941710A59E813F993AF0E6ADABA 6EB60A5721EFBD9CC0666BFB608E3CCF30E799BEDE2A7989E652A8DF8C99E5BE F60639531417525D3610AE85225A771376635B208C2B8F30D27DB0289C44BCC2 211FF4F56CF62A6245FDCF858F45829FBDE988FCCFADA62FAC178002BEEB07D3 FF8C211A2998AB56E586DED4DCCDD2DA608BB8CAE39CC07183589F20DFF009AB B056F244A6426889F26E632ED93F3A1EDE0C1A7E780E7BC14A5D8468447213C3 4074A9EA2E32F6108A6A3F7E6ED8C2EF336E7B383BDE2A1F80BB08B9D35EB800 D193C6D929E2506A7F6976B98BFDAB68DA6EAA05773608231A6425E2C9C161D1 252A3AF7C54119EE1E17D7EC7756D6C39631D1901A8727B59A1FDBA33108A6CB D56D355AF062890538E7F6B977FD6DD203AD3584F50BBD8E469E9610C6ACD180 25EA8E6DD66617004E90CDB53795B61B4FB7068C9E2D3BD388DFA25B0526747B 8C82884082E5226E3A98876DE492B3E53143C4BB7F888BCAF6C50E2CBE152FB1 D0AB964C27CBFF663EEA28F8914F110AAA617823AAC45829E7C236AFE61DBA45 2587D9402E2CACCEC48EC73B5DCAF728A853E7B22E001832F881F5E1AF044E79 9CFD1072271A759CCA1227B61E02F554077730D1B810980260E5939B8DFF8482 771A01EA7B6AB1A9341E0FF4268A3E51CC4502DF63B4D5EEBF75C639C699BA54 7217348F971AFFC3C89C0B70D7E4A58B110E1334051F914DB0888CF1CBD219DB 45FB8D3AB747A64EC096E28C16DB48242FB2303D3B0E63CE4F3B23BE64D5C699 342694517F5FBED4EEBBA9D92E5BD03D049FBB16F2074E9437B2366DA2BC81D0 BB8FECA3F7583FECC9E70EB634A2E89C5ACE8BBDD10299AF13608A648407D44E 2B0F5579D29026C2BC90236E4D115B6E8E6D29152955A65508F6896F1E8BDEDF D06BCEDF53EE11054FC9C028E8DF1B7C401A13A7F8DA69643281C35C8C0B67D7 4C6D280987047D8A5B2C9B22E99D1F30B44B7D46347EC3EEEF7F8B26E89D219D 0EA98862589A681AD7E7910CEEC6F21D29191CA7C8F630C9C638134B34569CB6 294A145AFA3B5F07BD38FED0DC06E81AC64291CCD0C09C3696D474B51193D14E 70A1B86A1FAC9889FBF21A02934DF51ACA6A721F888C4F22E5D2EE93371E1B12 67A3C11EC558C3CA9877C68BF74C511D49D87D19AA41AF98313A43EB49357AA5 877044028E1185AFD5623A97CC1D5C76F1AA6466DCAC2EE7F6F69A359F167775 D34B4F229BEB7438B066B0AE901350F0DAB8ECAA1DF66BC6422EEA9261CB45D2 DFFDB6CF8C39EC3E7BADB6141775881FAFDEE9624300B4DA8F0B69AF2346317E AAE78D80CD371C973718818B98228007C0BE3BD0278F385A341F534DDF62D4A0 AE2BB6C0354C5F96E123F588DDAEBADEB9BE5E89BE1A6BBD562825C964EAF490 F7A05709EE9C075DE4CC9EA08E129B78533DC28BF2954CF8F656E9C4AD359E44 C5C1D4F957966ECBBD2B988E31EB4FA786B5AA85D28F1EBD107FD0AA81991A62 4EF3A020351E311C60885F508C5A70B2E05C615A4C88D3745172F3BF7F481C25 0E5B558FC6E924078781CF212B8A1224892968C102E3F7A640C9AAA691F5C1FD CEDAFAFD961CD9AF1D9B9FF9B951D53B188A089083A8DE4C1CC92A1A142EC0FE 17E807FF5659F86CE286A42250B4B09610DE5D77AA667D7701D9C7EAF0A57714 17DF6F1E2510D35FE808ECB1D6BDA3C1766637D9772C5C51E3769BF0452BF8A9 2A06B670294F1123F0DC022D8FBF00D5B853AD8C2150C22AFBE60C6EB5C51A46 05CA20358159539796A1F69965CDEFA8FB4A0963D2D84C971FDD5920B7208767 FC3445331D75A44C9FA243753C40C87435E0CB832B115206AA089859644B44DD 916E34C89A2B2247FAA9F24A0DD58E95AE014C0F92C7C81351FEF66D9330FCE0 3AEA88B47D26C2E4A4D3F29AF107A7F419EA6FBBBC319A0228D136A15742158E 526B19FEA3F9C71C0A6F520D170FB77D8B56F1BA81E0E224E0215FEE34F06AA7 ADC5297F45E499515897371797F705F61A44901E250C89598A679C0F8F18CBB5 9517058B4D455FF8554BDAD8C1E0FDDDEE5C4D1CBEE65BBEC8D8B92B3C7BB9B1 3BC8526039F08CFD02DDE7E95EE13699E527E4DC440972B93B034A2811644158 39B98D8341BB433D9DD3E47CD194090A6FB3D61CB15C28A0427F5D61CFB79FB4 9E9638E4AB57D23530C95D30E8E717F75E09718CA6BDECC40BBBA526995F63B1 57B3F16EDECD471409950EDC88382622E4F612F140AAF7A6177289E148EF5684 3D2C5ED79045406A7FAF6A8DAC0E5595FAE5D20D01AD3752E7CAAA3F05764172 C53E71EBFBCE7D1CD10813FB5057F1A62AD26B5FE4395430F526B269CB6F9531 C90D3BAA46E6922CDEC6D481DE219B6C4D7FBC955ABA5729E6DCD1FA67E39BBC 0EB489D944E3E51B639B9AF70BB91F46FAB29DF4BC09E988DA2565D85D33C7D4 F21FD83C81287E9BEC8A897709CA8298CDEAC38C4AC0E1CE4FC09A15D609F255 8C5F993F301B38CAA0CD62E28BBEFD52F0D4CF99ED1BBEFC6E9A1EF19511302D 646D7DE02BDDF1757367A7B2023FA60911E9B3263AC68F58430B0FBF82A3A3E4 1622C3620E9961C17DB86945B121E2FE6E7881BE3D9697BB6715D72DBF4D1A03 D1A95508EC82DB1EA273F9486412A9031C63ADC363CF8A76152F99F6106A6CBE 6FB89047ACEB3B410DCCC67ABFEC5C5C04067E05729D998B8E89FC042D6A1697 4A2467F196E79A9D63046BF69F2E4C6BC761BE135F6EA23042CD8D74B1A31BEF 4DDAC8FE0DA1579D6815607684E2ED798E3B89170DDC6116E50CA47A5EE275AA 0028DCB245C5B4D408E4936263BA7E21A5516DDC32FC14B9E6E2E3F917B8F2F4 8024FC9E157F615973B5DFB7255175ED49CC1375E1159927E8B8CD2A267AD7A2 F7230C1EA18AF4A2C60B6DE4D0678D83253760B2765B7D2A159233BEB9B49294 30D8D68B6B74998A57772B5351AD094867CFD9FE07617F09246BB319A068470F B9F0C0CEAD1A50FEA49180395EA9E454B5F522303FC6397935CB5C1CB19B5251 BEDF05C25B36C457C7F92506D1CDD78D3FD9EAC02D631E56085BB507C42CB1C8 73AC2F5543489CE0977FED8C2C26B31D291F3E2E6AA18B4DC57AA7318090DA31 2A7217D3C6F602E07C34A5A786076888ABA110C2E7A12DF6505A8A2FB7E12E2A 5F8C9550DB070EDC1035124B68D0987BF825A4A98677CF2C3DCC01860BAA75BC 38C02A7F31EE93FFA0E2284D764AD9DA1E65218C1B09B96B6A234D7A187E2FEF 1CCEECC1E0BAAB36AA8A63928D8EB0855A19C8AD605CA508BF7826D0E9D657BF 3DE398FECFBDF1E0F72E9CD6F238E6DF54BEB6A55F19064EC812271B1A2FF587 296F8548570D8D35430B855BAA3845D1888389E01A94A2CE0477160EA74DB6BB 772BE1DD058FD309BE410AD288CF989EB543E6B9C28FC1860360C1D12737149E B291C4A8ED91D1F6FF00BD2DBA47DDA3829D7150C3F9A76E76B4EA57BB5A5614 5DF43839156898015A3FBE2D78CFDEF4D20005D52DFFA77B290BA6BB7C851733 A8C6BA6066E62BD7EA566D0A35FC4D104C71E1E3AC904E6677B149250BE2CF52 57FC6A601FA08B6D311CA8F4287750296BE333D8212B6B4601600941F41FE338 3A7E3C29DEB72CA5ABBEF9E0DF9246124E7638917A51E3AD8C9253393A93D8E4 0A082C9234B4EB7EE3431FE3B7B1E2D9E7D05CDB75B65FDC4636C07016F3AC9C CBF56EE640FB171E022636EE55E1389D0103C9882F8585ECA864EC198632CC17 B3D6B0B78A7807816EECD307AA6F6008550F5966C39A9E4D97836B1578591801 856B994A928CD9EC2FEB90D0F31DC2E870F8486C6ED1F8F2556AE6D9BD623EE0 F4B5DE096A44D29F103F0BB60843269DC35020B90D5FF76B0FF1B032442A9841 4988AE928D5FC787FAD6ACF6107C190822EBAC5116D643399978730CD79D2D84 D4F8712EC00A052EACD1C5B4F70204894A8CFC78D453E586945C968E340BF82D EE406BF11DE3E364DF23C0143234D145778DE2EEDAE9EEEEB402584859478A93 C2A10C3176F8CE8D93361D4983843419297D250B465AE947FB7A333197132AD7 F879D2E80501BD7AF616900A7D9A71B20D2B0E2AE2B2F878076E0BD790569BB1 0CCC062D3FE169DD9983E00DDC52B3E2166B1CC7A26DC9F82614441178A4A7D8 4466B08C99F3B9BB819A7B7778EDBF5C035855BC20E48A02BBBDCBE2E9851B38 F33D949E07D4817FE447CAD6EF39EE1C2B3E7563AEA845E83DB385F7E4E04F1F 0C15D8F6457AA7D281FA07A4D304742C5969613C1D640296DB82C5290A68FAD3 A869DC7B6098792A9F9EDE7F8DE4C60E3CAB8EB098FD1135604108FF3C5D8E76 1C9E7435C495269FB8D9F5EDBA4B94FB714135789E160663EC4A22853D89283A A2A2B49EAE43CE50A10EF93549DB8977D57EDF9DDA5A9F0B9A42947BE40A4570 29BC7486CBBDAF313B52D7C043769AD8AF5990D13FB14743BE485CCCA7D5CA03 F17F2159760EA32D5BCD5478ADE616EE00F3760E2A6BD9A12B7FF9051367CDD0 2FC8B4CCD18C37955B51097B6F10E9AE8927FC5692B50517E6D64CEB04096287 C6A099A565A4674B087A13B005AAA4DF6BE73E55BB5391F5879058245C78CF8F AFF886CBC882820182A52DBA56E6E75F7B8799B4E5FD76CB88729B4714DB4D2C B4823F1D7230F0CE646B9DA7E516AF0535AA8515A13F1751F7744D01495C8883 C60782071049139C62F89D38172BFB0928F24438753C5D9F61024596E1596D50 D2983725742CE51890015FF026912A3B2C25A1E9D41214747480FAD620F08CB4 04E9D8EE2F26BA04F123792E72B1E8F8A854BA704350255A12245DD93B0C1DB4 C0E396E41511F234B239B3540840D642B5BD6B33D0C6D20CF015BD55DA4F07B9 702019F78D24B4AB743D9F379315B888A9E724CBAC89AC88F19A2BAADB9A9C7A 4F2A3158E492361A0E0B1504FE746A1D1D1614D5268DCFA4684ABCDFE4D57402 B0FCDF6F809D16B0205DF9D9F192981106E046284F63C63076C6FD4763E5722C 1F1BCD573C0E3D42056FA2AF24F6B1920DF4684DB01FC80EFB6AC366B06FF614 F427B11868121A51D9D3AA75F6EE73277415C33D96B5782B16CFAEF4E99CA549 CE80488065A50D094D7104791D5313B5988AE711E65F571EC82A7845B8556B8A 85C12B9C63E895592850F3419FE7673073DD92B8A98F9A7AB19A79E95C8F2A7E B1FDF1F64E85CFD5EB07AA578EF8A7B6BE1B02BA062C07C64A862E9777599962 BFBAF4C3DADA60DBA12F3380CBC559AD845CC9527537F3EBF7235D807A6E65DD 970972C521F59F4ACF11E8432B96C0EBEF6470F9D802EF203CF511AD73118E24 38DE70EB641E200450FC4AF2A6FDA2B182EDA932C814B48FAD2BA4F142D654D9 EA0AEC41DC2F746CB3B349CC77491A54D418D2BE34ABD7A35663BD114FA3D20B BA1CA1FCDC3D76211CB6ADA4BDAAD6981CC108B7F65EA226D6BD93C8D72B7E48 58865BEDCADDCB645154C75249269BB0AA12E4271C996B02CD7DB09079E8DDBA 0A6FC3FFA202E0B861454EF065F3008AE09A4BA9596E26EAEE529163D28418FE 50C9C17D79366AB57101F1F1443B2E1E665CD02D9A12EFA36A48B36C3D058500 40D8E47B789DD48C3C52E6FBC09B8FF63151DE7EECB42257F380DE9DE8E7316D 2CCD8DA99B8F0C92246850CA7722786C6029987688E5679CA9C28CEDFC7180A7 A8709278E391C4A4A3BFB02340844E454216BE4310F57ED94870A30AD94FCC76 C61312FB8DB34CEB48BE40C037D4F29F75A7C16ECD030D44C555DCDFC244B531 100F0DD7D06740BF2BEAB36301C98EA7D64CCCEC3EA7A7068B19FC99F2FEDF53 14253E5236F3C19568990BEB5B2A803155AD5FED54C89971139B1529CF9E9C79 6A36831B13D4451368D782294BC046BA48C90ECFED9B6DACB5A042E08193540B 6BF2809F12753C01E034BDB6AE6F4DD682A759BA548381C2BC3220C56362174E 30D1CD7B09412F4EC4CA2811330EFA3766DDD689B9172C1F9373D068B9AEEEF5 5EB884B1D96EECE3FBDA43B055FE7ED6865872A2C40AEF9181804895AD6C5B72 D1810EA162B8ED99AF1C44B69281B30DB24F3F0C0D07F075F82C57C76FB5F08F BA35AE00EF11F93638AA1B50FD10CCD3DD5E0F3E73525323E2947E0BE88F0C9A C16ECA75608B675AC7C90D86C00AABDCC75723D66926974F4E57EB4926668D29 AAAC8D72AA24296EB656C836F655817B9FC46AC0E4E96713544F2C46737C5883 06A4DD79F9C584854F5E0059695471379625BBFAC200CEF587319010FD545D4B 0574F0AF4D8726A411F9E83CA2C716F6655724887341FA0D4EEB5FCBC29DCBE3 D3D323F9DAD9DE1ADBF86B20D029281FCE0F89800DE329809D83D0B875A00C66 5B85F8ECA228C677F53EC85575BCC48BE8BBD94851E315FABF5FDA6536A7520F AA183E01A6030B039EC6871A6550CFD3E58D40CD252F3A4B5652CBB8BAEF85DB E73A3AB39274B88D7253E109304930335B88AC131D82D60286AF925449C7542F 168387D31BB7B4A5976F445DD3B1BF179F884A489B983692515F3E714F32634C 20EE761690F3A53A8487D2300A937FDD94DEB68109AEB564163F99C4C8BB1D7F AC4AF531F790F7F8ADBF52824C63BE494525D082017B5ECA602A09EAC02962B2 8F40FE69FDDC98E9112E0695365CC7759105556752208D05E15493C00C594D60 9B59E5FF19399C6E33BAC3EC7786213E8334087812826E1D529F76D0676FE2B5 8F79567FC2D386E84AD962099B92CE0D490A627C2A2C86114BDC32BDF4546819 C81D1B2C3A49623EF73413BA34EF99C533075FAAFA4053DF733442242CB9F6DE 06B357DB28F6D5FFFAC9AAB3AC1F36EBE19D1C666AA430ECE8225C47A48A5A7C A0021A96C30927320D7F31724464B1B60F8F3375FCB2A8C4D35DCD9FC8DE02EE BAB8B9C2B7B21C33F16B658AE7AB1A11B37C96E3D19E2CD3BC44B826CD40E20C EEB6F6A87E2BB13B41BB3D0AE722F64AFE260F96F5D7E7E73D8F899D82977DA3 B3F4B314B9BFF924EB0BA82EDAE5271AF4DC62B14CD67055919693CDA9FAD907 4B6951A0F644ED72F2B52DCD07DB5F6F8CBC93DA3924B6FA037540C465BC1BC6 3950EDFD6CDA2B4E6D22BBA7B75E6B4DC4ACFAE1200DABE9BDA3EFC8F2742738 C6D068B418D84A491B8E82976DF53D3F318169E5A85E4C6629C0DABCBA02EF73 7925C19EE9BA02F6B0B376080466963113E1635718D6E187E8F3884AC279AF36 AD4236AF0864ED2645546712E24061075926B7EE1D90B053857B0080E0ED0CE3 03C1D49A1C3760F439353A0153253188D81AFAF5D6BBFC69EB0453AD827A1E65 C66209D5770126E0F41A66A8ADB8E2468B4980994718874673413585AC13FCA9 40B5AD4779D9794A40744D7DE40596890C31E69FAA56F94362B02B4B179B409E FB5E3E17A6B0E5E3F3641F21 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-29 -960 1116 775}readonly def /UniqueID 5000820 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF 5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C 515DB70A8D4F6146FE068DC1E5DE8BC570316E3D1762CC8165CC3C7439960F84 CC9D4FC2E2821CC34FFF0B673A76223254CFA5C44F01A1AE8EA3CB4DCAFC622B 3F90A938BE15F9AE7A458A4F32BEDFC6BF76359DEC750FD1F9384E44A69E253E 350841F921F9D2F0A22FC35AB0A68C68657EE15F04C3554F3D76C798D0EFF5B5 51F6A4DE5A2CE2B553C2984FECD7A1022238D47DCA95C0C7006BB8B401E26DEF BF79D99D20EE3585C3D19DC97221573722C0B9081B439F3AA7620CC0589E1118 5AE710E3D69DB4E4724A5CFE15B37AF7DFAEA28BD581B09C51A374D2F6AA6F25 66592B85B5284043307B3CEB299CF59BB06C96050ADAE03EC198D94F69769ED1 A0E7385E00469969620C45215ABA2C942828D5FCD1C8D67E2D1A59C7530A02A1 B23DACC6B0327C1BB41E87DF946C3CA522408FD3DEB941940BD2E4483DB08F05 CCF7F36EA790DFA52101F64DB6895399BFF2B088F1C1CEE88B174EB09F2958DE DB13E193C213B87939E5B9D6281F676551A206371E60A61A30604A2FED435036 0EAE9EC48D79AA75B0D519BEB1A9473C13149D1E90DD51D14FD68C3C63E77244 6175238C10350278E68C92B33A8CA89E0D93D9E633D69407297F034923EE7FFF 7870058CD23B62ED318DAFE33C12ACD12D6A77210DB358F8F731FB82FDC7FAB9 35A5EC1FF93EE316F1FEA10CA866781C27F8BAFC523F2102F6AA32A79A72C28A A20B37DBD836A7C8418F7934783FADECF7086393710A4963693D88A43C1E972E 0E7B2061263BD31840FE0B5F444A1AE09FCBE839C9F7765B414F761DF91EEF90 E9B9D8BBB5A28F4C2164C1D2E9DC4C6E2317CF59879D64A9C1CA80C75364957D 4E3A4DFAFDF458482C86D73CFFCFD015E9656B185774565ADBBEBD026BF5C55C D644BD95741F0B1CCEE30B698206F5EBB78511DA21510B511FDDE55B79CE45C7 7A60E7ACA9F3ABF757AFC64543B0F865D9B619935FCB0799F95505B587710C52 62C626030CB036E3E89D804225938A8BD12E1083DBBE7F21C9274622622E4B74 2D48784B94B9BD5B31CA6541A0AC614003F5B585C8B03136CE32FE57855C034E FB05A1CF1342B709C8F05F9870148FB0A089BD06F459EF3E1A6B888EC24B21C1 1FCD7190E484BE2E1BB58538F404FF3F1AC981E20D2224AE1CF03989C498FA24 61E21F79EAB0C2105D9ED58B0433927004F4193E423AD302F22E6925527FF127 D7B01DAB08D5DBDC1B95C8ADE93368E845236F5E03948800171BF6C350053045 643D4B063FE91F00220765402A1286DF03D5AAC61D859F477914F745B4AD8ECE 8B4DEA1D110AF77717F18C2A018B26CB3F518360CE6C7A308C624CC9FEED633F 2BDB76C0160853ABCD798E4889BCC9DA396160E89DA3C13BFE7A8CDBB983C239 1BB997440E03DC581EDFA5D8493631DD26055CFD4A2DE1083ED6501BD4C9195E AE513F86C7ECEAF900F601308494265E8E8BB9762E5084D3C5E24DCB498B3DCE FA8245B29C60FCA8851CD3A23291C935BA007A6FB79F888A98A33E17E8970A5A EF9D716865B46BB5271772014E169A2A82B3184B75DF1D30E68FD6C70956256F E51F0B09F444A974A25DA21521B13C3E55A0B439E1375AAFE4709D764F9F350F 3DF88333B8969E63BA0075816E25D493084E71F3E6F5E9465B4FD425A7050201 7925C9C0C38B7B1BED2E10B15AFC946CA108EF4566A513F5FF015D2651E3296A 5B066E7BC1DC60DCF50C0138E648D981A382BE6A963F74EA3B6EF9D860B2EEB0 4CBBBAE51C8D0B021A4541AEC9E457DA19E6796CFA266B16E4A39161BCA90A5E 9BCAAE2FB9981C5D750456CA2AE86ACC978AD566D5F84B7FC26C997DD7D68678 EA3EFE400FC8704037CA6DB9D43B349FF1236D253F0702171B4DBAB90CD3123C 743A87114D237CFD75B4B01D492B20C66B630FD461ABBDEF8BA55B66B431698D 78F43E40065DE6B8DEBDC654A106E6031C47CCFE0DA218D48D5E7A2DC2F5ED0C BD1B51B3575402FB88377B3FAE58A2D2A9F1477955A5AC6AAE45A9AFADE0EEAF B7D1923680D0AA623FF49B6D4EEBFA5FB419F1661EF0CFCD9333864F601C3267 2464E0E89A04418189D02A9CA9797CAD25140E41E72229FAF6CF68637A8E3DC3 27BF765E172AE47F46C953902683C729B30AFB645CCFC4EB2E0109F7BBFEF7EA D5AAEC4DBAA502268680EB522917110F767B266C859A761D44E1DF4EBB378693 EEDE3393B9BC8FAEF2835453A65442D237677E9C9201BCFDA4245F946BEC9A84 E4D6882AB6B47E840171290B7A2444C8736B074647A7701FA7DCDDD407FC497A A7D62C57329CAC5FFB0A0CA9EAC83CF8EA0F45F089B734C981910BCE4DB45AEC 00F41AEAB1E868FBA8CCF60CAF432918EF0657A84CFE9D3A7F9C70A01272A173 F55860F8E1050EC4F412D0EB328498D2BD4D15E62361DD56B5C6808DB2960A6D 9A039A0BA334C810F83FAEC664D77BE72ED0E63877ABAA8D967770173834B1F5 817A35F092FA36F18FEE6B905BEB44D251273E53685AC53789DD754D060A4D5F B4E88333DBDCA42353D323F93A1B1C9578084EFDDCF473AFAD92B812D17322AA 09EDB5F8DF2B534A5D18D7BB4AE04C286CFB80BC49238521AC86A9399475F9C4 34917ABD25D10678AB1042FEB6B39822B39F1267AAE839055DE1DB8A9E68F8D8 BF06DAB0ACEB996834A08CBEEC58C6903E82B9139762665A96E740FE88AF2240 36B61241C67B89E9B234CB895365964F25D5096F0741068C81EC8ACA89BC8111 707FB6A19EB67B72000C0CB3C4262FD7D8A5EDCCCBDE6D5794D3864AA67DF438 3C3792FEE8EE7DD9E547183D5CEB30B0FFD96AFBADD068AE982A5BD63CD4CABF 5254CAABAFA5B837EBA5B4960D3C21CE06EFB9E654E725E2322681F2E898D4A7 1EEB47BAE8D84D6D9F8C73F1308EEE780F51C49C88A3A4019305123025DA1DD6 444EDAEE4A3A3CB201946816346EB2E244D837DF5A991D7A18EF92121033F5C8 FCC77745B824562EC5F616EFF36EB0B8FDCF93FCE6D107040C3F59B6DD95F7BE 653D053DEA54384CEE50D6B9568D6A155FA989E99F49DB9045723E5284209140 21BC0ABB0B596AEAC2ADF9018C580300850C760934964CB64C2AB910EE9E69EE A881E14E0C6B94FAB7DF3EBF2B35E6A392544A6BF9E422B4576C76AAA9F43B09 B172CA3C794BCC813EBF46384C61487C55958AFE36BE97C4E7DE4DDC63D2590C 24F5C56297CFAF60EDEFAF33A12705FEF4CB56398BD5C65A171E230C0DAC3BF7 F04BE5CF45ECCB57C5F45F2FB46255ACC8D0314F279DFF82D0045559B50DEB01 629F688D6628BAB43C95B9C05A3A6A3E9310E981C54A590052FBD4F156CF25DC 00DFCDFFE341580ED673FD4EF5368E62877AED2431203D360B7CA8D8A2A8D84C 3FE663955AA88D63E8C118E38C820ECC3261F11F847670ABA2F7F674802B5125 D38102156FE0C22F9DD39CE28190259C23A06DC418A5DE1DACAD6519CF68EC6A 37C972ACA1BDAAE9F1A490E87DD4E7082D053A50AEC38246F7BEC96BFB25B031 45A11CA489C40C608DE2BE891385880C4896F723CA622BE9A222B68BE71B2DD3 B3DD490C5BF1E89A626BE4461168514772B5FDB6924F06D6C56BAE43AB7A0F43 9597754FF3B1CBE6A4A66D7B5B5DDB621838D10C781B31859A6996EC5EF62ECB A7B0017316A51C3CF889D4AEABDD0306862576393C091600E09AAF83D8BE6E75 6DB978257208DFFC97A2EFB5B7117F71008285919F67CFEDB6216977F0BEF7A4 D4D8105A23056177886D93E10B971A8FBA6B6AA045BCF660D638556E03EB4A42 314B1FD4514DB1BD4342122F6D77E93A1E97F996071384BCCCC01C041D3B0A5D D7223A2512D3C3ECB0E54A413E58142FFFE92DEA99F89A599B96E46F7960A59E E135AE5E395EEAC7C2161CCF3F783B3F7DFEF42493B0CB1BB645BDD12324D290 D8105656B57D149179B2BD45DFA566D1E44DBBAE6D713B81A02721F58F103AFE DC8467FB1AEF9C4B969D3F9AAF334BE352CF03D71D93AE25A2D948BE0FCD78BA A9F43EF4B77F48680981AE54972728F2A523DF5AAF4E870BD3BA59C2E0E2B976 3FE3A013787D7CC5D6B8373486A0A53AE37EE37BE43C6B52DEA464560F98D3DE EA4D5D68E2DEBFFDB30869FC39EC8515F357F2559C7E4B5F647DAD4031B8AE03 F604CAD87C5317DBDF168B0742B091E57F0395C83D22CECC18FE0E66240EF0D9 52BA5EA8E5AE914BA8B12FC2B1ECA469B2A6296132E1C87454A9C0EF9D306F2B 4090AE408E063DEB54CEE885BE8246DE75F4CF6856209D6AC7ECFBD04ADF9CF5 41DAEEF5B17534BAE886AAE4281F2EB36D6D4C8900BBE782F01A63B3A1ABE0D0 2A5D8EFF1456466E3FDB9E84D71FC4E036D53AC13ECF3792EABCF7F19A7F341E 9C98C8287920881B9C18D1B0904A9C2B01334F44A67B1AC73A951D998EFC91C1 86729B7993DCCED64B7EB4368D6436882735C479D21072F96BE800A35EAA5562 2047A97B3D251483ECD6DF3BDFE693691266174B1F8E0D518FCF07AA8F0E9018 A36933ED15B90B6BC5F994AADA9F6496DFDBB50918AA93C01F04A43DC4353B8F 267E407D9FB0759A968BCD1B3B3869093FD9B52D7FB65C7329944F5ECB5C7C4A C41A4DD65CA03334B8FECD41B1BE8C61B61D352ACB83EA8F9857D3B7F6F3ED50 27E6E6365203F958B5C5B6A1EA601EC31B138FF988D90328A4FB50BDB5E94C0C E052441EA415055B98DDC4013D205908F9A04D30DA72FDCBB4EA495069A1B5F3 312BB28DE8092478EE82FC4A99DC650D4D6A56A9F815200D917D958627218351 538CFED786C5EE341D79ADE4D488438D06DB502D4726C8C25EA4514504E09DCF CFC373050BAD4D4026D96EE44888EEE6985C56A2ED502C83C937D6F553AEE659 E8CF06C9832B964481C996B52507FAC78DFBD95A2198FFFA33FE5B5DF45980FB DC52934ED55741C7F5863E57D24D3F90BE3CFB2EB4C1BD01DB2F2DCBACAC9657 F8C03C0D5D9F588439BD6BD96557149AC79A05042B67C8C16E241BD3BF89E650 F80B0E09DA0F17D35A37529C84FC4027AE91CEBC35E3EFB786ACC70F06CA07C3 B90BFFE9F020B35DC2AB674EC6C3095BB90C76F26AAE739E5233EA6670DCC338 B87BBC13A3228357EB8C538639DC9082FF9BC10584625335F50DE42FFFCAE119 A9432F99EC93F0F4632D6B2BD7FE7695B37B8F4A6BF9E7FF211B27FC861DD4E1 1160D2B9A8F6E488F9CC23ADDA55D8FBD31141818FEEC1154F36D47F58A04384 7D5DC5D5F6B5946A01389F9A3D288A49FC92FD54229FF9AF4D4005170D82D3FB A9CB6D723A2119C56EA4BE7814F61BB056CB6811B95A8045711C462A5C2E7E7D 302EF22DEBBCEBF957D71EB7F0FA5502961DFF930F3124C044144177EE97BEC4 9F3D7DE0117E31072BC2033ECE7D735E1DAB69B3331C876793B42D4E4B152FEC 24EB4CD5851A37A3165F55D32F64FC0D78E4239D80457665CBA6F473AB142E77 B2D3136E1B26A37100B7264CB7B8DDDF3FCAED1D7578C9848CC4064C04FDB028 725DB1C723EC1DB3714424AB59C5A2330F377979A58C4FD568A896F5FD183C43 312548AB3723658ED1B8CE9B72E8AC9F7DC486CCF37AAE677D085445242C8171 C779355B743F5394314915BE04B08603C40E062A1F847E09065E865EB9573C78 8942481B31E2B7E9C1B4E9834185E40DED5BEAA109E084753AA6133044751413 2FAB124DB8F533B57978359B118EEACEE8196BFFA12F3F8B9041561F06AF98E2 361802146EF69A6257FCBFA215B86CD644F23D34CEBECB6F85B2018E3A17E191 7CA850701BD090049F96B0A70241F7ECC5C8E368F1E7ED587116262B3331D0C7 D9A5C88CE644FAEFB241F74EF102A9BDF2FA8300B178DC3E00B19B41C62763B3 F7E9A1A2137355F63955B7BA84227B11F7A24F1BBB51DD41CCF9C6BCE51BEAFD DA928C8B5761BD7477F33E7DDA1B57A043AC1DA1CD0D8B4B49D43D11FF3ACD32 A5569841135A7D74ABF58D46890A37F3588D57413C863868521E5539AF5EA544 BE5BBF1DAA4D8366A965706C6F0348A357629245549DA97054AF4E8168D8C69E F26C32D97931AC604DBF03F66A3CB2E966854483CBE1F42E32F6450866AAC1BD 8308117C688B20065655C8B72CBE5288BB7302678355854306280D7431933114 E3CD69B280369831CD0DCF998457B7F1BD73C7D5ACCD04D2BFEDD335E403F298 2AD99AD562E45D3A0338882AF5D578E3AE986657B1AFCCA9FF7BED2D22FC9893 B22DC687671A48AC8E9D2206292141CF48D821BF92ADEB975B140BF80A2088D5 5DCA9EB1C746E98DF1BBD27BCA22B7B8B4B4F30E2F4BA0B4A0E82404F69068AC 7D023C90AAC496517AA4841A64A4FCB5637A8DCB45A79A2C646190FB61DF5A9A C86644A752991448752F4757BF2BA63CF92FC94FA670160028603A86FD29B64D F12CBF41ED2CF7C874D197F9061FE6CBEB6ECCE7B6A05BDEA71516153098F5FA BFE1D9F09240BF12DCA953B2649970CEF10D9782B981D9FA4777E71C44BDF652 B1951E5AB7DC7E650383D9246A41E251EB28AB761968F25DF14399D77A4DC277 845173E181FC54017285D964796D45899114DE23A4F5B58055E4047D3FF4348C 3FFBBE10F871790CFAB2FF7AF2F2059466EC326E74244C87FAED56FABF51C1AB 07E834D3327E04962B5A5F1D4F9CB2E86BDDDBD835A917D3F0A21EFBE381DE55 390008AFC96B9915D32D7D7AD6C219C452CCFF57DA2DDC1B3FFD2752D36E0595 6B524B65E347FB6F184A8ED69C684B0C0BECE72F3C86BF36F37AEDEB09BA6E0A F23F96B69BD6F36A748391B97B499AB5EBF094200CE6CE2EE36FE1BA118AED96 E684D1E587E347E9B9CBDCD4978B1790EBD8BE5708CED33CD173993230DF3D8A A8C50B30BEF2E18AA1B9611D30A8B974EF3378818772118BB1825E1D13FE79C1 F170590B0A8F755D0B6D094099642EBA1E55CC2BEF3615ECF51DBAD345DD818D 4A0C8B6AB0144FC350971A5C8684F12E9854424B557202F18D381132B77FFC76 3973221F00667643DF8FF52B81F6068CE566FE623CA16B5F252A18C407C11F16 F8F40986BB3AACD53BB53E9A3AD43DD37D0FF801FFB1C1521DFEE0BDED6A2A65 6CDD751301C23691932A7F19F27B18BAA2DA25B3C56BB51B44C7337DC2306ED0 8574D3F2BC79FCD8BAD43740CC2427B7C24F381676729DC63F1ADA7D126EB2D0 5647075ACFD3D59F4B779C45CEBC51775CF6EE167754947AF551F8B43C71388D 1ACB1F6FE4868CAC0146CB971C99323298BF64CCD31E67636E0422ACB9FCAB5B 4CEE0129D6FF2E15FAA7D7F55D4CD7C82087CAEC18B4814529928223ADEA3DA4 44247DD8DFAEB8BE85F7A7E13F0ACD3BBD724AABA06E69A3CDF88D3A81440189 B75E7FB69BC75BC318CB059085CC1BDBEF69EA64FB8AB5FA71418273295881AD 85ED601C966BAA3F2E677210B8594D62693AAC2E7E8E9FC0E4677CABFA7E12C8 332DC50ED7C180187EA69B7594EE9CDB6C21ACDE9209111372FFDAA63B98488F A39F67AA46B28AA115EC38EA7D0621AAC41921672DE63C25BB429C24C3C5D7F8 7A4D6C0C304B57B25B9A4905FF5BFC2661BC462D28871CBA48A4CD776B57BB31 2F9B534BCF6EF86FBA8212EF0801C499B3C1BA26B1BF8B7A1F74D731FF6601C3 A6065D7BFAA22E450BCF43D4084BB36BACF3656AC35E700AA9DEC5C1FA7236D4 472F5EE59A9F4279E9EC760884EFF637431BFF9D203357228CBF48CCD7FA837A E28F59666B78FF2565F5F0C48F18404CB8052AD9EDD33FA32A3493B2C50C4FA8 ACD2C0C7E2B157A979DB02279717E882F0B24E087209FA227316BC2777C45F0A EE6320DE786202F1F562D49168877035D088B542F013D853F3CA3DDCB76A0E13 C0FF0EA6A3747C6C16A053DA2DA987AB17C968D5E07230AC90AEF8D54D7C213A CE4E8F53CB5E666C6A0A84F0565D870800FCF2340B5AB1EA147F8F758B941318 46A9507DAAD76D06D89FED5C68959F53662ED69524D2F9815A53285017FC02E1 ADF7983AC4F8DDFE7A81283D933DF2D76CF654A95D874F05CFB2897FE11CC836 FB0DA76FAC3487D31C39DA31974D1C9189D0AF84D7503695F7ED6BD4561A7DDC EC910F34B058D0815F2617183664411A190F47B2956FB2A13C0E845E8EFBDD21 93EB0FC290E05D950B5E099B3935E7899077A604792F11F7DDB706A403080B49 94FDF8AFD814EB24101424C9FC676C3982BD4A556973B0701897BCAF3FB1D33D 98DA61DF072A13F545D58466914D1CC0461F2F20C0C57C5EE655ED49E2BA1512 AB7219BC921E3D83A16F3AC82E9F8D3E2BF6B49EA662DD4B5C937D130296BDF7 5A3899A3DA0F390FA5B43B0FDAC266AAA56DE260458A2AE428B7F16F077E0E4F 9A8206F24A70AD4217CE15E24F9E8FCAB79C34641CE09BC1E83FC0AA2425DC30 952C7FD0665CF84701EDFB1E93D7A94F34EEAEB03C74AAB218622D756C1F8921 26D9650222CAC33A993FC990BF3067C8DF98303E9F0AB961D82B04F359CB441D 517EC209E335E9ACDB6405B053296EAEB0C40E0695F95A3A3E5E1DD714CEFFC4 B673661BEBD42FD8D3F49814493C3B6379847F09090F9D4B4429B5C573CE6897 F8EE7143B4060F5E6694A1DD55A4C7FB141BB2C6E89DC0507EC38FF9FE2A37F6 0011451C83C6E7EE7D677AD627D6B28CE45673BF5E56F6BF62C06C2AD053B2AA 81C18EB1FEBE729C53E6C2EF96128DAD0C280DB984B85DF2B4821CDBF401CE31 637D354F718B746F62F582D631B1F5A36A9436D1F61406751D22B95FC94DFC93 281E38354A90C2E4C3D7B3BFC944067F9FA0838BAFA5342A38A5C25C1DFEA672 F7BD78E70729DBAC9F110BDF27D0AEECC72AD0EB0339 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI12 %!PS-AdobeFont-1.1: CMTI12 1.0 %%CreationDate: 1991 Aug 18 21:06:53 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-36 -251 1103 750}readonly def /UniqueID 5000829 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 525003F3DBE5BF07B2E83E66B7F97DDD7CE0EEB75A78BD9227BF359D002B6ADB 8AC57A33FED4EF021A7085B1E2B933DE602F0FF71467ECD501744AE338AF29A0 26F7D368AC6F25CCB882DB7B7343566192BD687E1349225982823027D3B66703 3B0DB7A7E680A682B98023D39C7FAE81A5D5B867A0A66C8AA0DBC83B1596A84F 0436AC6A7900B767BDCCE0060A4811003C79FDCC71D73F7F2D0A6675E93AD21A 56B4CD8EF75EED3DE8C0A18BEBF7B9D1BE72504872D56EDB272F1E97FC726CB6 68C85C713059DA19F6C2E0F3E12710A59B6FC4699AE883DE8C8615B7292AC25C D5714B6CFB14EF0EF11EB13009BEBA4F345A5D3D6D9926ABC2BAD7DB1328651E 437BFB3C46DA7B62219660FC368CF3D3704DAD3AB461C28F711665BF484BF61C 052093D231CA65618EA463D63E406ECE858D180A6C0589B2FEDC321371C28E77 DE974D655DF5FF7D41ED01FE717D928A885F6FA6CFE4D2C0807F8E7F937916E0 96EDD1A3BA67802B1F4A49100E75613BA0356D9DCBBAD4DAB3C59E70A47058F5 2163D1730F0EE4D1F87C3A4AE723A23CFD7986FC4FBD399347E9F5946354E013 D860FC446AFF0B0744F5DA27CC777C96ADB388D1E835DDCBE123FB517679B9B7 EE5A3DDDCD392415AF58CE22EA55B7F47031138C6F27798B40F7E18FDD315912 BE99F33ADE0FDD538A8A3E5DE58AF68A54732AE69F188F3F7E0458D848205648 CBE820C287ADC2394520F03BBB97DB893F6A12154B1B7F8626D35CE6B70F8524 CB128DE87821A0E32F1E825F6C50AE8B4BE37FAA3183BA4D678E896CC7E61CC9 D0226FC38B9CAE0939D19149D987979B96A86EB69A105807AB426639292FF5FB EFF0817FCFD5E516DAC76156E2AAA3586711C60726A75DBC605146395C3D3DB1 16EFF5F6AEC646D0C9640F96F09C7BAB0956E3DA69A5E1B7F435E28CFB8C7D63 0AEE8448336CB992C36B254A2790495853A8565479015EEBE4A2B7139583FFFF 203CB466CF8B6F2701C6DC814ADB61441291B4ECBA78539CAECC850E8C0AB8B9 99D35C1F5A40E29CFA208CC835C3DF70C0F284082CF8648973B7DE3D067CBEEC 59DF7DAE6FB990ABD4A2312716D1ED00DC37F1657CA7A808CC98B0DA9FD87941 26AC10197E4C5C7AD90E63DCA460198D11FCBCD5FC9B15A3745DF1698ED496BA E8FF2FBBCF1759321170837B14ACF487E07362A06BC4DCDCAED34FFB4A4BF23D 0DFF4930374BF1F144D53B5353CB32C1D37B7B2FD362E88B2B4872517A55B6AF 9242DF0090FB471950D3EA30C6F0872C6C7FBAA9CF0A8AAAC0B051E0F852827E F31F81529492CB2168266CD8FC432C3837EAF173DA1E3A02CEC91B26A5D99C08 544C7B6C512B134DE1B1477BF3AA25B87FBD58E08F2231E11715E51C76B9144E AF07D94C759F26371645C26BADA606147AB6D0DD0787C4EE92116E12C4164814 E6C801BB3834664861D8354C42D33258BF17F50D6121073DC15B8B7FFD52805F 56D72853E6F8187C5546002ACB3D4CC1A8BE0DD99B73BB5F6FA1802F09FC29D9 993312F29EFF1CB49F3E58B062E4052F1FCD4226B22085B3029338B263D00CC3 1E9A82BC29BDB79304364FC870E72BCD019C687A967B99F3DAA6486C0AC00DA0 8F8A93B17C34A08574B49A982E5B89E17E37314D958B1248E0C97F581166503B B1552BD0D346CAA49429BEF2081EB6F03507BDA635E9C205ADA1F0050F44A582 C62C972C3E99C1E0EB693ECD4174202FFE41794D9253E21AFF65849BE132AECE 9D571D4C43A67AC68361180534A04787404DD45592393EAC3AF84306604D4858 D7FC63B7A7CDB09BE6FF0849A08B8835F5BABB3D6268111EC8ED0F9285866564 A2B40519C5E08EAC139864AC2A6DD35D73BCDAA1BCAFE75E40F26BFEC199BC94 BE665ABF7E7866D5FC26F0C22F525814E211654B53F1D818F2708E546DD4B001 36F108EFAAC25B182EEA94298EEC4B3420103173A341920E62B21A31DFA13D63 9E4ACF1723B3B608C27C97A124A8E090E751980EB2D8A7796D1057733B45B16B BB66B65EB2D6DE695A9ADDB2572BA8E9438447048F10C3312DE684DBD4D1DA06 94D0F0710C0DC585178EB52522898D27271E62CE7962AAA3D9CE3D2DD67EA59D DB2D91A34B8481207D7A70C2F901BD3FAED9B07A173F7F62D6E4309C9D9CC01C 7CE57F11131ED4549F7DEA888E4F3BD56A6B3DC9F0A78FA31B3F55C95D3EA0F6 2B2F49A7F081B5B7EEB047F4B337AC5705CA93674FEB163A7CEE48D77239B5F0 7B07783F1C76C3C7FD34BAACDCD9044E83F0472EF3F742FD05CF9412870101D6 EE4B451231602441CE38D67F4C8FFF5431AAE871ABA178614785872BC3AD0E38 54B7735F8F9886F5616D22108595E0EB1701709F2AF8FB6FF1711D46E9CCC898 D433022D164976C61409399E479BEDEECC28DE4F570745406FBD2D160032DD26 0566189F2B8F5124BF84068B406F5E234A8B9515FBF2A1184A5B590F5A6B7995 8DFC80A2FCF99CABAE0A5F786FE1C29F3A227E439CDBF1719C1DA56B78A685AA 4CB886DFF39DDC53CE025D6738CBC71FDEFFAB0D6DD1C46B8251251B72F29024 08DAFDD17DBEC640959827BE5827CAA727239458CFCF29936DFBBA4F71A965F8 BBA320DBF3DCA8E5705827BE8CD232A60AD6A04CFD6C9602AF2DFC57145171D3 CBA0BE9351446D574DDE84F5D88FD7A3C9C6B1A638BEC309BBDC5390296150BD 671913FC79D07F0E53AFC5E5CF68A23BB76E785B348D311A579A54AC2F1B8B68 D6B5297757164D669D7A35A99554695F179C2DFC68F3CC0ED925FC68405F12A8 08C9DB8F8AE3F90495C6256ADFD4D340C4D0E16EF8CA465C4E98CAD9F9C40063 843CA2B05989E068E10DE11BFE4B03B66360BDFAADE2F967E86F8D7D7D54B8B7 58F0EF6BC954243BFF027F356834B848D6B42A651DEEC254989B3B5020F85D70 351125D412318CDE879EBE5CADD990599C2854223A7DF22EC1D584886306CEC5 427A203A412994A3CAF3F60E2DB6B9A7DBE94F0BD3C37F21FFAD607E8A513657 16B6F7B622836DAA1762343F869DA86DA6A2F975026C5902F99736DEF34903A6 6167CC69B17E56E46AAD7C4555813022014EB20DEA439F1A3F6D23CE10DE8CAD CDB0E15ECB9D23CCE85634EFE66A587D788787FB0D3881EF2ABF16336DA8713B 84904EB4A09F39FB0D7CAFBF81118407D8D09A7B933C009F484D0AEAD15989F3 9B02469917529A3BA7F6F83354F07D14AF1E85BBB1C6596BC9A302AA34DC0218 D901E29161B7DE274908AB076B8B8FFCAE767915C6EDA3A843606C44B1AD16D5 A06B7EC20C9A2F8C6FA52A4A90ECD3A49AFF396A6C9E46BD77DE40D6D72C41D0 86FB585605714FDCABF57D34F10E603DEF9ECD7484EFE4A7BBB299F5E4F333D1 8B4EFE11478CA0BDC0200A1732AF3EB6F1832A8C734C4B919D778C3C645D04C3 09CED93FF5D5B65779CE411EC4733F162F77098964772781DB6A8FA30BEFA4B1 47E997D06F484E9C38D67D60CCAA286A8934F00D7A143BB9140652842A2E4F0F A630AB3581118E33D707FB7427460C01A17B0DBA9F69E85169717CBFC52A3E0B C3E14616EF2CF4AEF461B9B42B2AD03140F40E24D01C9899DA34299E08B161A3 897B765B5723FE6A66CCAF3B997D22043156F3C0E8D227A72E291FB43F62C49D 95DA5816DC49E79CDB27C487E5FA35EFABAD21540A0C42A76BEFE821A2D17FBD 8B539999C5F986D4E619250933C310CBD2CB550B3B857C9159A35857DD9183F9 00660D760CCE077BBA51218456542ECCD856FF72A4114FF9F02C079A324F6D4C BDDFD2D208BE225957BF08A4BD76CF82EAE1252074DD85A7B580FD81A12247C7 1B6BF0A0FC0E583E66C3DA5534FE22732BCC0D4C2061F506390B8575B1FC6999 75830487A071B4352C16FE2CCD6D5B4F521E45DEB341DA5BF64E99F7F163E17F 402B5734C6DF9C60F04A57E8FABA9AA0E1FE56932D709BE7677093F9D8B7E613 E5B46E8B452693DC98E4080E9A3BAEE48E20F38DD62EC7E8139AEC3AA7E68624 137A3174C079D11D5B34322C7688A518CF1409F93314286FD0185C90791DED72 D735A68AA697B9A27D2E5BF51FFD8A57818AC1098622D8985D8E9FF435CED3CF 3F5CCED9279353BE905E31D9B024FDA15F3E309CE64E812B9D96D0F1C2ACF83F 4A03D56EB365BA96F99D3A3296804E20AFBD422E0BE520227EC847EB7F91DFAE 80E68EBD0EC5B3AB572BD45E387C66B8BDCC2B2ABE7046819724F10756EF15DA B569D9666520DFB7601420BB3C96818CD39ED500B41A9CBF477B83CFB507BD49 CE46A74E1AA6FC459ADAB37BCBD88D7D8A4A197173AD892A77042ED84AB2433A 373D282658F481A794AFE5F0B710C7CC31D8FC3317D56370E788AE0D9E231514 D2113936466CFBE0A28A112CA885A4607343974F874FA11E44250089DF3F6147 78851E34F242CC6F62592181FE7F921A7FED5C7321E0E637A0948A68E485F3FB 203CF21264C428909A4C22BFD0920165FE44CE4635732FCDCFEE8EBA44C22C6B 68FFD65E8C38F1CF1B571EF79E2405FA33FE6A24AAEC0A3B79A46296A0E32D2F D8F9CB29A3C38D7F299589646BCB21720F0A9612DC58DCF368F1F5E72B54F6DD B67B23FD6FA97390153B49A97BB1BB462C3B4F0B90A084E27C567BA15DBEBDCB E487ECEC16C7039DA7CD93B6A514B4693209830BD05ABBDB5045F6BD06C893E9 3B5D6A7964502004ADFCD7F6023BAF9CA2B49183CBB0B8BD28A08A87EFAE4651 DB6838D3FEB7B5883E64B65C16AAD9A9E903F9CD8764471575A60976F4157194 3CB9E207E87AD5CC6524DC58744909DF0DD008AD005CDCA145E03C0186D2246D 68C3C45DB358DC1D5C98EC18ECDDFAE7C07A5B4009E256D926EF79A2A2654ACD 9CBB40532108108EFE1136ABE54BE300CB4EF91B2C30B2D7A60210CFFEA87A42 9E3F48E575787E74E625917DBF029184B0CFC23E5FD94EBF5F155D719875FB98 4AFED1D585B71DF3E9A28EAED37D22D15D86DEDF87789A31CD067590E6B36ED0 A7E13DA0AA557A424E68ED2C4E9F8609FAB7B432563FF94B97FAAA283B6FE3F5 DF9D977E53F532FDC260D6F80B54FAA78124C881193FAE73115F4B8A6CD43961 705B309A944AA63379AA92FD8B9EEA76857E3BCF1498AAE0752B1453C478ADAA ADC1B339DF67E2390D94AA738968FB745ED5B466EEB0F9ECB3458054F47FE386 4B5A7DBEC8EA0340A8FE18518BB5082AD861786168FACDE21DD37D1AA20529D0 8889DFD7860989D7709EFEA9BA59BAA3D91237EDA5100666FF41CDDD2D35485C 2C32B0CDC91EF635BD232E1DCEA72527C194F1CC960D605ECEE3F5229A2659D1 57EC0579191AFE1D5A0BCBF40AA9EEAEF74D8FD2F505F9A983C41F856B5A7646 F0C78D488F62756C0D70159EF555884A1A45E36A5E6E28D5FD7CA8C764773649 F8B82D7F62D7FA70A66607730EEF149318924EA459938FD22001D285DF4B3256 35D94EE1962FBB70327C4288DC6C4874A98A764D3BDC79598364965521D30756 5C5B7FD36219A5D9E58CCEB4C4620CB2F5031B086259795B6EB590498F95121C 03CF486F2A0CF56B5C8E97E6C147E4B2AB4662C8B8C04B2B256664EABD4B7E3A A85E8E0F0CF0F89B3E270128766122B71451AC659CFBA76676439D6241A55FD4 8D7E3C929EB85D7EC46EFB62CAD8C5D5E2EBC0E9997F2708778A3E8AFF7D1968 79FDC63B19FE6C8058D80E27A57CC965BFA4C976992E634C11CA87EECCDF217D 22E00AB0F6479F81EEB436E7E0F405CA668CB783A78CFDC8BB2CAAAB0F774DF9 8CC809A25DC98709B76EB3FC647CD2C679428E2334C17CA7A68CBAFFCE4E177D 979E9184F8287D8BA833F8C7943AF0D136C663D26EBBDBBE9D90BE94D8454C2C BB29753649F73F787AFC0E360075717ECB58A9EE4A924C1E32A824F216B0527E D2CB313C908B72F4FB90FAFB19FF06510FC86F930B0528F5F2857108B5709A56 E2A0F0F7E296BEE969D817CBB83423E95A4F5792E8AFC31A3970EAA45D96B86C FB5A5A56BEC877D8BC13183069E5642BA09E4C8C0A95CE78E326FC29CB697A3C 5550A4CD7B00AE82DA19E253BD87F8C82DA1D0B3730678D52FA1AA2523F66E0A 97D0D39CCBDFE0CC66AB1A28CD11F03BE08D706584E56D4DA863CCF2DC6DC36D BAC2F64F0F69B3543AD6554C417052FC414226C85D7081A7F3A9A56C996CDD9D CD547B9B3C7B82FF8DD02E2E3DE80F49928DB81BE3D3B8DE88A7708F361057C2 E873F32A88E830E25957A4A44A88FD034CBFBD13A4FB346DDE108B11C07080AC A378350073EE6F769A86229138F3D5A927E27C424065A6A03948DC92B686D957 D5342902241202884FFF6CD00C311C020139A7A7603EA446E36A3B007D1A51B9 B791BD91B3F0995D8F775AF4D072B645E82D43CCBAC7300EDB913991A08F70A6 7B3DA41D4D988D6C06F4FB13090788BB35365413440D95FDDFCDB6A0D6C2023C 7638DC1D0D18FE4E93A643778B78BF18B30574DE0B62D36BE6580DADF83D6F1F D7D1D799B372A21FE8055E8B8EF9180F5618EE1393A9D83253EC8627C18A6864 89E91EED7F67DFA647D47BECE180DF4B38A94DDB10103222C16CEE634920E8B3 33C81335904CBDAF3904672A479DF2AE9580ECE93DE204BF78617F1A7A220C37 9A051DD917E41F2830A2D50B95DEBF852BE2A1B88CAB69D74716188A58C6BA7F 2477880F911E52B9A4ED01C09EAA1C3B73CABB4BCED0277068D0950BD28C0A1C 79B9D509B1603E495446078C9A2E9171E22D8B5D40CA5C11C25301B0CA05306F A481C790C21234DCF1B61775266F8B356FD0D6E25AE6F1D98AEBD7F738FED5A5 9DFFC85F9CE794BBB20013528DA609970316D331CBC03B662D9E83A9B363A356 97BE5AFE04F32F68F24CD865C627C8887BB723DB98C24965845AA439CFEAE2E3 416FC4D58391983CED25C736C025A3FC528323FD70F207EA744E6D189D673468 2CD21DDA7F764EFD94DAC4CF975D65576AE1AAB2404D8542A801A883CC5E3599 26AAD87B663914C66F6E94C1EB7A9217676F18CE07C7CC7C1F5169E0DA9D29DA 25135F94F7009084AA487099ADD5114EE70583766922A7B99B52402946EFCCB1 3E1E20FBE5C7E058C472F9CC43FA81CDA82CEFF1E50DA80F60DFBF4C9C5AD34C 651311626FF5DF16C589A5CEF89F4753CD5FDFDE4F2C24A297FF03278C1ABA7E 22D5EA1E83D8B351B11459CCE77AE1BBAF1A2B4FA37D512CBDF6F46D1A964C9B 4F49A8F9A69C49429E4F9BCC7CBBA37EFAA5C7BAB23582A33C227E49CE2AC37C EDF4E905C7209DF8E2BF64A1E5096831BD7697507F15DFB0AE81DCDF2BC13D34 5CB639E6DE55CE5FF290FF711F0DBB9ABB126E2520D7822C04C2C46911AAD2F8 DBAD5C3445DDB4E85EF9749B50AAB0F849E3B3FE632200492ED08E55E2992D14 AFF07DCA328C463532B48869CB800308F4777A9954E1439C6E96282DE17DFC76 E5DFB460EF9D515BE1A264DDF1E9D597037623DC313FDD3EFBDFDF5F177C4F87 427739EC03F8F9B25EA8C2C521F219F0267D1AB4D4106DF29C99E3D0FB4BBAAF 2AC0E6F4ED77651281A6A37F893AC0EC27F58DD1475C67C4D66BE2AC7AFAF139 003E758ED180A77789A6CD93642AB4F99FD3D602D606D1758E1FF0AAC5DEE481 718093DED83949FFA7B289F99A0644D278F6AE095B2D0714702E6B0C6554D8C3 7D4237D546A084BE493696F8662101A6C1562D84A8DB012E546CCE39621E6720 6845EDDCD52209D96F7C10B87031A7D6ED4147AC5330BC0D9B10338A635095D0 35C970127069D35F6822180A9E6C89770B42BEBDE2F9B21E54D0FB24981810C8 1F11762773D84745407CC9B808997252F96FCC415E78A27B38558245C2D80D00 AAD379922CFF075DAF852FC7B8999F4443D3766A555027902C765057A786E3B9 63A65663BB9E046A48FACE8465E5809038B0078AB914299576D8C5320899FA86 73DF7D6C437492D892EFA613508C236523CEE13CDCCEE086D563615ACC77EE6E C101AA42302B11704AF3D8DA09213D6C5EAC3486E913ECE3A5ED65949E38CD47 8E8A90B5586E30F33943A31E2872ECC3014861878FC554158BA231322C2AE1F5 B62A0EBC58CD0C123F076B0B979324122048C6C25DD358BDDF96EE0C329E3146 D90011B3F6A591CE017021537288AA5FDE14A8506970D5FDC02980172EDAF656 7107368F61B2F6A688AB8B82418E5E34F9F3B509168DF88A3B5D84BEDEBBA5EB 6DBBD7E4718A6C095D9D085D3851A13AF13815DCE949FABD4DBB53439313425D 3E78DEDAEDADA2F9BD3E461C5D3CBBFB4E96B273EA5EBFCC7DEFFA474C32227D B25ED6D2BC4687C55120C39ED261D0E9601B3861E0EC19873BAA278DC19FFB8D 47BBA3B491A69A3A031B6DBD97A8F55145F3C436C1E3CE9E53F5BEB2E218906A EA9F5B7493FDE45ABE742E6677B7F8E31517BFDB8B5F518854E7793973B6BBEC F9662C6ECC769552E5136944EA0A7C3CF4FEB90B110BA88969BB6BEB2C0C7A49 132FD3601A3905041D9DCACC0BD6DAEAA2FC18B4D03AEBA5277F6495EEC4ADBB 34B599772B25157FC3EEBC4D9444CF5405A4CF4DB9666C886D3876D27848740A 1F5DA33A502D31A02DBA29CE6DCCA76CC124ACC27840F940F8AF4FA1F4E6128E 1A2A985D6A282D8F77C4A50AD28287241A4C95CCB3D4166FB6B866B0A0E8FEEE 88F6988A6887374ED3596EE9E7FECF0C6B53687DF96EC02C1C4412D83FDF7886 515CE34226AC22AA725D806C40F65A53D21428015690B44972A69CCFF9B2332C F07522EE8CC92BF2DB918E4766FECDBA04F2762FBE9AAAEAACB2730BD34997B2 58B61973D5FA2BEE82A615877045E01101AAABE227D4313E99986C969C4BEFE6 94541C07FA1D92EBF8F0BA62566F7676B6360AFE97F0BFB23DB3197E67E555BC 9A141C179F569812E747F8E502E7ED0E3CC3AD299A9F57B9B72A4DD9234835D9 6FD0147EB3E6C4DF06AC7B1DD6E53637FD88F16E98F96E44AF4EF34D9DC90E91 7EAE17AD90AA0B583835C744656508DBBC5C18E0C4726B74FAEEBB095D558CB0 69782E52CE84BAA943452B4B49E5D77934319B4F832BB5ACECB7C073CF9E55FE 3D4093175109B2288E0A9709A5BAF8452B7FF52D654D89E6CEEF80E9348DFA90 247D791EFA5A0CB260573FEAF07D5B98795FDCEC8D37E5F82856440FAC77F63C AC162E6C5BFAC2E8ACB155E2A39F14F7965DE2F9D2BFAE9546EB64784F0079E7 16B7002F1899935018D11246AC1FA97B5E10F88B6ED064A22B5BFAF5EC3D1E4B 55A867C9ABCCD49E40DA44538FFFB1AF59FF331C6C136E75E0DD037ECFEC86BB FE422FE55AA58EC51659C76FE7EB58D856901EE893C6492F1DD8E6861AD11953 03F79EF0A694BF9C97287746453F61DA66349300D971DC3D17C782E660446402 61F15BE8451E7D40E89997AE3E41FECA11AE8F7073539399C5909F44E5A6206E 98DC281F66E9EB21046DF290783D0F063D54634E9A972FE8E7F0A53CAF95A4F6 6FAD4AE8E1A3C5BB4011DB7477D66532F0E45D15F063E74AFBC0C3C5E3A94CC2 9441D2B7AD90EC6013383844988F9719BC4AFA589482D0BADD46D2785E7D804D C4099A088A4BA7AF758FCDCC37D3AEBF55D8F688BF84A290B9EEABEA853D6376 B4320469D233B72E772F29B3B64009D0D7714B03825C116660C7E1D009EA0D53 D3CA3D656332F21EF20FFD7E77267978796740E27A9592E7BD0BE314F702A00B AB935843F133D7A6ED642F24609E9CF3C9A75EB26761BBB7FFEE564113CAEDF1 B9A5259AC6EE9768449F95890CD49159D8135D1E7CCB38DDD500742004E6B1FB E4A65991CA72A1DD11C9BC26B151732738D683CCD957E92F00546D9876A9E08F 45882C8E530DF1E62AB5897E69638A7C773F400E1B83972AA1137FC8383ACA2F CCF58EDA33D984F6C6BD67986E1C20417E7714D552CADB9D8ADCD6A6F3DB3093 5217197812BAABB7E5AA3A45CFE083A5BF27FFBC0349D8D1A987CAE6F8A4A6FD EF5CE4755492D090C52A045954740F664D961C7B0F3DE935A9CABD4A3876BE48 8D3FB2ADC80178545BD9F27FCDB9A9962207CAE79C80B5380316225383C605FD E410FAD1D2E42B7824ADCD1195A034247402D0999240CF6EDF4547A3EDE1A5EF FF9CA33979C7DA970BB98CC4489A55D6F33980E04D9229A046F9C8E317E8AC79 19A1F5C4B26EDCA229461C17F387C4ECA64501CB027964038AE172C1D2206AA5 4F1C9C885D5CC3D14ADC36E3332955823E9DF13ED16385548470350D84310B7C BE8EA6C7A973490CE7AD7F2DBF1D13D47B228BB431E5D4638F5E5762E37A325D 492FC7AABFB1A48BF5FFD9E464AB75884340D8678767BA30E77969EB698937F1 FC499ACBA322BE13B32AED7C200FDB41B43F467710E5986A3F932F304313F88C FEAB820304190BB4B4FC72FBE21F61279ADEDEB26BDE983E04993FADB5154643 0266ED772B11B3C67A82D77F961D63CF5AA48141017D6F18915A4E224EC4F04B A123126EFE3855E55CE6385B9D0B8CF95D460C90A2EA34D39FEC264403630A0A E66552A0A5AE9D58B5BEBFC3215A469A9DE877207125B7586484B571CD235816 196144E6AA2CBCDC03B5C497706038938B736127C73EC6A52CD421C5379D0B89 A7093EFE17B995F9D3F97A1416BD1C133A14C5382EE484F94A8A1F6BA1099337 3741C91AF34BA571DD0CDADE916E82E4C24C4EEA9930811E8A7D04D2420628D8 555E2FD3025AFE9FE610903FB9E18733B0D211AD2F95D08CDFE851C9E65B0533 5CE728DF80638F7F5D5F69EFFA220322E78349A923E2D7A1DCDC71871E89D727 D59DE0C72A42E97C9ED4FD68B888D66F5F80D7A2E04177EFAB5F902B16627216 B91CB9A3AD18963B9F18A5FBDA4CC7CC9C5A5BE5AB501CC12DF61C4DF85540D6 BD6D2B35A5816AEDD963A659B15336B9CE19A4F22737EA3A4A95D1A7A92B9CE5 5196B2BB8EE151040A575442E6E51FF9974E563C4851E86B394889AB9FDBB41B 1726DB7D47FDE2F2563A2D223FD4FD015629C46FC60097561EA41586A0ADE697 92DBA92F9F2637BD5C94F318049BD95461D757B295BC1F1B945BEA70BE2C86AB 4F78A1A58223B243C7480BBDD38E8168B6519C9B4418751388914D0BBE36FE93 A68EA8E8562D060F3125B008CD246B221B70E33CB4A0EF8C9ECAB2265F34E933 BABA548EF45B80E04CF213A8D798B6CC3D644405863C0B5515128E24096B2071 47ECBED63A9422D4B44A39CF7A36BB208241D648FA738D930FED2CA66B889416 4805A23C047ED9A7FB6C8C0C7743CED35F735EECC787FBAC2567F389F856E216 3D856A27677323C6CCA70DC30AC7C81829AAFD0E8B715D417EF0547A588C8FE7 286F2603E9E2A5E141043EA2F852180F59390CB362DA03162140B983B25A924F 1D2F6657E5083E62D4CE31E6325BEB974E5F2552C76B260769DB0A37FDC027FF 21E89A8B60AAEBD2B9D22AB05CD32C0461DC24A44BF34B4E2635A9DEF1AF2AB1 69C1C835C3E1C8A1A29B5B5D35D78927481BC3DC3DC53BE10C8230F90A0C8B58 7ABD92A655AFFAC8B5C3CA9CB8E0E6C9F9606ADE0F7195B34A445BC295CB830C C2C87B6C9EAC15698C3B8989D8895FE7F9D5FD408F053C2463929496A6B1CF16 46AAF24A633A605D7BE879DC4F51B8BBA812F240257BD96CC502B93C0ED89E96 8E7AFFE0503D2F18B782F207739C2FAE3BC6F56022D83D5E0FC9E5744EDE45BA 8F997F774BBED7397322422C72EFFFA21069D05E3B4142FCCC56983216385A14 33CBE5385E6F0E3889543A4DE9AB11BCCC70DC532B0CE73F96658D8F0BD0A3ED 0A306D8277A8EB02E3B5AC8F0B92B347578C10CD55D4C3F553B95E7B8C2C34A4 4A27B9145C30ACCD0BA1F3748435D6348219D5993E52BFAE7A60BA3B20D116F6 AF14121E2B383F96FAAED625D8A06F5CAA34F11E7DB712CCB8073E2ABCC9D6E8 156AFAE9E9AD98DACD1D96A30D91019475D3DAFF8D19E1C9687FC9D367CB095E 46D386B2EFFC03E052CBA64023A6DE56946190CFB542E4EA3CB002691FF990E5 FD9FAB232E339B6F2E489DEA4792F1A2D52A6A51FD8982B1077E0FEE822183E4 C020D631C922377478B1CC7121E9C8AEC3B651339627F28EDF7CEAC9868E1C6E BBBEDC23A98CEBD4BEE961731EA249354D0AEF11DFA5784C525DA93BFBE5BBA1 42EF491D36D3AE65019F2EA088B196E0C9709D98ED8191D005B380D301F633B9 21CFCBE95EBB5162A27AE0DF4834D44B8BFB0877E7178EF94D559553952840C5 DA93984F42DB49C6840A8CE3DD22F90851DA5129220813FE61302F97118E13BD 50368F31053B7431333FF00E3539C68D55BD45C4CADB06C77F3FE590F0F39AB6 238FE3CE7204E65522E18B4F9276384EEA3096AF757743BA365FA9FDA31CE99B 1FF98CC0B64DC90C7A1F79E8A976D5413E84D696654D386D9DCDEF72ED24696E 7EADDC9F46DB6577BFFE247CC12048D1E59899D4E33CB412894D23CDF6E5D736 E34075EED2F27EED01A547CF3033C507EA7DB7C383EE38BE218C081AF1E0643D 018F880BAA39D9857E7BD9DD3DEACAA700FC58E650EA2A3FA29B90D505E997A6 CDFC908EAE3364CD4FB64B002F54AAE7B4551B05BD55483DB2DBF83E09600482 DD547BCEBE97F96B2C3125D3FADF0D1B18A3CE9643262EFC936E0FE6E9CA0BA6 930528EAC73FDB490A3B0D95384DE4B8F235E7577BB5485BD05A2D6044BBA5EA 00CE8CFD3053B2B88347B8498CAA0B231B125C4F9F162802B6C41D1A8561E082 1829FB4E26277EB4BACD5421C3313CAD4EC5EA6656BD77635989AA4711BA2380 AC93DEC521A358F46A9E1B7E77546E6681137EED449837D44E190239D48EA63E 59AAC334BB7C9C535F65FE63BD8C5B7AEDCE0A9B493A29A4B6E6FB9A8C1592DB E4C637FE8810D425BB2FE9F9937428D7EF8DC390DEED813EA5408C5EF68B5235 2D8B113A86E23C29760B1C11BF0D2E2A54E7C240B71B4D8E4FEE69668C18AE26 7813B463B18262FB614B1D9EF92A4DB4AE90442F6F9964B84E4911AC76128546 8DD01D29934E0137D8817670DDFE04B5C898C1950170F73789E14DBB5356D69C C98E7F5BC268AF43CB507A737412535055B0C231ADBA533640A159323903954F EA40BA7590A0349D46BF3EF20AC086800CA2FBE8207B2ED4CCB260EFD60B773F BAA7EBC860950E6B3FEA186D45EFEA81879B61F38F81618ADD3660964C9D0BDC DEB140F4B777A93ED5A85BFB6749DAA1648332294F3067D478D92FC87E228295 53A086293E343BB6DBD4A34EFE022DAD4D927E4903F4D8BCFE278AE6E5698985 C1EB89628D6FAB9426D26EC728C416B33C722EEB19DCFF7CE1C03BCD7055FFA4 6C37BE2B08D5A0165B3476EBF8FE985445683D2D4E47CC11086FD0DF5DA8BF87 0EA5A177D91C7699F63097190CE4BD279E36F39846F2DBA49CE1241AC8262EAF 16B75C3BD6981D6E952920AE3B3967B9D88687B293E10279CF66AC7869753489 1D3D0F133D3ECF817448808D959DD8A8FB73A402C36B59F130A6C40DB3FF6993 A7B634BC242F2D7CDD1F201E2C0250627E4D1E57D17C7608E77B97440CD8F2D5 E99D08BA9054BEAD213D7FD78850AF913327320208DEECEF6FBF51728DEB0917 A4D33157591FC2309D94854E6DA2A3AFE33FD942DED4E1AC03C93B40EC7D8F22 9739FD7420A9981811C91C98BF06EF12C4B7C1CC4B7F65847B70084DE7DF7974 15B5E18F6046189BFE08AEA39E7D14F3E8D78138DA7BEC4A428E323ACEB5383C 56A6C1B3B22F2F9964528DECE4E9DBB9EB2199CC02FDC0DFACCD4D80E2CDEE8F 0BDBBDF5E192FE03F1AD049EB7A4629613CE09AD04B0C2CB1B69DF4D1F99BC55 82A6454068AE7AEEE3535DBC0E40306F9942A03305CC30E3FE38266EA41823AA A8194CD997C2C2BC9D1E2C011FD04D7BA55C84657B8C2BDF849FB385E43EA7D9 801D765F0B56CF52D77FBE5AAFAA3C3369CC350997797928B775B0937F77204A E2DD75D6027201F777C7495E795A56419A9A049B9D7A60165C5F58029E8CB4E9 DB2711291318C9D4B8A684ADA02E6368AFED7A728E2BB1941C079B90DE9FBF9B 20442C1A7275FED3A64C4DF371615F77933A1D139EC70D5E99A840B692066B4F 125D5D7BD483620BB2EE86AD1930032D77E1C8D20FE48A23B3A174E2BFC1EC03 8404A0795C57D5E745E8558866B88E9419D5802D85BBB1583654F8F862A4D461 3476686BA2EF51073E9502B3CB906244CF2E6DDA53025BCF7DF2D71F65B4F141 BA11AF7DED14A2B16A9A56BB53AC5E3589D85285E367C90D411AFA98582C2760 937B8FEE44B8B149F084C90C9066C9D8A4AC01ED2747DD1ACE8D6508C1727F87 2ACF9919C4154ECCE5A2F93B87DBA31AB23442BC35472FDFA192FFDB2EE6D513 F7A4F000FD7310DD0769F32E8176E3FC9C80922F1C8595BF83F20B77D4F5A9CD 461511C21D06B9EFA4742F5703A76EBCEC3451F9BFC13F1FCC1BECD4FC521853 AAC08C0C23F9D3DE9807358959E7A9141CAF9BFF3E4A0770C220B0BFC22A9FC8 5D5575597719F6FFD8107ACF0EAF45B89DC84DA9E4DF5ED046879108D964D094 8594A608F8A2100214B408E1A43B1EEA207565C3B8F1EEC5912363C268040E8D 58CD39D3CD67EF5C29B7BDC032706F607B1CD7E2C2B0872E977BE6BE7D98F4F2 B8A2740AECCC60341965494B82CF7F87337F7BD2BE75164CBCE723DBE050FA08 3CF9EDEA1D6185D52BE0B337F6EDC826777F861E15C06F053978042AD299E90F 1416457B37B3EB86B01C90A7AB9BE428AF09420DA62F43F67A0CDF8241CA4D3C B64C552C6D8B2D617BCBFB44BD04061EEADD39A763385A8412036D62DF6C98FB 800C3989B696EE27E4B5E5D78672D12560330C9EA5BAD13B69D16B57197FFED7 0FD2DD006080EF025022F9D7F38A07410EBE0C7D4ED19B0D428EF0F73D04E1B9 7C9DC0C8F8938633C66D16FBDC9343253F6E43DC65A9FB0C813E89662E072C4E C3C5428A64D484B1DAFCD83684FB2C44BEFCE763CE2FEF4540F343D43422C18D 8E8D63DF93BA092AD68C9E4EB14F5CBDA299499105851F3B075533D300CAB272 43F68BBE8A7805EE74BD86DAC3465A26B89657F7CEC422E41E27E9C36266E0A3 F422C7F77E4E2593555281EEF27EC316C8BB232D39D88BF30CFC6A460AFE7B8A 187821897A1D111686243EE1331D3806340A2510BD7C66F457AD6C9A042681BF 201692D0488E7C75EADAB81EAE7FCF669CB4945C967380BEE62E7A426F00302F 33F4999034EB856979686803E90615962EF97A612C5C260D4A06DE9F840946A2 0F262418590BA5589C7C1BBAE27F532924002F2D0709EFC7A4A1713242123BA8 654B0DC467D6488532105B33C9F2C99487883C5CFDA567E2E988A2ADEF7F6C27 B8194850E8794BA076F53EF7BB5279319DF6DC204F869AD7FFF92A2511DDCC28 15F19ACF238A009C547DE8C6047CFE2ADCBF582182B666ABC5F0594906724235 B1A9ACBA8FF55275ECB27C1DB2AEF4475278B88B835D539A27E9C0E0987A673B 6A752BB6D6F0ACFC9C86CD27EF0419179F0E175C4DA7EE928528546C26D873B7 B4BA3595E93DF99CE2CDCC38DE871FCFBCFFCD986598B0E8F10C38E7F48BFE35 9E4126F5F70E186254348E294A26B000740542430BAD67113B9610C6EF9D2633 A6451FCF46E0D466D861F553E1BD33D42AEA3CFD5F37A027885E0695021CA024 C2F99F56DBE4F64750303485395FE11C41417671248095AF759E9989CCA52271 E724949343F0FDD22A9C28CCC71FA49D6B9B913491AD41C2F6F12F58154F2585 522ADAECB7980295E03D9C8156064CEA3029BD1E038E639901F60EE20E48CE2E EE884EE09E793E17C008D225314F34467D47703AC4230E378CE8FD7E185AB270 1977F17A39B8ED04FF8AB38839319E7F54064B48CB4AE5C7DC961D6BC551AAF2 B41DB5D6F387D6CEA0C151CC478523FA40DD7AAA45CD470E41DB920D83421075 35888C1FDE1A593772A332D902CAF5806B15C15DC494E35F645B272EC176C416 A3C238DCFCA6E7EC0E7ED9D855EAAD0E62C4B04120B536DC032F3F421E776BBF 3C0DA69D30355F98C51E9BE872A11492517E8AA3B3B36EBB1E2E5AD3DE5EEE6E ED8BC1469FE3E2A126D70503E5889E8B1AB8D6547C0975E153DA5DB93462583D ABFC312591B251BEEBBF931583E60FBCAE88FEE1282F7F0E73330F332C8A13AE 773E8C0E63B9711AFA939A7F8858881E47BB1F3045D1FC490A65C498CB2DAC5C 18E7F3344E066E675ADAEF36D96D26B63F35B9930BBA48DDAD6542E044A022F3 0965E9B8AEA4F67B82164580ECB503627D0162DF62C5870A55306D767A6E29E1 FA8B9361DE2C86EA5F055FAF0CE58A486441F33A6DBBC43C8C729BEEE7EB06FB 08044FC7C44A207D53E4D6946CF84BFAAF84D75B990DD8CD0CCF0A722DBAB1C0 EBC9E5C7ADDBB43E3DFF8096D4BB5999B635B4D7FAF575D2AD53C6E84CB31261 AC93B22339A1E11CB9144B50A8E60C07EC84A259968036FFD9063F6357A2C334 A59291713CF32468F5003CD2BE0C2B96A95DF2FFDA6FA13E68D0649DDB01AE69 3A3FCAC48242154DDF058EFECA63A86BE1DC037B9CC8F49E302EE1E71EEE1C56 79838A17390B7D67CC28291CC0ED6F51AF0257DCC533E7B4CEE069EFB8C9B95F B9A46740798E3B87BC304E3B83A5F2719DB5C6FDB123532A8ECE0A9D1786DB6B 7267884E11A41EE56D2D7736E198E11D9EFFADA3ABDDAC14E5B0468104DF7E6E 6ED2810D17BD9D0A35782521EDC928B1710FFE2F9629C999838DC3D703765860 25091C272956D9850C463EAEE5D7E5F89C61905214D34D5A0A1F 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT9 %!PS-AdobeFont-1.1: CMTT9 1.0 %%CreationDate: 1991 Aug 20 16:46:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-6 -233 542 698}readonly def /UniqueID 5000831 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E 2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279 650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35 F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1 4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A 438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641 AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74 D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A 082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980 9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0 4BA1EBFAFDBEC531EA13DFBD6700E53818CE04D23886B8AE75DCC36BCD3189B1 0D55FAE27D0D126E82AEF31D7B5DF27E58C30BB0867D6D7AC1DA9EFB8A2DF095 B5B934A68EE122DA0A83B36C952431586B957990206194E89339048AA6EE4C53 703763505ED57C494DD907D0EEA04F6B1D4C8F3BA778F4E7AA832AAB4D75F024 61E91C6D25FD6823CB24FC863D21EE4BFE8F71EF70E76DCC76F7B08898E9CAC7 DEA9AB210FFE6637F6F00D0181A6621DA724305E24E46DD66B793F8B17101FE9 9627334B4AEB3BFC36A2AC7A5FF27159CFE4C59B2B0F97C6A2B51BA259E6BDF5 11A4B3592234461916779B32DD1537FDE22D1BA4E42D11D1E2217ADFC3D2A9F5 582B9EC86279243B0A1848763C0B9735B186B074A260215F76DFBF5D72E6E67D 6DC52D37AAF80843D1331FC21FF4BAC5C7A1313DEB2346FE973D9E45135B24AC 9EFF07D3DBBAC3CBCD07BE3C99202E88ADFEEDE8DFF46EEF8CBE37E7B523B34B E24B0D3D9D6BB8608A98EB98153CD9E3E545DDE057BEAFFDC88CBA2F3E9692D8 CD27184E29DE2AA39AEB3FBC40F991D7966B857291D5910661AB96E4A62C46C9 8AE510C0255BE83A7080A5F78CEC8FA6095BA75DBA754C07F6DB1A03C35E7386 22B680DCA249ABAF9F28BCD930E2A093ED8740A58E5AC5256D0774126744491B A7945841EAD6BF90747094F6339F7234B75E58738E8AAB258943E799CC3F0964 1CE07B502963BE863B8A602B72B82434821EBD5C514B2A623D030EB8ECB8D972 FD9DC543EA0E348DC9F6E39C514BF994209AFB5708B546B12D37A388B3AE3D9C 9BE8AE25F4B31181EC7BBC61059405E04881615F4021D7BAD0AB8692810E05A8 E6AFA1FCDB8AC9074D8844B2C5A187E87308FC07201E0074166E3F2412C0C21F 500B1D52C39D793ADB7DDAA513F3E117F55954F66309F41D5FA227869781 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI6 %!PS-AdobeFont-1.1: CMMI6 1.100 %%CreationDate: 1996 Jul 23 07:53:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{11 -250 1241 750}readonly def /UniqueID 5087381 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC 4391C9DF440285B8FC159D0E98D4258FC57892DDF0342CA1080743A076089583 6AD6FB2DC4C13F077F17789476E48402796E685107AF60A63FB0DE0266D55CF1 8D0AD65B9342CB686E564758C96164FFA711B11C1CE8C726F3C7BB1044BBD283 9AA4675747DF61E130A55E297CA5F0182A3F12F9085AF2F503481071724077A9 387E27879A9649AD5F186F33500FAC8F7FA26634BDCE1221EC0ED0E359E5EA5E 6166526FEB90C30D30099FBDC1BC2F9B62EFEEC48345160804AA98F8D0AA54B7 A480E715426651865C8E444EDB798C7E11040AF6E5A7ED1888653C6DBF5E6169 70BCD9C063B63B561EF165BF3AF11F8E519F37C6FDA2827685739DE2C48B5ADE EE84F067D704D4511DBFA49E166D543CFD9ECD7417055D8A827F51E087CD2927 BAFC7E6CFBD70B0FE969F890A11149D3D44D422C3370495DA9951AEE7253A49F 3A9444C8CD9158D84117299F7F2332FEB0F94E6ED8BC7AA789A3219BC2F227D3 3B5BC75FB53B55D72AF4A6A7BB613FA235B11BB37D059FD87127CEF73D5B3FBF 9F91ABAD78BD9240BD9525EBA78095EA0BDB25D1A19E876F292882EAD5619D46 D20317A345D931F4FF4EAE6216C27044CBA525E3B917CEA25A04C120466C4B93 FC720E6BA832A06CCA0A3916CEF0968D49085AEBD243C41A448289A6F05CE3F5 79148DC112A3CC7E8FF810B8C1A09E05F496C0F1EBA334E42E05C376C98F5F69 C06C71BFC0A2F3AC9951CFBB143C66FB84F9C4ED27DF70869352D61BD5E11508 0797B87C71AC58D7C35AB3247575482E538773F05A10435C992B65659C862479 685BE22C86E77BA3676BEDAFC890A10D0F251A9738B9D20DB3AAF3E07625EE7F 3A05E77F432C98738ABC73EC31EABAFCF7DE2255B85D6F31C2B5569A430B775A 9C3018188683B35AA10FAF838D140D1C4C40A977E758993125D79B35945CCCEB 42ABD62D3E345C44EF5FE7D25D5A81827917B4FD883DF09F2360BA778A37E1C1 3A268F6916277FF3A3A894235DE281A475220B6F5AFE2AC697E75A719FC9DA47 3410379C6641FA7DB5F15524AF45572E078627B766693798682CB1E5AA7E1BA4 C0885773DE6FC95E9B6B16D33ACAF1A431B0C43FF3E48BC539D52769736B527A A0595A5C8F398610C0D35BF34A4BB0BEB7EF9D4A16FC3C26F65A35BDB32A38C7 791F14B37FDB6FFCE382DF82FF3F30B68959E75D50B64E7F5EB3551790DA9C23 B8D0EEBC897B8AA811676A336BEF23EA6F4532E49DB755E21F8CCE24BB91AF9F 3BB417926EE8E47D53ADFB545C2F7C0C87B631385D95896A4C791EE9C686D680 63347F2E1736E2E1E4B4EF361A47607DB1D132AEB2460562B4032321783FCC02 B6E6 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI9 %!PS-AdobeFont-1.1: CMTI9 1.0 %%CreationDate: 1991 Aug 18 21:08:07 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-35 -250 1148 750}readonly def /UniqueID 5000827 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E3948FFB3DF7BFF10C9BDA4EFE5F68A8CB1526990D1357AE6D2F7C2D2EF8496 4E47B39E6712EB8908A3265E5FAB40567E866C244814449F1E993AAB422C3F1D DFA8C7118584F2E5197FD4BFA3A8AE9E953C6CD4672C0FF51E41C3A919749C1A F06650DF4C5E17492164BDBCDF22609A74BFA7F69960A64B9F949FFC2A807458 8579366C4F41BDE1FDFBCC4845FA19BBB6963D65EE8532549274BAEBDFF24FA6 03235D1BE37C06B1938AF369DA75BF38DDBC87A1FF445EAA16E1895ABE9506B9 211955753E447865D33CEF007391D2666A046277A30A49804FFCED3FEA5EB2C3 E52EE14A9F75241EA10C91974CDA6236EB840FD44D6DDE4D9B3266C3B99BD38B D835BCA8CB819C073480FB972CC028D218F6A1D344CE1B63F4FBF2C826F412E1 6E0B05A26125865A14FD7B7030B478BB8BC6BC395335C3BA940E1C348267F4F9 0AF97BBEE253511940F1048E175D3569F7D05A28851B6F50765FEB6C9654FEDC 1BF52F535DB5BB90C1BD5D2EBF75E0AEBE82B20507F3C28A03746781018D4EB2 298E4F2C27ACF73FA73EBE43F014BB575AAD516C0407B29E1653375135ECB74D C91372F06FA8EF37C31AF3FA48AE65318EAA6C34830A5377ABB2DFA5DA53A574 433484BA1466709A4B186761655C8E482833B697673E847C691079E7F1DCB8D6 1AD91101D757B83E2090337D525AEECB028FB3C9F6A6E6AD2F322CFDC5A833E6 1CE4EDBF41FD34FD61630581D222F854A76C2EA9FD72796A7C9CC1F6C2FCCD16 E95CA05826A4ECFADA6A5FB83C41A7131E52BA6585DD6DD78515D8F7327DFC6F 9404F893B15DEC7A743C1664D1161E4D219043928454D471DBB397415EE9629A AAAC1860A2B84B2E9C4C1A8337359331068A21D90913025DE8B97541F95E2955 188B3A1427DA0F0706DDE7E9B0E3B0DD75EB2B8A339B9A9876C3E8C10C2C55C9 243B93C286CFB6715C22FA39492E516B93DD3B1AAFA21D8E427A724373B1413B F7D6B920F27422181C07B1BD20DE0D80D08F886C4AA33EB5790C9A4E6BDED871 9899CB182333A845B01FCBE186B09C8B79727B7CB39A0332B5DA77D6EE9692D8 F21631D7E44AFD672754BF5001223DD2CE1607F3BB3A5EBF39BFD4F48087C1AD FBB793857345D767E143971E0E1D2FDE699C4F2171546486DDC09643D42DF486 E5A571F1E17CEC8F3A4765765FCFECB43F1D6F4ADF2CE7655CEDD83EBB19709A 033176906DAA792DF2E43A2DE4393969DEFA944ED8FDECD48AC1E6E2CB2DD404 2C43490F94FA40BB2A386B32E2B11289E994C250A9FAA4D3B147A8F96D239434 EA7C56F518D0489355558720E6A54C449A26AAA12D267D2F9892931FFE9C6C07 95B8F8DF262C576A5FED36BE50F7C5C2D73B78A5A0F43ECBDBAD8052F3A027C1 239C82B9E7BFD180B810ACC951273E0639CE7CA73A8433198D69A1062A5971DD 4DAA11E72D2AF6FAE66CAF4C108B5678DF0FF580AA299214F51F27A33BEE880A 6518ACE087E7A7C3BB500C5671CF1FD11A41E965501B276E3E3E9D80AAD91CFD A4325C7BB23D01DC981C3E5BFEC8F919CF912FD5E1DF115CA3A22D86A41B414F 92872CB44CBDE06FE236194B64E8E29E3F4D3562182D93409B153D35636CC281 5BC63134E6106C730A69EDF45664E8FF7AB866EAA0FDB1DC5D8D4E57C2E15744 F5A5FE12E24951A409310D61056E327A424D885EA8B64880A76122BD77952340 EA2288425FFB3156053A1A2981494B8D2558159806915B0E7BA0FE356BC07400 11953701C51A3C74D9B10D96C17A5715B778518C1726D22C68772783E1EA6B75 83681A1655EBD3A5F3167DFB02D80092898EFD5F1E637CC7E74FD19526722E44 295BD2635B3FCDC4FEBF9085D79983F762B18F3AA739735095C69B0F40C9909F 61EA071BE58018551E59651586B5365E38DA1A0D27FC77679F48CD6A8AACBE41 F3B70FF5F657B9A8D9ACDEF01C30EA2ED078E6F7E3456475754B357DB841F3A5 1FB530B64439B178E66B64228046812F9FD565899B19CF3E0941A76F57F2E0E8 1D1A0167C91865617E352EDEDE3A5830424AC44D6703F47EF2798D1F60F6EFD5 620091C802203F1D102776D352387BC1D982A5A65CC285A0ED52DBF80C500050 47D2530AA714E98EF808F95B2CCFB4155A9CA3B4FF6B446D662A4197BA1E6ED4 A4305BADFEB9D6D66EC950174401D0FE4944B0082536A2F06D73AF2ECF02CBCB BFEF8C28E450FED45D98E16B4366B1479DB11DDD963F5AC5A3C215CC6F9D51E0 B23972CAB2035723BE7E697718F02AA323BD00D313BADADF2DCDE35757295863 10A062EF46DBFA29EE382AB2CACB569E7F9CE1B6A0C00DDAB6A3E056D6270FB3 1289FFFC8B5CE92E6160D15787C1A1AC8A00A7FCBFBB570F41CAD53F191A1AD4 3C232BA73F69422A4FC044F1C1B775620AD61F74D42A297A4B17C2BE4082AD6F EBF2A05B698AC277C1458F5E20BA32BB3F3832B5A36FD941E8D9529D78A2F578 E3053EA87E6A8C5817FD682298ED424DC23A8C4F5F9CF150777E0616278FE562 D2BF7CDD4A79695E7A75C6E2969AA4FD39D2868F214EEB33AF2E01B9DCE36453 982813218DCAB345024D67A03E3842B9BAA4A4E436A36942474ADB8050C4A8DF 1F22A68E116144C37ABE3F6FBD378A8A0D5DBBAEBB0F067A6C23902EDFF101F4 E3EA5D96F33A0D500873A9B3287AEFEB753CA81597BD2C7754614211AAC6D515 624DACDA93A0FF3B4FE9AC5900FEA64DDB2B15464747A7FB6D964AE8A0D8D58A DC1980E672C63B9B122B6EA4B47C7AE5FB0DA6ED4BB9A3FD8BAD3E8AA973B2C1 B9E01C8A32AFE048062EF1FB711A7411F61D5F17BF5EFE06E86FBC4A28649512 8AE8AE6E6B982CF4527DF5DAC9ACAD4E5F9BC2918DCF78618643205345CA8AFD 02F46E0294AC38B9D356AF846236AAF0120B167CD2700C0FE339AE4A595E6753 CEDA13BE34F91AF02CF8733ECD2E8B7F72D6BA5A6093936FB761DE9D57076689 DEC7987307A22B0299F6C6996EC2F8B70F3C99D9C21D18BF6236D80787E8BF09 B31C28B088F1C1CED8DB72370341AC69A327A384B9292C491D83AC2069CFDFBD 3B06D5C66175D6A709FA9D33E0EFC043DB6B6750C80D90D9E3610791F43EB452 F11111E54450851FAAF27E101348B522A980926BACFD61150D1FB703B0B7D543 3363C2B6176F114C00FAE92F2898ECFAFDC47448EA1D6215C906B63E08C0FF5F 0DE5DD717CD755F7D61A85CC71B3299D1F10E9CEED9EA5704D9DA020FE08309F 403F7F0272C5A36327022122C81AE63372817584F665762F9841993BD1B46B4B AD120FE91CF13507389A978454D792FDC97107C06D5C44468A5ED3656BA428AB 8869DDD3AAD7CC92200EE2532A97D55D2A729F20A4E619D0ADD2CB3380934412 D31884B1E674F6F6BB428CD8725508E80AE2815C101A9A7C0AB8A79A1777BE68 52D15E94F077386279DAFCAE56BA8A8261305A2280A437836B3A38A8A6D9E806 3DA87520F5D6770C970ED6295AD793AE8689574F1B4B1C9DE87CF86F725DBD5E 4FFF908D29AB87AA1CAE71B93AE80BE7DEC55C7D21264651595C44A7F0510548 7BEA88097D28FAA78361C33959543B99BAA1407FC4AAA1AE5E77396FD749769E F55E52F17C01FB476232C010AA94E951EC48671C39A0D57A26C8C747806270A9 44C7B1D3AAE5770A231FF21C32816C287CB9CBD5FD67BD2AFADFB54F463B59A3 94703CC98CC5BB42F1C8BF46C3CB3776F20C8A38E1A842E4A492802B1854073E AB770340C1626215D8DFFBAFC017952A725DCCD6CF6128A838CEE53EEC1A36BA 9C357B6E3980496D79F0657A2F8B36E596E5C374628B9E3DB395B23AAA2C3D5D 5B131D0659E7407644EF07551726887259FE5790F843AFFF5C81744028C78238 4EF43A67120F2DF4A3CABFECE404C187FEC0EE3AAA29354D10DB77D131A0D508 9A15E0BDFECF8904BB03801AD69654E8B791A7B35B43073EDBBD3FBB9A3F8BD3 403306A08DBB2147BF75CC3CC50183A0ABCBA4956B7B478CF4070AA81B815025 E2A692508E0C188C40AC8571D6BFB216408AA04B36C996C4B5F381F144E7EA42 18ABCED3D115D26EBE438BA31F00490F0E558F1B47E1C58229911CAD8CC363CE 4DD642AF5EC6284611A18F76741C1A1261C4B2CBD2C8CDE700ABFFB04F3F0A33 BCA84B4A003B52E41C5F4FF4CEDF92212D8AEA9C3AEA11C05C92577FB9F27D96 681565691DF80B1CD44D01CD9B9D66C99974DB045878F5D6DF684D9249360824 958225E1D55CDA3C4B3185342A87C0828FF04E8F46FB6B2B21EBA589767C86E1 317BD6C123060B0E9FC2EFBD02788380955385754E0B833222CDE5A3BC4C1CE1 040DE0F9CA68F0EB9268EEC4CEC068CDA7CFECF6DC97916B503E721D0B0737A0 536AB8C730070C3FAA87A019B5AD81F3C1E1501DDFC128CC890B1B32DB5BBE16 B6F0E568BBFEBD23A923A42FC3B52F0388AC2233623CA07791A078C85AA46F33 FB577A8DB2ED81FC23F5153ECA54651B365F2CB7A35F699FCDFFAC255F50128A 87764A2A8DC0F13529B30D05EE8D90F10C2EDBB4544D7C4B3279DD1C1DC09967 9DEF96452E2EC7E2D37EACF3D15B835C293A5497DAB9427DBFD4B1FF6EAE2004 A2CC57575AD1ECFCD989A9704356DF2FA10D3F70C698C2CA7BEC552722B72764 6E940EAB9408593C5C81132CC74756C5EA033F275E2441B26CDDA3F6995FAA69 01FF6CC4E016305E2622140015A870439BFC52763259D301C218B73474D3202F A7D741921C75BE103F09FCA0AA4410370BA07931B13D7B46F89DA61A9BCF2354 F56E26AA3F750627776647D1248F5793C58CED7C6E0D7418602E87580FBAB286 0EAEF9F6DF1BCD388DE5F4C41240C9BC76CBBD60D80FBD9CDFABCC77F9E718DA 1554E7CAD419F65B67EC6EC3F6789B3CADC946384503132DFD38079EC9BC94D5 619DD34476B4BF457173F3AA11E584263BB63EB07B40C13B6C4F98F53A1DB2E2 17770F2297CAD5F7D6775F15B4DC03933EA85FE61C47EFCE0C30BB750B81076D 29B5F6C26A43D7D8289C4A133A528FC8039FB96ECD701C6A9FB8A155B34CC94E 83E56FA800311A7C7EC711A7760C53245963FDB50CCC984D68A9355A73C1DED0 50B28527593E8C860B4C30BEF0AE45988143DA6765F2B273ECF8DBA3F163709C 3152E07CE6CC7793E24581BDA0FCF13DBE7D069D1EA9BD6AE29CAC19A9ACDC0E 8A3CA4E17690CDCAA25D9823CC14AEAF1DB37639D2F1EB6FF35560880D77EAE1 B64E4DA3E4062DED4D46C95DE636065B68078C248C834B87F028BBC7772C88D9 F90A18ADB60B04D08E6672D782745DC62A3974F7F3E9031EAF0BD927B256A36C EB62F0AB32ABB3CDA98237646155CD0D4417989C24A159213CCBA43E62D5F94E 36799BA1FBC1A4E8A1F4F490D48F2202751853EEEB4854C57AE92CFE3EA0F43B 5FDE9AC8253A1908479D1E797B5330924592C1D526C690C005B8A4D10EC769E1 572ED924AF817702DF0AE5DC133A66668AC5E9BFA427839804B0486B161D975C E32496800F83DF0CDC9591D1CC80284B731052448078D91DADEAC6A6364C2BE3 D38E65B32F96AB5EEE35C9F082E9D9A49545B9572506F4FD7E2488B6FBEE429C EEAB40CDBFA62AF7E37748E8B3B21DD66EF0ECFF7955E60061DC913AF91F006D 68661BE6D57FF6317D9E2E2AAD1170FC69C126F691FB0A491E7916F99F7E9FA3 EFD49B832B649277F9C0C4DD2509A73445375C263A6A12CB123ABD7AC7956078 A3E2B3391248BE6F3BA0AD7263D8B8E181AC9257DE3F30FF97A793EC66B6E2EF F91B6388F060CF7A91E370B914E06685FD2CA430D4997D8A3D03611D8AB5E42D D5CDC3707F54A3A0B172CE7C5A5D0C803F681D3BFA896C6C6EE42666D2333DF1 67CF1DAFCB931AECCAD6D43051B8163121C2DE7EFD51506BF1A7484CF5197DAD 56E1E7D4C6B37249A445BBCDAEFBFA5C7B979297ECCC152D6FE947C0DF008A7C FA687F2BE8AF2C92CC581F30F780EB1951018A018959B927871EC5A462011BB4 6027EBA2320E7631DEA155BF027C345FD1B1AEE64187FFE8724D2EFC52C3C267 8D7BEB291A97B65A3F9127AE32CA263580E9B85BFDD3E263E029D981786F9CE5 50A8C0BFD5401F3636D761895ECA26C711E0D9FB96115402AFFEACBB5A0D54F5 016629E9B399EF44EA6BC23D66C60543263FCD4425FD8DB56645989C026D6D6C AB6CA401FA759F56D29DD2532A7CA61F5EE7C5EB1CF856D8585D0411CEC8D954 9CCED9C51A485F168C67E2B8620C92C7E91875BD635B1D4AC50530E0B2D9E672 24EDC9A17FE21B982E23AB50D7A6E22571547315D04B743BA68981C68F1B2693 514079D1358B30529CBC3FC752A8E95627B110F49C22C0ACD96FE1EBC734D1A6 3A55BCE628E0A935F53D1431CF1700CBF334C41012A770BB851C906312F5B532 4FFB960026294D27284F6DD4EAC3E75C99512C0454E18F8AB22D6824F6A5C8BB 33A556C9A22D8EB101B2C1FB2089CDDD27AAED5B1D3B471AFB982B84D83E4DB9 A89D872EFF39E4749A1DA0CAC142E27AF35F2C2FD990EC656A8E6854692CFBDF C80E51029F451B37D74508DE9CA417447667BB067A32558E7D10678F4D725868 8BC69AC926F4DFCEF9D9C59F84A6DD9822499FC8AD61AB3EB2EF099C17E74932 5201AECAEA43F0BF460CE5F746FAD7DAE6DDB973DDC02A97924B0A901A047A8B 74B701698E133E21CDD633687BCFF15C88BBC84F39B919BF25A3B3279F94B4C2 E2314DE534EF708B5FD96E22487184244269B11EA73D6E03C7572ED2888133F5 E7F92D5FD3618A829CB760DE5351F54888425566EC48C4B83B3BB0143B3EBBD3 A03B675051AACD7DADA61CDC2B11351E87BB58ACB74ED3885401FB623BDD7027 A57EAFD3DDE9CE5E0DF3BC4D1D833087F5879BDBE9DAD50E63ACDABC6F240953 FF23614E70554251F341B3161F57D3F8D02BF84ACE2F18D52BC8432E854BDE13 E31177C37214990F84F54DAADF472FB9026D281029B2C143A4BC665C27F682AC E8F22541FDA521F387CDEE2DDE7E0F7D89082D6CB30C494CC7779AA5B6F8AF19 7267FD80E96EBCBD334A2B7D486CBAB9A9F08582F72C89E80E317BA55504819B 48D3302B041D0F2E233062BDF1A730FEC5914430D92B2C4210A751094AB250CA A3463D8DF9E9F8625A5E6139C208CCB54830C5319A03F7234F88A619231A6EE7 70A2C4BE3F0136025A8273D6BAE79FE12424C2B7FB3CBE2254F15324E4014E69 8E285E44A807A65954D9D83D0D1A22FEBBEAC4E7110B540C888DE2FE5444474E ACECA7EAF8EB22B00FF749A100DDA250BD124D3AD9FB6BF3694CDC5733B9DE5B 94551578BB797D1B4C000ED30CFA27904AFC93952DB3B21A11483699BE23D2A4 C1E34356A9EB85419F723315C72244052D5E474B0B7812F4EC1233036A65A98C 08177D6530A9E3F917537FA99F7D208F60E87ED7E91DAC23A1324B12F38542B1 FE18FE1F869286D289EEC87B49C8CA191816EA2F1A5B8D8053DDEAEE99D55E51 4552941A09FB5C93352395D5C198FA72F91E286EB6C58DE57CB3D5162D35DBCF 56B80CBD0AD8C64356C093877A1AFD484417EA5FAA68D7B95A51DF47F2453EFA 8C311F520B5A30A32A3A917A3062557201D6DF1BAEFC85BF8C8A81EBBA35297B 7381033F911417E1362FB78B5A42C46C9F7008C5E274C8CE411A8662439F57FF 506DC09886B70114C4FFE024B037E6555DCD4CB99D3796251B13270CD48A1AD9 7A31F2E94B7D8E7A790490C92DED89E8432BC830E8F6A5E71DAF51F331107702 3CBA7A80888FAFD36123AA60096B576B8292C70868731A45D1D6681E2FE03792 C857335A0A6FB9E5DA136E278321225F1C6536E8FA60669433DCC0E51576A548 C38025950C2D4F7AD2706ABA07B3AB705291A52F30C21ACA824268C6555E0315 32314F3A53EDCAB6C9C3AAC4A59DE48E3B1494511E04CFAA7565CA71840839D2 A81CD7CB8C86AE12900B6A4F84146312CFF5AB9F4C56AC542B7A34CA5BC21CFF F2A3312C32CF7F07DDC52575E867B823C8C8A311CCA8C1903EE730FFDE2226CD D042CF5BC5D47B1D8A1996ED83A54323772CE1E975C5841989277D288E4E07CD 75906E97B9E2042B1053CDD0A15FA93B25BA48FBC58664B2591103C4DFCF6F09 E6CB2C642F6BC69B2EF8E6C5019DFCFEEFB54BC5B328C5808B41173B4BB754DA BBB8F3B323B8608A4965E017D3153F502DE02C60B005738FEDA212C5F6D0B9A5 35179434274297D6405A51CBEAACC21D2C32845147EFED769D15DCF2DED3927C 767EDE852E8A956CFB4B07EFEDB485718F4FB68E95CA719DC749DAFCA2F51C16 DEDBA0DC67272B0A0C429A6539C4D337368F6F32FC087D361488A7239BFEF96E 3412FEED253C104C6C4420E564F5EF69475621BDF45690901D50563DF9D087B5 72DDC85CE4414949D4684E87B40C47438FDC28D1B785315472832C7EA0948886 23C4D0665064B8E881EF35B2B8CE6FBAAF28A45DD501409DAA0784323D760D69 53B870C25264B7E720D3501224D098477182AB95093E18741953A13DF8CBCE71 72D223BAD0F60F1C4BB17A19EBB8CEC22A005E87DE27FB9BC39FC6A2149D42BC 826BA96A22EA5CE70C4D72B32B0C4B45324D928E1E95866F59DF1E2B2BEAB3C6 93A0299B84DF4A876E3AE1106039B49FE480CA61A4741D2DC90AE2AD627918BD B953E077451042C5B46002B4B9609C98F228E943AE46DE492AF4CD04CB495DB5 D146A38618023759C9460E39A3297E5C28AE98B3C79B1B2695562A2723B5477F EFAE3C3056FE289BDEE8E170028EBC541F16E0E3D6AE0E954D5A6756ABA61484 807E9D9B76E44FB2F64DDF3342F4C311E6FE4AFACC80C438F1FDA8E954C40440 1C58689023F1D33767A7A0BD8419AA231B4463042E301F939BDF304A825C3D65 9144AE880F676BEB45DFC5AB5B1E339EADFA1DF3F79E145C3764618D92B64807 5E3B72B14E56BEBFC16ABCB95BA83499412E9791A5D2DF085FF6364B2769AD28 4FA5844641FB32F701FBF32F1D2F2E2233B66E36CCD149FCB3FCDB6EA04367D1 1624717D73D9128EA7D9AABB8658BE9E9986E532 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI12 %!PS-AdobeFont-1.1: CMMI12 1.100 %%CreationDate: 1996 Jul 27 08:57:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-30 -250 1026 750}readonly def /UniqueID 5087386 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D6A8F05B47AF95EF28A9C561DBDC98C47CF5 5250011D19E9366EB6FD153D3A100CAA6212E3D5D93990737F8D326D347B7EDC 4391C9DF440285B8FC159D0E98D4258FC57892DCC57F7903449E07914FBE9E67 3C15C2153C061EB541F66C11E7EE77D5D77C0B11E1AC55101DA976CCACAB6993 EED1406FBB7FF30EAC9E90B90B2AF4EC7C273CA32F11A5C1426FF641B4A2FB2F 4E68635C93DB835737567FAF8471CBC05078DCD4E40E25A2F4E5AF46C234CF59 2A1CE8F39E1BA1B2A594355637E474167EAD4D97D51AF0A899B44387E1FD933A 323AFDA6BA740534A510B4705C0A15647AFBF3E53A82BF320DD96753639BE49C 2F79A1988863EF977B800C9DB5B42039C23EB86953713F730E03EA22FF7BB2C1 D97D33FD77B1BDCC2A60B12CF7805CFC90C5B914C0F30A673DF9587F93E47CEA 5932DD1930560C4F0D97547BCD805D6D854455B13A4D7382A22F562D7C55041F 0FD294BDAA1834820F894265A667E5C97D95FF152531EF97258F56374502865D A1E7C0C5FB7C6FB7D3C43FEB3431095A59FBF6F61CEC6D6DEE09F4EB0FD70D77 2A8B0A4984C6120293F6B947944BE23259F6EB64303D627353163B6505FC8A60 00681F7A3968B6CBB49E0420A691258F5E7B07B417157803FCBE9B9FB1F80FD8 CA0DA1186446DD565542BCCC7D339A1EB34C7F49246E8D72E987EB477C6DB757 99AF86CEBCD7605C487A00CD2CD093098182DC57B20D78ECE0BECF3A0BF88EBA C866DB19F34BBBED6634AFC0F08D2AFB2A92578A6F8B4ADCD6594737FF6EED7D 5B536DA9E3E2CADB40DB7C600EA4D100D33C3B92B1CF857E012C4EB370BA8295 55B50047CBFBA38989E560076BF58F5F0072B19E365B62FA89501D295A73FE42 F7BD2599A7FE2C321F99C797FAB81047E4BDD3DB37E8B7F76DB65221B10DE3EC B1761A3A0AB33002F6DA74E2F37FFFC4B7A240AFB95C3FBEFFBC8CF8EE4902B1 EC715C89A3FF37E524FDD7417DB155F7597B97ED35D0F7F55AAE3EA7F926A791 069051B5469A3CA1A0676724D7B20A563FA8FBEF2D22F4493656AA36D99988E3 B9F04096323493E6C7FD91F8547DFF7D32F5A63CA71F37DA996533A3CD8656A6 21AE5F84E9E64911E8611C59263D3B400680696A79BFAB23B455B801F229BFF2 A232ED3E132F1432413BA5B6BE4AD41415361C022A78E307E9C09FC301DFF5DD 6A092A817F991D9263921FAD42AAB90E7B1F1843EEE904149BFCD1C4902CA341 37902A2B8E035BF2B15D28205D470A4CBB62EB0CD86E41AE013393BA6B7CCD97 E30AE855386BD6BC0574BB091A4A0EE181B198232F51199BB64ACE69125D43A5 2AC8077786D750F65197F3C5786446C1C8F40590DD7DDD5080B31CD8EF07DB83 2114EB79D5469ADF192CE622F41C6F3BC4C3BF44A92D6AEDA0BC7BBB07947DCE FDCEAD8A411FAA836901C7976D3386DC4E590D947C2784CC714ACBB775A314A9 8B841E663AE5A7B4B34AE3FAAA6FB79BFCEC50243288A42C26CB939CE51C2798 B307179F71355EAE0E7EF8CACEF3658BFA9D085EC14AD30D1FF9F3CE173744D2 68444886A3E197BD3DD912FD150A0D08CA2A4993A424E4F33D061A4EAD056AB6 E13F66652FD63F6282F41601EE3E32CF30EE5E9BD2272A6169EFDD114E8339B0 8CCADC2C1AE0E48BC3226ECC0B6A515F8AD4322701BAEA273933E2F9F22B7A68 FB4046EB728FDB79503074264BE662855BC815F7BB3EBF2A32A42570647A69AE 4F4A5842CF61C2083FED8D13806112383030E90E6E3A296565F286CB95F66BC8 0E0C7D6497CF801CE30FEC904A364A879427FABA82EC0A8B72DDBBC2DB76F746 B3552772634B7127EB543114B6D231EEFC402BB7DA74FD03A85ED00116C0140B E956FFD7B8BBE54B90E3E860CEAC020D88997F5DAA7215370D02EAD1804D7F69 46F8DDE3B61378A74E0159AF33F24B24C5757E609C70E9AD4B59C60C9AC4B98C A26C3B133F0B570327CCB8BB8296B932526A44083BC2B8045E6E924013B727AD 1295AB22C5233742CBD4B71AFCA57E1550FBF44C6F385A3A3B5251998144A02B 394E5124B1D8C53F5E0FFB3E8CF38E2FB32A41824C17C3431C5DD1B9080780EF EE09DD9589BF043A4988497B0CDB471CDBF4617DCC36297AA344EAB32E2FEF56 5DAD90C01AA1B5140BF5B16429A90FF2EC658C6B6F96025EBEDCAF809CEB4846 E1BADFE5D9C9630811F3795073B46209DF67D836D4211CD76FEC642CD1A898EB BB1A6C9C88B04C444481C2D15413D27926ACBFDC5F56D5A44914D35BC2B4F6F0 F4C8712350756FA0D720411F2E29514D35C1D531A701E1C6B4C67BBE60D87372 42193387E6CA1C1D1348F155FC1A087023B26BA4EE63547BDDB8945BB3C43440 679F18E7F076 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX7 %!PS-AdobeFont-1.1: CMBX7 1.0 %%CreationDate: 1991 Aug 20 16:35:49 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-55 -250 1289 751}readonly def /UniqueID 5000765 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 B1805DA88AE375A04F3C90C160DE16F890E93B13B46BB2F4971D900BB550E53F EC6248832A83CF441B4851445885479839AFAA2903A27676E5FDBCD653467C5B 6757DA1B722133018873A10B4FD9D710BBD9BE518D989B67DD4533F8702D640E B84C3CC2607748FBD7C4BC6DA98537C7A83BCDCD871BC342E318F22902994EA5 8F5F698960BF55B6DD1ADBAA57D96E80D7C28E06447C5E0131B450234C39D332 D6EBE6E76DD503B658866DF4DB6774597338B1DB90AC6C0ABAEBA29CE9656E89 167D88958F3BF262133689AD41A5B9A90DF2838A221C5067B73066612A0FAD18 6A3670B2A69D1731367C8335600294ABC365F383F983A8AB1E37C1C1804893F7 DBF122DA9C3843D1715ACBEF92F28AECE850981251D1D25F13B0DE4320D26157 D14147622A29E7E7F6A037AF34A0197D57AB2A9F7129001F7F636F3B07E0F12F D409D880B878EC8C911E3B1F24AE299AC56227FB9D6ECDDDC5F8DFCD18D8D0B1 4BF4C36A2E36F69E7291A1A0F738ED27D586BAAE8C04E00D5B3C88316AD3374C 5164218F5588EEDBF966055C55E9781D75B1D7B9C1A2FD2682E7CB88FA9C6889 8C5510BD1964BB505CABF99F91C7110745DFBC4B8A2A15295320EAF27A97ED84 C6E59474C2832859A5E2536E33893D90929D6D2585C73A6F3D316B96DCF60413 912E288DC3945E3A2C53EE1580FA68D40CC336D9AF2EDB87DAC04ACBF223D379 5482F7EF56A8DE5175D4D988BD67040B7B4634B145F6C995009C1D9671217E37 758B75D54A26EF8D6F56822318B256B2C43B27E2892E250E98F438334182171D 99CF39FD8F18FECC0C511B82F9E4B4F4105FB790D635D44CC9EADB5CB62797B7 1804D607C2DC0FA6B8FA3189DF2252DE24E4B7163A248FF532D7DCF4CABCC6AB E5128E0FC3B627766573EE0E0BCB8AF8004D4F820780487BB43B8BBECD194298 FDDBC4075A92D9316DDB04270C7D05A954895B2059D9F867C7B634E0ACC5E0EC 1884A3738CAE4ED2307DEE49A6DB545FB7800DD6CCCA23549DDB7637FAA0F282 42B7B3C9531CD3BC6235BB93A6F2F3619695EE6CDB14969FC7E64B58443D42C5 3707F769BCEAE301DCC139BD8CEF02D692BA27D982179977018B1EAB602A1D7B D0858685EF83101B6835F6958AE07A3DC392EB1B9CEA8EA6D8C9B7FDDF57AAB5 259BF6C13227E07718CF8BB244AC4F24EB3084958F151DE164023FC6A5CE2BD1 A305F2AF7097D6D30C4FA646CBAB9917F88A4EF31FA408923EFDD462F9DF3088 05FB2149C242490C3DB2C1CE6622DE71CB1A45533032EC9272E8B44349AA8F92 3083D0E441A1F5753771DDD23B75927F09 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: LINEW10 %!PS-AdobeFont-1.1: LINEW10 1.001 %%CreationDate: 1992 Oct 23 20:22:06 %%RevisionDate: 2001 Jun 05 20:22:06 % Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.001) readonly def /Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def /FullName (LINEW10) readonly def /FamilyName (LaTeX) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /LINEW10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /a0 put dup 64 /a64 put readonly def /FontBBox{-220 -220 1040 1040}readonly def /UniqueID 5011941 def currentdict end currentfile eexec D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9 1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538 497544391FABD08A483766E9B5C7ABA9A537C053A8ADC16DEBD8B5C9E1EDEB21 E4E89B0945C0737B96F0194585BE0D9B958F1030EA84710C31971BA7E93777C2 0658995DC8702442780303E948079822B9EE0C531A5CC49578EB9E683CB77495 DF613FBDC4536BD7A90F044B7EEE6EACA2042539F62789EA39AA16433AC4BD0F 98AAA04894F5487C279D2766B50B23E16D7F1023E387F60757E6C80FAE85A8AD 149D104B38BABA49C58CCD52B719D635E892DCE74F3D283407537FE6CF45E192 54BF678237D2B8B3C0AE474E96765078627EFAC8AA84DBF87784E5E755C587AB BE50DF55D35CDD05D96F562153E2016C3D23ED27DEF2C3908BD0BE882E838796 BA837E4B671E2CEC2471BC438FAFA0F4FA9D004C64F187F897B89212356640B3 3661AB6C36FD6C98BB4FBCF5016D9C6ECC317E76CA0CB5E739017091C4F3BA9D AA0AC0CA3DE976094AA0C0DCB079008241EC2D1CD368958277386F52D7EF4AD3 581A6658E5F46DA384CAC13208485723CAA3BB78E33D485D545EE7D9197E98E2 53937C88E0A691E696912A9CF4D608936E212C18E3A1A792B4255891642599B8 BF60A177C86186C00E2E0220FB80A0EEBB1D115B275FD94CBF960E1705EE0C4B 6938170DF6725216E76A3BE36F23D1DD3530FDDB409E758352FB2EC5D2EF0265 B48A2C566E252846ED6717686FD6E86946CE37C9A3493C521DF4EF527F87464A 5E36DAD61032A752C75175660A559CFA480FF4A25C4B14BC7B27B42314218445 FD3DB330A46DDB3C8A9F386855F555961A476077CCDDC68A26C1097AAEEFF530 BEE89FC2850256D81DD96003533789A77B01967B7D0485CAB1FCF1977988257A 0ACAE84A584F9424F39D2A31B1B8493F9991F4E01C0B6647A3A78B80EC6A0E25 E6E3D2CA32C4C7389D7BBC34C5B49F34972FB99B7665F771DFC4E44916E89987 4A7C9C8FB7EB7ECB3EBEEED46B666C31CF6F0229002A0F7226A58B6CC0533C25 621F5EA30E7C9DBD11911B4F6C19340D297B68F57B0A6AF565A56C77FCE9F04C 7BDF8BABAE52619D9D4A9C531626DA84F238C45F840BE35B2194CD0AD1B3002F 7729EE5EDE5A6A951599CC2A3F80FDD61A0E6B40D57B67AC004B17F7623FEEE8 80F7E3296594C4239010066F4C15BC946271DBD9A35A0F1FF68CD30CCD38011D 41F12DD29D763C83D4CAD9E55E49A8150A999782E01226EAA05061F91440FACC F80A9F7189374563C08BFC65B16F3681497B5E13FF16C7651203A5EED6BAB8C5 F44E301A71046F8453009E6AF92EDC9798353F8A91704138EF23880D439A8182 A1202E818717CEB04B1A838784E07BD67E350A50BA7521CDD81DB74941067C87 3539 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTT10 %!PS-AdobeFont-1.1: CMTT10 1.00B %%CreationDate: 1992 Apr 26 10:42:42 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def end readonly def /FontName /CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-4 -235 731 800}readonly def /UniqueID 5000832 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19 38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204 EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727 A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593 F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714 4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA 6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F 1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438 452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF 8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369 5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9 BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19 741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79 E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712 E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7 D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DC FF798F2ABFC4F3539392985C4CB324B00072295FC160818BB0355FDC4F12E39B 984826450553E3D271F03D8DC2D12A92A4D32034FD16DA13B876D88C8C097384 46D8D7E41CA1A8979F9B07EC3337E70CBBE3A377235B04C79BBBDB66CE1C1A41 89DAB7CE91F2FC0CAF6DDAD09992D56F72299068192610EE3DE5DB7CF6366B4C D74F414484DCCDBA449BFAADA39D0F27574E604E31CB513B18E3821A33076151 C2BCB6E957C77A0AECA48C587ABB5E8C7624D56B32F80BBCFDC874AAD6EA5119 C9B06886F08CC7DE5400E0F52B07483FD4BAF26C1556CA27B259F845681D61D0 2D28B185C9F052844D9A5F91CF19210CBFB21B55CDC8C684448E9B5A1D249E15 56632979760E2CC7075DF794E06EAC2C8E770828837AEBDFF1A5EAE67338CA7D F0A477DA679EAC876B6E0F0300ED4D9097E654F197198FD861ECAD138AD5B484 A28E3CFBEB4CA387F488BDA739EBD767BA225E1E0E7CF5D75C85B4DE5437481B 011B4B5C9590CB8309079CDE324CE4C62B2ECAE693F327D25D98C9AD193F9438 1CC2740C3097816E90A4C8B6FAF74806BC905E6B1BBEA5A0FDE63BBB08429247 61505EC32876075B3BEDE983E6CFDAF1AED845C598442881F6B93AEA6163065E D1495125A1E9DDABD5EE6500EE00260B500C683EA2C8CB4F6E7B377C25DCFFE3 050DBA641DEA73F8BBFE829AF8649C62B01A4F507FADCC056E2765EDE7EE4BD5 D79CD6AF35CDE0A4550BCD40C8BFFECB74CAAA1E058FE8993FBBDB57367581E0 A2174CB3B052AB49A506DFC4569B92103BDEE67B22742C640AE40C033ADE8A48 F1314FB531A7D93EB214E1FA04F018D88B665F3247AC9330A5161A0EF88B5772 0280BC2A899AF41CDAE14851BFF9DD13DCF1EA87735369209C7DCA23F3550347 2357D3CA034C9561291B00514DA409126E4CDCADA0F69D58DA55E846EA74A001 0264932CAF31C9A6E8795A982063AAEE6591A9353AEF3EB9DBF667F7C9D88361 0BA9287725B213805A4157667334CA78C4FA652354994ED413BC23A757FA39A2 DC55378DA36CBCA9F25395412487903A080EA998A8B3D644EED6B01FD89CEE02 08772315AD55BED11E9E25221DE04A809178705E67DB8A021F378738ABEC17A4 3970B2B27A3911F925D97680699C6C6BA873DD84DDAF68971AB1F77D84E7E9C9 8BB9637E047890F00F23CB805F050F5730DF0B3E963B6203EC0549E79640816C 63E922CE9872A75BBD08AB7D99406FBF32E9C8DC28AABE8B61031F25AA2F1623 CA5D0D1ABDAD0F469D1161EA9B4097FB3D7D97BE6F0D23C957877187BF91C85B D3DC3DEBB96AA3D1AAF5855AC3B277DE91EDBABD72C6E9E09D65A72B70B0BBC3 B4D3E9A9C105BEAC56F8CA1DA2AD255CFA03F47470C2A23BAA58B4C4988992F4 BFB4D4DB51EA7F5F9792CB40368B5D64EBDB1F6BF6B074B3B5897B10E6CDC23F 9EEBE6FE559DC845A9885262B66CAC213368A0922DF04F01B8A0D1C0AA263A02 B0EF73254C20824B543B91AF38CC0A2A9AA7D56CC1A501055B7699C4E561B505 F528660934121BA81CEF9AC56B561AC640EF47B7E4F6646926CA5EDF2A945A0B 7D7E0CF9DAF5EE95F69D73CCD8502705A477EE64615A8E7B57AB0D220610C359 30EC95712EF097DD39390DAE4321D458E64C73E74607396CD769BCFC75C7DDBD 4F5C4BB1AF09E50C0B3BF6E82DB55DD172F12D1E526F6A34111C97045A72EE47 2AE7DB3B5376C6936F2B4299FB908623AD21EEC3043226BB9085E1E522519E9C C2F538251CF86FB9C61B92DB5CE152C3F2C51CBFEC8D0D0E63608A0E5BAB647A 65649EF86F51CB4A2F5BD26A7E84673E55AEA7CCF32936390E474930B457281F B0155DB484438B4574B26B23AE9FE151C39D34D1A93783765BB85D2509E58B23 65BD9BAC23DB09B4EDCD5CA9C972EFDE932AF5C61605AE7B42318E57839AC60B 82CEC8FB9635CDD2F6BF9E3F6CD236B1D55E41FBCB23DAAA49E467F09E078BAD 8A28E883F0374FA201345A9284AF0330C924FBFD990606587AE379BFA8E9AC8F 52B2F386E5FB51BE77C4C54743CC93C8B3F7A74C3CC71588E10A1B3340091959 62263CFB8B9929E27F688DBA33A5E371123FF953D9460A9C72532EE341945F9F 003A8C6E19E4EFBB6EC836B12E84D57894EF508DF8F997FEA179E6C333CF549E 65FB0DB1782035555670E8F697BE1A6EE1265B0A5ABC5301E9AA160DB048ACB5 69517C9BB7B391DB94867B202B01AAE0DDD6EF537C72E513D7FF578E43E741DD 9FFD9B7B906386BD4FD8F84EBCAA72AD0C19A5292DC7917488E8D584ECD4A4E5 4403E5A94E59116C9E84A4B629492C7B47338AC3FDD3B0EFAB7C736D50B9D548 D74860225D9B335509F8E85B88C6B74CF22A504E56D61B49C69E5BA880ED852F 655A51F5752F8F37EA57EE73C70AC059E5A5017A02E54C24547DDB47F57A2715 582C5C5BA9B764BF89F2950C062EB45FE7574495BFD274F380F3C2409A23B52F D43E586099593089EA16543D45FF00E3FA32368EDF0A58479C87596D914850D3 EBEC540B8038E2493DAE8DE312A743ED666C6275895AA3D24C157CCD4A71367C FE29CB86E990C82E660CF119182878012A1F490361EE5DDB93CEA2326BDB947C 997E2AEDF0ACB32ED403900D3F8C0EE354578470BA79F39E825F543365B04C52 F8C386C7045E50FEE56CD453020057590960CBFBD876167E26E8EBB487EBBD3B 200A588490056DBD1AE2EED32F9865B6D4AEBA524EF83B2A0E2B8B9F8E10168A 8D3399C42391A98CA94ED34629A1A25809730ED6D0CE0D6CCDF0E0B8ABD7CA48 4A46CF7C6C27A25D68DC80A856E7CBC62FD0AFAFDF78067D4C7FA3F515011265 7527744D6EAFD384E5A01A2AC3AFE77A908D0D571E1000B15AFEF3FCB41F6494 E6DD3AD9C869501F9DCC75C0BEF5DD854977FC2273EADA6CDC785A9419F066CF 20588E5809D56AFC79F0CB192516AB573AE23DC38B829E7FFD331F691DC7268D 5B2A3F4CD67D734A8631BA20BB9EEE0757F213673F2E0F47E7A12713CBAF54B9 5A82555E6DF21C713C160050287F8A02414C6E5EBEA0C027905566EA8223CD9D 2BC0D70901EA3F67A799D9C83E92C04787B612FDBD1113B9E1F36B07AF06EFA6 7BA222D65D295A236960EF0B92C8A9ACBCE05F6D42F9061C37794EE0FA9EFD8B 1119DD77577EAE8FC46EEBA514267A9B8BA962C58DB87ABA5838A3046FAACFFE C4A9F7D118657706DFA89F862CBB573B1BB85167AE8212B5174DF79DEDC76784 A8676D43E759BC42AF133EDF4ACA82F99E987F23881D7228568B3A2A07A78F7F 7C064B8862801902916C822CEAF735FEA28DE5C4959A19C793AB884372CE802A B239E7EC4D8E7745B7C94AD2E31236C8EFF2D1B745C51EF0FB2FB3745FEE7D07 FA5E94350105725906C96DC3F4906931A7E94248A5B547D0EB5C308D9DC80283 A035BC51F03CB2DBE77E78C402373F87538F906A93A6E19DDAD53F08C7F22CF7 98E0022CC554EB98AEF8B55C76506A64B4FB6724D2B0B26DA95382C2E2EB692A A9310EF0A6F4176A738675404C3A8BA666071BE7F929B76A652A9FB3DEBC4BB6 A72387BB47AABABFCCA62252D0F770AFCFF62A70854CED02668576BCB4748640 B445CBFD0EC2FE5764420A09D80E778A72144B0F168E67E53134855161569C87 6D1116C466211D6F52DA01B16CC9B9A426F0AAEAC9CA1EBCC206BC16285A05DB 428F1DA6CC5D9095E9259AD0A44002D57308E551C80253756E8028A0E25E8B36 04A81D894F2B86026F242B7D427B8871D064620DB06008793F96CE5FB9792FBF 37195D491EF0A3C8266C772D2802155DE08E81F4873DF92DB0FB6E0EA04CD288 E2ADA209A5F5DCBCCF70A5EE5BF54205EAFF88F4A0895DE2CD80441760EC1BF7 E3893347A497D4D254234EAE2483CF9303AD03356C9D907B014106FC55792C23 9330D84057B8F6B35BED0E7A7C9E4ECE1466DA34E5C1AE977B187722236D7707 2A2FB26F458FE12C82FEB406F3443F3DABDF52FDF4D58C9788BA0DD322BCACAC 04AFD42B1C932EA5039C4E5F07270469E5293F7D2A29E60ED4056033A83D5900 05E1EC365357AD3E7862341141F0EAC9AB385A1E58A3ED71336423C7854BAA57 A69CAAA2FFC0750EA8C3CB4E4CC4BCB153731B24596156E4A8662D1633E4F6F1 6CCA8157D58C3FB4A4B11F593D79FD2EE0A4A42DE582C79BF453813008098CE6 3E4885297B2CF955DE05A96294E04DB2536D1BE3AEB874D2A73F8516DB1869B8 944FFD00D0EE018B90BEB687AEE9D5E3DC16F73FC3C73C33756E1E4AE458EE96 BBBEDCB748753850A3A7CBF6B5F47C88CF1E5969DC84D4B5A6C928489B718785 70C1EFCDC7D10A4592C400BC7DBC025F33AAAAB40AF794EB80A40F72EB63C270 33DD6F8BEBC24FB0C138AA69A78FDC47E4806D79B98B839F06BA9B7696C837E9 D0231F9BE1694B53527B6C14000F4CC2DDE96B6C37BE96093CEF8BB4CF7198F8 43C9FF3C9F054490D872BE320C44234DAF9669161A4BCFE49133806676153016 5CBF86FB827952BC40DD5266187DE5E1EF7CF80DCCA306BAA1322448671C00D2 A0D6211B0643226A7B47B23382DD9DA87FC1C2B51EED840A2DDC85FD8E396D79 23803458EFE30B987B1EEA03137F96E79EB2109A4ABC1C27270017F2C86227F7 4B0D78477058451808BFA41969D4BCFF209D37A388FB047D67E617F816BEBA0A D60E6B0226060D8C27B789FF64D2EFC3AAFBE21997BF45084F5D767B68AB0B37 F48774C088513DCBB58F7FAF298A1AFB94F0304F7F76A1FAFC4796F1ED961D45 6205C2D607F6E2EBB76E83186E24BE0CC407CDC0F85ECBD314E35CA4F03D870E 6D8722E12B9CE5D6451C887376314AD780C8049B5CA2C13DF7FA4E25BF18C94A 0325B70F7F97817F04FC40D046C4BC930754770E574C6D79BDEBAC58B7962CAC A1B16D56375AF38A8AADD3A6892643D78F08A6B5F4770B55C299E7C53B762C73 7D1BC05941E4D344D883C4F39E648DF21BE15AAEF06F86DD75B39B64DAE1999D 6803BC061C37AE61463FD9A51619CEE79D85EF8D9EAE6E11EB0F0BA72C006491 53F66C3EB1D112352BFC226603CAF744DD78441D9EB23FB65954A12B6774F5F0 BF9A7710FDDB02D3EEB1E92865460B33C0E632E1B9AEE1EA54E7DAE5E6A72751 491167C88A6BBE47153E5B01A476D24FB0061108F573A19E755D5AA10E608AA4 8904704BB23C577F75D116A2EBE33E6223E474DBADCE3B6B2630C67D93F13BD8 10261274B504B8EE9850988EC157080218B2DF584C5C702349E44323F01C1455 B2A68960442F12A408570E3F6717167F67C14A65854AE4DFAC2C5A6217F20EBF 401E5EFB19D6C977ABC891C630DD0452E9B4BA70D3383B5E580BAF18DE25DDFD AA9049976A16251E69BA26A4BF6F8D168B334657EA96E42588AA4FF3E3F27260 3984A507A6BDFB16BEE8FC7F01841C86FE182C2DF46424FA3F51A3532F825644 A5A91DB487E0A2FCCCE6B50741407F187F833854ADD52DAB38ABE92F8C6246C1 4FA08CED19F8FC4D50D9D0A3566975A3CAA276CBF414F32B4F2290F241B0E600 8A9360124833EE009C55D2BC513DEBC7D7BF5C444C5932C148B1746FF666F8B0 8A7A5AA510AF6D9DF16C4E1627F4BCA6397281F2F954A03853DE9BD1B2BBB108 1099DE772AD6B62D488678AAAEE03D34B115FECF39CE55792D6D1A42082BFB22 EFEBB575D735AF9B56C545EB1B7953154186D7A5BECDAE1F5D5CDF26FAD8D453 A5863F35D6158F4CE1D271792ADDF7BF028F730AB58F03ED61EE89B48461794B D5D1D0C5FFDF00E9D58E06C14A003B032AD797D6D5A66EAFBF9CC201792829D7 FB64EBBDFFDE846E976A6DA5C31763C83B7ED77CDF64E2240B4235DF90E872EC 4EA59CFB6C7BE8A74B601585D5E20525E6D8CF1DB917005424D35E8BF8E3F15F A996743A883AAEA60EC6DDF7E145F663ED446BCF084A226D67AEC7E7317AA8D9 4491F04999FE154E7FC4F47B3DD74C7148B78CA2975926087A163F40E53EC632 B125EDAFECD632E4C67C3D6B0DD4EE2982DD91EC60F82735EE3099B2B7D3D9FD 5FA2D707D7FE3CC6983F21F04C9FD110619192C182CA397A468238C1C53DA021 ACC1AB23BE519C05C45E42D9CB0F6C6FB58F10509C12EB3761ABA89DD8F469C1 CDB56FA5A8F2E63EA2F9279FE3B57E0F65106046E94CE0A3931B2174BB22FB2D 1A5E65D43A8865AE1BA0BA9DAD3D3600C453FA1F2EFFA65E62E6CC5CA2AB9347 5329769C7B9A8ACEFFAE2564B06F082872E34E5E2974D98787DFDC2AFA26FEF6 9CA269D4F6D4941642DCCE437C80B24153FA6A31E91D04C3F1F6814B71C0E189 47BFB4564497589087C327EA9F0837E2F7C9071D9E67EFD6C271CED892E9CDE0 AF10988AC4C0CEAB217CCBD49F72E0BDE2DED625B395C43DC16827474BCF4C3E 05264AE17FC470449399D64D6FB52C47478A094A293926B8398D6131B63EB55A F99D3A779DD279267C0FA25F84793A4B613DDDAEDE43052F584DD382A4ABDD77 1B01460BD8F0A7BA17356C2B99A0EC0BF7EB1D48B52C419D19F9398AE08A69CC E24926AB084B1C193182F08CEDB0D0D5367CAA5DCFB5FF92F55807F26376BAEF 1471713039D4D35E5FDA183CE0035C29B5393423368AC34FF118EED7071AC95A CBFA78965651843C8402655D5707A4787E1B4EEDBFAE577CE7F3AEF49334C1EA 91578A20C34FAEC848548F560AF17AA63FD5647D3F633C38ADB2E5BEF623152C BAC8A9C96F5B81CBFBC6C1885110CCB5FF3E730C7C2E4C3F853545D87E5ADCAA 6FCCF6B08A8A6E1724379968967DA4B247A54D51BA332183A8E45B6569C065D8 BF5978447CDE9DB5DEA224D9228E8306E1424893A31C5674ED9519AD36FBEC5E 310FC3F01D5C99F0E991C4C9DF1F2191D23B0C8A2BF0F015AD2358CF2385CE20 F69ABC1528197BB25E05FD8B0F1376E4D1FA34DEA83DB72FE883133869C4F2C9 2F4917B5DF5F76B6FC4BAF5533ED9B60306E8144156A8A8B25374290A2AECA12 3E1C8F6C1812F033DB02E7DD9A6E5819053B79F1B4FE7CB3A77A840D857E1FC9 42A9364C48F950CC0ACE37EFA22AB83125BB1DF52AE03B8382D997BCAC2A936B 361FB7832846973F983D85CD9064C1329CE48034AFF375FDAAE0073CE55DC9D1 DFD81000FEEF3DCB8C9E30F5D64E1D7B7A7BD12434FBFE42787DA92CA426C5E8 412C76DAF2B8F9467CE6A832FA6FAD93181337ACB49399CE05188B79257A41DC 7B611DCDC35AD8AFAA00A2EFF8B3407C35F64DC89BA8EA933401E3FC8B49006F 47FB7465092265D42DD9FE6D565410F40D9FA6A446EAF2520365BD7F18C86BA7 1C3A40FC9BE0E73A55AD153AA3D81C20D1B95F5F2D7DA349C51F83E858D971BC D12DF5B841DB63E5B8758DBC1FE74CDCB9196E0F712C1CCBE6B50C4920350D54 3C6B4A6FD9FD51099E69950A60FA9BEDE0E99C8B828D3244D1E86FC4E1BDA5E9 7D51BE2B7AD4EE7EC3231F1D59487585157D6A9C41A642738C313F34F3930DEC BA4869C135995D81919302A4E3C3837DF4EFF9F4C579B1BB11E4441BD47B80B9 7DD97CC81E99A066DAA2D7A9D310F7DC1772E64652C73EABE381AEA1FB573B44 91C2A51C5B4DBBC5FB27D5F3087C7996A5EE9A8235C95EF30EA8BB5D067A2E00 BB95B834F3F8948B0850A4E62088A19C2F2FD2C7513894E9B43B7502F766E1F0 FEE79D67F654B7B268A568CC9D22547AA752ED377CEA8754C4660F9E3DCBE700 BB6907317BDC1CAAD1553BE76DBCE3CB31B7B7A33933864F12C1B182FAFB1FA3 93E268473CC989C89A617F576226CD15EED426D78A30DF9F72B14633CAC2F072 93AF7E714E1914E50342A79EB05C1E585EC71D7BE43F7E7AA7D26CD7D852F7F7 38C927E464B344CCF35C7BEBE5E6CBCF5EA581AB32A9ADD90DFF3F6547E35F8E 6096EBCBF86AE7D55108D19ADC5F5A786F7A807F6626A4BF64F1A4D0D056FAA8 54F75D4BC961C197D4B62A7FA5AD2ADA913866A2A1EFB8032D192F8F8FE910D7 00C725FDA1CB5D06EB4E162F5BDFF9C8BAA21F3DBCEB76A8E8C3ADB4F999C3B0 65AFBFCCC8B9248882DE471A4A9D8AC78B560C5A2C450038296325306D5EAD5D 79359BAAF3EE7C86E31EE68AD24134E1AC88B536C2969FE8CECB97067730F6CD E37BE49981CEBDB36D065EC64EC03854D7877F1B3CADED59D590ADCC99317D83 FE34157A15E5662B974BF52D152C791740370B8E7861C0BE4F6DB8269CA5E1D5 B910D110EB0CCCD2F8B509263178430B8983BD0F74BFB1E6F476CA7617645AB6 A9D0B6B0A85CE2A1C063D6CFAD02EDBED6BD2BEF3ED4F9BF2F99B15E58A6D578 8DCB07AC7D37261B1848AF96F8DB1A54EB08F2AC16721BC795F5765566E84ECA CB3FAEF75DCD47AF528CE45D92D4A6AC814FE38D7A037EC6A11A7521C8AF255F 5A478149AE8492592E2D7A53F43B969440E36AA755CBCD7B8129743B7E556745 A0E739065FF0E2B85953F43580AE6BA326D390337D5E1818EED423DD65498859 AB7D4CB721BC98749F2E0A5014D2B900451804CF863BC301ED58A70E1A1F7537 E2AD5DEEADE8B63FC27B83B0A2512DBDC7838A9E3ECA5EAF3F5C7112A920B58A E05852F1B8924C324995525383F5176FF51BC618A886A711C381B5C7EA722F40 0FE6C40E5074AB9AA5806E7EAE723AA830EC25CC9ECB03B7EB0BA5F9295967FE 894EA9AEDB2B81F21D1CB11EE799515496F32C154FFB328C94930CE078A8BB2D BD8531E74931351D6A4FA20B8526E54A12C9AEC23A25BA37DDAC40007204484A 9821A73268944F83DCAA471F5E1098C805361A8CF258E37AE67BF6B06AE4055F D30145FBAFF7E823921031D24FF4AFD814FE78269B3A99A395D8086647A147D3 9DA8B8A7CAD43256CCAC8933AA4A051BE708B88F40BBC22FEFC61C491D8A3FBF D1983F244FD732C9226319D5E61E500D0BF114F0C92F3912C6FECE3159A28DA3 889AE9CA99183FE77624EA0C8CAE35AB3D2F4642C115CB17F366F80AB35BF57E EBD79D0682A2896AFF21DE5EFC7B83FDF30D68CBA562A78424B401BA68D3B6F8 642A45279406DA380871BFC21903177F54F95AB93D9A8C7EEDD5275DAEF8B457 F1F236DAA7C2A33FD20163C03488E8224F22AF14E3BA1DE28DCD63F788EACE48 19CE2747CC5F23242F565684BACC7617F4AEC535EB76C8846C7F6B8249308867 704D315DE98EB8FB8AA2F60AED3AE8DB258AC9F23F9D3557C82D7932E02E7D0D 8BDBE611C6033FA114C8CB16BC23368B3A44B123BAC89C3A3A8AFA0FFA4C9EE2 A508A16CB86C05935768CB33C8C91753CB3846AEA2E727E1DD99EE0B46D678FC B17D6AF5865C1D759683FB93CB5AD54441391503BEB94B376F3775182FA00257 91B810FE2EBF1B75621E77725BDCC062A176A21429B23FE1954FF3D829F8FBAE 4EE957F27D29CEA4AA4E6D7AA0A0D9F7CDC6E9CA1721E467D26CCFB3FBBDDD32 3FF3A8F465E0169BB4D34FB9EBDE3B602F950C3E75D67A44C8F53ADF22B306D2 33CECBC2E0BB3F02124811EE4F2DDAFC87F2A782DF0B9E7BD51865B2061D5171 8A2C0041D1FCE7ADC80ACA10E18C40CDCF234DC1ABC33EF07398479274B5CC28 D824D490927F6F5E8C0EDA7A541246746FD267623601AE0A700F0C32D9448B0C 69CE0687ED333614320C48F1D809B7E8C4907DF967C72A22945328E73263E73E 080071B905EDE0A11F0B76F327C13D6E1E18216275B7039CE438E7486161AE61 3D282C94A2E79739FDE2E796AB3ABD0F327FA3DB782BAEA15BC67296ADC4F2DC 5CAC8FA505177790ADC9A14296CDE5535AC6B4AD6CF055A0320DAF1DF636345F B5234C3BBD78705982507DCF442675F7B62D0EBE1C8686012AD8BA0DD43BD217 4F485CA7688A6584F7643913F907AC5A7A8CD0AE8D4975CA7E5F3506E513B2C8 7E909C482378AA63F1430A6307925A6B6323E0235E8DBB61B6CA12E72E177F10 8FC4BE3AA73E192A93DD752AED1CFB2922ECD9B0073C2B11188D9AFBB9EF22E4 005A1E4087D4139844135795422F81F33D2369CFD273D2116AFA022D6FBE30D2 4ADF62436AE7608E7EC164E6B841CFFB99D7C83724837ABC23339EA139D7B5A1 5466A582C55A20A42B0789464BA21CB5BDAA9746A3833D3E99E5152F324D0C86 D46F22A7356E4A7AE9489D0D8898B58545E76E467A67EE042EBD1918EBA4BE5B 8B691BD0E78A6257C52118783994FA3A9942017643519BC35037CA978805F7C3 0B893CC120E55518A27432D5D81AD694E8697040646DB426B456186B0242B161 4CE895E95CB339C709C415B03A994BAA201D09F946D73630DA7BCFFFE49BAB4C 58010509CAEC43D5B7560A2985F4CB6CBF781415E51B441995D29AA169EAE6DF 023D036815B1D5B311840096E967245FC66440D7D5356F802C9C947F8279BBB7 04A65E037765F74E92DFA9C7ADA93E1B43CA1A05059C9D418C92395A96FBDECE BB776AA5E1B0787D46FC317113540AE17049BCCD84D10BBE28583EC12992568F 49984D2F5B96539BDAAC8BDBAE3295B5A723FDEDDFF01E81FC349F8764626660 1D55A8E66706AFC535CBDF354A6D0CD9DC0C8050E24E67828015809062FB1B0B 59374BC0704CB44423904550F64AADA68D5562DBE98362E313A68421BE7ED835 8263D235ADA117E302127E920595CEEEC358F0D7BE0B2E0D5C0A53EA36984DBE BA6E4E7BA232758912F8960642208E92A078B88FCC3A525E460A0F3E0349A457 01C6D195C882472084E60127CCBA82F4C78880976A0D39272FCD3497A4426018 87EF1C09A4B3CC4DFEDFBCB9847590906E618F3E4668E72B8107CD490A0A7183 8732E545592DEAA3009A3AD86D4E7E7CE2B0739F48C569F5C33ECAF56A4F4F5A 4F97BF818413699D545DBD729A085D7935F29CF3934A3E74CA28979F836C195E B8085C6E23806C2B36180B2DD86AFA8C2A53FD20553457B3AD0C4EE0EDD99431 9F779A5D5CB9DE754B35CB9F32A86645DB18CAC4F16095A891AF23BED077EF74 7BF579DC8DBEA60F9C1A9C5E98E37D3417BD33DA72C7146614E05E32733816A0 73B820FA7C01B076FBF429BBDA720CB225A30C001FF2FD786549486B695E3EF3 E0FB24C4B6F23FF24885808A70F72050C7ECFE715A3D533625ED0A410E739109 28F0E3FA97C073FA5C3FF84720C42ED380B36DE73E299B655891B810C8D611F6 F6E34D799896B4988F8CCA24422E90D1A90CCA8B42E8FB691C95C2CDF29CACBA C57D8A6CD749672AF5DB5D75B7F6D4D6F833B98B7D8173311E6DE9C8E4182225 004F7C0ABFE556E88DCBA5600111C98441B7DF07D3B7045DD13B2D93AE007004 FBA38CA08301E179FC4D0008485A19791C7923561E72BFBA28716CEDC5FED6FE FDCDA2192F7889A515A81DF25E57CD8E7E8B66A0F5869ABDFFF0819519F6A38C CCE5811C5FBA7F2DA1484DD03F2917B422C168D2548C3875C78A33347BF89D0F 5E703D82D911BB65D3F6A0DF6D3D21EB95C6B30D047838B989ED156784D5FAF9 6881A93A2013F0B42B1B8B6C6A5C70CE110C29D27FE8B14FD48DB1C324322975 00B59CCFE425D3A48FEDA32F485189BCABBCE7C0BC33C4ED6734081AD45AFB67 5383F74AA8A29A385BF7D0229E597598DC8637F1B5A0EE409E16008EE359D1C1 3699E51F87C6B931937533BC056E94543C3A42D081628BFC9D7EF121DF85D266 588ED2D67EC64F5AFEF1F221BC5C395F256D3D5719C4BF769BD06695E61621A8 5E23E822E5342ACF1EE6C87A1E454BEF7FB4B16202B2B49A8E5EC97AA15AA49B 6683A2A8C863E0251106A79FC68C10EB108FCFC1CBF1BE4880B706C1958857D3 453B91EBEFC3CC57504FC0DCA3064C8F95E978028826FE750210AE32A234A24B 3B341049786983EA37A1395C514E0D23BB33D0258C6DA4C34B04CCC0EAAF8361 202A3333A4298AE9325B4FE13880D49BC9DCCF4ACF6DA2CCC42E40FE0C6A0255 8B8C784C8B6EB87714059FFE69F1B170FB45C3E7882C83EDDB7519AE9C5F51FD 164685F812FFBE1850AEAA8C09CA7E7094DC0E20405D7D1979022DD31B1F3305 5F0DE180A1D135D10E3F1164ED2C76780EC59F0ACA26CD80971C8B15C73E4DA3 570F2AD53F259E1D3ABE0765A7528890364984C60D025A229B042F3AC3C477D0 E6481992DB19514D2257B8FCCEFB23938527E1B824FB7CAC1704876896832F5C DF8D745FDF416D227C01E3E0878CC9A94F06EF6133E166E5CDCF85B9854E03A0 202C9C77913A5E04F7028E780B573AFF3BD037DBF4246B4C41541F4DF5DEB76F 92E872D6C7FF22D2B1D4AB4D4D488C6A96309B6270D9F296B38E594504148F7B 58BAB327F5A4D084C0F72645E43C94E3D9CDFC3CFA5FA39D960BE48CE8A85205 EC1386A5F66CFA5D4BE202320740AF0E4C6604F5E762DF6BE445B6B9B78218E9 99CDAB61BFF8A07205DA0C1A931697F549DDE6B6469C6E8AB86CA2F862009A1B 725C4E43A35A791B00FBD3EB517B74E3D6E771CC050A8154E8D690C33BA4A6E0 08CE2CD80566214E176BCF9D2876B35B6F3A641B6596A805FC5266BDA25006B0 9529647CED1E3722E8861C3160F7D6641C5B12E655866E590471395B6758B124 6AA02D7FD4E8672A4CE846793E88DDBBEDC2B3755F12832C3065A8BC25AB7746 132B019CB38A7E6CA4D593852829CB070B4E80FE36F44A9054807905A5E93A33 E0D0507A2CC653EB272BF327B7E3ED571C49EC00A2F51DA3453169DD62E78088 3877C91AB6861658E72E3854D6C3341CD5C5B66495DBC01155C23FA3A8E5D174 E849E75461A1CD180810C73D5EEF73B83A22ABE9318EA0DC0D5CB5FAEEE036D7 96D64791793E62CD984F440F0FAEA28D16AA9069E18B661C21C265FE2F43A5F8 F3305836499ABBA84B23451ABD207969B5D2CB344147801D3653EC51E6FAD5D8 5890A75BCE060309FC34CFC5084689A37575640D2C57C473EC71AAE26E93EE93 0513450D1BF535444E29BEFD750198C0858B119BA2BE19386375A2833F479CDB EFA9C783F97FFCA20A36F1FCECDD266E6E7166495955B62FD957BBB5934960A1 018C2493CBEB6591EDAD13EDBB2106F8C30478BE211BA0DE40EF199DE239D041 234B9C4CF727F9DBA296F10638849A79DA416804EEC5B4ACD9E78E54BB4ADFFC F2A5E94255122DC4777656D519EDE4F3CA876A7A3AA15094AC584C6E3027F279 5C04C944784E9237B95C71E0944E631EFF31AC5F72D0FC7527FA46A1131896F7 3CA51394B7E21E15BBBD3997403CDF1D7113F58ED819ED05A0F935E2AD54A9B0 95657A0918BD860693DA13BCF09FE9FC8EDBD1D92DACE0C68E12208778C7BFAC 259D77CBDB205C17A43BCF0DBF92AD78C9CB104ECE81DF91C7F573D977A24380 A40631BC90C124541A6DC16C6139BB901488AF3DC1F7547F6BAA6489AD9D0783 EAA5675EEFEF120EF005FAEF5A6640A202EDBB2DBE899466F41EF91120E3325F 971C018EF5105E0C40E67F3E47562521A05C4E98A57CB649AF07ECF31D4A2070 AA864365E30E346219DDCB547348D213AB502F625B5556D6F3E6F5EA207AC549 4F9BE0451775B303A451B8CCEB98F728381D396F6FB03AF86F63BAB64077B7CE 7009AE84CEB9AFC33D67BF9977DA6C7556D626222B481A3F0F64A3A61A85C0F7 FAC9DE8507278124F9929A4909832986E877AD967971B8069A92C428E773CC15 C64F11C8CD0E70DC243A215115D5A3C5517BE99931C0CA749610309317E29112 57777D34877E2D649911FC88AE4B41E1F1EAFA206C76FBFCBE4A9DD42B8A49E8 E14ED43F9974153205D1DFF9A09639973EF0CF89A100066C9F9EDBAA540EBC43 E8F1CDF708A25C4D06105B80E69F72DD5D0139FF1F9CBAB77E1BFFB9142E02F3 0656C2CD974B37AA7A22E7F86532966DC7BE4371D1595E1BE3EF6B7C0425BE5A 0F819653A2127CFABE80C9B4F5DA38701E78E8F73BE73953B34B9D610B48C2F5 E59237BEBC058B2EBF40AE2FA7BB4A1B12A9E4ACDA46070CB9F3EAB59D9C3397 09E65812F69C6462E38E7349DCB3255A34C5F25B7EA02FF8CEC314790FFA8135 00E1C786CB5C51A2C3F1B8A83AE86653D5E1ECA410272D429D3D1DBF080BE047 8BBA01E52863CF689089AC6E688160FA3452B0A74CFA08BD7513F9853425F44F 1ABDFDEFF46F9BBF8E57A5335D7E53E33E7F1DBCB7BD45A64C1F17B5C360BAC9 96CC9541829F2BA91A167A0CF01FD4CB70889EF667F10D99ACBC5FAB3E575B97 6E53597EFB7E75E35EDB2D9FA053B9DDBB4D8CDCBC1462C878F7EE5281DA13AB 4C5BCD45F76C59D531B66EDEF01187E5CD03189144C09175CA81544559826310 37D5EABD0A98E1C2B0283984379280802F8B2501C3B391B5ED57742829F70042 07C2BECFC8CF8F1FFC287F7E6A742E1132CAB7922F4446710196DA3EA185E0AB 5DA414315DAFC2BE34B91DFAC83E055A479FC3EE0292DF306344BE712C9D6D82 7E0974E9C3669BAFABA0192E26A1653C1038DCEF7CF8637590F2BCB1FBC719A5 5A096CB7A857E7988E3A5D2CCF6086E2A68189BBF8399FC92CC9C22501F238CB 73C0F4EE37968D42F2E4A45832D2A1D8E5CB4A917D341CA46D36F9DDC7C62F4B A5759ABB22C13AEB7CB481E18FB83DC34B054D21F3246AEC03C169E106CBF652 1E4948F8F574D6D9B8260596485A51BE796459851C37ADEA1514306EF44B25FF 03343E0298C3CBAE33FB6B4631E4A28DB240E31389 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR6 %!PS-AdobeFont-1.1: CMR6 1.0 %%CreationDate: 1991 Aug 20 16:39:02 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-20 -250 1193 750}readonly def /UniqueID 5000789 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF4E9D2405B169CD5365D6ECED5D768D66D6C 68618B8C482B341F8CA38E9BB9BAFCFAAD9C2F3FD033B62690986ED43D9C9361 3645B82392D5CAE11A7CB49D7E2E82DCD485CBA17D1AFFF95F4224CF7ECEE45C BFB7C8C77C22A01C345078D28D3ECBF804CDC2FE5025FA0D05CCC5EFC0C4F87E CBED13DDDF8F34E404F471C6DD2E43331D73E89BBC71E7BF889F6293793FEF5A C9DD3792F032E37A364C70914843F7AA314413D022AE3238730B420A7E9D0CF5 D0E24F501451F9CDECE10AF7E14FF15C4F12F3FCA47DD9CD3C7AEA8D1551017D 23131C09ED104C052054520268A4FA3C6338BA6CF14C3DE3BAF2EA35296EE3D8 D6496277E11DFF6076FE64C8A8C3419FA774473D63223FFA41CBAE609C3D976B 93DFB4079ADC7C4EF07303F93808DDA9F651F61BCCF79555059A44CBAF84A711 6D98083CEF58230D54AD486C74C4A257FC703ACF918219D0A597A5F680B606E4 EF94ADF8BF91A5096A806DB64EC96636A98397D22A74932EB7346A9C4B5EE953 CB3C80AA634BFC28AA938C704BDA8DC4D13551CCFE2B2784BE8BF54502EBA9AF D49B79237B9C56310550BC30E9108BB06EAC755D6AA4E688EFE2A0AAB17F20FE 00CD0BFF1B9CB6BDA0FA3A29A3117388B6686657A150CE6421FD5D420F4F7FB5 B0DAA1BA19D638676E9CF159AC7325EF17B9F74E082BEF75E10A31C7011C0FFA 99B797CE549B5C45238DD0FADD6B99D233AC69282DF0D91EA2DBD08CE0083904 A6D968D5AE3BD159D01BDFF42D16111BC0A517C66B43972080D9DD4F3B9AE7FB 11B035CE715C1218B2D779761D8D7E9DEBE277531BD58F313EBD27E33BEF9DC5 50C7821A8BBC3B9FDF899D7EAA0B94493B97AFEAC503EB5ED7A7AB62FBEFBEFA AD08ADD6648E354B05E584C970AACB6E015F56F3482678504279F10E01CDA446 6F6E039511BE0576EC00ACDBBDE8DAD593121F1D855D175D616711DB93645AB6 03227673BAF4CCF593EB7EF23AFEB7B2CB7AB053C26530E564BC01C2F74A3D1A 4C1279D91F1EF1383E34E8218B3A9918341FE9E346EB3EBFE627E7518D6AB787 8DC227C39FAF27D969769756B98A0A078058A6D04DBC5A18344ED6EC71C98E00 7996DD675B953CBDA5AAECA2AB8819E1FFFE61F2A2C48F13B70F8334E9A2CDAB 4603C68292AD8A93E29A04D262AFE205293FC10AD70F360DC07DC03E00CD12A1 5213BFEA869BE17CB485E81907A09B54E11FDBD10D0F96A93331A1C67F567735 D8103CDD80521A3C99A41D027814CF6D405E1ECCE56AD06878ED9DD601EC3D5F 77DFB141832D6A1205CD020AE2DC7F1184765AB81CB90EFD36FAAB3EBD0DD796 C157BF3E867C5BF7500CA0265053574EC2B493943E894ECBDD4FEECDCA195DEE 68A3F72351CE5732F1E466EF31F1454572113E8098A3433CB162DF809F6DFEFD 69F5D0C8050740755A41B1AFBAC031CB876EC4D1C8EEF3E35D9566BDA93F2AC3 55EB2BF661A9111BAE2534E4A8DFC1A37148F928D7F6D8DE1F4B4C5A32752F24 F22035330C53BF5999089DCEA2578E92512D265EAEB3A6E150EF343E22033DB8 A6B7CCBABA52215BF69218756FE289F3825F4650796FE1E23C575132F99FE2E9 E7919B06E71FBC1ED75F74DA20E4A0720D0023DDA270A6F104B03BE9775AB5C7 716C017D25245F778FBD409BD200B45217D2BE5573D15CECF99A6C94DF4717E0 1AE54B7651AC2E8D9C75FBD8D4C52671DA743A4A2C2FC7BCDAA07D1324FD54F4 02802A68267D6A35E576E2C0E71B316B8388A40ECC103616B672A623E016D142 C12B964540A60FE93F4D13AD205E876DDBAF48DB8CD8164F4FCE6140BE0F4A60 767CBDDB357D750AE1275A55633153EF512E07671B517283043D9EEECB2307DE F2578C4F046F565816E2EC8FE2F638DFD95C7D255C1153D6F7650D951DC25E15 EBCA45792E40725590E4481B962B3AAA62C9FEFE29B231EFC38A293BA7B226F1 CBA71C525012040D696BA4E35622A9F33CCC1A573B84EE22A67E1A0E23A728F3 1BE049648365B81354E75F7603DCE5DE852E6BDF8557150DC7EF9472843EC918 855C61213B9544A556C3F938CA574A850B02166D268BA5D57366481254896782 FDF2A4DCDEAB2FD449908D8739624A73 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMEX10 %!PS-AdobeFont-1.1: CMEX10 1.00 %%CreationDate: 1992 Jul 23 21:22:48 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMEX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMEX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 26 /braceleftbigg put dup 80 /summationtext put dup 81 /producttext put dup 88 /summationdisplay put readonly def /FontBBox{-24 -2960 1454 772}readonly def /UniqueID 5000774 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910 DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8 8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987 FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422 BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52 EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8 DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1 EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C 6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281 E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350 E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38 4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5 8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023 8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2 FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387 680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35 5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664 3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666 DD4DD1C1CF9DB1FD1568F84892C602408AFD8174118B9E1476C8801DED513932 51BCDE26A82337CFD5F3B580B27A7BD455BBF87290F97517340AD7D9B3663949 4230B06522990A72E75766FE24A1A357040526094A4120761FBE4F48CB00BDF9 23FFA5E1D4E321E73C0BF6EFE70E24003DA8B3F6AB0F780E4B8A0B6A0D1CC84B 82848025A2F2497E786B92548E99965A7498B01A37E06545591F7A0597DBA099 DBD625FCD575B070DDD1F1BA0DDDD13D0047A2E3B8B096A24733285E8D6AD68F 125883B2C12955D676CEEB409E3EFC732465DC047DC25F648E2D9562ACCFBBC8 2A544964C807D020BEA5FCBCD10F4264FCD953C31B3DA6F140B8D309A213E124 925A38A5F6E9B0B2F805F2A3C535F30099D4A510F53F8934266BFCCC2C719B29 72034B5442E7A4D1FF27C00A0341C42E15F4F513D72C00D82BB33A8985631CCE AC64C2A533FFBA17185E8FB4347D418EDE7D172F987E5D72462E50F34BAEBE6D 2E0EC8667B78ADAECB23A78944A20D623B8344D0D529C48CD6D377354C02E8AA 9D6DD25944665E1D33DB9443ED6F8CFDE7317EC8FF2E2C2203C21A1F28785ACA 02481FE0DEC26C90AFDAAA8F717DF1E89F925A143E4BCB3138C86334B38BB212 6DBAC110368DBD148E5C8D89CE21AA3E58968F0D04085136DAC2E50D7944C543 5B8E23F38F99FAD0B0F20404DA0D726B6A1A7F3000D83C3B9B6E24A52234C0A1 5F1DF3E98F2BB67EA1CC3C3C92D2204724863DCEFEC42723505DDF5D926C689F 7D871D765DF0973DA7C6D8C4949576CE08CDC4EAB7406CD9E13A95EAD3687D61 C53835F2564E7EDD2C8636039554CE64D2B9F7B3E35C6B295C581C375D3C960D E6C2357F041EBBBC733E67DDACB4CA62400614336A3D58B017B916F8EEEC040C 91BC1C86CDF4E1D112E964F0E96DC06B3DEBC6DF6969625FBA6F84C07A96BC99 56AC2725FE232A8AEA9BA9B643BA46ED6EA4B85984D9A5C11B749B2737AFBB5E CC7A497CC39B861E96442F90C573F41E050DB1792EAC6328ECB576132F11DDCA C2C8BD4BFFEAB294118F587DD0C92F0FB473A095BC99585C03BFBA8BEE9D2ACF 2F5D6E1C797445EE7118C60FE9089D205190DB1DCA6FF523FB9F07449047F216 2EEB071084F60C458D2C8E97F35373B88E93FD1609E90D0AEB1E00419ED72B7D 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI9 %!PS-AdobeFont-1.1: CMMI9 1.100 %%CreationDate: 1996 Jul 23 07:53:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-29 -250 1075 750}readonly def /UniqueID 5087384 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E394A533A081C36D6F5CA5FED4F9AC9ADE41E04F9FC52E758C9F45A92BED935 86F9CFDB57732045913A6422AD4206418610C81D882EE493DE9523CC1BFE1505 DD1390B19BC1947A01B93BC668BE9B2A0E69A968554239B88C00AF9FBDF09CCD 67D3B2094C11A04762FE8CC1E91D020A28B3C122D24BEAACF82313F4604F2FEF 6E176D730A879BE45DD0D4996EF0247AEB1CA0AB08FF374D99F06D47B36F9554 FAD9A2D3CE451B7791C3709D8A1DDDEFBD840C1B42AB824D5A0DFF0E0F15B0B7 22AEEB877FF489581DA6FA8DA64944555101EB16F7AB0B717E148B7B98D8DBFD 730C52937E226545CF8DC3E07C5BA30739BAFCD0F2B44275A6D503F582C0FB4F 449963D0AD2FAFDE33BA3D77BCA9D1DF878DDAFCA2E22CC4BACD542B282164C7 97C2BDE318AF9D501CA21F6E662E7AAB75A5F24D2C182E598D175D44E88AB19A E7CD59584F95B389183EE21B525BF52A3F23C0FE5383A5565A19361D716F508C AAB78411CA5A4D27552CC1C435760D5A89D535B71C593E755C616661363308DA A683F54ED0C23FB2C225A008392B0B719F66F11A946A090B7C00B662A3C69599 B4ECB0CC70C85C4BBBF207E0026F6C7A19F2ACFB7A60804FC98A4BFFD7BFFF2B 9529E6D9D4238002BBC255BC62959D6F3381FE06E0621B879D5FE5B541D45A1E 759A6E7DC32B1D1632368D09A97039DF255B6492B1B2B7E2C1434E8306ECA7D3 5A79B6D614B4979F10988BC76ED53A5F45315CD7DA216221F842FD0F3E050DD2 BAC23C984D506D8F7D614BCB6B244F5F41321549BB0BD041FBF3053307168680 3435E9C947D44CFA4E532AFFC2F51786C474392926D6774713ACB70483F13152 A7D91E0D0E80668F650207E0710745CD19FE60F5A6B874AF8C98B2D98E243F2B CBF48FEFE1B99B38346719123029632B6C8EE967102B21ED2B7BD61FA18DBE8B 73E093D323E5072700C40AC469BD27AF4BB6D8E9693A42846627B3C067F9842C E822608BE9DA50970D3B0FBB375F9E4AADD0A586EE0B4ECE885E81B924882262 B7E9A6D4567E89BD29BB4AB1641E66DB560629348F64BCD4FE0BD375BD967BF5 69D77A8BE7C05DCE5136CF0CF4AB7560C0C4C708AA5F6F47EEC3D38D379F7160 20A8A5AD3C9E70EC3D9BE1FE8FCAD4879F0E85081AC1B1E9EE3F2D50A9F9513C C782A05161ACD58635A5261DF8A2BA1A9BF6F14D8E3C0058A0EAA288D5D9976F 8FAF3D08E8EBBD1DBDEBABD7573248D70C3F1569549312A321400159DB306DE2 8377D145858E5FC55FC1E97A59DDA401BE73EBF2D53159C07E7175B92A2AAA03 F3954455A5DEED7E2FC6F94E460EFC249A3DE2C55EE00C8F2ADEE6BA36A9809A 4F5576670C99E7003CC85BBBD1679C759B666157383F885D88A335BFF4C850F1 5ADA8A8692159DE2CA5D15E6C9A38F76A1A40CBD0731895370EC29B6034824A8 E87885732BEEAAE0987D6D1D335F829F8B1221BEBA3C81D35395CCC974C934F2 FE389655336F9C5BF80BEAB8211635E85D84DE1CC10FDA8AAA29B21FA34FDD1A E490839A80A543026F150E8E99760F8CD880BDD808F23318AB4B8BF5715F77AB 47DC86FB659CF7B4BF74C0D83393A577203A52B2083CCCFEA67A58EA4BD32B51 67231BF74ABB65B38ADD0865FCC2A248C30958082D6BA18412D482773426630E A9B2DFFFF9744CDA8055B55B4939BC3DEB6341D80145DA8C027867938F0ADCBB 8668D896B26E38861C101E2234DD484FADFDD5EF1C5B61DC05411AA882DD1822 71D3F573A8DE6899729A793249B2AB166073ACFB95DEB18EFE675746E932AB16 D1AB94FE61E86CC3D854B8B85EB93B7D65117738ED45956AB95D728DE10BE045 B03E9B6F7B8B76EDBEC26C7515C352E23C3F6BD2ED56917B8655A4F8525A8925 F93196F30644DAF5C10209A99979842DF909DA8F0F4CBDACE67B6FAE6FDE5027 ED9C57C54EFF6961005AB9DC47236AF9A892C497F0C67533E4382FACC0954648 CDD8B17DB63A3CE480271DEB11A2DDB41E6F02A5C09D3108CB90F3CE9AD6ED28 17C347441D0AB50778835440C6B80FEF0F252171DFC577F177AE2F04C288279A 6EB28901F423CD344C95CCA83DF9A21DDF06DB3D4E118513CDCD1F31401440CE 665B322A62D95FDAF86C3CE95F4D89646B3FE4876900E9287D32469FA54585E6 5E12D0C8FC22E61DFB1FFE7564CBE6407B53844D1C892B12857CFB130C314B1D C340491B08A14B1CDAA7038B339013F010B123E649E5B436BF663B26E6DE099A 933FDEA4235BDD0EF801AFA3414560AD55CE7644F70B64D97AEF1C2D464373BE E7612331344C0C561CDD66DA9D46E988BBB5B269F2FC915395D883879F46F17B 3A0D61027DDA725CC68DE53C704FA49D021F08B501C1E3F6C2250FC4ECA543BB A6DF365F954C439652EDA5A41FBB9C49D3593C456A514441DFE34BF3EB4F4C35 6164592331E7BFA233432CAC00A7CDA0DE5F4CDFCA825C70AAD2AF2018C577AB 38021C80ECEBF1CE3A4FB1A34C9CA6F87153D75472FC77DE326E7090FBA49BB8 B2BB6B8BA87BCEA65C74200A4E8A865697E48ADFA206F2D87BA95560D640C9C4 C1E37F72F92EE0EFC9584B818FDC8F4111F99D7C8E1FD9F144272BC94B9A75EC 36DA0B8F6CA80EC771CDB98FE2BA874724E02E8E2E22D2F9681AC1859A4A5A3C 6D848E65C2C459B0F35029F67FBF76D315DB2941ADE5380264F17688BCC36130 9A9126CD4462A1C4CB7A4C5330BD25B5B1AA1039409D2A3544434CA8CFCE7F72 0818942232FDA05059CEC1BF1A79DF3C4BC127D57BF93B3C02F9CF797B50CDBE C91DA09FDD979F39F1C6B68A9A382DECEC4791C5357506C846BED00FE12D0803 E0226274AEE32DB2D1B6C0E04C0FE7660598A952C0141E5E8CCD8C7975C7D5F8 2AFF64E7DBF31A6DDCB7347247B1A0D85B2BF616EDD1152EEB7691AAD322A5C1 E622F3F84285170BD6C9277BFE41361452A3C5093E2ACADCC0B947FC56727EED 8DFFAC88F027B78D39324A3B16A4491E7A16FB4A5CF5483D1393ABE1919A4776 513758700D669E0C427B81DD746F9D8218AACB366B850A13B3C6F6AE1D2ECAA7 79A056DE4E7BCB4D753E70C5A17AFE8ECE935C41799E80EC3CC616F0A787F714 24DB2697A52B08198BB4F6834D676C2593A148959048F4AD8B06C003CDEB269E C0FBB7368182A4F693518D3E3C855C24BFBC43721004571358CC68FAD8D09F56 BEEA7391E70C2CFD918FF4BE01E81A816D86EA8D85C132ED46BEFD74B7B189D8 42FC3E2CEF330650594C5092870C12BE7503EE26730B8637A287BC52CD965E49 B583879C2F5FA1D654E7E1AD856DDF35EED965D2285CE09C25A306AE2B5F2DB7 5B5777C493553F6BCF4248F393D6F6A8353370F551F6107EEC72B8880099E51D 9E267455788A2DF75945E8C78160B2803E24FB2916DB0E6AD52C39CCDAC249CA 7835C3E53390A2EB8E8B971944BB3930A98BB041A5F930395C035B49F0B68BB8 FFE67C0A5D672167B316ED3E9D7DD0A509DE592526D9E0FAC2892CFCA96D1A5C 915A75C7561ECA205C997BBCE06028BE8C4265F19940404D835231B5E45D9524 144A936781045479C8C20088383F4CAE984E51A536B3B398DD5F02AE1055F9DC 8FC5CE2365215AC78CAB0A9AEB682E3EED840A1CC7E1EB4959B3B540A53EA196 4D8F023FFB5FCFE4977AE76910FF6760CAD21D666EE3897E5032D3D92FDBB063 4AE25AF2715B502E4AD5754D255ED49D356615823E1580DB4DD719B3DC0DD6F0 47156A88A5560F0BC7F712A7A0D723BA4B1A71261B0FDF0DE38FBE6AA1A752B4 53F974FFD3A823E71227CF8221F6B696CF033FA0B205C5B914E7518C3A0445F3 C1314BC74C757F35344D66503B008CC85AAF8ED947B58C348D39E2E08BE4BC8D F10D9B37CC9D16F9C2C47992DCB840D6D43FB8C1E15580ED24157C1AD8BC5455 0734E3C829C480D65569CFA079F0CE0493D43EEEC310662AB34498B2700EEB1F 4EC00B6ECA03EE0641CFC69B07F6471D0F94A7CC3DD5612F724D424C4D54AE12 10F0A08E92A423486B700591D0981F6AB80D4CC20B993025F52959B3379D6B53 1999B8F1767080141FC2202B9C189C5253FE3399ED8E0915E8968F1C3F110307 3AAD4AD3765247A09CE23ACDED91121174BE981C4B9DEC017AF575672542 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY9 %!PS-AdobeFont-1.1: CMSY9 1.0 %%CreationDate: 1991 Aug 15 07:22:27 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-30 -958 1146 777}readonly def /UniqueID 5000819 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D0037D33F24E2FAC2B0009AD3C8350CDF8CC 65BCA87979C36D14CB552E9A985E48BE4E88ECA16DF418749AF04FDD2B0E1380 D281BB2476BB45FF30946B247DFD7F57305FA87E50CA338121C71CDFDF927A9C 77FF14CB4A1D6D80356FB1171ED38C37702350497B44E42CE31DB2F493807DAA 15B887C671199A54C4C1294BC520F5538C15556BC43C9F62342B121C6DCD6C5F 491DA47FF360201EE21C08A781ED0589A6DF91B99FE118B9B29E4F068672E52F 1A06C514D91C4C937D4E642503392B1CD1BB61B4D03DC35E012508F23D3F3933 910C248E2DB420748B6F1851C1ECC0DF86FE5371BF49C32A36E78FAD1A8F50D9 31DA767E72CEB29B22D821E2C4083F6DFFDF04C68DBFBC75C764AF1C4BE6463E 04BDDFC61F50CD52B53D37DB6FCFE38526CD7B5D11BFC15F69BAE3DA56D5E339 89FFDE3189DAB1E89AD29FCC9C86D99561CC2720C3D4B3BDDA12E1E0BB6DEDA0 1D4E2B025D477324150130AB90DDD017CD981C6A07708F63EAF1DC16B91953B3 363C044E5FA8FF8F51C12CD61C0E969C3DB87D97642ED66A9C55E9B1745EF07E 730E770204B0A20F8931AD33478659D95ED46558FACEB42F0B6A197C26ABE694 96A3EEBFBCB19A1D8EC1494ED3A420B26A73F4EA009EC59A1D63AE213AFF720D 11BA9B1100695434701BB3C4879B747C71CD6066E50E6C8324428062BA726493 75D076D812F0CE969BE68DDC989ACC8D94DC412EED59CCAAB96E3EA41D6D2C80 061AA91054C8324B6A56426F27504023633F651CBF53F74CA6566916E617A4E8 22CA1703852B6A44147BF995070B5CCE7DBC47D3BF6F12ED0032C285D3F94C88 7B859118BCD9CED53379F271AB5344D74585C120343A608C4480AD53C0E5DF40 0E255E33CE17F75FE103A528A7466222A8F24F76F5CED09CFDC593CC085756D6 D787C8D477B635A7EF207B6536AB6AAFCB16C287170F1947AA395FAD1B1B7C23 924198477E36B3FC25413735504DBBFA6A5D6CAB51D90334F387A6C27F206A77 F2833030DA3CFE20DC7D9F90EFFC05B3C6732E0C7969C31B625783927FEE493B 10651D569E80DAF5228D6C3577A791518D989B8B3016864C673D53E6530FEA1B 30795603DADD13D76A9A191F703FB900331A9547C198698966187454D42A7471 62C4B3F3D46F90E9F9C489738526DAE4C67C7A6097D45695BFD8163046CEEF4F 5444E805AE81325942F8B13D506264E1A063367A24D26A7742901F1CAD12ABF8 8C9D201C3829E992F88C4762D391D5ABC0EDE9C2B25EDFF4F321C9A26F4012F3 2EDCDDBCF82C8E7CD8359796342C0C3E32C282048A34859D7CFF91B25C350A73 D255B1009337D4FF69376FD2B6B92D56D10AF34D73404FB9A8C274FF7CC69C1C CF81DF169ED6F44C4EABA83ACD7AE58848691577 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: LINE10 %!PS-AdobeFont-1.1: LINE10 1.001 %%CreationDate: 1992 Oct 23 20:22:05 %%RevisionDate: 2001 Jun 05 20:22:05 % Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.001) readonly def /Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def /FullName (LINE10) readonly def /FamilyName (LaTeX) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /LINE10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 27 /a27 put dup 45 /a45 put dup 63 /a63 put readonly def /FontBBox{-150 -150 1020 1020}readonly def /UniqueID 5011940 def currentdict end currentfile eexec D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9 1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538 497544391FABD08A483766E9B5C7ABA9A537C053A8ADC16DEBD8B5C9E1EDEB21 E4E89B0945C0737B96F0194585BE0D9B958F1030EA84710C31971BA7E93777C2 0658995DC8702442780303E948079822B9EE0C531A5CC49578EB9E683CB77495 DF613FBDC4536BD7A90F044B7EEE6EACA2042539F62789EA39AA16433AC4BD0F 98AAA04894F5487C279D2766B50B23E16D7F1023E387FA4165DF522DB290D390 B669550A43638C3C9CC38C7667A22D27F9DB1542620110A8671B2713C8DB93D3 4C500474AC190831F9C7441DC4A7C27EE88DAEF10D7AEE6FDB22E7625E802B4C FCEE0DC79988734BDA39B9896B1833D4BEC4F91DB321F343F57B3FC5ECA13AEA AB108165934BDE65D2EB5A62BD395ABA20F0389A1B71270649CE1A93B29040EB B3166F9EBC3791671B6EDCEB171F3CCDAA90BBD5EE5042AAC2AD6D838F79E008 43845E5FCF0B3D71E21543F491832420B45492BFE5D3E278268908D3CA704A48 AF6C6954A03244409C49A178680D62BC6277BE6A8CF4DFFA69775BB8FCFE579F 0DFD00493CC18A38F7AA197A43E96F5986EB21F77B0C955332C87B18A5F72982 E3D0B0554AE03D86FF10237036E2CBE514A9BFC5A4F5B2C9E5667EE2B64AB536 766C45D847C52B75FCF57652200536319F09D0FCEA025A5F5CA61CD63812083D CE11E82271251C41D0550CF754C13A32F847CC7ED53C14742D3C5AF8E412E542 DAC233E8C9FA03A4ED4BB95A9B831AF45E02D31003517156A429F54B6E1B1727 520DE349B22A26C73A2D3CCE0733F2E594DD8E091E2464A31B86C81CF3616399 F042260B75E2F3010CC15E843A7F7388C01BA40AC4E4F1D50059A55BB5111089 F167B796709EE54D544E1AF445A3E791EDC71A6D6F2F298A20014956D52138CE FB138CE99299A8B41905FF9B7EA66EC1E78A10F19C7740CAD7C743C0DEA93C81 119C0A0D93E0313A497B565553030BFFFDF1038AB73199E2F06DEEB7FEB094A5 D555D03E6EF9E46280B05C62894AE7509863FD7ABAE7861FE3EC0B3C5E819BB7 98EAAB1B748302393D8601F17F1CFE6A1C55CA963E9AD769F79FEDE2BA6848CE 1F379C9E6A86019B2836DCFC51BC1D66673EC14702FA43282ED87DDC9E86406D CF1355CCF8E393AC44B7EDB973E6CA58DEF771A6C97F2332AA04A1C661D5C170 3D5256D7C3CDEA10344D7995C47EA6781558C0B5F079B24F0DB9AF52B652524D B2E57E777DAEBC959B93AFC42CEB9F0EB5D7736DD1A76FF4C92EB275BF66EEF6 A701D87549CEBEE19BBA255923270DEC44DBDD1C622D0204ACF56C5EF7C76157 201BAEAB952DF3BD7553F5DF28BD2D25D09D54DE774EFE5C4BD16F21B2D571C0 4612E8DCEBDC77AA659B0ABD9BD685B35D9D9FD536DC594A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY5 %!PS-AdobeFont-1.1: CMSY5 1.0 %%CreationDate: 1991 Aug 15 07:21:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY5) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY5 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{21 -944 1448 791}readonly def /UniqueID 5000815 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D5FC1B2109839E5B52DFBAF552B11EFFB6A16C F03FB920C15AE724EFDF0CCBF00A838D34440FF9FED532F44036AD22561184C5 283722DDFA7285E62754372D716D704AC0E00B2F6AB67154241C7449AA047833 94CEDB08E8C92907FE72A0B05AE36A7B9226ACD6E7890A0B528FDDE84A950FC6 801DE75CF2E739E9121149CCB8B1C87A106822648D84A3D3FBF295EE6C4BF403 BBE9A1C1F6DAEDD1E642ACC486E609703D7612BFFD10C324F5DC710811F7F614 3691B400E3773987424C0D2B0D8A736873C6371DDB2442F05E018A2B5CA9A4AA 17AABB95D09E5890CFFFED5AC01495D89A53D3C9AD5A9C23D5050E53AD0EDBCB 74CFD3E2297B2A8DF7D4FE91255B64B1A27882D0E91114C042D0F291AECB4EAB AC972162377FF50153BD28D6BBCFB47331F80F948DB61A4D3554AE1391DF574E 7DAD8619F30B83165A7B3DE1186D47F66A2633F8872BAFA53C3F179C951D3E4B E45887979E4F54221C8AF765534EE1A40D197F6709CCA448DC7F5A440B0FE0EA B6F8B8BC7D779FF1FC042051A5B993605CADA10B3319AC65AE38B577EE04BE80 D75AF9BA4701849C3C6E730062B794E730A8EE16001DF8937F8562F7498A42D3 29969FA66B8D10FF51F5F9C785876AF93182741AAB34573F1F5F6C6471223443 383C319722332EC39F82827B6BC98594667F65D63D9F782EB097526ADE032F71 3AB91345E1461776725681A8DDFBC6B7D05E060441F8506215655EF6B25BE656 5D74 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: LASY10 %!PS-AdobeFont-1.1: LASY10 1.001 %%CreationDate: 1992 Oct 23 20:19:17 %%RevisionDate: 2001 Jun 05 20:19:17 % Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.001) readonly def /Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def /FullName (LASY10) readonly def /FamilyName (LaTeX) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /LASY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 50 /a50 put readonly def /FontBBox{-19 -192 944 683}readonly def /UniqueID 5011949 def currentdict end currentfile eexec D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9 1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538 4E7DF30628B47D6551F93A50553E592B5E1540B411A313F39E4149341C981D3C 705F8AD7782F59531404B3C001D8B882E0C5468D00B26040A352ED823D7C8DF4 B632A37A034C6304A39F28739AC3D634CDC707B53474E63135975E7F0FFF2458 99878B3A6D8D7AC6F2A2728768B8C2226075299B8CB08B76AED9A00BF448A646 87014E8B1C1723204BCBB97BF0F735E436F1805B4026CA792A2464E1FDFC4385 B407DAC19BC7769BBEA6BDD0EE65133044D18530C5A3915AC9272AA4A7FC35A4 93A7A0CA8BD1CFA4382085D949EE819A51062591606ECEB5B37419223CC0400E 158F1A0849868CFAE0F71DA6B4FA47A636EDE756530425A6BFE45B8080808B59 6B886D033437677B151285B047C84C2E2FCB71CCDF34E20E925269E5F1A210F0 391066823D8F21E03746BF79AAC6FF91517631686722226462D6A9EC5FFCC806 B959AED95F492481324749E00CA117821C347F9B924BEC8C64C954570252E909 5C33AC8B1320BB1992A88C619DEA7A8FDDE42390EC82A07BD8BB7F0014A41EC8 04225B5063D3F04723F51128DE8ADB79F62903E1955A7D49220223CA34FDC3EB 8FB71700EB9CC40DF747C4CC60AD11D3FC038CB2051F7E97CF7C7F7D0F49CA1F E0FEFCE664544CD1F7C23B05BA649D373539E7BCC761611C17489084912F77C3 5FB3BC1E91E2B4A47C27BF4989C7703E83C5A505108037DE5006D4F510B8FE1A 570E42E4569FAEBF66058F9D9608A771BEACA2A8AB629DBE939CCBBC116E8BCD BEC3A33CBF185A68DB60CAC5B21AF4D9B46B3FF4FDFBD6BC3C8101BE15E79245 F0CF8F670CFA19ABC08C34D85B10C17190497EACEF6E401F322B1E281C1755F0 BBF9838AF83A0A1601D78E78FD599819762347A77C71374AB428093048E3F1C9 40CFD63B86C7F70BCD2AC3092DDD3BC91CA714BA28263EB863D5E6E2DBD4FA08 6B22C1D18B16D7042219B9F0BDF5BF10AADB658CBED51C8B272E4DFA11C5A603 8B4A437EABAA699B86819EAA072F7D90A9CE1B52287DD3D26C470AD28C07F7BB F6BA9450A2EE874D68A3681162DCD5968BA36603E7BEF09AB1621FD7315CCC00 65333DCC00A2DD41AA1F60E1AE9DB95476A21A15A1925C351E1B5C01750D8F43 E979C63CC3E28A952C3E3C205D830AAC390D243D9919B914297F5F44D7CC8FD0 7604E9B24FBA46D3D7A63F87D704D55A90C06771B0AAC17CECE92A0CE0A26E0C A30722C770B7A6FD89EFF7D09A4F61F794966D65331A12CBF82D4FF7B2A68B69 8A15F1D5CA04272AAAC480AD8371256947302F462234F3714742E820DCCDCD93 065451BEBA27A609A74EA3DFAE847AF90BF42D2202B5F11BA07F809932611743 210014C92466F6016C22 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMCSC10 %!PS-AdobeFont-1.1: CMCSC10 1.0 %%CreationDate: 1991 Aug 18 17:46:49 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMCSC10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMCSC10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{14 -250 1077 750}readonly def /UniqueID 5000772 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A30EB76029337 900ECFB1390CA5C0C3A04528044F266BA17BE487C79B94FAC6D6484684C5BFEA 87BCCC77D40AD11552035E95E3007126418ED49B68468B38A14E88E68A267B98 076F1C9769A5AFBC285E5B158EAC9F926F1D6C0B8F1D57D9C31D25AE27123518 9D2CD92E5689E0213089BD268DA5E47525CB8EABAA4B78A15AEA34705889AB3A FFB8953B5B3482E52BFA0940630ADF8C0AC2177D907324299EE980E850F203CD B627962F43D5A678C44243CDE97853BDC6AB45FD5C09AD274DAF89929F583CC9 CCC24BDFC68B92111055ABA5F26D2DC67C70906F71C2957701D65AE746A60C30 40E6CB24B97FCDAD0487AE38A201FBF0E41BABD2181981A71940F1E707F91E5D C8CA50CB16D8702D188E56D014D92F76CE0B52ABDB9110E32438D2BBF3E6A40B 7B005F10BB437812CAC6ED2996F7606DC962C4FDE207FF322782C343DF44CEC5 FF06A55C630C20E9AE1B0D1C5673753C43BA0767D65D1B451CC6380D8BB3C4DC 81E8FD8AA79BE993218686F29D3CD925566DD587F541A0DA1B1CC3BCEA2E6C7D 5E1016F6917A871F1BBAD96AF9E867735017119A381FCF33EB2D3E1E7093FD90 CDB0CED4818CFD9E201A03430CEC713620BE0D3254158931FB657C6AD4B2482A 0E7D070D7497892E9E942DF58E88CAF0C8221BF36BF7C435BF2C683A4A2EF4CB E85820A8AD3486155A40143011BA9D76297F46DEF69ECA4596D6E4CAABF84091 22A96A4BC78A8DD072FEB759A68A44BE1164638B6D952147EE3C628F9A022060 1D1941E73310943FA782532ABB1116532AD67AEFE0758C051241E301C7E13A98 6447EB0180BF6799814BEA4DC0F727D0A40B7BC3B1269CDE174453D6A3C4479C 146001CF717DE25AC1BE5AEA5F2F1C17719251C429D3AED19EFB5A6812F33CB8 554D92C7AB2C51C09C7EE0E52CA7564A240A01AB9C76C921023F673D8CE0B0FF 566A0D116E629B7D731BE08FDDED898F6696796873E131F60F56A0762F317882 6344E36777CF3D8B4E0DFD838F9C0719CF6D405E00E0AC0ADB5F1AC0C54F238F E074EF818344CE5D88F9154D42BC6DBEAE6FFA65C7FDC6AE273260FEEAB53607 47D391A980F286B1F1291004DF42F12120B70A4189B706ECFAE25047E360733D 4BD20FFB785A222DEF2C486B7ADDB19A74593D830A6EB95A51E10B2B41D9C298 D0565EF05F0B48D91A33E29BC87890747D9479E93E3CE4120E8668F00D6E9C75 74BD6B5FD8F2238E4CE22205C8998D774C24AC8E23350164713200C4924817C8 B43CEB84B4DD680BA613D10ADDB9209058FF11775CFDD4390463DED07D75BC88 9CD58B2D8BE125A19670F0B1138FFFF6D9DE114323875C44F7390C62F48FC111 75CACAAFAFE1586DCAD5C0D4E545EAB89AB8BA7C2EBF680B5D8BAACF0D8593FC B8C0B9D74A3A35EC45ECBD20E041D924C95FBCF37723C0869AC6DC1FF16EE9A6 59EA37DBEEADF7E0C411006DB7A9D6ADAEC65B34B0C4BFC92FAB49D7FC59AC35 518EEAB178495B9B4D795BBFFC9450D26B797C2DB77290808C053C849C2EDEFD A25EE7A10108D3B7DD893ADCD9B36E9D82AA29CE8FEF874022EEBB67070E05F8 9D6DB2D334E62C1E18D78573BB0D32A2F5F0BB28D7CE788246DFCF51E5A05993 C9CCAEC3840C3213A56C6923C636330A51F3B4F4BE2C85691BAC4F9CA167D3E2 2E12B15A714222E490B7A1AF0E41DE43331CDC30BBB82013309296031A249BE2 E581BA0C282E7D337830E8A001DE73F8F8EF838BD040E758FA898C3D55AA5159 EC40EAB1825028AF9F1676B0EDA56F0CEC4BE49282C59378BAC88BEB50274349 6BFC96B77581339E2C4D1E4258B396555137F81BD82EC784C242795D907C156A 3453133EB113F8C18D8F6104586CF37CF3743CF23E672217B94527AD3A971F53 EA3EC2BF4D5A73E60D323CAE6D93EDDAC9D5513556F0D19240CBA9B6DB6460DB A38606195C5870DF523BBBCDDA512F198A8A083CA7EEC40BA641E4EA404BBB8A 4C43C1CBDBF61C9645F69EE2370CE4BF942969E6CB25580BD1DA29BC869C99B6 DA74E28E3F50F0144B7AD5A9CF347A042028FC71C67FE88612662E64B9B5AE29 5A53764C8B0CC5F5C105B1B07F34A8D16F4A412014F14B513DFC24389ED6A3E6 B397A43074AB46585DC0AE0CD934BF896C99222BB40C1471C991C11FDC4D53B2 3CADD271470E55BB8EEEAC640B548880472324306387413C91B942E20FA45FED C3377F53DB87FD106F9D9F97585F771D8C43F27A572A69618217593012B71A41 65E55B43016760242D48DC1964075F19B96B9EF16F0B13F7FC5697BA0CFC09C3 7480D67293EA4D097C210FF4F625857BBB46A615254525562DD5E8B48CFBB2D1 2541D4601A66EA451C49FCA2DA80172C9316DC400507623C2D94DBC5DF509CA3 DCF85082A8AD8419AA231B0F70DF0465EF0AC15F8DCD5FB0F264036FB123684B FEF2565D8B739085E48468CCA64C0D05D367816932A6AB85DE215A11099F35EC 06FDA58F16DC4C9E028F26E3E97B5F0E73DDF8354BA327B9DB3FA77052237B74 3B21BDF157EC4B04740CA8F02C22CEABDDA8B9E1869EE3A2FFB484CD21FF814A 55FEFC1744DC090C4496280F3DC62CB6E5CCCFD91D2FE796259C845121DB546D AA91839D23209B18D2466FF8C03820232C7DA71FF33134E01A5071272876D993 65FC4A16E658BFD4A17BB52F1E3740EA756D32BB4C214D44B0A06826C9C9D26E E78A47015788957AEE037D4E9BCB294858804F6B9E2D57477BCAE9AD4340D288 C09776A083AE709DCC83AA39C9280C30B8C51F35AA0939364C208513020C9531 98AA896615225E71791441C5045A5314166DD1220E2A4931684309ECCADE2DF9 732D40D950AD8D48AED1BDA97E6869FACBB9D4113F69A5674007ABFC335D34EF 6BACFEE1B6E84DFBA41687F9830EC5F8BCF94E526DABA7CB1C327313994896CF 356DD6ED3052C49F2C1148352DAFE86D170587ED814C31A7437CDA2C3B1E0C83 393C168629EDDAACB09871D9E9775434B34EDB32051AF11F6B36780FD258E5E1 C0C57D86798943517F1EF370A6E7561CF346E6C9945DA38245E573E45B2BF6B4 DC5ACE0516F5279CA8DE412A8A0F541D2AF9D01CEBC4929C19CD1C9F08FAB761 1229A3DD12FE3357CFACCBEE2F6DB9E7A2104608600C7346B61CC2BE1DF02302 3702556184A14A0F45F56EA99E78A03B44456331C1786EA9C4AB1FAE480F40C9 6CC35F6BB12D7740BAA4A6B0ED2BA58186457AB63D3AC12CA94FAE06030579FA 2B44C17B8BE8C9B1C9AE288AC3FC7E2DFC029E539C3ABFF9FC51C2BE3C0E7778 1C77D90A3C20D7E5D652AFF2650026857BDD5FB3CDD108EC585D79ED83ECA82F 33416C755B9116C27CDF451435D35312BAB62DCC9BDA782DA7BCE9645DFE7BEF 386BEBFF8053CBF4B030C2B771297209E5D3BBFD4D153D87DB7039E4A5BCAB4E 4F211C50EED155D5230D6DF15901086E4288B35E678132CF5155BAC6692F2F54 CBD659734B35044AFA118671DEEDA707ABECAB040504FB463E0170761E5F7DEF 8ABD51A743234C25AD2A48448115E3F349EE95BA3535C4216F197EB31BB83BA3 C19504D8FB134D971247ED3557E1F619D358F612CB0BEEDD6697D2B4DD2524BE D966D4EAC627D9F0970FC352B43FFDA856E64BF56A2526952A945953C7AFE728 4A8BFD1AD11CE5660A58D66B0F95C4CF7FD005E128447C1211E82382EF14CBA1 6E8CA6725D7FC9B136A41B7F3293714CA63AA57D155D07FFD642496EB259E063 771C68C63BF6D20EDCA09617A1C85C8847205D813CC9D8ECEE408D81746BCEFA BEC41A11092521C6D33FF1EC1DA5447DFE05378A9A19F7AF367F4C17BC08AABA 8B02C95E3049E168EC53CD7E8E17FCD629897537DA34F86F382B0DED600BE579 5EF1580EF30FADC45E32D4220585CEDD8BB79C126B404CBFCE6325B984CF5526 D04E207B063DFA677665C9243207480AFEC785006783793798895684696B24D8 08061C326A08168838F913FE90A6596264728DC19CB61238951431AC890CCC22 6ABE905766ADB8E26AE23B0F0E3019D63204FE6D8F46E47D0A09815781603971 51BDFF14663F99EB73013062AB69DB68F6037D9736941B01689E24BFA75A2F34 37779A432E0ADB839BC716DA9DCB065C8CCEF1EFFF645483C24B25136DE1E852 D3343F58776FAF3ABA98EC68DFC383D6433F2056A0461E6FFB53440921084F92 C69EB70F9F89A33A86AA0CBBA6B43B02F707623848964582D1F62DCDEF3392C9 3B36A599AEC8D774911B3B2BCA8673F3EBC6E8D3BF339C3D827F7547635A96CE D69DEEF1E33A13D935D5DC41DD8F28D03134C17BB44442AB14A130C956CBA5B8 67BFB0CFFF30228185C2BE03C51E8D44CFD1CD6F1FD11AC8AC60BB022D0F65F4 21EDF81E416F637FDAA1149C9D9110015CC8EA4EB38FA68C62409D0B2E5BE847 EDEC64729DD870ABF16FDC757A4BF4796F14C54D612CDA6FC1AAF6A7B010F161 D7863CF85310B984DAE89FE345BF30B1DE030F994AA2115103BC7B6790E89070 F15A25F6EC1460A4E7F00B47F96FE2940EBC87A1A553DA7146BF623CB059378E A76F7E5C0D5ED433590EE2E7C1C35AC317733840B1D13FBD678F166BB22CEDC2 E72FB170888BFD2053D233581C6F4B03378AD0C4B7C1C76C8E874CE580F81C44 1DA6DB99206AF8BE7ECBAD3CD704D8310B87E942E390EFF1956A40DB5D388016 08936A0B86682563AC0278945B683825C1CCFA42D16C4F120EF8DF69AB96F15E 726C780F642E52D5EE64D746BD927F5B35B23136AECA75A4A303EFD29FE445D9 C21D4C20400D04125FF396E7BB98218FA778E7CB0454BA4D141F717343F69CAD 243AEA657AA90B27927D325A01E6DAEC388520858F581F7F605BE79C28984785 FE6F7F7E48413079CC22D5E8038C54F46010475558930106C69049AC6857EB07 A7153FE96AA5EE693F1C092F13729AEA7B4647398CC4978076619E32AE3E73D7 751B600501A3CE494927004B99C872659D3BD7207C4568B90707B719AC6B0132 5CB3175EB257B5897185D9BDCFF59E8297E7B27D5D154390A29AA5688DB86CFD 9D87D6FBA93BBC1DE64BF2E94143AE5F204506038E197BA192DF83384C55E823 C7580B71BB5B4899F1C5C50649AB500CBEBDE5768FB73F664FC0C38321B1DD1F 8B11BCFCA47283FC00ED1AD4B59075B0B00A40B9DBD0F435A1FD101CF10FC662 C4B1274CE61F62C9E5CDA9B91DBF56223E23120FD6510291AA595C919B4E427B 2DC85433C18AE3546166 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY7 %!PS-AdobeFont-1.1: CMSY7 1.0 %%CreationDate: 1991 Aug 15 07:21:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-15 -951 1252 782}readonly def /UniqueID 5000817 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D251491EBF65A98C9FE2B1CF8D725A70281949 8F4AFFE638BBA6B12386C7F32BA350D62EA218D5B24EE612C2C20F43CD3BFD0D F02B185B692D7B27BEC7290EEFDCF92F95DDEB507068DE0B0B0351E3ECB8E443 E611BE0A41A1F8C89C3BC16B352C3443AB6F665EAC5E0CC4229DECFC58E15765 424C919C273E7FA240BE7B2E951AB789D127625BBCB7033E005050EB2E12B1C8 E5F3AD1F44A71957AD2CC53D917BFD09235601155886EE36D0C3DD6E7AA2EF9C C402C77FF1549E609A711FC3C211E64E8F263D60A57E9F2B47E3480B978AAF63 868AEA25DA3D5413467B76D2F02F8097D2841D1D215AD7FD2DDA714F19E27653 46EA5BCCE59B2A433D28430CED500C2C5AB3421FC2F3A469DE00506EBE65C067 87C93ABBB0C76CD0FBAE2E4A9F5028D3B49B1595B60503C1DBA773B41DA33C51 EF8C1BF0A64890EA830CD06F90ABA5B69E3E87311E85F6E46878CAD59B4B3B05 0AFDCCF5EABFE0AF57AE3B89A407E3B23C982E79AA68822F46EA64825CB1E415 84EF5AD6D5C8B16DC7E52EC014A1FE240E781DDEE6D9B54E5EE1F3D7A163ACAD 1A7AB62EBD305544E9B9ABE82B11775B54D1940E9DB877758E68032D679F3ED5 D879CE112E1E5B4289716BA7A05C8E9444B9F42950F74AE647797CDC1159F32D 950676EAC44283E3A8E265FE47B0FE652B4D108520F483342721BF3089924242 753AD1EAE1870B0692050516370A237DB8721E069FC7701C054DB6985EBD1368 8D66A0D0351988BCF52526EBB0B19C10B3C426F7A5EE5F688081642256E8C383 11017BFEC7079490D1A2D895EB52511EFA234F417C9A9B645EBEA7E0883AB9FA BA4859077A7E36674AA367C71A7623F788E869C738C3AB7592E50BD9C7C12B60 B835BAA35BB1E1250E3AE822EB0092B814E48FE9CCBAC60EE9ED36DAD1E7ED13 0359571E251840ECEA9EB1390715423F8F68218DE294F5A6250A695AED893779 28DA60BF1ADC000C1B95009F3D9B9D5BC89FD24C878BD5F125B2599FE5AF7CC3 9B90309AC54C15F3EAA94486957F4B0DBB0F041E7CBA43827C1E1FAE809AD168 4EC41B4B002D6AAA794D9B4AAA3877A82DBFBEAB36D86004DA1F4B0927B06CE6 C1266105D79EDAD10DD804D61F72E210855E135AC4584781143F8F1B7A948386 B3F0D624B1479AC54C8B6EFAD2DCB5458682F316A67906598B78F6BC60A5C95A 52394DC5AA84DD89ABBDB2B509CE0C7E2ADA50A6BE223897EE912BEE36150831 CC15BDBE789DA474A81FC762C1842A8311FCD07C0914DDD7113A17885E5B769B 35083E204D72ACDF2A7EE8400265A7452634D3AB6AAFA00F29998EE515A12633 16D8C09280A0C11C655EFF165A24DE8B0387D8D979FA317D25951302B7376CA8 05B0B268EBAB33FF622F065C0494F3B0B44216FD6B216AD614E7E245C9A469A3 5BEAB17CB8DAFB1F3681CA8894D8ACF5C13E641D2ACC9F68BF8077077075B65D F624FAD3EB0A3AC9AAB8AB69F7AD4B502E4EC02BFBAB0D1807AC734E0E8959BD 2A8F5986C9C772FB60F050F0964B7D5FC8EF1B02F1B614861F6AC4941648F200 6EAB72392A7D6EBC39CF8C35130EF2C04D9567B1F5F6031E428DBE743E6678AC 444BB47B7B4E90BE2AF2937A3A51C53548F829016FF50B461E9899F5AF77B6CB 99C71520A7C896AEA88750B63898D863C7CB82E810E6471DD35382E5AB5344E8 2D7229838E9FD3C81E63C89919EE49223DBAA6EF9E9EE6EF2D0B409729915EBB 13DF146014A2CDAC1DB5324019B7671782AC809C1DFF3581F7E9F7DCD277BF21 46E7B8CE6F3E1353E4C2571A7625459321FB3F474BFBD4EDBB53BC3329DE0970 99E93AA10829987DFDE1FED4A66E59A71D11D959B6704E707DDC139A7CE7A5AE 1340356A8D9FD0107EA498930D887941837EF9CE90C561E20DA360E76F5BEAB2 B95D44FC22EDEF5AD91F286FDA9235F32A1315C3301ED73DBC8B2C590DA0FBA2 FCEC3E37CD04E82057DBD4A22C2692ACE3E6E59162C3B51A889F7AC905D60A28 5E36433B99C0BCBEC2CA753D47F387CF2545DA78DE607C76B7778A801F4CDC10 2FD51D7DEBDD661CC552FE33BB20572FE8B7EEEE766044D3482D0DCCA1ACC9DD 22654E788C3078FC897F2D361DFCB898990F6A7307EC2D894A2FF293A1A56564 EE3BA344EF514888C9D8C527DEC63580DA90553297BDFB06AB381F3FE168CAA5 079A9EC9834A8DDEC7DCFE0FDB24A86A7C46BA5E12036005F28B2614FF96BF40 1D1E0D76E3D6F04409F4478604DA426CE133E3CB05FF95D1388B38A96FDF48DF D5EEFFEF7A4CF9F911CED9F9F4AEEF707F0111CFF1E5D466252D4147B2105228 880D85D4F6A12A4562EC40D629FC743AA6E902AF1B28089A0E86DF00ED803436 3F436BF099AAB3CCDC37DA01765D7F6D3567F310E26067220783D9A90A2ACEAE E55BDC60AC3DC901CDF493AD3A22AFF0F8754056D9150658D02910FEE3FE 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI5 %!PS-AdobeFont-1.1: CMMI5 1.100 %%CreationDate: 1996 Aug 02 08:21:10 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI5) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI5 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{37 -250 1349 750}readonly def /UniqueID 5087380 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA06DA87FC7163A5A2A756A598FAB07633 89DE8BB201D5DB4627484A80A431B6AFDBBBF23D4157D4AFE17E6B1C853DD417 25F84CD55402AB88AB7EEFDEDBF2C2C731BD25567C53B474CCF739188A930039 098A197F9C4BE7594D79442B2C8A67447DE44698321145D7689B91EF235EA80E B600AA8E238064F154284096C4C2554EFE8DDF13AFF8D3CE30E0999375C0FEE6 F992DEA5FC3897E2CC8B7A90238E61E41622DE80F438DD994C73275CC52249D9 F6686F87F394FB7BB668138B210BEC9E46415A1B58C990B81E7D7DD301143517 4C2A259D2A0A1E200F8101469C10D7D537B0D4D39296A9AB3F132DA9A3B459B0 F850E2B3A03BDCB35AEF82285D19C38F474FB414F8EC971B994D1C7DD753B271 2B71549DF497C665DF0F266988209D9EB616E4D9BA229FF984E7A886DB01FD21 48ED2E4859FD6416C2CE52537464EA884C8C9C2D1083E2B83BE4B766474C23B6 6E8EC5003200AB10514BB44D14CA700416AB6B2683E80862E7D5B49A05526A32 554BB23AB8B0824BBA198E3825CE82380CC0FECF46651E3E5D77F09465E73164 20342822F29572BC7F73F2C3BF95ED3BB6FDEADC20C6AC866C4F2C679594D7E8 8D944704A3C5D771DC39503BECAB89F34D8CDB8FDB91AFE21F3F0260D05E90C5 73E2C13DFA022C4522E5918EE25038A0498FBB530DA33B0AE238B1C6ED03FC04 2BFED8236E07820C5BAB411EAE1B31D93A2FA7C374B1725FEC359ABCB88E2C89 214529A263D795AACB0B95A3AB2F4E08EF350C282CE521716DBB06E5B8291B3F 5D4ACA230FA192F64BC902A4C8842C0F916F92FBD002ADD408BF0401D0284FBB F05D4C6DB631420747CC902C5E1617E6573612FB26C8378DF41FFB5048D3CF06 4893DBA48EF4B043D760F60C75712169D16C83EE020C45369E443E853E1809DD F395B812067D6FDBD26111B34F42C21036AF952D0D767FD17F6959D9FDD46005 D64FFF54772B50BB9B173AE79702981F58F9F235C591F476A31852174DF0619C A470359153DC32610E782B204E7945515464DACE9099B81EEECEDB6F971E5858 0FF55BC9FDD2992148EFEE32C386A35C6126F29DB9E879626179DAD98E6097A6 64A4C4B3279DE5CB34CD782CAA8567B94DB78A8CDA1E01B81749EE49A4ED0660 B8A3DF5F2FBD4347E30C2734FDCD38877ECD01B39879D88540FA56C98FF24F44 64A29263257273B2416BF32333F92EE8642A813624795D6397BE7088FF9580F3 78E3BF2E5DC87A3DFA059F2D9A68E38F343948BAD7795B33C0BEB86BC3AC157E 38AFEF43957394B25CEE039B58960DA161FDAD40B45E446C14218BD0B2B2E324 C8533878D329207F876D33213C5297C8AA1C0A2E377548C743180BF6A88B6C06 0CFB8A1D982BD07A268251BC92E30B502C72FF54F3442CBA382FEA9DA27A3D65 81BCBC81BC30815D4366CE082EFEB171D8E1FF4D65B08FBA4C81109033DE2AB3 A130EC9BC2BB1E557F907A636BAD6B6DCE003217B208604833AA03ACA7CD9E6C B6ED60A924C57ADD0B90937238EAD37168F85C226E34E6720052A6E37CE7CE28 A87D8422C98657792D84BF3CC15024F86D168C86E3032CEF47E3FD4F5DB30198 5DB94700D0F695758069DFBC2A8B82C7821686393B978D382D61E5E806EE81DB 74B3D3170D79B32A73DE6AF8BB81409BEE137D920887B596256723A2379F1D61 92A24680B91601D066DD9636EC94CE1B2ABDF9C77310556BB0DA1F94C6468F20 7AB336C8EA01E5520C2B309DF978D5BD3D37007A5FDB9E5B2C3E2259AC71DACD DE0F7DC727E7496F5A0A7EBFB0FAE0ADAFDD8462FF219CD1D148C846185939C0 15901075BC07B75B9CE5224BFB8E16C80BB690A11FF3169AFCFB81373D37C0A9 F776128CBDF8F35632B8D6A18E2DB65644CE0C0FFCA34E51D1955C49DB5A51E8 6C35913340E450D66A02DADBA0BF1E8E79BB87667B873A78AC5D566BBC56BA3B A6E8CF93378E151AAA9ADC4339349FE7C09EB949C4C8095DB3F478CA689B1A1B 4768728E416F8BB741B473947C217D22C7BE98E803D216D89D08CBD39A6C8AAD C5542DB8D633066A5DF860271C74CE74D5AE690792C7A3108C4833DBF343C78F 9D9C2D042C329EA7A5513B9A0B0D434ACCB1362793A2F659D6943064441BB71B 3F27052E998E7971A347A34C9B7C54D535CA78910D5CD8F3A083577DCC3456AB 37D9E788678FFF01590689A3BCA17CCDB047424843E8364AB798414FE1805877 0E4F560C30F3CE83F603D3DC04FCFD1144C5E5BA9DB76D1FF683BC204514E865 19A2BE65F45B103507E6DDA0177CCA326E18B10D4AA4BD3680C6CD8C3C5DA81F 453FD20DB981F15702184DE18C89E07B71C05BB3BABEBF600CC6CC9433819F51 D96D48AFE8CD87910071E0755FFD36CCEC37D1C5FEE3324494164C5963A2AC64 9B6AF424DA20778573BFB37D60CCE540EFA01A176FAED56F02778EDD73DD4A31 7E2B29E5E245FF0A16B7798193498805CDC899EBA865D295DDF291D28325F2BC 8C3030A9574180955CA035CD15B06ED4C65FEE31B617C7F7F529C4E3CAFC0A17 B091E2D58219A1A57430FC596C4DC725D5D3F5C98D167D9994EAD5AF264BDEF2 9B77A834BA9230134AD9574503F2C0FBF3F66AF59EDC2B523119E7DAA0879AB7 5A9D6DA21ABA87F67306E20C8C383351C8B5946F47C125A15AF895F316F9D32D 5F1935873BD8A93BDD155BDA53252943725685B94ADFC01747F119F1DA08C65F 0A9A263FF5606E9707B7B1E72329C5DE47DAF40CD2AE42133FBE2BCC5033AD5A 881E62799FF9117CEBAA7C139993743647CB57BA23B80D01DC43870D799D98ED 467604A6932F845BFE61D39753A592CF21A68EBA120C0953C341E18757B4F393 D1EEA5ED3A808556B1D4D2DDB86B8F0A78D28ABA46EA36DFB80D81CD6906E104 D5FA64BBC5EC9521EEED30F1FB1B6CFDB93551C96A49084FF06AC0D20A7525D8 8371F0E4C6932ACD1D5223A846B71A34A9E82C2CF320FFF87657928A3E28F7C0 B14498FEFD69F5AFAF317885A43944B29D7CE4614B0402BB1FBA2B18C19E8E7F A452C5161EC0AF6C07E01256070DDA2678C773FE59019CC322F4D9F3C63AC079 A9EE89D8D10B4CBF7335044E0CC844CA8D1B452887FEDAF9E13042A488445035 26C838E0F1F721B21785930FA4E5640A72FFD6FF58A13311CCFFBC555A6792C0 D2B3A7F59FE107A152EAA65358C4A359B9C7672CAA6B97BAD8EB7ACE6D27A431 041DDDDEBB78C5F7C7AC72E00390740991F753AE0940C95086F010F5B1C28251 B7EC2B7BDF0C84F0897230D91F4ECC91329D3039B51CDD25C49ADD3B81993E02 9141ADEE36E379A9FDCF020FD0508ACEC53B47B908D6820979B51BA8AC3B8EFC C80C7AF6A1D076DD4C6C4BACC9625391BF5424D0E993F977B0C3AFF7043D77F8 0575A1917D76C6FB4F257C5EED1BC216412E0CAE3D51964A5E0E756D492D01FD 41416AE291931BA532E85656E9EC5E5F6358BFB082E458FACD613C6056912185 48527CE841159F0FBBF31B64E8EC13F57CC0D57BC71CD0BED2C3F5F73D57C64F FCB5A64B459ADD8744F2F0660A0D38DB08C5EA76398B7E4F824C189184256457 C214A09A34A750A6B3F07EBB9CAA07ABDFEBD655C8B44321873CDDE539C24BB7 630EFAB60EA70887B51D620ECD9C633B24730A3E3F85E165A62F971FDCB2B7F6 D04F01D2F3EBD22EE896655A69DF7F8F692B60B0E448BB9A3066A417EBA12298 7F252BF79D537C31934DD600F80D1B8C52837C12E90FBB7129BEB1DF51E70365 FFCE12D1206ACBB20B81DBCF32BEDCB1D140E863BAB0A288E74351AF302391B4 FCCFACA47FFF8B7B545382158B409C2418ADC24F78D88F57030BAB84CAB62C0E 3CF780D2606B6869EF45806F61BA69C0C2CFA0DF95B24282163721BC4475A4C8 0AE28C1115206F1A2A7205FE541A3F1150D09489181631D790556CEF5786CF9F 70DA6F13867603F0B871571EA9E662BE0DBAE944E26795EDE2B2D220B301A4B9 FE28ADD483AB9E361964CE3578A101009AA52F41336C55BCD1A3534CE78CE231 35953B2A77DE318C8F1902B8C6F701C382654ABC24B3822F95C69EC41020F4B0 2BD80481AC2B35CACF0F3CD420EE66345ED7C280ABFE2B4F8568FEBC4AA43A3D BD306220E42BC9ED8942D65C846F7FF2CFF9A051DC6F52DC89016AACAA89 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR5 %!PS-AdobeFont-1.1: CMR5 1.00B %%CreationDate: 1992 Feb 19 19:55:02 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR5) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR5 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-341 -250 1304 965}readonly def /UniqueID 5000788 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA1F9B0FF4CFF25B8E64D0747A3 7CAD14E0DBA3E3CA95F10F24B7D5D75451845F1FB7221D7794A860756CFBB3E7 704A52A22448C34812C3DBEDD41892577AABA7D555E9298C1A0F7DA638078167 F56E29672683C51CF1C003764A8E7AD9D8ADE77B4983F56FE2D12723AAD8BF36 682CFBB71B1D12210144D39DD841A971F71DB82AC6CD815987CDCF29ABC3CC96 5EEBD5D661F452C6E0C74F9ED8D0C5B3755551A172E0FE31EA02344176E32666 14B6853A1C303A5E818C2E455A6CF8FC9A66DC6E279101D61C523BD9DB8EB82F EAF4D7FDF6372383C0794C4568D079648689A199D4B65BA646CF95B7647E4BEC 83856C27A8EF177B3A686EDA6354FE9573E123C12EC4BA56A7E8BFB8F9B75147 9DD79A743968F36F7D0D479FA610F0816E6267E5CE327686A5485AB72201525C FB3B7CA10E1BF26E44C24E1696CB089CB0055BD692C89B237CF269F77A31DC81 0F4B75C8400ABCFDCEC6443CD0E81871CD71AA3064ABDE882C4C52322C27FA8B 41C689F827FB0F8AAF8022CF3C1F41C0B45601190C1328831857CBF9B1E7D1AA 246117E56D6B7938488055F4E63E2A1C8D57C17D213729C68349FEC2C3466F41 171E00413D39DF1F67BC15912F30775AFDF7FB3312587E20A68CF77AD3906040 842D63C45E19278622DD228C18ABDD024DD9613CDC0B109095DB0ADC3A3C0CB5 AB597D490189EA81239E39202CBC7A829EB9B313A8F962F7879D374ADF529BD0 5533EF977142F647AD2F5975BA7E340419116099B19ACCCC37C551233C89EBC5 0CEFDB2C5FA1AE7F2728AC2CCFF0065056B2129EB1B54A245550B6FA836CD5CA 14143FBDF10F03DCC9FD347E02A08F6FC7D0BD58A162C1223140F563A2DEEF88 2C89DC24A28C3EE6D07F83B0E2066C5E266B8DED5A06569F7892F75AB17F3460 1EE208AE060917ED2C475AC5CE1EE855386BF367E6A62D915CC415684F4FDA40 FC97CC2A7A8DABCC46D24DF55D79AEC45C50573E290E96F14959FABB1ABF3428 A22F43A256A3F66E2FF142E9E1D48067314B76FC4848E0094DACA3FFEEA48B87 05F57D1DEB61D2AEF34D1C03A4EE5447CDAD14FB9292038C1F7E6B9788DC0968 DD53BA502CD2974525106FF15BF07388E4C346993B875DA240A9067EFD880548 89425E849BA35CF76408851F72F59AACE5EE33C877FAEF675FE9EF76C85E47F3 5CB70749A663B48512309B71DEB7C761E0C54785D5906564A4BE2A3E1FF65C01 C7018AAF35F3302ABF54DD65383E2AED150F12D9DECD965BECA4CD23ABDB8337 E419029C15EC70B7B7720568F46ECB0E97DAA03CAD64C661C73102006BA69DD6 5F15EDBE369BA90A68347460C1D787933F47CA2792068A2C2D0FECC04EDFE982 FB917520B3F838A25D892D8ADADD79AE006377AE9B9B068ED639296AA44ADCDD 113CA98B7A84F70C8080D50F0910FD8A8C6E9C2C3C1860F68895BFA5BCCDA250 825A2F48677DF40D73517796E7FC3269AAA9C25DCCD84ACF44B063A3536CA411 9EDB4FE05AAD341128374F2E948DF29B570BA36AC5482D2261D21A0F45266A98 62D4CE67AAC80573D41222751AB90C830B90990B7EF7E6E700925B6E134F1BC2 DF7BB98A5E4A1F75A6C9771E58DA485ED7D2E3A1A7BD2594D89A1CFD1A7FF228 B691F5D2189F820EED5198DB7E10D9C03704F84D91A42AD42CDBEE73ADAFE2E1 CDB6D0AC665D75A6F55787EACF7B41367285A24E7DD8A40C896FD23F02A9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-251 -250 1009 969}readonly def /UniqueID 5000793 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C 295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C 4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF 2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E 0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B 43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC 96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65 0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830 B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007 97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8 FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5 20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4 0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A 45A24ADAEC63F61C9FD18376D3984449A1F998C318A8FE36D0D5020E18A49625 0F3BB603BA1F3E66FF412F6A32433FF8BD2968D79CE4273AD0E0CDDA5153C2BF F8A46A2244F9394A49D339F763F5A7411A3C29336B21CCB01723705AF589B078 3763035411FE36AB5D744E81379106890688CB5BC41184548B7FEBA08DE7288E E6570FEA20C51FACE8E8F824BB61A4A038AB817C47B87391611B77928B2565A9 3B27A573C05D36ED01D8F27CB2C793370FA9B90021B5696280A55F2CB6117B64 293EAE0EA5A243F56FD007773CA35DF71B3D28643C25210CCE25F37A5095D6E5 9CAFD99DD1DB0D7EAD454C13464DF6FF5DD42339797AE5AE467084550FC00139 6EE818C6365007B2FD6E26285B832CFE6EA7E99665A224C9813C036CED262639 3FB39C1F05FF8F31D2DEF37BB9B883334F51EA124581B786A3D5FE6424B19872 AE7CB657C8D9528934B990B94FA4A6D61BC9D2CA9B4E95A22CBAA066043F44D1 AF32F545B9E123536914A7FD7FE96F12039EC25128C810BFF546AABC609DF57F E19D511F324E32956177C4376D191C691B9F0B21FA84BAF3DCBBA536CD710A80 1DCD4C83C02E69A140E1A4CFFA3B012398F21DDD96ED8060DB98EE133F430022 41BA1DA473F1C99F0D6CDBD35188DAF712AC83E0EDE08EFC3CA2B4A21EE55692 CF22799274A5CFAE84C89C937AEECF9CC71A328015B63C1730FA68A18871E174 D035568A73346EBE4EBCAE410A4F2505370A0ECB487FB40FD823065AC56CE66A 9D8440C5B3F74B855EDAECE69835137D4D76FC0FEBA53998F57EEF25C7E3D9A9 21BFDBD66C84D8AF7D8A3B79FAA9DA2963FD47689E519FBB2B7793CE6DE04A5C 203539BF94A5A700E65B5A5DD37B051EA4348BDC4CA39909ABDF8C4102A58FD6 661206115F7EF6C29E12408BADB83AD40071F53B501C15601338467BED90B659 2708D01CD77E109ABA63C19FE12606511639C5D9D5522C80692D1CA874E17B9C 753AEEF13718DD36A008B2D39D618F4F766174423AE972CB619634766A5DA025 F9682D9E2A3C752D0F6F18B0D58319FCA606BD6DBC4F83D19DCAC84A6165B460 AC1A0057B12E2023F175E6A51FC12A4852043F6F2F2625ECFF6E866293531437 1C060C9383278C81B8DF68BEED88C49F86B7617C5B938457D19FA336C616D2AB 0A430B489EAE7998EAB74FC8C037550E12EF9AC540FD37473DB1A44B1747A4C7 4687624D806FAC32A53BD65A333DA3732ADA2774D6621BB59BDAECA5637F1F41 CD2AAEA8DB9774C2730DBDE3A2F9499C719A0E9D59FF37C4F4E6E54D5EC402C8 6599488AE21DD119CA2BF54EDB306B26351D0CC4C82040835580087C60327110 9F8A1277DDBBD25823AD30F0E960604BFF9CE454C5C841119F73535F3093FBD6 8E47B1357BA56E3D906EC70D68E85465479539187B56EC67A64DE38FC444950E A82B014254689B676BD02A3068ED7ED5D4C9CA1839ACD730A1796B1FC6CCB113 F4F8285CECAB2A4BDEA5F6AD59BAE716670888E21A6BF932A8738A70CCC29924 57C7372064A3120BE92B00E1EE5F23F586372E92C3BE0423774C5084B8B8B13E 7252312D4AB20D26139FC688530A5EE48DA221F4AFD01A990B3B3D2006A89BDD F61E31C943835BEA6AAEEEC3571849C6E6F7448BD23994301C07E3E313A6045F 3668E7BAD4CD2EE5234214C58E0D11531809EDDA6E633FE82F3B9A787C1B56E9 87EE9F12A44E28EDFBC060082477B71039EFFCA8583A2FE58D2A342EBE226B23 54A13619C8943F587A403EB0284277443AFF041448456AE82ADEE7E1ACD20A59 5B886241609E304FA6386158105F0163FCA268064D4310BFCC1CFD58E39CADB9 3BDF2B551373B3CBDFFB443A608CBB0F6FA5E5E43F35B736841A982676DCC107 CD1D3381E00E768546262E9ACDE93D4DB47B0B01EEE3D1BE88000DE25B373CAC 4AA9DC5A37A242B0598D73A662330C092ED719EBF91ABB53D3A9C1128423EC2D AA34182BE6BB059741C370D655AD3912EC4AC060389947CB06518155F28B8C95 508E616FD984492F8370D869086915527003119104F9170A76BA723FBCC410E7 8B26C4138891CD4266643F1ADBF047B0C3AA911383630F0CC0E643047440EB73 815DEC815A1FC2493412A13F03445A60880627C2C77B29A74F2D1901B095361E 0C16D450DEEC81B51C92F5DD9361EF385C705E8FCBBE1D45F8D53190D6710A39 3352A632AB39D90458B26DD6CB5B13649A19CD96E7929E34A68E939A54E20E9D A7568C9221250CA69B86028F0AADA852960BB9EF3576300FA24ADDCE27799038 9524B460CDE2ADB6E3DDED244BDB6A201EA7B741734EC3737391E430F024233F CAD54F6EF06E123CD2931BA290FCC445EAD50E21A56BAF9EB7DCD530CD036A45 29800EA74F78D4E4C1889B30FD55F086BD8486BF33CE40D3FACEB4CC835DA8D0 964890F628CF8EEE12C0C87AEE9EE972EC0590178B30E52FBCF5F0530E4597CD D5D539423BB3C9C47FFECE12A3E97E77086B37F4F71F1BB21D526872E87D3799 53E285C38E75FA11E4317BF2E0D9E477B4A059258501DF396C22C14BA6375A0D 056EC6B69BE97C9012BCC2C13C35234E547F850A41E08C5717A1FF9D42A6CC04 59435FF1CAC41C39AFC164F2C323727A3E911CC36B3A69988653E935B0AB62D9 D35F7F04617478628179C65B05739260250195EE3C0F29CA49993469119E7C63 12FD1484DD1CCD098A092A835A7BA12515B72E50FEF39A349812C97912302A53 1EAC7D057C9CA637CFB0FD98BBFC601D5CF212D16212B60BA97FC60ED23369AF A8C35B08F1CC304FF043E319DCE60FF3F6C0EE5221A469DFD9450F7FE05023E4 43B3D36CB3DC4335DB0FAA94601E47216390FCF84ABB2C7B597FE9087EFFA0DF EE8BF88AF3DD7FBB598FB9993F60B998729394FF84D90E1F6231511D330AF84A 591AD3DFBBE2A087A1D1A84461108F71DA72C5035AA004F235FF4F4C36CFBF7E 0F72872962DE021B9D95930729B0C2E15BB514F02C6EC405E3ABB19F54216767 23422EF1070EBD1A704D8A0F6505932B3D7728A835B41E959BEA9348F08BC8BC 52DC9CACDC913ADD593029F1972457F5B044B55FD40D8C54738FA840B6F7891E 2ED8E5DC0094602A165DD38B899F4E5B3A2F32DB050CB509797BC974275B067A 02D911F775ACABAED0AFFB73217AC2C098FD5FC452215DED88C8BDE738268D2B 298418C74E0A8A1772A045CE182B58DE4509B10E11A7E8D665E1C494610F5121 7A7435A6CD593CC64CC3009657F6A97ED33A417C64A3E4FADBF60CEFB00524AA 4E646207D4DACAC867754245227FD8771711633E5FCFB589520C32A28CC47372 CAB9689953C58ABE028E2F506C3B0D158ABE4F5598711E32D997C0D6606C290B F93841A13D871843FE1C635FCDD1F239849BFCE9E72FADACCE6C5111450F87AA 6AF6D7971E9AE339E444032050126CA585352296E4BA97989F85DFD5827CB543 0E29AD268443812237CDD64606B4F90C7D8011209DD4A55870998A5B8102C015 5730E7B2CE15D6E662385B87B484898D99415A8BBE741A4E276A86CB0807524D 94A17190148F64938376A3F091C2015FA9D0EEC0E5CDE46C15EF58875189CAB0 25604C8C290DDDD7AA5E5F05072CEA3E68B8C9B421F63E2015AF0A8F0C5280D7 B0164A942DA4F329D250B56B7CF71A03D703CD7BC0FB23D64719C56EA66F0375 5C624E910265D01A414C058EB3CCE64FF074D3C217BAB537ACD4687DE8487280 242781E2FBE8F72D36E4E1B7E5C515B5492C43EC284D098124390ACA288DF706 4E9936062A48A00F9711E5313CAD75612BC73A03D039E23BFF084FA32FFDEAC1 10ECF7BA2AABA8F03068BA93AAC66F60D390A3650A487ED5A010CCC5E027602F D8AE83D1CD5FAD740AC68B6CF42AA72178A1817FDF49CBA1AC66DB711837AD7D FA4AA2AB0B98D30E43ADE007FCB12A32FFA9759E2DDAA03FD4DDDCD2001D605E 0F3944FB0F20108F997F79CCE35CE8C67EDB2672A77B6BF6DD8C3EF65954708E 9D5892E1C123D6588371E8911B4F1790E974BD2EEE71DBEA0A28A41A2AE7B4BC 0496FAB3340E6D5EB8EA5D78A56646C2F750A636053F9DC7969BFC1F85A3E6C9 EB7B14095DA8C8AF7125576D5769559CF7FCFC7A2C5AA4CAE2ADC48F7A24D578 F7760C0B4934DC74579DA5342F82BE56CC9A0753C6D54D7A1BA207C901942BD3 6FB92D010EA2FC1FD9C46DA012873A164D5D8BE8A8AE51E6619A31FF44A789A6 915082862BCF7F642E509E71CCF5EC7DBD86125A9AAB31BA9F6732A4C8E3A6C3 266D2791AB94A5E6E9320D3541D7537903AA87D846DF9A3E38320035DF37914E 8B31FD0810C8F258E5C46BC4071F52EBB729EC643F69CC5425E49AA397FCB83C C8A71D3A729C12E2EF7129B7622877E2657FAF3591B6C9B2A0D0BFCBF316EBA2 C4C583D0B9432C8544CE56E932148692D96BCCE3184E4EAA26524C129D4D5BB2 5A05033F8EDC289946D602201B5DBF97236D859B2B39AFB87C8BC718146CC33B 57CF1F8657B2B1D3C81EE1430BC6E7ABE9BB5F153D9D86B7B7D5205F0F300348 0B61B2E5BE1356B94CB8CAD9611294DB42E001155CBD87E4ABF116798A971EB7 4CEA8058E0FB3CA6D3F7EE0C4CB0DA902794FC0055E33BEA8A2DA71DFA9D0DAC 4A6BDAC0C74152C1113774B047104FC8614DBF4D0E29B4F38808D91FBB232C07 FDA201B9B7EA55C450AB460AC51F233F3976447766CF23D96B7542855C2D7E9E C75DCBF302C6D0CD20368BBC5B3C135321AE42BB66896BB97066B47D797CE123 6D4618116246BCF03B92ADEE75D04CA5686D545DFC23ACF92B667EC7DBFB82BD 8655FE5D39DA83AE20BE7AB0E6B4B06030E0D13DE4C44302944C143FD3D39B13 8FDFB9AD25AF7901337F820089BDB2B043185CBD530BC956A58FCBCBC7E6B135 D2D03D3B4790EE005187548675C5DA3D0A4B56B1C2DC3C20BF1CB35AA65EC21C 282AAB0127807CAE8E83E21A170A643C49A160557BB43C24C99B14AE2C2BBFA2 C50A9DE2157F7536EA6BBFBD96B76CA5A303103AFB1BE769F5E833FE987200A4 96DF4A66ABA19A2CD18FF10DE207AE927A609176050C2EFBB6398F1140B85048 0C43B73A49C10510FC76D833BD487340F0E072D3C9F72FEBBD49C5F52338AAF4 84C87015883203B7BF91981B98F4F6875825CE3C1AB81FADD88084A1357BE056 158DB0A76ED9A985AAC9D6201CB3F1BC6DDBAA47015C457F8BE83CC5CEC4BB9A FC314F8B3C75109813A3F91546616ADCECCF86194A2278E47AEC73F7082A252B 94D04B82B1F73B52F4F9B9702DE798406D5C3E0CA1F452DF9A37BDCD267C44B9 66DD76B4857E6323316E57D532AF8B3389C5C660132651E90616395C3A8133BE AE33C4ABFC1EAE851ED9F20653831CD8473258AD1D9BBE2CA8F219ED16EACF17 D0E3453718FC04E0F4765641CE01B8239D96F8A8F3869A9A97198AAAE6B0E159 22EE82B668E4ACED8394778FB2216B2E77C6726E9FAE78A8113A93CA09D248B9 161DAF035EEF597264C5D8E8F649BE1B86E30352EF0F06824F4B95A6D060C73F 1E56FC90FB5B9D065B1714DA0C4B61DE3D54D5CADFD46F6A040EFE91130012A2 A7DBD0EA166B419E0CDDBAE88B3F52B5D5D0766CDCDF6113BB868FD02169F057 FE4933596795D8E0240CDE5E4C7F441EC868168B42AE6C3684A2165BE3783EBF 38667CB8660F1296C1CB31807CC3C65D2BD5E187DF38E4F700861C29AE03FD7E D4B2E1131AC3F65B2B290B245172FC4F23037BE29ABA966A991B727CFBECD900 09D1693B47C5560BB74A961DD54D0E9923BD7CA8FFEBE5257D6BEBA0C9A79178 ED26E40AA0B46F0AAA95A9CE916B744FA9B389A565D7F7418884FDF2D84332C7 8887020C927B964DCC96B3B435BDF7C9BAF54091F979D91AFC7D20A24804E077 4F62DEC8C6FD71BA9D80C9F5D9D61C4A38BD8FA37CD648A48C998E88ED678506 7DF9F51DEA6CC834348FF9243D0AE6BAEB9B1E7297C96AACC863C597C6727556 805E2AFA7C505D400F546F4DA96AF7D95EE84D90A5832D7DFCE1E04238C91C03 9B3B5FDD352A6D631C417326C74DA17A3813D74B5BA1C8FE6EFC5B6CB1AD69C6 5EA1482E0CB06822EDC6E54CD2512696ABF40A60E6FF946C8006D4528D6E83A0 7C42A87F49DEC5C85C75312646700AB9BFFD52E08686929AA4BCF7739DA71488 94F63E268DEC46F9071A70AE969925F266E7295F3CAE490B53299D593788F6D7 AF17AD29A8EE53F1CEAA163DDC7111AF5A226B276BAC6D7C428740C71BDB1FD0 638ED6D9C09AF3E9C6B0B705E0ED68455B0615F092B1CD86DC926AD5D07940DF D436CC9533A50E92A3739450A98C7AE137B4D12D68F80196EC32B956FB49BB71 AA4763E3B1A9D98BB821F79D9B3A01CC6B355C41E61733F2196FB25495F60C0B AD3E334EB9623EEE005786F76B99942EC9ACE6415052A936FB6C011C64E05EC8 FAB04A0326E309C78A684E3B0287B68620137419E324CE28A413C556567480F7 2C5B3CF5F654B393B10CD4B9D42269085F5001423B9958A2BC4CF4F8B47D5B33 83BB47A8A47ED434F98BF382F8346C477D6AB087E994A7C3090522760E97B070 B4B228410B2DA131D0465EC5AB3BE3E940872CEC0B663A3064B5E7D380C836F7 7FB1DD488E85EE045667123487F4C1D763003547D7F83ABE3236F1B526C5265D D97D35524C0080BA6A362CAF80CBB08B34B6E63687A10C0DF07F1DA0DDD2FBDC 4EDB5FF1D98616CBFFAD11EC9EDEF939AF5EB47E7C355F8CCDB7D74F39617978 FF7BFA76C3045258FD221DA344FB7872EAF590EC2CBF938C575BF8CDB202ED2B 2491D41EFF536A563A10D0C270624CE1A73EBED1826D6F71FA5C737419E8C022 8640D7DAB7E8AE44D219E7F0EFF5280C7C90DC712C2DC0A1EC02A2729071867E D8A3135CEB99ADA5919D58C7D09B2FD38C35533B00945A4A31362B23C060F76E 28BC9B7BA0CDDF8891CDF13C4E68BE6A9749FD53F3561FB7A710DF4CF1FDF095 53A3D58F4115F91F2BE40967E014621333E57A750DDC87E7F7F044D31573903E F09B3900EC45E996298A15AD5841B52B5913521ED52B83F38538D40DDD4C6D60 AFD2AFC1884B150CBAE2317E30690505684E9E5308853BF3B87E45359674998D B3A206F6FE5A00560C38ECE058701F1B13988391589B2C31547714A868EDE34A BAF743CA5F9EC9572F42CA4D24C3C247549161540EFB6EF2040B54B4EBCE3808 CD7978D628AF13EEA7AA0818B92252ECD1881328CC8D124EC7F8E88A2F4CB3A8 D8C8166EC39AFECBA439288B569684EB071EBC9BBB2B864300E72C5614253FCD B87C7D36D76AAD42FFB23EDCAA8DFC9CF458236D9087CD91F06F5CDFD5A3960B 03846BD832EB68BCEB8690946977DF54F684FDB18E0D3076C3AA158220245917 546468CD594AACE9AA9E203FB5A639FDEC11E97677355C8971531A27EC054A26 3E8268FC12D2A2E654334068F8DD6142730B5C874D96F37467F3378857B0F7C3 DA10D3AAB4E3DBA897C68323A5717D67865430F4C3F8CB4C5DB97DDFB61C0433 1537441B2A64B8C8360B14D0B9D8C448CA5DEDF990F5818AA3ACC6CE13924BB1 2A353C045DF6872B3382E6C6969EA108BA920FE095EC9A1A5BC49850E7FAAC90 0FADE0A9221703698375720484DCA868ADAA4E1B6CE7EE902C828137E1200C3C DAAF895C53346AB7B93F76391B5F17708C635372DD26F85E4D2D11F045CCC8B9 F058D61EF86482B593C29AB4B1BE12EF8194B849197E213B15C6C3E1397092E3 77EF61FAC63E0B52B8266355C5E7E124427D5C8CABEBD308C2CFACDCA1F45574 C856B7C5E4BE06508FA80ED572DB1918719952DCB02DA5A59F72EB08E807D4BE 5F565EF0017D67D4F9179EBEF440EB42FACF282373005C7F0ED4E54A88BC96A9 157B887DD7D8A7C9E0D2D389CF9AF673337711FE934EA7370ECAD1DCB3FFAAA6 549B922528BBD8F7A06D209E31A85900A983EA9BD40DDCBEA3ED06C127B4EC9C A2ADF3C5162D3FA5505C424784F82D0F6D88A844C52153B0F67318064A9F49E5 80105864E4694B7D0B527738A573EE58690337816E536AF06195B4F579690FC1 D476CC1C3E9D6828F343192EAFBBC5A4ABBA686C8D4DC42720FB3E32D686E0FA 925F81057AD171A5665362CC49B07099E4330CD9421D137452EFEE98FEB6B9BC 987D4621BF3D1264262F8C32E67F0CA2B673F94DB4F7A73183DD07861DEC2F85 F50F5835A7545CB294DF6072A911564BE9CCCF28BDB7009FF5F7979421E79483 64AA03429E07826249C3D9470CA501A61F916B9FCCCB9AFBE202BB31EE25E9A5 AB81C84536658640CC735DCC288DE1A400D5DAC0F91FD55E18C6F5ED6CBA8928 AB6C2DBB57E3A33D5E552A31948ECC8752CDC078B22CE1376D1237FAF782F051 4D4DB38CABDBDB43A3CB0415EB28099EAE4E475F9A0A3176E1DC1B391150CCBC B0E2F68FFE97CDD6218D52B5805254A7119CA48F84E24911A58DD0DCEF5EE653 87E8989970D95C9AC5BCB1E64CC7743104F3B975AEE1FB547AA17ABCBFC39B3B AD6580E60D21A18DE6D83AD1C952831F8143550646826D6B5F99F743C5D4E76B 9CE91C793D4EAA9A1944510C93FD6DECADB527EF376B4D7C062B30DCF5D22A82 BEFC2EF450EFB7C99C011A11AA412B40303316C221CA5AD9C6C1EA90BB14A718 16BFD1A917CA3DF873A39452513E47B5EBFEEBBF13F9A0756D8B8201342F5181 CD99139BA565D0E4D1FA224688E9AD684EA2BC23E90B631B743F4A8B8B009C52 AA36C0953A5A54B08CBDB6543F4A0E0F0D3174F6FAA08A871445935D5090D753 124E3A74A5400E65225036036ABF5CD139C14C102A40C653D8FA6A7C774275CB 6D2E4BFD194DE16D1A2501E58AD86E07FE5E0BC984DBF08D71339CC10CA892D7 A8F3D954AD25FE82C381BC9AFE30DB6D91336AE010D3067801B581855028F6D1 D2B030AFC1E29F446E71ABF40B20CC3A2B48CA1C4238B6F6F220AE83DEC07368 AD857A96342ADF4DB8816D0B5B3C9ABC8CE15852FB1CA3F261C60644CF7C59AC 4B225A4C4518F5B22CE1ED7B3F3AEFF0AB8AB5DB45411E5EF90C68375EA68390 9249D34635FE0463F86DCCF85E918BB3989C66FC005E758EB426603CE32CFA3D 8C334C1B2BF48B7D7142177F7ED7C15B38CAB81845AD1C088D51D52D5EBA0EBE EF38890F5D264BF7F18F889D74804C585D27F741E6873A08499BF368EECA32F7 9C32EFAA3302B5C48817AA8F92DD1EF707E1A147EE837B0D581B1EE131BF7274 FBC5EFA10EA78E3CE64DC830A6C96E5E3246FFA0E97C0F9A6F70044222B65004 CE60F5E7A7271C6D70E03B2B24ADC8F639C889E6C6E519522CA884CC31756578 80D49AB0B9D7D8488711CCB8F43CB7DC97108B3D500CB15C6DE7069873144193 D46C05214005D835643AF613E5E69F5F287ECD1009788E50A349030B4FC5A50C E32BCFE0FD1AE27C51AB0FE9744329A0B63FAB81A17CAF2BABD760154EC7A0A6 ADAFD6845AE2BFD484541D2152600054E3779D77CB3A03261DE4A800318DAB6E A21E31B92FAB979920B5381A9245F4A10BAFE5F5A61F7B6F43BF11C30E1B10EF 31EF0E5B67E2DC9C87F5827652589ECECAB20D7F36CF858E2DB1863D7507D9E4 F60928E31E41F20D885A369AD58E3BDA5BA499CD1DC5ED272AC6F8652C14D0E6 C2969F43977489204FAFB0022728BB324C904DC727A2F342D248AC63BB8ABE9F CA187EFF855358FE8D29C748BDC7CD8B228A2B0151162E5F92A651A0C2AD07BE 59002B473C1C3C966734F82534D6B1FB5791B45DA718327DB8D6ED97C4D79637 CA5FAB68E4F170F00E6E19630C3AA78EA187ED2E4AEBB221A0B90C4E2C1D1818 6C768673831EC63463FE51C5F8EF83A1A91AC47A2BC315AB6D07198EBF0DC4D3 8D4539C591E92FC9219664FF72A17D59F12435B2875A64FD037218BD3A55C49E 192F338DB0AD2A311977DF3EE5B317399156B0EB1AB64808BFA55F9D8DD36FBF 3FA1A5430E58BAF1D029EDB4BDF96C0E0EE3ABAF46885DBC93CE8A2EF1529F21 5030A8918BB7B63F10DBE9211F9A6B6A3B3B5DBEC2A8675CC0FCA08B5741A431 578AA3CC6F37C6DEFEA24937FB843F94117FD41C7FEA846635B1641F5EEEBE38 BF8900EA1E31D8B76A9D8F36FF4A6539B7DE5E1F00F491AEC1E96477A9DED834 592B3FA5646970C6ED44F901F81825095C2DA32767379B21C16FAA9775A91D66 8CEA1BB6959F9E812EDBAA4B39C41E897BF9D3ACACFB8D550005588E64F1C322 DD80397DBB41F3149E6602568FAB04FD46217145416A72E37403C3D2139B9B64 76B9DE75DBDB107CD7EE654FF89540B6799040A913B3FEA8E463BAFBFCFFB82C 3F417AC815762250D9222BC2031D66902F732C9E3B8BE2CB0FE2C8CA17233205 605487D4679CCD2EF56BEC8452697B2437857C78708A9BBF7D22616C91BBFD6D D9D4E7480C0F2DD79B31DBED61B522903ECFA28256CDF499839C73CA283B41D7 8FE50BB9A1557A982F32B202CF6AC7F9679549AB5AEA657F1986CBBF2B02B8C9 D380F9F305E062F4CDEE6273482664F4617AE4D25A6A9223CFC7063F144C89E4 D3CDB37D9D052BA35BD98BCBB68D29A9F4643CBB22015754641177D118533A47 86808AC4BDD815FFAB20C97817D31BA301FD1C3FE24B288F3B4A3DF3B27753C1 B714FA22036018044FB9C7EF559B673FF280D90BCCDE0AA9F094A436086FD2F4 544652C40DE2DB597E246D78AD3AE9790F0AD568C8E5E6BF5CD078C1AAA0DA4D CAFD00D1429FCEED160B1CC194F7AE3083B1E81D0999E2D526B3A0D02294C3C7 3F0D80E3FDBAB7F675B0149B681A8162A151FD2565360071B03E659DB8E14B70 F38394C366908A308115168FF7572CD2200A50067FEA66B505F4A695382B41C3 D7C125FFCC86302008F076B7A95BDA6EF8F2DD75AC1B7097575D550E858D5663 BEBBA50417A0052F604045A041E45C89A8D56E4B3B192424DFF9F6D0B880E2F9 5B8D1AA5962492ED6171D825F9BA289419AAD728B19F749BB8124180661042A4 3174B569618E506F6C4EA79E3230308F01F138ECD8AC75C1450DDD1DDA766F4F 69F2C746B87C921DA71666BF8A28569228AD630C420BA216AE35ACECDBE94A5C 5010CAB3E98F4C25968928EBFFEE81198F282E91790882FD52E3BC8F74E93C52 03CCD4285535E7A74A13551694325075DFF621E81A8D545707DA02DF6016ECB6 7788F7CB39117442F473A3FF4318ED85FFAA62F7FF22567DB835E9BFCEE72A6F 9B6269E5AB5E9217C3A95D2890CF24F6519804404ACE25BB20C84F7D371D8B7A 94A272F7A865B7C79502C3222BB89DD43498C89B2B2B8A6A0C4097866FA04586 DF31F51BB4BE39D4E572705058AF9AF0ED9CB7019E03CB680AA68B964F08F00E CB5FF873B3153CD52821E1777E2142CE9C8594F82ECFC9344FC2FA62F7F9EF5E D6195FA4EDABF08C7AB48A2249D47FB28D03BA1445449C133ECCE8302EFA9BBE 11CAB4D6A018D981EE6198334A33AAD858909B06BEF772DD3C0D72DF324801D7 FD602F33812A6F71D4846FCA15CD6712B788B14957B4CF1B5A8DE96225894C3C 3F9EAA918EB97DFA2AD4F6D43EF983FAE9A9A99A54A3342B3AFC58C43D71DAF8 9500F1D75825721486C923AE2FE41EC1BABFC5FA31FA24AD7B7DB9810E9207AF 9D6BAFE6E46A180953AD6CD78C0A5880FFBFFD684516A94A2AD3CF1AA72B65A7 312920C2F43ACC6F36E72A48BA4E3ADB1C137FC3632F0B3F0DDBFAC63FA22B54 8C84099322A490F21606D601C584DB407FCC8C37AC41932DA903DA7C8705C6D1 541E117767C6B040CADCDAB75231E12D944131AC9A4C8E91762994B93A762459 B37B599C1E6F716D148B1CAD2B50945A96DC1D572F29A26FEEE283378CC2D2F5 E61093F39E7FC7982629D3FAD88819BE6DA2C04DF607A402BEFB5DFA1A24C42B 661E8E1F2C89C387A9FFD3ED73DAA8EA728A724630E62E4D4DE3114DBCE181CF 98E16FC360BE67D323F4EE063DE4084ED432E438780FBA95BF6D8F681B059E1B 3A6F0AB5E698DE0488A16FAABEF30E29B6457F2BFC8C51D6BDD45CD7D6675DBF FAD5928E02F2D7A0465CDD9D4FE76E3E1240D864247856EF6FB1EEC8501DFE50 45F15F3FA0938B3EEFB6B994EDC8BA31CC3379080417A525585ADB9513E8E01A B5255D788C151F96A2EE52D04665C4B03A3866DD36BE19E9B52F4F8E24D34D80 F8E27B4A210B7AAA2182647DB12C91AA6B3EBF4F9BC2EB9CFD79250257210F9E 74E7144E4778428061BA6768D4154B4B6F4E141CED94EE42D2C2EE0A9725D5C6 484230438C3711CC902777420F8E2F4F4F905BFCB4998A1C641CE7F3E31C129A 3FD4185DC98D88ACEF575EFBC3D7068BBB23AAE6CD74FBD57749FD69602E8BD7 C5E4C63606542EE37CC94208EF0C7DA0AD376BAD67B4155B62972F629B73151D FEF63470F5C055C690CC4B4340D2E06E772F47958FE226D6DE4DC5FB70062CC4 68BE81A78CC3EDC2EC96A120484A775FA5DE68B8522E07575EFAA364AC99F7CC 1719CA0EA6B00337420905A68311AEE0CE227D5090F54A77EFD2E462EEC1092C B397A2B2B3E5050D4438E18F1E0E7AB26FC505C5730EA37852C5210EA39E2CB0 8C29F4C9E042D36A5AE3D30B1930BDC71AD4BAC022991BC9DF85115A33A890F6 40CE55918CBC8D70A2ACF4DBC69F337F2DE8D7AB96FB163CDC094D9372A5DC7F 9F0B18C9AADD2D9633A2D5614A5216D215935E0820C00831B429C708878C9CEE 171CE00C298A999759629F9FBCB7B5923CE3525754DFDB22FFB988D16EC978BC 304156DA303C98A76656F320D029F2744B8C5D679B7D597EF5BD746C75225F9F F585E862C750E811C656A29A59B2A778E9E6D3000B253CD4E4E32FB78FBB6DC5 2BD1193698E1ADFA316D7ADCD2083E3C67BAB9C063F12B75271B31425068F35B 0EAA4F682359C46ACC3A91D5EB20FFC193342989C460E5825B0EF415885D4FB2 091D58B217000FDFD16B8461ADBA1660D54591F8CC9252C55B5948D3D5A89625 19D3887D547A1C0391AE774FA2ECDE4771C1081F48BA24A0060F15B9BC4F23E9 DC9375C1925E49B29531DB752275262E53580C77A23B9DE31DAC9050391A93C6 6678745ED6B83B8FB6BEC0B3F1D84D5DD1922EB3D92FC53B4BC44BBC0F86B823 3F7E9C2616E696F5AAACCBFEBDCB2004A63CBFECF7444AFC3BA667610B4AB9F3 8DA79305327D74F2F53613BACD0A74E2C53F00BEE8B178F0956E3F0195B13268 F3E6C50FA9B57FB30DD37AC39549E9C57BC7C2E371B80FE178CF4C45EEC41C1D 54D5F88A2F8A7722A632495981BCD16410435007DD4830A92FCB89840B8DAEAD F51A3DF0F5BD38D82764A8AE5FBD7C0EF427F976B6C738992A48766D5531A6EA 7A8AB6605ACD9FC98128947B0EEFDC4D6FA21E126E40909452045CE894F3F1FD 54056307590910AEC4BB02243429A57033D3FE1165E0A6DD14441FD7CA6B0CED 08D637AFDC13038BA409A1342D2C438A951C7C208681272C54E68CDE746498F1 B4298C367D15EA46536E29F526F1603F206F9D72787A657332958D7C69C8DC64 CE92C173727D5B1E971B6BCA6477DE2E4CBE0E67DDA2A9803DB394ADA7B17A89 994D612181A411986D294991B05184DA34513EACE816B3A2CA7AA67D52F33A31 EA5C90D04E54BC143160DA74B264B7CC7652871CF4CA34F94335768C0A00E0E1 8F66BE42139FC196F9EA1D2FE9505228764E7CD4DCB98851B48016DB153D51A7 92E7D802BF4830093FA6AC7D0AB5E8C9E69AE6C297B1FF6992CD09F74E5EBEC4 2369B2A43F0F31376B46DE0821347D6A5FC20E7CFBA3FF05CB817F76E33DBAC5 5633DFE7E5EC33CA4413DF0AF3BE52144F5FB87CBE38A84518176A2778F766CB E922FC07099E357B064D977F124887D204715FC12AC363797CE3C3F882A332E4 5092861B8C422A215C42703E3DF3064FA036997EDF3F6C807BFFF6E17CD3D444 21A6C959821AD89C51AE79D44903371F872FDB61F7B98A315F660D5A66003125 FCECDC78D41F0A85F6E4DD35C9538C49AF50BE4E320D737D5A8FA623687682B1 2335B02CFE4F94A1E007631D9874EA9E70128DAB366D9D9131FBF6D5119830CF 0701458F5F0EFDEEA1AF54F5997A138CA03AAAC3EC1374DECA394A40C986BF5D C1228938E4551B186057B1DFE71ACDF4B0A8E67E6E253796A9AD8E2556EE21F1 951C41D6085B04FE6023E79DFFDC9E314265A90BA6D013E63D0252FF5A7E7FFE DD66AFD72CE5F43334A603E73867CCB1B4FC97D8F4DB2190896A38C92D2890EB 8B9DD2C49E2B7F7E754AAED0C3CAFCC9420898AFDF14301ADFE265F66DCD731D 1F30A20D8B3F44732F355B213BB9EFB6496974D9EB64A4C91125304C604AB14E 9A478C18939534C71914621117FE881EFF28EDC63360311BD530DDB27E6F5BD5 50D0FDEC2E885CF2095EEF6DC87591C024BBE58A13A8F5D74E0BCE52F43DF3F8 E372CB7442C189A5C3E4C7237F6E94EBAEBBFEA7408653B987087D4E2CD934A7 80453E499E8339711A680CE6C845570744B282C0A61CC67637DB5E1B6C7EE15E BFF967267DD1DB70D60B0F9EBDA532CBCC621474C115AEB95A1BFB1F2CDA203C 1324D19B603E3F46F3ED4E18C3A6517ED9C48F87F5D9710BECDBB61536B8E6DB 14FD6BC0DC9FB4340FB36E6E63F3EA9FE5FF83567BC27ADE926B4DFDC9AA802B DF68D95A7C70E97E1510E91C3B6CF36D4FD127ADBB9326E606162849959DD989 7EAE2D1104B3D9ABFB2B29F51FDD32FE7F23F4DF7B3AF155BB76A24773C83649 3ECC5500DD3D3359A671545623548F3C3F943DF6A1496813685B803059BF37F7 61F01BAF10C547A513A7FC8EC974807DCEC4FA43422B609E6C36BFB3936E37D8 C303E4A9BFFFAE475F0C14F9ACD163DE4B5B8627135A0F2B6F071608FA609C05 5A4C420117F28BD6C8B03AC559696D5E29F3F216DEF9D7F64CDE770FA3B94DCD A6800F92905B900A311124021E3359DB54A19AE324B16CC658693CF7E66EE572 BCFDFB0554238D437A3C8439D0CEAD5024E645E34DF0D4FF0238A72483D61C9F 9C4878828A72FDF50D15F6A89EE11171EBD3CE795507625841437D7BA68B334C 704AE0A788B5F270FDEE093FB38BC03B5A0AD446E892B9FC9B3850F7F5593A12 C5B116567316249DD2010799799A77AAF547677513E57B20724339BA3B4D2F9C C6ED1C698EA6E69A3F619CEEE380FEA4AF6DA07474B26A8F620132800969BF89 CE7668B3D3175352440969889C815E7CBE4B1913F7AAB6C503AC356DECFD9EF8 A5EEBB8241DDD1A3531FE9B30166BE4BE5DC7BBF02555ED6B6D39D9A1E131FEF 64EA8E116B9F989C7C58DF412C9D2F1DDEDF104A4D72222D028EF420D8E30802 B9C805C00C0CBB81FD37DCF0CC11D450958043F09A42EFA178C9D28DEC99923F F08D68E1E22183A9ADF5831B84CB38A45D98ED898C6F908C6CAB3C002623B8CE F3EC66FA0B45374D53DE00BBF03CCABF2623CEB01ABD19D172E707E69CC14AD5 96AD8CE95C1DC148090AD409B6C3834BFCEF3329AF53533A7DCAC0CF1C0C7AEC 25FCB18FA358E0A53B1C9A4C02232B9FDD7B7CB01887BC66FD9A83EF84AFADC5 D7824E8784644B4950CF95F0D9F7E110484CE835633EE57374E418F2975C98DD 81776AEDEB0DC1777D4CA06DAF4036DE8F4BDFD8C1D1FB59E69CAEBFB1E0CDF4 5E083BF6D908108B1A4D0C40D761FBAC8EC5986DD16168863A47134E180370E2 89AB7A7AB2F1C1E46A4EC0EED5540BF8F8F198E4B229979560FD14F370272E6B 1FF4CD4E360896649A41B49D1B136653F7BE0AF89D8B928EDF0D7869635232CB 8CA0C4744F16B993DFB0442271242A331C570192DAA232066BF718554334B7D0 4D301E44E92CE601E77F7769AF959226AA12844BBFB5D75677AEB744C3286958 FCD6BEA39DD326550F6C60C141B2AA4EE3E6F0A4F0F460BD2EEAAABDD734237E 1396BC706503A264A9E4EC03EC623A890CFC52165ADC4CFD63DEB99F1D9F3BB3 E86C16FF65B1FD9A50108AF5DED368D7EFF6222C0100A9340DEECE971F1005F1 22E9153FE7197487A26C44231245C40E9DEBD19A50EE565C9C31CDCE09FBA61F C2A49DB8D8EEE70F6B54CBDA8C094970BBAE2FEE6B0DBB6214A59D91FA5B838B 539DC7CCEE80508A43E6EDE2555C75C6DBDC3DA41CB351FB72F97DC6F1711769 6CF0576B710FD46634984E61444EA1C524C951FAF598C79D5CC0B01F12B575EF 61F7213A6557171F40A68689579E02C2AF9C0B822016209BD21D73EA09165E17 9BBB1D0308F8C06FE02CCA5B29FC6E689EA98AB8C63DE282CADC9B0734AA5A11 78ADCFB0AD48E30D9201A4F673ED5F5AA04BDA227462450E0D2192CA7CC9A8F0 82FC5D74E412C75AF186DC01DA03A708413F25FA3D355B7150EC2EF0B5779072 2EF6C406B2B60842A3CA8F7D26970DD913F35ACE7653E600055BF8548C53F5E8 D9EED825A22CB3257FCA37C1E43E35FC8A454BD9F1FC1A45F644C30072682BD0 6BD250EB98293335917FD6FCD9246F60218B91A09A82355D3AF5B856A9A95B9C E11B032FDBF0A3E292FD33AE603D16C84E4644CE224F52958391589B638621BA 709CE73BD3BB59FFAE0F5DD780CB663C676B08834630F89018B66CF3FC4AF04D 661F86F8A516A9D393BC7E625CA2CDBC55309613400BBF8C7AA62E4F5BCDBC5B 3676442014C634D606B336EA953CE386888D715CCDA75EA9E6DC1BA64408BB78 9FABF787F92EE109DB75D534066B206FDFC812C3744D8ED251DF6E2A490787B9 00A9EB81C510287014F254BCECAD29F46A9A70E1DC47356E3C766B249743A10A 67A217A8138002F0864314C2FC3F8B09EA939843C1810125E0565301DD46D483 207551C7D64AAF021DD9C0A45FC7E2068EFE5D1D76617FAAFC75AB36F8113CED D0F6F8CD36DF49B15FA32EF9DCAA19BAA14BC28EDDA0E89E2FFDFC3AFF0D8012 6F4CD61BB00CABB12B2806D8748ACA9826D33F6792B77D2146C05BA2FC3A9A87 FAC4F5A6BFC8DFBD0DD5043E2E3BF8050D44C1D31A1E7CED0694F8A5EA710D23 A83462A4DEA12989794D06896F774AE50E52D4580591B9188DB3BFF83649233F C1A2AAF7B9A1E84494EB33620481025B8C5268A67ACD517F0D139D0B1DE8A76E 18EC57545144FF7AFB5234D3420AF2909CCB02C0838BC0AAE14FD053885A6DA6 CF588A5D8427FC39D592AC9DF2B8434B5B1DC6AC597EEFDADE4076109779B9E9 908F079B6D8B6452BF6159346D6E51E96952C0316D3060357C2C498C8B677707 60B9CD8171F62B3AAB85CC4E4AE66C65BBE1107D5EF3AA59927E1E1E9F96B8AA 87441B75D2F79CF9FDFD7F7A728D1AB40BB1120899B2B74AD69BEA0AF46F002A 4D1616DC175B856DE661E34E86074DD438101651479D1EFE3EA05C7977CAF023 63F627543E3448CCE1003A78ED16823200A8941E47861E9E92E41F269A410401 D3D9C0700150686E5E3B14E2FDA2772DF96902511980D0128307BC89AE387515 742633F21C7E3D0D298342CA373CAD1D4E0C9F09983B491B0A04017FB1F47D79 EC0C3D0DD1DB8FF2932580E6D2926C90B08972D9209E61C98C238E0A7F2B6350 D8A797779E61E1C4840A143DA541202C87A18E60FC518A868A512DAED1267A1B 467C2A6D0AEBC02F0A00FA9A1C95B5BB4D14CB1373CCB4618D7BF7FBE98AE52B 13348824D42ABF12C0D5EFBEFD22F13733D8AF56FFE5673DF32CCFD50791D24D B6617E1CA933A2D137F16B60EB368F0700F08FB5C9C75824006CAA9F3E3D6F0C 9F5CA4902EE05BFD6FCB294393F33F43125EA7CC3D50544CD637C310FF32B7A2 7FAE7B80854E94BE5C0C5029A1F62EB524422320FB7ED209E74CD44B02FF2B4B 7F122D16C765022F556E3A688B539787208B49745612802CACF1F4C9D3E28CC5 39834E8FCA207763897D6DF0056F6012888C29A50DFD275C00D78E00EB48272C 2AD2B9F03A35E6599726B3A48A9062B6A8D455E10DF82C6EEF4E56189D714D38 D699E0C10B6A79630D6BDD2D1768BFBFC55A1076B7E1D7865B362CA2F9DDAA50 F48AA546EF34DDB09AF4610246DBCE64E1AA934B6663A150A100433DB67CAEE8 5E1DD48368E97DFDADA2CCC5A9EB5D648191997A7D353664E0010AB219EE7C16 96A5FB9CEE26C8A12243176E182B090BCFDC549FAFBB01186ECD422FEFD2F2A8 5385C9FAED5456964136AE47A23A473E57C10066B103332D19BBE40CC9166A50 C77E5851A659A60B2118B5DD8C54C42DD3923F4AFC056F1C346D06867C9D8016 C55EDACD57DBBECC37188572C561FA84D7A08B7C3D1FF076EBE1EB2A46478D0A DCE3790FD2B5B8475E1A07654412E6F449E2E214838EFAEB2374AD515354ABAC C08BF404F5D8744DBFF41E677F81F493B23C500A0728FD252D337436A3C7A1BF 7E5D226F7260F722DEDF43C6A536AF5D06E0D07AF46FE672F12F75870DC5DFC0 A65E7716D00E2BCE8D95D0E2375F05BABB6C5E9E0A4AFFF54874C3A06D4DBDA2 0ACFC58CB272A4BAAD7047874E9FE8FB98EBE9A64144BBFACDFB8931CDE62CBB 3762DBF5AE633418E9C67DA5CCA6DD1E947C8260D9A03E9719D96082F3B53B4F EF0714F0A93FC3516185BB293A2F346AED0D934E58697450AB8FF958FC97F866 6C5207312FA28AC3353B15E51F12FF296EE9C958F578286480EE74F06FE595EC 96D986BA084A4DC62AAC15241D22EFE8212CBD7FAB1D355FCB4D0E2D05EC4601 D34626F0A1551BD1364112290796185D096D3498309FA2A090210969B1263723 3E8606168D918457BD5D9EFBBE91588F3C51EFB8FD247AC5BD707E931950E183 8FBDEA879C4F8CBB0C92A2FBC1B3E745F804EA38472D910EECDFDA10AF4B2120 906E82CDB5EABE0952153129AD1E43DA365F045E3B98B2A360343CB4523061B8 CF4C5BC07F1FD341D9CFE83B144BE06699E422B928E441229A5BEFEC667DD2C0 1CB8F3685C30073A9AECD67E111F71E48FF2FB0735B9380C356CA35C28BBF18E DAC5F5940BCC8F608EC0E8F597507EFF15E4C6AD957AA1B283A84E99CC55046A D1A46AAB8D19D7DE47AF62868B174F5ABDFE46905454AC817E08032D56C6F080 0F8745F6D5D18B3DDA9CE68BBC45F0BCEEEF892277CC9693199D1D6FFCCFC63A F33B64D82B67C3A94EC748B3D670D89F7EACB561C07A17C841F1639D0E453535 AB5DFCBC19798E60188328BEBD21921CDB56DA748D195114DA47E9482B960F3D 6B5D701648C8340B3CB5284523800D486F0537D343EB0B9277E76B3504E09078 547B20BC3A8561173100F347DB1C5F5533AD3E69336D367E3CEB6AD7CBF1D4E3 602366BC33AD1EF019372B884669AE6571DA682359FA3F123F6B44B102309E77 ECF5B39595F7FC409EA3816E7CB5D7B569D6B12981E4D6E063CB6AA33A984D0F 49E6B62447CA0128BA0177778C855752AD908136AFED395D5A48428E75F964F0 A9010D79066268847BCD16BEE7B9B45A037D726567F15CCBA5A93B76D37093B0 60D6A1E651E65CFA5A30FD8BF5ED2C6B40F40C568F896C1028A5B42F7A359411 070CF9F75FFA36E7A06FC6B65927B7550CC9C8662C681E7378015DC8767732F0 1B1FB6FE6071DA613597192B958080473386A1A14019D386BBAC9A5A974369DF 11796EEF69431C7573DE256022330F83CC5B2E9793DA68EAF381E831C3A27877 C1791E4931609C895EEEB62BAF87772F7A5968CFD5BBAEE9F29F291E7B105B48 9A8A54F808D5DBEFC0FB35D9B34FF08A61F6125FA102A27447FE0898F4B3DB83 8AA3BCDE4BD84CF1BCBB4746E9E4A152FD61DED6DF57B1677BC9E1382F5D3EAC 75EAF2F7631A5F2E755E9CC125F266D7A995F6CDF65612CFF3C8BFA177AFB038 8618F20B9556044289D4346BC577CA886443643AF9F1D3DAA75888818D83833B 4AA567A7639D90ADB5B634B85CFBDA0D3AF824F52AF6CF77D3870C84C3B17FC2 0FD3171A72FF9882D99FD8F63024BFAC853EF90B16F43D253E7D8DDE6685A58E D2F56BC1C172F93CA777D7BF1E0DB65779636BF0552AF9E72E5636A920BDE7B6 28E7DD0E5C9468696F7326902F101C8CEC4A80CC7696F9CA7D20283BC7AA80A6 F452038A70CD2285B91DAF455D1FFB9FD6A244696A38F897AEE4C97150E803A0 9F8138F084D1BCEBE07F04E42A6857B848C0BE2F5BD5D39C36C13D84BE5F2C5E 383024468E1FA6E83BFFBF7E23B31F3D82A129A4DBF9364C8AC7E1BD8EAE21A0 7A75110937D8203AB2621A3048330A0EBEAD8F85708F55307276ACECE557714A 0B96E78DD770E5057FD2546E9A66A113FA58D2E2A0D52BE3FB596780DAF63BBF 23B27B44D1A57B569ABB3B6884C6E1671E5098FEEC2D64B9C4B5C7E2169DA3B1 3EB3830FD7DBCBAB2C13099D459FBB5123F751684A513E6AFB8E0DB56E8DE28B E2770B8E89303C7342D56D5D5C69678B6EF96493ECA79A167DF67A15C56DD541 C0AAF5F14CA9132EF3C90E77ADF7339488EE350C88634DF7409260525CEDCFB6 C8A91130241CC458658390FEB564BCBA38EE50B10C0877A6C10BDAA24A3E4E61 A17D515B0F855D8E177545F12FB57C57C516C70E81DAF656D8253BD7450F5530 E05EDD30A44414BB1C53A283FD01BC0E4BF0020FC0C8C66099C76708815F6AC2 D1344F7A20C1663403E47F72830D12D17886C6DD40366B1C9FCADBC2DA3D17B1 3F0470B864A32B6CBF966A71304AE8D8B54C6D65BF1EDC638CE81EAB25B91456 CD6F1D24E6DEDE724CF38D8A26C970914CF1BBBB4D329568E8A08DBC707E61FC EA8FD15F55D206AC9899B42AB0FF6FC055E078F337B14047087B868EE9FE68E2 98A132EAB052E6D793D1014EEE290622F76D6F74529D6897466523111FA5ABF8 689DDF69CD3D54872CC82A93E3A02CE85612BDE2151164C0F08E16FF3CA78AED DE6E10CE78CFBAB1C39AEC89CC8E905474F7A1C4142BF8343685E429A535E392 02029BDCDFE0B03DE03850508E2039D4A3CFD6026AA5AC5406133DB1EFF23DB4 26B050391E30EB8B5D5941CC1072B5461A2EDC1406A1DB6C183BF74B59588C11 C0057CC381E4A0A1C94357E287826D4EEF612440005599DC66721C1FD4EA7EE3 F955E106B0D221C6C37CE001978C959A232770864AD09A08B44A77E2FD3425CD 01743479251A652B6A03BB204E50694743CAE7EC325EDA3D27B54AE7E3ECAF73 DEA881CA5DA8933B6EDA7B557344CC5C626711344E783ACBDE533BB2681F538D 0821F0C4C705D7EA9D55F44DAA444666F6B6499EA7485E22DBD9C182B66C8546 536B202912B77171A2BEE904228075C40E0B1F46BA5CE00936EA415BD48E43BC B812D9F523B4D65BD34FE3F6A039A9D9CAE466699D7AA25FDCFEB471542D7F2E A62842FEDB95A5F8B39126B4AC4BEC6022E7A78FB3EA31AFB547F035CBB7D7B6 0417568BDF5B10911F5C056006BCFC360AB633FDF0A6B75668C680B19A0BE255 0CBC4F8308C269A07DA2B3B6405D87D5DD4C3E6C5EB1EFC9688F593763AE1654 AD1E28C13BE51E93702329B18A7BA1F00A31720DFA0EB5490FBD836D50322774 32E0E873534B05F92407A2582766BA973E7D3141413E3379465426CAF4C2BDF9 4A02F675FAF4DCF74CB96CCEEF90E4E0A7E80C830C29E33B00864CD7D7F532EE CF9C6466A30F827C2750BFA2C011EE814031182E81BEC0F3BF4E945B8DB3EC12 11A4C4EB184534A7E8E03F62E3806CB3C6C44CA9D7F291AEE213941DAA2E25D2 D1457E6F7721356D8E4AAF38EFBCE407EECDE7C1D47CC7D961F20F202EA81C2E C1BFBC0E4ED7F69419839A780F18078CCF0DFE7D2272AAE710E987769612D224 4B66EA3C93957D0487FC44958F43DC36971A7FE39A834291DA38D824D1985D38 E2E249B24828415BA34BF197FC9FD787ECA4CFDB83B3B4554471118916373FB2 2B1B432D077D36182DA3ACD95E5544E211F6BD5636E3A058128DE24785A21285 8A529028ABCAC295CAA8B1B818865FCD4C09135D307896559F8FE66C9D3D0E8A CEE73071FF45CF5D82ED4B4112DED2E43FCF87CA115285AEBFF263E10671BE62 23EF8D2E9467116D9013FA8A9BFF2D3E663FB61038990800953F38ED30DDE584 84F42F7887CD4EDDAA16C1903D156CDBA05BBE86232A4DA391DB2515A6E72EC5 EF238AADB730EF5C961B7F1029981767574E553C539E8E8EB70502E9DB4FAE24 3AF927DD7B4F9F0FCF636CC5816BC51EFD69700CFB99DF50BFA2CE7FE987E180 1BB02CD698A5E517BCED4FFC66C6D7FDF39666D7EA1AF7A0515F9FF5B2878296 51E81AB175A6572EA2FB2A69C820138B30BB4174792D3B2E79C2FED7E4CFC9FA 5686872834FBB5C6D16B993F79C551800D5D0D81F9115DB4A23131C46B345E74 3CC27219BA6B962FB979D54B3C516238ACCDF2D732057983360310FAC9F552A3 7E05544DE5018CE1E0BFF9D7EE32927A1751E32E63B2F1FAC2647708BD62C17D C7F15779A67359F7D0887821584A54FA12FF8748CF67ABF75B5DCE8EA0CB5401 6D8AA8978ACE016F175D15DB48BD80BCC8ACA3691D3240F3F59A05EE0C5FEB1A AB8372FB4DCA8C084B97D3BC5F92D19659B9ECB939884C2ADC06104549C25818 EC86ED82E15D6D2204B0B3E7B4C5249F8584BE82346FD090E15965A91F71220C D468D2FB77F02535AA604D7B03FE3D133033497C7B7F0DD0FA04F04E095A9DDA 5BC282FBCD6F65C8D67DEEE2F544CC0CFA431131A46AA835B88FF9B79C0DD171 0A641BEBAD59212038FC03BB2DBF9EAF577DC51D3AC194E5AE6663F4F634C0DA 5F93632FC89FCF2108986A84BA4A6A5EC8607D54C752938804253FF9106A0A97 DFB0DD093B24710063BFE6E13587B884A75893CDB2B3B9104A91725CA34BE06A 044FDC333CD8E7DC2321A85654078E82D5A2937ABC7900DF5B99BE51220E9A7E E9EE83B5A824C954CCF7FBDA776526CFC59018D55AD8061AB3F7477F82E7E3F8 C28EB1EFF5900FCA470975AB372A9041BC3437618CDBACA61000C8C5FB921D96 75840454E3CC4CEF776621E6DB17C53BCD361353CDA96F5C689A831E72EB155B DF2ED2B453DC45B15B1B504FD13EA15C43BD9ED3A73926329C3A8F3A18CE44C8 924AAFB5889EA39AEB3FF69B5291E203F9B4FB80DD7DC14804039A2C12439157 0B975B144CB9EFF262FD8ED4E80B654B98952607C9F5576605BE071042AF3295 FC7EDFF6AC8685653CA03AC33F6C2078DBD72E426638E69DD162EA7D456FBEAD B28C078709AE0C47082211EA 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI7 %!PS-AdobeFont-1.1: CMMI7 1.100 %%CreationDate: 1996 Jul 23 07:53:53 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{0 -250 1171 750}readonly def /UniqueID 5087382 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868 DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811 4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3 FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB 76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5 123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770 012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6 A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413 44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC 4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050 01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608 D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3 914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05 261969424F885C6B93B28E3223FDD3B040F5535D6AAE9201E5F49A143F3B65FA 75FDE4E5FB4FDEB79A695E89B66FB385A22222553A72131A7BEAC3F44DD0AC0B 0B566039AC5C1CB0A1304B882DD2497870AA5FB1FD17A704C4668F6F85F6E3CC 814D68758E24D9199B67A9395FD76257FE284913EF1B8897FFA602A54B39EB03 2A783B4A582A33F532481524A8BD8998A93DBFD4804FA77802FF52D5183117CF 80BC1398B9B1F9844EB62E162912873F37005CC29CEB7A2F0D0BD5BB237F61AF 6E8FF7D1D0F3D3B206DA8AA5135173B7F87814C98388FD8BE1476B16A0349B33 DBCA50A7DD443B9DC042D5899AA754FD2A2FF94163A4E025C4EFA24C0ED4502D 9937AAD61B0DACCAC9AC2A841BD99AF4DBF744E91EA4812C0A67E684BD630DAC 8F85BBB485B7D8515CE64DCC64A93F84A87186A9ED7C45D5E053A50533B1D946 6DFA6E938D50A19F01CE11B8DA6000481A46246281DC75FC475568FF72622E36 EFD4E5A053388F6D294D3789EAFA07EE8A56E65BC295B965154F0931591C8E86 12F3DFD135ABEA17D8DDFB3DFFB413CE9B4BA780D80F84F05F1A695C835C65A0 403F6FF06AE1A5A8C1B150A337A7F9EB06FCCBEB5CC6026B77BF6DF51F19E650 518A9415BEEE9E438273B2F62E02F00A6C211E413112454CA37F645949D9A544 639D86829473D1CD29D0D3E591D9F3B2D71FE5FB6B828201D94CD4689917AA13 F91EB1821816C5135DCAC42098E0CC7777D383FB28E4B99CE693794A451EDA79 5EC4E2BE9FD1AB7FEB14DCC949A5B37805B72D26F2EB4D8184CB73D8C3036CC0 2C75CE5A4629E634C616C25A7C3B6490973AE3DAD69C052656CACE90401AA782 22697118180BEE854F4EC6266C019B3E6B6DC96D43A4A7FEDF1B68EC7E86FE32 6CBBEBCC7A16D2AFCA8AA3523BFFBEB82452CD71CC45AC9149DAA36C67B99918 C10CDA4569460D2C2E130E976A3AE5C449F467CAA756A86C68312BB15F6B009A A6A350EA2775ED7BEAB11762BF40EC8FF20E4D042199DD1C2BFD8766F1707EA0 52DE8FE4BAA46BAA32B17B8B4F70D8C2AE87B1E58DCF07416BAF7742CE385726 0EC787BC848121FFAF6F7ED45D82CA53A2AE92F744E1378CB1D5D164DA4EB3D0 47C3CBBA21D0B12944A6FE3BB4446DDEE08DC1D473E7C944CCD53FED0DCAAF8A A920906DE239964B0F2F577C959D8F7C608680DB684E711A39036472E86550B0 FF3554A5763BA16D413848D1BB721CDE5393CEAECA5F96038FFC259548E154C1 13EB220B80E74F0DAD56EB901B3D451A524419AC490FFD00F1132859E722A68B 203B418B5B53A1A0D4F0CA2A30523F91DD4CB9D67034207188DBF53C2CD1C28B DF1DBD43AD44FB81CA2AA7FFE0E24C0783981B71E261E6D3A52BDBAC0EC37EBF 2FA929A5AAE7F5C6F7343E9EBC2DE11E5C602D5BC724FD69EDAEAD3D9E09AA5D 28169BF0E10F9606884768784320E8A330FD6AB50EE58062A66306726C16EC22 63F08E3D627CA753F72782C53A01175FF05A523899EB82AC088F4473018D307D B0F2B8DC83C97E89ED3051CD3B32C93A13C578187D145D498204F5318EDE00EE FC31C1498DA3F90F8F7ECA880BF411BD095384CD31C2FE20F78E6AEEFCD4551F 236CEBDC2573280E04536441849611C7A6811458B29D1F68B0D22ED8AB9C83D5 131F3318F4B7FD6776AF9DFE4C06C15AB543344D688786A75F8DCBCE912F9081 43061B0780AB4116B484683171AD310375AFDE4A8AF2E218F600F4C2565BE1F5 24C84DCCB6C1F6665799699AC70D1B4E26DEE73E3664CF254E7A5EF84E3EE918 6C9D991C2FB053A319B8A3BA9003FD7B9ED11325420659E6755A2A53878A06BC 1DABEBDDCF58E0D756F336319A6852755ECCF6E02BBAC9BD064413313ED0CE83 E37F0AFF10578E3FD7FB0E39323A323FDD470F25ED46AC9B623CDAC69EB4AEB2 52972141E1D7B6C0CF2B969BB549B2AE0BAEE190C310D4CA9A64F4EA5315F073 8EAF477D72BD37644370A1968541F82DB3CA75305FAF97B5EB7686CFDA4AE591 C97D453B4CEA921BD405A6C9EF92EEC8BC91D33E95784E0787DA709AC89DB1F0 30E50652708073AF913D7E79FDE9D5107E71189A0A4B34A23242DD6FDD12E64A 463E405F13D2A4C48BE8BBFBBCFB68575E4FF79E3102166096E5292C2A536274 1F558A7EE1B09FB6C0CB657A410363FD421A128FB41DFC5B611267AEBC4E4681 90A574064FE4390469A3C45DA9C27C044E3378B7D4E0DA0C8B17FF77A91DEB43 9000ACA17BD08A75D63A7BCA92B07BCBB99374745A395D0679014238594B5CB8 4DAF4A3FB3CAB503421EF0A1CA0167A9A2BFA7C2827B55C3D5E3A3C4A1E33E13 701219ECB8AEFB13857B755ADFFBE82BA1DE3B1D2E80B02D52D0F94508B17423 E4628D22A98B79D148A53C3CD0500E46F67A98F168BE421CE5BF941376211FAA 6EFA981F89FF2A4FEBEB696F68104946F1AB1341C3C0F2DD673D382DBF34AED4 5C96C38A9976853D4695BBBE1631C6904D1AF210DA81AF0CA581BC088FCAD865 0F76B47C4964CED3FDA208079A8F455257FD806D569F362CD028045CA2E79973 7C83F83F0C84BFE0F447A93C3FF7DEE606EB0DF972B6650AE05C8E0EF89BDCE8 83C30385F5B6B1D74D73E5B5C831A1409A5EEB7EFCEC9EC8EC5A57B9E39B2448 57BF7C9D2D1BF10D89A37C538A3026180FBFC6D2F124C33DC805132D53CDCB84 EF043CB26F116679D5FC50457CE20625122AC414932623F74D1686226B372101 49C3E7CA7012CB96F3A0D505E9CA029AC6735F40D0F7DF6F9A50211B854659BD 0ED93D2E82EC63A6F889562BBBBA032F3E49F3B293002AE90C77EDFF36EF71E0 C9141D1F21CF494A4F3BE8320F7D88B5EDE10B322F4ADEF3202F7F2CF4575E3D 5BED05A4394A29E071BD94B9F1BBDF503E4E8E9049A7BD2F8AA967DAE090210B 00566813F536952921224FD6180E1B8079F509A4157A4A66CAC2877818B4D6CF A85ADE47951132550A37226B00F259492F4ACAF5EEC49F2DAFBAC691CDE7E147 16030B5F141DCAD8B3752E3754527F503B270FE1B2F2A6E35E5E328FDF9034DC 64245A340089A86881D1EBC86EB1AFB671A2925578F18CEED0839F3BC902FC98 A4C051D376DECABF2D0B52D640BE41E62777FBEFD3B01DDE03F118785050FB08 3E36F3BE6ABC8054709449121BC4ADABC740331C044EA0A63DEE450143CF6BE2 976BF38887AD9CFE1C39E6EFDAC3A4F947BF4A7CEF48BA8274B9DBB99E57F250 A8D8BFD4BA3B21B078CFCC353952BB43CBC214355B2D62D695002681C3CA956E 97B1C379E32FBFCF58AA4ACC9437AF08DD3BB02FDAC922167DA92E002E844BFE 8CF4F48C65822F02F70CA224CA04D3E03870016671426044077581DE9936A385 FD2E6A97EA6E43FC6C86987441983D7C189F4F78486D4DB24A0A939760F87B33 0C1D9B5F058462BAB7667038AC348EDE79B9984998D1DCA2EE08CD076BD980AD 997979EE5896496EC61DA98CCEE0F578801B8AFB78BC0B937B5829C9813B8B82 EC9E87EF238FA3AA7C51CE2108B28C43D5E0DE6F92EB7DA4503BD4B16C9284B4 C3E9BAAB4052F0F44F4B9CBD2F97DC5030C1B44E1C173091D8B9D2A05C685AE9 B7978740133006D0B6ED8099D4CE012DA4FFB84F95FE5C264D707BD7A2E78601 3E554C657E3701279105A8678CAFB699A89DA93149721B36D0B774A7392A1027 0F2F3523BAC0C8DD22544E25EA4F06AD879C1C93491BE12D2C33CFE23B84C6E7 A63CB7A8112EA43587317C499BE60C9F1E8161CED80EF7B7694E6098C888462E 3843939E845CC92A73B918E0FE78AE7AEFCEFC1D54C370DDCB930096DB1C5903 184828B481AC2B5CC1018FB0FD987B31BBCD01A27A61A492F2155155A813A1D6 064474523D33D796D0EBFDC17ABDCB4344F2EA6568BA3D895F4D027253CAA753 798484458E95E42FD3FE9C24E81EF716A0C1FB48077B648EB4B00EF4593C78E7 50A7DA5FF5783D73981DC70E3E36534383E1515AB267F3AF78CF5AE2071B6E0F 087CF79E131B016B2CD7334ACB5E7FAE482443EEC8DDD14D72EB00BFC8E7D709 802E2678E77126ED861936C9E2A96524F44B03C7C61278457C27700DBC44E7D4 FF1D12652592EA843AD0581EA5CC4F6D20367309070B414ACC8A2B133CA3B268 E696A668CB35EB6C4ECD0254E09C5C500394A09664C895BF619B06CEC6BB509A 3BD2665997191CBAF3413FE790FEBE229D8AD836013C7CFAA79494920F8B3235 3898C44CAB5B37F946C0F2D747E0A800E31EA7F1C98058A87963443E7B369FA4 24AF9C66C9EF2AB8BBC65B331ECAFB050DD8BC6026F32D5E40125EAD3E431242 2A7FE26CB4E3B4D74CC2008638691528046A92F517B65BDCBF79507AED01E9FE 65E546A4115F14957645230E39FA3F8375CF42213AD8B7D87409CA1B56AD32B7 4E67BAB66ECDDC464042BEB50FF92B307BA3B6CA98A09361D432DF606DD9D6CA 1DBF43A871FD86D6ACE1F75F092854A705ECF9CD24D1EEEAF62EA3E72A7B01B6 0EB21A9ECCC270451F661955744518CF712E5734F31E58AF49C483DEFD1F54C4 E73C09E0A2B3CC823D09937F429A7BE37241C4BE058DE9913C26C259C74F7C48 EE26672DB1186EF2F311FA2475C2D35E58D6767F54DF80302E81EE98ADBDC337 7074E0879E7E7E7449A276F936DA07AC43E67D996ED458E3D2F059BA89C837C9 ADEC54EE207481545DC1BE3AF3F423CD3556712AE31FB539A5B564CD32100BD9 EAB0494C748ECC41C8FDD26A533CFE16BE1CC966127DDBD94184A5F271D38146 0334EEC8FDC6AAE6035F918C8027458E22B195242AAD87D212210421A4C86089 850E2212A61D608E5727BE61E1455B3C70C7569BC168B050D51800B4865C061E 9B35F57A1D0C1EF510D138389ACD45868E5EB36427153D6D3ECBA7B3FFC6D411 31FE6F72259F744A35846E73DA6BD4824BD7772345CDEA9F821062B1F8B38A2C E43131E806E807784C97C5C4733A198F895605C72A27E248A23594CF00D1C8EA 659C7E9AB601C3A0A2C3C0FE09748C76F116BB6FD5C988FA05F3BA5D7302BA9A D8C72222E6A947F6D24F2DC2F9F73B5CA49773D554CEFD3EA30CECE78F12AB06 58668E2D6657B982F536BF5469192A480F0BB83751927764B039724B1DD475F3 97FCA6F1030D4966D18E355009729AC17F7FBF9FBC5B580FA523FF008EAC67BF 7D2FD2B8ED1A56FF5AF9CCCB45E1265A090692FA9B3E8710E274875058380161 E182B1058DB27FC945F5D8A4541684D79DCB764AC5E3C6F283A61909F729E603 CD6C8F25F452AF9457F46AFE4623FB3C797C1C278AE77174EFE8AB82DF6A77C8 69DB185E4894755F57CC740C56D0592F5898925C0EF1B34C3F8989BE852DA259 796CB43C642F48C59BA39208BCF7CFE06C09101581279E2720DFE8D293029616 F0424E75570E2E64636F1FEE7B6B99A2E33119F67D0192241FF7235356D57A86 E4161172FA61293BF8A424AB8D6F0F9FD1A2D1A5CD8CBA673CA6358010DCB014 A5E1BD0F0691EC3C0D12F81C6CEC1CDAC4D6DAB15C65797ECA631EFB538954E8 5523C9D5F7ADFA7C361221511F52ACEA17EAA2247D62D34A8558325CE740F7DF 5246A5C0F30A0744A24F023F5AE364AEA6011D01C05973B49A6A38039113BEA9 19007F58F8670A150AC7F097D971D2C0B22D23E95D4415CC4C130DD99B119C68 B818292C63B5CA18215B84EFF1208675F8F2A0778E20FF5F7B190ED1D6705E0B 1CD18A2741B7A3B0DA1302187D7FD989953B6986FCF9050F1347B2A6EAC540C5 20C95022CD3CF8A8AD34F902B3E191C2B0644BD26E99A62EC5359261B0CE77E2 BEF92BC2B3A192565742FD831103556FFD2AFC63380B87E6189FE1EFA87BE000 A8C35DD94752C61BBBD1A6C22080EE64B00027AA543CB39D1EF5496C7CB528FE 4CC5EA114AA4D5E4A8880DC804A84CA100895113C8EBE3A64480759D835F2901 6CB257932608BDA09FEE59585AB190A3A848BDEEF3DB641B7DBE3E19E0F5D2D0 AF9EE276728885B940CBC10A1E93D2BB908C5FBDF1CA3B2367359B786E49A0C5 72DD55C640C074D1FAF723DCFD8C7B34468459C41D4BA0E25D42C5FB46622D72 62F7E1E023C8843931160178FF28DA1CCC6657C050175C08C2172018F5AF896D EFC9C9F130D41F0F35954890828A8791AEB4D6DC8DF6EE05592077CF479F8E27 139C56955794D0622DA367E52AB701CC75D929E24D8780D226CCB2B58426342D CC56FD57C3AC99D4A42442C72BCFC551391403F2EB7B23FD0898D399F41C843C 213E42E81E40EF3576DB0D64060BEDAAECB5716950F8261A0A23D23972331CD1 ADA438E8AE1AC0E19222716D1166A893038923A19004BE1AB6B76F8205C34F66 97B75ADE080AB0FD0904DA7FB92F2F6A4795884020066A75CC8F011B32C0AA4C 68A9221CA0144C1255C6F58DAC827027965434ED697BED6ED223470EB4526D6B ECE0B35046690B9AC3EF059B9C7AE7746DC42D24B9CCD05B39690DBB9030DEC8 B9CB424DBF46AB8149F215BB7C5A133EB66892BB4F56D412C8D89A96B5D0569E FE59B7E9308617F27C6F3924051193D6A9D67F9BF613F3D7F2C930100E3BBE9D BDA12037E8E619FCE0F1C887ADFF4BC778451851D881BDC4134A379BD243E7E7 2F4826D1E6D0A2476F69B349D5669307783ED24CB05F1FBD14DB0639FF7DB94D E14B6ED1D22ECA829B415C7BBDAEA6682C2E450043C26E6E36AFD02C516A4350 B176B24A91FE90F900B12A6D47B112C60FF87DC9EC6B85717F48CDFD0B83CBF1 8AC80251A09AD9FE29C96422F4864FF39AD985AA223718A8FC61D1BE88EA6A60 24714643F26D1EE281DD8CD711DFC1DB71D8591C20D7E6E44061560E145ADC58 A902E13ECFE2485C5B846047966D2D488F5912A9245B921303E3CE960206C5DB 66DEEBAC907EAB2BEEABEFF24C04294BFE828CD44AC8730AA922233B45C230FB 5C4D685FDD456382B3868ADC9B0A95C42C5D1D0AE325EE42324239F3F9DF4B1E DB53DAE899EC1D69DCE5BB6A48E3CAA749765E3D179BF177A007E9FC54C59388 8C51ADE8F54F84437969EC7F9A3433775890BBF1CDCBA52E0857823D5F1ACCC2 FF339E7FA4B902BA429B0A4E1A4E74EC34D5433F8E014543BDC5ED3227CF4FA5 423D0459DABA90ED596F40430321E9EAD6417244A7C019C69903EF5499DF9536 8F7F8B57A15C79D70BFE96B9687A212BA51068710DC895E0AE60F2B3E6BD97B8 419B5C179CFCAC9C5545ADABB4AF46EE0F05A9CB45B664AC64671B233D1777C7 3C4340E9A8D51DD13D1776D587A40B68FAE22222B2EE5F8ACF6232E2E78B96BD A45024B4899BD77293B41DF79076C63E518DDC9DC45C48E8A6A8996A2EEFCC83 4FEEA06D679865F2827418797598196DBE8C26EB1F1525EC121E3382F798162F ED79097EB57DD21065FF3D2C283D8FC126E3798304686C83E7D825AF074C90A5 234C87D15F41B9030205EFED20682101733BB764556BC3595E006169DDB6AB2B 7856D44FEAC6E064065D3421583B14A642A5D01E811FDB810B8F826630DB0776 5B35C8619EA0739E86DC20DB0A188884A03C9349F42AF9E1BB558B7C3309CCA3 9FDD582BF7C608FDE2E166C5547DB10C922E6301D54034E4CA5E6A6ACD5BD25D 51402241A33426C38A3C50B18569001D813238E6F998E12BFC66CD4F1F9997AB CF8994C29027BC08609753DE3A51ACB3C120E21F2DAFC971AABCB38AB49079AC 87FFB1F4F548EE28598B6456BD16B957AC2A4C71E60D8B7983A795312BEED8C1 D965B3878F7147FD47A6589EB063039CFE14D095B1382F3A391BEB0570784F32 BBA35E3049403EFFEB3975B2E269CFE35E2B4561F47C0ECCF348183716D2E974 0FBC7186B18443377CDA1FEAB8A0604D6DD6395E80315BCBA78C282F068FBB40 4CE62BEA89A2587B0CB0A460E6ACFE34308723B4FE041152C2045911BC12F388 6DE12CCD0D65726F69BC8D25F0030D6CF3A85824FF52999ADB2720953310D97B D97A5543D44D3A3646BDA04A9ECB4A71236DA4D168029FB7A6B13946D0B1D460 610BAC199987DBA2570B57FAFE0C981EFBD3669D6F9FAA832AD3D6FFE7619A74 261B1B4DE7A2823B2DD8BC904AF66710A985AB96E8D9FF1324074AAF6B762481 237F408DC9B6C432DB5E1007C970AD3AE4039B238CEB19C339AFB5669A09E4C0 3AB3970EDD521DBCD8133C01266B9265BC5FDB6E240E3EE4E1A71372BE56AEDB C8FA29971E4BE448E3EF2651432E372D3E9C9314060250E4E4B58DE6AAE393E5 B4BA25D14BDB60BEFC8C2C114CCDC8646E916DAE10C8EB07F6B2343DB7EC43E4 EABFA5A86284678F6B4738D3EF31EFB7ABB0E85E6E15054758F03607C038EA6A 55E60FE89BF09F95EC76D4E0ABE5BC6924787EFF8575DA890788ECF4F5D4ACD5 6EBEB629EB21810054AE4777CDCA85BD8F97816703D5BE59A536BD69D6B968ED 7BFE67D7527612A67FAF75427A34D7185FEB20A5F960E4109D5E651D03ABA070 65D2BB9ABD723361F5B4604A573A735D44B388A5A98460E108CA8CC71A772E10 BFE5809012CB1D9BF7EC386722A9E25CE76EE675C49592FC1AC158030A1A2D9D AFEF4BB7E793B7656174A05E7D0D9654DA0BE0EE679A41528EF43B1EC5850831 6031BCF629D166A06D64EE01674FA4F190A6998D9FF066BA0C6B09F15DDDB10F 4DF749F9595E1533EDA002622F7A50495A4EDFC9EFF50F7DF78F43E170751E39 5DDF9E6867AA2DB637946153DCD97BBC66FB3D376FFCD5FF4669868B4D1A9B7D ADFEFFF9F9F7903AAB3270FC1B2A602F39B6C6948A9FBFA2AD126BB2BF83CAE1 A2022390D29BDF47C849C064F591F9B9D7944F5DC1CC1DA377A3A36FAEB53852 51098DD13386836A6F99747E6ACA6EA1AA0B528644A026A9D2DF11329A12EF74 D97236A506896A7B16B51C57D845337066F2DB61140179095AC41D82D375E152 1E6E97EDA55A14D15C2676089B6F3CC295D033BCD3F949633FA91CE6C55FAC32 78CA0ED7C565503F8BEC8E017B2AF884D47B28A45B92865FE3C039F771A21FB1 7B3AF0EB9C640014364B5319101EC9EA0E2C122D0758D8CCEC11898C9892A937 D367230A78E69EAAD9E93F9AF589BC7038A0A76B4EE3F782E024B4E751F61B64 A2E5BF661B43EAA1430771050656192FA34D36453E52A01EBDA5EDA26F6ADEE7 E62628524E62C9875E01F0E03B8789310A4C350523D4B9BAEF56CF15593CA485 077BB71500E88D654D7FC5961DE4DC95B3FC7A948DE1206AE182727121E9824F 56BE4D3CB943C011AC0A731D02CE64BA977EB5C0EAC5B623884193E1F5C841CA ED7149A2FCE6AE9035555D707EC1A3913807144BB36290B99825087CD5D375E1 7DABFAB59156F837C59B271647E9AE73524FD0062E1810682EDA4582753F067B 8FA1A6E55120BF9A36D114A0F132C164D035B4893E94F47CEEF9EF2E34046FC2 6443DD4DE8297B6D41657414A7C0DA4A6FC239FA0F4C93B2113F1A9AE96E62E0 F87C68C1F4AEF73471B01958F36A6CCCD3E4D0CBFDA8D6FCC4E33BEA053F1E6B 4E2BD92B78F1169D4898409D7BA75DD17A12DF0B1AFFB992344F549ADA14B364 EFBB14BB4C0D04F74D15BF8DDFD99D371A8F11614148D7B34338F2EF0DF18549 259ED60F63E58B8ED556327501DDA3960D588B791824D5B3A37FB2B601D2DC5B 7EC02CE8D178E6A85123758CD241081022E31C60230A50C030F20E755090974A 3116CC7E47BAD17A2E1C7EAAD732446B8D6D03C428CB5C27A3BF593F352E7285 60BACB0C08D802A1BB8FEB8A55FA682C1C9F98F3579FB2C0A4C13CE797046379 4661E77C57EF514614FDF3E221A16F2537EBFBDDB7E80F1E671437AD20AA2763 635BB1A36F481843D13FAD80DEBAE6542FE4C5D70E7131713930DAABCDA76FBE DB487E749CD96119A08893F8565255CABD19610065FA6D21EDF1897878CDCB0B 80F445A9D70DDEDBF98CBD6550D850D329FC784F93B48BC96A081507699BCED3 0060AE7FEE68E953FF16E5C604F365B4DBEF40121487E628CC937DA112A31C06 F4E0649FAE6E76DDD5830EF4CD8EACA65278CD47D2452B61200C88A370B0C10F 8CC89054D98EABFEBFBCCE03D107AB623935E74AAEF994DC57E3D2645AAAEEA5 442C4418E0A6D00ECD1CCE000F53ED1007E3186637F63BF8291AB6D8A1C6A7F6 5C2847D63914BA849E2493D85CA824AE558B4E09E2F9E6FF8FF81EC96301007D 94EAE5F5522A2CF70BEA8C02FBFC5057A28643851FC44CA5DBF84B10B1A098E5 7173D9F62E6520859BC2719F554BC1FD8D8A42439551469353FCF535F90F869C 028496ED132F1997CE5EAD54244F3BB7E5937C24D4AE4FBEF98959EE9C8E260E DB4661130BCF14B2665F6CE3FF7BAAC8ED5469071FCD21BB440F00B5CC1B4190 21EF6C8FB29E37C99735E2621B96789543BA1B433DB433955F2692B041A110DC E27A7F3DEBA836E7D4F68F21E1B82E55C88C8F60DA9EA00F57851F4214677C0E B1C2915FC972062E79FCCBC2B53AEB057A582191FC2BD7C270558054A69BBFA3 1B702E6421ECFBA236D21889F3939AE683E4292A1B9A25E5F510E9AFF0639C1C 8C63A2442D98B3E6631F3B8C70FB8FFFD19DA93AF8DEED9ECC4DEB17E3765C5B 18835CBCD986FD017D949E20BDA7A3E17D18AE11F82603FA6FC1B6BB961DAAC0 F6396450B8DCBDEF24210E49C69FF77CA09A4C61E02296BA6D015B4C532E5E98 F415A8B2F344C23D93B769D07F50D00BF2B74F253A90957E0062EAAD24BE6510 EE9405BD7D9A4CF4D0046BAE01DEB80B93CBC6A518812CE1E21CA681351A398D 2FA55D70BE6C8A7064833CAB6428E57EEC367EE196E6760BC8B28EBAFC8AE8B3 DF35C99254BDE95B2C4F5E9A0FD12B524847194A438BE873986DD12C3DFA14D7 7D2D347F7CF43BDF83F392811D79FF6877CCFC0E25E2CAB59D0161E419D0CE83 40E6F1BE2E48D145FEE9CDE6E72508FDB7E070436366D719528D0F866DE5EC0D A3522166CF749419045BD0341D5D0DEF82F8F9B933A53C0FB75A36B552DC6F75 F3278D918B0432AD2255BDFD53BD1EC3D2A49FE1AA6D31E799E3DC38E460C49E 38DF3D8883B872B92C2D765475341F7C8953426C91AA0A56AF182932709EF0C4 9A4E957F69350679F2C7D190FDEECFABBD3B1EC026ADC5FC565BFC4FB128147F A7EC85D303F35D30F5F6601A55C1ECC79C7916D3E1BED5A4A7DC6273FE4138FB 9E8665FC9499A294943F6152CCE5D13DA3964FF2C6A259426C64FE534A808906 7797932AEA653B93A53B05CBB4A2644CB3BB72E3C4454963229CE8F4E7496CA4 8A88D0FB9859E18B0B95D7B2318B5445C87A257A92D9A363DCAFC5CC3A8B357C 88548F80BE6D08BE3950A26119EE6B509BDB673EA7EA120EE195F54696BCA409 8B369E4D58653922654332FB0DE9673271F8AB2060FCF480A99860164E7C3B90 BF30CDD76E04FB9DA9C2D2CAF8B62DAB78145205BF50956E38AA44454A390095 54804B5D4DB3E1606C439D62139575BC9FD6F3B022C7858E6723EFFB02672074 19C4FAC67643D363D67D0AA3938B6CFDD77B316503BE5D84B54C6484A9A06D27 F6220C4A13F49C06AE71FD8E9E4804A36E0A07BD849B9D9E930C1616681E4CE2 8C234BC9B95270C419BE75B837F78567E0CC4609DE33712AF5BECC4836866ACA 005DBAE2842E78B832419E1C4A170D5F28733A6EA65A2FA6B9E09DCAF9C734E0 2C212E18DD26904BEB2ECA36659B763E3B0B7A766DBD0513F0808A4CFDECA332 21902B19D9FC507D3951F0DCEB7F62A38B009A13DFB8DEA6AAA6AFF0CDF909A2 3E367A5333D7350EC049C8882CA38C505ADEB316398367FDF1EB3B15DDA05498 D6D8BEBCC2DA5DBB6C1D95AE4AD0AAD2CB4F129A6CC6EBDB056A7EBC2BB5F97A D0A0F3A79630A3B9B1BCBE323B36C682D9F7CD2ABEFBD94EDAD5A8DEF42D7847 D719980629A63E51C505DBB533F293A624D2ED2CA7D8817B1E70D4F1C5B5125A C0DA944F248C89E432090B6BCA8021EF4B020BF601A54E156A6913A7F1D38F0F 6D56876EA7A09E2F6F5DC8B28B58A027B624DFB3E1C3B38436B14E4B0B107527 89AA8C7E81069063E0F4060EA2B12BBB446CC9FC61C5075BC375E414FEBE8C07 D6704CF7DD46DA54E2C44B8F9398748767D7D8D2C8C2AE4B941B6041D34C3D18 46DD3880BD48050BF63E02DAB17FEBCA31D70B95827D47FA94549BC1ACBF2631 92B8E30209757C9A0C9B1BCA7161E8A2C0F2F0643D47F4EA59B1C3B962C8ECD1 4C33AB4797ABE0DA1D0A5B7C06761806720C04B5459FCEC2274D2D66A47A3D97 75E12D84F6088BED7A9202E26066D342C11A29719C7E92C614C2F050878A44F3 78296C0E0060B1F14DB3A3A100C7880EFC34A1AB3121E6760DA47363A8B14EE8 2AC3D4540CAFFBA19E61C4EC0120DD1FD05379999ADF069769BDA73A8A14509A 125CDA0A998A33DD53F121782653D6C4CC0B6D5AA97BE4F20E4CE0954AB5EB68 2FF8809AEA691336BCF02174F398B20FFD2BED9816A86B9AA74802FEC08CD6FF 181511F7845D37917BFF8E197909FF065B68B8D57E1630D7176A759784715177 E7095B448E7BE184D0151DCB3047EA76886A637B209BD18961D65924AF5EC583 E7172A3619D110743FA7B6BC47A8113D1381D6B9E1ADE7D663A54ABFC62485B4 FC1D632850ABC737F4 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR7 %!PS-AdobeFont-1.1: CMR7 1.0 %%CreationDate: 1991 Aug 20 16:39:21 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-27 -250 1122 750}readonly def /UniqueID 5000790 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C 8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E 01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B 52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F 0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB 7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4DF34E451D4F CD4585A94D6241A407AB60053C9E73855E79D8781CBE4B45B398D2CCD6C952CB D4D39DB74CBD5698572985A379433631A5BA7414D294543881538943AB2234A7 A419B2694BCAAF4C83EF1453052C65E799A1247B84B2A6F2A13F66FA9C3D9475 411E92E33A40918CD4D05D919F474FA4F95C93A18F21DC41CFEAE729A7B6E7D5 4AAF2E837265CFB284EF9A53E8B0EE59B9C6E2721133F3F8E4B7836FFA8D17AF 40557D5CC0746F6F6473007F2FB76B1BE726D6300B43E124EBC7337CF3279B7E 00C29BBB18BF530895B532882888874A5E62CE819B1C8B9738F83D01EBC374DA 89E9B60739CA93A56AB338D5B70188C816611ED026BC8E7E51F4342C8EF7D198 831CC18C9742C2C16CC57D3DA3F5FB9FCD98132C9E3458B94626BE695BB66E5F 0C31D21E3D6F139CF705E1022489F83B34B51F6793945B1DE5F2FCE2068B7898 88831E68E4D7329F722C3EAFFB2AC7FEA6F2BFA6E1B501E8C442995A7B4A02A3 F73CBDD20D2CCD6C948388F4FC7A8EA85FB467409A01E498EA2F2C95968C0149 4A05A87FE46AD50253D3759DA9991183FDF5D10FEE59B7850B8A21CE8BEF6585 9A4BCBD93741102DBD5EEF634B2AF429D0E6374AB25D85153A709E8F16E10577 BB4D0A17137D749DD046D3DDB47076376444CE0552E6C6662C86EEC84C02461C E747A61C616DC248DC5BCE401200D344CE84ACE7F16DD257273DFF259012FB7A A3793078FBAB0B5044C798F25FB7910789F29B1EFEAF380521FDE1CDCD540480 B133FABB435A9B92DB0EC8C48B1E71AE2F7EC5133976D783DCB6591F9B6B0EF4 348CB831A748F17ACCC3F3D341DB0BD02AEB9E551E5982C8709479655BBD6434 D7724A71047C53BEA1214947BED16CC1D74DE6EFEC01053815DECBB772C3E43A E3EE5DC068B8AF1159F5F5D2455E1DF78AA220D7CB186485515D73C297E1E915 DBE2DC6B3F7DF84A31A62C7B9B7785CBB7507AEA021D0248601C600A9F3B7B0C 6E7B6B67BAE781945465AD6F2D584C3CA072517FFED86E190060D8A306F3F2C0 94F0DE7D50F24C36142285BE032BC02259EA682F747B07DE9269AE5F1B27B1B3 B9334A73E124C0FE96FB52C13633D522CF07F44E28AA68BAB6575E43D7C8ED59 599596AC3E6B92FF768FF0A865B903C57BFA6CA1E7E685A586ED106FAB577837 1EBA9D8D01CB693E569AD5F16A0F6CD56C984609B619F52745DAC3D699CBDC67 28669D727654739E440A532AD1459FC92D0F02282A023B8F11203A8BE0575530 695C164E9482A04F9509BC79B81B1B63DA712C2C2214D9D3CE5216315846B476 9F2F424F110799F1234084394B1CD1A2C075551736699D8CE31148FD8F6025D6 86F8D20642E4F35B423303FE046299003C1E5CC4F574224893F5F7EE2A6E2FE8 3797256315C3AB08044B3A37BC8E69F68811CC8B6CE8580DAADC9DD248A24B97 8A3BE35C5B5490C7D3A2177F63A14BF3D160F1BDC24180E6971F669A4B100534 457198019805291E2098EF38F3F3301B67F5E8095A2470ABCC00E2B2F1CEC76E 3847C97E4CFDD122655DF49F2DCF51B4DE79AF5C0889DF962EAEFBA35D9495A0 90E60C40F5E1C2457453DF950A4796143308DEC5365189C08F4C2422964782AD 7325242D57C288E46640A801A6FCAB440B664F4915EC70CA6471A723538A04E2 461726B75FE428C47144DF18D2A8A1F91326D688BFF293AB636F2B3F1E4EE913 9A3FE23BE50D460F98EC03B3751BA740EC1A9ECF0EB3A10469617BE8B87235F0 586B67AD368F19551BC0C6D589F88A61FB3F72B03F7BE0201C945D0770790E45 3521E29A35DC99A8822FA3911C6F0647346234B4DE421A931CC29AB8C2064BDE 7D6E1EA9797A80988FE60AF01A008063136CB0350F8194F2009F33E7E0D4BD13 0CE88E77DC36C214D981C39C24A1E9783B3A8368D33359C68130BB2A767383C9 F2AB65E11949E8775C9E4437B1EA7E5B7925DB1370DD175CD4A2630C0810128B 6B1DF083A6CFD39C8336EC404E6CFD45BAED14F90786387CECF3320ADC2103AD BBCBE50B9B7DB21D28725960E97F93FC9AA87FBF511FCC85B54873AB66871722 BA9EF2A8B1F4A948DD96E56F8D0FB7EC6D2685F782455598130B28C18FD9B43F 58114D8609C5DE5756960612B2D441738E9BA64F7B4F40B9B39312A4902143F9 2FB208DA2A51C1F85808390309FABC7179C07045EB50A3F4F6CBB6F8AF67BC92 1C54CD6ACAB667633E3EAFF86129513644F2D573DF114F1D00133215D3A6569C E0B592B46251F6D31E6725DEA3D3F4490CBBFDAB07BEC8AC4C78898B12F638DB B60F5B7C2CA876BB8302AAD4C9406BADF21DE9B11161768B7BB1F9B259C99801 01F0EC8452A1C9CF5EE000A694C422BDEA253567507D1B0E5B11434CA97AC42D 8CC4D2FC204A9EFD677B23C100404302FF8E3A21709D345C262282D303F0365B D3571EFC12679916CD25F3C251A3C7B96D4D6F2D813EBD5B8545392B84B2DB89 98BDDB83F78380C5E3CC1DCB04E3B44B1612FD08520ADC08330D8EF00576B076 CCACA5D43EE26BACA30A5CE34B6775399C3937953103E333365D8D293494847F D3C3084FC97538DF5DF02100F929A46E667420CE2BAC875CDA141579297018D4 2CFE44748D21C9C18605D073B0D61EF34C523AAF737C2F8574A10778BAC5B7E6 D008563C416365649442C63676CB2C8D90A59FD51873D29075CA42FC7B850EA3 B2C387E3BA88A2416087BAA5163D88ED92C4EE27974DE0940E8AF93F2C9B144A 31BC3231CED26430681CD62B7BCE15D520452FD374B3E48DC6A2F8AFFE159D2B C4688EAEDF5943AC4C972F5168178D1974BC4D90949308EA9F9DAA19E3C1A58D 533CEB34437E6532E654B2A1E5A57D066679DBF68D03DFD2B8C39E986C805FD6 E11FD0680621C4945DAE34D96E421ED06396D0734DDAD42E3E4EB5B5392B619A 143C33AA15CBF12FC1CED56AE5C00BBD08CB7982067A38FFB8F52330D509AF1E 64BFEBD6B2B287BB8185A74EAAE6CC0BF2DC1D91AAA12E74349399ACEBC84CA2 CD32157BD60FEF98C2F0E42201B077B6B25A608CD8466D0251FDE2633AB22A4E 3E2C440D92934611059EEBBBFF1B3658A066F7EB8F40B89FA419389FE368C551 6CAF1A1935A916A6E965D961E476CA58FBA60DAB5BEF05238C7F362610366D17 52620AE59BC9B0DAFC7E9AB5BB563B080E7F53EE38DEF759944FA6B2AAAE67E5 7BF1A20D3B6E411E9CEDB6735EE7F277AC937B4A0E878686663A7A781B1A39D2 5B23CB703FCCBDA13C6BAA5011A0FF5C9A1934371CFB4D6D77A860DC77AB0ECC 666402384BEE457D38547DBC54EF49B17D6838EB6FD5E8F63FA4BBE5566AF2D1 527EA0C32413172144D590BBFD225DA416750A519E7148853C94CC40EFB20925 A8783106C6D0839983905CA8D99B4A29E5B0CFF2A642616D7DDB29B4958F5B53 23011C2999FA56698E434EF36C61C95CF7A1A9D4B72D966CF6EB86194AE203A7 F47436376844F8587C00155D9F5656941E4EC526E2ECDAEDA81CD01C0F33126B 6867E4FC20329C21C5903F71B33708BE8F4CA470808A16BC5D4E636BB69A7833 14865AAE9EFA91A673B8A6A16DE49707E957173D712ECB9AD2B355E9A5E8FA7A 09AF9653BE187BAA7524C82541B645ADA75F9016B4723AC2CC6C181DA73C24A3 65C1BDB2D359A14C332953ADE773E9207D204C7B40AFCCE070BA0BED39F3C3E2 A08A046596B6C47A9A4D4EFBCB590708C8138BB2BAD7FE1E825055F28D182500 4C88B875193C5768A979581D340CD1572A885716185BD0662B8E4A56C506DC47 5DCBEB0A1A6D41E1265246AA3F7EA3430BC341BC815F63C273AEFAC77FB8D9DC 7ABF617D2B78E5AD58A564C92CD028FF90EE83079EE0CD63F4FB568E44034EEE 555703EE85523725DEE13EBAE8917F3975BA0740D5C5B350D7E6001FB73696DE 44422225E55DC328F3BC268DC0C6D41131C9B2610B3D448D2D4FB7DB4E6B8807 F787CF0CE37CA002865E268263096ACB53C5AC6A48571A9034C4476299E829CA E083F4B49DF2A2810ACC5B63DC11D5FA96273C6A8D2D78C22A34D9E95D473551 C8AD5B1892BFE691DEB436E135D91392B08C8341C278107967E5BD49770FFC8C 94E9AA4385A98B1459A7E52F8B86CC1D6DC19355D508309E8B3DEEB933F7E43D 97BD34E13724848709BA30B7AF5FF09BFE96E2DFB6D483FBBFC35FD0E1A5BAC8 B016756D3A55C67FD0F474C673C4C5C731A93C4035D57EB048CD4D115A102906 4715290E01C2C5A6DC24211AA1D5D86A14655A96B3FA0BFA84E6E0867AB421E6 428705FE943BAE569467CFBA733C1140100D173487AF9C9D0DC65944A121B438 5D7B51 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-32 -250 1048 750}readonly def /UniqueID 5087385 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E 6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF 8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE 03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 AFC27E4A7E07D09FB08355F6EA74E530B0743143F2A871732D62D80F35B19FD2 C7FDF08105847F13D50934419AC647CBA71DF74F4531DC02BBDA22AEEA3FBBBB 407E0ACC52BDC60D01A29407CC4F93EB8BF6D4813E9BA858D54F38918AC82720 4956D50291F0546E50FCAFA6DBD0099123F5ECD4AB338DB310DB4CAE11337A89 8ED99B6F483940C97544F888EAF0CBEB11094A13C073D0061808662A04A82BA0 AD35E8782F854AF66C20C0FEF18D0ECDD1646321B93D327E53D88CA0E825FA95 05AA57BD74214CCBFFF544E4BEF94523405D1298FF382ED7B2750DB319175C60 9E31924D296F427733421419D55649C12F158C0896D0E225D846CE1018013AB1 BFC77534320F839FE39FB9522FF3489DEFBC1E90643EFEAACC7E8E73C260EF22 14357D01F1F188B4B417BE6FF5BD7453A7C605E90798EAFB65BFA4B76E30CE25 DBBDA9529EF505C2C12A9528F457E194873933EC50045AE513C3CA48C9ABA05E E6F64D1480FCEC6243281B097874C8CBF0819407D38208143F902B2DED01306B B441809D27047B7D7CA657C8D1CA3F2294247B8A7EE11BED849B04704EFB44F3 F97CF4D3EDCF2248FF128EEE27FC2E9F134119610AF63F4D04204A458A5EEC17 51EF8FFDF9BF625DBDE38F91C071B7F891760E34C7683C887E5E173FA1C347DA CC5D2E3B53B571DEF7A493146A0D30A6DCEAB757638F51072A7F0081C88D13A3 F0B62EFA7088D04F8CB23A4239479400523A50BFAC91798FB2E618A4E2082CC0 5FA75AEDAD16C3D2AFDE512E5F09EA645BE4E6476D9029517B90BCE379CB519E 2AB9895AFA6771B142D1A428C2DFEF7D645BABE550F50760F68963FD6FD0BBDF 4CD1D11DAFAE6937144E4C41B51CDC2A332B1E481FFD7DA06130F1B884007E00 1867D67F182BA68CF30A6EE4278FD7B61851C58C7AF9680D8CB1DE4E20FE4123 494D274F569C398240DF2106A7FD6790F4422E32F449ED0448FE5589281CF243 5E60DF4882FC681B2C39F961C9A0666563BDC116993E2BA28E261D427B11A4AB 9FF0ADE2062C4C254BC3058D92AB43AB148D1B1FC47BC58FF81AD11FC72BBC73 984ED4EA345DAE9F1A04C087ECA4706B8A66AFC1D5824404C75C3175A2A2275D 5E21735393212B637B2996949368DFB63D8B70F590C0D89A48A887A9FAF5A78C DA6C089C725EA1A5134C12088D5262055BE4ED7EA1B7EB2FDB3C4FC2BC0D158A 3BF6E3A23E5939172ECABC4595CECF606359D88399BE4E727B7D9B6AE246335F AB7B508B131B7D2558DEA7DE66DBF55F53E9033335F6483DD7F1C3BDEE2EFCDC CA0E9F7340DEF80757FC3A68E2E4CFE6C61A08F120A756A7A262519DB75356DA 4CE77E13FFF341C7BDDD110374960DDB2665032FBF4E1A6C1DC5F65EE4C9C44D DFF318639AB99AF2869028C63167730A5B3E6C45622109FE11F418B092FF83B5 AEB55BEECD32BD2C7C55254A57A39A659DA8FCA26B48F5E686AFFF31109DBA65 3E02059BA3D569FA0DE839C3290D1E5A6C08933D9685F011BDB37FA94F785DEC 56E79B9312ACBEE5C1B5D243A8A3407F9419E954BC68531180F0846EB6A09D40 EA77FC11C4E3452CCECC1388796D22B13F145EA8FD0D89DC5D80F84123DCE6BE 56D68F8DBA267F7F4F5EF539C74CC9B268E8BD98A529644C8D41B4EE09DC1CF6 E95DE405656395B84CAE17BF11B350BBB48C893D694938E1410F64A1A0C4DBB5 8A98F5D2611B0745441AB93913C1738AE4B7FA14AF1568812B3206B8F0414866 5A3F8B93CB4BB6BA2094D44E911455C14F60C1CEE8E414113851F0C528A5BFBE 58518BC5A5E99989FEAA6FCEC9B7F49CD1936C634F2AD248025762104B9D3B6B A1FAAE8EF11B5C45A8EC8E2E139AA945D7EC0099E84E47238801C95242F4BE0F E1AA1011269AB51AB691A6B0F45F9D2C532B1656B3FB30C435BECE9D5FBD01F3 2A69EEB68C266778171BFD96135A8AD596701FFAA9A4EBD0D270A5E8D05D7DFB DABBC2358E675CD3C3BD0CD3869FAEE29A17EAA5C2A927CFC604725EE537637C 88C294BA14D0AC1AB5839E9F13EF28AA32B35B13BA7822CDBF55F809A4D20AFD F5D9E47324C3598A48371FEF041D6127CA29366F4ACA4FE283ED4F80624D80C2 C824E91786DA9214E849EFE334EBFF757837A9A99242CB502964B1A235585791 9B7E7B83317F9145624A73AE8BBB5F590DA9DE330F56A4F2427ED5F98855AC7D 236BC69C0C1E9DA321DC853CFB0F130DBC0594A841D953FD08AEDCC5FE290565 3C5A279F3320A87A5A0E04E96F99B6E06F0BFF0E231E5F1E02E55C67D4B9DF10 A44CD3D341291C56E0C8082ABA58E9B5A0355AD0ABAA1BCE968F1AC0C4D9FF2E D6A28FDDBF534E7EDFDA538D8A11853B8F4DF9C9D66C11B7F4CA0EA6FBF8DF07 F79D97B62C19BAA9800696459251CD2023FEC746775EA7F170403F48FFF7EF36 DB59D244FE78E5A00B3B6F77C862A07F3F25E6C9A0C5D6D053B61C7C7604D141 8A828D6CC0812E54F775C2D370E56EAB616ABA5C5A5250459EAF527544F5B891 58C2B04566D2DA6C11D2F6B9AC9DF645E9DEA590A565541D4CAB760E4641B407 1778D735F926CF5CE1F89B5978231A1DFD5891D5B17E96AF30F54053BD77173B A68D968023FD4DC8D5A425189676C6C472259219228B3D9C315ACDB0A368B58E C372A4EAFE9725099FE316E8DEC5BA333566BA948AD64DF28077131EA7C684D0 7A3E3C257C768F835D15D3726CE551E6285F3E1E15425B3A49F3EEC9BC05ECBE 9FC641B3DA05152720976DA1DD43671BDF5EB4518E5CC92BD4DA464D1F699E59 113779AB408256381463CAB0A0EBB8BA17CD6F0BFE26AE95657BFCDAF2370363 8DF5CE4F7668FC54383027C5DBF531B4948AF43E33F4638AE6323A8452632899 BF935D2F687FFAF5CCF6E6F2CA6DBBAEAFD9C8091073E381C053CE3000E41205 70E491FF619A3EEFCADEC6E4DD33A2D156A893A38291799A4ECEFA9939EB59BC 03200E96C354DB736822D0A57B6FE43F2C5C5D8916D49144DCCD71E44520BD4D 86618C91656848CB85753A8CAD14CC693187666F9951AB9AD94F0BD8C17A8C6E 33302B4B89BAB63DD447A66D7536393E5D9849EECC03825AF1AB36C8809FBD3B 0DF232A14799E2B3A2A61C32B81A767FF40F1C3B6D3BB42BCB78F84A9319F5A2 BF08059E1E4EB94C1A1CF2BC4D2C4B8B2456FE8DD22D2BD18DFB0FFD697453EF 4EC7BB591AC336EECAE6F9530AD5D19BDC578415686F13C293F59E8C85640FAD 57C274C8FFCB7C7356F0497A6AB6F41E9974E4AC87559D5B72127BB943136CDB 67120E327215807CCC1EE88A3A9E57D2BD486568290D7556A38F0FD3DA61A31F 6C6EEB686429D00C1B1AB8BCAE8E7F95CBD06452212D68099F94E1487F129491 48539547BF194B267755DDEE6838B06992294171895FEDB6C4795ECF8BB1CE61 EE5B644B97FE0C1DB52615AC5FAB2B32467DD5392E4B6D6DC84EF65A386CFE5D 24D1E56FE901934EA34B1040734FFA72D3AADABCF90206812A040F3B2AD64D1F 8B285B72BB6E20B0C4BAA51431C5725D523CC36EFAEABDF3153642DF98F8B337 B547788253542FCDBF66BCEE48D9A4663AE1E4D489E4FAF5EE26F23C9186E03E 814B8477999DB399BEB8EC01365529D5F0B43196050B4120E02C004AEC1123DC EBE6D3E3B1A6D368A6537453573502ED26A9D564E6825ADCAB0E6034531B7B7D E790D69BEB123E55547618956B4F1A6C50D968F50FB68C69CD40A4475D6C8866 F1B600B6C1C10F430C89B2464841F9894BEB0DBB91A7391B54AE6B7A716E7640 8BBC45306AF67D8B40611243818A34BFE7ACC994E997A5B169167680F0EF1A3D 802F5D065B883B2F248D5D408375CB86CD3FDF302E9BED4641762D8915A99E5A 10A692B3C5A6C1A42071CD7B88DE791B5ED5C53D205DFB68A8C1711A15F95997 5E3414FDA9081A5AF75C66FE7482960365B5E417C1906DCAF25750E07CF0A0F3 DE360F24056FC5FEEC2ED5443BF751DC28E763349153C810BD2176309D6EBEFC 22C0FE9E0956893981A475E3F86AF6FD5DC51688B84680813B07DE6C7C3997AE 33B90A6D673CBD25170F73CE0C6734C0DB045B1B5B48D492D6EF419B119E005C D8952029543ABF2A206C8DD76F0136F5A3F56C7B8B2CA97D24E650687B01A82B 7CCF971485BF0585EB2143B95D96C3BA9C935D7BC4DF4E7F29D36C2C691AE7A5 C49D9EEF17EDDEAC0A4A0C875E39D381926CA0D8AD8013715245D24182259878 306D6BE0DE3A0FCA7D348449AECF1AC7B8AA8B7F58D66904611A646F83918B25 31FB9D200F06F31E0466101D78D981B078B506EF543EADC2D7DFD1A858BA2CFB 1E4BFE500132A5513ACCAE7A413BC007BBABE768C56C4E80C8F8CE1CBBEF8EA7 914B190D5E32F5FBD9984BB2F43B8F0287C73FDD2FD0E5BB1C1039A1146074CE 4CCE971567148F6C1547FB48C89A09856D5D69A44A09FFF193F646134FC8A5A0 6EE283B67AF5686D66ACA40FB8643021280A86AC855874F8FE7D7B387786C392 FC5691B00AD28822B5AA7ACFCAFFC88B7C18F1F3947D8458A615DCC5F375E55B 542DB9BAD3CC7573B50C3294E407BDCD1C8A68C7AD10BBF914866416966A6370 0CED76EBBC22021459861AD48DF9D117E08E8C8B2171A611E461EA6379D74992 1847A73CD3DCFD292DFF3385A5030F8EB91C24A7328F92E32863F671D0B727E1 EE4D5A070B37907D1296311DB70C0149AD668F813FBE9CC0945479D923F59934 497A8C06A955E1A9B91CC1FD099D0859770293EFCD1B81142F06668E6256BC25 C2DF5613C4E1C4ABD18844A2D5F0F287AA0315ADB92709C7E999D845BB4DDEA1 C5A3C9C218836162C7CE3B07ADD588E7C634F84DBD1140DC8050BBB699D721C8 70E2D531F47075C8252C940948DBBF5340B5D19206D60925372AAB3C942FB186 1EC31C7F06AE0A825435F29641C1770B04B8BB278E82AC47EEF6E80CFD52FBE4 98AD6F5395FC45F69AC22CC9857D1AB8735E36CD5B95C304E485DA1C66435886 A4B662C5B624E896CA9EC762D7C8B3C875E162B0E51647BE754A220EC34CADFA 8A7C11DBC7B2DFB2AA0AE582A342B43B40115BBC839D95AB75014546945F0433 F7288D62BC24664C0EA125339AA25E5238F38A826F74B71829E7622DA009916F A5FD5BB80DAFC64C5BDC2C0FB84C0CBDE2DD1E5C55D3CD2169D7B7D30901603A A356048B280DB965D7D6E8997C809E273D49F2C08E28CD6640D037D98CB55768 D3DEBDD381A33D1992DB94BDA9AD873DDD5F413E7F4D70F3663AEA94E88B5501 8392CFDEFA8A74424E3C1C01A5C46D87D1D7C4B4323B20799F7C4C992897E87C 2C2D45399C127EA354E9995DB174A2AC39AF5E9542CC17764D5EDF222CD96A64 34A3B7443FC9E006CE7FF0169D84146AAE9FC4309409F4EB0687ED6DB0498794 0D28A435DE883C0E5B612F31D47E970420E0B31238D0F80F69C43718B1E04F94 FD86D1F87A99497AD18215E7E14228BD92571FCA70DE1896B03C4527BF73DE95 80D258F29AD079614C7ED6603510E554B8DEE875E86124C9A5E3E07357950B0E 973884D39381A82D04D897F20E02179342E329BA88E3FE480B8F5359A1426429 42CDCC354D27FEDDF515D6C0739600EB07943E9874C7208E2C03EAB2D24DF2F5 1297EE520A87F5B5E594645AC04DFCF1700A0F9143186277ADF449F785E63034 23E461399BEC92A9349F7F942D6EB3A84BB84C567C068B5AFA9236E3DD884339 2CB24CDD8BCB6B3237A9F0FDD3567F2BDD5B04166D57F41CE490F8C8A8645213 F779D75A22058F08C7E18F9AB89BE3ABE4A8949078C763E8EC4C84D464C6A10A 92B46DD57AA039D9870A0F3EFEAACE8BDF64BE31978B82D9A6DF3EADFA97DFCB 35DB9F3D39BA6B1127DB70C999D03FDC9F5C13529843857497E72F8D047C9A77 30988D764E3153F1A5AE239673776819185975D0C057C331C45270FA4108A25C 99B084B1650E369C95EE4CFF9EA280F967E80E8C976AFE762B1018F15221EF74 FE6BED6C818FD2C63FCF2B362DD072547355BC7B354FE7DEFF24A633AF4510F3 8D35AA73090990D394EF4C6371D329C30CB700EF6F96224962D5DA7AA4BB5B1A 5FC848290B1EC60948B77499707F47731433346BD154707A8053742E7B1C834A 3183557AB96097EDAD33958304E2329845D815D9707A5CB0E6C8D33CD3BDCCDD 941E44FBB79C6A213C6ED13F766A1D5F7A081B8EE5A4A99660A8388EE0016B9F 878A2E0F431636CAA5C8B445D0C35D52C993ED583CAF09B3979D896694ECD149 4614D044FFA08BC70E988AF72DE91B3D70883EB2B2E573C4B6BCD0FD16C7B3B6 23655CE94E27419DE813778A45B4BE04D4728D789601B41D1492934DF8C1C7A4 E9A3CFF759FAE4631370A064BAA7193697D19531C745EA416080271331C9FD5F BDEC4DA94FE6A7596D4F4D76CA24B8DBD194CCD56293DCBA70D2256AFBBDC81C 7AC87A34B5D0147EF3E8D04A60180BE900746083BEFD78F9FF47D2C3FA5C719A 052EFE7C98B4C57C6964EE6753A4CDFD3C6F1313E7FF40345D3473E27854488E CDCF1EF8DB5AA2DF8C50B6345A3320CC1000B51DACC607B068D67C33B1AC86C9 DD6FA780AAB3B06BB3D1070B08B1B3AECA2B5B48E681F4922C230F771CEC327D E4ABEDF58B638DDF1C53A9FA8C18D861134A02C448D932B5DE4E644F98B43981 5697820DA30541FA994390C780150D0CC469E419013339665D649A2E88CB056C B63CEFCA0B1D6EA9193406EEB3E4783F43D4AF5DFA150977BAE4998E353E0CF5 BC53469688635E1CA6BC5668D58A2A2B560CDEDE6BB729ED765221F1B6F5F915 C2F6245C055960122D5FA20B0C1E6B8E5362BC92502580E0794CBAB79D912E03 7F12ABB355EB83C52B484757C0F0BD658BE6FB47E560291129E2F525E0894309 9E6E91612FE279499033230787119006EDC61B7B460215896131231564BD8A82 988D1AC7AE59EE78B26A5D85E0969C1ED3702F5F6F800DE090C60DCBAABE706E 914FA8D61A9DA6E46AEAEBE8C3D4D7DED26C3FCE0F97F814C62B32A1B7AF68AB 46B47A93A3B9ADA19F6A91FE009E35F70FBE9EEFAAEEC6AB1F3D92E744AAA789 AA5825DD5EF226113D3FD82BF8F5F01C7D9249ECE14DF27B4B07F1FDC20CF894 254801DCBF8B706A44292DA6453B469732D2EFC040ED3201F2C7AD641440CFA7 9979CC78EA616DCDE7E1ECA17A3447D1BAC3188D760E214D89ACF98CA19D045A 81BB531AD1C3B5ECB40C22B4A519298587A301A6746FC2D1C41C1CBD95F0190A D8D4EF080C3F7CA06C13A5048CFF518AE001F0E2B5BA85F189703C5770ED04F4 8AB96F0C759CBB7F2B2780FB450A998E2BD8DD06E421281059087E5F304D6D02 F218105C382BC556AFD59ED72D35A601E4818502DDB3C70984706EC6FE9A3900 1BE1D4365C53F4779AA34C39DF5D7AFF0E9C5391CE01DE639906A937798078F1 7AB6CDDCE3B31D6A71D263169C1C5140865B0281DD19D6C7D37C85B32566FB7F A173BDA3636C5B7573A56EA10F401A9FA367FC3BDFD34D66A51577D3D2C612F0 DB2163269CAEBB18242C4468FF51A86E5C775E11B841CE278731D54571DFEC34 6BA7E3F691541939EF6CA75A72CC91D4595DBB425965F6F456E4B52970A55EE9 55C61026B8C0F3F663F2812CD2C4DFEDE44104274BCE8A23B4908A3D3BB6269C 376C3A573658A7DDD0F61DF261CE38DF79651E5A71C555270CC0AA43B1773376 581CD2FE7118B9C3FEFB1905B8252F5A8D789962C6EA52074F9A0551707E3D92 9EF9F1EC8AC76E9A2219DDD83726586A5AAE9E0BE3B670189F210463D681EE49 0E09DCA8E6FB29783F7CBBE5713DA8B039A759EAC56F1CC0B9F6FAFCE5324B72 49CDD2D3639C0C5F84FFB9621C9028789D1D990E81557E4823D76473EBDE24CA BFB5933D40ED9B48DC574BBA473E693F0FE7EB81F57A0E749401BF78025F445A 1EE2FC8C48E5CC64381E02E400638F4D3CA253130A2CC8ED36DD02232C93830D E9A289E441A3DF87AB387F10ED9662DE9589992E43E39191A530E78C42F7F27B ECE1FF5A86336E2BE7DC8EA229372CD6C1EF2E043F631AB56FE5D78152A7AFF4 9AE01DB1B5D93B8235CEF005D915481F259693E00845ACC7632FAB529493B411 51E9A51A3F257822F6D3F13AECF4E807B44879BDF0F53F49031D4A14B6136824 B06F6815620AEDE2B3D1D828ED36C0351208E523BB2460472D0520C7C8D056E2 D5248DF001AEDB183E23E5A53E53780CBCF78B93A07343BEBF896F9699E63EDB 627F8E26698064847D5C90518A8652F4A2254F449C0C198DB8FD96BCECE84466 B9B59C4822FF2A42E79CCA5607F9E50CC392941D782C1DE180B5565EFA162297 002CFD18974211527BFD2C18A234C073FD2D23DBCDE671601ADA9E13CE541E37 F44B78A7D9A6DAAEA9A0952CD54BCED39CA269B87CCF85CAE6117E76B342370A 7E0C7DFF5AB8C925022045932A4AE5FF5E6C351BA07ED62AC6084886DA8FAD15 A4900BB4D1738FEC7C51A4045EF7B065FC0A0798BDFC14BD7F439E3EEF031709 FB8FFCCEFAFF256105E649BC5EFE27FEDF048EDA753B2FA8E5A39B3E76BF6B5D 6B2FD50ECCCAA0B3C593A4964D5D35633AFEC2D79230740C084F86A8978C349E 9A372158AD06CF561BD8AC03A635E633E7FD8FFCA5893B7911AFCAA4191BE795 4AFA2820BF4218E1F957B8FDD2A62596C900911797C71335815CF2F3717BC71E 1050525BDADAEC537A961BCF6F42244CA7DA30773ADD751ED0142EE79B10AF67 520940B7E76392595E4C178427B6CC737892F210EE965A11CB4D11C2AD310A29 0671F2FBE12110B0B0435BF329D1E5CA0110C3FE35FA3CB5047DF1AD16F68BFB 8B998D8AEF444EB8869E0DAF4A559BF268A1A4EAAFA760769967A910A8366810 DC06FBB112C4262C8D002EEB494346A0BD0EFEEBADFBD2CEC5D18D7DE7C83E72 A105834A7FE05C6AB3C1E34B28228C5814FF408884FA7F2076485FF7082DAA65 FE421D2553E48F435190E872D68DFF0D03F856FD5B6CD7479CF42D501356BBD9 F7B9EE88DB7DBC5A9C5D8DCEB43C0066D84B9DEAB7BA57226287A8719329CF60 A4735633868F9A9A5917007E1FBFE341052588714F9F0DD0841CBC76782A8423 4EA3B120CC66FEFBB2B40A6E76B9398BD1AD119435E892C22C23AEEAC6855159 2EACCA35216FABC8A51D8910163FD63D6DE152BFB238420E4BFF636DAD46E76F 5B26D1D5A4CEA1B9B368A73032596800A2B1DBB8AC5DD405D5F4E0B31EAA11F0 1604CAE12865A47631DF00A489D9F374DEE9AC38B6748C7F5051B8E28FD17412 F398E32E657B69D521883AC048285C40435B1F9BCA8B8D568540A14581104759 49CC848C3F2A16F19F775D1B7C977567EF02361449CE3B8AB4D27F583AC4EEC6 E4C94A484962A697A59DAAFB94AB7FA70EABC0B5D8CBC0F7B7C5158292C0D9CD 8B685CB36F7823290FE2FACECA603EEDC08384402AFC98257ACA0D4F2DF7A7A0 6D683E14942426F8848B00E9B2DF473E3EFB951105A4B5014E2DE26F2CF58C7F 2DC0CFC56A75F1E5FED7C0DBFCFC65CAAC50367D6B6EAB22D00906574BB4271B 08E572316C80EF493D74926BFB0BFDCD9B87DBEFC127C9B3BA81FBC41752349C 909C34513C2B7497FB210CEE54D563FA731667672DA55CF1AAB88308EDF9858F 35DD5D618451C233C41CA8FF08C77413E2CB3E33A8BD02BD42BF7AC4C8191CD7 33BBA6B4552A48F3FE432BCE7728B8CF6ACAEABBBAECB7DCB6975DFB07F9435B 8C482914E1C8518AAD1CCFF290D0420228D2D136BC8C46C05E0DB63DE33A891B E72F5BC1FE7532F89214740BD6E4C81E8C29CA2DECA4EF2FAD2AB0B5A56841EC C36D301D7E3BD634A3B17F5746F869F1B496564A295938B4A60BBEE6E6EF70F5 F9F8F11F0B6254EB9B1CB71BED846D3E02C74A2CD9A0B55DCC6972A5FE1B75C3 F9AE8D8C243C4C0F0D7A6B01E04E1DEAC67C9ED2C4C4C29543D729698CB9B9ED 4D3FCBEECD688235F69FB5B72B32CB9154BE14829773DCDF9F5FCF2F55F0C197 331B72968D6FF7B1C1137CADE91F3EECAA6311DD8862A1F4AD07A11DAECBC132 6289615793B2E43152557302F7031B3F7419266C524BDF36CA25202EA5560A05 C4314DB56A0E84285EE0084BAD381154E4E1E8925D7EFCDA6C169751322AA74B 71D53F21412222F6D1F1DD61F3B69825016D9E9FEFAD11499526C082F4FBE286 5CE1827F97FE3273F1EA698AC28EADF4E6591A3E08FBB72D0A43AE1204CFB2CA A23FBC2FBD86DF29CBEB8D48184EEFD65D2003C478C3705C0AC967AE1F3F4D03 CED1DD663A489C5CCDC03930BC79803843356A9406C35431F99243365EF1AEC9 60EE5EFFBCBE81E1E4EF2E693E07239A63CC5EE0D45E5EF4D446A6AEEE9C5729 3687328088E699F0DDF843A2548D8D0E687ED50B9A2B2293A7B3B0D9C2F68C8B BBEB93181BFDD43898EE33EE77211E4A2B969FA6368D8383FD2B5BBD0D886BA3 7ED10B17BE900B489A170E792D4B7FFF52502A035AB2409DF4299B13833EC0E0 9E551D703011DECD054E35524A86C51EBDA82623B5B60741598CACB1BFC3F3E1 59431181D0220451201F910FA3E21F20CE454C61FAE78BF2B433072842A74A1C 63EF0486B9039646B9CFE14E3885BC87076C0315A22DF3C23F0F48E96F2115B5 DF6B1EF82FAE7AF8C7D4ADC9A70AB1CCA9134D4662B54EF8620E303141678FFF CBB3DD6169E5B2427587B6D06FDE4F18D90E3B087C2043521A68AD0DB865EF97 D137CC53DE3B824BD24A8D762F031A6AD04DE7FCC6217557E952D7E473EF8C9C B77E511A043B5C67B1DB1455FDC047CDEF1BFA13EDFF3B6D9016DC0800AD8D12 6057118DF986DAEB6BE82A1B5A7D78A0386D8D618F2072DBD2346A916CECBA93 B7BC73221137F6529EF0A3B84EDE44AF960B80C7428B40BB3AE54861ED57E322 D43A0EFDC55178C64ECBF4E0FF7810E9AA19F99F004206B0B875430D01A018FF 9CEBCECD9A53AB32EE1E58F54CC238FF679442C6C13604FF29CD553ECC5E20FA AA0CEB52EC1AFB7592E3101AC9EF641773E63A3BEF5C331FFF02EEF10E1E46B3 F88725573D1D36DA65247A400A3AE7B1E890E3D46EFCE946C63A1E6DC28CC002 BE92F82CCC82CD8F426B36C97C3409501E7BF6CE26212D613555C09485C49DE4 03EEA8634589A0257039A4BDF3CE8A80D46646D5D4932B26ACFB371713694E5A A70163724AC78497E6FE838818C063458E362C02E9A6FC1693F7200A6AFED1E4 04F6E55E74351022820B39A21666D3C12EBB920DF437F784A13902B68A1AFB19 FEEB5EFA46A7B5835E79F9893E9EED9DAFFEC0923865051441907C024B440CBB 27FCC6A23A3C701921431044BB426F733846DFF6ADB742420EE4D99503C7C003 4B8E8FD672818DF863755C7A981728219C7B649D3D6ABC1EFE64BE4E759CB478 3BD70C1C9DFB7B268BC9FABA7174BFEF27011BEE0B89A67AB4E1FD49E51823DA B2E616A68BDCF448D4FFBE35427C72719F25A9267A80710EA2ED204325901F2B 01D03BCB769C92FEFFF5ED2E2B50260CE9782CC29243F1DA65951A7F4925BF0B FEF45166899165E8B69CF0BA0F91DB36B7B5949AF63DE4BA15C5FD9F9D23D08E F0F2153FFFCC0D84CF5CD941CBFBE08F03BF244DC201ECE344BE4D3A9FC84679 AF9476C4876B31B275E77565D59CA97B5B8270CF83D7FB85764D650F207AE56B D45AD332FC398C76A39DBCFC8FD9DEA64CB759C8BBB4788B04652BF7CC0CDDA0 72A7B6E6B9558A7516A114426042A3C4340DFF5925903702449A0C30B4316AD0 AA612146A4E5FFFCFFF2D5496335FAA7351928B190B21A09535A61EE50C40AF2 4C0BDADE9292409D1AE2DADB2EEC4D66C60B87A1E24655FD8E24466750AA6FCB 45455D41D3BB605F1DB3BCB0A7A1FE7AC16EF66A1659422A3080C99F5B288605 6A2901C9E7664D55470E8DE53F0BC9DD7E7171D8A5B6BF190C56DB67AE00BCE7 5E9663F321230260A7FB29FA2878AA86B1F16279A3A937C73486A28A562849A8 48D2ABEAA3DF3D83A693AA1D9FE5F11D72B491BB4CC7CD30C5B788EABF5A4E51 82535969434C052BF6EB7678852BBF02EA95109A9B80800E642249C3BF985BC3 C356DF42605D2E1E0CF41094D7CB8E387853461FCAAA2281386838552AB87C76 F4D98AEEDE37BDD48BF58DBFCB1573BC3D01F5A4FE236E7FC2D468849BA4CA77 964536397F11F43914D2828D18BBB10028CB86E990DEEF5E6D819041FDFBC523 73937588DCAA53E5DBAA0DA2CFF0DC79A8B4E0023486AC6E1F78C9E391A66157 86CFD278B82B9EBD469D03AE09B8E538A2B1E85AB3AE0ADAECDB3CF49AE5F707 FB3CEE8EB0AFC13EE70DDE59F72C2181BC2448D4E15DB45690275F27E5EE9124 E8D458CA456A60395A7872DBA66676FADE22F0DE1A90A7F279AA2C3501570F4C 4785936AEA76457E7ACE5344C585ECCC471CB66000E505D70F1929666EB2DB42 29FC5C2559D17C007E14FEDFD25B937D332D78ABB83270C41B28D8071DD72E09 8E585A768A0A7DD8D778907F74ABC54D865BE31010E2A454544DDA7D42A1C123 EA31FF0C9CA131FB7080A6646691120E40492B0FAFF7C517527467A450E2F21B 88F808BADACE2CC5581F5452FA72031D6E057E4C5095641447BCD5BC08127771 5BF15D30C3E55BBD850D09A2513346C7CB777A99C62721BBA2283D15CF2B5F6C 22AD981E93E23D28505894E9BB80703E1556E371B844E63A7FB2C39E61D76BFC AC9F4D23F7EC09FC47D506219F90BF939EFA50B2A4A5081E9384F60B81D2FA07 5412FCEF86E26121BA838E9E712B204EFCF19B96DF9E442C41AD0F5D71B1D950 61A738269D5A8FB3CE163F35D929ABB87352DBD6780CDFBD1B951F8766BC8FA1 7FEC8AC6A7BD47A3A1D9D68104B7C92B06CAD3FA1CEA502347CE77332BD754A4 5F92227873ACE1EB4C9E8FDCCD6BF9F618D95D2721E1FF92CD499442030179B2 C7A00C3F2776344832811DD942D79F1F45AF18F96EEBFCAC713DFA93ECB838FA 2061EB1F9C2EBEB1357ADC15A1CEBFFC517DFC0ADB73350B67C1FB435DE3B759 F0A4ACC12ADCD404415BF162FB890EF938DF8CECE65090343AA2567C0E1D5AFE 16E17D875C05F31634EEA1688E004FC51BE4DF9203C5AA13234A9037709A8FBA 656774523709850BBA627704D358E7242F13EFA16102C215DC788589C67831CE FF41B560A9077D9BE9CCD976A41A3CDF9491BE9F2773CE00E2FB5C7CC481E68E DE89CEC693D3E18173399BCC585080413D2B7D40F210AE109ECB83A881A4225F 08B075F6D3E4E95EC0E19209535F11329DFB1FF065267EC9A6772791964E95FA 2120BFD20820FF2ACD05A3ED26CC6B7D419643B9A1E8FC9682669EB46C2C75D9 B7B1B9D9C7357D0539C4B3341ABC96EB5EF353FA35F90CE347BE1EB74425FC67 E967838A0C013DA2110CF7D56A77116C8A108F6631642CF8E0C668E8A9425560 9CB1CA56BA435C01013828ECB64D254F5C8FAB9DA293AB016E4F38CBA37EEB41 7CE33B16F2133671AB591B72AA91971BBEF0B6BEAE3905E9577FAFC8C72D31A3 1D30FF3129E9DF78F4939F6C390C991639F7E48F92E2C2DBD54F3C24805536D8 8AEF9463E0B6CA5A40ED0398883B9698D4180B07F066712D710CF227C30F18EA 6A3F1FDFE773C4A37621A38EB598917E2D4CD04852382EA85C553071929DDDFC 6F7D6C6A95C07183276E61C2CC3EBF5002AB09A047CBF452A969D0BA06E2880D 59E0D71C863166437721436E15656CD6F85FC9BF7CB1F69659DEB6B92D58EA7E F7AD06CDC7E1487DF81E3CCA9C682069B471C0589098DF4AB69C714E85A23F10 5D3CF61BBAE7E298252A626AECA41A80F4F51CDF2C54879C6F8F4C56D22E4643 2C0964A41DDCA3A2AB3700D32F2E339413A048A52417F8E683468182C8BC0B90 5445FA956EEAF2BF79AE189A529EBCBAE58F4465926D8D2421F30B9C75DB13BD 04B472C2721391C77565371AA18B13B6BD3FC0EB733EB561CB32464466655F3F 36DF0E5B6B03E61E527861BC3FE5FA16A422B2661DCDCADD4E983C68D680A727 183957602ACE1F032F984D61B0FB1E2AC7DC8ECA2000B5DF32DE42668B844CFD 98D435DC67B70DC01D366CA771FBC3478F5F79EE7A4D44D788B762B51EC63449 D2DD0ADA2ED4BE4074FDFB9AE484F884E0C397A4F72CFA4EF93AEB46B0A38EAD 662A9B8D582F47AD3487FC1E3AA3AB0409F98F5F0464F35E31F66F587786626C 96044389E5D9FA6EC6543459419B9CEC29FB9EE32F7B152482FC5C8B984826C0 2A25EA912657C99D782F2B180F24BBE51F6DF7ABBF69BDF3D81EE1B65FBFE31B 5B1AC0A45482814F0709C59F15B9B4D243D1DE6A405B97295259C37518292891 C930BC19C18DBC78C739922F639056AA502EAAC51825AAB64A4E21B855D9D4C4 CD93959F7BED419249D5F89E3571A5DDA4BBCEBE57F6085D4EDCBA4966BC16EC 7870B37A3B1ECEBB8879DD6DEB790FBF66A8782F2257305D927DA30F5A57E119 8EF541D230651F3BA90C2C58C66D4EF64133FFE6E09290F15BEFBCE928109883 02347F4C10E9DDD2D0FA19ADAF8A1613C0E754B3BF814D67EED0224196DEDEC6 09BFB6F3217B0B65222BCF7FFC17AED0F4889EE0718F9CA58C61BAE7BD9849C2 640E4CB8D513D4FC18DB2F1BD0F3A5FC5E3645661388FDE83A74E75BD5B6118B 4B64CB75E8548AD6EED00E9477C5F191FE3CB51B4B1BDC16EFA891D7C4DF177C FC95D88FCC5F93293C7FD12F9B592525A2A56CA6FCE659CF24FB15E80951B097 D5AFD9AEB520241FD63299B2791C05336A1577ABA53F1A694B4B321686C4611E 60937C2FCACAF3FF7B37A18C328F86709B742C37255EDAF2BD66FEDC199F213B 963A3BFD01CB5D86567B898B434CE118ABFFF756C6A3C145449CA01E8CD57B35 5F0AA892444A0326B6D618AF2FD8FCACC6543D2A83D78E8DDCF5F0386573C8AB 1B3842865E2107A9274A26DFC2D276B5A735722DE5B20179F6AA71B1654458EE 7E8F338D505E567DE740409BA69132E7F8DAA1399F8E80ED2A0552621AE85A67 B4CD5C27D4C6345E1113A1ED1CA6369AE71934E3890C84DA739A6E2E824A0C2F 4327CA46EC90DB945C2E599AF1F48987AB4B4CFB7A9C3F4979EBF70084BAD716 A49204A32A126673033AD8FBBAFE9C587654DE9040AE5E9F3C33A2A24C7A195A 22FB6AE2A359C4AD0DD8AA9D19E45435628B0DAF162FDD44C38F21E57A4A1A33 929428E3697E439CC4BEF2145D376998DDDB0436286A76BF3B65C2F5CE8A2D60 055D5050C03897B9E8BD566F95CE43A006D92C4DC4B61FBBEB4AB32BF63839AC 7BDC57F9556CA117E853F4549EC6C9118135D50C12844BB5EBEE2CF99D8B500A D9027513429389B89744D997D798BEBED7895E41820E1FDA2D35D018411DFC67 C35146784A0A28FC2655040B6AF137474148F88DD71C0C2803693AEF85042EDF CFCFAB1817B58052472532FBC1D8DF2C40DD9A0540F9A5DDE1797D2E7A3578CA F9DFCC5BF052C27F2B21D29903461787B1E9DE3DD8DEAAED1F691A1B0AC8BE42 C625EB653886380DDF93F224F748AE5971BDB21FB1349CDC9B01D29294AA2169 D2F20AE3CC18B906ED9C7051236E1FE112203974F8E5DF66323D2EE8DF75163F 5CBA1684882A7C60E0823F1B14BF675FBC8D9AFB58AC4DC6204DE7A2CA1AA10D 00E2179EB14A80253102E951D4245E8C2453E68E3C083FB9244513B361062C3F 92E1F5429AAFFBA776F890FE4AEFE4478094746D3CD76DF2371E0F4BF8934CB2 5F5DBCA4A084A920EFA5D6E5564DBD35533E2EF0D8B0E4727D3078FFA8DB882F 026D14FAB56A49BD10B8FA638AA3FA0C26AF26E951182AA1D85446FEADBDC0EE FFB43DA8C73AB522A8AE9A4C881BE1E0F2912A93EA351D3D3C6A56AC66C08124 F593ACA0F8536781CDE1CF6C33A1A073DCF026746B35DE899698C6B85FC3FBC8 6FACB3D5BB7FDDC8799294978EA754AACE0193C603AF03EDF21E571C1671E917 A8A9502F422DDAB63F5EB9B7DAA6392074AFCF37BC7D1137327C6A446853AD5A 67711D4D875BD43A08EBC3B6402F25E7F7744B324EC972D84E2D0A19F92F52C3 9EA3C4991A799CB5E72FC8248A24317EB4A2F07BEA036F2315F3F6DE67FBAEFE AA672487B1FEBA1D78507A175FBE7D72FB1130C6925847C6F5D6DAD2E771EA43 7E0066504B5BF186189F25ED4C7E7906688543764E54FE515AE56F6EE62FACB7 0C19D7CA07567A1CF983A512605FC12079215DDCD5A32102AD13BA0649029BB0 30646213AB6ADD14992E1182B37132D2DC64D5CB1574B28BEE314E4E433EC660 00E3FE0E0DDEED1B367451FDD3C7C6D25A73FA7F1F6D60B8C6E88CE6CCE5C3CE 5F0DF1650CD4D8D09729B753614EF781B25EFC161D4589ABF053001A6D5B449C 194BB4F0DF4D66F84D0E20A604DAE4A877FDB12C7F9C6475209985516287E70C EB9453C2616CFE47E7225EC12EB8868249BADAB6E03D38464D69B1617C09E440 E2636ABB2387F472E480249CDA25DE96A89C0DB30B8389E6B76773E0FF16C567 5262F38CD70BAE666AE3A587FB8DC002B0F8F9FC208CF6597822C433E1BDFA65 9456334C853BCC1FAE973F6C9A571F2A6845A4741F228FA2770CC09383475C09 8690B816E9378A1D2B94FB523A2677C2071C1430BAA1D69D59B3062A16EA713C 17FB0F312D7535F8FAC3CC4688BC6D13795B3154CDE8509AC7A4053172E57CD3 4363201F6977A51D67437615DD376D18BC26ECDBD7C2961CE0A78D49CA1825EB 95A390761539A8C32C3341183DB45CE212033F6D04E64C46764E42BE7CB7966C 008DB11A1589EC83F6D8782E68B1F8A866CBD7111D24A25F09564EF7DFF6EE5B 3CDF3E7762EA4BE143A992D94574A74562C6889524CD7AED80D436F64A987FB7 82C2681831CD3D5481648D193FE8A28DAA619C7EFCEEC954FA6E124D429EDDC2 5ECC880D7D6A6931DC6C0416F0AC4356691295D55CFEC790C536B3A93DD78187 4033AD8EDD08A5FEACFAAB2D5EDF3A90141589D2DF4696DAED83E726AF572306 E45B228F16066F9C2AFB843AD0E2613B96558B71FF89751C77562889F65016AB 4EF9177C817D248F944390A431D8930CF5383FD9C4DF0C128ACDD952E8060D4B 9FCE7B62637A12F0CE5E8CD09BCB8FDE3FF24733AE836F5E3263F22FF53D466B AB97917F0C6F4E3289A20F22EAAC0E2252714E2F9AC8248121EF23477DCB46DE DC76E926E5DE11B89BB48C1CD74792BD5883DC15F3E0F3202D8F9A9ED6A8C857 A8FB27B87B24B4278EFB34C287F803C670E274A1336CBAABCA586139F3DC8C1F 9FE184E06B70880B087D2DE038E415FCD04293F0919B26C8A24E857F979CF10A 1D0CEEC7532CE24EA77D1A3D1A1281C54E3FCC0EC4EFF7CBFDB2B95F34D3445E 6A6FE0BF1684BBB085692D9321EB505CF3B41B7FF6A860963C5E08AAD98927CB D4F1AF04646600774CC36EC77FABEB6B6FF7E1B3E19FECC5DB781AFD4D058C05 987831B7436BE40EF04A3C3AF6253E3493576A28EF4F0D4A0FE1094ACA4CEA76 E24FB634B7B9EDF4BF07413E544FA674DD3D30A74CEB7BB8A935519FE5384B79 5D3D459BF444DB1DA9DCB24B476058B81EE08B6E3E52D9C3916E157BF4CEAF00 68E3E719B071A7C53858FBDEA7C3DFFE65E935B40F050F030F7A598D70AB8B81 BF0D2429CD7F8E3B63DFD4875262CB076F378AE801AFFC0369E8389782454241 071FDAE0A6B4F4C5484E023B4BCAE1C434B161DE10EC8F16B73F57626A182C58 8F5B1BD57602DCACFFE5259F2FA32AA7BCD48767C4303D22684C7A070CCC5DAE FDC4BC60D485B0CBC8C5DE217D7A507003E7D46802E368F5FAD54E6610AA7906 928B3DF4F8301296EB4E9D8577D4684297B7F80DF1F2F433F845AC855E138F53 0A6A9BB2EAFE75B649F037229EF507219951C10F31644160FC493693FBFFDC35 73CDC87EB0D4A83290E6AF34F7817C310770168E0FEFF4A0988C56A73727F888 981A46EB71F009836040BFCF5183CA49A5DE6A2201EC66195E8EFB593C3AAF84 B9977DEB05DFABA8363627CB95694E19AC29A119397C7DC9165B1FE93D0C90C6 BF08EB79F2733D31E5EF6C533732AD6682C949AC8BB06DA8EA7283A58250CE07 DEF319FA7C265852ECDC77E1522B69E51BF0733F547177B8862E321E7E9C331B F7B03CBA28EF4E6996BC996BDB3EBD339883DC264623326E6324EFF7C6D77093 066E43361B11417B462B061F34502F4D9759418BC8287E077C468EC401DB4988 D015DCF1C643AF36B287ADFB93D23FED2A501568AE9DD762BF553164F3C8167E B083139518D6913226569855673CE83487F541BF20DA338F64E222D6B4C15B42 41E2035FFBA10E706AA5A0C1839DB327A6C4258BF7222ADE76AD3BB9439CECB6 28DC30136F2232250B3A35A6B2740E923530973F9B77641C2D98E663AC8CDC49 7B9DC7466F537B505CB1501112FEB68B264118BF57474B66C2FA0EB800A2101A 87835617249BED115AB0164205BDCAD4246008C9EDBDDBF1C0ABE7DD14CAFD05 8E21DE65C5FC76A957A5DCDB67C6B246EF15BED023C0EF9EFA5E4A225F312D75 B1BDCCBDBA789F4D56DCFAA16D947916D760414C356DF1B2AB19059C2C3B2498 83E127EFE3DA08DC2372DE03B6FE22420DAFD7821BD525E030B4DBCF2DAAADE6 C09AF6C86D955EC4335F5A37A65D481D0AF1ED838859440AD8F1E8085656BBAF C6D9B01F639CF4E46DA86689873073F16725C2874B9FBFA97F98E0495E574ACA 7A8D5A3EFF8A1E3CC6D6EB8401B665515DE0004A8D2EF286F61A8D03088E6987 C3C24CB8E8AAE68CA8D06FF3D003A4545C 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: LCIRCLE10 %!PS-AdobeFont-1.1: LCIRCLE10 1.001 %%CreationDate: 1992 Oct 23 20:21:59 %%RevisionDate: 2001 Jun 05 20:21:59 % Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.001) readonly def /Notice (Copyright (C) 1997, 2001 American Mathematical Society. All Rights Reserved) readonly def /FullName (LCIRCLE10) readonly def /FamilyName (LaTeX) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /LCIRCLE10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 24 /a24 put dup 25 /a25 put dup 26 /a26 put dup 27 /a27 put dup 32 /a32 put dup 33 /a33 put dup 34 /a34 put dup 35 /a35 put dup 107 /a107 put readonly def /FontBBox{-2000 -2000 2040 2040}readonly def /UniqueID 5011942 def currentdict end currentfile eexec D9D66F637A9E5292A4933615152D29EEC26E1BED2E48CAB7AC058698EA30B07E F8BDB66981B14445E1107420FDAF32EDBD5C26E35B334E3AF24373B2A13984D9 1D56801ACCF98612DE2C19685E0F4D52369AD642D169AB57DAB10665C6C01538 497544391FABD08A483766E9B5C7ABA9A537C053A8ADC16DEBD8B5C9E1EDEB21 E4E89B0945C0737B96F0194585BE0D9B958F1030EA84710C31971BA7E93777C2 0658995DC8702442780303E948079822B9EE0C531A5CC49578EB9E683CB77495 DF613FBDC4536BD7A90F044B7EEE6EACA2042539F62789EA39AA16433AC4BD0F 98AAA04894F5487C279D2766B50B23E16D7F1023E387FA4165DF522DB290D390 B669550A43638C3C9CC38C7667A22D27F9DB1542620110A8671B2713C8DB93D3 4C500474AC190831F9C7441DC4A7C27EE88DAEF10D7AEE6FDB22E7625E802B4C FCEE0DC79988734BDA39B9896B1833D4BEC4F91DB321F343F57B3FC5ECA13AEA AB108165934BDE65D2EB5A62BD395AB84402D4A2703E3DC3BEC860D5A4EB785A 1D8D0D1AE7D31BFCD3ABE3E9779B6BC28D93CFCFD8461032D969F1C9A53A6DCA 321062C6750132DD47444F208275E5000794E261F842CA01FD5DCA6F8C92C7EA E2D8D66ADB1194BD8AC59E9191895A2FCA88F32DA2B27717F18C258EE2402C69 5655EE4D15708452687828A90653E9FC2707F1E9ACA413DAD6E5EE607F6DCB97 09B7195203A395C97CCC7390F38D69AEC6323A0AAE0A05958B7987701BBD6497 F95D8653699C39F179820FB8C2DBD7A4E7EDF03E83F7536946A3F532650AC5CD 48C10BA3AB8F67915EAC0053592CA317E0A8EFD1322398DB7D9B32ECE97791A0 0B49839C58E426531833D30F153863E92A79516C2878AEE6916F0FA78F94714E D709C10DB24955FC0DE6769D34E4E1DB2ADED1775C5A5A6313C93B6A0195311B 4A334B4D9B914EA59194239AAD1358BC269B8CBD35A7685ACB29282D46440A38 083B9CB2258BB81E2489B5FBF551AEA1330D4DF70E9E650964A369CA2F77DEBD 0CDBCECDD2DFE4EE609FBBCE92DF3779306724B2BFDCA832C22CD16732EE02DC EC3FE4972C838623C43F2F659F309F14A97819D26AE9F4C066A782C0404E47D6 7C6AC988EF5DD1BD3A3BAD648A3444A0FBE7D205D8060797FCDF54AC5E85B456 A35E26353F1B9DB5D2A534C600694152FCB6891A00052936004A02803AFE7F6C 1929C81E10B62604922E8BF57CBC1BACBADB3C947B182BE2065304F815316D54 7B5128F87570C2E09F8CEB92FB9C6B1C59AF83F1A5679A0635DCD80972DF85DE 80785D478455D475E036729F339909E631DF2447C32D56CFA216D152962CE928 B89A01203F1F4CED66517B923805F766F1CD4CFC4233ABB01759FB2C493FA4D3 8F49A8E52227DE627424D80E0925B27D460046D110B768606F7677D656660F05 CAAAB49B81E7BD31EAA30CE2A50FA60B8363FF0FA6B6F4C5BE97B61394FD2869 55BA8DE8224AEFA502808A4F1706C6D4343B3F505684D28CB10496B7209C26F8 A248B0537A4EC6F56F891C8B8A354FCA7563B908F4ED42EB2194D8381E4FCA7A E01F826FF83F020A76F68B928FDC50BD619D65BC333C1E4CE505BE94F038CD47 BF78078832ECD926F5F62E93CFCBF8F8F7E9BD9FDCEED2A9261706ECD1607334 876F7C02095A83022D0D058D04DAD35D2C3F1D6F43CFDC42DBD0C89FBFA7B698 CE07465C8EB9693F31CC92CDB7EE72EC6F22E15125DC380033F1954E6427517F 006E6DDADF35ABECC603EF83395F546505600DF6B38757EEAF81132E7BF1BAD7 5DA46ACE9651A78AE5843EA77EA55B820D2CA31AC6E7C14D2DA09B354EBDBCA5 609FAC2EDB03AA06582821BA18A99D1F858545BC1EF2A685495DA17A1F3FE37B EB994878ECFFE6DB9A7ABBF4556486A789CABE72BE61BDB6B56B1011D422195F ACAF80E1D5E575CE1D9D8B51265ACB37C58E8C2887D772D64B450BE310F140BF 60E0010144EA0F565E9C2FE66AB006DDD3F62D6D2A00343C9FE077F2C6227CBF BDAE3A6C50D2B6B32EB60FBE630A93A486666DF21E8F5CEA240E9C05144FF25A 0751099C5A737460DDFC80D8A1F354D8B8F7760E0B8472E614BB47F07AF446C7 F9406C921CE4712007C610A54B5DAA2C661A9BFDF3E5B3B3031AC353EBAAF527 B1DF61BC82BF5C90C0AB83F78633515705ECD0387B0440FA3C8C0A709C8609E8 2A19F4B95E430CCCCD6CC94F8DB27732460472288C75520B5F140147F3EF1225 2657E459C5A7652270FDB40B10F149AF9B3F64D0959DD476C8603C879EE5B7A5 215D9D50DD0C161C650BB095EF8BEDFBAE99D6FB51723C563F0B5841FE1DBD60 5E733330D2079B04A2AE86A03DC4AF59F130 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR9 %!PS-AdobeFont-1.1: CMR9 1.0 %%CreationDate: 1991 Aug 20 16:39:59 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-39 -250 1036 750}readonly def /UniqueID 5000792 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835 3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203 046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2 A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D 731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B 09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1 49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B 5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B 54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F 11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AC46268691C741B2D4 48A840F1128D9B2F9CF07D0709FE796B23A836417BF7B5B12D67F74453C82F5F 25F7B30701D6F6D4F4DC623C0C27D6A6FBECC7312A3CD10932FC7C10851C3C52 24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259 21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D 2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815 26168E4FEA805897C5B0FA4D0BE8C82F83B6E9CD10066F484D93060200F185FA 99DEE72FFF5D118B802DB3199564CC7893A6A585CF24F59D8018294133B951A8 7FA82D379A3A2C1D2D8BAE0F6A59D11D72EDD8865359C52BC04B6D95D7D4B6BD 6F7A297CD6EC639339463C91BE67A1A82D339114F536312EC93553691D61D7AC 042EF2AB2D18728B6C59FF25B49C39C6C5B5B6E70CB530A2FBAA3385B6206925 A4E2A26F2BE2DAAAD93DC7B9B413090C2191E33C2F124AF9EE5A39E7D0B8B628 92F00881BFBDE1AA2A4625D954FF67C062CD647B8E50996E2003DCC5AF451933 47AB57035CBBA5ECEFB414A696625ED7BBD0A395A7AFA242984C4DD00D48D2E7 C720BBB7C62504CE41D9EE0CE01DC4087655193006DFC2149859C2D5CD91100D 85BFC2D4F7E0AC24F3477CD2FF606BABFFEF310694E0AFCCE66FDEF8013F92EA 06874E8DC44E3FB7A71844D1912C7CEFD36C98C0BF3DDB016A7A11E10880AF2C 0A65C24C5EFA24481DBD78142910EBF9EE7C182671893F5E786D58A3A544D20A DAEBEF8471BE979387B12EEC482ECF33BF5AF86459A4D8882DBF0BC736A513E6 A39E19EE18766F34C030DA90AD2B57A3342A5B48C85FE95438E444325D9A3AC5 A7640716EFEEC7988EEAC7A601D42A8D5E83353527AC3CF869406511B7684634 35F0870A6C252099FD8A524B7577CEFDD91A686DE349F38D4CBEEB170038FD80 67F3EAC621125C516442E14C3BF193DAD7A6CE7648165ED2465D38843B7A0EEF E0E26CBBC8D00DEB8C468C44CAB1724D6CFE435127A10DCE2E77C3B0867C2CD1 8BA0CFDE3CC879A0534F8F657869FF8848E881572A43EE7BFE601E8EB19184C6 4EDFD81C26AE37A4AC9542E3E3305B922160EFA9395411E07BC7FDDCDC4E81E2 86A0586029B9DAA08E86FF6FD213120D1D618AB90DC04088ADE36E8439057599 BBE9B6F3E1F9224A6B66613A20D764A48493601216E6F2987BFD5F990F95CCDE 0FC1B9613D2E63F992E2B146D91434AB9FAE9BCF9189C48FB0A58806D513DF45 48AC44E1E75D8405D6B36284A5EF487F8A92B0B5F942E36EDB418453C3E54071 EFB922EBAF1B5E1D9EE16D696DC25DE323105B06F3D8E82CB95A39D62FBFF310 668C3CE13B25A919A1DC9FF5F6C2ED8340E1A5A1876593E37FB5DFFF4EBE23EF 276D12B6048D0DE9944800B09D56600E1F00E68E0463452B9F13028F5BD1DE83 DD402F2F01682C5823E265BDA6F95910C98CA68D809577113D4E0729931CFD73 116A478C7C27030B02F3EB61F6AC23F17F9BF4D65A03AD0050DF9314382982C8 53F925AACCE253B29191821D6D8F97B8656528CA9321868C8D44C34D835DDBB1 4FEECADA6552A8255CB1D6748B628BDF1FD5172A24A1F32B29778B1B120718E6 08CF42417EAA003E2008648ECC09E09562F343ADFFEADCC824822DB7867E1074 AD9266EDF5ACF0D897F007395F88BC7B40FA8BF968043BBDEB84DEA437685BEF AD3AF2450A87F412948DCD27414402AAC49D272D80019BF7F5C55FD72605A5C4 812BC3BEED41F89D3A41285D07657485C5B9C291F05B79BCE5F1DA1F5BDF7D0A E6B63BAA69699B419DE9CEE0D54D5D928155B8010C990484DBB1B2F171B4CA2A 0590FE65A7BFE8B4680BD2784BA6AC561604FD13377D11489E3A7EA438C80253 987FE7652A0825EA129811A896B539DF25484579A30B81BFAB22AB6274E394C6 D79D4B1BB1EC6241849310F36221FC65DAC2C4E4255937B381F7B6F8C2131A0D 1B83825417F17342DFD5A8D7CD99EA1F19B1F106C4947E0F8E7F715D67E811A6 207940EFBCA6B3D4BF38A6B3FAD1759BE8B70E9879A4C8EB1CC1B2D14F2C1862 FC2F6C5C5154C075EE53C19E00F90D81A733B4E2CC911195BE6783A79B613EA6 75A31134B78016DF2AF48CD8A2A2FE470C8E81AF09489ECC5B40ABC04DD517F6 EB83653DCE0D4C4E3A4C95766532BF9E04C668DD04A3E2214D93D702C680AD4B AC5A515B4B9C4A2483CBDCE4EA22AAB5AE4C536EB99997B8A7D4FE08CA95EBCD 513A5B37BB07679EC0E3EB92BA7EFC05D692959D61C252A89BA6124845F25EA2 35FB0492EA76BDCDE1DAB84578239FF3C8F633D225972FBD664F845B6D6722AD C8AFDB4046C37E3E2DE3527A1886509DD9EE2A41B7184A5867E55B2DFAA4E501 A76D3AC2D03E3DF439808256B1C05D325FBAC86C845AFBB9023FF04165DD73A1 32B7C60235DAD1FDFCB27C325F956813C7EDAED82264E731939B21F91BC0C039 50A3317940B5C2B1D622749430F108BE6870B21892AF99B35F1FCED4189277A6 955B7D50FEF582748974657CD5520FF9A21BF7F6C64D3193FA497A725911B0C1 E73204BA6CF6413FEF87BD7A01FCEF03975B96C12B4C5BD95159F1B81D5A6109 EDD96419AF9E4E2358B4F95CB50DDA429BF4249057731D9C4C907065E779EED3 162498F614E6FFDC0F9B14A20FD7357A32CDA1DB1B38BC48431DCC658C86A4B0 F32DC102DE5A973283AF55671A98B1343302E0407770F96842CE605295F2B278 BF449B19FFFBCD68CE175059B20311023800379522CD78F4A5D7810086AD888D B6BDC417ABC3698F05FEB7057A700A730367F21C213BD09686F9B218FB549150 4312EF31222BB14C545BDE0102E2CDA7461EEFBBAC23C668E18EFCE3AAA498E9 5E186A74C00DDB531E909F76BB48CD6DDD7FE9DB11FC60632884EE749BDE7FEB 97121477CE91E8FD0AED9BEF61FFF112C0B9B9DDFC813451D97C75FB9803E2E6 66A0B846B178C6B501083BB36E4A8B13D5FDF521BB462CEEC5F427184B4B22E2 0A2390B885C9BD24A67B6C242AB861C5E8B2BC42C3EDDD1A9E832A246005FA75 16D88557A0B93ADD97626B0FDFA9F6FAD43C941ABE9949A7B432FFBE7AB2677C 87AC76D246BAEC08CC21731B7E2E6EB829E7EE55A7186EF69D6F4A64E6C732D4 FD7B6862916E81E4C7D8E9BE14F3CC27F2819E5DA5B5512DD0FBC0CBFAEB0856 A640F13A63E8BD4F0F3943B245D43435BAE00F0EF726B7E5484A70C3678CD008 2C9B2E97301517A1BC36C71298BEFB722380162A9216E43F2FD548B0FD8535BC 59121A5DB4F1E3181F0CF1CFE6EF54FFE2FF51DB8116DE2CD5440F9198424463 64B0ED8F9FEFEFB7A0BE332CFB12989D27471E5F4440C08F8F7606EBF603A669 DF54398E74C04F21E1A73A0333E9D75428F20C4B5E3B5A5199D13633F7E0F0BF E4612271C4ED25D8476C44DD04EE695442684A89D1767CF99FB5A8EB2C8E1114 CE945173245BD16B449ECB7031B44DD444FCA7E842A5AB7EA5E0DAE4FE57C59E B462BAC13C3FDD398A4DE4A92FC0987081784B4F5C3D2D5FE5D4363844255324 F91CA8D57EB945DAF11415CCEF188B196D67FA81F0E6A180CAF7F2E647757118 970D00FF08DDF4CD0FF381801B365D1EFDE2EA0D396252180CAE8F4991F4BD07 613A48B07221CBC576279177A63FB7384E2F42657D6370A3CE2C83840B8B8F9B AC8B18595A46DAE09C91FA9BCE1543356B1447F262BCFBCF96612F57A2B8673C 17AE57D7584660AAB5CAAD0C67CE09A2256579BA9E927DCAF0EB48DF07E20B42 C8E6F80A1DA6274CDAF1648C7A0C5FBCB801754409992185EC5FA1F6358E2299 13ED2A808ADA846C50FB24E69547FB0BE90F8869ECFEA7CF09FDF1EF5CC71670 52FA76FF20A7315707DBCFCA3AF97690F12CCDBA9F39B4BAF0B67F4651200B4A B92D88D2EECF94324C12F5AB30A8038A4E1F0AF270303C792465D3D0A719320C 878F4B252B1F7E5EB8A8084217DFFBE2A63266B709B97CD3AB0ED16B1AB03EC5 884C1886E62D05C87A5D59916EA0D3E5DB1562D493F21B925E056361BFE62D26 2291D3F633F9EB7505D668E7CF29BBFB9DB65EDE2CF1FC24B77A400F1540F0EB 698326BA95E672CC03AC0BC8EF4FF6E05CF91EFAD6B18A951299E752DE6DA0DA B8F250D832A6AABB50E67F3FC6CB053206400CB069E3366F7E5B1D9854635340 6923CC3BEB184700FCDCBA772EA02557BE7558F156E99E2EC949C821B836BEE4 D99B1617D394607096631F2DF8F238955932178D1E1BDF959D7474BFF9351722 69ADDF3EB7FA02AAE67FE1BC8C805B71F7CA45621E33E7D725D5F8EEFB8DE5E0 6216200B28512CCA0FDC51A71E0FCD0C7DBC95CB5F09EC001E45CC99E8013BC9 F216533B38E46759160FB916B048C23CBE902CBF57E4672D78FF492F5DFF5D94 F4299BE0A83FDA3732656873E4E3517B59E2D5ED6F265A411F199DEEF5078CAB DFEA1E3E1E56BF8989F6DBA7970CB342281C9FB0053FD75540E472651356ECCD 9165C4D1B5BE07EE85C38A479087F0225012A1E2DDDDCFD2D21B55552768027C 9F20DF827AF6C6BC4648DFE62127C5DC05C33B344FBDBBC0E1EE02AD87D5B1B4 90A1B5A5455769BE796FB8EBDDFF347B6962341D9993F687C53975C9B24BC11B 373F568EC9F1F6A8DDF546CB89BD9FCE486DBFE80970C6C43379B3EF22C7E854 13A17772E4007E94E4F6C3C0BACF1D48817B270AAD543BF97FB1E1363D3845DA 185D484D67E8DE004358EE56D5111DB005035C92EEEE028EA5EF1181B7B4F9D1 97CE9D44183E607B4DB46CB301C2E748A757E79FE0086D53888CFAB3C11A9A43 DAD7549BA7CC8A47168C1FF91E7CBAF27D2C4EC19040F483CF11C3D5B0145939 F284AAA3DC45CB6B10235AD3B9C5A686C7DC88C2CEBD1B0712C03B3C3E525C66 BD297F07521857CF9151F75AFB4119CDE84D4BEAA607152815706BDABA7BDC58 5E8BDA6836D3B776FB33A7A1E7AC91A4D2DE0273B2623141510742397E813C31 95AA7A9B7B04F004FC2E6812FEAF72A87127E5A8105197DE526BBFA4C0380603 AC21E29D981A58F4C9D42C5C7FB6560AAE59D6BBA04F3F9619156BDE3A70B317 E67E9971915E757FEF05B7D1441C22829DE3FA3E6E2A6B04F4E204A4F973E3F4 89BED0E91978E6EF8F246B2EBF0C129E1FC9B034B659E4379D2BE531F676456E F48DE022953D2E78081C054C35D421FCBAE5B061462898B2959C8328594799CF 87CB7C93B5D54101359132AAC14EBF199FBD9425F941C66D1C6016CD7E582466 42D49A1747AB9ADE307F5AFEE7C61B2E8C724B3F6CC827C85062BA9052B20781 AA516AB1BCEB9A8938E78B993EC6563E872BE05EC25BAA32A4824ECE5AC5BB8D 2D6D8D1E4756836EF995D32FA7933F22EEFCFEA0379830124B73C66E61830B53 48F9DDEA58AAFCEE3FE2189301DB73F24533988430A0B3CD6F68A08A7B57E235 354E5D73B513988A4775227CBC9E1362504AA1E888EFECA0FF943AC9FE942B44 4D6313C6103D88615E4A9BA601AEE3AEE3FC352489E2EE15CEDB75E525EC3DC8 7A4D35770AE1CFB021DCA01A86BA33542E285810AE12C1F56B2CBCFEA9A9E628 EFACA3BCDA564C9EBCDFC1DA74927DC494BC205D27CE2FE87C53E908F0E950E1 60D068DB1E4BB017A2060E9F433A2830B5C8018A8F6DA498F6EC4DAF22FE8DBC E8A5F13D1A425472DD5766B20546F53DA07FA24E92461C4BF18C32B4AF31D145 240DADFA7C77D0715889FD9DF13B27820AA5BAEA10C3DA45DDCE024A1EF8E077 5105E17DBE12850392A7931EA26F529D46AE309089760F87E97115F23EBAB4C3 6233347F2B95DB98F10CC32E06465D35D3E69E9ED2185E5FB121A46A500A4257 7BB527CDB1A80B7F29C79B482DD902E47E1093FD3096AA55CA5A35197324E50E FD4437E81F862397C78C93CA6680D940DB8CC120A681B0F042AEB28AF20E98C9 A670592EB73A6497C0D7DDA0F685C61D44E8002A1C685BF3982E365D2A7C2109 DF027217B13CB6C7C815A2DDC6C1F1A18BEE76436A00092291B3773B77A8BC4A D90162D55E9C6E6A49B4020A1420C96D8226EC67F49D9E87EE70F68C5ACB1AA6 993A9F113FF875F214F543199E26210BA0F1E14C45EDE3486BD3E98DFD26919B 978A60945DD0D6EE5D20DF2BBD083E991FF2E6062B2899A7909F31D4BD5FE680 FB2F0F9CEDF17DEE979FA28CCC77761CD296C3C6A1C03805EA06187354DE2DF0 23F038EE916140BD4275912B74B247ABB028AFC3050203FA537E1C002E6EAD6C 7C6471FDAC42407F87F3BDD737D718B0F471306787E3F2089F42D8AC6F3D4E47 620D6B5AC36F576B08E7BC432CB20619882CC455B603741E7279A71AF640C1E1 3A5A7FBD16F46CBEC1A4BE12872D6B293ABBAE5BB3979BD94653F1FAC5323F03 AD5A66C350DA845266F80B089072C5102F9194FE53FED2214154AEA2D6AB2547 7A3C9D265524A754787D289962D4B3AA47DF7D6C11BC8460153070A420AC725C 37A667F41A72727F54E2DFCF73F182B12176BFFB11A843EFC7DF8F07C7468AF0 FDC218C361491275A2EC1C5D86D1A6FADDC907E6B16302243A53F3360FC46E0F A0C555162BE52B57BBBFD87D02B0E34785FE4E02330DA474FA8EDB7FC48E27AE E7F2C64C41DD36E56AA343A2BD3D94C669866CD08AC23144DF3108D451B82954 1C5AFCE71D0FE836755640AAD5CDACA71BEF1FE92A5EDFFE56CA441BB1B44C2A E798B788EA0A8C40D8D7CE1BDF7056241B3BEC5D1C9BFD0384C44EBD7C54DD58 0AC371CEE5D888A225B7630382C9295270406ACCCE9ABDD923730F8DE19FBA1B 7C1A216D1A7480907E5140C546B38068AD26842CFA45AA360D4803BE6DE182E0 D8CFE2E7BDD0484DDE4A95D46F53773C58E9A91AE4BADC9FC05A7DD239EC0156 5E78943B677593625C07FBF80749F80DB6B30B09A539732529B6AAE949511437 25AC23070E7CDDB127AAFD42E78C8486A219E76989E5DB39CB04F5F15F0D832F B437CEB2005132F6DAAD9DDAE2D44D75E333FD313C7298A18E51F2C6741E9B6D 0CE56CBA287FAEBCB70AC6C0E68FE34D5306E855FC99952E9CD8B02EEA238AF4 22DB623AA014089393BB957424BB134CFB736061B2F822132B835787A164BFC4 05BA5A782A68F07A0FD63FC94A1FB42CA293796EA4C1F36CA2418D2A2CDD8351 060C510F25544759B28C6C0A350CA7A624E1A75ED5C77819C33E387EEBF09161 5EE826FE54DCEE029874347FD62E47C44A17493B6885D459C3DCEE80B80F3F3D E1550989BEB91E24ECF7F290499D96394C11445E858AE028C18CC371BFCB5F02 E52F21200216E7FE6AF79F21F691DE76D5684688B5517DC2E16E0AE7A10A1C21 BBCF04BEDC85DF5DDC8972CBC6B830FCD19AA0D4123CA13B02782E97A283A9D1 FE0CE417B6B784F725512EC3AA6E326C30069A5837AA2289ABB1223BFCD9B6C7 559758548A45FF81756A6EF9BDCC51ED01E5A9BDF5F3A57F5D78A21431157990 655CE62188A476162CE905A2E3EE548C2D76C86A304AEBAF1B6610A602DA48AB 08BE4A8078AB65597770BFCFDB9587C0A544D80AF5B99ED07D880B8E971EDEE5 06902C64137B226F0E5D178FE13E2716D449260966BFF01BDDC12E9E9F46DBAB 44DA2B10708483E506B8F46AE0751FDAACC35D3BA963F9B6926D12F79A6D902D C5F94F3D2AC849B419BA24A2D32F9477F0A6485730263E9E9D589A513AF222E3 5BD1911FD53C68AD1E6084C5A2DD6CF69A56842A6909637E0BBAD6E3F39B1901 B7AD9ACA2A9A8450B32E76E5003A5A141695920A5E6DE6761A9446BABE3C8AC6 89FFC5A64D8FE21194AA17F789AEC42AB10ACA0B281F6916A07CE86CCE4FFC5B DDBEA2CA44646EE7B37C30E4B65E31F5A1BCB6289C1CB388AFFB63AF361775BE 731EDEBAE22014F831C9273FE8D61DA20E59B60A735B8964704D3136C79C5163 36ECE3357BB784BFE29866F3DE10502B16A8B674E9136A916D1D70E30C7CD9B7 D3467DF0207B54674023360928EC3E2DA33C522EC13654F6E548640AE39EB06F 83445195594E5FBC476AAC09006E06182AE44F8E582037BD68670C596C074C9A A17160043512211D2EEFEFBAC7A1D0F6C3303C43B11A9F8FF106BC63A7BDA53A A3B3E9014A16558FEDF2C910EEE28B2D693C002F14CAB8CE035D5693BFEFA8A7 398117ECC45B78054C83C27786AA7D2BD505CA9E503C5F0240C91E0AEF695223 9B9B652079ED921BC937C974F7B796167EB15D843FC2CF121E64DC49DD5E1D8B F7C38A27516360EB2BCCC879855076B15591641B2D1B8046D20B0559D0923677 E675A000ADD46356CFE80DFF41B5E1D1805C346F20AA095AB2CE3B789EB0B4B2 BA093647274017FB1269FF80F40CA6B8668ABACA151CAD18B51EE8EA25837A01 E90B0F7FBBBABE818FF09C1D6E482C69E9D31A0F874678966C405FF553F006FD 9E4271A72E00BC1847C46E0C457621B3C3D3F17D64E2E54C06C7CC2FAED56CE8 28EB5B9CFDE3E5C496EE4B2AAF30A3A5A0DD909208A8E970D5276E149ED2EB53 008CDDFA7C753CDBB10906EFE1A910FC30F18492684CC8797A358277BF537EA6 61596EE5D8C7962EF411FEDF0465F14DD932A066F4236F7FE1AD86B4F49FAE07 E762D635A82ADCC7458F1A6A6A62211F1D57E84FF6316550B161B9E64465A6B5 816F68599FADD8AA6CD2AF32C9D7FC629142B921EFA6B5BAE251556FA62455AB 0FE77D2E5FEF265468A7BAA3D1ADF310AE199BBD173C65E17FCD4065DD5BA545 061E25A28CC2AD35C12364E2C575D0649877D63D160D0338DF0B90F6E918E5C7 FE4BF78CD37CA2A78AF0721C04BAC5A8BFBD4455BFF3C215CF45CB861BA6DB4C F29CAF36D8900206EA739560A022725EA2EDE68C6396A956A280E4DC5731F920 FE2F1321B6BF0C13737DDD3F6DF8419244339FDF7DAEA2CA40A274BBFBC39144 2AB72DC83EE3443C3D8DF2DC06F3381D0AFF0E435413B49F762014F0A78B5DAD EEA8875EC4DE148F305F8A7B0114F8EF1432F4AB3FDBCBE1DB909981EA5C6080 5A8DF6D2B844F05FB84C276A3DBF9A13C1F7ECD4BD24C6056399173931A5CEFB 6D8F98917158A251BC8316919D036EFFBE165F1310DC4B6144E97667DE632368 864F89B2CE26CD1AEDA060E36E1FB5ACA2EB9FBA8ADEEE3476243CAEAAB4B360 403DAC053E46537F2DD2F431F76BC45B179C816D2DFED6C198A03C1712890D7F E8F9E9BA974101158776FA27DF72C16A35867D06836CB496EC8D972D17749323 A7B8A6EBFE399AA4F66801FF61F6EE2D57A36838EFE1E4248FC6AFEB25232308 C8269D694E81CB21E98E848CE92FFD6BF8D9C05EA804BCB83870AF34C0D52CF3 84E2B45AFBAE23A293A13D4CAD4F4052616232E8CBD25D7C491A8D7AAF5504FC 559D19EDBDA422809850434E8FF5415CB8FB841FF1AE30266E8CB213A2532A10 526C07290640BD5EC52E8853528B0C1F9FE6EA21D652239F57065FE3BC7AE084 C036DEB2DA05C585A47A8F5890F7D4F3881C4795EB1080E972A08A5BF8F41A02 9875C70B1D1E9982A4021930FA357507888B0C48F610B9362514524ECDF3394B C552E4DBE9F8A2EE79A33DCC3481C729044A6B20242E861F92CC4A563F5C6150 51A1CF2AE7DB5889A21684512E2A5DBEFC33F31793DE7A560709EA9A26C10EEA 3DF2FB59BF18D463C5A30F41D3F0D08E5C001B73A2C939A9D64FE0C2A9943346 48FB5E36A4A0D1497E3B064E6A05F8BAE7CC70A9A9F7B79ECE3E62F6ECFAA4A4 E2ECEB6CF7A1ADB6AAF198BDDDA827A61B8808A99F8455C64061266C6FD012D2 5E1E4BD8A5459B2FCD26FAEF7C8B6E6A94599AAE94892992065484023EF91777 BCE9017858EC7FE1D97E8BE48BC5717D36514D605C84D85F19DC50DAAE8D130C B4CAFE51B58BA9F5F8BF9EE7D76D6A35D3D13EFF9DC7B7C39DA639FB3868511B B05BD3273CC8CF623F4C8D5922D67455F20F81EFFF2F0D4B510B902A61B4522A 11D03B73E94A0999C3AC0A55D9EFF0F62B46888EEABB155379036E81AA2C057D 7E8F186ED734539148933BD5443B0C30C18924022CBB7C76DCC47924502376BC 9719212585E95766AEB084863FC4E9F041FDB28F3FD8B4D22615A0E773606C10 CEF06ED2316ED934E1515724CA64A52F3380516F77E78A320FB9095D507409F4 8413514D1C3451522FE198A42A770A7E3117E17CBE52FE66C44D791438540D9B F1078A4F7C901F358D01576E00A52D9A92715EEF7E8F60ED7103700A60499937 536C889582FD15BB1652E490A1217040FEC0AFB6F68150F88AEABAEC4B465C81 DF5952C6EED1CC71C6BADF33DAF05F51F4B7D1F81EFF8EE64C458CDEBDF454B1 BD46C2C9830B453D00A35BDE8763B12CFF5E0B63651DDDFCF61A6119A0D70FCB 76A9CB6094E13E4DA7372572E62E3D4BE10B81776E68168FD64C73DEBE43186A 96840792125A7235C14A8A392E353DD7AB327ED615CA15D9E70B0152378CCC80 DEFA46880E9E8E143CEEF7FC827B3FF98BF97A5B99D152C0EDC762963D717819 FAE1DA4C8E1E75294471A2396772991EC71C7DF15CC92608E9EC360564368566 D2FCB057D5BDB01C44708DE3C499158A9DC30EAF23411457BE6D84645148BA8A A4A1DA312BA258DE3C5B44AB2FF7A66303626CCBEB2BE90FBAA8E911C411D34D 46EC96CB4B42870603F23F6526E22A27271200AE4C8E8E4A37BA24847DBD38A3 836075C78385723C5F1FDEB8A459CB8D00DA6424F19A64686353EF5F5EB93D73 A71440EBE876686AAFC5B0262AF0D7A1426D10F6CBCB6834C3A43FAACDEAA867 13368ED61EB6CCAF7A297FDEC1E4ADDDD474E23FA2FF41D041515CA1C325DB40 9165BB05E85D2BF79956DE5CE8C5C19267AD64A94FBE420084C1AF9BA78732AE F15C67435889B2E95059C1116B826D998D49FE992F3550B171A4311A1EC77E32 8D0F852A94FE8736A57E17B990C2CCDBABC2F70AF140156DD6282E74AC796E3C 1EE52F2E1916810939CB1B4D3A9EB06BE5C4C24BF9572732846CA2D812F4DD55 F1122E54000784BD4507DEA1449395A7E9E875305D1F8743FBB66B83A0FB44AB B75134B1E5CA5B231CFD6AE09C6AF66E22E7B12EBC2E02D5E2C9B268B8468D12 63F1D6CE03DF4494144874F66B01A86DC1A1D7B973C5B564D7350CFCA80BA991 BDD5019709921883045A2F94041F05D7065E260AE2F9F32FD26E708CF474CC35 1BEDEC24E505126520F512CD140D300E62A027927769E1238B5F249B5BAB0A3C B56BF6D033FABF49656FB4F65F40597682127B4576EB5BFB0A1E7A397D187819 4872A1F3F205A9C00C00B2983D0042C64E88FBDEA52CFA3F4DADD38B667A081F D9D1FBDD2D69A8F926C98EA9314DFD37E45388CF091E8750F2E3B414F6614423 E09E37C1895CF91F5E88726B0CDB0AFCFDF8615EE176FF0C14271AB62B4E8206 283499C18EF0F3BC21271262C77C8CD82BAD2F78B648D93C1089B72F5496C1C1 B03564FF31018516855160A6DB9B102AC984172E7E23A8EA78FEFB4A727BAA75 E3C693845FE72F6DCE9E8C0AA08A9E590D5981187C057CE0BE427E97DED8DB30 7C692D2E93E23CED176E9615557B3D93FEC3A9ADE703E6898F25A5823E3A18A1 D7275F5D88AD5F3E7ABF1962D7EF6F3A9597301A5AEA4C343AE66214EC144367 6A40CA6593CAAA90F7DD4AA21C1779078272A8C92C7E8AEE0EB145B13D92577F 9E09AD0F3FE2BDDA38C04EA26A7EEAC6ED1FD955887D46C99CE42992B3656146 FAE1EC3AB0E98AF977C102931D496683E0328C3124176E2D253DF42BEE631FE0 F85D4F2023E00DECD5195FB14CBF81329AF83725E17E277F349B4527FCC82A2E A4362A898A2D66A60355505728DACD9C26BBEDA32E2184593AFEF59FCEF3BCC9 02B7F53AB880F00242CD7CEB16D5910CC15877E1084116A21A32612D6C09224C ABE349453F3F69FFA9AAB2FB5D16FF9F287EF61C6356F926E53EB717A448016D 963D48BC7421D420BB2DD86F233E6E9565B930AD05C8CA27C83DC28256A24E09 A72207FB2A3B82461BC8E1332FEACC492438C859C65605607377D51061447546 5C52299EE42FF2C6A86238435021AE331C63E0404D4FB12A6F494DDA0B2DD2A6 AF5FB8D55646B316753DD880C46A15E440A20F14467569873EF3F665B712D5E2 9BB62B836CD0720081F523D138BA489EC61EB7DFAA88AB6D0AA8AC7B75824AC6 FDA490FB433F5FB99812E2F2F5156981AB14A164D2652904C03A6E05315C497E BCEF6B731FA49AB4F0B71E53670C66EC31E5EB89A14CCEEBD9F683B97F749A67 9AFE356BAC31C8DFE7D3FECBE4C5F1F2FCB13391B88E48FFE7B51AE0A9339445 7B7E5D35B2A3074B121333768F4C9F18C5E3B90BC64C6F977F29D9B2418678DC 8033C8BBFFB2F7AA56C2C0B8BAE32D5453472C65648681C41D93E12131E15E82 D0D7D8BFE1FF90F18A41476A787BC77839DFE345BB7C0D2C3AF2709593145C57 C24964EECD0089EFCEAD31B0AEEA4DDAD7B34C0D50492727561E127F8AD544C0 CF25E2B4ABB97E91ACF0EABF4AA511BC557F9B2292824FBD66DB7137236D3D5F 59AD024CA8F3C239E49616E1765706710E35130DCD0EAA7C0CD27F6738A0F89D 77385824C348B676E9ADADDF32C121966CA058388B9C2FA01452EB57F4A17B5D D4CC7110BA19A18C5ED99F645D9DA717530C3A5848A39DDBCB31AC401B15B2D4 DD28D9C4F698AF567C66AA20EC35B442ECBA0B49E91FB2025CBC115E68F976A1 320D312E629A59DCBCF952BF18DD7B5BE3990B5AE034BC381C22A2814AAED3DF 2F65E519A22FAD673A7588370AA38C604E1DBEB324A504E0C9F41DAF01FFB421 3506E7B8B09870CFD8B45B7A2C09149DF68142339DED43116A861D1C21C13D16 C96743D5913FB085ABADB3DAC45839D46FE722F7AD3F8C0DFBAE1B8D3A5AEC56 F08EF1F5097FC433A0E02C9E2F998EE63C94F7F7C8874A862BDE41DF98A4FF5E 07D35376321261A32658E7586904360AF77FAC6F4A32585476472CC995D00B70 1B29F5DDAE987C212DC9B4FEB760939DC402B95D9541D0A46379243383CBAADE 095F51B8C003436322018C4348DD1C23E85629D69671133CC4644E32D20E0116 77A8576444710771A0908BFECDD6D0EC313AEA6F734232F3238CA04B272462C3 81D4FBDA02B1C3A9C010CAA36AE57CA60267C47122654F91B5C6633424F96270 1FDDB5569D1EF0CE145B6518C3F9B309007E0CAE5E6E8C3E35C3A1146CFB1E2C C04A8356F8138A4F0CC9E01E3FC21ABC363720A084D1748174E16B9C0E88935C E5511B2F24CF08106F0FE7750D54F2EC9016A782CCF7B3C1CCA6E35C47BADE19 4D5C8672F5C0A224F7904A27068A05882DF50FCD697A4B6D0980E2DAE697A5B2 89C730197E29812C551A2632E98964FFDC90A4791AC9FAA49309BA52784FC114 7719F030A7461C5EE69A1EB27C9285AE523EF208028C16D7AC35628AE94018DF E4E833EE023D712A1EEA9E51715698829E165942A97E36630A498CF70340C54A 6646A576008C0FC12CA72544B270A29453D6FE1731916C4F7FF5F71DD79D4083 1365C52CBABADA034BC71476FEAB5D352CB3D5D6DAA7BA460C40662EFB95BFFB 87C604C65455EFF7DB08DA68EB1FD4EB34963BDE3DB083CF110B5B58F7806CE2 5346ACFEA3785C4917D3478605F8419F568A2901D596EFA1C8E5F77464228A95 EA87391471403D235DA5ABEBE456E696AD22E45884F176D233EAFC0EDB4128D1 81414FA4B1EB04739DCBF800DB784A6500B920EAAFC9492EFD7BB96DBA039EB4 13B537BB6B9E6237318292C8B862C77B5798423AF311EDC2D3BB9644327E38C9 E82CA670BB45311263D54E718634A7A65B3647224F29F225FE948CF737FB02E2 88CBC444EBFD79FE8BBC2651774FA4DBF2DBDE175CE9D1D09711BB1733EE5E4F 31B8F2437E12780F3DC1BC3F1DCC96621BEFD5D3EFAACDDAADE7D8E2275113B1 6FC6DDA17B6575339266E9A35C0D476807118C95858D7852EE561AB8F3E6A61A 4A34E40E8E15BC60FE35D7A7D7FD05DF08505CE4F5E9B71E6AB5E4392B13CAFF 50D3F4B5738B768ECC226C1CE8DFE9386885BBA42656843C82A37A7B2C17339C 166AD1C933CE3A9BF73E869CE9933334A0205551F8E2E7999FDBDC0CBE67D8CA E6FF0DA2076E5C8056950455F1DED2C34D05BA22FD1598FB0F69FF51FBAA9D21 29F154C273258AC2D7CA2737F800D6F1D670A44E87CDB69A742E365E96559B72 5FA7737C220F28E417EB6573634D61FCBDE3C81D8ADB37F1C086B7F9499CD95B B917DBC3CFC36AEED9B3D1EC39034CA3CCE4C09EEED00FA1180B3D89AB82A105 071020DE319DA098DE568C984E6AFA6543C63CE885978B9C1920D75C333FFE36 ABD4CF3E3E5B1911B36C8FEAC7648E6382A646E95A2D73DDECD77F66A4475F50 3CB7AB14D45CE40B8B0837765AD6A725E8BFC6D71B694F33C90DF58D43703938 EF81B8FEF35F2A2B4723C7B3161DEDDEEE5DC2748B241191AB30A0105D0E71DC F1FE8A57CC6958861C000E2EF5A0FC756CA1B128DF057D3DAC31F1218AA716CC CF24B1559085E8798F259F1DBE79EC98A063BD093FE09D70D6A8737DB294BDE0 29612BF18C4F34853E230C491A7FE40B33F24AA5BD9E0108A9B36E69C981165A 2B7E51036C03E521063098F47AAD2A1578D5578B85A4C7609551EC28518ADBE5 FCE59A0E8F2317E046AB5EA0AEADD03FDB23CD91B1D6CF9585A50B8DEFDBD899 B3E4E5193BB783702B1F74B0BBEE30390FCE2F18D1957D03078A63F2693BC9AC 297A8D966FB8B7443B77B475BE1D3634F62BF1F938433595F4EDFD62ADC5B0C6 A2C73CE0E0AB455297AB9CC625EE22E93FB13EBA9EABC0FF41A7F678F213EF67 C30EBB0FAE5B3DEFC6C9BADA4D7D8C4FD54BC2F9E6C60FAF5DE28CBD92464E79 C8E1CF9F69108750BD3CA5B3FB88322AD5CE94F6BEDEB3910CF5616F29BA712A 925411E9355DCEADDA39704050F54852B7B0CB67B066B56DBDDF6F93E49C11B9 5602949BB7C2C7E9E97673B5A50BF4C9B2D4C04868CF1DB89C1F32777B9F7058 1F3025ADCE4DABAC91736E82847C5E2B979A4AEDCDDCC69B6116DE1B5A1F562B C9DB572869F99F76E83872F3619EBC601B21592C1E6F3401AB0D9DA2B5C4EBD4 04F8C2DA0A12B5A8376FD3DFAC4A7A3A82E39DAE6F1E94205481AB6B75FD2E16 413F355A4785912291AD83A24B0D385CF418621D1A0DD623DFABFD910EB14D1C 38FCD5E4E218671FC43ECFD7DAA927D013F0A63F3E4E8AABF1758244070A4099 7C7FF59F8A989C16AB5D20F9972A9D3A3E7351A4C8AE0AEA66CA3FA38507E4C5 86996AE16E1121920E14A8C28031F0EE31AFFE104B7738A7E3C7886CC770D776 7D49BF2E3126CD59C9819A76EC2D4B20F907284AE056CD8106E0BA82505A087E 68FB79B2BAC7B2AC7570B8113F2D350D0E0CA88D136268611B9F17F80769DE35 36CAFF7B30CD2B84BBCA4F0CCEBC7FCFF5AC9E52F3E9EF39297F5BCD317622E1 48AE64FC2566D3D4B3C3CA5F28F5AFED3FDCFB0096B9F2F2D611E956A8B90760 9480DC632C5AA77A157055EDA479BB3C4499189B63F125E51BF4196CB718DE6E 7871310F94589979496D0D1FC81781C2874DFC61DDB0D1E63137D7D70372D8A7 306894F14C28E656636A37ED4FB3FD23DD8D256F629CF71247BB445ACE20FF79 9197E7712ABA7FE5015C8754D3CC7287CAA7C99B203A007BEAA9B4C5A1BF24FD 099E755097232D42BC73D46470A88C88517236EED31A5046FBDC8CD1C2772F4C C1D100903532EE93A8CF8C1A0A48D69E8A8C8146DF685669B57846F1BE4F15C3 202E18BFCF917B2D6E620BA929D98178FE45291535D3E10FDD10EE8BF221F4E4 8292A2BC96F68619687885 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMTI10 %!PS-AdobeFont-1.1: CMTI10 1.00B %%CreationDate: 1992 Feb 19 19:56:16 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMTI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-163 -250 1146 969}readonly def /UniqueID 5000828 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F 21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6 06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF 55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5 B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86 0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9 1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961 7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A 7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402 356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B 19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2 C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F 244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95 5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D 993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363 2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3 309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513 F42EDDCF39AE522A1DC2DC523F046EEC4CCAE25792B702C288732F5B13B5CCE7 E8B6A1A1DB86B1EA38883951A650A1F10A75487EBBFE4E280F9FEAB48E2DDBE4 BAB5EA7A8A37F36472F6B02B8A87D7FE6BA179E313C19ADFA5503C6E201C1C41 542324E1CE6E3396AB329CFA81A3FD438C5C31BCF78C0D6490F9288B318E8D32 96CFD6AE32E51AEFB4E69ECA95C957F3E8F2D3BC8D053AB8983C2C11D68933AA F07385706A6BFC4B55825F22F82E55D70888F109E80CFA4B25220C33A1BF547A 37C394F3CFE9AA6292C2BC5A39282179CC2556BFAD8971BD7BBA3779D42A5290 F810E38999611C33AAACA42AC38121CFD920E4203706565C08D065EB272EEEAD 7CAF0F1E57D69CEEB205127D8B7264041530285F3F44FC47F4CE32E9C7E8F148 A076E7C94D63E4E5D557598B5EE6C1D194B0CDD416B86282FB7801021AFDAE9E E7629498A98D9161B903301FECF136CF9D10AFF24CA22AACE43574469289F65E 644286DE806FDE976BD0CBE06DEA550B9F650B45E846555E42089693F07ED20D B17F6F7D72DFCED7B036B126C52A8C08F726950CD5DA354AB29F3500141C4B62 46062E38306143831668404E4E1FF6EE52AB05A22578EE1229E0A6B277BAA00D DCF86AF1FB33F87F35AEA5CFECF71CD615E7C4C3C4CE09134D4601D3A005FC71 CE31ACE89308639B59C81A1F92DC3C597579AFC56A5F2B19A0E99E13121689FE 0D36AA3059A7EF6E3866A0FCE5204D9E6C358D032AF979158BA5DD9FADEF4F67 ADBD3B7009A75B053A1FDE0815BE01BF8FE81A6BAB0D85E6465241491B6CEBBD F8346DDDD07D1B7AECF2E2D5C287BE3F9087A71026285382A7BDD43BFD691853 C894A820192BAF2855951250C531625695449EC53331C7A2595CD792E4BAF539 C5CB5025A985FCBA0C18DF2CD466447492A54E47A4811F1BE97B73553FD9855C A34B62533448498B45CC7898EC92A3F0FF0EC03C7A1DE8E6F0CA52FD9D9B97EE 67D97C5561D0B0894F55727351B3432580EECEA02F1602059255E8EB6B999A9A 8B16398B4455E7B69FAAE7F42B8B31DF9FEB031590822DD23C42C5504D004269 5BCC2FA701A87E263546E703ED6817E2E02FDAE140EFA1F22D4A9E2415B0E64F 735157B478A44589E10A507E5C2BEEA4EF42D80FFA003CD91BFA039517A8E127 3C88CF691986A6C7F01773D42619308DB17FFB3209E7105EE2B98DB7C535BB57 0ED8038949B4E7AD8653E7E1D7014DEA14EBED77472811AD3C19F3863DC2CCE1 7DEB5027F256A825700233D90402648164B8B2A033A623788A06F90085F739CB 8656047A8C0A279E0D7F11D4460EF09492C7607D67871CE2A4CF1DDD388D16B7 A55330C5CD4AE0D2C28828556F5E9C84E662BD2235A9D57BE1DFADE025DC2866 F3B925E59EE9795FFE19A6ECEF392B81CD679B0A7D8B634804A8ACFADA1585AB DFBA61D1981B981054C4E9578F5EBCD781921E30150F806C2386F263C4B76A1C 44EF78C769747B96AF3A3C1A0EBF8A1CDB1081E0D1E9C44A47BA502A3ACB0F00 DD59A47BAFAA5A91F9D944349C8F2109876B38726A80E7D0BC0BA6FB2246AD83 86DD72D3C7D288C8C8D543FD2B28BF62797685BB28825030D25468E51BF148B5 F1162A9DE3FA830B0C293405AA488F6D22EDB6FB0F89EDDB6050463E400DD6AF 9F429BFB49E78C351660A5F5BF64871F3AA9E49DF619D1EF92B562673D389309 61AC1E8000E941FB93D1D62079280106665D630C511A27E19B37D4EF50A8FAAF 308856B1A465BF844ADD42A346CAA9EE27595F39A90B6C3C5F716EA8587ACAC3 5BB35DA78F3B9060702E26827CC07EA48908D650D4BE795FBB758EBD8BE17245 196C94957B3852CF3913422BE4A734CD2C74157D5447ACB13858991A989B1AEE 40E76A65D33E3EEACD90DEBB08979935C02224156935F68594D18629D97CB4EF BDD03342F50AD50A7B551E5E425AA20CF35C193EFC3635B480D26C5EF03936D7 6F51CEC4A6AF21F9252C743C7FD7D04E3B6DBDDF6342D3FCF0ED1F4E05D16F42 8B6147A7C8D346559677D9407A5A48C052029EE821CF0C8AF114D9E0191C11A8 DC0B927EED3E8AF3D3AD181FC22D03A528214A6EE9AA82BC5D981A65BC831E82 A45F62412C2DDDF3F5FAB8AF7A8E568FD358A501A90E08C1902D3FA8D0F4CCF2 01173379895EABA15E8A5716327B3590DEC4A18002113A15024BBF28F01D5B8D 8362BC0D5196AB5A2B87AFFED1359CDFAFD4C5750E6E2535E8B790D562822A67 E6989FD2C8E6A3A370C203C9793A15A01E7EE9E6EB79CA6E8BD924FBC911FB2A F19A95E93BE03BC04869DD404DDB17EF275BEDE0D171BA968AD78C25B233158C 4A28DE0D66E9A6E446AA32135EADE988C90DE7039A5E78A850460BDE415A3D4E 25C38C1DA939EF3B4B1099D467FDFE53517E7304247A4B4AC9341BC70A519B04 A8A608BB9583868371251BA8D771074462525342BFDE0A51C0ED16EC24B739A0 09AE5AC3916DECA5C5C58450E8ADF2CB573D4C2E65B3085375DEBC161292C517 493C0D58390EEFBB4AC61ED79D91EB321C5B33FA275A95F9B732B6C5A5192EF7 45E442FA2FEE079C0E7A70BF0DC83643B22626AC3A9D6D973DCFCB3D8C846F3C 4D77D69A5DA871FC9D8C54E2FB984F5C1A460D74E80575F5CF5F11B449FF2B07 24F1AB32A620E3298EE4F4C729A606FAB789C28348AFBD58DEEAF3064C5757C7 164CB85B8436EF6D82D46E8AA9A7700BF425649E263E96313079BF291D868D36 257F7BC9CF077BABE60F0E480B9EBC2F40C369AD55CF8D0C8EF54518B72752AE D081C0D71F795436F07B4609D27F5CC2885131BBE28C2B6389F66022EE16B9AE E1AA328357EF4B1D79A9C4FC302849B75442B8F4B28626EF03A8B88E17CBCF17 3AB40F327077A2B649308066113436884FD35E039BA74875A8A31183AE51AC3D 8776573A147DF822237A56B73444C3A7CBCBCFD8D1A01C1BCB56789485E2ACCE D980EF8FBC10FCE839D96302DB7DE2965733343A6CE697057F6232AA6B5C6B2D BBAB25D99B3A550F147FEAE3F4A768FBAAD1D89A9B210D8261A6B2A18F81147D 0FE0F49FE00FDB1328469F7F7A5CE59ED4E687998327045037211848A7EEAC51 34EF9221855342AC26F0AA41CD64DBF77B24C75239D7509B3E2BC2EAA4BBF8AF 6512A793EEA0CFEF2DDD0FA38971FB7FB255F16B0103B24B3E6A6EC695731153 DB53C7EFE25A0BDB647647229D02BFDA5463F65884FE69B5B7B939791F432D27 085CB057BA06C4C3F8F34EC12611981151F0AD73329C62E128E027155A95FE4A E9093236A226B7C4D5D8C9315E57D45BF5B931673B4BEDF15DC1B360B120CA7B 604CD7EDE0F05F3427E0D5488078C7762C6F278FA701E63638D5E73CBBDD577E 456568BF05CDD3C2D4133DB2A285CD80E104E6259FDCA4472577981B734F45AB B83CB1EAACB99A49EF880B78EA0A25392FAEA99B6180CBCA58B1E6737A8EBEA4 1D8F4BBD555650EC6579261EBF88EAE9A4E7F941962D5C69B499D5BF99F5AFC4 6D6AD60FC5CF16E6E5FCA3A78AA6D9254774F6A1E6076DE39905B321C47D2951 C853375D76625433289D5FC40C56460FD190387633651AA5E741666D27647036 5052D86F6CAAF7F62693F0FDB2BF0FBD3F62D410A1BDA8B957E6C9D99BA8C6EF 1A4B8424504830F0552958760229F1B301B2A47A67BEFBBC436F336866E37E9C FE372516DF5C66EE60BB5191D145386BD78BD45E953D0EA90B89C96A4DAA5AC4 F8EAC79BCA31546E8CFFE4109068AE075D9B0FE034FFB6E8E7DF7C2BA6EBF0E0 91DF89660BF030665E87D298A54038791909617CEF3011A1FE9D2A293A90ABEB 7E106B0F12307205E708DC227B8C60A13E9A4F83EF25493DCA55906C2817C241 51D8595BD86447811F6E8208AAA20EBEE9317392FA845FDCC0C412BF8D6D56D5 FAF1AE57517EE64C0CACFF19E417FC53E737383624D77F6DDD7CE81E75CF721D 08F4EA7E78AFE8BBBCC13D2A2816AC6BC3C3ADAA4C94806B6FC309C3F131EED9 91DEBF2E4738B7F453739A9661F78EF1BC68D4826A7D2513BBC5D05C0B5A9941 E34E3648C47436FFBB89B7ED781B2B875BEE1F2337D2ACF98055702DF92083D9 3DCE0B4522A5464745F6B97B72724891907F6F40B1F044E720C56ED24817EDDD 1A4C40404C47935EECF55FF0DEE9C33068857F7C098C98B10D576E3A01C35B86 7B3257FEAA3BEE297BCCF47537A504778B2CF0513555337A28C03DE07EB20998 A9EC6720A360E3BC7B24FA2792B590AF0258EF84EA79286A6B7836993F7E8048 0DAE633006EA5C7C3AE1CE7A5E5099F30B16597A355470BE6FB7B518A4975DC2 68E5A5B9A0CC9419401C855E326911756829A370140AE02732281D5E5799EF98 C69D4DF69E6DF4B5F775F27CE9B021E5CCE89E9D64362BACF674987CBE18D693 90964AF4F89843F7283A303D4A566ECF068CE68115BFB0F24BB2615BE1FC0CC6 838B506580ADF98878FACDE29509353C02041105D9DE3AAE62736BF19154F89D 3E39EDBBE6F4AE853D8FDFF3CF9D1B3503D68764B912095EF71CBC510B3FFB27 9DA27FB5CE4053B5CDBFB6BE5A126FE0FC63926BCF39062A565FA57D33BB7979 1BC1079BE76644A901245870A05E0C431DD7915BC107FFB4F9DB81398226A7CB DAD6CDECF94CDB6CD38AF19F539ED6FB3A25325F42F6A2762A16BEB5FD02B06F 8B378C8AD19EA9F3AB2C0632BC32412572605EB185D96B9446C3FB9250D0E6E3 2CC6E759261DE186FE86F5E88C9B2ACF6637B7908207965C948F944A6EB42702 35DC1A08907A38597879017E65AA6E8F9CCD2F984877A81B86BB6EF1915F8E91 22C0E11DD77E77ED02FC5B8E703797E24C066CF7C8A3C37846D38577312E80C7 77FDEE0C5FDFFA5334900A5F8B52B595725270541E161E5ACE608E8657B7552E EA7B08727A9ABEAF20C7ED1DF040D437D231731871CF62B7789FF04455CE6781 48EC27A667010C233B03986A5C24618BC05F71583CE5EAD8263107309D424027 1D88E7EC808C18CCD912B538362A8392F4039128DA9C25361119E8FA5BCC8ADB C70394CDC141687DF2FC8FFD74C7BD941B5819FBBCFD9050F888E7CAD0D32259 6B0BE14C86CE775AD57141F9C5DC88A8B0C67FE56FF71629332EB229B7CFCC1B 5787B0588C8C7472D1D95FE03BACB9C2273FDE33CB6AB7C52A8B7845B11A1B16 24F14434393C589C053ED17F0FD9CC0ED441C03BF1B6D4EC3AD0F3291DA8C7A4 367BB2F19A7E90FE2118D1F81D9B7711DFD316ACFF63351BDA2171295C234566 2ADA82494582DE0E1E9E4FC226E8AEE5FEBC2DEBCFF43B1ECA5F7D4D67C3AF82 B5ECA7B3677A0CDD5E3E18F3158EED047E94A482274FC0F675DF4478AE141E88 71C36ED12223360E17FB8F8A263524555BC99DBBB5D3B33391C41285FA6C919C 6906A9A98B20C0C9BD96E2AA923A65FE615BF622CB90DC06AA2BB62A5CEBB251 0CFF129C161DE8E9FA764C03CADB0A1F05A3976624E48015D1722715C1E7E38B 806F139DB44BFB38368B8641C14DDBF491F4884BD8234124E3DFCBCADA4530AA 3B61B963F04C89FC39B9290D8C22B36F9FFC9958BDAD144147E530357F2F547B BD3DBFE476C21FA91B75E9A55CB31793B8F3BB407A5DBDDD8F6A51497F7B54EE E9189F41AB0413D58BAA28CCC0C7ABBC1B8DA789174A5F96B8028E2D372F2176 82C71D86BF5EE1FF1CA88CC467BC87BEF1C2F3CDB88D4DD9E790EEC3D30020A9 36A34A9233D85257942E63A9E6A7A2EE13D235DE7A723168F776686F49D216E7 797B7CEDC076791986996A01C34A8B83F9745E2D74D296A38C8EE4B5DEC1BA64 06C74479DCEEFD4271507A4B9B6298C3B5A87EE49A72D353451FE312A014BF33 6DDD17A9B471EF41B36EE3CF11435AC4154A04E25BC99DC3267B94807AD6A1C6 47CF3677C53A76DBEE3B4F64B00F2DC68EE4E4206ED60317271716C286FBECA1 05644A97ECA193A03E8DB238217EBD239CBC4794C992A66D07B583379E2A194A 898BA9106F99E67751A918551F50370DB483F06AB5C378334C9122583D4E99F7 2E6E1C3AB40E79265D388DC0F9BD2901A14D62E8692B22ACDF4AA80D54F6DF42 6128DCB9C6B871CA2CBDB2F0A8CE73B44DFEDF27828E65EC11A9C71D3388C0F3 65C799F1B089A25AE016DDF0E0C346526E9CAAEC7FDF94D431CEA768D78B93B3 9E9B3DBC2301F0507533DE956A7C210C75DE89BE9030838AD3655BBEFB26AEE5 A2809398A74957CD685A1BF60564B74F11234B37BC467D51D4752207E6A0DC38 79AD5ED91F73BE33BAF573FDD6249F4D28509CB8019918625D4B3C70554E6A12 3E1E75FF0261B31AC00C032C2454EACE981EB2F4996890827AB2528CB55D84A7 CC3358D7BFE44255BAA677DCE34ACCC9599CA486594EB6CECBBFBC0894123C7E 8EF0F6F8960F1D88E1B106C2396D626BA0B74929231EFD3D320D7FE97814603D A807A13AC10712CC836922FAABF99C815BA31AA3DCFABF8E857EEAF4B831D559 AF2D69A8E06ED8C6839795C5C08CC9621C0A39D80594C15B302A7226C3E6867A F4F4846E8256FD227E26B6FFE333EB29C4117251B1352FD39186BE743CECE8C3 683D4E5543420B0B1A647214DBC526BE91D4C57503DE9FD5E1E9BF5C50E0A98C BCC2A8B0908B2ACB9F1E7357E9922B6A4070F4906C6184FA3A47BC4C8E7DB0EA DF65F500C71367BC15911376EA2617981D87277BC9A79E58545A56342CF97956 8D6F22CC95E4F379C2D0FC7DA125856827CD4CD1D478B69ACCE9C027D7E67F11 E6AD261B98DB8592C9D3485078BA95A954945EAC48249982C9C0A1EBAB9C8473 C72E4B899919E83AF1CFF544D037B6B846DA2C4AA5AB4308DF6134AEE540832A 9E2AAB888276752881B24E103E33EA505F0543283955F89DE51211326BC95576 B9700F290C12F1A6D26045FAF2EA892663B8F21E1A6253470D069B3A169A28D4 7B3BD3CEA86D6456149459092D16F452791A2DB975CC2524C599691A53301DE7 CA985935A439FF9B1BE97B20B1BFE899025DE9ABF993DFE3F7FB9BEEECBC7AF1 2BB50A40EE1ADAFF0EC29403E22911F32DC4FEBCEF48BB400CEA9EA7BC9601D0 0A0B9A2EC1C95BE9FA3296B2C0ADE9CA1231A19C8CC93D784D673E5F8529CA8C A51614932973F1493C59ED550ACAF27C92686064C9FF6ABCEC29265E73655C5E 74031360B3A231F456BB2B56DAC936411CE3030BA85D643AFF351164D1370015 1F5A6720626D79AD009535AE441703DE9778ED6C93D4C025AB99A74F9D714C0B 4D8828006B46D8ECB195E835D122E3174A57CB40902CC09297DE3A6A52198630 B313A03A383ACFDE7032DF5DBEF11AD37BAEF98A1BB6A056273B52D93C1520D0 7B097EEC2ECEDF8C34DABF6D97D236020F2524F815FFE3FDC4F2309AE33A185A 1DD650BD1787B2406B6954EB29EFCEB8C7B1525EE03652F61C4A1B80757F983A 9B82FA6D321CB4F24517DECC5BFABBA886FB6D0106007A2F0E38496E19CC8BF7 9884CEBC7ACF5C5977CD5733A064CB8A27EF280604B56AB5A3E53C029DFFC605 A928F130C2FBC88C55224C621D78FC508C636F7D0D453737FEBB12184B4687D6 427BF84624BC97D3211883C0381E741B22EEFA1DAED9165EE9478B984FBC774F 385493D47D2B1D920D9DFBBFA9EB3A09BDE5F2F3AA7E35CD2CC6422DBDDDF07D 0649F22B4A99F515C650D6AEB56B935D9F54562F26D4384576835C319E4AE69D C20675CBFF26992B682A4E31FAC82B8477AD5F206F55F9B2BFCC09F9A7DD6D9A DB3FD0CC13834FACFDAE421BA57A95FE7FCA965A72441D5205166197C7ADA97C F798AC7F79FC27475E0E43C2F11DF52223FA4BE094B04F18DEF5EA386BB1E82C 1F3D22B2242AED9D19814368536378FCC5FCAAC02EC8769D3AAE0BDED638DB9F D801815C5E15646394B36FE6D12BC9593B22A0B91DFC8E20C19EA32CE5845597 C235318BCC9FF50E43F9FB5BA567D00B6B02A651FD0B0E59086F2DE77D9E86AE DCA1C31C8973471DDF853E28D85247433035C06CBE904769AE61BFB724349AEF 184D517618B2AB4C11ED3E6EEEA42234DAC112A65B7638A56B4799C07476F322 8D8CBB17F3F990BF527C8DDC26F3A8CA0BB61C6BE45040C08444956119E00A79 8A8C9CC400B0AF98D85D5BD9DA3D847355AF28DDB907E90CAF874150E9C69AFE 1FB9F94393EE02CE88122230419A6E64F0C0B973319BFEE0D54F9199A95EE0B1 7BDB8B37C2576129825E5A7EED0A049B5F2E5C8E20F504AA9C9595125815BF52 FD3582440706381700B0D4309E7613F4D34E0A0451238EF33CFAC7673640DA09 03608F28D5C8EA62E3987C463AF05B7F7E4F6E309E7170B9E7DD93591C533BDF 0F59AF869277A7E9C2B1C9C0F3FDAB55ECD61A74F9ADCF6CAF7BBD99D6C051E5 1298EC4E020F052578FB274C0805013CCE181EB5A2D952F27B563BCE7F2305B0 EA5F8ED91EC405E51DDE43E28B9F52946903B1E7F0FCD93EAA4BE1FD7979DC87 1DB5F9D26E3AF63A52E2F3A9F0A4C11971EE8F1CB2567ABC6BC1268B369DD1ED 7E8B035E0094DF7B6091F8975E137B449F4E24AD4E3E33EDD00375A20B9AA161 80EAE7BEA30BF9EF2A25761E263E9A4F7BCDF0CB202865975482B961925D78B2 1FC1131C7436476922A07583FF2C6D3C90947CE0EE1BDD3441DA76974E688005 7A4CCDE44B9DEAE65B997B412DE79DCC8C198F5CC196DD3876A94869E34B2FB3 4719C99C82339C580ED180D4F769369332FF098F1E3EF896EAF57661D7B162A9 19BB9DFC857E8BD425E4ED921ED04BAF2AC1691632C789746A40442011B65C60 CED6D3F66BAD710ACE5897F5093E6D6982F50848E8170F4E8EC8B171EA0E1F58 9639B55491EF7B2022E683FAF000F875FF7CCCC556A1B6B5FA436DDF0D51FA2D CB3BB04B270293250E459CBEADD45941C343A7C1389F281B0DF439CC3B27E18E C36F9C3C2472EF57FEEB8C6C50BCC14DFB0CE483B9454898246D9F7BD8F3D055 7D434739AEE103BF918151EAA9AF46BA8169DC84C130F19162064CB0C8B70E6A CD736E6A095756AAB58E1C49BC9F117063B666A05562D6A02F80C4F291802118 A478F561905984B546297EA7C64330065B65BB6D451C86A79AB55C0C0F7AA6B3 60B39300F331418345EAD602F64E764B86377984515711BB6246512AA371FA55 0CDE6A73AC958328AD12BD6542CB44363D2ECABD530DBC77377BD4745CF6D3A9 B1D9A5B522AC76E490CBF6E84A60E64AD70FDF23115C69D2B7690764B5431F7F 1B172888005CB7D2CC140199A7E31496D4B0911F3733C92F81ABE71E5153001C 8B2577CF099CDC959BCB351CFC81590DD90B4DA2B33F034872DC1179594C2AC0 EC034DF59C975B6FF075C7FC58C65E728F7EBF747D7DE48533E705B5FE3932CF 36A701D958D36131037E727DDFF40A2FB02FA2F2784E2A7481D1F6A52B587201 C703CAF9D5988E64626D0C584D387476831FC9125F952DF8CCFF1F90EAF48AC6 77D5373824D10366F31B7E33A3961C3464D6F450AFA463B202FAEC566EF4DA99 5986752814493485CDF1E04E4A3BC29DE0626C05798225BBF45480CF911FEF0E E76248931D4B97FE83D8F943E438075F81741EC846A83C513985815FDB1AE07E 0F806EE7E7E85E371CD7E214D990D5E4408CB84173C63CF0EF90D3BBDE5450DD 8CE0C37230FDF57BDC131F6DAC632342423C1BBF3C71CE1A06B1B853E0CE6B57 1D908FEE301BAEE2E745640A5498483C180C6EB06B9E0ACC747DE34667A3DF93 F1381A4B4E4337515C2A679383F5BC45C2DFBD18644F2F224DEC3065BA36B089 906F4E70036B40EE83BC6F680B3E453387A05EF7DB16F202C7C14A483B6A49A8 B0BB42F9392042F031FF36042BAE89AAB7AA86AD97B8D38B7B15A97FE6FADCBC 6C64162B54EEF1CC73E5A40E096354B37990049662F7419F86BBE5FE57796A17 941AE8E037FCFF30301FFE50C2E23B1D0BD871501A4E6E919F9920F0C2799A24 21FCCE2CC61DF9C099F8DCE2AF97C77419B501760E7A9A6646612252C4FA294A D775F4381720C9C4673F0BFAEC2A499ACE1118AE3A43CB788D38316E3780CB6A D94AC7EB36662637FCE9CAE454B46F66B109172CF57329519C32BCDE841412AB 34D1D4BCBC7C648B57FE245FD83BEE54D056D9B122F91C570075C0ADF015F09F 4038BC2C312CB8FC82F8CEA6A16CE9B19E2F97147ADB8CDB8CB159109AACD98C 77C70EBE222D18F1702E700CC57728F313DA6EFC2CFE81742CA1C63301FA5F51 604D499F17A2466B166A65E96CDB8B49F6306F3B30646EDA760940F6828A1A30 3BD37EF63D08438F2F7AF00E1F4E76B7E99C9E32BDDB53AC1CA2D08ADE2B40ED 498E893A0F792E18130BA2C7D80ED9DD3664212CC139D18D0D9098FF6380467B 1374CF8B241E6B7B1D82092C03F5AC2789111DC3E07CEA17B628FB0039D21127 7883049266397E363467CC78CF3683D5AB3733B161979BFFAAECD22ABEC65F07 5EBB62D2BDEC739E351FBA4691D61ECE87DB938508EEC113B8B3302E7966551B 468AAE55B20AFB7426025B6F3D6273E60429703B1D0BB7F4B5C77F76DE4CA9AD 6481F6BE2474D4049F6E6645F419E0166D086EE664CA4684A386B5EB63A699B7 E0AE4C4033ACE8FE5FF295BE3501345DE6F6379C7DFDA424C30AEB5032D3820C 50A5E0C5EEF88ED38B34A92F46043FE368CCA413B5E47991A5E8A541B2925BFC 23CC6D3E567529385FBF5881FF02851F5CED6C6C4FD5B5FFB1AE18CA8F9A131E 8962A8BBFC214A8B8EA5ED67150535FB48EDBFFCD5FED502755917AD08C4633F BA2504F0DD7BF97ABCB6C53291094D81F00399EB8729BCD8430B5602DF74ED4E D799DDE703110CEA15AD8CC3648122F4EC594E47884C0ACEC5ACE7C8A9D66AD1 956E8E2E4D6AD5166D35CB3E94C88B9E514FD9A99B1C7654D240E61D01FEF63A 1931DCA53BE24C30C7C5E6AAE06EB65C7C4A564124EAD3F1A50C0F412DBCBC18 159DACE7DA0C2B49B87FC4239E2F26A494383164757C43F4AA961A9DBDE12EE9 EDB4BB961618A5D02B2195FD2583583CF7DC5B5D5CA8437543ACF78A119D31FA BE861F95D0FF0BF478283BB0449C410AC8C8EB09681E49AC09A539B32241326D 84620A5C6FC92DC0F1CA5F2441BD10BB66ED8DDC10C26D961EE74D158E44F521 D9EFDB2F45A46920FEE7B35B38040CF5F36B13C73FE487D6F1F77CB20679A17D 7FACFFAACC28354ACF3D5F33CED71620813847FF8DD144ED10EBB9A010B6D402 3630A87B09B9A26EDCD2333CD562B3A38F3154B3608AE48A207556145CCD7FAC BA76274A8D701AA26702EDC8DFC4C49AEF81E16656500660856C5FD6E634D244 6048892908D5F37E0400DF7FD99AADEE67147625D261242E5B3BED14A2AF8A73 A1AD61DC9DA1DD83D093395BE768A01E8AEDC267EFECDB8947CEBD7785D32B2D 385219294472BA7E4887645827890C6C2C97C46C0FB1A5960D355F3AD86A456C 3F313187C3E2BA0AB140780E8EA3E8AF578E9B8A93AD11657AAB728A86AC9905 30091F5772581B1128744B5C35F2DDF8A16521123D4DB9760DB88FE4935C55A1 6F3C62D0C18BF59E812DC4D4B55952A2AAA1F2B85A8F639F46AE2B9F4EA3A582 CEF20BF4E04D9F284CE68AC0B312FD6EAD608D924931155956268BEF493E9A93 50EBCCCB7C173A6455592EE4D8638099F7DEE3E2F1E93B10745A208EC8BE05DF AA582E0A5BAAC00566EC4E203752C09F0D7E9201F6952D47C3FFB06FAE632791 341A43297520722408FB7915184C9122B43DE69AA2855867849171206848E5D0 92D4085C4264D51290E412DEEABDB3116A4E22A92991B25C0DBBFB07FEBD8567 95CC61BB63F3AFFCFFCB08FFC8FDF6D468EF69A54D2B9C88EB737709BA1ED661 9C8C236459FACCCD17325CAC712836C3D803B383B58CD60D77B9F8C99C25473C EB3ECFD5B49A12CA08AF2832959CF298AD5E80615CEA3DA132F868E29D8E3425 4BC5F0BD8DA07A181F2E40B4845ECD315526076F914E7835FCB1AA1BCD9ACE60 D780D514CBC8D864C17AA11A046323EB0C5817145152136699F00D500578C8CA 2F8648F2B7F24126D147AE9176F838C2F1658C4E66B09144C49320F6BD39FF3E 1205ECFB6E9762F78C7A975D8861EDA5F48E2D86C60537CA7400982F117A7770 BEBDB196241E83BDC83A0D84F02F82864DFE4EB9E91B054C602F4DE2241D1E86 AF7AB0FC491C978A8E756DF6053F9DC21EEFA40F617E21B3E7FDDFA7EC2C0AA0 4F4891AB273DBF47D3A3FF1E9BFE15A4B42E4D1BE129EFD8A6A616895AD06835 E15B8B264D55A60D949F4AF9F8C9FADCDA4C0CD8A1842305F406B3A95A4D8A0B 2C3754B2B08BF96435C2B30DAEBE7AA03A3D11232A39097A194AC60ED79CACD9 DA08A2475114A58DA6FE3022F2709E0D9A210DDE5267F7C516C2517D68390271 8FE1AA5A89FF7E71B9F6D8B9615D18D56CB673652DA95D64844B80C38BD36106 427A1459035D62914E077A1B64F8FE492064BB3261D7234399D71925D109CDD5 EDEC2170068329290C27979339FC61A7169B28F1160D418F4B5F43434A485FD7 7CE74B0A9C056106009CDA72E9BDEB8BAC836F7D7C48FB8D499F8542C08756DE C0FF8AA33703981B039CB3E519F17C28A79124614895084BBABF99BA76B97043 42066649B62CEC410F28A06728B325E2F21A3487E3B6D8827AAFC4A4D2C270CC DE28D77167C893023C5C5C6A6C8E2E7B80949CEC10C37AE0199E82A96848847C EDDCC1AED848C4B2FC663A80133BF263E126CAE9960891527DB4896F470ECD64 34435D5B7192AD3B1F0D4AF8C9B8774AA7FC2792719ADDF8A9E1A2D9530CCDDD 7F033A179B333DFBCA21EA45B55416D11417BDFF11D1DBA037EDFCBD0F1FBBDB 8D4D608603099DAE201E6A0AD1F20F746F1C5537462C9DE9EFCA525228187D72 48AB403B23556427E7A0DD1825EE8CF496471951F2A8187DD177F637B31B21C8 7371AFFC8E05EC2B84077C9360B062F60DD1C67D5782C67B9C3087506646AC9B 8FD79FCBD2F664F82E2BEB3D6560AABDB9838874096447076995DE13B1F20611 2724C1D94E1371BCF4EB72465505E7BA016790D88F528D80D73F94869C553E00 F6433E39E7897F1C97CE3DA0C71F13319F271D69E19C53EB95A2ADE6CD707CF1 FC901F75DAC15E802CB2EEC74913CA00F656489F5DF1237CCCEC35EB80B1FD6B BDA31CF589C27E21A0F7CE7948594189E346EB5E2E60FE017E117946C55A2238 1AEED08E762ECE5F5AAADED1A794EB5636DA06B4F3AC8C269DE5E1E8087C89ED D9613AB9C280873C47D8C30B340949B565F7A8778BF8BAC157F2A4AA97F2626D 9E7D644692D508FFD7E4FA970C52A0ABF8D431BFAA72583E8B5854440CF0C6D8 EAA875750BEF5656606FEE66EDAF7C0B57C8382BA49A0D603899AD78323E50DC 75FAB9E9F6302F31076E318E0CEA4EA359CACD6F27E19BFEE85510DB4EBF670A CB468391955FDACFB04AA895A472F559806C2DC0EDD4D8A3F7B855B4F562DA6F 074A1AE472C0AC0A348BD54BC02777876E193902C39603DD1BFACDE95A6D4C24 C851A674B86D1F39D3CBAA2F6632AC23BAD2BD1305245059DFCE7AC4DCA66043 7CB5D7C601FDE926A49D695065F649BC9D10D58A58BE1B03F958EC47282A5020 D69B9F3E8C85E7C767A930488535AA4F8D7CB95BE7AECB1F946EB3AD8430F6F6 82672879A6E064EBDA6B1A7320B546CDFB977F7E6E47CA530FAB6DA53419889D A73E46FE879282D332C9EC6DA55026271E7F22BC83790C5BD4924195FF533984 744C32C7254E9861A93BE6EC01578C567B29D8A71DFCE48F2F80EACCBB88A9DE 963AE02C013235C617B6A581520B8BD6452F68228C9BC546E73E81222EC140B5 1C4E2038E55858F8FB658D18F13D0A802FC376F56E67745B0566A39FF69EB0C5 45339A44332FEDBD60BDB0CBF3853DD17EFE712E9CA077E3AE6F8DDD8FAA91EB 537B2412E1545EB200CE8648F9DC91AA9FEB539884775C79102AEA7FE6C508CB D1775EB12472AF02A777D51214139F64BE51ACD6AB42E90F40C8000E59FEFA5D 3D774EA4E8C1B4A6C75A7CC84EE84EBB8C7B515132132C638EE763EF7571B16E 3BFE62F0F3EA12255C1E13611C6DA508F7023CEFA8D7B442B55C32D16D27A262 14D888F4F099F600A5FD48F4BEB9B487E1536B5B098B0C07E58386434AE59777 32A0E633FB33CD990AC42AAD4EE2E95437EDC9266BC402C3B29D43AC2138AAD4 C816AAA5FD0ED7C2269C21CB6B3C76FCD6BF2C5AD04361E7A428C1D308917A67 02D2825EBD679DB4690D9BB36FB8277ADD490EB7F5272FFB90FAC651BD397294 87AEA39E6EC0792FDE0249888C0C0EF6CFCADED6C280B5415B0C12FEF3C1C65A 827A12FDBC1A077D2287EC0D4F846798A853332D025D385AD02C3558FAB1D0AC D8D8FC7BF4AA8ACB477DB3B8AA827235C5718559D66B880AA773B73BC6569943 2DD52B586805C4B3FBCA79E9D9B8ED4D4CA54E134D17A531EDCA27682E07F608 3360CBBA1DE82FADFA395BD3916783A1CF9FA0F04266CF2BEF291C9DCEB0C974 095FEB479C8BFCF7795EABE9D1F16CC0B580343C0C1A8169B7AC1E2D92C28066 829AE9C0BC6DD7BDC4F4F2F357A6846F460EE179339156175CF88D327B9EA830 036A03D6EA9F7525196335BCD7A9FD5342FFF7205D80468A5B73C08C83F95683 BD8582A3294C165DAF30D5132D05D60A88DEE254516B48E1DEB6CFD9983F49B5 8986892E033EE5E216D5DC11407FF8496741647133280E700178898ABB82E9C1 199FB16900499531AAB1CF87C28C6EDA872E1CB7CD806D79DC1C5A641F1241C6 CC96E3DE34D49ABF479841B9BEFBBBD7AB341F1D1C348204FB24E2FCA3B0D2ED 3720334974CFBD1EAEABF0DA271C014C9D4F9CE2956142DE837DC43B8DCA76C2 A445578CB3EC40F84A2AF129FD100EE93E85EE4B4038CFCB50F0018CF864B4C0 C36D5377EE049EFEF91980115FD5CBCBB0A8778C86728F51C301EA202758860D 96C4579CD8F6D1FCEA8EDFC070E8D7D624D68F802D9576EC5382838728EC9308 D87EAF27B8DA241EBE9F1251E9CEE25E1DD7340C7E675D0EAE4434AA67F591B2 C65ED7399270FA7615348F0CB9D0BFEC22367292BB2238AD8FDF0C0A431E7344 5CFC165EE633165D08F166AAF11956A3A98FCF4876B65E6B517A3F50D586F39B 31BB6C91BBFB978D57E50194B03FBB0F82B0B05F7B9BAC2CE9296539E56F6CD1 F5C0EF51779C2583E1EF79678EA9ECD10E1A37E395A789F8E0FCCD46A895DBF7 EE1E58E29BA34FF64B5CB70BE54AB65B6E8577240102D7EE0B524E6FABAB9152 97D7F3072EC7A8F8D4FEF293671DA6660096EAD138F8A35E8C7F183BCAA41A39 52D355F9BA4F311BA4AB5FBCAC15B1063EE697AFFD240CFCF614DFF8CAA85936 FB27C8E10671BC19505AA7310E8A9C8D012B6A6C99CC5E34F2A1DBB0909644BF A68B60D2C3118B9D54B3AA2A73CB550C4ECE3EEB378B1314AA636DA18C7E9DF4 E3E913ECF4DF2E4F7AE84AFCF218769B816038EAD4B6553C90B4A340B8378A22 EEC9721CBFD09562F6649EC80B311D13C1BAF5DE250D8AC7811095B0CF5C90F2 4E9591D91B1FC2E7D1188A802FB24CB499694FD757817035B8790F94609DBD9C E5B76F7D944891CCEDAFFD46B93DE19274CD3405C8B4CD6AB222C17E200DB566 0D7CF7B8956F8AACE12F0BE54E7BEFC11E578DB4795E68E0ED016D4402638D37 0EC81BBC412358C31C18B595B6D3C02E41EA9936DBDA75A91514E1369015B87A 82D45668D2B03BD491FBD523C7933FA9E42F49866D69AB3AD2FE24C574E4193B 30C90D86400BD703F77FF91B0915D32BBD4A0A13F9888B389266DDC06B39C43B F17983873F97BA73F982CE95BF13CF4DDB3115913F36F1BF271E20F0F21FA881 2AE896D6DEFB5B21C00558418C4847D5267DA2626CCD546DCF7AAF3A633D69D3 A8118ED6A61708AFC6926D03B9ED25C71C46F8B207F378743A73488644BCFCD7 159399410030DC2A353DF773F1F9F7F679DBDFCFDDE937CDAB68122015EB50EC D1CCA781DACE33993B477C0433E5D407B91B815BE25F82FE985CEC0120848BF0 C36CF7518FD532F3685DC73E9B86FBDB4C9B859A5DE7D35990B84A103DC2B48B F9DB70EA2B612097EEC55D1D288A1F6B77FC0CAAE7F676C8E8EB788CFAD07AF7 5B98B6FE206E32B153DF43FA89514241167D7D61ECCE9263AD0D823AF815A639 5AA2D4F4303B7B4025D6D3EF71BCAD68FAA2370D36F9DC4827A2BBC56C097ED8 B7BB51BA666C66E97C75B4A94046D4E76CB1A6585B7ED3279FD876D7E6F78FB1 EDC05326E4ACFB8A5BFC1DE536BB8C1EFC946BAF70FED9B2C1A410744A379F2A FBB57E2332B53395C2D5CB7F878D5F49AA6B2ACB20AC4FE4382A41A234CECBB2 386D757720E2EDECB6FAB5F12141237B58732865CDF6172DAB6AFC74848A6654 B540102570E017459CF464447E8F142CCE025D1BDCD0F2D8BAC32CFDDA63795F E3D47A39A01A5D590D71022CA7E2719679661DED9DF2C6F1076B9F304BEFBD5C 5ED041267856B0160A1C85C50F7AD5B9F4A6C0CFCC819AC22D8E4FA230F1B683 6B707ACE4A8A2A43429777685DD45C4E4CF76183A84DDDDC123B139B9B641C30 364B95A3BD81BD78641395367020828132C078F1CA821DA0D93AD0407F94D3ED 5C2386A3C7A1129693B9D32FB97298DAF43BE1CE5A5FA099B681AE4D014B96EA 30E02B015A963F8D6DDC2862688798FC422E02D7A8FAD8411538278FC356522E BD3986841B8F92136C28DF1F56CD1A5AA7D51A9BEA9A202BDF6C2CBF88BB2392 9581037F7E08B8B886C359BF13F6AAD26CBD88D2638B8257EBC742479ACC42BC 49BBAF63285005DA66958ADB9ECC59C000D57925DAD15D75027046A5E0E5BDBD C590A0EFD8666F30AD9773D529007EB609D5629F20CD6A390F6368418B7AE71A 0DC9F927A1C47CC50CCF1834E095A3310D9E8AD7DAE3AC9EA884207D820A8E31 34DFD33BC5AC4FFC1198C0152DFD76F539085AB8D53DE5B96A8A9AA5FCE1C3CA BB73ADCB2D5B02E84D178FF06B137B8C901C0BAE4C8CDC058145A21FC096FEF6 65F2267AAF712EE7231987FFFAFF93242350D49C9FEBA1031A3EF2E6B5EA742B 07B8D6DBFF210E93E9475F05E695CEDBBB8E0967E7A51D9C01D452F267BDE962 D02C6C0C580E9C95E45B94D22657C3C90501C537C35F5AE1D5D71FD384E3627B B8107A3EB377A1514404F1DE84883A311F9D31BA6206827E5113707B40B03B15 D8DB2CD7E5E87DCC74AC0B825624BE3F170BB193DF5787109396D08755E21C50 0803BDDAA7158E21562508C6EFCBADDEFC06B96AECDA169C086A5CCE7EFDFB3E 191BB3D4ABDBE722F11C55F2435636607CD1A41C791333FCD3A7D67C081EE5E0 ECDDCAD1E531617CAAE5263C9F0B8B5278370A0C7A1B73CF699427FAC51868A7 0C5F33BF6F21258501BE270B709A3B188AA491612268E361D423039F0609ABDA ADAE688007E44DA8CB3B3FB2F984AD2FEC4D8471235191D5FC9DFD52DD8CA611 D424798F43DC3DC897356DE9D9F9025326220CBB0455DAD17FD688A1238C9CA9 69013909EDAF1C65AA01A64E6EAEDF1816E63022E5BF804E8ACFEB8EFC4092CA 5A0412617F17F9B5FD0DA906381820A587AF5EC3D880B8C5B254555A5AF63DBE A398248BF5477F603B2617232FFAF72FE09BBADA3A9765343EF32D0C399F44D6 26AC4F92361348F57B2A4E01B82342220BBECF9AD86F07589A83BE52524D09E7 97FC060D50FA1E1F594489F85AA6F04068E5B098F74CDD7392FE8A97C40B89A4 20BAC1803B406EF33D65BC5751230876BF370401280EF99744098378A32E2BC4 7916E2F42FED2A7499C65CD7464DFF50D5484CE7EE26FB24358E48161E51FEC0 9EF931354E8ADEB4A11E443C253443D45044662143EFD47459D403AE0D393216 5AF9D7A66994B57B624BD5F28F272D2B98ECADB56F99626631C9C80E467F97DB 06C91E1DF2F2723241CAB2F16A82FFEA2F428FC27A1F5C4BE1B4DC9EE4C7FFD6 3A9F5D79A23F686D77FDDAD499AFAAE7FD1E63910265D01A4DFCAA3F612624F6 F7D2295780717EEF7CF1FF675F38564B87F5935A90A11FF5F5FF2B7AD4611CC6 B322080F06B4197485AFE48C2FB6561279713BCC9B6F9DD501832DD54DBD619D 76A6E657E8245B05DCE03DB7745FDE1EEA2F8AB52D5EE83E561CEE4A58810478 7CC865DF8BF2B6AC30A0CD8C12CC0DB3B5A34C785296B93A8A6C6B0C4E1BEAED 9FC2836B8E77DF8E07BD53088D4BDA2C6933423D223DC77F4EE4240B562062E8 F641438D9631DAA083D58A648786C0455479FF7DD870EF50DD9CC1993FEBEF10 E3B04E05B566A9D40E02F5A98EE49B2DC6D9DD64D4E998CB1B9D65D719555C24 B6FF37D749F8F84282A6DE2ADB071C6061EB9A6D70B69A323F2C358B1665C33C C4157558F8D1C5F3194D55C72178EBF4C1AD2A577237F47ED9B0CE7861A4621A 60631E2F7BF2F2B749BA9F7127AC4108DF7A3B6CDE7044FEDB638E146BE557A7 1A5209885ADA4475D26D333E78ABE087D56CB2B424FFDC0B674EFA24EE4502B0 B56B9DA4CC2883720F154DAEAC1C310EFBC327155615830B169363BBE7DC2EE9 96D60F0C24F0368EDE74A9919B6868BBE293D38DE8FF9DADB6DB713DBD3A9020 3E1D0C54D5A2FEE7E85881F7555B5969A9C4003D309C50FA2FDE40E3FCB75693 FA0F29BD1BB761A7669FBC2D753852F3DC418562DCF5B69CA509380BD6EB562F 5473BD5F2F5146053B75B3A2B5D1EA2402576C7B814769163A271F5371C3BC10 A9B7B828E0A91BAEE8FCB788967540C8F70BBF543D80826FE64082FE2E34C897 FA316E2FD35E8EB4A5AF4B0183036AF613FCC9F3CD8BF46C8B7AC400C2005712 EE0AD8E7F07E01C4CC37D66CB5F6A8C75D863337BFCE1DF0E1C5E980E0997481 C70E2D782893D5649DDB41377316A8EFD46653EF0BB11F295911B8E2ED41AB72 98E15AED955119DDA0ACF80687D65D1B3827D4DA9AE22096F4DB8F36E54F14DA A215FBC9465BFC379359D4CEDD64249A63732B59B75D56623E65825886F46B94 072DEFAE566F20DD43C2A28E2B62908AFAA486E234BB85A337417D9AFC150988 5509B9FA52E7DA46D92CF7ABAD6921319A38A846FDF4F3BE35AFA7D4C9B1D9F2 6B998981602F803B31017DC7C1F3441188C4E269ED2B0C239DAA9967EEAAFFB9 5D230C254A07A00ECC956DB895E8DB83153B21FDEC2FAAB194FA91A8C16B7A59 C0379E2B1A4FE32A8976BB08CFCB11D9F1BF5306E536822DE0319A366CA61ED3 E5884B8CEB160E5A62B7769284E2B589AF21647404D03212137DF3CBD57BE7D2 CA9E92BAC66717CC790A7FDFE743E1341C4DF95B03C10A7792507A6436E1E2D0 B454B3B5A2EF50A1D05F829067ED5FACE5365CDBCBC444E871AA97FE03A8D856 C114A9AE479BC7282BA20AA88DBD2366B866E81017BEB9A00BB5A0FAC59093B0 4B9FAACD7A4B5FDD4F5AAF824741FCE139C9FB730A5037156EC30C61EB538225 28772D7729F9D67C395F63ADD8F2C5203BEC3DD44E23D4C0F8AC5DD9C126345A F9FA05BDE965C35F7E17CF20C1648A93D9B5104329860299A5FD90AA8B26447D 462DDC6DBB9AB6CDB13EC7C25F91CF3CE5A6946739C84B88CE152F3F913FDECB 6367F6A047862852D0BCB7CCA26FC07EBB2F7F939AAA8B99615BA80AB0BA3F06 D7BB3202A8921671D4D3EFF611F747670ABDFD500CE9A9CD0F682575499595BF 2B186E5A684D587CA187EB5AB642AF2999EDFF26FA81D66B445FFA44A799FA87 03627E4B6A0582842A668B3E852721EB57FE1052ED2ACC22AF76BC2FAE350311 A806158385F331E04414ECF7A4F8312DF070100CC6A51BB1DBCAB6997C6FDB39 0CB9837DF6BA4557DE78E641881E4FC7BF49DF52B7F4E769E244BC7D8419E021 4A72C16BF26E108B841FD460908A5AC40C55B2397A87C5CD005047CA68B9086D 303A11BA78E69CA84785407AA236C15C0414CD502B408B695B01026E721EBA4B 23C8B9FA007769D27DE4098A2633E33D5E89F49D7E40830B3F5852460095390F 8E44564E5B62F7145514D2BB69A4799468D757926A113F383F0236834E780AC0 6C109950595C4D29F43B870E5009E861035D2E4AB09F31CD8B1205B99AA5534C 831EE840F3C3A60F8335C8EF019DCE3C5231DF306CA5FB8B3C837EC5572AB563 8D20DC400EA358E8A255A1C5223AB0FF0601631A82CB1E9579946CFE7A0F4EF0 D4B9A58BD9852008F98B20348A2C40AF321D78C6583AB3B1413CAB7B9AA111F3 DCA203C1459338374D5BE96C2675B2CDB97446D4B2DA6257AAB95C14B9C2355B 138E362A15278B364678C9D7D7B1B5C419BA21FBA122FF6DB878CF254CF2878F 5A37AE928944F60CCC6FE0851D6CD5F68461A8056854D4FE439AAFF1000F5495 E43F3852CDED98DD835C74D9D59E0DF5C0984FB15F1805E6EDCCA69B904A1486 E76EC574015B6A137A6C27C34A9186C921201A6D7797409490BF785BC3293F63 55BE78132A7A754EF20BD1CE224C6D3E0B119BC9415AABF61C419E95DC1F8D99 2D332A8068CC2017A4392722D17103BE82D58388109AF53FD3A7260635622025 5798525627D2D66C908FD27517375DE84E7640506183EF0065F35E6A4654B9C6 0454EE652C64559909F1596BE52DC377666036FE4F154B46137112B5A7B1E46A FABDD1F8E9F17EF97E075A5EA4898BAE40330203F1B9288113A71FD7A0E6AE95 BFBDB8C969990E17E8AADDBCFCE5C33579ED561C7FC4E2CC19BCEAD7E570DE4E 50DB3694AC8A888617F67AEAE604227DAD7D6CABE8434A601490E20EE76F7DC3 DBFB22B1E27C19600C12C0A2A10BC12C1D44AB148154DE9B4C041F510847F738 1B362CB3BC57AB1AE38891D069A2637FA6123457FE69B45F2AE434F7E181EC9B C13DED88EE253BD458DE8A5E6B41AC35CAF524B7F69563A24C4AE9A5F6D95921 AC8FB94FD2D8BC3CA8F9797063EBCD2A0AEB9F7D28E8616BDB842A5C33970DA1 209CEF9B1FC8E1DCBE1F1A0AB7F6D12001C67A5AB34C1CD6B806878D4DC29A17 9300FCE0822B42D3EE540C93408ADC46B7C9A287577972A2BBF61A38E5072773 A45B488E48435BED639128B1416663B869105DFED62AAF85F941C51CA2E5F407 9B46274EF6750BBE87B8293960153B14D7521C95B27D48B16931F67A755D6783 AB374F85586344B00C44562E76C0E9803A2DD3E632999E417BA5F63B558DC330 4F1F08C52B6CABF87CE34507210B03CA01DDC4CA39FFE4DF277A98DD12DB1A39 8F8748079460BDD5724706795CA9855717FA4DBC9CE6C43846917467CA8A32A5 CCE45DE6E12DB00D7967007C8BA144C6C0DDA70F0487B8982B88F202A7F43E25 3E0C5BA609CBAEF61405417ABD36CC80008714FBC1B55E99D77796E928744104 60FFD3B28880E88DC08C7B7E04B070FB4148590C1CE953C6D7328647A8A198C9 68750786F65D60644F1793285677B1BBCA56B0F112F927249B1618E6685911CC BDD2D886689875C3666B0EC4DA07B43A5773C2FB3FD44937A1A5A60A70BC8FEA C08BBEC19B34903F2A2D1D0F5A7BA9CF3B4991C5C70F669F299BF2F67B781DC8 98200762CC7212F362DDFBB6E51E22169AA58899560B97648B44866A62F1F307 3A55A5A409CA49A2ADD6673DCF9D6AC68CC715C5C23304DA9F2E1731CF59EA80 2F9B81B1792F8A444B027E9CD494B1879359B13E55C1FCFAA051BEB1F77C51D2 2796F70C44F550EDA48454FC31BD148172928C65DB97904422254212BD6077AB F30D4434E51B8BA540370408E0AB7E3911521026179BA5BA601D2F1B91B54E0A A4380D53294450A639EC358A899D6796BAB8ECA91EFB9E6D529789131C7ED457 64B5F0A700A4B05C2EE8B1C156495CB13E67D2617B69AC84AD7C82ECA2826794 204606D81AB2DD20985D72FD3A2CBF999D111CA2421FDD33EF41CDB01E88639F 7C16767E1469984A39887210C057DBB585A6725FDB51E814C7340FF690F193E6 5FFB3A1EC21C0E201CA37A8A9E34404FBE317BFBB9D5EA33A71160EC55F4AE13 896B50C44B662DE4F01880B9F720A97C466587698BB87F07C9CC20B1A1EF8A2F 77E94DB929267C0C05D8FC46FD79F7C12F8102AC7F9DCE17512C0347CA48D5D5 D32A676C86987F65C8A629F65E4CB012FA36FF62586A3A16CEC23289AE54AF11 7773FF4BC70BD2A99143A834DDF663662A474FDAD5784B572CACEBB7FE163C7B F02F753FCDEB78EB62871E2AB3A9303B08870BF3CD19E03A28C717A2EE67AA3C 1ADF8FCF49D65F468A22C1327B9A78E84A2B2F9ED452B4D4FC4646F0392120D5 6B9D71864A96B2ECE50964C0160D9A809D9713DAF349D6FFD4AAA85C5429D55D 9FAA655D361A2AD6120F48DD6DB41F69EA299D9AE1D90868845AD3A9D92D22CB 6F281E490E87DB70349B63B10C7480CA73B1D911C70BC34C99ED9970130C 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX10 %!PS-AdobeFont-1.1: CMBX10 1.00B %%CreationDate: 1992 Feb 19 19:54:06 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-301 -250 1164 946}readonly def /UniqueID 5000768 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82 7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378 77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18 2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91 FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68 7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4 9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176 CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D 6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6 E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E 8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E 3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99 EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4 0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9 4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209615BC08173FF 1805BDFCCA4B11F50D6BD483FD8639F9E8D0245B463D65A0F12C26C8A8EE2910 757696C3F13144D8EA5649816AAD61A949C3A723ABB585990593F20A35CD6B7E 0FA0AD8551CEE41F61924DC36A464A10A1B14C33FAFB04862E30C66C1BC55665 6D07D93B8C0D596E109EE2B1AAB479F7FAA35279ADB468A624BE26D527BFF5ED E067598E1B8B78188FA4BCFB0B51692D07B0BEBB930C6F0997B437E2C51B876B 61A563A2673932C2045833FAA35DB22ADE12102335D5DC734AE3AC5EEE6658D7 92EB62131E1DFBA441F53EFF9021D9D4C491F26BE8F54C61165CAD778CE8695C EEAF70E3B20C64D4C2B34A084B5770BAB2A974E898F62BFE90F132A37E2DCA4F 43E13DB13C94DFA8ECE2B7374827AE168634FA007F8981ADA046CED3448BF453 FCD9A4F194FA648F9FC0971734BB69CB73439CB0DD021D44A7C11BF295E81733 4DFBA460FF3D654F9FB337E99E6D66FBA87A817EB9CA1536C84833870E3626DA 55D48DE850D3E6F6B29DA0E7C9D681283586F208DB8D58042E3A7CE55BE84822 C98237911453E479EAB65AFEBA3F61A763B40E74535BE56C9D8D06DDF9441741 5C9D9D917439368736619717FAB4F06E2C329AE0BA411F3FD522D9C33AD8369B D7DCC9DF993778482F35F965973DE876FA19E109AA198A00658AB3F0D8E3DDD1 08A573F2D525202AFC57E05D141E6C0BB811E1FE280EEA002B7A45BB363AD06C 318D320D2C81AA5DCC842CEF66E7DF7670588CB39C9F42EE7763A3A17372432A 173BDEF7ECCEA297CCDD76A835C36DCE9DB8F8CB66CC71B4920CF5BF055A5260 5B41A5373BA6E4F63C85671D979EA5EC30D22163E6D206168A3827F465279870 CA80E6632872F721BBCC622EE4214BF723551C846765495FA9921E11FE1A950A 53150C3F5D8595958A47E0B16064CC3AFD65DA294FFD111153F4F233BC5468AE 69585C16CFBFCA32C4B96C161F47B56661DF84FCD8ADD3EC086CFB6BB5179BC3 A5469A1CFBC8620BC711F42D0D3139BCE4E38698D9C574450DB43B5A19FA6D54 0368BA9F7A8DBF96DCD0B8968CD194264E6DD10A958846C278B8C2BAFE7AAF8B 44C84C955F1A89A13E62A054BC76CABBBF6296DE00A79CD7C8C61C70F127618E 9975B59A880685E126F57AD80F8F4D376E1B476BDFDAC868FB6AFAD9D694B561 001623C4D9F55366D053B52F2B09EC08B81901AE0986C5350312E626006038AD AC15FE313FCEE1A2E61F8992AC00CA7BB7F997707EA377D37EA6FF35BFBC2866 A572B31491F9B80445685DBA5E62F166E80589F768FC95BBC79158C23B2F1BD1 25816F1486A64F76D99A638AC0DC101FDF390811B3C118C2D972B2E7587F6F24 7F1DB2DD922D237A7D18FF08FD665355CFBBEE799D3BFF11CD94CFFDBA3E725E DCF4CDE4307E3B199D91893A365D04F43A5305BDD2538E28A0788E061F3A621A B4A04E5063B47F0109C1693A284FA43E8F1EA9B68145FF51C005D3FA40713BA8 1879BFC3CAA881B9D885A0C1AA8BB9A8C848963020A5B15F862E7DCC78F25D7C 564372114655418C41B243B85B3011CE4BE4BF683F08846EB2DAE887D8BD899F 9150D97CBDA6159D47D393DD4DD16BAFFDD7E33D1844179725FFD8BCE891077C 8CF64E8FD075ABD83F4858D32AF74CD718241DD61413D4131EBD0E41B3E51CC4 297A57C6DB8D6DB6D45E7A2E8EAD4E43B24137C66E79BEF3BFEEAF8F8AFE752D 9DC744FE9D0C2F98429C1F03B3D5604485464B93984E69ABAC639B076F9522AE 17D39A61D65356284D6808E5917C2CFBB6669DC9FE27ECC44A5429570F796378 B0F1F90078D11D6C02F6FB6B85BB126FFE1990E9A6D25147184BE5E3194FA695 CDB789814E4AA33D9E78BB5FF7B27FDF3DC7BDF697D86ACF0BB4552BDF27228D F322855FBB9033EEB941B267C6C06AB90DF17357F8C071A8D085F12329A632BD F21A8BA17AA2A579699DC63C5F2A7E9038302082BEB040905BD33FA92BFC3935 1CB0E969351E0BFBA384B55784DAA1D459D8FA159BC4CEF9B460AED4700B0B02 3512ACDDD73E31BD3246F289F5306DF98C05942DAC900F522FD8F9E660E97F48 CA11E035B1B7500E9FA43B4C99BD1B3B2B52B95D57FAC2D89B390D52B31B286B CB0F5F8906A9DBB85696CB8AB41B37328722E4483884D834B67A39C901451C85 37EF4EC02B0B4E6B256FD40C945BC6EAE1E60FCFB3281EE703C7A40E0E89D624 14B22CD79718F225329E45B14898EEFEDC97A64CFF2D7BB33EFAA6217FA45839 8A7091E48E6DCCE94F3EA3E342B3617FD9926197E24AAD52724CAE16C7155E14 E48EE5B886FD17B6E2168EE6D3383A49877226C8725EEABB574174DBE8DE10D5 B2A76275213781EEDFB9C8DF637F0150365CD86282CF4C24DC352AD66BA3AB26 7C879F7A2C1DD7B802D733C6A814A5167E3EEEF983B7FF69626C9B936EC5BCF6 074929415E28025A493DA0ED350706AF08B7186B7630A5016AECFBA1C3F3BD6F 2ABBC002675C98F9FD6D93D483AFD6C94D57E5A8513A5A22632DA653BC554B20 A8873FD86998B02BC07437EE2FBA119A88286553AFD6AF043BE074551B4F65C4 29EE274F2BCBF431184655FF142EB85336193E9B11EFDA19ECAD282F5B82575F 62C70105C9DBD2CE14A5B50E60C8EC941082EB4C5B193B4174A626B2E8A3B3EA 6D74F11C75AD1A2F688A73E188829558744E11F10E8077E0F64919BCCDDCAC1F DD933358839EEE616D4F94DB5C4492DD2BAFE756ECA2AA3C7114377506BAD061 7FE988638E2E0CA19965FD8EA2F84002E65604B39780203AE0EA814FAA9B6093 467BFFDFF11505A858B153A5FAE3EC337F2082F940822B9E1DE2F703F37789D4 DA9AA26E292341144B26C33541332F85FE1DA5808D718DE1DF403DBFA1550829 7C226D8B0C4376EF18182597F28893F21FA204769E8E35F20B39430766BAEECB 5E714EE1B72D848ABD11F45B0A866610CA45CC474815DBF58C2317125CAB6FA0 C4AC347F9D0F91FB5F5D72ED8845D235703588722E13BFEAAF01754D61C56D22 086CF33CF9300AC6D65C7503750011EC15CD72D8D630A1E492F7CA09B99430E0 7AC71E516B93B75338FA1090919280B93CF6C0F0D5DF8CA6867C075955447381 FCF7CD1B556A45E175448EC8A33349C3A802F21B41E8615D1B8E00F8B43FD4D4 17FEAED4FD6EDDBA0C7A8DA24C1B6F0EB247F23EA3FE332B1B287F987876EFAA A247736F9DEE729B7FF4336A017F068BC6611149F6A9DC1285601EFB14997A67 38756F216AA30EB53598DD92C8FE3BD7E82B619215BD8C1BEF3724849D3B1919 EBF6E5747D4E7EA1D038F05EFE2B28C724CF7D95A58A50B7D558959EBF4741F9 56B47CC1421D07BD2703EA2AEE0E131369D139DC22C9C8F68ACAC2ACCADDB82A 0C8B8C1F4A06BC42064A92F930A6CE7F83428C6659DD0E2F104138EBE0920769 DA84B24AFCDD187A40D0B67A92F581F88F3A9ED055AA68FF21608337E803F2C5 7AB90909F9466DDF4FFA7E6F06093EA5C3555C880D3CEE6190E948E8AA1C0880 96A00C28EB21BB9C63C85663271DC0B632841D3387DC50A07982C559018AB677 EBB0A9267BADD0B80A9762AC7FBB3F4EC7CD948894604C50A41CF294089171FA DA30E00312BA4BA2585B80EB3ABF6E5F29F87E7C80977BA120741338CA139C05 32B6CF11F1C22275551468F7399B0680609962335F43B114F1C4F4A9A63E375E 469825F31AF71E22A9273C47BE1D5A8B17D1570B59D03A89B0421836178EE4EB 651A1265522452A5515CFD96F71FB47B7D8EBAA183DB66B120EB9710B7C3206F 9C7946BC788C2CFFE3461706E2044D0418945C1E8F26796923C9C1F5358296A1 6109D29382EB2F73DEFD1454CEB50A35AF686C55813FB9D5241E98D23712AF9F 01712FD5DBE65BC94C98D31D2245838380241485D745342E406561013AD932BA D0ECBC8A75ED6DCFA7DFAFCBB9A2266544D3F20786C76DAF3592385E41D38F75 EFC828BBE717C052A7A980EABE563723A054772ED83ED5DCC45417AEE858C733 D47F42A09D7E7F49D1B69C906534E69A21CCEE2FF959B8A66DE2465475EF2218 D499FA2CBF3BF669EA5A4D12D78ED73D41E794B8DBC2D91228464A099F9C6638 D0C043CDE0326387D6A641C2BD408E5679362CAFBE864B6377E4CE271AF48D72 469C3378A00A4FAEA631FD90E29414F295F60BB89545E58F3B9A4B5BF1A79962 8298CEF00A286F7909CE949D70B8ADEDB77E8077A9F92C5ED4BDF31E8B598A5D 44BBC2BDDA10EF8F9EB66086DF95B727509A2ADB7AFEE593512DE97008CB74BA 9294825049079A4547C5CC98BD5CD2F06CAEA1CB00922C23EE6D8A3A0E4141B8 71EB9FBFB703E1FDDCD9B8806572F0A51758C26B59128E3888DBBC9140F4298E 939986D28C90D01D3307BACCA445D0506F4F2A2DE96D37B3D8287E95DCB07E8A 2E5FB44F66C35E052570942BA8F57AC082AC4BEB2B0476BFA30E070CD478CEED 6CE6B65086DBD9A4D85263AFBA285DCB71EB6DE993B4554E80994FE1173D9E7F 46949933C10C657415E0A64DCE78C5CF32CF232BB28AB3E5D76A7EAA5A58AEDC CF70FE1AE52CD2381276DC8F567D1EC7D1AFA188E41D5E32F5B3CE8661F450B5 2A1D231743D67F20E9A8054D44DA03560CA26DB54BFCFC45E31D66A4A704A51E 5D3E8DE0516E5438B5AA0F0352D904C8649AAAA5E9838F3A3662F616CA0BEC66 C50ED54D2C224F40C53310618821CA762C44C444E5432A473C79A98558A7D52F ED6FC5079E65D39A0F926A0200909E20D2AE284849D0F2047F33CC394C5A5341 807196485D2613BE29C338A93907510C4D6E318159525933B4D7B17D667534D4 5F1A9222F2D9B7EA19238851A347F2A2C95CB9FB0DFBC637C3947ED4BA624720 3EA853B8EDA8C308A5BB64EF1B2BDC8BB54EC8F9FC862E1E59CE5BAA77A118D3 19D62C855E3317DA816B48F2C0561C5C3E1F0D13360622DED3C732F3D8E8DD79 F33BD53468FA13F18F2E27FA22F8F73413787B9D16633CAEF549667772F406AA B525AEAC343EC05495B00CA873A24E87C4849D2E1CAC8CA3CF8256C7899EAB28 A6A5F98C8DAB67EC1CF6C8BE49EA2F12A290E3C2A0D91CA5FF2309DCBD8DB55A FC565E44941D115B6CE19875C162F64F83104929114235E6A91CD1F45093C9A5 BEFDC32549D3DB1E98E3D81D5F626460BD00529C934029909844E4B496CFAB03 8C269EEA91544E4B109CCC97FD2BED300C13C63973A0237A2233CDE7FA1A4B63 5132199AB5B132496EF38983662C64F410F898C96189F73A85E0359A78607BBE 416FA4AD903130C1747282471EBCC2B1D4117A5EAC7B8B1FCBDD7566193F528E B5B5DFD107461DE17340AD14D5AAAFA743AD93075525A1124277EACA1A3820C8 551545BD0D4D0A1FF593E406D950389029D68ED0F99ACC195788B83CE34B2E04 88C90FE6CF147A9B5AC000CAE815463CAFEDED57990E097991F13B519F9022E2 C2F6BEF5AF921FFE85CAC65A18607A85ACDBB3D13B66F88AF7F8857CA3891D4A 288FDC849692A485FF1D6343CCDAB4ABBB98661937ECB42D4ACF9B51F16C7A41 E7223694F50443A618C4849B4D8CB5B15253ADEC63ABB9E267804A711E75CD2F B490FD323A1F1317E5146A93BCB22399DF24A3A7275BA92B812F51C72737E0A9 9034ADC21CC3266FA079930EAD8A97393CA781FDD4BEEB45F94E99C1DBC08A9C 84F97A58B462432052B4844EC65F2FB51DA8DBC47AB85DD441EA84FC35FAAA9B C870ED48A860931F0FB48C19A19DF82FB9C1EF92761410335BF66796AABFAA4E 33F7D4298051C14BFABC566A75F0441851154149C1DE117063735494B038ADD1 C6F848F56AA9BD2F3F63DB60447DC8BEF3BEE9173E91A13B3FE29E39D6EC2E3F 57CB63F9EB4EDC329DC0A64718E0C04A45AF05BD4DBEAE5FBF42DDA4ABF82C85 B8E76F537505EED3A69FF012E430CFF165DD5FE9AEBE87C1953948C2F03FAFEA 793CAA6AC4750C1AE161216D922C42B9F41F1CB80AD036F846A7E0117A139443 7E3884D07D9360B8FD5C1757794B47A063DED4EE6805007BF8E405D4329BF939 EBE81FEE6CFF6DF33302DEA29A8CA8D3F74524C4A68889E95ED0E7BE86B4C784 ACF8B3203DFD4543B11B7D07C85F0D33D4A8A16465A9D4412DEFCD80A12DEE88 AE5F0CF3BDA2F25E52C480AA69252CE585B0170CCD831F4AF816373CFD81A865 A026AB71750CE0382897114065BE6EAE2DA34F821C2CB17A69DE2CCCCA82B4A4 B114F8D64C564B6A94DCA2B24697113A403E2AF34558741D498D30AEF0D973DB 1CA50969E8945E4839CE035C6857E6E16FCBD0C7362C3E74AAEA8429438FB5EE E995209FB0678E334A918ABDD6B00C66B5F107C0683B41CD15EFD61C46494D20 2639D9B27DF047081B4CED936B4B9492A006DDBCBEEA03FC830FE81648BCD587 6E879CE84839F790C64E0B6CC2DAE2FD93B0BA37B94A42B7F4CC735A4EBF965E 0B05D5A8167221EC27A89B5F028107B7FFBB8A3B70C59288A9E0238C51FA4BE2 08B6B3791B1957C2DE32CE2A8BF1022FD77893DA7FEC4460E24AF98611B92196 7DA92AE6A1D15FD955017B5386F109989B1081ABB310BBDC7F42D92BD1C728AD F9392F87AA5F0BAA2A5AF9ABBD4C9A89D31B146934FCB01E164E2F6E36377EA7 D1819C5EF27B4083F84EBE90E3FF5ECCB57D9FA49A26F98A20D584E17F89B31E 6BF2B5ED54A7D766F916CD2017DBC8A216144BEB23BEA7644515542C7EF7DAFB CF31941E8096C742354AB218881ED6B3E3AA53E7FAC4A0127B897091D442B859 69C6E52A9C4A2F613A362CBF640CE3B766D5437B8C3D9878CC01A3A6FCEAF462 F44EC041F0664CE02B88194E44DE4932BEA4AF1127DA00046BAABE3EF04DEA0D 39BB41528446F6D3C3549ACCC0ADCD1293AAEE971F04B2BC81943EA7AD7AE839 681C4BE11A651B23E46DF1CB290139DACF64BB944223D316AE78DCFED68297F5 03708011A6D786DD75AC6D28DCC7C62889E108324B2A474032128F559CBBEFF8 2E7E5249D9BC32189E5E8429C6C91C51C29F487D3B0C1AEF5991BC721853C0AC FE1B17676A836518115F0A1B6090C74849A5135613DA658B59E2F1B88D671FF3 FC5F05D9B0D99FEC4F561E1AE57BCBCB2C63503F37C371EA74226C548FD3ABDF 8EAAF2293D2C4ABA673118F14B6B5F99F80C870AB779699D714F0445A1F36F92 4D6219393F33BE47994A95CFCFF08676C5632A5F639C115C0336F2CA128E1AE4 82EB7D71450F23CB09254FD6A9F8D26B1A777C55F039C7C6316A475D4F1433A9 97DDD0B959BC016BC5E89432B25C242B60FFDF65F029A5AD70E5EC6AC7BAD868 33900919D6F17B3D2418B48CCA6640CFF0C15714E904DCFAD8EBB594D2F1FFB4 872890BFD932420DF7DD80608755D0116B77C8E9096977F34A9E9770959D1F22 5152A5A7E147B80B093F632D44142A32D3B3ED6A86B770F4EA1C9F2F154E86DE 08A2B508F1282CA7834304ACA420E6C907E0B9A9541DEF402BBBEF89D5C13F63 C9E63CE4D82682BB0B53ABC244BDB9D41A6452191EA07131C984E37A3777CC05 AEDC09645A4D0077AA1D0D7F55CE627223604F2A8D7DF2E610CEE0EC09A0DE20 30CC9E8176DC64960E3E6EBFD24B225AA379319A0F7DFD011286ACBD83E706A5 205C692B657CB4D910E018A51A047F60ECD26DC4239E2ADE7873731701006482 8DE3DADD84ED251A518DE8475BCFBCACB2F5F4174D68599A66932DCC11C85C07 E5390BB05AA1EC8D0296A903B1783D39CCCEDFE3766F10CC4680A28CCAA121BC 01003499E32CB67CFEF3AA34A76747E7F7FEEC358813D67386250F3B3AF29BB9 A2983D5EA8C014B124A0A1D3DFD77729503509A3FCCC769C9178E0FB760495CE BFE8A5EC0660E9558069614C85AA18B9866A411078D163156FF84A956DA3ABD8 F1FE47E891F390F963F8D07DF5A6BE6658AFCB54278A5AD7E3230348049F4BC8 589ADC3AE159088E9337AD31040A688904F043646DA22C48882C99B37954F66E 4057325DBCC9A280209D1697DBFF7A502C9D40130BE0BB8349AD1D5FD9DA898F 02195A1D57B60D48C2302AD789773189A09369830F035F5BB4D1C8F70E139BE4 4D8B08454C02E20CACA20B664FC83668C8F278CAD35B6CB978EEEAB894AB9DDE 01F10C0AD05A463C18195A7255F77400ADFC4AB137DF8E77DEC51E087DC5153A 3C991A01625817B4CC866F9D9B416A85034EBB2230E20316424EC7F339E4EDD1 E0A769DF317CB45375F596FAB2AA31371FD0CCA7AED0FFEB8F4AD0EA16802035 FFB56BAE2B77243404EEFB0B08AE884A78A7094D29B6DEB25C2990F6C1C25482 6EEEA04B4512AD1518EE3C1C55858A369065E23CEF58EAA4F09563EC524752BF 9F2E2B154DD3E729EBDB24445E99AFAB747F5936B8BDCFCD82A459BFCD27B918 2F59F63A9E6F8F4D9A959C36837FC838ED16E3F0479B5E0242B8FD9A2AAE4995 32101F6A3E5DCC0A9CEEFDB9814187457789E5B936230A42BE544D54C0B69D51 7DA5DCF643932B4FAD709572802D0750AA7D4127939D33719E61FA77AF006C6F F06E1384C1270C8183158B439C719E07804129C917BFD9D0302EA89033C58066 7837C9D2B6FE1D81DCFB0E16C7B19518227EE960147D559B6C2156C2E9803258 AFA5FFCC5BFE398BC9B5DD80373A62B77B41592AE0E6B2AF522D4A1E9345296E 3D71FD72ADF83E80C7F83E8A37BD8F031336CB2729C41E9CBEAA2799E82DEF02 887252C39F6CCAB820335160A7B275046D527D83D24BDB88B190997C34F412E6 CB9112485D20A004849BFEDE387F7067A1A0ECCCA38003ECD486EEFA99065FD9 60942142AD8399C982838078928DD5EBE6D21CD66A1D781766591FD0C7DEDB79 A887A151D690B970964E5AA35D7E5E2A31B4B0751E2A98D9B50BED974ED1F95A 084CC1A5AFAE013538BA5961E6858CCB5D96A961ACBC3030722C996E97541B67 ECA323C272AA5898A388A1CB059AB43B31B4807DA156CAC2B5DA5B731EDD6F13 05DBE586066E8DDC998458210A1FB35FED8E5B44BA175909DE96BBB1D707DE3E 311FDFBB23E31DBFE3CAF1450DBBFDF4462DB6EB68D171DA9250C4562F344127 B2866C7010F9886591281EB86ECD0EF699C8F20933430CBDE49A96F1FB9EF0EA 3BF006C1B401C5C4F009BBFAE4FBF2A5744224E2C02FC656DBB0861DE51EBD36 10638A372CDBB154C81E083C4DEDC32D61ED1296F72F88FEB3728F88C86CE961 0D12A1B915EBA67508BE2FD0961AA6616D37C989B9AA60434EF2EEE60AED6690 C21A053A7FABDEF51DC05F566A6EC111E6B6ED5377EF99AD23C9CDC8FED6C3F7 4018168973D65155C51AD06BAA1AD141B4BF43019F230CFE3F3E55D675559BFC A727453FDFF8E432E6349E91B059638AF006E2BADF9A940A4C05C0B3EF9FBC43 7C6EFB749F3FFCCA58F3B926110F230D3DC511DF6B5C6FC06F6DDCA48A4CE8E2 A6FD76E8199AB485CEA676E9CD78B720D4B51455F8355AC0C286E92A2857BBB9 7A4043908B3F1CE70764C2250210624AD70641DB26EAE5EDCD7FB3E7F96A0FDD D09F90B176FBD7EFC594D95F68DAA74ECC099813638B052208128920E2A37F82 3AFE6C5D311E365D8D30AECA495AD91DB189EAF6870945C636FE6466EE04B9D2 686309701EF6BD7E9001AD62806524A615080F9CCB694B546D08FEDD5CF6B650 679A5FAE492F616B2EAC4F962B15E096F551B9152891CC2AA7C5E50CDAFDAD5E 6EA7057D5383D05E980D1547C8EA08A1536C27832F03F85541FA99FD7465F63D 1B535C5342149BB8098A353B962DEA961F6EBC6658FC66A6C11079415B7F1DFF FE927CEF5B70F2242EAD86D9BDC4E8ABA3B461B27596FEF22BF04DA88BF6D9B4 7B53FB0E2407FAEC23F35C669C484D217650E7B3BE07D6D15F187F185C9F7ADF 702024FC590B4C0F584CC57072277963FF7887C4A8E19FE1E356FF5FF202CD5B 2C0B73701C9310D3594B728173FFFBA9047527DC1E51F2EB546EEACACB08A08B B7539EC7CA458CF60406212E355F08B8936844D4AA35B81F73080A2E9CC9F4D8 B77399A75FBCB054750F6C4AF88E292CFEBA5D10DA4F3B921250FC72F1E689E9 213BE3D3800D9629902BA2D6BF4CB385FE295E7155C4DFA6D2D7D042BD5A42ED C452EC3C70575475D437F3C01C5944ED92E05E987223A15635CE33A88EDDFECC 322F93BA7FEBB0EDF5DB44484A7B52702DCEB29BDDF6C4238A18B43B3596CC19 6FC19C8CE96F9CD43B9C0FD064DB16D20D88A6A3B08357C199D0FDF66E802C5F 1E707EE020857A5E7B3DB0899BC96B4342C7FEB6F8523A95317DCC0A47213ADC B89774872754EAD72BDF4E8981689C801D2E1A4E61E7A0390E835CCAB6F77185 F43D9B3938357B7115F92760CEBD4FE5316CFCFBFF2775846C646CE02A6A76CB 21A8FCEDD0A6AF32AFA5E38918226891D2E4BA1BCA64818A961F1CE95BF01D3B 918EE24E7B9686E0E9C6B242B7F016721ED1DDC94BD01388F345181DE38304FB E8C277F0A9E52B374198D884D82C442E3ACD44B604593A76F0F00D043D7A1938 5B00C75DC0A53F24306FEE2AF6BCB03C8606B42E025D457C89E9A19043534C14 5F42E9DC3603962C94BCAF778198161B60BEAD8E07399451722A7FAC721ADCAD 4E157290273FBA5AF803497457D1CAC9220700462B6823ED64C91FABD2E93B57 0893840FE39B4C3D95C1C1552A6D927FF4892CC66294D19E99EBCEF34680797C C6CE247308CB08784E90C18AD7E329589561E933CAC6AC402B077E15193B971E F4EF8645BB2B1F1F7B80971FA37A784C054631812405E787971DE0509F907E90 32BC3AE3696CBD2E48A91E8CC083F63FAE236288F0F7CFEB0816F8339094243B ED935F57FD3C550E4B5E8800004B4A14A895C6486B6366DAFEC062EC22DDDC08 0E3194B19C0484B6295891AF7FA1B38F80A0FE15179801654FB08F96A9A8A345 B54D02AA395086DBA8A87FD3F4C25F10564DEA2B77309F5F466D7C54240A4DC5 B6A4BA7CEAD0828E1E7E2B9BA3B06E4E1EF77127180D23BA6BD9AF4E675FBAA5 0A7A685170165A2BFE6D403175A501E19CEE9C74F5F1289C571C31305D59DC8E 2416BD9D79906D7B3C8374BD075263F663EA30B61396C81DED852AF661A7F558 7A614585F8691C30A0D98563BF390FEB5851FDE9724068877E434FD7CED95EEB 0EA9CF5A2EFF39247552E8DB67D45F8D32C33DBAB50F6CD6665D0A93358DFA4D 959CFCEFA99B7B98446D994CD7285086A60965C33ADE3432F018E101DF28A341 815C8881BA52057596561AD7559AD81484C17CB8A5B74680D8F3E8B59167681D CFCD565580F1126AA7383EAB03191CE0329F532C5C897A325568A2E0C592E6C7 3E28ABA4CD19E6D9E9F2A41A5FB852DC13327D65E4DE78CCEBF9C09C069F7DD3 B76EA02C543D2D54613584DD0325E2F5270B08C1A0B8E25616EEBC484AF58D4D 17B90172DEC25D0C1CF90D25E664411E46FBC2A46F9E3BF2A0371F87697C6677 A0BA82553080454FBB3EF5D72E757566E6CB401E400559AADC2CE26ADFB75377 4A753B5908AD050FF8DCB5BE6F5AE4525938D99AEE254B8C9338FB9870442FA1 4183CC06EEAE253B389359C1172B11DAA52D353012F9BE32E9C8DC6BBF02CBA3 BB04ABD8D32E3E131101782E228DC9D5434A3AD289F4E726417F56A1ED276135 A42D0D4F7D96F54A4C0546296FB87CB174F36968A79CE3846A2085A8680EF77B 46EF633A447568794FA7E75972601AD3EB07D3D880B404AC08B3FB61B4CD62BB 1985D41D67570DE45B4B2E12769779A30F7A20A54E49006EB53AF6ECC941F004 51E55EECB66EA3074CDB98D53CE45CB7FD91C0219D3BB8287AA73C51E687360D D70A3200E1F7D44CFAAAA22E520D6A6E2524008FD3AE41CB53B5DAB3583C600D 7267C0C24BF92944FF9454A86570BB46E5F719A68EFBBED35671A767228B3D03 795F4915B97B718164594C349BA023DF35007B2CDFDED4D8747D931492227BA4 D61F90D67E8075A44495BB50D1574BABFE5086DA649F0CEB222922AC034C2BB3 C6F50C6D401CBE99C90DC303DC9302D9DDB8685F245A8FC71E41911751A64428 AE31EFB8340531232B3F53A42E33982C4AB25E4E7A776EFD781606960B7A3E6D 49C604ACE79FA03CFF8A879A492BA5072A3804608D15DE3C6E3B5639306FE7DF 7210E9F0D0D211CBEE108A9CEEEE39843F73D2C496975EAE3CBA89262F2DF574 D3AD7C74655A0012DBC4472F5106E195FEAFA8F425C6ADDFB254D13E48876646 85B48DE4AD560C12ED56EE5109F966087A87711920AA915D39EF8030D7746AB5 46700A80AB01D7A9B0C9007CC64A55D4EF04A8D444FA5B8B3792E550F287DB96 732C3669CD143197C1CA15F4B59980F6E0A719F41E31BBD8D10B8C2BB3CABE69 CE979E7954EE895EAE13086F16082CA1BA93EB28E990B737921C865525A0F3D9 E7077D1AB96EF94FE158069FEA6F50DBA85526771ED7388579CC70FD78E1501F DBDB06ABC7DF2912E0DB3197B04C99D620DA0FED150A6EADC796D61F8556FBCF 3E720667BBA6D9080E1222F41B7480601124B403731A46C0E3C19731CECE285E C25A7D2DA09FC223399EA6D3FCFF1831560B4B8BEB6C90032BF98F1F16C8683E 0C4A725B8E7AA4CD6A2A93749A3E1404EA9E581E1C95F30151BCF033497D4058 7AC5D8AA5AC6292CCA203201A94055F0F04CF9D8B1F5B862E35BE322E0EA60F3 C35841CDB6E0AAE56DCF71404DA6B30EC618D3E99541C3DB5F122C875D35E8C6 FD96998A6CCB007C5182F7B8AE5FB971A22C12D0ABEC105DE257E85881106A51 3283CB2041CCB768E998A16ED6D3CC56F584AE0A535C3C1C95657F831AFD4987 89ACB2395E463ECA040F3BC094B16FE082980CB10AD4C510F85FFFB2643940B2 235BDD52A558DB61EE3D12C1E7CA861E0D142F3D3DA71F7634B444B96656CEB9 DAC277261260CED80E5CF6B1308A727E0D9A7D30718DD52F80340A5DA1C97320 B6A63CE6B80261500A9EA8CD6C567EAF116B2B404368A236A614238D984C8E0D 68DE215B7AE52C7C5ED23782904D9B919AFE1B601A1EA770575C0931001D60C6 79E917DDAF67111E4422030343EC71397582B390216CA8A3E35A488A5BC09B4C 02CC7E87CBB40A933110A1EB71B50C824D319CD040058C31847FA554B3E8616E 4CE9BB84508CB038217A1347BA9B7A99ACA3A7CFC29E0E146D3B4A1DDC9F851C 2EDB72B3FC34C57B92272C5C7EF003FF74FB26D77AAF775E6CC16BCB8951D19A A07488BD380FAEC8F51362191C7E2E9043E78DDF6D12160A2DE167AE0AD5E287 4532DB16713B13C27E3A3F988F167D151D993962CEC7421EC49680ADDD6D92FB 58C2573E959CB31432DD8B950D193D252EC8F3A05B72E30F86350A3789EE0F99 43302B51510BF18796F34562D4339B6A1B405FF9F2BD372384D9F28D5E446A29 0E55FB0017C9B83F5AE46DE8147D8BDF685F642124E18970886E05AD64B98738 393CD029010BADEC81170F696271A9E7C4F5FB89E073DB9D1A10FA3314D32B32 84C2F16B0FC770C1B3583872BAF753A83D27CC1C9C6E09077F036463ED918FE2 F7419E29C75F3080D06338E646FF8D7B2240B59AB1D6767102E243E6814CE95E C10BBDEB1FBB01AB941A0EB7B3209A45D6D2F6EAEBE74589D37B96700165BF84 98F4C8AAB1B71F3F0F870C6C6266B77FA28D44A8875D4B84CB1ABAC4BA5196B2 935F40A48473B875EAEAF9716427AD0F9887CA75AA715C9FEFEED19B323CA6B4 72BED4373477D44D0AAFCACBCFD8694B7521CFB85A1B217F924C23AFBC94D758 016F51C01987B63971D24FCD67D26C8739285FBE5E36AB7B633677748104BC01 AE73D8274B9F2353D3AE7B531364A04EB639DB46DBB494CBE6C70812EA8D86B5 8C074EBC70CB982FFB73F8D4679BE1AEFEFD4BA660CA163ECBB742CE1A15E16F 9A648A666D333CFC7AB98FFEFC3AC1F45007A033D6B4EEAD5218479E4B62F4FE 3C5AB75A314ED69DBF7FF161569D837181AEE43B5F41C7DA19956C15B7E7D87D 2AAC4B370BAF2A028CBA6E84F2AE11CE62197C73BF80C19CA55176DE895E528E 01007BC955826B3855B1763F2A3D402FBE16A5BA9020E7578C5C7E98AEB6FC67 BC0ADBA185CE6882DFB06E080B4274C2F888B7174F1D20E1A0A2F52FCEB6DA1C 5488C6286639A08374F3038C48D352F36BB15002F9C4ADC9EB6CB056D0596BD5 6AD002C0FAAD72CD82C3ED503382943D9891C658143711F336B5B9E225D3F92E 3CAEC528F9BC66500A58BDD32A1B4EB316CD77BC99143D809D6B92540C5C81DA 7EE93BDF5D77EEB00F83D6B971EF4E12AE76DD056AA4948CBC3FF4C52A9063DD 23E6E2175B2B9F0D4A40E17BA3D0499CA80D0C5F5746DF1823BD35E45BE9B17C 57988CB5177C31E7AEDAFC624F7299E3D0375580C55B5FB0D57AF8251F7271EC E168CDD3985CBD21024AE9A15671D2BF21EDE42EF434B671FB24CC039DEA55EE 7A12A1472BA89BD4A55469E5523FE3E5808E88B8476486EC548347D6F38D7A42 8141F085307D2E5B28EF2A9A935CA029E8B0206767B7185E62F7A2F43DAB303B CFB04F55AB09085AD9F36B089ADBEF2E648C29D70BCDA0C6CA1BD355F90EC8EF E162D5C71613740C4173382CCF462CF389AAEAD066CA3F824EA9D1C5DC0A6991 74E9627F4CE2CDE5F435DFC43B76263D527D7414202D52A6FBB3938FDE149C98 F86C73E4E07620D77A46B6E7C9983DCF623CE62808C127778636ADAB05D5319D 15A03AB3281B2EA0B8655108F9C728EDC7A8C2D00051B3B86857298EC018E225 CECE1D4884B7D6E95D380D2CC954B9D967D2B76611992F350AE76B1BE52C2904 E44C9B16412B46F21254EB68A21BE0721EAAF63970D8944E06776A4E86816EFE C84237DF9946314E6D81C3FC930DDC4E4C31EFDCFA7B0FECCF72AA2965CD47C6 7FE16150E11020FE8AC73F089B51AF34D09F5B69D5E213253F2A34FB7373FF7E AAAADCD3B8ED095164A12EFC2B5C2ACD519A5D3E5905F92B904B7E5F75C69987 F2140329F393F7A935B1F04123908C205212438047060DD9E1CCDCF877A599EC E1181C210601249B02774503EE5B1B9CF882F035D3E226EDA89D22B48A466F03 924F3E1B05F7A13508B5D128E124DF132ACC4FA23F109BEAF477E5F6800790C5 BF01B1F0FB24289A562DDFEA359FA49BF583E46DD6BCA9EDE55CC8C29D903604 9E13E9315E3F1979FD9FD7A1D77950B68DC81670A51864A631F09DFEAF89983B FDC284BE4F2297DA51ED7BA87CB29FFA48FBB27289E4F0B5BB9A79020A21B4E6 D725941B4D9B96AB7287E4A77799E40363C78AD7D8BE761BFA2C7C5F725A0650 4CD8CBB95BE5B220157D05493E65A40F12FBA4A75A55565CE6B0FAF03284D636 8448AA65B62856FF07CCA75C33208BF6C84F227E997C807E8601A7A58A05ADDC 531D9E6A4D8FF896E6DFC409046E7BB941920632249352C7FBADA5FA5C24E19F 6C91AF8E47590DE62CA5722726E6B00FBA6CD6D6A590D44B7F2BE998FB1E005A 3885B8EBD384A88E866767A3C9C61A3189DC430EC860C927726C97A665C024FD D0EA396FAC550D17D9D5A209FAC994E2EBC8DF74518D758E25FBD019A846BF16 29 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR17 %!PS-AdobeFont-1.1: CMR17 1.0 %%CreationDate: 1991 Aug 20 16:38:24 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR17) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR17 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-33 -250 945 749}readonly def /UniqueID 5000795 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F075EA0A10A15B0ED05D5039DA41B32B16E95 A3CE9725A429B35BAD796912FC328E3A28F96FCADA20A598E247755E7E7FF801 BDB00E9B9B086BDBE6EDCF841A3EAFC6F5284FED3C634085BA4EE0FC6A026E96 96D55575481B007BF93CA452EE3F71D83FAAB3D9DEDD2A8F96C5840EAE5BE5DC 9322E81DFF5E250DEB386E12A49FC9FBF9B4C25C3283F3CEA74B8278A1B09DA7 E9AE4FBAAF23EDF5A3E07D39385D521547C3AAAB8EB70549756EBA8EF445AF4A 497CA924ACCC3DD5456F8E2C7E36946A5BF14E2E959895F7C94F49137256BE46 4A238684D52792234869EAE1A6D8ADF4E138B79472D2A90A6CA99E2394CC20CD 3841733046175B20CEBE372327BF13428EED6A3E2FDF84C2DBA4B0AD584EE9DF B51828D3B8F385846158C29C9AC3496CB9692DD10219697B2ED4D425C3957FD8 C4600D76E045C561216EF05D38177243C314877A69A1C22E3BEC611A2EE5A216 9B7C264CF6D1839DBBD78A40610F2C0D7C2FE09FFA9822FF55035AD52546970F 83EED2D30EABB1F303091EBC11A5379B12BB3F405E371519A53EA9D66174ED25 A2E55463EC71A97BE4C04B39E68112956117C8252DB6FB14AB64534B4BCD568B 246DB833982B38CDE7268BBF74B6B0C18091E1B1F87D32D66F4DD023D1F10D2A 7736A960F72AC01F733A11023832CD68FB6288A5977743F781214D8FA9C0C3F7 80001321D4397771F728FD9EE57CFE7D9192B887EC883EB1505068261DC40089 7B7D2820F06515CD74513521F6397FEAB3AD3572D9A8269430E407E357422461 1785FC2782047F4C0339D79B16862D939F3A37F78E4E2174E4FBF132539CB760 207999FF86F6A3EBE48EB0A1CA635450FDEEF79EB16D853F3BF4B1F79C9F99F8 587F62F3D48603ABF3D14CC62B7550CBE93A0F2E64636F579310D8BB691B2EDE B9D58C0CE6CB1E1F6A2513C0C7F78851931AA7EE00CB39F447B5470ACC5ACE1F ED4AAC05F494020F3B9A73510A5E6211BCD8FF5E230D4C267B52C6F8AE220E33 133C0925F51FB6542E39A7444B84F5C82048E6644BDC2E4093F395E131AB496A 9271FCE2023E0BCA3DA72E076012FAB5F137C075B7EB8A5427611F8E7DC03DB1 0F7FBC3D92F91E69B9CADF1621A5E919D283F49E248A209EB46899C20BA1DB7F 640319087627B3D357E507DA1A3C0BD14887EA0BDE5576CE0C367FA23ED4F73A A0770E51AE10C2431162496025A9D4E6F05037714F35BA95D0311A6E0E6B91DB 5F8C8AA159F395D51C4D3847A904EA59BCE8A5D04DF8F2856B527E54D4EE7C66 0A41F3CD438EDF2EB12A55363060B6F4C11B5A82D0AF653318F3BD4D1D919E61 752C68BD0BEBAC005DFDEEEC9535EA578683A2CCCF9F03A940F5F01194A5CC6E 3F5B75FBEBF136C02E7FA86C41DA331D9950EF7D83D2ED4A3758C19D934F7BDC 597233A104935C7516208CF6959A7C557B37B4DE5AF49CF4D1544A6DDB555CA9 56E46F6EB984BEA791BCD1F876EA5B88B7B987FDC349FCC217A8BFFC5F7E3FC1 763C9EDEF43F730ABC05546E2C0FBFF7DB79BEDF9759740F4369D5989FC73F8B 26F44C0AD977722234F4B02BA39D85AE0CB60E14687712415D4AA3625E88B94A 316339BA189ECD974132F62F326475FD7F818D92D98A88E8FEA9337BB747423F F0DFF29CFDF28432D75902364ECFC6B6EE2822BA8F150548EF4DA209C0A5C63E EF81AABB6FA0A58C178D256DCD651090F97AD509933C6E168B7BAB6480291633 4D0B42903481D4C8DE11AB42DFE618455B0F85A0E9DF92AB0B5BDEB39201A839 C6EC452EEB229701C4241661F38F7AABF177F1C7B035E10590DCDEADDC90D3A6 07C370548E9227AD8E0209C487B86B0382303CFC46BAAD760D598B365F4D1BDA 61DA0F0C7CD39687FBE81542485390BE3EFC2F9C48EBB5C537E2AF01F4BB6AF1 0E7DF66F1216C830D5ECA57D7EBB223BDFB29017D3AF568AC4800359DA9032B1 56D537DAE33A95A4F5EBE415333AC608873D5273DFECA73DCEC07139CAF3A57A E3F2987F9E62AFFE7435215AD55A36C4FC36A9491EEFB01751905439F44C3B22 E37E737B0AD45F488070998E48AAEA9E9B7B420870195EC39298807DA4B16519 E8861CC12CA358A8F6DF11F0C955087C2739B711A988821FA9ED0C138EF16E0A 1F5D93ACBD906CBA65BB95777DED5CAD6D148E548E9E03FABA721CD4639F01CF 663D28930A635741475E95DB21F29F8916B1289E518D812DD6E8D04383CD363F 419A12FCC202F677D5FC652E6D83B5F58F68477323B8119BDB978C41C47DE718 854A0810287B7C0F076AB5FC0EE308ADFF79DE114DDC12DA172C5C4B6FF666E7 A44737B870C926DEE021E658717239FA28B83E8AF396CCB4FAD3273EC1C276E7 C20013677615C08AF724822FDE0435F57FA36F6516D959814BF402365D8B7790 D3B5E8BDC41F4D533E8CE5ED64FD00505B1EC6F5BC3C18C0FD026B3DCF587A09 22E1BD9289B5E1F386738608AE9BB921E939620099000368566558F78ED12A7C 2F17D6770AE2AA7BE0ADFA3DB99854DFAD5D124C4CC267DF960E1526223BC39C 3AE8CBC4D0130F818CBEC750AD54D3367E37D042CA2CA471DB865E4F712966AE 09437D9EB05F85B425CE3BB002D4D0ADA3CFE4C7E2A9720EC4D0D5261E4DA495 B5AA27229C254D58184D875644D8D29FE2265D1EB94D6EA7F5F34F506E0BEA99 344BBC9318C9F7E6D461FC06AB07C47F41A34DD63D62F924FC6872920B52D7AB 0E4D176EBCFE23B247AC4EE10776C7D100959068F7EAA20D82A4DEC0033CBEB6 5AFFBD1080E938D4E8137CA2C42C7BBBE050EC7D1A88899E2B7EA7EA218E3748 6D68472031647B84C151D359D2EE8FFE69CF8520422DC7C2FA06E01AB3D3744E F878C26DE28D31FE57459D82776F3548D8D85F1E848A42214C4DC87FE822F174 59F7918573771EEAE911C7C4A2700A30219F3C777DC84F5C2623346635FF28D9 C6C2977424B19B6F3453EF4A6EC347165EE7EF77879D5B02CA5742F0A154383E 7CA616C5E9F76D24DFA226A8F7FFF460FD7927D0EFAA5C12AD33BD31E416EC4A EA581DEF34D36F3BEBE1822FF7755C3BD0BC9BB4E5DE393CB6D776098DEED0C9 827EAEC44AC6E2CC82ABA4C28DD245F6050B210D97F724581D0A6CB830AFB55A 2DBB1EE282576CD181D1B3BE9E76B30BE8B677905EBE7EF0371E76FB96318836 5262EA771169B3280740F916E53E194280CDF8096494FF2420DA5D280FD74046 A0D0D2C4A7552F351D8141C1CC019D52A61DF94FDF0A3C8DB1202BA8A3ED381F 9AF63F777DB9BC6B2C58E3D142CD041A75EF8EF303A5B3F0765CC38A6AA50185 DD8977FD19BDF1A68C5A6DD43A341990F207A0C7700039EB2B04E44D4175BE35 9FFAAAA63313455D198BDAD8CF2A92907BD51EF238EAC49740F79E18B895D8F4 F5AA0D83D033ABA2A0529930C26EE4AA1352D741ADD5551640C7FA738BDD4C79 CD9F262A139C8A04F70D92EFDB30E7847FA7C0E5A69483AEF6DA6157E5A8850D 09B08E6A31187C8072AE5FE5FEBE8741AA0DB95C45C2B353A6DC7094ED2C455B 73FB1ECD345D8634C72B5929BC58BB2758217692FCE0F747EF9814ADCB172215 2BAAF62525B44D7ACB72A84BE501F92B50B1385F6515CCA87F7CE96C71F6B297 2B177CA023C8AA6D856841955C625D25669DCA0BBC0648D8FDD8A1461DD1CA9D 93445D100BA846A713CE455A5597EB61C46183B48A06CC3B20A191D6BFF2E0D2 1D6289583238A06E2253EC1A22E74461EB1D9D7377928FBF835216E8A3F0515F D998DA6CC5E026923FBBCD87E0B1211AD607EA781C5DA65B871C8AE78D0FE7C3 C3D29734730594A6C7AB7DBE3536836402E4B684EDBB0B0551C8F9B82393FE5A F1A8FFF9E51E2FCB4BBF161CC45BFC6FBC14C2681151D7601846456951F3E8E9 66D8F83E6B0417A2C01FBDB1E343FE42349D5AA2A107AF744C49EF6AE26989D4 1D0438CD76CBCF7484AE96B90F5C51E64CD1D554747AFEFA5267ABE7434EAE51 29A3EC27B507DC9A13EA84EC77E731B356023B9688A31F8E68AFAB1CD25050EE A1D1A8EDE80656F3BB278141B59B1DADF404311E693096BACDCAC24E0755A736 2176E44EFB79843E21DF0E03581ACCA9E02F07F49BBEF613E039346CC8D053A0 44D85D4C42D55B662A8DA1B8B30041A8C703BA7F137410497DAAB66BA9F5C415 3BAD04075A57030A3A1C9A177026E7571E02E7708456B8891AFEE45859F9F537 650D698A5ED9BB1ACF9E0D4ED54457103D0FC6E6ED03F18D894796FC7B872D7A C88BF2364A7C1CDC05EEBBE848DFFE11C382DB8509E01589B2A49A9C3AE9C0FB C3B68E23A0BFDED2D4442AFC331DD9FBD0C8A1E012B047A9D2916E722C7E5DC1 7FECF5C275AAB351D636DDBFA6BB52BF9ED722C60C6DA86E0156967C4B56794D 35F06E7E696FB1598476E58AD2A19BE96803EC55AE530882C24DFE175DBDEE22 CF079FC2FF07031BAC15F16E8A44067E40C06A4FBB32EA379847C82252FA577F A852032CFE5BA57F262966BBE58F801C8AE970E75E763CBDED2791C12F0EB104 580CC6C0E861812C01DA2F80755A68E472805459982248A486FF2A83D0C7528B CEFA0D0418D9008D0E04E4E85233FF64FCC179EE03552919256AC3187BC776CC 16091DF79FCC3717FE9A5E81C72D1668A54156A901125F671A3AD3A1B7243563 A62698068476DA9D9C229BF5BD8381EE3BE997488D1D757E1F37BEC8D087F124 21CAB1AFE669B9E73B9B4E1AF3FC25941EF1F91F5B8276F71D2CD06B70342430 4ABC2ED3E36EF30CCF7C71A2C3F836DE9E2B16A86EE927B228BAA5A6C939C2EB A7131080ABDFBCD663D373D9AE4F701DD1C68D9B6EB0311F2DF5BDB29221B920 7B6F3A98EEF66ACE1BCAE274DCE79C581DE153CD31590E564183F203819DF81C 315AF17038854AD6AE38754845A352A9F94E78C897F8E7AC81F85CEA48360BB5 42038E1A4A1F69375405CAF705375305F719D9D84774B65D00EA0506EB2D85E0 52BC2D6BD186A966CEAE7E9595A1E0DB199DE89A6AF9EC176855880593CE4F7D 8D3CD33C2DC542F9DAA81CFFA0C757A197C8C8AA936BBC9647264F14416360EE 135CE2C9643F5208779049759765160E24248E47647C44CAAEA79DBECA464F9B 0FD4C27A22EF4C65A236C8DEEAA802164E033D82C2CEDAD7B2D59E9F892B726C 9EE0ABE0AE221F147AC6248F5728BA085027C1282784DB09A090513F56015D04 572EC0F53342BE496C19F0843F5A366F753266FF527173F4CAD919C3DC8CD42D AFE3BD8CB215E58A5EE39898BF8CBC97C8D0D9DD5021B752444EB703E5E2F2C5 EDF55F3FD13D72436FDF9FDCD918C4E0BA228C562695ED663BB9507FB012734B 626D9CAD72991AB7D1BF66EAE188AB61ABA867F7C2CCA578D7D36747D65BA7C2 79CAE6852B6EE05005A77D25B1FDE70BE6C1AE950467ED3B5A84D76ACB5790CD 743FC9F06C28BAEC547A8F9D8FBBBADC57C68D6EC0861E3FA7A55F3F60F3BE45 B6562B79A1DF405552B4DF19F6241D9FA8871B145C4D019526049CBBC94195F7 797CE11254DD46125C8B84598DB0A74373B097428F40AFCB4964F85AC211F6CC C5795B5AA3CC57641789428716A63C89FB1C427AF061F5854F14D30DC7B49548 025BFF84B6175C036E5F99A30B17988007E1579E311A1F539565B001E5003FC5 1AAED108539C208F07E11A992E82B902C5A06949D075749AD90456877386DD81 3456631FA07101EC31D7489711A6873D9A44B87CCAE04F8A4FEDB2F6BE71E27B FE2155CCFA3F3E7ECC45D2DCB8BC62D4462187CB8281634AC54C9ED16D91D8D5 B3A9350A8D9E66F62872ADC65CA5A240584A99237947BDC4EDD4E61677BB69BF BD92CCF62C88DB79FDB6046D9058CD737D6F0512B512A981975409E82B7F17D5 676D71D7B346ACDFAD5CE2805DDA85A1F1FB33A610D78C006A7128AF2D96E743 AE4218041C3E8511A43329C4E9CDF2E5332925596213B6DE0D31C5BE4B0445EF 59C0C7277A1C0D57E475BEC0671694AF02C77301544EF4B7BF6C7D1BEB7770FA 2D15846F13B9CD3C45415D3FC5C7EB93F1CFFB17B2ADE4DF7C3E6C440C9E4968 1264FB22A5A316D93190E51E4BDC067DF742BD304D6F7B97571FD4B132CD4A84 ECFB315094B6B9421639190D4BD95CBD11102394AA1338229BED223561525FC6 019C4A5CD9205D21F8F3DB8E73CD9F69EB0AD2721D2D3CAF5A05BBBBB1A3920D FC2E21E6035E70B7AF56D77C2E8DEE468C9B68CA3FC903BE37E3C0444E6056FE A43CB01C3078C796B82B5B975FECFDAD9475B2753068699D3C70BDDA0C91AB70 45951A0705CCC3F6D06661EC96748C8FC195B0CD05F5832AFF67E2BE0C480148 BDCCF8E00993672C6C99225DCA644D50E55B3903547706C14FE39845BB467B54 BEB58E016ED6A075275E247805F2BEE956C19BAF4A190B0DCC47E575B2754E72 58B19C80A3F3A77F5C7ADB8698FD5E6EDE00B89C8CD87815472F551B597EDB11 F118DC878E2841F9DCB49A5B90CEF15BB2AD97C71BA5302C186E68209B34EDE6 099CFECACE86F673AD51F18122FA99ADAF77779D595DC299962B61B24B471976 D73902385142E313270E3D189D3D866502F95E95B6D0526555122F9DA6252076 6A17DB164C6CA7037F8E1AEED59139D8294B1F349345FEC850E1F8A542B86B3F 8A3CB7AD5832157020FC960F3846CA430A9BC378088B4D97793A20C42C5B4FCA 2706164BA0E279483355C771C0C84E011FECEFFD3C4A92E44BC2549C1FE6A6FD 5F0CEF8E63162AF756680D6B4F1587DA42D965306D207A60D13E725676BC18DF 6561145F77CAADAEEA6AC8D79B3DA28BF9BDF13930E76B2AFB8E363B8BAA5372 62E005C5E8A9124D32CCA1509AE5620E139135BDCBD12A8812714ACC3AA3DA43 29467F26AD79834A603D7E75C60518D5E64B00130F973C038DBC7E0DDEC53A0B 06AB26517C61E56D787F6B23958154CF0C64E4868B5C9947E5BD4E810FFDBA42 675AC455DD43AA3B6C19EA9FEAFA19F90773929EF442CE1881FF8D5F31452D62 2F64379B83216FB0084ACBF88FA7C8FAFEAD79904C523ABBC962991A37D11AB1 1D61F4AA15C8A12CA4F5E6EB6B92C61C7FEB8A03C96603BA34E4A399C6DAC1F4 F9D9CC6A51212D0814BF0E31E329145B5E8F05E45713AEF5E1B9E7C7F444985A 758A0840BE3F16567F9B264ED663CFF9441E248A96108D4E8BBFE0545DF25638 6E38DACA2CA7BC23C7F04CB0CD70B7C83C2FC56002DCF2C0E035A344C688E4B9 151467D6B4A64F0C9C001846F8573463ED238A6576C42E9A8133CE3A7B2FEDC9 F5B05659E082D08FBC880F45797E0F0C2FFBFBD8B5F702AED8D4EB1661AB9788 513ECFCB0AFDB6B41BD1D0910252B7575CD9970506751ADC8F1EAA8EA5D08C9E 610388879AECC32A8ACA9F05F949168A30E207BA924CF7CD3AB4B7F10406C0FF 68175115CB089186F3522BCC786EF63A480310D3086DDD61EE4FAA837FADF470 0489CAC96C4D04DE0ED8313BF5499E4451A92CC9E20736E7D66079578C2F8966 2B018D9FA559AEE84ECC28E050AFC2E66C366620842661EB944793BA0B4F64EC 0FCAB3DBCC37A389D12035A6146FD28FB0A04F7228F9A1E0089ABEED410F7090 B6B10B1D3E2C69C540CF50534CEC3EBDE298979B4F2A1076110253D49EAB0AC2 F2080348CC27478B2736DAE95B5F1ED7992EF7D7C9B13E554F48356AE3867ABA 8A3E7E1476B21267A9D0ECF43E85B2CEB506D2E39DE7BEACA49E68FE195570B3 B935534F51F0DBAD326D8C275FA7C48B1B12994B643C97657EC431BCC068E4D2 3C2C2737E785487EBB698C454588455AD1961007C4CE9106E8953AE3B0550972 CD6AAF2D439AC2381C28FEEE0436F6C5DBB4752011B60C4F57D459EB9F6DEAA7 879CB4723D2E9783A50A737320EB82BB87C8979BC9F6EC57C008D18CBFEBA78A C1D05B8E700E9CFFAB9B68C1FB8BF86A0AB24365B03395111AE96B8638E41151 4846BB96F913EA45B24A4D931BCBCB2112661A7F6CEDFCBCF0D677FEBC3DAE87 905216CEAE4074A4E0AA0B2A398E9D5333F7EFFEA3861BDCB4A0D17F8A137DBC 420580F61B6F1D3C5C2DAC323DFB11F570E94DDA93D85ED35FBC76E652AA104C 240477C9AAF1224E8E54707848AA5C9C0207F6976033188F38FFDE3BA9D17978 D253B8F0D64C6F64FB2AFCE5CE853634446451016E0B8CEAC2C3E9D1AC58B52E 708F86984A63E40EFA7393BFD7D9C78B2E4176D9420F27759A4BC449322470CC 55BBE8B24B8E9F40A5C92AB8A77CFFA286E03992ADAC168F416F68DA8D976CD5 85A4136998222B05068B4210EC5E6459CFCB39727CE6BE3D29F139D3E8171D70 86F4BE73ACABD9072124D66C40082519BC7C4386A8CEC94E512775E941BF717F DB2AC55E8433EC0F13875FEA33C89BE074BA24046E68A64A4784E6F579A6C3CC 0EBA6CFD7B965B3C95ADD3973542D738542CEBEC09AD3A66032498FA09169EE3 49222A445916EB4054BC34A2E458B7F942A180FC5BE5BDC8C11CF10252859522 4B0FFFC2F2EC0C064C534431B7F60A6D4E8337CB1B0697DA64367E7CFAA49523 C3D521B025BC46B7D37B0E73C32B73BD55368C7EBD9EB720CBE08D1623AD176E 4C7D7B39D623DBBF59216F1C51A560AB8596A434ACEFA7A33DF91C245A75FA18 9575C89C877EE8714170E63EA545EB919AD7B770300AC573B212088D956FCBD5 9EDA638835781985F03EB8938E5F3D634F6C24E094D4E7CCF964039F90D28206 A917C0BCB1A529F578FC1E4C5B384E49FD06A5D34F8C259AB9B2A4F3270239EB 21C8A6E57F32CEC17CFA4312A1CDD796D2965600EEDB3E7C1FC07E878AD59D9A 8FF040BFDE47574DFA64D48F284E851E87BFE6CEE3F1F8CFCC1A53B40B47DB95 F644E2F3AE629F55FFF395CF4DB39ED72A81526C9858ECB02F380786B4BDF15A 6C7ED87D0DE5F440E0F7BDC28E62217685C983D9E74F4C850251C3EDC27F8801 26F0E34FE3EB6AAAF61E493628ED51F8FA37354D05E1853E3763BC51952DEF48 6E459F9C6C777F467C04409F07A152BF3ADF1DBE177A4B6E49D1BFAF99B51776 FECD19433F899DBAEFD4ED49FB855C2F807227C4B01DCC80B92F47B5583B81FE 033E898482C9E1A9588A4759BF27B909129AA2DCEEFB786615FCF74B613F763D 73BD038D246B4A9E0EF675FD4CC28441AF20CFC40C7E8E587742792BAE1BFED6 FBF35ADDF76CC8647909B5DB86433BCE9406DED14EAD64600D3273D539A9EF66 A8DA496708C49583D7F4E31B8527EC61B706318D400AE24E4C0ECF8BA257581B 63606CD1148960C315B20239B1E45182704B8F4AE5D7EDFB67E903ADBBF954E6 9C4EEA93008A68B4499FA63691F12BE688F599C631ABC03A7EBC01922BC36957 6114322FAA64B70DC58E170066FC4F522664530B3B6254938531F53B446594EA 94C9EAAFEF48EC829C27D869CFA7B5ECB58FB2C3807B64FCF535228B131D67E1 F257C7371841CDB23E55239454A0DEEBC3E098AA38811EBDED49D3FB7B7BD570 163C775A31DE76C69B7FDF0B517AF95A58EEB7F0FBD7AB314844E22DB7FED62F CD5598912FA320FA4721A8C5C46224DC3E9017B377C4A652AC8E9E4EF01A5A4F 1F6CEA8CDE6BD24A4B51DFCCEA4F8ABF2EC9B61E6D8EFCE9F012FA4F328D956C 6EE3EA9F63653566B625D1FA31A06A0D5F98E8B6A5707F06447C5AB8835776EA D92A7A531F9F859ADC9A9C282D4D17443DDDCDED3FF70BFBB8F2DCE919362D7C 13C246BF4D760924FA903589772F86586B67452B1358F39C1A2CA44313A332AC 464B991AA0407A06B6D1E1BEAE3F671EA9A568A7B7A84BE3157C807BA7E09A32 C34C51DEF910722AE6341571CBA56A6333A03AD2291F61DDCA853958AF4EB6E6 F578A85E4F1EB46225FF3C94BCEF056799CD2C97020F280B26129A323C63BBC4 6339493690BD06815760E35EFD302F9BCBE788ADD8A6E30B8BBAD46831721C23 429AFCBED83ECFD197ED86169FB17EAE25AEBFF0D19FDB3870723A2D5BCFC3D5 F549D6D5E5AA601108B6474D019BE979C90884557B4A0201F29DFA2A4C7DF76E 1A171C9CF7070A3A72D0B9D4C1F49E067E2115EE4D4427A176D98B26D9E62375 678B3D2AE714BA45FA5875A6728996A884E97A849613585D2DBA39322F995169 24CA106C6DAC47FDA4AC2C2818182CA87626FEC6A1C264181753F7B0F20C34B3 4FF64EB12694C6C22B362E94AF71FA63E021E507727B6FADA7743DF47B070078 EF11F845C02A91DE4DE13C80A95D6C09AE8B767BB3FA6AAE059D0F87639008E4 1347D4DC3F59A83701DD078026AF40BC1769D22AF882C17F00DACDA9C2BC011D 699A18FEAF8E6847D7C8490FEC287FC0F1CD8B3521B84DFD8D117135529E0D20 53FDDCD038E73160064576C7F0E9AB580B24425813D6A55EE62D1166C0678873 50E264DD49B94E603838861016374BE76004E1DC34FCD6D6428FBB1F40A278D4 3FAB9753040E039498487289FC862E922856B789A703C7A6734C9AFE90E96AD1 D4C8DAE690049977E8894B5E73B849F269114EBD85E0A8BFC643C260F3922AC0 AFD1A5C81917AF24C43E13FE25DFD85114DEB9D1A892CB212271819EB71D8444 2B5F38F6FF1B3710B7974FA43599F2A506DB4FA4C93603DAFD1604805B9D883E 27F713206EC6E57E002191FB9A54FFF2C10BF8A7A9FDFA1166CB85C00EC02D47 F1A8CC2125515E3863E0ED986ABB196EF07BE85F9EC6E8EB69D5D5DF6A9986DE 10E70674DD4E1ECAC55E5795962B008CC8AF19A0276B8AFE90317DE7E724640A 21CA7F625B7C571A2D36C0A5BCF0F9E3AFFD60AA6C7EA619158761911BAD66E2 3AE24BAC77EA1779414D9E49EF6548A0DE1AAAC658032B6C8D6FF77B1DF27549 263CC3928AC6FCDFC14C2513E1190DB4CB7A72B49756D43BBCA18B7DC2C2A7C9 C7839E87577EBAAF07CBC7DC4585F21E59A7A87C85C5DB8B46 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMBX12 %!PS-AdobeFont-1.1: CMBX12 1.0 %%CreationDate: 1991 Aug 20 16:34:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMBX12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMBX12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-53 -251 1139 750}readonly def /UniqueID 5000769 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712 B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99 AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26 7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF 20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390 B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D 68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809 D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E 26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26 77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299 BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8 30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5 148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7B00AD58FAF645 1297991B5D01701E82228D0313FC7C66B263BC79ACDDF9AAC48A3CBF42B96E38 583E1D059953076D68148DC8B6C9527B3A74CE7DEF788A11531F44120BDF0F61 0B2F3ED94EEBCDE4ACD23834C242AA4314B9EF98E4BE72DB76EBDD0A028CEA9D B4C38C1F2D24B8FDE686832FE96204552C820E45B6BAF0C3308742AE2BFDE813 E71A29FD148B9DBEFCB126CDF69A9ED16C7283627C9417F1B9052EE84690109C 8BCB4D343B46283E7049D070D1465855099C00E5B4267AC33B59BD9D96EB52D7 4D56707AC0E2D398936E2554EF5AB75D924943AEA64A1D4770DC26C13B4DC1D5 98867AD7EF307DDF7943FB04161C3D002E0D50DFCA8ED106E8A3DE5A8846015A BC40792C0B2A08EB3B58E8DB9592C79539010B3A4CFF5D08A6A49BC231C35F0B 7D4169FC6FE148DD423A1D8097F2B53386B70F72E546B2EDF79EDB9DF6DDCD89 19254A73CAFCCF8094179CCD5770C21FB7408445CB2ABAA3F970BC020422035A CA52B82CD7EE65589D2602703F148789C9BDF34DFA53CBF53E7F44C95DE6361C 39F9E7B14824393BAE6089A8B5E8D711466514F2BFC69FF3C42DA7C0633834D7 08A0D4962376C85628E935FCB23956E3EDAC7DE61DF88F929763A4901B0F9B82 4C11CC50E413BCF500A456D088D0058FD8B4B349A399591E1BDF87E9C3E8203C 94BDB6EE7E4DAEDF1AE12A9F874171DDD9B8FF0DA0B39D53650B7801CFBB3BC7 8B67E2F6B3B2B321A9496BBE3524F2EEEB408EC5A61CF828ABD484707489B326 775D99A55B27664BF768B834B2AD1B03DFB4443B0A09182EF74F10D2C469498B 44E18E0E04BA2FF82FE9F27D8C7472515D83D2598A1E812FC67C1EDD807974C7 522DE2F8B40E5F2FEE63E0727A9D65716A431CDFC09A0697A413C83F9D48A455 3C6019C4EDB071E527D8D36C25DFA26317F3D3DF33C1399C77938994AA504FFA E6EBB446FA8957BF0870F0300A2CF0AC36E6FC0419C3C333993861A1B6D244A2 AA10A71AE6C7FFC074E24680867A7A07074FEAF182D02B7A7A60DC3A4DDEC3EC E8965A4B2AB6714A4B4752CCA1DAE985139637994A8F95C3AE54007249D743BB A199EB7B4C917D928D49ABC0A17F37E80E326CB7EC933405D966FA9A3266ACF4 1C6CA99A0934D05BEF782367B4D588648539666AF3D5695FE6BAD4A67940FCA5 30FCDD9145909F62DDA7867EC13EF8030FA4A899927CFDB47F2301FF6344613C B38B94F576E744CBF1C58C0B19F12947850B7BFAD548C4BFE46C4BDB488B468E 18EC9E586FEDA860A5624EF5BE7EC13CFC3FD41EF95E8C625EAC712D80FBF6CF 03523BEAF43D27D3493DAF07D02D6D2CF62FC65CDBC90B86F934B907FED2D9E4 E034625502FD75DE0A1EE7AEBF791F534A63B86A4C984F28A5A844A40EA1E076 83460BE1FA325C3FA52535579ECD421E32D5757D4259816461647D41996C772A 09CCF91C58E38713CA49D7318AA2BCDDA263B7F0505B31BF62A17BD25D315955 F3700824D9D81E8A7A360050FCDC9910B75EBBDB30F6C610E8761D47B6ADBF84 7F16033B19FB49B1E0DAE58C78ED7F6F809932A3650EF81091694C9308B8A22B 6A53218B3995E69C6161DF69C83B56D2FFEB0CA7976FC59CCF467AF88576CC7D 07D715D321EA27F4A519C8C2C960E79C581DE16B670A116A3D2246EBE84A1809 A031A67A4D8AB834F4D71B318902AD84F0C15109C884DFFA3F586B799EC886F6 BF212745AB5F1E8C0DA19F128AD906367C88219472680E952BB347881BF4C375 E28FAFF06198D81FD1C9914162CD10765384A23C8A1573EB9352A3704EB8C354 4768C4D66B10F63C974219796A3721FBB2CE10448318D6DC36A0E9BD92E462DA AFB7527229509F6A971AB0EF8DE00E7009F782FE07EB00A8A099091F90C4B7DE 1D58DB8A60870656DC8C1CC69B96A2CE93AF604DDBC79ACA44CDB919329F7EF4 80C683C42F7BE957E5EA92B083D72B57AE1A7F2C1BC700FA948FE3DE1B698331 4FA4E20AA5324905DF543524655824BC7C107F7387812F92CD38CEB68AB6E364 4BC988395D02EDD24FA817115DBDED578088D6A53B336C5FC37E4F3B5CE0ECF6 06FE1F113F30C0690C7269CC409D076EBAB8F43DC839375A30E30308D4859FDD 50062494619363F7534C22C7FC5C111876AA68D92616476BA36128D0F62E7906 64BF0852BEE61A8CAC732255FBB78FD50880EDB2CCE9635164C37132B62E42A0 1F6A5F00D59D89320B8A342551C81F2B95D4B9AF0E0CE3670C28F64394663334 809A27E5141FFFC796BCD4E551C2541E3C0AF46D727FBC5A8BA3B2EB60B05A30 982AD90B14AE3299D253A374E0D6BBC844EE43FD6A699BC4D54AC7E1AE0CB292 D3CC121B7EF64B00858168C2EF24AFA7467C40F0082CC2C6B3BB3B2E2D44BD3E 5B5B268246089620E8C98CC9857E9127E8DD38E22D036E6609D0B577C5DF1C53 0340756A6166874AA971A5E3B130AC8B578F652F0627443B97F12D6E864056A6 9FDF3B47D71ED66398CD80362F5FAEA6EAE3A948005591436FEF43D324722878 E5005EA5D928C7A0998F67319D8ED474E1C1373CA5FDA4BAB00AAF7D7CC48BFD BB0CD02798EF18D6E4230311DD29484EB8AC82716977F9AF408A3CA2F17D3497 761F385156A6A10892A69B302D6AB0BBB5A91B84CD78BD4B07CB0AAB5443A1AC 767756D174E7ED217A7CBC8AE57FE39E54FE330525631F113FA5B0170AE9E2A5 E12C33143895E14350AC24DE6F165120B5A930A6DB2B0BD4415D6EBBB9C73E16 4B94F1995D2C615940B23D32C90CBF1838815D2923BA30BE36002AFEB324D397 BA802ED8DC2C3D2FEC90868F960560FF0165B420248721CDE6857224D7576AA5 513252BFFF6BA9C5AAB78F6FD6F3FC7762A3E032161FB9117FA2BA5677843859 3BE3D17948A8B5998B591F47CD8234CF3A464343699BAB5DEF03D506720121A2 9AA1070038A9181B63060B21143211F1754F56C4A0B3B9E64C8467A6481EE3C0 E4F5C97C5FE59C6CE72375ED5D230CD6D2FC182C261FC095891359129BE165FE 43E74861 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (thesis.dvi) @start /Fa 205[35 50[{ TeXf7b6d320Encoding ReEncodeFont }1 66.4176 /CMR8 rf /Fb 214[38 38 40[{ TeXf7b6d320Encoding ReEncodeFont }2 99.6264 /CMR12 rf /Fc 205[66 31[77 17[77{ TeXbbad153fEncoding ReEncodeFont }3 99.6264 /CMSY10 rf /Fd 171[84 66 2[79 1[87 105 3[45 3[79 1[84 1[87 65[{ TeX74afc74cEncoding ReEncodeFont }9 119.552 /CMTI12 rf /Fe 143[39 17[39 9[39 84[{ TeX09fbbfacEncoding ReEncodeFont }3 74.7198 /CMTT9 rf /Ff 148[33 107[{ TeXaae443f0Encoding ReEncodeFont }1 49.8132 /CMMI6 rf /Fg 134[37 35 1[35 41 25 31 32 1[39 39 43 63 20 2[24 1[35 1[35 39 35 35 39 12[55 43 2[52 1[57 69 3[30 3[52 1[55 1[57 19[27 45[{ TeX74afc74cEncoding ReEncodeFont }29 74.7198 /CMTI9 rf /Fh 139[35 5[58 2[51 107[{ TeXaae443f0Encoding ReEncodeFont }3 99.6264 /CMMI12 rf /Fi 177[58 78[{ TeXf7b6d320Encoding ReEncodeFont }1 58.1154 /CMBX7 rf /Fj 191[83 63[83{}2 83.022 /LINEW10 rf /Fk 130[44 1[44 1[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 1[44 44 44 44 44 44 44 44 44 1[44 44 44 1[44 1[44 44 44 44 1[44 1[44 1[44 44 2[44 2[44 3[44 44 44 44 44 2[44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 6[44 33[{ TeX09fbbfacEncoding ReEncodeFont }69 83.022 /CMTT10 rf /Fl 134[47 45 65 45 52 32 40 41 45 50 50 55 80 25 45 1[30 50 45 30 45 50 45 45 50 9[97 72 72 70 55 71 75 66 75 72 87 61 2[38 72 1[64 66 1[70 69 72 8[50 50 50 50 50 50 50 50 2[30 35 30[86 1[55 12[{ TeX74afc74cEncoding ReEncodeFont }55 99.6264 /CMTI12 rf /Fm 203[30 30 30 30 30 48[{ TeXf7b6d320Encoding ReEncodeFont }5 49.8132 /CMR6 rf /Fn 167[120 6[78 88 53[62 26[{}4 83.022 /CMEX10 rf /Fo 135[44 55 37 7[46 9[40 33 33 41 9[73 3[47 83[{ TeXaae443f0Encoding ReEncodeFont }10 74.7198 /CMMI9 rf /Fp 161[51 36[43 43 22[77 31[21 60{ TeXbbad153fEncoding ReEncodeFont }6 74.7198 /CMSY9 rf /Fq 172[72 83[{ TeXaae443f0Encoding ReEncodeFont }1 119.552 /CMMI12 rf /Fr 254[33 93{ TeXbbad153fEncoding ReEncodeFont }2 119.552 /CMSY10 rf /Fs 192[83 17[83 17[83 27[{}3 83.022 /LINE10 rf /Ft 207[18 47[45{ TeXbbad153fEncoding ReEncodeFont }2 41.511 /CMSY5 rf /Fu 205[62 50[{}1 83.022 /LASY10 rf /Fv 134[51 4[49 38 50 2[53 51 62 43 2[25 51 1[44 46 2[48 51 12[65 3[62 3[57 7[69 65 20[27 46[{ TeX0ef0afcaEncoding ReEncodeFont } 20 83.022 /CMCSC10 rf /Fw 149[20 2[34 34 47[0 3[45 1[19 27[52 11[52 4[34 2[52{ TeXbbad153fEncoding ReEncodeFont }10 58.1154 /CMSY7 rf /Fx 135[33 42 4[28 3[37 1[20 1[24 18[53 4[43 82[{ TeXaae443f0Encoding ReEncodeFont }8 41.511 /CMMI5 rf /Fy 205[28 28 28 4[43 43[{ TeX0ef0afcaEncoding ReEncodeFont } 4 41.511 /CMR5 rf /Fz 198[103 103 103 103 103 103 103 103 103 49[{ TeXf7b6d320Encoding ReEncodeFont }9 206.559 /CMR10 rf /FA 133[32 34 38 48 33 39 25 31 31 1[34 33 41 59 21 35 27 23 39 1[32 31 35 30 29 36 8[54 62 39 1[39 41 50 6[56 1[29 3[49 54 48 50 5[52 20 33[39 12[38 12[{ TeXaae443f0Encoding ReEncodeFont }40 58.1154 /CMMI7 rf /FB 144[33 1[55 6[21 30 37 38[51 3[33 33 33 33 33 33 33 33 33 33 4[51 1[26 26 40[{ TeXf7b6d320Encoding ReEncodeFont }19 58.1154 /CMR7 rf /FC 133[39 41 47 59 40 48 30 39 37 37 42 40 50 73 25 43 34 29 48 40 41 39 43 36 36 44 7[48 69 78 48 57 49 51 63 66 53 63 67 81 57 2[36 69 65 53 61 69 59 63 62 2[65 42 65 23 23 24[52 4[36 47 43 47 3[48 5[34 37 43 47 53 11[{ TeXaae443f0Encoding ReEncodeFont }65 83.022 /CMMI10 rf /FD 143[69 1[42 3[23 32 32 42 42 37 37 4[55 55 1[55 55 3[82 4[70 2[66 13[66 1[65 3[42 55 46 46 1[0 3[55 5[83 2[83 83 6[83 83 1[65 2[65 65 4[65 65 1[65 65 1[42 2[65 2[65 65 5[65 23 65{ TeXbbad153fEncoding ReEncodeFont }43 83.022 /CMSY10 rf /FE 148[100 71[299 299 299 299 4[232 232 232 232 24[{}9 83.022 /LCIRCLE10 rf /FF 133[34 41 41 55 41 43 30 30 30 41 43 38 43 64 21 41 23 21 43 38 23 34 43 34 43 38 21 2[21 1[21 1[58 58 79 1[58 55 43 57 1[52 60 58 70 48 2[28 1[60 50 52 59 55 54 58 3[60 1[21 21 38 38 38 38 38 38 38 38 38 38 38 21 26 21 2[30 30 21 16[38 9[43 1[55 10[{ TeXf7b6d320Encoding ReEncodeFont }72 74.7198 /CMR9 rf /FG 132[42 34 40 39 55 38 45 28 34 35 38 42 42 47 68 21 38 25 25 42 38 25 38 42 38 38 42 7[62 62 83 62 62 59 47 61 64 56 64 62 74 52 64 44 32 62 64 54 56 63 59 58 62 5[25 25 42 42 42 42 42 42 42 42 42 42 42 25 30 25 2[34 34 25 5[25 18[73 49 47 51 11[{ TeX74afc74cEncoding ReEncodeFont }76 83.022 /CMTI10 rf /FH 133[42 50 50 69 50 53 37 38 39 50 53 48 53 80 27 50 1[27 53 48 29 44 53 42 53 46 7[72 1[99 72 73 66 53 72 1[65 72 75 91 57 2[36 75 75 60 63 73 69 68 72 6[27 48 48 48 48 48 48 48 48 48 48 1[27 32 3[37 37 27[53 12[{ TeXf7b6d320Encoding ReEncodeFont }62 83.022 /CMBX10 rf /FI 134[83 83 115 83 88 61 62 61 1[88 79 88 133 43 83 1[43 88 79 47 70 88 70 88 79 9[164 119 119 115 88 2[108 124 1[146 99 2[56 119 1[104 108 122 115 113 119 18[43 52 3[61 61 27[86 12[{ TeXf7b6d320Encoding ReEncodeFont }45 172.188 /CMR17 rf /FJ 138[62 1[44 46 1[62 56 62 93 4[62 2[51 62 2[54 12[78 9[58 74[{ TeXf7b6d320Encoding ReEncodeFont }13 99.6264 /CMBX12 rf /FK 128[42 42 1[83 42 37 44 44 60 44 46 32 33 33 44 46 42 46 69 23 44 25 23 46 42 25 37 46 37 46 42 23 1[42 23 42 23 51 62 62 85 62 62 60 46 61 65 57 65 62 76 52 65 43 30 62 65 54 57 63 60 59 62 65 39 1[65 1[23 23 42 42 42 42 42 42 42 42 42 42 42 23 28 23 65 42 32 32 23 65 2[69 42 11[42 2[42 4[69 46 46 48 60 3[60 3[65 69 1[{ TeXf7b6d320Encoding ReEncodeFont }98 83.022 /CMR10 rf /FL 133[52 62 62 85 62 65 46 46 46 1[65 59 65 98 33 62 1[33 65 59 36 52 65 52 65 59 7[88 1[120 1[88 85 65 86 1[80 91 1[107 73 2[42 1[92 76 80 89 85 83 88 1[55 1[91 3[59 59 59 59 59 59 59 59 59 2[33 39 3[46 46 27[65 68 11[{ TeXf7b6d320Encoding ReEncodeFont }59 119.552 /CMR12 rf /FM 134[70 70 3[51 52 51 1[73 66 73 111 36 2[36 73 66 40 58 73 58 1[66 29[96 1[99 65[{ TeXf7b6d320Encoding ReEncodeFont }20 143.462 /CMR17 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 end %%EndSetup %%Page: 0 1 TeXDict begin 0 0 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 821 1506 a FM(Asp)t(ects)43 b(of)g(Algorithms)f(and)h (Complexit)l(y)p eop end %%Page: 2 2 TeXDict begin 2 1 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v eop end %%Page: 3 3 TeXDict begin 3 2 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 821 1514 a FM(Asp)t(ects)43 b(of)g(Algorithms)f(and)h (Complexit)l(y)1321 3315 y FL(Academisc)m(h)38 b(Pro)s(efsc)m(hrift) 1148 3514 y FK(ter)27 b(v)n(erkrijging)f(v)-5 b(an)27 b(de)h(graad)e(v)-5 b(an)27 b(do)r(ctor)g(aan)1123 3614 y(de)h(Univ)n(ersiteit)f(v)-5 b(an)28 b(Amsterdam)f(op)h(gezag)e(v)-5 b(an)1066 3714 y(de)27 b(Rector)g(Magni\014cus)g(prof.)g(dr)h(P)-7 b(.W.M.)28 b(de)f(Meijer)897 3813 y(in)h(het)g(op)r(en)n(baar)e(te)i(v) n(erdedigen)e(in)i(de)g(Aula)g(der)f(Univ)n(ersiteit)976 3913 y(\(Oude)h(Lutherse)f(Kerk,)g(ingang)f(Singel)i(411,)e(ho)r(ek)h (Spui\),)1124 4012 y(op)g(donderdag)f(16)h(decem)n(b)r(er)g(1993)f(te)i (13.30)d(uur)1858 4212 y(do)r(or)1254 4336 y FJ(Johannes)39 b(Theo)s(dorus)f(T)-9 b(romp)1579 4461 y FK(geb)r(oren)27 b(te)h(Alkmaar)p eop end %%Page: 4 4 TeXDict begin 4 3 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 506 a FK(Promotor:)25 b(prof.)j(dr.)f(ir.)g(P)-7 b(.M.B.)28 b(Vit\023)-42 b(an)n(yi)523 805 y(Promotie-commissie:)523 905 y(prof.)27 b(dr.)h(K.)f(Apt)523 1005 y(dr.)g(P)-7 b(.)28 b(v)-5 b(an)27 b(Emde)h(Boas)523 1104 y(prof.)f(dr.)h(J.)f(v)-5 b(an)28 b(Leeu)n(w)n(en)523 1204 y(dr.)f(G.)h(T)-7 b(el)523 1303 y(dr.)27 b(L.)h(T)-7 b(oren)n(vliet)523 1602 y(F)g(aculteit)28 b(Wiskunde)g(en)g(Informatica)523 1702 y(Univ)n(ersiteit)f(v)-5 b(an)28 b(Amsterdam)523 4113 y(P)n(artial)c(supp)r(ort)i(for)f(the)h (researc)n(h)e(describ)r(ed)i(in)g(this)g(thesis)g(w)n(as)f(receiv)n (ed)g(as)g(a)g(CWI)523 4212 y(fello)n(wship)i(\(oio)g(plaats\),)g(and)g (from)h(the)f(Dutc)n(h)h(organization)e(for)h(scien)n(ti\014c)g (researc)n(h)523 4312 y(NW)n(O)h(under)f(NFI)h(pro)5 b(ject)27 b(Aladdin,)h(pro)5 b(ject)27 b(n)n(um)n(b)r(er)g(NF)h (62-376.)p eop end %%Page: 5 5 TeXDict begin 5 4 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 2852 4173 a FK(to)27 b(m)n(y)h(paren)n(ts)p eop end %%Page: 6 6 TeXDict begin 6 5 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Ac)l(kno)l(wledgemen)l(ts)523 2516 y FK(The)28 b(follo)n(wing)e(publications)i(form)f(the)h(basis)f (of)g(the)h(c)n(hapters)f(of)g(this)h(thesis.)523 2698 y FH(Chapter)33 b(2:)40 b FK(A.)28 b(Blum,)g(T.)g(Jiang,)f(M.)h(Li,)g (J.)f(T)-7 b(romp,)28 b(M.)g(Y)-7 b(annak)i(akis,)26 b FG(Line)l(ar)31 b(Ap-)731 2798 y(pr)l(oximation)23 b(of)g(Shortest)g(Sup)l(erstrings)p FK(,)c(Pro)r(c.)f(of)i(the)g(23rd)e (ann)n(ual)h(A)n(CM)h(Sym-)731 2897 y(p)r(osiom)i(on)g(Theory)f(of)h (Computing)h(\(STOC91\),)f(New)g(Orleans,)f(Ma)n(y)h(1991,)e(pp.)731 2997 y(328{336.)k FG(Journal)30 b(of)g(the)g(A)n(CM)p FK(,)e(to)g(app)r(ear.)523 3163 y FH(Chapter)33 b(4:)40 b FK(G.)21 b(Kissin,)g(J.)f(T)-7 b(romp,)20 b FG(The)25 b(ener)l(gy)f(c)l(omplexity)g(of)g(thr)l(eshold)h(and)f(other)731 3263 y(functions)p FK(,)j(CWI)h(T)-7 b(ec)n(hnical)27 b(Rep)r(ort)h(CS-R9101,)d(Jan)n(uary)h(1991.)523 3429 y FH(Chapter)33 b(5:)40 b FK(J.)e(T)-7 b(romp,)37 b(P)-7 b(.)37 b(v)-5 b(an)37 b(Emde-Boas,)f FG(Asso)l(ciative)k(Stor)l(age)f (Mo)l(di\014c)l(ation)731 3528 y(Machines)p FK(,)26 b(in:)f (\\Complexit)n(y)e(Theory",)g(Am)n(b)r(os-Spies,)h(Homer,)g(and)g(Sc) 3115 3507 y(\177)3113 3528 y(honing)731 3628 y(\(editors\),)j(Cam)n (bridge)f(Univ)n(ersit)n(y)h(Press.)523 3794 y FH(Chapter)33 b(6:)40 b FK(J.)e(T)-7 b(romp,)37 b FG(How)i(to)g(Construct)f(an)h(A)n (tomic)g(V)-6 b(ariable)p FK(,)39 b(Pro)r(c.)e(of)g(the)731 3894 y(3rd)24 b(In)n(ternational)g(W)-7 b(orkshop)24 b(on)h(Distributed)h(Algorithms,)f FG(L)l(e)l(ctur)l(e)h(Notes)i(in)731 3993 y(Computer)i(Scienc)l(e)g(392)p FK(,)f(Springer-V)-7 b(erlag,)25 b(pp.)j(292{302,)c(1989.)523 4159 y FH(Chapter)33 b(7:)40 b FK(M.)22 b(Li,)f(J.)g(T)-7 b(romp,)21 b(P)-7 b(.M.B.)21 b(Vit\023)-42 b(an)n(yi,)21 b FG(How)j(to)g(Shar)l(e)g (Concurr)l(ent)g(Wait-)731 4259 y(F)-6 b(r)l(e)l(e)29 b(V)-6 b(ariables)p FK(,)29 b(\(under)f(revision)e(for)h FG(Journal)j(of)g(the)g(A)n(CM)p FK(\).)523 4425 y FH(Chapter)j(8:)40 b FK(J.)26 b(T)-7 b(romp,)25 b(J-H.)h(Ho)r(epman,)g FG(Binary)j (Snapshots)p FK(,)d(Pro)r(c.)f(of)h(the)g(5th)g(In-)731 4525 y(ternational)d(W)-7 b(orkshop)23 b(on)h(Distributed)h (Algorithms,)e FG(L)l(e)l(ctur)l(e)j(Notes)h(in)f(Com-)731 4624 y(puter)j(Scienc)l(e)h(725)p FK(,)f(Springer-V)-7 b(erlag,)25 b(pp.)j(18{25)d(1993.)523 4790 y FH(Chapter)33 b(9:)40 b FK(J.)32 b(T)-7 b(romp,)32 b FG(On)h(Up)l(date-L)l(ast)h (Schemes)p FK(,)f(P)n(arallel)d(Pro)r(cessing)g(Letters)731 4890 y(3\(1\),)d(pp.)h(25{28,)d(1993.)606 5073 y(The)i(co-authors)e(of) i(the)g(ab)r(o)n(v)n(e)e(pap)r(ers)h(ha)n(v)n(e)g(greatly)f(con)n (tributed)i(to)g(the)g(thesis.)g(I)523 5172 y(w)n(ould)d(lik)n(e)g(to)h (thank)f(all)h(of)f(them)i(for)e(their)g(inspiring)g(co)r(op)r (eration,)g(and)g(the)h(referees)523 5272 y(of)j(the)g(journal)e (publications)i(for)f(their)g(helpful)i(commen)n(ts.)p eop end %%Page: 7 7 TeXDict begin 7 6 bop 3274 299 a FF(vii)606 506 y FK(My)27 b(greatest)f(debt)i(is)f(to)g(m)n(y)g(promotor)e(P)n(aul)h(Vit\023)-42 b(an)n(yi,)27 b(whose)g(guidance)f(and)h(sup-)523 606 y(p)r(ort)k(ha)n(v)n(e)f(b)r(een)h(most)g(stim)n(ulating.)g(In)g(Ev)-5 b(angelos)30 b(Kranakis)f(I)i(found)g(an)g(excellen)n(t)523 706 y(colleague)22 b(and)h(tutor.)g(I)h(thank)f(Ming)g(Li)g(and)g(Amos) g(Israeli)g(for)f(giving)h(me)g(the)h(opp)r(or-)523 805 y(tunit)n(y)i(to)e(co)r(op)r(erate)g(with)i(them)f(in)h(W)-7 b(aterlo)r(o)24 b(and)h(Haifa)f(resp)r(ectiv)n(ely)-7 b(,)25 b(and)f(making)523 905 y(those)j(sta)n(ys)g(so)g(enjo)n(y)n (able)f(b)r(oth)i(in)g(w)n(ork)e(and)i(pla)n(y)-7 b(.)606 1005 y(My)21 b(sta)n(y)f(at)h(CWI)h(has)e(b)r(een)i(enliv)n(ened)e(b)n (y)h(n)n(umerous)f(guests,)h(eac)n(h)f(of)h(whic)n(h)g(added)523 1104 y(a)k(di\013eren)n(t)g(facet)g(to)g(m)n(y)g(scien)n(ti\014c)g(w)n (orld)f(view:)h(Dann)n(y)g(Krizanc,)e(Gloria)h(Kissin,)h(P)n(e-)523 1204 y(ter)33 b(Clote,)g(Hyun)n(y)n(ong)g(Shin,)h(Amnon)f(Shaham,)g (Shlomo)g(Moran,)g(Dan)n(y)g(Breslauer,)523 1303 y(Jo)r(erg)27 b(Keller,)h(P)n(eter)f(Gacs,)h(Vladimir)g(Usp)r(ensky)-7 b(,)28 b(Philippas)g(Tsigas,)f(Marina)h(P)n(apa-)523 1403 y(trian)n(ta\014lou,)f(and)g(Alessandro)f(P)n(anconesi.)606 1503 y(Our)k(departmen)n(t)g(secretary)e(Marja)i(Hegt)g(has)g(b)r(een)g (quite)h(toleran)n(t)e(of)i(m)n(y)f(some-)523 1602 y(times)e(clumsy)f (b)r(eha)n(viour)g(in)h(administrativ)n(e)e(matters.)606 1702 y(In)20 b(addition,)f(I)h(w)n(an)n(t)f(to)h(thank)f(all)h(the)g (follo)n(wing)e(p)r(eople)i(for)f(sharing)f(their)i(time)g(and)523 1802 y(ideas)25 b(with)h(me:)f(Victor)g(Allis,)h(Krzysztof)e(Apt,)j (Andries)e(Brou)n(w)n(er,)e(Harry)h(Buhrman,)523 1901 y(Da)n(vid)e(Chaum,)g(Matthijs)h(Coster,)e(Shlomi)h(Dolev,)g(Herman)f (Ehren)n(burg,)g(Willem)h(Jan)523 2001 y(F)-7 b(okkink,)34 b(P)n(eter)f(Grun)n(w)n(ald,)g(P)n(etra)f(v)-5 b(an)34 b(Haaften,)g(Sibsank)-5 b(ar)33 b(Haldar,)h(Eugene)f(v)-5 b(an)523 2100 y(Heijst,)29 b(T)-7 b(ed)28 b(Herman,)g(Ra)n(y)f(Hirsc)n (hfeld,)h(Henk)g(de)g(Koning,)f(Karst)g(Ko)n(ymans,)g(Pieter)523 2200 y(v)-5 b(an)25 b(Langen,)f(Jan)g(v)-5 b(an)25 b(Leeu)n(w)n(en,)f (Jan)g(v)-5 b(an)25 b(de)g(Lune,)g(Jero)r(en)e(v)-5 b(an)25 b(Maanen,)f(Lam)n(b)r(ert)523 2300 y(Meertens,)31 b(Ra)n(ymond)g(Mic)n (hiels,)h(Eric)f(Ristad,)g(Marius)g(Sc)n(hilder,)h(Annek)n(e)f(Sc)n(ho) r(one,)523 2399 y(Lex)23 b(Sc)n(hrijv)n(er,)f(Jan)g(v)-5 b(an)23 b(der)g(Steen,)g(Gerard)f(T)-7 b(el,)24 b(Leen)f(T)-7 b(oren)n(vliet,)22 b(K.)h(Vidy)n(asank)-5 b(ar,)523 2499 y(and)27 b(F)-7 b(reek)28 b(Wiedijk.)606 2599 y(The)21 b(co)n(v)n(er)d(illustration)i(is)h(a)f(graphical)f(depiction)h(of)h (the)g(game-theoretical)d(v)-5 b(alue)21 b(of)523 2698 y(all)29 b(up-to-4-ply)g(p)r(ositions)g(in)h(the)g(game)f(of)g (connect-4.)g(The)g(largest)g(disc)g(represen)n(ts)523 2798 y(the)36 b(\(empt)n(y\))f(initial)h(b)r(oard,)e(and)h(is)g (colored)f(white)h(to)g(indicate)g(a)g(1st)g(pla)n(y)n(er)e(win.)523 2897 y(Dra)n(wn)c(p)r(ositions)h(are)f(colored)f(ligh)n(t-green,)g(and) i(lost)g(\(to)g(the)g(1st)g(pla)n(y)n(er\))e(p)r(ositions)523 2997 y(green.)606 3097 y(The)g(sev)n(en)f(sub-discs)f(of)i(all)f(but)i (the)f(smallest)f(discs)523 3196 y(represen)n(t)f(p)r(ositions)i (resulting)f(from)g(a)g(mo)n(v)n(e)f(in)i(one)523 3296 y(of)g(the)g(sev)n(en)e(columns)i(of)f(the)h(b)r(oard,)f(as)g(follo)n (ws:)2492 3298 y FE("!)2492 2999 y(#)o( )2543 3147 y(k)2522 3173 y FK(1)2593 3060 y FE(k)2572 3087 y FK(2)2693 3060 y FE(k)2672 3087 y FK(3)2643 3147 y FE(k)2622 3173 y FK(4)2593 3233 y FE(k)2572 3260 y FK(5)2693 3233 y FE(k)2672 3260 y FK(6)2742 3147 y FE(k)2722 3173 y FK(7)p eop end %%Page: 8 8 TeXDict begin 8 7 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 541 a FI(Con)l(ten)l(ts)648 2599 y FH(Ac)m(kno)m(wledgemen)m(ts)1840 b(vi)648 2698 y FK(List)27 b(of)h(Figures)76 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) 166 b(1)523 2881 y FH(1)77 b(In)m(tro)s(duction)2136 b(2)648 2980 y FK(1.1)84 b(Algorithms)75 b(.)41 b(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)166 b(2)648 3080 y(1.2)84 b(Complexit)n(y)62 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)166 b(3)648 3180 y(1.3)84 b(T)-7 b(rade-o\013s)53 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)166 b(5)648 3279 y(1.4)84 b(Ov)n(erview)74 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)166 b(5)523 3462 y FH(2)77 b(Linear)32 b(Appro)m(ximation)g(of)f(Shortest)h (Sup)s(erstrings)688 b(8)648 3562 y FK(2.1)84 b(In)n(tro)r(duction)25 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)166 b(8)648 3661 y(2.2)84 b(Preliminaries)65 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)166 b(9)648 3761 y(2.3)84 b(A)27 b(4)18 b FD(\001)h FK(OPT)o(\()p FC(S)5 b FK(\))28 b(b)r(ound)g(for)f(a)g(mo)r(di\014ed)h (greedy)f(algorithm)36 b(.)41 b(.)h(.)g(.)f(.)h(.)125 b(13)648 3861 y(2.4)84 b(Impro)n(ving)26 b(to)h(3)18 b FD(\001)h FK(OPT)o(\()p FC(S)5 b FK(\))29 b(.)41 b(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(16)648 3960 y(2.5)84 b(GREED)n(Y)27 b(ac)n(hiev)n(es)f(linear)h (appro)n(ximation)43 b(.)e(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)125 b(17)648 4060 y(2.6)84 b(Whic)n(h)27 b(algorithm)g(is)g(the)h(b) r(est?)69 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)125 b(22)648 4159 y(2.7)84 b(Lo)n(w)n(er)25 b(b)r(ound)71 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(22)648 4259 y(2.8)84 b(Op)r(en)27 b(problems)57 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(24)648 4442 y FH(Bibliograph)m(y)2078 b(25)523 4624 y(3)77 b(On)31 b(Lab)m(yrin)m(th)j(Problems)d(and)h(Flo)s(o)s(d-Filling.)836 b(27)648 4724 y FK(3.1)84 b(In)n(tro)r(duction)25 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(27)839 4824 y(3.1.1)93 b(Prop)r(erties)26 b(and)i(Op)r(erations)e(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(27)839 4923 y(3.1.2)93 b(T)-7 b(erminology)84 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)125 b(28)648 5023 y(3.2)84 b(Depth)28 b(First)g(Filling)49 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(29)648 5122 y(3.3)84 b(Breadth)26 b(First)i(Filling)45 b(.)c(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(30)648 5222 y(3.4)84 b(The)27 b(price)g(of)h(disconnecting)38 b(.)k(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(30)648 5322 y(3.5)84 b(On)27 b(planar)f(em)n(b)r(eddings)46 b(.)c(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)125 b(31)p eop end %%Page: 9 9 TeXDict begin 9 8 bop 3296 299 a FF(ix)839 506 y FK(3.5.1)93 b(Exploring)26 b(the)i(lab)n(yrin)n(th)69 b(.)42 b(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(32)839 606 y(3.5.2)93 b(Finding)28 b(a)f(non-cutting)h(p)r(oin)n(t)40 b(.)i(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(32)839 706 y(3.5.3)93 b(T)-7 b(ermination)27 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(34)839 805 y(3.5.4)93 b(Impro)n(ving)26 b(Time)i(Complexit)n(y)85 b(.)41 b(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(34)648 905 y(3.6)84 b(The)27 b(constan)n(t)g(space)g(FF)-9 b(A)44 b(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)125 b(35)648 1005 y(3.7)84 b(Conclusion)e(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(36)648 1187 y FH(Bibliograph)m(y)2078 b(37)523 1370 y(4)77 b(The)32 b(Energy)f(Complexit)m(y)h(of)f(Threshold)h(and)g(other)g(functions.) 172 b(38)648 1469 y FK(4.1)84 b(The)27 b(setting)65 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(39)839 1569 y(4.1.1)93 b(Mo)r(del)28 b(Motiv)-5 b(ation)80 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)125 b(40)648 1669 y(4.2)84 b(W)-7 b(orst)27 b(case)f(upp)r(er)i(b)r(ounds)77 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(41)839 1768 y(4.2.1)93 b(Energy-E\016cien)n(t)26 b FC(k)s FK(-Threshold)g(Circuit)45 b(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)125 b(41)648 1868 y(4.3)84 b(Conclusions)49 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(45)648 2051 y FH(Bibliograph)m(y)2078 b(46)523 2233 y(5)77 b(Asso)s(ciativ)m (e)31 b(Storage)h(Mo)s(di\014cation)e(Mac)m(hines)818 b(48)648 2333 y FK(5.1)84 b(In)n(tro)r(duction)25 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(48)648 2433 y(5.2)84 b(The)27 b FG(SMM)42 b FK(and)27 b(the)h FG(ASMM)42 b FK(mo)r(dels)57 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(51)648 2532 y(5.3)84 b(An)28 b(illustration)f(of)g(the)h(p)r(o)n(w)n(er)f(of)g(asso)r (ciativit)n(y)57 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(54)648 2632 y(5.4)84 b FG(PSP)-6 b(A)n(CE)33 b FK(=)22 b FG(ASMM)5 b FD(\000)-9 b FK(\()p FG(N)14 b FK(\))p FG(PTIME)72 b FK(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)125 b(55)839 2731 y(5.4.1)93 b FG(QBF)35 b FD(2)23 b FG(ASMM)5 b FD(\000)-9 b FG(TIME)10 b FK(\()p FC(n)2024 2701 y FB(2)2062 2731 y FK(\))64 b(.)42 b(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(56)839 2831 y(5.4.2)93 b FG(ASMM)5 b FD(\000)-9 b FG(NTIME)10 b FK(\()p FC(t)p FK(\))24 b FD(\022)e FG(SP)-6 b(A)n(CE)10 b FK(\()p FC(t)2264 2801 y FB(2)2302 2831 y FK(\))82 b(.)42 b(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)125 b(60)648 2931 y(5.5)84 b(Conclusion)e(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(61)648 3113 y FH(Bibliograph)m(y)2078 b(63)523 3296 y(6)77 b(Ho)m(w)31 b(to)h(Construct)g(an)g(A)m(tomic)g(V)-8 b(ariable)1017 b(65)648 3396 y FK(6.1)84 b(In)n(tro)r(duction.)66 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(65)648 3495 y(6.2)84 b(Comparison)25 b(with)k(Related)e(W)-7 b(ork)37 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)125 b(66)648 3595 y(6.3)84 b(Preliminaries)65 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(67)839 3694 y(6.3.1)93 b(Making)27 b(Safe)h(Bits)f(Regular)54 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(69)648 3794 y(6.4)84 b(Problem)26 b(Statemen)n(t)34 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(69)648 3894 y(6.5)84 b(Optimal)27 b(Construction)g(of)g(A)n(tomic)h(Bits)e(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(69)839 3993 y(6.5.1)93 b(A)34 b(Lo)n(w)n(er)f(Bound)g(on)h(the)g(Num) n(b)r(er)g(of)g(Safe)g(Bits)g(needed)g(to)1104 4093 y(Construct)27 b(an)h(A)n(tomic)f(Bit)82 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(69)839 4193 y(6.5.2)93 b(The)28 b(Arc)n(hitecture)43 b(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(70)839 4292 y(6.5.3)93 b(The)28 b(Proto)r(cols)c(.)41 b(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(70)839 4392 y(6.5.4)93 b(Handshaking)66 b(.)41 b(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) 125 b(71)839 4491 y(6.5.5)93 b(Pro)r(of)27 b(of)g(Correctness)51 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)125 b(71)648 4591 y(6.6)84 b(The)27 b(4-trac)n(k)f(Proto)r (col)41 b(.)g(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(73)839 4691 y(6.6.1)93 b(Correctness)50 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(76)839 4790 y(6.6.2)93 b(Space)27 b(Complexit)n(y)78 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)125 b(77)648 4890 y(6.7)84 b(The)27 b(A)n(tomicit)n(y)h (Automaton)d(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(78)839 4990 y(6.7.1)93 b(Using)28 b(the)g(Automaton)f(for)g(V)-7 b(eri\014cation)27 b(of)h(a)f(giv)n(en)g(Run)37 b(.)42 b(.)125 b(80)839 5089 y(6.7.2)93 b(V)-7 b(erifying)28 b(the)g(A)n(tomic)f(Bit)h (Construction)39 b(.)i(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(80)839 5189 y(6.7.3)93 b(V)-7 b(erifying)28 b(the)g(Safe)f(Byte)h (Switc)n(h)f(Construction)83 b(.)41 b(.)h(.)g(.)f(.)h(.)125 b(81)648 5289 y(6.8)84 b(Correctness)25 b(of)j(Safe)f(Byte)h(Switc)n(h) g(Construction)45 b(.)c(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(84)p eop end %%Page: 10 10 TeXDict begin 10 9 bop 3317 299 a FF(x)648 506 y FK(6.9)84 b(Conclusions)49 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(85)648 689 y FH(Bibliograph)m(y)2078 b(86)523 872 y(7)77 b(Ho)m(w)31 b(to)h(Share)g(Concurren)m(t)h(W)-8 b(ait-F)g(ree)32 b(V)-8 b(ariables)675 b(88)648 971 y FK(7.1)84 b(In)n(tro)r(duction)25 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(88)839 1071 y(7.1.1)93 b(Informal)27 b(Problem)g(Statemen)n(t)h(and)f(Main)g (Result)c(.)41 b(.)h(.)g(.)f(.)h(.)125 b(88)839 1171 y(7.1.2)93 b(Comparison)26 b(with)i(Related)g(W)-7 b(ork.)71 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(89)839 1270 y(7.1.3)93 b(Multi-user)27 b(V)-7 b(ariable)27 b(Construction)44 b(.)d(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) 125 b(90)839 1370 y(7.1.4)93 b(The)28 b(T)-7 b(ag)27 b(F)-7 b(unction)77 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(91)648 1469 y(7.2)84 b(The)27 b(Basic)g(Un)n(b)r(ounded)h(Construction)76 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(92)648 1569 y(7.3)84 b(Solution)27 b(Metho)r(d)65 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(94)839 1669 y(7.3.1)93 b(Construction)27 b(1)61 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(94)839 1768 y(7.3.2)93 b(Notational)27 b(Con)n(v)n(en)n(tions)67 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)125 b(96)839 1868 y(7.3.3)93 b(Correctness)26 b(of)i(Construction)e (1)35 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) 125 b(97)648 1968 y(7.4)84 b(Bounding)27 b(the)h(coun)n(ters)43 b(.)f(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)83 b(100)839 2067 y(7.4.1)93 b(Old)28 b(tags)33 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(101)839 2167 y(7.4.2)93 b(Range)27 b(of)h(aliv)n(e)e(tags)39 b(.)j(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)83 b(102)839 2267 y(7.4.3)93 b(Bounds)27 b(on)h(p)r(erceiv)n(ed)f(shots)22 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(102)839 2366 y(7.4.4)93 b(Equiv)-5 b(alence)27 b(with)h(b)r(ounded)g(coun)n(ters)22 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(104)648 2466 y(7.5)h(Complexit)n(y)62 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)83 b(105)648 2565 y(7.6)h(Subproblems)77 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(105)648 2665 y(7.7)h(Conclusion)e(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)83 b(107)648 2848 y FH(Bibliograph)m(y)2030 b(109)523 3030 y(8)77 b(Binary)32 b(Snapshots)1832 b(112)648 3130 y FK(8.1)84 b(In)n(tro)r(duction)25 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)83 b(112)648 3230 y(8.2)h(The)27 b(Mo)r(del)84 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(113)648 3329 y(8.3)h(A)n(tomic)27 b(Snapshot)g(Memories)61 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)83 b(114)648 3429 y(8.4)h(The)27 b(Solution)74 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(114)839 3528 y(8.4.1)93 b(The)28 b(Arc)n(hitecture)43 b(.)e(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(115)839 3628 y(8.4.2)93 b(The)28 b(Proto)r(cols)c(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)83 b(115)648 3728 y(8.5)h(Pro)r(of)26 b(of)h(Correctness)59 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(116)648 3827 y(8.6)h(F)-7 b(uture)27 b(Researc)n(h)81 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(118)648 4010 y FH(Bibliograph)m(y)2030 b(119)523 4193 y(9)77 b(On)31 b(Up)s(date-Last)i(Sc)m(hemes)1507 b(121)648 4292 y FK(9.1)84 b(In)n(tro)r(duction)25 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)83 b(121)648 4392 y(9.2)h(Related)27 b(W)-7 b(ork)42 b(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(122)648 4491 y(9.3)h(Characterizing)25 b(Up)r(date-Last)i(sc)n(hemes)55 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(122)648 4591 y(9.4)h(F)-7 b(urther)27 b(W)-7 b(ork)46 b(.)c(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(123)648 4774 y FH(Bibliograph)m(y)2030 b(124)648 4956 y(Samen)m(v)-5 b(atting)32 b(\(Dutc)m(h\))1639 b(125)648 5139 y(Curriculum)31 b(Vitae)1827 b(127)p eop end %%Page: 1 11 TeXDict begin 1 10 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(List)52 b(of)g(Figures)648 2599 y FK(2.1)84 b(The)27 b(o)n(v)n(erlap)f(and)h(distance)g(graphs.)47 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) 125 b(12)648 2698 y(2.2)84 b(Strings)27 b(and)g(o)n(v)n(erlaps)64 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(13)648 2798 y(2.3)84 b(Culprits)27 b(and)h(w)n(eak)e(links)i(in)f(Greedy)g(merge)g(path.)63 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(19)648 2897 y(2.4)84 b(Left/middle)28 b(and)f(middle/righ)n(t)g(parts)g(with)h(w)n (eak)e(links.)56 b(.)41 b(.)h(.)g(.)f(.)h(.)125 b(20)648 3080 y(3.1)84 b(A)27 b(w)n(orst)g(case)g(example)g(region)f(for)h (breadth)g(\014rst)h(\014ll.)49 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(31)648 3180 y(3.2)84 b(Connectivit)n(y)27 b(tests)80 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(34)648 3362 y(4.1)84 b(Preferred)25 b(Sequen)n(tial)j(Circuit:)f(a)h(Finite)g(State)g(Mac)n (hine)61 b(.)41 b(.)h(.)g(.)f(.)h(.)125 b(41)648 3462 y(4.2)84 b(Bottom)27 b(La)n(y)n(er)e(of)j(an)f(Em)n(b)r(edding)h(of)f (Circuit)h FG(Cnt)2538 3474 y FA(k)2610 3462 y FK(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(43)648 3562 y(4.3)84 b(Middle/Upp)r(er)27 b(La)n(y)n(er)f(of)i(an)f(Em)n(b)r(edding)g(of)h (Circuit)f FG(Cnt)2782 3574 y FA(k)2868 3562 y FK(.)42 b(.)g(.)f(.)h(.)125 b(43)648 3744 y(5.1)84 b(storage)25 b(structure)i(for)g FD(9)p FC(x)1701 3756 y FB(0)1739 3744 y FD(8)p FC(x)1832 3756 y FB(1)1893 3744 y FK(:)c FC(x)1986 3756 y FB(0)2042 3744 y FD(^)c FC(x)2163 3756 y FB(1)2223 3744 y FK(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)125 b(56)648 3927 y(6.1)84 b(state)27 b(diagram)f(of)i (4-trac)n(k)d(construction)33 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)125 b(75)648 4027 y(6.2)84 b(the)28 b(general)e(atomicit)n(y)h(automaton)64 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(79)648 4126 y(6.3)84 b(the)28 b(atomic)f(bit)h(automaton)59 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)125 b(81)648 4226 y(6.4)84 b(state)27 b(diagram)f(of)i(4-trac)n(k)d(construction)i(with)h(safe)f(b)n(yte)h (switc)n(h)78 b(.)42 b(.)125 b(83)648 4408 y(7.1)84 b(Construction)26 b(0)69 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)125 b(93)648 4508 y(7.2)84 b(Construction)26 b(1)69 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)125 b(95)648 4608 y(7.3)84 b(Construction)26 b(3)69 b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(106)648 4707 y(7.4)h(Construction)26 b(4;)i(single)f(to)g(m)n(ulti-reader)78 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)83 b(108)p eop end %%Page: 2 12 TeXDict begin 2 11 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(1)523 806 y FI(In)l(tro)t(duction)523 2516 y FK(The)34 b(pap)r(ers)f(collected)g(in)h(subsequen)n(t)f(c)n (hapters)g(giv)n(e)f(a)h(fair)h(represen)n(tation)d(of)j(m)n(y)523 2615 y(researc)n(h)18 b(at)h(CWI)h(and)g(the)g(sev)n(eral)e(places)h(I) h(visited)f(abroad.)f(The)i(div)n(ersit)n(y)f(in)h(sub)5 b(ject)523 2715 y(matter)27 b(re\015ects)g(on)h(the)g(one)f(hand)g(the) h(m)n(ultitude)h(of)e(in)n(terests)g(I)h(lik)n(e)f(to)h(pursue)f(and) 523 2814 y(on)k(the)i(other)e(hand)g(the)i(failure)e(to)g(remain)h(fo)r (cussed)f(on)h(a)f(single)g(problem)g(area)f(in)523 2914 y(whic)n(h)e(to)f(mak)n(e)g(more)g(extensiv)n(e)g(explorations.)606 3014 y(With)k(suc)n(h)e(div)n(ersit)n(y)-7 b(,)28 b(a)i(title)g(as)f (general)f(as)h(\\Asp)r(ects)g(of)h(Algorithms)f(and)g(Com-)523 3113 y(plexit)n(y")40 b(seem)g(inevitable,)g(but)h(also)e(holds)h(a)g (promise)f(of)i(\014nding)f(the)h(links)f(and)523 3213 y(relations)25 b(that)i(connect)f(them.)h(T)-7 b(o)26 b(this)h(end,)g(let)g(us)f(consider)f(the)i(concepts)f(in)n(v)n(olv)n (ed)523 3313 y(in)i(some)f(more)g(detail.)523 3620 y FL(1.1)116 b(Algorithms)523 3819 y FK(An)34 b(algorithm)e(is)h (normally)g(understo)r(o)r(d)g(to)g(b)r(e)h(a)f(\\recip)r(e")f(for)h (solving)f(a)h(\(compu-)523 3919 y(tational\))i(problem.)f(That)h(is,)g (a)f(step)h(b)n(y)g(step)g(explanation)f(of)h(ho)n(w)f(to)h(get)g(from) f(a)523 4018 y(problem)c(instance)f(to)h(a)g(solution.)f(A)i(classical) d(example)i(is)g(the)g(problem)g(of)g(sorting.)523 4118 y(Here,)23 b(a)f(problem)g(instance)h(is)f(a)h(list)g(of)f(n)n(um)n(b)r (ers,)h(lik)n(e)f(5)p FC(;)14 b FK(2)p FC(;)g FK(8)p FC(;)g FK(3)p FC(;)g FK(5,)20 b(and)j(a)f(solution)h(is)f(a)523 4218 y(p)r(erm)n(utation)e(\(re-ordering\))e(of)i(that)g(list,)g(in)g (whic)n(h)g(the)g(n)n(um)n(b)r(ers)g(are)f(non-decreasing,)523 4317 y(lik)n(e)31 b(2)p FC(;)14 b FK(3)p FC(;)g FK(5)p FC(;)g FK(5)p FC(;)g FK(8.)29 b(The)j(problem)f(instance)h(is)f(called) h(the)g FG(input)f FK(and)h(the)g(solution)f(the)523 4417 y FG(output)p FK(.)i(The)h(solution)f(is)h(also)f(sometimes)g (called)g(the)i FG(answer)p FK(,)f(in)g(particular)f(when)523 4516 y(the)28 b(problem)f(instance)g(can)h(b)r(e)g(considered)e(a)h (question.)606 4616 y(The)h(w)n(ord)f(`algorithm')g(is)h(formally)f (reserv)n(ed)f(to)h(those)h(recip)r(es)g(that)g(alw)n(a)n(ys)e(yield) 523 4716 y(an)31 b(output)h(in)f(a)g(\014nite)h(n)n(um)n(b)r(er)f(of)g (steps,)h(in)f(other)g(w)n(ords,)f(that)h(alw)n(a)n(ys)f FG(terminate)p FK(.)523 4815 y(The)24 b(problems)f(considered)g(in)h (Chapters)f(2,)g(3,)h(and)f(4)h(are)f(of)g(this)i(t)n(yp)r(e.)f(But)g (the)g(w)n(ord)523 4915 y(is)33 b(sometimes)g(also)g(used)g(for)g(pro)r (cesses)f(that)i(aren't)e(ev)n(en)h(supp)r(osed)h(to)f(terminate,)523 5015 y(lik)n(e)23 b(the)h(w)n(orkings)d(of)j(an)f(elev)-5 b(ator.)23 b(F)-7 b(or)22 b(suc)n(h)i(pro)r(cesses,)e(the)h(w)n(ord)g (`proto)r(col')f(is)i(more)523 5114 y(appropriate.)32 b(A)i(proto)r(col)e(is)i(lik)n(e)f(a)g(rule)g(of)h(b)r(eha)n(viour.)e (The)i(goal)e(of)h(a)h(proto)r(col)e(is)523 5214 y(not)c(to)f(\014nd)h (a)f(solution)g(to)h(a)f(problem)g(instance,)h(but)g(rather)e(to)i (insure)f(a)g(particular,)523 5313 y(desirable,)d(b)r(eha)n(viour)f(in) i(a)g(system.)f(An)h(elev)-5 b(ator)24 b(proto)r(col)g(m)n(ust)h (insure)f(for)g(instance)p eop end %%Page: 3 13 TeXDict begin 3 12 bop 2621 299 a FF(1.1.)53 b(Algorithms)154 b(3)523 506 y FK(that)34 b(p)r(eople)f(get)g(to)g(the)h(\015o)r(or)e (they)h(w)n(an)n(t)g(to)g(in)h(a)e(reasonable)g(amoun)n(t)g(of)i(time.) f(A)523 606 y(researc)n(h)21 b(\014eld)j(kno)n(wn)f(as)g(`distributed)h (computing')g(is)f(dev)n(oted)g(to)g(the)h(study)g(of)f(algo-)523 706 y(rithms)f(and)g(proto)r(cols)f(for)h(comm)n(unication,)f(co)r(op)r (eration)g(and)h(comp)r(etition)h(b)r(et)n(w)n(een)523 805 y(m)n(ultiple,)h(more)e(or)g(less)g(indep)r(enden)n(t,)i(computing) f(agen)n(ts.)f(Chapters)g(7,8,)h(and)g(9)f(deal)523 905 y(with)28 b(some)f(problems)g(of)h(this)f(t)n(yp)r(e.)606 1005 y(As)37 b(men)n(tioned)g(earlier,)e(an)i(algorithm)f(prescrib)r (es)g(a)g(sequence)h(of)f(steps)h(to)g(lead)523 1104 y(from)26 b(a)g(giv)n(en)f(input)i(to)f(an)g(output.)h(This)f(still)h (lea)n(v)n(es)d(op)r(en)j(the)f(questions)g(of)g(what)g(a)523 1204 y(step)j(is,)g(ho)n(w)f(the)h(input)h(is)e(giv)n(en,)g(and)h (\014nally)g(ho)n(w)f(the)h(output)g(is)g(obtained)f(and/or)523 1303 y(in)n(terpreted.)i(W)-7 b(e)30 b(see)g(that)h(an)e(algorithm)g (is)i(not)f(complete)g(without)g(a)g(sp)r(eci\014cation)523 1403 y(of)f(its)g(op)r(erating)f(en)n(vironmen)n(t.)g(The)g(classical)g (notion)g(of)h(an)g(algorithm)f(is)g(that)h(of)g(a)523 1503 y(program)22 b(running)i(inside)h(a)f(b)r(o)n(x)f(called)h (computer,)g(with)h(some)f(input)h(device)f(reading)523 1602 y(the)k(input)h(sym)n(b)r(ol)f(b)n(y)g(sym)n(b)r(ol,)f(and)h(an)g (output)h(device)f(writing)f(the)i(output)f(sym)n(b)r(ol)523 1702 y(b)n(y)h(sym)n(b)r(ol.)g(In)g(this)h(framew)n(ork,)d(the)i(input) h(and)f(output)h(are)e(w)n(ords)g(of)h(some)g(input,)523 1802 y(resp)r(ectiv)n(ely)-7 b(,)32 b(output)g(language.)f(A)i(so)e (called)h(`mac)n(hine)g(mo)r(del')g(sp)r(eci\014es)g(the)h(form)523 1901 y(of)25 b(programs)e(that)j(a)f(b)r(o)n(x)g(will)g(run)g(and)g (what)h(op)r(erations)d(it)j(can)f(p)r(erform)g(in)g(a)g(single)523 2001 y(step.)j(In)f(some)g(mo)r(dels)h(the)g(steps)f(are)g(executed)g (strictly)g(in)h(sequence,)f(one)g(after)g(the)523 2100 y(other.)33 b(These)g(mo)r(dels)g(are)g(said)g(to)g(b)r(e)h FG(se)l(quential)p FK(.)f(A)h FG(p)l(ar)l(al)t(lel)h FK(mo)r(del)f(is)f(one)g(where)523 2200 y(the)28 b(steps)g(are)f(not)h (necessarily)e(executed)i(in)h(sequence,)e(but)i(is)f(also)e(used)i (for)g(mo)r(dels)523 2300 y(that)g(are)f(in)g(a)h(sense)f(more)f(p)r(o) n(w)n(erful)h(than)h(the)g(simplest)g(sequen)n(tial)f(ones.)606 2399 y(The)35 b(computer)g(will)h(ha)n(v)n(e)e(some)g(form)h(of)g FG(stor)l(age)i(sp)l(ac)l(e)f FK(of)g(unlimited)g(capacit)n(y)-7 b(,)523 2499 y(lik)n(e)28 b(a)f(tap)r(e,)i(where)e(in)n(termediate)h (results)g(are)f(k)n(ept.)h(The)g(program)e(usually)i(consists)523 2599 y(of)23 b(a)g(list)h(of)g(instructions)f(executed)g(in)h(order)e (except)h(for)g(branc)n(hes,)f(and)i(eac)n(h)e(instruc-)523 2698 y(tion)32 b(mo)r(di\014es)g(only)g(a)f(small)h(\014xed-size)f (part)g(of)h(the)h(storage.)d(This)i(is)g(basically)e(the)523 2798 y(mac)n(hine)24 b(mo)r(del)h(that)f(Alan)h(T)-7 b(uring)23 b(en)n(visioned)h(as)g(the)g(mac)n(hine-equiv)-5 b(alen)n(t)24 b(of)g(a)g(h)n(u-)523 2897 y(man)29 b(w)n(orking)d(with)k (p)r(en)f(and)f(pap)r(er,)g(and)h(kno)n(wn)f(as)g(a)g(`T)-7 b(uring)28 b(mac)n(hine'.)g(T)-7 b(uring's)523 2997 y(goal)24 b(w)n(as)g(to)h(ha)n(v)n(e)f(a)h(formal)f(basis)g(for)h(deciding)g (what)g(it)h(means)e(for)h(an)g(input-output)523 3097 y(function)31 b(to)f(b)r(e)h(`computable'.)g(He)g(could)f(probably)f (not)i(imagine)f(the)h(large)e(v)-5 b(ariet)n(y)523 3196 y(of)33 b(alternativ)n(e)f(mac)n(hine)h(mo)r(dels)h(that)f(ha)n(v)n(e)f (b)r(een)i(prop)r(osed)f(since)g(as)f(a)h(sub)5 b(ject)34 b(of)523 3296 y(study)28 b(in)g(its)f(o)n(wn)g(righ)n(t.)g(One)h(suc)n (h)f(mo)r(del)h(is)f(in)n(v)n(estigated)f(in)i(Chapter)f(5.)606 3396 y(W)-7 b(e)26 b(can)g(also)f(view)h(the)g(T)-7 b(uring)25 b(mac)n(hine)h(as)f(a)h(b)r(o)n(x)f(that's)h(tra)n(v)n(elling)f(o)n(v)n (er)f(a)h(single)523 3495 y(tap)r(e)f(that)g(initially)g(holds)f(the)h (input,)h(and)e(whose)g(con)n(ten)n(ts)h(is)f(tak)n(en)g(as)g(output)i (when)523 3595 y(the)g(b)r(o)n(x)f(go)r(es)f(in)n(to)h(a)g(halting)h (state.)f(W)-7 b(e)25 b(can)f(then)h(replace)e(the)i(tap)r(e)g(b)n(y)f (an)g(arbitrary)523 3694 y(graph)f(and)g(allo)n(w)g(the)h(b)r(o)n(x)g (to)f(drop)h(v)-5 b(arious)22 b(t)n(yp)r(es)i(of)g(mark)n(ers)d(on)j (the)g(no)r(des)g(to)g(get)f(a)523 3794 y(class)f(of)g(algorithms)g (kno)n(wn)g(as)g(`bug)h(automata'.)e(These)i(are)f(w)n(ell)g(suited)h (to)g(lab)n(yrin)n(th)523 3894 y(exploration)j(problems)h(and)g(come)h (in)n(to)f(action)g(in)h(Chapter)f(3.)606 3993 y(In)h(a)f(more)g(ph)n (ysical)g(view,)h(algorithms)e(can)h(tak)n(e)g(the)i(form)e(of)h FG(cir)l(cuits)g FK(built)g(from)523 4093 y(wires)e(and)h(gates.)f (Since)h(the)g(n)n(um)n(b)r(er)f(of)h(inputs)g(of)g(a)f(circuit)h(is)g FG(har)l(d-wir)l(e)l(d)h FK(and)f(th)n(us)523 4193 y(\014xed,)35 b(it)g(is)g(more)f(precise)g(to)h(sa)n(y)f(that)h(an)f(algorithm)g (corresp)r(onds)f(to)i(a)f FG(family)j FK(of)523 4292 y(circuits,)e(w)n(orking)e(on)i(larger)e(and)i(larger)f(inputs.)h(The)g (gates)g(are)f(the)h(steps)g(of)g(the)523 4392 y(algorithm,)29 b(and)h(are)f(clearly)f(not)i(executed)g(in)h(sequence.)e(In)h(Chapter) g(4)f(w)n(e)h(will)g(see)523 4491 y(an)d(example)h(of)f(a)g(circuit)h (family)-7 b(.)523 4799 y FL(1.2)116 b(Complexit)m(y)523 4998 y FK(F)-7 b(or)37 b(man)n(y)f(problems)h(studied)g(in)h (theoretical)e(computer)h(science,)f(the)i(question)f(of)523 5098 y(whether)22 b(it)g(can)g(b)r(e)g(solv)n(ed)f(at)h(all)g(is)f(not) h(in)n(teresting,)g(as)f(the)h(answ)n(er)f(is)h(in)n(v)-5 b(ariably)20 b(y)n(es.)523 5197 y(The)25 b(question)g(b)r(ecomes)f(in)n (teresting)g(only)h(when)g(the)g(class)f(of)h(algorithms)f(considered) 523 5297 y(is)38 b(reduced.)f(Usually)h(w)n(e)f(are)g(in)n(terested)h (in)g(those)f(algorithms)g(that)h(are)f(the)h(least)p eop end %%Page: 4 14 TeXDict begin 4 13 bop 2609 299 a FF(1.2.)53 b(Complexit)n(y)153 b(4)523 506 y FK(complex.)40 b(A)g(complexit)n(y)g(measure)f(is)h(then) g(a)g(w)n(a)n(y)f(of)h(quan)n(tifying)g(ho)n(w)f(complex)523 606 y(an)30 b(algorithm)g(is.)g(One)g(t)n(yp)r(e)h(of)g(complexit)n(y)f (that)g(is)h(of)f(great)g(practical)f(imp)r(ortance)523 706 y(is)39 b(conceptual)g(complexit)n(y:)f(ho)n(w)h(hard)f(is)h(it)h (to)f(understand)g(an)g(algorithm?)f(This)523 805 y(ho)n(w)n(ev)n(er)27 b(is)i(rather)e(di\016cult)j(if)g(not)e(imp)r(ossible)h(to)g(quan)n (tify)g(and)g(th)n(us)f(app)r(ears)g(only)523 905 y(in)g(informal)f (discussion.)606 1005 y(If)e(the)g(algorithm)f(can)g(b)r(e)i(written)f (do)n(wn)f(as)g(a)g(sequence)h(of)f(sym)n(b)r(ols)g(in)h(a)g(standard) 523 1104 y(language,)j(then)i(an)f(ob)n(vious)f(complexit)n(y)h (measure)g(is)g(the)h(length)g(of)f(that)h(sequence.)523 1204 y(Com)n(bining)c(this)h(with)g(the)g(idea)f(of)h(lo)r(oking)e(at)i (all)f(algorithms)f(and)i(inputs)g(that)g(pro-)523 1303 y(duce)20 b(a)f(giv)n(en)f(output)i(leads)f(to)h(a)f(v)n(ery)f(in)n (teresting)h(notion)g(of)g(the)h(inheren)n(t)f(description)523 1403 y(complexit)n(y)29 b(of)h(that)g(output.)g(The)g(theory)e(dealing) h(with)i(this)f(notion,)f(kno)n(wn)g(under)523 1503 y(the)38 b(names)f(of)g(Kolmogoro)n(v)c(Complexit)n(y)k(and)g(Algorithmic)g (Information)g(Theory)-7 b(,)523 1602 y(will)28 b(not)f(b)r(e)h(dealt)g (with)g(in)g(this)g(thesis.)606 1702 y(Most)40 b(complexit)n(y)g (measures)f(concern)g(the)i(use)f(of)g(resources)e(during)i(execution) 523 1802 y(of)d(the)f(algorithm,)g(the)h(t)n(w)n(o)f(most)g(imp)r (ortan)n(t)g(ones)g(b)r(eing)h(time)g(and)f(space.)g(On)g(a)523 1901 y(sequen)n(tial)30 b(mac)n(hine,)h(time)g(is)g(simply)g(measured)f (as)h(the)g(n)n(um)n(b)r(er)g(of)g(steps)g(tak)n(en)f(to)523 2001 y(go)22 b(from)g(the)h(input)g(to)g(the)g(output.)g(On)f(parallel) g(mac)n(hines,)g(a)g(parallel)f(notion)i(of)f(time)523 2100 y(is)34 b(in)n(tro)r(duced)g(that)h(re\015ects)f(the)g(sim)n (ultaneous)g(execution)g(of)g(steps.)h(F)-7 b(or)33 b(the)i(total)523 2200 y(n)n(um)n(b)r(er)19 b(of)f(steps)h(executed,)g(irresp)r(ectiv)n (e)f(of)h(timing,)g(the)g(term)g(`w)n(ork')e(is)i(used)g(instead.)523 2300 y(These)27 b(notions)g(also)f(apply)h(to)g(circuits,)g(although)g (they)h(carry)d(di\013eren)n(t)j(names.)f(The)523 2399 y(\(parallel\))f(time)g(of)g(a)g(circuit)g(is)g(tak)n(en)g(to)g(b)r(e)h (the)f(maxim)n(um)g(distance)g(from)g(an)g(input)523 2499 y(to)c(an)f(output)h(no)r(de,)g(and)g(is)g(called)f(the)h(`depth') h(of)e(the)h(circuit.)g(used)g(for)f(this)h(purp)r(ose,)523 2599 y(and)i(called)g(`depth'.)h(The)f(amoun)n(t)f(of)h(w)n(ork)f(done) h(b)n(y)f(a)h(circuit)g(equals)f(its)i(gate)e(coun)n(t.)606 2698 y(Space)30 b(is)g(measured)f(as)g(the)h(maxim)n(um)g(size)g(of)g (the)g(storage)e(space)h(used.)h(In)g(some)523 2798 y(mac)n(hine)f(mo)r (dels)h(the)g(precise)f(formalization)g(of)g(this)h(requires)f(some)g (care)g(to)g(ensure)523 2897 y(`compatibilit)n(y')20 b(with)g(other)f(mo)r(dels)g(\(not)h(surprising)e(considering)h(the)h (man)n(y)f(di\013eren)n(t)523 2997 y(forms)29 b(that)h(storage)d(space) i(comes)g(in\).)h(In)g(the)f(case)g(of)g(circuits)h(space)e(can)h(b)r (e)h(tak)n(en)523 3097 y(as)h(the)h(\(rectangular\))e(area)g(needed)h (b)n(y)g(an)g(em)n(b)r(edding)h(of)f(the)h(circuit)f(in)h(the)g(plane) 523 3196 y(\(with)c(limited)h(cross-o)n(v)n(er\).)606 3296 y(In)e(order)f(to)h(pro)r(ceed)g(from)f(resources)f(lik)n(e)i (time)h(and)f(space)f(to)h(the)h(corresp)r(onding)523 3396 y(complexit)n(y)22 b(measures,)g(w)n(e)g(express)g(their)g(use)h (in)g(terms)f(of)h(the)g(size)f(of)h(the)g(input.)h(Size)523 3495 y(is)33 b(de\014ned)h(to)f(b)r(e)h(a)f(natural)f(n)n(um)n(b)r(er)h (that)h(is)f(roughly)f(prop)r(ortional)g(to)h(the)h(length)523 3595 y(of)27 b(the)h(input)g(in)g(some)f(standard)f(notation.)h(When)h (inputs)g(are)e(w)n(ords)g(in)i(some)f(input)523 3694 y(language,)21 b(then)j(their)e(size)h(is)g(simply)f(de\014ned)i(as)e (their)g(length.)h(If)h(an)e(input)i(is)f(a)f(graph)523 3794 y(for)g(instance,)g(then)i(the)f(n)n(um)n(b)r(er)f(of)g(no)r(des)h (plus)f(the)h(n)n(um)n(b)r(er)g(of)f(edges)g(is)h(a)f(reasonable)523 3894 y(de\014nition)k(of)g(size.)f(Usually)-7 b(,)26 b(the)g(bigger)e(the)i(input,)g(the)g(more)f(resources)f(are)h(needed.) 523 3993 y(A)34 b(complexit)n(y)g(measure)e(tells)i(y)n(ou)f(ho)n(w)h (quic)n(kly)f(the)h(use)g(of)g(resources)d(gro)n(ws)h(with)523 4093 y(input)37 b(size:)f(it)g(is)g(a)g(function)g(that)h(giv)n(es)d (for)i(eac)n(h)f(size)h(the)g(maxim)n(um)g(amoun)n(t)g(of)523 4193 y(resource)24 b(used,)i(o)n(v)n(er)d(all)j(inputs)g(of)g(that)g (size.)f(Apart)g(from)h(this)g FG(worst-c)l(ase)g FK(measure,)523 4292 y(one)c(can)h(also)e(consider)h(an)g FG(aver)l(age)27 b(c)l(ase)c FK(complexit)n(y)-7 b(,)22 b(where)g(the)h(a)n(v)n(erage)d (of)j(resource)523 4392 y(used)28 b(is)f(tak)n(en)g(o)n(v)n(er)f(all)h (inputs.)606 4491 y(Chapter)34 b(4)f(considers)g(an)h(practically)f (signi\014can)n(t)g(resource)g(for)g(circuits,)h(namely)523 4591 y(energy)39 b(consumption.)h(In)h(con)n(v)n(en)n(tional)d(tec)n (hnologies,)h(whenev)n(er)g(the)i(input)g(to)f(a)523 4691 y(circuit)28 b(c)n(hanges,)e(some)i(subset)f(of)h(the)h(gates)d (and)i(wires)f(will)h(switc)n(h)g(and)g(the)g(energy)523 4790 y(dissipated)36 b(hereb)n(y)f(in)i(the)f(from)g(of)g(heat)g(is)g (prop)r(ortional)e(to)j(the)f(sum)g(area)f(of)h(all)523 4890 y(switc)n(hing)27 b(elemen)n(ts.)606 4990 y(In)39 b FG(r)l(andomize)l(d)h FK(algorithms,)e(c)n(hoices)f(can)i(b)r(e)g (made)g(based)f(on)g(the)i(outcome)e(of)523 5089 y(random)32 b(coin)g(\015ips.)h(Randomness)f(is)g(used)h(either)f(to)h(ensure)f(a)g (high)g(probabilit)n(y)g(of)523 5189 y(giving)g(the)h(correct)e(answ)n (er,)g(or)h(to)h(limit)g(the)g(\(exp)r(ected\))g(time)h(to)e(\014nd)h (the)g(correct)523 5289 y(answ)n(er.)26 b(In)i(either)f(case,)g(n)n(um) n(b)r(er)h(of)f(coin)g(\015ips)h(is)g(a)f(useful)h(resource.)p eop end %%Page: 5 15 TeXDict begin 5 14 bop 2609 299 a FF(1.2.)53 b(Complexit)n(y)153 b(5)606 506 y FK(Closely)18 b(related)g(to)g(randomness,)f(is)i(the)g (resource)e(of)h FG(queries)p FK(.)i(A)f(query)e(is)i(a)f(question)523 606 y(that)32 b(the)g(algorithm)e(can)h(ask,)g(from)g(some)g(set)g(of)h (allo)n(w)n(ed)e(questions,)g(to)i(alw)n(a)n(ys)d(b)r(e)523 706 y(giv)n(en)39 b(the)g(righ)n(t)g(answ)n(er.)f(Lik)n(e)h(a)g(random) f(coin)h(\015ip,)h(this)g(is)f(one)g(external)g(bit)h(of)523 805 y(information,)27 b(except)h(it)g(can)f(only)g(come)g(out)h(one)f (w)n(a)n(y)-7 b(.)606 905 y(The)32 b(last)f(`resource')f(w)n(e'll)h (discuss)g(is)h(the)f(size)h(of)f(the)h(output.)g(This)g(b)r(ecomes)f (in-)523 1005 y(teresting)d(when)h(for)g(eac)n(h)f(input,)i(more)e (than)h(one)f(output)i(solution)e(is)h(p)r(ossible.)g(The)523 1104 y(closer)36 b(in)h(size)g(a)g(solution)f(is)h(to)g(the)h(minimal)f (one,)g(the)g(b)r(etter.)h(Chapter)f(2)f(is)h(ex-)523 1204 y(clusiv)n(ely)c(concerned)g(with)h(this)g(output)h(appro)n (ximation)d(complexit)n(y)h(for)g(a)h(sp)r(eci\014c)523 1303 y(problem.)523 1611 y FL(1.3)116 b(T)-10 b(rade-o\013s)523 1810 y FK(Complexit)n(y)24 b(measures)f(can)h(rarely)f(b)r(e)i (considered)f(in)h(isolation.)e(This)i(is)f(b)r(ecause)g(one)523 1910 y(resource)29 b(can)i(often)g(b)r(e)g(minimized)h(at)e(the)i(cost) e(of)h(sev)n(eral)e(others.)h(Most)h(resources)523 2009 y(can)19 b(b)r(e)h(minimized)g(at)g(the)g(cost)f(of)g(making)g(the)h (time)g(exp)r(onen)n(tial)f(in)h(the)g(size)f(of)h(input.)523 2109 y(Since)26 b(exp)r(onen)n(tial)g(time)g(\(or)g(for)f(that)i (matter)f(exp)r(onen)n(tial)f(an)n(ything\))h(is)g(considered)523 2208 y(an)34 b(extremely)h(bad)f(prop)r(ert)n(y)g(for)g(an)g(algorithm) g(to)h(ha)n(v)n(e,)e(this)i(trade-o\013)f(is)h(hardly)523 2308 y(ev)n(er)24 b(ev)n(en)g(considered.)g(W)-7 b(e)25 b(are)f(in)n(terested)g(in)h(trade-o\013s)f(b)r(et)n(w)n(een)g (resources)f(that)i(all)523 2408 y(remain)i(p)r(olynomial.)606 2507 y(In)34 b(Chapter)g(3,)f(a)h(trade-o\013)f(is)h(established)f(b)r (et)n(w)n(een)h(time)h(and)f(space)f(for)g(a)h(par-)523 2607 y(ticular)27 b(exploration-t)n(yp)r(e)f(problem.)i(It)g(is)g(sho)n (wn)f(that)h(v)-5 b(arious)26 b(di\013eren)n(t)i(algorithms)523 2707 y(ha)n(v)n(e)33 b(the)i(same)f(space-time-pro)r(duct)f(complexit)n (y)-7 b(,)34 b(up)g(to)g(constan)n(t)g(factors.)f(Some-)523 2806 y(times)h(algorithms)e(are)h(designed)g(with)i(a)e(single)g (parameter)f(that)i(can)g(b)r(e)g(v)-5 b(aried)33 b(to)523 2906 y(pro)r(duce)27 b(an)n(y)g(desired)g(trade-o\013)g(of)g(resources) f(b)r(et)n(w)n(een)h(t)n(w)n(o)g(extremes.)606 3005 y(In)i(the)h (domain)e(of)h(circuits,)g(the)h(familiar)e(time-space)g(trade-o\013)h (translates)e(in)n(to)i(a)523 3105 y(depth-area)i(tradeo\013.)g(It)i (is)f(kno)n(wn)f(for)h(instance)f(that)i(a)e(logarithmic)g(depth)i (circuit)523 3205 y(on)e FC(n)h FK(inputs)g(needs)f(on)g(the)h(order)e (of)h FC(n)14 b FK(log\()p FC(n)p FK(\))32 b(area)e(to)i(b)r(e)f(em)n (b)r(edded)h(in)g(the)g(plane)523 3304 y(\(assuming)38 b(the)h FC(n)f FK(inputs)h(lie)g(on)f(a)g(con)n(v)n(ex)f(b)r (oundary\).)h(If)h(the)g(depth)g(is)g(relaxed,)523 3404 y(then)f(often)f(a)g(linear)f(em)n(b)r(edding)h(is)g(p)r(ossible.)g(F) -7 b(or)36 b(circuits,)h(logarithmic)f(depth)i(is)523 3504 y(considered)18 b(just)i(as)f(desirable)g(as)f(p)r(olynomial)h (time)h(is)g(for)e(sequen)n(tial)h(mac)n(hines.)g(Th)n(us,)523 3603 y(in)37 b(Chapter)e(4,)h(the)h(resource)d(of)j(energy)e(is)h (minimized)h(under)f(the)g(requiremen)n(t)g(of)523 3703 y(logarithmic)26 b(depth.)523 4010 y FL(1.4)116 b(Ov)m(erview)523 4209 y FK(In)31 b(Chapter)g(2,)f(w)n(e)h(consider)e(the)j(follo)n(wing) e(problem:)g(giv)n(en)g(a)h(collection)f(of)h(strings)523 4309 y FC(s)562 4321 y FB(1)599 4309 y FC(;)14 b(:)g(:)g(:)g(;)g(s)823 4321 y FA(m)886 4309 y FK(,)30 b(\014nd)h(the)g(shortest)e(string)h FC(s)g FK(suc)n(h)g(that)g(eac)n(h)g FC(s)2480 4321 y FA(i)2538 4309 y FK(app)r(ears)f(as)h(a)f(substring)523 4408 y(\(a)i(consecutiv)n(e)f(blo)r(c)n(k\))g(of)h FC(s)p FK(.)g(Although)g(this)g(problem)f(is)h(kno)n(wn)f(to)g(b)r(e)i (NP-hard,)d(a)523 4508 y(simple)24 b(greedy)f(pro)r(cedure)f(app)r (ears)h(to)h(do)f(quite)h(w)n(ell)g(and)f(is)h(routinely)f(used)h(in)g (DNA)523 4608 y(sequencing)k(and)h(data)g(compression)f(practice,)g (namely:)h(rep)r(eatedly)g(merge)f(the)h(pair)523 4707 y(of)h(\(distinct\))g(strings)f(with)h(maxim)n(um)f(o)n(v)n(erlap)f(un) n(til)i(only)f(one)g(string)g(remains.)g(Let)523 4807 y FC(n)23 b FK(denote)g(the)g(length)h(of)f(an)f(optimal)h (\(shortest\))g(sup)r(erstring.)f(A)i(common)e(conjecture)523 4907 y(states)28 b(that)h(the)g(ab)r(o)n(v)n(e)e(greedy)g(pro)r(cedure) h(pro)r(duces)g(a)g(sup)r(erstring)g(of)g(length)h FC(O)r FK(\()p FC(n)p FK(\))523 5006 y(\(in)23 b(fact,)g(2)p FC(n)p FK(\),)f(y)n(et)h(the)g(only)f(previous)f(non)n(trivial)h(b)r (ound)h(kno)n(wn)f(for)g FG(any)h FK(p)r(olynomial-)523 5106 y(time)28 b(algorithm)f(is)g(a)g(recen)n(t)g FC(O)r FK(\()p FC(n)14 b FK(log)h FC(n)p FK(\))28 b(result.)606 5205 y(W)-7 b(e)24 b(sho)n(w)e(that)h(the)h(greedy)e(algorithm)g(do)r (es)h(in)h(fact)f(ac)n(hiev)n(e)f(a)h(constan)n(t)f(factor)g(ap-)523 5305 y(pro)n(ximation,)j(pro)n(ving)f(an)i(upp)r(er)g(b)r(ound)h(of)f (4)p FC(n)p FK(.)g(F)-7 b(urthermore,)25 b(w)n(e)g(presen)n(t)h(a)g (simple)p eop end %%Page: 6 16 TeXDict begin 6 15 bop 2681 299 a FF(1.4.)53 b(Ov)n(erview)153 b(6)523 506 y FK(mo)r(di\014ed)20 b(v)n(ersion)f(of)g(the)i(greedy)d (algorithm)h(that)h(w)n(e)f(sho)n(w)g(pro)r(duces)h(a)f(sup)r(erstring) g(of)523 606 y(length)h(at)g(most)g(3)p FC(n)p FK(.)f(W)-7 b(e)21 b(also)e(sho)n(w)g(the)h(sup)r(erstring)g(problem)f(to)h(b)r(e)h FG(MAX)h(SNP-har)l(d)p FK(,)523 706 y(whic)n(h)30 b(implies)h(that)g(a) f(p)r(olynomial-time)g(appro)n(ximation)f(sc)n(heme)h(for)f(this)i (problem)523 805 y(is)d(unlik)n(ely)-7 b(.)606 905 y(In)19 b(Chapter)g(3,)g(w)n(e)g(examine)g(the)g(space)g(complexit)n(y)f(of)i (\015o)r(o)r(d-\014lling.)e(Fill)i(algorithms)523 1005 y(are)28 b(commonly)f(used)i(for)f(c)n(hanging)f(the)i(color)e(of)h(a)g (region)f(of)i(pixels.)f(A)h(\015o)r(o)r(d-\014ll)f(al-)523 1104 y(gorithm)i(\(FF)-9 b(A\))32 b(is)f(giv)n(en)e(a)i FG(se)l(e)l(d)39 b FK(pixel)31 b(from)g(whic)n(h)f(it)i(starts)d (exploring)h(the)h(region)523 1204 y(delimited)f(b)n(y)f(a)g FG(b)l(oundary)h FK(of)g(arbitrary)d(shap)r(e.)i(Most)g(kno)n(wn)g(FF) -9 b(As)29 b(can)g(b)r(e)h(notori-)523 1303 y(ously)24 b(memory)h(h)n(ungry)-7 b(,)24 b(using)g(in)i(the)f(w)n(orst)f(case)g (ev)n(en)h(more)f(space)g(than)h(is)g(dev)n(oted)523 1403 y(to)18 b(storing)g(the)h(screen)e(image.)h(While)h(suc)n(h)f (regions)f(nev)n(er)h(sho)n(w)f(up)i(in)g(practice,)f(it)g(ma)n(y)523 1503 y(b)r(e)31 b(of)g(in)n(terest)f(to)h(\014nd)g(an)f(FF)-9 b(A)32 b(with)f(minimal)g(w)n(orst-case)d(memory)i(requiremen)n(ts.)523 1602 y(W)-7 b(e)29 b(presen)n(t)f(an)h(FF)-9 b(A)29 b(that)g(uses)f (only)h(a)f(constan)n(t)g(amoun)n(t)g(of)h(space,)f(in)h(addition)g(to) 523 1702 y(that)34 b(in)g(whic)n(h)g(the)g(image)f(is)h(stored.)f(The)h (price)f(it)i(pa)n(ys)d(for)i(this)g(memory)f(friend-)523 1802 y(liness)i(is)f(a)h(p)r(ossible)f(lac)n(k)g(of)h(sp)r(eed|in)g (the)h(w)n(orst)d(case)h(time)i(is)e(quadratic)g(in)h(the)523 1901 y(n)n(um)n(b)r(er)26 b(of)h(pixels.)f(It)h(th)n(us)f(ac)n(hiev)n (es)f(the)i(same)f(space-time)g(pro)r(duct)g(of)g FC(O)r FK(\()p FC(n)3072 1871 y FB(2)3110 1901 y FK(\))h(as)f(do)523 2001 y(the)h(common)g(FF)-9 b(As)27 b(with)h(linear)e(space)g(and)h (linear)f(time,)i(illustrating)e(a)h(w)n(ell-kno)n(wn)523 2100 y(time-space)g(tradeo\013.)606 2200 y(Chapter)g(4)g(turns)g(to)h (the)f(study)h(of)g(a)f FG(har)l(dwir)l(e)l(d)i FK(algorithm;)d(a)h(no) n(v)n(el)g(construction)523 2300 y(is)32 b(describ)r(ed)g(that)h (yields)f(fast,)g(minim)n(um)h(energy)f(VLSI)g(circuits)g(that)h (compute)f FC(k)s FK(-)523 2399 y(threshold)c(and)g(coun)n(t-to-)p FC(k)j FK(functions.)d(The)h(results)f(are)g(obtained)g(in)h(the)f (Uniswitc)n(h)523 2499 y(Mo)r(del)g(of)f(switc)n(hing)g(energy)-7 b(.)606 2599 y(In)33 b(Chapter)g(5,)g(w)n(e)g(mo)n(v)n(e)f(from)h(the)h (study)f(of)g(algorithms)f(to)h(the)h(study)f(of)g(com-)523 2698 y(putational)i(mo)r(dels.)h(W)-7 b(e)35 b(presen)n(t)g(a)g (parallel)f(v)n(ersion)g(of)i(the)f(storage)f(mo)r(di\014cation)523 2798 y(mac)n(hine.)43 b(This)g(mo)r(del,)h(called)f(the)g(Asso)r (ciativ)n(e)g(Storage)e(Mo)r(di\014cation)i(Mac)n(hine)523 2897 y(\(ASMM\),)36 b(has)f(the)g(prop)r(ert)n(y)f(that)h(it)g(can)f (recognize)g(in)h(p)r(olynomial)f(time)h(exactly)523 2997 y(what)h(T)-7 b(uring)36 b(mac)n(hines)f(can)h(recognize)f(in)h(p) r(olynomial)g(space.)g(The)g(mo)r(del)g(there-)523 3097 y(fore)26 b(b)r(elongs)f(to)i(the)f(Second)g(Mac)n(hine)g(Class,)f (consisting)h(of)g(those)g(parallel)f(mac)n(hine)523 3196 y(mo)r(dels)34 b(that)h(satisfy)f(the)h(parallel)e(computation)h (thesis.)h(The)f(Asso)r(ciativ)n(e)f(Storage)523 3296 y(Mo)r(di\014cation)25 b(Mac)n(hine)g(obtains)g(its)g(computational)g (p)r(o)n(w)n(er)f(from)h(follo)n(wing)f(p)r(oin)n(ters)523 3396 y(in)k(the)g(rev)n(erse)e(direction.)606 3495 y(Chapters)j(6,7)h (and)g(8)f(consider)g(the)i(space)e(and)h(time)h(complexit)n(y)f(of)g (constructing)523 3595 y(certain)f(t)n(yp)r(es)h(of)g(shared)f(memory)h (out)g(of)g(simpler)f(building)i(blo)r(c)n(ks.)e(The)h(proto)r(cols)523 3694 y(in)n(v)n(olv)n(ed)e(are)g(designed)h(to)g(b)r(e)g(w)n(ait-free:) f(an)n(y)h(op)r(eration)f(on)h(the)g(constructed)g(mem-)523 3794 y(ory)g(can)g(b)r(e)h(completed)g(with)g(only)g(a)f(b)r(ounded)h (n)n(um)n(b)r(er)g(of)f(accesses)f(to)i(the)g(simpler)523 3894 y(memory)d(ob)5 b(jects,)26 b(irresp)r(ectiv)n(e)h(of)g(the)h (relativ)n(e)e(execution)h(sp)r(eeds.)g(Suc)n(h)g(implemen-)523 3993 y(tations,)c(where)g(pro)r(cessors)f(need)h(not)h(w)n(ait)f(for)g (eac)n(h)g(other)g(to)g(get)h(access)e(to)h(memory)-7 b(,)523 4093 y(help)28 b(to)f(exploit)h(the)g(amoun)n(t)f(of)g (parallelism)g(inheren)n(t)g(in)h(distributed)g(systems.)606 4193 y(W)-7 b(e)32 b(presen)n(t)f(solutions)f(to)i(the)g(problem)f(of)g (sim)n(ulating)g(an)g(atomic)g(single-reader,)523 4292 y(single-writer)24 b(v)-5 b(ariable)25 b(with)h(non-atomic)e(bits.)i (The)g(\014rst)g(construction,)e(for)i(the)g(case)523 4392 y(of)d(a)g(2-v)-5 b(alued)22 b(atomic)h(v)-5 b(ariable)22 b(\(bit\),)i(ac)n(hiev)n(es)e(the)h(minimal)h(n)n(um)n(b)r(er)f(of)g (non-atomic)523 4491 y(bits)41 b(needed.)g(The)g(main)g(construction)f (of)g(a)h(m)n(ulti-bit)g(v)-5 b(ariable)40 b(a)n(v)n(oids)f(rep)r (eated)523 4591 y(writing)27 b(\(resp.)h(reading\))e(of)i(the)g(v)-5 b(alue)27 b(in)h(a)f(single)g(write)h(\(resp.)f(read\))g(action)g(on)g (the)523 4691 y(sim)n(ulated)38 b(atomic)f(v)-5 b(ariable.)37 b(It)h(impro)n(v)n(es)e(on)i(existing)f(solutions)g(of)h(that)g(t)n(yp) r(e)g(in)523 4790 y(simplicit)n(y)27 b(and)g(in)g(the)h(n)n(um)n(b)r (er)f(of)g(non-atomic)f(bits)h(used,)g(b)r(oth)h(in)f(presence)g(and)f (in)523 4890 y(accesses)j(p)r(er)h(read/write)e(action.)i(W)-7 b(e)30 b(sho)n(w)g(ho)n(w)f(to)h(v)n(erify)g(these)g(constructions)f(b) n(y)523 4990 y(mac)n(hine,)e(based)g(on)h(atomicit)n(y-testing)e (automata.)606 5089 y(Chapter)k(7)g(presen)n(ts)g(a)g(construction)g (of)g(an)g(m)n(ulti-user)g(atomic)h(v)-5 b(ariable)29 b(directly)523 5189 y(from)35 b(single-writer,)f(single-reader)f (atomic)i(v)-5 b(ariables.)35 b(It)h(uses)f(a)g(linear)g(n)n(um)n(b)r (er)g(of)523 5289 y(con)n(trol)29 b(bits,)i(and)f(a)h(linear)e(n)n(um)n (b)r(er)i(of)f(accesses)f(p)r(er)i(Read/W)-7 b(rite)29 b(running)i(in)f(con-)p eop end %%Page: 7 17 TeXDict begin 7 16 bop 2681 299 a FF(1.4.)53 b(Ov)n(erview)153 b(7)523 506 y FK(stan)n(t)27 b(parallel)g(time.)606 606 y(In)35 b(Chapter)g(8)g(w)n(e)f(consider)g(the)i FG(atomic)h(snapshot) 44 b FK(ob)5 b(ject)35 b(in)h(its)f(simplest)g(form)523 706 y(where)27 b(eac)n(h)f(cell)i(con)n(tains)e(a)h(single)g(bit.)h(W) -7 b(e)28 b(demonstrate)e(the)i(`univ)n(ersalit)n(y')e(of)h(this)523 805 y(binary)22 b(snapshot)h(ob)5 b(ject)22 b(b)n(y)h(presen)n(ting)f (an)h(e\016cien)n(t)g(linear-time)g(implemen)n(tation)g(of)523 905 y(the)28 b(general)f(m)n(ulti-bit)h(atomic)f(snapshot)h(ob)5 b(ject)27 b(using)h(an)f(atomic)g(binary)h(snapshot)523 1005 y(ob)5 b(ject)27 b(as)f(a)h(primitiv)n(e.)g(Th)n(us,)g(the)h (searc)n(h)d(for)i(an)g(e\016cien)n(t)g(\(sub-quadratic)f(or)h(linear) 523 1104 y(time\))20 b(w)n(ait-free)f(atomic)g(snapshot)g(implemen)n (tation)g(ma)n(y)g(b)r(e)h(restricted)f(to)h(the)g(binary)523 1204 y(case.)606 1303 y(In)40 b(the)h(\014nal)f(Chapter,)g(n)n(um)n(b)r (er)g(9,)g(w)n(e)g(in)n(tro)r(duce)f(the)i(notion)f(of)g(Up)r (date-Last)523 1403 y(Sc)n(heme)29 b(as)g(a)f(distributed)i(metho)r(d)g (of)f(storing)f(an)g(index,)i(and)f(deriv)n(e)f(exact)h(b)r(ounds)523 1503 y(on)e(their)h(space)f(complexit)n(y)-7 b(.)p eop end %%Page: 8 18 TeXDict begin 8 17 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(2)523 806 y FI(Linear)52 b(Appro)l(ximation)g(of)g(Shortest)523 972 y(Sup)t(erstrings)523 2549 y FL(2.1)116 b(In)m(tro)s(duction)523 2748 y FK(Giv)n(en)23 b(a)h(\014nite)g(set)f(of)h(strings,)e(w)n(e)h(w)n(ould)h(lik)n(e)f(to) g(\014nd)h(their)g(shortest)e(common)h(sup)r(er-)523 2848 y(string.)i(That)h(is,)f(w)n(e)g(w)n(an)n(t)g(the)h(shortest)f(p)r (ossible)g(string)g FC(s)h FK(suc)n(h)f(that)h(ev)n(ery)f(string)f(in) 523 2947 y(the)k(set)g(is)f(a)g(substring)g(of)h FC(s)p FK(.)606 3047 y(The)35 b(question)g(is)h(NP-hard)e([5)o(,)i(6)o(].)g (Due)g(to)f(its)g(imp)r(ortan)n(t)g(applications)g(in)g(data)523 3147 y(compression)28 b([14)o(])h(and)g(DNA)h(sequencing)f([8)o(,)h(9)o (,)f(13)o(],)h(e\016cien)n(t)f(appro)n(ximation)e(algo-)523 3246 y(rithms)h(for)g(this)g(problem)g(are)f(indisp)r(ensable.)h(W)-7 b(e)28 b(giv)n(e)f(an)h(example)g(from)f(the)i(DNA)523 3346 y(sequencing)d(practice.)f(A)i(DNA)g(molecule)f(can)f(b)r(e)i (represen)n(ted)e(as)h(a)f(c)n(haracter)f(string)523 3445 y(o)n(v)n(er)i(the)j(set)f(of)g(n)n(ucleotides)f FD(f)p FC(A;)14 b(C)q(;)g(G;)g(T)e FD(g)p FK(.)27 b(Suc)n(h)h(a)g(c)n (haracter)e(string)h(ranges)g(from)g(a)523 3545 y(few)d(thousand)f(sym) n(b)r(ols)g(long)f(for)h(a)h(simple)f(virus)g(to)g(appro)n(ximately)f (3)10 b FD(\002)g FK(10)3009 3515 y FB(9)3068 3545 y FK(sym)n(b)r(ols)523 3645 y(for)28 b(a)g(h)n(uman)g(b)r(eing.)h (Determining)f(this)h(represen)n(tation)d(for)i(di\013eren)n(t)h (molecules,)f(or)523 3744 y FG(se)l(quencing)23 b FK(the)f(molecules,)g (is)g(a)g(crucial)g(step)g(to)n(w)n(ards)f(understanding)h(the)g (biological)523 3844 y(functions)29 b(of)f(the)g(molecules.)g(With)h (curren)n(t)f(lab)r(oratory)e(metho)r(ds,)i(only)g(small)g(frag-)523 3944 y(men)n(ts)d(\(c)n(hosen)f(from)g(unkno)n(wn)g(lo)r(cations\))g (of)h(at)f(most)h(500)e(bases)h(can)g(b)r(e)h(sequenced)523 4043 y(at)32 b(a)h(time.)g(Then)f(from)g(h)n(undreds,)h(thousands,)f (sometimes)g(millions)g(of)h(these)f(frag-)523 4143 y(men)n(ts,)22 b(a)g(bio)r(c)n(hemist)f FG(assembles)i FK(the)g(sup)r(erstring)e (represen)n(ting)f(the)i(whole)g(molecule.)523 4242 y(A)28 b(simple)f(greedy)g(algorithm)f(is)h(routinely)g(used)g([8,)h(13)o(])f (to)g(cop)r(e)h(with)g(this)f(job.)h(This)523 4342 y(algorithm,)34 b(whic)n(h)i(w)n(e)f(call)g(GREED)n(Y,)g(rep)r(eatedly)g(merges)g(the)g (pair)g(of)h(\(distinct\))523 4442 y(strings)d(with)i(maxim)n(um)f(o)n (v)n(erlap)e(un)n(til)j(only)f(one)g(string)g(remains.)f(It)i(has)e(b)r (een)i(an)523 4541 y(op)r(en)c(question)f(as)g(to)g(ho)n(w)g(w)n(ell)h (GREED)n(Y)f(appro)n(ximates)f(a)h(shortest)g(common)g(su-)523 4641 y(p)r(erstring,)40 b(although)f(a)h(common)g(conjecture)g(states)g (that)g(GREED)n(Y)h(pro)r(duces)e(a)523 4741 y(sup)r(erstring)27 b(of)g(length)h(at)f(most)h(t)n(w)n(o)f(times)g(optimal)h([14)o(,)g(15) o(,)f(16)o(].)606 4840 y(F)-7 b(rom)27 b(a)g(di\013eren)n(t)g(p)r(oin)n (t)h(of)f(view,)h(Li)f([9])g(considered)f(learning)h(a)g(sup)r (erstring)f(from)523 4940 y(randomly)j(dra)n(wn)h(substrings)f(in)h (the)h(V)-7 b(alian)n(t)30 b(learning)f(mo)r(del)i([17)o(].)f(In)h(a)e (restricted)523 5039 y(sense,)j(the)g(shorter)f(the)h(sup)r(erstring)f (w)n(e)h(obtain,)g(the)g(smaller)f(the)i(n)n(um)n(b)r(er)f(of)g(sam-) 523 5139 y(ples)26 b(are)f(needed)h(to)g(infer)h(a)e(sup)r(erstring.)g (Therefore)g(\014nding)i(a)e(go)r(o)r(d)h(appro)n(ximation)523 5239 y(b)r(ound)34 b(for)f(shortest)f(common)h(sup)r(erstring)f (implies)i(e\016cien)n(t)f(learnabilit)n(y)g(or)f(infer-)523 5338 y(abilit)n(y)k(of)g(DNA)h(sequences)e([9].)h(Our)f(linear)h(appro) n(ximation)e(result)i(impro)n(v)n(es)e(Li's)p eop end %%Page: 9 19 TeXDict begin 9 18 bop 2575 299 a FF(2.1.)52 b(In)n(tro)r(duction)153 b(9)523 506 y FC(O)r FK(\()p FC(n)14 b FK(log)h FC(n)p FK(\))27 b(appro)n(ximation)f(b)n(y)i(a)f(m)n(ultiplicativ)n(e)g (logarithmic)g(factor.)606 606 y(T)-7 b(arhio)20 b(and)g(Ukk)n(onen)g ([15)o(])h(and)f(T)-7 b(urner)20 b([16])g(established)h(some)f(p)r (erformance)f(guar-)523 706 y(an)n(tees)j(for)g(GREED)n(Y)g(with)h (resp)r(ect)f(to)h(the)g(\\compression")d(measure.)h(This)i(basically) 523 805 y(measures)i(the)i(n)n(um)n(b)r(er)f(of)g(sym)n(b)r(ols)f(sa)n (v)n(ed)g(b)n(y)h(GREED)n(Y)g(compared)f(to)h(plainly)g(con-)523 905 y(catenating)36 b(all)h(the)h(strings.)e(It)h(w)n(as)f(sho)n(wn)g (that)i(if)f(the)h(optimal)f(solution)f(sa)n(v)n(es)f FC(l)523 1005 y FK(sym)n(b)r(ols,)22 b(then)i(GREED)n(Y)f(sa)n(v)n(es)e (at)i(least)f FC(l)r(=)p FK(2)g(sym)n(b)r(ols.)g(But,)h(in)h(general)d (this)j(implies)523 1104 y(no)g(p)r(erformance)f(guaran)n(tee)g(with)i (resp)r(ect)f(to)g(optimal)g(length)g(since)h(in)f(the)h(b)r(est)g (case)523 1204 y(this)g(only)f(sa)n(ys)f(that)i(GREED)n(Y)g(pro)r (duces)f(a)g(sup)r(erstring)f(of)i(length)g(at)f(most)h(half)f(the)523 1303 y(total)j(length)h(of)g(all)f(the)h(strings.)606 1403 y(In)h(this)g(c)n(hapter)f(w)n(e)g(sho)n(w)g(that)h(the)h(sup)r (erstring)e(problem)g FG(c)l(an)35 b FK(b)r(e)29 b(appro)n(ximated)523 1503 y(within)42 b(a)f(constan)n(t)f(factor,)h(and)g(in)h(fact)f(that)g (algorithm)g(GREED)n(Y)g(pro)r(duces)f(a)523 1602 y(sup)r(erstring)19 b(of)g(length)h(at)g(most)f(4)p FC(n)p FK(.)g(F)-7 b(urthermore,)19 b(w)n(e)g(giv)n(e)g(a)g(simple)h(mo)r(di\014ed)g(greedy)523 1702 y(pro)r(cedure)40 b(MGREED)n(Y)g(that)h(also)e(ac)n(hiev)n(es)g(a) h(b)r(ound)h(of)f(4)p FC(n)p FK(,)g(and)g(then)h(presen)n(t)523 1802 y(another)31 b(algorithm)g(TGREED)n(Y,)h(based)g(on)g(MGREED)n(Y,) g(that)g(w)n(e)g(sho)n(w)f(ac)n(hiev)n(es)523 1901 y(3)p FC(n)p FK(.)606 2001 y(The)24 b(rest)f(of)g(the)h(c)n(hapter)f(is)g (organized)f(as)h(follo)n(ws:)f(Section)i(2.2)f(con)n(tains)f (notation,)523 2100 y(de\014nitions,)29 b(and)g(some)f(basic)g(facts)h (ab)r(out)g(strings.)f(In)h(Section)g(2.3)f(w)n(e)g(describ)r(e)h(our) 523 2200 y(main)i(algorithm)g(MGREED)n(Y)g(with)h(its)f(pro)r(of.)g (This)g(pro)r(of)g(forms)g(the)g(basis)g(of)g(the)523 2300 y(analysis)i(in)h(the)h(next)f(t)n(w)n(o)g(sections.)f(MGREED)n(Y) i(is)f(impro)n(v)n(ed)f(to)h(TGREED)n(Y)f(in)523 2399 y(Section)40 b(2.4.)g(W)-7 b(e)41 b(\014nally)f(giv)n(e)f(the)i(4)p FC(n)f FK(b)r(ound)h(for)f(GREED)n(Y)g(in)h(Section)f(2.5.)g(In)523 2499 y(Section)35 b(2.7,)f(w)n(e)h(sho)n(w)f(that)h(the)g(sup)r (erstring)f(problem)g(is)h FG(MAX)h(SNP-har)l(d)g FK(whic)n(h)523 2599 y(implies)25 b(that)g(there)g(is)g(unlik)n(ely)f(to)h(exist)g(a)g (p)r(olynomial)f(time)h(appro)n(ximation)e(sc)n(heme)523 2698 y(for)k(the)h(sup)r(erstring)f(problem.)523 3005 y FL(2.2)116 b(Preliminaries)523 3205 y FK(Let)26 b FC(S)h FK(=)c FD(f)p FC(s)917 3217 y FB(1)954 3205 y FC(;)14 b(:)g(:)g(:)f(;)h(s)1177 3217 y FA(m)1240 3205 y FD(g)25 b FK(b)r(e)h(a)f(set)h(of)f(strings)f(o)n(v)n(er)g(some)h(alphab)r(et)g (\006.)h(Without)g(loss)f(of)523 3304 y(generalit)n(y)-7 b(,)23 b(w)n(e)g(assume)g(that)h(the)h(set)f FC(S)k FK(is)c (\\substring-free")e(in)i(that)g(no)g(string)f FC(s)3173 3316 y FA(i)3224 3304 y FD(2)g FC(S)523 3404 y FK(is)g(a)f(substring)h (of)f(an)n(y)h(other)f FC(s)1516 3416 y FA(j)1574 3404 y FD(2)h FC(S)5 b FK(.)23 b(A)g FG(c)l(ommon)j(sup)l(erstring)k FK(of)23 b FC(S)28 b FK(is)22 b(a)h(string)f FC(s)h FK(suc)n(h)523 3504 y(that)31 b(eac)n(h)g FC(s)936 3516 y FA(i)995 3504 y FK(in)g FC(S)36 b FK(is)31 b(a)g(substring)f(of)h FC(s)p FK(.)g(That)h(is,)f(for)f(eac)n(h)h FC(s)2579 3516 y FA(i)2606 3504 y FK(,)g(the)h(string)e FC(s)i FK(can)e(b)r(e)523 3603 y(written)21 b(as)f FC(u)950 3615 y FA(i)977 3603 y FC(s)1016 3615 y FA(i)1044 3603 y FC(v)1084 3615 y FA(i)1133 3603 y FK(for)g(some)g FC(u)1502 3615 y FA(i)1551 3603 y FK(and)g FC(v)1745 3615 y FA(i)1773 3603 y FK(.)h(W)-7 b(e)21 b(will)g(use)g FC(n)g FK(and)g(OPT)o(\()p FC(S)5 b FK(\))21 b(in)n(terc)n(hangeably)523 3703 y(for)28 b(the)i(length)f(of)g(the)g FG(shortest)37 b FK(common)28 b(sup)r(erstring)g(for)h FC(S)5 b FK(.)28 b(Our)h(goal)e(is)i(to)g (\014nd)g(a)523 3802 y(sup)r(erstring)e(for)g FC(S)32 b FK(whose)27 b(length)h(is)f(as)g(close)g(to)g(OPT)o(\()p FC(S)5 b FK(\))28 b(as)f(p)r(ossible.)606 3902 y FH(Example.)i FK(Assume)i(w)n(e)f(w)n(an)n(t)f(to)i(\014nd)f(the)h(shortest)f(common) f(sup)r(erstring)h(of)g(all)523 4002 y(w)n(ords)h(in)h(the)g(follo)n (wing)f(sen)n(tence:)h(\\Alf)g(ate)g(half)g(lethal)g(alpha)f(alfalfa".) g(The)h(w)n(ord)523 4101 y(\\alf)6 b(")29 b(is)g(a)g(substring)g(of)h (b)r(oth)g(\\half)6 b(")29 b(and)g(\\alfalfa",)f(so)h(w)n(e)g(can)g (immediately)h(elim-)523 4201 y(inate)k(it.)g(Our)e(set)i(of)f(w)n (ords)g(is)g(no)n(w)g FC(S)1825 4213 y FB(0)1895 4201 y FK(=)f FD(f)i FK(ate,)f(half,)h(lethal,)f(alpha,)g(alfalfa)g FD(g)p FK(.)g(A)523 4301 y(trivial)18 b(sup)r(erstring)g(is)g (\\atehal\015ethalalphaalfalfa")e(of)i(length)h(25,)f(whic)n(h)g(is)h (simply)f(the)523 4400 y(concatenation)26 b(of)h(all)g(substrings.)f(A) i(shortest)e(common)h(sup)r(erstring)f(is)h(\\lethalphal-)523 4500 y(falfate",)e(of)g(length)g(17,)g(sa)n(ving)f(8)g(c)n(haracters)f (o)n(v)n(er)h(the)h(previous)f(one)h(\(a)g(compression)523 4599 y(of)31 b(8\).)f(Lo)r(oking)f(at)i(what)f(GREED)n(Y)h(w)n(ould)f (mak)n(e)g(of)g(this)h(example,)f(w)n(e)g(see)g(that)h(it)523 4699 y(w)n(ould)h(start)f(out)h(with)h(the)f(largest)f(o)n(v)n(erlaps)f (from)i(\\lethal")f(to)h(\\half)6 b(")31 b(to)h(\\alfalfa")523 4799 y(pro)r(ducing)f(\\lethalfalfa".)g(It)h(then)g(has)g(3)f(c)n (hoices)g(of)h(single)f(c)n(haracter)f(o)n(v)n(erlap,)g(t)n(w)n(o)523 4898 y(of)35 b(whic)n(h)g(lead)g(to)f(another)g(shortest)h(sup)r (erstring)f(\\lethalfalfalphate",)f(and)i(one)g(of)523 4998 y(whic)n(h)25 b(is)g(lethal)g(in)g(the)h(sense)e(of)h(giving)f(a)h (sup)r(erstring)f(that)h(is)g(one)g(c)n(haracter)e(longer.)523 5098 y(In)28 b(fact,)g(it)g(is)g(easy)e(to)i(giv)n(e)f(an)g(example)g (where)h(GREED)n(Y)f(outputs)h(a)f(string)g(almost)523 5197 y(t)n(wice)h(as)e(long)h(as)g(the)h(optimal)g(one,)f(for)g (instance)g(on)h(input)g FD(f)p FC(c)p FK(\()p FC(ab)p FK(\))2753 5167 y FA(k)2793 5197 y FC(;)14 b FK(\()p FC(ba)p FK(\))2974 5167 y FA(k)3015 5197 y FC(;)g FK(\()p FC(ab)p FK(\))3196 5167 y FA(k)3237 5197 y FC(c)p FD(g)p FK(.)606 5297 y(F)-7 b(or)31 b(t)n(w)n(o)f(strings)h FC(s)g FK(and)g FC(t)p FK(,)h FG(not)h(ne)l(c)l(essarily)h(distinct)p FK(,)e(let)g FC(v)i FK(b)r(e)e(the)g(longest)e(string)p eop end %%Page: 10 20 TeXDict begin 10 19 bop 2515 299 a FF(2.2.)53 b(Preliminaries)156 b(10)523 506 y FK(suc)n(h)28 b(that)g FC(s)c FK(=)g FC(uv)30 b FK(and)e FC(t)c FK(=)g FC(v)s(w)31 b FK(for)c(some)h FG(non-empty)35 b FK(strings)28 b FC(u)f FK(and)h FC(w)r FK(.)h(W)-7 b(e)29 b(call)e FD(j)p FC(v)s FD(j)523 606 y FK(the)20 b(\(amoun)n(t)g(of)6 b(\))21 b FG(overlap)27 b FK(b)r(et)n(w)n(een)20 b FC(s)g FK(and)f FC(t)p FK(,)i(and)e(denote)h (it)g(as)g FG(ov)9 b FK(\()p FC(s;)14 b(t)p FK(\).)21 b(F)-7 b(urthermore,)523 706 y FC(u)22 b FK(is)h(called)f(the)h FG(pr)l(e\014x)32 b FK(of)23 b FC(s)f FK(with)h(resp)r(ect)f(to)h FC(t)p FK(,)g(and)f(is)g(denoted)h FG(pr)l(ef)18 b FK(\()p FC(s;)c(t)p FK(\).)24 b(Finally)-7 b(,)22 b(w)n(e)523 805 y(call)29 b FD(j)p FG(pr)l(ef)18 b FK(\()p FC(s;)c(t)p FK(\))p FD(j)26 b FK(=)g FD(j)p FC(u)p FD(j)j FK(the)g FG(distanc)l(e)36 b FK(from)29 b FC(s)g FK(to)g FC(t)p FK(,)h(and)f(denote)g(it)g(as)g FG(d)9 b FK(\()p FC(s;)14 b(t)p FK(\).)29 b(So,)g(the)523 905 y(string)22 b FC(uv)s(w)k FK(=)c FG(pr)l(ef)d FK(\()p FC(s;)14 b(t)p FK(\))p FC(t)p FK(,)23 b(of)f(length)h FG(d)9 b FK(\()p FC(s;)14 b(t)p FK(\))9 b(+)g FD(j)p FC(t)p FD(j)23 b FK(=)f FD(j)p FC(s)p FD(j)9 b FK(+)g FD(j)p FC(t)p FD(j)g(\000)g FG(ov)f FK(\()p FC(s;)14 b(t)p FK(\))23 b(is)f(the)i(shortest)523 1005 y(sup)r(erstring)k(of)g FC(s)h FK(and)f FC(t)h FK(in)g(whic)n(h)g FC(s)f FK(app)r(ears)g(\(strictly\))h(b)r(efore)f FC(t)p FK(,)h(and)f(is)h(also)e(called)523 1104 y(the)k FG(mer)l(ge)38 b FK(of)31 b FC(s)g FK(and)g FC(t)p FK(.)g(F)-7 b(or)30 b FC(s)1528 1116 y FA(i)1556 1104 y FC(;)14 b(s)1632 1116 y FA(j)1696 1104 y FD(2)29 b FC(S)5 b FK(,)31 b(w)n(e)f(will)h (abbreviate)f FG(pr)l(ef)19 b FK(\()p FC(s)2813 1116 y FA(i)2841 1104 y FC(;)14 b(s)2917 1116 y FA(j)2951 1104 y FK(\))32 b(to)f(simply)523 1204 y FG(pr)l(ef)18 b FK(\()p FC(i;)c(j)5 b FK(\),)33 b(and)f FG(d)9 b FK(\()p FC(s)1190 1216 y FA(i)1218 1204 y FC(;)14 b(s)1294 1216 y FA(j)1329 1204 y FK(\))33 b(and)f FG(ov)10 b FK(\()p FC(s)1721 1216 y FA(i)1749 1204 y FC(;)k(s)1825 1216 y FA(j)1860 1204 y FK(\))32 b(to)h FG(d)9 b FK(\()p FC(i;)14 b(j)5 b FK(\))32 b(and)h FG(ov)9 b FK(\()p FC(i;)14 b(j)5 b FK(\))33 b(resp)r(ectiv)n(ely)-7 b(.)32 b(The)523 1303 y(o)n(v)n(erlap)f(b)r(et)n(w)n(een)j(a)f(string)f(and)i(itself)g(is)f (called)g(a)g FG(self-overlap)5 b FK(.)36 b(As)e(an)f(example)g(of)523 1403 y(self-o)n(v)n(erlap,)18 b(w)n(e)j(ha)n(v)n(e)e(for)h(the)h (string)f FC(s)j FK(=)g(undergrounder)18 b(an)j(o)n(v)n(erlap)d(of)j FG(ov)9 b FK(\()p FC(s;)14 b(s)p FK(\))24 b(=)e(5)523 1503 y(Also,)31 b FG(pr)l(ef)19 b FK(\()p FC(s;)14 b(s)p FK(\))29 b(=)g(undergro)h(and)h FG(d)9 b FK(\()p FC(s;)14 b(s)p FK(\))30 b(=)f(8.)i(The)h(string)f FC(s)e FK(=)g(alfalfa)o(,)j (for)f(whic)n(h)523 1602 y FG(ov)10 b FK(\()p FC(s;)k(s)p FK(\))23 b(=)g(4,)d(sho)n(ws)f(that)i(the)g(o)n(v)n(erlap)e(is)h(not)h (limited)g(to)g(half)f(the)h(total)g(string)f(length.)606 1702 y(Giv)n(en)e(a)g(list)h(of)f(strings)g FC(s)1411 1714 y FA(i)1434 1722 y Fy(1)1471 1702 y FC(;)c(s)1547 1714 y FA(i)1570 1722 y Fy(2)1606 1702 y FC(;)g(:)g(:)g(:)g(;)g(s)1830 1714 y FA(i)1853 1722 y Fx(r)1891 1702 y FK(,)k(w)n(e)g(de\014ne)h(the) g(sup)r(erstring)e FC(s)23 b FK(=)g FD(h)p FC(s)3054 1714 y FA(i)3077 1722 y Fy(1)3114 1702 y FC(;)14 b(:)g(:)g(:)g(;)g(s) 3338 1714 y FA(i)3361 1722 y Fx(r)3399 1702 y FD(i)523 1802 y FK(to)43 b(b)r(e)h(the)f(string)f FG(pr)l(ef)19 b FK(\()p FC(i)1394 1814 y FB(1)1431 1802 y FC(;)14 b(i)1497 1814 y FB(2)1534 1802 y FK(\))p FG(pr)l(ef)19 b FK(\()p FC(i)1782 1814 y FB(2)1819 1802 y FC(;)14 b(i)1885 1814 y FB(3)1921 1802 y FK(\))g FD(\001)g(\001)g(\001)g FG(pr)l(ef)19 b FK(\()p FC(i)2294 1814 y FA(r)r Fw(\000)p FB(1)2415 1802 y FC(;)14 b(i)2481 1814 y FA(r)2518 1802 y FK(\))p FC(s)2589 1814 y FA(i)2612 1822 y Fx(r)2650 1802 y FK(.)43 b(That)g(is,)g FC(s)g FK(is)g(the)523 1901 y(shortest)37 b(string)g(suc)n(h)g(that)h FC(s)1520 1913 y FA(i)1543 1921 y Fy(1)1580 1901 y FC(;)14 b(s)1656 1913 y FA(i)1679 1921 y Fy(2)1716 1901 y FC(;)g(:)g(:)g(:)g(;)g(s)1940 1913 y FA(i)1963 1921 y Fx(r)2039 1901 y FK(app)r(ear)36 b FG(in)k(or)l(der)47 b FK(in)38 b(that)g(string.)f(F)-7 b(or)523 2001 y(a)26 b(sup)r(erstring)f(of)i(a)f(substring-free)f(set,) h(this)h(order)e(is)h(w)n(ell-de\014ned,)g(since)h(substrings)523 2100 y(cannot)32 b(`start')h(or)f(`end')h(at)f(the)i(same)e(p)r (osition,)g(and)h(if)g(substring)f FC(s)2831 2112 y FA(j)2899 2100 y FK(starts)g(b)r(efore)523 2200 y FC(s)562 2212 y FA(k)603 2200 y FK(,)d(then)g FC(s)884 2212 y FA(j)947 2200 y FK(m)n(ust)g(also)f(end)h(b)r(efore)f FC(s)1769 2212 y FA(k)1810 2200 y FK(.)h(De\014ne)g FG(\014rst)7 b FK(\()p FC(s)p FK(\))25 b(=)g FC(s)2528 2212 y FA(i)2551 2220 y Fy(1)2616 2200 y FK(and)k FG(last)8 b FK(\()p FC(s)p FK(\))25 b(=)g FC(s)3169 2212 y FA(i)3192 2220 y Fx(r)3230 2200 y FK(.)k(In)523 2300 y(eac)n(h)e(iteration)g(of)g (GREED)n(Y)h(the)g(follo)n(wing)e(in)n(v)-5 b(arian)n(t)27 b(holds:)523 2466 y Fv(Claim)32 b FH(2.1)40 b FK(F)-7 b(or)21 b(t)n(w)n(o)f(distinct)h(strings)f FC(s)h FK(and)g FC(t)g FK(in)g(GREED)n(Y's)g(set)g(of)g(strings,)f(neither)523 2565 y FG(\014rst)7 b FK(\()p FC(s)p FK(\))28 b(nor)f FG(last)8 b FK(\()p FC(s)p FK(\))28 b(is)g(a)f(substring)g(of)g FC(t)p FK(.)523 2731 y Fv(Pr)n(oof.)d FK(Initially)-7 b(,)25 b FG(\014rst)7 b FK(\()p FC(s)p FK(\))23 b(=)g FG(last)8 b FK(\()p FC(s)p FK(\))24 b(=)e FC(s)j FK(for)f(all)g (strings,)g(so)g(the)h(claim)f(follo)n(ws)g(from)523 2831 y(the)32 b(fact)f(that)h FC(S)k FK(is)31 b(substring-free.)g(Supp) r(ose)g(that)h(the)f(in)n(v)-5 b(arian)n(t)31 b(is)g(in)n(v)-5 b(alidated)31 b(b)n(y)523 2931 y(a)d(merge)f(of)h(t)n(w)n(o)f(strings)g FC(t)1389 2943 y FB(1)1454 2931 y FK(and)h FC(t)1646 2943 y FB(2)1711 2931 y FK(in)n(to)g(a)f(string)h FC(t)23 b FK(=)g FD(h)p FC(t)2389 2943 y FB(1)2427 2931 y FC(;)14 b(t)2494 2943 y FB(2)2531 2931 y FD(i)28 b FK(that)h(has,)e(sa)n(y)-7 b(,)27 b FG(\014rst)7 b FK(\()p FC(s)p FK(\))523 3030 y(as)31 b(a)h(substring.)f(Let)h FC(t)f FK(=)f FC(u)h FG(\014rst)7 b FK(\()p FC(s)p FK(\))33 b FC(v)s FK(.)f(Since)h FG(\014rst)7 b FK(\()p FC(s)p FK(\))32 b(is)g(not)g(a)g(substring)f(of) h(either)523 3130 y FC(t)553 3142 y FB(1)629 3130 y FK(or)38 b FC(t)772 3142 y FB(2)810 3130 y FK(,)h(it)g(m)n(ust)g(prop)r(erly)f (`con)n(tain')g(the)i(piece)f(of)g(o)n(v)n(erlap)d(b)r(et)n(w)n(een)j FC(t)3018 3142 y FB(1)3095 3130 y FK(and)f FC(t)3297 3142 y FB(2)3335 3130 y FK(,)523 3230 y FG(i.e.)p FK(,)e FD(j)p FG(\014rst)7 b FK(\()p FC(s)p FK(\))p FD(j)35 b FC(>)e FG(ov)10 b FK(\()p FC(t)1280 3242 y FB(1)1317 3230 y FC(;)k(t)1384 3242 y FB(2)1422 3230 y FK(\))34 b(and)g FD(j)p FC(u)p FD(j)g FC(<)g FG(d)9 b FK(\()p FC(t)1996 3242 y FB(1)2033 3230 y FC(;)14 b(t)2100 3242 y FB(2)2137 3230 y FK(\).)35 b(Hence,)f FG(ov)10 b FK(\()p FC(t)2655 3242 y FB(1)2692 3230 y FC(;)k(s)p FK(\))35 b FC(>)e FG(ov)10 b FK(\()p FC(t)3085 3242 y FB(1)3122 3230 y FC(;)k(t)3189 3242 y FB(2)3227 3230 y FK(\);)34 b(a)523 3329 y(con)n(tradiction.)2271 b Fu(2)606 3479 y FK(So)37 b(when)g(GREED)n(Y)g(\(or)f(its)i(v)-5 b(ariation)36 b(MGREED)n(Y)g(that)i(w)n(e)e(in)n(tro)r(duce)h(later\))523 3578 y(c)n(ho)r(oses)h FC(s)h FK(and)h FC(t)f FK(as)g(ha)n(ving)f(the)i (maxim)n(um)f(o)n(v)n(erlap,)f(then)i(this)f(o)n(v)n(erlap)f FG(ov)9 b FK(\()p FC(s;)14 b(t)p FK(\))523 3678 y(in)41 b(fact)g(equals)g FG(ov)9 b FK(\()p FG(last)g FK(\()p FC(s)p FK(\))p FC(;)14 b FG(\014rst)7 b FK(\()p FC(t)p FK(\)\),)42 b(and)f(as)f(a)h(result,)g(the)g(merge)f(of)h FC(s)g FK(and)g FC(t)g FK(is)523 3778 y FD(h)p FG(\014rst)7 b FK(\()p FC(s)p FK(\))p FC(;)14 b(:)g(:)g(:)g(;)g FG(last)8 b FK(\()p FC(s)p FK(\))p FC(;)14 b FG(\014rst)8 b FK(\()p FC(t)p FK(\))p FC(;)14 b(:)g(:)g(:)g(;)g FG(last)8 b FK(\()p FC(t)p FK(\))p FD(i)p FK(.)32 b(W)-7 b(e)31 b(can)f(therefore)g (sa)n(y)g(that)h(GREED)n(Y)523 3877 y FG(or)l(ders)45 b FK(the)37 b(substrings,)g(b)n(y)g(\014nding)g(the)g(shortest)g(sup)r (erstring)f(in)h(whic)n(h)g(the)h(sub-)523 3977 y(strings)27 b(app)r(ear)f(in)i(that)g(order.)606 4076 y(W)-7 b(e)32 b(can)f(rephrase)f(the)i(ab)r(o)n(v)n(e)e(in)i(terms)f(of)h(p)r(erm)n (utations.)f(F)-7 b(or)31 b(a)g(p)r(erm)n(utation)g FC(\031)523 4176 y FK(on)d(the)g(set)g FD(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(m)p FD(g)p FK(,)28 b(let)g FC(S)1516 4188 y FA(\031)1585 4176 y FK(=)23 b FD(h)p FC(s)1744 4191 y FA(\031)r FB(\(1\))1874 4176 y FC(;)14 b(:)g(:)g(:)g(;)g(s)2098 4191 y FA(\031)r FB(\()p FA(m)p FB(\))2253 4176 y FD(i)p FK(.)29 b(In)f(a)f(shortest)g (sup)r(erstring)g(for)523 4276 y FC(S)5 b FK(,)22 b(the)h(substrings)f (app)r(ear)g(in)g(some)g(total)h(order,)e(sa)n(y)g FC(s)2321 4291 y FA(\031)r FB(\(1\))2451 4276 y FC(;)14 b(:)g(:)g(:)g(;)g(s)2675 4291 y FA(\031)r FB(\()p FA(m)p FB(\))2830 4276 y FK(,)23 b(hence)g(it)g(m)n(ust)523 4375 y(equal)k FC(S)793 4387 y FA(\031)838 4375 y FK(.)606 4475 y(W)-7 b(e)30 b(will)f(consider)f(a) h(tra)n(v)n(eling)e(salesman)h(problem)h(on)f(a)h(w)n(eigh)n(ted)f (directed)h(com-)523 4575 y(plete)35 b(graph)e FC(G)1040 4587 y FA(S)1123 4575 y FK(deriv)n(ed)h(from)g FC(S)39 b FK(and)34 b(sho)n(w)f(that)i(one)f(can)g(ac)n(hiev)n(e)f(a)h(factor)g (of)g(4)523 4674 y(appro)n(ximation)24 b(for)h(TSP)g(on)g(that)h (graph,)e(yielding)h(a)g(factor)g(of)h(4)f(appro)n(ximation)e(for)523 4774 y(the)35 b(shortest-common-sup)r(erstring)c(problem.)i(Graph)h FC(G)2442 4786 y FA(S)2524 4774 y FK(=)g(\()p FC(V)5 b(;)14 b(E)5 b(;)14 b(d)p FK(\))34 b(has)g FC(m)g FK(v)n(er-)523 4873 y(tices)c FC(V)45 b FK(=)27 b FD(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(m)p FD(g)p FK(,)30 b(and)f FC(m)1571 4843 y FB(2)1638 4873 y FK(edges)g FC(E)j FK(=)26 b FD(f)p FK(\()p FC(i;)14 b(j)5 b FK(\))27 b(:)f(1)h FD(\024)f FC(i;)14 b(j)31 b FD(\024)26 b FC(m)p FD(g)p FK(.)k(Here)f(w)n(e)g(tak) n(e)523 4973 y(as)g(w)n(eigh)n(t)h(function)g(the)h(distance)e FG(d)9 b FK(\()p FC(;)14 b FK(\):)31 b(edge)e(\()p FC(i;)14 b(j)5 b FK(\))30 b(has)g(w)n(eigh)n(t)f FG(d)9 b FK(\()p FC(i;)14 b(j)5 b FK(\))27 b(=)g FG(d)9 b FK(\()p FC(s)3164 4985 y FA(i)3192 4973 y FC(;)14 b(s)3268 4985 y FA(j)3302 4973 y FK(\),)523 5073 y(to)24 b(obtain)h(the)g FG(distanc)l(e)i(gr)l (aph)p FK(.)f(This)f(graph)e(is)h(similar)g(to)h(one)f(considered)f(b)n (y)h(T)-7 b(urner)523 5172 y(in)27 b(the)g(end)h(of)e(his)h(pap)r(er)g ([16)o(].)g(Later)f(w)n(e)h(will)g(tak)n(e)f(the)h(o)n(v)n(erlap)e FG(ov)10 b FK(\()p FC(;)k FK(\))27 b(as)f(the)h(w)n(eigh)n(t)523 5272 y(function)h(to)f(obtain)g(the)h FG(overlap)k(gr)l(aph)p FK(.)c(W)-7 b(e)28 b(will)g(call)f FC(s)2377 5284 y FA(i)2432 5272 y FK(the)h(string)e FG(asso)l(ciate)l(d)j FK(with)p eop end %%Page: 11 21 TeXDict begin 11 20 bop 2515 299 a FF(2.2.)53 b(Preliminaries)156 b(11)523 506 y FK(v)n(ertex)36 b FC(i)p FK(,)h(and)g(let)g FG(pr)l(ef)19 b FK(\()p FC(i;)14 b(j)5 b FK(\))39 b(=)f FG(pr)l(ef)18 b FK(\()p FC(s)1864 518 y FA(i)1892 506 y FC(;)c(s)1968 518 y FA(j)2003 506 y FK(\))38 b(b)r(e)f(the)g(string)g (asso)r(ciated)f(with)h(edge)523 606 y(\()p FC(i;)14 b(j)5 b FK(\).)606 706 y(As)24 b(examples)f(w)n(e)g(dra)n(w)f(in)i (Figure)f(2.1)g(the)h(o)n(v)n(erlap)e(graph)g(and)i(the)g(distance)f (graph)523 805 y(for)h(our)h(previous)f(example)g FC(S)1494 817 y FB(0)1554 805 y FK(=)f FD(f)i FK(ate,)f(half,)i(lethal,)f(alpha,) f(alfalfa)g FD(g)p FK(.)h(All)h(edges)e(not)523 905 y(sho)n(wn)29 b(ha)n(v)n(e)g(o)n(v)n(erlap)f(0.)i(Note)g(that)h(the)f(sum)g(of)g(the) h(distance)f(and)g(o)n(v)n(erlap)e(w)n(eigh)n(ts)523 1005 y(on)f(an)h(edge)f(\()p FC(i;)14 b(j)5 b FK(\))27 b(is)h(the)g(length)g(of)f(the)h(string)f FC(s)2132 1017 y FA(i)2160 1005 y FK(.)606 1104 y(Notice)43 b(no)n(w)f(that)h(TSP\()p FC(G)1525 1116 y FA(S)1573 1104 y FK(\))49 b FD(\024)f FK(OPT)o(\()p FC(S)5 b FK(\))29 b FD(\000)f FG(ov)9 b FK(\()p FG(last)g FK(\()p FC(s)p FK(\))p FC(;)14 b FG(\014rst)7 b FK(\()p FC(s)p FK(\)\))49 b FD(\024)f FK(OPT)o(\()p FC(S)5 b FK(\),)523 1204 y(where)29 b(TSP\()p FC(G)1025 1216 y FA(S)1073 1204 y FK(\))h(is)f(the)h(cost)f(of)h(the)g(minim)n (um)g(w)n(eigh)n(t)f(Hamiltonian)g(cycle)g(on)g FC(G)3286 1216 y FA(S)3335 1204 y FK(.)523 1303 y(The)i(reason)f(is)h(that)h (turning)f(an)n(y)f(sup)r(erstring)g(in)n(to)h(a)g(Hamiltonian)g(cycle) g(b)n(y)g(o)n(v)n(er-)523 1403 y(lapping)i(its)h(last)g(and)f(\014rst)h (substring)f(sa)n(v)n(es)f(on)h(cost)g(b)n(y)h(c)n(harging)e FG(last)8 b FK(\()p FC(s)p FK(\))34 b(for)f(only)523 1503 y FG(d)9 b FK(\()p FG(last)f FK(\()p FC(s)p FK(\))p FC(;)14 b FG(\014rst)8 b FK(\()p FC(s)p FK(\)\))28 b(instead)g(of)f (its)h(full)g(length.)606 1602 y(W)-7 b(e)23 b(no)n(w)f(de\014ne)g (some)g(notation)g(for)g(dealing)f(with)i(directed)f(cycles)g(in)h FC(G)2965 1614 y FA(S)3013 1602 y FK(.)g(Call)f(t)n(w)n(o)523 1702 y(strings)k FC(s;)14 b(t)26 b FK(equiv)-5 b(alen)n(t,)27 b FC(s)c FD(\021)g FC(t)p FK(,)j(if)i(they)e(are)g(cyclic)h(shifts)g (of)f(eac)n(h)g(other,)g FG(i.e.)p FK(,)j(if)e(there)523 1802 y(are)e(strings)g FC(u;)14 b(v)28 b FK(suc)n(h)e(that)g FC(s)d FK(=)f FC(uv)29 b FK(and)d FC(t)d FK(=)f FC(v)s(u)p FK(.)k(If)g FC(c)g FK(is)g(a)f(directed)h(cycle)f(in)h FC(G)3122 1814 y FA(S)3196 1802 y FK(with)523 1901 y(v)n(ertices)32 b FC(i)858 1913 y FB(0)895 1901 y FC(;)14 b(:)g(:)g(:)g(;)g(i)1109 1913 y FA(r)r Fw(\000)p FB(1)1264 1901 y FK(in)33 b(order)f(around)h FC(c)p FK(,)g(w)n(e)g(de\014ne)h FG(strings)6 b FK(\()p FC(c)p FK(\))34 b(to)g(b)r(e)g(the)f(equiv)-5 b(a-)523 2001 y(lence)29 b(class)f([)p FG(pr)l(ef)19 b FK(\()p FC(i)1167 2013 y FB(0)1204 2001 y FC(;)14 b(i)1270 2013 y FB(1)1307 2001 y FK(\))p FG(pr)l(ef)k FK(\()p FC(i)1554 2013 y FB(1)1592 2001 y FC(;)c(i)1658 2013 y FB(2)1694 2001 y FK(\))g FD(\001)g(\001)g(\001)30 b FG(pr)l(ef)18 b FK(\()p FC(i)2082 2013 y FA(r)r Fw(\000)p FB(1)2204 2001 y FC(;)c(i)2270 2013 y FB(0)2306 2001 y FK(\)])30 b(and)f FG(strings)7 b FK(\()p FC(c;)14 b(i)2936 2013 y FA(k)2976 2001 y FK(\))30 b(the)f(rota-)523 2100 y(tion)d(starting)e (with)i FG(pr)l(ef)19 b FK(\()p FC(i)1402 2112 y FA(k)1442 2100 y FC(;)14 b(i)1508 2112 y FA(k)q FB(+1)1633 2100 y FK(\),)26 b FG(i.e.)p FK(,)h(the)f(string)e FG(pr)l(ef)19 b FK(\()p FC(i)2467 2112 y FA(k)2508 2100 y FC(;)14 b(i)2574 2112 y FA(k)q FB(+1)2698 2100 y FK(\))g FD(\001)g(\001)g(\001)g FG(pr)l(ef)k FK(\()p FC(i)3070 2112 y FA(k)q Fw(\000)p FB(1)3196 2100 y FC(;)c(i)3262 2112 y FA(k)3302 2100 y FK(\),)523 2200 y(where)33 b(subscript)f(arithmetic)h(is)g(mo)r(dulo) g FC(r)r FK(.)i(Let)e(us)g(sa)n(y)f(that)h(an)g(equiv)-5 b(alence)33 b(class)523 2300 y([)p FC(s)p FK(])c(has)g FG(p)l(erio)l(dicity)38 b FC(k)32 b FK(\()p FC(k)d(>)24 b FK(0\),)29 b(if)h FC(s)f FK(is)g(in)n(v)-5 b(arian)n(t)27 b(under)i(a)g(rotation)f(b)n(y)g FC(k)k FK(c)n(haracters)523 2399 y(\()p FC(s)23 b FK(=)g FC(uv)j FK(=)c FC(v)s(u;)14 b FD(j)p FC(u)p FD(j)23 b FK(=)f FC(k)s FK(\).)j(Ob)n(viously)-7 b(,)23 b([)p FC(s)p FK(])h(has)g(p)r(erio)r(dicit)n(y)g FD(j)p FC(s)p FD(j)p FK(.)h(A)f(momen)n(t's)g(re\015ection)523 2499 y(sho)n(ws)30 b(that)h(the)h(minim)n(um)g(p)r(erio)r(dicit)n(y)f (of)g([)p FC(s)p FK(])g(m)n(ust)g(equal)g(the)g(n)n(um)n(b)r(er)g(of)g (distinct)523 2599 y(rotations)22 b(of)g FC(s)p FK(.)h(This)g(is)g(the) g(size)g(of)g(the)g(equiv)-5 b(alence)23 b(class)f(and)g(denoted)h(b)n (y)g FG(c)l(ar)l(d)9 b FK(\([)p FC(s)p FK(]\).)523 2698 y(F)-7 b(urthermore,)25 b(it)h(is)f(easily)g(pro)n(v)n(en)f(that)i(if)g ([)p FC(s)p FK(])f(has)g(p)r(erio)r(dicities)h FC(a)f FK(and)h FC(b)p FK(,)f(then)h(it)g(has)523 2798 y(p)r(erio)r(dicit)n(y) i(gcd)o(\()p FC(a;)14 b(b)p FK(\))29 b(as)e(w)n(ell.)h(\(See,)g FG(e.g.)p FK(,)i([4)o(].\))f(It)f(follo)n(ws)g(that)g(all)g(p)r(erio)r (dicities)g(are)523 2897 y(a)f(m)n(ultiple)h(of)f(the)h(minim)n(um)g (one.)f(In)g(particular,)f(w)n(e)h(ha)n(v)n(e)f(that)i FD(j)p FC(s)p FD(j)f FK(is)g(a)g(m)n(ultiple)h(of)523 2997 y FG(c)l(ar)l(d)9 b FK(\([)p FC(s)p FK(]\).)606 3097 y(In)33 b(general,)f(w)n(e)h(will)g(denote)g(a)g(cycle)f FC(c)h FK(with)h(v)n(ertices)e FC(i)2477 3109 y FB(1)2514 3097 y FC(;)14 b(:)g(:)g(:)f(;)h(i)2727 3109 y FA(r)2797 3097 y FK(in)33 b(the)g(order)f(b)n(y)523 3196 y(\\)p FC(i)594 3208 y FB(1)671 3196 y FD(!)40 b(\001)14 b(\001)g(\001)41 b(!)f FC(i)1084 3208 y FA(r)1161 3196 y FD(!)g FC(i)1313 3208 y FB(1)1350 3196 y FK(.")e(Also,)g(let)g FC(w)r FK(\()p FC(c)p FK(\),)h(the)g FG(weight)47 b FK(of)38 b(cycle)f FC(c)p FK(,)i(equal)e FD(j)p FC(s)p FD(j)p FC(;)14 b(s)40 b FD(2)523 3296 y FG(strings)7 b FK(\()p FC(c)p FK(\).)36 b(F)-7 b(or)34 b(con)n(v)n(enience,)g(w)n(e)h(will)g (sa)n(y)f(that)i FC(s)2243 3308 y FA(j)2313 3296 y FK(is)f(in)h FC(c)p FK(,)f(or)f(\\)p FC(s)2793 3308 y FA(j)2863 3296 y FD(2)i FC(c)p FK(")f(if)h FC(j)k FK(is)35 b(a)523 3396 y(v)n(ertex)27 b(of)g(the)h(cycle)f FC(c)p FK(.)606 3495 y(No)n(w,)d(a)g(few)h(preliminary)e(facts)i(ab)r(out)f(cycles)g(in)h FC(G)2292 3507 y FA(S)2340 3495 y FK(.)g(Let)g FC(c)e FK(=)f FC(i)2709 3507 y FB(0)2769 3495 y FD(!)h(\001)14 b(\001)g(\001)23 b(!)g FC(i)3130 3507 y FA(r)r Fw(\000)p FB(1)3275 3495 y FD(!)523 3595 y FC(i)552 3607 y FB(0)617 3595 y FK(and)29 b FC(c)816 3565 y Fw(0)867 3595 y FK(b)r(e)g(cycles)f (in)g FC(G)1382 3607 y FA(S)1431 3595 y FK(.)g(F)-7 b(or)28 b(an)n(y)g(string)f FC(s)p FK(,)i FC(s)2156 3565 y FA(k)2225 3595 y FK(denotes)f(the)h(string)e(consisting)h(of)523 3694 y FC(k)j FK(copies)26 b(of)i FC(s)g FK(concatenated)e(together.) 523 3861 y Fv(Claim)32 b FH(2.2)40 b FK(Eac)n(h)30 b(string)h FC(s)1453 3873 y FA(i)1476 3881 y Fx(j)1542 3861 y FK(in)h FC(c)f FK(is)g(a)g(substring)f(of)h FC(s)2371 3830 y FA(k)2443 3861 y FK(for)g(all)f FC(s)f FD(2)h FG(strings)6 b FK(\()p FC(c)p FK(\))32 b(and)523 3960 y(su\016cien)n(tly)c(large)e FC(k)s FK(.)523 4066 y Fv(Pr)n(oof.)j FK(By)g(induction,)h FC(s)1404 4078 y FA(i)1427 4086 y Fx(j)1492 4066 y FK(is)f(a)g (pre\014x)g(of)g FG(pr)l(ef)19 b FK(\()p FC(i)2195 4078 y FA(j)2230 4066 y FC(;)14 b(i)2296 4078 y FA(j)s FB(+1)2414 4066 y FK(\))g FD(\001)g(\001)g(\001)g FG(pr)l(ef)k FK(\()p FC(i)2786 4078 y FA(j)s FB(+)p FA(l)p Fw(\000)p FB(1)2979 4066 y FC(;)c(i)3045 4078 y FA(j)s FB(+)p FA(l)3151 4066 y FK(\))g FC(s)3236 4078 y FA(i)3259 4087 y Fx(j)r Fy(+)p Fx(l)523 4166 y FK(for)36 b(an)n(y)g FC(l)j FD(\025)e FK(0)f(\(addition)g(mo)r(dulo)h FC(r)r FK(\).)g(T)-7 b(aking)36 b FC(k)k FK(=)e FD(dj)p FC(s)2446 4178 y FA(i)2469 4186 y Fx(j)2504 4166 y FD(j)p FC(=w)r FK(\()p FC(c)p FK(\))p FD(e)f FK(and)g FC(l)i FK(=)e FC(k)s(r)i FK(w)n(e)523 4265 y(get)26 b(that)g FC(s)877 4277 y FA(i)900 4285 y Fx(j)961 4265 y FK(is)g(a)f(pre\014x)g(of)h FG(pr)l(ef)19 b FK(\()p FC(i)1650 4277 y FA(j)1684 4265 y FC(;)14 b(i)1750 4277 y FA(j)s FB(+1)1869 4265 y FK(\))g FD(\001)g(\001)g(\001)g FG(pr)l(ef)k FK(\()p FC(i)2241 4277 y FA(j)s FB(+)p FA(k)q(r)r Fw(\000)p FB(1)2481 4265 y FC(;)c(i)2547 4277 y FA(j)s FB(+)p FA(k)q(r)2702 4265 y FK(\))24 b(=)e FG(strings)7 b FK(\()p FC(c;)14 b(i)3227 4277 y FA(j)3261 4265 y FK(\))3293 4235 y FA(k)3335 4265 y FK(,)523 4365 y(whic)n(h)28 b(itself)g(is)f(a)g (substring)g(of)h FC(s)1609 4335 y FA(k)q FB(+1)1761 4365 y FK(for)f(an)n(y)g FC(s)c FD(2)h FG(strings)6 b FK(\()p FC(c)p FK(\).)740 b Fu(2)523 4581 y Fv(Claim)32 b FH(2.3)40 b FK(If)d(eac)n(h)f(of)h FD(f)p FC(s)1437 4593 y FA(j)1464 4601 y Fy(1)1500 4581 y FC(;)14 b(:)g(:)g(:)g(;)g(s) 1724 4593 y FA(j)1751 4601 y Fx(r)1789 4581 y FD(g)36 b FK(is)g(a)g(substring)g(of)h FC(s)2550 4551 y FA(k)2627 4581 y FK(for)f(some)g(string)g FC(s)i FD(2)523 4681 y FG(strings)7 b FK(\()p FC(c)p FK(\))25 b(and)f(su\016cien)n(tly)g (large)f FC(k)s FK(,)i(then)f(there)h(exists)f(a)g(cycle)g(of)g(w)n (eigh)n(t)g FD(j)p FC(s)p FD(j)f FK(=)g FC(w)r FK(\()p FC(c)p FK(\))523 4780 y(con)n(taining)k(all)g(these)h(strings.)523 4886 y Fv(Pr)n(oof.)33 b FK(In)g(a)g(\(in\014nite\))i(rep)r(etition)f (of)f FC(s)p FK(,)h(ev)n(ery)e(string)g FC(s)2467 4898 y FA(i)2528 4886 y FK(app)r(ears)h(as)f(a)h(substring)523 4986 y(at)e(ev)n(ery)e(other)i FD(j)p FC(s)p FD(j)f FK(c)n(haracters.)f (This)i(naturally)f(de\014nes)h(a)f(circular)f(ordering)h(of)g(the)523 5085 y(strings)23 b FD(f)p FC(s)869 5097 y FA(j)896 5105 y Fy(1)933 5085 y FC(;)14 b(:)g(:)g(:)f(;)h(s)1156 5097 y FA(j)1183 5105 y Fx(r)1221 5085 y FD(g)24 b FK(and)g(the)h(strings)e (in)i FC(c)f FK(whose)f(successiv)n(e)g(distances)h(sum)g(to)h FD(j)p FC(s)p FD(j)p FK(.)523 5185 y Fu(2)523 5324 y Fv(Claim)32 b FH(2.4)40 b FK(The)28 b(sup)r(erstring)f FD(h)p FC(s)1639 5336 y FA(i)1662 5344 y Fy(0)1699 5324 y FC(;)14 b FD(\001)g(\001)g(\001)f FC(;)h(s)1922 5336 y FA(i)1945 5344 y Fx(r)q Ft(\000)p Fy(1)2057 5324 y FD(i)27 b FK(is)h(a)f(substring)g(of)h FG(strings)6 b FK(\()p FC(c;)14 b(i)3106 5336 y FB(0)3143 5324 y FK(\))p FC(s)3214 5336 y FA(i)3237 5344 y Fy(0)3274 5324 y FK(.)p eop end %%Page: 12 22 TeXDict begin 12 21 bop 2515 299 a FF(2.2.)53 b(Preliminaries)156 b(12)647 2805 y @beginspecial 0 @llx 0 @lly 310.500000 @urx 203.399994 @ury 3104 @rwi @setspecial %%BeginDocument: dist.ps %! %%Creator: tromp@wolf.cwi.nl (John Tromp,M231,4078,02207-16322) %%Title: dist.x (xpic) %%CreationDate: Thu Sep 9 12:20:24 1993 %%Pages: 1 %%BoundingBox: 0 0 310.5 203.4 % (in inches) at 0 0, width 4.3125, height 2.825 %%EndComments % Prolog for xpic to PostScript converter % Author: Mark Moraes % $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp % %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH % %s F - change font to fontname % %d S - change size (font size in points) % (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) % %d %d l - lineto % %d %d m - moveto % %d %d s - spline segment % x - flush line, spline % b - box % e - ellipse % %d ss - setscale % %d W - change linewidth % getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH % %d %d flip - translate by %d, PAGEHEIGHT - %d (this % transforms to X windows coordinates) save 50 dict begin /xpic exch def /StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def % Set defaults /fontname /Times-Roman def /ptsize 12 def % halign has the values for MIDLINE, TOPLINE, BOTLINE /halign 3 array def /s {rcurveto} def /x {stroke} def /l {lineto} def /m {moveto} def /b { /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto urx lly lineto urx ury lineto llx ury lineto llx lly lineto stroke } def /mtrx matrix def /e { /yc exch def /xc exch def /yrad exch def /xrad exch def xc xrad add yc moveto /savematrix mtrx currentmatrix def xc yc translate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix stroke } def % The next three take the text string, and moveto the right horiz. position % leaving the string on the stack. /lj {} def /rj {dup stringwidth pop neg 0 rmoveto} def /ce {dup stringwidth pop 2 div neg 0 rmoveto} def % And this is invoked after one of the three above, and % computes the vert. pos, and then displays the string. /t {halign exch get 0 exch rmoveto show newpath} def % Store an array of patterns in /styles - a pattern is an array consisting % of an array and an offset. Corresp to xpic patterns % solid, dotted, short-dashed, long-dashed, dot-dashed /styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] 5 array astore def % change style to arg. /D {stroke styles exch get aload pop setdash newpath} def /W {stroke 0.5 mul setlinewidth newpath} def % fontbox takes a fontname off the stack, and returns an array % containing the values of the bottom line of the bounding box, the % mid line of the bounding box, and the top line of the bounding box % of that font, taken from the baseline, scaled to a font of size 1 /fontbox { findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop /ytop exch def pop /ybot exch def pop /ymid ytop ybot sub 2 div def 0 ybot fm dtransform exch pop % botline dup neg exch % midline - this works better than (ytop-ybot)/2! 0 ytop fm dtransform exch pop exch %topline % now in the order midline, topline, botline. 3 array astore } def % select font /F { dup /fontname exch def fontbox /thisfontbox exch def SF } def % set point size /S {/ptsize exch def SF} def % actually set font /SF { fontname findfont ptsize curscale div scalefont setfont thisfontbox aload pop 1 1 3 { pop ptsize mul curscale div neg 3 1 roll } for halign astore pop } def % sets the scale to 72 / n, where n is on the stack, and stores the value % in curscale for font scaling /curscale 1 def /getpagesize{newpath clippath pathbbox /pageheight exch def /pagewidth exch def pop pop newpath} def /flip{pageheight exch sub translate} def /ss {/curscale exch 72 exch div dup dup scale def} def /land {90 rotate} def StartXpic %%EndProlog 80 ss 0.5 W /Times-Roman F 10 S 41 168 m (Distance Graph) ce 0 t 17 88 m (5) ce 0 t 201 80 m (1) ce 0 t 201 144 m (3) ce 0 t 297 64 m (6) ce 0 t 297 160 m (4) ce 0 t 257 112 m (6) ce 0 t 225 112 m (4) ce 0 t 105 120 m (3) ce 0 t 129 64 m (4) ce 0 t 129 160 m (4) ce 0 t 241 192 m (alpha) ce 0 t 0 D 257 184 m 329 120 l 0 D 326 129 m 329 120 l 320 123 l 0 D 329 120 m x 337 112 m (ate) ce 0 t 257 40 m 329 104 l 0 D 320 102 m 329 104 l 326 96 l 0 D 329 104 m x 57 120 m 217 192 l 0 D 208 192 m 217 192 l 212 185 l 0 D 217 192 m x 225 184 m 161 120 l 0 D 170 123 m 161 120 l 164 129 l 0 D 161 120 m x 161 104 m 225 40 l 0 D 223 49 m 225 40 l 217 43 l 0 D 225 40 m x 233 176 m 233 48 l 0 D 237 57 m 233 48 l 230 57 l 0 D 233 48 m x 249 48 m 249 176 l 0 D 246 168 m 249 176 l 253 168 l 0 D 249 176 m x 57 104 m 217 32 l 0 D 212 40 m 217 32 l 208 32 l 0 D 217 32 m x 57 112 m 129 112 l 0 D 121 116 m 129 112 l 121 109 l 0 D 129 112 m x 241 32 m (alfalfa) ce 0 t 145 112 m (half) ce 0 t 41 112 m (lethal) ce 0 t 233 200 m 0 0 -1.33333 2.66667 -4 8 s -2.66667 5.33333 -1.33333 9.33333 4 12 s 5.33333 2.66667 10.6667 2.66667 16 0 s 5.33333 -2.66667 5.33333 -9.33333 0 -20 s 0 D 257 206 m 249 200 l 249 210 l 0 D 249 200 m x 249 24 m 0 0 1.33333 -2.66667 4 -8 s 2.66667 -5.33333 1.33333 -9.33333 -4 -12 s -5.33333 -2.66667 -10.6667 -2.66667 -16 0 s -5.33333 2.66667 -5.33333 9.33333 0 20 s 0 D 226 19 m 233 24 l 233 15 l 0 D 233 24 m x 25 120 m 0 0 -2.66667 1.33333 -8 4 s -5.33333 2.66667 -9.33333 1.33333 -12 -4 s -2.66667 -5.33333 -2.66667 -10.6667 0 -16 s 2.66667 -5.33333 9.33333 -5.33333 20 0 s 0 D 16 104 m 25 104 l 20 97 l 0 D 25 104 m x 265 8 m (3) ce 0 t 265 216 m (4) ce 0 t %%Trailer showpage % Trailer for xpic to PostScript converter % $Header: x2ps.tra,v 1.2 89/07/02 15:59:53 moraes Exp $ xpic end restore %%EndDocument @endspecial 650 4508 a @beginspecial 0 @llx 0 @lly 309.600006 @urx 203.399994 @ury 3096 @rwi @setspecial %%BeginDocument: ovlp.ps %! %%Creator: tromp@wolf.cwi.nl (John Tromp,M231,4078,02207-16322) %%Title: ovlp.x (xpic) %%CreationDate: Thu Sep 9 12:20:15 1993 %%Pages: 1 %%BoundingBox: 0 0 309.6 203.4 % (in inches) at 0 0, width 4.3, height 2.825 %%EndComments % Prolog for xpic to PostScript converter % Author: Mark Moraes % $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp % %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH % %s F - change font to fontname % %d S - change size (font size in points) % (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) % %d %d l - lineto % %d %d m - moveto % %d %d s - spline segment % x - flush line, spline % b - box % e - ellipse % %d ss - setscale % %d W - change linewidth % getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH % %d %d flip - translate by %d, PAGEHEIGHT - %d (this % transforms to X windows coordinates) save 50 dict begin /xpic exch def /StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def % Set defaults /fontname /Times-Roman def /ptsize 12 def % halign has the values for MIDLINE, TOPLINE, BOTLINE /halign 3 array def /s {rcurveto} def /x {stroke} def /l {lineto} def /m {moveto} def /b { /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto urx lly lineto urx ury lineto llx ury lineto llx lly lineto stroke } def /mtrx matrix def /e { /yc exch def /xc exch def /yrad exch def /xrad exch def xc xrad add yc moveto /savematrix mtrx currentmatrix def xc yc translate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix stroke } def % The next three take the text string, and moveto the right horiz. position % leaving the string on the stack. /lj {} def /rj {dup stringwidth pop neg 0 rmoveto} def /ce {dup stringwidth pop 2 div neg 0 rmoveto} def % And this is invoked after one of the three above, and % computes the vert. pos, and then displays the string. /t {halign exch get 0 exch rmoveto show newpath} def % Store an array of patterns in /styles - a pattern is an array consisting % of an array and an offset. Corresp to xpic patterns % solid, dotted, short-dashed, long-dashed, dot-dashed /styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] 5 array astore def % change style to arg. /D {stroke styles exch get aload pop setdash newpath} def /W {stroke 0.5 mul setlinewidth newpath} def % fontbox takes a fontname off the stack, and returns an array % containing the values of the bottom line of the bounding box, the % mid line of the bounding box, and the top line of the bounding box % of that font, taken from the baseline, scaled to a font of size 1 /fontbox { findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop /ytop exch def pop /ybot exch def pop /ymid ytop ybot sub 2 div def 0 ybot fm dtransform exch pop % botline dup neg exch % midline - this works better than (ytop-ybot)/2! 0 ytop fm dtransform exch pop exch %topline % now in the order midline, topline, botline. 3 array astore } def % select font /F { dup /fontname exch def fontbox /thisfontbox exch def SF } def % set point size /S {/ptsize exch def SF} def % actually set font /SF { fontname findfont ptsize curscale div scalefont setfont thisfontbox aload pop 1 1 3 { pop ptsize mul curscale div neg 3 1 roll } for halign astore pop } def % sets the scale to 72 / n, where n is on the stack, and stores the value % in curscale for font scaling /curscale 1 def /getpagesize{newpath clippath pathbbox /pageheight exch def /pagewidth exch def pop pop newpath} def /flip{pageheight exch sub translate} def /ss {/curscale exch 72 exch div dup dup scale def} def /land {90 rotate} def StartXpic %%EndProlog 80 ss 0.5 W /Times-Roman F 10 S 40 176 m (Overlap Grpah) ce 0 t 16 88 m (1) ce 0 t 40 112 m (lethal) ce 0 t 144 112 m (half) ce 0 t 240 192 m (alpha) ce 0 t 240 32 m (alfalfa) ce 0 t 0 D 56 112 m 128 112 l 0 D 120 116 m 128 112 l 120 109 l 0 D 128 112 m x 56 104 m 216 32 l 0 D 211 40 m 216 32 l 207 32 l 0 D 216 32 m x 248 48 m 248 176 l 0 D 245 168 m 248 176 l 252 168 l 0 D 248 176 m x 232 176 m 232 48 l 0 D 236 57 m 232 48 l 229 57 l 0 D 232 48 m x 160 104 m 224 40 l 0 D 222 49 m 224 40 l 216 43 l 0 D 224 40 m x 224 184 m 160 120 l 0 D 169 123 m 160 120 l 163 129 l 0 D 160 120 m x 56 120 m 216 192 l 0 D 207 192 m 216 192 l 211 185 l 0 D 216 192 m x 120 160 m (2) ce 0 t 112 120 m (3) ce 0 t 200 80 m (3) ce 0 t 120 64 m (2) ce 0 t 224 112 m (1) ce 0 t 256 112 m (1) ce 0 t 304 160 m (1) ce 0 t 304 64 m (1) ce 0 t 200 144 m (2) ce 0 t 256 184 m 328 120 l 0 D 325 129 m 328 120 l 319 123 l 0 D 328 120 m x 256 40 m 328 104 l 0 D 319 102 m 328 104 l 325 96 l 0 D 328 104 m x 336 112 m (ate) ce 0 t 232 200 m 0 0 -1.33333 2.66667 -4 8 s -2.66667 5.33333 -1.33333 9.33333 4 12 s 5.33333 2.66667 10.6667 2.66667 16 0 s 5.33333 -2.66667 5.33333 -9.33333 0 -20 s 0 D 256 206 m 248 200 l 248 210 l 0 D 248 200 m x 248 24 m 0 0 1.33333 -2.66667 4 -8 s 2.66667 -5.33333 1.33333 -9.33333 -4 -12 s -5.33333 -2.66667 -10.6667 -2.66667 -16 0 s -5.33333 2.66667 -5.33333 9.33333 0 20 s 0 D 225 19 m 232 24 l 232 15 l 0 D 232 24 m x 24 120 m 0 0 -2.66667 1.33333 -8 4 s -5.33333 2.66667 -9.33333 1.33333 -12 -4 s -2.66667 -5.33333 -2.66667 -10.6667 0 -16 s 2.66667 -5.33333 9.33333 -5.33333 20 0 s 0 D 15 104 m 24 104 l 19 97 l 0 D 24 104 m x 264 216 m (1) ce 0 t 264 8 m (4) ce 0 t %%Trailer showpage % Trailer for xpic to PostScript converter % $Header: x2ps.tra,v 1.2 89/07/02 15:59:53 moraes Exp $ xpic end restore %%EndDocument @endspecial 1144 4683 a(FIGURE)25 b(2.1.)i(The)f(o)n(v)n(erlap)g(and)g (distance)g(graphs.)p eop end %%Page: 13 23 TeXDict begin 13 22 bop 2515 299 a FF(2.2.)53 b(Preliminaries)156 b(13)p 995 1036 1182 7 v 825 1033 a FC(v)868 1003 y Fw(\000)p 1586 918 V 2838 915 a FC(v)p 1114 800 V 995 797 a(u)p 1704 682 V 2956 679 a(u)3004 649 y FB(+)p 1584 1151 4 591 v 2293 1151 V 995 1129 119 4 v 995 1127 a Fs(\033)1143 1150 y FG(d)9 b FK(\()p FC(v)1269 1120 y Fw(\000)1326 1150 y FC(;)14 b(v)s FK(\))p 1468 1129 V 1503 1127 a Fs(-)p 1114 893 V 1114 891 a(\033)1228 912 y FG(d)9 b FK(\()p FC(u;)14 b(v)s FK(\))p 1468 893 V 1503 891 a Fs(-)p 1114 704 V 1114 702 a(\033)1258 725 y FG(d)9 b FK(\()p FC(u;)14 b(u)1474 695 y FB(+)1528 725 y FK(\))p 1586 704 V 1621 702 a Fs(-)1362 1392 y FF(FIGURE)25 b(2.2.)i(Strings)f (and)f(o)n(v)n(erlaps)523 1656 y Fv(Pr)n(oof.)19 b FK(String)h FD(h)p FC(s)1142 1668 y FA(i)1165 1676 y Fy(0)1202 1656 y FC(;)14 b(:)g(:)g(:)g(;)g(s)1426 1668 y FA(i)1449 1676 y Fx(r)q Ft(\000)p Fy(1)1560 1656 y FD(i)20 b FK(is)g(clearly)f(a)g (substring)h(of)g FD(h)p FC(s)2519 1668 y FA(i)2542 1676 y Fy(0)2579 1656 y FC(;)14 b(:)g(:)g(:)f(;)h(s)2802 1668 y FA(i)2825 1676 y Fx(r)q Ft(\000)p Fy(1)2937 1656 y FC(;)g(s)3013 1668 y FA(i)3036 1676 y Fy(0)3072 1656 y FD(i)p FK(,)21 b(whic)n(h)523 1755 y(b)n(y)27 b(de\014nition)h (equals)f FG(pr)l(ef)19 b FK(\()p FC(i)1475 1767 y FB(0)1512 1755 y FC(;)14 b(i)1578 1767 y FB(1)1614 1755 y FK(\))g FD(\001)g(\001)g(\001)g FG(pr)l(ef)19 b FK(\()p FC(i)1987 1767 y FA(r)r Fw(\000)p FB(1)2108 1755 y FC(;)14 b(i)2174 1767 y FB(0)2211 1755 y FK(\))p FC(s)2282 1767 y FA(i)2305 1775 y Fy(0)2388 1755 y FK(=)46 b FG(strings)7 b FK(\()p FC(c;)14 b(i)2881 1767 y FB(0)2918 1755 y FK(\))p FC(s)2989 1767 y FA(i)3012 1775 y Fy(0)3049 1755 y FK(.)224 b Fu(2)523 1894 y Fv(Claim)32 b FH(2.5)40 b FK(If)c FG(strings)6 b FK(\()p FC(c)1370 1864 y Fw(0)1394 1894 y FK(\))36 b(=)f FG(strings)6 b FK(\()p FC(c)p FK(\),)36 b(then)f(there)g(exists)g (a)f(third)i(cycle)g(~)-44 b FC(c)35 b FK(with)523 1994 y(w)n(eigh)n(t)27 b FC(w)r FK(\()p FC(c)p FK(\))i(con)n(taining)d(all)i (v)n(ertices)e(in)i FC(c)g FK(and)f(all)g(those)h(in)f FC(c)2582 1964 y Fw(0)2606 1994 y FK(.)523 2084 y Fv(Pr)n(oof.)g FK(F)-7 b(ollo)n(ws)26 b(from)i(claims)f(2.2)g(and)g(2.3.)1289 b Fu(2)523 2223 y Fv(Claim)32 b FH(2.6)40 b FK(There)25 b(exists)f(a)h(cycle)h(~)-44 b FC(c)25 b FK(of)g(w)n(eigh)n(t)f FG(c)l(ar)l(d)9 b FK(\()p FG(strings)e FK(\()p FC(c)p FK(\)\))26 b(con)n(taining)e(all)g(v)n(er-)523 2322 y(tices)k(in)f FC(c)p FK(.)523 2412 y Fv(Pr)n(oof.)42 b FK(Let)h FC(u)f FK(b)r(e)h(the)g(pre\014x)f(of)h(length)f FG(c)l(ar)l(d)9 b FK(\()p FG(strings)e FK(\()p FC(c)p FK(\)\))44 b(of)e(some)g(string)g FC(s)48 b FD(2)523 2511 y FG(strings)7 b FK(\()p FC(c)p FK(\).)35 b(By)f(our)g(p)r(erio)r(dicit)n(y)h(argumen)n(ts,)e FD(j)p FC(u)p FD(j)i FK(divides)g FD(j)p FC(s)p FD(j)g FK(=)f FC(w)r FK(\()p FC(c)p FK(\),)i(and)f FC(s)g FK(=)f FC(u)3323 2481 y FA(j)523 2611 y FK(where)g FC(j)40 b FK(=)35 b FC(w)r FK(\()p FC(c)p FK(\))p FC(=)p FD(j)p FC(u)p FD(j)p FK(.)g(It)g(follo)n(ws)e(that)i(ev)n(ery)f(string)g(in)h FG(strings)6 b FK(\()p FC(c)p FK(\))36 b(=)e([)p FC(s)p FK(])h(is)g(a)f(sub-)523 2711 y(string)27 b(of)h FC(u)902 2681 y FA(j)s FB(+1)1020 2711 y FK(.)g(No)n(w)f(use)g(Claim)h(2.3)f (for)g FC(u)p FK(.)1316 b Fu(2)523 2885 y FK(The)29 b(follo)n(wing)f (lemma)i(has)e(b)r(een)i(pro)n(v)n(ed)d(in)j([15)o(,)f(16)o(].)h (Figure)e(2.2)h(giv)n(es)f(a)g(graphical)523 2985 y(in)n(terpretation) 34 b(of)h(it.)h(In)f(the)h(\014gure,)f(the)g(v)n(ertical)f(bars)g (surround)g(pieces)h(of)g(string)523 3084 y(that)e(matc)n(h,)f(sho)n (wing)g(a)g(p)r(ossible)g(o)n(v)n(erlap)e(b)r(et)n(w)n(een)j FC(v)2362 3054 y Fw(\000)2451 3084 y FK(and)f FC(u)2665 3054 y FB(+)2720 3084 y FK(,)h(giving)e(an)i(upp)r(er)523 3184 y(b)r(ound)28 b(on)f FG(d)9 b FK(\()p FC(v)1020 3154 y Fw(\000)1077 3184 y FC(;)14 b(u)1162 3154 y FB(+)1216 3184 y FK(\).)523 3350 y Fv(Lemma)32 b FH(2.7)40 b FG(L)l(et)21 b FC(u;)14 b(u)1264 3320 y FB(+)1318 3350 y FC(;)g(v)1398 3320 y Fw(\000)1454 3350 y FC(;)g(v)25 b FG(b)l(e)c(strings,)h(not)e (ne)l(c)l(essarily)j(di\013er)l(ent,)f(such)f(that)g(ov)10 b FK(\()p FC(u;)k(v)s FK(\))23 b FD(\025)523 3450 y FK(max)p FD(f)p FG(ov)9 b FK(\()p FC(u;)14 b(u)974 3419 y FB(+)1028 3450 y FK(\))p FC(;)g FG(ov)c FK(\()p FC(v)1262 3419 y Fw(\000)1318 3450 y FC(;)k(v)s FK(\))p FD(g)p FG(.)22 b(Then,)g(ov)10 b FK(\()p FC(u;)k(v)s FK(\)+)p FG(ov)9 b FK(\()p FC(v)2263 3419 y Fw(\000)2320 3450 y FC(;)14 b(u)2405 3419 y FB(+)2459 3450 y FK(\))24 b FD(\025)e FG(ov)10 b FK(\()p FC(u;)k(u)2857 3419 y FB(+)2911 3450 y FK(\)+)p FG(ov)c FK(\()p FC(v)3173 3419 y Fw(\000)3229 3450 y FC(;)k(v)s FK(\))p FG(,)523 3549 y(and)30 b(d)9 b FK(\()p FC(u;)14 b(v)s FK(\))19 b(+)f FG(d)9 b FK(\()p FC(v)1155 3519 y Fw(\000)1212 3549 y FC(;)14 b(u)1297 3519 y FB(+)1351 3549 y FK(\))23 b FD(\024)g FG(d)9 b FK(\()p FC(u;)14 b(u)1710 3519 y FB(+)1764 3549 y FK(\))19 b(+)f FG(d)9 b FK(\()p FC(v)2024 3519 y Fw(\000)2081 3549 y FC(;)14 b(v)s FK(\))p FG(.)606 3715 y FK(That)31 b(is,)g(giv)n(en)f(the)i(c)n(hoice)e(of)h(merging)e FC(u)i FK(to)g FC(u)2195 3685 y FB(+)2281 3715 y FK(and)f FC(v)2488 3685 y Fw(\000)2576 3715 y FK(to)h FC(v)j FK(or)c(instead)h(merg-)523 3815 y(ing)k FC(u)g FK(to)g FC(v)k FK(and)c FC(v)1152 3785 y Fw(\000)1243 3815 y FK(to)h FC(u)1401 3785 y FB(+)1455 3815 y FK(,)g(the)f(b)r(est)h(c)n(hoice)e(is)i(that)f(whic)n(h)g(con)n (tains)g(the)g(pair)g(of)523 3915 y(largest)23 b(o)n(v)n(erlap.)f(The)j (conditions)f(in)h(the)f(ab)r(o)n(v)n(e)g(Lemma)g(are)f(also)h(kno)n (wn)f(as)h(\\Monge)523 4014 y(conditions")34 b(in)h(the)g(con)n(text)f (of)g(transp)r(ortation)g(problems)g([1)o(,)h(3)o(,)g(7].)g(In)f(this)h (sense)523 4114 y(the)d(Lemma)f(follo)n(ws)f(from)h(the)h(observ)-5 b(ation)29 b(that)j(optimal)f(shipping)g(routes)g(do)g(not)523 4213 y(in)n(tersect.)i(In)h(the)g(string)f(con)n(text,)g(w)n(e)h(are)e (transp)r(orting)h(`items')h(from)f(the)h(ends)g(of)523 4313 y(substrings)27 b(to)g(the)h(fron)n(ts)f(of)h(substrings.)523 4620 y FL(2.3)116 b(A)38 b(4)27 b Fr(\001)f FL(OPT\()p Fq(S)7 b FL(\))38 b(b)s(ound)h(for)e(a)i(mo)s(di\014ed)f(greedy)790 4753 y(algorithm)523 4952 y FK(Let)25 b FC(S)k FK(b)r(e)c(a)f(set)g(of) g(strings)g(and)g FC(G)1631 4964 y FA(S)1704 4952 y FK(the)h(asso)r (ciated)e(graph.)g(No)n(w,)h(although)g(\014nding)g(a)523 5052 y(minim)n(um)g(w)n(eigh)n(t)e(Hamiltonian)h(cycle)f(in)h(a)g(w)n (eigh)n(ted)f(directed)h(graph)f(is)g(in)i(general)d(a)523 5152 y(hard)d(problem,)g(there)h FG(is)g FK(a)f(p)r(olynomial-time)g (algorithm)g(for)g(a)g(similar)g(problem)g(kno)n(wn)523 5251 y(as)j(the)i FG(assignment)h(pr)l(oblem)f FK([10].)f(Here,)f(the)i (goal)e(is)g(simply)h(to)g(\014nd)h(a)e(decomp)r(osition)523 5351 y(of)31 b(the)g(graph)f(in)n(to)h(cycles)f(suc)n(h)g(that)i(eac)n (h)e(v)n(ertex)f(is)i(in)g(exactly)g(one)f(cycle)h(and)f(the)p eop end %%Page: 14 24 TeXDict begin 14 23 bop 1174 299 a FF(2.3.)52 b(A)26 b(4)17 b Fp(\001)h FF(OPT\()p Fo(S)t FF(\))25 b(b)r(ound)g(for)i(a)f (mo)r(di\014ed)f(greedy)h(algorithm)155 b(14)523 506 y FK(total)37 b(w)n(eigh)n(t)f(of)i(the)f(cycles)g(is)g(minimized.)h (Let)f(CYC\()p FC(G)2472 518 y FA(S)2521 506 y FK(\))h(b)r(e)f(the)h(w) n(eigh)n(t)e(of)h(the)523 606 y(minim)n(um)28 b(assignmen)n(t)f(on)g (graph)g FC(G)1738 618 y FA(S)1786 606 y FK(,)h(so)f(CYC\()p FC(G)2218 618 y FA(S)2267 606 y FK(\))c FD(\024)g FK(TSP)o(\()p FC(G)2669 618 y FA(S)2718 606 y FK(\))g FD(\024)g FK(OPT)o(\()p FC(S)5 b FK(\).)606 706 y(The)27 b(pro)r(of)f(that)h(a)g(mo)r(di\014ed) g(greedy)f(algorithm)g(MGREED)n(Y)g(\014nds)h(a)g(sup)r(erstring)523 805 y(of)35 b(length)f(at)h(most)g(4)22 b FD(\001)h FK(OPT\()p FC(S)5 b FK(\))35 b(pro)r(ceeds)e(in)i(t)n(w)n(o)f(stages.)g(W)-7 b(e)35 b(\014rst)f(sho)n(w)g(that)h(an)523 905 y(algorithm)26 b(that)i(\014nds)f(an)g(optimal)g(assignmen)n(t)f(on)h FC(G)2305 917 y FA(S)2354 905 y FK(,)g(then)h(op)r(ens)f(eac)n(h)f (cycle)h(in)n(to)523 1005 y(a)h(single)g(string,)g(and)h(\014nally)f (concatenates)g(all)g(suc)n(h)g(strings)g(together)g(has)g(a)g(p)r (erfor-)523 1104 y(mance)e(ratio)g(of)g(at)g(most)g(4.)g(W)-7 b(e)27 b(then)g(sho)n(w)f(\(Theorem)g(2.10\))f(that)i(in)f(fact,)h(for) f(these)523 1204 y(particular)i(graphs,)h(a)g(greedy)f(strategy)g(can)i (b)r(e)g(used)f(to)h(\014nd)g(optimal)f(assignmen)n(ts.)523 1303 y(This)g(result)f(can)g(also)g(b)r(e)h(found)g(\(in)g(a)g (somewhat)f(di\013eren)n(t)h(form\))f(as)g(Theorem)g(1)g(in)523 1403 y(Ho\013man's)g(1963)d(pap)r(er)i([7].)606 1503 y(Consider)k(the)i(follo)n(wing)e(algorithm)h(for)f(\014nding)i(a)f (sup)r(erstring)f(of)h(the)h(strings)e(in)523 1602 y FC(S)5 b FK(.)523 1802 y FH(Algorithm)31 b(Concat-Cycles)625 1968 y FK(1.)41 b(On)28 b(input)i FC(S)5 b FK(,)29 b(create)f(graph)g FC(G)1749 1980 y FA(S)1826 1968 y FK(and)h(\014nd)g(a)g(minim)n(um)g(w) n(eigh)n(t)g(assignmen)n(t)e FC(C)731 2067 y FK(on)g FC(G)911 2079 y FA(S)959 2067 y FK(.)h(Let)g FC(C)34 b FK(b)r(e)28 b(the)g(collection)f(of)g(cycles)g FD(f)p FC(c)2287 2079 y FB(1)2324 2067 y FC(;)14 b(:)g(:)g(:)g(;)g(c)2545 2079 y FA(p)2583 2067 y FD(g)p FK(.)625 2233 y(2.)41 b(F)-7 b(or)34 b(eac)n(h)g(cycle)h FC(c)1330 2245 y FA(i)1393 2233 y FK(=)h FC(i)1523 2245 y FB(1)1595 2233 y FD(!)g(\001)14 b(\001)g(\001)35 b(!)h FC(i)1994 2245 y FA(r)2066 2233 y FD(!)g FC(i)2214 2245 y FB(1)2250 2233 y FK(,)g(let)i(~)-45 b FC(s)2475 2245 y FA(i)2538 2233 y FK(=)36 b FD(h)p FC(s)2710 2245 y FA(i)2733 2253 y Fy(1)2770 2233 y FC(;)14 b(:)g(:)g(:)f(;)h(s)2993 2245 y FA(i)3016 2253 y Fx(r)3054 2233 y FD(i)36 b FK(b)r(e)f(the)731 2333 y(string)29 b(obtained)g(b)n(y)h(op)r(ening)f FC(c)1779 2345 y FA(i)1807 2333 y FK(,)h(where)f FC(i)2131 2345 y FB(1)2198 2333 y FK(is)h(arbitrarily)e(c)n(hosen.)h(The)g(string)734 2433 y(~)-45 b FC(s)770 2445 y FA(i)825 2433 y FK(has)27 b(length)h(at)f(most)g FC(w)r FK(\()p FC(c)1660 2445 y FA(i)1689 2433 y FK(\))19 b(+)f FD(j)p FC(s)1885 2445 y FA(i)1908 2453 y Fy(1)1945 2433 y FD(j)27 b FK(b)n(y)h(Claim)f(2.4.) 625 2599 y(3.)41 b(Concatenate)24 b(together)g(the)i(strings)i(~)-46 b FC(s)1979 2611 y FA(i)2032 2599 y FK(and)25 b(pro)r(duce)g(the)h (resulting)f(string)i(~)-45 b FC(s)25 b FK(as)731 2698 y(output.)523 2864 y Fv(Theorem)32 b FH(2.8)41 b FG(A)n(lgorithm)f (Conc)l(at-Cycles)h(pr)l(o)l(duc)l(es)f(a)f(string)h(of)g(length)f(at)h (most)523 2964 y FK(4)18 b FD(\001)h FG(OPT)p FK(\()p FC(S)5 b FK(\))p FG(.)606 3130 y FK(Before)34 b(pro)n(ving)f(Theorem)h (2.8,)h(w)n(e)f(\014rst)h(need)g(a)f(preliminary)g(lemma)h(giving)f(an) 523 3230 y(upp)r(er)j(b)r(ound)g(on)f(the)h(amoun)n(t)f(of)h(o)n(v)n (erlap)d(p)r(ossible)j(b)r(et)n(w)n(een)f(strings)g(in)h(di\013eren)n (t)523 3329 y(cycles)27 b(of)h FC(C)6 b FK(.)28 b(The)f(lemma)h(is)f (also)g(implied)h(b)n(y)f(the)h(results)f(in)h([4].)523 3495 y Fv(Lemma)k FH(2.9)40 b FG(L)l(et)24 b FC(c)f FG(and)i FC(c)1385 3465 y Fw(0)1432 3495 y FG(b)l(e)f(two)g(cycles)h(in)e(a)i (minimum)e(weight)i(assignment)f FC(C)30 b FG(with)523 3595 y FC(s)23 b FD(2)g FC(c)29 b FG(and)h FC(s)928 3565 y Fw(0)974 3595 y FD(2)23 b FC(c)1088 3565 y Fw(0)1112 3595 y FG(.)29 b(Then,)h(the)f(overlap)i(b)l(etwe)l(en)d FC(s)h FG(and)g FC(s)2402 3565 y Fw(0)2454 3595 y FG(is)h(less)f(than)g FC(w)r FK(\()p FC(c)p FK(\))18 b(+)e FC(w)r FK(\()p FC(c)3276 3565 y Fw(0)3300 3595 y FK(\))p FG(.)523 3761 y Fv(Pr)n(oof.)27 b FK(Let)h FC(x)c FK(=)f FG(strings)7 b FK(\()p FC(c)p FK(\))28 b(and)g FC(x)1730 3731 y Fw(0)1777 3761 y FK(=)23 b FG(strings)7 b FK(\()p FC(c)2181 3731 y Fw(0)2204 3761 y FK(\).)29 b(Since)f FC(C)34 b FK(is)27 b(a)h(minim)n(um)g(w)n(eigh)n (t)523 3861 y(assignmen)n(t,)g(w)n(e)h(kno)n(w)f FC(x)e FD(6)p FK(=)e FC(x)1526 3830 y Fw(0)1550 3861 y FK(.)29 b(Otherwise,)g(b)n(y)f(Claim)h(2.5,)f(w)n(e)h(could)g(\014nd)g(a)g (ligh)n(ter)523 3960 y(assignmen)n(t)23 b(b)n(y)h(com)n(bining)g(the)g (cycles)g FC(c)g FK(and)g FC(c)2083 3930 y Fw(0)2106 3960 y FK(.)h(In)f(addition,)g(b)n(y)g(Claim)g(2.6,)g FC(w)r FK(\()p FC(c)p FK(\))g FD(\024)523 4060 y FG(c)l(ar)l(d)9 b FK(\()p FC(x)p FK(\).)606 4159 y(Supp)r(ose)28 b(that)h FC(s)f FK(and)h FC(s)1382 4129 y Fw(0)1433 4159 y FK(o)n(v)n(erlap)d (in)j(a)f(string)f FC(u)h FK(with)h FD(j)p FC(u)p FD(j)24 b(\025)g FC(w)r FK(\()p FC(c)p FK(\))c(+)f FC(w)r FK(\()p FC(c)2993 4129 y Fw(0)3017 4159 y FK(\).)29 b(Denote)523 4259 y(the)j(substring)f(of)h FC(u)g FK(starting)f(at)g(the)i FC(i)p FK(-th)e(sym)n(b)r(ol)g(and)h(ending)g(at)g(the)g FC(j)5 b FK(-th)32 b(as)f FC(u)3257 4271 y FA(i;j)3335 4259 y FK(.)523 4359 y(Since)h(b)n(y)g(Claim)h(2.2,)e FC(s)h FK(is)g(a)g(substring)g(of)g FC(t)2003 4329 y FA(k)2076 4359 y FK(for)g(some)g FC(t)e FD(2)i FC(x)g FK(and)g(large)f(enough)h FC(k)523 4473 y FK(and)c FC(s)724 4443 y Fw(0)775 4473 y FK(is)g(a)f(substring)h(of)f FC(t)1414 4443 y Fw(0)1438 4431 y FA(k)1474 4406 y Ft(0)1529 4473 y FK(for)g(some)h FC(t)1895 4443 y Fw(0)1942 4473 y FD(2)c FC(x)2068 4443 y Fw(0)2119 4473 y FK(and)k(large)f(enough)g FC(k)2817 4443 y Fw(0)2840 4473 y FK(,)h(w)n(e)g(ha)n(v)n(e)e(that)523 4573 y FC(x)j FK(=)f([)p FC(u)763 4588 y FB(1)p FA(;w)r FB(\()p FA(c)p FB(\))951 4573 y FK(])j(and)f FC(x)1216 4543 y Fw(0)1269 4573 y FK(=)e([)p FC(u)1433 4588 y FB(1)p FA(;w)r FB(\()p FA(c)1592 4571 y Ft(0)1613 4588 y FB(\))1643 4573 y FK(].)j(F)-7 b(rom)30 b FC(x)f FD(6)p FK(=)f FC(x)2157 4543 y Fw(0)2212 4573 y FK(w)n(e)j(conclude)f(that)h FC(w)r FK(\()p FC(c)p FK(\))f FD(6)p FK(=)e FC(w)r FK(\()p FC(c)3278 4543 y Fw(0)3302 4573 y FK(\);)523 4672 y(assume)f(without)h (loss)f(of)g(generalit)n(y)f(that)i FC(w)r FK(\()p FC(c)p FK(\))c FC(>)f(w)r FK(\()p FC(c)2336 4642 y Fw(0)2360 4672 y FK(\).)28 b(Then)1401 4855 y FC(u)1449 4870 y FB(1)p FA(;w)r FB(\()p FA(c)p FB(\))1660 4855 y FK(=)22 b FC(u)1795 4870 y FB(1+)p FA(w)r FB(\()p FA(c)1985 4853 y Ft(0)2007 4870 y FB(\))p FA(;w)r FB(\()p FA(c)p FB(\)+)p FA(w)r FB(\()p FA(c)2342 4853 y Ft(0)2362 4870 y FB(\))2415 4855 y FK(=)993 5038 y FC(u)1041 5053 y FB(1+)p FA(w)r FB(\()p FA(c)1231 5036 y Ft(0)1252 5053 y FB(\))p FA(;w)r FB(\()p FA(c)p FB(\))1433 5038 y FC(u)1481 5053 y FA(w)r FB(\()p FA(c)p FB(\)+1)p FA(;w)r FB(\()p FA(c)p FB(\)+)p FA(w)r FB(\()p FA(c)2006 5036 y Ft(0)2026 5053 y FB(\))2079 5038 y FK(=)g FC(u)2214 5053 y FB(1+)p FA(w)r FB(\()p FA(c)2404 5036 y Ft(0)2426 5053 y FB(\))p FA(;w)r FB(\()p FA(c)p FB(\))2607 5038 y FC(u)2655 5053 y FB(1)p FA(;w)r FB(\()p FA(c)2814 5036 y Ft(0)2835 5053 y FB(\))2865 5038 y FC(:)523 5187 y FK(This)32 b(sho)n(ws)e(that)i FC(x)h FK(has)e(p)r(erio)r(dicit)n(y)g FC(w)r FK(\()p FC(c)1923 5157 y Fw(0)1948 5187 y FK(\))f FC(<)f(w)r FK(\()p FC(c)p FK(\))j FD(\024)d FG(c)l(ar)l(d)9 b FK(\()p FC(x)p FK(\),)33 b(whic)n(h)f(con)n(tradicts)523 5287 y(the)c(fact)g(that)g FG(c)l(ar)l(d)9 b FK(\()p FC(x)p FK(\))28 b(is)g(the)g(minim)n(um)g(p)r(erio)r(dicit)n(y)-7 b(.)987 b Fu(2)p eop end %%Page: 15 25 TeXDict begin 15 24 bop 1174 299 a FF(2.3.)52 b(A)26 b(4)17 b Fp(\001)h FF(OPT\()p Fo(S)t FF(\))25 b(b)r(ound)g(for)i(a)f (mo)r(di\014ed)f(greedy)h(algorithm)155 b(15)523 506 y Fv(Pr)n(oof.)26 b FH(\(of)32 b(Theorem)e(2.8.\))c FK(Since)h FC(C)j FK(=)22 b FD(f)p FC(c)2069 518 y FB(1)2106 506 y FC(;)14 b(:)g(:)g(:)f(;)h(c)2326 518 y FA(p)2365 506 y FD(g)26 b FK(is)h(an)g(optimal)g(assignmen)n(t,)523 606 y(CYC\()p FC(G)802 618 y FA(S)851 606 y FK(\))35 b(=)1018 544 y Fn(P)1105 564 y FA(p)1105 631 y(i)p FB(=1)1231 606 y FC(w)r FK(\()p FC(c)1360 618 y FA(i)1389 606 y FK(\))g FD(\024)g FK(OPT)o(\()p FC(S)5 b FK(\).)35 b(A)g(second)f(lo)n (w)n(er)f(b)r(ound)i(on)g(OPT)o(\()p FC(S)5 b FK(\))35 b(can)523 706 y(b)r(e)e(determined)f(as)g(follo)n(ws:)f(F)-7 b(or)31 b(eac)n(h)h(cycle)g FC(c)2077 718 y FA(i)2104 706 y FK(,)h(let)f FC(w)2343 718 y FA(i)2402 706 y FK(=)e FC(w)r FK(\()p FC(c)2626 718 y FA(i)2655 706 y FK(\))i(and)h FC(l)2911 718 y FA(i)2970 706 y FK(denote)f(the)523 805 y(length)k(of)f(the)h(longest)f(string)g(in)h FC(c)1713 817 y FA(i)1740 805 y FK(.)g(By)f(Lemma)h(2.9,)f(if)h(w)n(e)f(consider) g(the)h(longest)523 905 y(string)c(in)i(eac)n(h)e(cycle)h(and)g(merge)f (them)i(together)e(optimally)-7 b(,)33 b(the)g(total)g(amoun)n(t)g(of) 523 1005 y(o)n(v)n(erlap)d(will)i(b)r(e)g(at)f(most)h(2)1463 942 y Fn(P)1550 963 y FA(p)1550 1029 y(i)p FB(=1)1675 1005 y FC(w)1734 1017 y FA(i)1762 1005 y FK(.)g(So)g(the)g(resulting)f (string)g(will)h(ha)n(v)n(e)e(length)i(at)523 1104 y(least)717 1042 y Fn(P)805 1062 y FA(p)805 1129 y(i)p FB(=1)930 1104 y FC(l)955 1116 y FA(i)1001 1104 y FD(\000)18 b FK(2)p FC(w)1185 1116 y FA(i)1213 1104 y FK(.)28 b(Th)n(us)f(OPT)o(\()p FC(S)5 b FK(\))23 b FD(\025)g FK(max)o(\()2072 1042 y Fn(P)2160 1062 y FA(p)2160 1129 y(i)p FB(=1)2286 1104 y FC(w)2345 1116 y FA(i)2373 1104 y FC(;)2410 1042 y Fn(P)2497 1062 y FA(p)2497 1129 y(i)p FB(=1)2623 1104 y FC(l)2648 1116 y FA(i)2694 1104 y FD(\000)18 b FK(2)p FC(w)2878 1116 y FA(i)2906 1104 y FK(\).)606 1204 y(The)k(output)h (string)i(~)-45 b FC(s)22 b FK(of)g(algorithm)g(Concat-Cycles)e(has)i (length)g(at)h(most)3020 1142 y Fn(P)3107 1162 y FA(p)3107 1229 y(i)p FB(=1)3233 1204 y FC(l)3258 1216 y FA(i)3293 1204 y FK(+)523 1303 y FC(w)582 1315 y FA(i)638 1303 y FK(\(Claim)28 b(2.4\).)f(So,)1357 1545 y FD(j)s FK(~)-45 b FC(s)p FD(j)83 b(\024)1715 1438 y FA(p)1672 1467 y Fn(X)1679 1643 y FA(i)p FB(=1)1806 1545 y FC(l)1831 1557 y FA(i)1877 1545 y FK(+)18 b FC(w)2019 1557 y FA(i)1525 1826 y FK(=)1715 1718 y FA(p)1672 1747 y Fn(X)1679 1924 y FA(i)p FB(=1)1806 1826 y FC(l)1831 1838 y FA(i)1877 1826 y FD(\000)g FK(2)p FC(w)2061 1838 y FA(i)2130 1826 y FK(+)2279 1718 y FA(p)2236 1747 y Fn(X)2242 1924 y FA(i)p FB(=1)2370 1826 y FK(3)p FC(w)2471 1838 y FA(i)1525 2028 y FD(\024)82 b FK(OPT)o(\()p FC(S)5 b FK(\))42 b(+)f(3)18 b FD(\001)h FK(OPT)o(\()p FC(S)5 b FK(\))1525 2152 y(=)82 b(4)18 b FD(\001)h FK(OPT)o(\()p FC(S)5 b FK(\))p FC(:)3296 2324 y Fu(2)606 2469 y FK(W)-7 b(e)26 b(are)e(no)n(w)g(ready)g(to)h (presen)n(t)g(the)g(algorithm)f(MGREED)n(Y,)h(and)g(sho)n(w)g(that)g (it)g(in)523 2568 y(fact)j(mimics)g(algorithm)e(Concat-Cycles.)523 2713 y FH(Algorithm)31 b(MGREED)m(Y)625 2871 y FK(1.)41 b(Let)27 b FC(S)33 b FK(b)r(e)28 b(the)g(input)g(set)g(of)f(strings)g (and)g FC(T)39 b FK(b)r(e)28 b(empt)n(y)-7 b(.)625 3032 y(2.)41 b(While)28 b FC(S)34 b FK(is)28 b(non-empt)n(y)-7 b(,)28 b(do)g(the)g(follo)n(wing:)g(Cho)r(ose)f FC(s;)14 b(t)24 b FD(2)h FC(S)33 b FK(\(not)28 b(necessarily)731 3132 y(distinct\))20 b(suc)n(h)g(that)g FG(ov)10 b FK(\()p FC(s;)k(t)p FK(\))20 b(is)g(maximized,)f(breaking)g(ties)h(arbitrarily) -7 b(.)18 b(If)i FC(s)j FD(6)p FK(=)g FC(t)p FK(,)731 3231 y(then)c(remo)n(v)n(e)f FC(s)h FK(and)g FC(t)g FK(from)g FC(S)24 b FK(and)19 b(replace)f(them)h(with)h(the)f(merged)g(string)f FD(h)p FC(s;)c(t)p FD(i)p FK(.)731 3331 y(If)28 b FC(s)23 b FK(=)f FC(t)p FK(,)28 b(then)g(just)g(remo)n(v)n(e)e FC(s)i FK(from)f FC(S)32 b FK(and)c(add)f(it)h(to)g FC(T)12 b FK(.)625 3493 y(3.)41 b(When)28 b FC(S)k FK(is)c(empt)n(y)-7 b(,)27 b(output)i(the)f(concatenation)e(of)h(the)h(strings)f(in)h FC(T)12 b FK(.)606 3650 y(W)-7 b(e)35 b(can)f(lo)r(ok)g(at)h(MGREED)n (Y)g(as)f(c)n(ho)r(osing)f(edges)h(in)h(the)g(o)n(v)n(erlap)d(graph)i (\()p FC(V)54 b FK(=)523 3750 y FC(S;)14 b(E)45 b FK(=)39 b FC(V)44 b FD(\002)25 b FC(V)5 b(;)14 b FG(ov)9 b FK(\()p FC(;)14 b FK(\)\).)39 b(When)f(MGREED)n(Y)f(c)n(ho)r(oses)g(strings)f FC(s)i FK(and)f FC(t)h FK(as)f(ha)n(ving)523 3849 y(the)42 b(maxim)n(um)f(o)n(v)n(erlap)e(\(where)i FC(t)g FK(ma)n(y)f(equal)h FC(s)p FK(\),)g(it)h(c)n(ho)r(oses)e(the)h(directed)g(edge)523 3949 y(from)g FG(last)8 b FK(\()p FC(s)p FK(\))41 b(to)g FG(\014rst)7 b FK(\()p FC(t)p FK(\))41 b(\(see)g(Claim)g(2.1\).)f(Th)n (us,)h(MGREED)n(Y)f(constructs/joins)523 4048 y(paths,)24 b(and)f(closes)g(them)h(in)n(to)f(cycles,)g(to)h(end)g(up)g(with)g(a)f (collection)g(of)h(disjoin)n(t)f(cycles)523 4148 y FC(M)32 b FD(\032)22 b FC(E)28 b FK(that)22 b(co)n(v)n(er)f(the)h(v)n(ertices)g (of)g FC(G)1783 4160 y FA(S)1831 4148 y FK(.)h(W)-7 b(e)22 b(will)h(call)f FC(M)31 b FK(the)22 b(assignmen)n(t)g(created)f(b)n(y) 523 4248 y(MGREED)n(Y.)29 b(No)n(w)f(think)h(of)f(MGREED)n(Y)h(as)f (taking)g(a)g(list)h(of)f(all)h(the)g(edges)f(sorted)523 4347 y(in)j(the)f(decreasing)f(order)g(of)h(their)g(o)n(v)n(erlaps)e (\(resolving)h(ties)h(in)g(some)g(de\014nite)h(w)n(a)n(y\),)523 4447 y(and)j(going)e(do)n(wn)i(the)g(list)g(deciding)f(for)h(eac)n(h)f (edge)g(whether)h(to)f(include)i(it)f(or)f(not.)523 4547 y(Let)27 b(us)g(sa)n(y)f(that)h(an)g(edge)g FC(e)f FG(dominates)35 b FK(another)26 b(edge)h FC(f)36 b FK(if)27 b FC(e)g FK(precedes)f FC(f)36 b FK(in)27 b(this)h(list)523 4646 y(and)i(shares)e(its)i(head)g(\(or)f(tail\))h(with)h(the)f(head)g(\(or) f(tail,)h(resp)r(ectiv)n(ely\))f(of)h FC(f)9 b FK(.)30 b(By)f(the)523 4746 y(de\014nition)36 b(of)f(MGREED)n(Y,)g(it)g (includes)g(an)g(edge)g FC(f)44 b FK(if)35 b(and)g(only)g(if)h(it)f (has)g(not)g(y)n(et)523 4845 y(included)28 b(an)f(edge)h(dominating)f FC(f)9 b FK(.)523 5007 y Fv(Theorem)32 b FH(2.10)41 b FG(The)33 b(assignment)f(cr)l(e)l(ate)l(d)g(by)h(algorithm)g(MGREED)n (Y)f(is)h(an)f(opti-)523 5107 y(mal)e(assignment.)523 5268 y Fv(Pr)n(oof.)25 b FK(Note)g(that)h(the)f(o)n(v)n(erlap)f(w)n (eigh)n(t)g(of)h(an)g(assignmen)n(t)g(and)g(its)g(distance)g(w)n(eigh)n (t)523 5368 y(add)h(up)f(to)h(the)g(total)f(length)h(of)g(all)f (strings.)g(Accordingly)-7 b(,)24 b(an)i(assignmen)n(t)e(is)i(optimal)p eop end %%Page: 16 26 TeXDict begin 16 25 bop 1174 299 a FF(2.3.)52 b(A)26 b(4)17 b Fp(\001)h FF(OPT\()p Fo(S)t FF(\))25 b(b)r(ound)g(for)i(a)f (mo)r(di\014ed)f(greedy)h(algorithm)155 b(16)523 506 y FK(\(i.e.,)38 b(has)e(minim)n(um)i(total)f(w)n(eigh)n(t)g(in)g(the)h (distance)f(graph\))f(if)i(and)f(only)g(if)h(it)f(has)523 606 y(maxim)n(um)31 b(total)g(o)n(v)n(erlap.)f(Among)h(the)h(maxim)n (um)f(o)n(v)n(erlap)e(assignmen)n(ts,)h(let)i FC(N)40 b FK(b)r(e)523 706 y(one)22 b(that)h(has)g(the)g(maxim)n(um)f(n)n(um)n (b)r(er)h(of)f(edges)g(in)h(common)g(with)g FC(M)9 b FK(.)22 b(W)-7 b(e)23 b(shall)g(sho)n(w)523 805 y(that)28 b FC(M)k FK(=)22 b FC(N)9 b FK(.)606 905 y(Supp)r(ose)32 b(this)f(is)h(not)f(the)h(case,)f(and)g(let)h FC(e)f FK(b)r(e)h(the)g(edge)f(of)h(maxim)n(um)f(o)n(v)n(erlap)e(in)523 1005 y(the)35 b(symmetric)f(di\013erence)g(of)g FC(M)43 b FK(and)34 b FC(N)9 b FK(,)34 b(with)h(ties)f(brok)n(en)f(the)i(same)e (w)n(a)n(y)g(as)h(b)n(y)523 1104 y(MGREED)n(Y.)d(Supp)r(ose)g(\014rst)g (that)h(this)f(edge)g(is)g(in)g FC(N)f FD(n)20 b FC(M)9 b FK(.)31 b(Since)g(MGREED)n(Y)g(did)523 1204 y(not)h(include)f FC(e)p FK(,)h(it)g(m)n(ust)f(ha)n(v)n(e)g(included)h(another)e(adjacen) n(t)h(edge)g FC(f)40 b FK(that)32 b(dominates)523 1303 y FC(e)p FK(.)26 b(Edge)g FC(f)35 b FK(cannot)27 b(b)r(e)g(in)f FC(N)36 b FK(\(since)26 b FC(N)36 b FK(is)26 b(an)h(assignmen)n(t\),)f (therefore)f FC(f)36 b FK(is)26 b(in)h FC(M)e FD(n)16 b FC(N)9 b FK(,)523 1403 y(con)n(tradicting)30 b(our)h(c)n(hoice)f(of)h (the)h(edge)f FC(e)p FK(.)g(Supp)r(ose)h(that)f FC(e)e FK(=)g FC(k)j FD(!)e FC(j)36 b FK(is)31 b(in)h FC(M)d FD(n)21 b FC(N)9 b FK(.)523 1503 y(The)30 b(t)n(w)n(o)f FC(N)39 b FK(edges)29 b FC(i)d FD(!)h FC(j)35 b FK(and)30 b FC(k)f FD(!)e FC(l)32 b FK(that)e(share)f(head)g(and)h(tail)g(with)g FC(e)g FK(are)f(not)g(in)523 1602 y FC(M)9 b FK(,)32 b(and)g(th)n(us)h(are)e(dominated)h(b)n(y)g FC(e)p FK(.)g(Since)h FG(ov)10 b FK(\()p FC(k)s(;)k(j)5 b FK(\))31 b FD(\025)f FK(max)p FD(f)p FG(ov)9 b FK(\()p FC(i;)14 b(j)5 b FK(\))p FC(;)14 b FG(ov)9 b FK(\()p FC(k)s(;)14 b(l)r FK(\))p FD(g)p FK(,)32 b(b)n(y)523 1702 y(Lemma)d(2.7,)g FG(ov)9 b FK(\()p FC(i;)14 b(j)5 b FK(\))20 b(+)f FG(ov)10 b FK(\()p FC(k)s(;)k(l)r FK(\))25 b FD(\024)h FG(ov)9 b FK(\()p FC(k)s(;)14 b(j)5 b FK(\))20 b(+)f FG(ov)10 b FK(\()p FC(i;)k(l)r FK(\).)29 b(Th)n(us)g(replacing)f(in)i FC(N)38 b FK(these)523 1802 y(t)n(w)n(o)31 b(edges)g(with)h FC(e)e FK(=)f FC(k)k FD(!)d FC(j)36 b FK(and)c FC(i)d FD(!)h FC(l)j FK(w)n(ould)f(yield)f(an)h(assignmen)n(t)f FC(N)2999 1771 y Fw(0)3053 1802 y FK(that)h(has)523 1901 y(more)g(edges)h(in)g(common)g(with)h FC(M)42 b FK(and)33 b(has)g(no)g(less)f(o)n(v)n(erlap)g(than)h FC(N)9 b FK(.)33 b(This)g(w)n(ould)523 2001 y(con)n(tradict)27 b(our)f(c)n(hoice)h(of)h FC(N)9 b FK(.)1790 b Fu(2)606 2139 y FK(Since)29 b(algorithm)f(MGREED)n (Y)g(\014nds)h(an)f(optimal)h(assignmen)n(t,)f(the)h(string)f(it)h (pro-)523 2239 y(duces)j(is)h(no)f(longer)f(than)h(the)h(string)f(pro)r (duced)g(b)n(y)g(algorithm)f(Concat-Cycles.)g(\(In)523 2338 y(fact,)d(it)g(could)f(b)r(e)h(shorter)f(since)g(it)h(breaks)e (eac)n(h)h(cycle)g(in)h(the)g(optim)n(um)g(p)r(osition.\))523 2651 y FL(2.4)116 b(Impro)m(ving)36 b(to)i(3)26 b Fr(\001)h FL(OPT)o(\()p Fq(S)7 b FL(\))523 2850 y FK(Recall)32 b(that)h(in)f(the)h(last)f(step)h(of)f(algorithm)f(MGREED)n(Y,)h(w)n(e) g(simply)h(concatenate)523 2950 y(all)c(the)h(strings)f(in)g(set)h FC(T)40 b FK(without)30 b(an)n(y)f(compression.)f(In)n(tuitiv)n(ely)-7 b(,)30 b(if)g(w)n(e)f(instead)g(try)523 3050 y(to)i(o)n(v)n(erlap)e (the)i(strings)f(in)h FC(T)12 b FK(,)30 b(w)n(e)h(migh)n(t)f(b)r(e)i (able)e(to)h(ac)n(hiev)n(e)f(a)g(b)r(ound)h(b)r(etter)h(than)523 3149 y(4)22 b FD(\001)g FK(OPT)o(\()p FC(S)5 b FK(\).)33 b(Let)h(TGREED)n(Y)f(denote)g(the)g(algorithm)f(that)h(op)r(erates)f (in)i(the)f(same)523 3249 y(w)n(a)n(y)28 b(as)g(MGREED)n(Y)g(except)h (that)g(in)g(the)g(last)g(step,)f(it)i(merges)d(the)i(strings)f(in)h FC(T)40 b FK(b)n(y)523 3349 y(running)30 b(GREED)n(Y)g(on)g(them.)g(W) -7 b(e)31 b(can)f(sho)n(w)f(that)h(TGREED)n(Y)g(indeed)h(ac)n(hiev)n (es)d(a)523 3448 y(b)r(etter)g(b)r(ound:)g(it)g(pro)r(duces)f(a)g(sup)r (erstring)g(of)g(length)h(at)g(most)f(3)18 b FD(\001)g FK(OPT)o(\()p FC(S)5 b FK(\).)523 3603 y Fv(Theorem)32 b FH(2.11)41 b FG(A)n(lgorithm)22 b(TGREED)n(Y)f(pr)l(o)l(duc)l(es)h(a) g(sup)l(erstring)f(of)i(length)e(at)h(most)523 3703 y FK(3)c FD(\001)h FG(OPT)p FK(\()p FC(S)5 b FK(\))p FG(.)523 3858 y Fv(Pr)n(oof.)38 b FK(Let)h FC(S)46 b FK(=)41 b FD(f)p FC(s)1292 3870 y FB(1)1328 3858 y FC(;)14 b(:)g(:)g(:)g(;)g(s) 1552 3870 y FA(m)1615 3858 y FD(g)38 b FK(b)r(e)h(a)f(set)h(of)f (strings)g(and)g FC(s)h FK(b)r(e)g(the)g(sup)r(erstring)523 3957 y(obtained)34 b(b)n(y)h(TGREED)n(Y)f(on)g FC(S)5 b FK(.)35 b(Let)f FC(n)h FK(=)f(OPT)o(\()p FC(S)5 b FK(\))35 b(b)r(e)g(the)g(length)g(of)f(a)h(shortest)523 4057 y(sup)r(erstring)27 b(of)g FC(S)5 b FK(.)28 b(W)-7 b(e)28 b(sho)n(w)e(that)i FD(j)p FC(s)p FD(j)23 b(\024)g FK(3)p FC(n)p FK(.)606 4157 y(Let)c FC(T)30 b FK(b)r(e)19 b(the)f(set)h(of)g(all)f(\\self-o)n (v)n(erlapping")d(strings)j(obtained)g(b)n(y)g(MGREED)n(Y)h(on)f FC(S)523 4256 y FK(and)23 b FC(C)29 b FK(b)r(e)24 b(the)f(assignmen)n (t)f(created)g(b)n(y)h(MGREED)n(Y.)g(F)-7 b(or)22 b(eac)n(h)h FC(x)g FD(2)g FC(T)12 b FK(,)23 b(let)g FC(c)3053 4268 y FA(x)3118 4256 y FK(denote)523 4356 y(the)j(cycle)e(in)i FC(C)31 b FK(corresp)r(onding)24 b(to)h(string)f FC(x)p FK(,)i(and)f(let)h FC(w)2347 4368 y FA(x)2412 4356 y FK(=)d FC(w)r FK(\()p FC(c)2629 4368 y FA(x)2671 4356 y FK(\))j(b)r(e)f(its)h(w)n(eigh)n(t.)e(F)-7 b(or)523 4456 y(an)n(y)21 b(set)h FC(R)g FK(of)g(strings,)e(de\014ne)i FD(jj)p FC(R)q FD(jj)h FK(=)1758 4393 y Fn(P)1845 4480 y FA(x)p Fw(2)p FA(R)1996 4456 y FD(j)p FC(x)p FD(j)f FK(to)g(b)r(e)g(the)g(total)f(length)h(of)g(the)g(strings)523 4555 y(in)30 b(set)g FC(R)q FK(.)g(Also)f(let)h FC(w)g FK(=)1362 4493 y Fn(P)1450 4580 y FA(x)p Fw(2)p FA(T)1598 4555 y FC(w)1657 4567 y FA(x)1700 4555 y FK(.)g(Since)g(CYC\()p FC(G)2251 4567 y FA(S)2300 4555 y FK(\))d FD(\024)f FK(TSP\()p FC(G)2710 4567 y FA(S)2758 4555 y FK(\))h FD(\024)g FK(OPT)o(\()p FC(S)5 b FK(\),)30 b(w)n(e)523 4655 y(ha)n(v)n(e)c FC(w)g FD(\024)d FC(n)p FK(.)606 4754 y(By)33 b(Lemma)h(2.9,)f(the)h (compression)e(ac)n(hiev)n(ed)g(in)i(a)f(shortest)g(sup)r(erstring)g (of)g FC(T)45 b FK(is)523 4854 y(less)26 b(than)g(2)p FC(w)r FK(,)h(i.e.,)f FD(jj)p FC(T)12 b FD(jj)j(\000)g FC(n)1473 4866 y FA(T)1548 4854 y FD(\024)23 b FK(2)p FC(w)r FK(.)j(By)g(the)h(results)e(in)i([15)o(,)f(16)o(],)h(w)n(e)f (kno)n(w)f(that)h(the)523 4954 y(compression)32 b(ac)n(hiev)n(ed)g(b)n (y)h(GREED)n(Y)g(on)g(set)h FC(T)44 b FK(is)34 b(at)f(least)g(half)h (the)f(compression)523 5053 y(ac)n(hiev)n(ed)26 b(in)i(an)n(y)f(sup)r (erstring)g(of)g FC(T)12 b FK(.)27 b(That)h(is,)602 5208 y FD(jj)p FC(T)12 b FD(jj)17 b(\000)h(j)p FC(s)p FD(j)24 b(\025)e FK(\()p FD(jj)p FC(T)12 b FD(jj)18 b(\000)g FC(n)1387 5220 y FA(T)1439 5208 y FK(\))p FC(=)p FK(2)23 b(=)f FD(jj)p FC(T)12 b FD(jj)18 b(\000)g FC(n)1969 5220 y FA(T)2040 5208 y FD(\000)g FK(\()p FD(jj)p FC(T)12 b FD(jj)18 b(\000)g FC(n)2459 5220 y FA(T)2511 5208 y FK(\))p FC(=)p FK(2)k FD(\025)h(jj)p FC(T)12 b FD(jj)18 b(\000)g FC(n)3041 5220 y FA(T)3111 5208 y FD(\000)g FC(w)r(:)523 5363 y FK(So,)27 b FD(j)p FC(s)p FD(j)d(\024)e FC(n)907 5375 y FA(T)978 5363 y FK(+)c FC(w)r FK(.)p eop end %%Page: 17 27 TeXDict begin 17 26 bop 2121 299 a FF(2.4.)53 b(Impro)n(ving)25 b(to)h(3)18 b Fp(\001)f FF(OPT\()p Fo(S)t FF(\))154 b(17)606 506 y FK(F)-7 b(or)33 b(eac)n(h)g FC(x)h FD(2)g FC(T)12 b FK(,)33 b(let)h FC(s)1406 518 y FA(i)1429 526 y Fx(x)1504 506 y FK(b)r(e)h(the)f(string)f(in)h(cycle)f FC(c)2365 518 y FA(x)2441 506 y FK(that)h(is)g(a)f(pre\014x)g(of)h FC(x)p FK(.)h(Let)523 606 y FC(S)579 576 y Fw(0)633 606 y FK(=)30 b FD(f)p FC(s)809 618 y FA(i)832 626 y Fx(x)873 606 y FD(j)p FC(x)h FD(2)g FC(T)12 b FD(g)p FK(,)30 b FC(n)1266 576 y Fw(0)1320 606 y FK(=)g(OPT)o(\()p FC(S)1684 576 y Fw(0)1707 606 y FK(\),)j FC(S)1851 576 y Fw(00)1923 606 y FK(=)e FD(f)p FG(strings)6 b FK(\()p FC(c)2376 618 y FA(x)2418 606 y FC(;)14 b(i)2484 618 y FA(x)2525 606 y FK(\))p FC(s)2596 618 y FA(i)2619 626 y Fx(x)2661 606 y FD(j)p FC(x)31 b FD(2)g FC(T)12 b FD(g)p FK(,)30 b(and)i FC(n)3220 576 y Fw(00)3293 606 y FK(=)523 706 y(OPT)o(\()p FC(S)792 676 y Fw(00)834 706 y FK(\).)606 805 y(By)e(Claim)g(2.4,)g(a)f(sup)r(erstring)h(for)f FC(S)1838 775 y Fw(00)1911 805 y FK(is)h(also)f(a)h(sup)r(erstring)f (for)h FC(T)12 b FK(,)29 b(so)h FC(n)3071 817 y FA(T)3150 805 y FD(\024)d FC(n)3292 775 y Fw(00)3335 805 y FK(,)523 905 y(where)36 b FC(n)822 917 y FA(T)911 905 y FK(=)h(OPT)o(\()p FC(T)12 b FK(\).)35 b(F)-7 b(or)36 b(an)n(y)f(p)r(erm)n(utation)h FC(\031)j FK(on)d FC(T)12 b FK(,)35 b(w)n(e)h(ha)n(v)n(e)f FD(j)p FC(S)2923 875 y Fw(00)2918 925 y FA(\031)2965 905 y FD(j)i(\024)g(j)p FC(S)3206 875 y Fw(0)3201 925 y FA(\031)3246 905 y FD(j)24 b FK(+)523 942 y Fn(P)611 1029 y FA(x)p Fw(2)p FA(T)759 1005 y FC(w)818 1017 y FA(x)860 1005 y FK(,)30 b(so)f FC(n)1067 974 y Fw(00)1135 1005 y FD(\024)d FC(n)1276 974 y Fw(0)1318 1005 y FK(+)19 b FC(w)r FK(,)31 b(where)d FC(S)1814 974 y Fw(0)1809 1025 y FA(\031)1884 1005 y FK(and)h FC(S)2103 974 y Fw(00)2098 1025 y FA(\031)2175 1005 y FK(are)f(the)i(sup)r(erstrings)e(obtained)h (b)n(y)523 1104 y(o)n(v)n(erlapping)g(the)j(mem)n(b)r(ers)g(of)f FC(S)1629 1074 y Fw(0)1684 1104 y FK(and)g FC(S)1905 1074 y Fw(00)1947 1104 y FK(,)h(resp)r(ectiv)n(ely)-7 b(,)31 b(in)h(the)g(order)e(giv)n(en)h(b)n(y)g FC(\031)s FK(.)523 1204 y(Observ)n(e)26 b(that)i FC(S)1078 1174 y Fw(0)1124 1204 y FD(\022)23 b FC(S)32 b FK(implies)c FC(n)1627 1174 y Fw(0)1673 1204 y FD(\024)23 b FC(n)p FK(.)k(Summing)h(up,)g(w)n(e)f(get)1441 1386 y FC(n)1491 1398 y FA(T)1566 1386 y FD(\024)c FC(n)1704 1352 y Fw(00)1769 1386 y FD(\024)g FC(n)1907 1352 y Fw(0)1948 1386 y FK(+)18 b FC(w)26 b FD(\024)d FC(n)18 b FK(+)g FC(w)r(:)523 1569 y FK(Com)n(bined)27 b(with)h FD(j)p FC(s)p FD(j)c(\024)e FC(n)1352 1581 y FA(T)1423 1569 y FK(+)c FC(w)r FK(,)28 b(this)g(giv)n(es)f FD(j)p FC(s)p FD(j)c(\024)f FC(n)d FK(+)f(2)p FC(w)25 b FD(\024)d FK(3)p FC(n:)637 b Fu(2)523 1926 y FL(2.5)116 b(GREED)m(Y)38 b(ac)m(hiev)m(es)g(linear)f(appro)m (ximation)523 2125 y FK(One)32 b(w)n(ould)f(exp)r(ect)h(that)g(an)g (analysis)e(similar)h(to)h(that)g(of)g(MGREED)n(Y)f(w)n(ould)h(also)523 2225 y(w)n(ork)22 b(for)g(the)h(original)f(GREED)n(Y.)g(This)h(turns)g (out)g(not)g(to)f(b)r(e)i(the)f(case.)f(The)h(analysis)523 2325 y(of)f(GREED)n(Y)f(is)g(sev)n(erely)f(complicated)i(b)n(y)f(the)h (fact)g(that)f(it)h(con)n(tin)n(ues)f(pro)r(cessing)f(the)523 2424 y(\\self-o)n(v)n(erlapping")27 b(strings.)j(MGREED)n(Y)h(w)n(as)f (esp)r(ecially)g(designed)h(to)f(a)n(v)n(oid)g(these)523 2524 y(complications,)22 b(b)n(y)i(separating)d(suc)n(h)i(strings.)g (Let)g FC(GR)q(E)5 b(E)g(D)r(Y)19 b FK(\()p FC(S)5 b FK(\))24 b(denote)f(the)h(length)523 2623 y(of)31 b(the)h(sup)r (erstring)e(pro)r(duced)h(b)n(y)g(GREED)n(Y)h(on)f(a)f(set)i FC(S)5 b FK(.)31 b(It)h(is)f(tempting)h(to)f(claim)523 2723 y(that)1154 2823 y FC(GR)q(E)5 b(E)g(D)r(Y)19 b FK(\()p FC(S)k FD([)c(f)p FC(s)p FD(g)p FK(\))j FD(\024)h FC(GR)q(E)5 b(E)g(D)r(Y)19 b FK(\()p FC(S)5 b FK(\))19 b(+)f FD(j)p FC(s)p FD(j)p FC(:)523 2972 y FK(If)34 b(this)h(w)n(ere)d (true,)i(a)g(simple)g(argumen)n(t)f(w)n(ould)g(extend)h(the)h(4)22 b FD(\001)g FK(OPT)o(\()p FC(S)5 b FK(\))35 b(result)e(for)523 3072 y(MGREED)n(Y)41 b(to)g(GREED)n(Y.)f(But)i(the)f(follo)n(wing)f (coun)n(terexample)f(dispro)n(v)n(es)g(this)523 3171 y(seemingly)27 b(inno)r(cen)n(t)h(claim.)f(Let)1044 3354 y FC(S)h FK(=)22 b FD(f)p FC(ca)1332 3320 y FA(m)1395 3354 y FC(;)14 b(a)1476 3320 y FA(m)p FB(+1)1623 3354 y FC(c)1659 3320 y FA(m)1722 3354 y FC(;)g(c)1795 3320 y FA(m)1858 3354 y FC(b)1894 3320 y FA(m)p FB(+1)2040 3354 y FC(;)g(b)2113 3320 y FA(m)2176 3354 y FC(c)p FD(g)p FC(;)g(s)22 b FK(=)h FC(b)2476 3320 y FA(m)p FB(+1)2623 3354 y FC(a)2667 3320 y FA(m)p FB(+1)2814 3354 y FC(:)523 3537 y FK(No)n(w)38 b FC(GR)q(E)5 b(E)g(D)r(Y)19 b FK(\()p FC(S)5 b FK(\))42 b(=)g FD(j)p FC(ca)1494 3507 y FA(m)p FB(+1)1641 3537 y FC(c)1677 3507 y FA(m)1740 3537 y FC(b)1776 3507 y FA(m)p FB(+1)1922 3537 y FC(c)p FD(j)g FK(=)g(3)p FC(m)25 b FK(+)h(4,)38 b(whereas)g FC(GR)q(E)5 b(E)g(D)r(Y)18 b FK(\()p FC(S)31 b FD([)523 3636 y(f)p FC(s)p FD(g)p FK(\))22 b(=)h FD(j)p FC(b)847 3606 y FA(m)910 3636 y FC(c)946 3606 y FA(m)1009 3636 y FC(b)1045 3606 y FA(m)p FB(+1)1191 3636 y FC(a)1235 3606 y FA(m)p FB(+1)1382 3636 y FC(c)1418 3606 y FA(m)1481 3636 y FC(a)1525 3606 y FA(m)1588 3636 y FD(j)h FK(=)e(6)p FC(m)c FK(+)g(2)23 b FC(>)f FK(\(3)p FC(m)c FK(+)g(4\))h(+)f(\(2)p FC(m)g FK(+)g(2\).)606 3736 y(With)29 b(a)e(more)g(complicated)g(analysis)f(w) n(e)h(will)h(nev)n(ertheless)e(sho)n(w)h(that)523 3902 y Fv(Theorem)32 b FH(2.12)41 b FG(GREED)n(Y)29 b(pr)l(o)l(duc)l(es)h(a) g(string)g(of)h(length)f(at)f(most)h FK(4)18 b FD(\001)g FG(OPT)q FK(\()p FC(S)5 b FK(\))p FG(.)606 4068 y FK(Before)19 b(pro)n(ving)f(the)j(theorem)e(formally)-7 b(,)19 b(w)n(e)h(giv)n(e)f (a)h(sk)n(etc)n(h)f(of)h(the)g(basic)f(idea)h(b)r(ehind)523 4168 y(the)35 b(pro)r(of.)e(If)i(w)n(e)f(w)n(an)n(t)g(to)g(relate)f (the)i(merges)e(done)h(b)n(y)g(GREED)n(Y)g(to)g(an)g(optimal)523 4267 y(assignmen)n(t,)e(w)n(e)g(ha)n(v)n(e)g(to)h(k)n(eep)f(trac)n(k)g (of)h(what)f(happ)r(ens)h(when)g(GREED)n(Y)g(violates)523 4367 y(the)d(maxim)n(um)f(o)n(v)n(erlap)e(principle,)i(i.e.)h(when)f (some)g(self-o)n(v)n(erlap)e(is)i(b)r(etter)h(than)f(the)523 4467 y(o)n(v)n(erlap)k(in)i(GREED)n(Y's)g(merge.)f(One)h(thing)g(to)g (try)g(is)f(to)h(c)n(harge)f(GREED)n(Y)g(some)523 4566 y(extra)e(cost)g(that)h(re\015ects)f(that)h(an)f(optimal)h(assignmen)n (t)e(on)i(the)g(new)f(set)h(of)g(strings)523 4666 y(\(with)20 b(GREED)n(Y's)f(merge\))g(ma)n(y)g(b)r(e)h(somewhat)f(longer)f(than)i (the)f(optimal)h(assignmen)n(t)523 4765 y(on)g(the)h(former)e(set)i (\(in)g(whic)n(h)f(the)h(self-o)n(v)n(erlapping)c(string)j(w)n(ould)g (form)g(a)g(cycle\).)g(If)h(w)n(e)523 4865 y(could)26 b(just)g(b)r(ound)h(these)f(extra)f(costs)g(then)i(w)n(e)e(w)n(ould)h (ha)n(v)n(e)f(a)g(b)r(ound)i(for)e(GREED)n(Y.)523 4965 y(Unfortunately)-7 b(,)33 b(this)g(approac)n(h)e(fails)h(b)r(ecause)g (the)h(self-o)n(v)n(erlapping)d(string)i(ma)n(y)g(b)r(e)523 5064 y(merged)24 b(b)n(y)h(GREED)n(Y)g(in)n(to)f(a)h(larger)e(string)h (whic)n(h)h(itself)h(b)r(ecomes)e(self-o)n(v)n(erlapping,)523 5164 y(and)e(this)h(nesting)g(could)f(go)g(arbitrarily)e(deep.)j(Our)f (pro)r(of)g(concen)n(trates)f(on)h(the)h(inner-)523 5264 y(most)28 b(self-o)n(v)n(erlapping)e(strings)i(only)-7 b(.)28 b(These)g(so)g(called)g(culprits)g(form)g(a)g(linear)g(order)523 5363 y(in)23 b(the)h(\014nal)f(sup)r(erstring.)f(W)-7 b(e)24 b(a)n(v)n(oid)d(the)j(complications)e(of)h(higher)g(lev)n(el)f (self-o)n(v)n(erlaps)p eop end %%Page: 18 28 TeXDict begin 18 27 bop 1599 299 a FF(2.5.)52 b(GREED)n(Y)25 b(ac)n(hiev)n(es)h(linear)h(appro)n(ximation)154 b(18)523 506 y FK(b)n(y)33 b(splitting)h(the)h(analysis)d(in)i(t)n(w)n(o)f (parts.)g(In)h(one)f(part,)g(w)n(e)g(ignore)g(all)g(the)h(original)523 606 y(substrings)i(that)g(connect)h(\014rst)f(to)g(the)h(righ)n(t)f(of) g(a)g(culprit.)h(In)f(the)h(other)f(part,)g(w)n(e)523 706 y(ignore)30 b(all)i(the)g(original)e(substrings)h(that)h(connect)f (\014rst)h(to)f(the)h(left)h(of)e(a)h(culprit.)g(In)523 805 y(eac)n(h)f(case,)f(it)i(b)r(ecomes)f(p)r(ossible)f(to)i(b)r(ound)f (the)h(extra)e(cost.)h(This)g(metho)r(d)h(yields)f(a)523 905 y(b)r(ound)c(of)g(7)17 b FD(\001)f FK(OPT\()p FC(S)5 b FK(\).)27 b(By)f(com)n(bining)h(the)g(t)n(w)n(o)f(analyses)f(in)i(a)g (more)f(clev)n(er)f(w)n(a)n(y)-7 b(,)26 b(w)n(e)523 1005 y(can)e(ev)n(en)g(eliminate)g(the)g(e\013ect)h(of)f(the)h(extra)e (costs)h(and)g(obtain)f(the)i(same)f(4)12 b FD(\001)g FK(OPT)m(\()p FC(S)5 b FK(\))523 1104 y(b)r(ound)28 b(as)f(w)n(e)g (found)h(for)f(MGREED)n(Y.)h(A)g(detailed)f(formal)g(pro)r(of)g(follo)n (ws.)606 1204 y(W)-7 b(e)19 b(will)f(need)h(some)f(notions)g(and)g (lemmas.)g(Think)g(of)h(b)r(oth)f(GREED)n(Y)h(and)f(MGREED)n(Y)523 1303 y(as)25 b(taking)h(a)g(list)g(of)g(all)g(edges)f(sorted)g(b)n(y)h (o)n(v)n(erlap,)e(and)i(going)f(do)n(wn)g(the)i(list)f(deciding)523 1403 y(for)g(eac)n(h)f(edge)g(whether)h(to)g(include)h(it)f(or)g(not.)g (Call)g(an)f(edge)h FG(b)l(etter)35 b FK(\()p FG(worse)6 b FK(\))27 b(if)g(it)f(ap-)523 1503 y(p)r(ears)i(b)r(efore)g(\(after\)) g(another)f(in)i(this)g(list.)f(Better)g(edges)g(ha)n(v)n(e)f(at)h (least)g(the)h(o)n(v)n(erlap)523 1602 y(of)c(w)n(orse)f(ones.)h(Recall) g(that)h(an)f(edge)g(dominates)g(another)g(i\013)h(it)g(is)f(b)r(etter) h(and)f(shares)523 1702 y(its)j(head)f(or)g(tail)g(with)i(the)f(other)f (one.)606 1802 y(A)n(t)h(the)g(end,)g(GREED)n(Y)f(has)g(formed)g(a)h (Hamiltonian)f(path)1571 1980 y FC(s)1610 1992 y FB(1)1670 1980 y FD(!)c FC(s)1815 1992 y FB(2)1876 1980 y FD(!)g(\001)14 b(\001)g(\001)23 b(!)g FC(s)2247 1992 y FA(m)523 2158 y FK(of)37 b(`greedy')e(edges.)h(\(w.l.o.g.,)g(the)h(strings)f(are)f (ren)n(um)n(b)r(ered)h(to)g(re\015ect)h(their)f(order)523 2258 y(in)i(the)g(sup)r(erstring)f(pro)r(duced)g(b)n(y)g(GREED)n(Y.\))h (F)-7 b(or)37 b(con)n(v)n(enience)f(w)n(e)h(will)h(usually)523 2358 y(abbreviate)26 b FC(s)970 2370 y FA(i)1026 2358 y FK(to)h FC(i)p FK(.)h(GREED)n(Y)f(do)r(es)g(not)h(include)g(an)f (edge)g FC(f)36 b FK(i\013)625 2520 y(1.)41 b FC(f)36 b FK(is)27 b(dominated)h(b)n(y)f(an)g(already)g(c)n(hosen)f(edge)h FC(e)p FK(,)h(or)625 2685 y(2.)41 b FC(f)36 b FK(is)27 b(not)h(dominated)f(but)i(it)f(w)n(ould)f(form)g(a)g(cycle.)523 2847 y(Let)39 b(us)h(call)e(the)i(latter)f(\\bad)g(bac)n(k)f(edges";)g (a)h(bad)g(bac)n(k)f(edge)h FC(f)51 b FK(=)42 b FC(j)48 b FD(!)42 b FC(i)d FK(nec-)523 2947 y(essarily)c(has)i FC(i)h FD(\024)g FC(j)5 b FK(.)37 b(Eac)n(h)e(bad)i(bac)n(k)f(edge)g FC(f)47 b FK(=)38 b FC(j)43 b FD(!)c FC(i)d FK(corresp)r(onds)f(to)i(a) f(string)523 3047 y FD(h)p FC(s)594 3059 y FA(i)622 3047 y FC(;)14 b(s)698 3059 y FA(i)p FB(+1)809 3047 y FC(;)g(:)g(:)g(:)g(;)g (s)1033 3059 y FA(j)1068 3047 y FD(i)33 b FK(that,)f(at)h(some)f(p)r (oin)n(t)g(in)h(the)g(execution)f(of)g(GREED)n(Y,)h(has)f(more)523 3146 y(\(self)6 b(\))25 b(o)n(v)n(erlap)d(than)i(the)g(pair)f(that)i (is)e(merged.)h(When)g(GREED)n(Y)g(considers)e FC(f)9 b FK(,)24 b(it)g(has)523 3246 y(already)30 b(c)n(hosen)g(all)h(\(b)r (etter\))h(edges)f(on)g(the)h(greedy)e(path)h(from)g FC(i)g FK(to)g FC(j)5 b FK(,)32 b(but)g(not)f(y)n(et)523 3346 y(the)26 b(\(w)n(orse\))e(edges)g FC(i)14 b FD(\000)g FK(1)21 b FD(!)i FC(i)i FK(and)g FC(j)j FD(!)c FC(j)18 b FK(+)c(1.)24 b(The)i(bad)f(bac)n(k)f(edge)h FC(f)34 b FK(is)25 b(said)f(to)h FG(sp)l(an)523 3445 y FK(the)34 b(closed)f(in)n(terv)-5 b(al)33 b FC(I)1265 3457 y FA(f)1341 3445 y FK(=)f([)p FC(i;)14 b(j)5 b FK(].)33 b(The)h(ab)r(o)n(v)n(e)e (observ)-5 b(ations)32 b(pro)n(vide)g(a)h(pro)r(of)g(of)g(the)523 3545 y(follo)n(wing)27 b(lemma.)523 3709 y Fv(Lemma)32 b FH(2.13)40 b FG(L)l(et)25 b FC(e)g FG(and)h FC(f)34 b FG(b)l(e)25 b(two)h(b)l(ad)g(b)l(ack)g(e)l(dges.)h(The)f(close)l(d)h (intervals)f FC(I)3060 3721 y FA(e)3121 3709 y FG(and)g FC(I)3314 3721 y FA(f)523 3809 y FG(ar)l(e)33 b(either)g(disjoint,)h (or)f(one)f(c)l(ontains)h(the)f(other.)i(If)f FC(I)2344 3821 y FA(e)2407 3809 y FD(\033)28 b FC(I)2536 3821 y FA(f)2612 3809 y FG(then)k FC(e)g FG(is)h(worse)g(than)523 3908 y FC(f)38 b FG(\(thus,)30 b(ov)10 b FK(\()p FC(e)p FK(\))23 b FD(\024)f FG(ov)10 b FK(\()p FC(f)f FK(\))p FG(\).)606 4073 y FK(Th)n(us,)28 b(the)g(in)n(terv)-5 b(als)27 b(of)h(the)g(bad)g(bac)n(k)f(edges)g(are)g(nested)h(and)g(bad) g(bac)n(k)f(edges)g(do)523 4172 y(not)c(cross)f(eac)n(h)h(other.)g FG(Culprits)30 b FK(are)23 b(the)g(minimal)h(\(innermost\))f(suc)n(h)g (in)n(terv)-5 b(als.)23 b(Eac)n(h)523 4272 y(culprit)f([)p FC(i;)14 b(j)5 b FK(])22 b(corresp)r(onds)e(to)i(a)g FG(culprit)j(string)k FD(h)p FC(s)2134 4284 y FA(i)2162 4272 y FC(;)14 b(s)2238 4284 y FA(i)p FB(+1)2350 4272 y FC(;)g(:)g(:)g(:)f(;)h(s)2573 4284 y FA(j)2608 4272 y FD(i)p FK(.)23 b(Note)f(that,)g(b)r(ecause)523 4372 y(of)i(the)g(minimalit)n(y)g(of)f(the)h(culprits,)g(if)g FC(f)32 b FK(=)22 b FC(j)28 b FD(!)23 b FC(i)h FK(is)f(the)h(bac)n(k)f (edge)g(of)h(a)f(culprit)h([)p FC(i;)14 b(j)5 b FK(],)523 4471 y(and)29 b FC(e)g FK(is)h(another)e(bad)h(bac)n(k)g(edge)g(that)g (shares)f(head)i(or)e(tail)h(with)h FC(f)9 b FK(,)29 b(then)h FC(I)3102 4483 y FA(e)3164 4471 y FD(\033)c FC(I)3291 4483 y FA(f)3335 4471 y FK(,)523 4571 y(and)h(therefore)g FC(f)36 b FK(dominates)28 b FC(e)p FK(.)606 4671 y(Call)40 b(the)h(w)n(orst)f(edge)g(b)r(et)n(w)n(een)g(ev)n(ery)f(t)n(w)n(o)h (successiv)n(e)f(culprits)i(on)f(the)h(greedy)523 4770 y(path)36 b(a)f FG(we)l(ak)j(link)9 b FK(.)36 b(Note)g(that)f(w)n(eak)g (links)h(are)e(also)h(w)n(orse)f(than)h(all)h(edges)f(in)g(the)523 4870 y(t)n(w)n(o)g(adjacen)n(t)f(culprits)i(as)e(w)n(ell)h(as)g(their)g (bac)n(k)g(edges.)g(If)g(w)n(e)g(remo)n(v)n(e)f(all)h(the)h(w)n(eak)523 4969 y(links,)e(the)f(greedy)g(path)g(is)h(partitioned)f(in)n(to)g(a)g (set)h(of)f(paths,)h(called)f FG(blo)l(cks)7 b FK(.)34 b(Ev)n(ery)523 5069 y(blo)r(c)n(k)40 b(consists)g(of)h(a)f(nonempt)n(y) h(culprit)g(as)f(the)h(middle)g(segmen)n(t,)f(and)h(\(p)r(ossibly)523 5169 y(empt)n(y\))20 b(left)h(and)f(righ)n(t)f FG(extensions)7 b FK(.)19 b(The)h(set)g(of)g(strings)f(\(no)r(des\))h FC(S)25 b FK(is)19 b(th)n(us)h(partitioned)523 5268 y(in)n(to)39 b(three)f(sets)h FC(S)1151 5280 y FA(l)1176 5268 y FC(;)14 b(S)1264 5280 y FA(m)1327 5268 y FC(;)g(S)1415 5280 y FA(r)1491 5268 y FK(of)38 b(left,)i(middle,)f(and)g(righ)n(t)f (strings.)g(The)h(example)f(in)523 5368 y(Figure)30 b(2.3)g(has)h(7)f (substrings,)g(of)h(whic)n(h)g(2)f(b)n(y)h(itself)g(and)g(the)g(merge)f (of)h(4,)g(5,)f(and)h(6)p eop end %%Page: 19 29 TeXDict begin 19 28 bop 1599 299 a FF(2.5.)52 b(GREED)n(Y)25 b(ac)n(hiev)n(es)h(linear)h(appro)n(ximation)154 b(19)523 698 y @beginspecial 0 @llx 0 @lly 446.399994 @urx 43.200001 @ury 3401 @rwi @setspecial %%BeginDocument: path.ps %! %%Creator: tromp@wolf.cwi.nl (John Tromp,M231,4078,02207-16322) %%Title: path.x (xpic) %%CreationDate: Thu Sep 9 12:20:30 1993 %%Pages: 1 %%BoundingBox: 0 0 446.4 43.2 % (in inches) at 0 0, width 6.2, height 0.6 %%EndComments % Prolog for xpic to PostScript converter % Author: Mark Moraes % $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp % %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH % %s F - change font to fontname % %d S - change size (font size in points) % (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) % %d %d l - lineto % %d %d m - moveto % %d %d s - spline segment % x - flush line, spline % b - box % e - ellipse % %d ss - setscale % %d W - change linewidth % getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH % %d %d flip - translate by %d, PAGEHEIGHT - %d (this % transforms to X windows coordinates) save 50 dict begin /xpic exch def /StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def % Set defaults /fontname /Times-Roman def /ptsize 12 def % halign has the values for MIDLINE, TOPLINE, BOTLINE /halign 3 array def /s {rcurveto} def /x {stroke} def /l {lineto} def /m {moveto} def /b { /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto urx lly lineto urx ury lineto llx ury lineto llx lly lineto stroke } def /mtrx matrix def /e { /yc exch def /xc exch def /yrad exch def /xrad exch def xc xrad add yc moveto /savematrix mtrx currentmatrix def xc yc translate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix stroke } def % The next three take the text string, and moveto the right horiz. position % leaving the string on the stack. /lj {} def /rj {dup stringwidth pop neg 0 rmoveto} def /ce {dup stringwidth pop 2 div neg 0 rmoveto} def % And this is invoked after one of the three above, and % computes the vert. pos, and then displays the string. /t {halign exch get 0 exch rmoveto show newpath} def % Store an array of patterns in /styles - a pattern is an array consisting % of an array and an offset. Corresp to xpic patterns % solid, dotted, short-dashed, long-dashed, dot-dashed /styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] 5 array astore def % change style to arg. /D {stroke styles exch get aload pop setdash newpath} def /W {stroke 0.5 mul setlinewidth newpath} def % fontbox takes a fontname off the stack, and returns an array % containing the values of the bottom line of the bounding box, the % mid line of the bounding box, and the top line of the bounding box % of that font, taken from the baseline, scaled to a font of size 1 /fontbox { findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop /ytop exch def pop /ybot exch def pop /ymid ytop ybot sub 2 div def 0 ybot fm dtransform exch pop % botline dup neg exch % midline - this works better than (ytop-ybot)/2! 0 ytop fm dtransform exch pop exch %topline % now in the order midline, topline, botline. 3 array astore } def % select font /F { dup /fontname exch def fontbox /thisfontbox exch def SF } def % set point size /S {/ptsize exch def SF} def % actually set font /SF { fontname findfont ptsize curscale div scalefont setfont thisfontbox aload pop 1 1 3 { pop ptsize mul curscale div neg 3 1 roll } for halign astore pop } def % sets the scale to 72 / n, where n is on the stack, and stores the value % in curscale for font scaling /curscale 1 def /getpagesize{newpath clippath pathbbox /pageheight exch def /pagewidth exch def pop pop newpath} def /flip{pageheight exch sub translate} def /ss {/curscale exch 72 exch div dup dup scale def} def /land {90 rotate} def StartXpic %%EndProlog 80 ss 0.5 W 2 D 408 16 m 0 0 -4 4 -12 12 s -8 8 -21.3333 13.3333 -40 16 s -18.6667 2.66667 -68 4 -148 4 s -80 0 -129.333 -1.33333 -148 -4 s -18.6667 -2.66667 -36 -12 -52 -28 s 0 D 17 19 m 8 16 l 11 25 l 2 D 8 16 m x 3 W 400 16 m 0 0 -12 4 -36 12 s -24 8 -60 4 -108 -12 s 0 D 266 16 m 256 16 l 263 23 l 2 D 256 16 m x 0.5 W /Times-Roman F 10 S 328 8 m (5) ce 0 t 408 8 m (6) ce 0 t 248 8 m (4) ce 0 t 88 8 m (2) ce 0 t 8 8 m (1) ce 0 t 0 D 16 8 m 80 8 l 0 D 72 12 m 80 8 l 72 5 l 0 D 80 8 m x 3 W 336 8 m 400 8 l 0 D 392 12 m 400 8 l 392 5 l 0 D 400 8 m x 256 8 m 320 8 l 0 D 312 12 m 320 8 l 312 5 l 0 D 320 8 m x 0.5 W 8 8 408 8 e 8 8 328 8 e 8 8 248 8 e 8 8 88 8 e 8 8 8 8 e 416 8 m 480 8 l 0 D 472 12 m 480 8 l 472 5 l 0 D 480 8 m x 488 8 m (7) ce 0 t 8 8 488 8 e 8 8 168 8 e 168 8 m (3) ce 0 t 96 8 m 160 8 l 0 D 152 12 m 160 8 l 152 5 l 0 D 160 8 m x 3 D 176 8 m 240 8 l 0 D 232 12 m 240 8 l 232 5 l 3 D 240 8 m x 3 W 2 D 96 16 m 0 0 1.33333 2.66667 4 8 s 2.66667 5.33333 1.33333 9.33333 -4 12 s -5.33333 2.66667 -10.6667 2.66667 -16 0 s -5.33333 -2.66667 -5.33333 -9.33333 0 -20 s 0 D 80 26 m 80 16 l 73 22 l 2 D 80 16 m x %%Trailer showpage % Trailer for xpic to PostScript converter % $Header: x2ps.tra,v 1.2 89/07/02 15:59:53 moraes Exp $ xpic end restore %%EndDocument @endspecial 912 872 a(FIGURE)26 b(2.3.)h(Culprits)f(and)f(w)n(eak)h (links)g(in)g(Greedy)f(merge)h(path.)523 1136 y FK(form)c(the)i (culprits)e(\(indicated)h(b)n(y)g(thic)n(k)n(er)f(lines\).)h(Bad)f(bac) n(k)g(edges)g(are)f(2)i FD(!)g FK(2,)f(6)h FD(!)g FK(4,)523 1235 y(and)33 b(6)g FD(!)g FK(1.)g(The)h(w)n(eak)f(link)h(3)e FD(!)h FK(4)g(is)h(the)g(w)n(orst)e(edge)h(b)r(et)n(w)n(een)h(culprits) g([2])f(and)523 1335 y([4)p FC(;)14 b FK(5)p FC(;)g FK(6].)23 b(The)h(blo)r(c)n(ks)g(in)g(this)h(example)f(are)f(th)n(us)i([1)p FC(;)14 b FK(2)p FC(;)g FK(3])22 b(and)j([4)p FC(;)14 b FK(5)p FC(;)g FK(6)p FC(;)g FK(7],)22 b(and)i(w)n(e)g(ha)n(v)n(e)523 1435 y FC(S)574 1447 y FA(l)622 1435 y FK(=)f FD(f)p FK(1)p FD(g)p FC(;)14 b(S)924 1447 y FA(m)1009 1435 y FK(=)22 b FD(f)p FK(2)p FC(;)14 b FK(4)p FC(;)g FK(5)p FC(;)g FK(6)p FD(g)p FC(;)g(S)1547 1447 y FA(r)1604 1435 y FK(=)22 b FD(f)p FK(3)p FC(;)14 b FK(7)p FD(g)p FK(.)606 1534 y(The)28 b(follo)n(wing)e(lemma)i(sho)n(ws)e(that)i(a)g(bad)f(bac) n(k)g(edge)g(m)n(ust)h(b)r(e)g(from)f(a)g(middle)i(or)523 1634 y(righ)n(t)e(no)r(de)h(to)f(a)g(middle)h(or)f(left)h(no)r(de.)523 1800 y Fv(Lemma)k FH(2.14)40 b FG(L)l(et)29 b FC(f)i FK(=)23 b FC(j)28 b FD(!)23 b FC(i)29 b FG(b)l(e)g(a)g(b)l(ad)h(b)l (ack)g(e)l(dge.)g(No)l(de)f FC(i)g FG(is)g(either)h(a)f(left)h(no)l(de) f(or)523 1899 y(the)k(\014rst)g(no)l(de)h(of)g(a)g(culprit.)g(No)l(de)f FC(j)39 b FG(is)33 b(either)h(a)g(right)g(no)l(de)g(or)f(the)h(last)f (no)l(de)h(of)g(a)523 1999 y(culprit.)523 2165 y Fv(Pr)n(oof.)24 b FK(Let)h FC(c)e FK(=)g([)p FC(k)s(;)14 b(l)r FK(])24 b(b)r(e)i(the)f(leftmost)g(culprit)h(in)f FC(I)2272 2177 y FA(f)2315 2165 y FK(.)g(No)n(w)g(either)g FC(i)d FK(=)h FC(k)28 b FK(is)d(the)g(\014rst)523 2265 y(no)r(de)g(of)f FC(c)p FK(,)g(or)g FC(i)f(<)f(k)28 b FK(is)c(in)h(the)f(left)i (extension)e(of)g FC(c)p FK(,)g(or)g FC(i)f(<)f(k)28 b FK(is)c(in)h(the)g(righ)n(t)e(extension)523 2364 y(of)36 b(the)h(culprit)g FC(c)1091 2334 y Fw(0)1150 2364 y FK(to)f(the)h(left) g(of)g FC(c)p FK(.)f(In)g(the)h(latter)f(case)g(ho)n(w)n(ev)n(er,)e FC(I)2835 2376 y FA(f)2915 2364 y FK(includes)i(the)523 2464 y(w)n(eak)31 b(link,)g(whic)n(h)h(b)n(y)f(de\014nition)h(is)g(w)n (orse)e(than)h(all)h(edges)e(b)r(et)n(w)n(een)i(the)g(culprits)f FC(c)3334 2434 y Fw(0)523 2564 y FK(and)25 b FC(c)p FK(,)g(including)h (the)g(edge)e FC(i)14 b FD(\000)g FK(1)22 b FD(!)h FC(i)p FK(.)i(This)g(con)n(tradicts)f(the)i(observ)-5 b(ation)24 b(preceding)523 2663 y(Lemma)j(2.13.)g(A)h(similar)e(argumen)n(t)h (holds)g(for)g FC(s)2135 2675 y FA(j)2170 2663 y FK(.)1103 b Fu(2)606 2813 y FK(Let)28 b FC(C)814 2825 y FA(m)906 2813 y FK(b)r(e)g(the)h(assignmen)n(t)e(on)g(the)i(set)f FC(S)2031 2825 y FA(m)2122 2813 y FK(of)g(middle)g(strings)g(\(no)r (des\))g(that)g(has)523 2912 y(one)22 b(cycle)h(for)f(eac)n(h)g (culprit,)h(consisting)f(of)h(the)g(greedy)f(edges)g(together)g(with)h (the)h(bac)n(k)523 3012 y(edge)g(of)g(the)h(culprit.)g(If)g(w)n(e)f (consider)f(the)i(application)f(of)g(the)h(algorithm)e(MGREED)n(Y)523 3112 y(on)32 b(the)g(subset)f(of)h(strings)f FC(S)1471 3124 y FA(m)1534 3112 y FK(,)h(it)g(is)g(easy)f(to)g(see)h(that)g(the)g (algorithm)e(will)i(actually)523 3211 y(construct)24 b(the)i(assignmen)n(t)d FC(C)1509 3223 y FA(m)1573 3211 y FK(.)i(Theorem)f(2.10)f(then)j(implies)f(the)g(follo)n(wing)f(lemma.) 523 3377 y Fv(Lemma)32 b FH(2.15)40 b FC(C)1103 3389 y FA(m)1196 3377 y FG(is)30 b(an)g(optimal)h(assignment)f(on)g(the)g (set)f FC(S)2571 3389 y FA(m)2664 3377 y FG(of)h(midd)t(le)i(strings.) 606 3543 y FK(Let)h(the)g(graph)f FC(G)1214 3555 y FA(l)1272 3543 y FK(=)f(\()p FC(V)1448 3555 y FA(l)1474 3543 y FC(;)14 b(E)1572 3555 y FA(l)1598 3543 y FK(\))33 b(consist)f(of)h(the) g(left/middle)h(part)e(of)h(all)f(blo)r(c)n(ks)g(in)523 3643 y(the)d(greedy)f(path,)i(i.e.)f FC(V)1336 3655 y FA(l)1387 3643 y FK(=)c FC(S)1528 3655 y FA(l)1573 3643 y FD([)20 b FC(S)1699 3655 y FA(m)1791 3643 y FK(and)29 b FC(E)2015 3655 y FA(l)2070 3643 y FK(is)g(the)g(set)g(of)g(non-w)n (eak)f(greedy)g(edges)523 3743 y(b)r(et)n(w)n(een)20 b(no)r(des)f(of)h FC(V)1196 3755 y FA(l)1222 3743 y FK(.)f(Let)h FC(M)1486 3755 y FA(l)1531 3743 y FK(b)r(e)g(a)f(maxim)n(um)g(o)n(v)n (erlap)f(assignmen)n(t)h(on)g FC(V)2932 3755 y FA(l)2958 3743 y FK(,)h(as)f(created)523 3842 y(b)n(y)31 b(MGREED)n(Y)f(on)h(the) g(ordered)f(sublist)h(of)g(edges)f(in)h FC(V)2418 3854 y FA(l)2464 3842 y FD(\002)21 b FC(V)2598 3854 y FA(l)2624 3842 y FK(.)31 b(Let)g FC(V)2878 3854 y FA(r)2943 3842 y FK(=)d FC(S)3087 3854 y FA(m)3171 3842 y FD([)21 b FC(S)3298 3854 y FA(r)3335 3842 y FK(,)523 3942 y(and)30 b(de\014ne)h(similarly)e(the)i(graph)e FC(G)1721 3954 y FA(r)1786 3942 y FK(=)e(\()p FC(V)1958 3954 y FA(r)1995 3942 y FC(;)14 b(E)2093 3954 y FA(r)2130 3942 y FK(\))31 b(and)f(the)h(optimal)f(assignmen)n(t)f FC(M)3321 3954 y FA(r)523 4041 y FK(on)39 b(the)g(righ)n(t/middle)f(strings.)g(Let)h FC(l)1790 4053 y FA(c)1862 4041 y FK(b)r(e)g(the)h(sum)f(of)f(the)i (lengths)e(of)h(all)g(culprit)523 4141 y(strings.)32 b(De\014ne)h FC(l)1107 4153 y FA(l)1163 4141 y FK(=)1259 4079 y Fn(P)1346 4166 y FA(i)p Fw(2)p FA(S)1455 4175 y Fx(l)1497 4141 y FG(d)9 b FK(\()p FC(s)1619 4153 y FA(i)1647 4141 y FC(;)14 b(s)1723 4153 y FA(i)p FB(+1)1835 4141 y FK(\))33 b(as)e(the)i(total)f(length)h(of)f(all)g(left)h (extensions)523 4253 y(and)i FC(l)717 4265 y FA(r)788 4253 y FK(=)888 4191 y Fn(P)976 4278 y FA(i)p Fw(2)p FA(S)1085 4286 y Fx(r)1136 4253 y FG(d)9 b FK(\()p FC(s)1258 4223 y FA(R)1258 4275 y(i)1313 4253 y FC(;)14 b(s)1389 4223 y FA(R)1389 4275 y(i)p Fw(\000)p FB(1)1501 4253 y FK(\))35 b(as)g(the)g(total)f(length)h(of)g(all)g(righ)n(t)f (extensions.)g(\(Here)523 4364 y FC(x)570 4334 y FA(R)664 4364 y FK(denotes)39 b(the)g(rev)n(ersal)e(of)i(string)f FC(x)p FK(.\))i(The)f(length)g(of)g(the)g(string)f(pro)r(duced)h(b)n(y) 523 4464 y(GREED)n(Y)30 b(is)g FC(l)1027 4476 y FA(l)1072 4464 y FK(+)20 b FC(l)1182 4476 y FA(c)1235 4464 y FK(+)g FC(l)1345 4476 y FA(r)1402 4464 y FD(\000)f FC(o)1526 4476 y FA(w)1580 4464 y FK(,)30 b(where)g FC(o)1916 4476 y FA(w)2000 4464 y FK(is)g(the)g(summed)g(blo)r(c)n(k)g(o)n(v)n(erlap)e (\(i.e.)i(the)523 4564 y(sum)e(of)f(the)h(o)n(v)n(erlaps)e(of)h(the)h (w)n(eak)f(links\).)606 4663 y(Denoting)33 b(the)h(o)n(v)n(erlap)1414 4601 y Fn(P)1501 4688 y FA(e)p Fw(2)p FA(E)1647 4663 y FG(ov)10 b FK(\()p FC(e)p FK(\))34 b(of)f(a)g(set)h(of)f(edges)g FC(E)38 b FK(as)33 b FG(ov)10 b FK(\()p FC(E)5 b FK(\),)34 b(de\014ne)f(the)523 4763 y(cost)27 b(of)h(a)f(set)h(of)f(edges)g FC(E)33 b FK(on)27 b(a)g(set)h(of)f(strings)g(\(no)r(des\))h FC(V)46 b FK(as)1495 4945 y FG(c)l(ost)8 b FK(\()p FC(E)d FK(\))23 b(=)g FD(jj)p FC(V)c FD(jj)g(\000)f FG(ov)9 b FK(\()p FC(E)c FK(\))p FC(:)523 5128 y FK(Note)26 b(that)g(the)g (distance)f(plus)h(o)n(v)n(erlap)e(of)i(a)f(string)g FC(s)h FK(to)f(another)g(equals)g FD(j)p FC(s)p FD(j)p FK(.)h(Because)523 5228 y(an)i(assignmen)n(t)f(\(e.g.)h FC(M)1333 5240 y FA(l)1386 5228 y FK(or)g FC(M)1570 5240 y FA(r)1606 5228 y FK(\))h(has)e(an)h(edge)g(from)g(eac)n(h)f(no)r(de,) h(its)g(cost)g(equals)g(its)523 5327 y(distance)g(w)n(eigh)n(t.)g (Since)g FC(V)1399 5339 y FA(l)1454 5327 y FK(and)g FC(V)1664 5339 y FA(r)1730 5327 y FK(are)f(subsets)h(of)h FC(S)k FK(and)28 b FC(M)2580 5339 y FA(l)2634 5327 y FK(and)g FC(M)2877 5339 y FA(r)2942 5327 y FK(are)f(optimal)p eop end %%Page: 20 30 TeXDict begin 20 29 bop 1599 299 a FF(2.5.)52 b(GREED)n(Y)25 b(ac)n(hiev)n(es)h(linear)h(appro)n(ximation)154 b(20)523 755 y @beginspecial 0 @llx 0 @lly 446.399994 @urx 52.200001 @ury 3401 @rwi @setspecial %%BeginDocument: path2.ps %! %%Creator: tromp@wolf.cwi.nl (John Tromp,M231,4078,02207-16322) %%Title: path2.x (xpic) %%CreationDate: Thu Sep 9 12:20:35 1993 %%Pages: 1 %%BoundingBox: 0 0 446.4 52.2 % (in inches) at 0 0, width 6.2, height 0.725 %%EndComments % Prolog for xpic to PostScript converter % Author: Mark Moraes % $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp % %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH % %s F - change font to fontname % %d S - change size (font size in points) % (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) % %d %d l - lineto % %d %d m - moveto % %d %d s - spline segment % x - flush line, spline % b - box % e - ellipse % %d ss - setscale % %d W - change linewidth % getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH % %d %d flip - translate by %d, PAGEHEIGHT - %d (this % transforms to X windows coordinates) save 50 dict begin /xpic exch def /StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def % Set defaults /fontname /Times-Roman def /ptsize 12 def % halign has the values for MIDLINE, TOPLINE, BOTLINE /halign 3 array def /s {rcurveto} def /x {stroke} def /l {lineto} def /m {moveto} def /b { /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto urx lly lineto urx ury lineto llx ury lineto llx lly lineto stroke } def /mtrx matrix def /e { /yc exch def /xc exch def /yrad exch def /xrad exch def xc xrad add yc moveto /savematrix mtrx currentmatrix def xc yc translate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix stroke } def % The next three take the text string, and moveto the right horiz. position % leaving the string on the stack. /lj {} def /rj {dup stringwidth pop neg 0 rmoveto} def /ce {dup stringwidth pop 2 div neg 0 rmoveto} def % And this is invoked after one of the three above, and % computes the vert. pos, and then displays the string. /t {halign exch get 0 exch rmoveto show newpath} def % Store an array of patterns in /styles - a pattern is an array consisting % of an array and an offset. Corresp to xpic patterns % solid, dotted, short-dashed, long-dashed, dot-dashed /styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] 5 array astore def % change style to arg. /D {stroke styles exch get aload pop setdash newpath} def /W {stroke 0.5 mul setlinewidth newpath} def % fontbox takes a fontname off the stack, and returns an array % containing the values of the bottom line of the bounding box, the % mid line of the bounding box, and the top line of the bounding box % of that font, taken from the baseline, scaled to a font of size 1 /fontbox { findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop /ytop exch def pop /ybot exch def pop /ymid ytop ybot sub 2 div def 0 ybot fm dtransform exch pop % botline dup neg exch % midline - this works better than (ytop-ybot)/2! 0 ytop fm dtransform exch pop exch %topline % now in the order midline, topline, botline. 3 array astore } def % select font /F { dup /fontname exch def fontbox /thisfontbox exch def SF } def % set point size /S {/ptsize exch def SF} def % actually set font /SF { fontname findfont ptsize curscale div scalefont setfont thisfontbox aload pop 1 1 3 { pop ptsize mul curscale div neg 3 1 roll } for halign astore pop } def % sets the scale to 72 / n, where n is on the stack, and stores the value % in curscale for font scaling /curscale 1 def /getpagesize{newpath clippath pathbbox /pageheight exch def /pagewidth exch def pop pop newpath} def /flip{pageheight exch sub translate} def /ss {/curscale exch 72 exch div dup dup scale def} def /land {90 rotate} def StartXpic %%EndProlog 80 ss 0.5 W /Times-Roman F 10 S 488 8 m (7) ce 0 t 408 8 m (6) ce 0 t 328 8 m (5) ce 0 t 248 8 m (4) ce 0 t 168 8 m (3) ce 0 t 88 8 m (2) ce 0 t 0 D 96 8 m 160 8 l 0 D 152 12 m 160 8 l 152 5 l 0 D 160 8 m x 416 8 m 480 8 l 0 D 472 12 m 480 8 l 472 5 l 0 D 480 8 m x 3 W 336 8 m 400 8 l 0 D 392 12 m 400 8 l 392 5 l 0 D 400 8 m x 256 8 m 320 8 l 0 D 312 12 m 320 8 l 312 5 l 0 D 320 8 m x 0.5 W 8 8 488 8 e 8 8 408 8 e 8 8 328 8 e 8 8 248 8 e 8 8 168 8 e 8 8 88 8 e 8 8 8 48 e 8 8 88 48 e 8 8 248 48 e 8 8 328 48 e 8 8 408 48 e 3 W 256 48 m 320 48 l 0 D 312 52 m 320 48 l 312 45 l 0 D 320 48 m x 336 48 m 400 48 l 0 D 392 52 m 400 48 l 392 45 l 0 D 400 48 m x 0.5 W 16 48 m 80 48 l 0 D 72 52 m 80 48 l 72 45 l 0 D 80 48 m x 8 48 m (1) ce 0 t 88 48 m (2) ce 0 t 248 48 m (4) ce 0 t 328 48 m (5) ce 0 t 408 48 m (6) ce 0 t 3 D 176 16 m 240 40 l 0 D 231 41 m 240 40 l 234 34 l 3 D 240 40 m x %%Trailer showpage % Trailer for xpic to PostScript converter % $Header: x2ps.tra,v 1.2 89/07/02 15:59:53 moraes Exp $ xpic end restore %%EndDocument @endspecial 820 929 a(FIGURE)25 b(2.4.)i(Left/middle)f(and)g (middle/righ)n(t)g(parts)g(with)g(w)n(eak)g(links.)523 1191 y FK(assignmen)n(ts,)g(w)n(e)h(ha)n(v)n(e)f FG(c)l(ost)8 b FK(\()p FC(M)1578 1203 y FA(l)1603 1191 y FK(\))23 b FD(\024)g FC(n)k FK(and)g FG(c)l(ost)8 b FK(\()p FC(M)2243 1203 y FA(r)2280 1191 y FK(\))23 b FD(\024)g FC(n)p FK(.)k(F)-7 b(or)27 b FC(E)2733 1203 y FA(l)2786 1191 y FK(and)g FC(E)3008 1203 y FA(r)3072 1191 y FK(w)n(e)g(ha)n(v)n(e)523 1290 y(that)h FG(c)l(ost)8 b FK(\()p FC(E)942 1302 y FA(l)968 1290 y FK(\))23 b(=)g FC(l)1136 1302 y FA(l)1179 1290 y FK(+)18 b FC(l)1287 1302 y FA(c)1349 1290 y FK(and)27 b FG(c)l(ost)8 b FK(\()p FC(E)1749 1302 y FA(r)1786 1290 y FK(\))24 b(=)e FC(l)1954 1302 y FA(r)2009 1290 y FK(+)c FC(l)2117 1302 y FA(c)2151 1290 y FK(.)606 1390 y(W)-7 b(e)28 b(ha)n(v)n(e)e(established)i(the)g(follo)n(wing)e (\(in\)equalities:)786 1565 y FC(l)811 1577 y FA(l)855 1565 y FK(+)18 b FC(l)963 1577 y FA(c)1015 1565 y FK(+)g FC(l)1123 1577 y FA(r)1242 1565 y FK(=)83 b(\()p FC(l)1447 1577 y FA(l)1491 1565 y FK(+)18 b FC(l)1599 1577 y FA(c)1632 1565 y FK(\))h(+)f(\()p FC(l)1823 1577 y FA(c)1876 1565 y FK(+)g FC(l)1984 1577 y FA(r)2020 1565 y FK(\))h FD(\000)f FC(l)2179 1577 y FA(c)1242 1690 y FK(=)83 b FG(c)l(ost)8 b FK(\()p FC(E)1629 1702 y FA(l)1655 1690 y FK(\))18 b(+)g FG(c)l(ost)8 b FK(\()p FC(E)2027 1702 y FA(r)2065 1690 y FK(\))18 b FD(\000)g FC(l)2223 1702 y FA(c)1242 1814 y FK(=)83 b FD(jj)p FC(V)1484 1826 y FA(l)1510 1814 y FD(jj)18 b(\000)g FG(ov)10 b FK(\()p FC(E)1840 1826 y FA(l)1866 1814 y FK(\))19 b(+)f FD(jj)p FC(V)2094 1826 y FA(r)2131 1814 y FD(jj)h(\000)f FG(ov)9 b FK(\()p FC(E)2461 1826 y FA(r)2499 1814 y FK(\))18 b FD(\000)g FC(l)2657 1826 y FA(c)1242 1939 y FK(=)83 b FG(c)l(ost)8 b FK(\()p FC(M)1649 1951 y FA(l)1674 1939 y FK(\))19 b(+)f FG(ov)9 b FK(\()p FC(M)2010 1951 y FA(l)2036 1939 y FK(\))18 b FD(\000)g FG(ov)10 b FK(\()p FC(E)2352 1951 y FA(l)2378 1939 y FK(\))19 b(+)1390 2063 y FG(c)l(ost)8 b FK(\()p FC(M)1649 2075 y FA(r)1685 2063 y FK(\))19 b(+)f FG(ov)10 b FK(\()p FC(M)2022 2075 y FA(r)2058 2063 y FK(\))19 b FD(\000)f FG(ov)9 b FK(\()p FC(E)2374 2075 y FA(r)2412 2063 y FK(\))18 b FD(\000)h FC(l)2571 2075 y FA(c)1242 2188 y FD(\024)83 b FK(2)p FC(n)18 b FK(+)g FG(ov)9 b FK(\()p FC(M)1785 2200 y FA(l)1811 2188 y FK(\))18 b FD(\000)g FG(ov)10 b FK(\()p FC(E)2127 2200 y FA(l)2153 2188 y FK(\))19 b(+)f FG(ov)9 b FK(\()p FC(M)2489 2200 y FA(r)2526 2188 y FK(\))19 b FD(\000)f FG(ov)9 b FK(\()p FC(E)2842 2200 y FA(r)2879 2188 y FK(\))19 b FD(\000)f FC(l)3038 2200 y FA(c)3072 2188 y FC(:)606 2363 y FK(W)-7 b(e)28 b(pro)r(ceed)g(b)n(y)f(b)r(ounding)h(the)h(o)n(v)n(erlap)c (di\013erences)j(in)g(the)h(ab)r(o)n(v)n(e)d(equation.)h(Our)523 2462 y(basic)36 b(idea)f(is)i(to)f(c)n(harge)e(the)j(o)n(v)n(erlap)d (of)i(eac)n(h)f(edge)h(of)g FC(M)45 b FK(to)36 b(an)g(edge)f(of)i FC(E)k FK(or)35 b(a)523 2562 y(w)n(eak)f(link)i(or)f(the)g(bac)n(k)g (edge)g(of)g(a)h(culprit)f(in)h(a)f(w)n(a)n(y)f(suc)n(h)h(that)h(ev)n (ery)e(edge)h(of)h FC(E)523 2662 y FK(and)27 b(ev)n(ery)e(w)n(eak)h (link)h(is)g(c)n(harged)e(at)i(most)g(once)f(and)h(the)g(bac)n(k)f (edge)h(of)g(eac)n(h)f(culprit)523 2761 y(is)31 b(c)n(harged)e(at)h (most)h(t)n(wice.)g(This)g(is)f(ac)n(hiev)n(ed)g(through)g(com)n (bining)g(the)h(left/middle)523 2861 y(and)23 b(middle/righ)n(t)g (parts)g(carefully)g(as)g(sho)n(wn)f(b)r(elo)n(w.)h(F)-7 b(or)23 b(con)n(v)n(enience,)g(w)n(e)g(will)g(refer)523 2960 y(to)32 b(the)g(union)f(op)r(eration)g(for)g(m)n(ultisets)h(\()p FG(i.e.)p FK(,)i(allo)n(wing)c(duplicates\))i(as)f(the)h FG(disjoint)523 3060 y(union)p FK(.)606 3160 y(Let)22 b FC(V)41 b FK(b)r(e)22 b(the)g(disjoin)n(t)g(union)f(of)h FC(V)1733 3172 y FA(l)1781 3160 y FK(and)f FC(V)1984 3172 y FA(r)2021 3160 y FK(,)h(let)g FC(E)27 b FK(b)r(e)22 b(the)g(disjoin)n(t)g(union)g(of)f FC(E)3176 3172 y FA(l)3224 3160 y FK(and)523 3259 y FC(E)584 3271 y FA(r)621 3259 y FK(,)26 b(and)f(let)h FC(G)d FK(=)g(\()p FC(V)5 b(;)14 b(E)5 b FK(\))26 b(b)r(e)g(the)g(disjoin)n(t)f(union)h(of)f FC(G)2300 3271 y FA(l)2352 3259 y FK(and)g FC(G)2576 3271 y FA(r)2613 3259 y FK(.)h(Th)n(us)f(eac)n(h)g(string)f(in)523 3359 y FC(S)574 3371 y FA(l)619 3359 y FD([)c FC(S)745 3371 y FA(r)812 3359 y FK(o)r(ccurs)29 b(once,)g(while)h(eac)n(h)f (string)g(in)g FC(S)2080 3371 y FA(m)2173 3359 y FK(o)r(ccurs)g(t)n (wice)g(in)h FC(G)p FK(.)g(W)-7 b(e)30 b(mo)r(dify)h FC(E)523 3459 y FK(to)g(tak)n(e)f(adv)-5 b(an)n(tage)29 b(of)h(the)h(blo)r(c)n(k)g(o)n(v)n(erlaps.)d(Add)j(eac)n(h)f(w)n(eak)g (link)g(to)h FC(E)36 b FK(as)30 b(an)g(edge)523 3558 y(from)j(the)g(last)g(no)r(de)g(in)g(the)h(corresp)r(onding)d (middle/righ)n(t)h(path)h(of)g FC(G)2888 3570 y FA(r)2959 3558 y FK(to)g(the)g(\014rst)523 3658 y(no)r(de)26 b(of)g(the)g (corresp)r(onding)f(left/middle)h(path)g(of)g FC(G)2268 3670 y FA(l)2294 3658 y FK(.)g(This)g(pro)r(cedure)f(yields)h(a)g(new) 523 3758 y(set)31 b(of)f(edges)g FC(E)1044 3727 y Fw(0)1068 3758 y FK(.)h(Its)f(o)n(v)n(erlap)f(equals)h FG(ov)10 b FK(\()p FC(E)1982 3727 y Fw(0)2005 3758 y FK(\))29 b(=)f FG(ov)9 b FK(\()p FC(E)2341 3770 y FA(l)2367 3758 y FK(\))21 b(+)f FG(ov)10 b FK(\()p FC(E)2688 3770 y FA(r)2725 3758 y FK(\))21 b(+)f FC(o)2903 3770 y FA(w)2957 3758 y FK(.)31 b(A)g(picture)523 3857 y(of)d(\()p FC(V)5 b(;)14 b(E)806 3827 y Fw(0)829 3857 y FK(\))28 b(for)f(our)g(previous)g (example)g(is)g(giv)n(en)g(in)h(Figure)f(2.4.)606 3957 y(Let)39 b FC(M)48 b FK(b)r(e)40 b(the)g(disjoin)n(t)f(union)g(of)h FC(M)1912 3969 y FA(l)1976 3957 y FK(and)f FC(M)2230 3969 y FA(r)2267 3957 y FK(,)g(an)g(assignmen)n(t)f(on)h(graph)f FC(G)p FK(.)523 4056 y(Its)30 b(o)n(v)n(erlap)d(equals)i FG(ov)10 b FK(\()p FC(M)f FK(\))26 b(=)g FG(ov)10 b FK(\()p FC(M)1756 4068 y FA(l)1781 4056 y FK(\))20 b(+)f FG(ov)10 b FK(\()p FC(M)2120 4068 y FA(r)2157 4056 y FK(\).)30 b(Ev)n(ery)d(edge)j(of)f FC(M)38 b FK(connects)30 b(t)n(w)n(o)523 4156 y FC(V)571 4168 y FA(l)631 4156 y FK(no)r(des)k(or)f(t)n(w)n(o)g FC(V)1190 4168 y FA(r)1261 4156 y FK(no)r(des;)h(th)n(us,)g(all)g (edges)f(of)h FC(M)43 b FK(satisfy)34 b(the)g(h)n(yp)r(othesis)f(of)h (the)523 4256 y(follo)n(wing)27 b(lemma.)523 4419 y Fv(Lemma)32 b FH(2.16)40 b FG(L)l(et)c FC(N)46 b FG(b)l(e)36 b(any)h(assignment)g (on)f FC(V)19 b FG(.)37 b(L)l(et)g FC(e)e FK(=)g FC(t)g FD(!)h FC(h)g FG(b)l(e)h(an)f(e)l(dge)i(of)523 4518 y FC(N)27 b FD(n)18 b FC(E)743 4488 y Fw(0)796 4518 y FG(that)30 b(is)g(not)g(in)f FC(V)1351 4530 y FA(r)1407 4518 y FD(\002)18 b FC(V)1538 4530 y FA(l)1564 4518 y FG(.)30 b(Then)g FC(e)g FG(is)g(dominate)l(d)h(by)f(either)621 4678 y(1.)43 b(an)29 b(adjac)l(ent)i FC(E)1244 4648 y Fw(0)1297 4678 y FG(e)l(dge,)g(or)621 4841 y(2.)43 b(a)30 b(culprit's)g(b)l(ack)h(e)l (dge)f(with)h(which)g(it)f(shar)l(es)g(the)g(he)l(ad)h FC(h)e FG(and)i FC(h)23 b FD(2)g FC(V)3004 4853 y FA(r)3041 4841 y FG(,)30 b(or)621 5004 y(3.)43 b(a)30 b(culprit's)g(b)l(ack)h(e)l (dge)f(with)h(which)g(it)f(shar)l(es)g(the)g(tail)g FC(t)g FG(and)g FC(t)23 b FD(2)h FC(V)2924 5016 y FA(l)2950 5004 y FG(.)523 5164 y Fv(Pr)n(oof.)i FK(Supp)r(ose)h(\014rst)f(that)h FC(e)f FK(corresp)r(onds)f(to)h(a)g(bad)h(bac)n(k)e(edge.)h(By)h(Lemma) f(2.14,)523 5264 y FC(h)g FK(corresp)r(onds)e(to)h(a)h(left)g(no)r(de)g (or)f(to)h(the)g(\014rst)g(no)r(de)g(of)f(a)h(culprit.)g(In)g(the)g (latter)g(case,)523 5363 y FC(e)h FK(is)g(dominated)h(b)n(y)f(the)g (bac)n(k)g(edge)g(of)g(the)g(culprit)h(\(see)f(the)h(commen)n(t)f (after)g(Lemma)p eop end %%Page: 21 31 TeXDict begin 21 30 bop 1599 299 a FF(2.5.)52 b(GREED)n(Y)25 b(ac)n(hiev)n(es)h(linear)h(appro)n(ximation)154 b(21)523 506 y FK(2.13\).)25 b(Therefore,)f(either)i FC(h)g FK(is)f(the)h (\014rst)g(no)r(de)g(of)f(a)h(culprit)g(in)g FC(V)2617 518 y FA(r)2680 506 y FK(\(and)g(case)e(2)i(holds\),)523 606 y(or)h(else)h FC(h)c FD(2)h FC(V)983 618 y FA(l)1009 606 y FK(.)j(Similarly)-7 b(,)28 b(either)g FC(t)h FK(is)f(the)h(last)f (no)r(de)g(of)g(a)g(culprit)h(in)f FC(V)2891 618 y FA(l)2945 606 y FK(\(and)h(case)e(3)523 706 y(holds\))32 b(or)f(else)h FC(t)f FD(2)f FC(V)1239 718 y FA(r)1277 706 y FK(.)i(Since)g FC(e)g FK(is)g(not)g(in)g FC(V)2013 718 y FA(r)2072 706 y FD(\002)21 b FC(V)2206 718 y FA(l)2232 706 y FK(,)32 b(it)h(follo)n(ws)e(then)h(that)h(case)e(2)h(or)523 805 y(case)25 b(3)h(holds.)g(\(Note)g(that)g(if)h FC(e)f FK(is)f(in)i(fact)f(the)g(bac)n(k)g(edge)f(of)h(some)g(culprit,)g(then) g(b)r(oth)523 905 y(cases)h(2)g(and)g(3)g(hold.\))606 1005 y(Supp)r(ose)36 b(that)f FC(e)g FK(do)r(es)h(not)f(corresp)r(ond)f (to)h(a)g(bad)g(bac)n(k)g(edge.)g(Then)h FC(e)f FK(m)n(ust)g(b)r(e)523 1104 y(dominated)d(b)n(y)g(some)g(greedy)f(edge)g(since)h(it)h(w)n(as)e (not)i(c)n(hosen)e(b)n(y)h(GREED)n(Y.)g(If)g(the)523 1204 y(greedy)27 b(edge)h(dominating)g FC(e)g FK(is)g(in)g FC(E)1732 1174 y Fw(0)1784 1204 y FK(then)h(w)n(e)f(ha)n(v)n(e)f(case)g (1.)h(If)h(it)g(is)f(not)g(in)g FC(E)3121 1174 y Fw(0)3145 1204 y FK(,)g(then)523 1303 y(either)h FC(h)h FK(is)f(the)h(\014rst)g (no)r(de)f(of)h(a)f(culprit)h(in)g FC(V)2029 1315 y FA(r)2095 1303 y FK(or)f FC(t)h FK(is)f(the)h(last)f(no)r(de)h(of)g(a)f(culprit)g (in)523 1403 y FC(V)571 1415 y FA(l)597 1403 y FK(,)d(and)g(in)h(b)r (oth)g(cases)e FC(f)35 b FK(is)26 b(dominated)g(b)n(y)g(the)h(bac)n(k)e (edge)h(of)g(the)h(culprit.)f(Th)n(us,)g(w)n(e)523 1503 y(ha)n(v)n(e)g(case)h(2)g(or)g(3.)2170 b Fu(2)606 1652 y FK(While)35 b(Lemma)g(2.16)e(ensures)h(that)h(eac)n(h)f(edge)g(of)h FC(M)43 b FK(is)35 b(b)r(ounded)g(in)g(o)n(v)n(erlap,)d(it)523 1752 y(ma)n(y)27 b(b)r(e)i(that)f(some)g(edges)f(of)h FC(E)1589 1722 y Fw(0)1641 1752 y FK(are)f(double)h(c)n(harged.)e(W)-7 b(e)29 b(will)f(mo)r(dify)h FC(M)36 b FK(without)523 1851 y(decreasing)21 b(its)i(o)n(v)n(erlap)e(and)h(without)h(in)n(v)-5 b(alidating)22 b(Lemma)h(2.16)e(in)n(to)h(an)h(assignmen)n(t)523 1951 y FC(M)613 1921 y Fw(0)664 1951 y FK(suc)n(h)k(that)h(eac)n(h)f (edge)g(of)g FC(E)1567 1921 y Fw(0)1618 1951 y FK(is)h(dominated)f(b)n (y)h(one)f(of)g(its)h(adjacen)n(t)f FC(M)3012 1921 y Fw(0)3063 1951 y FK(edges.)523 2117 y Fv(Lemma)32 b FH(2.17)40 b FG(L)l(et)25 b FC(N)34 b FG(b)l(e)26 b(any)g(assignment)g(on)f FC(V)45 b FG(such)25 b(that)h FC(N)18 b FD(n)9 b FC(E)2723 2087 y Fw(0)2772 2117 y FG(do)l(es)26 b(not)f(c)l(ontain)523 2217 y(any)41 b(e)l(dges)g(in)g FC(V)1081 2229 y FA(r)1145 2217 y FD(\002)26 b FC(V)1284 2229 y FA(l)1310 2217 y FG(.)41 b(Then)g(ther)l(e)g(is)g(an)g(assignment)f FC(N)2568 2187 y Fw(0)2632 2217 y FG(on)h FC(V)59 b FG(satisfying)42 b(the)523 2316 y(fol)t(lowing)32 b(pr)l(op)l(erties.)621 2482 y(1.)43 b FC(N)807 2452 y Fw(0)848 2482 y FD(n)18 b FC(E)974 2452 y Fw(0)1027 2482 y FG(has)31 b(also)f(no)g(e)l(dges)h (in)e FC(V)1830 2494 y FA(r)1886 2482 y FD(\002)18 b FC(V)2017 2494 y FA(l)2043 2482 y FG(,)621 2648 y(2.)43 b(ov)9 b FK(\()p FC(N)928 2618 y Fw(0)951 2648 y FK(\))24 b FD(\025)e FG(ov)10 b FK(\()p FC(N)f FK(\))p FG(,)621 2814 y(3.)43 b(e)l(ach)30 b(e)l(dge)h(in)f FC(E)1268 2784 y Fw(0)1309 2814 y FD(n)18 b FC(N)1445 2784 y Fw(0)1498 2814 y FG(is)30 b(dominate)l(d)h(by)f(one)g(of)h(its)f(two)g(adjac)l (ent)g FC(N)3027 2784 y Fw(0)3080 2814 y FG(e)l(dges.)523 2980 y Fv(Pr)n(oof.)f FK(Since)h FC(N)39 b FK(already)28 b(has)i(the)g(\014rst)f(t)n(w)n(o)g(prop)r(erties,)g(it)i(su\016ces)e (to)h(argue)e(that)523 3080 y(if)35 b FC(N)43 b FK(violates)33 b(prop)r(ert)n(y)h(3,)g(then)h(w)n(e)e(can)h(construct)g(another)g (assignmen)n(t)f FC(N)3148 3050 y Fw(0)3205 3080 y FK(that)523 3180 y(satis\014es)27 b(prop)r(erties)g(1)g(and)g(2,)g(and)h(has)f (more)g(edges)f(in)i(common)f(with)i FC(E)2966 3150 y Fw(0)2989 3180 y FK(.)606 3279 y(Let)d FC(e)d FK(=)g FC(k)j FD(!)d FC(j)31 b FK(b)r(e)c(an)e(edge)h(in)h FC(E)1718 3249 y Fw(0)1757 3279 y FD(\000)15 b FC(N)35 b FK(that)26 b(dominates)g(b)r(oth)h(adjacen)n(t)e FC(N)35 b FK(edges,)523 3379 y FC(f)f FK(=)24 b FC(i)h FD(!)g FC(j)5 b FK(,)29 b(and)f FC(g)g FK(=)d FC(k)i FD(!)f FC(l)r FK(.)i(By)g(Lemma)h(2.7,)f (replacing)f(edges)h FC(f)38 b FK(and)28 b FC(g)k FK(of)d FC(N)37 b FK(with)523 3479 y FC(e)30 b FK(and)g FC(i)d FD(!)h FC(l)k FK(pro)r(duces)d(an)h(assignmen)n(t)f FC(N)1955 3448 y Fw(0)2009 3479 y FK(with)i(at)f(least)g(as)f(large)g(o)n(v)n (erlap.)f(T)-7 b(o)30 b(see)523 3578 y(that)c(the)g(new)g(edge)f FC(i)e FD(!)g FC(l)k FK(of)e FC(N)1576 3548 y Fw(0)1614 3578 y FD(n)14 b FC(E)1736 3548 y Fw(0)1785 3578 y FK(is)26 b(not)g(in)f FC(V)2155 3590 y FA(r)2207 3578 y FD(\002)14 b FC(V)2334 3590 y FA(l)2360 3578 y FK(,)26 b(observ)n(e)e(that)i(if)g FC(i)d FD(2)g FC(V)3133 3590 y FA(r)3196 3578 y FK(then)523 3678 y FC(j)28 b FD(2)23 b FC(V)711 3690 y FA(r)776 3678 y FK(b)r(ecause)k(of)h(the)g(edge)f FC(f)k FK(=)23 b FC(i)g FD(!)g FC(j)32 b FK(\()p FC(N)c FD(n)17 b FC(E)2146 3648 y Fw(0)2197 3678 y FK(do)r(es)28 b(not)f(ha)n(v)n(e)f(edges)h(in)h FC(V)3090 3690 y FA(r)3146 3678 y FD(\002)17 b FC(V)3276 3690 y FA(l)3302 3678 y FK(\),)523 3778 y(whic)n(h)31 b(implies)g(that)g FC(k)j FK(is)d(in)g FC(V)1544 3790 y FA(r)1612 3778 y FK(b)r(ecause)f(of)h(the)g FC(E)2232 3747 y Fw(0)2286 3778 y FK(edge)g FC(e)d FK(=)g FC(k)j FD(!)e FC(j)36 b FK(\()p FC(E)2993 3747 y Fw(0)3047 3778 y FK(do)r(es)31 b(not)523 3877 y(ha)n(v)n(e)f(edges)h(in)g FC(V)1092 3889 y FA(l)1139 3877 y FD(\002)20 b FC(V)1272 3889 y FA(r)1310 3877 y FK(\),)31 b(whic)n(h)h(implies)f(that)h(also)e FC(l)g FD(2)g FC(V)2465 3889 y FA(r)2533 3877 y FK(b)r(ecause)h(of)g (the)h FC(N)40 b FK(edge)523 3977 y FC(g)26 b FK(=)c FC(k)k FD(!)d FC(l)r FK(.)2395 b Fu(2)523 4126 y Fv(Pr)n(oof.)19 b FH(\(of)k(Theorem)g(2.12.\))18 b FK(By)i(Lemmas)f(2.16)g(and)h(2.17,) f(w)n(e)g(can)h(construct)f(from)523 4226 y(the)28 b(assignmen)n(t)f FC(M)36 b FK(another)27 b(assignmen)n(t)g FC(M)2034 4196 y Fw(0)2085 4226 y FK(with)h(at)g(least)f(as)g(large)f(total)i(o)n(v)n (erlap,)523 4325 y(and)c(suc)n(h)g(that)h(w)n(e)f(can)g(c)n(harge)f (the)h(o)n(v)n(erlap)f(of)h(eac)n(h)g(edge)g(of)g FC(M)2635 4295 y Fw(0)2682 4325 y FK(to)g(an)h(edge)e(of)i FC(E)3236 4295 y Fw(0)3284 4325 y FK(or)523 4425 y(to)c(the)g(bac)n(k)g(edge)f (of)h(a)g(culprit.)g(Ev)n(ery)f(edge)g(of)h FC(E)2128 4395 y Fw(0)2173 4425 y FK(is)g(c)n(harged)e(for)i(at)g(most)g(one)f (edge)h(of)523 4525 y FC(M)613 4495 y Fw(0)636 4525 y FK(,)j(while)h(the)g(bac)n(k)e(edge)h(of)g(eac)n(h)g(culprit)g(is)g(c)n (harged)f(for)h(at)g(most)g(t)n(w)n(o)g(edges)f(of)i FC(M)3312 4495 y Fw(0)3335 4525 y FK(:)523 4624 y(for)e(the)g FC(M)874 4594 y Fw(0)920 4624 y FK(edge)g(en)n(tering)f(the)h(\014rst)g (culprit)g(no)r(de)h(in)f FC(V)2326 4636 y FA(r)2386 4624 y FK(and)g(the)h(edge)e(coming)h(out)g(of)523 4724 y(the)k(last)g(culprit)f(no)r(de)h(in)g FC(V)1432 4736 y FA(l)1458 4724 y FK(.)g(Therefore,)e FG(ov)10 b FK(\()p FC(M)f FK(\))23 b FD(\024)g FG(ov)9 b FK(\()p FC(M)2472 4694 y Fw(0)2496 4724 y FK(\))23 b FD(\024)f FG(ov)10 b FK(\()p FC(E)2826 4694 y Fw(0)2850 4724 y FK(\))17 b(+)f(2)p FC(o)3062 4736 y FA(c)3095 4724 y FK(,)27 b(where)523 4824 y FC(o)563 4836 y FA(c)625 4824 y FK(is)i(the)f(summed)h(o)n(v)n (erlap)d(of)i(all)g(culprit)h(bac)n(k)e(edges.)h(Denote)g(b)n(y)g FC(w)2851 4836 y FA(c)2914 4824 y FK(the)g(summed)523 4923 y(w)n(eigh)n(t)f(of)g(all)g(culprit)h(cycles,)f(i.e.,)h(the)g(w)n (eigh)n(t)e(of)i(the)g(\(optimal\))g(assignmen)n(t)e FC(C)3179 4935 y FA(m)3270 4923 y FK(on)523 5023 y FC(S)574 5035 y FA(m)673 5023 y FK(from)36 b(Lemma)g(2.15.)f(Then)h FC(l)1640 5035 y FA(c)1711 5023 y FK(=)h FC(w)1872 5035 y FA(c)1930 5023 y FK(+)24 b FC(o)2059 5035 y FA(c)2093 5023 y FK(.)36 b(As)h(in)f(the)h(pro)r(of)e(of)h(Theorem)g(2.8,)523 5122 y(w)n(e)d(ha)n(v)n(e)f FC(o)888 5134 y FA(c)944 5122 y FD(\000)22 b FK(2)p FC(w)1132 5134 y FA(c)1199 5122 y FD(\024)32 b FC(n)h FK(and)g FC(w)1605 5134 y FA(c)1672 5122 y FD(\024)f FC(n)p FK(.)i(\(Note)f(that)h(the)g(o)n(v)n (erlap)d(of)i(a)g(culprit)h(bac)n(k)523 5222 y(edge)28 b(is)h(less)f(than)h(the)h(length)f(of)f(the)h(longest)g(string)f(in)h (the)g(culprit)g(cycle.\))g(Putting)p eop end %%Page: 22 32 TeXDict begin 22 31 bop 1599 299 a FF(2.5.)52 b(GREED)n(Y)25 b(ac)n(hiev)n(es)h(linear)h(appro)n(ximation)154 b(22)523 506 y FK(ev)n(erything)26 b(together,)h(the)h(string)f(pro)r(duced)g(b) n(y)h(GREED)n(Y)f(has)g(length)602 689 y FC(l)627 701 y FA(l)671 689 y FK(+)18 b FC(l)779 701 y FA(c)831 689 y FK(+)g FC(l)939 701 y FA(r)994 689 y FD(\000)g FC(o)1117 701 y FA(w)1254 689 y FD(\024)82 b FK(2)p FC(n)18 b FK(+)g FG(ov)10 b FK(\()p FC(M)1797 701 y FA(l)1822 689 y FK(\))19 b FD(\000)f FG(ov)9 b FK(\()p FC(E)2138 701 y FA(l)2164 689 y FK(\))19 b(+)f FG(ov)10 b FK(\()p FC(M)2501 701 y FA(r)2537 689 y FK(\))19 b FD(\000)f FG(ov)10 b FK(\()p FC(E)2854 701 y FA(r)2891 689 y FK(\))19 b FD(\000)f FC(l)3050 701 y FA(c)3102 689 y FD(\000)g FC(o)3225 701 y FA(w)1254 814 y FD(\024)82 b FK(2)p FC(n)18 b FK(+)g FG(ov)10 b FK(\()p FC(M)1806 779 y Fw(0)1829 814 y FK(\))19 b FD(\000)f FG(ov)9 b FK(\()p FC(E)2150 779 y Fw(0)2174 814 y FK(\))19 b FD(\000)f FC(l)2333 826 y FA(c)1254 938 y FD(\024)82 b FK(2)p FC(n)18 b FK(+)g(2)p FC(o)1676 950 y FA(c)1728 938 y FD(\000)g FC(l)1836 950 y FA(c)1254 1063 y FK(=)82 b(2)p FC(n)18 b FK(+)g FC(o)1634 1075 y FA(c)1687 1063 y FD(\000)g FC(w)1829 1075 y FA(c)1254 1187 y FD(\024)82 b FK(3)p FC(n)18 b FK(+)g FC(w)1653 1199 y FA(c)1254 1312 y FD(\024)82 b FK(4)p FC(n:)3296 1494 y Fu(2)523 1851 y FL(2.6)116 b(Whic)m(h)38 b(algorithm)e(is)i(the) h(b)s(est?)523 2051 y FK(Ha)n(ving)26 b(pro)n(v)n(ed)f(v)-5 b(arious)25 b(b)r(ounds)h(for)g(the)h(algorithms)e(GREED)n(Y,)i(MGREED) n(Y,)f(and)523 2150 y(TGREED)n(Y,)39 b(one)f(ma)n(y)g(w)n(onder)g(what) h(this)g(implies)g(ab)r(out)g(their)g(relativ)n(e)f(p)r(erfor-)523 2250 y(mance.)18 b(First)g(of)h(all)f(w)n(e)g(note)g(that)h(MGREED)n(Y) f(can)g(nev)n(er)f(do)h(b)r(etter)h(than)g(TGREED)n(Y)523 2350 y(since)h(the)g(latter)g(applies)g(the)g(GREED)n(Y)g(algorithm)e (to)i(an)g(in)n(termediate)g(set)g(of)g(strings)523 2449 y(that)28 b(the)g(former)f(merely)g(concatenates.)606 2549 y(Do)r(es)22 b(the)g(3)p FC(n)f FK(b)r(ound)h(for)f(TGREED)n(Y)h (then)g(mean)g(that)g(it)g(is)g(the)g(b)r(est)g(of)g(the)g(three?)523 2648 y(This)e(pro)n(v)n(es)d(not)j(alw)n(a)n(ys)e(to)h(b)r(e)h(the)g (case.)f(In)h(the)g(example)f FD(f)p FC(c)p FK(\()p FC(ab)p FK(\))2645 2618 y FA(k)2686 2648 y FC(;)14 b FK(\()p FC(ab)p FK(\))2867 2618 y FA(k)q FB(+1)2991 2648 y FC(a;)g FK(\()p FC(ba)p FK(\))3216 2618 y FA(k)3257 2648 y FC(c)p FD(g)p FK(,)523 2748 y(GREED)n(Y)30 b(pro)r(duces)f(the)h(shortest)g (sup)r(erstring)f FC(c)p FK(\()p FC(ab)p FK(\))2345 2718 y FA(k)q FB(+1)2470 2748 y FC(ac)h FK(of)f(length)i FC(n)26 b FK(=)h(2)p FC(k)22 b FK(+)e(5,)523 2848 y(whereas)i(TGREED)n(Y)h (\014rst)f(separates)g(the)h(middle)h(string)e(to)h(end)g(up)h(with)f (something)523 2947 y(lik)n(e)k FC(c)p FK(\()p FC(ab)p FK(\))855 2917 y FA(k)896 2947 y FC(ac)p FK(\()p FC(ab)p FK(\))1120 2917 y FA(k)q FB(+1)1245 2947 y FC(a)g FK(of)h(length)g(4)p FC(k)21 b FK(+)d(6.)606 3047 y(P)n(erhaps)29 b(then)i(GREED)n(Y)f(is)h (alw)n(a)n(ys)e(b)r(etter)i(than)f(TGREED)n(Y,)h(despite)g(the)g(fact) 523 3147 y(that)20 b(w)n(e)e(cannot)h(pro)n(v)n(e)f(as)g(go)r(o)r(d)h (an)g(upp)r(er)g(b)r(ound)h(for)e(it.)i(This)f(turns)g(out)g(not)h(to)f (b)r(e)g(the)523 3246 y(case)f(either,)g(as)g(sho)n(wn)f(b)n(y)h(the)h (follo)n(wing)e(example.)h(On)g(input)i FD(f)p FC(cab)2694 3216 y FA(k)2733 3246 y FC(;)14 b(ab)2850 3216 y FA(k)2891 3246 y FC(ab)2971 3216 y FA(k)3011 3246 y FC(a;)g(b)3128 3216 y FA(k)3168 3246 y FC(dab)3291 3216 y FA(k)q Fw(\000)p FB(1)3417 3246 y FD(g)p FK(,)523 3346 y(TGREED)n(Y)28 b(separates)f(the)i(middle)f(string,)g(merges)f(the)i(other)f(t)n(w)n (o,)g(and)g(next)g(com-)523 3445 y(bines)f(these)g(to)f(pro)r(duce)g (the)i(shortest)e(sup)r(erstring)f FC(cab)2366 3415 y FA(k)2407 3445 y FC(dab)2530 3415 y FA(k)2570 3445 y FC(ab)2650 3415 y FA(k)2691 3445 y FC(a)h FK(of)h(length)g(3)p FC(k)19 b FK(+)d(6,)523 3545 y(whereas)h(GREED)n(Y)h(merges)f(the)i (\014rst)f(t)n(w)n(o,)g(lea)n(ving)f(nothing)h(b)r(etter)h(than)g FC(cab)3050 3515 y FA(k)3090 3545 y FC(ab)3170 3515 y FA(k)3210 3545 y FC(ab)3290 3515 y FA(k)3331 3545 y FC(dab)3454 3515 y FA(k)q Fw(\000)p FB(1)523 3645 y FK(of)28 b(length)f(4)p FC(k)21 b FK(+)d(5.)606 3744 y(Another)35 b(greedy)f(t)n(yp)r(e)h(of)g (algorithm)f(that)i(ma)n(y)e(come)h(to)g(mind)h(is)f(one)g(that)g(ar-) 523 3844 y(bitrarily)29 b(pic)n(ks)g(an)n(y)g(of)h(the)g(strings)f(and) h(then)g(rep)r(eatedly)g(merges)e(on)i(the)g(righ)n(t)f(the)523 3944 y(string)f(with)g(maxim)n(um)h(o)n(v)n(erlap.)d(This)i(algorithm,) f(call)h(it)h(NAIVE,)g(turns)f(out)g(to)g(b)r(e)523 4043 y(disastrous)e(on)h(examples)g(lik)n(e)684 4226 y FD(f)p FC(abcde;)14 b(bcde)p FK(#)p FC(a;)g(cde)p FK(#)p FC(a)p FK(#)p FC(b;)g(de)p FK(#)p FC(a)p FK(#)p FC(b)p FK(#)p FC(c;)g(e)p FK(#)p FC(a)p FK(#)p FC(b)p FK(#)p FC(c)p FK(#)p FC(d;)g FK(#)p FC(a)p FK(#)p FC(b)p FK(#)p FC(c)p FK(#)p FC(d)p FK(#)p FC(e)p FD(g)p FC(:)523 4408 y FK(Instead)26 b(of)h(pro)r(ducing)f(the)g(optimal)h FC(abcde)p FK(#)p FC(a)p FK(#)p FC(b)p FK(#)p FC(c)p FK(#)p FC(d)p FK(#)p FC(e)p FK(,)f(NAIVE)h(migh)n(t)f(pro)r(duce)523 4508 y(#)p FC(a)p FK(#)p FC(b)p FK(#)p FC(c)p FK(#)p FC(d)p FK(#)p FC(e)p FK(#)p FC(a)p FK(#)p FC(b)p FK(#)p FC(c)p FK(#)p FC(de)p FK(#)p FC(a)p FK(#)p FC(b)p FK(#)p FC(cde)p FK(#)p FC(a)p FK(#)p FC(bcde)p FK(#)p FC(abcde)18 b FK(b)n(y)g(pic)n (king)g(#)p FC(a)p FK(#)p FC(b)p FK(#)p FC(c)p FK(#)p FC(d)p FK(#)p FC(e)523 4608 y FK(as)30 b(a)g(starting)g(p)r(oin)n(t.)h (It)g(is)f(clear)g(that)h(in)g(this)f(w)n(a)n(y)g(sup)r(erstrings)f(ma) n(y)h(b)r(e)h(pro)r(duced)523 4707 y(whose)c(length)h(gro)n(ws)d (quadratically)h(in)i(the)g(optim)n(um)g(length)g FC(n)p FK(.)523 5015 y FL(2.7)116 b(Lo)m(w)m(er)37 b(b)s(ound)523 5214 y FK(W)-7 b(e)34 b(sho)n(w)f(here)h(that)g(the)g(sup)r(erstring)f (problem)h(is)g FG(MAX)h(SNP-har)l(d)p FK(.)g(This)f(implies)523 5313 y(that)h(if)h(there)f(is)g(a)g(p)r(olynomial)f(time)i(appro)n (ximation)d(sc)n(heme)i(for)f(the)i(sup)r(erstring)p eop end %%Page: 23 33 TeXDict begin 23 32 bop 2518 299 a FF(2.7.)53 b(Lo)n(w)n(er)26 b(b)r(ound)153 b(23)523 506 y FK(problem,)31 b(then)g(there)g(is)g(one) g(also)f(for)g(a)h(wide)g(class)g(of)g(optimization)f(problems,)h(in-) 523 606 y(cluding)24 b(sev)n(eral)e(v)-5 b(arian)n(ts)22 b(of)i(maxim)n(um)f(satis\014abilit)n(y)-7 b(,)23 b(the)h(no)r(de)g(co) n(v)n(er)e(and)h(indep)r(en-)523 706 y(den)n(t)30 b(set)f(problems)g (in)g(b)r(ounded-degree)g(graphs,)f(max)h(cut,)h(etc.)f(This)h(is)f (considered)523 805 y(rather)e(unlik)n(ely)-7 b(.)1073 775 y FB(1)606 905 y FK(Let)24 b FC(A)p FK(,)g FC(B)j FK(b)r(e)d(t)n(w)n(o)f(optimization)g(\(maximization)g(or)g (minimization\))h(problems.)e(W)-7 b(e)523 1005 y(sa)n(y)34 b(that)i FC(A)f FG(L-r)l(e)l(duc)l(es)g FK(\(for)g FG(line)l(arly)k(r)l (e)l(duc)l(es)p FK(\))c(to)g FC(B)40 b FK(if)35 b(there)h(are)e(t)n(w)n (o)g(p)r(olynomial)523 1104 y(time)28 b(algorithms)e FC(f)37 b FK(and)27 b FC(g)j FK(and)e(constan)n(ts)e FC(\013)i FK(and)g FC(\014)f(>)c FK(0)k(suc)n(h)g(that:)625 1247 y(1.)41 b(Giv)n(en)28 b(an)g(instance)h FC(a)f FK(of)h FC(A)p FK(,)g(algorithm)e FC(f)37 b FK(pro)r(duces)28 b(an)g(instance)h FC(b)f FK(of)g FC(B)33 b FK(suc)n(h)731 1347 y(that)d(the)h(cost)f(of)g(the)h(optim)n(um)g(solution)e(of)i FC(b)p FK(,)f FC(opt)p FK(\()p FC(b)p FK(\),)g(is)h(at)f(most)g FC(\013)21 b FD(\001)f FC(opt)p FK(\()p FC(a)p FK(\),)731 1447 y(and)625 1601 y(2.)41 b(Giv)n(en)36 b(an)n(y)g(solution)g FC(y)k FK(of)c FC(b)p FK(,)h(algorithm)e FC(g)40 b FK(pro)r(duces)c(in) h(p)r(olynomial)f(time)h(a)731 1701 y(solution)27 b FC(x)h FK(of)f FC(a)h FK(suc)n(h)f(that)h FD(j)p FC(cost)p FK(\()p FC(x)p FK(\))20 b FD(\000)e FC(opt)p FK(\()p FC(a)p FK(\))p FD(j)23 b(\024)g FC(\014)t FD(j)p FC(cost)p FK(\()p FC(y)s FK(\))c FD(\000)f FC(opt)p FK(\()p FC(b)p FK(\))p FD(j)p FK(.)606 1844 y(Some)35 b(basic)f(facts)h(ab)r(out)g(L-reductions)f (are:)g(First,)h(the)h(comp)r(osition)e(of)h(t)n(w)n(o)f(L-)523 1944 y(reductions)c(is)g(also)f(an)h(L-reduction.)g(Second,)g(if)h (problem)e FC(A)i FK(L-reduces)e(to)h(problem)523 2043 y FC(B)37 b FK(and)c FC(B)j FK(can)d(b)r(e)g(appro)n(ximated)e(in)i(p)r (olynomial)f(time)h(with)g(relativ)n(e)f(error)f FC(\017)h FK(\(i.e.,)523 2143 y(within)d(a)e(factor)h(of)g(1)18 b(+)g FC(\017)28 b FK(or)f(1)18 b FD(\000)h FC(\017)28 b FK(dep)r(ending)g(on)g(whether)g FC(B)k FK(is)c(a)f(minimization)i (or)523 2243 y(maximization)21 b(problem\))h(then)g FC(A)g FK(can)g(b)r(e)g(appro)n(ximated)e(with)j(relativ)n(e)d(error)g FC(\013\014)t(\017)p FK(.)j(In)523 2342 y(particular,)j(if)i FC(B)k FK(has)27 b(a)g(p)r(olynomial)f(time)i(appro)n(ximation)e(sc)n (heme,)h(then)h(so)e(do)r(es)h FC(A)p FK(.)523 2442 y(The)j(class)f (MAX)i(SNP)f(is)f(a)h(class)f(of)h(optimization)f(problems)h(de\014ned) g(syn)n(tactically)523 2542 y(in)22 b([11].)g(It)g(is)g(kno)n(wn)g (that)g(ev)n(ery)f(problem)h(in)g(this)h(class)e(can)h(b)r(e)g(appro)n (ximated)f(within)523 2641 y FG(some)28 b FK(constan)n(t)f(factor.)g(A) h(problem)g(is)f(MAX)i(SNP-hard)d(if)i(ev)n(ery)f(problem)g(in)h(MAX) 523 2741 y(SNP)g(can)f(b)r(e)h(L-reduced)f(to)g(it.)523 2895 y Fv(Theorem)32 b FH(2.18)41 b FG(The)30 b(sup)l(erstring)g(pr)l (oblem)h(is)f(MAX)f(SNP-har)l(d.)523 3050 y Fv(Pr)n(oof.)19 b FK(The)g(reduction)g(is)g(from)g(a)f(sp)r(ecial)h(case)g(of)g(the)g (TSP)g(with)h(triangle)e(inequalit)n(y)-7 b(.)523 3150 y(Let)35 b(TSP\(1,2\))f(b)r(e)h(the)g(TSP)g(restricted)f(to)g (instances)h(where)f(all)g(the)i(distances)e(are)523 3249 y(either)24 b(1)f(or)g(2.)h(W)-7 b(e)24 b(can)f(consider)g(an)h (instance)f(to)h(this)g(problem)g(as)f(b)r(eing)h(sp)r(eci\014ed)g(b)n (y)523 3349 y(a)d(graph)f FC(H)7 b FK(;)21 b(the)g(edges)g(of)g FC(H)28 b FK(are)20 b(precisely)g(those)h(that)h(ha)n(v)n(e)e(length)h (1)g(while)g(the)h(edges)523 3449 y(that)i(are)e(not)h(in)h FC(H)30 b FK(ha)n(v)n(e)22 b(length)h(2.)g(W)-7 b(e)24 b(need)f(here)g(the)h(v)n(ersion)e(of)h(the)g(TSP)g(where)g(w)n(e)523 3548 y(seek)28 b(the)i(shortest)e(Hamiltonian)h(path)g(\(instead)g(of)g (cycle\),)g(and,)g(more)f(imp)r(ortan)n(tly)-7 b(,)523 3648 y(w)n(e)40 b(need)f(the)i(additional)e(restriction)g(that)h(the)g (graph)f FC(H)47 b FK(b)r(e)40 b(of)g(b)r(ounded)g(degree)523 3747 y(\(the)31 b(precise)f(b)r(ound)i(is)e(not)h(imp)r(ortan)n(t\).)g (It)g(w)n(as)e(sho)n(wn)h(in)h([12)o(])g(that)g(the)g(TSP\(1,2\))523 3847 y(problem)c(\(ev)n(en)h(for)f(this)g(restricted)g(v)n(ersion\))g (is)g(MAX)i(SNP-hard.)606 3947 y(Let)g FC(H)36 b FK(b)r(e)29 b(a)f(graph)g(of)h(b)r(ounded)g(degree)f FC(D)j FK(sp)r(ecifying)e(an)f (instance)h(of)f(TSP\(1,2\).)523 4046 y(The)19 b(hardness)g(result)g (holds)g(for)f(b)r(oth)i(the)g(symmetric)f(and)g(the)h(asymmetric)e (TSP)h(\(i.e.,)523 4146 y(for)i(b)r(oth)h(undirected)g(and)f(directed)h (graphs)e FC(H)7 b FK(\).)22 b(W)-7 b(e)22 b(let)g FC(H)28 b FK(b)r(e)22 b(a)f(directed)h(graph)e(here.)523 4246 y(Without)25 b(loss)e(of)g(generalit)n(y)-7 b(,)23 b(assume)g(that)h (eac)n(h)f(v)n(ertex)g(of)h FC(H)30 b FK(has)24 b(outdegree)e(at)i (least)523 4345 y(2.)i(The)g(reduction)g(is)h(similar)e(to)h(the)h(one) f(of)g([5])g(used)h(to)f(sho)n(w)f(the)i(NP-completeness)523 4445 y(of)36 b(the)h(sup)r(erstring)f(decision)f(problem.)h(W)-7 b(e)37 b(ha)n(v)n(e)e(to)i(pro)n(v)n(e)d(here)i(that)h(it)g(is)f(an)g (L-)523 4544 y(reduction.)c(F)-7 b(or)32 b(ev)n(ery)g(v)n(ertex)f FC(v)36 b FK(of)d FC(H)39 b FK(w)n(e)33 b(ha)n(v)n(e)e(t)n(w)n(o)h (letters)g FC(v)k FK(and)d FC(v)2870 4514 y Fw(0)2893 4544 y FK(.)g(In)g(addition)523 4644 y(there)g(is)g(one)g(more)f (letter)i(#.)f(Corresp)r(onding)f(to)h(eac)n(h)f(v)n(ertex)g FC(v)37 b FK(w)n(e)c(ha)n(v)n(e)f(a)g(string)523 4744 y FC(v)s FK(#)p FC(v)678 4714 y Fw(0)702 4744 y FK(,)25 b(called)f(the)h FG(c)l(onne)l(ctor)33 b FK(for)24 b FC(v)s FK(.)h(F)-7 b(or)24 b(eac)n(h)g(v)n(ertex)g FC(v)s FK(,)h(en)n(umerate)e(the)i(edges)f(out)h(of)523 4843 y FC(v)g FK(in)e(an)e(arbitrary)f(cyclic)i(order)f(as)g(\()p FC(v)s(;)14 b(w)1839 4855 y FB(0)1877 4843 y FK(\))p FC(;)g(:)g(:)g(:)g(;)g FK(\()p FC(v)s(;)g(w)2265 4855 y FA(d)p Fw(\000)p FB(1)2390 4843 y FK(\))22 b(\(*\).)g(Corresp)r (onding)e(to)i(the)523 4943 y FC(i)p FK(th)29 b(edge)f(\()p FC(v)s(;)14 b(w)1020 4955 y FA(i)1049 4943 y FK(\))29 b(out)g(of)g FC(v)j FK(w)n(e)d(ha)n(v)n(e)e(a)i(string)f FC(p)2093 4955 y FA(i)2121 4943 y FK(\()p FC(v)s FK(\))e(=)e FC(v)2386 4913 y Fw(0)2410 4943 y FC(w)2469 4955 y FA(i)p Fw(\000)p FB(1)2582 4943 y FC(v)2625 4913 y Fw(0)2649 4943 y FC(w)2708 4955 y FA(i)2736 4943 y FK(,)29 b(where)f(subscript) 523 5043 y(arithmetic)g(is)f(mo)r(dulo)h FC(d)p FK(.)f(W)-7 b(e)28 b(will)g(sa)n(y)f(that)h(these)f(strings)g(are)f FG(asso)l(ciate)l(d)k FK(with)e FC(v)s FK(.)p 523 5162 499 5 v 627 5244 a Fm(1)661 5276 y FF(In)i(fact,)h(Arora)g(et)f(al.)h ([2)q(])f(ha)n(v)n(e)g(recen)n(tly)g(sho)n(wn)g(that)g(MAX)g(SNP-hard)f (problems)i(do)523 5359 y(not)26 b(ha)n(v)n(e)f(p)r(olynomial)h(time)g (appro)n(ximation)h(sc)n(hemes,)f(unless)g(P)g(=)f(NP)-6 b(.)p eop end %%Page: 24 34 TeXDict begin 24 33 bop 2518 299 a FF(2.7.)53 b(Lo)n(w)n(er)26 b(b)r(ound)153 b(24)606 506 y FK(Let)38 b FC(n)f FK(b)r(e)h(the)f(n)n (um)n(b)r(er)h(of)f(v)n(ertices)f(and)h FC(m)h FK(the)g(n)n(um)n(b)r (er)f(of)g(edges)g(of)g FC(H)7 b FK(.)37 b(If)h(all)523 606 y(v)n(ertices)27 b(ha)n(v)n(e)g(degree)h(at)g(most)g FC(D)j FK(then)d FC(m)d FD(\024)e FC(D)r(n)p FK(.)29 b(Let)f FC(k)k FK(b)r(e)c(the)h(minim)n(um)g(n)n(um)n(b)r(er)523 706 y(of)i(edges)g(whose)g(addition)g(to)g FC(H)38 b FK(su\016ces)31 b(to)h(form)f(a)g(Hamiltonian)g(path.)g(Th)n(us,)g(the) 523 805 y(optimal)e(cost)f(of)h(the)h(TSP)e(instance)h(is)g FC(n)19 b FD(\000)g FK(1)g(+)g FC(k)s FK(.)29 b(W)-7 b(e)29 b(shall)f(argue)g(that)h(the)h(length)523 905 y(of)c(the)g(shortest)f(common)g(sup)r(erstring)g(is)h(2)p FC(m)14 b FK(+)g(3)p FC(n)g FK(+)h FC(k)i FK(+)e(1.)25 b(It)h(will)g(follo)n(w)f(then)h(that)523 1005 y(the)i(reduction)f(is)h (linear)f(since)g FC(m)h FK(is)f(linear)g(in)h FC(n)p FK(.)606 1104 y(Consider)20 b(the)i(distance-w)n(eigh)n(ted)d(graph)h FC(G)2039 1116 y FA(S)2109 1104 y FK(for)g(this)h(set)g(of)g(strings,)g (and)f(let)i FC(G)3214 1116 y FB(2)3272 1104 y FK(b)r(e)523 1204 y(its)h(subgraph)e(with)i(only)f(edges)g(of)h(minimal)g(w)n(eigh)n (t)f(\(2\).)g(Clearly)-7 b(,)22 b FC(G)2749 1216 y FB(2)2809 1204 y FK(has)g(exactly)g(one)523 1303 y(comp)r(onen)n(t)30 b(for)g(eac)n(h)f(v)n(ertex)g(of)i FC(H)7 b FK(,)30 b(whic)n(h)g (consists)f(of)h(a)g(cycle)g(of)g(the)h(asso)r(ciated)e FC(p)523 1403 y FK(strings,)18 b(and)h(a)f(connector)g(that)h(has)f(an) h(edge)f(to)h(eac)n(h)f(of)h(them.)g(W)-7 b(e)19 b(need)g(only)g (consider)523 1503 y(`standard')25 b(sup)r(erstrings)f(in)i(whic)n(h)f (all)g(strings)g(asso)r(ciated)f(with)i(some)f(v)n(ertex)f(form)h(a)523 1602 y(subgraph)k(of)g FC(G)1047 1614 y FB(2)1085 1602 y FK(,)h(so)f(that)h(only)g(the)g(last)f FC(p)h FK(string)f(has)g(an)h (outgoing)e(edge)i(of)f(w)n(eigh)n(t)523 1702 y(more)34 b(than)g(2)h(\(3)f(or)g(4\).)g(Namely)-7 b(,)34 b(if)i(some)d(v)n (ertex)h(fails)g(this)h(requiremen)n(t,)f(then)h(at)523 1802 y(least)30 b(t)n(w)n(o)f(of)h(its)g(asso)r(ciated)f(strings)g(ha)n (v)n(e)g(outgoing)f(edges)i(of)f(w)n(eigh)n(t)h(more)f(than)h(2,)523 1901 y(th)n(us)d(w)n(e)g(do)f(not)h(increase)f(the)h(length)g(b)n(y)g (putting)g(all)g(its)g FC(p)f FK(strings)g(directly)h(after)g(its)523 2001 y(connector)g(in)h(a)f(standard)g(w)n(a)n(y)-7 b(.)27 b(A)h(standard)f(sup)r(erstring)g(naturally)g(corresp)r(onds)f(to)523 2100 y(an)h(ordering)f(of)i(v)n(ertices)e FC(v)1401 2112 y FB(1)1439 2100 y FC(;)14 b(v)1516 2112 y FB(2)1553 2100 y FC(;)g(:)g(:)g(:)g(;)g(v)1778 2112 y FA(n)1823 2100 y FK(.)606 2200 y(F)-7 b(or)20 b(the)g(con)n(v)n(erse)e(there)i (remains)f(a)h(c)n(hoice)f(of)h(whic)n(h)g(string)g FC(q)j FK(succeeds)c(a)h(connector)523 2300 y FC(v)563 2312 y FA(i)591 2300 y FK(#)p FC(v)703 2270 y Fw(0)700 2321 y FA(i)728 2300 y FK(.)30 b(If)g FC(H)36 b FK(has)29 b(an)g(edge)g(from)h FC(v)1668 2312 y FA(i)1725 2300 y FK(to)g FC(v)1869 2312 y FA(i)p FB(+1)2010 2300 y FK(and)g(the)g (`next')g(edge)f(out)g(of)h FC(v)3031 2312 y FA(i)3088 2300 y FK(\(in)g(\(*\)\))523 2399 y(go)r(es)j(to,)g(sa)n(y)g FC(v)1032 2411 y FA(j)1067 2399 y FK(,)g(then)h(c)n(ho)r(osing)f FC(q)j FK(=)c FC(v)1875 2369 y Fw(0)1872 2421 y FA(i)1900 2399 y FC(v)1940 2411 y FA(i)p FB(+1)2052 2399 y FC(v)2095 2369 y Fw(0)2092 2421 y FA(i)2120 2399 y FC(v)2160 2411 y FA(j)2229 2399 y FK(results)h(in)h(a)f(w)n(eigh)n(t)f(of)i(3)f(on)g (the)523 2499 y(edge)19 b(from)h(the)g(last)f FC(p)h FK(string)f(to)h(the)g(next)g(connector)f FC(v)2286 2511 y FA(i)p FB(+1)2398 2499 y FK(#)p FC(v)2510 2469 y Fw(0)2507 2521 y FA(i)p FB(+1)2619 2499 y FK(,)h(whereas)e(this)i(w)n(eigh)n(t) 523 2599 y(w)n(ould)26 b(otherwise)e(b)r(e)j(4.)e(If)i FC(H)32 b FK(do)r(esn't)27 b(ha)n(v)n(e)d(this)i(edge,)g(then)g(the)h (c)n(hoice)e(of)h FC(q)j FK(do)r(esn't)523 2698 y(matter.)c(Let)h(us)g (call)f(a)g(sup)r(erstring)f(`Standard')h(if)h(in)g(addition)g(to)f(b)r (eing)h(standard,)e(it)523 2798 y(also)j(satis\014es)f(this)i(latter)f (requiremen)n(t)g(for)g(all)h(v)n(ertices.)606 2897 y(No)n(w)34 b(supp)r(ose)g(that)h(the)g(addition)f(of)g FC(k)k FK(edges)c(to)g FC(H)41 b FK(giv)n(es)33 b(a)h(Hamiltonian)h(path)523 2997 y FC(v)563 3009 y FB(1)601 2997 y FC(;)14 b(v)678 3009 y FB(2)715 2997 y FC(;)g(:)g(:)g(:)g(;)g(v)940 3009 y FA(n)p Fw(\000)p FB(1)1070 2997 y FC(;)g(v)1147 3009 y FA(n)1192 2997 y FK(.)37 b(Then)f(w)n(e)h(can)f(construct)g(a)g (corresp)r(onding)e(Standard)i(sup)r(er-)523 3097 y(string.)26 b(If)h(the)g(out-degree)e(of)h FC(v)1543 3109 y FA(i)1598 3097 y FK(is)g FC(d)1723 3109 y FA(i)1751 3097 y FK(,)h(then)g(its)f (length)h(will)g(b)r(e)2623 3034 y Fn(P)2711 3055 y FA(n)2711 3122 y(i)p FB(=1)2823 3097 y FK(\(2)16 b(+)g(2)p FC(d)3079 3109 y FA(i)3122 3097 y FK(+)g(1\))g(+)523 3196 y FC(k)21 b FK(+)d(1)23 b(=)g(3)p FC(n)17 b FK(+)h(2)p FC(m)g FK(+)g FC(k)k FK(+)c(1.)606 3296 y(Con)n(v)n(ersely)-7 b(,)23 b(supp)r(ose)h(w)n(e)g(are)g(giv)n(en)g(a)g(common)g(sup)r(erstring)g (of)g(length)h(3)p FC(n)13 b FK(+)g(2)p FC(m)g FK(+)523 3396 y FC(k)23 b FK(+)c(1.)29 b(This)h(can)f(then)i(b)r(e)f(turned)g (in)n(to)f(a)g(Standard)g(sup)r(erstring)g(that)h(is)g(no)f(longer.)523 3495 y(If)e FC(v)645 3507 y FB(1)682 3495 y FC(;)14 b(v)759 3507 y FB(2)797 3495 y FC(;)g(:)g(:)g(:)f(;)h(v)1021 3507 y FA(n)1093 3495 y FK(is)26 b(the)g(corresp)r(onding)f(order)g(of) h(v)n(ertices,)f(it)i(follo)n(ws)e(that)h FC(H)33 b FK(cannot)523 3595 y(b)r(e)28 b(missing)f(more)g(than)h FC(k)i FK(of)e(the)g(edges)f (\()p FC(v)1939 3607 y FA(i)1967 3595 y FC(;)14 b(v)2044 3607 y FA(i)p FB(+1)2156 3595 y FK(\).)1085 b Fu(2)606 3744 y FK(Since)41 b(the)g(strings)f(in)g(the)h(ab)r(o)n(v)n(e)f (L-reduction)f(ha)n(v)n(e)h(b)r(ounded)h(length)g(\(4\),)f(the)523 3844 y(reduction)28 b(applies)h(also)e(to)i(the)g(maximization)f(v)n (ersion)f(of)h(the)i(sup)r(erstring)d(problem)523 3944 y([15)o(,)h(16)o(].)g(That)f(is,)h(maximizing)f(the)h(total)f (compression)f(is)i(also)e(MAX)i(SNP-hard.)523 4251 y FL(2.8)116 b(Op)s(en)39 b(problems)523 4450 y FK(W)-7 b(e)28 b(end)g(the)g(c)n(hapter)f(with)h(sev)n(eral)d(op)r(en)j (questions)f(raised)g(from)g(this)h(researc)n(h:)606 4550 y(\(1\))j(Obtain)g(an)f(algorithm)g(whic)n(h)h(ac)n(hiev)n(es)e(a) h(p)r(erformance)g(b)r(etter)h(than)g(3)g(times)523 4649 y(the)d(optim)n(um.)606 4749 y(\(2\))38 b(Pro)n(v)n(e)e(or)i(dispro)n (v)n(e)e(the)j(conjecture)e(that)i(GREED)n(Y)f(ac)n(hiev)n(es)e(2)i (times)g(the)523 4848 y(optim)n(um.)p eop end %%Page: 25 35 TeXDict begin 25 34 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Bibliograph)l(y)565 2520 y FK([1])41 b(N.)29 b(Alon,)f(S.)h(Cosares,)d(D.)j(Ho)r(c)n(h)n (baum,)f(and)h(R.)f(Shamir.)g(An)h(algorithm)e(for)h(the)694 2607 y(detection)36 b(and)h(construction)e(of)i(Monge)e(Sequences.)h FG(Line)l(ar)j(A)n(lgebr)l(a)f(and)h(its)694 2693 y(Applic)l(ations)31 b(114/115,)i(669{680,)h(1989.)565 2848 y FK([2])41 b(A.)28 b(Arora,)e(C.)i(Lund,)g(R.)g(Mot)n(w)n(ani,)e(M.)i(Sudan,)g(and)f(M.)h (Szegedy)-7 b(.)27 b(Pro)r(of)g(v)n(eri\014-)694 2935 y(cation)j(and)g(hardness)f(of)h(appro)n(ximation)f(problems.)g FG(Pr)l(o)l(c.)k(33r)l(d)h(IEEE)f(Symp.)694 3017 y(F)-6 b(ound.)30 b(Comp.)h(Sci.)p FK(,)e(1992,)c(14-23.)565 3167 y([3])41 b(E.)18 b(Barnes)g(and)g(A.)h(Ho\013man.)g(On)g(transp)r (ortation)e(problems)h(with)i(upp)r(er)f(b)r(ounds)694 3254 y(on)31 b(leading)h(rectangles.)e FG(SIAM)k(Journal)g(on)f(A)n (lgebr)l(aic)i(and)g(Discr)l(ete)e(Metho)l(ds)694 3332 y(6,)d(487{496,)j(1985.)565 3482 y FK([4])41 b(N.)35 b(Fine)h(and)f(H.)g(Wilf.)h(Uniqueness)f(theorems)g(for)f(p)r(erio)r (dic)h(functions.)h FG(Pr)l(o)l(c.)694 3569 y(A)n(mer.)30 b(Math.)h(So)l(c.)d FK(16,)f(1965,)e(109-114.)565 3719 y([5])41 b(J.)33 b(Gallan)n(t,)f(D.)i(Maier,)f(J.)g(Storer.)f(On)h (\014nding)g(minimal)h(length)f(sup)r(erstrings.)694 3806 y FG(Journal)c(of)i(Computer)f(and)g(System)g(Scienc)l(es)g(20,)h (50{58,)h(1980.)565 3956 y FK([6])41 b(M.)32 b(Garey)f(and)g(D.)i (Johnson.)e(Computers)g(and)h(In)n(tractabilit)n(y)-7 b(.)31 b FG(F)-6 b(r)l(e)l(eman,)34 b(New)694 4043 y(Y)-6 b(ork,)30 b(1979.)565 4193 y FK([7])41 b(A.)33 b(Ho\013man.)g(On)g (simple)g(transp)r(ortation)f(problems.)g FG(Convexity:)k(Pr)l(o)l(c)l (e)l(e)l(dings)694 4280 y(of)30 b(symp)l(osia)g(in)g(pur)l(e)f (mathematics,)h(V)-6 b(ol)29 b(7,)h(A)n(meric)l(an)g(Mathematic)l(al)h (So)l(ciety,)694 4358 y(317{327,)i(1963.)565 4508 y FK([8])41 b(A.)22 b(Lesk)f(\(Edited\).)h(Computational)f(Molecular)f(Biology)-7 b(,)20 b(Sources)g(and)i(Metho)r(ds)694 4595 y(for)27 b(Sequence)g(Analysis.)g FG(Oxfor)l(d)j(University)g(Pr)l(ess,)h(1988.) 565 4745 y FK([9])41 b(M.)30 b(Li.)g(T)-7 b(o)n(w)n(ards)28 b(a)i(DNA)h(sequencing)f(theory)-7 b(.)29 b FG(31st)k(IEEE)g(Symp.)f (on)h(F)-6 b(ounda-)694 4832 y(tions)29 b(of)i(Computer)f(Scienc)l(e,)h (125{134,)i(1990.)523 4982 y FK([10])41 b(C.)k(P)n(apadimitriou)e(and)i (K.)g(Steiglitz.)g FG(Combinatorial)j(Optimization:)g(A)n(lgo-)694 5069 y(rithms)30 b(and)g(Complexity.)g FK(Pren)n(tice-Hall,)c(1982.)523 5219 y([11])41 b(C.)36 b(P)n(apadimitriou)f(and)h(M)g(Y)-7 b(annak)i(akis.)35 b(Optimization,)i(appro)n(ximation)d(and)694 5306 y(complexit)n(y)d(classes.)f FG(20th)35 b(A)n(CM)f(Symp.)g(on)g (The)l(ory)h(of)f(Computing)p FK(,)f(229{234,)694 5384 y(1988.)p eop end %%Page: 26 36 TeXDict begin 26 35 bop 2446 299 a FF(2.8.)53 b(Op)r(en)25 b(problems)154 b(26)523 506 y FK([12])41 b(C.)19 b(P)n(apadimitriou)f (and)i(M)g(Y)-7 b(annak)i(akis.)18 b(The)i(tra)n(v)n(eling)e(salesman)g (problem)h(with)694 593 y(distances)27 b(one)g(and)g(t)n(w)n(o.)g FG(Mathematics)32 b(of)e(Op)l(er)l(ations)g(R)l(ese)l(ar)l(ch.)f FK(T)-7 b(o)27 b(app)r(ear.)523 746 y([13])41 b(H.)24 b(P)n(eltola,)e(H.)j(So)r(derlund,)e(J.)h(T)-7 b(arhio,)23 b(and)g(E.)h(Ukk)n(onen.)f(Algorithms)g(for)g(some)694 833 y(string)k(matc)n(hing)h(problems)g(arising)f(in)i(molecular)e (genetics.)h FG(Information)j(Pr)l(o-)694 920 y(c)l(essing)f(83)g(\(Pr) l(o)l(c.)h(IFIP)f(Congr)l(ess,)h(1983\))g(53{64.)523 1077 y FK([14])41 b(J.)20 b(Storer.)f FG(Data)k(c)l(ompr)l(ession:)i (metho)l(ds)f(and)f(the)l(ory.)h(Computer)g(Scienc)l(e)f(Pr)l(ess,)694 1160 y(1988.)523 1297 y FK([15])41 b(J.)35 b(T)-7 b(arhio)34 b(and)h(E.)g(Ukk)n(onen.)g(A)g(Greedy)g(appro)n(ximation)f(algorithm)g (for)g(con-)694 1384 y(structing)24 b(shortest)g(common)g(sup)r (erstrings.)g FG(The)l(or)l(etic)l(al)29 b(Computer)e(Scienc)l(e)h(57) 694 1462 y(131{145)k(1988)523 1615 y FK([16])41 b(J.)23 b(T)-7 b(urner.)22 b(Appro)n(ximation)g(algorithms)g(for)h(the)h (shortest)e(common)h(sup)r(erstring)694 1701 y(problem.)k FG(Information)k(and)f(Computation)g(83)h(1{20)g(1989.)523 1855 y FK([17])41 b(L.)23 b(G.)g(V)-7 b(alian)n(t.)23 b(A)h(Theory)e(of)h(the)g(Learnable.)f FG(Comm.)27 b(A)n(CM)37 b FK(27\(11\))22 b(1134{1142)694 1937 y(1984.)p eop end %%Page: 27 37 TeXDict begin 27 36 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(3)523 806 y FI(On)52 b(Lab)l(yrin)l(th)f(Problems)h(and)523 972 y(Flo)t(o)t(d-Filling.)523 2549 y FL(3.1)116 b(In)m(tro)s(duction)523 2748 y FK(Consider)37 b(a)h(prop)r(ert)n(y)f(that)i(pixels)f(in)h(a)f(frame)f(bu\013er)i(ma)n (y)e(or)h(ma)n(y)f(not)i(p)r(ossess,)523 2848 y(suc)n(h)33 b(as)g(ha)n(ving)g(a)g(particular)f(color,)g(or,)h(more)g(generally)-7 b(,)32 b(a)h(color)f(from)i(a)f(selected)523 2947 y(range.)j(W)-7 b(e)37 b(can)g(iden)n(tify)g(regions)f(of)h(connected)f(pixels)h(that)h (share)d(this)j(prop)r(ert)n(y)-7 b(.)523 3047 y(Eac)n(h)33 b(region)f(is)i(delimited)h(b)n(y)e(a)h(set)f(of)h(pixels)g(lac)n(king) f(the)h(prop)r(ert)n(y)-7 b(,)33 b(constituting)523 3147 y(its)j FG(b)l(oundary)7 b FK(.)36 b(W)-7 b(e)36 b(are)f(concerned)f (with)i FG(4-c)l(onne)l(cte)l(d)2357 3116 y FB(1)2429 3147 y FK(regions,)e(where)h(eac)n(h)g(pixel)523 3246 y(connects)c(to)g(its)g(4)f(horizon)n(tally)g(and)h(v)n(ertically)e (adjacen)n(t)i(neigh)n(b)r(ours.)f(In)h(con)n(trast,)523 3346 y(the)26 b(b)r(oundary)f(of)h(a)f(region)f(consists)h(of)h(a)f(n)n (um)n(b)r(er)h(of)f(8-connected)g(comp)r(onen)n(ts,)g(one)523 3445 y(external)c(comp)r(onen)n(t,)h(and)g(zero)f(or)h(more)f(in)n (ternal)g(ones.)h(Giv)n(en)g(a)g(designated)f(region,)523 3545 y(a)31 b(\014lling)g(algorithm)f(is)i(to)f(apply)g(to)g(eac)n(h)g (pixel)g(in)g(the)h(region)e(a)h(certain)g(op)r(eration,)523 3645 y(suc)n(h)c(as)g(setting)h(the)g(color)e(to)h(a)h(sp)r(eci\014ed)f (v)-5 b(alue,)28 b(exactly)f(once.)523 3894 y Fl(3.1.1)99 b(Pr)-5 b(op)g(erties)34 b(and)h(Op)-5 b(er)g(ations)523 4043 y FK(There)23 b(is)h(one,)g(v)n(ery)f(imp)r(ortan)n(t,)g (restriction)g(w)n(e)h(put)g(on)g(the)g(p)r(ossible)g(com)n(bination)f (of)523 4143 y(prop)r(ert)n(y)29 b(and)g(op)r(eration,)g(namely)g(that) h(the)g(op)r(eration)f FH(in)m(v)-5 b(alidates)29 b FK(the)h(prop)r (ert)n(y)-7 b(.)523 4242 y(So,)29 b(the)h(op)r(eration)e(\\mak)n(e)g (green")g(is)i(allo)n(w)n(ed)e(for)h(the)g(prop)r(ert)n(y)g(\\red",)f (but)i(not)f(for)523 4342 y(the)f(prop)r(ert)n(y)e(\\red)h(or)g (green".)606 4442 y(W)-7 b(e)32 b(p)r(ose)f(this)g(restriction)g(with)g (the)h(aim)f(of)h(\014nding)f(a)g(constan)n(t)g(space)f(\014lling)h (al-)523 4541 y(gorithm.)25 b(T)-7 b(o)25 b(see)g(wh)n(y)f(this)i(is)f (necessary)-7 b(,)24 b(assume)h(there)g(is)g(a)g(third)g(colour,)f (blue,)i(and)523 4641 y(consider)32 b(some)g(arbitrary)e(green)i (region)f(with)i(a)f(blue)h(b)r(oundary)-7 b(.)32 b(With)i(a)e(prop)r (ert)n(y)523 4741 y(\\red)i(or)f(green")g(de\014ning)i(the)g(regions,)e (the)i(op)r(eration)e(\\mak)n(e)g(green")g(is)i(of)f(course)523 4840 y(ine\013ectiv)n(e)29 b(on)f(our)g(green-only)f(region.)h(If)h (there)f(had)h(b)r(een)g(red)f(pixels)h(in)g(the)g(region)523 4940 y(ho)n(w)n(ev)n(er,)37 b(they)i(w)n(ould)f(need)h(to)g(b)r(e)h (found)f(b)n(y)f(the)i(\014lling)f(algorithm)e(and)i(colored)523 5039 y(green.)31 b(This)i(reduces)e(the)i(task)e(of)h(the)h(\014lling)f (algorithm)f(to)h(one)g(of)g(visiting)g(all)g(the)p 523 5159 499 5 v 627 5241 a Fm(1)661 5273 y FF(Note)f(that)f(w)n(e)i(div)n (erge)e(here)h(from)h(the)e(graph-theoretic)h(in)n(terpretation)g(of)g (ha)n(ving)g(so)523 5356 y(man)n(y)25 b(disjoin)n(t)i(paths)e(b)r(et)n (w)n(een)h(an)n(y)f(2)h(p)r(oin)n(ts.)p eop end %%Page: 28 38 TeXDict begin 28 37 bop 2536 299 a FF(3.1.)53 b(In)n(tro)r(duction)153 b(28)523 506 y FK(green)22 b(pixels)g(and)h(detecting)g(termination.)f (No)n(w,)h(since)f(the)i(question)e(of)h(whether)f(this)523 606 y(can)33 b(b)r(e)h(done)f(using)g(less)g(than)g(a)g(linear)g(amoun) n(t)g(of)g(space)g(is)g(kno)n(wn)f(to)i(b)r(e)f(a)g(hard)523 706 y(op)r(en)22 b(problem,)g(there)g(is)g(little)h(hop)r(e)g(of)f (\014nding)g(an)g(algorithm)f(for)h(unrestricted)g(\014lling)523 805 y(using)27 b(only)g(a)h(constan)n(t)f(amoun)n(t)g(of)g(memory)-7 b(.)606 905 y(F)g(urthermore,)23 b(is)h(it)h(widely)f(b)r(eliev)n(ed)h (that)f(no)g(\014nite)h(\\bug")e(automaton)2973 875 y FB(2)3034 905 y FK(\(p)r(ossibly)523 1005 y(equipp)r(ed)35 b(with)f(a)g(\014xed)g(n)n(um)n(b)r(er)f(of)h(mark)n(ers\))f(can)g(tra) n(v)n(erse)f(all)h(no)r(des)h(of)g(an)g(arbi-)523 1104 y(trary)27 b(planar)h(graph)g(em)n(b)r(edded)h(in)g(a)f(grid,)g(let)h (alone)f(detect)h(the)h(termination)e(of)h(its)523 1204 y(tra)n(v)n(ersal.)24 b(This)j(means)f(that)h(the)g(restriction)f(w)n (e)g(imp)r(ose)h(on)f(the)h(\014lling)g(op)r(eration)f(is)523 1303 y(probably)h(vital)g(for)g(a)g(constan)n(t)g(space)g(solution.)606 1403 y(It)i(ma)n(y)f(seem)h(from)f(the)h(ab)r(o)n(v)n(e)f(that)h(suc)n (h)f(problems)g(arise)g(only)g(if)h(the)g(n)n(um)n(b)r(er)g(of)523 1503 y(colors)17 b(exceeds)h(2,)g(but)h(this)f(is)h(not)f(necessarily)f (the)i(case.)e(Consider)h(a)g(so)f(called)h FG(p)l(attern)p FK(-)523 1602 y(\014ll,)27 b(where)f(the)i(op)r(eration)d(dep)r(ends)i (on)g(the)g(pixel's)g(co)r(ordinates.)e(A)i(simple)g(example)523 1702 y(is)d(a)g(mono)r(c)n(hrome)f(image,)h(where)g(the)h(prop)r(ert)n (y)e(is)h(\\white",)g(and)g(the)h(op)r(eration)f(is)g(to)523 1802 y(mak)n(e)29 b(the)h(pixel)f(blac)n(k)g(i\013)h(b)r(oth)g(its)f(x) h(and)f(y)h(co)r(ordinate)e(are)g(ev)n(en.)h(In)h(other)f(w)n(ords,)523 1901 y(c)n(hange)c(the)i(color)e(of)i(a)f(white)h(region)e(in)n(to)h (what)h(lo)r(oks)e(lik)n(e)h(ligh)n(t)h(gra)n(y)-7 b(.)25 b(Using)h(a)g(2)g(b)n(y)523 2001 y(2)e(square)f(of)i(4)f(pixels,)g(1)g (blac)n(k)f(and)i(3)f(white,)h(as)e(a)h(building)h(blo)r(c)n(k,)f(it)h (is)f(clear)f(that)i(w)n(e)523 2100 y(can)i(again)f(construct)h (arbitrarily)f(shap)r(ed)h(regions)f(where)h(the)h(required)e(op)r (eration)h(is)523 2200 y(alw)n(a)n(ys)f(ine\013ectiv)n(e.)606 2300 y(As)36 b(a)g(result)g(of)g(the)g(restriction,)f(pixels)h(whic)n (h)g(ha)n(v)n(e)f(b)r(een)i(op)r(erated)e(on)h(will)g(b)r(e)523 2399 y(indistinguishable)g(from)g(the)h(b)r(oundary)-7 b(.)35 b(In)i(e\013ect,)f(the)h(b)r(oundary)f(can)f(b)r(e)i(said)f(to) 523 2499 y(expand)27 b(in)n(to)h(the)g(region.)523 2753 y Fl(3.1.2)99 b(T)-7 b(erminolo)i(gy)523 2903 y FK(F)e(rom)25 b(no)n(w,)g(w)n(e)g(will)g(abstract)g(from)g(the)g(details)h(of)f(the)h (distinguishing)f(prop)r(ert)n(y)f(and)523 3002 y(desired)j(op)r (eration)g(b)n(y)g(assuming)g(the)h(existence)f(of)g(the)h(follo)n (wing)f(t)n(w)n(o)g(functions:)523 3148 y FH(get\(\))41 b FK(a)30 b(b)r(o)r(olean)f(function)h(ev)-5 b(aluating)29 b(the)h(prop)r(ert)n(y)f(for)g(the)h(pixel)g(whose)f(address)731 3247 y(it)f(is)f(giv)n(en,)g(and)523 3403 y FH(set\(\))41 b FK(a)25 b(pro)r(cedure)e(that)i(p)r(erforms)f(the)h(op)r(eration)f (on)g(the)i(pixel)e(whose)g(address)g(it)h(is)731 3502 y(giv)n(en.)606 3648 y(Let)35 b FC(R)q FK(,)g(at)g(an)n(y)f(time,)h (denote)g(the)g(set)g(of)g(pixels)g(that)g(remain)f(to)h(b)r(e)g (\014lled,)h(The)523 3747 y(b)r(oundary)e(of)g FC(R)q FK(,)g(denoted)g FC(b)p FK(\()p FC(R)q FK(\))h(is)f(just)h(the)g(set)f (of)g(pixels)g(in)2655 3726 y(\026)2637 3747 y FC(R)h FK(that)g(neigh)n(b)r(our)e(a)523 3847 y(pixel)39 b(in)g FC(R)q FK(.)f(W)-7 b(e)40 b(assume)e(w.l.o.g.)g(that)h(an)f(FF)-9 b(A)40 b(applies)e(get\(\))h(only)f(to)h(pixels)f(in)523 3947 y FC(R)15 b FD([)g FC(b)p FK(\()p FC(R)q FK(\),)25 b(i.e.)h(it)g(will)f(not)h(cross)e(the)i(b)r(oundary)-7 b(.)24 b(On)i(those)f(in)h FC(R)g FK(it)g(returns)e(true,)i(and)523 4046 y(on)h(those)h(in)f FC(b)p FK(\()p FC(R)q FK(\))h(it)g(returns)f (false.)606 4146 y(The)c(existing)g(algorithms)e(discussed)i(here)g (are,)f(from)h(a)f(tec)n(hnical)h(viewp)r(oin)n(t,)g FG(pr)l(op-)523 4246 y(agation)37 b FK(algorithms.)29 b(They)h(start)f(from)g(a)h(giv)n(en)e(seed)i(pixel)g(and)f(explore)g (the)h(en)n(tire)523 4345 y(region)22 b(con)n(taining)h(it;)h (propagating,)e(as)h(it)h(w)n(ere,)f(from)g(the)h(seed)g(pixel)g(to)f (the)h(region's)523 4445 y(b)r(oundary)-7 b(.)22 b(In)g(the)h(form)n (ulation)e(of)h(Fishkin)h(and)f(Barsky)e([1],)i(`\014lling)g(is)h(the)f (comp)r(osite)523 4544 y(pro)r(cess)h(of)h(\014nding)g(and)g(SETting)g (the)h(pixels)f(in)g(the)h(region.')e(This)h(distinction)g(seems)523 4644 y(a)j(natural)f(one)h(for)g(familiar)g(FF)-9 b(As,)27 b(whic)n(h)h(can)e(b)r(e)i(written)g(purely)f(in)g(terms)g(of)g (get\(\))523 4744 y(to)35 b(serv)n(e)e(as)h(algorithms)f(that)i(merely) f(tra)n(v)n(erse)e(a)i(designated)g(region.)g(The)g(correct)523 4843 y(propagation)c(of)i(our)g(algorithm)f(ho)n(w)n(ev)n(er)f(v)n(ery) h(m)n(uc)n(h)h(dep)r(ends)g(on)g(the)h(SETting)f(of)523 4943 y(pixels.)22 b(Therefore,)f(w)n(e)h(will)g(refrain)f(from)h(the)h (ab)r(o)n(v)n(e)e(comp)r(ositional)g(view)h(and)g(simply)523 5043 y(refer)27 b(to)g(all)h(algorithms)e(discussed)h(here)g(as)g(FF)-9 b(As.)p 523 5162 499 5 v 627 5244 a Fm(2)661 5276 y FF(Imagine)21 b(a)g(\014nite)g(automaton)g(as)g(a)g(bug)f(w)n(alking)i(in)e(a)h (graph,)g(at)g(eac)n(h)g(step)f(seeing)i(whic)n(h)523 5359 y(of)k(the)g(4)g(direction)g(are)g(p)r(ossible.)p eop end %%Page: 29 39 TeXDict begin 29 38 bop 2536 299 a FF(3.1.)53 b(In)n(tro)r(duction)153 b(29)606 506 y FK(W)-7 b(e)33 b(are)e(in)n(terested)h(in)h(the)g FG(sp)l(ac)l(e)i(c)l(omplexity)41 b FK(and,)32 b(to)h(a)f(lesser)f (exten)n(t,)i(the)g FG(time)523 606 y(c)l(omplexity)i FK(of)27 b(FF)-9 b(As.)28 b(These)e(are)g(de\014ned)i(to)f(b)r(e)g(the) g(maxim)n(um)g(space)f(\(resp)r(ectiv)n(ely)523 706 y(time\))i(used)g (for)f(\014lling)h(a)f(region)f(of)i(area)e FC(n)h FK(\(that)i(is,)e (consisting)g(of)g FC(n)h FK(pixels\).)606 805 y(F)-7 b(or)43 b(the)h(momen)n(t)f(w)n(e)g(assume)g(a)g(RAM-lik)n(e)g(mac)n (hine)g(mo)r(del)h(in)g(whic)n(h)f(pixel-)523 905 y(addresses)38 b(\014t)j(in)f(a)g(\014xed)g(n)n(um)n(b)r(er)g(of)g(mac)n(hine)f(w)n (ords.)g(This)h(is)g(a)g(reasonable)e(as-)523 1005 y(sumption)28 b(for)g(all)f(practical)g(purp)r(oses)g(where)g(the)i(regions)d(will)i (certainly)f(b)r(e)i(smaller)523 1104 y(than)f(2)759 1074 y FB(32)856 1104 y FK(b)n(y)g(2)1014 1074 y FB(32)1111 1104 y FK(pixels.)606 1204 y(In)38 b(the)h(next)f(section,)g(w)n(e)f (will)i(presen)n(t)e(t)n(w)n(o)h(straigh)n(tforw)n(ard)d(examples)i(of) h(w)n(ell)523 1303 y(kno)n(wn)32 b(FF)-9 b(As)32 b(and)g(sho)n(w)g (their)g(space)f(complexit)n(y)h(to)g(b)r(e)h(linear)e(in)i(the)f(area) f(of)h(the)523 1403 y(\014lled)c(region.)523 1710 y FL(3.2)116 b(Depth)39 b(First)f(Filling)523 1910 y FK(Consider)27 b(the)h(follo)n(wing)e(recursiv)n(e)g(\015o)r(o)r(d)i(\014ll)g (algorithm:)523 2076 y Fk(df_fill\(p\))523 2175 y({)610 2275 y(if)43 b(\(!get\(p\)\))432 b(/*)43 b(not)f(in)h(region)e(*/)697 2374 y(return;)610 2474 y(set\(p\);)610 2574 y(df_fill\(p-DX\);)610 2673 y(df_fill\(p+DX\);)610 2773 y(df_fill\(p-DY\);)610 2873 y(df_fill\(p+DY\);)523 2972 y(})606 3138 y FK(F)-7 b(or)31 b(conciseness,)g(w)n(e)h(ha)n(v)n(e)e(\015attened)j(the)f(2)g (dimensions)f(of)h(the)g(pixel)g(plane)g(in)n(to)523 3238 y(one)g(linear)f(address)g(space;)g(using)g(t)n(w)n(o)h (di\013eren)n(t)g(o\013sets,)f(D)n(X)i(and)f(D)n(Y,)g(to)g(mo)n(v)n(e)f (to)523 3337 y(horizon)n(tally)-7 b(,)36 b(resp.)h(v)n(ertically)g (adjacen)n(t)g(neigh)n(b)r(ours.)g(This)h(closely)f(resem)n(bles)f(the) 523 3437 y(w)n(a)n(y)30 b(in)h(whic)n(h)f(pixels)h(are)e(commonly)h (stored)g(in)h(computer)g(memory)-7 b(.)30 b(F)-7 b(urthermore,)523 3537 y(let)30 b(us)g(call)g(the)g(negativ)n(e)f(x-direction)g(\\left",) h(the)g(p)r(ositiv)n(e)g(x-direction)f(\\righ)n(t",)f(the)523 3636 y(negativ)n(e)f(y-direction)f(\\up",)h(and)h(the)g(p)r(ositiv)n(e) f(y-direction)f(\\do)n(wn".)606 3736 y(Most)h(of)g(the)g(\014ll)h (algorithms)e(in)h(use)g(to)r(da)n(y)f(are)g(more)h(or)f(less)h (sophisticated)f(v)-5 b(aria-)523 3836 y(tions)24 b(on)g(this)h(simple) g(pro)r(cedure.)e(See)i(Fishkin)f(and)g(Barsky)f([1])h(for)g(a)g (comprehensiv)n(e)523 3935 y(surv)n(ey)g(of)h(suc)n(h)f(algorithms.)g (They)h(use)g(as)f(a)h(measure)e(of)i(sp)r(eed)h(the)f(a)n(v)n(erage)d (n)n(um)n(b)r(er)523 4035 y(of)g(times)g(a)g(pixel)f(in)i(the)f(region) f(is)g(visited.)h(Clearly)-7 b(,)21 b(for)h(the)g(ab)r(o)n(v)n(e)f (simple)h(FF)-9 b(A,)22 b(ev)n(ery)523 4134 y(pixel)32 b(prop)r(erly)f(inside)h(the)g(\014lled)g(region)e(is)i(visited)g(once) f(from)h(eac)n(h)f(side)h(\(4)f(times\))523 4234 y(and)22 b(those)g(neigh)n(b)r(ouring)e(the)j(b)r(oundary)e(1,)h(2,)f(or)h(3)f (times.)i(The)f(pixels)g(on)f(the)i(b)r(ound-)523 4334 y(ary)g(itself)i(are)f(also)f(visited)i(of)f(course,)f(but)i(for)f (simplicities')h(sak)n(e,)e(are)h(excluded)g(from)523 4433 y(the)29 b(ab)r(o)n(v)n(e)f(a)n(v)n(erage.)e(Let)j(us)g(men)n (tion)g(that)h(the)f(new)g(FF)-9 b(A)29 b(prop)r(osed)f(in)i([1)o(])f (ac)n(hiev)n(es)523 4533 y(an)e(a)n(v)n(erage)e(of)j(only)f(1.05)f (visits)h(p)r(er)h(pixel.)606 4633 y(No)n(w)f(let's)g(lo)r(ok)f(at)h (the)h(memory)e(usage.)g(While)i(there)f(are)f(no)g(explicit)i(data)e (struc-)523 4732 y(tures,)32 b(it)h(tak)n(es)e(a)h(lot)g(of)g(stac)n(k) g(space)f(to)h(remem)n(b)r(er)g(all)g(the)h(recursiv)n(e)d(in)n(v)n(o)r (cations.)523 4832 y(Assume)i(that)g(the)g(seed)f(pixel)h(is)f(in)h (the)g(b)r(ottom-righ)n(t)f(corner)f(of)i(a)f(rectangular)f(re-)523 4932 y(gion.)e(The)h(\014lling)f(then)h(propagates)e(\014rst)h(to)g (the)h(left)h(b)r(oundary)-7 b(,)28 b(then)h(one)f(pixel)g(up,)523 5031 y(then)34 b(bac)n(k)f(to)g(the)h(righ)n(t)e(b)r(oundary)-7 b(,)33 b(and)g(so)g(on.)g(Since)h(bac)n(k-trac)n(king)d(o)r(ccurs)h (only)523 5131 y(on)e(the)h(original)f(rectangle)f(b)r(oundary)-7 b(,)30 b(the)h(depth)g(of)g(the)g(recursion)e(can)h(b)r(e)h(seen)g(to) 523 5230 y(equal)e(the)h(area)e(of)h(the)h(region,)e(hence)h(the)h (memory)f(usage)f(is)h(prop)r(ortional)f(to)h(that.)523 5330 y(P)n(erm)n(uting)35 b(the)i(order)e(of)i(recursiv)n(e)d(calls)i (do)r(esn't)h(help;)g(for)e(an)n(y)h(order)f(there)i(will)p eop end %%Page: 30 40 TeXDict begin 30 39 bop 2255 299 a FF(3.3.)53 b(Breadth)26 b(First)g(Filling)155 b(30)523 506 y FK(b)r(e)35 b(t)n(w)n(o)e(opp)r (osite)h(directions)g(that)g(b)r(oth)h(come)e(b)r(efore)h(a)g(third,)h (lik)n(e)f(left)g(and)g(righ)n(t)523 606 y(come)c(b)r(efore)g(up)h(in)g (the)g(ordering)e(ab)r(o)n(v)n(e,)g(and)h(an)g(appropriate)f(starting)h (p)r(oin)n(t)g(in)h(a)523 706 y(rectangle)26 b(will)i(th)n(us)g(sho)n (w)f(the)h(same)f(b)r(eha)n(viour)f(for)h(the)h(p)r(erm)n(uted)g(order) e(\014ll.)606 805 y(In)i(conclusion:)f(recursiv)n(e)e(or)i(stac)n (k-based)f(FF)-9 b(As)28 b(ha)n(v)n(e)e(linear)h(space)g(complexit)n(y) -7 b(.)523 1112 y FL(3.3)116 b(Breadth)37 b(First)h(Filling)523 1312 y FK(In)c(the)f(follo)n(wing)g(algorithm)f(the)i(stac)n(k)e (implicit)i(in)g(the)g(previous)e(algorithm)g(is)i(re-)523 1411 y(placed)27 b(b)n(y)h(a)f(\014rst-in,)g(\014rst-out)g(queue.)523 1577 y Fk(bf_fill\(p\))523 1677 y({)610 1777 y(enque\(p\);)610 1876 y(while)42 b(\(not_empty\(\)\))c({)697 1976 y(p)44 b(=)f(deque\(\);)697 2076 y(if)g(\(get\(p\)\))d({)785 2175 y(set\(p\);)785 2275 y(enque\(p-DX\);)785 2374 y(enque\(p+DX\);) 785 2474 y(enque\(p-DY\);)785 2574 y(enque\(p+DY\);)697 2673 y(})610 2773 y(})523 2873 y(})606 3039 y FK(This)k(algorithm)f(is) g(a)h(big)g(impro)n(v)n(emen)n(t)e(o)n(v)n(er)g(the)j(previous)e(one)g (in)h(terms)g(of)523 3138 y(memory-usage,)32 b(at)j(least)f(in)h (practice.)f(It)h(will)f(\014ll)h(the)g(rectangle)e(or)h(for)g(that)h (mat-)523 3238 y(ter)k(an)n(y)f(con)n(v)n(ex)g(region)g(using)g FC(O)r FK(\()1702 3178 y FD(p)p 1772 3178 50 4 v 1772 3238 a FC(n)p FK(\))i(space.)e(This)h(is)g(b)r(ecause)g(the)g(\014ll)h (tends)f(to)523 3337 y(expand)34 b(in)g(a)g(diamond-shap)r(ed)f(form,)h (where)g(only)g(pixels)g(in)g(or)f(neigh)n(b)r(ouring)g(the)523 3437 y(outermost)27 b(pixel-la)n(y)n(er)e(of)j(the)g(diamond)f(are)g (in)h(the)g(queue.)606 3537 y(It)c(is)f(tempting)h(to)f(conjecture)g (that)h(the)g(space)e(complexit)n(y)h(of)g(the)h(breadth)f(\014rst)g (\014ll)523 3636 y(is)j(in)h(fact)g FC(O)r FK(\()961 3577 y FD(p)p 1031 3577 V 1031 3636 a FC(n)o FK(\).)g(In)g(trying)f(to) g(pro)n(v)n(e)f(this,)h(one)g(runs)g(in)n(to)g(di\016culties)h(with)g (regions)523 3736 y(where)c(the)i(diamond)f(is)f(not)h(just)h (expanding)e(a)n(w)n(a)n(y)f(from)i(the)g(seed)g(pixel)g(but)g(also)f (has)523 3836 y(to)28 b(mo)n(v)n(e)e(bac)n(k)h(to)n(w)n(ards)e(it.)606 3935 y(The)33 b(picture)f(in)h(Figure)f(3.1)g(w)n(as)f(constructed)h (to)g(exhibit)h(this)g(b)r(eha)n(viour)f(in)g(the)523 4035 y(extreme.)c(Consider)g(c)n(hanging)f(the)i(white)g(region)e (inside)i(the)g(big)f(diamond)g(to)h(blac)n(k.)523 4134 y(Starting)i(from)h(the)g(cen)n(ter,)g(the)g(\014ll)g(will)g(spread)f (out)h(ev)n(enly)f(in)h(all)g(four)f(directions,)523 4234 y(then)f(split)h(again)d(fourfold,)i(and)g(after)f(one)h(more)f (split)h(will)g(arriv)n(e,)e(almost)h(sim)n(ulta-)523 4334 y(neously)-7 b(,)27 b(at)h(the)g(64)e(`outlets'.)606 4433 y(F)-7 b(rom)19 b(there)g(64)g(small)g(diamonds)f(will)i(dev)n (elop)f(in)g(parallel,)g(the)g(total)g(circumference)523 4533 y(of)g(whic)n(h)f(is)h(on)f(the)h(order)e(of)i(the)g(area)e(of)h (the)h(region.)f(This)g(sho)n(ws)g(breadth-\014rst)g(\(queue)523 4633 y(based\))27 b(FF)-9 b(As,)28 b(to)r(o,)g(su\013er)f(from)g(a)g (linear)g(w)n(orst)g(case)f(space)h(complexit)n(y)-7 b(.)523 4940 y FL(3.4)116 b(The)38 b(price)g(of)h(disconnecting)523 5139 y FK(If)26 b(w)n(e)f(trace)g(the)g(need)h(for)f(using)g(all)g (that)h(memory)f(in)g(stac)n(k)g(and)g(queue)h(based)e(FF)-9 b(As,)523 5239 y(w)n(e)26 b(see)g(that)g(the)h(neigh)n(b)r(ours)e(of)h (a)f(just-\014lled)i(pixel)f(are)f(remem)n(b)r(ered)h(to)g(ensure)f (that)523 5338 y(the)30 b(regions)e(those)h(neigh)n(b)r(ours)g(are)g (part)g(of,)g(ultimately)h(get)g(\014lled)g(to)r(o.)f(Recall)g(that)p eop end %%Page: 31 41 TeXDict begin 31 40 bop 2071 299 a FF(3.4.)52 b(The)26 b(price)g(of)h(disconnecting)154 b(31)878 1569 y Fj(\000)961 1486 y(\000)1044 1403 y(\000)1127 1320 y(\000)1210 1237 y(\000)1293 1154 y(\000)1376 1071 y(\000)1459 988 y(\000)1542 905 y(\000)1625 822 y(\000)1708 739 y(\000)1791 656 y(\000)1857 589 y(\000@)2023 672 y(@)2106 756 y(@)2189 839 y(@)2272 922 y(@)2355 1005 y(@)2438 1088 y(@)2522 1171 y(@)2605 1254 y(@)2688 1337 y(@)2771 1420 y(@)2854 1503 y(@)2920 1569 y(@)878 1652 y(@)961 1735 y(@)1044 1818 y(@)1127 1901 y(@)1210 1984 y(@)1293 2067 y(@)1376 2150 y(@)1459 2233 y(@)1542 2316 y(@)1625 2399 y(@)1708 2482 y(@)1791 2565 y(@)1857 2632 y(@\000)2023 2549 y(\000)2106 2466 y(\000)2189 2383 y(\000)2272 2300 y(\000)2355 2217 y(\000)2438 2134 y(\000)2522 2051 y(\000)2605 1968 y(\000)2688 1885 y(\000)2771 1802 y(\000)2854 1719 y(\000)2920 1652 y(\000)p 1957 1556 499 7 v 1954 1553 7 499 v 1426 1556 499 7 v 1920 1553 7 499 v 1426 1589 499 7 v 1920 2084 7 499 v 1957 1589 499 7 v 1954 2084 7 499 v 2488 1556 233 7 v 2485 1553 7 233 v 2223 1523 233 7 v 2452 1519 7 200 v 2223 1622 233 7 v 2452 1818 7 200 v 2488 1589 233 7 v 2485 1818 7 233 v 2754 1556 100 7 v 2751 1553 7 100 v 2621 1523 100 7 v 2717 1519 7 67 v 2621 1622 100 7 v 2717 1685 7 67 v 2754 1589 100 7 v 2751 1685 7 100 v 2488 1290 100 7 v 2485 1287 7 100 v 2518 1420 V 2522 1323 67 7 v 2419 1420 7 100 v 2355 1323 67 7 v 2355 1290 100 7 v 2452 1287 7 100 v 2090 1523 100 7 v 2186 1519 7 100 v 2223 1489 100 7 v 2219 1486 7 67 v 2223 1655 100 7 v 2219 1719 7 67 v 2090 1622 100 7 v 2186 1719 7 100 v 2488 1855 100 7 v 2485 1951 7 100 v 2518 1818 V 2522 1822 67 7 v 2419 1818 7 100 v 2355 1822 67 7 v 2355 1855 100 7 v 2452 1951 7 100 v 1957 1024 233 7 v 1954 1021 7 233 v 1987 1287 V 1990 1058 200 7 v 1887 1287 7 233 v 1691 1058 200 7 v 1691 1024 233 7 v 1920 1021 7 233 v 1954 756 7 100 v 1957 759 100 7 v 1987 888 7 100 v 1990 792 67 7 v 1887 888 7 100 v 1824 792 67 7 v 1920 756 7 100 v 1824 759 100 7 v 2219 1021 7 100 v 2223 1024 100 7 v 2090 991 V 2186 988 7 67 v 2090 1091 100 7 v 2186 1154 7 67 v 2219 1154 7 100 v 2223 1058 100 7 v 1987 1420 7 100 v 1990 1323 100 7 v 2020 1287 7 100 v 2023 1290 67 7 v 1854 1287 7 100 v 1791 1290 67 7 v 1887 1420 7 100 v 1791 1323 100 7 v 1655 1021 7 100 v 1558 1024 100 7 v 1691 991 V 1688 988 7 67 v 1691 1091 100 7 v 1688 1154 7 67 v 1655 1154 7 100 v 1558 1058 100 7 v 1160 1556 233 7 v 1389 1553 7 233 v 1426 1523 233 7 v 1422 1519 7 200 v 1426 1622 233 7 v 1422 1818 7 200 v 1160 1589 233 7 v 1389 1818 7 233 v 1027 1556 100 7 v 1123 1553 7 100 v 1160 1523 100 7 v 1157 1519 7 67 v 1160 1622 100 7 v 1157 1685 7 67 v 1027 1589 100 7 v 1123 1685 7 100 v 1293 1290 100 7 v 1389 1287 7 100 v 1356 1420 V 1293 1323 67 7 v 1456 1420 7 100 v 1459 1323 67 7 v 1426 1290 100 7 v 1422 1287 7 100 v 1691 1523 100 7 v 1688 1519 7 100 v 1558 1489 100 7 v 1655 1486 7 67 v 1558 1655 100 7 v 1655 1719 7 67 v 1691 1622 100 7 v 1688 1719 7 100 v 1293 1855 100 7 v 1389 1951 7 100 v 1356 1818 V 1293 1822 67 7 v 1456 1818 7 100 v 1459 1822 67 7 v 1426 1855 100 7 v 1422 1951 7 100 v 1957 2120 233 7 v 1954 2350 7 233 v 1987 2084 V 1990 2087 200 7 v 1887 2084 7 233 v 1691 2087 200 7 v 1691 2120 233 7 v 1920 2350 7 233 v 1954 2482 7 100 v 1957 2386 100 7 v 1987 2350 7 100 v 1990 2353 67 7 v 1887 2350 7 100 v 1824 2353 67 7 v 1920 2482 7 100 v 1824 2386 100 7 v 2219 2217 7 100 v 2223 2120 100 7 v 2090 2154 V 2186 2217 7 67 v 2090 2054 100 7 v 2186 2051 7 67 v 2219 2084 7 100 v 2223 2087 100 7 v 1987 1818 7 100 v 1990 1822 100 7 v 2020 1951 7 100 v 2023 1855 67 7 v 1854 1951 7 100 v 1791 1855 67 7 v 1887 1818 7 100 v 1791 1822 100 7 v 1655 2217 7 100 v 1558 2120 100 7 v 1691 2154 V 1688 2217 7 67 v 1691 2054 100 7 v 1688 2051 7 67 v 1655 2084 7 100 v 1558 2087 100 7 v 876 2889 a FF(FIGURE)25 b(3.1.)i(A)e(w)n(orst)i(case)g(example)e (region)i(for)f(breadth)f(\014rst)h(\014ll.)523 3153 y FC(R)q FK(,)i(at)g(an)n(y)f(time,)i(denotes)e(the)i(set)f(of)g (pixels)g(that)g(remain)g(to)f(b)r(e)i(\014lled.)f(Clearly)-7 b(,)27 b(if)i FC(R)523 3252 y FK(consists)e(of)g FC(c)g FK(comp)r(onen)n(ts,)g(then)h(at)f(least)g FC(c)g FK(di\013eren)n(t)g (pixels)g(m)n(ust)h(b)r(e)f(remem)n(b)r(ered,)523 3352 y(one)19 b(in)h(eac)n(h)f(comp)r(onen)n(t,)g(in)h(order)e(to)h(b)r(e)h (able)f(to)h(complete)f(\014lling)g(all)h(of)f FC(R)q FK(.)g(Whenev)n(er)523 3452 y(a)31 b(pixel)h(is)g(\014lled)g(that)g(is) f(a)h(cutting)g(p)r(oin)n(t)g(of)f(its)h(comp)r(onen)n(t)g(\(a)f (cutting)h(p)r(oin)n(t)g(in)g(a)523 3551 y(connected)g(graph)e(is)i(a)f (p)r(oin)n(t)h(whose)f(remo)n(v)-5 b(al)30 b(lea)n(v)n(es)g(more)h (than)g(one)h(comp)r(onen)n(t\),)523 3651 y(additional)24 b(pixels)h(m)n(ust)f(b)r(e)h(remem)n(b)r(ered.)f(On)h(the)g(other)f (hand,)g(if)i(w)n(e)e(only)g(\014ll)h(pixels)523 3751 y(that)f(lea)n(v)n(e)e FC(R)i FK(connected,)f(then)h(w)n(e)f(just)g(mo) n(v)n(e)g(to)g(an)n(y)f(of)h(its)h(un\014lled)g(neigh)n(b)r(ours)e(and) 523 3850 y(con)n(tin)n(ue,)i(without)g(ha)n(ving)g(to)g(remem)n(b)r(er) f(an)n(y)h(pixel)g(other)g(than)g(where)g(w)n(e)f(are.)h(This)523 3950 y(reduces)29 b(the)g(problem)g(of)h(\014lling)f(to)g(that)h(of)f (\014nding)h(a)f(non-cutting)g(pixel.)g(If)h(w)n(e)f(can)523 4049 y(\014nd)j(suc)n(h)f(a)h(pixel)f(in)h(time)g FC(T)12 b FK(\()p FC(n)p FK(\),)31 b(then)h(\014lling)g(all)f(the)h(pixels)g (in)g FC(R)g FK(can)f(b)r(e)h(done)f(in)523 4149 y(time)d FC(nT)12 b FK(\()p FC(n)p FK(\))27 b(with)h(no)g(additional)f(storage.) 523 4456 y FL(3.5)116 b(On)39 b(planar)e(em)m(b)s(eddings)523 4655 y FK(Let's)27 b(consider)f(the)h(problem)f(in)i(a)e(sligh)n(tly)g (di\013eren)n(t,)h(more)g(general,)e(setting.)i(A)g(pla-)523 4755 y(nar)33 b(em)n(b)r(edding)h(of)g(a)f(\(planar\))g(graph)g(can)g (b)r(e)i(succinctly)e(represen)n(ted)g(b)n(y)g(a)h(triple)523 4855 y(\()p FC(V)5 b(;)14 b(H)r(;)g(r)r FK(\).)22 b FC(V)40 b FK(is)20 b(the)h(set)g(of)f(v)n(ertices)g(in)g(the)h(graph.)f FC(H)30 b FD(\022)22 b FC(V)i FD(\002)t FC(V)39 b FK(is)21 b(the)g(set)f(of)h FG(half-e)l(dges)p FK(.)523 4954 y(A)k(half-edge)f FC(h)f FK(=)f(\()p FC(v)s(;)14 b(w)r FK(\))26 b(is)f(that)g(half)f(of)h (the)g(edge)f FD(f)p FC(v)s(;)14 b(w)r FD(g)24 b FK(whic)n(h)h(is)f (adjacen)n(t)g(to)h FC(v)s FK(.)g(Of)523 5054 y(course,)c(w)n(e)g (require)g(that)h FC(H)29 b FK(b)r(e)22 b(symmetric;)g(a)f(half)h(edge) g(\()p FC(v)s(;)14 b(w)r FK(\))23 b(cannot)f(exist)f(without)523 5154 y(a)27 b(corresp)r(onding)f(other)g(half)i(\()p FC(w)r(;)14 b(v)s FK(\).)29 b(Finally)-7 b(,)27 b FC(r)f FK(:)d FC(H)30 b FD(!)23 b FC(H)34 b FK(is)28 b(a)f(function)h(that)f (orders)523 5253 y(all)h(half-edges)f(around)g(eac)n(h)h(v)n(ertex)f (in)i(a)e(clo)r(c)n(k-wise)g(manner.)h(If)h(the)f(half-edges)f(ad-)523 5353 y(jacen)n(t)h(to)g(a)g(v)n(ertex)f FC(v)32 b FK(of)c(degree)f FC(d)i FK(are,)e(in)i(clo)r(c)n(k-wise)e(order,)g FC(h)2630 5365 y FB(0)2667 5353 y FC(;)14 b(h)2752 5365 y FB(1)2789 5353 y FC(;)g(:)g(:)g(:)f(;)h(h)3021 5365 y FA(d)p Fw(\000)p FB(1)3145 5353 y FK(,)28 b(then)p eop end %%Page: 32 42 TeXDict begin 32 41 bop 2197 299 a FF(3.5.)52 b(On)25 b(planar)h(em)n(b)r(eddings)154 b(32)523 506 y FC(r)r FK(\()p FC(h)642 518 y FA(i)671 506 y FK(\))23 b(=)g FC(h)862 521 y FB(\()p FA(i)p FB(+1\))c(mo)r(d)f FA(d)1223 506 y FK(.)27 b(Half-edges)e(adjacen)n(t)g(to)h(the)h(same)e(v)n(ertex) g(are)g(also)g(said)g(to)h(b)r(e)523 606 y(adjacen)n(t.)h(Note)g(that)g (the)h(v)n(ertices)e(are)g(in)h(one-one)f(corresp)r(ondence)g(to)g(the) i FG(orbits)g FK(of)523 706 y FC(r)r FK(.)h(Let)e(us)h(call)f(suc)n(h)g (a)g(triple)h(\()p FC(V)5 b(;)14 b(H)r(;)g(r)r FK(\))29 b(a)e FG(labyrinth)p FK(.)606 805 y(W)-7 b(e)38 b(in)n(tro)r(duce)f (some)h(more)e(terminology)h(that)h(will)g(b)r(e)g(useful)g(later.)f (Lab)n(yrin)n(th)523 905 y FC(L)580 875 y Fw(0)626 905 y FK(=)23 b(\()p FC(V)813 875 y Fw(0)836 905 y FC(;)14 b(H)949 875 y Fw(0)972 905 y FC(;)g(r)1048 875 y Fw(0)1072 905 y FK(\))23 b(is)f(a)g FG(sublabyrinth)i FK(of)e FC(L)h FK(=)f(\()p FC(V)5 b(;)14 b(H)r(;)g(r)r FK(\))24 b(i\013)f FC(V)2470 875 y Fw(0)2516 905 y FD(\022)g FC(V)c FK(,)j FC(H)2792 875 y Fw(0)2838 905 y FD(\022)h FC(H)15 b FD(\\)8 b FC(V)3140 875 y Fw(0)3172 905 y FD(\002)g FC(V)3311 875 y Fw(0)3335 905 y FK(,)523 1005 y(and)32 b FD(8)p FC(h)e FD(2)g FC(H)974 974 y Fw(0)1028 1005 y FK(:)g FC(r)1120 974 y Fw(0)1144 1005 y FK(\()p FC(h)p FK(\))g(=)g FC(r)1420 974 y FA(i)1449 1005 y FK(\()p FC(h)p FK(\))p FC(;)14 b(i)30 b(>)f FK(0)f(minimal)f(suc)n(h)h(that)g FC(r)2550 974 y FA(i)2578 1005 y FK(\()p FC(h)p FK(\))i FD(2)h FC(H)2882 974 y Fw(0)2905 1005 y FK(.)h(When)g FC(L)e FK(=)523 1104 y(\()p FC(V)5 b(;)14 b(H)r(;)g(r)r FK(\))31 b(is)e(a)h(lab)n(yrin)n(th)e(and)i FC(V)1601 1074 y Fw(0)1651 1104 y FD(\022)c FC(V)19 b FK(,)30 b(then)g FC(L)p FD(j)p FC(V)2199 1074 y Fw(0)2252 1104 y FK(is)f(the)h(sublab)n (yrin)n(th)f(\()p FC(V)3066 1074 y Fw(0)3089 1104 y FC(;)14 b(H)3202 1074 y Fw(0)3225 1104 y FC(;)g(r)3301 1074 y Fw(0)3325 1104 y FK(\))523 1204 y(with)37 b FC(H)797 1174 y Fw(0)857 1204 y FK(=)g FC(H)30 b FD(\\)25 b FC(V)1205 1174 y Fw(0)1252 1204 y FD(\002)f FC(V)1408 1174 y Fw(0)1431 1204 y FK(.)36 b(Also,)g(with)h FC(v)j FD(2)e FC(V)18 b FK(,)37 b FC(L)23 b FD(n)h FC(v)39 b FK(denotes)d FC(L)p FD(j)p FK(\()p FC(V)43 b FD(\000)24 b(f)p FC(v)s FD(g)p FK(\).)35 b(An)523 1303 y FG(e)l(dge)c FK(in)g(a)f(lab)n(yrin)n(th)f (is)h(a)g(set)g(of)g(t)n(w)n(o)g(corresp)r(onding)e(half-edges)h FD(f)p FK(\()p FC(v)s(;)14 b(w)r FK(\))p FC(;)g FK(\()p FC(w)r(;)g(v)s FK(\))p FD(g)p FK(.)32 b(A)523 1403 y FG(p)l(ath)f FK(is)f(de\014ned)g(in)h(the)f(natural)f(w)n(a)n(y)-7 b(.)29 b(A)i(lab)n(yrin)n(th)e(is)h FG(c)l(onne)l(cte)l(d)g FK(if)g(for)g(an)n(y)f(distinct)523 1503 y(v)n(ertices)40 b FC(v)s(;)14 b(w)44 b FK(there)d(is)f(a)h(path)g(from)g FC(v)j FK(to)d FC(w)r FK(.)h(A)f FG(c)l(onne)l(cte)l(d)h(c)l(omp)l (onent)p FK(,)f(or)f(just)523 1602 y(comp)r(onen)n(t,)28 b(of)h(a)f(lab)n(yrin)n(th)g FC(L)c FK(=)g(\()p FC(V)5 b(;)14 b(H)r(;)g(r)r FK(\),)30 b(is)e(a)g(maximal)g(connected)h(sublab) n(yrin)n(th)523 1702 y FC(L)580 1672 y Fw(0)634 1702 y FK(=)i(\()p FC(V)829 1672 y Fw(0)852 1702 y FC(;)14 b(H)965 1672 y Fw(0)988 1702 y FC(;)g(r)1064 1672 y Fw(0)1088 1702 y FK(\).)33 b(F)-7 b(or)32 b(a)g(half-edge)f FC(h)g FK(=)g(\()p FC(v)s(;)14 b(w)r FK(\))34 b(in)e(lab)n(yrin)n(th)g FC(L)e FK(=)h(\()p FC(V)5 b(;)14 b(H)r(;)g(r)r FK(\),)34 b FC(C)6 b FK(\()p FC(h)p FK(\))523 1802 y(denotes)27 b(the)h(connected)g(comp)r(onen)n(t)f(of)h FC(L)18 b FD(n)g FC(v)30 b FK(con)n(taining)d FC(w)r FK(.)523 2051 y Fl(3.5.1)99 b(Exploring)34 b(the)h(labyrinth)523 2200 y FK(An)25 b FG(explor)l(er)h FK(is)f(placed)g(in)g(the)g(lab)n(yrin)n (th)f(on)h(an)g(arbitrary)d(half-edge,)j(equipp)r(ed)g(with)523 2300 y(a)37 b(\014nite)h(set)g(of)f(distinct)h(mark)n(ers.)e(A)n(t)h (an)n(y)g(time,)h(mo)n(v)n(emen)n(t)f(is)g(p)r(ossible)g(in)h(three)523 2399 y(directions)523 2565 y FH(righ)m(t)k FK(Mo)n(v)n(e)26 b(from)h(a)g(half-edge)g FC(h)h FK(to)f FC(r)r FK(\()p FC(h)p FK(\).)523 2731 y FH(left)41 b FK(Mo)n(v)n(e)27 b(from)g(a)g(half-edge)g FC(h)g FK(to)h FC(r)1757 2701 y Fw(\000)p FB(1)1847 2731 y FK(\()p FC(h)p FK(\).)523 2897 y FH(cross)41 b FK(Mo)n(v)n(e)27 b(from)g(a)g(half-edge)g(\()p FC(v)s(;)14 b(w)r FK(\))29 b(to)f(its)f(coun)n(terpart)f(\()p FC(w)r(;)14 b(v)s FK(\).)523 3064 y(Mark)n(er)k(manipulation)h(is)h(ac) n(hiev)n(ed)f(through)g(the)h(primitiv)n(e)f(op)r(erations)g FH(drop)h FK(mark)n(er)523 3163 y(\(on)29 b(curren)n(t)g(half-edge\),)g FH(pic)m(k)h FK(mark)n(er)e(\(from)h(curren)n(t)g(or)f(adjacen)n(t)h (half-edge\),)g(and)523 3263 y(the)23 b(tests)g FH(carrying)i FK(mark)n(er,)c(and)i FH(here)f FK(mark)n(er)f(\(is)i(mark)n(er)e(on)h (curren)n(t)g(half-edge?\).)523 3362 y(Note)h(that)g(mark)n(ers)e(are)h (placed)h(at)g(half-edges,)f(not)g(v)n(ertices.)g(W)-7 b(e)24 b(further)f(allo)n(w)e(some)523 3462 y(more)31 b(in)n(v)n(olv)n(ed)e(op)r(erations)h(whose)h(implemen)n(tation)g(in)h (terms)f(of)g(the)h(ab)r(o)n(v)n(e)e(primi-)523 3562 y(tiv)n(es)h(is)h(straigh)n(tforw)n(ard.)d(Of)i(these,)h(the)g FH(near)g FK(test)g(c)n(hec)n(ks)f(whether)g(an)n(y)g(adjacen)n(t)523 3661 y(half-edge)40 b(con)n(tains)f(a)h(giv)n(en)g(mark)n(er,)f(the)i FH(replace)f FK(op)r(eration)g(pic)n(ks)g(up)h(a)f(giv)n(en)523 3761 y(mark)n(er)29 b(at)i(an)g(adjacen)n(t)f(half-edge)h(to)g(drop)f (another)g(mark)n(er)f(in)j(its)f(place,)g(and)f(the)523 3861 y FH(goto)e FK(op)r(eration)f(mo)n(v)n(es)g(to)h(an)g(adjacen)n(t) f(half-edge)h(con)n(taining)f(a)h(giv)n(en)f(mark)n(er.)g(Fi-)523 3960 y(nally)-7 b(,)27 b(a)h FH(halt)f FK(op)r(eration)g(is)g(a)n(v)-5 b(ailable)27 b(to)g(signal)g(the)h(completion)f(of)h(a)f(task.)606 4060 y(The)21 b(explorer)f(is)i(a)e(\014nite)i(automaton)f(expressed)f (as)h(a)g(pro)r(cedure)f(with)i(no)f(v)-5 b(ariables)523 4159 y(other)27 b(than)h(a)f(\014xed)h(set)f(of)h(mark)n(ers.)523 4408 y Fl(3.5.2)99 b(Finding)33 b(a)i(non-cutting)g(p)-5 b(oint)523 4558 y FK(The)34 b(problem)g(w)n(e're)f(in)n(terested)h(in)h (is)f(that)g(of)g(\014nding)h(a)e(non-cutting)h(v)n(ertex.)g(The)523 4658 y(solution)23 b(is)g(an)g(explorer)e(whic)n(h,)i(started)g(on)g (an)g(an)n(y)f(initial)h(half-edge)g(of)g(an)g(arbitrary)523 4757 y(but)38 b(\014nite)g(lab)n(yrin)n(th,)f(alw)n(a)n(ys)e(halts)i (in)h(a)f(\014nite)h(n)n(um)n(b)r(er)f(of)g(steps)g(on)h(a)f(half-edge) 523 4857 y(adjacen)n(t)27 b(to)h(a)f(non-cutting)g(v)n(ertex.)g(Our)g (prop)r(osed)f(initial)i(solution)f(is:)p eop end %%Page: 33 43 TeXDict begin 33 42 bop 2197 299 a FF(3.5.)52 b(On)25 b(planar)h(em)n(b)r(eddings)154 b(33)p 606 427 1167 4 v 606 2071 4 1644 v 662 521 a FK(mark)n(ers)26 b FG(last)8 b FK(,)p FG(out)662 621 y FK(lo)r(op)768 721 y(if)28 b(carrying)e FG(last)36 b FK(then)844 820 y(drop-left)27 b FG(last)8 b FK(;)28 b(drop)f FG(out)768 920 y FK(elsif)h(near)f FG(last)35 b FK(then)937 1020 y(if)28 b(at-left)g FG(out)35 b FK(then)1013 1119 y(mo)n(v)n(e-here)26 b FG(out)1013 1219 y FK(if)i(here)f FG(last)36 b FK(then)1089 1318 y(halt)1013 1418 y(endif)937 1518 y(else)27 b(left;)h(pic)n(k)g FG(last)8 b FK(,)p FG(out)937 1617 y FK(endif)768 1717 y(else)27 b(left)768 1817 y(endif)768 1916 y(cross)662 2016 y(end)p 1769 2071 V 606 2074 1167 4 v 606 2180 a(The)c(follo)n (wing)f(discussion)g(serv)n(es)f(b)r(oth)j(as)e(an)g(explanation)g(of)h (the)h(w)n(orkings)d(of)h(the)523 2279 y(explorer,)k(and)i(as)e(a)i (pro)r(of)f(of)g(its)h(correctness.)606 2379 y(What)20 b(the)f(explorer)f(do)r(es)h(is)g(to)g(p)r(erform)f(a)h(series)f(of)h FG(c)l(onne)l(ctivity)k(tests)18 b FK(\(con-test)h(for)523 2479 y(short\))24 b FC(T)814 2491 y FB(0)851 2479 y FC(;)14 b(T)937 2491 y FB(1)974 2479 y FC(;)g(:)g(:)g(:)24 b FK(at)h(v)n(ertices)e FC(v)1568 2491 y FB(0)1606 2479 y FC(;)14 b(v)1683 2491 y FB(1)1720 2479 y FC(;)g(:)g(:)g(:)p FK(.)24 b(Connectivit)n(y)h(test)g FC(T)2598 2491 y FA(i)2649 2479 y FK(determines)g(whether)523 2578 y(v)n(ertex)30 b FC(v)818 2590 y FA(i)877 2578 y FK(is)h(a)f(cutting)h(p)r(oin)n(t)g (or)f(not.)h(A)n(t)g(the)h(start)e(of)h FC(T)2443 2590 y FA(i)2470 2578 y FK(,)g(mark)n(er)e FG(last)39 b FK(is)31 b(dropp)r(ed)523 2678 y(on)36 b(a)g(half-edge)f(adjacen)n(t)h(to)g FC(v)1577 2690 y FA(i)1605 2678 y FK(.)g(If)h(the)f(con-test)g(fails,)g (i.e.)g FC(v)2617 2690 y FA(i)2681 2678 y FK(is)g(a)g(cutting)h(p)r (oin)n(t,)523 2778 y(then)c FG(last)40 b FK(is)32 b(pic)n(k)n(ed)g(up)g (and)g(dropp)r(ed)g(at)g(a)g(neigh)n(b)r(ouring)f(v)n(ertex)g FC(v)2830 2790 y FA(i)p FB(+1)2942 2778 y FK(,)i(where)e(the)523 2877 y(pro)r(cess)21 b(is)i(rep)r(eated.)f(Let)h FC(h)1435 2889 y FB(0)1495 2877 y FK(b)r(e)f(the)h(half-edge)f(on)g(whic)n(h)h (explorer)e(is)h(initially)h(placed)523 2977 y(and)j FC(h)731 2989 y FA(i)p FB(+1)865 2977 y FK(=)d(\()p FC(v)1025 2989 y FA(i)p FB(+1)1137 2977 y FC(;)14 b(v)1214 2989 y FA(i)1242 2977 y FK(\))26 b(b)r(e)h(the)f(half-edge)f(on)h(whic)n(h)f (the)i(explorer)d(arriv)n(es)g(at)h FC(v)3120 2989 y FA(i)p FB(+1)3258 2977 y FK(for)523 3076 y(con-test)i FC(T)886 3088 y FA(i)p FB(+1)997 3076 y FK(.)606 3176 y(W)-7 b(e)27 b(\014rst)f(consider)g(what)g(happ)r(ens)h(when)f FG(last)35 b FK(is)26 b(dropp)r(ed)h(at)f(a)g(non-cutting)h(p)r(oin)n (t)523 3276 y FC(v)k FK(=)d FC(v)727 3288 y FA(i)755 3276 y FK(.)j(This)f(case)g(is)h(illustrated)f(in)h(Figure)f(3.2\(a\).) g(Since)h(remo)n(v)-5 b(al)29 b(of)h FC(v)k FK(lea)n(v)n(es)29 b(the)523 3375 y(lab)n(yrin)n(th)j(connected,)h(there)g(are)f(paths)h (connecting)g(all)g(of)g(the)g(neigh)n(b)r(ours)f(of)h FC(v)j FK(in)523 3475 y FC(L)24 b FD(n)g FC(v)s FK(,)36 b(indicated)h(b)n(y)f(the)h(dotted)g(lines.)f(These)g(paths)g(form,)g (in)h(this)g(case,)e(3)h(faces)523 3575 y FC(F)576 3587 y FB(1)614 3575 y FC(;)14 b(F)704 3587 y FB(2)741 3575 y FC(;)g(F)831 3587 y FB(3)869 3575 y FK(,)31 b(one)f(b)r(et)n(w)n(een) h(ev)n(ery)e(2)h(adjacen)n(t)h(half-edges)e(of)i FC(v)j FK(\(in)d(case)f FC(v)k FK(lies)d(on)f(the)523 3674 y(b)r(oundary)24 b(of)i(the)f(lab)n(yrin)n(th,)f(then)i(one)f(of)g(these)g(faces)g(is)g (the)g(in\014nite)h(external)f(face.\))523 3774 y(Supp)r(ose)34 b FC(h)903 3786 y FA(i)930 3774 y FK(,)h(the)f(half-edge)f(on)h(whic)n (h)g(explorer)e(arriv)n(es)g(at)h FC(v)s FK(,)i(is)f(the)g(b)r(ottom)g (one.)523 3874 y(Explorer)e(will)i(drop)f(mark)n(er)f FG(last)42 b FK(at)34 b(the)g(next)g(left)h(half-edge,)e(and)g(mark)n (er)g FG(out)41 b FK(at)523 3973 y FC(h)571 3985 y FB(0)608 3973 y FK(.)34 b(Then)g(it)g(will)g(cross,)f(i.e.)h(lea)n(v)n(e)e FC(v)37 b FK(through)c(the)i FG(out)41 b FK(edge.)33 b(Since)h(it's)h(no)e(longer)523 4073 y(carrying)25 b FG(last)8 b FK(,)28 b(it)f(will)g(just)h(alternate)e FH(left)h FK(and)g FH(cross)g FK(un)n(til)h(it)f(gets)g(bac)n(k)f(to)h FC(v)s FK(.)h(That)523 4172 y(is,)g(it)h(will)g(follo)n(w)f(a)g FG(right-hand)j(walk)f FK(along)d(the)i(b)r(oundary)f(of)g(face)g FC(F)2829 4184 y FB(1)2867 4172 y FK(,)g(returning)g(to)523 4272 y FC(v)33 b FK(on)c(the)h(half-edge)f(righ)n(t)g(of)g FG(out)8 b FK(.)29 b(Next,)h(the)g(tests)g FH(near)g FG(last)38 b FK(and)29 b FH(at-left)g FG(out)38 b FK(will)523 4372 y(succeed)33 b(\(the)i(at-left)e(is)h(of)f(course)g(from)g(the)h (viewp)r(oin)n(t)g(of)f FC(v)s FK(\),)h(and)g FG(out)41 b FK(will)34 b(mo)n(v)n(e)523 4471 y(one)28 b(half-edge)f(to)h(the)h (righ)n(t.)e(This)i(pro)r(cess)e(will)h(rep)r(eat)g(un)n(til)g FG(out)36 b FK(mo)n(v)n(es)27 b(to)h FG(halt)9 b FK(,)28 b(at)523 4571 y(whic)n(h)23 b(p)r(oin)n(t)g(explorer)e(will)j(halt.)f (This)g(sho)n(ws)e(that)j(non-cutting)e(p)r(oin)n(ts)h(are)f(correctly) 523 4671 y(iden)n(ti\014ed.)606 4770 y(Next)34 b(consider)f(the)i(case) e(where)g FC(v)k FK(=)c FC(v)1938 4782 y FA(i)2000 4770 y FK(is)h(a)g(cutting)g(p)r(oin)n(t,)g(illustrated)g(in)g(Fig-)523 4870 y(ure)21 b(3.2\(b\).)h(So)f FC(L)6 b FD(n)g FC(v)24 b FK(is)e(not)f(connected)h(and)f(consists)g(of)g(m)n(ultiple)h(comp)r (onen)n(ts.)f(Again)523 4969 y(supp)r(ose)29 b(that)h FC(h)1067 4981 y FA(i)1124 4969 y FK(is)f(the)h(b)r(ottom)g(half-edge.) e(The)i(dotted)g(lines)f(indicate)h(that)f FC(C)6 b FK(\()p FC(h)3297 4981 y FA(i)3325 4969 y FK(\))523 5069 y(con)n(tains)29 b(t)n(w)n(o)f(more)h(neigh)n(b)r(ours)f(of)h FC(v)s FK(.)h(Eac)n(h)f (other)f(comp)r(onen)n(t)i(of)f FC(L)19 b FD(n)g FC(v)33 b FK(is)c(in)n(ternal)523 5169 y(to)k(one)g(of)f(the)i(faces)e (determined)h(b)n(y)g FC(C)6 b FK(\()p FC(h)1947 5181 y FA(i)1975 5169 y FK(\).)34 b(Our)e(explorer)45 b(starting)32 b(from)h FC(h)3145 5181 y FA(i)3172 5169 y FK(,)h(will)523 5268 y(tra)n(v)n(erse)e(faces)i(just)i(as)d(in)i(case)f(\(a\),)h(un)n (til)g(a)f(non-empt)n(y)g(face)g(is)h(tra)n(v)n(ersed.)d(In)j(\(b\))523 5368 y(this)h(is)f(when)h(the)g(top)f(face)g(has)g(just)h(b)r(een)g (tra)n(v)n(ersed)d(and)i(explorer)f(returns)h(to)g FC(v)s FK(.)p eop end %%Page: 34 44 TeXDict begin 34 43 bop 2197 299 a FF(3.5.)52 b(On)25 b(planar)h(em)n(b)r(eddings)154 b(34)523 1254 y @beginspecial 0 @llx 0 @lly 460.799988 @urx 135 @ury 3401 @rwi @setspecial %%BeginDocument: contest.ps %! %%Creator: tromp@wolf.cwi.nl (John Tromp,M231,4078,02207-16322) %%Title: contest (xpic) %%CreationDate: Thu Sep 23 16:32:38 1993 %%Pages: 1 %%BoundingBox: 0 0 460.8 135 % (in inches) at 0 0, width 6.4, height 1.875 %%EndComments % Prolog for xpic to PostScript converter % Author: Mark Moraes % $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp % %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH % %s F - change font to fontname % %d S - change size (font size in points) % (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) % %d %d l - lineto % %d %d m - moveto % %d %d s - spline segment % x - flush line, spline % b - box % e - ellipse % %d ss - setscale % %d W - change linewidth % getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH % %d %d flip - translate by %d, PAGEHEIGHT - %d (this % transforms to X windows coordinates) save 50 dict begin /xpic exch def /StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def % Set defaults /fontname /Times-Roman def /ptsize 12 def % halign has the values for MIDLINE, TOPLINE, BOTLINE /halign 3 array def /s {rcurveto} def /x {stroke} def /l {lineto} def /m {moveto} def /b { /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto urx lly lineto urx ury lineto llx ury lineto llx lly lineto stroke } def /mtrx matrix def /e { /yc exch def /xc exch def /yrad exch def /xrad exch def xc xrad add yc moveto /savematrix mtrx currentmatrix def xc yc translate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix stroke } def % The next three take the text string, and moveto the right horiz. position % leaving the string on the stack. /lj {} def /rj {dup stringwidth pop neg 0 rmoveto} def /ce {dup stringwidth pop 2 div neg 0 rmoveto} def % And this is invoked after one of the three above, and % computes the vert. pos, and then displays the string. /t {halign exch get 0 exch rmoveto show newpath} def % Store an array of patterns in /styles - a pattern is an array consisting % of an array and an offset. Corresp to xpic patterns % solid, dotted, short-dashed, long-dashed, dot-dashed /styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] 5 array astore def % change style to arg. /D {stroke styles exch get aload pop setdash newpath} def /W {stroke 0.5 mul setlinewidth newpath} def % fontbox takes a fontname off the stack, and returns an array % containing the values of the bottom line of the bounding box, the % mid line of the bounding box, and the top line of the bounding box % of that font, taken from the baseline, scaled to a font of size 1 /fontbox { findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop /ytop exch def pop /ybot exch def pop /ymid ytop ybot sub 2 div def 0 ybot fm dtransform exch pop % botline dup neg exch % midline - this works better than (ytop-ybot)/2! 0 ytop fm dtransform exch pop exch %topline % now in the order midline, topline, botline. 3 array astore } def % select font /F { dup /fontname exch def fontbox /thisfontbox exch def SF } def % set point size /S {/ptsize exch def SF} def % actually set font /SF { fontname findfont ptsize curscale div scalefont setfont thisfontbox aload pop 1 1 3 { pop ptsize mul curscale div neg 3 1 roll } for halign astore pop } def % sets the scale to 72 / n, where n is on the stack, and stores the value % in curscale for font scaling /curscale 1 def /getpagesize{newpath clippath pathbbox /pageheight exch def /pagewidth exch def pop pop newpath} def /flip{pageheight exch sub translate} def /ss {/curscale exch 72 exch div dup dup scale def} def /land {90 rotate} def StartXpic %%EndProlog 80 ss 0.5 W /Times-Roman F 10 S 24 52 m (1) ce 0 t 16 56 m (F) ce 0 t 480 72 m (cut) ce 0 t 0 D 450 90 m 472 72 l x 2 W 2 D 444 66 m 454 46 l x 0.5 W 454 46 m 462 30 l x 0 D 270 46 m 278 30 l x 2 W 260 66 m 270 46 l x 256 32 m 256 64 l x 0.5 W 280 54 m (last) ce 0 t 128 44 m (3) ce 0 t 72 124 m (2) ce 0 t 120 48 m (F) ce 0 t 64 128 m (F) ce 0 t 14 S 376 8 m (\(c\)) ce 0 t 192 8 m (\(b\)) ce 0 t 8 8 m (\(a\)) ce 0 t 10 S 60 48 m (out) ce 0 t 92 96 m (last) ce 0 t 1 D 184 116 m 256 150 l 328 116 l 328 32 l 256 0 l 184 32 l 184 116 l x 0 116 m 72 150 l 144 116 l 144 32 l 72 0 l 0 32 l 0 116 l x 368 116 m 440 150 l 512 116 l 512 32 l 440 0 l 368 32 l 368 116 l x 2 D 480 96 m 512 116 l x 440 32 m 440 0 l x 400 96 m 368 116 l x 2 W 448 76 m 480 96 l x 432 76 m 400 96 l x 440 32 m 440 64 l x 0 D 440 80 m 440 104 l x 444 80 m 454 98 l x 436 78 m 426 98 l x 0.5 W 454 98 m 462 114 l x 440 104 m 440 128 l x 426 98 m 418 114 l x 2 W 8 8 440 72 e 0.5 W 242 98 m 234 114 l x 256 104 m 256 128 l x 270 98 m 278 114 l x 2 W 252 78 m 242 98 l x 260 80 m 270 98 l x 256 80 m 256 104 l x 0.5 W 296 96 m 328 116 l x 216 96 m 184 116 l x 256 32 m 256 0 l x 2 W 248 76 m 216 96 l x 8 8 256 72 e 0.5 W 112 96 m 144 116 l x 32 96 m 0 116 l x 72 32 m 72 0 l x 2 W 64 76 m 32 96 l x 80 76 m 112 96 l x 72 32 m 72 64 l x 8 8 72 72 e 264 76 m 296 96 l x 0.5 W 226 80 m (out) ce 0 t 408 78 m (short) ce 0 t 72 72 m (v) ce 0 t 256 72 m (v) ce 0 t 440 72 m (v) ce 0 t %%Trailer showpage % Trailer for xpic to PostScript converter % $Header: x2ps.tra,v 1.2 89/07/02 15:59:53 moraes Exp $ xpic end restore %%EndDocument @endspecial 1398 1428 a(FIGURE)25 b(3.2.)i(Connectivit)n(y)f(tests)523 1692 y FK(No)n(w)k(the)h(test)g FH(near)g FG(last)39 b FK(will)31 b(succeed)f(but)h FH(at-left)g FG(out)38 b FK(will)31 b(fail.)g(There)f(are)f(other)523 1791 y(half-edges)e(b)r (et)n(w)n(een)i(the)g(one)f(where)g(explorer)e(returned)i(to)h FC(v)i FK(and)e(the)f(one)g(where)g(it)523 1891 y(left)35 b FC(v)j FK(\()p FG(out)8 b FK(\),)35 b(constituting)g(one)f(or)g(more) g(comp)r(onen)n(ts)g(di\013eren)n(t)g(from)h FC(C)6 b FK(\()p FC(h)3097 1903 y FA(i)3125 1891 y FK(\).)35 b(The)523 1991 y(explorer)24 b(no)n(w)i(pic)n(ks)f(up)i FG(last)34 b FK(and)26 b(crosses)e(the)i(half-edge)f(on)h(its)g(left,)h(mo)n(ving) e(to)h FC(v)3246 2003 y FA(i)p FB(+1)523 2090 y FK(to)i(start)f (another)f(con-test.)523 2339 y Fl(3.5.3)99 b(T)-7 b(ermination)523 2489 y FK(F)g(or)28 b(con)n(v)n(enience,)f(let's)h(write)g FC(C)1599 2501 y FA(i)1656 2489 y FK(for)f FC(C)6 b FK(\()p FC(h)1928 2501 y FA(i)1956 2489 y FK(\).)29 b(The)f(crucial)g(observ)-5 b(ation)27 b(is)h(that)h FC(C)3246 2501 y FA(i)3302 2489 y FK(is)523 2588 y(a)g(prop)r(er)f(sublab)n(yrin)n(th)g(of)h FC(C)1500 2600 y FA(i)p FB(+1)1612 2588 y FK(.)h(Since)f(the)g(lab)n (yrin)n(th)g(is)g(\014nite,)g(so)g(is)g(the)g(sequence)523 2688 y(of)f(nested)f(comp)r(onen)n(ts:)1570 2788 y FC(C)1629 2800 y FB(1)1689 2788 y FD(\032)c FC(C)1836 2800 y FB(2)1897 2788 y FD(\032)f(\001)14 b(\001)g(\001)23 b(\032)g FC(C)2251 2800 y FA(r)2288 2788 y FC(;)523 2937 y FK(with)i FC(r)g FD(\024)e FC(n)g FK(=)g FD(j)p FC(V)18 b FD(j)p FK(,)25 b(and)e FC(T)1386 2949 y FA(r)1447 2937 y FK(is)h(successful.)f(This)h (pro)n(v)n(es)e(termination)i(of)g(the)g(explorer.)523 3186 y Fl(3.5.4)99 b(Impr)-5 b(oving)33 b(Time)h(Complexity)523 3336 y FK(Next)26 b(let's)f(consider)g(the)h(time)g(complexit)n(y)-7 b(.)25 b(Induction)h(easily)e(sho)n(ws)h(that)g(during)g FC(T)3307 3348 y FA(i)3335 3336 y FK(,)523 3435 y(only)i FC(C)764 3447 y FA(i)819 3435 y FK(is)f(visited)h(in)h(addition)e(to)h (v)n(ertex)f FC(v)1981 3447 y FA(i)2036 3435 y FK(itself.)i(F)-7 b(urthermore,)26 b(eac)n(h)g(half-edge)g(is)523 3535 y(visited)k(exactly)f(once)g(for)g(eac)n(h)f(adjacen)n(t)h(face)h(tra)n (v)n(ersed)d(during)i FC(T)2766 3547 y FA(i)2793 3535 y FK(,)h(hence)g(at)f(most)523 3635 y(t)n(wice.)34 b(T)-7 b(ogether)34 b(with)h(the)f(fact)h(that)g(the)f(n)n(um)n(b)r(er)h(of)f (edges)g(in)g(a)g(planar)g(graph)f(is)523 3734 y(linear)27 b(in)h(the)g(n)n(um)n(b)r(er)f(of)h(v)n(ertices,)e(this)i(giv)n(es)e (an)i(upp)r(er)g(b)r(ound)g(of)f FC(O)r FK(\()p FC(n)2930 3704 y FB(2)2968 3734 y FK(\).)606 3834 y(But)h(w)n(e)f(can)g(do)h(b)r (etter.)g(Consider)e(the)i(follo)n(wing)f(extension)g(to)g(our)g(pro)r (cedure.)p eop end %%Page: 35 45 TeXDict begin 35 44 bop 2197 299 a FF(3.5.)52 b(On)25 b(planar)h(em)n(b)r(eddings)154 b(35)p 606 427 2171 4 v 606 2170 4 1744 v 662 521 a FK(mark)n(ers)26 b FG(last)8 b FK(,)p FG(out)f FK(,)p FG(short)h FK(,)p FG(cut)662 621 y FK(lo)r(op)768 721 y(if)28 b(carrying)e FG(last)36 b FK(then)844 820 y(drop-left)27 b FG(last)8 b FK(;)28 b(drop)f FG(out)768 920 y FK(elsif)h(near)f FG(last)35 b FK(then)937 1020 y(if)28 b(at-left)g FG(out)35 b FK(then)1013 1119 y(mo)n(v)n(e-here)26 b FG(out)1013 1219 y FK(if)i(here)f FG(last)36 b FK(then)1089 1318 y(halt)1013 1418 y(endif)937 1518 y(else)27 b(replace)g FG(out)35 b FK(b)n(y)27 b FG(short)8 b FK(;)28 b(left;)h(drop)d FG(cut)8 b FK(;)27 b(pic)n(k)h FG(last)937 1617 y FK(endif)768 1717 y(elsif)g(here)f FG(short)36 b FK(goto)26 b FG(cut)768 1817 y FK(else)h(left)768 1916 y(endif)768 2016 y(cross)662 2115 y(end)p 2773 2170 V 606 2173 2171 4 v 606 2289 a(When)k(a)e(con-test)h FC(T)1288 2301 y FA(i)1345 2289 y FK(fails,)g(a)g(mark)n(er)e FG(short)39 b FK(is)29 b(left)i(in)g(place)e(of)h FG(out)38 b FK(and)30 b(another)523 2389 y(mark)n(er)22 b FG(cut)31 b FK(is)24 b(dropp)r(ed)g(on)f(the)h(half-edge)f(leading)h(to)f FC(v)2364 2401 y FA(i)p FB(+1)2476 2389 y FK(.)h(\(the)h FH(replace)f FK(op)r(eration)523 2489 y(includes)32 b(a)f(p)r(ossible)h (excursion)f(to)g(the)i(neigh)n(b)r(our)e(where)g(these)h(t)n(w)n(o)f (mark)n(ers)f(w)n(ere)523 2588 y(dropp)r(ed)25 b(earlier)f(in)i(order)e (to)h(pic)n(k)g(them)h(up.\))g(Refer)f(to)g(Figure)g(3.2\(c\).)g (During)g FC(T)3223 2600 y FA(i)p FB(+1)3335 2588 y FK(,)523 2688 y(the)f(only)e(w)n(a)n(y)g(for)h(our)f(initial)i(explorer)d(to)j (tra)n(v)n(erse)c(comp)r(onen)n(t)j FC(C)2705 2700 y FA(i)2757 2688 y FK(again)f(is)h(to)g(arriv)n(e)523 2787 y(at)i FC(v)k FK(on)c(the)h(half-edge)f(righ)n(t)g(of)g FG(short)8 b FK(,)26 b(and)f(lea)n(v)n(e)f FC(v)29 b FK(o)n(v)n(er)24 b FG(short)33 b FK(itself.)26 b(It)g(w)n(ould)f(then) 523 2887 y(follo)n(w)i(the)g(exact)g(same)g(path)g(that)h(also)e(led)i (to)f FC(T)2155 2899 y FA(i)2209 2887 y FK(failing.)g(The)h(new)f (explorer)f(short-)523 2987 y(circuits)h(this)g(b)n(y)g(detecting)g (the)g(presence)f(of)h FG(short)36 b FK(and)27 b(pro)r(ceeding)f (immediately)h(to)523 3086 y FG(cut)7 b FK(.)36 b(This)g(only)f(sp)r (eeds)h(up)g(the)g(con-test)g(and)f(do)r(esn't)h(in)n(v)-5 b(alidate)36 b(its)g(correctness.)523 3186 y(The)27 b(e\013ect)h(of)f (this)h(shortcut)f(is)g(the)g(same)g(as)f(if)i(all)f(half-edges)f(from) h FG(short)36 b FK(up)27 b(to)g FG(cut)523 3286 y FK(w)n(ere)d(remo)n (v)n(ed,)g(as)g(indicated)h(b)n(y)g(the)g(dashed)g(lines.)g(With)h(the) g(shortcut)e(mec)n(hanism,)523 3385 y FC(T)572 3397 y FA(i)p FB(+1)713 3385 y FK(only)29 b(visits)h FC(C)1174 3397 y FA(i)p FB(+1)1306 3385 y FD(n)19 b FC(C)1426 3397 y FA(i)1454 3385 y FK(,)30 b(plus)g FC(v)1725 3397 y FA(i)1753 3385 y FK(.)g(Hence,)g(successiv)n(e)e(con-tests)h(only)h(o)n (v)n(erlap)d(in)523 3485 y(single)22 b(p)r(oin)n(ts,)g(and)h(using)f (the)g(same)g(planarit)n(y)f(argumen)n(t,)h(w)n(e)g(obtain)g(an)g FC(O)r FK(\()p FC(n)p FK(\))i(upp)r(er)523 3584 y(b)r(ound)k(on)f(the)h (time)g(complexit)n(y)f(of)h(the)g(impro)n(v)n(ed)e(explorer.)523 3892 y FL(3.6)116 b(The)38 b(constan)m(t)f(space)i(FF)-13 b(A)523 4091 y FK(Ha)n(ving)23 b(solv)n(ed)g(the)i(subproblem)f(of)g (\014nding)g(a)g(non-cutting)g(p)r(oin)n(t,)h(w)n(e)f(no)n(w)f(return)h (to)523 4190 y(\015o)r(o)r(d)29 b(\014lling.)g(The)f(ab)r(o)n(v)n(e)g (explorer)f(is)i(easily)f(translated)f(in)n(to)i(an)f(FF)-9 b(A.)30 b(The)f(curren)n(t)523 4290 y(p)r(osition)24 b(as)g(w)n(ell)g(as)f(eac)n(h)h(mark)n(er)e(is)i(represen)n(ted)f(b)n (y)h(a)g(pair)g(\()p FC(p;)14 b(d)p FK(\))25 b(of)f(a)g(pixel)g (address)523 4390 y(and)31 b(direction.)f(Carried)g(mark)n(ers)f(ha)n (v)n(e)h(a)g(sp)r(ecial)h(v)-5 b(alue.)31 b(A)n(t)g(the)g(start)g(of)g (the)g(lo)r(op,)523 4489 y(all)h(4)h(neigh)n(b)r(ouring)e(pixels)i(are) e(tested)j(with)f Fk(get\(\))p FK(.)e(If)i(the)g(n)n(um)n(b)r(er)f(of)h (neigh)n(b)r(ours)523 4589 y(b)r(elonging)27 b(to)h(the)h(region)e(is)h (0,)f(then)i(the)f(FF)-9 b(A)29 b(is)f(\014nished)g(after)g(setting)g (the)h(curren)n(t)523 4689 y(pixel.)23 b(If)h(the)f(n)n(um)n(b)r(er)g (is)g(1)g(then)g(a)g(sligh)n(t)g(optimization)f(is)h(p)r(ossible;)g (since)g(the)h(curren)n(t)523 4788 y(pixel)i(has)g(only)f(one)h(neigh)n (b)r(our)f(in)h(the)g(region)f(it)i(is)e(a)h(non-cutting)g(p)r(oin)n(t) g(and)g(can)f(b)r(e)523 4888 y(set,)j(without)g(ev)n(en)g(disturbing)f (the)h(curren)n(t)f(con-test)h(\(but)h(pic)n(k)e(up)h(the)h FG(last)36 b FK(mark)n(er)523 4988 y(if)30 b(it)h(happ)r(ens)e(to)h(b)r (e)g(lo)r(cated)g(at)f(the)h(curren)n(t)f(pixel\).)h(Otherwise,)f(the)i (FF)-9 b(A)30 b(b)r(eha)n(v)n(es)523 5087 y(similar)d(to)i(the)f(lab)n (yrin)n(th)g(explorer.)e(It)j(uses)f(constan)n(t)f(space,)h(and,)g (since)g(it)g(can)g(\014nd)523 5187 y(no)f(more)g(than)h FC(n)f FK(non-cutting)h(p)r(oin)n(ts,)f(runs)h(in)f(time)h FC(O)r FK(\()p FC(n)2455 5157 y FB(2)2493 5187 y FK(\).)p eop end %%Page: 36 46 TeXDict begin 36 45 bop 2134 299 a FF(3.6.)53 b(The)26 b(constan)n(t)g(space)g(FF)-9 b(A)154 b(36)523 506 y FL(3.7)116 b(Conclusion)523 706 y FK(The)25 b(memory-h)n(unger)e(of)i (existing)f(\015o)r(o)r(d-\014ll)h(algorithms)e(is)i(not)g(an)g(una)n (v)n(oidable)e(evil.)523 805 y(A)n(t)f(the)f(cost)g(of)g(increasing)f (the)h(w)n(orst-case)e(running)i(time)h(b)n(y)f(a)g(factor)f FC(n)p FK(,)h(memory-use)523 905 y(can)k(b)r(e)h(reduced)f(to)h(a)f (constan)n(t:)g(a)g(reduction)g(b)n(y)g(the)h(same)f(factor)g FC(n)p FK(.)g(An)h(in)n(teresting)523 1005 y(op)r(en)g(problem)f(is)g (whether)h(\002\()p FC(n)1588 974 y FB(2)1625 1005 y FK(\))g(is)f(a)g(lo)n(w)n(er)f(b)r(ound)i(on)f(the)h(space-time)f (complexit)n(y)523 1104 y(pro)r(duct)f(for)f(FF)-9 b(As)24 b(and)f(if)h(so,)f(whether)h(this)f(pro)r(duct)h(can)f(also)g(b)r(e)h (ac)n(hiev)n(ed)e(b)n(y)i(FF)-9 b(As)523 1204 y(with)28 b(complexities)f(strictly)h(b)r(et)n(w)n(een)f(these)h(t)n(w)n(o)f (extremes.)p eop end %%Page: 37 47 TeXDict begin 37 46 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Bibliograph)l(y)523 2516 y FK([1])41 b(K.P)-7 b(.)32 b(Fishkin,)h(B.A.)g(Barsky)-7 b(,)31 b FG(A)n(n)i(A)n(nalysis)i(and)g(A)n(lgorithm)g(for)g(Fil)t (ling)h(Pr)l(op)l(a-)652 2615 y(gation)p FK(,)29 b(Pro)r(ceedings)c(of) j(Graphics)f(In)n(terface)g('85",)f(pp.)i(203{212.)523 2781 y([2])41 b(Armin)c(Hemmerling,)f FG(L)l(abyrinth)j(Pr)l(oblems:)g (L)l(abyrinth-Se)l(ar)l(ching)h(A)n(bilities)f(of)652 2881 y(A)n(utomata)p FK(,)27 b(T)-7 b(eubner-T)g(exte)27 b(zur)h(Mathematik;)f(114.)p eop end %%Page: 38 48 TeXDict begin 38 47 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(4)523 806 y FI(The)52 b(Energy)g(Complexit)l(y)h(of)f(Threshold)523 972 y(and)g(other)g (functions.)523 2516 y FK(In)38 b(this)g(c)n(hapter)f(w)n(e)h(obtain)f (upp)r(er)h(b)r(ounds)g(on)g(the)g(switc)n(hing)f(energy)g(needed)h(to) 523 2615 y(compute)28 b(threshold)f(and)g(coun)n(ting)g(functions)h (with)g(VLSI)g(circuits.)606 2715 y(Switc)n(hing)39 b(energy)e(is)i (theoretically)e(in)n(teresting)h(b)r(ecause)h(it)g(is)f(b)r(eliev)n (ed)h([14)o(])g(to)523 2814 y(b)r(e)c(in)n(trinsic)g(to)g(computation)g (and)f(a)h(fundamen)n(tal)g(complexit)n(y)g(measure)e(of)i(VLSI)523 2914 y(computations.)29 b(Energy)e(is)i(practically)f(motiv)-5 b(ated)30 b(in)f(VLSI)g(design)g(b)r(ecause)g(energy)523 3014 y(consumed)22 b(b)n(y)g(a)g(circuit)h(is)f(transformed)f(in)n(to)h (heat.)h(Ho)n(w)f(w)n(ell)g(a)g(circuit)g(can)g(dissipate)523 3113 y(heat)32 b(determines)g(its)h(op)r(erational)e(limitations.)h(Th) n(us,)g(the)h(less)f(heat)g(pro)r(duced)g(the)523 3213 y(b)r(etter.)37 b(F)-7 b(urther,)36 b(energy)f(considerations)g (determine)h(a)g(signi\014can)n(t)g(p)r(ortion)g(of)g(the)523 3313 y(o)n(v)n(erall)25 b(costs)i(of)h(a)f(computer)g([15)o(].)606 3412 y(Common)f(to)h(all)f(ph)n(ysical)g(devices)g(is)g(the)h(switc)n (hing)f(energy)g([14)o(])g(consumed)h(when)523 3512 y(a)d(wire)f(or)h (gate)f(c)n(hanges)g(state)h(from)f(1)h(to)g(0)g(or)f(vice)h(v)n(ersa.) e(The)j(amoun)n(t)e(of)h(switc)n(hing)523 3611 y(energy)i(consumed)i (is)f(prop)r(ortional)f(to)i(the)g(area)e(switc)n(hed.)606 3711 y(The)33 b(results)g(in)h(this)g(c)n(hapter)e(are)g(obtained)h(in) h(the)g FG(Uniswitch)h(Mo)l(del)g FK(\(USM\))g(of)523 3811 y(energy)c(consumption,)g(describ)r(ed)h(in)g(the)g(next)g (section.)f(USM)i(w)n(as)d(\014rst)i(de\014ned)g(b)n(y)523 3910 y(Kissin)i([9)o(])h(and)f(has)f(b)r(ecome)i(the)f(primary)f(mo)r (del)i(for)e(the)i(asymptotic)f(analysis)f(of)523 4010 y(switc)n(hing)28 b(energy)f(\([12)o(],)i([16)o(],)f([18)o(],)h([1]\).) f(Kissin)g([8])g(also)f(describ)r(ed)h(the)h(\014rst)f(energy)523 4110 y(sa)n(ving)33 b(design)h(tec)n(hnique,)g(b)n(y)g(obtaining)f (energy-e\016cien)n(t)g(circuits)h(for)g FG(OR)r FK(,)h FG(AND)7 b FK(,)523 4209 y FG(Comp)l(ar)l(e)35 b FK(and)27 b FG(A)l(ddition)34 b FK(functions.)28 b(Lengauer)e(and)h(Mehlhorn)f ([13)o(])i(sho)n(w)n(ed)e(that)h FC(n)p FK(-)523 4309 y(input)37 b(functions)g(realizable)e(in)h FC(AT)1726 4279 y FB(2)1801 4309 y FK(=)h FC(O)r FK(\()p FC(n)2050 4279 y FB(2)2088 4309 y FK(\))f(require)g(\012\()p FC(AT)12 b FK(\))36 b(switc)n(hing)g(energy)-7 b(,)523 4408 y(where)35 b FC(A)g FK(is)g(area)e(and)i FC(T)46 b FK(is)35 b(time)h(in)f(the)g (Thompson)g(mo)r(del)g([17)o(].)g(Aggarw)n(al)e(et)i(al)523 4508 y([1])30 b(impro)n(v)n(ed)g(the)h(result)f(of)h(Lengauer)e(and)i (Mehlhorn)f(to)h(obtain)f(an)h(\012\()p FC(n)3020 4478 y FB(2)3057 4508 y FK(\))g(energy)523 4608 y(b)r(ound)39 b(for)f(the)i(class)d(of)i FG(tr)l(ansitive)g FK(functions)g([19)o(].)g (Leo)f([12)o(])h(sho)n(w)n(ed)f(that,)h(for)f(a)523 4707 y(sp)r(ecialized)c(circuit)g(basis,)f(the)i(parit)n(y)e(function)i (requires)e(\012\()p FC(A)p FK(\))i(a)n(v)n(erage)c(switc)n(hing)523 4807 y(energy)-7 b(,)30 b(where)h FC(A)h FK(is)f(the)g(area)f(of)h(the) h(parit)n(y)e(circuit.)i(T)n(y)n(agi)d([18)o(])j(studied)f(the)h(a)n(v) n(er-)523 4907 y(age)d(energy)g(consumption)g(of)h(logic)f(lev)n(el)g (structures)g(suc)n(h)h(as)f(Programmable)e(Logic)523 5006 y(Arra)n(ys)f(\(PLA\).)606 5106 y(USM)34 b(measures)d(the)j (di\013erences)f(b)r(et)n(w)n(een)g(t)n(w)n(o)f(stable)h(states)f(of)i (a)e(circuit.)h(Race)523 5205 y(conditions)25 b(\(ak)-5 b(a)25 b(hazards\))f(are)g(neglected;)h(they)h(are)e(the)i(domain)f(of) g(the)h FG(Multiswitch)523 5305 y(Mo)l(dels)p FK(,)32 b(whic)n(h)f(are)f(de\014ned)h(and)f(discussed)g(in)h([7])g(and)f([6].) h(USM)g(pro)n(vides)e(a)h(lo)n(w)n(er)p eop end %%Page: 39 49 TeXDict begin 39 48 bop 1056 299 a FF(4.)51 b(The)26 b(Energy)g(Complexit)n(y)g(of)g(Threshold)g(and)g(other)f(functions.) 155 b(39)523 506 y FK(b)r(ound)28 b(on)f(the)h(total)g(energy)e (consumed)h(b)n(y)h(a)f(circuit.)606 606 y(The)36 b(rest)f(of)h(this)g (c)n(hapter)f(is)g(organized)f(as)h(follo)n(ws.)g(Section)h(4.1)f (describ)r(es)g(and)523 706 y(motiv)-5 b(ates)30 b(the)h(Uniswitc)n(h)g (Mo)r(del)g(of)g(energy)e(consumption,)h(ak)-5 b(a)30 b FG(uniswitch)j(ener)l(gy)p FK(.)523 805 y(\(The)d(term)g FG(ener)l(gy)g FK(refers)f(to)g(switc)n(hing)h(energy)e(for)h(the)h (duration)g(of)f(this)h(c)n(hapter\).)523 905 y(The)c(de\014nition)g (of)g(a)f(circuit)h(is)f(extended)h(to)g(include)g(wires)f(with)h (bandwidth)h(greater)523 1005 y(than)36 b(1.)g(In)g(Section)f(4.2,)g (upp)r(er)h(b)r(ounds)g(are)f(obtained)h(in)g(USM.)h(In)f(particular,)e (a)523 1104 y(fast)41 b(VLSI)f(circuit)h(is)f(describ)r(ed)g(for)g (coun)n(t-to-)p FC(k)j FK(functions,)d(whic)n(h)h(is)f(optimal)g(in)523 1204 y(consuming)24 b FC(O)r FK(\()p FC(n)p FK(\))i(w)n(orst)d(case)h (uniswitc)n(h)h(energy)-7 b(.)24 b(The)h(coun)n(t-to-)p FC(k)h FK(construction)e(also)523 1303 y(yields)j(b)r(ounds)h(on)f FC(k)s FK(-threshold)g(functions.)h(Conclusions)f(follo)n(w)f(in)i (Section)g(4.3.)523 1611 y FL(4.1)116 b(The)38 b(setting)523 1810 y FK(The)33 b(Uniswitc)n(h)g(Mo)r(del)g(of)g(energy)f(consumption) g(de\014nes)h(an)g(energy)e(cost)i(measure)523 1910 y(for)i(VLSI)h (circuits.)f(USM)h(measures)e(the)h(di\013erences)g(b)r(et)n(w)n(een)h (states)f(of)g(a)g(circuit.)523 2009 y(The)28 b(follo)n(wing)e (discussion)h(sets)g(the)h(stage)f(for)g(a)g(precise)g(de\014nition)h (of)g(USM.)606 2109 y(A)i FG(VLSI)h(cir)l(cuit)f FK(is)g(a)f(com)n (binational)f(circuit)i([2)o(])g(em)n(b)r(edded)g(in)g(a)g(plane)f(as)g (in)h([4].)523 2208 y(Salien)n(t)19 b(assumptions)f(of)i(the)f(VLSI)h (circuit)f(mo)r(del)g(that)g(are)g(imp)r(ortan)n(t)f(to)i(USM)f(are)f (as)523 2308 y(follo)n(ws.)i(A)g(circuit)h(is)f(an)g(acyclic)g (directed)g(graph)f(of)i(gates)e(\(no)r(des\))i(and)f(wires)g (\(edges\).)523 2408 y(The)31 b(n)n(um)n(b)r(er)g(of)g(input)g(\(fanin) h(0\))f(no)r(des)g(is)f(denoted)h FC(n)p FK(.)g(The)g(maxim)n(um)g(n)n (um)n(b)r(er)g(of)523 2507 y(edges)26 b(on)g(a)g(path)h(from)f(an)g (input)i(no)r(de)e(to)h(an)f(output)h(\(fanout)g(0\))f(no)r(de)h(is)f (called)g(the)523 2607 y FG(depth)e FK(of)g(the)f(circuit.)g(A)h(`mono) n(wire')e(in)h(a)g(VLSI)h(circuit)f(has)g(bandwidth)g(1)g(and)g(width) 523 2707 y FC(\025)30 b FK(\()p FC(\025)h FK(is)e(the)h(standard)f (name)h(for)f FG(line)j(width)p FK(\).)f(A)f(wire)g(has)f(some)g (bandwidth)h FC(b)c FD(\024)h FC(B)523 2806 y FK(and)36 b(width)i(2)p FC(\025b)24 b FD(\000)g FK(1,)36 b(consisting)f(of)i FC(b)f FK(parallel)g(mono)n(wires)e(separated)i(at)g(distance)523 2906 y FC(\025)p FK(.)g(W)-7 b(e)36 b(use)f FC(B)40 b FK(to)c(denote)f(a)g(maxim)n(um)h(bandwidth.)g(This)f(nonstandard)g (notion)g(of)523 3005 y(wire)c(mak)n(es)f(it)i(easier)e(to)h(deal)g (with)h(v)-5 b(alues)31 b(in)h(a)f(range)f(0)p FC(;)14 b FK(1)p FC(;)g FK(2)p FC(;)g(:)g(:)g(:)e(;)i(k)34 b FK(with)e FC(k)g(<)d FK(2)3278 2975 y FA(B)3335 3005 y FK(.)523 3105 y(A)n(t)34 b(most)e(a)h(constan)n(t)g(n)n(um)n(b)r(er)f (of)i(wires)e(\(at)h(least)g(2\))g(can)g(o)n(v)n(erlap)e(at)i(an)n(y)f (p)r(oin)n(t)h(in)523 3205 y(a)c(VLSI)h(circuit.)f(A)h(no)r(de)g(has)f (constan)n(t)f(area)g(at)i(least)f FC(\025)2408 3175 y FB(2)2445 3205 y FK(,)h(b)r(ounded)g(fanin)g(\(n)n(um)n(b)r(er)523 3304 y(of)k(input)i(wires\),)e(and)g(b)r(ounded)h(fanout)f(\(n)n(um)n (b)r(er)g(of)h(output)g(wires\).)f(A)h(non-input)523 3404 y(no)r(de)25 b(computes)f(a)h(function)g(of)g(the)g(v)-5 b(alues)24 b(on)h(its)g(input)g(wires)g(in)g(constan)n(t)f(time)h (\(see)523 3504 y(discussion)i(b)r(elo)n(w\).)g(Gates)h(are)e (separated)h(b)n(y)g(distances)g(of)h(at)f(least)g FC(\025)p FK(.)606 3603 y(The)37 b FC(k)s FK(-threshold)e(circuit)i(describ)r(ed) g(in)g(this)g(c)n(hapter)e(uses)i(a)f(circuit)h(basis)e(that)523 3703 y(includes)28 b(addition,)g(subtraction,)g(minim)n(um,)g(and)g (comparison)f(functions)h(of)g(2)g FD(\024)23 b FC(B)t FK(-)523 3802 y(bit)28 b(n)n(um)n(b)r(ers,)e(where)h FC(k)f(<)d FK(2)1448 3772 y FA(B)1531 3802 y FK(are)k(constan)n(ts.)f (These)h(functions)g(can)g(b)r(e)g(decomp)r(osed)523 3902 y(in)n(to)21 b(standard)g(b)r(o)r(olean)g(sub)r(circuits)h(that)f (use)h(only)f(a)g(constan)n(t)g(amoun)n(t)g(of)h(resources.)523 4002 y(In)28 b(the)g(analysis)e(that)i(follo)n(ws,)f(no)r(de)g (complexit)n(y)g(is)h(therefore)e(neglected.)606 4101 y(W)-7 b(rite)27 b(a)f(circuit)h FC(C)33 b FK(as)26 b FC(C)j FK(=)23 b(\()p FC(V)5 b(;)14 b(W)e FK(\),)27 b(where)f FC(V)45 b FK(is)27 b(the)g(set)g(of)f(no)r(des)h(and)f FC(W)39 b FK(the)27 b(set)523 4201 y(of)33 b(wires.)f(A)h FG(le)l(gal)i(state)p FK(,)d(\(hereafter)g(also)g(called)g FG(state)h FK(or)e FG(stable)k(state)p FK(\))e(of)g(a)f(circuit)523 4301 y FC(C)d FK(=)23 b(\()p FC(V)5 b(;)14 b(W)e FK(\),)26 b(is)g(a)f(function)h FC(V)33 b FD([)15 b FC(W)35 b FD(!)23 b(f)p FK(0)p FC(;)14 b FK(1)p FD(g)2039 4270 y Fw(\024)p FA(B)2146 4301 y FK(,)26 b(that)g(attributes)f(consisten)n(t)g(v)-5 b(alues)523 4400 y(to)35 b(the)g(no)r(des)f(and)h(wires)f(of)h FC(C)6 b FK(.)35 b(That)g(is,)f(the)i(v)-5 b(alue)34 b(of)h(a)f(no)r(de)h(equals)f(that)h(of)g(all)523 4500 y(outgoing)g(wires,)g(and)g(the)i(v)-5 b(alue)35 b(of)h(a)g(non-input)g (no)r(de)f(equals)g(the)i(corresp)r(onding)523 4599 y(function)j(of)g (the)g(v)-5 b(alues)40 b(on)f(the)h(input)h(wires.)e(Num)n(b)r(ers)g (are)g(equated)h(with)g(their)523 4699 y(binary)35 b(represen)n (tations.)f(Ob)n(viously)-7 b(,)35 b(the)h(v)-5 b(alue)36 b(of)f(an)n(y)g(no)r(de)h(or)f(wire)h(in)g(a)f(stable)523 4799 y(state)27 b(is)f(completely)h(determined)f(b)n(y)h(the)g(input)g (v)n(ector.)f(F)-7 b(or)26 b(a)g(no)r(de)h FC(v)j FK(\(wire)c FC(w)r FK(\))i(and)523 4898 y(an)j(input)i(v)n(ector)d FC(x)p FK(,)j(let)f FC(v)s FK(\()p FC(x)p FK(\))h(\()p FC(w)r FK(\()p FC(x)p FK(\)\))h(denote)d(the)i(v)-5 b(alue)31 b(of)h(the)g(no)r(de)g(\(wire\))f(in)h(the)523 4998 y(stable)27 b(state)h(induced)g(b)n(y)f(input)h FC(x)p FK(.)606 5098 y(The)33 b(switc)n(hing)g(energy)f(of)i(a)f(circuit)g FC(C)40 b FK(is)33 b(de\014ned)g(as)g(a)g(distance)g(metric)g(on)g(the) 523 5197 y(set)c(of)h(2)793 5167 y FA(n)867 5197 y FK(p)r(ossible)f (inputs)h(v)n(ector.)e(W)-7 b(e)30 b(are)e(in)n(terested)h(in)h(what)f (happ)r(ens)h(when)f(one)523 5297 y(input)g(v)n(ector)d FC(x)i FK(to)g FC(C)34 b FK(is)27 b(replaced)g(b)n(y)h(another)e(input) j(v)n(ector)d FC(y)s FK(.)i(A)g(wire)f FC(w)k FK(for)c(whic)n(h)p eop end %%Page: 40 50 TeXDict begin 40 49 bop 2572 299 a FF(4.1.)53 b(The)26 b(setting)154 b(40)523 506 y FC(w)r FK(\()p FC(x)p FK(\))34 b FD(6)p FK(=)e FC(w)r FK(\()p FC(y)s FK(\))i(is)f(said)g(to)g FG(switch)p FK(.)h(Let)f FC(h)1883 518 y FA(w)r(;x;y)2083 506 y FK(b)r(e)g(the)h(Hamming)f(distance)g(b)r(et)n(w)n(een)523 606 y FC(w)r FK(\()p FC(x)p FK(\))d(and)e FC(w)r FK(\()p FC(y)s FK(\).)h(A)g(wire)e FC(w)k FK(of)d(length)h FC(l)1844 618 y FA(w)1925 606 y FK(that)g(switc)n(hes,)e(in)n(v)n(olv)n(es)g(a)h (switc)n(hing)f(area)523 706 y(of)j FC(h)668 718 y FA(w)r(;x;y)834 706 y FC(A)896 718 y FA(w)950 706 y FK(,)g(where)f FC(A)1307 718 y FA(w)1388 706 y FK(=)d FC(l)1504 718 y FA(w)1558 706 y FC(\025)k FK(is)g(the)g(area)e(of)i(one)g(of)f(the)i(constituen)n (t)e(mono)n(wires)523 805 y(of)40 b FC(w)r FK(.)g(Letting)g FC(p)f FK(b)r(e)h(the)g(area)e(accoun)n(ting)h(for)g(1)g(unit)h(of)g FG(switching)h(ener)l(gy)p FK(,)f(this)523 905 y(accoun)n(ts)26 b(for)h FC(A=p)f FK(switc)n(hing)h(energy)-7 b(.)26 b(Similarly)-7 b(,)27 b(a)f(no)r(de)h FC(v)k FK(of)c(area)e FC(A)j FK(that)f(switc)n (hes)523 1005 y(\()p FC(v)s FK(\()p FC(x)p FK(\))i FD(6)p FK(=)f FC(v)s FK(\()p FC(y)s FK(\)\),)j(accoun)n(ts)e(for)h FC(A=p)g FK(switc)n(hing)g(energy)f(\(for)h(con)n(v)n(enience)f(w)n(e)h (assume)523 1104 y(that)e(all)f(of)h(the)g(area)e(of)h(the)h(no)r(de)g (is)g(in)n(v)n(olv)n(ed)e(in)i(the)g(switc)n(hing\).)606 1204 y(The)g(total)g(switc)n(hing)g(energy)f(consumed)h(b)n(y)g FC(C)35 b FK(when)28 b(switc)n(hing)g(from)g(input)h FC(x)g FK(to)523 1303 y(input)f FC(y)j FK(is)1037 1482 y FC(E)5 b FK(\()p FC(C)q(;)14 b(x;)g(y)s FK(\))25 b(=)d(\()1559 1403 y Fn(X)1536 1581 y FA(w)r Fw(2)p FA(W)1716 1482 y FC(h)1764 1494 y FA(w)r(;x;y)1930 1482 y FC(A)1992 1494 y FA(w)2065 1482 y FK(+)2309 1403 y Fn(X)2148 1585 y FA(v)r Fw(2)p FA(V)t(;v)r FB(\()p FA(x)p FB(\))p Fw(6)p FB(=)p FA(v)r FB(\()p FA(y)r FB(\))2603 1482 y FC(A)2665 1494 y FA(v)2705 1482 y FK(\))p FC(=p:)523 1745 y FK(Ob)n(viously)-7 b(,)17 b FC(E)5 b FK(\()p FC(C)q(;)14 b(x;)g(x)p FK(\))25 b(=)e(0,)18 b FC(E)5 b FK(\()p FC(C)q(;)14 b(x;)g(y)s FK(\))24 b(=)f FC(E)5 b FK(\()p FC(C)q(;)14 b(y)s(;)g(x)p FK(\),)20 b(and)e FC(E)5 b FK(\()p FC(C)q(;)14 b(x;)g(z)t FK(\))24 b FD(\024)e FC(E)5 b FK(\()p FC(C)q(;)14 b(x;)g(y)s FK(\)+)523 1844 y FC(E)5 b FK(\()p FC(C)q(;)14 b(y)s(;)g(z)t FK(\),)25 b(so)f(that)h FC(E)5 b FK(\()p FC(C)h FK(\))26 b(is)e(indeed)i(a)e(distance)g(metric.)h(Also,)g FC(E)5 b FK(\()p FC(C)h FK(\))25 b(is)g(b)r(ounded)g(b)n(y)523 1944 y FC(A)585 1956 y FA(C)641 1944 y FC(=p)p FK(,)i(with)h FC(A)1026 1956 y FA(C)1110 1944 y FK(the)g(total)f(area)f(of)i FC(C)6 b FK(.)606 2044 y(The)28 b FG(worst)i(c)l(ase)g(uniswitch)g (ener)l(gy)e FK(of)f(a)h(circuit)f FC(C)34 b FK(is)28 b(de\014ned)g(as)1324 2210 y FC(E)1385 2232 y FG(worst)1591 2210 y FK(\()p FC(C)6 b FK(\))24 b(=)112 b(max)1832 2267 y FA(x;y)r Fw(2f)p FB(0)p FA(;)p FB(1)p Fw(g)2125 2251 y Fx(n)2178 2210 y FC(E)5 b FK(\()p FC(C)q(;)14 b(x;)g(y)s FK(\))p FC(;)523 2423 y FK(while)28 b(the)g FG(aver)l(age)j(c)l(ase)f (uniswitch)g(ener)l(gy)e FK(is)g(de\014ned)g(as)1281 2601 y FC(E)1342 2613 y FG(avg)1472 2601 y FK(\()p FC(C)6 b FK(\))24 b(=)1819 2522 y Fn(X)1713 2704 y FA(x;y)r Fw(2f)p FB(0)p FA(;)p FB(1)p Fw(g)2006 2687 y Fx(n)2059 2601 y FC(E)5 b FK(\()p FC(C)q(;)14 b(x;)g(y)s FK(\))p FC(=)p FK(2)2498 2567 y FB(2)p FA(n)2577 2601 y FC(;)523 2869 y FK(where)k(2)796 2839 y FB(2)p FA(n)892 2869 y FK(is)g(the)h(n)n(um)n(b)r(er)f(of)h(p)r(ossible)f(input)h(pairs)e(\()p FC(x;)d(y)s FK(\).)19 b(This)g(de\014nition)f(of)h FC(E)3109 2881 y FG(avg)3239 2869 y FK(\()p FC(C)6 b FK(\))523 2969 y(assumes)27 b(that)h(the)g(input)g(v)n(ector)e(is)i(distributed)g (uniformly)f(o)n(v)n(er)f FD(f)p FK(0)p FC(;)14 b FK(1)p FD(g)2906 2939 y FA(n)2949 2969 y FK(.)606 3069 y(A)33 b(function)g FC(f)40 b FK(:)31 b FD(f)p FK(0)p FC(;)14 b FK(1)p FD(g)1371 3038 y Fw(\003)1439 3069 y FD(!)31 b(f)p FK(0)p FC(;)14 b FK(1)p FD(g)1758 3038 y Fw(\003)1827 3069 y FK(is)32 b FG(ener)l(gy)j(e\016cient)e FK(i\013)g(there)f (exists)h(a)f(family)523 3168 y FC(C)h FK(=)27 b(\()p FC(C)798 3180 y FA(n)843 3168 y FK(\))875 3183 y FB(\()p FA(n)p Fw(2)p Fi(N)p FB(\))1106 3168 y FK(of)j(circuits)f(with)h FC(C)1746 3180 y FA(n)1822 3168 y FK(realizing)f FC(f)9 b FD(jf)p FK(0)p FC(;)14 b FK(1)p FD(g)2435 3138 y FA(n)2507 3168 y FK(in)30 b FC(O)r FK(\(log)15 b FC(n)p FK(\))31 b(depth,)f(suc)n(h)523 3268 y(that)e FC(E)764 3290 y FG(worst)970 3268 y FK(\()p FC(C)1061 3280 y FA(n)1107 3268 y FK(\))c(=)e FC(O)r FK(\()p FC(n)p FK(\).)606 3367 y(Throughout)27 b(this)g(c)n(hapter,)g(log)14 b FC(n)28 b FK(means)f(log)2110 3388 y FB(2)2161 3367 y FC(n)p FK(.)523 3620 y Fl(4.1.1)99 b(Mo)-5 b(del)34 b(Motivation)523 3769 y FK(The)22 b(in)n(ten)n(t)g(of)f(this)h(section)f(is)h(to)f (motiv)-5 b(ate)22 b(the)g FG(Uniswitch)j(Mo)l(del)e FK(in)f(ligh)n(t)f(of)h(ph)n(ysical)523 3869 y(considerations.)34 b(USM)j(is)f(a)f(go)r(o)r(d)g(mo)r(del)i(for)e(obtaining)g(lo)n(w)n(er) g(b)r(ounds)h(b)r(ecause)f(it)523 3969 y(conserv)-5 b(ativ)n(ely)29 b(estimates)h(a)g(circuit's)g(switc)n(hing)h(b)r(eha)n(viour.)e(Th)n (us,)h(a)g(lo)n(w)n(er)f(b)r(ound)523 4068 y(in)f(USM)g(is)g(an)f (equally)g(v)-5 b(alid)27 b(lo)n(w)n(er)f(b)r(ound)i(on)g FG(multiswitch)g FK(energy)-7 b(.)606 4168 y(USM)24 b(tak)n(es)e(no)h (notice)g(of)g(ho)n(w)g(a)g(circuit)g(arriv)n(es)e(at)i(a)g(particular) f(state.)h(This)g(is)g(the)523 4267 y(domain)i(of)h(the)g FG(Multiswitch)j(Mo)l(dels)p FK(,)e(whic)n(h)f(are)f(discussed)g(in)h ([7])g(and)f([6].)h(Ho)n(w)n(ev)n(er,)523 4367 y(in)35 b(order)e(to)i(discuss)f(the)h(relev)-5 b(ance)34 b(of)g(using)h(USM)g (to)f(obtain)h(upp)r(er)g(b)r(ounds,)f(the)523 4467 y(follo)n(wing)27 b(m)n(ultiswitc)n(h)g(notions)g(are)g(in)n(tro)r(duced.)606 4566 y(The)34 b(switc)n(hing)f(b)r(eha)n(viour)f(of)i(ph)n(ysical)e (circuits)i(is)f(in\015uenced)h(b)n(y)f(v)-5 b(arious)33 b(dela)n(y)523 4666 y(functions,)d(suc)n(h)f(as)h(gate)f(dela)n(y)f FC(\016)s FK(,)i(wire)g(dela)n(y)e(\001)i(and)g(input)g(dela)n(y)f FC(I)7 b FK(.)30 b FC(\016)j FK(determines)523 4766 y(the)c(switc)n (hing)f(sp)r(eed)h(of)g(a)f(gate.)g(\001)h(determines)g(the)g(time)g (to)g(transmit)g(bits)g(along)e(a)523 4865 y(wire.)g FC(I)35 b FK(determines)27 b(when)h(an)f(input)i(v)-5 b(alue)27 b(arriv)n(es)f(at)h(an)g(input)i(p)r(ort.)606 4965 y(Let)34 b(\()p FC(C)852 4977 y FA(n)898 4965 y FC(;)14 b(\016)o(;)g FK(\001)p FC(;)g(I)7 b FK(\))34 b(denote)g(a)g FG(cir)l(cuit)i(scheme)p FK(,)f(where)f FC(C)2461 4977 y FA(n)2541 4965 y FK(is)g(a)g(VLSI)g(circuit)g(with)523 5064 y(gate)f(dela)n(y)g FC(\016)s FK(,)g(wire)g(dela)n(y)g(\001,)h (and)f(input)i(dela)n(y)d FC(I)7 b FK(.)34 b(A)g(circuit)f(sc)n(heme)g (\()p FC(C)3021 5076 y FA(n)3067 5064 y FC(;)14 b(\016)o(;)g FK(\001)p FC(;)g(I)7 b FK(\))523 5164 y(exhibits)22 b(the)h FG(uniswitch)i(pr)l(op)l(erty)e FK(if)g(eac)n(h)e(no)r(de)h(or)f(wire)h (of)g FC(C)2514 5176 y FA(n)2582 5164 y FK(switc)n(hes)f(at)h(most)g (once)523 5264 y(when)29 b FC(C)800 5276 y FA(n)874 5264 y FK(c)n(hanges)f(from)g(one)h(input)g(setting)g(to)f(another,)g (according)f(to)i FC(\016)s FK(,)g(\001)g(and)g FC(I)7 b FK(.)523 5363 y(Otherwise,)27 b(\()p FC(C)1030 5375 y FA(n)1076 5363 y FC(;)14 b(\016)o(;)g FK(\001)p FC(;)g(I)7 b FK(\))27 b(exhibits)h(the)g(m)n(ultiswitc)n(h)g(prop)r(ert)n(y)-7 b(.)p eop end %%Page: 41 51 TeXDict begin 41 50 bop 2572 299 a FF(4.1.)53 b(The)26 b(setting)154 b(41)523 1323 y @beginspecial 0 @llx 0 @lly 468 @urx 148.500000 @ury 3401 @rwi @setspecial %%BeginDocument: combcirc.ps %! %%Creator: tromp@wolf.cwi.nl (John Tromp,M231,4078,02207-16322) %%Title: combcirc (xpic) %%CreationDate: Sat Sep 18 12:44:12 1993 %%Pages: 1 %%BoundingBox: 0 0 468 148.5 % (in inches) at 0 0, width 6.5, height 2.0625 %%EndComments % Prolog for xpic to PostScript converter % Author: Mark Moraes % $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp % %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH % %s F - change font to fontname % %d S - change size (font size in points) % (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) % %d %d l - lineto % %d %d m - moveto % %d %d s - spline segment % x - flush line, spline % b - box % e - ellipse % %d ss - setscale % %d W - change linewidth % getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH % %d %d flip - translate by %d, PAGEHEIGHT - %d (this % transforms to X windows coordinates) save 50 dict begin /xpic exch def /StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def % Set defaults /fontname /Times-Roman def /ptsize 12 def % halign has the values for MIDLINE, TOPLINE, BOTLINE /halign 3 array def /s {rcurveto} def /x {stroke} def /l {lineto} def /m {moveto} def /b { /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto urx lly lineto urx ury lineto llx ury lineto llx lly lineto stroke } def /mtrx matrix def /e { /yc exch def /xc exch def /yrad exch def /xrad exch def xc xrad add yc moveto /savematrix mtrx currentmatrix def xc yc translate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix stroke } def % The next three take the text string, and moveto the right horiz. position % leaving the string on the stack. /lj {} def /rj {dup stringwidth pop neg 0 rmoveto} def /ce {dup stringwidth pop 2 div neg 0 rmoveto} def % And this is invoked after one of the three above, and % computes the vert. pos, and then displays the string. /t {halign exch get 0 exch rmoveto show newpath} def % Store an array of patterns in /styles - a pattern is an array consisting % of an array and an offset. Corresp to xpic patterns % solid, dotted, short-dashed, long-dashed, dot-dashed /styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] 5 array astore def % change style to arg. /D {stroke styles exch get aload pop setdash newpath} def /W {stroke 0.5 mul setlinewidth newpath} def % fontbox takes a fontname off the stack, and returns an array % containing the values of the bottom line of the bounding box, the % mid line of the bounding box, and the top line of the bounding box % of that font, taken from the baseline, scaled to a font of size 1 /fontbox { findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop /ytop exch def pop /ybot exch def pop /ymid ytop ybot sub 2 div def 0 ybot fm dtransform exch pop % botline dup neg exch % midline - this works better than (ytop-ybot)/2! 0 ytop fm dtransform exch pop exch %topline % now in the order midline, topline, botline. 3 array astore } def % select font /F { dup /fontname exch def fontbox /thisfontbox exch def SF } def % set point size /S {/ptsize exch def SF} def % actually set font /SF { fontname findfont ptsize curscale div scalefont setfont thisfontbox aload pop 1 1 3 { pop ptsize mul curscale div neg 3 1 roll } for halign astore pop } def % sets the scale to 72 / n, where n is on the stack, and stores the value % in curscale for font scaling /curscale 1 def /getpagesize{newpath clippath pathbbox /pageheight exch def /pagewidth exch def pop pop newpath} def /flip{pageheight exch sub translate} def /ss {/curscale exch 72 exch div dup dup scale def} def /land {90 rotate} def StartXpic %%EndProlog 80 ss 0.5 W /Times-Roman F 10 S 408 148 m (2) ce 0 t 96 148 m (1) ce 0 t 14 S 380 152 m (clk) ce 0 t 68 152 m (clk) ce 0 t /Symbol F 88 152 m (f) ce 0 t 400 152 m (f) ce 0 t /Times-Roman F 12 S 120 96 m (.) ce 0 t 120 88 m (.) ce 0 t 120 72 m (.) ce 0 t 120 80 m (.) ce 0 t 14 S 232 88 m (Combinational) ce 0 t 232 72 m (Logic) ce 0 t 0 D 88 112 m 152 112 l 0 D 144 116 m 152 112 l 144 109 l 0 D 152 112 m x 88 48 m 152 48 l 0 D 144 52 m 152 48 l 144 45 l 0 D 152 48 m x 312 112 m 376 112 l 0 D 368 116 m 376 112 l 368 109 l 0 D 376 112 m x 312 48 m 376 48 l 0 D 368 52 m 376 48 l 368 45 l 0 D 376 48 m x 400 48 m 416 48 l 416 16 l 48 16 l 48 48 l 64 48 l 0 D 56 52 m 64 48 l 56 45 l 0 D 64 48 m x 400 112 m 464 112 l 0 D 456 116 m 464 112 l 456 109 l 0 D 464 112 m x 400 80 m 464 80 l 0 D 456 84 m 464 80 l 456 77 l 0 D 464 80 m x 0 112 m 64 112 l 0 D 56 116 m 64 112 l 56 109 l 0 D 64 112 m x 0 80 m 64 80 l 0 D 56 84 m 64 80 l 56 77 l 0 D 64 80 m x 2 W 376 120 400 40 b 64 120 88 40 b 4 W 152 120 312 40 b 512 120 m 464 120 l 464 40 l 496 40 l x 0.5 W 520 136 m 0 0 -1.33333 -2.66667 -4 -8 s -2.66667 -5.33333 -6.66667 -14.6667 -12 -28 s -5.33333 -13.3333 -5.33333 -20 0 -20 s 5.33333 0 5.33333 -6.66667 0 -20 s -5.33333 -13.3333 -8 -25.3333 -8 -36 s x 488 80 m (C/L) ce 0 t 400 64 m 432 64 l 432 0 l 32 0 l 32 64 l 64 64 l 0 D 56 68 m 64 64 l 56 61 l 0 D 64 64 m x 12 S 232 8 m (Feedback Paths) ce 0 t 424 112 m (.) ce 0 t 424 104 m (.) ce 0 t 424 88 m (.) ce 0 t 424 96 m (.) ce 0 t 40 96 m (.) ce 0 t 40 88 m (.) ce 0 t 40 104 m (.) ce 0 t 40 112 m (.) ce 0 t 344 80 m (.) ce 0 t 344 72 m (.) ce 0 t 344 88 m (.) ce 0 t 344 96 m (.) ce 0 t 388 144 m 388 120 l 0 D 392 129 m 388 120 l 385 129 l 0 D 388 120 m x 76 144 m 76 120 l 0 D 80 129 m 76 120 l 73 129 l 0 D 76 120 m x 388 48 m (t) ce 0 t 76 80 m (p) ce 0 t 76 92 m (n) ce 0 t 76 104 m (i) ce 0 t 76 68 m (u) ce 0 t 76 56 m (t) ce 0 t 388 60 m (u) ce 0 t 388 84 m (t) ce 0 t 388 72 m (p) ce 0 t 388 96 m (u) ce 0 t 388 108 m (o) ce 0 t %%Trailer showpage % Trailer for xpic to PostScript converter % $Header: x2ps.tra,v 1.2 89/07/02 15:59:53 moraes Exp $ xpic end restore %%EndDocument @endspecial 822 1497 a(FIGURE)25 b(4.1.)j(Preferred)e(Sequen)n(tial)f (Circuit:)i(a)f(Finite)g(State)g(Mac)n(hine)606 1761 y FK(Using)k(USM)g(to)g(obtain)g(upp)r(er)g(b)r(ounds)g(is)g (justi\014ed)h(for)f(circuit)g(sc)n(hemes)f(that)h(ex-)523 1860 y(hibit)e(the)f(uniswitc)n(h)g(prop)r(ert)n(y)-7 b(.)26 b(F)-7 b(or)26 b(example,)g(if)i(eac)n(h)e(no)r(de)g(of)h(a)g (circuit)f(receiv)n(es)g(its)523 1960 y(inputs)i(at)g(the)f(same)g (time,)i(race)d(conditions)h(cannot)g(arise.)g(The)g(uniswitc)n(h)h (prop)r(ert)n(y)523 2060 y(is)g(th)n(us)f(ensured.)h(Some)f(real)g (circuits)g(ha)n(v)n(e)g(this)h(timing)g(prop)r(ert)n(y)-7 b(.)26 b(Where)i(race)e(con-)523 2159 y(ditions)h(deriv)n(e)e(solely)h (from)h(a)f(circuit's)g(async)n(hron)n(y)e(\(i.e..)k(the)f(paths)f(to)h (a)f(no)r(de)h(v)-5 b(ary)523 2259 y(in)34 b(length\),)g(a)f(circuit)h (sc)n(heme)f(can)g(acquire)g(the)g(uniswitc)n(h)h(prop)r(ert)n(y)f(if)h (the)g(circuit)523 2359 y(can)i(b)r(e)g(made)g(sync)n(hronous.)d(A)k ("bad")d(input)j(sc)n(hedule)f(can)f(b)r(e)h(o\013set)g(b)n(y)g(v)-5 b(arying)523 2458 y(gate)36 b(dela)n(ys.)f(These)i(approac)n(hes)d(to)i (designing)g(circuit)h(sc)n(hemes)e(that)i(ac)n(hiev)n(e)e(the)523 2558 y(uniswitc)n(h)28 b(prop)r(ert)n(y)e(are)h(discussed)g(in)h([7])f (and)h([6].)f(F)-7 b(urther,)28 b(according)e(to)h(C.)h(Mead)523 2657 y([15)o(],)k(man)n(y)g(CMOS)g(designs)f(are)h(sync)n(hronized)e (to)i(ensure)g(that)g(the)h(corresp)r(onding)523 2757 y(circuit)28 b(sc)n(hemes)e(ha)n(v)n(e)h(the)h(uniswitc)n(h)g(prop)r (ert)n(y)-7 b(.)606 2857 y(USM)41 b(is)g(the)g(\014rst)f(step)h(in)g (the)g(systematic)f(asymptotic)g(analysis)g(of)g(switc)n(hing)523 2956 y(energy)33 b(consumption)h(in)g(VLSI)h(circuits.)f(As)g(suc)n(h,) g(USM)g(is)g(justi\014ed)h(as)f(an)g(upp)r(er)523 3056 y(b)r(ound)29 b(mo)r(del.)f(In)h(addition,)f(USM)h(is)f(motiv)-5 b(ated)28 b(b)n(y)g(designers')f(practical)g(e\013orts)h(to)523 3156 y(prev)n(en)n(t)21 b(hazards)g(and)h(th)n(us)h(ensure)e(the)i (uniswitc)n(h)f(prop)r(ert)n(y)-7 b(.)22 b(USM)g(is)h(used)f(for)g(upp) r(er)523 3255 y(b)r(ound)28 b(analysis)e(in)i([18)o(])g(and)f([1].)606 3355 y(USM)20 b(is)g(de\014ned)g(for)g(acyclic)f(circuits.)g(The)h (study)g(of)g(com)n(binational)f(circuits)g(\(with-)523 3454 y(out)34 b(lo)r(ops\))g(has)g(a)g(long)g(and)g(distinguished)h (history)-7 b(.)33 b(Krohn)g(and)i(Rho)r(des')f([10)o(,)h(11)o(])523 3554 y(seminal)g(w)n(ork)f(in)i(this)f(area)f(sho)n(w)n(ed)g(that)i (eac)n(h)e(sequen)n(tial)h(mac)n(hine)g(\(with)h(lo)r(ops\))523 3654 y(can)h(b)r(e)h(decomp)r(osed)e(in)n(to)h(structures)g(consisting) f(of)h(only)g(com)n(binational)f(circuits)523 3753 y(and)27 b(\015ip-\015ops.)606 3853 y(A)j(recommended)g(arc)n(hitecture)e(for)i (sequen)n(tial)f(mac)n(hines)g(is)h(the)g(\014nite)h(state)e(ma-)523 3953 y(c)n(hine)k(in)h(whic)n(h)f(the)h(com)n(binational)e(logic)g(is)h (isolated)g(from)g(the)h(lo)r(oping)e(structure)523 4052 y([14)o(].)g(See)f(Figure)g(4.1.)f(This)h(arc)n(hitecture)g(lends)g (itself)h(to)f(analysis)f(of)h(the)h(com)n(bina-)523 4152 y(tional)27 b(logic)g(distinct)h(from)g(the)f(lo)r(oping)g (bu\013ers.)523 4459 y FL(4.2)116 b(W)-10 b(orst)38 b(case)h(upp)s(er)g (b)s(ounds)523 4675 y Fl(4.2.1)99 b(Ener)-5 b(gy-E\016cient)34 b Fh(k)s Fl(-Thr)-5 b(eshold)34 b(Cir)-5 b(cuit)523 4824 y FK(In)21 b(this)g(section,)g(a)f(no)n(v)n(el)g(energy-e\016cien)n(t)f (threshold)i(circuit)f(is)h(describ)r(ed,)g(whic)n(h)f(gen-)523 4924 y(eralizes)28 b(the)h(tec)n(hniques)g(of)g(the)h(energy-e\016cien) n(t)d FG(OR)32 b FK(and)d FG(AND)36 b FK(circuits)29 b(describ)r(ed)523 5024 y(in)g([8)o(])g(,[5)o(].)g(The)f (energy-e\016cien)n(t)f FG(OR)k FK(circuit)d(used)g(the)h(observ)-5 b(ation)27 b(that)h(it)h(is)f(su\016-)523 5123 y(cien)n(t)d(to)g(turn)g (on)g(one)g FG(OR)i FK(input)f(to)f(turn)g(on)g(the)g(output.)h(Th)n (us,)f(when)g(man)n(y)f(inputs)523 5223 y(to)f FG(SOR)j FK(\(Smart)e FG(OR)i FK(circuit\))d(are)g("1",)f(all)h(but)h(one)f(of)h (these)f("1")g(signals)f(are)g(`killed'.)523 5322 y(In)32 b(a)f(completely)g(analogous)f(manner,)h(it)h(is)f(su\016cien)n(t)h(to) f(turn)h(o\013)f(one)g FG(AND)39 b FK(input)p eop end %%Page: 42 52 TeXDict begin 42 51 bop 2106 299 a FF(4.2.)53 b(W)-6 b(orst)25 b(case)i(upp)r(er)e(b)r(ounds)153 b(42)523 506 y FK(in)31 b(order)f(to)h(turn)g(o\013)g(the)g(output.)g(Th)n(us,)g (when)g(man)n(y)g(inputs)g(are)f(turned)h(o\013,)g(only)523 606 y(one)i(0)f(signal)g(m)n(ust)h(propagate)e(all)i(the)g(w)n(a)n(y)f (to)h(the)g(output.)g(The)g(principle)g(idea)g(is)523 706 y(that)d(the)h(input)g(ma)n(y)e(pro)n(vide)g(more)g(information)g (than)h(the)h(function)f(requires,)f(and)523 805 y(suppressing)h (unneeded)h(input)h(bits)g(results)e(in)i(energy)e(sa)n(vings.)f(This)i (idea)g(w)n(as)f(also)523 905 y(used)e(in)f([8])h(to)f(design)g (energy-e\016cien)n(t)g(comparator)e(circuits.)606 1005 y(A)31 b(threshold)g(function,)h FC(T)1469 1017 y FA(k)1509 1005 y FK(,)f(is)g(de\014ned)h(on)e(a)h(b)r(o)r(olean)f(v)n(ector)g FC(x)f FK(=)g FC(x)2913 1017 y FB(1)2950 1005 y FC(x)2997 1017 y FB(2)3049 1005 y FC(:)14 b(:)g(:)g(x)3207 1017 y FA(n)3283 1005 y FK(as)523 1104 y(follo)n(ws:)1440 1233 y FC(T)1489 1245 y FA(k)1529 1233 y FK(\()p FC(x)p FK(\))24 b(=)1752 1116 y Fn(\032)1856 1182 y FK(1)82 b(if)2056 1120 y Fn(P)2158 1182 y FC(x)2205 1194 y FA(i)2256 1182 y FD(\025)23 b FC(k)1856 1282 y FK(0)82 b(otherwise)523 1419 y(Hence,)42 b(at)f(most)g FC(k)j FK(input)e(bits)g(that)f(are)g ("1")f(m)n(ust)h(reac)n(h)f(the)i(output;)g(the)f(rest)523 1519 y(can)29 b(b)r(e)h("killed".)e(The)h(energy-e\016cien)n(t)f (threshold)h(circuit,)g FG(Thr)2665 1531 y FA(k)2706 1519 y FK(,)g(describ)r(ed)g(b)r(elo)n(w,)523 1618 y(e\013ectiv)n(ely) 24 b(uses)f(only)g(necessary)f(information,)h(killing)h(o\013)g(the)g (rest,)f(resulting)g(in)h(only)523 1718 y(linear)j(w)n(orst)f(case)h (switc)n(hing)g(energy)g(consumption.)606 1817 y(Let's)h(de\014ne)f(a)h (sum-to-)p FC(k)h FK(function)g(on)e FC(x)c FK(=)g FC(x)2116 1829 y FB(1)2154 1817 y FC(x)2201 1829 y FB(2)2252 1817 y FC(:)14 b(:)g(:)g(x)2410 1829 y FA(n)2483 1817 y FK(as:)1524 1994 y FC(S)1575 2006 y FA(k)1616 1994 y FK(\()p FC(x)p FK(\))24 b(=)f(min\()p FC(k)s(;)2092 1915 y Fn(X)2226 1994 y FC(x)2273 2006 y FA(i)2301 1994 y FK(\))p FC(:)523 2174 y FK(Circuit)33 b FG(Thr)956 2186 y FA(k)1030 2174 y FK(consist)g(of)h(a)e(comparator)f(b)r(olted)j(on)n(to)f(a)g(circuit) g FG(Cnt)2869 2186 y FA(k)2909 2174 y FK(,)h(whic)n(h)f(uses)523 2274 y(\()p FC(k)17 b FK(+)c(1\)-ary)23 b(logic)h(to)h(compute)h FC(S)1613 2286 y FA(k)1653 2274 y FK(.)g(The)f(comparator)e(compares)g (the)j(output)f(of)g FG(Cnt)3317 2286 y FA(k)523 2374 y FK(with)g(the)g(constan)n(t)f FC(k)s FK(.)g(Circuit)h FG(Cnt)1695 2386 y FA(k)1760 2374 y FK(con)n(tains)f(2)g(t)n(yp)r(es)g (of)h(no)r(des:)f(+-no)r(des)g(that)h(sum)523 2473 y(the)j(inputs,)g (and)g(min-no)r(des)f(that)h(`kill')g(inputs)g(exceeding)f FC(k)s FK(.)606 2573 y(Lik)n(e)g(the)g FG(SOR)i FK(circuit,)e(the)h FG(Cnt)1695 2585 y FA(k)1763 2573 y FK(circuit)f(is)g(laid)g(out)g(so)f (that,)i(for)e(an)n(y)g(input,)i(the)523 2673 y(area)e(of)i(non-zero)e (wires)g(is)i(at)f(most)h(linear)f(in)h(the)g(input)g(size.)606 2772 y(The)22 b(follo)n(wing)e(recurrence)g(describ)r(es)g(the)i(b)r(o) r(olean)f(sum-to-)p FC(k)j FK(function)e FC(S)3013 2784 y FA(k)3053 2772 y FD(jf)p FK(0)p FC(;)14 b FK(1)p FD(g)3281 2742 y FB(2)p FA(n)523 2872 y FK(in)28 b(terms)f(of)h FC(S)997 2884 y FA(k)1038 2872 y FD(jf)p FK(0)p FC(;)14 b FK(1)p FD(g)1266 2842 y FA(n)1309 2872 y FK(,)27 b(addition,)h(and)f (minim)n(um.)639 3140 y FC(S)690 3152 y FA(k)731 3140 y FK(\()p FC(x)810 3152 y FB(1)848 3140 y FC(;)14 b(:)g(:)g(:)f(;)h(x) 1079 3152 y FB(2)p FA(n)1158 3140 y FK(\))801 3264 y(=)82 b(min)q(\()p FC(k)s(;)14 b(S)1253 3276 y FA(k)1294 3264 y FK(\()p FC(x)1373 3276 y FB(1)1411 3264 y FC(;)g(:)g(:)g(:)f(;)h(x) 1642 3276 y FA(n)1688 3264 y FK(\))k(+)g FC(S)1872 3276 y FA(k)1913 3264 y FK(\()p FC(x)1992 3276 y FA(n)p FB(+1)2122 3264 y FC(;)c(:)g(:)g(:)g(;)g(x)2354 3276 y FB(2)p FA(n)2432 3264 y FK(\)\))801 3389 y(=)82 b FC(S)999 3401 y FA(k)1040 3389 y FK(\()p FC(x)1119 3401 y FB(1)1157 3389 y FC(;)14 b(:)g(:)g(:)g(;)g(x)1389 3401 y FA(n)1434 3389 y FK(\))19 b(+)f(min\()p FC(k)k FD(\000)c FC(S)1937 3401 y FA(k)1978 3389 y FK(\()p FC(x)2057 3401 y FB(1)2095 3389 y FC(;)c(:)g(:)g(:)f(;)h (x)2326 3401 y FA(n)2372 3389 y FK(\))p FC(;)g(S)2492 3401 y FA(k)2533 3389 y FK(\()p FC(x)2612 3401 y FA(n)p FB(+1)2742 3389 y FC(;)g(:)g(:)g(:)f(;)h(x)2973 3401 y FB(2)p FA(n)3052 3389 y FK(\)\))801 3513 y(=)82 b(min)q(\()p FC(S)1170 3525 y FA(k)1211 3513 y FK(\()p FC(x)1290 3525 y FB(1)1328 3513 y FC(;)14 b(:)g(:)g(:)f(;)h(x)1559 3525 y FA(n)1605 3513 y FK(\))p FC(;)g(k)21 b FD(\000)d FC(S)1872 3525 y FA(k)1913 3513 y FK(\()p FC(x)1992 3525 y FA(n)p FB(+1)2122 3513 y FC(;)c(:)g(:)g(:)g(;)g(x)2354 3525 y FB(2)p FA(n)2432 3513 y FK(\)\))19 b(+)f FC(S)2649 3525 y FA(k)2690 3513 y FK(\()p FC(x)2769 3525 y FA(n)p FB(+1)2899 3513 y FC(;)c(:)g(:)g(:)g(;)g(x)3131 3525 y FB(2)p FA(n)3209 3513 y FK(\))606 3682 y(The)23 b(structure)f(of)h (the)g FG(Cnt)1492 3694 y FA(k)1556 3682 y FK(circuit)g(directly)f (re\015ects)g(the)i(ab)r(o)n(v)n(e)d(recurrence.)g(W)-7 b(e'll)523 3781 y(next)26 b(describ)r(e)g(it's)g(la)n(y)n(out)f(for)h (the)g(case)g(that)g FC(n)g FK(is)g(a)g(p)r(o)n(w)n(er)f(of)h(2.)g(The) g(generalization)523 3881 y(to)e(other)g(v)-5 b(alues)24 b(of)g FC(n)g FK(can)g(b)r(e)h(obtained)f(in)g(a)g(straigh)n(tforw)n (ard)d(manner)j(b)n(y)g(taking)f(the)523 3981 y(circuit)18 b(for)g(the)h(next)g(p)r(o)n(w)n(er)e(of)i(2,)f(hardwiring)f(the)i (excess)f(inputs)h(to)f(0,)g(and)h(simplifying)523 4080 y(the)25 b(result.)g(F)-7 b(or)24 b(notational)f(con)n(v)n(enience,)h (n)n(um)n(b)r(er)g(the)h FC(n)e FK(=)g(2)2571 4050 y FA(l)2621 4080 y FK(inputs)i(0)p FC(;)14 b FK(1)p FC(;)g(:)g(:)g(:)f(;) h(n)f FD(\000)g FK(1)523 4180 y(and)33 b(iden)n(tify)h(them)g(with)g (their)f(length)g FC(l)i FK(binary)d(expansion.)h(A)g(binary)g(string)g FC(s)g FK(of)523 4279 y(length)d(less)f(than)h FC(l)h FK(then)f(naturally)e(corresp)r(ond)g(to)i(the)g(blo)r(c)n(k)f(of)g(2) 2769 4249 y FA(l)p Fw(\000j)p FA(s)p Fw(j)2947 4279 y FK(consecutiv)n(e)523 4379 y(inputs)40 b(ha)n(ving)e FC(s)h FK(as)g(a)f(pre\014x.)h(In)h(particular,)e(the)h(empt)n(y)h (string)e FC(\017)h FK(iden)n(ti\014es)g(the)523 4479 y(sequence)27 b(of)h(all)f(inputs.)h(The)g(ab)r(o)n(v)n(e)e(recurrence) g(can)h(no)n(w)g(b)r(e)h(rewritten)f(as)1128 4647 y FC(S)1179 4659 y FA(k)1220 4647 y FK(\()p FC(s)p FK(\))83 b(=)g(min\()p FC(k)s(;)14 b(S)1858 4659 y FA(k)1899 4647 y FK(\()p FC(s)p FK(0\))k(+)g FC(S)2196 4659 y FA(k)2237 4647 y FK(\()p FC(s)p FK(1\)\))1406 4772 y(=)83 b FC(S)1605 4784 y FA(k)1646 4772 y FK(\()p FC(s)p FK(0\))18 b(+)g(min\()p FC(k)k FD(\000)c FC(S)2261 4784 y FA(k)2302 4772 y FK(\()p FC(s)p FK(0\))p FC(;)c(S)2535 4784 y FA(k)2575 4772 y FK(\()p FC(s)p FK(1\)\))1406 4896 y(=)83 b(min\()p FC(S)1775 4908 y FA(k)1816 4896 y FK(\()p FC(s)p FK(0\))p FC(;)14 b(k)21 b FD(\000)d FC(S)2196 4908 y FA(k)2237 4896 y FK(\()p FC(s)p FK(1\)\))h(+)f FC(S)2567 4908 y FA(k)2608 4896 y FK(\()p FC(s)p FK(1\))606 5064 y(Figures)i(4.2)h(and)g(4.3)f (sho)n(w)h(the)g(la)n(y)n(out)f(of)i(circuit)f FG(Cnt)2367 5076 y FA(k)2430 5064 y FK(on)g(input)h(blo)r(c)n(k)e FC(s)p FK(.)i(The)f(\014rst)523 5164 y(one)29 b(sho)n(ws)f(the)h(case)f (where)h FD(j)p FC(s)p FD(j)c FK(=)g FC(l)c FD(\000)e FK(1,)29 b(i.e.)g(part)g(of)g(the)g(b)r(ottom)h(la)n(y)n(er)d(of)i FG(Cnt)3196 5176 y FA(k)3236 5164 y FK(\()p FC(\017)p FK(\).)523 5264 y(There)d(are)g(2)942 5234 y Fw(j)p FA(s)p Fw(j)1039 5264 y FK(=)d FC(n=)p FK(2)i(suc)n(h)i(parts)f(in)h(the)g(b)r (ottom)f(la)n(y)n(er.)f(The)i(second)f(sho)n(ws)g(part)g(of)523 5363 y(the)i(middle/upp)r(er)g(la)n(y)n(ers)d(of)j FG(Cnt)1659 5375 y FA(k)1700 5363 y FK(\()p FC(\017)p FK(\),)g(where)f FD(j)p FC(s)p FD(j)c FC(<)g(l)d FD(\000)e FK(1.)p eop end %%Page: 43 53 TeXDict begin 43 52 bop 2106 299 a FF(4.2.)53 b(W)-6 b(orst)25 b(case)i(upp)r(er)e(b)r(ounds)153 b(43)1220 2334 y @beginspecial 0 @llx 0 @lly 172.800003 @urx 172.800003 @ury 1728 @rwi @setspecial %%BeginDocument: botlay.ps %! %%Creator: tromp@wolf.cwi.nl (John Tromp,M231,4078,02207-16322) %%Title: botlay (xpic) %%CreationDate: Sat Sep 18 16:12:14 1993 %%Pages: 1 %%BoundingBox: 0 0 172.8 172.8 % (in inches) at 0 0, width 2.4, height 2.4 %%EndComments % Prolog for xpic to PostScript converter % Author: Mark Moraes % $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp % %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH % %s F - change font to fontname % %d S - change size (font size in points) % (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) % %d %d l - lineto % %d %d m - moveto % %d %d s - spline segment % x - flush line, spline % b - box % e - ellipse % %d ss - setscale % %d W - change linewidth % getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH % %d %d flip - translate by %d, PAGEHEIGHT - %d (this % transforms to X windows coordinates) save 50 dict begin /xpic exch def /StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def % Set defaults /fontname /Times-Roman def /ptsize 12 def % halign has the values for MIDLINE, TOPLINE, BOTLINE /halign 3 array def /s {rcurveto} def /x {stroke} def /l {lineto} def /m {moveto} def /b { /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto urx lly lineto urx ury lineto llx ury lineto llx lly lineto stroke } def /mtrx matrix def /e { /yc exch def /xc exch def /yrad exch def /xrad exch def xc xrad add yc moveto /savematrix mtrx currentmatrix def xc yc translate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix stroke } def % The next three take the text string, and moveto the right horiz. position % leaving the string on the stack. /lj {} def /rj {dup stringwidth pop neg 0 rmoveto} def /ce {dup stringwidth pop 2 div neg 0 rmoveto} def % And this is invoked after one of the three above, and % computes the vert. pos, and then displays the string. /t {halign exch get 0 exch rmoveto show newpath} def % Store an array of patterns in /styles - a pattern is an array consisting % of an array and an offset. Corresp to xpic patterns % solid, dotted, short-dashed, long-dashed, dot-dashed /styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] 5 array astore def % change style to arg. /D {stroke styles exch get aload pop setdash newpath} def /W {stroke 0.5 mul setlinewidth newpath} def % fontbox takes a fontname off the stack, and returns an array % containing the values of the bottom line of the bounding box, the % mid line of the bounding box, and the top line of the bounding box % of that font, taken from the baseline, scaled to a font of size 1 /fontbox { findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop /ytop exch def pop /ybot exch def pop /ymid ytop ybot sub 2 div def 0 ybot fm dtransform exch pop % botline dup neg exch % midline - this works better than (ytop-ybot)/2! 0 ytop fm dtransform exch pop exch %topline % now in the order midline, topline, botline. 3 array astore } def % select font /F { dup /fontname exch def fontbox /thisfontbox exch def SF } def % set point size /S {/ptsize exch def SF} def % actually set font /SF { fontname findfont ptsize curscale div scalefont setfont thisfontbox aload pop 1 1 3 { pop ptsize mul curscale div neg 3 1 roll } for halign astore pop } def % sets the scale to 72 / n, where n is on the stack, and stores the value % in curscale for font scaling /curscale 1 def /getpagesize{newpath clippath pathbbox /pageheight exch def /pagewidth exch def pop pop newpath} def /flip{pageheight exch sub translate} def /ss {/curscale exch 72 exch div dup dup scale def} def /land {90 rotate} def StartXpic %%EndProlog 80 ss 0.5 W 0 D 0 192 192 0 b /Times-Roman F 14 S 96 36 m (inputs) ce 0 t 30 S 156 156 m (+) ce 0 t 36 156 m (+) ce 0 t 16 S 156 36 m (s1) ce 0 t 24 24 156 156 e 36 36 m (s0) ce 0 t 40 56 m 144 136 l 0 D 135 135 m 144 136 l 141 128 l 0 D 144 136 m x 152 56 m 48 136 l 0 D 52 128 m 48 136 l 58 135 l 0 D 48 136 m x 160 56 m 160 132 l 0 D 157 124 m 160 132 l 164 124 l 0 D 160 132 m x 32 56 m 32 132 l 0 D 29 124 m 32 132 l 36 124 l 0 D 32 132 m x 24 24 36 156 e 136 56 176 16 b 16 56 56 16 b %%Trailer showpage % Trailer for xpic to PostScript converter % $Header: x2ps.tra,v 1.2 89/07/02 15:59:53 moraes Exp $ xpic end restore %%EndDocument @endspecial 898 2508 a(FIGURE)25 b(4.2.)i(Bottom)f(La)n(y)n(er)g(of)g (an)g(Em)n(b)r(edding)f(of)i(Circuit)f Fg(Cnt)2945 2517 y Ff(k)523 4721 y @beginspecial 0 @llx 0 @lly 496.799988 @urx 208.800003 @ury 3401 @rwi @setspecial %%BeginDocument: midlay.ps %! %%Creator: tromp@wolf.cwi.nl (John Tromp,M231,4078,02207-16322) %%Title: midlay (xpic) %%CreationDate: Sat Sep 18 16:15:37 1993 %%Pages: 1 %%BoundingBox: 0 0 496.8 208.8 % (in inches) at 0 0, width 6.9, height 2.9 %%EndComments % Prolog for xpic to PostScript converter % Author: Mark Moraes % $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp % %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH % %s F - change font to fontname % %d S - change size (font size in points) % (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE) % (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE) % %d %d l - lineto % %d %d m - moveto % %d %d s - spline segment % x - flush line, spline % b - box % e - ellipse % %d ss - setscale % %d W - change linewidth % getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH % %d %d flip - translate by %d, PAGEHEIGHT - %d (this % transforms to X windows coordinates) save 50 dict begin /xpic exch def /StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def % Set defaults /fontname /Times-Roman def /ptsize 12 def % halign has the values for MIDLINE, TOPLINE, BOTLINE /halign 3 array def /s {rcurveto} def /x {stroke} def /l {lineto} def /m {moveto} def /b { /ury exch def /urx exch def /lly exch def /llx exch def llx lly moveto urx lly lineto urx ury lineto llx ury lineto llx lly lineto stroke } def /mtrx matrix def /e { /yc exch def /xc exch def /yrad exch def /xrad exch def xc xrad add yc moveto /savematrix mtrx currentmatrix def xc yc translate xrad yrad scale 0 0 1 0 360 arc savematrix setmatrix stroke } def % The next three take the text string, and moveto the right horiz. position % leaving the string on the stack. /lj {} def /rj {dup stringwidth pop neg 0 rmoveto} def /ce {dup stringwidth pop 2 div neg 0 rmoveto} def % And this is invoked after one of the three above, and % computes the vert. pos, and then displays the string. /t {halign exch get 0 exch rmoveto show newpath} def % Store an array of patterns in /styles - a pattern is an array consisting % of an array and an offset. Corresp to xpic patterns % solid, dotted, short-dashed, long-dashed, dot-dashed /styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ] 5 array astore def % change style to arg. /D {stroke styles exch get aload pop setdash newpath} def /W {stroke 0.5 mul setlinewidth newpath} def % fontbox takes a fontname off the stack, and returns an array % containing the values of the bottom line of the bounding box, the % mid line of the bounding box, and the top line of the bounding box % of that font, taken from the baseline, scaled to a font of size 1 /fontbox { findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop /ytop exch def pop /ybot exch def pop /ymid ytop ybot sub 2 div def 0 ybot fm dtransform exch pop % botline dup neg exch % midline - this works better than (ytop-ybot)/2! 0 ytop fm dtransform exch pop exch %topline % now in the order midline, topline, botline. 3 array astore } def % select font /F { dup /fontname exch def fontbox /thisfontbox exch def SF } def % set point size /S {/ptsize exch def SF} def % actually set font /SF { fontname findfont ptsize curscale div scalefont setfont thisfontbox aload pop 1 1 3 { pop ptsize mul curscale div neg 3 1 roll } for halign astore pop } def % sets the scale to 72 / n, where n is on the stack, and stores the value % in curscale for font scaling /curscale 1 def /getpagesize{newpath clippath pathbbox /pageheight exch def /pagewidth exch def pop pop newpath} def /flip{pageheight exch sub translate} def /ss {/curscale exch 72 exch div dup dup scale def} def /land {90 rotate} def StartXpic %%EndProlog 80 ss 0.5 W /Times-Roman F 16 S 146 56 m (k) ce 0 t 426 56 m (k) ce 0 t 0 D 24 24 516 196 e 30 S 516 196 m (+) ce 0 t 36 196 m (+) ce 0 t 24 24 236 116 e 24 24 36 116 e 8 144 264 8 b 24 24 36 196 e 288 144 544 8 b 24 24 316 116 e 24 24 516 116 e 2 W 320 140 m 320 176 l 0 D 317 168 m 320 176 l 324 168 l 0 D 320 176 m x 232 140 m 232 176 l 0 D 229 168 m 232 176 l 236 168 l 0 D 232 176 m x 3 W 352 196 m 488 196 l 0 D 480 200 m 488 196 l 480 193 l 0 D 488 196 m x 200 196 m 64 196 l 0 D 73 193 m 64 196 l 73 200 l 0 D 64 196 m x 2 W 516 140 m 516 172 l 0 D 513 164 m 516 172 l 520 164 l 0 D 516 172 m x 36 140 m 36 172 l 0 D 33 164 m 36 172 l 40 164 l 0 D 36 172 m x 248 136 m 304 176 l 0 D 295 175 m 304 176 l 300 168 l 0 D 304 176 m x 304 136 m 248 176 l 0 D 253 168 m 248 176 l 258 175 l 0 D 248 176 m x 0.5 W 16 S 36 116 m (l) ce 0 t 236 116 m (l) ce 0 t 316 116 m (r) ce 0 t 516 116 m (r) ce 0 t 12 S 320 196 m (min\(l,k-r\)) ce 0 t 18 S 420 64 m (r=Cnt \(s1\)) ce 0 t 0 232 552 0 b 140 64 m (l=Cnt \(s0\)) ce 0 t 200 216 268 176 b 284 216 352 176 b 12 S 236 196 m (min\(k-l,r\)) ce 0 t %%Trailer showpage % Trailer for xpic to PostScript converter % $Header: x2ps.tra,v 1.2 89/07/02 15:59:53 moraes Exp $ xpic end restore %%EndDocument @endspecial 785 4895 a FF(FIGURE)f(4.3.)i(Middle/Upp)r(er)f(La)n(y)n (er)g(of)g(an)g(Em)n(b)r(edding)f(of)h(Circuit)h Fg(Cnt)3057 4904 y Ff(k)p eop end %%Page: 44 54 TeXDict begin 44 53 bop 2106 299 a FF(4.2.)53 b(W)-6 b(orst)25 b(case)i(upp)r(er)e(b)r(ounds)153 b(44)606 506 y FK(Eac)n(h)28 b(sub-circuit)g FG(Cnt)1367 518 y FA(k)1408 506 y FK(\()p FC(s)p FK(\))i(o)r(ccupies)e(a)g(rectangular)f (area)g(ab)r(o)n(v)n(e)h(the)h(input)g(blo)r(c)n(k)523 606 y FC(s)p FK(.)k(It)g(computes)f FC(S)1138 618 y FA(k)1179 606 y FK(\()p FC(s)p FK(\))h(whic)n(h)f(app)r(ears)g(at)g(b)r(oth)h (the)g(top-left)g(and)f(top-righ)n(t)g(of)g(the)523 706 y(sub)r(circuit,)h(as)f(the)h(outputs)g(of)g(the)g(t)n(w)n(o)f (addition)h(no)r(des)f(there.)h(Apart)f(from)h(these)523 805 y(addition)26 b(no)r(des,)g(it)g(adds)g(on)n(to)f(the)i(lo)n(w)n (er)d(la)n(y)n(ers)h(6)g(short)h(\(constan)n(t)f(length\))i(wires,)e(2) 523 905 y(constan)n(t-area)20 b(subtract-and-minimize)i(no)r(des)g (\(whic)n(h)h(ha)n(v)n(e)e(the)i(constan)n(t)f(threshold)523 1005 y FC(k)31 b FK(hardwired)26 b(in)n(to)h(them\),)i(and)e(2)h(long)e (wires.)606 1104 y(All)36 b(wires)f(in)h(la)n(y)n(ers)e FC(B)40 b FK(and)c(up)g(ha)n(v)n(e)e(constan)n(t)h(bandwidth)h FC(B)41 b FK(=)36 b FD(d)p FK(log\()p FC(k)27 b FK(+)d(1\))p FD(e)p FK(,)523 1204 y(su\016cien)n(t)32 b(to)f(carry)f(an)n(y)h(v)-5 b(alue)31 b(in)h(the)g(range)e FD(f)p FK(0)p FC(;)14 b FK(1)p FC(;)g(:)g(:)g(:)e(;)i(k)s FD(g)p FK(.)31 b(F)-7 b(or)31 b(the)h(b)r(ottom)g FC(B)25 b FD(\000)c FK(1)523 1303 y(la)n(y)n(ers,)f(where)h FD(j)p FC(s)p FD(j)i FC(>)f(l)8 b FD(\000)e FC(B)t FK(,)22 b FG(Cnt)1560 1315 y FA(k)1601 1303 y FK(\()p FC(s)p FK(\))g(sums)g(o)n(v)n(er)d(2)2142 1273 y FA(l)p Fw(\000j)p FA(s)p Fw(j)2312 1303 y FK(inputs,)j(hence)f (its)h(wires)f(can)g(do)523 1403 y(with)27 b(bandwidth)g FC(l)19 b FD(\000)d(j)p FC(s)p FD(j)h FK(+)f(1)22 b FD(\024)h FC(B)t FK(.)k(This)g(sho)n(ws)e(that)i(the)g(input)h(no)r(de)f(densit)n (y)f(is)h(not)523 1503 y(limited)j(so)e(m)n(uc)n(h)h(b)n(y)f(the)i (wire-width)f(as)f(b)n(y)g(the)i(size)e(of)h(the)h(non-input)f(no)r (des.)g(The)523 1602 y(width)35 b(a)n(v)-5 b(ailable)33 b(to)h(these)h(no)r(des)f(doubles)g(at)g(ev)n(ery)f(la)n(y)n(er,)g (while)h(their)h(n)n(um)n(b)r(er)f(of)523 1702 y(input)28 b(bits)g(increases)e(b)n(y)h(only)g(2.)g(Hence,)g(the)h(inputs)g(can)f (b)r(e)g(spaced)g FC(c\025)h FK(apart,)e(with)523 1802 y FC(c)g FK(a)f(small)g(constan)n(t)g(dep)r(ending)h(on)g(the)g (implemen)n(tation)f(of)h(the)g(non-input)g(no)r(des)f(in)523 1901 y(the)j(b)r(ottom)g(la)n(y)n(ers.)523 2060 y Fv(Theorem)k FH(4.1)41 b FG(F)-6 b(or)30 b(c)l(onstant)f FC(k)s FG(,)h FC(S)1730 2072 y FA(k)1800 2060 y FG(is)g(ener)l(gy)g(e\016cient.)523 2219 y Fv(Pr)n(oof.)19 b FK(T)-7 b(ak)n(e)18 b FG(Cnt)1162 2231 y FA(k)1222 2219 y FK(for)h(increasingly)f(larger)f FC(n)i FK(as)f(a)h(circuit)g(family)-7 b(.)20 b(Since)f(the)g(b)r (ottom)523 2319 y(la)n(y)n(er)j(has)h(depth)h(1)g(and)f(eac)n(h)g (additional)g(la)n(y)n(er)f(adds)h(only)h(2)f(to)h(the)g(depth,)g(the)g (depth)523 2418 y(of)31 b(the)h(en)n(tire)f(circuit)g(is)g(2)p FC(l)22 b FD(\000)f FK(1)28 b(=)h FC(O)r FK(\(log)15 b FC(n)p FK(\))32 b(as)e(required.)h(It)g(remains)g(to)g(sho)n(w)f (that)523 2518 y FC(E)584 2540 y FG(worst)790 2518 y FK(\()p FG(Cnt)964 2530 y FA(k)1005 2518 y FK(\))24 b(=)e FC(O)r FK(\()p FC(n)p FK(\).)27 b(The)f(no)r(des)g(ha)n(v)n(e)e(b)r (ounded)j(area,)d(since)i(they)g(ha)n(v)n(e)e(at)i(most)523 2617 y(2)p FC(B)31 b FK(input)e(bits.)f(The)f(total)h(n)n(um)n(b)r(er)f (of)h(no)r(des)f(in)h FG(Cnt)2303 2629 y FA(k)2344 2617 y FK(,)g(including)g(input)g(no)r(des,)g(is)1636 2715 y Fn(X)1624 2897 y Fw(j)p FA(s)p Fw(j)p FA()g(S)3126 4083 y FA(K)3190 4071 y FK(\()p FC(s)p FK(0\).)523 4170 y(Similarly)36 b(for)f(the)i(long)e(wire)h(ab)r(o)n(v)n(e)f FG(Cnt)1934 4182 y FA(k)1975 4170 y FK(\()p FC(s)p FK(1\).)i(More)e (generally)-7 b(,)35 b(if)h(the)h(long)e(wire)523 4270 y(running)k(directly)h(ab)r(o)n(v)n(e)e FG(Cnt)1548 4282 y FA(k)1589 4270 y FK(\()p FC(s)p FK(\))i(is)f(non-zero,)g(then)h FC(S)2452 4282 y FA(K)2516 4270 y FK(\()p FC(t)p FK(\))k FC(>)e(S)2812 4282 y FA(K)2876 4270 y FK(\()p FC(s)p FK(\))f(for)e(an)n(y)g FC(t)523 4369 y FK(whic)n(h)e(is)g(a)f(prop)r (er)g(pre\014x)g(of)h FC(s)p FK(.)g(No)n(w)f(imagine)g(an)n(y)g(v)n (ertical)g(cross-section)f(of)h(the)523 4469 y(circuit.)26 b(The)h(n)n(um)n(b)r(er)f(of)g(non-zero)f(long)g(wires)h(though)g(this) h(cross-section)d(is)i(then)h(at)523 4569 y(most)i FC(S)779 4581 y FA(K)843 4569 y FK(\()p FC(\017)p FK(\))h(whic)n(h)f(clearly)f (cannot)h(exceed)g FC(k)s FK(.)h(Th)n(us,)f(the)h(total)f(length)g(of)g (non-zero)523 4668 y(long)c(wires)h(is)g(b)r(ounded)g(b)n(y)g FC(k)j FK(times)d(the)h(width)f(of)h(the)f(circuit)g FG(Cnt)2747 4680 y FA(k)2787 4668 y FK(,)h(whic)n(h)f(is)g FC(k)s(nc\025)p FK(,)523 4768 y(and)32 b(the)h(area)e(in)n(v)n(olv)n (ed)g(is)h(no)g(more)g(than)g FC(B)t(\025)h FK(times)g(that.)f(With)i FC(k)s FK(,)p FC(c)p FK(,)p FC(B)t FK(,)e(and)g FC(\025)h FK(all)523 4868 y(b)r(eing)21 b(constan)n(t,)f(this)h(pro)n(v)n(es)d (that)j FC(E)5 b FK(\()p FG(Cnt)1908 4880 y FA(k)1949 4868 y FC(;)14 b(x;)g FK(0\))23 b(=)g FC(O)r FK(\()p FC(n)p FK(\))f(and)e(thereb)n(y)g(the)h(theorem.)523 4967 y Fu(2)606 5109 y FK(Since)27 b(adding)f(a)g(comparator)e(to)i FG(Cnt)1845 5121 y FA(k)1912 5109 y FK(adds)g(only)g(constan)n(t)g (area)f(and)h(1)g(to)g(depth,)523 5209 y(w)n(e)h(ha)n(v)n(e)523 5368 y Fv(Cor)n(ollar)-6 b(y)31 b FH(4.2)41 b FK(F)-7 b(or)27 b(constan)n(t)g FC(k)s FK(,)g FC(T)1798 5380 y FA(k)1866 5368 y FK(is)h(energy)e(e\016cien)n(t.)p eop end %%Page: 45 55 TeXDict begin 45 54 bop 2106 299 a FF(4.2.)53 b(W)-6 b(orst)25 b(case)i(upp)r(er)e(b)r(ounds)153 b(45)523 506 y FL(4.3)116 b(Conclusions)523 706 y FK(W)-7 b(e)30 b(ha)n(v)n(e)e(describ)r(ed)g(a)h(construction)g(that)g(yields)g(fast,) g(minim)n(um)h(energy)e(VLSI)i(cir-)523 805 y(cuits)k(to)g(compute)g (threshold)g(functions)g(and)g(to)g(coun)n(t)g(up)g(to)g(a)g(constan)n (t.)f(Energy)523 905 y(b)r(ounds)28 b(for)f(general)f(coun)n(ting)h (functions,)h(including)g(ma)5 b(jorit)n(y)-7 b(,)26 b(remain)h(op)r(en.)p eop end %%Page: 46 56 TeXDict begin 46 55 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Bibliograph)l(y)565 2516 y FK([1])41 b(Aggarw)n(al,)33 b(A.,)i(A.)h(Chandra,)e(P)-7 b(.)35 b(Ragha)n(v)-5 b(an,)34 b FG(Ener)l(gy)j(Consumption)g(in)g (VLSI)694 2615 y(Cir)l(cuits)p FK(,)28 b(Pro)r(ceedings)e(of)h(20th)g (A)n(CM)h(STOC,)f(Ma)n(y)g(1988,)f(pp.)i(205-216.)565 2771 y([2])41 b(Boro)r(din,)24 b(A.,)i FG(On)i(R)l(elating)f(Time)i (and)g(Sp)l(ac)l(e)f(to)g(Size)g(and)g(Depth)p FK(,)e(SIAM)g(Jour-)694 2871 y(nal)h(of)h(Computing,)f(V)-7 b(ol.)28 b(6,)f(No.)h(4,)f(Decem)n (b)r(er)g(1977,)f(pp.)i(733-744.)565 3026 y([3])41 b(Bren)n(t,)h(R.P)-7 b(.,)43 b(H.T.)h(Kung,)e FG(A)i(R)l(e)l(gular)g(L)l(ayout)g(for)h(Par)l (al)t(lel)h(A)l(dders)p FK(,)d(IEEE)694 3126 y(T)-7 b(ransactions)25 b(on)j(Computers,)f(V)-7 b(ol.)28 b(C-31,)e(No.)h(3,)h(Marc)n(h)e (1982,)g(pp.)i(260-264.)565 3282 y([4])41 b(Bren)n(t,)26 b(R.P)-7 b(.,)27 b(H.T.)g(Kung,)f("The)h(Area-Time)e(Complexit)n(y)i (of)f(Binary)g(Multipli-)694 3381 y(cation",)g(JA)n(CM,)i(V)-7 b(ol.)27 b(28,)g(No.)h(3,)f(July)g(1981,)f(pp.)i(521-534.)565 3537 y([5])41 b(Kissin,)19 b(G.,)h FG(Upp)l(er)j(and)g(L)l(ower)g (Bounds)g(on)f(Switching)h(Ener)l(gy)g(in)g(VLSI)p FK(,)c(JA)n(CM,)694 3637 y(V)-7 b(ol.)27 b(38,)g(No.)h(1,)f(Jan)n(uary)f(1991.)565 3792 y([6])41 b(Kissin,)31 b(G.,)h FG(Mo)l(dels)k(of)e(Multiswitch)h (Ener)l(gy)p FK(,)e(CWI)f(Quarterly)-7 b(,)31 b(V)-7 b(ol.)32 b(3,)f(No.)h(1,)694 3892 y(Marc)n(h)26 b(1990,)g(pp.)i(45-66.) 565 4048 y([7])41 b(Kissin,)27 b(G.,)h FG(Mo)l(deling)j(Ener)l(gy)f (Consumption)g(in)g(VLSI)f(Cir)l(cuits)p FK(,)f(PhD)g(Thesis,)694 4147 y(Departmen)n(t)f(of)h(Computer)f(Science,)h(Univ)n(ersit)n(y)e (of)i(T)-7 b(oron)n(to,)26 b(1987.)565 4303 y([8])41 b(Kissin,)30 b(G.,)g FG(F)-6 b(unctional)33 b(Bounds)f(on)h(Switching)g (Ener)l(gy)p FK(,)e(Pro)r(ceedings)d(of)j(1985)694 4403 y(Chap)r(el)j(Hill)h(Conference)f(on)g(V)-7 b(ery)34 b(Large)e(Scale)i(In)n(tegration,)f(Ma)n(y)h(1985,)e(pp.)694 4502 y(181-196.)565 4658 y([9])41 b(Kissin,)30 b(G.,)h FG(Me)l(asuring)i(Ener)l(gy)g(Consumption)g(in)f(VLSI)g(Cir)l(cuits:)i (a)f(F)-6 b(ounda-)694 4758 y(tion)p FK(,)28 b(Pro)r(ceedings)d(of)j (14th)f(A)n(CM)h(STOC,)f(Ma)n(y)g(1982,)f(pp.)i(99-104.)523 4913 y([10])41 b(Krohn,)31 b(K.,)h(J.)g(Rho)r(des,)g("Algebraic)f (Theory)g(of)i(Mac)n(hines.)e(I.)i(Prime)e(Decom-)694 5013 y(p)r(osition)h(Theorem)f(for)h(Finite)h(Semigroups)e(and)h(Mac)n (hines",)f(T)-7 b(ransactions)31 b(of)694 5113 y(American)c (Mathematical)g(So)r(ciet)n(y)-7 b(,)27 b(V)-7 b(ol.)28 b(116,)e(1965,)g(pp.)i(450-464.)523 5268 y([11])41 b(Krohn,)31 b(K.,)i(J.)f(Rho)r(des,)h FG(R)l(esults)g(on)i(Finite)g(Semigr)l(oups)p FK(,)e(Pro)r(ceedings)e(of)h(the)694 5368 y(National)27 b(Academ)n(y)g(of)g(Science,)h(USA,)g(V)-7 b(ol.)28 b(53,)f(1965,)f (pp.)i(499-501.)p eop end %%Page: 47 57 TeXDict begin 47 56 bop 2559 299 a FF(4.3.)53 b(Conclusions)155 b(47)523 506 y FK([12])41 b(Leo,)19 b(J.,)h FG(Ener)l(gy)k(Complexity)g (in)f(VLSI)p FK(,)d(M.S.)g(Thesis,)g(Univ)n(ersit)n(y)f(of)h(Nymequen,) 694 606 y(The)27 b(Netherlands,)h(F)-7 b(ebruary)26 b(1984.)523 772 y([13])41 b(Lengauer,)35 b(T.,)h(K.)g(Mehlhorn,)g FG(On)h(the)h(Complexity)h(of)g(VLSI)e(Computations)p FK(,)694 872 y(Pro)r(ceedings)22 b(of)j(CMU)g(Conference)e(on)h(VLSI,)h (Computer)f(Science)h(Press,)e(Octo-)694 971 y(b)r(er)k(1981,)f(pp.)i (89-99.)523 1137 y([14])41 b(Mead,)f(C.,)h(L.)g(Con)n(w)n(a)n(y)-7 b(,)40 b(In)n(tro)r(duction)g(to)h(VLSI)g(Systems,)g(Addison-W)-7 b(esley)g(,)694 1237 y(1980.)523 1403 y([15])41 b(Mead,)27 b(C.,)h(priv)-5 b(ate)27 b(comm)n(unication)523 1569 y([16])41 b(Sn)n(yder,)g(L.,)h(A.)g(T)n(y)n(agi,)e FG(The)j(Ener)l(gy)g (Complexity)h(of)g(T)-6 b(r)l(ansitive)43 b(F)-6 b(unctions)p FK(,)694 1669 y(Pro)r(ceedings)24 b(of)j(24th)f(Allerton)g(Conference)g (on)g(Comm)n(unication,)g(Con)n(trol)f(and)694 1768 y(Computing,)i (Octob)r(er)g(1986,)f(pp.)i(562-572.)523 1934 y([17])41 b(Thompson,)19 b(C.,)g FG(A)j(Complexity)i(The)l(ory)g(for)f(VLSI)p FK(,)c(PhD)h(Thesis,)f(Dept.)i(of)e(Com-)694 2034 y(puter)27 b(Science,)h(Carnegie-Mellon)e(Univ)n(ersit)n(y)-7 b(,)26 b(1980.)523 2200 y([18])41 b(T)n(y)n(agi,)35 b(A.,)j FG(Ener)l(gy)h(Complexity)h(of)f(L)l(o)l(gic)h(L)l(evel)f(Structur)l (es,)c FK(Pro)r(ceedings)h(of)694 2300 y(Stanford)27 b(Conference)g(on)g(Adv)-5 b(anced)28 b(Researc)n(h)e(in)i(VLSI,")f (MIT)h(Press,)e(1987.)523 2466 y([19])41 b(V)-7 b(uillemin,)36 b(J.,)g FG(A)h(Combinatorial)j(Limit)d(to)h(the)f(Computing)h(Power)g (of)g(VLSI)694 2565 y(Cir)l(cuits)p FK(,)e(IEEE)e(T)-7 b(ransactions)33 b(on)i(Computers,)g(V)-7 b(ol.)36 b(C-30,)e(No.)i(2,)f (1983,)e(pp.)694 2665 y(135-140.)p eop end %%Page: 48 58 TeXDict begin 48 57 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(5)523 806 y FI(Asso)t(ciativ)l(e)52 b(Storage)g(Mo)t(di\014cation)523 972 y(Mac)l(hines)523 2549 y FL(5.1)116 b(In)m(tro)s(duction)523 2748 y FK(The)30 b(Storage)d(Mo)r(di\014cation)j(Mac)n(hine)f(\()p FG(SMM)14 b FK(\))30 b(is)f(a)g(mac)n(hine)g(mo)r(del)h(in)n(tro)r(duced)f(b)n(y) 523 2848 y(Sc)n(h\177)-42 b(onhage)38 b(in)i(1977)d([16)o(].)j(The)f (mo)r(del)h(has)e(its)i(predecessor)d(in)j(the)g(Kolmogoro)n(v-)523 2947 y(Usp)r(enskii)28 b(mac)n(hine)f(\()p FG(KUM)14 b FK(\))28 b([10)o(].)g(Sc)n(h\177)-42 b(onhage)27 b(adv)n(o)r(cates)f (his)i(mo)r(del)g(as)f FG(a)j(mo)l(del)h(of)523 3047 y(extr)l(eme)e(\015exibility)7 b FK(.)606 3147 y(The)35 b(mo)r(del)f(resem)n(bles)g(the)h(Random)f(Access)g(Mac)n(hine)g(\()p FG(RAM)13 b FK(\))35 b([1])g(as)e(far)h(as)g(it)523 3246 y(has)39 b(a)h(stored)e(program)g(and)i(a)f(p)r(oten)n(tially)h (in\014nite)g(memory)f(structure)g(where)g(it)523 3346 y(stores)20 b(its)i(data.)f(Whereas)g(the)h FG(RAM)35 b FK(uses)21 b(an)g(in\014nite)h(sequence)f(of)h(storage)d(registers,) 523 3445 y(eac)n(h)35 b(capable)f(of)h(storing)g(an)g(arbitrarily)e (large)h(in)n(teger,)h(the)g FG(SMM)50 b FK(op)r(erates)34 b(on)h(a)523 3545 y(directed)18 b(graph)g(b)n(y)g(creating)f(no)r(des)h (and)g(\(re\)directing)g(p)r(oin)n(ters.)g(The)g(main)h(di\013erence) 523 3645 y(b)r(et)n(w)n(een)37 b(the)g FG(SMM)51 b FK(and)37 b(the)h FG(KUM)50 b FK(is)37 b(that)g(the)h FG(KUM)50 b FK(op)r(erates)36 b(on)h(undirected)523 3744 y(instead)27 b(of)h(directed)g(graphs.)606 3844 y(W)-7 b(e)21 b(can)g(appro)n (ximately)e(mo)r(del)i(an)g FG(SMM)35 b FK(b)n(y)21 b(a)g(P)n(ascal)e (program)g(that)i(uses)f(records)523 3944 y(of)28 b(p)r(oin)n(ters)f (to)g(records)f(to)h(describ)r(e)h(the)g(directed)f(graph)2418 3913 y FB(1)2454 3944 y FK(:)523 4101 y FH(t)m(yp)s(e)32 b FK(p)r(oin)n(ter)27 b(=)h(^no)r(de;)739 4200 y(no)r(de)113 b(=)28 b FH(record)g FK(a,b:)f(p)r(oin)n(ter)h FH(end)p FK(;)523 4300 y FH(v)-5 b(ar)86 b FK(head)115 b(:)70 b(p)r(oin)n(ter;)606 4457 y(In)39 b(con)n(trast)f(with)h(P)n(ascal,)f (p)r(oin)n(ters)g(are)g(not)h(allo)n(w)n(ed)f(to)g(b)r(e)i FG(nil)48 b FK(or)38 b(unde\014ned;)523 4556 y(they)26 b(m)n(ust)h(alw)n(a)n(ys)d(p)r(oin)n(t)i(to)g(some)g(no)r(de.)g(The)g (\(\014nite\))h(set)f(of)h(p)r(oin)n(ter)e(names,)h(in)g(the)523 4656 y(example)36 b FD(f)p FC(a;)14 b(b)p FD(g)p FK(,)34 b(is)i(called)f(the)i FG(alphab)l(et)g FK(of)f FG(dir)l(e)l(ctions)p FK(,)h(denoted)f(\001.)g(The)g(p)r(oin)n(ters)523 4756 y(in)f(the)g(graph)f(are)g(lab)r(eled)g(with)i(the)f(elemen)n(ts)f(of)h (\001)g(suc)n(h)g(that)g(eac)n(h)f(no)r(de)g(in)h(the)523 4855 y(digraph)i(has,)g(for)h(eac)n(h)f(direction)h FC(\016)43 b FD(2)e FK(\001,)d(exactly)f(one)h(outgoing)e FC(\016)s FK(-p)r(oin)n(ter.)i(The)523 4955 y(graph)f(th)n(us)g(has)h(regular)e (outdegree)g FD(j)p FK(\001)p FD(j)p FK(.)i(T)-7 b(o)38 b(complete)f(the)h(analogy)e(b)r(et)n(w)n(een)i(an)p 523 5079 499 5 v 627 5161 a Fm(1)661 5193 y FF(In)28 b(P)n(ascal)i Fe(^T)e FF(denotes)h(the)f(t)n(yp)r(e)f(`p)r(oin)n(ter)i (to)f(T';)h(a)g(v)l(alue)f(of)h(this)f(t)n(yp)r(e)g(is)g(the)g(address) 523 5276 y(of)d(an)f(ob)t(ject)h(of)g(t)n(yp)r(e)e(T.)i(Indirection)f (through)f(a)i(p)r(oin)n(ter)f(is)g(written)h(as)f Fe(p^)p FF(,)h(whic)n(h)f(refers)h(to)523 5359 y(the)g(ob)t(ject)i(at)f(whic)n (h)f(p)h(p)r(oin)n(ts.)p eop end %%Page: 49 59 TeXDict begin 49 58 bop 2536 299 a FF(5.1.)53 b(In)n(tro)r(duction)153 b(49)523 506 y FG(SMM)36 b FK(and)21 b(a)g(P)n(ascal)e(program,)h(the)h (latter)h(m)n(ust)f(b)r(e)h(restricted)f(to)g(the)h(use)f(of)g(only)g (one)523 606 y(v)-5 b(ariable;)19 b(the)h(p)r(oin)n(ter)f Fk(head)p FK(.)f(By)i(rep)r(eated)f(application)g(of)g(the)i(P)n(ascal) c Fk(new)i FK(statemen)n(t,)523 706 y(the)33 b(program)d(can)i(create)f (an)h(arbitrarily)e(large)h(data)h(structure.)g(This)g(is)g(addressed) 523 805 y(with)25 b(expressions)f(lik)n(e)g Fk(head^.b^.a^.b^.b^)o(.a)o FK(.)19 b(Similarly)-7 b(,)25 b(the)g FG(SMM)39 b FK(addresses)24 b(its)523 905 y(storage)39 b(with)h(w)n(ords)g(\(strings\))g(o)n(v)n (er)e(\001,)j(lik)n(e)f FC(babba)p FK(.)f(In)i(the)g FG(SMM)54 b FK(mo)r(del,)41 b(there)523 1005 y(is)33 b(only)h(a)f(conceptual)g(head)g(p)r(oin)n(ter|at)g(an)n(y)g(time,)h (one)f(no)r(de,)h(call)f(the)h FG(c)l(enter)p FK(,)f(is)523 1104 y(distinguished)27 b(as)g(the)g(one)g(from)g(where)f(addressing)g (starts.)g(Th)n(us)h(the)h(cen)n(ter,)e(whose)523 1204 y(iden)n(tit)n(y)i(can)g(c)n(hange)e(dynamically)-7 b(,)28 b(is)f(addressed)g(b)n(y)h(the)g(empt)n(y)g(w)n(ord)f FC(\017)p FK(,)h(and)f(other)523 1303 y(no)r(des)g(are)g(addressed)f(b) n(y)i(follo)n(wing)e(p)r(oin)n(ters)h(starting)g(from)g(the)h(cen)n (ter.)606 1403 y(It)d(has)f(b)r(een)h(established)f(that)h(from)g(the)g (p)r(ersp)r(ectiv)n(e)f(of)h(computational)f(complex-)523 1503 y(it)n(y)33 b(theory)g(the)g FG(SMM)48 b FK(\(if)34 b(equipp)r(ed)f(with)h(the)f(correct)f(space)h(measure)f([12)o(,)h(21)o (]\))h(is)523 1602 y(computationally)f(equiv)-5 b(alen)n(t)34 b(to)g(the)g(other)g(standard)f(sequen)n(tial)g(mac)n(hine)h(mo)r(dels) 523 1702 y(lik)n(e)c(the)h(T)-7 b(uring)30 b(mac)n(hine)g(and)h(the)g FG(RAM)13 b FK(.)31 b(This)f(equiv)-5 b(alence)30 b(amoun)n(ts)g(to)h (the)g(fact)523 1802 y(that)37 b(these)g(mo)r(dels)g(sim)n(ulate)g(eac) n(h)f(other)g(with)h(p)r(olynomially)g(b)r(ounded)g(o)n(v)n(erhead)523 1901 y(in)i(time)g(and)f(constan)n(t)g(factor)f(o)n(v)n(erhead)g(in)h (space,)g(th)n(us)h(satisfying)e(the)i(so-called)523 2001 y FG(invarianc)l(e)31 b(thesis)k FK([17)o(,)28 b(22)o(].)606 2100 y(F)-7 b(or)24 b(most)h(sequen)n(tial)f(mo)r(dels)g(there)h(ha)n (v)n(e)e(b)r(een)i(prop)r(osed)f(parallel)g(mac)n(hine)g(mo)r(d-)523 2200 y(els)19 b(based)g(on)h(the)g(classical)e(sequen)n(tial)h(v)n (ersion.)f(F)-7 b(or)19 b(the)h(T)-7 b(uring)19 b(mac)n(hine)g(Sa)n (vitc)n(h)g([15)o(])523 2300 y(has)27 b(prop)r(osed)g(a)g(parallel)g(v) n(ersion)f(based)h(on)g(parallel)g(recursiv)n(e)f(branc)n(hing;)g(a)i (mo)r(del)523 2399 y(based)33 b(on)g(nondeterministic)g(forking)f(on)h (a)g(shared)f(set)h(of)h(tap)r(es)f(w)n(as)f(describ)r(ed)h(b)n(y)523 2499 y(Wiedermann)d([24)o(,)g(25)o(],)g(but)h(this)f(mo)r(del)h(turns)e (out)h(to)g(b)r(e)h(p)r(olynomially)e(equiv)-5 b(alen)n(t)523 2599 y(in)33 b(time)h(and)f(space)f(with)i(the)f(standard)g(sequen)n (tial)f(devices.)h(The)g(ric)n(hness)f(of)h(par-)523 2698 y(allel)i(mo)r(dels)f(based)h(on)f(the)h FG(RAM)49 b FK(is)34 b(ev)n(en)h(m)n(uc)n(h)f(greater,)g(whic)n(h)g(mak)n(es)g (it)h(hard,)523 2798 y(if)i(not)f(imp)r(ossible)h(to)f(refer)f(to)i(a)f (small)g(set)g(of)g(represen)n(tativ)n(e)f(mo)r(dels.)h(There)g(are)523 2897 y(mo)r(dels)25 b(based)f(on)g(shared)f(memory)h(and)h(alternativ)n (e)e(mo)r(dels)h(based)g(on)h(lo)r(cal)f(storage)523 2997 y(and)37 b(message)f(passing.)h(Hybrid)g(com)n(binations)f(o)r (ccur)h(as)g(w)n(ell.)g(Within)h(eac)n(h)f(class)523 3097 y(there)c(exist)g(more)f(re\014ned)h(distinctions)g(lik)n(e)f(the) i(resolution)d(strategy)h(for)g(resolving)523 3196 y(write)c (con\015icts)g(in)g(shared)f(memory)g(mo)r(dels,)h(the)h(a)n(v)-5 b(ailable)26 b(arithmetic)i(instructions)523 3296 y(and)e(the)g(mec)n (hanism)f(for)g(restricting)g(the)h(n)n(um)n(b)r(er)g(of)g(pro)r (cessors)d(activ)-5 b(ated)26 b(during)f(a)523 3396 y(computation.)h (Moreo)n(v)n(er,)d(there)j(exist)g(sequen)n(tial)f(mo)r(dels)h(whic)n (h)g(b)r(ecome)f(computa-)523 3495 y(tionally)e(equiv)-5 b(alen)n(t)24 b(to)g(parallel)e(mo)r(dels)i(due)g(to)g(their)g(p)r(o)n (w)n(er)f(to)g(create)g(and)h(manipu-)523 3595 y(late)j(exp)r(onen)n (tially)g(large)f(v)-5 b(alues)27 b(in)g(a)g(linear)f(n)n(um)n(b)r(er)h (of)h(steps)f(in)g(the)h(uniform)f(time)523 3694 y(measure.)36 b(Also,)g(b)n(y)g(exploiting)g(the)h(alternating)e(mo)r(de)i(of)f (computation)g([5],)g(some)523 3794 y(standard)26 b(sequen)n(tial)h (devices)f(b)r(ecome)h(computationally)g(equiv)-5 b(alen)n(t)26 b(to)h(the)h(parallel)523 3894 y(mac)n(hines.)606 3993 y(F)-7 b(or)33 b(a)h(more)f(detailed)h(surv)n(ey)e(of)i(parallel)f(mo)r (dels)h(w)n(e)f(refer)g(to)h([20)o(,)g(22)o(].)g(F)-7 b(or)33 b(the)523 4093 y(purp)r(ose)j(of)h(the)g(presen)n(t)f(exp)r (osition,)g(it)h(su\016ces)g(to)f(giv)n(e)g(some)g(impression)g(of)g (the)523 4193 y(o)n(v)n(erall)25 b(landscap)r(e)i(of)h(parallel)e(mac)n (hine)i(mo)r(dels.)606 4292 y(It)j(turns)g(out)g(that)h(most)f (parallel)e(mo)r(dels)i(prop)r(osed)f(in)i(the)f(literature)f(b)r (elong)h(to)523 4392 y(the)g(so-called)d FG(Se)l(c)l(ond)k(Machine)i (Class)k FK(consisting)29 b(of)h(mac)n(hine)g(mo)r(dels)g(whic)n(h)g (ob)r(ey)523 4491 y(the)k FG(Par)l(al)t(lel)j(Computation)f(Thesis)7 b FK(.)35 b(This)e(thesis)h(expresses)e(that)h(the)h(class)f(of)g(lan-) 523 4591 y(guages)d(recognized)g(in)i(nondeterministic)f(p)r(olynomial) g(time)h(on)g(the)g(parallel)e(device)523 4691 y(is)f(equal)f(to)g(the) h(class)f FG(PSP)-6 b(A)n(CE)39 b FK(of)28 b(languages)f(recognized)g (in)i(p)r(olynomial)f(space)g(on)523 4790 y(a)d(sequen)n(tial)f (device.)h(Con)n(v)n(ersely)e(all)i(languages)f(in)h FG(PSP)-6 b(A)n(CE)36 b FK(are)24 b(recognized)g(in)h(de-)523 4890 y(terministic)d(p)r(olynomial)f(time)h(on)f(the)h(parallel)e(mac)n (hine.)h(In)h(our)f(reading)f(the)i(P)n(arallel)523 4990 y(Computation)k(Thesis)f(en)n(tails)h(the)g(equiv)-5 b(alence)25 b(of)h(deterministic)g(and)g(nondetermin-)523 5089 y(istic)20 b(p)r(olynomial)f(time)h(on)f(the)h(parallel)f(mo)r (del.)g(The)h(mo)r(dels)g(for)f(whic)n(h)g(the)h(thesis)g(w)n(as)523 5189 y(originally)h(form)n(ulated)i(ob)r(ey)g(this)g(more)f(restricted) h(thesis)g(as)f(w)n(ell.)h(And)h(indeed)f(those)523 5289 y(mo)r(dels)k(for)g(whic)n(h)h(nondeterministic)f(p)r(olynomial)g(time) h(seems)f(to)g(exceed)g FG(PSP)-6 b(A)n(CE)p eop end %%Page: 50 60 TeXDict begin 50 59 bop 2536 299 a FF(5.1.)53 b(In)n(tro)r(duction)153 b(50)523 506 y FK(no)n(w)n(ada)n(ys)25 b(are)i(held)h(to)f(b)r(e)h (more)f(p)r(o)n(w)n(erful.)606 606 y(Not)37 b(all)g(parallel)e(mo)r (dels)i(ob)r(ey)g(the)g(ab)r(o)n(v)n(e)f(parallel)f(computation)i (thesis.)g(Some)523 706 y(w)n(eak)24 b(mo)r(dels)h(turn)g(out)g(to)g(b) r(e)h(p)r(olynomial)e(time)h(equiv)-5 b(alen)n(t)25 b(to)g(the)h (sequen)n(tial)e(mo)r(d-)523 805 y(els)40 b(\(the)i(parallel)d(T)-7 b(uring)40 b(mac)n(hine)g(prop)r(osed)g(b)n(y)g(Wiedermann,)g(and)h (its)f(equiv)-5 b(a-)523 905 y(len)n(ts)34 b([24)o(,)f(25)o(])h(b)r (eing)g(a)f(t)n(ypical)g(example\).)h(Other)f(mo)r(dels,)g(lik)n(e)h (the)g FG(P)o FD(\000)-9 b FG(RAM)46 b FK(pre-)523 1005 y(sen)n(ted)36 b(b)n(y)f(F)-7 b(ortune)35 b(and)h(Wyllie)g([7)o(])g (deviate)f(from)h(the)g(thesis)f(b)n(y)g(recognizing)f(ex-)523 1104 y(p)r(onen)n(tially)h(time)h(b)r(ounded)f(languages)f(in)h(p)r (olynomial)g(nondeterministic)g(time)h(on)523 1204 y(the)26 b(parallel)f(device;)h(some)f(parallel)g(devices)h(ev)n(en)f(recognize) g(arbitrary)e(languages)h(in)523 1303 y(constan)n(t)j(time)h([13)o(].)g (The)f(second)g(mac)n(hine)g(class)f(therefore)h(represen)n(ts)f(a)h (frequen)n(tly)523 1403 y(o)r(ccurring)f(v)n(ersion)g(of)i(the)g(p)r(o) n(w)n(er)f(of)g(uniform)h(unrestricted)f(parallelism)g(rather)g(than) 523 1503 y(the)i(union)g(of)f(all)h(p)r(ossible)f(parallel)g(mac)n (hine)g(mo)r(dels.)g(Second)h(mac)n(hine)f(class)g(mem-)523 1602 y(b)r(ers)c(can)h(b)r(e)g(c)n(haracterized)d(as)i(pro)n(viding)g (the)h(righ)n(t)f(mixture)g(of)h(exp)r(onen)n(tial)f(gro)n(wth)523 1702 y(p)r(oten)n(tial)19 b(together)f(with)h(the)h(prop)r(er)e(degree) g(of)h(uniformit)n(y)-7 b(.)19 b(The)g(exp)r(onen)n(tial)f(gro)n(wth) 523 1802 y(p)r(oten)n(tial)25 b(is)g(required)g(for)f(the)i(implemen)n (tation)g(of)f(the)g(transitiv)n(e)g(closure)f(algorithm)523 1901 y(on)29 b(a)f(directed)h(graph)f(of)h(exp)r(onen)n(tial)f(size)h (\(whic)n(h)g(mo)r(dels)g(the)g(computation)g(graph)523 2001 y(of)j(some)g FG(PSP)-6 b(A)n(CE)11 b FK(-b)r(ounded)32 b(mac)n(hine\),)h(or)e(the)i(direct)f(solution)g(of)h(the)g FG(PSP)-6 b(A)n(CE)10 b FK(-)523 2100 y(complete)40 b(problem)f FG(QBF)51 b FK(in)40 b(p)r(olynomial)f(time.)h(The)g(uniformit)n(y)f (is)h(required)e(for)523 2200 y(p)r(erforming)28 b(the)i(sim)n(ulation) e(of)h(a)g(p)r(olynomial-time)f(computation)h(of)g(the)h(nondeter-)523 2300 y(ministic)e(v)n(ersion)e(of)h(the)h(parallel)e(mac)n(hine)h(in)h (p)r(olynomial)f(space.)g(See)g([22)o(])h(for)f(more)523 2399 y(details)33 b(on)f(the)h(standard)f(strategies)f(for)h(pro)n (ving)f(mem)n(b)r(ership)i(in)g(the)g(second)f(ma-)523 2499 y(c)n(hine)c(class.)606 2599 y(In)k(this)f(c)n(hapter)g(w)n(e)g (prop)r(ose)f(\(as)h(far)g(as)g(w)n(e)g(kno)n(w)f(for)h(the)h(\014rst)f (time\))h(a)f(parallel)523 2698 y(v)n(ersion)f(of)h(the)g(storage)f(mo) r(di\014cation)h(mac)n(hine)f(whic)n(h)i(b)r(elongs)e(to)h(the)h (second)e(ma-)523 2798 y(c)n(hine)k(class.)f(T)-7 b(o)33 b(our)g(kno)n(wledge)g(few)h(parallel)f(v)n(ersions)f(of)h(p)r(oin)n (ter)h(mac)n(hines)f(ha)n(v)n(e)523 2897 y(b)r(een)38 b(in)n(v)n(estigated)f(in)g(the)h(complexit)n(y)f(theory)g(literature.) g(The)h(earliest)f(reference)523 2997 y(kno)n(wn)27 b(to)h(us)f (concerns)g(a)g(parallel)g(v)n(ersion)f(of)i(the)g(Kolmogoro)n(v-Usp)r (enskii)c(mac)n(hine)523 3097 y(whic)n(h)k(w)n(as)f(prop)r(osed)f(b)n (y)i(Barzdin)f([2,)g(3].)h(This)g(mac)n(hine)f(op)r(erates)g(lik)n(e)g (an)h(irregular)523 3196 y(cellular)c(arra)n(y)e(of)i(\014nite)h(state) f(automata)g(in)g(a)g(graph)g(whic)n(h)g(is)g(dynamically)g(c)n(hanged) 523 3296 y(b)n(y)33 b(the)i(individual)e(no)r(des)h(in)n(teracting)f (with)h(their)f(neigh)n(b)r(ourho)r(o)r(d.)g(A)h(single)f(com-)523 3396 y(putation)26 b(step)h(resem)n(bles)e(a)h(parallel)f(rewrite)g (step)i(in)f(a)g(graph)f(grammar)f(deriv)-5 b(ation.)523 3495 y(In)26 b(this)h(mo)r(del)f(all)g(no)r(des)f(are)g(activ)n(e)h(in) g(ev)n(ery)f(computation)g(step;)i(if)f(their)g(neigh)n(b)r(or-)523 3595 y(ho)r(o)r(d)i(matc)n(hes)g(the)h(pattern)f(required)g(b)n(y)g (the)h(instruction)f(the)h(no)r(de)f(will)h(transform)523 3694 y(its)j(en)n(vironmen)n(t.)f(The)h(Hardw)n(are)d(Mo)r (di\014cation)j(Mac)n(hine)f(\()p FG(HMM)14 b FK(\))33 b(in)n(tro)r(duced)e(b)n(y)523 3794 y(Dymond)23 b(and)f(Co)r(ok)g([6])g (b)r(eha)n(v)n(es)g(in)h(a)f(similar)g(w)n(a)n(y)-7 b(.)21 b(This)i(mo)r(del)g(indeed)g(has)f(b)r(een)h(in-)523 3894 y(v)n(estigated)e(for)g(its)h(complexit)n(y)f(b)r(eha)n(vior.)g(F) -7 b(rom)21 b(Lam)g(and)h(Ruzzo)f([11])g(it)i(follo)n(ws)d(that)523 3993 y(the)k(mac)n(hine)f(is)h(equiv)-5 b(alen)n(t)23 b(with)h(constan)n(t)f(factor)g(time)h(o)n(v)n(erheads)d(with)j(a)f (restricted)523 4093 y(v)n(ersion)e(of)h(the)g FG(P)o FD(\000)-9 b FG(RAM)36 b FK(of)22 b(F)-7 b(ortune)22 b(and)g(Wyllie.)h(F)-7 b(rom)21 b(this)i(result)f(one)g(can)f(observ)n (e)523 4193 y(that)35 b(the)f FG(HMM)49 b FK(represen)n(ts)32 b(another)i(example)g(of)g(the)g(class)g(of)g(devices)g(whic)n(h)g(are) 523 4292 y(lo)r(cated)25 b(b)r(ey)n(ond)g(the)h(second)f(mac)n(hine)g (class)f(-)h(its)h(nondeterministic)f(v)n(ersion)f(accepts)523 4392 y FG(NEXPTIME)39 b FK(in)28 b(p)r(olynomial)f(time.)606 4491 y(The)19 b(computational)g(p)r(o)n(w)n(er)f(of)h(our)f FG(ASMM)34 b FK(mo)r(del)19 b(originates)f(from)g(the)i(p)r(ossibilit)n (y)523 4591 y(of)37 b(tra)n(v)n(ersing)c(p)r(oin)n(ters)j(in)h(their)g FG(r)l(everse)43 b FK(order.)35 b(By)h(using)h(rev)n(erse)d (directions,)i(an)523 4691 y FG(ASMM)g FK(can)21 b(address,)f(from)i(a) f(giv)n(en)g(no)r(de)g FC(x)p FK(,)i(all)e(the)h(no)r(des)f(that)h(are) f(asso)r(ciated)f(with)523 4790 y FC(x)28 b FK(b)n(y)g(p)r(oin)n(ting)g (to)f FC(x)i FK(\(hence)f(the)g(name)1819 4760 y FB(2)1856 4790 y FK(\).)g(More)f(than)h(one)g(no)r(de)g(can)f(b)r(e)h(reac)n(hed) f(on)523 4890 y(a)j(path)g(b)n(y)g(tra)n(v)n(ersing)d(p)r(oin)n(ters)i (in)i(the)f(rev)n(erse)e(direction.)i(Note)g(that)g(at)g(this)h(p)r (oin)n(t)523 4990 y(it)i(is)e(crucial)h(that)g(w)n(e)g(ha)n(v)n(e)f (based)g(ourselv)n(es)f(on)i(the)h FG(SMM)46 b FK(rather)31 b(than)h(the)h(older)523 5089 y FG(KUM)h FK(mo)r(del;)21 b(in)g(an)g(undirected)g(graph)e(tra)n(v)n(ersing)f(p)r(oin)n(ters)i (in)h(the)g(rev)n(erse)e(direction)p 523 5209 499 5 v 627 5291 a Fm(2)661 5323 y FF(compare)27 b(with)f Fg(c)l(ontent-addr)l (essable)32 b(asso)l(ciative)d(memory)p eop end %%Page: 51 61 TeXDict begin 51 60 bop 2536 299 a FF(5.1.)53 b(In)n(tro)r(duction)153 b(51)523 506 y FK(mak)n(es)27 b(no)g(sense.)606 606 y(As)e(in)h(the)f (standard)g FG(SMM)39 b FK(mo)r(del)26 b(the)f(\014nite)h(con)n(trol)e (accesses)g(the)h(storage)e(struc-)523 706 y(ture)e(b)n(y)g(means)f(of) i(a)e(single)h(cen)n(ter)f(no)r(de.)h(The)h(p)r(o)n(w)n(er)e(of)h(tra)n (v)n(ersing)d(rev)n(ersed)h(p)r(oin)n(ters)523 805 y(is)27 b(used)g(only)f(in)h(t)n(w)n(o)f(t)n(yp)r(es)h(of)g(instructions:)f (the)i FG(new)36 b FK(and)26 b(the)h FG(set)35 b FK(instruction.)27 b(The)523 905 y(\014rst)h(argumen)n(t)f(of)h(the)h(ab)r(o)n(v)n(e)d(t)n (w)n(o)i(instructions)f(is)h(a)g(path)g(whic)n(h)h(no)n(w)e(ma)n(y)g (con)n(tain)523 1005 y(rev)n(erse)e(p)r(oin)n(ters.)i(This)g(path)g (therefore)f(no)h(longer)f(denotes)h(a)g(single)f(no)r(de)h(but)h(a)f (set)523 1104 y(of)c(no)r(des)f(\(whic)n(h)h(in)g(fact)g(ma)n(y)f(b)r (e)h(empt)n(y\).)g(The)g(action)f(describ)r(ed)g(b)n(y)h(the)g (instruction)523 1204 y(no)n(w)f(will)h(b)r(e)g(p)r(erformed)g(for)f (all)h(no)r(des)f(in)h(this)g(set)g(in)g(parallel.)f(The)h(second)f (argumen)n(t)523 1303 y(of)34 b(the)g FG(set)41 b FK(instruction)34 b(is)g(required)f(to)g(b)r(e)h(a)g(path)g(consisting)f(of)g(forw)n(ard) f(p)r(oin)n(ters)523 1403 y(only;)25 b(it)g(therefore)f(alw)n(a)n(ys)f (denotes)h(a)h(single)f(no)r(de.)h(Therefore)f(the)h(action)f(p)r (erformed)523 1503 y(b)n(y)j(the)h(t)n(w)n(o)f(instructions)g(ab)r(o)n (v)n(e)g(is)g(deterministic.)606 1602 y(Our)38 b(mo)r(del)h(ma)n(y)f(b) r(e)h(considered)f(to)h(b)r(e)g(a)f(mem)n(b)r(er)h(of)g(the)g(class)f (of)g(sequen)n(tial)523 1702 y(mac)n(hines)23 b(whic)n(h)h(op)r(erate)f (on)g(large)g(ob)5 b(jects)23 b(in)h(unit)g(time)g(and)g(obtain)g (their)f(p)r(o)n(w)n(er)g(of)523 1802 y(parallelism)28 b(thereof.)h(Other)g(mo)r(dels)g(of)g(this)g(c)n(haracter)f(are)g(the)h (v)n(ector)f(mac)n(hines)h(of)523 1901 y(Pratt)d(and)g(Sto)r(c)n(kmey)n (er)g([14)o(],)h(the)g FG(MRAM)40 b FK(prop)r(osed)26 b(b)n(y)g(Hartmanis)g(and)g(Simon)h([9])523 2001 y(and)40 b(simpli\014ed)h(b)n(y)g(Bertoni)f(et)g(al.)h([4)o(],)g(and)f(also)g (the)h FG(EDITRAM)54 b FK(presen)n(ted)40 b(b)n(y)523 2100 y(Stegw)n(ee)27 b(et)h(al.)f([18)o(,)h(22)o(].)606 2200 y(Eviden)n(tly)41 b(our)f(mo)r(del)i(is)f(one)g(among)f(a)h(n)n (um)n(b)r(er)g(of)g(p)r(ossible)g(alternativ)n(es)f(for)523 2300 y(designing)19 b(a)h(parallel)f(v)n(ersion)g(of)h(the)h FG(SMM)34 b FK(mo)r(del.)21 b(In)f(the)h(conclusion)e(of)h(this)h(c)n (hapter)523 2399 y(w)n(e)27 b(discuss)g(another)g(alternativ)n(e)f (suggested)h(b)n(y)g(an)h(anon)n(ymous)e(referee.)606 2499 y(F)-7 b(ollo)n(wing)26 b([22)o(])h(w)n(e)g(denote)g(the)g(class)f (of)h(languages)e(accepted)i(in)g(p)r(olynomial)f(time)523 2599 y(b)n(y)i(the)h FG(ASMM)43 b FK(mo)r(del)28 b(b)n(y)h FG(ASMM)t FD(\000)-9 b FG(PTIME)11 b FK(.)29 b(The)g(class)e(of)i (languages)d(accepted)i(in)523 2698 y(p)r(olynomial)18 b(time)h(b)n(y)f(nondeterministic)g FG(ASMM)32 b FK(devices)18 b(is)h(denoted)f(b)n(y)g FG(ASMM)5 b FD(\000)-9 b FG(NPTIME)10 b FK(.)523 2798 y(The)33 b(class)e FG(PSP)-6 b(A)n(CE)43 b FK(as)32 b(indicated)h(ab)r(o)n(v)n(e,)e(denotes)i(the)g(class)e(of)i (languages)e(recog-)523 2897 y(nized)c(in)g(p)r(olynomial)f(space)g(on) g(a)g(T)-7 b(uring)26 b(mac)n(hine.)h(The)f(fact)h(that)g(the)g FG(ASMM)41 b FK(is)26 b(a)523 2997 y(true)i(mem)n(b)r(er)f(of)h(the)g (second)f(mac)n(hine)g(class)f(is)i(no)n(w)f(expressed)f(b)n(y)i(the)g (equalit)n(y:)606 3097 y FG(ASMM)5 b FD(\000)-9 b FG(PTIME)34 b FK(=)22 b FG(ASMM)5 b FD(\000)-9 b FG(NPTIME)33 b FK(=)23 b FG(PSP)-6 b(A)n(CE)606 3196 y FK(In)25 b(the)g(pro)r(of)f(of)h(this)g (equalit)n(y)f(w)n(e)g(use)h(the)g(w)n(ell)f(kno)n(wn)g FG(PSP)-6 b(A)n(CE)10 b FK(-complete)25 b(prob-)523 3296 y(lem:)606 3396 y FG(QUANTIFIED)k(BOOLEAN)g(F)n(ORMULAS)e FK(\()p FG(QBF)12 b FK(\))28 b([19)o(])f(:)523 3562 y FG(INST)-6 b(ANCE)p FK(:)27 b(A)h(form)n(ula)f(of)h(the)f(form)h FC(Q)1901 3574 y FB(1)1938 3562 y FC(x)1985 3574 y FB(1)2036 3562 y FC(:)14 b(:)g(:)g(Q)2213 3574 y FA(n)2258 3562 y FC(x)2305 3574 y FA(n)2350 3562 y FK([)p FC(P)e FK(\()p FC(x)2517 3574 y FB(1)2555 3562 y FC(;)i(:)g(:)g(:)g(;)g(x)2787 3574 y FA(n)2832 3562 y FK(\)],)523 3661 y(where)27 b(eac)n(h)g FC(Q)1016 3673 y FA(i)1071 3661 y FK(equals)g FD(8)g FK(or)g FD(9)p FK(,)h(and)f(where)h FC(P)12 b FK(\()p FC(x)2141 3673 y FB(1)2178 3661 y FC(;)i(:)g(:)g(:)g(;)g(x)2410 3673 y FA(n)2456 3661 y FK(\))523 3761 y(is)28 b(a)f(prop)r(ositional)f (form)n(ula)g(in)i(the)g(b)r(o)r(olean)f(v)-5 b(ariables)27 b FC(x)2422 3773 y FB(1)2459 3761 y FC(;)14 b(:)g(:)g(:)g(;)g(x)2691 3773 y FA(n)2736 3761 y FK(.)523 3960 y FG(QUESTION)p FK(:)27 b(do)r(es)g(this)h(form)n(ula)f(ev)-5 b(aluate)27 b(to)g FG(true)6 b FK(?)523 4367 y FL(5.2)116 b(The)38 b Fd(SMM)58 b FL(and)38 b(the)h Fd(ASMM)57 b FL(mo)s(dels)523 4566 y FK(Our)21 b FG(ASMM)36 b FK(mo)r(del)23 b(is)f(based)f(on)h(the) h(Storage)d(Mo)r(di\014cation)i(Mac)n(hine)g(as)f(in)n(tro)r(duced)523 4666 y(b)n(y)26 b(Sc)n(h\177)-42 b(onhage)25 b(in)i(1970)d([16].)i(The) h FG(SMM)40 b FK(mo)r(del)27 b(resem)n(bles)e(the)i FG(RAM)40 b FK(mo)r(del)27 b(as)e(far)523 4765 y(as)h(it)g(has)g(a)g(stored)g (program)e(and)i(a)g(similar)g(\015o)n(w)f(of)h(con)n(trol.)g(It)g(has) g(a)g(single)g(storage)523 4865 y(structure,)19 b(called)g(a)h(\001)p FG(-structur)l(e)6 b FK(.)18 b(Here)h(\001)h(denotes)f(a)h(\014nite)g (alphab)r(et)g(consisting)e(of)i(at)523 4965 y(least)f(t)n(w)n(o)f(sym) n(b)r(ols.)g(W)-7 b(e)19 b(denote)g(the)g(rev)n(erse)e(of)i(a)g (direction)f FC(a)23 b FD(2)g FK(\001)d(as)f(\026)-43 b FC(a)p FK(.)19 b(F)-7 b(urthermore,)537 5043 y(\026)523 5064 y(\001)23 b(=)g FD(f)8 b FK(\026)-50 b FC(\013)p FD(j)p FC(\013)23 b FD(2)h FK(\001)p FD(g)j FK(is)h(the)g(set)f(of)h (rev)n(erse)d(directions)i(and)h(w)n(e)f(let)2639 5043 y(~)2625 5064 y(\001)c(=)g(\001)18 b FD([)2980 5043 y FK(\026)2966 5064 y(\001.)606 5164 y(A)41 b(\001-structure)e FC(X)47 b FK(is)40 b(a)g(\014nite)h(directed)f(graph)f(eac)n(h)h(no)r (de)g(of)g(whic)n(h)g(has)g FC(k)47 b FK(=)523 5264 y FD(j)p FK(\001)p FD(j)31 b FK(outgoing)f(edges)g(whic)n(h)h(are)f(lab)r (eled)h(b)n(y)f(the)i FC(k)h FK(elemen)n(ts)e(of)g(\001.)g(In)g(Sc)n (h\177)-42 b(onhage's)523 5363 y(formalization,)24 b(a)h (\001-structure)g(is)g(a)g(triple)g(\()p FC(X)r(;)14 b(c;)g(p)p FK(\),)25 b(where)g FC(X)31 b FK(denotes)25 b(the)h(\014nite)g(set)p eop end %%Page: 52 62 TeXDict begin 52 61 bop 1791 299 a FF(5.2.)52 b(The)26 b Fg(SMM)38 b FF(and)25 b(the)g Fg(ASMM)37 b FF(mo)r(dels)155 b(52)523 506 y FK(of)34 b(no)r(des,)g FC(c)g FD(2)g FC(X)41 b FK(is)34 b(the)h FG(c)l(enter)p FK(,)e(and)h FC(p)g FK(:)g FC(X)29 b FD(\002)23 b FK(\001)34 b FD(!)g FC(X)41 b FK(is)34 b(the)g(p)r(oin)n(ter)g(mapping;)523 606 y FC(p)p FK(\()p FC(x;)14 b(\013)p FK(\))24 b(=)f FC(y)30 b FK(means)d(that)h(the)g FC(\013)p FK(-p)r(oin)n(ter)f(from)h FC(x)g FK(go)r(es)f(to)g FC(y)s FK(.)606 706 y(There)d(exists)f(a)h (map)g FC(p)1357 676 y Fw(\003)1419 706 y FK(from)g(\001)1681 676 y Fw(\003)1744 706 y FK(to)g FC(X)30 b FK(de\014ned)25 b(as)e(follo)n(ws:)g(F)-7 b(or)24 b(the)g(empt)n(y)g(string)523 805 y FC(\017)h FK(one)g(has)g FC(p)920 775 y Fw(\003)958 805 y FK(\()p FC(\017)p FK(\))e(=)g FC(c)p FK(,)i(and)g(otherwise)g FC(p)1820 775 y Fw(\003)1857 805 y FK(\()p FC(w)r(a)p FK(\))g(=)d FC(p)p FK(\()p FC(p)2254 775 y Fw(\003)2292 805 y FK(\()p FC(w)r FK(\))p FC(;)14 b(a)p FK(\))27 b(is)e(the)h(end-p) r(oin)n(t)f(of)g(the)523 905 y FC(a)p FK(-lab)r(eled)i(p)r(oin)n(ter)g (starting)g(in)h FC(p)1613 875 y Fw(\003)1651 905 y FK(\()p FC(w)r FK(\).)606 1005 y(The)e(map)g FC(p)1000 974 y Fw(\003)1064 1005 y FK(do)r(es)g(not)g(ha)n(v)n(e)f(to)h(b)r(e)g (surjectiv)n(e.)g(No)r(des)g(whic)n(h)g(can)f(not)i(b)r(e)f(reac)n(hed) 523 1104 y(b)n(y)j(tracing)f(a)g(w)n(ord)g FC(w)k FK(in)d(\001)1458 1074 y Fw(\003)1526 1104 y FK(starting)f(from)h(the)g(cen)n(ter)f FC(c)h FK(will)h(turn)f(out)g(to)g(pla)n(y)f(no)523 1204 y(subsequen)n(t)33 b(role)f(during)h(the)h(computations)f(of)g(the)h FG(SMM)14 b FK(.)33 b(In)h(the)f FG(ASMM)48 b FK(mo)r(del)523 1303 y(p)r(oin)n(ters)29 b(can)h(b)r(e)g(tra)n(v)n(ersed)d(in)j(the)h (opp)r(osite)e(direction,)h(and)f(therefore)g(these)h(no)r(des)523 1403 y(no)d(longer)g(can)g(b)r(e)h(disregarded)e(as)g(b)r(eing)i (garbage.)606 1503 y(The)21 b(storage)e(of)h(an)h FG(SMM)34 b FK(or)20 b(an)h FG(ASMM)34 b FK(is)21 b(a)f(dynamically)g(c)n (hanging)f(\001-structure,)523 1602 y(whic)n(h)28 b(initially)f (consists)g(of)h(a)f(single)g(no)r(de,)h(the)g(cen)n(ter.)f(The)h FG(ASMM)14 b FK('s)27 b(op)r(eration)g(is)523 1702 y(describ)r(ed)33 b(b)n(y)f(a)h FG(pr)l(o)l(gr)l(am)p FK(,)g(whic)n(h)g(is)g(a)f (\014nite)i(sequence)e(of)h FG(lab)l(els)40 b FK(and)33 b FG(instructions)p FK(.)523 1802 y(Lab)r(els)28 b(can)f(b)r(e)i(used)f (in)g(con)n(trol)f(\015o)n(w)g(statemen)n(ts;)h(they)h(should)e(o)r (ccur)h(exactly)f(once)523 1901 y(in)k(case)e(the)i(mac)n(hine)e(is)h (deterministic.)h FG(Nondeterminism)37 b FK(is)30 b(in)n(tro)r(duced)g (b)n(y)g(allo)n(w-)523 2001 y(ing)f(m)n(ultiple)g(o)r(ccurrences)f(of)h (the)g(lab)r(els)g(referred)f(to)g(in)i(jump)f(or)g(conditional)f(jump) 523 2100 y(instructions.)22 b(Consequen)n(tly)f(w)n(e)h(only)g (consider)f(nondeterminism)h(in)h(the)g(\015o)n(w)e(of)h(con-)523 2200 y(trol.)f(An)h(alternativ)n(e)e(w)n(ould)h(b)r(e)g(to)g(design)g (instructions)g(that)h(manipulate)f(the)h(data)e(in)523 2300 y(a)g(nondeterministic)h(manner,)g(but)g(suc)n(h)f(instructions)h (easily)f(lead)g(to)h(a)f(more)g(p)r(o)n(w)n(erful)523 2399 y(mo)r(del.)606 2499 y(In)35 b(the)g(text)h(b)r(elo)n(w)e(w)n(e)h (separate)e(lab)r(els)i(and)f(instructions)h(b)n(y)f(a)h(colon,)f (whereas)523 2599 y(instructions)27 b(are)g(ended)h(b)n(y)f (semicolons.)606 2698 y(The)22 b(instruction)g(rep)r(ertoire)f(of)h (the)g FG(SMM)36 b FK(and)22 b(the)h FG(ASMM)36 b FK(includes)22 b(the)g FG(c)l(ommon)523 2798 y FK(instructions)27 b(\(the)h FC(\025)p FK('s)g(are)f(lab)r(els)g(and)h FC(\014)f FD(2)d(f)p FK(0)p FC(;)14 b FK(1)p FD(g)p FK(\))523 2947 y FG(input)54 b FC(\025)812 2959 y FB(0)849 2947 y FC(;)14 b(\025)934 2959 y FB(1)972 2947 y FK(;)523 3047 y FG(output)53 b FC(\014)t FK(;)523 3147 y FG(goto)f FC(\025)p FK(;)523 3246 y FG(halt)9 b FK(;)523 3495 y(The)35 b FG(input)42 b FK(instruction)34 b(reads)f(an)i(input)g(bit)g FC(\014)k FK(and)34 b(transfers)f(con)n(trol)h(to)g FC(\025)3112 3507 y FA(\014)3157 3495 y FK(.)h(The)523 3595 y(other)27 b(instructions)g(are)g(straigh)n(tforw)n(ard.)606 3694 y(F)-7 b(urthermore)19 b(there)h(exist)g(three)g FG(internal)29 b FK(instructions)20 b(whic)n(h)g(op)r(erate)f(on)h(memory)523 3794 y(-)f(in)h(this)g(case)e(a)h(\001-structure)g FC(X)7 b FK(.)19 b(F)-7 b(or)19 b(the)g FG(SMM)34 b FK(the)20 b(argumen)n(ts)e(in)i(these)f(instructions)523 3894 y(are)32 b(strings)g(o)n(v)n(er)f(\001.)i(F)-7 b(or)33 b(the)g FG(ASMM)47 b FK(the)33 b(single)f(argumen)n(t)g(of)h FG(new)42 b FK(and)33 b(the)g(\014rst)523 3993 y(argumen)n(t)26 b(of)i FG(set)54 b(to)32 b FK(are)27 b(strings)f(o)n(v)n(er)1844 3972 y(~)1830 3993 y(\001;)i(the)g(other)f(argumen)n(ts)f(\(second)h (argumen)n(t)523 4093 y(of)35 b FG(set)79 b(to)40 b FK(and)35 b(b)r(oth)g(argumen)n(ts)f(of)h(the)h FG(if)53 b FK(instruction\))35 b(are)g(strings)f(o)n(v)n(er)f(\001.)i(All)523 4193 y(argumen)n(ts)23 b(are)f(\014nite)j(strings)e(whic)n(h)h(are)e(written)i(literally)g(in) g(the)g(program.)e(W)-7 b(e)24 b(\014rst)523 4292 y(describ)r(e)j (their)h(meaning)f(for)g(the)h FG(SMM)14 b FK(:)625 4475 y(1.)41 b FG(new)55 b FC(W)12 b FK(:)25 b(creates)g(a)g(new)h(no)r(de)g (whic)n(h)f(will)h(b)r(e)g(lo)r(cated)f(at)h(the)g(end)g(of)g(the)g (path)731 4575 y(traced)k(b)n(y)h FC(W)12 b FK(;)31 b(if)h FC(W)41 b FK(=)29 b FC(\017)i FK(the)g(new)h(no)r(de)f(will)g(b)r (ecome)g(the)h(cen)n(ter;)f(otherwise)731 4674 y(the)d(last)f(p)r(oin)n (ter)h(on)f(the)i(path)f(lab)r(eled)g FC(W)39 b FK(will)28 b(b)r(e)h(directed)e(to)n(w)n(ards)f(the)j(new)731 4774 y(no)r(de.)22 b(All)g(outgoing)f(p)r(oin)n(ters)g(of)h(the)h(new)f(no)r (de)g(will)g(b)r(e)g(directed)g(to)g(the)h(former)731 4873 y(no)r(de)k FC(p)973 4843 y Fw(\003)1011 4873 y FK(\()p FC(W)12 b FK(\))625 5039 y(2.)41 b FG(set)53 b FC(W)58 b FG(to)52 b FC(V)19 b FK(:)26 b(redirects)g(the)h(last)g(p)r (oin)n(ter)f(on)g(the)h(path)g(lab)r(eled)g(b)n(y)f FC(W)39 b FK(to)26 b(the)731 5139 y(former)h(no)r(de)i FC(p)1241 5109 y Fw(\003)1279 5139 y FK(\()p FC(V)19 b FK(\);)29 b(if)g FC(W)37 b FK(=)24 b FC(\017)k FK(this)h(simply)g(means)f(that)h FC(p)2713 5109 y Fw(\003)2751 5139 y FK(\()p FC(V)19 b FK(\))29 b(b)r(ecomes)f(the)731 5239 y(new)f(cen)n(ter;)g(otherwise)g (the)h(structure)f(of)h(the)g(graph)e(is)i(mo)r(di\014ed.)p eop end %%Page: 53 63 TeXDict begin 53 62 bop 1791 299 a FF(5.2.)52 b(The)26 b Fg(SMM)38 b FF(and)25 b(the)g Fg(ASMM)37 b FF(mo)r(dels)155 b(53)625 506 y FK(3.)41 b FG(if)65 b FC(V)43 b FK(=)23 b FC(W)59 b FK(\()p FG(if)66 b FC(V)43 b FD(6)p FK(=)23 b FC(W)12 b FK(\))48 b FG(then)34 b FD(h)p FC(instr)r FD(i)p FK(:)29 b(dep)r(ending)f(on)g(whether)g FC(p)3027 476 y Fw(\003)3064 506 y FK(\()p FC(V)20 b FK(\))28 b(and)731 606 y FC(p)773 576 y Fw(\003)811 606 y FK(\()p FC(W)12 b FK(\))36 b(coincide)g(or)g(not,)g(the)h(conditional)e(instruction)h FD(h)p FC(instr)r FD(i)h FK(\(conditional)731 706 y(jump)28 b(su\016ces\))g(is)f(executed)h(or)e(skipp)r(ed.)606 888 y(In)e(the)h FG(ASMM)38 b FK(mo)r(del)25 b(the)f(\001-structure)g (can)f(b)r(e)i(addressed)e(b)n(y)h(w)n(ords)f(\(also)g(called)523 988 y FG(p)l(aths)p FK(\))28 b(o)n(v)n(er)e(the)i(alphab)r(et)g(of)f (normal)g(and)g(rev)n(erse)e(directions)2639 967 y(~)2625 988 y(\001.)j(Ev)n(ery)e(w)n(ord)g FC(W)35 b FD(2)537 1067 y FK(~)523 1088 y(\001)592 1057 y Fw(\003)651 1088 y FK(addresses)20 b(the)h(\(p)r(ossibly)f(empt)n(y\))i(set)e(of)h(all)g (the)g(no)r(des)g(reac)n(hable)e(from)h(the)h(cen)n(ter)523 1187 y(b)n(y)27 b(follo)n(wing)g(the)h(consecutiv)n(e)f(directions)f (and)i(rev)n(erse)d(directions)i(in)h FC(W)12 b FK(.)606 1287 y(The)40 b(notion)f(of)h(`addressing')e(is)i(formalized)f(b)n(y)g (the)h(mapping)g FC(P)55 b FK(:)2967 1266 y(~)2953 1287 y(\001)3022 1257 y Fw(\003)3104 1287 y FD(!)43 b FK(2)3272 1257 y FA(X)3335 1287 y FK(,)523 1386 y(de\014ned)28 b(b)n(y:)1428 1569 y FC(P)12 b FK(\()p FC(\017)p FK(\))83 b(=)f FD(f)p FC(c)p FD(g)1318 1694 y FC(P)12 b FK(\()p FC(W)g(\013)p FK(\))84 b(=)e FD(f)p FC(p)p FK(\()p FC(x;)14 b(\013)p FK(\))p FD(j)p FC(x)24 b FD(2)g FC(P)12 b FK(\()p FC(W)g FK(\))p FD(g)1318 1818 y FC(P)g FK(\()p FC(W)20 b FK(\026)-50 b FC(\013)p FK(\))84 b(=)e FD(f)p FC(x)p FD(j)p FC(p)p FK(\()p FC(x;)14 b(\013)p FK(\))24 b FD(2)g FC(P)12 b FK(\()p FC(W)g FK(\))p FD(g)p FC(:)606 2001 y FH(Note:)46 b FK(It)22 b(will)h(often)f(b)r(e)g(con)n(v)n(enien)n(t)f (to)h(giv)n(e)f(a)g(name)h(to)g(an)f(address)g(path)h FC(V)42 b FD(2)23 b FK(\001)3296 1971 y Fw(\003)3335 2001 y FK(.)523 2100 y(In)f(the)g(co)r(de)f(fragmen)n(ts)g(presen)n (ted)g(in)h(this)g(c)n(hapter,)e(w)n(e)i(will)f(use)h(paths)f(ha)n (ving)g(suc)n(h)g(a)523 2200 y(name)h FC(v)k FK(as)c(a)g(pre\014x,)h (in)g(addition)f(to)h(fully)g(explicit)g(paths.)f(This)h(serv)n(es)e(t) n(w)n(o)h(purp)r(oses.)523 2300 y(First,)27 b(\014xed)f(no)r(des)h (that)g(ha)n(v)n(e)e(b)r(een)i(giv)n(en)f(descriptiv)n(e)g(names)g(can) h(b)r(e)g(addressed)e(b)n(y)523 2399 y(their)30 b(name)f(rather)f(than) i(some)f(arbitrary)f(path)h(\(w)n(e)h(sa)n(y)e(that)i(a)f(no)r(de)h(is) g(\014xed)f(i\013)h(it)523 2499 y(has)22 b(a)g(constan)n(t)g (address\).)g(Second,)g(if)h(w)n(e)g(are)e(using)i(one)f(of)g(the)h(p)r (oin)n(ters)f(from)h(a)f(\014xed)523 2599 y(no)r(de)32 b(to)g(tra)n(v)n(erse)d(part)i(of)h(the)g(graph,)f(it)h(can)g(b)r(e)g (giv)n(en)f(a)g(name)h(that)g(more)f(closely)523 2698 y(resem)n(bles)e(its)h(function:)h(that)f(of)g(a)g(v)-5 b(ariable.)29 b(W)-7 b(e)30 b(will)h(use)f(v)-5 b(ariable)29 b(names)g(without)523 2798 y(sp)r(ecifying)35 b(whic)n(h)g(path)g(they) g(stand)g(for,)g(omitting)g(the)g(details)g(of)g(the)g(creation)f(of) 523 2897 y(spare)27 b(no)r(des)g(to)g(pro)n(vide)g(the)h(required)1813 2867 y FB(3)1877 2897 y FK(p)r(oin)n(ters.)606 2997 y(A)h(no)r(de)f FC(x)h FK(is)f(said)g(to)g(b)r(e)g FG(dir)l(e)l(ctly)37 b FK(addressable)27 b(if)h(it)h(is)f(reac)n(hable)f(from)h(the)g(cen)n (ter)523 3097 y(b)n(y)f(normal)g(\(non-rev)n(ersed\))f(directions,)h (i.e.)g FD(9)d FC(V)42 b FD(2)23 b FK(\001)2312 3067 y Fw(\003)2373 3097 y FK(:)h FC(P)12 b FK(\()p FC(V)19 b FK(\))k(=)f FD(f)p FC(x)p FD(g)p FK(.)606 3196 y(In)31 b(order)d(to)j(facilitate)f(the)h(descriptions)e(of)h(the)h(in)n (ternal)f(instructions,)g(w)n(e)g(de\014ne)523 3296 y(a)f(mapping)f FC(Q)e FK(:)1090 3275 y(~)1076 3296 y(\001)1145 3266 y Fw(\003)1209 3296 y FD(!)f FK(2)1359 3266 y FA(X)1422 3296 y FK(,)k(from)g(a)g(path)g(to)g(the)g(set)g(of)g(no)r(des)g(from)g (whic)n(h)g(the)g(last)523 3396 y(p)r(oin)n(ter)e(on)h(this)f(path)h (originates,)e(b)n(y:)1650 3578 y FC(Q)p FK(\()p FC(\017)p FK(\))83 b(=)g FD(;)1540 3703 y FC(Q)p FK(\()p FC(W)12 b(\013)p FK(\))84 b(=)f FC(P)12 b FK(\()p FC(W)g FK(\))1540 3827 y FC(Q)p FK(\()p FC(W)20 b FK(\026)-50 b FC(\013)q FK(\))83 b(=)g FC(P)12 b FK(\()p FC(W)20 b FK(\026)-50 b FC(\013)p FK(\))p FC(:)606 4010 y FK(The)29 b FG(new)38 b FK(and)29 b FG(set)37 b FK(c)n(hange)27 b(the)j(\001-structure)e (from)h(\()p FC(X)r(;)14 b(c;)g(p)p FK(\))29 b(to)f(\()p FC(X)2854 3980 y Fw(0)2877 4010 y FC(;)14 b(c)2950 3980 y Fw(0)2973 4010 y FC(;)g(p)3052 3980 y Fw(0)3075 4010 y FK(\))30 b(as)e(fol-)523 4110 y(lo)n(ws:)565 4276 y FG(new)55 b FC(W)12 b FK(;)731 4375 y(Here,)28 b FC(W)36 b FD(2)1158 4354 y FK(~)1144 4375 y(\001)1213 4345 y Fw(\003)1280 4375 y FK(determines)28 b(where)g(new)g(no)r(des)g(are)f (inserted.)i(If)f FC(W)36 b FK(=)24 b FC(\017)p FK(,)k(then)731 4475 y(a)c(new)g(cen)n(ter)g FC(c)1244 4445 y Fw(0)1292 4475 y FK(is)g(created)f(suc)n(h)i(that)f FC(X)2096 4445 y Fw(0)2142 4475 y FK(=)f FC(X)18 b FD([)12 b(f)p FC(c)2462 4445 y Fw(0)2485 4475 y FD(g)24 b FK(and)g FC(p)2751 4445 y Fw(0)2774 4475 y FK(\()p FC(c)2842 4445 y Fw(0)2866 4475 y FC(;)14 b(\016)s FK(\))23 b(=)g FC(c)h FK(for)g(all)731 4575 y FC(\016)31 b FD(2)e FK(\001.)j(Otherwise,)e(if)h FC(W)41 b FK(=)28 b FC(U)17 b FK(~)-50 b FC(\013)31 b FK(\()8 b(~)-50 b FC(\013)32 b FK(is)f(either)g FC(\013)g FK(or)39 b(\026)-51 b FC(\013)q FK(\),)31 b(then)h(for)e(ev)n(ery)g(no) r(de)731 4674 y FC(u)22 b FD(2)i FC(Q)p FK(\()p FC(W)12 b FK(\))25 b(a)f(new)h(no)r(de)g FC(x)1604 4686 y FA(u)1673 4674 y FK(is)f(created)g(suc)n(h)h(that)g FC(X)2479 4644 y Fw(0)2524 4674 y FK(=)e FC(X)c FD([)13 b(f)p FC(x)2857 4686 y FA(u)2901 4674 y FD(j)p FC(u)23 b FD(2)g FC(Q)p FK(\()p FC(W)12 b FK(\))p FD(g)p FK(,)731 4774 y FC(p)773 4744 y Fw(0)796 4774 y FK(\()p FC(u;)i(\013)p FK(\))28 b(=)f FC(x)1165 4786 y FA(u)1208 4774 y FK(,)k FD(8)14 b FC(\016)30 b FD(2)e FK(\001)20 b FC(p)1603 4744 y Fw(0)1627 4774 y FK(\()p FC(x)1706 4786 y FA(u)1750 4774 y FC(;)14 b(\016)s FK(\))27 b(=)g FC(p)p FK(\()p FC(u;)14 b(\013)p FK(\),)31 b(and)f FC(c)2476 4744 y Fw(0)2527 4774 y FK(=)d FC(c)p FK(.)j(All)h(other)e(p)r(oin)n(ters)731 4873 y(remain)e(unc)n (hanged.)p 523 4993 499 5 v 627 5075 a Fm(3)661 5107 y FF(In)34 b(the)h(case)g(of)h(the)e Fg(ASMM)12 b FF(,)35 b(when)f(w)n(e)i(use)e(an)h(address)g(lik)n(e)g Fo(v)7 b FF(\026)-42 b Fo(x)34 b FF(with)h Fo(v)j FF(a)d(v)l(ariable)523 5190 y(name,)27 b(it)f(is)h(desirable)h(for)f Fo(v)i FF(not)d(to)h(b)r(e)f(an)g Fo(x)p FF(-p)r(oin)n(ter,)g(i.e.)h(that)f (the)g(address)h(that)f Fo(v)k FF(stands)523 5273 y(for)d(do)r(esn't)f (end)f(with)h(the)f(direction)h Fo(x)p FF(.)p eop end %%Page: 54 64 TeXDict begin 54 63 bop 1791 299 a FF(5.2.)52 b(The)26 b Fg(SMM)38 b FF(and)25 b(the)g Fg(ASMM)37 b FF(mo)r(dels)155 b(54)565 506 y FG(set)53 b FC(W)58 b FG(to)52 b FC(V)19 b FK(;)731 606 y(Here,)40 b FC(W)57 b FD(2)1212 585 y FK(~)1198 606 y(\001)1267 576 y Fw(\003)1346 606 y FK(determines)40 b(whic)n(h)h(p)r(oin)n(ters)f(are)f(redirected)h(to)h(the)g(no)r(de)731 706 y(determined)19 b(b)n(y)g FC(V)41 b FD(2)24 b FK(\001)1500 676 y Fw(\003)1538 706 y FK(.)19 b(If)h FC(W)35 b FK(=)22 b FC(\017)p FK(,)d(then)h FC(c)2148 676 y Fw(0)2194 706 y FK(=)j FC(P)12 b FK(\()p FC(V)19 b FK(\))g(b)r(ecomes)g(the)g(new)g (cen)n(ter.)731 805 y(Otherwise,)28 b(if)i FC(W)38 b FK(=)26 b FC(U)17 b FK(~)-50 b FC(\013)p FK(,)30 b(then)g(for)f(ev)n (ery)f(no)r(de)i FC(u)c FD(2)g FC(Q)p FK(\()p FC(W)12 b FK(\),)30 b FC(p)2819 775 y Fw(0)2842 805 y FK(\()p FC(u;)14 b(\013)p FK(\))27 b(=)e FC(P)12 b FK(\()p FC(V)19 b FK(\))731 905 y(and)31 b FC(c)932 875 y Fw(0)984 905 y FK(=)e FC(c)p FK(.)j(In)f(b)r(oth)h(cases)e FC(X)1764 875 y Fw(0)1818 905 y FK(is)i(the)f(restriction)g(of)g FC(X)38 b FK(to)31 b(the)h(no)r(des)f(whic)n(h)731 1005 y(are)26 b(reac)n(hable)g(from)h FC(c)1468 974 y Fw(0)1492 1005 y FK(.)606 1171 y(The)k(third)h(in)n(ternal)e(instruction)i(is)f (the)g FG(if)50 b FK(statemen)n(t.)32 b(Since)f(b)r(oth)h(paths)f(in)g (this)523 1270 y(instruction)e(consist)g(of)g(forw)n(ard)e(p)r(oin)n (ters)h(only)-7 b(,)29 b(the)h(meaning)e(of)i(this)f(instruction)g(is) 523 1370 y(equal)e(for)g(the)h FG(SMM)42 b FK(and)27 b(the)h FG(ASMM)14 b FK(.)606 1469 y(The)31 b FG(time)h(c)l(omplexity) 39 b FK(w)n(e)30 b(use)h(is)f(simply)h(the)g(n)n(um)n(b)r(er)f(of)h (instructions)f(executed.)523 1569 y(W)-7 b(e)31 b(do)f(not)g(concern)f (ourselv)n(es)g(with)h(the)h FG(sp)l(ac)l(e)i(c)l(omplexity)7 b FK(;)32 b(see)e([12)o(,)g(21)o(])g(for)g(a)g(dis-)523 1669 y(cussion)d(of)g(the)h(space)f(complexit)n(y)g(of)h(the)g FG(SMM)14 b FK(.)523 1976 y FL(5.3)116 b(An)38 b(illustration)d(of)k (the)f(p)s(o)m(w)m(er)g(of)g(asso)s(ciativit)m(y)523 2175 y FK(W)-7 b(e)29 b(demonstrate)g(the)g(p)r(o)n(w)n(er)f(of)h(the)g FG(ASMM)43 b FK(mo)r(del)29 b(b)n(y)g(sho)n(wing)e(the)j(capabilit)n(y) e(to)523 2275 y(manipulate)g(arbitrarily)d(large)h(sets)i(in)g(constan) n(t)f(time.)606 2374 y(The)41 b(mo)r(del)f(allo)n(ws)f(the)i(follo)n (wing)e(natural)h(represen)n(tation)f(of)h(sets.)h(If)f FC(W)53 b FK(is)40 b(a)523 2474 y(w)n(ord)f(o)n(v)n(er)g(\001,)h(and)g FC(\013)45 b FD(2)f FK(\001)d(a)e(direction,)h(then)h FC(P)12 b FK(\()p FC(W)20 b FK(\026)-50 b FC(\013)p FK(\))41 b(is)f(the)h(set)f(of)g(all)g(no)r(des)523 2574 y(ha)n(ving)28 b(their)h FC(\013)p FK(-p)r(oin)n(ter)g(directed)g(to)g(the)g(no)r(de)g FC(P)12 b FK(\()p FC(W)g FK(\).)30 b(Assume)f(that)g(our)g(alphab)r(et) 523 2673 y(is)d(\001)d(=)f FD(f)p FC(A;)14 b(B)t(;)g(C)q(;)g(\013;)g (\014)t(;)g(\015)5 b FD(g)26 b FK(and)f(that)h(the)g FC(A)p FK(,)g FC(B)t FK(,)g(and)g FC(C)6 b FK(-p)r(oin)n(ters)24 b(from)i(the)g(cen)n(ter)f(go)523 2773 y(to)f(three)f(di\013eren)n(t)h (no)r(des)f FC(P)12 b FK(\()p FC(A)p FK(\),)24 b FC(P)12 b FK(\()p FC(B)t FK(\))25 b(and)e FC(P)12 b FK(\()p FC(C)6 b FK(\),)24 b(none)g(of)f(whic)n(h)h(is)f(the)h(cen)n(ter.)f(W)-7 b(e)523 2873 y(will)21 b(no)n(w)f(consider)g(the)h(sets)f FC(P)12 b FK(\()p FC(A)c FK(\026)-50 b FC(\013)q FK(\),)21 b FC(P)12 b FK(\()p FC(B)1912 2851 y FK(\026)1900 2873 y FC(\014)5 b FK(\))21 b(and)f FC(P)12 b FK(\()p FC(C)q(;)18 b FK(\026)-46 b FC(\015)6 b FK(\))21 b(and)f(see)h(ho)n(w)f(the)h (standard)523 2972 y(set)26 b(op)r(erators)e(can)i(b)r(e)g(applied)g (to)g(them)g(b)n(y)g(using)g(appropriate)e FG(set)54 b(to)31 b FK(instructions.)523 3072 y(W)-7 b(e)38 b(ha)n(v)n(e)e(c)n (hosen)h FC(A)p FK(,)h FC(B)k FK(and)37 b FC(C)44 b FK(to)38 b(b)r(e)g(directions)e(so)h(that)h(the)g(instructions)f(with)523 3171 y(whic)n(h)29 b(w)n(e)f(will)h(implemen)n(t)g(the)h(set)e(op)r (erators)f(cannot)h(a\013ect)h(the)g(addressing)f(of)g(the)523 3271 y(no)r(des)33 b FC(P)12 b FK(\()p FC(A)p FK(\),)34 b FC(P)12 b FK(\()p FC(B)t FK(\))34 b(and)f FC(P)12 b FK(\()p FC(C)6 b FK(\).)34 b(As)g(long)e(as)h(no)g(suc)n(h)g(in)n (terference)f(exists,)h(w)n(e)g(can)523 3371 y(generalize)24 b(to)i(the)g(case)f(where)g FC(A)p FK(,)i FC(B)j FK(and)25 b FC(C)33 b FK(are)24 b(not)i(elemen)n(ts)g(of)g(\001)g(but)g(w)n(ords) f(o)n(v)n(er)523 3470 y(\001.)606 3570 y(The)30 b(instruction)g FG(set)63 b FC(A)8 b FK(\026)-50 b FC(\013)q(\014)59 b FG(to)h FC(B)t FK(;)31 b(has)e(the)i(e\013ect)g(of)f(adding)g(to)g FC(P)12 b FK(\()p FC(B)3008 3548 y FK(\026)2996 3570 y FC(\014)5 b FK(\))30 b(the)h(set)523 3670 y FC(P)12 b FK(\()p FC(A)c FK(\026)-50 b FC(\013)q FK(\),)30 b(while)h(the)f (instruction)g FG(set)63 b FC(A)8 b FK(\026)-50 b FC(\013\014)59 b FG(to)h FC(\017)p FK(;)30 b(remo)n(v)n(es)e(from)i FC(P)12 b FK(\()p FC(B)2904 3648 y FK(\026)2892 3670 y FC(\014)5 b FK(\))30 b(the)h(no)r(des)523 3769 y(whic)n(h)d(are)e (also)h(in)h FC(P)12 b FK(\()p FC(A)c FK(\026)-50 b FC(\013)p FK(\).)606 3869 y(The)33 b(\014gure)f(b)r(elo)n(w)h(no)n(w)f(sho)n(ws)g (ho)n(w)h(the)g(standard)f(set)h(op)r(erators,)e(sho)n(wn)h(as)h(as-) 523 3968 y(signmen)n(t)39 b(statemen)n(ts)f(in)i(the)f(b)r(o)n(xes,)f (can)h(b)r(e)g(implemen)n(ted)h(in)f(terms)g(of)g FG(set)91 b(to)523 4068 y FK(instructions.)27 b(The)h(cen)n(ter)f FC(\017)g FK(is)h(used)f(to)h(direct)f(p)r(oin)n(ters)g(a)n(w)n(a)n(y)f (from)h FC(A)h FK(or)f FC(C)6 b FK(.)p eop end %%Page: 55 65 TeXDict begin 55 64 bop 1492 299 a FF(5.3.)52 b(An)25 b(illustration)i(of)g(the)e(p)r(o)n(w)n(er)h(of)h(asso)r(ciativit)n(y) 155 b(55)p 1322 859 4 374 v 1324 859 a Fs(?)1032 693 y FG(set)54 b FC(C)9 b FK(\026)-45 b FC(\015)1349 698 y FG(to)51 b FC(\017)1011 861 y FE(\033)p 1011 992 4 17 v 1011 1110 a(\032)1634 861 y(\030)p 1634 992 V 1634 1110 a(\031)p 1129 1110 391 4 v 1129 861 V 1180 1007 a FC(C)9 b FK(\026)-45 b FC(\015)28 b FK(:=)22 b FD(;)p 1322 1482 4 374 v 1324 1482 a Fs(?)982 1315 y FG(set)54 b FC(A)8 b FK(\026)-50 b FC(\013\015)1349 1324 y FG(to)51 b FC(C)1011 1484 y FE(\033)p 1011 1615 4 17 v 1011 1733 a(\032)1634 1484 y(\030)p 1634 1615 V 1634 1733 a(\031)p 1129 1733 391 4 v 1129 1484 V 1143 1627 a FC(C)9 b FK(\026)-45 b FC(\015)28 b FK(:=)22 b FC(A)8 b FK(\026)-50 b FC(\013)p 1322 2105 4 374 v 1324 2105 a Fs(?)979 1944 y FG(set)54 b FC(B)1212 1922 y FK(\026)1200 1944 y FC(\014)t(\015)1349 1946 y FG(to)d FC(C)p 1635 1608 623 4 v 2175 1606 a Fs(-)1686 1571 y FG(set)j FC(B)1919 1549 y FK(\026)1907 1571 y FC(\014)t(\015)d FG(to)g FC(\017)2256 1484 y FE(\033)p 2256 1615 4 17 v 2256 1733 a(\032)2879 1484 y(\030)p 2879 1615 V 2879 1733 a(\031)p 2374 1733 391 4 v 2374 1484 V 2290 1631 a FC(C)9 b FK(\026)-45 b FC(\015)28 b FK(:=)22 b FC(A)8 b FK(\026)-50 b FC(\013)19 b FD(n)f FC(B)2809 1609 y FK(\026)2797 1631 y FC(\014)p 2568 2105 4 374 v 2569 2105 a Fs(?)2224 1938 y FG(set)54 b FC(C)9 b FK(\026)-45 b FC(\015)5 b(\013)2594 1943 y FG(to)52 b FC(\017)1011 2106 y FE(\033)p 1011 2237 4 17 v 1011 2355 a(\032)1634 2106 y(\030)p 1634 2237 V 1634 2355 a(\031)p 1129 2355 391 4 v 1129 2106 V 1037 2256 a FC(C)9 b FK(\026)-45 b FC(\015)28 b FK(:=)23 b FC(A)8 b FK(\026)-50 b FC(\013)19 b FD([)g FC(B)1571 2234 y FK(\026)1559 2256 y FC(\014)2256 2106 y FE(\033)p 2256 2237 4 17 v 2256 2355 a(\032)2879 2106 y(\030)p 2879 2237 V 2879 2355 a(\031)p 2374 2355 391 4 v 2374 2106 V 2281 2256 a FC(A)8 b FK(\026)-50 b FC(\013)24 b FK(:=)f FC(A)8 b FK(\026)-50 b FC(\013)19 b FD(\\)g FC(B)2818 2234 y FK(\026)2806 2256 y FC(\014)606 2582 y FK(The)h(follo)n(wing)e(program)g (illustrates)g(ho)n(w)h(in)h(linear)f(time)h(a)f(set)g FC(P)12 b FK(\()c(\026)-50 b FC(\013)q FK(\))20 b(of)f(exp)r(onen)n (tial)523 2682 y(size)27 b(can)h(b)r(e)g(constructed)f(\(with)h(a)f (singleton)g(alphab)r(et\):)645 2848 y FG(new)64 b FK(\026)-51 b FC(\013)q FK(;)645 2947 y FG(set)62 b FK(\026)-50 b FC(\013)9 b FK(\026)-51 b FC(\013)47 b FG(to)k FC(\017)p FK(;)645 3036 y(.)645 3069 y(.)645 3102 y(.)645 3202 y FG(new)64 b FK(\026)-51 b FC(\013)q FK(;)645 3301 y FG(set)62 b FK(\026)-50 b FC(\013)9 b FK(\026)-51 b FC(\013)47 b FG(to)k FC(\017)p FK(;)606 3467 y(Initially)32 b(only)g(the)h(cen)n (ter)f(exists,)g(so)g(all)g(no)r(des)g(p)r(oin)n(t)g(to)h(the)f(cen)n (ter.)g(If)h(at)f(some)523 3567 y(p)r(oin)n(t)37 b(2)791 3537 y FA(k)867 3567 y FK(no)r(des)g(exist,)f(all)g(of)h(whic)n(h)f(p)r (oin)n(t)g(to)h(the)g(cen)n(ter,)e(then)i(after)f(the)h FG(new)523 3667 y FK(instruction,)22 b(eac)n(h)e(of)i(these)f(2)1478 3637 y FA(k)1540 3667 y FK(no)r(des)h(no)n(w)f(p)r(oin)n(ts)g(to)h(one) f(of)h(2)2551 3637 y FA(k)2613 3667 y FK(newly)f(created)g(no)r(des,) 523 3766 y(whic)n(h)h(again)g(p)r(oin)n(t)g(to)g(the)h(cen)n(ter.)f (Next)h(the)f FG(set)77 b FK(instruction)22 b(mak)n(es)f(all)h(2)3005 3736 y FA(k)q FB(+1)3152 3766 y FK(no)r(des)523 3866 y(p)r(oin)n(t)27 b(to)f(the)g(cen)n(ter.)g(Hence)h(after)f FC(k)j FK(rep)r(etitions)d(of)h(these)f(t)n(w)n(o)f(instructions)h(the) h(size)523 3966 y(of)h(the)g(set)f FC(P)12 b FK(\()c(\026)-50 b FC(\013)q FK(\))28 b(has)f(b)r(ecome)g(2)1588 3935 y FA(k)1629 3966 y FK(.)606 4065 y(In)h(the)g(next)f(section)g(w)n(e)h (will)f(see)g(ho)n(w)g(these)h(and)f(similar)g(constructions)f(are)h (used)523 4165 y(to)h(pro)r(cess)e(large)g(amoun)n(ts)h(of)h(data)f(in) g(parallel.)523 4472 y FL(5.4)116 b Fd(PSP)-9 b(A)m(CE)48 b FL(=)33 b Fd(ASMM)5 b Fr(\000)-13 b FL(\()p Fd(N)19 b FL(\))p Fd(PTIME)523 4671 y FK(The)25 b(pro)r(of)f(of)h(mem)n(b)r (ership)g(in)g(the)g(Second)g(Mac)n(hine)f(Class)g(is)h(usually)g (split)g(in)n(to)g(t)n(w)n(o)523 4771 y(parts:)523 4937 y Fv(Lemma)32 b FH(5.1)40 b FG(PSP)-6 b(A)n(CE)34 b FD(\022)22 b FG(ASMM)5 b FD(\000)-9 b FG(PTIME)606 5103 y FK(W)i(e)31 b(pro)n(v)n(e)d(this)j(b)n(y)e(sk)n(etc)n(hing)h(an)f FG(ASMM)45 b FK(whic)n(h)30 b(solv)n(es)e(the)j FG(PSP)-6 b(A)n(CE)10 b FK(-complete)523 5203 y(problem)27 b FG(QBF)39 b FK(in)28 b(p)r(olynomial)f(time.)523 5369 y Fv(Lemma)32 b FH(5.2)40 b FG(ASMM)5 b FD(\000)-9 b FG(NPTIME)34 b FD(\022)22 b FG(PSP)-6 b(A)n(CE)p eop end %%Page: 56 66 TeXDict begin 56 65 bop 1855 299 a FF(5.4.)53 b Fg(PSP)-6 b(A)n(CE)30 b FF(=)21 b Fg(ASMM)s Fp(\000)-9 b FF(\()p Fg(N)12 b FF(\))p Fg(PTIME)162 b FF(56)523 1531 y @beginspecial 0 @llx 0 @lly 540 @urx 211 @ury 3401 @rwi @setspecial %%BeginDocument: sim.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /tmp/xfig-fig019769 %%Creator: fig2dev %%CreationDate: Sun Oct 31 19:50:03 1993 %%For: tromp@kemphaan.cwi.nl (John Tromp,M231,4078,02207-16322) %%BoundingBox: 0 0 540 211 %%Pages: 0 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /l {lineto} bind def /m {moveto} bind def /s {stroke} bind def /n {newpath} bind def /gs {gsave} bind def /gr {grestore} bind def /clp {closepath} bind def /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul setrgbcolor} bind def /col-1 {} def /col0 {0 0 0 setrgbcolor} bind def /col1 {0 0 1 setrgbcolor} bind def /col2 {0 1 0 setrgbcolor} bind def /col3 {0 1 1 setrgbcolor} bind def /col4 {1 0 0 setrgbcolor} bind def /col5 {1 0 1 setrgbcolor} bind def /col6 {1 1 0 setrgbcolor} bind def /col7 {1 1 1 setrgbcolor} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 0 setlinecap 0 setlinejoin -40.0 571.0 translate 0.900 -0.900 scale 0.500 setlinewidth n 213.716 430.331 m 219.000 424.000 l 217.317 432.073 l gs 2 setlinejoin col0 s gr n 421.206 521.794 224.613 165.245 -154.190 arc gs col0 s gr n 252.240 464.308 m 244.000 464.000 l 251.416 460.394 l gs 2 setlinejoin col0 s gr n 388.012 1147.779 698.780 -76.259 -101.893 arcn gs col0 s gr n 110.771 423.707 m 104.000 419.000 l 112.189 419.967 l gs 2 setlinejoin col0 s gr n 159.000 274.000 155.081 69.228 110.772 arc gs col0 s gr n 251.937 526.762 m 244.000 529.000 l 249.950 523.291 l gs 2 setlinejoin col0 s gr n 339.000 695.000 191.262 -60.218 -119.782 arcn gs col0 s gr n 264.954 609.706 m 259.000 604.000 l 266.938 606.233 l gs 2 setlinejoin col0 s gr n 319.000 499.000 120.934 60.255 119.745 arc gs col0 s gr % Ellipse n 429 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 469 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 409 474 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 369 534 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 389 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 349 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 414 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 229 534 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 249 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 209 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 569 474 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 509 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 549 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 609 534 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 629 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 589 594 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 229 474 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 229 414 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 529 534 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 449 534 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 469 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 519 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 569 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 619 15 15 0 360 DrawEllipse gs col0 s gr % Ellipse n 489 414 15 15 0 360 DrawEllipse gs col0 s gr % Polyline n 444 549 m 434 579 l gs col0 s gr n 438.427 572.043 m 434.000 579.000 l 434.632 570.778 l gs 2 setlinejoin col0 s gr % Polyline n 454 549 m 464 579 l gs col0 s gr n 463.368 570.778 m 464.000 579.000 l 459.573 572.043 l gs 2 setlinejoin col0 s gr % Polyline n 419 489 m 439 519 l gs col0 s gr n 436.226 511.234 m 439.000 519.000 l 432.898 513.453 l gs 2 setlinejoin col0 s gr % Polyline n 399 489 m 379 519 l gs col0 s gr n 385.102 513.453 m 379.000 519.000 l 381.774 511.234 l gs 2 setlinejoin col0 s gr % Polyline n 374 549 m 384 579 l gs col0 s gr n 383.368 570.778 m 384.000 579.000 l 379.573 572.043 l gs 2 setlinejoin col0 s gr % Polyline n 364 549 m 354 579 l gs col0 s gr n 358.427 572.043 m 354.000 579.000 l 354.632 570.778 l gs 2 setlinejoin col0 s gr % Polyline n 504 424 m 554 464 l gs col0 s gr n 549.002 457.441 m 554.000 464.000 l 546.504 460.564 l gs 2 setlinejoin col0 s gr % Polyline n 474 424 m 424 464 l gs col0 s gr n 431.496 460.564 m 424.000 464.000 l 428.998 457.441 l gs 2 setlinejoin col0 s gr % Polyline n 234 549 m 244 579 l gs col0 s gr n 243.368 570.778 m 244.000 579.000 l 239.573 572.043 l gs 2 setlinejoin col0 s gr % Polyline n 224 549 m 214 579 l gs col0 s gr n 218.427 572.043 m 214.000 579.000 l 214.632 570.778 l gs 2 setlinejoin col0 s gr % Polyline n 579 489 m 599 519 l gs col0 s gr n 596.226 511.234 m 599.000 519.000 l 592.898 513.453 l gs 2 setlinejoin col0 s gr % Polyline n 559 489 m 539 519 l gs col0 s gr n 545.102 513.453 m 539.000 519.000 l 541.774 511.234 l gs 2 setlinejoin col0 s gr % Polyline n 524 549 m 514 579 l gs col0 s gr n 518.427 572.043 m 514.000 579.000 l 514.632 570.778 l gs 2 setlinejoin col0 s gr % Polyline n 534 549 m 544 579 l gs col0 s gr n 543.368 570.778 m 544.000 579.000 l 539.573 572.043 l gs 2 setlinejoin col0 s gr % Polyline n 614 549 m 624 579 l gs col0 s gr n 623.368 570.778 m 624.000 579.000 l 619.573 572.043 l gs 2 setlinejoin col0 s gr % Polyline n 604 549 m 594 579 l gs col0 s gr n 598.427 572.043 m 594.000 579.000 l 594.632 570.778 l gs 2 setlinejoin col0 s gr % Polyline n 229 429 m 229 459 l gs col0 s gr n 231.000 451.000 m 229.000 459.000 l 227.000 451.000 l gs 2 setlinejoin col0 s gr % Polyline n 229 489 m 229 519 l gs col0 s gr n 231.000 511.000 m 229.000 519.000 l 227.000 511.000 l gs 2 setlinejoin col0 s gr % Polyline n 104 414 m 214 414 l gs col0 s gr n 206.000 412.000 m 214.000 414.000 l 206.000 416.000 l gs 2 setlinejoin col0 s gr % Polyline n 474 414 m 244 414 l gs col0 s gr n 252.000 416.000 m 244.000 414.000 l 252.000 412.000 l gs 2 setlinejoin col0 s gr % Polyline n 394 474 m 244 474 l gs col0 s gr n 252.000 476.000 m 244.000 474.000 l 252.000 472.000 l gs 2 setlinejoin col0 s gr n 241.567 491.837 m 239.000 484.000 l 244.953 489.707 l gs 2 setlinejoin col0 s gr n 135.667 549.000 122.077 14.226 -32.171 arcn gs col0 s gr % Polyline n 354 534 m 244 534 l gs col0 s gr n 252.000 536.000 m 244.000 534.000 l 252.000 532.000 l gs 2 setlinejoin col0 s gr /Times-Roman findfont 12.00 scalefont setfont 489 419 m gs 1 -1 scale (r) col-1 show gr % Polyline n 84 464 m 89 474 l 94 464 l gs col0 s gr % Polyline n 84 524 m 89 514 l 94 524 l gs col0 s gr % Polyline n 84 564 m 94 564 l 94 574 l gs col0 s gr % Polyline n 84 624 m 94 624 l gs col0 s gr % Polyline n 89 614 m 89 624 l gs col0 s gr % Polyline n 44 414 m 74 414 l gs col-1 s gr n 66.000 412.000 m 74.000 414.000 l 66.000 416.000 l gs 2 setlinejoin col-1 s gr % Interpolated spline n 459 604 m 441.931 610.485 434.431 612.985 429 614 curveto 410.945 617.373 384.695 618.623 324 619 curveto gs col0 s gr % Interpolated spline n 539 604 m 521.962 610.542 514.462 613.042 509 614 curveto 475.306 619.912 426.556 621.162 314 619 curveto gs col0 s gr % Interpolated spline n 619 604 m 601.972 610.560 594.472 613.060 589 614 curveto 542.267 622.029 474.767 623.279 319 619 curveto gs col0 s gr % Interpolated spline n 217 422 m 183.837 448.108 168.587 458.358 156 463 curveto 147.036 466.306 134.036 467.806 104 469 curveto gs col-1 s gr n 112.073 470.681 m 104.000 469.000 l 111.914 466.684 l gs 2 setlinejoin col-1 s gr % Interpolated spline n 220 486 m 196.860 501.958 186.360 508.208 178 511 curveto 165.270 515.251 146.770 517.251 104 519 curveto gs col-1 s gr n 112.075 520.671 m 104.000 519.000 l 111.912 516.675 l gs 2 setlinejoin col-1 s gr % Interpolated spline n 214 536 m 179.533 539.942 164.533 540.942 154 540 curveto 144.612 539.160 131.612 535.910 102 527 curveto gs col-1 s gr n 109.084 531.220 m 102.000 527.000 l 110.237 527.390 l gs 2 setlinejoin col-1 s gr % Interpolated spline n 194 594 m 162.699 596.184 149.199 597.434 140 599 curveto 133.007 600.191 123.007 602.691 100 609 curveto gs col-1 s gr n 108.244 608.813 m 100.000 609.000 l 107.186 604.956 l gs 2 setlinejoin col-1 s gr % Interpolated spline n 239 605 m 205.519 620.081 190.519 625.581 179 627 curveto 165.405 628.675 146.655 626.675 104 619 curveto gs col-1 s gr n 111.519 622.385 m 104.000 619.000 l 112.228 618.448 l gs 2 setlinejoin col-1 s gr % Interpolated spline n 215 470 m 177.118 462.331 160.868 458.331 150 454 curveto 140.475 450.204 127.725 442.954 99 425 curveto gs col-1 s gr n 104.724 430.936 m 99.000 425.000 l 106.844 427.544 l gs 2 setlinejoin col-1 s gr /Times-Roman findfont 12.00 scalefont setfont 234 449 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 234 509 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 209 564 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 244 564 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 349 564 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 384 564 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 429 564 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 464 564 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 509 564 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 544 564 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 589 564 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 624 564 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 379 504 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 434 504 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 539 504 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 594 504 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 439 444 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 534 444 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 219 414 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 229 419 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 219 474 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 229 479 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 229 539 m gs 1 -1 scale (b) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 89 419 m gs 1 -1 scale (c) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 154 409 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 349 409 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 314 469 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 314 514 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 304 544 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 304 629 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 115 616 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 120 528 m gs 1 -1 scale (x) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 192 484 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 122 437 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 121 477 m gs 1 -1 scale (x) col0 show gr $F2psEnd %%EndDocument @endspecial 1073 1705 a(FIGURE)25 b(5.1.)i(storage)h(structure)d(for)h Fp(9)p Fo(x)2347 1713 y Fm(0)2381 1705 y Fp(8)p Fo(x)2468 1713 y Fm(1)2523 1705 y FF(:)c Fo(x)2610 1713 y Fm(0)2661 1705 y Fp(^)17 b Fo(x)2773 1713 y Fm(1)606 1969 y FK(W)-7 b(e)41 b(pro)n(v)n(e)d(this)j(b)n(y)f(sho)n(wing)f(ho)n(w)g(to)h(sim)n (ulate)g FC(t)h FK(steps)f(of)g(a)g(nondeterministic)523 2069 y FG(ASMM)i FK(on)27 b(a)g(T)-7 b(uring)27 b(mac)n(hine)g(using)h FC(O)r FK(\()p FC(t)1946 2038 y FB(2)1984 2069 y FK(\))g(space.)523 2318 y Fl(5.4.1)99 b(QBF)40 b Fc(2)28 b Fl(ASMM)5 b Fc(\000)-11 b Fl(TIME)13 b Fb(\()p Fh(n)1916 2282 y Fa(2)1955 2318 y Fb(\))523 2467 y FK(The)21 b FG(ASMM)35 b FK(algorithm)20 b(w)n(e)g(presen)n(t)h(for)f(solving)g FG(QBF)33 b FK(in)21 b(p)r(olynomial)f(time)i(pro)r(ceeds)523 2567 y(in)33 b(8)e(stages.)h(Let)g FC(X)37 b FK(=)31 b FD(f)p FC(x)1416 2579 y FB(0)1453 2567 y FC(;)14 b(:)g(:)g(:)f(;)h(x)1684 2579 y FA(k)q Fw(\000)p FB(1)1811 2567 y FD(g)31 b FK(b)r(e)i(the)g (set)f(of)g(v)-5 b(ariables)31 b(in)i(the)f(form)n(ula)g(of)523 2666 y(length)k FC(n)p FK(,)h(let)f(\001)i(=)f FD(f)p FK(0)p FC(;)14 b FK(1)p FC(;)g(x)p FD(g)34 b FK(and)j(let)f FC(c)g FK(b)r(e)h(the)g(cen)n(ter.)e(Basically)-7 b(,)35 b(the)i(algorithm)523 2766 y(expands)29 b(the)i(form)n(ula)d(b)n(y)i (rewriting)f(the)h(quan)n(ti\014ers,)f(one)g(b)n(y)h(one,)g(innermost)f (\014rst,)523 2866 y(as)e(follo)n(ws:)1459 2965 y FD(8)p FC(x)1552 2977 y FA(i)1580 2965 y FC(F)12 b FK(\()p FC(x)1724 2977 y FA(i)1752 2965 y FK(\))24 b(=)-15 b FD(\))24 b FC(F)12 b FK(\(0\))18 b FD(^)h FC(F)12 b FK(\(1\))p FC(;)1459 3115 y FD(9)p FC(x)1552 3127 y FA(i)1580 3115 y FC(F)g FK(\()p FC(x)1724 3127 y FA(i)1752 3115 y FK(\))24 b(=)-15 b FD(\))24 b FC(F)12 b FK(\(0\))18 b FD(_)h FC(F)12 b FK(\(1\))p FC(:)523 3264 y FK(The)32 b(resulting,)f(fully)h(expanded)f (form)n(ula,)f(can)h(b)r(e)h(view)n(ed)f(as)g(a)g(tree.)g(It)h (consists)f(of)523 3364 y(a)e(complete)g(binary)g(tree)g FC(T)41 b FK(of)29 b(depth)h FC(k)s FK(,)f(with)h(an)f(instance)g(of)h (the)f(form)n(ula)g(b)r(o)r(dy)h FC(B)523 3463 y FK(ro)r(oted)f(at)g (eac)n(h)g(leaf)h(of)f FC(T)12 b FK(.)29 b(In)h(eac)n(h)f(suc)n(h)g (instance,)g(the)h(v)-5 b(ariable)29 b(references)f(can)h(b)r(e)523 3563 y(replaced)d(b)n(y)h(the)h(truth)f(v)-5 b(alues)27 b(assigned)f(to)h(them)h(along)d(the)j(path)f(from)g(the)h(ro)r(ot)e (to)523 3663 y(the)i(leaf.)g(The)f(algorithm)g(do)r(es)g(little)h(more) f(than)h(to)f(build)h(and)g(ev)-5 b(aluate)27 b(this)h(tree.)606 3762 y(Figure)e(5.1)g(depicts)g(the)h(structure)f(built)i(for)e(the)h (example)f(form)n(ula)f FD(9)p FC(x)2963 3774 y FB(0)3001 3762 y FD(8)p FC(x)3094 3774 y FB(1)3155 3762 y FK(:)e FC(x)3248 3774 y FB(0)3302 3762 y FD(^)523 3862 y FC(x)570 3874 y FB(1)608 3862 y FK(.)k(The)f(part)h(on)f(the)h(righ)n(t)f (represen)n(ts)g(the)h(expanded)f(form)n(ula)g(\(where)g(some)h(of)f (the)523 3961 y FC(x)p FK(-p)r(oin)n(ters)33 b(ha)n(v)n(e)f(b)r(een)h (omitted)h(for)f(clarit)n(y\).)f(W)-7 b(e)34 b(no)n(w)e(brie\015y)h (summarize)f(eac)n(h)h(of)523 4061 y(the)28 b(8)f(stages:)625 4244 y(1.)41 b(Build)36 b(a)g(list)g(of)g(no)r(des)g FC(c;)14 b(x)1654 4256 y FB(0)1692 4244 y FC(;)g(x)1776 4256 y FB(1)1813 4244 y FC(;)g(:)g(:)g(:)g(;)g(x)2045 4256 y FA(k)q Fw(\000)p FB(1)2171 4244 y FC(;)g(b)36 b FK(link)n(ed)g(through)f(the)i(0-p)r(oin)n(ter.)731 4343 y(Using)31 b(the)g(0)p FC(;)14 b FK(1-p)r(oin)n(ters,)30 b(build)i(a)f(represen)n(tation)e(of)j(the)f(form)n(ula)g(b)r(o)r(dy)g (as)g(a)731 4443 y(binary)j(tree)g FC(B)39 b FK(ro)r(oted)34 b(at)h FC(b)p FK(.)f(The)h(non-leaf)f(no)r(des)h(of)g FC(B)k FK(represen)n(t)33 b(the)i(con-)731 4543 y(nectiv)n(es)c(\(and,) h(or,)g(not\))g(while)g(the)h(lea)n(v)n(es)d(represen)n(t)h(instances)h (of)g(v)-5 b(ariables.)731 4642 y(Create)25 b(the)i(no)r(des)g FD(^)p FC(;)14 b FD(_)p FC(;)g FD(:)p FC(;)g FD(?)26 b FK(that)h(represen)n(t)f(the)h(di\013eren)n(t)f(t)n(yp)r(es)h(of)f (no)r(des)g(in)731 4742 y FC(B)t FK(.)625 4908 y(2.)41 b(Build)29 b(a)g(complete)h(binary)e(tree)i FC(T)40 b FK(of)30 b(depth)g FC(k)i FK(using)d(the)h(0)p FC(;)14 b FK(1-p)r(oin)n(ters.)27 b(F)-7 b(or)29 b(a)731 5008 y(no)r(de)24 b(at)g(depth)h FC(i)p FK(,)f(its)g(0-subtree)f(represen)n (ts)g(the)i(case)e FC(x)2550 5020 y FA(i)2601 5008 y FK(=)g(0)g(and)i(its)f(1-subtree)731 5107 y(the)k(case)e FC(x)1096 5119 y FA(i)1147 5107 y FK(=)d(1.)625 5273 y(3.)41 b(Build)27 b(2)997 5243 y FA(k)1065 5273 y FK(copies)g(of)h FC(B)k FK(ro)r(oted)27 b(at)g(the)h(lea)n(v)n(es)e(of)i FC(T)12 b FK(.)p eop end %%Page: 57 67 TeXDict begin 57 66 bop 1855 299 a FF(5.4.)53 b Fg(PSP)-6 b(A)n(CE)30 b FF(=)21 b Fg(ASMM)s Fp(\000)-9 b FF(\()p Fg(N)12 b FF(\))p Fg(PTIME)162 b FF(57)625 506 y FK(4.)41 b(F)-7 b(or)28 b(ev)n(ery)g(leaf)i FC(u)f FK(of)g FC(B)34 b FK(represen)n(ting)28 b(an)h(instance)g(of)g FC(x)2585 518 y FA(i)2613 506 y FK(,)h(let)f(the)h(2)2974 476 y FA(k)3044 506 y FK(copies)f(of)731 606 y FC(u)i FK(direct)g(their)g FC(x)p FK(-p)r(oin)n(ter)g(to)g(either)h FC(u)f FK(or)f FC(c)i FK(dep)r(ending)f(on)g(the)h(connectiv)n(e)f(of)731 706 y FC(u)p FK('s)c(paren)n(t)f(and)i(the)g(v)-5 b(alue)27 b(assigned)g(to)g FC(x)2118 718 y FA(i)2146 706 y FK(.)625 872 y(5.)41 b(F)-7 b(or)26 b(ev)n(ery)h(non-leaf)g FC(u)g FK(of)g FC(B)t FK(,)h(let)g(the)g(2)2007 842 y FA(k)2074 872 y FK(copies)f(of)h FC(u)f FK(direct)g(their)h FC(x)p FK(-p)r(oin)n(ter)f(to)731 971 y(either)g FC(u)g FK(or)g FC(c)h FK(dep)r(ending)g(on)f(the)h(connectiv)n(es)e(of)i FC(u)f FK(and)h(its)f(paren)n(t.)625 1137 y(6.)41 b(F)-7 b(or)21 b(ev)n(ery)f FC(x)1134 1149 y FA(i)1162 1137 y FK(,)i(let)g(the)g(2)1500 1107 y FA(i)1549 1137 y FK(no)r(des)g(of)f FC(T)33 b FK(at)22 b(lev)n(el)f FC(i)h FK(direct)f(their)h FC(x)p FK(-p)r(oin)n(ter)f(to)h(either)731 1237 y FC(x)778 1249 y FA(i)833 1237 y FK(or)27 b FC(c)h FK(dep)r(ending)g(on)f(the)h (quan)n(ti\014ers)e(of)i FC(x)2204 1249 y FA(i)2260 1237 y FK(and)f FC(x)2468 1249 y FA(i)p Fw(\000)p FB(1)2581 1237 y FK(.)625 1403 y(7.)41 b(Ev)-5 b(aluate)26 b(all)i(copies)f(of)g FC(B)32 b FK(in)c(parallel.)625 1569 y(8.)41 b(Ev)-5 b(aluate)26 b FC(T)12 b FK(.)606 1752 y(Recalling)22 b(Section)h(5.2,)f(w)n(e)h(address)f(the)h(no)r(des)g FD(^)p FC(;)14 b FD(_)p FC(;)g FD(:)p FC(;)g FD(?)23 b FK(b)n(y)g(their)f(name,)h(and)g(use)523 1851 y(v)-5 b(ariable-names)26 b FC(v)s(;)14 b(w)30 b FK(for)d(the)h(purp)r(ose)f (of)h(tra)n(v)n(ersing)d FC(X)34 b FK(and)27 b FC(B)t FK(.)606 1951 y(The)39 b(data)f(structure)g(constructed)g(can)h(b)r(e)g (roughly)e(divided)i(in)g(t)n(w)n(o)f(parts:)g(the)523 2051 y(linearly)21 b(sized)h(input)h(represen)n(tation)e(\(on)h(the)g (left)h(in)f(Fig5.1\),)g(and)g(the)g(exp)r(onen)n(tially)523 2150 y(sized)31 b(form)n(ula)g(expansion)g(on)g(the)h(righ)n(t.)f(F)-7 b(or)31 b(a)g(no)r(de)h FC(v)h FD(2)d FC(X)e FD([)21 b FC(B)t FK(,)32 b(let)g FC(C)6 b FK(\()p FC(v)s FK(\))33 b(its)f(set)523 2250 y(of)h(copies.)f(F)-7 b(or)32 b FC(v)j FK(=)c FC(x)1268 2262 y FA(i)1296 2250 y FK(,)i(these)g(are)e (the)i(2)1903 2220 y FA(i)1963 2250 y FK(no)r(des)g(at)f(depth)i FC(i)e FK(in)h FC(T)12 b FK(,)32 b(while)h(no)r(des)f(in)523 2350 y FC(B)h FK(all)c(ha)n(v)n(e)f(2)971 2319 y FA(k)1041 2350 y FK(copies.)g(The)h(t)n(w)n(o)f(parts,)h(left)h(and)f(righ)n(t,)f (are)g(connected)h(only)g(b)n(y)f(the)523 2449 y FC(x)p FK(-p)r(oin)n(ters)35 b(that)g(go)f(from)h(a)f(no)r(de)h(in)g(some)g FC(C)6 b FK(\()p FC(v)s FK(\))36 b(to)f(either)g FC(v)j FK(or)c(to)h(the)g(cen)n(ter)g FC(c)p FK(.)523 2549 y(Th)n(us)27 b(the)h(follo)n(wing)f(in)n(v)-5 b(arian)n(t)26 b(holds)i(throughout)e (the)i(execution:)1483 2731 y FD(8)p FC(v)e FD(2)e FC(X)g FD([)19 b FC(B)27 b FK(:)46 b FC(v)8 b FK(\026)-47 b FC(x)24 b FD(\022)f FC(C)6 b FK(\()p FC(v)s FK(\))p FC(:)606 2914 y FK(F)-7 b(urthermore,)33 b(the)i FC(x)p FK(-p)r(oin)n(ter)f (from)g FC(r)r FK(,)h(the)g(ro)r(ot)f(of)g FC(T)12 b FK(,)34 b(remains)f(anc)n(hored)g(to)h FC(x)3320 2926 y FB(0)523 3014 y FK(un)n(til)28 b(ev)-5 b(aluation)27 b(is)h(completed.)606 3113 y(F)-7 b(or)27 b(a)g(clear)g(understanding)g (of)g(the)h(construction,)f(it)h(is)g(imp)r(ortan)n(t)f(to)h (distinguish)523 3213 y(b)r(et)n(w)n(een)43 b(truth-v)-5 b(alues)43 b(and)g(their)g(represen)n(tation.)f(Conceptually)-7 b(,)42 b(the)i(algorithm)523 3313 y(w)n(orks)36 b(with)h(truth)h(v)-5 b(alues,)37 b(1)f(\(true\))i(and)f(0)g(\(false\).)g(The)h(lea)n(v)n(es) d(of)i(the)h(2)3063 3282 y FA(k)3140 3313 y FK(copies)523 3412 y(of)f FC(B)42 b FK(are)37 b(assigned)f(truth)i(v)-5 b(alues)37 b(in)h(the)g(ob)n(vious)e(w)n(a)n(y)g(according)g(to)h(whic) n(h)h(v)-5 b(ari-)523 3512 y(able)30 b(they)g(represen)n(t.)f(The)h (other)f(no)r(des)h(are)f(assigned)g(default)i(truth)f(v)-5 b(alues,)30 b(whic)n(h)523 3611 y(are)g(0)g(for)g(a)h(disjunction,)g (and)g(1)f(for)g(a)g(conjunction)h(or)f(a)g(negation)g(\(recall)g(that) h(the)523 3711 y(quan)n(ti\014ers)h(ha)n(v)n(e)f(b)r(een)j(transformed) d(in)n(to)i(disjunction)g(and)g(conjunction\).)g(Next,)g(a)523 3811 y(b)r(ottom-up)c(pro)r(cess)e(rep)r(eatedly)h(c)n(hanges)e (defaults,)j(that)g(are)e(in)h(disagreemen)n(t)f(with)523 3910 y(their)i(ev)-5 b(aluated)29 b(c)n(hildren,)f(in)n(to)h(the)g (correct)f(ev)-5 b(aluation.)28 b(In)h(order)f(to)h(facilitate)f(this) 523 4010 y(pro)r(cess,)f(w)n(e)g(use)g(a)g(mixed)h(represen)n(tation)e (of)i(truth)g(v)-5 b(alues,)27 b(as)g(follo)n(ws.)606 4110 y(Call)h(a)g(no)r(de)h FC(u)1102 4079 y Fw(0)1149 4110 y FD(2)c FC(C)6 b FK(\()p FC(u)p FK(\))29 b FG(active)g FK(if)g(its)g FC(x)p FK(-p)r(oin)n(ter)f(is)g(directed)h(to)f FC(u)g FK(or)g FG(p)l(assive)i FK(if)f(its)523 4209 y FC(x)p FK(-p)r(oin)n(ter)j(is)g(directed)g(to)g FC(c)p FK(.)g(A)h(truth)f(v)-5 b(alue)32 b(is)g(represen)n(ted)f(b)n(y)h(the)h (activ)n(e)e(state)h(i\013)523 4309 y(that)d(truth)h(v)-5 b(alue)29 b(disagrees)e(with)i(the)h(default)f(of)g(its)g(paren)n(t,)f (and)h(with)h(the)f(passiv)n(e)523 4408 y(state)e(otherwise.)g(T)-7 b(o)27 b(summarize:)p 1394 4487 1094 5 v 1392 4587 5 100 v 1443 4557 a(paren)n(t)g(t)n(yp)r(e)p 2003 4587 V 2020 4587 V 209 w FD(^)p 2175 4587 V 100 w(_)p 2330 4587 V 100 w(:)p 2485 4587 V 1394 4591 1094 5 v 1394 4608 V 1392 4707 5 100 v 1443 4677 a FK(paren)n(t)g(default)p 2003 4707 V 2020 4707 V 124 w(1)p 2175 4707 V 113 w(0)p 2330 4707 V 113 w(1)p 2485 4707 V 1394 4711 1094 5 v 1392 4811 5 100 v 1443 4781 a(activ)n(e)g(v)-5 b(alue)p 2003 4811 V 2020 4811 V 209 w(0)p 2175 4811 V 113 w(1)p 2330 4811 V 113 w(1)p 2485 4811 V 1394 4815 1094 5 v 606 4952 a(As)23 b(an)g(example,)f(supp)r(ose)h(a)f FD(:)i FK(no)r(de)f FC(u)1873 4922 y Fw(0)1918 4952 y FD(2)h FC(C)6 b FK(\()p FC(u)p FK(\))23 b(has)g(a)f(paren)n(t)g FD(_)i FK(no)r(de.)f(The)g(paren)n(t)523 5052 y(gets)g(a)f(default)i(v) -5 b(alue)23 b(of)g(0,)f(whic)n(h)h(is)g(to)g(b)r(e)g(c)n(hanged)f(in)n (to)h(a)g(1)g(i\013)g(either)g(of)g(its)g(c)n(hildren)523 5152 y(ev)-5 b(aluates)28 b(to)g(1.)f(Th)n(us,)h(1)g(is)g(the)h(activ)n (e)e(v)-5 b(alue)28 b(for)g FC(u)2239 5122 y Fw(0)2262 5152 y FK(.)g(The)g(v)-5 b(alue)28 b(0)g(is)g(passiv)n(e)f(for)h FC(u)3312 5122 y Fw(0)3335 5152 y FK(,)523 5251 y(since)g(it)h(agrees)e (with)i(the)g(default)g(0)f(v)-5 b(alue)28 b(of)h(its)g FD(_)f FK(paren)n(t.)g(Since)h(a)f FD(:)h FK(no)r(de)g(is)f(1)g(b)n(y) 523 5351 y(default,)g FC(u)873 5321 y Fw(0)924 5351 y FK(is)f(activ)n(e)g(b)n(y)g(default,)h(hence)g(its)g FC(x)p FK(-p)r(oin)n(ter)f(is)h(initially)f(directed)h(to)f FC(u)p FK(.)p eop end %%Page: 58 68 TeXDict begin 58 67 bop 1855 299 a FF(5.4.)53 b Fg(PSP)-6 b(A)n(CE)30 b FF(=)21 b Fg(ASMM)s Fp(\000)-9 b FF(\()p Fg(N)12 b FF(\))p Fg(PTIME)162 b FF(58)606 506 y FK(The)29 b(represen)n(tation)f(of)h(the)h(truth)g(v)-5 b(alue)29 b(at)g(a)g(no)r(de)g FC(u)g FK(therefore)g(dep)r(ends)g(on)g(the)523 606 y(t)n(yp)r(e)34 b(of)f(the)i(logical)d(connectiv)n(e)h(asso)r (ciated)f(to)i(the)g(paren)n(t)f(of)g FC(u)g FK(in)h(the)g(tree.)g (This)523 706 y(holds)27 b(also)f(for)h(the)h(no)r(des)f(in)g(the)h (tree)f FC(T)38 b FK(whic)n(h)27 b(are)g(asso)r(ciated)f(to)h(the)h(v) -5 b(ariables)26 b FC(x)3307 718 y FA(i)3335 706 y FK(.)523 805 y(In)h(this)g(tree)f(the)h(copies)f(of)h(the)g(v)-5 b(ariables)25 b(ha)n(v)n(e)h(b)r(een)h(treated)f(as)g(logical)g (connectiv)n(es)523 905 y(according)39 b(to)h(the)h(t)n(yp)r(e)f(of)h (the)g(quan)n(ti\014er)e(binding)i(this)f(v)-5 b(ariable.)40 b(Note)g(that)h(b)n(y)523 1005 y(k)n(eeping)27 b(the)h FC(x)p FK(-p)r(oin)n(ter)f(of)h FC(r)i FK(directed)e(to)f FC(x)1956 1017 y FB(0)1994 1005 y FK(,)h(it)g(is)f(made)g(activ)n(e)g (b)n(y)h(default.)606 1104 y(In)22 b(the)g(algorithm)e(ab)r(o)n(v)n(e)g (stages)g(1,)h(2)g(and)h(3)f(are)f(used)i(for)e(building)i(the)g(tree;) f(during)523 1204 y(stage)i(4)h(the)h(truth)f(v)-5 b(alues)24 b(are)f(assigned)g(to)h(all)g(v)-5 b(ariable)24 b(o)r(ccurrences)e(in)j (the)f(copies)g(of)523 1303 y FC(B)t FK(,)k(and)g(in)h(stages)e(5)g (and)h(6)g(all)g(in)n(termediate)f(no)r(des)h(are)f(giv)n(en)g(their)i (default)f(v)-5 b(alues.)523 1403 y(During)27 b(the)h(\014nal)g(t)n(w)n (o)f(stages)f(the)i(en)n(tire)f(tree)h(is)f(ev)-5 b(aluated.)606 1503 y(W)e(e)28 b(next)g(describ)r(e)f(eac)n(h)g(of)g(the)h(ab)r(o)n(v) n(e)f(stages)f(in)i(some)f(more)g(detail.)606 1602 y(In)k(stage)f(1)h (the)g(input)h(is)f(examined)g(and)g(used)g(to)f(construct)h(a)g (linearly)f(sized)h(list)523 1702 y(and)c(tree)f(represen)n(ting)g(the) h(form)n(ula.)f(W)-7 b(e)27 b(represen)n(t)f(the)h(t)n(yp)r(e)g(of)g(a) f(no)r(de)h FC(u)c FD(2)g FC(X)g FD([)18 b FC(B)523 1802 y FK(b)n(y)j(directing)f(its)h FC(x)p FK(-p)r(oin)n(ter)f(to)h(one)f (of)h(the)g(sp)r(ecial)g(no)r(des)f FD(_)p FC(;)14 b FD(^)p FC(;)g FD(:)p FC(;)g FD(?)p FK(.)21 b(As)g(noted)g(b)r(efore,) 523 1901 y(these)27 b(four)f(sym)n(b)r(ols)g(will)i(also)d(b)r(e)j (used)e(as)h(paths)f(addressing)g(the)h(no)r(des.)f(The)h(lea)n(v)n(es) 523 2001 y(of)36 b FC(B)k FK(are)35 b(of)h(t)n(yp)r(e)g FD(?)g FK(and)g(ha)n(v)n(e)f(their)g(1-p)r(oin)n(ter)g(directed)h(to)g (the)g(appropriate)f FC(x)3307 2013 y FA(i)3335 2001 y FK(.)523 2100 y(Existen)n(tially)k(quan)n(ti\014ed)h FC(x)1466 2112 y FA(i)1534 2100 y FK(ha)n(v)n(e)f FC(ty)s(pe)p FK(\()p FC(x)1972 2112 y FA(i)1999 2100 y FK(\))44 b(=)f FD(_)e FK(and)e(univ)n(ersally)g(quan)n(ti\014ed)h FC(x)3330 2112 y FA(i)523 2200 y FK(ha)n(v)n(e)26 b FC(ty)s(pe)p FK(\()p FC(x)948 2212 y FA(i)976 2200 y FK(\))d(=)g FD(^)p FK(.)606 2300 y(When)29 b(tra)n(v)n(ersing)c(the)k(list)f(of)g FC(x)1660 2270 y Fw(0)1660 2321 y FA(i)1688 2300 y FC(s)p FK(,)g(the)g(algorithm)f(needs)h(to)g(b)r(e)g(able)g(to)g(detect)h(its) 523 2399 y(end.)h(Since)g(the)g(no)r(des)f(in)h FC(B)k FK(already)28 b(use)h(the)h(1-p)r(oin)n(ter)f(to)g(p)r(oin)n(t)h(to)g (their)f(c)n(hildren)523 2499 y(\(or)23 b(single)g(c)n(hild)g(in)h (case)e(of)h(a)g FD(:)h FK(no)r(de\),)g(w)n(e)f(ha)n(v)n(e)f(the)i FC(x)2317 2511 y FA(i)2368 2499 y FK(direct)g(their)f(1-p)r(oin)n(ter)f (to)h(the)523 2599 y(cen)n(ter,)30 b(and)g(th)n(us)g(b)n(y)g(comparing) f FC(v)s(x)i FK(with)g FC(\017)f FK(can)g(tell)g(whether)h FC(v)i FK(addresses)c(a)h(no)r(de)523 2698 y(in)e FC(X)34 b FK(or)27 b(in)g FC(B)t FK(.)606 2798 y(In)c(stage)f(2)h(the)g (parallel)f(p)r(o)n(w)n(er)g(of)h(the)h(mac)n(hine)e(is)h(used)g(to)g (build)h(an)e(exp)r(onen)n(tially)523 2897 y(large)k(tree)h(in)h (linear)f(time.)h(This)g(is)f(ac)n(hiev)n(ed)g(b)n(y)g(the)h(piece)g (of)f(co)r(de)h(b)r(elo)n(w:)645 3064 y FG(new)55 b FC(v)s FK(;)1302 b(create)27 b FC(r)r FK(,)i(ro)r(ot)d(of)i FC(T)645 3163 y FG(set)54 b FC(v)s(x)47 b FG(to)k FK(0;)1086 b(classify)27 b(it)645 3263 y FG(set)54 b FC(v)49 b FG(to)j FK(0;)1133 b(start)27 b FC(X)34 b FK(tra)n(v)n(ersal)523 3362 y FC(\025)24 b FK(:)j FG(new)55 b FC(v)8 b FK(\026)-47 b FC(x)q FK(0;)1212 b(0-c)n(hildren)27 b(for)g FC(C)6 b FK(\()p FC(x)2865 3374 y FA(i)2893 3362 y FK(\))645 3462 y FG(set)54 b FC(v)8 b FK(\026)-47 b FC(x)q FK(0)p FC(x)46 b FG(to)51 b FC(v)s FK(0;)954 b(classify)27 b(in)h FC(C)6 b FK(\()p FC(x)2736 3474 y FA(i)p FB(+1)2849 3462 y FK(\))645 3562 y FG(new)55 b FC(v)8 b FK(\026)-47 b FC(x)q FK(1;)1212 b(1-c)n(hildren)27 b(for)g FC(C)6 b FK(\()p FC(x)2865 3574 y FA(i)2893 3562 y FK(\))645 3661 y FG(set)54 b FC(v)8 b FK(\026)-47 b FC(x)q FK(1)p FC(x)46 b FG(to)51 b FC(v)s FK(0;)954 b(classify)27 b(in)h FC(C)6 b FK(\()p FC(x)2736 3673 y FA(i)p FB(+1)2849 3661 y FK(\))645 3761 y FG(set)54 b FC(v)49 b FG(to)j FC(v)s FK(0;)1090 b(adv)-5 b(ance)27 b(to)h FC(x)2673 3773 y FA(i)p FB(+1)645 3861 y FG(if)65 b FC(v)s FK(1)23 b(=)f FC(\017)46 b FG(then)53 b(goto)f FC(\025)p FK(;)692 b(rep)r(eat)28 b(for)f(all)g FC(x)2754 3873 y FA(i)606 4036 y FK(The)22 b(construction)g(of)g(2)1373 4005 y FA(k)1435 4036 y FK(copies)g(of)g FC(B)k FK(in)c(stage)g(3)f (pro)r(ceeds)g(analogously)-7 b(.)20 b(Note)i(that)523 4135 y(b)n(y)30 b(no)n(w)g(all)f(the)i(lea)n(v)n(es)e(of)h FC(T)41 b FK(ha)n(v)n(e)29 b(their)h FC(x)p FK(-p)r(oin)n(ter)g (directed)h(to)f FC(b)p FK(.)g(T)-7 b(ra)n(v)n(ersing)27 b FC(B)34 b FK(in)523 4235 y(preorder,)26 b(w)n(e)h(do)g(the)h(follo)n (wing)f(at)g(eac)n(h)g(no)r(de)h FC(v)s FK(:)683 4401 y FG(if)64 b FC(v)s(x)24 b FK(=)f FD(?)45 b FG(goto)52 b FC(\025)1359 4413 y FB(2)1397 4401 y FK(;)826 b(do)27 b(nothing)g(at)h(lea)n(v)n(es)683 4501 y FG(if)64 b FC(v)s(x)24 b FK(=)f FD(:)46 b FG(goto)52 b FC(\025)1350 4513 y FB(1)1388 4501 y FK(;)835 b FD(:)28 b FK(no)r(de)f(has)g(no)h(0-c)n(hild)683 4600 y FG(new)55 b FC(v)8 b FK(\026)-47 b FC(x)p FK(0;)1213 b(create)26 b(0-c)n(hild)683 4700 y FG(set)53 b FC(v)8 b FK(\026)-47 b FC(x)q FK(0)p FC(x)46 b FG(to)51 b FC(v)s FK(0;)955 b(classify)27 b(in)g FC(C)6 b FK(\()p FC(v)s FK(0\))523 4799 y FC(\025)571 4811 y FB(1)609 4799 y FK(:)51 b FG(new)k FC(v)8 b FK(\026)-47 b FC(x)p FK(1;)1213 b(create)26 b(1-c)n(hild)683 4899 y FG(set)53 b FC(v)8 b FK(\026)-47 b FC(x)q FK(1)p FC(x)46 b FG(to)51 b FC(v)s FK(1;)955 b(classify)27 b(in)g FC(C)6 b FK(\()p FC(v)s FK(1\))523 4999 y FC(\025)571 5011 y FB(2)609 4999 y FK(:)606 5165 y(In)26 b(stage)f(4,)h(all)f(the)i FC(x)p FK(-p)r(oin)n(ters)e(in)h(the)h(copies)e(of)h(lea)n(v)n(es)e(of)i FC(B)k FK(are)25 b(installed.)h(Again)523 5264 y(omitting)j(the)g (details)g(of)g(ho)n(w)f(to)g(tra)n(v)n(erse)f FC(B)t FK(,)i(let)g FC(w)j FK(b)r(e)d(a)f(leaf)h(of)g FC(B)k FK(\()p FC(w)r(x)26 b FK(=)f FD(?)p FK(\),)k(and)523 5364 y FC(w)r FK(1)23 b(=)g FC(x)784 5376 y FA(i)838 5364 y FK(the)i(v)-5 b(ariable)25 b(it)h(represen)n(ts.)e(W)-7 b(e)26 b(sho)n(w)e(ho)n(w)h(to)g(install)h(the)f FC(x)p FK(-p)r(oin)n(ters)g(in)h(all)p eop end %%Page: 59 69 TeXDict begin 59 68 bop 1855 299 a FF(5.4.)53 b Fg(PSP)-6 b(A)n(CE)30 b FF(=)21 b Fg(ASMM)s Fp(\000)-9 b FF(\()p Fg(N)12 b FF(\))p Fg(PTIME)162 b FF(59)523 506 y FK(copies)29 b FC(C)6 b FK(\()p FC(w)r FK(\))30 b(of)g FC(w)r FK(.)g(W)-7 b(e)29 b(assume)g(that)h FC(w)i FK(has)c(the)i(activ)n(e)e(v)-5 b(alue)30 b(1.)f(The)g(case)f(for)h(0)g(is)523 606 y(analogous.)c(The)j (co)r(de)f(fragmen)n(t)645 772 y FG(set)54 b FC(v)49 b FG(to)j FK(0;)1133 b(start)27 b(tra)n(v)n(ersal)e(of)j(the)g FC(x)3032 784 y FA(j)523 872 y FC(\025)c FK(:)j FG(set)54 b FC(v)s FK(0)5 b(\026)-47 b FC(x)46 b FG(to)52 b FC(\017)p FK(;)1052 b(clear)27 b FC(C)6 b FK(\()p FC(x)2551 884 y FA(j)s FB(+1)2671 872 y FK(\))645 971 y FG(if)65 b FC(v)26 b FD(6)p FK(=)d FC(w)r FK(1)46 b FG(then)52 b(set)i FC(v)8 b FK(\026)-47 b FC(x)q FK(0)p FC(x)46 b FG(to)51 b FC(v)s FK(0;)329 b(if)28 b FC(i)23 b FD(6)p FK(=)g FC(j)32 b FK(then)c(tak)n(e)f(b)r(oth)h(c)n(hildren)645 1071 y FG(set)54 b FC(v)8 b FK(\026)-47 b FC(x)q FK(1)p FC(x)46 b FG(to)51 b FC(v)s FK(0;)954 b(if)28 b FC(i)23 b FK(=)g FC(j)32 b FK(then)c(tak)n(e)f(only)h(1-c)n(hildren)645 1171 y FG(set)54 b FC(v)49 b FG(to)j FC(v)s FK(0;)1090 b(adv)-5 b(ance)27 b(to)h FC(x)2673 1183 y FA(j)s FB(+1)645 1270 y FG(if)65 b FC(v)s FK(1)23 b(=)f FC(\017)46 b FG(then)53 b(goto)f FC(\025)p FK(;)692 b(rep)r(eat)28 b(for)f(all)g FC(x)2754 1282 y FA(j)606 1436 y FK(ends)j(with)h FC(b)5 b FK(\026)-47 b FC(x)30 b FK(equal)g(to)g(the)g(set)g(of)g(lea)n(v)n (es)f(of)h FC(T)41 b FK(whic)n(h)30 b(ha)n(v)n(e)f(1,)h(the)g(activ)n (e)g(v)-5 b(alue,)523 1536 y(assigned)22 b(to)h FC(x)991 1548 y FA(i)1019 1536 y FK(.)g(In)g(a)g(similar)f(fashion)g(w)n(e)h (can)g(tra)n(v)n(erse)d(the)k(path)f(from)f FC(b)h FK(to)g FC(w)r FK(,)h(to)f(end)523 1636 y(up)28 b(with)h(the)f(activ)n(e)g(no)r (des)f(of)h FC(C)6 b FK(\()p FC(w)r FK(\))30 b(p)r(oin)n(ting)e(to)g FC(w)j FK(and)c(the)i(passiv)n(e)e(ones)g(p)r(oin)n(ting)523 1735 y(to)h FC(c)p FK(.)606 1835 y(The)23 b(next)h(t)n(w)n(o)e(stages,) g(5)h(and)g(6,)g(prepare)f(the)i(ev)-5 b(aluation)22 b(b)n(y)h(giving)f(default)i(v)-5 b(alues)523 1934 y(to)30 b(copies)f(of)h(non-lea)n(v)n(es)e(of)i FC(B)35 b FK(and)30 b(no)r(des)g(in)g FC(T)12 b FK(.)29 b(This)h(is)g(most)g(easily)f(done) h(b)n(y)g(\014rst)523 2034 y(setting)25 b FC(v)8 b FK(\026)-47 b FC(x)24 b FK(=)e FC(C)6 b FK(\()p FC(v)s FK(\))26 b(for)f(all)f FC(v)k FK(in)d FC(X)32 b FK(or)24 b(in)n(ternal)g(in)h FC(B)t FK(.)g(Then,)g(in)g(a)g(second)f(pass,)g(those)523 2134 y(copies)36 b(that)h(should)g(b)r(e)g(passiv)n(e)f(b)n(y)g (default)i(are)d(tak)n(en)i(care)e(of)i(b)n(y)g(executing)f(the)523 2233 y(follo)n(wing)27 b(instruction)g(for)g(the)h(appropriate)e FC(v)31 b FK(in)d FC(X)34 b FK(and)27 b FC(B)t FK(:)523 2399 y FG(set)54 b FC(v)8 b FK(\026)-47 b FC(x)47 b FG(to)k FC(\017)p FK(;)1094 b(clear)27 b FC(v)8 b FK(\026)-47 b FC(x)606 2565 y FK(No)n(w)32 b(all)g(that's)h(left)g(to)f(b)r(e)h (done)f(is)g(the)h(ev)-5 b(aluation)32 b(itself.)h(This)f(is)g(done)g (b)r(ottom)523 2665 y(up|b)n(y)e(a)g(p)r(ost-order)f(tra)n(v)n(ersal)e (of)k FC(B)j FK(and)c(then)h(from)f FC(x)2430 2677 y FA(k)q Fw(\000)p FB(1)2587 2665 y FK(bac)n(k)f(to)h FC(x)2934 2677 y FB(0)2972 2665 y FK(.)g(With)h(the)523 2765 y(other)19 b(cases)g(b)r(eing)h(analogous,)e(w)n(e)i(restrict)f(ourselv)n(es)f(to) i(the)h(ev)-5 b(aluation)19 b(of)h(an)g FD(^)p FK(-no)r(de)523 2864 y FC(w)30 b FD(2)e FC(X)f FD([)21 b FC(B)t FK(.)30 b(Let)h FC(v)i FK(b)r(e)e(its)g(paren)n(t.)e(The)i(default)g(v)-5 b(alue)30 b(of)g FC(w)j FK(is)e(1,)f(whic)n(h)g(is)g(passiv)n(e)523 2964 y(if)h FC(v)j FK(has)c(t)n(yp)r(e)h FD(^)p FK(,)g(or)f(activ)n(e)f (if)i FC(v)j FK(has)c(t)n(yp)r(e)h FD(_)p FC(;)14 b FD(:)p FK(.)31 b(The)g(v)-5 b(alue)31 b(of)f FC(w)j FK(should)e(b)r(ecome)f(0) 523 3064 y(if)f(either)e(of)h(its)h(c)n(hildren)e(has)h(v)-5 b(alue)28 b(0,)f(whic)n(h)h(is)g(activ)n(e)g(for)f(them.)i(It)f(should) g(no)n(w)f(b)r(e)523 3163 y(clear)g(that)g(the)h(co)r(de)g(fragmen)n(t) 683 3329 y FG(if)64 b FC(v)s(x)24 b FK(=)f FD(^)46 b FG(then)52 b(goto)g FC(\025)1557 3341 y FB(1)1595 3329 y FK(;)273 b(passiv)n(e)27 b(or)f(activ)n(e)h(default?)683 3429 y FG(set)53 b FC(w)r FK(0)5 b(\026)-47 b FC(x)987 3411 y FK(\026)987 3429 y(0)o FC(x)47 b FG(to)k FC(\017)p FK(;)591 b(c)n(hange)27 b(to)g(passiv)n(e)f(if)j(0-c)n(hild)d (disagrees)683 3528 y FG(set)53 b FC(w)r FK(1)5 b(\026)-47 b FC(x)987 3511 y FK(\026)987 3528 y(1)o FC(x)47 b FG(to)k FC(\017)p FK(;)591 b(c)n(hange)27 b(to)g(passiv)n(e)f(if)j(1-c)n(hild)d (disagrees)683 3628 y FG(goto)52 b FC(\025)933 3640 y FB(2)970 3628 y FK(;)523 3728 y FC(\025)571 3740 y FB(1)632 3728 y FK(:)28 b FG(set)53 b FC(w)r FK(0)5 b(\026)-47 b FC(x)987 3710 y FK(\026)987 3728 y(0)o FC(x)47 b FG(to)k FC(w)r FK(;)564 b(c)n(hange)27 b(to)g(activ)n(e)g(if)h(0-c)n(hild)f (disagrees)683 3827 y FG(set)53 b FC(w)r FK(1)5 b(\026)-47 b FC(x)987 3810 y FK(\026)987 3827 y(1)o FC(x)47 b FG(to)k FC(w)r FK(;)564 b(c)n(hange)27 b(to)g(activ)n(e)g(if)h(1-c)n(hild)f (disagrees)523 3927 y FC(\025)571 3939 y FB(2)632 3927 y FK(:)606 4093 y(ev)-5 b(aluates)41 b(no)r(de)g FC(w)r FK(.)h(The)f(tec)n(hnique)g(used)h(here)e(is)h(essen)n(tially)g(the)g (same)g(as)f(in)523 4193 y(section)25 b(5.3)g(for)g(computing)g(a)h (union.)f(Because)g(of)g(our)g(symmetric)g(represen)n(tation,)f(it)523 4292 y(w)n(orks)i(for)h(b)r(oth)h FD(_)g FK(and)g FD(^)p FK(.)606 4392 y(When)22 b(ev)-5 b(aluation)21 b(is)g(complete,)h(the)g (ro)r(ot)e(of)i FC(T)12 b FK(,)21 b FC(r)r FK(,)h(will)g(ha)n(v)n(e)e (its)i FC(x)p FK(-p)r(oin)n(ter)f(directed)523 4491 y(to)k(either)f FC(x)901 4503 y FB(0)963 4491 y FK(or)g FC(c)p FK(,)h(dep)r(ending)g (on)f(the)h(truth)g(v)-5 b(alue)25 b(of)f(the)h(input)h(form)n(ula)e (and)g(on)g(the)523 4591 y(default)30 b(truth)f(v)-5 b(alue)29 b(for)g FC(x)1414 4603 y FB(0)1481 4591 y FK(whic)n(h)g(in)g (turn)h(dep)r(ends)f(on)g(its)g(quan)n(ti\014er.)g(In)g(order)f(to)523 4691 y(test)k(whether)g(the)h FC(x)p FK(-p)r(oin)n(ter)e(from)h FC(r)j FK(is)d(directed)g(to)f FC(x)2361 4703 y FB(0)2399 4691 y FK(,)h(w)n(e)g(will)g(use)g(the)g(fact)g(that)523 4790 y FC(x)570 4802 y FB(0)613 4790 y FK(\026)-47 b FC(x)23 b FD(\022)g(f)p FC(r)r FD(g)k FK(and)h FC(p)p FK(\()p FC(x)1199 4802 y FB(0)1237 4790 y FC(;)14 b(x)p FK(\))23 b FD(2)h(f^)p FC(;)14 b FD(_g)p FK(.)27 b(The)h(instruction) 523 4956 y FG(set)54 b FK(0)5 b(\026)-47 b FC(xxx)47 b FG(to)k FC(\017)p FK(;)606 5122 y(c)n(hanges)27 b FC(p)p FK(\()p FC(x)1035 5134 y FB(0)1073 5122 y FC(;)14 b(x)p FK(\))29 b(to)g FC(\017)f FK(i\013)h(0)5 b(\026)-47 b FC(x)29 b FK(is)f(nonempt)n(y)-7 b(,)29 b(whic)n(h)f(is)h(equiv)-5 b(alen)n(t)28 b(to)g FC(p)p FK(\()p FC(r)n(;)14 b(x)p FK(\))26 b(=)e FC(x)3297 5134 y FB(0)3335 5122 y FK(.)523 5222 y(Com)n(bining)j(all)g(this)h(information)f(yields)h(the)g(v)-5 b(alue)27 b(of)h(the)g(form)n(ula.)p eop end %%Page: 60 70 TeXDict begin 60 69 bop 1855 299 a FF(5.4.)53 b Fg(PSP)-6 b(A)n(CE)30 b FF(=)21 b Fg(ASMM)s Fp(\000)-9 b FF(\()p Fg(N)12 b FF(\))p Fg(PTIME)162 b FF(60)606 506 y FK(Regarding)23 b(the)j(time)f(complexit)n(y)-7 b(,)25 b(the)g(most)g(time-consuming)g (stage)f(is)g(n)n(um)n(b)r(er)h(4,)523 606 y(where)33 b(for)h(eac)n(h)f(leaf)g(of)h FC(B)t FK(,)g(b)r(oth)g FC(X)41 b FK(and)33 b FC(B)38 b FK(are)33 b(tra)n(v)n(ersed,)f (requiring)g(at)i(most)g FC(n)3321 576 y FB(2)523 706 y FK(steps.)28 b(Hence)f(the)h(complete)g(algorithm)e(runs)h(in)h (quadratic)f(time.)523 957 y Fl(5.4.2)99 b(ASMM)5 b Fc(\000)-11 b Fl(NTIME)13 b Fb(\()p Fh(t)p Fb(\))28 b Fc(\022)g Fl(SP)-7 b(A)n(CE)11 b Fb(\()p Fh(t)2198 920 y Fa(2)2238 957 y Fb(\))523 1106 y FK(The)38 b(sim)n(ulation)f(whic)n(h)h(pro)n(v)n(es)e (this)j(inclusion)e(is)h(relativ)n(ely)f(straigh)n(tforw)n(ard)e(and) 523 1206 y(emplo)n(ys)29 b(previously)f(kno)n(wn)i(metho)r(ds)g([14)o (,)g(9)o(].)g(W)-7 b(e)30 b(can)g(write)f(do)n(wn)g(in)h(p)r(olynomial) 523 1305 y(space)35 b(a)h(trace)f(of)h(the)g(computation)f(con)n (taining)g(information)h(on)f(the)h(sequence)g(of)523 1405 y(instructions)c(executed.)h(Since)g(the)g(mac)n(hine)g(b)r(eing)g (sim)n(ulated)f(is)h(nondeterministic)523 1505 y(this)28 b(trace)f(is)g(guessed.)g(Next)h(it)g(is)f(v)n(eri\014ed)g(b)n(y)g (means)g(of)h(a)f(system)h(of)f(recursiv)n(e)f(pro-)523 1604 y(cedures)h(and)g(some)f(other)h(arra)n(ys)e(con)n(taining)h(p)r (olynomially)h(sized)g(information)f(that)523 1704 y(this)f(trace)e (indeed)h(represen)n(ts)f(an)h(accepting)f(computation.)h(The)h FG(if)18 b FK(,)24 b FG(new)34 b FK(and)24 b FG(set)53 b(to)523 1803 y FK(statemen)n(ts)41 b(p)r(ose)g(the)h(main)f(problems,) g(since)g(their)g(impact)h(on)f(the)g(\001-structure)523 1903 y(requires)c(rep)r(eated)i(recomputation)e(of)i(the)g(curren)n(t)f (state)g(of)h(the)g(\001-structure.)f(In)523 2003 y(p)r(olynomial)d (space)h(w)n(e)g(cannot)f(explicitly)h(store)g(the)g(p)r(ossibly)g(exp) r(onen)n(tially)f(large)523 2102 y(\001-structure)27 b(of)h(the)g(ASMM-mac)n(hine,)g(so)f(an)g(implicit)i(represen)n(tation) d(is)i(called)f(for.)523 2202 y(This)k(will)h(consist)e(of)i(three)f (arra)n(ys,)d(and)j(three)g(m)n(utually)h(recursiv)n(e)d(functions.)j (The)523 2302 y(arra)n(ys)25 b(are)625 2475 y(1.)41 b FG(instr)8 b FK([)p FC(i)p FK(])28 b(holds)f(the)h(instruction)f (executed)h(at)f(step)h FC(i)625 2638 y FK(2.)41 b FG(no)l(des)7 b FK([)p FC(i)p FK(])27 b(holds)g(the)h(n)n(um)n(b)r(er)g(of)f(no)r (des)h(at)f(time)h FC(i)625 2800 y FK(3.)41 b FG(c)l(enter)8 b FK([)p FC(i)p FK(])28 b(holds)f(the)h(cen)n(ter)f(at)g(time)h FC(i)606 2974 y FK(The)36 b(sim)n(ulation)f(starts)g(at)h(time)g(0)g (and)f(has)h(step)g FC(i)f FK(\()p FC(i)i FD(\025)f FK(1\))g(leading)f (to)h(time)g FC(i)p FK(.)523 3073 y(Eac)n(h)26 b(arra)n(y)f(is)j(of)f (length)h FC(t)p FK(,)g(the)f(n)n(um)n(b)r(er)h(of)f(steps)g(to)h(b)r (e)g(sim)n(ulated,)f(and)g(eac)n(h)g(arra)n(y)523 3173 y(elemen)n(t)i(\014ts)g(in)g FC(t)f FK(bits)h(since)g(the)g(n)n(um)n(b) r(er)f(of)h(no)r(des)f(can)h(at)f(most)h(double)f(after)h(eac)n(h)523 3272 y(step.)21 b(Ev)n(ery)e(no)r(de)h(will)h(ha)n(v)n(e)f(a)g(unique)h (n)n(um)n(b)r(er,)f(and)g(the)h(resulting)f(ordering)f(of)i(no)r(des) 523 3372 y(is)34 b(used)h(for)e(n)n(um)n(b)r(ering)h(no)r(des)g (created)g(b)n(y)g(a)g FG(new)43 b FK(instruction.)34 b(More)g(precisely)-7 b(,)33 b(a)523 3472 y FG(new)f FC(W)12 b FK(;)28 b(instruction)f(at)h(step)f FC(i)h FK(is)f(sim)n(ulated)g(as)g(follo)n(ws:)606 3571 y(If)h FC(W)35 b FK(=)23 b FC(\017)p FK(,)k(then)h FG(c)l(enter)9 b FK([)p FC(i)p FK(])23 b(=)f FG(no)l(des)7 b FK([)p FC(i)19 b FD(\000)f FK(1])27 b(and)g FG(no)l(des)8 b FK([)p FC(i)p FK(])22 b(=)h FG(no)l(des)7 b FK([)p FC(i)18 b FD(\000)g FK(1])g(+)g(1.)606 3671 y(Otherwise,)i(if)h FC(W)35 b FK(=)23 b FC(U)17 b FK(~)-50 b FC(\013)p FK(,)21 b(then)g FG(c)l(enter)9 b FK([)p FC(i)p FK(])23 b(=)f FG(c)l(enter)9 b FK([)p FC(i)c FD(\000)g FK(1])19 b(and)i FG(no)l(des)7 b FK([)p FC(i)p FK(])23 b(=)f FG(no)l(des)8 b FK([)p FC(i)d FD(\000)523 3771 y FK(1])18 b(+)g FD(j)p FC(Q)p FK(\()p FC(W)12 b FK(\))p FD(j)p FK(.)28 b(Seman)n(tically)-7 b(,)28 b(if)g FC(Q)p FK(\()p FC(W)12 b FK(\))23 b(=)g FD(f)p FC(x)2008 3783 y FB(0)2069 3771 y FC(<)f(x)2203 3783 y FB(1)2264 3771 y FC(<)h(:)14 b(:)g(:)23 b(<)g(x)2607 3783 y FA(k)q Fw(\000)p FB(1)2734 3771 y FD(g)p FK(,)k(then)h(at)g (time)g FC(i)p FK(,)523 3870 y FC(p)p FK(\()p FC(x)644 3882 y FA(j)680 3870 y FC(;)14 b(\013)p FK(\))23 b(=)g FG(no)l(des)7 b FK([)p FC(i)18 b FD(\000)g FK(1])g(+)g FC(j)5 b FK(,)28 b(for)f FC(j)h(<)23 b(k)j FK(=)c FD(j)p FC(Q)p FK(\()p FC(W)12 b FK(\))p FD(j)p FK(.)606 3970 y(F)-7 b(or)28 b(all)g(other)g(instructions,)g FG(no)l(des)7 b FK([)p FC(i)p FK(])24 b(=)g FG(no)l(des)8 b FK([)p FC(i)18 b FD(\000)h FK(1])28 b(and)g FG(c)l(enter)9 b FK([)p FC(i)p FK(])24 b(=)g FG(c)l(enter)8 b FK([)p FC(i)19 b FD(\000)523 4069 y FK(1],)38 b(except)h(that)g(the)g(instruction)g FG(set)49 b FC(\017)41 b FG(to)47 b FC(V)18 b FK(;)39 b(sets)g FG(c)l(enter)8 b FK([)p FC(i)p FK(])39 b(to)f FC(P)12 b FK(\()p FC(V)19 b FK(\).)39 b(In)g(order)523 4169 y(to)i(compute)h FC(P)12 b FK(\()p FC(V)19 b FK(\))41 b(and)h(to)f(sim)n(ulate)g(the)h FG(if)60 b FK(instruction,)41 b(w)n(e)g(use)g(the)h(follo)n(wing)523 4269 y(functions:)523 4442 y FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)p FK(\))42 b(returns)27 b(the)h(n)n(um)n(b)r(er)f(of)h(the)g(no)r(de)g FC(p)p FK(\()p FC(x;)14 b(\013)p FK(\))28 b(at)g(time)g FC(i)523 4605 y(P)12 b FK(\()p FC(x;)i(W)n(;)g(i)p FK(\))42 b(returns)27 b(whether)g FC(x)d FD(2)f FC(P)12 b FK(\()p FC(W)g FK(\))28 b(at)g(time)g FC(i)523 4767 y(Q)p FK(\()p FC(x;)14 b(W)n(;)g(i)p FK(\))42 b(returns)27 b(whether)g FC(x)d FD(2)f FC(Q)p FK(\()p FC(W)12 b FK(\))28 b(at)f(time)h FC(i)p FK(.)606 4941 y(These)f(functions)h(satisfy)f(the)h(equations) 837 5114 y FC(Q)p FK(\()p FC(x;)14 b(\017;)g(i)p FK(\))83 b(=)f FG(false)751 5239 y FC(Q)p FK(\()p FC(x;)14 b(U)9 b(\013;)14 b(i)p FK(\))84 b(=)e FC(P)12 b FK(\()p FC(x;)i(U;)g(i)p FK(\))751 5363 y FC(Q)p FK(\()p FC(x;)g(U)k FK(\026)-51 b FC(\013)q(;)14 b(i)p FK(\))83 b(=)f FC(P)12 b FK(\()p FC(x;)i(U)k FK(\026)-51 b FC(\013)q(;)14 b(i)p FK(\))p eop end %%Page: 61 71 TeXDict begin 61 70 bop 1855 299 a FF(5.4.)53 b Fg(PSP)-6 b(A)n(CE)30 b FF(=)21 b Fg(ASMM)s Fp(\000)-9 b FF(\()p Fg(N)12 b FF(\))p Fg(PTIME)162 b FF(61)838 506 y FC(P)12 b FK(\()p FC(x;)i(\017;)g(i)p FK(\))83 b(=)f(\()p FC(x)24 b FK(==)e FG(c)l(enter)9 b FK([)p FC(i)p FK(]\))752 631 y FC(P)j FK(\()p FC(x;)i(U)9 b(\013;)14 b(i)p FK(\))84 b(=)e(\()p FD(9)28 b FK(0)23 b FD(\024)g FC(y)i(<)e FG(no)l(des)7 b FK([)p FC(i)p FK(])23 b(:)g FC(P)12 b FK(\()p FC(y)s(;)i(U;)g(i)p FK(\))k FD(^)g FC(p)p FK(\()p FC(y)s(;)c(\013;)g(i)p FK(\))23 b(==)f FC(x)p FK(\))752 756 y FC(P)12 b FK(\()p FC(x;)i(U)k FK(\026)-51 b FC(\013)q(;)14 b(i)p FK(\))83 b(=)f FC(P)12 b FK(\()p FC(p)p FK(\()p FC(x;)i(\013;)g(i)p FK(\))p FC(;)g(U;)g(i)p FK(\))828 880 y FC(p)p FK(\()p FC(x;)g(\013;)g FK(0\))84 b(=)e(0)523 1063 y(whic)n(h)31 b(sho)n(ws)g(that)g(they)h(can)f(b)r(e)h(easily)e(computed,)i(apart)f (from)g(the)h(case)e FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)p FK(\))523 1162 y(for)33 b(p)r(ositiv)n(e)h(v)-5 b(alues)33 b(of)h FC(i)p FK(.)g(The)g(action)f(of)h FC(p)g FK(in)g(this)g(case)f (dep)r(ends)h(on)g(the)g(v)-5 b(alue)34 b(of)523 1262 y FG(instr)9 b FK([)p FC(i)p FK(],)27 b(the)h(only)f(in)n(teresting)g (v)-5 b(alues)27 b(of)h(whic)n(h)f(are)g FG(new)37 b FK(and)27 b FG(set)8 b FK(.)606 1362 y(Consider)34 b(\014rst)h(the)h (case)e FG(instr)9 b FK([)p FC(i)p FK(])36 b(=)f FG(new)45 b FC(W)12 b FK(.)35 b(If)h FC(x)g FD(\025)g FG(no)l(des)7 b FK([)p FC(i)23 b FD(\000)g FK(1])35 b(then)h(\(using)523 1461 y FC(Q)p FK(\()p FC(y)s(;)14 b(W)n(;)g(i)p FK(\)\))31 b(the)h(di\013erence)f FC(x)21 b FD(\000)g FG(no)l(des)7 b FK([)p FC(i)20 b FD(\000)h FK(1])31 b(can)g(b)r(e)g(used)h(to)f (\014nd)g(the)h FC(y)i FK(in)e FC(Q)p FK(\()p FC(W)12 b FK(\))523 1561 y(whic)n(h)23 b(`generated')e(and)i(no)n(w)f(p)r(oin)n (ts)h(to)f FC(x)i FK(\(unless)f FC(W)35 b FK(=)22 b FC(\017)p FK(,)h(in)g(whic)n(h)g(case)e FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)p FK(\))24 b(=)523 1660 y FG(c)l(enter)9 b FK([)p FC(i)i FD(\000)g FK(1]\).)23 b(No)n(w)h FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)p FK(\))23 b(=)g FC(p)p FK(\()p FC(y)s(;)14 b(\016)o(;)g(i)d FD(\000)g FK(1\),)22 b(where)i FC(\016)j FK(is)d(the)g(direction)g FC(W)36 b FK(ends)23 b(in.)523 1760 y(On)28 b(the)h(other)e(hand,)i(supp)r(ose) f FC(x)c(<)g FG(no)l(des)7 b FK([)p FC(i)19 b FD(\000)f FK(1].)28 b(If)h FC(W)36 b FK(=)24 b FC(U)17 b FK(~)-50 b FC(\013)28 b FK(\(i.e.)h FC(\013)p FK(-p)r(oin)n(ters)e(ma)n(y)523 1860 y(ha)n(v)n(e)h(c)n(hanged\))h(and)h FC(Q)p FK(\()p FC(x;)14 b(W)n(;)g(i)20 b FD(\000)f FK(1\),)29 b(then)i FC(x)f FK(has)f(generated)f FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)p FK(\))27 b(=)f FG(no)l(des)8 b FK([)p FC(i)19 b FD(\000)523 1959 y FK(1])f(+)g FD(jf)p FC(y)25 b(<)e(x)p FD(j)p FC(q)s FK(\()p FC(y)s(;)14 b(W)n(;)g(i)19 b FD(\000)f FK(1\))p FD(gj)p FK(.)27 b(Otherwise)f FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)p FK(\))24 b(=)f FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)k FD(\000)g FK(1\).)606 2059 y(Second)32 b(and)g(last,)h(consider)e(the)i(case)e FG(instr)9 b FK([)p FC(i)p FK(])31 b(=)f FG(set)39 b FC(W)k FG(to)36 b FC(V)19 b FK(.)33 b(If)g FC(W)43 b FK(=)30 b FC(U)17 b FK(~)-50 b FC(\013)33 b FK(and)523 2159 y FC(Q)p FK(\()p FC(x;)14 b(W)n(;)g(i)d FD(\000)g FK(1\),)22 b(then)j FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)p FK(\))24 b(is)f(the)i(unique)e FC(y)k FK(satisfying)c FC(P)12 b FK(\()p FC(y)s(;)i(V)5 b(;)14 b(i)d FD(\000)g FK(1\).)22 b(Otherwise)523 2258 y FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)p FK(\))24 b(=)e FC(p)p FK(\()p FC(x;)14 b(\013;)g(i)19 b FD(\000)f FK(1\).)606 2358 y(These)36 b(functions)g(can)f(easily)g(b)r(e)h(co)r(ded)g(on)f(a) g(T)-7 b(uring)36 b(Mac)n(hine)f(using)g(recursion)523 2457 y(\(stac)n(k)f(frames\).)g(The)g(recursion)f(depth)i(is)g(b)r (ounded)f(b)n(y)g FC(ct)p FK(,)h(where)f FC(c)g FK(is)h(a)f(constan)n (t)523 2557 y(dep)r(ending)j(only)f(on)h(the)g(maxim)n(um)f(path)h (length)g(of)g(the)g(ASMM)g(program.)e(Eac)n(h)523 2657 y(stac)n(k)26 b(frame)h(holds)g(a)g(return)g(address)f(and)h(some)f(no) r(de)i(n)n(um)n(b)r(ers)e(and)h(coun)n(ters)g(eac)n(h)523 2756 y(of)j(whic)n(h)f(\014ts)h(in)g FC(t)g FK(bits.)g(T)-7 b(ogether)29 b(with)h(the)g(three)g(arra)n(ys,)d(space)i FC(O)r FK(\()p FC(t)2874 2726 y FB(2)2912 2756 y FK(\))h(su\016ces)f (for)523 2856 y(the)f(sim)n(ulation)f(of)h FC(t)f FK(steps)h(of)f(the)h (ASMM.)523 3163 y FL(5.5)116 b(Conclusion)523 3362 y FK(Of)39 b(all)f(the)h(parallel)e(mo)r(dels)i(whic)n(h)f(ha)n(v)n(e)f (b)r(een)i(sho)n(wn)f(to)h(b)r(elong)f(to)g(the)h(Second)523 3462 y(Mac)n(hine)24 b(Class,)f(the)i FG(ASMM)38 b FK(is)25 b(the)f(\014rst)g(to)h(obtain)f(its)g(p)r(o)n(w)n(er)f(from)h(the)h (use)f(of)g(asso-)523 3562 y(ciativ)n(e)19 b(addressing,)g(th)n(us)h (making)f(it)h(an)g(in)n(teresting)f(addition)h(to)g(the)g(realm)f(of)h (Second)523 3661 y(Mac)n(hine)29 b(Class)f(devices.)g(It)h(pro)n(vides) f(another)g(example)h(that)g(a)f(small)h(mo)r(di\014cation)523 3761 y(of)c(a)g(mac)n(hine)g(mo)r(del)g(can)g(enforce)f(a)h(substan)n (tial)f(increase)g(in)i(computational)e(p)r(o)n(w)n(er.)523 3861 y(In)29 b([4])g(it)h(w)n(as)e(sho)n(wn)h(that)g(this)g(increase)f (is)h(pro)n(v)n(ok)n(ed)e(b)n(y)i(adding)g(m)n(ultiplicativ)n(e)g(in-) 523 3960 y(structions)35 b(to)g(the)h(unit-time)g(standard)f FG(RAM)49 b FK(mo)r(del.)35 b(Similarly)g(the)h FG(EDITRAM)523 4060 y FK(mo)r(del)31 b(obtains)f(its)g(p)r(o)n(w)n(er)f(from)i(in)n (tro)r(ducing)f(a)g(few)g(edit)h(op)r(erators)e(that)h(are)g(a)n(v)-5 b(ail-)523 4159 y(able)32 b(on)f(most)h(real)f(life)h(text)g(editors)f (an)n(yho)n(w.)g(In)h(the)g FG(ASMM)46 b FK(mo)r(del)32 b(it)g(turns)g(out)523 4259 y(that)j(tra)n(v)n(ersing)d(p)r(oin)n(ters) j(in)g(the)g(rev)n(erse)e(direction)h(is)h(all)f(w)n(e)h(need)g(to)g (obtain)f(full)523 4359 y(parallel)h(p)r(o)n(w)n(er.)g(A)n(t)h(the)g (same)g(time,)g(the)g(fact)g(that)h(the)f(storage)e(structure)h(of)h (the)523 4458 y FG(ASMM)j FK(is)24 b(manipulated)h(b)n(y)f(a)g (\014nite)h(program)e(that)i(in)n(teracts)e(with)i(the)g (\001-structure)523 4558 y(b)n(y)i(means)g(of)h(a)f(single)g(cen)n(ter) g(seems)g(to)h(b)r(e)g(the)g(main)f(reason)f(wh)n(y)h(the)h(mac)n(hine) f(has)523 4658 y(not)c(b)r(ecome)h(to)r(o)f(p)r(o)n(w)n(erful.)g(As)g (sho)n(wn)g(b)n(y)g(Lam)g(and)g(Ruzzo)g([11)o(],)h(a)f(mo)r(del)g (where)g(the)523 4757 y(no)r(des)34 b(b)r(ecome)h(indep)r(enden)n(tly)g (activ)n(e)e(\014nite)j(automata)d(b)r(ecomes)h(equiv)-5 b(alen)n(t)34 b(with)523 4857 y(a)i(restricted)f(v)n(ersion)g(of)h(the) h FG(P)o FD(\000)-9 b FG(RAM)49 b FK(of)37 b(F)-7 b(ortune)36 b(and)g(Wyllie.)g(This)g(su\016ces)g(for)523 4956 y(making)26 b(the)g(nondeterministic)g(v)n(ersion)f(more)g(p)r(o)n(w)n(erful)h (than)g FG(PSP)-6 b(A)n(CE)37 b FK(\(except)26 b(for)523 5056 y(the)i(unlik)n(ely)g(case)e(that)i FG(PSP)-6 b(A)n(CE)34 b FK(=)22 b FG(NEXPTIME)12 b FK(\).)28 b(This)f(situation)h(resem)n (bles)e(the)523 5156 y(relation)33 b(b)r(et)n(w)n(een)i(the)g FG(SIMD)n(A)n(G)41 b FK(describ)r(ed)34 b(b)n(y)g(Goldsc)n(hlager)e ([8],)i(where)g(a)g(single)523 5255 y(pro)r(cessor)i(broadcasts)g(its)i (instructions)f(to)h(a)g(collection)f(of)h(p)r(eripheral)f(pro)r (cessors)523 5355 y(and)31 b(the)h FG(P)o FD(\000)-9 b FG(RAM)44 b FK(mo)r(del)31 b(of)g(F)-7 b(ortune)31 b(and)g(Wyllie)h([7)o(])g(where)e(the)i(lo)r(cal)e(pro)r(cessors)p eop end %%Page: 62 72 TeXDict begin 62 71 bop 2589 299 a FF(5.5.)53 b(Conclusion)155 b(62)523 506 y FK(are)27 b(indep)r(enden)n(t.)606 606 y(Clearly)34 b(there)h(are)g(other)f(mo)r(dels)i(whic)n(h)f(could)g (serv)n(e)f(as)g(a)h(parallelized)f(v)n(ersion)523 706 y(of)h(the)h FG(SMM)14 b FK(.)36 b(In)g(our)e(mo)r(del)i(the)g(set-to)f (instruction)g(is)g(rather)g(limited.)h(Since)g(its)523 805 y(second)23 b(argumen)n(t)f(addresses)f(a)i(single)g(no)r(de,)g(it) h(cannot)f(b)r(e)g(used)h(for)e(setting)i(di\013eren)n(t)523 905 y(p)r(oin)n(ters)j(to)h(di\013eren)n(t)h(destinations.)e(This)h (sev)n(erely)f(limits)h(the)h(scop)r(e)e(of)h(pro)r(ofs)f(that)523 1005 y(our)34 b(mac)n(hine)g(is)g(indeed)h(so)f(p)r(o)n(w)n(erful.)g(A) h(more)f(con)n(v)n(en)n(tional)e(approac)n(h,)h(based)h(on)523 1104 y(the)25 b(construction)f(of)h(the)g(transition)f(graph)f(of)i(a)f (p)r(olynomial)g(space)g(b)r(ounded)h(T)-7 b(uring)523 1204 y(mac)n(hine,)33 b(and)g(the)h(computation)f(of)h(its)f(transitiv) n(e)g(closure)f(b)n(y)h(p)r(oin)n(ter)g(jumping|)523 1303 y(as)40 b(suggested)f(b)n(y)h(the)h(referee|is)e(rendered)g (infeasible)i(b)n(y)f(the)h(limitation)f(of)g(the)523 1403 y(set-to)26 b(instruction.)g(Ov)n(ercoming)e(this)j(limitation)f (w)n(ould)g(require)f(a)h(di\013eren)n(t)h(\015a)n(v)n(our)523 1503 y(of)33 b(set-to)g(instruction.)h(A)f(natural)g(p)r(ossibilit)n(y) g(is)g(to)h(allo)n(w)e(the)i(con)n(v)n(en)n(tional)d(set-to)523 1602 y(instruction)19 b(of)g(the)g FG(SMM)34 b FK(to)18 b(b)r(e)i(executed)f(in)g(parallel)f(with)i(resp)r(ect)e(to)h(man)n(y)g (di\013eren)n(t)523 1702 y(`cen)n(ters',)25 b(the)i(latter)f(b)r(eing)g (sp)r(eci\014ed)g(b)n(y)g(a)g(third)g(argumen)n(t)f(whic)n(h)h(is)g(a)g (string)f(in)3279 1681 y(~)3265 1702 y(\001)q(.)523 1802 y(This)35 b(mo)r(del)h(has)f(some)g(dra)n(wbac)n(ks,)e(ho)n(w)n(ev)n (er.)g(One)i(is)h(the)g(p)r(ossibilit)n(y)f(of)g(con\015icts)523 1901 y(arising)c(when)h(a)f(p)r(oin)n(ter)h(m)n(ust)g(b)r(e)g(set)g(to) g(one)g(no)r(de)g(when)g(addressed)f(through)g(one)523 2001 y(cen)n(ter,)23 b(and)h(to)g(another)e(no)r(de)i(when)g(addressed) f(through)g(another)g(cen)n(ter.)g(Resolving)523 2100 y(this)35 b(problem)e(w)n(ould)h(probably)f(detract)h(from)g(the)h (elegance)e(of)h(the)g(mo)r(del,)h(one)f(of)523 2200 y(its)f(prime)g(features.)g(Another)g(problem)f(is)h(that)h(it)f(b)r (ecomes)g(harder)f(to)h(manage)f(all)523 2300 y(the)f(p)r(oin)n(ters,)f (since)g(there)g(is)g(no)g(simple)h(w)n(a)n(y)e(in)i(whic)n(h)f(to)g (direct)g(a)g(bunc)n(h)h(of)f(them)523 2399 y(to)f(some)g(\014xed)g(no) r(de)g(where)f(they)i(can)e(b)r(e)i(`out)f(of)g(the)h(w)n(a)n(y'.)e(Th) n(us)h(it)g(is)g(not)g(a)g(strict)523 2499 y(generalization)23 b(of)h(our)g(mo)r(del,)h(although)f(it)h(should)g(b)r(e)g(p)r(ossible)f (to)h(sim)n(ulate)f(our)g(set-)523 2599 y(to)e(instruction)g(with)g (this)g(new)g(one)g(b)n(y)g(k)n(eeping)f(around)g(an)g(extra)g (direction)h(to)g(alw)n(a)n(ys)523 2698 y(p)r(oin)n(t)28 b(to)f(the)h(real)f(cen)n(ter.)p eop end %%Page: 63 73 TeXDict begin 63 72 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Bibliograph)l(y)565 2516 y FK([1])41 b(Aho,)d(A.V.,)i(Hop)r(croft,)e(J.E.)g(and)h(Ullman,)g (J.D.,)g FG(The)i(Design)f(and)g(A)n(nalysis)694 2615 y(of)35 b(Computer)f(A)n(lgorithms)7 b FK(,)34 b(Addison-W)-7 b(esley)32 b(Publ.)g(Comp.,)h(Reading,)e(Mass.,)694 2715 y(1974.)565 2867 y([2])41 b(Barzdin',)35 b(Y)-7 b(a.)36 b(M.,)g FG(Universal)i(pulsing)g(elements)7 b FK(,)35 b(So)n(viet)h(Ph)n(ysics-Doklady)d(9)694 2967 y(\(1965\))26 b(523{525.)565 3120 y([3])41 b(Barzdin',)20 b(Y)-7 b(a.)20 b(M.,)h FG(Universality)k(pr)l(oblems)f(in)g(the)f(the)l(ory)h(of)h(gr) l(owing)f(automata)6 b FK(,)694 3219 y(So)n(viet)27 b(Ph)n (ysics-Doklady)e(9)i(\(1965\))f(535{537.)565 3372 y([4])41 b(Bertoni,)c(A.,)h(Mauri,)f(G.)h(and)f(Sabadini,)g(N.,)h FG(Simulations)i(among)f(classes)h(of)694 3472 y(r)l(andom)35 b(ac)l(c)l(ess)g(machines)h(and)g(e)l(quivalenc)l(e)f(among)h(numb)l (ers)e(suc)l(cinctly)h(r)l(ep-)694 3571 y(r)l(esente)l(d)9 b FK(,)27 b(Ann.)h(Discr.)f(Math.)h(25)f(\(1985\))f(65{90.)565 3724 y([5])41 b(Chandra,)25 b(A.K.,)h(Kozen,)f(D.C.)i(and)e(Sto)r(c)n (kmey)n(er,)g(L.J.,)h FG(A)n(lternation)6 b FK(,)26 b(J.)g(Asso)r(c.) 694 3824 y(Comput.)i(Mac)n(h.)f(28)f(\(1981\))h(114{133.)565 3976 y([6])41 b(Dymond,)27 b(P)-7 b(.W.)27 b(and)g(Co)r(ok,)f(S.A.,)i FG(Har)l(dwar)l(e)i(c)l(omplexity)g(and)g(p)l(ar)l(al)t(lel)h(c)l (ompu-)694 4076 y(tation)6 b FK(,)35 b(Pro)r(c.)f(21st)g(Ann.)h(IEEE)f (Symp.)h(F)-7 b(oundations)34 b(of)h(Computer)g(Science,)694 4176 y(1980,)25 b(pp.)j(360{372.)565 4328 y([7])41 b(F)-7 b(ortune,)27 b(S.)h(and)f(Wyllie,)h(J.,)f FG(Par)l(al)t(lelism)32 b(in)e(r)l(andom)g(ac)l(c)l(ess)g(machines)7 b FK(,)29 b(Pro)r(c.)694 4428 y(10th)e(Ann.)h(A)n(CM)g(Symp.)g(Theory)e(of)i (Computing,)f(1978,)f(pp.)i(114{118.)565 4581 y([8])41 b(Goldsc)n(hlager,)27 b(L.M.,)j FG(A)g(universal)i(inter)l(c)l(onne)l (ction)f(p)l(attern)g(for)i(p)l(ar)l(al)t(lel)g(c)l(om-)694 4680 y(puters)7 b FK(,)27 b(J.)g(Asso)r(c.)h(Comput.)f(Mac)n(h.)h(29)e (\(1982\))h(1073{1086.)565 4833 y([9])41 b(Hartmanis,)23 b(J.)i(and)f(Simon,)g(J.,)h FG(On)h(the)h(structur)l(e)e(of)i(fe)l (asible)i(c)l(omputations)7 b FK(,)24 b(in)694 4932 y(Rubino\013,)31 b(M.)g(and)f(Y)-7 b(o)n(vits,)30 b(M.C.)h(\(Eds.\),)g(Adv)-5 b(ances)30 b(in)h(Computers,)f(V)-7 b(ol.)31 b(14)f(,)694 5032 y(Acad.)d(Press,)f(New)i(Y)-7 b(ork,)27 b(1976,)f(pp.)i(1{43.)523 5185 y([10])41 b(Kolmogoro)n(v,)19 b(A.N.)24 b(and)f(Usp)r(enskii,)g (V.A.,)h FG(On)h(the)h(de\014nition)g(of)g(an)g(algorithm)6 b FK(,)694 5284 y(Usp)r(ehi)29 b(Mat.)f(Nauk)g(13)g(\(1958\))f(3{28)f (;)j(AMS)g(T)-7 b(ransl.)27 b(2nd)h(ser.)g(29)g(\(1963\))f(217{)694 5384 y(245.)p eop end %%Page: 64 74 TeXDict begin 64 73 bop 2589 299 a FF(5.5.)53 b(Conclusion)155 b(64)523 506 y FK([11])41 b(Lam,)25 b(T.W.)h(and)f(Ruzzo,)g(W.L.,)h FG(The)j(p)l(ower)g(of)f(p)l(ar)l(al)t(lel)i(p)l(ointer)e(manipulation) 6 b FK(,)694 606 y(Pro)r(c.)26 b(1st)i(Ann.)g(A)n(CM)g(Symp.)h(P)n (arallel)c(Algorithms)j(and)f(Arc)n(hitectures,)h(1989,)694 706 y(pp.)g(92{102)523 872 y([12])41 b(Lugin)n(buhl,)46 b(D.R.)i(and)e(Loui,)h(M.C.,)g FG(Hier)l(ar)l(chies)i(and)f(sp)l(ac)l (e)g(me)l(asur)l(es)f(for)694 971 y(p)l(ointer)29 b(machines)7 b FK(,)27 b(Inf.)g(and)f(Comput.,)g(1993,)e(to)i(app)r(ear;)g(also:)f (Rep)r(ort)h(UILU-)694 1071 y(ENG-88-2245,)45 b(Departmen)n(t)50 b(of)f(Electr.)g(Engin.,)f(Univ)n(ersit)n(y)h(of)g(Illinois)g(at)694 1171 y(Urbana-Champaign,)25 b(1988.)523 1337 y([13])41 b(P)n(arb)r(erry)-7 b(,)22 b(I.,)j FG(Par)l(al)t(lel)k(sp)l(e)l(e)l (dup)f(of)g(se)l(quential)f(machines:)i(a)f(defense)g(of)g(the)f(p)l (ar-)694 1436 y(al)t(lel)k(c)l(omputation)f(thesis)7 b FK(,)28 b(SIGA)n(CT)g(News)g(18,)e(nr.)i(1,)f(1986,)f(pp.)i(54{67.) 523 1602 y([14])41 b(Pratt,)18 b(V.R.)i(and)f(Sto)r(c)n(kmey)n(er,)f (L.J.,)h FG(A)j(char)l(acterization)i(of)f(the)f(p)l(ower)h(of)g(ve)l (ctor)694 1702 y(machines)7 b FK(,)28 b(J.)g(Comput.)g(Syst.)g(Sci.)f (12)g(\(1976\))f(198{221.)523 1868 y([15])41 b(Sa)n(vitc)n(h,)g(W.J.,)i FG(R)l(e)l(cursive)g(T)-6 b(uring)43 b(machines)7 b FK(,)44 b(In)n(ter.)e(J.)g(Comput.)h(Math.)f(6)694 1968 y(\(1977\))26 b(3{31.)523 2134 y([16])41 b(Sc)n(h\177)-42 b(onhage,)21 b(A.,)i FG(Stor)l(age)j(mo)l(di\014c)l(ation)h(machines)7 b FK(,)24 b(SIAM)f(J.)g(Comput.)g(9)f(\(1980\))694 2233 y(490{508.)523 2399 y([17])41 b(Slot,)g(C.)g(and)g(v)-5 b(an)41 b(Emde)g(Boas,)f(P)-7 b(.,)41 b FG(The)i(pr)l(oblem)g(of)g(sp)l (ac)l(e)g(invarianc)l(e)h(for)694 2499 y(se)l(quential)30 b(machines)7 b FK(,)28 b(Inf.)h(and)e(Comp.)h(77)e(\(1988\))h(93{122.) 523 2665 y([18])41 b(Stegw)n(ee,)28 b(R.A.,)i(T)-7 b(oren)n(vliet,)27 b(L.)i(and)g(v)-5 b(an)29 b(Emde)g(Boas,)e(P)-7 b(.,)29 b FG(The)j(p)l(ower)g(of)f(your)694 2765 y(e)l(ditor)9 b FK(,)27 b(Rep)r(ort)f(RJ)f(4711)g(\(50179\),)f(IBM)i(Researc)n(h)e (Lab.,)i(San)g(Jose,)f(Ca.,)h(1985.)523 2931 y([19])41 b(Sto)r(c)n(kmey)n(er,)17 b(L.,)i FG(The)j(p)l(olynomial)i(time)e(hier) l(ar)l(chy)7 b FK(,)21 b(Theor.)c(Comp.)i(Sci.)g(3)f(\(1977\))694 3030 y(1{22.)523 3196 y([20])41 b(v)-5 b(an)34 b(Emde)g(Boas,)g(P)-7 b(.,)34 b FG(The)j(se)l(c)l(ond)f(machine)i(class)f(2:)g(an)f(encyclop) l(ae)l(dic)j(view)694 3296 y(on)28 b(the)h(Par)l(al)t(lel)h (Computation)g(Thesis)7 b FK(,)27 b(in:)g(Rasio)n(w)n(a,)d(H.)j (\(Ed.\),)f(Mathematical)694 3396 y(Problems)32 b(in)h(Computation)g (Theory)-7 b(,)33 b(Banac)n(h)f(Cen)n(ter)h(Publications,)f(V)-7 b(ol.)34 b(21,)694 3495 y(W)-7 b(arsa)n(w,)26 b(1987,)g(pp.)i(235{256.) 523 3661 y([21])41 b(v)-5 b(an)21 b(Emde)g(Boas,)e(P)-7 b(.,)21 b FG(Sp)l(ac)l(e)k(me)l(asur)l(es)e(for)i(stor)l(age)f(mo)l (di\014c)l(ation)h(machines)7 b FK(,)22 b(Inf.)694 3761 y(Pro)r(c.)k(Lett.)i(30)f(\(1989\))f(103{110.)523 3927 y([22])41 b(v)-5 b(an)26 b(Emde)g(Boas,)e(P)-7 b(.,)26 b FG(Machine)k(mo)l(dels)g(and)e(simulations)7 b FK(,)27 b(in:)g(v)-5 b(an)26 b(Leeu)n(w)n(en,)f(J.)694 4027 y(\(Ed.\),)33 b(Handb)r(o)r(ok)f(of)g(Theoretical)f(Computer)i(Science,)f (North-Holland)g(Publ.)694 4126 y(Comp.)27 b(1990,)f(pp.)i(1{66.)523 4292 y([23])41 b(W)-7 b(agner,)30 b(K.)h(and)g(W)-7 b(ec)n(hsung,)30 b(G.,)i FG(Computational)i(Complexity)7 b FK(,)33 b(Mathematis-)694 4392 y(c)n(he)39 b(Monographien)f(V)-7 b(ol.)39 b(19,)g(VEB)g(Deutsc)n (her)g(V)-7 b(erlag)39 b(der)g(Wissensc)n(haften,)694 4491 y(Berlin)27 b(\(DDR\),)i(1986,)d(also:)g(Reidel)i(Publ.)g(Comp.,)f (Dordrec)n(h)n(t,)g(1986.)523 4658 y([24])41 b(Wiedermann,)29 b(J.,)g FG(Par)l(al)t(lel)k(T)-6 b(uring)31 b(machines)i FK(,)c(T)-7 b(ec)n(hn.)30 b(Rep.)f(R)n(UU-CS-84-11,)694 4757 y(Dept.)f(of)g(Computer)f(Science,)h(Univ)n(ersit)n(y)e(of)i (Utrec)n(h)n(t,)f(Utrec)n(h)n(t,)h(1984.)523 4923 y([25])41 b(Wiedermann,)22 b(J.,)g FG(We)l(ak)j(p)l(ar)l(al)t(lel)i(machines;)g (a)e(new)g(class)g(of)h(physic)l(al)t(ly)i(fe)l(asible)694 5023 y(p)l(ar)l(al)t(lel)38 b(machine)g(mo)l(dels)7 b FK(,)36 b(I.M.)g(Ha)n(v)n(el)e(&)h(V.)g(Koub)r(ek)g(\(Eds.\),)g(pro)r (c.)g(Mathe-)694 5122 y(matical)25 b(F)-7 b(oundations)25 b(of)h(Computer)f(Science)h(1992,)d(Springer)i(Lecture)g(notes)g(in)694 5222 y(Computer)i(Science)h(629)e(\(1992\))g(pp.)i(95{111.)p eop end %%Page: 65 75 TeXDict begin 65 74 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(6)523 806 y FI(Ho)l(w)52 b(to)g(Construct)f(an)h(A)l(tomic)g(V)-13 b(ariable)523 2549 y FL(6.1)116 b(In)m(tro)s(duction.)523 2748 y FK(Comm)n(unication) 27 b(pla)n(ys)f(a)h(vital)g(role)g(in)h(an)n(y)e(distributed)i(system,) f(allo)n(wing)f(m)n(ultiple)523 2848 y(pro)r(cessors)21 b(to)h(share)g(and)h(exc)n(hange)e(information.)i(Con)n(v)n(en)n (tionally)e(this)i(comm)n(unica-)523 2947 y(tion)i(is)f(based)h(on)f(m) n(utually)h(exclusiv)n(e)e(access)h(to)g(a)h(shared)e FG(variable)p FK(.)k(This)e(is)g(the)g(case)523 3047 y(not)31 b(only)g(in)h(a)f(shared)g(memory)f(system,)i(but)g(also)e(at) h(the)h(t)n(w)n(o)f(endp)r(oin)n(ts)g(of)h(a)f(link)523 3147 y(in)d(a)f(message)f(based)h(system.)h(Unfortunately)-7 b(,)28 b(this)g(exclusiv)n(e)e(nature)h(of)h(access)e(ma)n(y)523 3246 y(force)d(one)h(user)f(of)h(suc)n(h)f(a)h(v)-5 b(ariable)23 b(to)h(w)n(ait)f(for)g(another)g(user)h(and)f(therefore)g(imp)r(edes) 523 3346 y(the)33 b(parallelism)f(inheren)n(t)g(in)i(distributed)f (systems.)f(In)h(the)g(last)g(y)n(ears)e(in)n(terest)h(has)523 3445 y(fo)r(cussed)21 b(on)g FG(wait-fr)l(e)l(e)h FK(v)-5 b(ariables,)21 b(whic)n(h)g(can)g(b)r(e)h(accessed)e(concurren)n(tly)g (without)i(an)n(y)523 3545 y(form)33 b(of)h(w)n(aiting.)f(The)g (question)g(is)h(ho)n(w)f(to)g(construct)g(suc)n(h)g(v)-5 b(ariables)33 b(in)h(terms)f(of)523 3645 y(lo)n(w)n(er-lev)n(el)25 b(hardw)n(are,)h(lik)n(e)h(\015ip-\015ops.)606 3744 y(P)n(eterson)35 b(w)n(as)h(one)g(of)h(the)g(\014rst)f(to)h(in)n(v)n(estigate)e(this)i (question)f(in)h([15)o(],)g(giving)f(a)523 3844 y(construction)f(for)h (a)f(single-writer,)g(m)n(ulti-reader,)f(m)n(ulti-bit)j(atomic)e(v)-5 b(ariable)35 b(from)523 3944 y(single-writer,)25 b(m)n(ulti-reader)g (atomic)h(bits.)h(Later,)e(Lamp)r(ort)52 b([10],)26 b(spark)n(ed)f (o\013)h(in)n(ter-)523 4043 y(est)k(in)g(the)g(sub)5 b(ject)29 b(b)n(y)h(dev)n(eloping)e(a)h(precise)g(theory)g(and)h (formalisms|apart)d(from)523 4143 y(presen)n(ting)e(some)h(solutions)f (to)h(subproblems.)g(It)g(is)g(w)n(orth)f(noting)h(that)h(most)e(pap)r (ers)523 4242 y(use)i(the)h(w)n(ord)f(\\register")e(instead)j(of)f(v)-5 b(ariable.)606 4342 y(The)35 b(ultimate)g(goal)f(is)g(to)h(build)g(a)f (v)-5 b(ariable)34 b(accessible)g(to)h(an)n(y)f(\014xed)g(n)n(um)n(b)r (er)h(of)523 4442 y(users|eac)n(h)21 b(ha)n(ving)g(write)i(and)f(read)g (capabilities|whic)n(h)g(can)g(hold)g(an)n(y)g(\014xed)h(n)n(um-)523 4541 y(b)r(er)j(of)f(v)-5 b(alues,)25 b(and)h(whose)f(accesses)f(b)r (eha)n(v)n(e)h(atomically)-7 b(.)24 b(The)i(latter)f(means)g(that)h (for)523 4641 y(an)n(y)32 b(sequence)f(of)h(op)r(erations)f(on)h(the)h (v)-5 b(ariable,)31 b(the)i(partial)e(precedence)h(order)f(\(de-)523 4741 y(\014ned)g(later\))f(among)g(those)g(op)r(erations)f(m)n(ust)i (ha)n(v)n(e)e(a)h(total)g(extension)g(\(for)h(external)523 4840 y(consistency\))k(suc)n(h)g(that)h(eac)n(h)f(read)f(op)r(eration)h (returns)g(the)h(v)-5 b(alue)35 b(from)g(the)h(write)523 4940 y(op)r(eration)26 b(whic)n(h)h(is)g(the)h(last)f(to)g(precede)g (it)g(in)h(the)g(total)e(order)g(\(for)h(in)n(ternal)g(consis-)523 5039 y(ten)n(tency\).)606 5139 y(The)35 b(construction)f(of)h(this)g (\\ultimate")f(v)-5 b(ariable)34 b(is)g(not)h(done)f(directly)h(from)f (the)523 5239 y(most)21 b(primitiv)n(e)g(kind)h(of)f(v)-5 b(ariable.)20 b(Rather,)h(this)h(task)f(is)g(more)f(con)n(v)n(enien)n (tly)g(split)i(in)n(to)523 5338 y(t)n(w)n(o)j(subtasks:)f(the)i (construction)f(of)g(atomic,)g(m)n(ulti-bit,)h(single-writer,)e (single-reader)p eop end %%Page: 66 76 TeXDict begin 66 75 bop 1890 299 a FF(6.2.)53 b(Comparison)27 b(with)f(Related)g(W)-6 b(ork)153 b(66)p 1242 494 1397 5 v 1240 594 5 100 v 1292 564 a FK(P)n(ap)r(er)p 1553 594 V 198 w(used)p 1914 594 V 176 w(write)p 2276 594 V 204 w(read)p 2637 594 V 1242 598 1397 5 v 1240 697 5 100 v 1292 667 a([15)o(])p 1553 697 V 184 w(3)p FC(b)17 b FK(+)h(10)p 1914 697 V 99 w(3)p FC(b)g FK(+)g(13)p 2276 697 V 98 w(3)p FC(b)g FK(+)g(23)p 2637 697 V 1240 797 V 1292 767 a([9)o(])p 1553 797 V 226 w(4)p FC(b)f FK(+)h(39)p 1914 797 V 182 w FC(b)g FK(+)g(5)p 2276 797 V 141 w FC(b)g FK(+)g(26)p 2637 797 V 1240 897 V 1292 867 a(this)p 1553 897 V 220 w(4)p FC(b)g FK(+)g(8)p 1914 897 V 182 w FC(b)g FK(+)g(2)p 2276 897 V 182 w FC(b)g FK(+)h(4)p 2637 897 V 1242 901 1397 5 v 1294 1110 a FF(T)-6 b(ABLE)26 b(6.1.)h(w)n(orst)f(case)h(n)n(um)n(b)r(er)d(of)j(bits)523 1344 y FK(v)-5 b(ariables)32 b(and)h(next)g(the)h(construction)e(of)i (atomic,)e(m)n(ulti-bit,)i(m)n(ulti-user)f(v)-5 b(ariables)523 1444 y(from)27 b(the)h(former)f(t)n(yp)r(e.)606 1544 y(This)36 b(partition)f(can)g(b)r(e)h(justi\014ed)g(b)n(y)f(the)h (nature)f(of)h(the)g(problems)e(in)n(v)n(olv)n(ed.)h(In)523 1643 y(the)26 b(\014rst)g(construction)f(\(as)g(in)h([10)o(]\),)g(the)g (m)n(ulti-bit)h(v)-5 b(alue)25 b(is)h(to)g(b)r(e)g FG(distribute)l(d)g FK(o)n(v)n(er)e(a)523 1743 y(m)n(ultiple)f(n)n(um)n(b)r(er)f(of)g (bits.)h(In)g(the)f(second)g(construction)g(\(as)g(in)g([20)o(]\),)h (the)g(v)-5 b(alue)22 b(of)g(the)523 1842 y(m)n(ulti-user)f(v)-5 b(ariable)20 b(is)h FG(r)l(eplic)l(ate)l(d)i FK(among)e(all)g(users) 2207 1812 y FB(1)2264 1842 y FK(along)g(with)g(con)n(trol)f (information)523 1942 y(whic)n(h)28 b(allo)n(ws)f(eac)n(h)g(user)h(to)g (iden)n(tify)g(the)h(most)f(recen)n(tly)f(written)h(v)-5 b(alue.)28 b(This)g(is)g(the)523 2042 y(more)39 b(complex)g(problem,)g (as)g(witnessed)g(b)n(y)h(the)g(fact)f(that)h(man)n(y)f(prop)r(osed)g (\(and)523 2141 y(often)25 b(pro)n(v)n(en\))e(solutions)h(w)n(ere)g (later)g(found)g(to)h(b)r(e)g(erroneous.)d(The)j(in)n(terested)f (reader)523 2241 y(is)k(referred)e(to)h([2,)h(8)o(,)g(14)o(,)g(16)o(,)f (20)o(].)606 2341 y(In)32 b(this)h(c)n(hapter)e(w)n(e)g(attac)n(k)h (the)g(\014rst)g(problem,)f(and)h(also)f(giv)n(e)g(sp)r(ecial)h(atten)n (tion)523 2440 y(to)c(the)f(case)g(of)h(constructing)f(a)g(single-bit)g (atomic)g(v)-5 b(ariable.)523 2751 y FL(6.2)116 b(Comparison)36 b(with)h(Related)h(W)-10 b(ork)523 2950 y FK(There)36 b(are)g(basically)f(t)n(w)n(o)h(approac)n(hes)e(that)j(can)g(b)r(e)g (tak)n(en)f(in)h(order)e(to)h(construct)523 3050 y(a)f(m)n(ulti-bit)g (v)-5 b(ariable)34 b(from)h(a)g(linear)f(n)n(um)n(b)r(er)h(of)g(single) f(bits.)h(The)h(\014rst)e(w)n(as)g(tak)n(en)523 3150 y(b)n(y)d(G.L.)h(P)n(eterson)e(in)i([15)o(])f(and)h(in)n(v)n(olv)n(es)e (k)n(eeping)g(3)h(copies)g(of)h(the)g(m)n(ulti-bit)g(v)-5 b(alue,)523 3249 y(called)23 b(the)i FG(tr)l(acks)f FK(\(in)g(the)g (original)f(pap)r(er,)g(they)h(are)f(called)g FG(bu\013ers)p FK(\).)h(Apart)g(from)f(the)523 3349 y(3)33 b(trac)n(ks,)f(there)h(are) f(some)g FG(c)l(ontr)l(ol)i FK(bits)f(whic)n(h)g(w)n(e)g(collectiv)n (ely)f(call)h(the)h FG(switch)p FK(.)g(In)523 3449 y(this)f(approac)n (h)d(the)i(writer)g(writes)g(the)g(new)g(v)-5 b(alue)32 b(to)g(all)g(three)g(trac)n(ks.)f(The)h(reader)523 3548 y(reads)27 b(from)h(all)f(trac)n(ks,)g(but)i(in)f(a)f(di\013eren)n(t)i (order.)d(The)i(switc)n(h)g(allo)n(ws)f(the)h(reader)f(to)523 3648 y(determine)h(whic)n(h)f(trac)n(k)g(w)n(as)f(read)h(without)h(in)n (terference)f(from)g(the)h(writer.)606 3747 y(In)j(Kirousis)f(et.)h (al.)g([9)o(],)h(the)f(second)g(approac)n(h)e(w)n(as)h(tak)n(en.)g(The) h(idea)g(is)g(that)g(the)523 3847 y(writer)h(and)g(the)h(reader)e (access)g(only)h(a)g(single)g(trac)n(k,)f(and)i(that)f(the)h(switc)n(h) g(ensures)523 3947 y(that)27 b(they)g(nev)n(er)e(access)g(the)i(same)f (trac)n(k)f(sim)n(ultaneously)-7 b(.)26 b(The)h(price)f(to)g(b)r(e)h (paid)f(for)523 4046 y(the)i(reduced)f(n)n(um)n(b)r(er)h(of)f(trac)n (k-accesses)e(is)i(the)h(necessit)n(y)f(of)g(using)h(four)f(trac)n(ks.) 606 4146 y(Both)22 b(pap)r(ers)g(men)n(tioned)g(ha)n(v)n(e)f(proto)r (cols)g(for)h(m)n(ultiple)h(readers)e(but)i(w)n(e'll)f(consider)523 4246 y(the)28 b(case)f(of)g(one)h(only)-7 b(.)606 4345 y(In)40 b(this)f(c)n(hapter)g(a)g(simpli\014cation)g(of)h(the)g(single) f(reader)f(construction)g(of)i([9)o(])g(is)523 4445 y(presen)n(ted.)20 b(T)-7 b(able)21 b(6.2)e(giv)n(es)h(a)g(comparison)f(of)i(these)g (constructions)e(for)h(a)h FC(b)p FK(-bit)f(atomic)523 4544 y(v)-5 b(ariable.)37 b(The)i(\\used")e(column)h(displa)n(ys)g(the) g(total)g(n)n(um)n(b)r(er)g(of)h(safe)f(bits)g(used)g(in)523 4644 y(the)27 b(construction)f(\(\\space)g(complexit)n(y"\).)h(The)f (\\write")g(\(\\read"\))g(column)h(giv)n(es)e(the)523 4744 y(w)n(orst)k(case)g(n)n(um)n(b)r(er)h(of)g(safe)g(bits)g(that)h(m) n(ust)f(b)r(e)h(accessed)d(in)j(a)f(write)f(\(read\))h(action)523 4843 y(on)d(the)h(atomic)f(v)-5 b(ariable.)27 b(A)h(trade-o\013)f(b)r (et)n(w)n(een)g(time)h(and)g(space)f(is)g(clearly)g(visible.)606 4943 y(W)-7 b(e)40 b(also)f(presen)n(t)h(a)f(solution)h(to)g(the)g(sp)r (ecial)g(case)f(of)h(constructing)f(an)h(atomic)523 5043 y(bit)c(with)f(a)g(minimal)g(n)n(um)n(b)r(er)g(of)g(non-atomic)f(bits.) i(This)f(problem)g(w)n(as)f(solv)n(ed)g(in-)p 523 5162 499 5 v 627 5244 a Fm(1)661 5276 y FF(to)d(ha)n(v)n(e)f(a)h(comm)n (unication)g(path)f(b)r(et)n(w)n(een)g(an)n(y)g(pair)h(of)g(users,)h(w) n(e)e(need)g(to)h(main)n(tain)523 5359 y(\012\()p Fo(n)654 5327 y Fm(2)689 5359 y FF(\))26 b(copies.)p eop end %%Page: 67 77 TeXDict begin 67 76 bop 1890 299 a FF(6.2.)53 b(Comparison)27 b(with)f(Related)g(W)-6 b(ork)153 b(67)523 506 y FK(dep)r(enden)n(tly) 30 b(and)g(earlier)e(b)n(y)i(J.)f(Burns)g(and)h(G.)g(P)n(eterson)e([3)o (],)i(using)g(a)f(v)n(ery)g(similar)523 606 y(construction.)c(The)h (use)g(of)g(\014nite)g(state)g(mac)n(hines)f(for)g(\(automated\))h (correctness)e(v)n(er-)523 706 y(i\014cation)k(is)f(related)h(to)f(the) h(w)n(ork)f(b)n(y)g(Clark)n(e)g(and)h(Emerson)e(\(e.g.)i([4)o(]\))h (and)e(is)h(new)g(to)523 805 y(this)g(area.)523 1119 y FL(6.3)116 b(Preliminaries)523 1318 y FK(In)29 b(this)g(c)n(hapter)f (w)n(e)g(consider)f(v)-5 b(ariables)28 b(whic)n(h)g(can)h(b)r(e)g (written)f(b)n(y)h(one)f(user,)g(called)523 1418 y(the)j FG(writer)p FK(,)g(and)g(read)e(b)n(y)i(another,)f(the)h FG(r)l(e)l(ader)p FK(.)g(Both)g(users)e(ma)n(y)h(b)r(e)h(accessing)e (the)523 1518 y(v)-5 b(ariable)25 b(concurren)n(tly)g(without)h(ev)n (er)g(ha)n(ving)f(to)h(w)n(ait)f(for)h(one)g(another.)f(This)h(means) 523 1617 y(that)j(no)g(assumptions)g(are)f(made)h(ab)r(out)g(the)g (relativ)n(e)f(sp)r(eed)i(of)f(the)g(users,)g(and)f(that)523 1717 y(the)h(correct)e(op)r(eration)h(of)h(the)g(v)-5 b(ariable)27 b(is)i(not)g(impaired)f(b)n(y)g(halting)h(either)f(one.)h (As)523 1817 y(stated)35 b(in)h(the)f(in)n(tro)r(duction,)g(w)n(e)g (aim)g(to)g(construct)g(an)g(atomic,)g(m)n(ulti-bit,)h(single-)523 1916 y(writer,)26 b(single-reader)e(v)-5 b(ariable.)26 b(The)h(ob)5 b(jects)26 b(w)n(e)h(use)f(in)h(this)g(construction)f(are) g FG(safe)p FK(,)523 2016 y(single-bit,)31 b(single-writer,)f (single-reader)g(v)-5 b(ariables,)30 b(or)h(simply)g FG(safe)k(bits)p FK(.)c(These)h(are)523 2115 y(the)27 b(mathematical)g(coun)n(terparts)e(of)i(\015ip-\015ops,)f(in)h(the)h (sense)e(that)h(real-life)f(\015ip-\015ops)523 2215 y(can)h(b)r(e)i (argued)d(to)i(satisfy)f(the)i FG(safety)f FK(prop)r(ert)n(y)-7 b(.)27 b(Before)g(giving)g(rigorous)f(de\014nitions)523 2315 y(for)h(the)h(notions)f(of)h(safe)f(and)g(atomic,)h(w)n(e)f (\014rst)g(state)g(some)h(preliminary)e(de\014nitions.)606 2414 y(In)k(order)f(to)h(distinguish)g(the)g(accesses)f(to)h(the)g (constructed)g(atomic)f(v)-5 b(ariable)29 b(\(the)523 2514 y FG(higher)39 b(level)p FK(\))e(from)f(the)g(accesses)e(to)i(the) g(safe)g(bits)g(\(the)h FG(lower)h(level)p FK(\),)f(w)n(e)f(call)f(the) 523 2614 y(former)40 b FG(actions)p FK(,)i(and)f(the)h(latter)f FG(sub)l(actions)p FK(.)g(As)h(w)n(e)f(will)g(see,)g(eac)n(h)f (higher-lev)n(el)523 2713 y(action)31 b(is)h(comp)r(osed)f(of)h(a)f(n)n (um)n(b)r(er)h(of)g(subactions|where)e(the)i FG(wait-fr)l(e)l(e)h FK(condition)523 2813 y(requires)26 b(this)i(n)n(um)n(b)r(er)g(to)f(b)r (e)h(b)r(ounded.)606 2912 y(Let)23 b FC(V)43 b FK(b)r(e)23 b(a)g(v)-5 b(ariable)22 b(and)h FD(A)h FK(\(the)f(set)h(of)f (accesses\))f(b)r(e)h(the)h(union)f(of)g(a)g(set)g(of)g(writes)523 3012 y FD(W)36 b FK(to)29 b FC(V)48 b FK(and)28 b(a)h(set)g(of)g(reads) f FD(R)h FK(from)g FC(V)19 b FK(.)29 b(The)g(result)f(of)h(a)g(read)f (is)h(a)f(v)-5 b(alue)29 b(whic)n(h)g(is)523 3112 y(said)i(to)h(b)r(e)g FG(r)l(eturne)l(d)e FK(b)n(y)i(that)g(read.)e(Eac)n(h)h(access)f FC(a)g FD(2)g(A)i FK(o)r(ccupies)f(a)g FG(time)j(interval)523 3211 y FK(\()p FC(s)p FK(\()p FC(a)p FK(\))p FC(;)14 b(f)9 b FK(\()p FC(a)p FK(\)\),)39 b(where)e FC(s)p FK(\()p FC(a)p FK(\))i(is)e(the)i(start)e(time)i(and)e FC(f)9 b FK(\()p FC(a)p FK(\))38 b(the)h(\014nish)f(time)g(of)g(access)523 3311 y FC(a)p FK(.)31 b(All)g(start)f(and)g(\014nish)h(times)g(are)f (assumed)g(to)g(b)r(e)h(pairwise)f(distinct.)h(W)-7 b(e)31 b(de\014ne)g(a)523 3411 y(precedence)g(relation)h FD(!)g FK(on)g FD(A)g FK(as)f(follo)n(ws:)h FC(a)e FD(!)h FC(b)g FK(i\013)i FC(f)9 b FK(\()p FC(a)p FK(\))31 b FC(<)f(s)p FK(\()p FC(b)p FK(\).)i(W)-7 b(e)33 b(sa)n(y)d(that)j FC(a)523 3510 y FG(overlaps)21 b FC(b)p FK(,)d(or)g FC(a)h FK(and)g FC(b)f FK(o)n(v)n(erlap,)f(if)i(they)g(are)f FD(!)p FK(-incomparable,)f(that)i(is,)g FC(a)k FD(6!)g FC(b)q FD(^)q FC(b)g FD(6!)g FC(a)p FK(.)523 3610 y FG(Complete)32 b(overlap)f FK(of)d FC(a)h FK(b)n(y)g FC(b)f FK(means)g(that)h FC(s)p FK(\()p FC(b)p FK(\))c FC(<)g(s)p FK(\()p FC(a)p FK(\))g FC(<)f(f)9 b FK(\()p FC(a)p FK(\))25 b FC(<)g(f)9 b FK(\()p FC(b)p FK(\).)28 b(W)-7 b(e)29 b(assume)523 3709 y(that)d(the)f(set)h FD(f)p FC(a)p FD(j)p FC(a)c FD(!)h FC(b)p FD(g)i FK(is)g(\014nite)h(for)e(an)n(y)h(action)g FC(b)g FK(\(\014nite)h(history)e(assumption\).)h(W)-7 b(e)523 3809 y(call)29 b(the)g(pair)g(\()p FD(A)p FC(;)14 b FD(!)p FK(\))30 b(a)f FG(run)p FK(.)f(The)i(writes)f(in)g FD(W)36 b FK(are)28 b(totally)h(ordered)f(b)n(y)h FD(!)p FK(,)g(and)g(so)523 3909 y(are)j(the)h(reads)e(in)i FD(R)p FK(,)g(in)g(accordance)e(with)i(the)g(requiremen)n(t)f(that)h(a)f(user) g(can)g(only)523 4008 y(p)r(erform)27 b(one)g(access)g(at)g(a)g(time.) 606 4108 y(W)-7 b(e)32 b(relate)g(the)g(reads)f(to)h(the)g(writes)g(in) g(terms)g(of)g(a)g(reading)f(function.)h(A)h(partial)523 4208 y(function)d FC(\031)g FK(:)d FD(R)g(!)g(W)37 b FK(is)30 b(a)f(reading)g(function)h(if)g(for)g(ev)n(ery)e(read)h FC(r)h FD(2)d(R)j FK(on)g(whic)n(h)f FC(\031)523 4307 y FK(is)j(de\014ned,)g FC(\031)s FK(\()p FC(r)r FK(\))h(writes)e(to)g FC(V)51 b FK(the)32 b(v)-5 b(alue)32 b(returned)f(b)n(y)g FC(r)r FK(.)h(Unless)g(explicitly)g(stated,)523 4407 y(the)g(reading)d(function)j(will)f(b)r(e)h(total)f(\(non-total)f (reading)g(functions)i(will)f(b)r(e)h(needed)523 4506 y(in)c(the)g(de\014nition)g(of)f(safet)n(y\).)h(W)-7 b(e)28 b(call)f(the)h(triple)g(\()p FD(A)p FC(;)14 b FD(!)p FC(;)g(\031)s FK(\))28 b(a)f FG(system)j(exe)l(cution)p FK(.)606 4606 y(W)-7 b(e)28 b(can)f(no)n(w)g(de\014ne)h(atomicit)n(y:) 523 4759 y Fv(Definition)k FH(6.1)41 b FK(A)24 b(system)g(execution)f FC(\033)k FK(=)22 b(\()p FD(A)p FC(;)14 b FD(!)p FC(;)g(\031)s FK(\))25 b(of)f(the)g(v)-5 b(ariable)23 b FC(V)43 b FK(is)23 b(atomic)523 4858 y(i\013)38 b(there)g(is)g(a)f(total)g(extension)h FD(!)1697 4828 y Fw(0)1758 4858 y FK(of)g FD(!)f FK(consisten)n(t)h (with)g FC(\031)s FK(,)g(i.e.)g(for)f(ev)n(ery)g(read)523 4958 y FC(r)26 b FD(2)d(R)p FK(,)28 b FC(\031)s FK(\()p FC(r)r FK(\))i(is)d(the)h(last)f(write)h(preceding)f FC(r)j FK(in)e(the)g(total)f(order)g FD(!)2744 4928 y Fw(0)2767 4958 y FK(.)606 5111 y(In)g(the)f(case)g(of)g(a)g(single)g (writer,)g(a)g(simpli\014cation)g(of)h(the)f(general)f(de\014nition)i (ab)r(o)n(v)n(e)523 5211 y(can)g(b)r(e)h(giv)n(en)f(whic)n(h)h(a)n(v)n (oids)d(the)j(use)g(of)f(a)h(total)f(ordering,)f([10)o(,)i(14)o(,)f (1]:)523 5363 y Fv(Definition)32 b FH(6.2)41 b FK(A)19 b(system)g(execution)g FC(\033)26 b FK(=)d(\()p FD(A)p FC(;)14 b FD(!)p FC(;)g(\031)s FK(\))20 b(of)f(the)g(single-writer)f(v) -5 b(ariable)p eop end %%Page: 68 78 TeXDict begin 68 77 bop 2515 299 a FF(6.3.)53 b(Preliminaries)156 b(68)523 506 y FC(V)58 b FK(is)38 b(atomic)h(i\013)g(the)g(follo)n (wing)f(three)g(prop)r(erties)g(hold)g(for)h(all)f FC(r)n(;)14 b(r)2827 518 y FB(1)2865 506 y FC(;)g(r)2939 518 y FB(2)3018 506 y FD(2)42 b(R)d FK(and)523 606 y FC(w)26 b FD(2)d(W)7 b FK(:)523 763 y FH(A0)41 b FK(not)28 b(\()p FC(r)e FD(!)d FC(\031)s FK(\()p FC(r)r FK(\)\))523 925 y FH(A1)41 b FK(if)29 b FC(r)798 937 y FB(1)858 925 y FD(!)23 b FC(r)1001 937 y FB(2)1039 925 y FK(,)28 b(then)g(not)g(\()p FC(\031)s FK(\()p FC(r)1578 937 y FB(2)1616 925 y FK(\))23 b FD(!)h FC(\031)s FK(\()p FC(r)1897 937 y FB(1)1935 925 y FK(\)\))523 1087 y FH(A2)41 b FK(not)28 b(\()p FC(\031)s FK(\()p FC(r)r FK(\))d FD(!)e FC(w)j FD(!)d FC(r)r FK(\))606 1306 y(Equiv)-5 b(alence)27 b(of)g(de\014nitions)h(6.1)f(and)g(6.2)g (is)h(sho)n(wn)e(b)n(y)i(pro)n(ving)e(\([10)o(]\))714 1477 y FD(9)p FK(consisten)n(t)i(total)f(extension)22 b FD(!)1790 1443 y Fw(0)2050 1477 y FD(,)236 b(!)23 b FK(satis\014es)k FC(A)p FK(0)p FC(;)14 b(A)p FK(1)p FC(;)g(A)p FK(2)523 1649 y(First)28 b(of)g(all,)f(if)i(an)n(y)e(of)g(the)i(three)e (conditions)h(on)f FD(!)h FK(is)g(violated,)f(then)i(it)f(will)g (clearly)523 1749 y(b)r(e)22 b(imp)r(ossible)g(to)g(\014nd)g(a)g (consisten)n(t)f(extension)h FD(!)2174 1719 y Fw(0)2197 1749 y FK(,)g(th)n(us)g(pro)n(ving)e(the)i(\014rst)g(direction.)523 1848 y(T)-7 b(o)24 b(pro)n(v)n(e)f(the)i(con)n(v)n(erse,)d(w)n(e)i (construct)g(the)h(follo)n(wing)e FD(!)2404 1818 y Fw(0)2427 1848 y FK(:)i(Merge)e(the)i(reads)e(in)n(to)h(the)523 1948 y(totally)g(ordered)f(set)h(of)g(writes,)g(suc)n(h)g(that)h(eac)n (h)e(write)h FC(w)j FK(is)d(immediately)h(follo)n(w)n(ed)e(b)n(y)523 2048 y(the)29 b(reads)e FC(r)k FK(with)d FC(\031)s FK(\()p FC(r)r FK(\))e(=)d FC(w)r FK(,)29 b(putting)g(the)g(reads)e(in)h(some)g (total)g(order)e(that)j(extends)523 2147 y(their)21 b(partial)f (precedence)h(order.)f(Naturally)-7 b(,)20 b(this)i(order)d(is)i (consisten)n(t)g(with)g FC(\031)s FK(.)h(By)f(A1,)523 2247 y(the)g(merging)e(pro)r(cess)g(preserv)n(es)f(the)j(ordering)e (among)g(reads.)g(A0)h(and)h(A2)f(ensure)f(that)523 2346 y(the)27 b(precedence)f(b)r(et)n(w)n(een)h(a)f(read)g(and)g(a)h(write)f (is)h(also)e(extended.)i(If)g FC(w)f FD(!)d FC(r)r FK(,)28 b(then)f(b)n(y)523 2446 y(A2,)d FD(:)p FK(\()p FC(\031)s FK(\()p FC(r)r FK(\))h FD(!)f FC(w)r FK(\),)h(so)e(b)n(y)h(the)h (construction)e(of)h FD(!)2183 2416 y Fw(0)2231 2446 y FK(w)n(e)g(ha)n(v)n(e)f FC(w)i FD(!)2705 2416 y Fw(0)2752 2446 y FC(r)r FK(.)g(If)f FC(r)i FD(!)d FC(w)r FK(,)i(then)523 2546 y(b)n(y)i(A0,)h FC(\031)s FK(\()p FC(r)r FK(\))d FD(!)e FC(w)r FK(,)28 b(so)f(again)f(b)n(y)i(the)g(construction)e(of)i FD(!)2424 2516 y Fw(0)2475 2546 y FK(w)n(e)f(ha)n(v)n(e)g FC(r)e FD(!)2934 2516 y Fw(0)2981 2546 y FC(w)r FK(.)j Fu(2)606 2645 y FK(Th)n(us,)g(in)h(atomic)g(runs,)f(the)h(partially)f (ordered)f(set)i(of)f(accesses)f(can)h(b)r(e)i(linearized)523 2745 y(while)f(resp)r(ecting)g(the)h(logical)d(read/write)h(order.)g (In)h(addition)g(to)g(de\014nition)h(6.2,)e(w)n(e)523 2845 y(ha)n(v)n(e:)523 3006 y Fv(Definition)k FH(6.3)41 b FC(\033)30 b FK(is)d FG(r)l(e)l(gular)g FK(i\013)h(A0)f(and)g(A2)f (hold.)h FC(\033)k FK(is)c FG(safe)h FK(i\013)f(\()p FD(A)18 b(\000)f(R)3012 2976 y Fw(0)3035 3006 y FC(;)d FD(!)p FC(;)g(\031)s FK(\))28 b(is)523 3106 y(atomic,)c(where)f FD(R)1121 3076 y Fw(0)1168 3106 y FK(=)f FD(f)p FC(r)k FD(2)d(Rj9)p FC(w)j FD(2)e(W)7 b FK(\()p FC(w)26 b FD(6!)d FC(r)13 b FD(^)e FC(r)27 b FD(6!)c FC(w)r FK(\))p FD(g)h FK(is)g(the)g(set)g(of)g(reads)f(whic)n(h)523 3205 y(o)n(v)n(erlap)j(a) h(write)g(\(in)h(whic)n(h)g(case)f FC(\031)k FK(is)c(left)h (unde\014ned\).)606 3367 y(Th)n(us,)g(in)h(a)f(safe)g(run,)h(a)f(read)g (o)n(v)n(erlapping)e(a)i(write)g(ma)n(y)g(return)g(an)n(y)g(v)-5 b(alue)29 b(in)f(the)523 3467 y(domain)35 b(of)g(the)g(v)-5 b(ariable.)35 b(The)g(other)f(actions)h(will)g(then)h(b)r(e)f(totally)g (ordered,)f(suc)n(h)523 3566 y(that)26 b(eac)n(h)f(non-o)n(v)n (erlapping)e(read)i(returns)g(the)h(v)-5 b(alue)26 b(written)g(b)n(y)f (the)h(last)g(preceding)523 3666 y(write.)606 3766 y(In)33 b(a)g(regular)e(run,)i(a)g(read)f(ma)n(y)g(return)h(the)h(v)-5 b(alue)33 b(of)g(either)f(the)i(last)f(completed)523 3865 y(write)c(or)g(of)h(an)n(y)e(of)i(the)g(o)n(v)n(erlapping)d (writes.)i(Th)n(us,)h(during)f(a)g(long)g(write,)g(one)h(read)523 3965 y(ma)n(y)h(obtain)f(the)i(new)f(v)-5 b(alue,)31 b(and)g(the)h(next)f(read)g(the)g(old)g(v)-5 b(alue.)31 b(This)h(violation)e(of)523 4065 y(A1)e(is)h(called)f(a)g FG(new-old)k(inversion)p FK(,)d(and)g(is)f(what)h(distinguishes)f(a)g (regular)f(run)h(from)523 4164 y(an)f(atomic)g(one.)523 4326 y Fv(Definition)32 b FH(6.4)41 b FK(V)-7 b(ariable)40 b FC(V)60 b FK(is)41 b(atomic)g(\(regular,safe\))f(i\013)i(for)e(eac)n (h)h(of)g(its)g(runs)523 4425 y(\()p FD(A)p FC(;)14 b FD(!)p FK(\),)22 b(there)g(exists)f(a)g(reading)f(function)i FC(\031)s FK(,)f(suc)n(h)h(that)f(the)h(system)f(execution)g(\()p FD(A)p FC(;)14 b FD(!)523 4525 y FC(;)g(\031)s FK(\))28 b(is)g(atomic)f(\(regular,safe\).)606 4687 y(It)g(is)g(clear)e(from)i (these)f(de\014nitions)h(that)g(an)g(atomic)f(v)-5 b(ariable)25 b(is)i(regular,)e(and)h(that)523 4786 y(a)32 b(regular)e(v)-5 b(ariable)31 b(is)h(safe.)g(Whereas)f(an)h(atomic)g(bit)h(app)r(ears)e (to)h(c)n(hange)f(its)h(v)-5 b(alue)523 4886 y(in)29 b(a)g(single,)f(indivisible)h(time)h(instan)n(t,)f(the)g(v)-5 b(alue)29 b(of)g(a)f(c)n(hanged)g(regular)f(bit)j FG(\015ickers)523 4986 y FK(during)j(the)g(c)n(hange,)f(and)h(only)f(stabilizes)g(to)h (the)h(complemen)n(tary)d(v)-5 b(alue)33 b(when)g(the)523 5085 y(c)n(hanging)26 b(write)i(\014nishes.)606 5185 y(W)-7 b(e)25 b(call)e(a)h(reading)f(function)i FG(normal)f FK(if)h(it)g(satis\014es)e(A0,)h(i.e.)g(it)h(do)r(esn't)f(map)g(a)g (read)523 5284 y(to)h(a)g(write)h(whic)n(h)f(starts)f(after)i(the)f (read)g(\014nishes.)g(In)h(practice,)f(only)g(normal)f(reading)523 5384 y(functions)k(are)f(considered.)p eop end %%Page: 69 79 TeXDict begin 69 78 bop 2515 299 a FF(6.3.)53 b(Preliminaries)156 b(69)523 506 y Fl(6.3.1)99 b(Making)34 b(Safe)g(Bits)h(R)-5 b(e)g(gular)523 656 y FK(A)23 b(w)n(ell)g(kno)n(wn)f(tec)n(hnique)g(to) h(mak)n(e)f(a)g(safe)h(bit)g(regular)e(\([10)o(]\),)j(is)e(to)h(a)n(v)n (oid)e(writing)h(the)523 756 y(old)27 b(v)-5 b(alue)28 b(to)f(the)h(bit,)g(i.e.)f(only)g FG(changing)i FK(it.)f(Then)f(for)g (a)g(read)g(o)n(v)n(erlapping)e(a)i(write,)523 855 y(the)h(v)-5 b(alue)27 b(it)g(returns,)g(b)r(e)g(it)h(a)e(0)h(or)f(a)h(1,)g(will)g (alw)n(a)n(ys)e(b)r(e)j(either)f(the)g(v)-5 b(alue)27 b(of)h(the)f(last)523 955 y(completed)d(write,)g(or)f(the)h(v)-5 b(alue)24 b(of)g(an)g(o)n(v)n(erlapping)e(write.)h(The)h(safe)g(bits)g (used)g(in)h(our)523 1054 y(constructions)i(are)g(only)h(c)n(hanged,)f (not)i(o)n(v)n(erwritten)d(with)j(the)f(old)g(v)-5 b(alue,)29 b(and)f(so)f(w)n(e)523 1154 y(can)33 b(assume)f(for)h(them)g(the)h (existence)f(of)g(a)f(total)h(reading)f(function,)i(as)e(for)h(regular) 523 1254 y(bits.)523 1561 y FL(6.4)116 b(Problem)37 b(Statemen)m(t)523 1760 y FK(It)32 b(remains)e(to)i(de\014ne)g(what)f(it)h(means)f(to)g (construct)g(an)h(atomic)f(v)-5 b(ariable)30 b(from)h(safe)523 1860 y(bits.)i(\(Recall)g(that)g(in)g(this)h(c)n(hapter)e(all)g(v)-5 b(ariables)32 b(are)g(single-writer,)f(single-reader,)523 1959 y(hence)e(t)n(w)n(o)f(users\).)g(Suc)n(h)h(a)f(construction)g(is)h (de\014ned)g(b)n(y)g(an)f FG(ar)l(chite)l(ctur)l(e)h FK(and)g(a)f(pair)523 2059 y(of)35 b FG(pr)l(oto)l(c)l(ols)p FK(,)g(one)f(for)g(eac)n(h)g(user.)g(The)h(arc)n(hitecture)e(sp)r (eci\014es)h(the)h(n)n(um)n(b)r(er)g(of)f(safe)523 2159 y(bits,)29 b(their)f(names)f(and)i(ho)n(w)e(they)h(are)g(connected)g (among)f(the)h(t)n(w)n(o)g(users.)f(Eac)n(h)g(safe)523 2258 y(bit)37 b(can)e(b)r(e)i(connected)e(to)h(the)h(reader)d(and)i (the)g(writer)g(in)g(one)f(of)h(only)g(t)n(w)n(o)f(w)n(a)n(ys:)523 2358 y(c)n(hanged)c(b)n(y)h(the)g(writer)f(and)h(read)f(b)n(y)h(the)g (reader,)f(or)g(c)n(hanged)f(b)n(y)i(the)g(reader)f(and)523 2457 y(read)c(b)n(y)g(the)h(writer.)f(The)h(user)f(that)h(can)f(c)n (hange)f(a)h(bit)i(is)e(said)g(to)h(b)r(e)g(the)g FG(owner)p FK(.)606 2557 y(A)35 b(proto)r(col)d(sp)r(eci\014es)i(ho)n(w)g(the)g (writer)g(\(reader\))f(can)h(c)n(hange)f(\(read\))h(the)g(atomic)523 2657 y(v)-5 b(ariable)31 b(in)g(terms)h(of)f(c)n(hanges)f(to)h(and)h (reads)e(from)h(the)h(safe)f(bits.)h(In)g(addition,)f(the)523 2756 y(proto)r(cols)21 b(ma)n(y)i(mak)n(e)f(use)g(of)h FG(lo)l(c)l(al)k(variables)p FK(,)e(whic)n(h)d(can)h(b)r(e)g(view)n(ed) g(as)f(safe)g(bits)h(that)523 2856 y(are)h(c)n(hanged)f(and)h(read)g(b) n(y)g(the)h(same)f(user.)g(These)g(are)g(ho)n(w)n(ev)n(er)e(not)j (considered)e(part)523 2956 y(of)28 b(the)g(arc)n(hitecture,)e(whic)n (h)i(sp)r(eci\014es)f(only)g FG(shar)l(e)l(d)i FK(bits.)606 3055 y(W)-7 b(e)29 b(consider)e(only)i FG(wait-fr)l(e)l(e)g FK(proto)r(cols,)e(i.e.,)i(the)g(n)n(um)n(b)r(er)f(of)g(safe)g(bit)i (accesses)c(in)523 3155 y(a)f(single)f(proto)r(col)g(execution)g(m)n (ust)h(b)r(e)h(b)r(ounded)f(b)n(y)g(a)f(\014xed)h(constan)n(t.)f(This)h (require-)523 3254 y(men)n(t)38 b(forbids)f(solutions)f(in)i(whic)n(h)f (a)g(user)g(migh)n(t)g(ha)n(v)n(e)g(to)g(w)n(ait)g(for)g(a)g(safe)g (bit)h(to)523 3354 y(c)n(hange)26 b(v)-5 b(alue.)606 3454 y(A)26 b(read)f(or)g(write)h(action)f(on)g(the)i(atomic)e(v)-5 b(ariable)25 b(consists)g(of)h(an)f(execution)h(of)f(the)523 3553 y(corresp)r(onding)31 b(proto)r(col.)g(W)-7 b(e)34 b(use)e(the)h(terms)g(\\action")e(and)i(\\proto)r(col)e(execution")523 3653 y(in)n(terc)n(hangeably)-7 b(.)30 b(A)i(construction)g(is)g (initialized)g(b)n(y)g(an)f(initial)h(write)g(that)h(sets)e(the)523 3753 y(atomic)c(v)-5 b(ariable)26 b(to)h(the)g(v)-5 b(alue)27 b(0.)g(This)g(allo)n(ws)f(the)i(de\014nition)f(of)g(a)g(reading)f (function)523 3852 y(on)20 b(ev)n(ery)f(read)g(action.)h(All)g(other)g (shared)f(bits)h(and)g(lo)r(cal)g(v)-5 b(ariables)18 b(are)i(also)f(initialized)523 3952 y(to)26 b(0.)g(Finally)-7 b(,)27 b(eac)n(h)e(run)h(of)h(the)f(construction)g(m)n(ust)g(satisfy)g (the)h(atomicit)n(y)f(criterion.)606 4051 y(In)34 b(the)g(next)f (section)g(w)n(e)g(consider)g(the)h(sp)r(ecial)f(case)g(of)g(a)g(2-v)-5 b(alued)33 b(atomic)g(v)-5 b(ari-)523 4151 y(able.)29 b(After)h(pro)n(ving)e(that)i(3)f(safe)h(bits)g(are)e(needed)i(to)f (construct)g(an)h(atomic)f(bit,)h(w)n(e)523 4251 y(dev)n(elop)g(a)h (construction)f(that)i(ac)n(hiev)n(es)d(this)j(lo)n(w)n(er)d(b)r(ound,) j(follo)n(w)n(ed)e(b)n(y)h(a)f(pro)r(of)h(of)523 4350 y(correctness.)20 b(The)i(general)f(case)g(of)h(a)g FC(b)p FK(-bit)g(\(2)1996 4320 y FA(b)2029 4350 y FK(-v)-5 b(alued\))22 b(atomic)f(v)-5 b(ariable)21 b(is)h(dealt)g(with)523 4450 y(in)28 b(Section)f(6.6.)523 4757 y FL(6.5)116 b(Optimal)36 b(Construction)g(of)j(A)m(tomic)d(Bits)523 4973 y Fl(6.5.1)99 b(A)35 b(L)-5 b(ower)35 b(Bound)f(on)g(the)h(Numb)-5 b(er)35 b(of)g(Safe)f(Bits)h(ne)-5 b(e)g(de)g(d)33 b(to)832 5089 y(Construct)i(an)f(A)n(tomic)h(Bit)523 5239 y FK(W)-7 b(e)34 b(demonstrate)f(that)h(3)g(safe)f(bits)h(are)f(required)g(in)h (a)f(construction)g(of)h(an)f(atomic)523 5338 y(bit,)28 b(in)g(particular,)e(2)i(bits)g(o)n(wned)f(b)n(y)g(the)h(writer,)f(and) g(1)g(o)n(wned)g(b)n(y)h(the)g(reader.)p eop end %%Page: 70 80 TeXDict begin 70 79 bop 1700 299 a FF(6.5.)53 b(Optimal)26 b(Construction)g(of)h(A)n(tomic)e(Bits)155 b(70)606 506 y FK(The)28 b(reason)e(that)i(a)f(single)h(bit)g(\(call)g(it)g FC(V)19 b FK(\),)28 b(o)n(wned)f(b)n(y)h(the)g(writer)f(do)r(esn't)h (su\016ce,)523 606 y(is)k(exempli\014ed)h(b)n(y)f(a)f(run)i(\()p FD(A)p FC(;)14 b FD(!)p FC(;)g(\031)s FK(\),)33 b(where)f FD(A)f FK(=)f FD(f)p FC(w)r(;)14 b(r)2410 618 y FB(1)2448 606 y FC(;)g(r)2522 618 y FB(2)2559 606 y FD(g)p FK(,)32 b(and)g FD(!)p FK(=)f FD(f)p FK(\()p FC(r)3112 618 y FB(1)3149 606 y FC(;)14 b(r)3223 618 y FB(2)3261 606 y FK(\))p FD(g)p FK(,)523 706 y(i.e.)23 b(write)f FC(w)j FK(\(whic)n(h)e(c)n(hanges)e(the)i(atomic)f(bit)h(from)f(its)g(initial) h(v)-5 b(alue)22 b(0)g(to)h(1\),)f(o)n(v)n(erlaps)523 805 y(t)n(w)n(o)k(reads)f FC(r)932 817 y FB(1)996 805 y FK(and)i FC(r)1194 817 y FB(2)1231 805 y FK(.)g(Without)g(loss)f(of)g (generalit)n(y)-7 b(,)25 b(w)n(e)h(can)g(assume)g(that)h(the)f(writer) 523 905 y(c)n(hanges)38 b FC(V)58 b FK(at)39 b(least)g(once)f(during)h (the)h(execution)e(of)i(its)f(proto)r(col.)f(W)-7 b(e)39 b(ma)n(y)g(also)523 1005 y(assume)25 b(that,)g(dep)r(ending)h(on)f(the) h(v)-5 b(alues)25 b(obtained)g(b)n(y)g(reading)f FC(V)19 b FK(,)26 b(but)g(indep)r(enden)n(t)523 1104 y(of)31 b(the)h(v)-5 b(alues)30 b(of)h(lo)r(cal)g(v)-5 b(ariables)30 b(at)h(the)g(start)g(of)g(a)g(read,)f(the)i(reader)d(proto)r(col)h(can) 523 1204 y(return)d(b)r(oth)h(a)e(0)h(and)g(a)g(1.)g(Consider)g(no)n(w) f(the)i(case)e(when)i(b)r(oth)f(reads)g(o)r(ccur)f(during)523 1303 y(the)i(\014rst)g(time)g(that)g FC(w)j FK(c)n(hanges)26 b FC(V)19 b FK(.)28 b(Then)g(due)g(to)f(the)h(\015ic)n(k)n(ering)f(of)g FC(V)19 b FK(,)28 b(it)g(is)g(p)r(ossible)523 1403 y(for)21 b FC(r)681 1415 y FB(1)740 1403 y FK(to)h(return)f(1)g(while)h FC(r)1395 1415 y FB(2)1454 1403 y FK(returns)f(0.)g(But)h(no)n(w)e (there)i(is)f(no)g(reading)g(function)h(whic)n(h)523 1503 y(satis\014es)27 b(all)g(three)h(atomicit)n(y)f(conditions.)606 1602 y(The)36 b(example)f(sho)n(ws)f(that)i(a)f(comm)n(unication)f(c)n (hannel)h(from)g(the)h(writer)f(to)g(the)523 1702 y(reader)26 b(of)i(only)f(one)g(safe)g(bit)h(is)g(to)r(o)f(narro)n(w|at)f(least)h (2)g(safe)g(bits)h(are)f(necessary)-7 b(.)606 1802 y(In)22 b([10)o(],)h(Lamp)r(ort)e(has)h(sho)n(wn)f(the)i(necessit)n(y)e(of)h(t) n(w)n(o-w)n(a)n(y)e(comm)n(unication,)h(i.e.,)h(the)523 1901 y(reader)30 b(m)n(ust)h(o)n(wn)g(at)g(least)g(1)f(bit.)i(The)f (sequence)g(of)g(safe)g(bits)g(c)n(hanged)g(during)f(the)523 2001 y(proto)r(col)25 b(execution)i(of)f(the)h(writer,)f(m)n(ust)h (therefore)f(dep)r(end)h(on)f(information)g(that)h(it)523 2100 y(receiv)n(es)f(from)h(the)h(reader.)523 2265 y Fv(Lemma)k FH(6.5)40 b FG(A)22 b(c)l(onstruction)g(of)h(an)f(atomic)h (bit)f(fr)l(om)h(non-atomic,)g(safe)g(bits)f(r)l(e)l(quir)l(es)523 2365 y(at)30 b(le)l(ast)g FK(2)f FG(bits)h(owne)l(d)g(by)g(the)g (writer,)h(and)f(at)g(le)l(ast)g FK(1)f FG(bit)h(owne)l(d)g(by)g(the)g (r)l(e)l(ader.)606 2529 y FK(The)25 b(next)g(few)h(sections)e(deal)h (with)g(the)g(dev)n(elopmen)n(t)g(of)g(a)f(solution)h(meeting)g(these) 523 2629 y(b)r(ounds.)j(Let)g(us)f(\014rst)g(describ)r(e)h(the)g(arc)n (hitecture)e(of)i(the)g(construction.)523 2878 y Fl(6.5.2)99 b(The)34 b(A)n(r)-5 b(chite)g(ctur)g(e)523 3028 y FK(W)e(e)26 b(aim)f(to)g(attain)h(the)f(optimal)h(n)n(um)n(b)r(er)f(of)g(shared)g (safe)g(bits,)g(whic)n(h)h(is)f(3.)g(As)h(sho)n(wn)523 3128 y(ab)r(o)n(v)n(e,)c(the)h(reader)f(will)h(b)r(e)h(the)g(o)n(wner)e (of)h(one)f(of)h(these,)h(whic)n(h)f(w)n(e'll)g(call)g(\\R.")f(One)h (of)523 3227 y(the)g(t)n(w)n(o)f(bits)i(o)n(wned)e(b)n(y)h(the)g (writer)f(will)h(b)r(e)g(used)g(to)g(hold)g(the)g(v)-5 b(alue)23 b(of)g(the)g(sim)n(ulated)523 3327 y(atomic)g(bit)h(and)g(is) f(called)g(\\V.")g(The)h(other)f(bit)h(o)n(wned)e(b)n(y)i(the)g(writer) e(is)i(named)f(\\W".)523 3426 y(T)-7 b(o)27 b(sum)h(up,)g(w)n(e)f(ha)n (v)n(e)g(the)h(follo)n(wing)e(3)h(safe)h(bits:)523 3599 y FH(W)-8 b(riter)32 b FD(!)p 915 3517 115 4 v 915 3624 4 107 v 21 w FH(V)p 1026 3624 V 915 3627 115 4 v 21 w FD(!)g FH(Reader)857 b FK(v)-5 b(alue)27 b(of)h(sim)n(ulated)f(atomic)g (bit)523 3786 y FH(W)-8 b(riter)32 b FD(!)p 915 3704 V 915 3811 4 107 v 9 w FH(W)p 1026 3811 V 915 3814 115 4 v 6 w FD(!)g FH(Reader)1415 b FK(\015ag)26 b(for)h(writer)523 3972 y FH(W)-8 b(riter)32 b FD( )p 915 3890 V 915 3997 4 107 v 21 w FH(R)p 1026 3997 V 915 4000 115 4 v 21 w FD( )g FH(Reader)1405 b FK(\015ag)27 b(for)g(reader)523 4222 y Fl(6.5.3)99 b(The)34 b(Pr)-5 b(oto)g(c)g(ols)523 4372 y FK(In)26 b(the)h(proto)r(cols,)e(w)n(e)h(mak)n(e)f(use)i(of)f (the)g(follo)n(wing)g(statemen)n(ts.)g(The)g(o)n(wner)f(of)h(a)g(safe) 523 4471 y(bit)33 b FC(B)k FK(can)32 b(execute)h(the)g(statemen)n(t)f (\\)p Fk(change)41 b(B)p FK(")32 b(to)g(c)n(hange)g(its)g(v)-5 b(alue.)33 b(Remem)n(b)r(er)523 4571 y(that)25 b(during)g(this)g(c)n (hange,)f(the)i(v)-5 b(alue)25 b(ma)n(y)f(\015ic)n(k)n(er)g(b)r(et)n(w) n(een)h(0)g(and)g(1.)g(Lo)r(cal)f(v)-5 b(ariables)523 4671 y(ha)n(v)n(e)37 b(lo)n(w)n(er)g(case)g(names)h(to)h(distinguish)f (them)h(from)f(the)h(shared)e(bits.)i(In)f(all)g(the)523 4770 y(proto)r(cols)30 b(presen)n(ted)g(here,)h(the)g(lo)r(cal)g(v)-5 b(ariables)29 b(are)i(2-v)-5 b(alued)30 b(\(bits\),)i(and)f(are)f(used) 523 4870 y(to)g(hold)f(a)h(cop)n(y)e(of)i FC(V)19 b FK(.)30 b(F)-7 b(or)29 b(this)h(purp)r(ose)f(there)g(is)h(a)f(statemen)n(t)h (\\)p Fk(read)41 b(loc)i(:=)g(V)p FK(,")523 4969 y(whose)21 b(e\013ect)i(is)f(to)g(read)f FC(V)41 b FK(and)22 b(store)f(the)h (result)g(in)g(the)g(lo)r(cal)g(v)-5 b(ariable)21 b FC(l)r(oc)p FK(.)h(Giv)n(en)f(the)523 5069 y(regularit)n(y)30 b(of)h(a)g(c)n (hanged-only)f(safe)h(bit,)h(w)n(e)f(kno)n(w)g(that)h(the)g(c)n(hanges) e(to)i(and)f(reads)523 5169 y(from)h(it)h(ob)r(ey)g(the)g(conditions)f (A0)g(and)h(A2)f(\(see)h(de\014nition)g(6.4\),)f(for)g(some)g(reading) 523 5268 y(function.)c(There)e(is)h(the)g(conditional)f(\\)p Fk(if)g FK(test)h Fk(then)f FK(statemen)n(t.",)g(with)i(the)f(ob)n (vious)523 5368 y(seman)n(tics.)f(The)g(test)h(is)f(either)h(")p Fk(W==R)p FK(")d(or)h(\\)p Fk(W<>R)p FK(.")f(P)n(erforming)h(suc)n(h)h (a)g(test)h(is)f(done)p eop end %%Page: 71 81 TeXDict begin 71 80 bop 1700 299 a FF(6.5.)53 b(Optimal)26 b(Construction)g(of)h(A)n(tomic)e(Bits)155 b(71)523 506 y FK(b)n(y)34 b(\014rst)f(reading)g(the)h(\015ag)g(o)n(wned)f(b)n(y)h (the)g(other)f(user)h(\(e.g.)f(the)i(writer)e(reads)g FC(R)h FK(in)523 606 y(its)h(test\).)f(This)h(read)e(is)h(implicit)i (in)e(the)h(test,)f(and)h(is)f(not)g(stated)g(explicitly)h(in)f(the)523 706 y(proto)r(col)i(as)g(a)g(separate)g Fk(read)f FK(statemen)n(t.)i (In)g(order)f(to)g(b)r(e)i(able)e(to)h(compare)e(this)523 805 y(v)-5 b(alue)31 b(against)f(the)i(v)-5 b(alue)31 b(of)g(one's)f(o)n(wn)h(\015ag,)f(w)n(e)h(assume)g(that)g(the)h(o)n (wner)e(of)h(a)g(\015ag)523 905 y(k)n(eeps)26 b(trac)n(k)f(of)h(its)g (v)-5 b(alue.)27 b(This)f(abbreviated)f(notation)h(for)g(tests)g(will)h (pro)n(v)n(e)d(to)j(mak)n(e)523 1005 y(the)g(proto)r(cols)e(more)h (concise)f(and)i(readable.)e(The)i(\014nal)f(statemen)n(t)h(in)f(our)g (rep)r(ertoire)523 1104 y(is)f(\\)p Fk(return)41 b(loc)p FK(,")24 b(with)i FC(l)r(oc)f FK(again)g(a)g(lo)r(cal)g(bit.)h(It)g(is) f(used)h(b)n(y)f(the)h(reader)e(to)i(exit)f(the)523 1204 y(execution)i(of)h(its)g(proto)r(col)e(and)h(to)h(sp)r(ecify)g(the)g (return)f(v)-5 b(alue.)606 1303 y(W)e(e)28 b(can)f(no)n(w)g(state)h (the)g(proto)r(col:)523 1469 y Fk(WRITER)41 b(PROTOCOL)781 b(READER)41 b(PROTOCOL)523 1669 y(change)g(V)1089 b(1.)43 b(if)g(W==R)f(then)g(return)f(v)523 1768 y(if)i(W==R)f(then)g(change)f (W)522 b(2.)43 b(read)f(x)h(:=)g(V)1961 1868 y(3.)g(if)g(W<>R)f(then)g (change)f(R)1961 1968 y(4.)i(read)f(v)h(:=)g(V)1961 2067 y(5.)g(if)g(W==R)f(then)g(return)f(v)1961 2167 y(6.)i(read)f(v)h(:=)g (V)1961 2267 y(7.)g(return)e(x)523 2516 y Fl(6.5.4)99 b(Handshaking)523 2665 y FK(A)27 b(handshaking)e(mec)n(hanism)h(is)g (emplo)n(y)n(ed)f(to)i(let)f(the)h(reader)e(detect)i(when)f(a)g(c)n (hange)523 2765 y(of)h FC(V)45 b FK(is)27 b(\014nalised.)f(After)h(c)n (hanging)f FC(V)19 b FK(,)26 b(the)h(writer)f(p)r(erforms)g(a)h (handshak)n(e)e(b)n(y)h(trying)523 2864 y(to)38 b(mak)n(e)f FC(W)52 b FD(6)p FK(=)39 b FC(R)q FK(.)f(The)g(basic)f(plan)h(for)f (the)h(reader)f(is)h(to)f(p)r(erform)h(a)f(handshak)n(e)523 2964 y(\(trying)27 b(to)f(mak)n(e)g FC(W)35 b FK(=)23 b FC(R)q FK(\))k(in)g(b)r(et)n(w)n(een)g(t)n(w)n(o)f(reads)g(of)g FC(V)19 b FK(.)27 b(If)h(afterw)n(ards,)d FC(W)39 b FK(is)26 b(found)523 3064 y(to)i(still)g(equal)f FC(R)h FK(in)g(v)-5 b(alue,)28 b(then)g(the)g(read)f(returns)g(the)h(second)f(v)-5 b(alue,)28 b(and)f(un)n(til)h(the)523 3163 y(next)35 b(writer's)e(handshak)n(e)g(is)i(detected,)f(future)h(reads)e(can)h (return)g(this)h(same)f(v)-5 b(alue)523 3263 y(with)32 b(no)e(risk)g(of)h(new-old)g(in)n(v)n(ersions.)e(If,)i(on)g(the)g (other)g(hand,)g FC(W)43 b FK(is)31 b(found)g(to)g(ha)n(v)n(e)523 3362 y(b)r(een)j(c)n(hanged)e(b)n(y)g(the)i(writer,)e(then)i(the)g (\014rst)e(v)-5 b(alue,)34 b FC(x)f FK(is)g(returned.)g(In)g(that)h (case,)523 3462 y FC(v)s FK(,)g(whic)n(h)f(migh)n(t)g(b)r(e)h(returned) e(in)i(line)f(1)g(of)g(the)h(next)f(read)g(action,)f(is)h(assigned)f (the)523 3562 y(curren)n(t)27 b(v)-5 b(alue)27 b(of)h FC(V)19 b FK(,)27 b(since)h(that)g(cannot)f(form)g(a)g(new-old)g(in)n (v)n(ersion)f(with)i FC(x)p FK(.)523 3811 y Fl(6.5.5)99 b(Pr)-5 b(o)g(of)34 b(of)h(Corr)-5 b(e)g(ctness)523 3960 y FK(Let)29 b(\()p FD(A)p FC(;)14 b FD(!)p FK(\))30 b(b)r(e)f(a)g(run)f (of)h(the)g(atomic)g(bit)g(construction.)f(Then)i(w)n(e)e(can)h(\014nd) g(a)f(lo)n(w)n(er)523 4060 y(lev)n(el)e(regular)e(run)j(for)e(eac)n(h)h (of)g(the)h(three)f(safe)g(bits,)h(consisting)e(of)h(all)g(the)h(c)n (hanges)e(to)523 4159 y(and)h(reads)f(of)i(that)f(safe)g(bit,)h(and)f (the)h(precedence)f(relation)f(de\014ned)i(from)f(their)g(start)523 4259 y(and)e(\014nish)g(times.)g(Let)f FC(\031)1334 4229 y Fw(0)1382 4259 y FK(b)r(e)h(a)f(reading)g(function)h(that)g(mak)n(es) f(the)h(run)f(on)h FC(V)42 b FK(regular.)523 4359 y(Let)33 b FD(W)41 b FK(b)r(e)33 b(the)h(set)f(of)g(write)g(actions)g(in)g FD(A)p FK(,)h(and)f FD(R)h FK(the)g(set)f(of)g(read)f(actions)h(in)g FD(A)p FK(.)523 4458 y(W)-7 b(e)24 b(m)n(ust)h(pro)n(v)n(e)d(the)i (atomicit)n(y)g(of)g FC(\033)i FK(=)d(\()p FD(A)p FC(;)14 b FD(!)p FC(;)g(\031)s FK(\))25 b(for)e(some)h(reading)e(function)j FC(\031)s FK(.)f(W)-7 b(e)523 4558 y(de\014ne)29 b FC(\031)j FK(in)d(a)f(natural)f(w)n(a)n(y)h(as)g(follo)n(ws.)f(Let)i FC(r)e FD(2)e(R)k FK(b)r(e)g(an)n(y)f(read)g(action)g(and)g(let)h FC(l)r(oc)523 4658 y FK(b)r(e)f(the)g(lo)r(cal)g(v)-5 b(ariable)26 b(returned)i(b)n(y)f FC(r)r FK(.)i(W)-7 b(e)28 b(can)f(de\014ne)h FC(\032)p FK(,)g(the)g(subread)f(of)h FC(r)r FK('s)g(return)523 4757 y(v)-5 b(alue,)27 b(as)g(the)h(last)f (subread)g(from)g FC(V)46 b FK(in)n(to)27 b FC(l)r(oc)h FK(b)r(efore)f FC(r)j FK(returns.)d(E.g.)g(if)g FC(r)k FK(returns)26 b(in)523 4857 y(line)j(7)g(then)h FC(\032)f FK(is)g(the)g(read)g(in)g(line)g(2)g(of)g FC(r)r FK(,)h(and)f(if)h FC(r)i FK(returns)c(in)h(line)h(1,)f(then)g FC(\032)g FK(is)g(the)523 4956 y(read)h(in)h(line)h(4)e(or)g(line)i(6)e(of)h (some)g(earlier)e(read)h(action.)h(Let)g FC(w)j FK(b)r(e)d(the)g(write) g(action)523 5056 y(whic)n(h)c(executed)g FC(\031)1153 5026 y Fw(0)1176 5056 y FK(\()p FC(\032)p FK(\))g(in)g(the)h(\014rst)e (line)h(of)g(its)g(proto)r(col.)e(Then)i(w)n(e)g(de\014ne)g FC(\031)s FK(\()p FC(r)r FK(\))d(=)f FC(w)r FK(.)606 5156 y FH(Pro)s(of)j(of)h(A0)c FK(In)n(tuitiv)n(ely)-7 b(,)23 b(since)f(the)h(underlying)g(bits)g(are)f(safe,)g(a)h(read)f (action)g(can)523 5255 y(only)33 b(return)g(the)h(v)-5 b(alue)34 b(of)f(a)h(past)f(or)g(concurren)n(t)f(\(o)n(v)n(erlapping\)) g(write)h(action.)g(W)-7 b(e)523 5355 y(formally)31 b(pro)n(v)n(e)g(A0) h(b)n(y)g(con)n(tradiction:)f(Assume)h(that)g(for)g(some)g FC(r)h FD(2)e(R)p FK(,)i FC(r)g FD(!)e FC(\031)s FK(\()p FC(r)r FK(\).)p eop end %%Page: 72 82 TeXDict begin 72 81 bop 1700 299 a FF(6.5.)53 b(Optimal)26 b(Construction)g(of)h(A)n(tomic)e(Bits)155 b(72)523 506 y FK(Let)33 b FC(\032)g FK(b)r(e)g(the)g(subread)e(of)i FC(r)r FK('s)g(return)g(v)-5 b(alue)32 b(as)g(ab)r(o)n(v)n(e.)f(Then)i FC(f)9 b FK(\()p FC(\032)p FK(\))32 b FC(<)f(f)9 b FK(\()p FC(r)r FK(\))34 b(and)e(b)n(y)523 606 y(de\014nition)26 b(of)f FC(\031)s FK(,)g FC(s)p FK(\()p FC(\031)s FK(\()p FC(r)r FK(\)\))h FC(<)c(s)p FK(\()p FC(\031)1570 576 y Fw(0)1594 606 y FK(\()p FC(\032)p FK(\)\).)k(T)-7 b(ogether)24 b(these)h(imply)h(that)f FC(\032)e FD(!)g FC(\031)2968 576 y Fw(0)2992 606 y FK(\()p FC(\032)p FK(\),)j(whic)n(h)523 706 y(con)n(tradicts)g(the)i(safet)n(y)f(of)h FC(\031)1476 676 y Fw(0)1500 706 y FK(.)606 805 y FH(Pro)s(of)38 b(of)g(A1)c FK(The)f(pro)r(of)g(is)g(again)f(b)n(y)h(con)n(tradiction.)f(Let)h FC(r)2706 817 y FB(1)2744 805 y FC(;)14 b(r)2818 817 y FB(2)2888 805 y FD(2)33 b(R)g FK(b)r(e)h(suc)n(h)523 905 y(that)c FC(r)742 917 y FB(1)806 905 y FD(!)c FC(r)952 917 y FB(2)1019 905 y FK(and)k FC(\031)s FK(\()p FC(r)1302 917 y FB(2)1340 905 y FK(\))d FD(!)f FC(\031)s FK(\()p FC(r)1627 917 y FB(1)1665 905 y FK(\).)k(By)f(the)h(\014nite)g(history) f(assumption,)g(w)n(e)g(can)g(let)523 1005 y FC(r)560 1017 y FB(1)624 1005 y FK(b)r(e)d(the)g(\014rst)f(suc)n(h)h(read)f (action.)g(Let)h FC(\032)1874 1017 y FA(i)1901 1005 y FC(;)14 b(i)23 b FD(2)g(f)p FK(1)p FC(;)14 b FK(2)p FD(g)24 b FK(b)r(e)i(the)g(subread)f(from)g FC(V)45 b FK(of)26 b FC(r)3274 1017 y FA(i)3302 1005 y FK('s)523 1104 y(return)31 b(v)-5 b(alue.)32 b(F)-7 b(or)31 b(notational)g(con)n(v)n(enience,)f(w) n(e)i(use)f(the)h(elemen)n(t-of-set)f(sym)n(b)r(ol)g FD(2)523 1204 y FK(to)d(denote)g(that)g(a)f(safe)h(bit)g(access)f(is)h (part)f(of)h(a)g(read)f(or)g(write)h(action.)f(Then)h FC(\032)3143 1216 y FB(1)3204 1204 y FD(2)c FC(r)3320 1216 y FB(1)523 1303 y FK(if)34 b FC(r)642 1315 y FB(1)712 1303 y FK(returned)f(in)g(line)g(5)g(or)f(line)h(7.)g(Otherwise,)f(if)h FC(r)2300 1315 y FB(1)2371 1303 y FK(returned)g(in)g(line)g(1,)g(then)g (b)n(y)523 1403 y(the)c(minimalit)n(y)g(of)g FC(r)1221 1415 y FB(1)1259 1403 y FK(,)f FC(\032)1353 1415 y FB(1)1419 1403 y FK(is)h(in)g(the)g(immediately)g(preceding)f(read)g(action.)g (De\014ning)523 1503 y FC(!)575 1515 y FA(i)636 1503 y FK(as)33 b FC(\031)794 1473 y Fw(0)817 1503 y FK(\()p FC(\032)892 1515 y FA(i)920 1503 y FK(\),)h(w)n(e)f(also)g(ha)n(v)n(e)f FC(!)1559 1515 y FA(i)1619 1503 y FD(2)h FC(\031)s FK(\()p FC(r)1826 1515 y FA(i)1855 1503 y FK(\).)h(F)-7 b(rom)33 b FC(\031)s FK(\()p FC(r)2287 1515 y FB(2)2325 1503 y FK(\))g FD(!)g FC(\031)s FK(\()p FC(r)2625 1515 y FB(1)2664 1503 y FK(\))h(follo)n(ws)e FC(!)3060 1515 y FB(2)3130 1503 y FD(!)h FC(!)3298 1515 y FB(1)3335 1503 y FK(.)523 1602 y(According)d(to)i(the)f(reader)f(proto)r(col,)g FC(r)1820 1614 y FB(1)1888 1602 y FD(!)f FC(r)2037 1614 y FB(2)2106 1602 y FK(implies)j FC(\032)2435 1614 y FB(1)2501 1602 y FK(=)d FC(\032)2638 1614 y FB(2)2707 1602 y FK(or)h FC(\032)2855 1614 y FB(1)2922 1602 y FD(!)f FC(\032)3077 1614 y FB(2)3114 1602 y FK(.)j(Since)523 1702 y FC(\031)s FK(\()p FC(r)642 1714 y FB(1)680 1702 y FK(\))41 b FD(6)p FK(=)f FC(\031)s FK(\()p FC(r)977 1714 y FB(2)1015 1702 y FK(\),)f FC(\032)1152 1714 y FB(1)1230 1702 y FD(6)p FK(=)h FC(\032)1378 1714 y FB(2)1453 1702 y FK(hence)e FC(\032)1737 1714 y FB(1)1815 1702 y FD(!)i FC(\032)1981 1714 y FB(2)2018 1702 y FK(.)f(Since)f(the)g(run)g(on)g FC(V)57 b FK(is)38 b(regular,)e(w)n(e)523 1802 y(ha)n(v)n(e)e FC(s)p FK(\()p FC(!)845 1814 y FB(1)882 1802 y FK(\))i FC(<)g(f)9 b FK(\()p FC(\032)1176 1814 y FB(1)1213 1802 y FK(\))36 b(\(from)f(A0\))g(and)g FC(s)p FK(\()p FC(\032)1971 1814 y FB(2)2009 1802 y FK(\))h FC(<)f(f)9 b FK(\()p FC(!)2311 1814 y FB(1)2348 1802 y FK(\))36 b(\(from)f(A2\).)h(Since)f FC(!)3123 1814 y FB(1)3195 1802 y FK(lasts)523 1901 y(throughout)27 b(the)h(time)g(in)n(terv)-5 b(al)27 b([)p FC(f)9 b FK(\()p FC(\032)1737 1913 y FB(1)1774 1901 y FK(\))p FC(;)14 b(s)p FK(\()p FC(\032)1957 1913 y FB(2)1995 1901 y FK(\)],)664 2084 y(all)28 b(reads)e(from)i FC(W)39 b FK(b)r(et)n(w)n(een)28 b FC(f)9 b FK(\()p FC(\032)1757 2096 y FB(1)1794 2084 y FK(\))28 b(and)f FC(s)p FK(\()p FC(\032)2129 2096 y FB(2)2166 2084 y FK(\))h(obtain)g(the)g(same)f(v)-5 b(alue)p FC(:)141 b FK(\(6.1\))606 2267 y(W)-7 b(e)28 b(no)n(w)f(consider)g(all) g(three)g(p)r(ossible)h(cases)e(of)i(the)g(p)r(osition)f(of)g FC(\032)2785 2279 y FB(1)2823 2267 y FK(.)523 2433 y Fk(read)42 b(x)h(:=)g(V)31 b FH(in)h(line)e(2)42 b FK(Then)34 b FC(r)1677 2445 y FB(1)1749 2433 y FK(returned)g(in)g(line)h(7)e(of)i (its)f(proto)r(col)f(execution,)731 2532 y(after)e(seeing)g FC(W)42 b FD(6)p FK(=)29 b FC(R)j FK(in)g(line)g(5.)f(Ho)n(w)n(ev)n (er,)f(at)i(that)f(p)r(oin)n(t,)h(the)g(v)-5 b(alue)32 b(of)f FC(R)i FK(is)731 2632 y(the)i(same)g(as)f(the)i(v)-5 b(alue)34 b(read)h(from)f FC(W)48 b FK(in)35 b(line)g(3.)g(Because)f FC(\032)2836 2644 y FB(2)2908 2632 y FK(is)h(either)g(the)731 2731 y(read)25 b(in)i(line)g(6)f(of)g(this)h(proto)r(col)e(execution,)h (or)g(a)g(later)f(read,)h(w)n(e)g(ha)n(v)n(e)f(found)i(a)731 2831 y(con)n(tradiction)f(with)i(\(6.1\))f(ab)r(o)n(v)n(e.)523 2997 y Fk(read)42 b(v)h(:=)g(V)31 b FH(in)h(line)e(4)42 b FK(Then)34 b FC(r)1677 3009 y FB(1)1749 2997 y FK(returned)g(in)g (line)h(5)e(of)i(its)f(proto)r(col)f(execution,)731 3097 y(after)39 b(seeing)g FC(W)51 b FK(equal)39 b(to)h FC(R)q FK(.)f(Since)h FC(\032)2068 3109 y FB(1)2148 3097 y FD(!)j FC(\032)2317 3109 y FB(2)2354 3097 y FK(,)c FC(\032)2459 3109 y FB(2)2536 3097 y FK(m)n(ust)h(b)r(e)g(part)f(of)g(some)731 3196 y(later)29 b(read)g(action)g(whic)n(h)h(sees)f FC(W)42 b FK(di\013eren)n(t)30 b(from)f FC(R)i FK(in)f(line)g(1)f(of)h(its)g (proto)r(col)731 3296 y(execution.)d(This)h(con)n(tradicts)e(\(6.1\))h (again.)523 3462 y Fk(read)42 b(v)h(:=)g(V)31 b FH(in)h(line)e(6)42 b FK(Then)37 b FC(r)1680 3474 y FB(1)1754 3462 y FK(returned)f(in)h (line)g(1)g(of)g(its)f(proto)r(col)g(execution)731 3562 y(\(whic)n(h)26 b(immediately)g(succeeds)g(that)g(of)g FC(\032)2116 3574 y FB(1)2153 3562 y FK(\))g(after)g(seeing)f FC(W)38 b FK(equal)26 b(to)g FC(R)q FK(.)g(This)731 3661 y(case)g(therefore)h(reduces)g(to)g(the)h(previous)f(one.)523 3827 y(W)-7 b(e)28 b(ha)n(v)n(e)e(sho)n(wn)h(that)h(the)g(assumed)f (violation)g(of)g(A1)h(leads)f(to)g(a)g(con)n(tradiction.)606 3927 y FH(Pro)s(of)g(of)f(A2)d FK(The)g(pro)r(of)g(is)g(once)f(again)g (b)n(y)h(con)n(tradiction.)f(Let)h FC(r)j FD(2)d(R)p FC(;)14 b(w)26 b FD(2)d(W)30 b FK(b)r(e)523 4027 y(suc)n(h)24 b(that)h FC(\031)s FK(\()p FC(r)r FK(\))f FD(!)f FC(w)j FD(!)d FC(r)r FK(.)i(Let)g FC(\032)f FK(b)r(e)h(the)g(read)e(from)h FC(V)43 b FK(of)24 b FC(r)r FK('s)h(return)f(v)-5 b(alue)24 b(as)g(usual,)523 4126 y(and)31 b FC(!)j FK(the)d(write)g(to)g FC(V)50 b FK(in)31 b FC(w)r FK(.)h(F)-7 b(rom)31 b FC(\031)1827 4096 y Fw(0)1850 4126 y FK(\()p FC(\032)p FK(\))f FD(2)f FC(\031)s FK(\()p FC(r)r FK(\))k(and)e FC(!)g FD(2)e FC(w)34 b FK(follo)n(ws)c FC(\031)3008 4096 y Fw(0)3032 4126 y FK(\()p FC(\032)p FK(\))f FD(!)g FC(!)s FK(.)523 4226 y(By)h(regularit)n(y)e(of)i FC(V)18 b FK(,)30 b FD(:)p FK(\()p FC(!)h FD(!)c FC(\032)p FK(\),)j(in)g(other)f(w)n(ords,) g FC(s)p FK(\()p FC(\032)p FK(\))e FC(<)g(f)9 b FK(\()p FC(!)s FK(\).)30 b(Hence)g FC(\032)d FD(62)g FC(r)r FK(,)k(and)523 4325 y FC(r)k FK(m)n(ust)d(ha)n(v)n(e)f(returned)h(in)g(line)h(1)f(of)g (its)g(proto)r(col)f(execution)h(after)g(seeing)f FC(W)43 b FK(=)30 b FC(R)q FK(.)523 4425 y(This)g(means)f(the)h(in)n(terv)-5 b(al)29 b([)p FC(f)9 b FK(\()p FC(!)s FK(\))p FC(;)14 b(s)p FK(\()p FC(r)r FK(\)])31 b(is)f(not)f(free)h(from)f(c)n(hanges)f (to)i FC(R)q FK(,)f(since)h(write)523 4525 y FC(w)f FK(executes)d(line) g(2)g(of)g(its)g(proto)r(col)f(in)i(this)f(in)n(terv)-5 b(al.)26 b(So)g FC(R)h FK(m)n(ust)f(ha)n(v)n(e)f(b)r(een)i(c)n(hanged) 523 4624 y(b)r(et)n(w)n(een)d FC(\032)g FK(and)g FC(r)r FK(.)h(According)e(to)h(the)g(reader)f(proto)r(col,)g(this)h(is)g(done) g(in)g(line)g(3,)g(and)g(is)523 4724 y(follo)n(w)n(ed)k(b)n(y)i(a)f Fk(read)41 b(v)j(:=)e(V)29 b FK(statemen)n(t.)h(This)f(read)g(b)r(et)n (w)n(een)g FC(\032)h FK(and)f FC(r)j FK(con)n(tradicts)523 4824 y(the)c(de\014nition)g(of)g FC(\032)p FK(.)f(This)h(completes)f (the)h(pro)r(of.)f Fu(2)606 4923 y FK(Lemma)g(6.5)g(and)h(the)g(giv)n (en)e(construction)h(pro)n(v)n(e)f(the)i(follo)n(wing)523 5089 y Fv(Theorem)k FH(6.6)41 b FK(3)c FG(safe)h(bits)g(ar)l(e)g(ne)l (c)l(essary)g(and)f(su\016cient)h(to)f(c)l(onstruct)f(a)i(single-)523 5189 y(r)l(e)l(ader,)31 b(single-writer,)g(atomic)g(bit.)p eop end %%Page: 73 83 TeXDict begin 73 82 bop 1700 299 a FF(6.5.)53 b(Optimal)26 b(Construction)g(of)h(A)n(tomic)e(Bits)155 b(73)523 506 y FL(6.6)116 b(The)38 b(4-trac)m(k)f(Proto)s(col)523 706 y FK(W)-7 b(e)29 b(return)e(to)h(the)h(general)e(problem)g(of)h (constructing)g(a)f FC(b)p FK(-bit)h(atomic)g(v)-5 b(ariable)27 b(with)523 805 y(a)f(linear)g(n)n(um)n(b)r(er)g(of)g(safe)g(bits.)g (The)h(safe)f(bits)g(are)g(divided)g(in)n(to)g(a)g(n)n(um)n(b)r(er)g (of)h FG(c)l(ontr)l(ol)523 905 y(bits)p FK(,)35 b(collectiv)n(ely)e (called)h(the)g FG(switch)p FK(,)h(and)f(sev)n(eral)f FC(b)p FK(-bit)h(trac)n(ks,)f(whose)g(purp)r(ose)h(is)523 1005 y(to)c(hold)g(the)g(v)-5 b(alues)30 b(of)g(the)g(atomic)f(v)-5 b(ariable,)29 b(W)-7 b(e)31 b(start)e(out)h(with)h(a)e(pro)r(of)h(of)g (wh)n(y)f(4)523 1104 y(trac)n(ks)h(are)h(necessary)-7 b(,)31 b(a)g(result)h(due)g(to)g(Burns)f(and)h(P)n(eterson)e([3)o(].)i (It)h(is)e(a)h(v)-5 b(ariation)523 1204 y(on)27 b(pro)r(ofs)g(sho)n (wing)g(the)g(imp)r(ossibilit)n(y)h(of)g(w)n(ait-free)e(consensus)h (\([6,)g(3,)h(1)o(]\).)606 1303 y(Consider)j(the)g(initial)h(state)f (of)h(a)f(construction,)f(where)h(b)r(oth)h(the)g(reader)e(and)h(the) 523 1403 y(writer)25 b(are)f(ab)r(out)h(to)g(start)g(their)g(proto)r (col.)f(In)i(this)f(state,)g(the)h(c)n(hoice)f(of)g(whic)n(h)g(trac)n (k)523 1503 y(the)36 b(reader)e(will)i(access)e(in)i(its)g(next)f (action)g(is)h(not)f(\014xed)h(y)n(et,)f(since)h(a)f(write)g(using)523 1602 y(a)k(new)h(trac)n(k)e(could)h(or)g(could)g(not)g(o)r(ccur)g(b)r (efore)g(the)h(read)f(starts.)f(Suc)n(h)i(a)f(state,)523 1702 y(from)32 b(whic)n(h)h(di\013eren)n(t)f(runs)h(lead)f(to)g (di\013eren)n(t)h(c)n(hoices)e(of)i(trac)n(k)e(to)i(read)f(are)f (called)523 1802 y(`biv)-5 b(alen)n(t',)33 b(while)h(states)e(in)i (whic)n(h)f(the)g(c)n(hoice)g(is)g(\014xed)g(are)f(called)h(`univ)-5 b(alen)n(t'.)33 b(F)-7 b(or)523 1901 y(a)38 b(w)n(ait-free)f (construction,)g(there)h(can)g(b)r(e)h(no)f(in\014nite)h(run)f(of)g (biv)-5 b(alen)n(t)38 b(states)g(\(w)n(e)523 2001 y(restrict)27 b(atten)n(tion)g(to)g(runs)f(where)h(the)h(read)e(and)h(write)g(proto)r (col)f(are)g(eac)n(h)h(executed)523 2100 y(only)g(once\).)g(Th)n(us,)g (from)g(the)h(starting)f(state)g(w)n(e)g(can)g(reac)n(h)f(a)h(biv)-5 b(alen)n(t)27 b(state,)h(sa)n(y)e FC(S)5 b FK(,)523 2200 y(b)r(oth)31 b(of)f(whose)g(successors)e FC(S)1510 2212 y FA(w)1594 2200 y FK(and)i FC(S)1809 2212 y FA(r)1876 2200 y FK(are)f(univ)-5 b(alen)n(t,)31 b(where)e(the)i(writer)f(p)r (erforms)523 2300 y(subaction)e FC(x)h FK(to)f(get)h(from)f(state)g FC(S)34 b FK(to)28 b FC(S)1855 2312 y FA(w)1909 2300 y FK(,)g(and)h(the)g(reader)e(p)r(erform)h(subaction)g FC(y)j FK(to)523 2399 y(get)25 b(from)g(state)g FC(S)30 b FK(to)25 b FC(S)1285 2411 y FA(r)1322 2399 y FK(.)g(The)h(c)n(hoice)e (of)h(trac)n(k)f(is)i(\014xed)f(in)g FC(S)2510 2411 y FA(w)2590 2399 y FK(and)g FC(S)2800 2411 y FA(r)2836 2399 y FK(,)h(but)g(di\013eren)n(t.)523 2499 y(If)c FC(S)651 2511 y FA(w)r(r)759 2499 y FK(is)f(the)h(state)f(reac)n(hed)f(from)h FC(S)1707 2511 y FA(w)1783 2499 y FK(b)n(y)g(a)g(subaction)g(of)g(the)h (reader,)e(then)i(the)g(c)n(hoice)523 2599 y(of)h(trac)n(k)f(in)i FC(S)965 2611 y FA(w)r(r)1075 2599 y FK(is)f(also)f(di\013eren)n(t)h (from)g(that)h(in)f FC(S)2150 2611 y FA(r)2187 2599 y FK(.)h(So)f(the)g(reader's)f(lo)r(cal)h(state)g(m)n(ust)523 2698 y(b)r(e)i(di\013eren)n(t)g(b)r(et)n(w)n(een)g FC(S)1327 2710 y FA(w)r(r)1438 2698 y FK(and)f FC(S)1647 2710 y FA(r)1684 2698 y FK(.)h(It)g(follo)n(ws)f(that)h FC(x)g FK(is)g(a)f(write)h(subaction,)f(and)h FC(y)i FK(a)523 2798 y(read)f(subaction,)g(accessing)f(the)i(same)f(v)-5 b(ariable.)25 b(T)-7 b(o)27 b(the)g(writer,)f(states)g FC(S)2957 2810 y FA(w)3037 2798 y FK(and)g FC(S)3248 2810 y FA(r)r(w)3335 2798 y FK(,)523 2897 y(reac)n(hed)35 b(from)h FC(S)1090 2909 y FA(r)1163 2897 y FK(b)n(y)f(executing)h FC(x)p FK(,)h(are)e(indistinguishable,)h(while)g(the)h(reader)e(will) 523 2997 y(access)26 b(di\013eren)n(t)i(trac)n(ks)e(from)h(these)h (states.)f(If)h(the)g(writer)f(no)n(w)g(\014nishes)g(its)h(proto)r(col) 523 3097 y(and)k(pro)r(ceeds)e(to)i(write)g(a)f(second)g(and)h(third)f (v)-5 b(alue,)32 b(then)g(these)g(2)f(new)h(v)-5 b(alues)32 b(will)523 3196 y(ha)n(v)n(e)c(to)i(b)r(e)f(written)h(to)f(new)h(trac)n (ks)e(to)h(ensure)g(collision-freedom.)f(This)h(sho)n(ws)f(that)523 3296 y(4)f(trac)n(ks)f(are)h(necessary)-7 b(.)26 b(It)i(remains)f(to)g (sho)n(w)g(that)h(4)f(trac)n(ks)f(su\016ce.)606 3396 y(W)-7 b(e)31 b(con)n(v)n(enien)n(tly)f(split)h(the)h(4)e(trac)n(ks)g (in)n(to)g(2)h(groups)f FC(T)2454 3408 y FB(0)2490 3396 y FC(;)14 b(T)2576 3408 y FB(1)2644 3396 y FK(of)31 b(2)f(trac)n(ks)g FC(T)3112 3408 y FA(i;)p FB(0)3192 3396 y FC(;)14 b(T)3278 3408 y FA(i;)p FB(1)523 3495 y FK(eac)n(h.)34 b(In)i(order)e(to)h(a)n (v)n(oid)e(collisions,)h(the)i(writer)e(alw)n(a)n(ys)f(tries)i(to)g(go) f(to)h(the)h(group)523 3595 y(other)d(than)h(where)g(it)g(sees)f(the)i (reader.)d(The)i(reader)f(in)h(turn)g(w)n(an)n(ts)f(recen)n(t)g(v)-5 b(alues,)523 3694 y(hence)39 b(it)g(tries)f(to)h(go)f(to)g(the)h(group) f(where)g(it)h(sees)f(the)h(writer.)g(Both)f(the)h(reader)523 3794 y(and)28 b(the)g(writer)g(use)g(part)f(of)h(the)g(switc)n(h)g(to)g (signal)f(the)i(other)e(user)h(ab)r(out)f(the)i(group)523 3894 y(they)f(are)e(in.)i(F)-7 b(or)27 b(the)g(momen)n(t)h(this)f(in)n (v)n(olv)n(es)f(an)h(atomic)g(bit)h FC(W)39 b FK(for)27 b(the)h(writer,)f(and)523 3993 y(an)32 b(atomic)g(bit)h FC(R)g FK(for)f(the)g(reader.)f(In)i(addition,)f(the)h(switc)n(h)f(has) g(t)n(w)n(o)f FG(tr)l(ackdisplays)523 4093 y FC(D)592 4105 y FB(0)629 4093 y FC(;)14 b(D)735 4105 y FB(1)772 4093 y FK(,)28 b(one)g(for)f(eac)n(h)g(group,)g(displa)n(ying)g(the)h (most)g(recen)n(tly)f(completed)i(trac)n(k.)d(F)-7 b(or)523 4193 y(the)26 b(momen)n(t,)g(these)f(to)r(o)h(are)e(atomic)i(bits.)g (Later)e(w)n(e)i(will)f(sho)n(w)g(ho)n(w)g(to)h(use)f(safe)g(bits)523 4292 y(instead.)k(No)n(w)g(when)h(the)g(writer)f(completes)g(a)g(write) g(action,)g(the)h(new)f(v)-5 b(alue)30 b(will)f(b)r(e)523 4392 y(on)e(trac)n(k)g FC(T)900 4404 y FA(W)n(;D)1034 4412 y Fx(W)1103 4392 y FK(.)606 4491 y(In)h(summary)-7 b(,)27 b(the)i(arc)n(hitecture)d(consists)h(of)h(4)g(trac)n(ks)e(of)i FC(b)g FK(safe)f(bits)i(eac)n(h)e(and)g(the)523 4591 y(follo)n(wing)g(4)g(atomic)g(bits,)h(whic)n(h)f(comprise)g(the)h (switc)n(h:)523 4767 y FH(W)-8 b(riter)32 b FD(!)p 915 4685 191 4 v 915 4804 4 119 v 42 w FC(D)1026 4779 y FB(0)p 1102 4804 V 915 4807 191 4 v 1106 4767 a FD(!)f FH(Reader)1096 b FK(group)27 b(0)g(trac)n(kdispla)n(y)523 4967 y FH(W)-8 b(riter)32 b FD(!)p 915 4886 V 915 5005 4 119 v 42 w FC(D)1026 4979 y FB(1)p 1102 5005 V 915 5008 191 4 v 1106 4967 a FD(!)f FH(Reader)1096 b FK(group)27 b(1)g(trac)n(kdispla)n (y)523 5168 y FH(W)-8 b(riter)32 b FD(!)p 915 5086 V 915 5193 4 107 v 46 w FH(W)p 1102 5193 V 915 5196 191 4 v 46 w FD(!)f FH(Reader)1331 b FK(writer's)27 b(group)523 5356 y FH(W)-8 b(riter)32 b FD( )p 915 5274 V 915 5381 4 107 v 59 w FH(R)p 1102 5381 V 915 5384 191 4 v 60 w FD( )f FH(Reader)1322 b FK(reader's)26 b(group)p eop end %%Page: 74 84 TeXDict begin 74 83 bop 2253 299 a FF(6.6.)53 b(The)26 b(4-trac)n(k)f(Proto)r(col)156 b(74)606 506 y FK(W)-7 b(e)21 b(can)f(no)n(w)g(informally)g(state)h(the)g(writer)f(proto)r (col.)f(The)i(writer)f(starts)g(b)n(y)g(reading)523 606 y FC(R)q FK(,)30 b(the)g(group)f(that)h(the)g(reader)f(is)h(in,)g(and)g (compares)e(it)j(to)e FC(W)12 b FK(,)30 b(the)h(writer's)e(group.)523 706 y(If)d(they)g(are)f(equal,)h(then)g(the)h(reader)d(m)n(ust)i(ha)n (v)n(e)f(left)h(the)h(other)e(group,)g(so)g(the)h(writer)523 805 y(simply)36 b(writes)g(to)g(a)f(trac)n(k)g(in)i(that)f(other)f (group,)g(and)h(c)n(hanges)f FC(W)48 b FK(afterw)n(ards.)34 b(It)523 905 y(c)n(ho)r(oses)26 b(the)i(displa)n(y)n(ed)f(trac)n(k)g (so)g(that)h(it)g(do)r(esn't)g(ha)n(v)n(e)e(to)i(c)n(hange)f(the)h (trac)n(kdispla)n(y)-7 b(.)523 1005 y(If)28 b FC(R)g FK(is)f(di\013eren)n(t)h(from)f FC(W)12 b FK(,)27 b(then)h(the)f (writer)g(writes)g(to)g(the)h(other)f(trac)n(k)f(in)h(its)h(group)523 1104 y(and)f(c)n(hanges)g(the)h(trac)n(kdispla)n(y)d FC(D)1670 1116 y FA(W)1773 1104 y FK(afterw)n(ards.)606 1204 y(The)e(reader)f(proto)r(col)g(is)h(then)h(as)e(follo)n(ws:)h(The) g(reader)f(starts)g(b)n(y)h(reading)f FC(W)35 b FK(to)23 b(see)523 1303 y(if)k(the)g(writer)e(has)h(v)-5 b(acated)26 b(the)g(reader's)f(group.)g(In)i(that)f(case)g(the)g(reader)f(c)n (hanges)g FC(R)523 1403 y FK(and)i(follo)n(ws)g(the)h(writer)f(to)g (the)h(other)f(group.)606 1503 y(Next,)33 b(the)h(reader)d(reads)h(the) i(trac)n(kdispla)n(y)c FC(D)2157 1515 y FA(R)2245 1503 y FK(of)j(its)g(group.)f(It)h(then)h(reads)d(the)523 1602 y(trac)n(k)26 b FC(T)784 1614 y FA(R;D)908 1622 y Fx(R)987 1602 y FK(and)h(returns)g(the)h(obtained)g(v)-5 b(alue.)606 1702 y(In)30 b(a)g(programming)e(language,)g(not)i(unlik)n (e)g(the)h(one)e(in)n(tro)r(duced)h(in)g(section)g(6.5.3,)523 1802 y(the)e(ab)r(o)n(v)n(e)e(proto)r(cols)g(lo)r(ok)h(lik)n(e:)523 1968 y Fk(WRITER)41 b(PROTOCOL)781 b(READER)41 b(PROTOCOL)523 2167 y(1.)i(if)g(R==w)e(then)783 b(if)43 b(W<>r)f(then)523 2267 y(2.)130 b(w)43 b(:=)g(1-w)958 b(r)43 b(:=)f(1-r)523 2366 y(3.)130 b(write)41 b(track)h(T[w,d[w]])389 b(change)41 b(R)523 2466 y(4.)130 b(change)41 b(W)871 b(endif)523 2565 y(5.)43 b(else)1131 b(read)42 b(d)h(:=)g(D[r])523 2665 y(6.)130 b(d[w])42 b(:=)h(1-d[w])607 b(read)42 b(track)g(T[r,d]) 523 2765 y(7.)130 b(write)41 b(track)h(T[w,d[w]])523 2864 y(8.)130 b(change)41 b(D[w])523 2964 y(9.)i(endif)606 3130 y FK(The)e(lo)n(w)n(er-case)e(lo)r(cal)i(v)-5 b(ariables)40 b(hold)h(copies)g(of)g(the)h(similarly)e(named)i(shared)523 3230 y(bits.)27 b(An)f(arra)n(y)e(notation)i(is)g(used)g(for)g(the)g (trac)n(ks)f(and)h(displa)n(ys)f(instead)h(of)g(the)h(index)523 3329 y(notation)20 b(that)h(w)n(e)f(reserv)n(e)f(for)h(the)h(text.)g (The)g(access)e(to)h(a)h(trac)n(k)e(has)h(b)r(een)h(compressed)523 3429 y(to)27 b(a)f(single)g(statemen)n(t)g(since)h(w)n(e)f(can)g (ignore)g(ho)n(w)g(man)n(y)g(bits)h(m)n(ust)f(b)r(e)h(c)n(hanged)f(and) 523 3528 y(in)j(what)g(order.)f(F)-7 b(or)28 b(notational)g(con)n(v)n (enience,)g(w)n(e)g(do)h(not)g(men)n(tion)g(the)g(v)-5 b(alue)29 b(to)f(b)r(e)523 3628 y(written)k(in)g(the)h(writer)e(proto)r (col)g(or)g(the)h(v)-5 b(alue)32 b(to)g(b)r(e)g(read)f(in)h(the)g (reader)f(proto)r(col.)523 3728 y(Since)i(eac)n(h)g(proto)r(col)f (execution)h(in)n(v)n(olv)n(es)e(exactly)i(one)g(trac)n(k)f(access,)g (the)h(meaning)523 3827 y(should)27 b(b)r(e)h(ob)n(vious.)606 3927 y(Consider)k(a)g(run)h(of)g(the)g(ab)r(o)n(v)n(e)e(construction.)h (Eac)n(h)g(action)g(con)n(tains)g(lo)n(w)n(er-lev)n(el)523 4027 y(accesses)h(to)i(the)g(atomic)f(bits)h(of)g(the)g(switc)n(h)f (and)h(to)f(the)h(safe)g(bits)g(of)f(a)h(trac)n(k.)e(By)523 4126 y(de\014nition)42 b(6.1,)f(the)g(partial)g(order)f(on)h(the)h (accesses)e(to)i(eac)n(h)e(atomic)h(bit)h(can)f(b)r(e)523 4226 y(extended)34 b(to)f(a)h(total)f(one.)g(In)n(tuitiv)n(ely)-7 b(,)34 b(the)g(accesses)e(to)h(di\013eren)n(t)h(atomic)f(bits)h(can)523 4325 y(then)d(also)e(b)r(e)h(totally)g(ordered.)f(In)h([1],)g(it)h(w)n (as)e(sho)n(wn)h(that)g(this)g(is)h(indeed)f(the)h(case,)523 4425 y(if)26 b(the)g(precedence)f(relation)f(is)h(de\014ned)h(in)g (terms)f(of)g(a)h(global)e(time)2710 4395 y FB(2)2747 4425 y FK(.)i(Using)f(this)h(total)523 4525 y(ordering)g(on)h(all)h (atomic)f(bit)h(accesses,)e(w)n(e)i(can)f(mo)r(del)h(a)f(run)h(b)n(y)f (a)g(sequence)g(of)h FG(state)523 4624 y(tr)l(ansitions)p FK(,)19 b(eac)n(h)g(transition)f(corresp)r(onding)f(to)i(an)g(atomic)g (bit)h(access.)e(In)h(this)h(mo)r(del,)523 4724 y(the)28 b(states)f(of)h(the)g(writer)f(are:)523 4890 y FH(0)41 b FK(idle,)28 b(i.e.,)g(b)r(efore)f(the)h(atomic)f(read)g(of)h FC(R)g FK(in)g(line)g(1,)p 523 5010 499 5 v 627 5092 a Fm(2)661 5124 y FF(This)d Fg(glob)l(al)h(time)g(assumption)f FF(is)f(equiv)l(alen)n(t)f(to)i(the)e Fg(interval)k(axiom)p FF(:)d(if)h Fo(a)c Fp(!)g Fo(b)13 b Fp(^)h Fo(c)21 b Fp(!)h Fo(d)p FF(,)523 5207 y(then)j Fo(a)c Fp(!)g Fo(d)26 b FF(or)g Fo(c)21 b Fp(!)g Fo(b)p FF(.)p eop end %%Page: 75 85 TeXDict begin 75 84 bop 2253 299 a FF(6.6.)53 b(The)26 b(4-trac)n(k)f(Proto)r(col)156 b(75)523 2984 y @beginspecial 0 @llx 0 @lly 404 @urx 365 @ury 3401 @rwi @setspecial %%BeginDocument: statediag.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /tmp/xfig-fig019454 %%Creator: fig2dev %%CreationDate: Sun Oct 31 17:41:59 1993 %%For: tromp@kemphaan.cwi.nl (John Tromp,M231,4078,02207-16322) %%BoundingBox: 0 0 404 365 %%Pages: 0 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /l {lineto} bind def /m {moveto} bind def /s {stroke} bind def /n {newpath} bind def /gs {gsave} bind def /gr {grestore} bind def /clp {closepath} bind def /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul setrgbcolor} bind def /col-1 {} def /col0 {0 0 0 setrgbcolor} bind def /col1 {0 0 1 setrgbcolor} bind def /col2 {0 1 0 setrgbcolor} bind def /col3 {0 1 1 setrgbcolor} bind def /col4 {1 0 0 setrgbcolor} bind def /col5 {1 0 1 setrgbcolor} bind def /col6 {1 1 0 setrgbcolor} bind def /col7 {1 1 1 setrgbcolor} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 0 setlinecap 0 setlinejoin -18.0 446.0 translate 0.900 -0.900 scale 0.500 setlinewidth n 286.302 436.957 m 294.000 434.000 l 288.599 440.232 l gs 2 setlinejoin col0 s gr n 199.000 298.583 165.417 125.051 54.949 arcn gs col0 s gr n 288.599 277.768 m 294.000 284.000 l 286.302 281.043 l gs 2 setlinejoin col0 s gr n 199.000 419.417 165.417 -125.051 -54.949 arc gs col0 s gr n 101.693 271.032 m 94.000 274.000 l 99.391 267.760 l gs 2 setlinejoin col0 s gr n 253.061 500.027 276.385 -53.102 -125.135 arcn gs col0 s gr n 107.104 157.477 m 99.000 159.000 l 105.434 153.842 l gs 2 setlinejoin col0 s gr n 259.000 507.214 383.214 -65.322 -114.678 arcn gs col0 s gr % Ellipse n 79 419 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 199 419 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 319 419 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 79 179 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 319 179 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 439 299 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 319 299 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 199 299 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 79 299 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 439 179 29 29 0 360 DrawEllipse gs col0 s gr % Ellipse n 439 419 29 29 0 360 DrawEllipse gs col0 s gr % Polyline n 229 419 m 289 419 l gs col0 s gr n 281.000 417.000 m 289.000 419.000 l 281.000 421.000 l gs 2 setlinejoin col0 s gr % Polyline n 349 419 m 409 419 l gs col0 s gr n 401.000 417.000 m 409.000 419.000 l 401.000 421.000 l gs 2 setlinejoin col0 s gr % Polyline n 349 179 m 409 179 l gs col0 s gr n 401.000 177.000 m 409.000 179.000 l 401.000 181.000 l gs 2 setlinejoin col0 s gr % Polyline n 349 299 m 409 299 l gs col0 s gr n 401.000 297.000 m 409.000 299.000 l 401.000 301.000 l gs 2 setlinejoin col0 s gr % Polyline n 229 299 m 289 299 l gs col0 s gr n 281.000 297.000 m 289.000 299.000 l 281.000 301.000 l gs 2 setlinejoin col0 s gr n 77.000 217.000 m 79.000 209.000 l 81.000 217.000 l gs 2 setlinejoin col0 s gr % Polyline n 79 209 m 79 269 l gs col0 s gr n 81.000 261.000 m 79.000 269.000 l 77.000 261.000 l gs 2 setlinejoin col0 s gr n 317.000 217.000 m 319.000 209.000 l 321.000 217.000 l gs 2 setlinejoin col0 s gr % Polyline n 319 209 m 319 269 l gs col0 s gr n 321.000 261.000 m 319.000 269.000 l 317.000 261.000 l gs 2 setlinejoin col0 s gr n 437.000 217.000 m 439.000 209.000 l 441.000 217.000 l gs 2 setlinejoin col0 s gr % Polyline n 439 209 m 439 269 l gs col0 s gr n 441.000 261.000 m 439.000 269.000 l 437.000 261.000 l gs 2 setlinejoin col0 s gr n 99.391 450.240 m 94.000 444.000 l 101.693 446.968 l gs 2 setlinejoin col0 s gr n 253.061 217.973 276.385 53.102 125.135 arc gs col0 s gr n 437.000 337.000 m 439.000 329.000 l 441.000 337.000 l gs 2 setlinejoin col0 s gr % Polyline n 439 329 m 439 389 l gs col0 s gr n 441.000 381.000 m 439.000 389.000 l 437.000 381.000 l gs 2 setlinejoin col0 s gr /Times-Roman findfont 12.00 scalefont setfont 179 304 m gs 1 -1 scale (W<>R) col0 show gr n 317.000 337.000 m 319.000 329.000 l 321.000 337.000 l gs 2 setlinejoin col0 s gr % Polyline n 319 329 m 319 389 l gs col0 s gr n 321.000 381.000 m 319.000 389.000 l 317.000 381.000 l gs 2 setlinejoin col0 s gr n 197.000 337.000 m 199.000 329.000 l 201.000 337.000 l gs 2 setlinejoin col0 s gr % Polyline n 199 329 m 199 389 l gs col0 s gr n 201.000 381.000 m 199.000 389.000 l 197.000 381.000 l gs 2 setlinejoin col0 s gr n 77.000 337.000 m 79.000 329.000 l 81.000 337.000 l gs 2 setlinejoin col0 s gr % Polyline n 79 329 m 79 389 l gs col0 s gr n 81.000 381.000 m 79.000 389.000 l 77.000 381.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 179 m 289 179 l gs col0 s gr n 281.000 177.000 m 289.000 179.000 l 281.000 181.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 299 m 169 299 l gs col0 s gr n 161.000 297.000 m 169.000 299.000 l 161.000 301.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 419 m 169 419 l gs col0 s gr n 161.000 417.000 m 169.000 419.000 l 161.000 421.000 l gs 2 setlinejoin col0 s gr /Times-Roman findfont 12.00 scalefont setfont 79 104 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 199 104 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 319 104 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 439 104 m gs 1 -1 scale (3) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 224 104 m gs 1 -1 scale (Reader States) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 19 184 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 19 304 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 19 424 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 19 489 m gs 1 -1 scale (Writer States) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 64 184 m gs 1 -1 scale (W==R) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 304 184 m gs 1 -1 scale (W==R) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 424 184 m gs 1 -1 scale (W==R) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 59 434 m gs 1 -1 scale (d==D[R]) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 419 434 m gs 1 -1 scale (d==D[R]) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 414 414 m gs 1 -1 scale (W<>R or) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 54 414 m gs 1 -1 scale (W<>R or) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 179 424 m gs 1 -1 scale (W<>R) col0 show gr $F2psEnd %%EndDocument @endspecial 1078 3159 a(FIGURE)25 b(6.1.)i(state)f(diagram)h(of)g (4-trac)n(k)e(construction)523 3420 y FH(1)41 b FK(b)r(et)n(w)n(een)31 b(the)f(atomic)g(read)g(of)g FC(R)h FK(and)f(the)h(atomic)f(c)n(hange)f (of)h FC(W)42 b FK(in)31 b(line)g(4,)f(when)731 3520 y(it)e(is)f(writing)g(trac)n(k)g FC(T)1445 3532 y FB(1)p Fw(\000)p FA(W)n(;D)1664 3540 y Fy(1)p Ft(\000)p Fx(W)1806 3520 y FK(,)523 3685 y FH(2)41 b FK(b)r(et)n(w)n(een)27 b(the)g(atomic)f(read)g(of)h FC(R)g FK(and)g(the)g(atomic)f(c)n(hange)g (of)g FC(D)2723 3697 y FA(W)2825 3685 y FK(in)h(line)g(8,)g(when)731 3784 y(it)h(is)f(writing)g(trac)n(k)g FC(T)1445 3796 y FA(W)n(;)p FB(1)p Fw(\000)p FA(D)1664 3804 y Fx(W)1732 3784 y FK(.)523 3948 y(Th)n(us,)37 b(the)h(writer)f(is)g(alw)n(a)n(ys)f (mo)n(ving)h(from)g(state)g(0)g(to)g(either)h(state)f(1)g(or)g(state)g (2)523 4048 y(\(dep)r(ending)31 b(on)f(the)h(outcome)e(of)i(the)f (test\),)h(and)f(then)h(bac)n(k)f(to)g(state)g(0.)g(The)g(states)523 4147 y(of)e(the)g(reader)e(are:)523 4311 y FH(0)41 b FK(idle,)28 b(i.e.,)g(b)r(efore)f(the)h(atomic)f(read)g(of)h FC(W)39 b FK(in)28 b(line)g(1,)523 4476 y FH(1)41 b FK(b)r(et)n(w)n (een)28 b(the)g(atomic)f(read)g(of)g FC(W)40 b FK(and)27 b(the)h(atomic)f(c)n(hange)g(of)g FC(R)i FK(in)f(line)f(3,)523 4641 y FH(2)41 b FK(just)28 b(b)r(efore)g(the)g(atomic)f(read)g(of)g FC(D)1789 4653 y FA(R)1871 4641 y FK(in)h(line)g(5,)523 4806 y FH(3)41 b FK(after)28 b(the)g(atomic)f(read)f(of)i FC(D)1572 4818 y FA(R)1626 4806 y FK(,)g(when)g(it)g(is)f(reading)g (trac)n(k)f FC(T)2617 4818 y FA(R;d)2725 4806 y FK(.)523 4969 y(Th)n(us)33 b(the)h(reader)d(is)j(alw)n(a)n(ys)d(mo)n(ving)h (from)h(state)g(0)g(to)g(either)g(state)g(1)g(and)g(then)h(to)523 5069 y(state)27 b(2)h(or)e(directly)i(to)f(state)h(2,)f(then)h(on)f(to) h(state)f(3,)g(and)h(\014nally)f(bac)n(k)g(to)g(state)h(0.)606 5169 y(No)n(w)23 b(\014gure)g(6.1)g(sho)n(ws)g(all)g(p)r(ossible)h (transitions)e(in)i(a)g(run)f(of)h(the)g(4-trac)n(k)e(construc-)523 5268 y(tion.)29 b(It)g(can)f(b)r(e)h(easily)f(c)n(hec)n(k)n(ed)f(that)i (the)g(in)n(v)-5 b(arian)n(ts)28 b(in)h(the)g(no)r(des)f(hold.)h(Note)f (that)523 5368 y(it)g(is)g(imp)r(ossible)f(for)g(the)h(writer)f(and)g (the)h(reader)f(to)g(b)r(e)h(in)g(state)f(1)g(sim)n(ultaneously)-7 b(.)p eop end %%Page: 76 86 TeXDict begin 76 85 bop 2253 299 a FF(6.6.)53 b(The)26 b(4-trac)n(k)f(Proto)r(col)156 b(76)523 506 y Fv(Lemma)32 b FH(6.7)40 b FG(The)31 b FK(4)p FG(-tr)l(ack)e(c)l(onstruction)g(is)h (c)l(ol)t(lision-fr)l(e)l(e.)606 672 y FH(Pro)s(of.)g FK(W)-7 b(e)31 b(denote)g(the)g(com)n(bined)f(writer)g(and)g(reader)f (state)i(in)g(a)f(pair)g(\()p FC(w)r(s;)14 b(r)r(s)p FK(\).)523 772 y(Collisions)29 b(can)g(only)g(o)r(ccur)g(in)h(states)f (\(1)p FC(;)14 b FK(3\))29 b(and)g(\(2)p FC(;)14 b FK(3\),)29 b(when)h(b)r(oth)g(the)g(writer)f(and)523 872 y(the)f(reader)e(are)h (accessing)f(a)h(trac)n(k.)606 971 y(In)i(the)f(former)g(case,)f(the)i (writer)f(is)g(in)h(group)e FC(w)g FK(=)d(1)18 b FD(\000)h FC(W)12 b FK(,)28 b(while)h(the)f(reader)f(is)h(in)523 1071 y(group)c FC(r)h FK(=)e FC(R)q FK(.)i(F)-7 b(rom)24 b(the)h(diagram)e(w)n(e)i(see)f(that)h FC(W)35 b FK(=)23 b FC(R)i FK(in)g(state)g(\(1)p FC(;)14 b FK(3\),)24 b(so)h(the)g(users) 523 1171 y(are)i(accessing)f(trac)n(ks)g(in)i(di\013eren)n(t)f(groups.) 606 1270 y(In)34 b(state)f(\(2)p FC(;)14 b FK(3\),)33 b(the)g(writer)g(writes)g(on)g(trac)n(k)f FC(d)2198 1282 y FA(w)2284 1270 y FK(=)g(1)22 b FD(\000)g FC(D)2601 1282 y FA(W)2710 1270 y FK(in)33 b(group)f FC(w)k FK(=)c FC(W)12 b FK(,)523 1370 y(while)25 b(the)g(reader)e(reads)g(from)h (trac)n(k)g FC(d)h FK(in)f(group)g FC(R)q FK(.)g(The)h(diagram)e(sho)n (ws)g(that)i(either)523 1469 y FC(W)35 b FD(6)p FK(=)23 b FC(R)28 b FK(or)f FC(d)c FK(=)g FC(D)1140 1481 y FA(R)1194 1469 y FK(,)28 b(so)f(the)g(users)g(are)g(again)f(accessing)g (di\013eren)n(t)i(trac)n(ks.)e Fu(2)p FK(.)523 1719 y Fl(6.6.1)99 b(Corr)-5 b(e)g(ctness)523 1868 y FK(Giv)n(en)33 b(lemma)h(6.7,)e(it)i(remains)f(to)g(sho)n(w)g(that)g(for)g(ev)n(ery)f (run)i(\()p FD(A)p FC(;)14 b FD(!)p FK(\),)34 b(there)f(exists)523 1968 y(a)40 b(reading)f(function)i FC(\031)j FK(suc)n(h)c(that)h FC(\033)47 b FK(=)d(\()p FD(A)p FC(;)14 b FD(!)p FC(;)g(\031)s FK(\))42 b(satis\014es)d(the)i(three)f(atomicit)n(y)523 2067 y(conditions.)29 b(As)g(b)r(efore)f(w)n(e)h(ma)n(y)f(assume)g (that)i(the)f(set)g(of)g(all)f(atomic)h(bit)g(accesses)f(is)523 2167 y(totally)f(ordered)g(b)n(y)g FD(!)p FK(,)h(hence)f(w)n(e)g(can)h (use)f(the)h(state)f(mo)r(del.)606 2267 y(Lemma)i(6.7)f(allo)n(ws)f(us) i(to)f(de\014ne)h(the)g(reading)f(function)h FC(\031)k FK(as)28 b(the)h(\\union")f(of)g(the)523 2366 y(four)33 b(reading)f(functions)h(that)h(mak)n(e)e(eac)n(h)h(trac)n(k)f(atomic.)g (This)i(means)e(that)i(a)f(read)523 2466 y(is)c(mapp)r(ed)h(to)g(the)g (write)f(whic)n(h)h(w)n(as)e(the)i(last)f(to)h(access)e(the)i(trac)n(k) f(from)g(whic)n(h)g(the)523 2565 y(read)e(obtained)g(its)h(v)-5 b(alue.)27 b(W)-7 b(e)28 b(no)n(w)f(pro)n(v)n(e)f(eac)n(h)h(of)h(the)g (three)f(conditions)g(in)h(turn.)606 2665 y FH(Pro)s(of)k(of)g(A0)c FK(The)f(reading)g(function)h(is)g(ob)n(viously)e(normal)h(b)n(y)g(the) i(safet)n(y)e(of)g(the)523 2765 y(trac)n(k-bits.)606 2864 y FH(Pro)s(of)k(of)f(A2)d FK(The)f(pro)r(of)g(is)h(b)n(y)f(con)n (tradiction.)f(Let)i FC(r)f FD(2)d(R)p FC(;)14 b(w)26 b FD(2)e(W)33 b FK(b)r(e)27 b(suc)n(h)f(that)523 2964 y FC(\031)s FK(\()p FC(r)r FK(\))f FD(!)e FC(w)j FD(!)d FC(r)r FK(.)1060 2934 y FB(3)1125 2964 y FK(Assume)28 b(without)g(loss)f(of)g(generalit)n(y)f(that)i FC(w)i FK(writes)d(on)h(trac)n(k)e FC(T)3268 2976 y FB(0)p FA(;)p FB(0)523 3064 y FK(and)h(that)h FC(D)933 3076 y FB(1)993 3064 y FK(=)23 b(0)k(at)h(time)g FC(f)9 b FK(\()p FC(w)r FK(\).)28 b(Then)g(at)g(the)g(same)f(time,)h FC(W)35 b FK(=)22 b(0)28 b(and)f FC(D)3049 3076 y FB(0)3109 3064 y FK(=)c(0.)606 3163 y(Consider)k(no)n(w)g(the)h(4)f(p)r(ossible)g (trac)n(ks)f(that)i FC(r)j FK(can)c(read)f(from:)523 3329 y FC(T)572 3341 y FB(0)p FA(;)p FB(0)703 3329 y FK(This)i(con)n(tradicts)e(the)i(assumption)f(that)h FC(\031)s FK(\()p FC(r)r FK(\))h(precedes)e FC(w)r FK(.)523 3495 y FC(T)572 3507 y FB(0)p FA(;)p FB(1)703 3495 y FK(In)c(this)f(case,)g FC(r)j FK(reads)c FC(d)j FK(=)e(1)g(from)g FC(D)1904 3507 y FB(0)1941 3495 y FK(,)h(whic)n(h)f(requires)f(that)i (the)f(writer)g(c)n(hanges)731 3595 y FC(D)800 3607 y FB(0)856 3595 y FK(to)e(1)f(b)r(et)n(w)n(een)h FC(f)9 b FK(\()p FC(w)r FK(\))21 b(and)f(the)g(read)f(of)g FC(D)2141 3607 y FB(0)2198 3595 y FK(b)n(y)h FC(r)r FK(.)g(But)h(according)d(to)h (the)h(writer)731 3694 y(proto)r(col,)31 b(this)i(c)n(hange)f(is)g (preceded)g(b)n(y)h(the)g(writing)f(of)h(trac)n(k)e FC(T)2896 3706 y FB(0)p FA(;)p FB(1)2986 3694 y FK(,)i(implying)731 3794 y FC(w)25 b FD(!)e FC(\031)s FK(\()p FC(r)r FK(\))30 b(and)d(hence)h(leading)f(to)g(a)g(con)n(tradiction.)731 3927 y(The)e(last)g(t)n(w)n(o)f(cases)g(are)g(similar)g(and)h(w)n(e)g (need)g(only)g(sho)n(w)f(that)h(the)h(trac)n(k)e(read)731 4027 y(b)n(y)j FC(r)j FK(m)n(ust)e(ha)n(v)n(e)e(b)r(een)i(written)g (after)g FC(w)r FK(.)523 4193 y FC(T)572 4205 y FB(1)p FA(;)p FB(0)703 4193 y FK(In)f(this)g(case,)e FC(r)30 b FK(reads)25 b(1)h(from)g FC(W)12 b FK(,)27 b(whic)n(h)f(requires)f (that)i(the)g(writer)f(c)n(hanges)f FC(W)731 4292 y FK(to)i(1.)g(This)h (is)f(preceded)h(b)n(y)f(the)h(writing)f(of)h(trac)n(k)e FC(T)2444 4304 y FB(1)p FA(;)p FB(0)2534 4292 y FK(.)523 4458 y FC(T)572 4470 y FB(1)p FA(;)p FB(1)703 4458 y FK(In)d(this)f(case,)g FC(r)j FK(reads)c FC(d)j FK(=)e(1)g(from)g FC(D)1904 4470 y FB(1)1941 4458 y FK(,)h(whic)n(h)f(requires)f(that)i (the)f(writer)g(c)n(hanges)731 4558 y FC(D)800 4570 y FB(1)864 4558 y FK(to)28 b(1.)f(This)h(is)f(preceded)g(b)n(y)g(the)h (writing)g(of)f(trac)n(k)g FC(T)2578 4570 y FB(1)p FA(;)p FB(1)2667 4558 y FK(.)523 4724 y(In)38 b(all)g(three)g(cases,)f(w)n(e)g (see)h(that)g FC(r)j FK(cannot)d(read)f(a)g(v)-5 b(alue)38 b(older)g(than)g(that)g(of)g FC(w)r FK(,)523 4824 y(b)r(ecause)31 b(the)i(displa)n(y)e(\()p FC(W)n(;)14 b(D)1482 4836 y FB(0)1519 4824 y FC(;)g(D)1625 4836 y FB(1)1662 4824 y FK(\))32 b(do)r(esn't)g(c)n(hange)f(un)n(til)h(the)g(new)g(trac)n(k)f (has)g(b)r(een)523 4923 y(written.)k(In)f(other)g(w)n(ords,)f(once)g (the)i(displa)n(y)f(is)g(set,)g(ev)n(ery)f(new)h(read)g(action)g(m)n (ust)523 5023 y(read)27 b(either)g(the)h(trac)n(k)f(on)g(displa)n(y)g (or)f(a)i(more)e(recen)n(tly)h(written)h(one.)p 523 5143 499 5 v 627 5225 a Fm(3)661 5256 y FF(It)23 b(will)h(b)r(e)e(clear)i (from)g(con)n(text)e(whether)g(w)n(e)i(mean)f(the)f(write)h(action)h Fo(w)h FF(or)e(the)f(similarly)523 5339 y(denoted)j(writer's)i(lo)r (cal)h(cop)n(y)d(of)h Fo(W)11 b FF(.)p eop end %%Page: 77 87 TeXDict begin 77 86 bop 2253 299 a FF(6.6.)53 b(The)26 b(4-trac)n(k)f(Proto)r(col)156 b(77)606 506 y FH(Pro)s(of)33 b(of)g(A1)c FK(W)-7 b(e)30 b(claim)e(that)h(A1)g(follo)n(ws)f(from)g (A2)h(and)g(sho)n(w)f(this)h(b)n(y)g(deriving)523 606 y(a)g(violation)g(of)h(A2)f(from)h(a)f(violation)g(of)h(A1.)f(Let)h FC(r)2227 618 y FB(1)2265 606 y FC(;)14 b(r)2339 618 y FB(2)2403 606 y FD(2)27 b(R)j FK(b)r(e)h(suc)n(h)e(that)h FC(r)3109 618 y FB(1)3173 606 y FD(!)d FC(r)3320 618 y FB(2)523 706 y FK(and)i FC(\031)s FK(\()p FC(r)805 718 y FB(2)843 706 y FK(\))d FD(!)g FC(\031)s FK(\()p FC(r)1129 718 y FB(1)1167 706 y FK(\).)k(By)e(de\014nition)i(of)f FC(\031)k FK(and)c(lemma)g(6.7,)f FC(r)2557 718 y FB(1)2624 706 y FK(accesses)f(some)i(trac)n(k,)523 805 y(sa)n(y)i FC(T)720 817 y FB(0)p FA(;)p FB(0)810 805 y FK(,)i(after)f FC(\031)s FK(\()p FC(r)1186 817 y FB(1)1224 805 y FK(\))h(do)r(es)f (so.)g(But)g(since)h FC(r)2026 817 y FB(1)2096 805 y FK(cannot)f(access)f(the)i(trac)n(k)e(un)n(til)i(after)523 905 y FC(\031)s FK(\()p FC(r)642 917 y FB(1)680 905 y FK(\))23 b(c)n(hanges)e(an)i(atomic)f(bit)h(\()p FC(W)35 b FK(or)21 b FC(D)1849 917 y FB(0)1886 905 y FK(\),)i(w)n(e)f(ha)n(v)n (e)g(that)g FC(f)9 b FK(\()p FC(\031)s FK(\()p FC(r)2643 917 y FB(1)2682 905 y FK(\)\))23 b FC(<)g(f)9 b FK(\()p FC(r)2976 917 y FB(1)3013 905 y FK(\))24 b FC(<)e(s)p FK(\()p FC(r)3264 917 y FB(2)3302 905 y FK(\),)523 1005 y(hence)28 b(with)g FC(w)d FK(=)e FC(\031)s FK(\()p FC(r)1234 1017 y FB(1)1272 1005 y FK(\),)28 b FC(\031)s FK(\()p FC(r)1474 1017 y FB(2)1513 1005 y FK(\))23 b FD(!)g FC(w)j FD(!)d FC(r)1902 1017 y FB(2)1940 1005 y FK(,)k(violating)g(A2.)h Fu(2)523 1254 y Fl(6.6.2)99 b(Sp)-5 b(ac)g(e)34 b(Complexity)523 1403 y FK(No)n(w)k(that)g(the)h(4-trac)n(k)d(construction)i(has)f(b)r (een)i(pro)n(v)n(en)e(correct,)g(w)n(e)g(consider)h(its)523 1503 y(\\space)24 b(complexit)n(y)-7 b(.")24 b(Using)h(the)h(3)e(safe)h (bit)h(construction)e(to)h(implemen)n(t)h(eac)n(h)e(of)h(the)523 1602 y(four)c(atomic)g(bits,)g(w)n(e)g(see)g(that)h(12)e(bits)i (su\016ce)f(for)g(the)h(switc)n(h.)f(But)g(w)n(e)g(can)g(do)g(b)r (etter,)523 1702 y(b)r(ecause)26 b(those)g(atomic)f(bits)i(are)e(used)h (in)h(a)f(sp)r(ecial)g(w)n(a)n(y)-7 b(.)25 b(In)h(particular,)f(since)h (the)h FC(W)523 1802 y FK(and)33 b FC(R)i FK(bits)f(are)e(used)i(for)f (handshaking,)f(there)i(is)f(exactly)g(one)g(atomic)g(read)g(of)h FC(W)523 1901 y FK(b)r(et)n(w)n(een)c(an)f(atomic)g(c)n(hange)g(of)g FC(W)42 b FK(and)29 b(an)h(atomic)f(c)n(hange)f(of)i FC(R)g FK(\(and)g(vice)f(v)n(ersa\).)523 2001 y(Hence)21 b(there)g(is)g(at)g(most)g(one)g(atomic)g(c)n(hange)e(of)j FC(W)33 b FK(b)r(et)n(w)n(een)21 b(t)n(w)n(o)f(consecutiv)n(e)g(atomic) 523 2100 y(reads)k(of)h FC(W)37 b FK(\(and)25 b(vice)g(v)n(ersa\).)f (With)i(the)f(trac)n(kdispla)n(y)e(bits)j FC(D)2613 2112 y FB(0)2650 2100 y FC(;)14 b(D)2756 2112 y FB(1)2818 2100 y FK(the)25 b(situation)g(is)523 2200 y(more)f(complicated.)h (When)h(the)f(reader)f(c)n(hanges)g(groups)f(\(sa)n(y)-7 b(,)25 b(to)g(0\),)g(and)g(atomically)523 2300 y(reads)20 b FC(D)803 2312 y FB(0)840 2300 y FK(,)h(there)g(can)g(b)r(e)h(at)f (most)g(one)f(atomic)h(c)n(hange)f(of)h FC(D)2471 2312 y FB(0)2529 2300 y FK(b)r(efore)g(the)h(writer)e(lea)n(v)n(es)523 2399 y(group)26 b(0.)606 2499 y(W)-7 b(e)25 b(will)h(sho)n(w)e(that,)h (b)r(ecause)g(of)f(these)h(prop)r(erties,)g(w)n(e)f(can)h(implemen)n(t) g(an)n(y)f(of)h(the)523 2599 y(four)d(atomic)g(bits,)g(call)g(it)h FC(B)t FK(,)f(with)h(2)f(safe)g(bits)g FC(B)2100 2611 y FB(0)2137 2599 y FC(;)14 b(B)2237 2611 y FB(1)2274 2599 y FK(.)23 b(The)f(problem)g(with)h(safe)e(bits)i(is)523 2698 y(their)g(\015ic)n(k)n(ering.)f(If,)h(for)g(example,)g FC(R)h FK(w)n(as)e(only)g(a)h(safe)g(bit,)h(then)f(while)h(b)r(eing)f (c)n(hanged)523 2798 y(b)n(y)i(the)h(reader,)e(the)i(writer)f(could)h (\014rst)f(see)g(the)h(new)g(v)-5 b(alue,)25 b(c)n(hange)g(groups,)f (then)i(see)523 2897 y(the)34 b(old)f(v)-5 b(alue)34 b(and)f(write)g(to)h(the)g(displa)n(y)n(ed)e(trac)n(k)g(in)i(the)g(old) f(group.)g(With)h(2)f(safe)523 2997 y(bits,)h(the)h(follo)n(wing)e(sc)n (heme)g(can)h(b)r(e)g(applied)g(to)g(alleviate)f(the)i(\015ic)n(k)n (ering)d(problem.)523 3097 y(W)-7 b(e)27 b(represen)n(t)f(the)h(v)-5 b(alue)27 b(of)g(atomic)g(bit)g FC(B)k FK(as)c(the)g(exclusiv)n(e-or)e (of)i(2)f(safe)h(bit)g(v)-5 b(alues:)523 3196 y FC(B)27 b FK(=)c FC(B)764 3208 y FB(0)817 3196 y FD(\010)16 b FC(B)961 3208 y FB(1)998 3196 y FK(.)26 b(The)h(c)n(hange)e(of)h (atomic)g(bit)h FC(B)k FK(is)26 b(then)h(replaced)f(b)n(y)g(a)g(c)n (hange)f(of)h(safe)523 3296 y(bit)20 b FC(B)707 3308 y FA(b)741 3296 y FK(,)f(where)h FC(b)f FK(is)h(the)g(old)f(v)-5 b(alue)20 b(of)f FC(B)t FK(.)h(Th)n(us,)g FC(B)2104 3308 y FB(0)2161 3296 y FK(and)f FC(B)2377 3308 y FB(1)2434 3296 y FK(are)g(c)n(hanged)g(alternatingly)-7 b(.)523 3396 y(F)g(or)33 b(the)g(purp)r(ose)g(of)g(reading)f FC(B)t FK(,)i(t)n(w)n(o)e(lo)r(cal)h(copies)f FC(b)2319 3408 y FB(0)2356 3396 y FC(;)14 b(b)2429 3408 y FB(1)2499 3396 y FK(of)33 b FC(B)2662 3408 y FB(0)2733 3396 y FK(and)g FC(B)2963 3408 y FB(1)3034 3396 y FK(are)f(k)n(ept.)523 3495 y(Normally)f(then,)i(an)f(atomic)f(read)h(of)g FC(B)k FK(is)c(replaced)f(b)n(y)h(a)g(safe)g(read)f(of)h FC(B)3027 3507 y FA(b)3093 3495 y FK(in)n(to)g FC(b)3302 3507 y FA(b)3335 3495 y FK(,)523 3595 y(where)i FC(b)f FK(=)h FC(b)974 3607 y FB(0)1033 3595 y FD(\010)23 b FC(b)1157 3607 y FB(1)1228 3595 y FK(is)34 b(the)g(old)g(v)-5 b(alue)34 b(of)g FC(B)t FK(.)h(In)f(this)h(case,)e(new-old)h(in)n(v)n(ersions)e (are)523 3694 y(eliminated,)27 b(since)f(the)h(\015ic)n(k)n(ering)e (bit)i(is)f(no)g(longer)f(examined)h(once)g(the)h(new)g(v)-5 b(alue)26 b(is)523 3794 y(obtained.)h(This)g(pro)r(cedure)f(su\016ces)h (for)g(reading)f FC(W)39 b FK(and)27 b FC(R)q FK(,)g(since)g(the)h (handshaking)523 3894 y(ensures)d(that)h(eac)n(h)f(safe)g(bit)i(c)n (hange)d(is)i(noticed)g(b)n(y)f(the)i(other)e(user.)g(It)h(also)f (su\016ces)g(if)523 3993 y(the)d(reader)e(sees)i(the)g(writer)f(in)h (the)g(same)f(group)g(and)g(w)n(an)n(ts)g(to)h(read)f(the)h(trac)n (kdispla)n(y)-7 b(,)523 4093 y(b)r(ecause)27 b(the)h(writer)f(will)h(c) n(hange)f(the)h(displa)n(y)e(at)i(most)f(once)h(\(b)r(efore)f(mo)n (ving)g(to)g(the)523 4193 y(other)22 b(group\).)f(If)i(on)f(the)h (other)f(hand)g(the)h(reader)e(sees)g(the)i(writer)f(in)g(the)h(other)f (group,)523 4292 y(then)k(an)n(y)e(lo)r(cal)g(copies)h(it)g(w)n(ould)g (ha)n(v)n(e)e(of)i(the)h(trac)n(kdispla)n(y)d(bits)i(in)g(that)g(other) g(group)523 4392 y(migh)n(t)36 b(b)r(e)h(out)f(of)g(date.)h(In)f(this)h (case)e(it)i(can)e(simply)i(read)e(b)r(oth)i(safe)f(bits)g(of)g(that) 523 4491 y(displa)n(y)25 b(one)g(after)h(the)g(other,)f(b)r(ecause)g (again)f(the)j(writer)e(will)g(c)n(hange)g(the)h(displa)n(y)f(at)523 4591 y(most)i(once)h(b)r(efore)f(mo)n(ving)f(to)i(the)g(other)f(group.) 606 4691 y(The)h(new)f(arc)n(hitecture)g(of)g(the)h(switc)n(h)g(is)f (as)g(follo)n(ws:)523 4857 y FH(W)-8 b(riter)32 b FD(!)p 915 4775 191 4 v 915 4905 4 131 v 17 w FC(D)1001 4869 y FB(0)p FA(;)p FB(0)p 1102 4905 V 915 4908 191 4 v 1106 4857 a FD(!)f FH(Reader)523 5068 y(W)-8 b(riter)32 b FD(!)p 915 4987 V 915 5117 4 131 v 17 w FC(D)1001 5080 y FB(0)p FA(;)p FB(1)p 1102 5117 V 915 5120 191 4 v 1106 5068 a FD(!)f FH(Reader)1096 b FK(group)27 b(0)g(trac)n(kdispla)n(y)523 5280 y FH(W)-8 b(riter)32 b FD(!)p 915 5198 V 915 5329 4 131 v 17 w FC(D)1001 5292 y FB(1)p FA(;)p FB(0)p 1102 5329 V 915 5332 191 4 v 1106 5280 a FD(!)f FH(Reader)p eop end %%Page: 78 88 TeXDict begin 78 87 bop 2059 299 a FF(6.7.)52 b(The)26 b(A)n(tomicit)n(y)f(Automaton)154 b(78)523 508 y FH(W)-8 b(riter)32 b FD(!)p 915 427 191 4 v 915 557 4 131 v 17 w FC(D)1001 520 y FB(1)p FA(;)p FB(1)p 1102 557 V 915 560 191 4 v 1106 508 a FD(!)f FH(Reader)1096 b FK(group)27 b(1)g(trac)n(kdispla)n(y)523 720 y FH(W)-8 b(riter)32 b FD(!)p 915 638 V 915 757 4 119 v 37 w FC(W)1030 732 y FB(0)p 1102 757 V 915 760 191 4 v 1106 720 a FD(!)f FH(Reader)523 920 y(W)-8 b(riter)32 b FD(!)p 915 839 V 915 958 4 119 v 37 w FC(W)1030 932 y FB(1)p 1102 958 V 915 961 191 4 v 1106 920 a FD(!)f FH(Reader)1331 b FK(writer's)27 b(group)523 1121 y FH(W)-8 b(riter)32 b FD( )p 915 1039 V 915 1158 4 119 v 45 w FC(R)1023 1133 y FB(0)p 1102 1158 V 915 1161 191 4 v 1106 1121 a FD( )f FH(Reader)523 1321 y(W)-8 b(riter)32 b FD( )p 915 1239 V 915 1358 4 119 v 45 w FC(R)1023 1333 y FB(1)p 1102 1358 V 915 1361 191 4 v 1106 1321 a FD( )f FH(Reader)1322 b FK(reader's)26 b(group)606 1487 y(The)i(corresp)r(onding)d(proto)r (cols)i(are:)523 1637 y Fk(WRITER)41 b(PROTOCOL)781 b(READER)41 b(PROTOCOL)523 1836 y(1.)i(if)g(R[1-w]==W[1-w])37 b(then)347 b(if)43 b(W[r]<>R[r])d(then)523 1935 y(2.)130 b(w)43 b(:=)g(1-w)958 b(change)41 b(R[r])523 2035 y(3.)130 b(write)41 b(track)h(T[w,x[w]])389 b(r)43 b(:=)f(1-r)523 2135 y(4.)130 b(change)41 b(W[1-w])739 b(read)41 b(d[0])h(:=)h(D[r,0])523 2234 y(5.)g(else)1219 b(read)41 b(d[1])h(:=)h(D[r,1])523 2334 y(6.)130 b(x[w])42 b(:=)h(1-x[w])607 b(else)42 b(read)g(d[d[0])p FD(\010)p Fk(d[1]])523 2434 y(7.)130 b(write)41 b(track)h(T[w,x[w]])519 b(:=)43 b(D[r,d[0])p FD(\010)p Fk(d[1]])523 2533 y(8.)130 b(change)41 b(D[w,1-x[w]])431 b(endif)523 2633 y(9.)43 b(endif)1087 b(read)42 b(track)g(T[r,d[0])p FD(\010)p Fk(d[1]])606 2782 y FK(The)26 b(writer's)f(lo)r(cal)h(v)-5 b(ariables)25 b FC(d)1655 2794 y FB(0)1692 2782 y FC(;)14 b(d)1772 2794 y FB(1)1836 2782 y FK(ha)n(v)n(e)25 b(b)r(een)h(renamed)g (to)g FC(x)2703 2794 y FB(0)2740 2782 y FC(;)14 b(x)2824 2794 y FB(1)2888 2782 y FK(to)26 b(emphasize)523 2882 y(that)36 b FC(x)758 2894 y FA(i)821 2882 y FK(no)n(w)f(represen)n(ts)f (the)i(eXclusiv)n(e-or)e(of)h FC(D)2200 2894 y FA(i;)p FB(0)2316 2882 y FK(and)g FC(D)2554 2894 y FA(i;)p FB(1)2634 2882 y FK(.)h(The)g(reader's)d(lo)r(cal)523 2982 y(v)-5 b(ariable)31 b FC(d)h FK(has)g(b)r(een)g(replaced)f(b)n(y)h FC(d)1762 2994 y FB(0)1831 2982 y FK(and)g FC(d)2040 2994 y FB(1)2077 2982 y FK(,)h(where)e FC(d)2420 2994 y FA(i)2480 2982 y FK(is)h(mean)n(t)f(to)h(hold)g(a)g(cop)n(y)523 3081 y(of)26 b FC(D)685 3093 y FA(r)n(;i)761 3081 y FK(.)g(All)g (shared)f(and)h(lo)r(cal)f(v)-5 b(ariables)25 b(are)g(initialized)h(to) f(0)h(as)f(usual.)h(Because)e(the)523 3181 y(switc)n(h)j(no)n(w)g (consists)g(of)h(eigh)n(t)f(safe)g(bits,)h(w)n(e)f(call)h(it)g(the)g (\\Safe)f(Byte)g(Switc)n(h.")606 3280 y(W)-7 b(e)28 b(can)f(no)n(w)g (state)h(the)g(main)f(theorem:)523 3446 y Fv(Theorem)32 b FH(6.8)41 b FG(A)26 b(single-r)l(e)l(ader,)i(single-writer)e FC(b)p FG(-bits)g(atomic)h(variable)h(c)l(an)f(b)l(e)f(c)l(on-)523 3546 y(structe)l(d)j(fr)l(om)h FK(4)p FC(b)18 b FK(+)g(8)29 b FG(safe)i(bits)f(\()p FK(4)f FG(tr)l(acks)h(and)g(a)g(safe)h(byte\).) 606 3712 y FK(W)-7 b(e)20 b(p)r(ostp)r(one)f(the)h(pro)r(of)f(of)h (correctness)d(of)j(the)g(new)f(construction)g(to)g(Section)h(6.7.3.) 523 4019 y FL(6.7)116 b(The)38 b(A)m(tomicit)m(y)e(Automaton)523 4219 y FK(In)31 b(this)g(and)f(the)h(next)g(few)g(sections)f(w)n(e)g (discuss)h(the)g(use)f(of)h(mac)n(hines)f(\(computers\))523 4318 y(as)d(an)g(aid)h(in)g(designing)e(and)i(v)n(erifying)e(atomic)h (v)-5 b(ariable)27 b(constructions.)606 4418 y(The)j(v)n(eri\014cation) e(is)i(based)f(on)h(a)f(generic)g(automaton)f(whic)n(h)i(em)n(b)r(o)r (dies)g(the)g(three)523 4517 y(atomicit)n(y)36 b(prop)r(erties)g(of)g (system)h(executions)f(\(in)h(the)g(single-reader,)d(single-writer)523 4617 y(case\).)k(Figure)f(6.2)h(sho)n(ws)f(a)g(picture)i(of)f(the)g (automaton.)g(The)g(transitions)f(of)h(this)523 4717 y(automaton)30 b(represen)n(t)g(the)h(starts)f(and)h(ends)g(of)g(read)f (and)h(write)g(actions,)f(while)h(the)523 4816 y(no)r(des)37 b(represen)n(t)g(the)h(\\atomicit)n(y)e(state")h(of)h(a)f(run)h(on)f (the)h(atomic)f(v)-5 b(ariable.)37 b(The)523 4916 y(latter)e(corresp)r (onds)f(to)i(the)g(set)f(of)h(v)-5 b(alues)35 b(that)h(the)g (next-ending)f(read)g(can)g(return)523 5016 y(without)28 b(violating)f(atomicit)n(y|its)g(size)g(is)h(sho)n(wn)e(inside)i(eac)n (h)f(no)r(de.)606 5115 y(The)g(no)r(des)f(can)h(b)r(e)g(divided)g(in)n (to)f(four)g(groups,)g(dep)r(ending)h(on)f(whether)h(eac)n(h)e(user)523 5215 y(is)k(idle)f(or)g(busy)g(accessing)g(the)g(v)-5 b(ariable.)28 b(When)h(b)r(oth)g(users)f(are)g(idle,)g(the)h(atomicit)n (y)523 5314 y(state)34 b(of)g(the)g(run)g(is)g(\014xed)g(b)n(y)g(the)g (curren)n(t)g(v)-5 b(alue)34 b(of)g(the)g(v)-5 b(ariable|this)33 b(b)r(eing)h(the)p eop end %%Page: 79 89 TeXDict begin 79 88 bop 2059 299 a FF(6.7.)52 b(The)26 b(A)n(tomicit)n(y)f(Automaton)154 b(79)523 2622 y @beginspecial 0 @llx 0 @lly 441 @urx 342 @ury 3401 @rwi @setspecial %%BeginDocument: auto1.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /tmp/xfig-fig019520 %%Creator: fig2dev %%CreationDate: Sun Oct 31 18:08:55 1993 %%For: tromp@kemphaan.cwi.nl (John Tromp,M231,4078,02207-16322) %%BoundingBox: 0 0 441 342 %%Pages: 0 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /l {lineto} bind def /m {moveto} bind def /s {stroke} bind def /n {newpath} bind def /gs {gsave} bind def /gr {grestore} bind def /clp {closepath} bind def /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul setrgbcolor} bind def /col-1 {} def /col0 {0 0 0 setrgbcolor} bind def /col1 {0 0 1 setrgbcolor} bind def /col2 {0 1 0 setrgbcolor} bind def /col3 {0 1 1 setrgbcolor} bind def /col4 {1 0 0 setrgbcolor} bind def /col5 {1 0 1 setrgbcolor} bind def /col6 {1 1 0 setrgbcolor} bind def /col7 {1 1 1 setrgbcolor} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 0 setlinecap 0 setlinejoin -27.0 432.0 translate 0.900 -0.900 scale 0.500 setlinewidth n 339.189 392.591 m 334.000 399.000 l 335.563 390.903 l gs 2 setlinejoin col0 s gr n 87.410 284.227 271.991 -19.374 24.959 arc gs col0 s gr n 69.199 200.705 m 74.000 194.000 l 72.919 202.175 l gs 2 setlinejoin col0 s gr n 72.919 395.825 m 74.000 404.000 l 69.199 397.295 l gs 2 setlinejoin col0 s gr n 339.625 299.000 285.625 158.431 -158.431 arc gs col0 s gr n 107.235 163.572 m 99.000 164.000 l 106.065 159.747 l gs 2 setlinejoin col0 s gr n 266.500 711.500 572.549 -72.989 -107.011 arcn gs col0 s gr n 106.694 161.809 m 99.000 164.000 l 106.694 161.809 l gs 2 setlinejoin col0 s gr n 206.500 541.500 392.508 -74.105 -105.895 arcn gs col0 s gr n 115.765 433.715 m 109.000 429.000 l 117.188 429.977 l gs 2 setlinejoin col0 s gr n 218.583 141.083 308.066 71.957 110.837 arc gs col0 s gr n 106.065 438.253 m 99.000 434.000 l 107.235 434.428 l gs 2 setlinejoin col0 s gr n 266.500 -113.500 572.549 72.989 107.011 arc gs col0 s gr n 219.704 393.045 m 214.000 399.000 l 216.231 391.061 l gs 2 setlinejoin col0 s gr n 12.962 284.189 231.512 29.730 -24.278 arcn gs col0 s gr % Ellipse n 209 179 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 449 299 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 449 179 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 329 179 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 329 299 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 209 419 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 419 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 209 299 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 299 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 179 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 329 419 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 449 419 20 20 0 360 DrawEllipse gs col0 s gr n 117.000 421.000 m 109.000 419.000 l 117.000 417.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 419 m 189 419 l gs col0 s gr n 181.000 417.000 m 189.000 419.000 l 181.000 421.000 l gs 2 setlinejoin col0 s gr n 117.000 301.000 m 109.000 299.000 l 117.000 297.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 299 m 189 299 l gs col0 s gr n 181.000 297.000 m 189.000 299.000 l 181.000 301.000 l gs 2 setlinejoin col0 s gr n 447.000 207.000 m 449.000 199.000 l 451.000 207.000 l gs 2 setlinejoin col0 s gr % Polyline n 449 199 m 449 279 l gs col0 s gr n 451.000 271.000 m 449.000 279.000 l 447.000 271.000 l gs 2 setlinejoin col0 s gr n 327.000 207.000 m 329.000 199.000 l 331.000 207.000 l gs 2 setlinejoin col0 s gr % Polyline n 329 199 m 329 279 l gs col0 s gr n 331.000 271.000 m 329.000 279.000 l 327.000 271.000 l gs 2 setlinejoin col0 s gr % Polyline n 219 404 m 314 194 l gs col0 s gr n 308.880 200.465 m 314.000 194.000 l 312.525 202.113 l gs 2 setlinejoin col0 s gr % Polyline n 199 404 m 99 314 l gs col0 s gr n 103.608 320.838 m 99.000 314.000 l 106.284 317.865 l gs 2 setlinejoin col0 s gr n 87.000 207.000 m 89.000 199.000 l 91.000 207.000 l gs 2 setlinejoin col0 s gr % Polyline n 89 199 m 89 279 l gs col0 s gr n 91.000 271.000 m 89.000 279.000 l 87.000 271.000 l gs 2 setlinejoin col0 s gr n 117.000 181.000 m 109.000 179.000 l 117.000 177.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 179 m 189 179 l gs col0 s gr n 181.000 177.000 m 189.000 179.000 l 181.000 181.000 l gs 2 setlinejoin col0 s gr n 459.189 392.591 m 454.000 399.000 l 455.563 390.903 l gs 2 setlinejoin col0 s gr n 207.410 284.227 271.991 -19.374 24.959 arc gs col0 s gr 1 setlinecap [1 3.200000] 3.200000 setdash % Polyline n 149 99 m 149 479 l gs col0 s gr [] 0 setdash 0 setlinecap /Times-Roman findfont 16.00 scalefont setfont 234 119 m gs 1 -1 scale (Reader Busy) col0 show gr 1 setlinecap [1 3.200000] 3.200000 setdash % Polyline n 29 239 m 519 239 l gs col0 s gr [] 0 setdash 0 setlinecap % Polyline n 339 404 m 434 194 l gs col0 s gr n 428.880 200.465 m 434.000 194.000 l 432.525 202.113 l gs 2 setlinejoin col0 s gr % Polyline n 434 404 m 104 309 l gs col0 s gr n 111.134 313.135 m 104.000 309.000 l 112.241 309.291 l gs 2 setlinejoin col0 s gr % Polyline n 314 404 m 104 309 l gs col0 s gr n 110.465 314.120 m 104.000 309.000 l 112.113 310.475 l gs 2 setlinejoin col0 s gr 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 503 174 m 514 174 l gs col0 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 504 299 m 515 299 l gs col0 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.000000] 3.000000 setdash % Polyline n 503 419 m 514 419 l gs col0 s gr [] 0 setdash 0 setlinecap n 207.000 207.000 m 209.000 199.000 l 211.000 207.000 l gs 2 setlinejoin col0 s gr % Polyline n 209 199 m 209 279 l gs col0 s gr n 211.000 271.000 m 209.000 279.000 l 207.000 271.000 l gs 2 setlinejoin col0 s gr % Polyline n 309 309 m 99 404 l gs col-1 s gr n 107.113 402.525 m 99.000 404.000 l 105.465 398.880 l gs 2 setlinejoin col-1 s gr % Polyline n 434 309 m 99 404 l gs col-1 s gr n 107.242 403.742 m 99.000 404.000 l 106.151 399.893 l gs 2 setlinejoin col-1 s gr /Times-Roman findfont 12.00 scalefont setfont 449 424 m gs 1 -1 scale (4) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 449 304 m gs 1 -1 scale (3) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 449 304 m gs 1 -1 scale (3) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 449 184 m gs 1 -1 scale (3) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 329 424 m gs 1 -1 scale (3) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 329 184 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 329 304 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 209 184 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 89 184 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 16.00 scalefont setfont 59 119 m gs 1 -1 scale (Reader Idle) col0 show gr /Times-Roman findfont 16.00 scalefont setfont 29 149 m gs 1 -1 scale 270.0 rotate (Writer Idle) col-1 show gr /Times-Roman findfont 12.00 scalefont setfont 89 424 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 209 424 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 209 304 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 89 304 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 16.00 scalefont setfont 29 309 m gs 1 -1 scale 270.0 rotate (Writer Busy) col-1 show gr $F2psEnd %%EndDocument @endspecial 1152 2796 a(FIGURE)25 b(6.2.)i(the)f(general)g(atomicit)n (y)h(automaton)523 3060 y FK(only)35 b(v)-5 b(alue)35 b(that)h(a)f(newly)g(started)g(read)g(is)g(allo)n(w)n(ed)f(to)h (return.)g(This)h(explains)e(the)523 3159 y(single)27 b(no)r(de)h(in)g(this)g(group.)606 3259 y(When)d(the)g(writer)f(is)g (busy)g(and)g(the)h(reader)e(idle,)i(w)n(e)f(can)g(distinguish)g(b)r (et)n(w)n(een)h(t)n(w)n(o)523 3359 y(states:)36 b(either)g(the)h (reader)e(has)h(read)g(the)h(new)f(v)-5 b(alue)36 b(that)h(is)g(b)r (eing)f(written,)h(or)e(it)523 3458 y(hasn't.)25 b(Hence)h(there)f(are) f(t)n(w)n(o)h(no)r(des)g(in)h(this)g(group.)e(In)h(the)h(former)f(case) f(subsequen)n(t)523 3558 y(read)35 b(actions)h(m)n(ust)g(return)f(the)i (same)e(v)-5 b(alue)36 b(as)g(the)g(last)g(read)f(action)h(in)g(order)f (to)523 3657 y(prev)n(en)n(t)27 b(new-old)g(in)n(v)n(ersions)e (\(condition)j(A1\).)g(Hence)g(the)g(set)f(size)h(of)f(one.)606 3757 y(When)k(the)h(reader)d(is)i(busy)-7 b(,)30 b(there)h(are)f(man)n (y)g(p)r(ossible)g(states,)h(dep)r(ending)g(on)f(the)523 3857 y(n)n(um)n(b)r(er)36 b(of)g(writes)f(that)i(o)n(v)n(erlap)d(the)i (read.)f(As)h(the)h(no)r(des)e(progress)f(to)i(the)g(righ)n(t,)523 3956 y(the)f(set)f(of)g(v)-5 b(alues)34 b(that)h(the)g(curren)n(t)e (read)g(action)h(is)g(allo)n(w)n(ed)f(to)h(return)g(gro)n(ws.)f(Of)523 4056 y(course,)g(while)i(the)f(picture)h(suggests)d(an)i(in\014nite)h (progression)d(of)i(no)r(des,)g(its)h(size)f(is)523 4156 y(in)c(fact)f(limited)i(b)n(y)e(the)h(n)n(um)n(b)r(er)f(of)g(v)-5 b(alues)30 b(that)f(the)h(atomic)f(v)-5 b(ariable)29 b(can)g(hold)g(\(its)523 4255 y(domain-size\).)606 4355 y(In)c(the)g(group)e(where)h(only)g(the)h(reader)e(is)i(busy)-7 b(,)24 b(there)g(are)g(t)n(w)n(o)g(start-of-write)f(tran-)523 4454 y(sitions)41 b(emanating)f(do)n(wn)n(w)n(ard)f(from)h(eac)n(h)g (no)r(de.)h(As)g(can)f(b)r(e)i(deduced)f(from)f(the)523 4554 y(resulting)e(set)g(sizes,)g(the)g(upp)r(er)g(transition)g (corresp)r(onds)e(to)i(the)h(write)f(of)g(a)g(v)-5 b(alue)523 4654 y(already)32 b(in)i(the)g(set)g(of)f(p)r(ermitted)i(return)e(v)-5 b(alues.)33 b(In)h(this)g(case,)f(while)g(the)h(set)g(size)523 4753 y(remains)c(the)g(same,)g(it)h(is)f(no)n(w)g(no)g(longer)f (required)h(to)g(map)g(the)h(read)e(action)h(to)g(the)523 4853 y(curren)n(t)23 b(write)h(action)g(\(if)h(the)g(read)e(action)h (decides)g(to)g(return)f(its)i(v)-5 b(alue\).)24 b(This)g(means)523 4953 y(that)30 b(the)f(next)h(read)e(action)h(will)g(not)h(b)r(e)f (able)g(to)g(com)n(bine)g(with)h(the)g(curren)n(t)e(one)h(to)523 5052 y(create)e(a)g(new-old)g(in)n(v)n(ersion.)606 5152 y(Alternativ)n(ely)-7 b(,)20 b(if)h(the)g(v)-5 b(alue)20 b(of)g(the)h(new)f(write)g(is)h(outside)f(the)h(set,)f(then)h(this)g(v) -5 b(alue)20 b(is)523 5251 y(added)i(to)g(it,)h(but)g(if)g(no)n(w)f (the)h(read)e(decides)h(to)h(return)e(the)i(new)g(v)-5 b(alue,)22 b(then)h(the)g(atom-)523 5351 y(icit)n(y)31 b(state)g(represen)n(ted)f(b)n(y)h(the)h(middle-left)g(no)r(de)f(is)g (reac)n(hed.)f(The)h(other)g(left)n(w)n(ard)p eop end %%Page: 80 90 TeXDict begin 80 89 bop 2059 299 a FF(6.7.)52 b(The)26 b(A)n(tomicit)n(y)f(Automaton)154 b(80)523 506 y FK(transitions)25 b(from)g(the)h(righ)n(t-b)r(ottom)e(no)r(des)h(to)h(the)g(left)g(b)r (ottom)g(no)r(de)f(corresp)r(ond)f(to)523 606 y(return)j(v)-5 b(alues)27 b(written)h(b)n(y)g(earlier)e(write)h(actions.)523 857 y Fl(6.7.1)99 b(Using)35 b(the)f(A)n(utomaton)h(for)g(V)-7 b(eri\014c)i(ation)34 b(of)g(a)h(given)f(R)n(un)523 1006 y FK(F)-7 b(or)27 b(v)n(eri\014cation,)g(w)n(e)g(include)h(in)g(the)g (state)g(information)f(the)h(actual)f(set)h(of)f(v)-5 b(alues)28 b(of)523 1106 y FG(c)l(omplete)l(d)33 b(write)g(actions)f FK(that)e(are)g(v)-5 b(alid)30 b(return)g(v)-5 b(alues)31 b(for)f(the)g(next)h(ending)g(read.)523 1205 y(The)22 b(v)-5 b(alue)22 b(returned)f(b)n(y)h(a)f(read)g(can)h(then)g(b)r(e)h (v)n(eri\014ed)e(as)g(follo)n(ws:)g(If)h(it)h(is)f(in)g(the)g(ab)r(o)n (v)n(e)523 1305 y(set,)i(then)h(w)n(e)f(tak)n(e)f(the)i(left)n(w)n(ard) e(transition)g(to)h(the)h(the)f(b)r(ottom-left)h(or)e(top-left)i(no)r (de)523 1405 y(\(in)j(case)e(writer)g(is)h(idle\),)h(and)f(reduce)f (the)h(set)h(to)e(con)n(tain)h(only)f(the)i(v)-5 b(alue)27 b(of)g(the)g(last)523 1504 y(completed)35 b(write.)f(Otherwise,)g(if)i (it)f(is)g(the)g(v)-5 b(alue)34 b(curren)n(tly)g(b)r(eing)h(written)g (b)n(y)f(the)523 1604 y(writer,)26 b(then)g(w)n(e)g(tak)n(e)g(the)g (left)n(w)n(ard)f(transition)h(to)g(the)g(middle-left)h(no)r(de)g(and)f (empt)n(y)523 1703 y(the)38 b(set)g(\(since)g(no)n(w)f(ev)n(en)g(the)h (v)-5 b(alue)37 b(of)h(the)g(last)g(completed)f(write)h(is)f(in)n(v)-5 b(alid\).)38 b(If)523 1803 y(the)29 b(returned)g(v)-5 b(alue)29 b(satis\014es)f(neither)h(of)g(these)g(cases,)f(then)i(the)f (run)g(is)g(non-atomic.)523 1903 y(The)34 b(set)f(is)h(further)f(main)n (tained)g(at)h(the)f(completion)h(of)f(a)g(write,)h(b)n(y)f(either)g (adding)523 2002 y(the)i(written)f(v)-5 b(alue)34 b(to)g(the)g(set)g (if)h(the)f(reader)f(is)h(busy)-7 b(,)34 b(or)f(c)n(hanging)g(the)h (set)g(to)g(the)523 2102 y(singleton)27 b(with)h(that)g(v)-5 b(alue)27 b(if)i(the)f(reader)e(is)h(idle.)606 2202 y(F)-7 b(or)29 b(atomic)f(bit)i(constructions,)e(w)n(e)h(kno)n(w)f(that)i(the) f(v)-5 b(alues)29 b(written)h(are)e(alternat-)523 2301 y(ingly)j(1)h(and)f(0.)h(This)f(means)h(that)g(the)g(size)f(of)h(the)g (set)g(of)f(p)r(ermitted)i(return)e(v)-5 b(alues)523 2401 y(is)27 b(b)r(ounded)h(b)n(y)f(2.)g(The)g(size)g(of)g(the)h (atomicit)n(y)e(automaton)h(shrinks)f(acccordingly)-7 b(.)26 b(In)523 2500 y(the)35 b(group)f(with)h(only)g(the)g(reader)f (busy)-7 b(,)35 b(there)f(are)g(only)h(t)n(w)n(o)f(essen)n(tially)g (di\013eren)n(t)523 2600 y(no)r(des|either)c(the)i(reader)d(can)h (return)h(the)g(curren)n(t)f(v)-5 b(alue)31 b(of)f(the)i(atomic)e(bit,) h(or)f(it)523 2700 y(can)k(return)h(b)r(oth)g(0)f(and)h(1.)f(In)h(the)h (group)d(where)h(b)r(oth)i(users)e(are)f(busy)-7 b(,)35 b(there)g(are)523 2799 y(only)24 b(three)g(no)r(des.)h(In)f(one,)h(it)g (can)f(return)g(either)g(the)h(old)f(or)g(the)h(new)f(v)-5 b(alue)25 b(with)g(t)n(w)n(o)523 2899 y(di\013eren)n(t)34 b(transitions.)f(In)h(the)h(second,)e(it)i(can)e(return)h(b)r(oth)g(0)g (and)f(1)h(as)f(old)h(v)-5 b(alues)523 2999 y(so)27 b(there)h(is)g (only)g(one)f(suc)n(h)h(transition.)f(In)i(the)f(third)g(no)r(de,)g(it) h(m)n(ust)f(return)f(the)i(new)523 3098 y(v)-5 b(alue.)22 b(Figure)g(6.3)f(sho)n(ws)h(this)g(reduced)g(automaton,)g(with)h (explicit)f(men)n(tion)h(of)f(whic)n(h)523 3198 y(v)-5 b(alue)26 b(is)f(returned)h(b)n(y)f(a)g(read)g(\(if)i(the)f(writer)f (is)h(idle,)g(then)g(\\new")f(means)g(\\curren)n(t."\))523 3297 y(There)30 b(are)g(t)n(w)n(o)h(no)r(des)f(from)h(whic)n(h)g(a)f (single)h(new-lab)r(elled)f(transition)h(emanates)f(to)523 3397 y(the)36 b(left.)g(F)-7 b(rom)35 b(these)h(no)r(des)f(atomicit)n (y)g(can)g(b)r(e)h(violated)f(if)h(the)g(read)f(returns)f(the)523 3497 y(other)27 b(v)-5 b(alue.)523 3747 y Fl(6.7.2)99 b(V)-7 b(erifying)34 b(the)h(A)n(tomic)g(Bit)f(Construction)523 3897 y FK(A)e(program)e(has)h(b)r(een)h(written)g(to)g(systematically)e (searc)n(h)h(all)g(states)g(of)h(the)g(atomic)523 3996 y(bit)c(construction.)f(The)h(state)f(information)g(in)n(v)n(olv)n(es)f (the)i(follo)n(wing:)648 4157 y FD(\017)41 b FK(p)r(osition)27 b(of)h(writer)e(in)i(its)g(proto)r(col,)f(i.e.,)g(writer)g(state)648 4320 y FD(\017)41 b FK(p)r(osition)27 b(of)h(reader)e(in)i(its)f(proto) r(col,)g(i.e.,)h(reader)e(state)648 4483 y FD(\017)41 b FK(v)-5 b(alues)27 b(of)g(the)h(reader's)e(lo)r(cal)h(v)-5 b(ariables)648 4646 y FD(\017)41 b FK(v)-5 b(alues)27 b(of)g(the)h(three)g(safe)f(bits)648 4809 y FD(\017)41 b FK(p)r(osition)27 b(in)h(automaton,)f(i.e.,)g(atomicit)n(y)g(state) 606 4969 y(W)-7 b(e)30 b(no)n(w)g(explain)f(ho)n(w)g(the)i(safet)n(y)e (of)h(the)g(shared)f(bits)h(is)g(mo)r(delled.)g(A)g(safe)g(write)523 5069 y(is)c(mo)r(delled)g(b)n(y)g(t)n(w)n(o)g(separate)e(transitions)h (represen)n(ting)g(the)h(start)g(and)g(the)g(\014nish)h(of)523 5169 y(that)c(write.)f(A)h(read,)f(on)g(the)h(other)e(hand,)i(is)f (represen)n(ted)f(b)n(y)i(a)f(single)g(transition,)f(as)h(if)523 5268 y(it)28 b(o)r(ccurred)e(in)h(a)g(single)g(time)h(instan)n(t.)f (This)g(can)g(b)r(e)h(done)f(for)f(the)i(follo)n(wing)e(reason.)523 5368 y(If)e(a)g(read)f(from)g(a)h(safe)f(bit)h(o)n(v)n(erlaps)e(a)h (write)h(on)f(the)i(same)e(bit,)h(then)h(either)e(0)h(or)f(1)g(can)p eop end %%Page: 81 91 TeXDict begin 81 90 bop 2059 299 a FF(6.7.)52 b(The)26 b(A)n(tomicit)n(y)f(Automaton)154 b(81)995 2370 y @beginspecial 0 @llx 0 @lly 297 @urx 306 @ury 2267 @rwi @setspecial %%BeginDocument: auto2.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /tmp/xfig-fig019520 %%Creator: fig2dev %%CreationDate: Sun Oct 31 18:07:59 1993 %%For: tromp@kemphaan.cwi.nl (John Tromp,M231,4078,02207-16322) %%BoundingBox: 0 0 297 306 %%Pages: 0 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /l {lineto} bind def /m {moveto} bind def /s {stroke} bind def /n {newpath} bind def /gs {gsave} bind def /gr {grestore} bind def /clp {closepath} bind def /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul setrgbcolor} bind def /col-1 {} def /col0 {0 0 0 setrgbcolor} bind def /col1 {0 0 1 setrgbcolor} bind def /col2 {0 1 0 setrgbcolor} bind def /col3 {0 1 1 setrgbcolor} bind def /col4 {1 0 0 setrgbcolor} bind def /col5 {1 0 1 setrgbcolor} bind def /col6 {1 1 0 setrgbcolor} bind def /col7 {1 1 1 setrgbcolor} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 0 setlinecap 0 setlinejoin -27.0 400.0 translate 0.900 -0.900 scale 0.500 setlinewidth n 107.242 163.732 m 99.000 164.000 l 106.146 159.885 l gs 2 setlinejoin col0 s gr n 206.500 541.500 392.508 -74.105 -105.895 arcn gs col0 s gr n 219.704 393.045 m 214.000 399.000 l 216.231 391.061 l gs 2 setlinejoin col0 s gr n 12.962 284.189 231.512 29.730 -24.278 arcn gs col0 s gr % Ellipse n 209 179 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 329 179 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 329 299 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 209 419 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 419 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 209 299 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 299 20 20 0 360 DrawEllipse gs col0 s gr % Ellipse n 89 179 20 20 0 360 DrawEllipse gs col0 s gr n 117.000 421.000 m 109.000 419.000 l 117.000 417.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 419 m 189 419 l gs col0 s gr n 181.000 417.000 m 189.000 419.000 l 181.000 421.000 l gs 2 setlinejoin col0 s gr n 117.000 301.000 m 109.000 299.000 l 117.000 297.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 299 m 189 299 l gs col0 s gr n 181.000 297.000 m 189.000 299.000 l 181.000 301.000 l gs 2 setlinejoin col0 s gr n 327.000 207.000 m 329.000 199.000 l 331.000 207.000 l gs 2 setlinejoin col0 s gr % Polyline n 329 199 m 329 279 l gs col0 s gr n 331.000 271.000 m 329.000 279.000 l 327.000 271.000 l gs 2 setlinejoin col0 s gr % Polyline n 219 404 m 314 194 l gs col0 s gr n 308.880 200.465 m 314.000 194.000 l 312.525 202.113 l gs 2 setlinejoin col0 s gr % Polyline n 199 404 m 99 314 l gs col0 s gr n 103.608 320.838 m 99.000 314.000 l 106.284 317.865 l gs 2 setlinejoin col0 s gr n 117.000 181.000 m 109.000 179.000 l 117.000 177.000 l gs 2 setlinejoin col0 s gr % Polyline n 109 179 m 189 179 l gs col0 s gr n 181.000 177.000 m 189.000 179.000 l 181.000 181.000 l gs 2 setlinejoin col0 s gr 1 setlinecap [1 3.200000] 3.200000 setdash % Polyline n 149 109 m 149 444 l gs col0 s gr [] 0 setdash 0 setlinecap 1 setlinecap [1 3.200000] 3.200000 setdash % Polyline n 29 239 m 359 239 l gs col0 s gr [] 0 setdash 0 setlinecap % Polyline n 309 309 m 99 404 l gs col-1 s gr n 107.113 402.525 m 99.000 404.000 l 105.465 398.880 l gs 2 setlinejoin col-1 s gr n 69.199 200.705 m 74.000 194.000 l 72.919 202.175 l gs 2 setlinejoin col0 s gr n 72.919 395.825 m 74.000 404.000 l 69.199 397.295 l gs 2 setlinejoin col0 s gr n 339.625 299.000 285.625 158.431 -158.431 arc gs col0 s gr n 207.000 207.000 m 209.000 199.000 l 211.000 207.000 l gs 2 setlinejoin col0 s gr % Polyline n 209 199 m 209 279 l gs col0 s gr /Times-Roman findfont 12.00 scalefont setfont 114 314 m gs 1 -1 scale (new) col-1 show gr n 87.000 207.000 m 89.000 199.000 l 91.000 207.000 l gs 2 setlinejoin col0 s gr % Polyline n 89 199 m 89 279 l gs col0 s gr /Times-Roman findfont 12.00 scalefont setfont 329 184 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 329 304 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 209 184 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 89 184 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 16.00 scalefont setfont 59 119 m gs 1 -1 scale (Reader Idle) col0 show gr /Times-Roman findfont 16.00 scalefont setfont 29 149 m gs 1 -1 scale 270.0 rotate (Writer Idle) col-1 show gr /Times-Roman findfont 12.00 scalefont setfont 89 424 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 209 424 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 209 304 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 89 304 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 16.00 scalefont setfont 29 309 m gs 1 -1 scale 270.0 rotate (Writer Busy) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 234 119 m gs 1 -1 scale (Reader Busy) col0 show gr /Times-Roman findfont 12.00 scalefont setfont 119 149 m gs 1 -1 scale (any) col-1 show gr /Times-Roman findfont 12.00 scalefont setfont 119 189 m gs 1 -1 scale (new) col-1 show gr /Times-Roman findfont 12.00 scalefont setfont 104 389 m gs 1 -1 scale (any) col-1 show gr /Times-Roman findfont 12.00 scalefont setfont 119 434 m gs 1 -1 scale (old) col-1 show gr /Times-Roman findfont 12.00 scalefont setfont 89 334 m gs 1 -1 scale (new) col-1 show gr $F2psEnd %%EndDocument @endspecial 1270 2545 a(FIGURE)25 b(6.3.)i(the)e(atomic)i(bit)e (automaton)523 2794 y FK(b)r(e)33 b(returned,)g(so)f(the)i(read)e(migh) n(t)h(as)f(w)n(ell)h(ha)n(v)n(e)f(o)r(ccurred)g(completely)h(within)g (that)523 2893 y(write.)f(If)h(no)f(write)g(o)n(v)n(erlaps)e(the)j (read,)f(then)h(the)g(v)-5 b(alue)32 b(returned)g(m)n(ust)g(b)r(e)h (that)g(of)523 2993 y(the)27 b(last)f(preceding)g(write,)h(and)f(it)i (clearly)d(do)r(esn't)i(matter)f(ho)n(w)g(long)g(the)h(read)f(lasts.) 606 3093 y(In)31 b(summary)-7 b(,)31 b(if)g(a)g(read)f(o)r(ccurs)g(b)r (et)n(w)n(een)h(t)n(w)n(o)f(consecutiv)n(e)g(writes,)h(then)g(there)g (is)523 3192 y(a)h(single)h(transition)f(corresp)r(onding)e(to)j(the)g (return)f(of)h(the)g(curren)n(t)f(v)-5 b(alue,)33 b(and)f(if)h(it)523 3292 y(o)r(ccurs)k(b)r(et)n(w)n(een)h(the)h(start)e(and)h(\014nish)g (of)g(a)g(write,)g(then)g(there)g(are)f(t)n(w)n(o)h(di\013eren)n(t)523 3392 y(transitions,)27 b(one)g(for)g(eac)n(h)g(v)-5 b(alue)27 b(that)h(can)f(b)r(e)h(returned.)606 3491 y(This)h(mo)r(del)h(captures) f(the)g(essence)g(of)h(safe)f(bits.)g(It)h(leads)f(to)g(3)g(writer)g (states)g(and)523 3591 y(7)c(reader)e(states.)i(The)g(program)e(starts) h(b)n(y)h(putting)g(the)h(initial)f(state)g(in)g(an)g(otherwise)523 3690 y(empt)n(y)f(set.)g(Then)g(it)h(rep)r(eatedly)e(tak)n(es)g(an)h (elemen)n(t)g(from)g(the)g(set,)g(and)g(replaces)f(it)h(b)n(y)523 3790 y(all)d(states)f(that)h(result)f(from)h(the)g(remo)n(v)n(ed)e(one) i(b)n(y)f(a)g(single)h(transition)f(and)g(are)g(not)h(y)n(et)523 3890 y(in)26 b(the)h(set.)f(Additionally)-7 b(,)26 b(the)g(program)e(k) n(eeps)h(trac)n(k)g(of)h(the)g(shortest)g(path)g(from)f(the)523 3989 y(initial)e(state)f(to)g(eac)n(h)g(visited)h(one.)f(If)h(some)f (transition)g(is)g(the)h(return)f(of)g(a)g(v)-5 b(alue)23 b(whic)n(h)523 4089 y(is)d(in)n(v)-5 b(alid)19 b(according)f(to)i(the)g (automaton,)f(then)h(the)g(program)e(prin)n(ts)h(out)h(a)f(description) 523 4189 y(of)41 b(the)g(shortest)f(path)h(to)g(the)g(failing)g(state,) f(rev)n(ealing)f(the)i(shortcomings)f(of)g(the)523 4288 y(construction)c(b)r(eing)g(v)n(eri\014ed.)g(Otherwise,)f(if)i(the)g (set)f(b)r(ecomes)g(empt)n(y)-7 b(,)37 b(then)f(some)523 4388 y(statistics)25 b(are)f(prin)n(ted)h(suc)n(h)g(as)f(the)i(n)n(um)n (b)r(er)f(of)g(visited)g(states)g(for)f(eac)n(h)h(com)n(bination)523 4488 y(of)j(writer)f(state)g(and)g(reader)f(state.)606 4587 y(The)36 b(program)e(help)r(ed)i(the)h(design)e(of)h(the)g(atomic) f(bit)i(construction)e(b)n(y)g(making)523 4687 y(it)30 b(easy)e(to)h(try)g(out)h(v)-5 b(arious)28 b(alternativ)n(es,)f(and)j (immediately)f(getting)g(a)g(diagnosis)f(of)523 4786 y(p)r(ossible)f(problems.)523 5035 y Fl(6.7.3)99 b(V)-7 b(erifying)34 b(the)h(Safe)f(Byte)h(Switch)g(Construction)523 5185 y FK(Lik)n(e)30 b(in)h(the)g(pro)r(of)f(of)h(the)g(4-trac)n(k)e (construction)h(with)h(the)g(4)f(atomic)g(bits,)h(w)n(e)g(m)n(ust)523 5285 y(\014rst)24 b(establish)g(that)g(the)h(new)f(construction)g(is)g (collision)f(free,)h(that)h(is,)f(w)n(e)g(m)n(ust)g(pro)n(v)n(e)p eop end %%Page: 82 92 TeXDict begin 82 91 bop 2059 299 a FF(6.7.)52 b(The)26 b(A)n(tomicit)n(y)f(Automaton)154 b(82)523 506 y FK(lemma)24 b(6.7)g(again.)f(F)-7 b(or)24 b(this)h(w)n(e)f(again)f(need)i(an)f(in)n (v)-5 b(arian)n(t)23 b(to)h(hold)h(under)f(all)g(p)r(ossible)523 606 y(runs)32 b(based)h(on)f(a)h(state)f(diagram.)g(In)h(this)g(case)f (ho)n(w)n(ev)n(er,)f(w)n(e)h(cannot)g(assume)g(that)523 706 y(the)42 b(switc)n(h)f(bit)h(accesses)e(can)h(b)r(e)g(linearized,)g (since)g(they)h(are)e(only)h(safe.)g(Instead)523 805 y(w)n(e)c(adopt)g(the)h(safe)g(bit)g(mo)r(del)f(of)h(the)g(previous)e (section.)i(This)f(en)n(tails)g(rede\014ning)523 905 y(the)i(reader)e(and)i(writer)f(states.)g(Since)h(the)g(simplicit)n(y)f (of)h(the)g(in)n(v)-5 b(arian)n(ts)37 b(dep)r(ends)523 1005 y(rather)e(hea)n(vily)f(on)h(the)h(exact)f(form)h(of)f(the)h (proto)r(cols.)e(w)n(e)h(base)g(the)h(pro)r(of)f(on)g(the)523 1104 y(follo)n(wing)c(reform)n(ulated)g(proto)r(cols,)f(that)j(are)e (seman)n(tically)g(equiv)-5 b(alen)n(t)31 b(to)h(those)g(of)523 1204 y(Section)26 b(6.6.2)e(\(lo)r(cal)h(assignmen)n(ts)g(ha)n(v)n(e)f (mo)n(v)n(ed)h(and)g(indices)h(c)n(hanged)e(accordingly\):)523 1370 y Fk(WRITER)41 b(PROTOCOL)781 b(READER)41 b(PROTOCOL)523 1569 y(1.)i(if)g(R[1-w]==W[1-w])37 b(then)347 b(if)43 b(W[r]<>R[r])d(then)523 1669 y(2.)130 b(write)41 b(track)h (T[1-w,x[1-w]])213 b(r)43 b(:=)f(1-r)523 1768 y(3.)130 b(w)43 b(:=)g(1-w)958 b(change)41 b(R[1-r])523 1868 y(4.)130 b(change)41 b(W[1-w])739 b(read)41 b(d[0])h(:=)h(D[r,0])523 1968 y(5.)g(else)1219 b(read)41 b(d[1])h(:=)h(D[r,1])523 2067 y(6.)130 b(write)41 b(track)h(T[w,1-x[w]])213 b(else)42 b(read)g(d[d[0])p FD(\010)p Fk(d[1]])523 2167 y(7.)130 b(x[w])42 b(:=)h(1-x[w])825 b(:=)43 b(D[r,d[0])p FD(\010)p Fk(d[1]])523 2267 y(8.)130 b(change)41 b(D[w,1-x[w]])431 b(endif)523 2366 y(9.)43 b(endif)1087 b(read)42 b(track)g(T[r,d[0])p FD(\010)p Fk(d[1]])606 2532 y FK(Note)30 b(that)h(when)f(a)g(safe)f (bit)i(is)f(c)n(hanged,)f(the)i(lo)r(cal)e(cop)n(y)h(already)e(holds)i (the)h(new)523 2632 y(v)-5 b(alue|this)22 b(is)f(the)h(prop)r(ert)n(y)f (that)g(ensures)g(the)h(most)f(simple)h(in)n(v)-5 b(arian)n(ts.)20 b(W)-7 b(e)22 b(pro)r(ceed)523 2731 y(to)28 b(en)n(umerate)e(the)i (essen)n(tial)f(p)r(ositions)g(of)h(the)g(users)e(in)i(their)g(proto)r (cols.)606 2831 y(The)g(states)f(of)g(the)h(writer)f(are:)523 2997 y FH(0)41 b FK(idle,)28 b(i.e.,)g(b)r(efore)f(the)h(safe)f(read)g (of)h FC(R)1848 3009 y FB(1)p Fw(\000)p FA(w)2014 2997 y FK(in)g(line)g(1)523 3163 y FH(1)41 b FK(b)r(et)n(w)n(een)27 b(the)h(safe)e(read)g(of)h FC(R)1579 3175 y FB(1)p Fw(\000)p FA(w)1745 3163 y FK(and)g(the)h(safe)e(c)n(hange)g(of)h FC(W)2658 3175 y FB(1)p Fw(\000)p FA(w)2824 3163 y FK(in)h(line)f(4,)g (when)731 3263 y(it)h(is)f(writing)g(trac)n(k)g FC(T)1445 3275 y FB(1)p Fw(\000)p FA(w)r(;x)1638 3283 y Fy(1)p Ft(\000)p Fx(w)523 3429 y FH(2)41 b FK(c)n(hanging)27 b(safe)g(bit)h FC(W)1332 3441 y FB(1)p Fw(\000)p FA(w)1499 3429 y FK(in)g(line)f(4)523 3595 y FH(3)41 b FK(b)r(et)n(w)n(een)36 b(the)g(safe)f(read)g(of)h FC(R)1623 3607 y FB(1)p Fw(\000)p FA(w)1797 3595 y FK(and)g(the)g(safe)f(c)n(hange)g(of)g FC(D)2744 3607 y FA(w)r(;)p FB(1)p Fw(\000)p FA(x)2937 3615 y Fx(w)3023 3595 y FK(in)h(line)g(8,)731 3694 y(when)27 b(it)h(is)g(writing)f(trac)n(k)f FC(T)1661 3706 y FA(w)r(;)p FB(1)p Fw(\000)p FA(x)1854 3714 y Fx(w)523 3861 y FH(4)41 b FK(c)n(hanging)27 b(safe)g(bit)h FC(D)1323 3873 y FA(w)r(;)p FB(1)p Fw(\000)p FA(x)1516 3881 y Fx(w)1594 3861 y FK(in)f(line)h(8)523 4027 y(Th)n(us,)34 b(the)g(writer)f(is)h(alw)n(a)n(ys)e(mo)n(ving)g (from)i(state)f(0)h(to)g(either)f(state)h(1)f(follo)n(w)n(ed)g(b)n(y) 523 4126 y(state)23 b(2)g(or)f(to)h(state)g(3)g(follo)n(w)n(ed)f(b)n(y) h(state)g(4)g(\(dep)r(ending)g(on)g(the)h(outcome)e(of)i(the)f(test\),) 523 4226 y(and)k(then)i(bac)n(k)d(to)i(state)f(0.)606 4325 y(The)h(states)f(of)g(the)h(reader)f(are:)523 4491 y FH(0)41 b FK(idle,)28 b(i.e.,)g(b)r(efore)f(the)h(safe)f(read)g(of)h FC(W)1863 4503 y FA(r)1928 4491 y FK(in)f(line)h(1)523 4658 y FH(1)41 b FK(b)r(et)n(w)n(een)32 b(the)f(safe)g(read)g(of)g FC(W)1616 4670 y FA(r)1685 4658 y FK(and)g(the)h(safe)e(read)h(of)g FC(D)2520 4670 y FA(r)n(;)p FB(0)2637 4658 y FK(in)h(line)g(4,)f(when)g (it)h(is)731 4757 y(c)n(hanging)26 b(safe)h(bit)h FC(R)1435 4769 y FB(1)p Fw(\000)p FA(r)523 4923 y FH(2)41 b FK(b)r(et)n(w)n(een) 28 b(the)g(safe)f(read)g(of)g FC(D)1588 4935 y FA(r)n(;)p FB(0)1702 4923 y FK(and)g(the)h(safe)f(read)g(of)h FC(D)2519 4935 y FA(r)n(;)p FB(1)2632 4923 y FK(in)g(line)g(5)523 5089 y FH(3)41 b FK(b)r(et)n(w)n(een)28 b(the)g(safe)f(read)g(of)g FC(W)1597 5101 y FA(r)1662 5089 y FK(and)h(the)g(safe)f(read)f(of)i FC(D)2479 5101 y FA(r)n(;d)2563 5109 y Fy(0)2594 5101 y Fw(\010)p FA(d)2681 5109 y Fy(1)2745 5089 y FK(in)g(line)g(7)523 5255 y FH(4)41 b FK(reading)27 b(trac)n(k)f FC(T)1169 5267 y FA(r)n(;d)1253 5275 y Fy(0)1284 5267 y Fw(\010)p FA(d)1371 5275 y Fy(1)1435 5255 y FK(in)i(line)g(9)p eop end %%Page: 83 93 TeXDict begin 83 92 bop 2059 299 a FF(6.7.)52 b(The)26 b(A)n(tomicit)n(y)f(Automaton)154 b(83)523 2401 y @beginspecial 0 @llx 0 @lly 536 @urx 374 @ury 3401 @rwi @setspecial %%BeginDocument: states.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: /tmp/xfig-fig019454 %%Creator: fig2dev %%CreationDate: Sun Oct 31 17:44:53 1993 %%For: tromp@kemphaan.cwi.nl (John Tromp,M231,4078,02207-16322) %%BoundingBox: 0 0 536 374 %%Pages: 0 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /l {lineto} bind def /m {moveto} bind def /s {stroke} bind def /n {newpath} bind def /gs {gsave} bind def /gr {grestore} bind def /clp {closepath} bind def /graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul setrgbcolor} bind def /col-1 {} def /col0 {0 0 0 setrgbcolor} bind def /col1 {0 0 1 setrgbcolor} bind def /col2 {0 1 0 setrgbcolor} bind def /col3 {0 1 1 setrgbcolor} bind def /col4 {1 0 0 setrgbcolor} bind def /col5 {1 0 1 setrgbcolor} bind def /col6 {1 1 0 setrgbcolor} bind def /col7 {1 1 1 setrgbcolor} bind def end /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 0 setlinecap 0 setlinejoin -27.0 482.0 translate 0.900 -0.900 scale 0.500 setlinewidth % Polyline n 174 229 m 254 229 l 254 269 l 174 269 l clp gs col0 s gr % Polyline n 54 229 m 134 229 l 134 269 l 54 269 l clp gs col0 s gr % Polyline n 534 309 m 614 309 l 614 349 l 534 349 l clp gs col0 s gr % Polyline n 414 309 m 494 309 l 494 349 l 414 349 l clp gs col0 s gr % Polyline n 294 309 m 374 309 l 374 349 l 294 349 l clp gs col0 s gr % Polyline n 174 309 m 254 309 l 254 349 l 174 349 l clp gs col0 s gr % Polyline n 54 309 m 134 309 l 134 349 l 54 349 l clp gs col0 s gr % Polyline n 54 389 m 134 389 l 134 429 l 54 429 l clp gs col0 s gr % Polyline n 174 389 m 254 389 l 254 429 l 174 429 l clp gs col0 s gr % Polyline n 294 389 m 374 389 l 374 429 l 294 429 l clp gs col0 s gr % Polyline n 414 389 m 494 389 l 494 429 l 414 429 l clp gs col0 s gr % Polyline n 294 229 m 374 229 l 374 269 l 294 269 l clp gs col0 s gr % Polyline n 534 389 m 614 389 l 614 429 l 534 429 l clp gs col0 s gr % Polyline n 54 149 m 134 149 l 134 189 l 54 189 l clp gs col0 s gr % Polyline n 534 469 m 614 469 l 614 509 l 534 509 l clp gs col0 s gr % Polyline n 294 469 m 374 469 l 374 509 l 294 509 l clp gs col0 s gr % Polyline n 174 469 m 254 469 l 254 509 l 174 509 l clp gs col0 s gr % Polyline n 54 469 m 134 469 l 134 509 l 54 509 l clp gs col0 s gr % Polyline n 534 229 m 614 229 l 614 269 l 534 269 l clp gs col0 s gr % Polyline n 414 469 m 494 469 l 494 509 l 414 509 l clp gs col0 s gr % Polyline n 414 229 m 494 229 l 494 269 l 414 269 l clp gs col0 s gr % Polyline n 534 149 m 614 149 l 614 189 l 534 189 l clp gs col0 s gr % Polyline n 414 149 m 494 149 l 494 189 l 414 189 l clp gs col0 s gr % Polyline n 294 149 m 374 149 l 374 189 l 294 189 l clp gs col0 s gr % Polyline n 174 149 m 254 149 l 254 189 l 174 189 l clp gs col0 s gr n 121.305 432.826 m 114.000 429.000 l 122.246 428.938 l gs 2 setlinejoin col0 s gr n 324.000 -438.500 892.556 76.392 103.608 arc gs col0 s gr n 527.268 384.238 m 534.000 389.000 l 525.819 387.966 l gs 2 setlinejoin col0 s gr n 454.000 594.833 220.833 -111.239 -68.761 arc gs col0 s gr % Polyline n 134 489 m 174 489 l gs col0 s gr n 166.000 487.000 m 174.000 489.000 l 166.000 491.000 l gs 2 setlinejoin col0 s gr % Polyline n 254 489 m 294 489 l gs col0 s gr n 286.000 487.000 m 294.000 489.000 l 286.000 491.000 l gs 2 setlinejoin col0 s gr n 527.268 464.238 m 534.000 469.000 l 525.819 467.966 l gs 2 setlinejoin col0 s gr n 454.000 674.833 220.833 -111.239 -68.761 arc gs col0 s gr n 121.305 512.826 m 114.000 509.000 l 122.246 508.938 l gs 2 setlinejoin col0 s gr n 324.000 -358.500 892.556 76.392 103.608 arc gs col0 s gr % Polyline n 494 489 m 534 489 l gs col0 s gr n 526.000 487.000 m 534.000 489.000 l 526.000 491.000 l gs 2 setlinejoin col0 s gr n 53.297 300.784 m 54.000 309.000 l 49.514 302.081 l gs 2 setlinejoin col0 s gr n 229.000 249.000 185.000 -161.075 161.075 arcn gs col0 s gr % Polyline n 574 429 m 574 469 l gs col0 s gr n 576.000 461.000 m 574.000 469.000 l 572.000 461.000 l gs 2 setlinejoin col0 s gr n 49.514 355.919 m 54.000 349.000 l 53.297 357.216 l gs 2 setlinejoin col0 s gr n 229.000 409.000 185.000 161.075 -161.075 arc gs col0 s gr n 173.297 300.784 m 174.000 309.000 l 169.514 302.081 l gs 2 setlinejoin col0 s gr n 349.000 249.000 185.000 -161.075 161.075 arcn gs col0 s gr % Polyline n 494 409 m 534 409 l gs col0 s gr n 526.000 407.000 m 534.000 409.000 l 526.000 411.000 l gs 2 setlinejoin col0 s gr % Polyline n 454 429 m 454 469 l gs col0 s gr n 456.000 461.000 m 454.000 469.000 l 452.000 461.000 l gs 2 setlinejoin col0 s gr % Polyline n 334 429 m 334 469 l gs col0 s gr n 336.000 461.000 m 334.000 469.000 l 332.000 461.000 l gs 2 setlinejoin col0 s gr n 169.514 355.919 m 174.000 349.000 l 173.297 357.216 l gs 2 setlinejoin col0 s gr n 349.000 409.000 185.000 161.075 -161.075 arc gs col0 s gr n 293.297 300.784 m 294.000 309.000 l 289.514 302.081 l gs 2 setlinejoin col0 s gr n 469.000 249.000 185.000 -161.075 161.075 arcn gs col0 s gr % Polyline n 254 409 m 294 409 l gs col0 s gr n 286.000 407.000 m 294.000 409.000 l 286.000 411.000 l gs 2 setlinejoin col0 s gr % Polyline n 214 429 m 214 469 l gs col0 s gr n 216.000 461.000 m 214.000 469.000 l 212.000 461.000 l gs 2 setlinejoin col0 s gr % Polyline n 94 429 m 94 469 l gs col0 s gr n 96.000 461.000 m 94.000 469.000 l 92.000 461.000 l gs 2 setlinejoin col0 s gr % Polyline n 134 409 m 174 409 l gs col0 s gr n 166.000 407.000 m 174.000 409.000 l 166.000 411.000 l gs 2 setlinejoin col0 s gr n 289.514 355.919 m 294.000 349.000 l 293.297 357.216 l gs 2 setlinejoin col0 s gr n 469.000 409.000 185.000 161.075 -161.075 arc gs col0 s gr n 494.703 357.216 m 494.000 349.000 l 498.486 355.919 l gs 2 setlinejoin col0 s gr n 319.000 409.000 185.000 18.925 -18.925 arcn gs col0 s gr % Polyline n 134 329 m 174 329 l gs col0 s gr n 166.000 327.000 m 174.000 329.000 l 166.000 331.000 l gs 2 setlinejoin col0 s gr % Polyline n 94 349 m 94 389 l gs col0 s gr n 96.000 381.000 m 94.000 389.000 l 92.000 381.000 l gs 2 setlinejoin col0 s gr % Polyline n 214 349 m 214 389 l gs col0 s gr n 216.000 381.000 m 214.000 389.000 l 212.000 381.000 l gs 2 setlinejoin col0 s gr % Polyline n 254 329 m 294 329 l gs col0 s gr n 286.000 327.000 m 294.000 329.000 l 286.000 331.000 l gs 2 setlinejoin col0 s gr n 498.486 302.081 m 494.000 309.000 l 494.703 300.784 l gs 2 setlinejoin col0 s gr n 319.000 249.000 185.000 -18.925 18.925 arc gs col0 s gr n 618.486 302.081 m 614.000 309.000 l 614.703 300.784 l gs 2 setlinejoin col0 s gr n 439.000 249.000 185.000 -18.925 18.925 arc gs col0 s gr % Polyline n 334 349 m 334 389 l gs col0 s gr n 336.000 381.000 m 334.000 389.000 l 332.000 381.000 l gs 2 setlinejoin col0 s gr % Polyline n 454 349 m 454 389 l gs col0 s gr n 456.000 381.000 m 454.000 389.000 l 452.000 381.000 l gs 2 setlinejoin col0 s gr % Polyline n 494 329 m 534 329 l gs col0 s gr n 526.000 327.000 m 534.000 329.000 l 526.000 331.000 l gs 2 setlinejoin col0 s gr n 614.703 357.216 m 614.000 349.000 l 618.486 355.919 l gs 2 setlinejoin col0 s gr n 439.000 409.000 185.000 18.925 -18.925 arcn gs col0 s gr n 405.758 508.740 m 414.000 509.000 l 406.605 512.649 l gs 2 setlinejoin col0 s gr n 274.000 -136.833 660.833 102.231 77.769 arcn gs col0 s gr % Polyline n 574 349 m 574 389 l gs col0 s gr n 576.000 381.000 m 574.000 389.000 l 572.000 381.000 l gs 2 setlinejoin col0 s gr n 405.758 428.740 m 414.000 429.000 l 406.605 432.649 l gs 2 setlinejoin col0 s gr n 274.000 -216.833 660.833 102.231 77.769 arcn gs col0 s gr n 92.000 277.000 m 94.000 269.000 l 96.000 277.000 l gs 2 setlinejoin col0 s gr % Polyline n 94 269 m 94 309 l gs col0 s gr n 212.000 277.000 m 214.000 269.000 l 216.000 277.000 l gs 2 setlinejoin col0 s gr % Polyline n 214 269 m 214 309 l gs col0 s gr % Polyline n 254 249 m 294 249 l gs col0 s gr n 286.000 247.000 m 294.000 249.000 l 286.000 251.000 l gs 2 setlinejoin col0 s gr n 405.758 348.740 m 414.000 349.000 l 406.605 352.649 l gs 2 setlinejoin col0 s gr n 274.000 -296.833 660.833 102.231 77.769 arcn gs col0 s gr n 405.758 268.740 m 414.000 269.000 l 406.605 272.649 l gs 2 setlinejoin col0 s gr n 274.000 -376.833 660.833 102.231 77.769 arcn gs col0 s gr n 332.000 277.000 m 334.000 269.000 l 336.000 277.000 l gs 2 setlinejoin col0 s gr % Polyline n 334 269 m 334 309 l gs col0 s gr n 405.758 188.740 m 414.000 189.000 l 406.605 192.649 l gs 2 setlinejoin col0 s gr n 274.000 -456.833 660.833 102.231 77.769 arcn gs col0 s gr n 452.000 277.000 m 454.000 269.000 l 456.000 277.000 l gs 2 setlinejoin col0 s gr % Polyline n 454 269 m 454 309 l gs col0 s gr /Times-Roman findfont 9.00 scalefont setfont 564 244 m gs 1 -1 scale (w=r) col0 show gr % Polyline n 494 249 m 534 249 l gs col0 s gr n 526.000 247.000 m 534.000 249.000 l 526.000 251.000 l gs 2 setlinejoin col0 s gr n 527.268 304.238 m 534.000 309.000 l 525.819 307.966 l gs 2 setlinejoin col0 s gr n 454.000 514.833 220.833 -111.239 -68.761 arc gs col0 s gr n 572.000 277.000 m 574.000 269.000 l 576.000 277.000 l gs 2 setlinejoin col0 s gr % Polyline n 574 269 m 574 309 l gs col0 s gr n 572.000 197.000 m 574.000 189.000 l 576.000 197.000 l gs 2 setlinejoin col0 s gr % Polyline n 574 189 m 574 229 l gs col0 s gr n 121.305 272.826 m 114.000 269.000 l 122.246 268.938 l gs 2 setlinejoin col0 s gr n 324.000 -598.500 892.556 76.392 103.608 arc gs col0 s gr n 527.268 224.238 m 534.000 229.000 l 525.819 227.966 l gs 2 setlinejoin col0 s gr n 454.000 434.833 220.833 -111.239 -68.761 arc gs col0 s gr % Polyline n 494 169 m 534 169 l gs col0 s gr n 526.000 167.000 m 534.000 169.000 l 526.000 171.000 l gs 2 setlinejoin col0 s gr n 452.000 197.000 m 454.000 189.000 l 456.000 197.000 l gs 2 setlinejoin col0 s gr % Polyline n 454 189 m 454 229 l gs col0 s gr n 332.000 197.000 m 334.000 189.000 l 336.000 197.000 l gs 2 setlinejoin col0 s gr % Polyline n 334 189 m 334 229 l gs col0 s gr n 527.268 144.238 m 534.000 149.000 l 525.819 147.966 l gs 2 setlinejoin col0 s gr n 454.000 354.833 220.833 -111.239 -68.761 arc gs col0 s gr n 121.305 192.826 m 114.000 189.000 l 122.246 188.938 l gs 2 setlinejoin col0 s gr n 324.000 -678.500 892.556 76.392 103.608 arc gs col0 s gr % Polyline n 254 169 m 294 169 l gs col0 s gr n 286.000 167.000 m 294.000 169.000 l 286.000 171.000 l gs 2 setlinejoin col0 s gr n 212.000 197.000 m 214.000 189.000 l 216.000 197.000 l gs 2 setlinejoin col0 s gr % Polyline n 214 189 m 214 229 l gs col0 s gr n 92.000 197.000 m 94.000 189.000 l 96.000 197.000 l gs 2 setlinejoin col0 s gr % Polyline n 94 189 m 94 229 l gs col0 s gr % Polyline n 134 169 m 174 169 l gs col0 s gr n 166.000 167.000 m 174.000 169.000 l 166.000 171.000 l gs 2 setlinejoin col0 s gr n 121.305 352.826 m 114.000 349.000 l 122.246 348.938 l gs 2 setlinejoin col0 s gr n 324.000 -518.500 892.556 76.392 103.608 arc gs col0 s gr /Times-Roman findfont 9.00 scalefont setfont 554 494 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 434 494 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 299 494 m gs 1 -1 scale (x[r]=0 > D\(0\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 74 494 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 554 399 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 539 414 m gs 1 -1 scale (w=r >) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 554 424 m gs 1 -1 scale (D\(1-x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 434 424 m gs 1 -1 scale (D\(1-x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 419 414 m gs 1 -1 scale (w=r >) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 434 399 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 74 424 m gs 1 -1 scale (D\(1-x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 59 414 m gs 1 -1 scale (w=r >) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 74 399 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 554 184 m gs 1 -1 scale (D\(1-x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 539 174 m gs 1 -1 scale (w=r >) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 554 159 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 434 184 m gs 1 -1 scale (D\(1-x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 419 174 m gs 1 -1 scale (w=r >) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 434 159 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 74 184 m gs 1 -1 scale (D\(1-x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 59 174 m gs 1 -1 scale (w=r >) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 74 159 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 554 259 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 434 259 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 299 334 m gs 1 -1 scale (x[r]=0 > D\(0\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 299 264 m gs 1 -1 scale (x[r]=0 > D\(0\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 74 259 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 554 334 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 434 334 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 234 129 m gs 1 -1 scale (Reader States) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 569 129 m gs 1 -1 scale (4) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 444 129 m gs 1 -1 scale (3) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 329 129 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 209 129 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 89 129 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 74 334 m gs 1 -1 scale (D\(x[r]\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 29 259 m gs 1 -1 scale (1) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 29 339 m gs 1 -1 scale (0) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 29 419 m gs 1 -1 scale (3) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 29 499 m gs 1 -1 scale (4) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 29 179 m gs 1 -1 scale (2) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 29 534 m gs 1 -1 scale (Writer States) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 299 164 m gs 1 -1 scale (w=r or x[r]=0) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 314 179 m gs 1 -1 scale (> D\(0\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 299 404 m gs 1 -1 scale (w=r or x[r]=0) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 314 419 m gs 1 -1 scale (> D\(0\)) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 204 254 m gs 1 -1 scale (w=r) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 84 244 m gs 1 -1 scale (w=r) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 324 244 m gs 1 -1 scale (w=r) col0 show gr /Times-Roman findfont 9.00 scalefont setfont 444 244 m gs 1 -1 scale (w=r) col0 show gr $F2psEnd %%EndDocument @endspecial 711 2576 a(FIGURE)25 b(6.4.)i(state)f(diagram)h(of)f (4-trac)n(k)g(construction)g(with)g(safe)h(b)n(yte)d(switc)n(h)523 2838 y FK(Th)n(us)33 b(the)g(reader)f(is)h(alw)n(a)n(ys)e(mo)n(ving)i (from)f(state)h(0)g(to)g(either)g(state)g(1,)g(follo)n(w)n(ed)f(b)n(y) 523 2937 y(state)27 b(2)h(or)e(to)i(state)f(3,)g(then)i(on)e(to)g (state)h(4,)f(and)g(\014nally)h(bac)n(k)f(to)g(state)g(0.)606 3037 y(Altogether,)e(there)g(are)f(no)n(w)h(5)13 b FD(\002)h FK(5)22 b(=)h(25)h(states,)h(whic)n(h)h(are)e(pictured)h(in)h(\014gure) f(6.4,)523 3137 y(along)j(with)i(all)f(p)r(ossible)h(transitions.)e (Eac)n(h)g(no)r(de)i(con)n(tains)f(a)g(\(p)r(ossibly)g(empt)n(y\))h (set)523 3236 y(of)25 b(form)n(ulas,)g(whic)n(h)g(are)f(to)i(b)r(e)g (conjuncted,)g(together)e(with)i(the)g(in)n(v)-5 b(arian)n(t)24 b FC(W)3076 3248 y FA(w)3153 3236 y FK(=)f FC(R)3304 3248 y FA(w)523 3336 y FK(whic)n(h)d(holds)g(for)f(all)h(no)r(des.)g(T) -7 b(o)19 b(solv)n(e)g(the)h(p)r(oten)n(tial)g(am)n(biguit)n(y)g(of)f (this)i(form)n(ula)e(whic)n(h)523 3436 y(arises)33 b(when)h(the)h (reader)d(is)i(c)n(hanging)f FC(R)1898 3448 y FA(w)1986 3436 y FK(\(the)i(writer)e(c)n(hanges)g FC(W)2811 3448 y FB(1)p Fw(\000)p FA(w)2950 3436 y FK(\),)i(w)n(e)f(mak)n(e)523 3535 y(the)28 b(follo)n(wing)f(de\014nition:)523 3701 y Fv(Definition)32 b FH(6.9)41 b FK(If)27 b(a)g(safe)g(bit)g FC(B)32 b FK(is)27 b(b)r(eing)g(c)n(hanged)f(then)h(in)h(form)n(ulas,)e FC(B)31 b FK(refers)26 b(to)523 3800 y(its)i FG(new)g FK(v)-5 b(alue.)606 3966 y(The)38 b(notation)f FC(D)r FK(\()p FC(i)p FK(\))h(is)f(used)h(as)e(an)i(abbreviation)e(of)h FC(d)2500 3978 y FA(i)2568 3966 y FK(=)i FC(D)2741 3978 y FA(r)n(;i)2855 3966 y FK(and)e(expresses)523 4065 y(that)32 b(a)f(lo)r(cal)f(displa)n(y)h(bit)h(of)f(the)h(reader)e(matc)n(hes)h (the)g(shared)g(one)g(\(in)h(the)f(reader's)523 4165 y(group\).)h(A)i(greater-than)d(sign)h(\()p FC(>)p FK(\))i(is)f(used)g (to)f(denote)h(implication.)h(Starting)e(from)523 4264 y(the)24 b(initial)g(state)f(\(0)p FC(;)14 b FK(0\))23 b(\(b)r(oth)h(users)e(idle\),)j(eac)n(h)d(in)n(v)-5 b(arian)n(t)22 b(can)h(b)r(e)h(man)n(ually)f(c)n(hec)n(k)n(ed)523 4364 y(b)n(y)k(considering)g(the)h(p)r(ossible)f(predecessors)e(of)j(a)f(no) r(de.)606 4464 y(Another)e(state)g(space)g(searc)n(h)f(program)f(w)n (as)h(used)h(to)g(construct)g(this)h(diagram.)e(It's)523 4563 y(state)e(also)f(includes)h(information)f(on)h(the)g(v)-5 b(alidit)n(y)22 b(of)g(the)g(trac)n(ks)e(\(relativ)n(e)h(to)h(the)h (next)523 4663 y(end-of-read\),)30 b(as)f(deriv)n(ed)h(from)h(the)g (atomicit)n(y)f(automaton.)f(With)j(the)f(help)g(of)f(this)523 4763 y(information,)18 b(the)h(program)e(actually)h(v)n(eri\014es)g (the)h(correctness)e(of)h(the)i(construction.)e(In)523 4862 y(this)24 b(c)n(hapter)e(ho)n(w)n(ev)n(er,)g(w)n(e)h(neglect)g (this)g(extra)g(state,)g(since)g(including)h(it)g(w)n(ould)f(mak)n(e) 523 4962 y(the)j(diagram)f(o)n(v)n(erly)f(complex,)h(making)h(man)n (ual)f(insp)r(ection)h(practically)f(imp)r(ossible.)606 5061 y(It)41 b(is)g(no)n(w)g(easy)f(to)h(see)f(from)h(the)g(diagram)f (that)h(lemma)g(6.7)f(holds.)h(P)n(oten)n(tial)523 5161 y(collisions)28 b(can)h(o)r(ccur)g(in)h(states)f(\(1)p FC(;)14 b FK(4\))29 b(and)g(\(3)p FC(;)14 b FK(4\).)29 b(In)h(the)g(\014rst)f(case,)f FC(w)h FK(=)d FC(r)32 b FK(and)d(the)523 5261 y(writer)18 b(writes)g(on)g(a)g(trac)n(k)g(in)h (group)e(1)p FD(\000)p FC(w)r FK(,)i(so)f(there)g(is)h(no)f(collision.) g(In)h(the)g(second)f(case,)523 5360 y(the)27 b(writer)e(writes)h(on)g (trac)n(k)f FC(T)1526 5372 y FA(w)r(;)p FB(1)p Fw(\000)p FA(x)1719 5380 y Fx(w)1769 5360 y FK(.)h(If)h FC(w)f FD(6)p FK(=)d FC(r)r FK(,)k(then)g(w)n(e)e(are)h(done.)g(Otherwise,)f (the)p eop end %%Page: 84 94 TeXDict begin 84 93 bop 2059 299 a FF(6.7.)52 b(The)26 b(A)n(tomicit)n(y)f(Automaton)154 b(84)523 506 y FK(reader)27 b(and)g(writer)h(are)e(in)j(the)f(same)f(group,)g(so)g FC(w)g FK(=)c FC(r)r FK(,)29 b(implying)f FC(d)2785 518 y FB(1)p Fw(\000)p FA(x)2908 526 y Fx(r)2969 506 y FK(=)23 b FC(D)3126 518 y FA(r)n(;)p FB(1)p Fw(\000)p FA(x)3298 526 y Fx(r)3335 506 y FK(.)523 606 y(Along)29 b(with)h FC(d)1001 618 y FB(1)p Fw(\000)p FA(x)1124 626 y Fx(r)1188 606 y FK(=)c FC(D)1348 618 y FA(r)n(;)p FB(1)p Fw(\000)p FA(x)1520 626 y Fx(r)1557 606 y FK(,)k(this)g(leads)f(to)g FC(x)2134 618 y FA(r)2198 606 y FK(=)d FC(D)2358 618 y FA(r)n(;)p FB(0)2464 606 y FD(\010)19 b FC(D)2617 618 y FA(r)n(;)p FB(1)2729 606 y FK(=)26 b FC(d)2863 618 y FB(0)2921 606 y FD(\010)19 b FC(d)3048 618 y FB(1)3086 606 y FK(,)29 b(so)g(the)523 706 y(reader)d(is)i(on)f(the)h(other)f (trac)n(k|no)f(collision.)523 1013 y FL(6.8)116 b(Correctness)37 b(of)h(Safe)g(Byte)h(Switc)m(h)e(Construction)523 1212 y FK(Giv)n(en)c(lemma)h(6.7,)e(it)i(remains)f(to)g(sho)n(w)g(that)g (for)g(ev)n(ery)f(run)i(\()p FD(A)p FC(;)14 b FD(!)p FK(\),)34 b(there)f(exists)523 1312 y(a)40 b(reading)f(function)i FC(\031)j FK(suc)n(h)c(that)h FC(\033)47 b FK(=)d(\()p FD(A)p FC(;)14 b FD(!)p FC(;)g(\031)s FK(\))42 b(satis\014es)d(the)i (three)f(atomicit)n(y)523 1411 y(conditions.)24 b(W)-7 b(e)24 b(c)n(ho)r(ose)f(the)h(reading)f(function)h FC(\031)j FK(to)d(map)g(a)f(read)g(action)h(to)g(the)g(write)523 1511 y(action)d(that)h(last)g(writes)f(to)h(the)g(trac)n(k)f(b)r(efore) g(the)h(read)f(action)h(reads)e(from)i(that)g(trac)n(k.)523 1611 y(As)31 b(b)r(efore,)g(this)g(can)g(b)r(e)h(view)n(ed)e(as)h(the)g (union)g(of)g(the)h(four)e(reading)g(functions)h(that)523 1710 y(mak)n(e)c(eac)n(h)g(trac)n(k)f(atomic,)h(according)f(to)i(lemma) f(6.7.)606 1810 y(W)-7 b(e)28 b(no)n(w)f(pro)n(v)n(e)f(eac)n(h)h(of)g (the)h(three)g(conditions)f(in)h(turn.)606 1910 y FH(Pro)s(of)k(of)g (A0)c FK(The)f(reading)g(function)h(is)g(ob)n(viously)e(normal)h(b)n(y) g(the)i(safet)n(y)e(of)g(the)523 2009 y(trac)n(k-bits.)606 2109 y FH(Pro)s(of)41 b(of)h(A1)35 b FK(The)h(pro)r(of)g(is)g(b)n(y)f (con)n(tradiction.)g(Let)h FC(r)2504 2121 y FB(1)2542 2109 y FC(;)14 b(r)2616 2121 y FB(2)2690 2109 y FD(2)37 b(R)g FK(b)r(e)f(suc)n(h)f(that)523 2208 y FC(r)560 2220 y FB(1)636 2208 y FD(!)k FC(r)795 2220 y FB(2)870 2208 y FK(are)d(t)n(w)n(o)g(consecutiv)n(e)g(read)h(actions)f(and)h FC(\031)s FK(\()p FC(r)2408 2220 y FB(2)2446 2208 y FK(\))i FD(!)g FC(\031)s FK(\()p FC(r)2758 2220 y FB(1)2796 2208 y FK(\).)e(Assume)g(that)523 2308 y FC(\031)s FK(\()p FC(r)642 2320 y FB(1)680 2308 y FK(\))j(writes)g(on)f(trac)n(k)f FC(T)1410 2320 y FB(0)p FA(;)p FB(0)1500 2308 y FK(,)i(that)g FC(W)1833 2320 y FB(0)1914 2308 y FK(=)i FC(W)2099 2320 y FB(1)2180 2308 y FK(=)h FC(R)2351 2320 y FB(0)2431 2308 y FK(=)g(0)c(\(using)h(the)g(in)n(v)-5 b(arian)n(t)523 2408 y FC(W)601 2420 y FA(w)678 2408 y FK(=)23 b FC(R)829 2420 y FA(w)883 2408 y FK(\))28 b(and)f(that)h FC(D)1353 2420 y FB(1)p FA(;)p FB(0)1466 2408 y FK(=)22 b FC(D)1622 2420 y FB(1)p FA(;)p FB(1)1735 2408 y FK(=)h(0)k(at)h(time)g FC(f)9 b FK(\()p FC(\031)s FK(\()p FC(r)2384 2420 y FB(1)2422 2408 y FK(\)\).)2509 2378 y FB(4)606 2507 y FK(Consider)27 b(no)n(w)g(the)h(4)f(p)r(ossible)g(trac)n(ks)f(that)i FC(r)2112 2519 y FB(2)2177 2507 y FK(can)g(read)e(from:)523 2673 y FC(T)572 2685 y FB(0)p FA(;)p FB(0)703 2673 y FK(This)i(con)n(tradicts)f(the)h(assumption)g(that)g FC(\031)s FK(\()p FC(r)2203 2685 y FB(2)2241 2673 y FK(\))g(precedes)g FC(\031)s FK(\()p FC(r)2754 2685 y FB(1)2792 2673 y FK(\),)g(whic)n(h)g (cannot)731 2773 y(b)r(e)g(the)g(case)e(if)i FC(r)1275 2785 y FB(1)1341 2773 y FK(and)f FC(r)1539 2785 y FB(2)1605 2773 y FK(read)f(from)i(the)g(same)f(trac)n(k.)523 2939 y FC(T)572 2951 y FB(0)p FA(;)p FB(1)703 2939 y FK(Note)36 b(that)f FC(r)1136 2951 y FB(2)1210 2939 y FK(didn't)h(c)n(hange)e (groups)g(th)n(us)i(taking)e(the)i(else)f(branc)n(h.)g(Exami-)731 3039 y(nation)h(of)i(\014gure)e(6.4)g(rev)n(eals)g(that)h FC(d)2001 3051 y FB(0)2078 3039 y FK(=)h FC(D)2250 3051 y FB(0)p FA(;)p FB(0)2377 3039 y FK(at)g(time)f FC(f)9 b FK(\()p FC(r)2806 3051 y FB(1)2844 3039 y FK(\))37 b(\(Recall)g(that)731 3138 y FC(x)778 3150 y FA(i)837 3138 y FK(=)32 b FC(D)1003 3150 y FA(i;)p FB(0)1105 3138 y FD(\010)21 b FC(D)1260 3150 y FA(i;)p FB(1)1341 3138 y FK(\).)33 b(In)g(order)e(for)i FC(r)1930 3150 y FB(2)2000 3138 y FK(to)g(read)f(trac)n(k)g FC(T)2564 3150 y FB(0)p FA(;)p FB(1)2653 3138 y FK(,)h(it)g(m)n(ust)g(ha)n(v)n(e)f(seen)731 3238 y(a)h(c)n(hange)f(in)i FC(D)1258 3250 y FB(0)p FA(;)p FB(0)1348 3238 y FK(,)g(whic)n(h)g(it)g(reads)e(in)i(line)g(7.)g(But)g FC(\031)s FK(\()p FC(r)2616 3250 y FB(1)2654 3238 y FK(\))g(ends)g(b)n (y)f(c)n(hanging)731 3337 y(either)27 b FC(W)1044 3349 y FB(1)1110 3337 y FK(\(line)h(4\))f(or)g FC(D)1571 3349 y FB(0)p FA(;)p FB(1)1689 3337 y FK(\(line)h(8\).)f(Hence)h(a)g(write)f (action)g(later)g(than)h FC(\031)s FK(\()p FC(r)3287 3349 y FB(1)3325 3337 y FK(\))731 3437 y(started)h(c)n(hanging)f FC(D)1434 3449 y FB(0)p FA(;)p FB(0)1553 3437 y FK(b)r(efore)i FC(r)1842 3449 y FB(2)1909 3437 y FK(accessed)e(its)i(trac)n(k,)f(and)g (this)h(write)f(action)731 3537 y(m)n(ust)e(ha)n(v)n(e)g(written)h(to)f (that)h(trac)n(k,)e(con)n(tradicting)h FC(\031)s FK(\()p FC(r)2560 3549 y FB(2)2598 3537 y FK(\))c FD(!)g FC(\031)s FK(\()p FC(r)2878 3549 y FB(1)2917 3537 y FK(\).)523 3703 y FC(T)572 3715 y FB(1)p FA(;)p FB(0)703 3703 y FK(In)28 b(this)g(case)e FC(r)1181 3715 y FB(2)1247 3703 y FK(did)i(c)n(hange)e(groups,)g(taking)h(the)h(then)g(branc)n(h.)f(So) g(in)h(line)g(1,)f(it)731 3802 y(sa)n(w)f FC(W)968 3814 y FB(0)1033 3802 y FK(set)i(\()p FC(W)1273 3814 y FB(0)1334 3802 y FD(6)p FK(=)22 b FC(R)1484 3814 y FB(0)1545 3802 y FK(=)g(0\).)27 b(Giv)n(en)h(that)f FC(\031)s FK(\()p FC(r)2295 3814 y FB(1)2334 3802 y FK(\))g(do)r(esn't)h(c)n(hange)e FC(W)3034 3814 y FB(0)3072 3802 y FK(,)h(a)g(later)731 3902 y(write)c(action)f(m)n(ust)i(ha)n(v)n(e)e(started)h(c)n(hanging)e (it,)j(follo)n(wing)e(the)i(writing)f(on)g(trac)n(k)731 4002 y FC(T)780 4014 y FB(1)p FA(;)p FB(0)869 4002 y FK(.)28 b(This)f(again)g(con)n(tradicts)f FC(\031)s FK(\()p FC(r)1877 4014 y FB(2)1915 4002 y FK(\))e FD(!)f FC(\031)s FK(\()p FC(r)2196 4014 y FB(1)2234 4002 y FK(\).)523 4168 y FC(T)572 4180 y FB(1)p FA(;)p FB(1)703 4168 y FK(Again)34 b FC(r)989 4180 y FB(2)1061 4168 y FK(c)n(hanged)f(groups)g (and)h(to)r(ok)g(the)h(then)g(branc)n(h.)e(Also,)h(it)h(sa)n(w)e (either)731 4267 y FC(D)800 4279 y FB(1)p FA(;)p FB(0)918 4267 y FK(or)28 b FC(D)1090 4279 y FB(1)p FA(;)p FB(1)1208 4267 y FK(set,)h(whic)n(h)g(requires)e(that)i(a)f(write)h(action)f (later)g(than)h FC(\031)s FK(\()p FC(r)3138 4279 y FB(1)3176 4267 y FK(\))g(has)731 4367 y(already)d(scribbled)h(on)g(trac)n(k)g FC(T)1752 4379 y FB(1)p FA(;)p FB(1)1841 4367 y FK(,)h(con)n (tradicting)e FC(\031)s FK(\()p FC(r)2516 4379 y FB(2)2555 4367 y FK(\))d FD(!)g FC(\031)s FK(\()p FC(r)2835 4379 y FB(1)2873 4367 y FK(\).)606 4533 y FH(Pro)s(of)35 b(of)h(A2)31 b FK(The)f(pro)r(of)h(is)f(once)h(again)e(b)n(y)i(con)n(tradiction.)e (Let)i FC(r)g FD(2)e(R)p FC(;)14 b(w)31 b FD(2)e(W)523 4633 y FK(b)r(e)i(suc)n(h)g(that)g FC(\031)s FK(\()p FC(r)r FK(\))f FD(!)f FC(w)i FD(!)e FC(r)r FK(.)j(Assume)e(that)i FC(w)h FK(writes)e(on)f(trac)n(k)g FC(T)2822 4645 y FB(0)p FA(;)p FB(0)2912 4633 y FK(,)h(that)g FC(W)3227 4645 y FB(0)3293 4633 y FK(=)523 4732 y FC(W)601 4744 y FB(1)662 4732 y FK(=)22 b FC(R)812 4744 y FB(0)873 4732 y FK(=)g(0)28 b(and)f(that)h FC(D)1440 4744 y FB(1)p FA(;)p FB(0)1553 4732 y FK(=)22 b FC(D)1709 4744 y FB(1)p FA(;)p FB(1)1822 4732 y FK(=)h(0)k(at)g(time)i FC(f)9 b FK(\()p FC(w)r FK(\).)606 4832 y(Consider)27 b(no)n(w)g(the)h(4)f(p)r(ossible)g(trac)n (ks)f(that)i FC(r)j FK(can)c(read)f(from:)523 4998 y FC(T)572 5010 y FB(0)p FA(;)p FB(0)703 4998 y FK(This)39 b(con)n(tradicts)e(our)h(c)n(hoice)f(of)i(the)g(reading)e(function)i FC(\031)s FK(,)g(since)f FC(\031)s FK(\()p FC(r)r FK(\))j(m)n(ust)731 5098 y(either)27 b(equal)g FC(w)j FK(or)d(succeed)g(it.)p 523 5217 499 5 v 627 5299 a Fm(4)661 5331 y FF(Other)e(cases)i(are)f (analogous.)p eop end %%Page: 85 95 TeXDict begin 85 94 bop 1420 299 a FF(6.8.)53 b(Correctness)27 b(of)f(Safe)g(Byte)g(Switc)n(h)g(Construction)154 b(85)523 506 y FC(T)572 518 y FB(0)p FA(;)p FB(1)703 506 y FK(Since)29 b FC(\031)s FK(\()p FC(r)r FK(\))e FD(!)e FC(w)r FK(,)k(trac)n(k)f FC(T)1585 518 y FB(0)p FA(;)p FB(1)1703 506 y FK(is)h(not)g(written)g (to)g(b)r(et)n(w)n(een)f FC(w)k FK(and)d(its)f(access)g(b)n(y)731 606 y FC(r)r FK(.)36 b(Study)g(of)g(the)g(writer)e(proto)r(col)h(then)h (sho)n(ws)e(that)i FC(D)2619 618 y FB(0)p FA(;)p FB(0)2745 606 y FK(and)f FC(D)2983 618 y FB(0)p FA(;)p FB(1)3108 606 y FK(remain)731 706 y(constan)n(t)25 b(during)g(that)h(time.)g (Because)f FC(w)j FK(and)e FC(r)i FK(access)d(di\013eren)n(t)h(trac)n (ks,)e FC(r)k FK(did)731 805 y(not)c(read)g(b)r(oth)h FC(D)1319 817 y FB(0)p FA(;)p FB(0)1434 805 y FK(and)f FC(D)1661 817 y FB(0)p FA(;)p FB(1)1751 805 y FK(|it)h(to)r(ok)f(the)h (else)f(branc)n(h.)g(F)-7 b(rom)24 b(\014gure)g(6.4)g(w)n(e)731 905 y(obtain)f(that,)i(with)f FC(r)j FK(in)e(state)f(3,)f FC(d)1859 917 y FA(x)1897 925 y Fx(r)1958 905 y FK(=)g FC(D)2115 917 y FA(r)n(;x)2202 925 y Fx(r)2238 905 y FK(.)i(But)f(then)h(either)f FC(d)2908 917 y FB(1)p Fw(\000)p FA(x)3031 925 y Fx(r)3092 905 y FK(already)731 1005 y(equals)30 b FC(D)1055 1017 y FA(r)n(;)p FB(1)p Fw(\000)p FA(x)1227 1025 y Fx(r)1263 1005 y FK(,)h(or)f(it)h(will)g(do)f(so)h(after)f(the)h (read)f(in)h(line)g(7,)f(in)h(con)n(tradiction)731 1104 y(with)d FC(\031)s FK(\()p FC(r)r FK(\))c FD(6)p FK(=)f FC(w)r FK(.)523 1270 y FC(T)572 1282 y FB(1)p FA(;)p FB(0)703 1270 y FK(Since)g FC(\031)s FK(\()p FC(r)r FK(\))i FD(!)e FC(w)r FK(,)g(trac)n(k)e FC(T)1562 1282 y FB(1)p FA(;)p FB(0)1674 1270 y FK(is)i(not)f(written)h(to)g(b)r(et)n(w)n(een)f FC(w)j FK(and)e(its)f(access)g(b)n(y)g FC(r)r FK(.)731 1370 y(Study)i(of)h(the)f(writer)g(proto)r(col)f(no)n(w)g(sho)n(ws)g (that)i FC(W)2423 1382 y FB(0)2485 1370 y FK(and)f FC(W)2721 1382 y FB(1)2783 1370 y FK(remain)f(0)h(during)731 1469 y(that)j(time.)h(But)g(then)g(in)f(line)h(1,)f FC(r)j FK(reads)c(either)i FC(W)2419 1481 y FB(1)2484 1469 y FK(\(and)f(mo)n(v)n(es)f(to)i(group)e(0\),)731 1569 y(or)g FC(W)910 1581 y FB(0)948 1569 y FK(,)i(in)g(whic)n(h)f(case)g(it)h (remains)f(in)g(group)g(0,)g(a)g(con)n(tradiction.)523 1735 y FC(T)572 1747 y FB(1)p FA(;)p FB(1)703 1735 y FK(Since)i FC(\031)s FK(\()p FC(r)r FK(\))e FD(!)e FC(w)r FK(,)k(trac)n(k)f FC(T)1585 1747 y FB(1)p FA(;)p FB(1)1703 1735 y FK(is)h(not)g(written)g(to)g(b)r(et)n(w)n(een)f FC(w)k FK(and)d(its)f(access)g(b)n(y)731 1835 y FC(r)r FK(.)j(Study)h(of)f(the)g(writer)f(proto)r(col)g(no)n(w)g(sho)n(ws)g (that)h FC(D)2561 1847 y FB(1)p FA(;)p FB(0)2682 1835 y FK(and)f FC(D)2915 1847 y FB(1)p FA(;)p FB(1)3036 1835 y FK(remain)g(0)731 1934 y(during)24 b(that)g(time.)h(W)-7 b(e)25 b(conclude)f(that)h FC(r)i FK(tak)n(es)d(the)g(else)g(branc)n (h.)g(Again)g(with)h FC(r)731 2034 y FK(in)f(state)g(3,)g(w)n(e)g(ha)n (v)n(e)f FC(d)1463 2046 y FB(0)1524 2034 y FK(=)f FC(d)1654 2046 y FA(x)1692 2054 y Fx(r)1753 2034 y FK(=)g FC(D)1909 2046 y FA(r)n(;x)1996 2054 y Fx(r)2056 2034 y FK(=)h(0.)h(But)g(then)h (either)f(already)f FC(d)3145 2046 y FB(1)3205 2034 y FK(=)g(0,)731 2134 y(or)j(this)i(will)g(hold)g(after)f(the)h(read)e(in) i(line)g(7,)f(in)h(con)n(tradiction)f(with)h FC(\031)s FK(\()p FC(r)r FK(\))c FD(6)p FK(=)f FC(w)r FK(.)523 2300 y Fu(2)523 2607 y FL(6.9)116 b(Conclusions)523 2806 y FK(W)-7 b(e)28 b(ha)n(v)n(e)e(presen)n(ted)h(and)h(pro)n(v)n(en)e (correct)g(the)i(follo)n(wing)f(t)n(w)n(o)f(constructions:)648 2972 y FD(\017)41 b FK(an)27 b(atomic)g(bit)h(from)f(3)h(safe)f(bits) 648 3138 y FD(\017)41 b FK(an)27 b(atomic)g FC(b)p FK(-bit)g(v)-5 b(ariable)27 b(from)g(4)p FC(b)18 b FK(+)g(8)27 b(safe)g(bits)523 3304 y(The)21 b(\014rst)f(ac)n(hiev)n(es)f(the)j(optimal)e(n)n(um)n(b)r (er)g(of)h(non-atomic)f(bits)h(needed)g(\(optimal)g(space)523 3404 y(complexit)n(y\).)41 b(The)g(second)f(needs)h(only)f(2)g(extra)g (bit)i(accesses)d(in)i(a)g(write)f(action,)523 3504 y(and)34 b(at)g(most)g(4)f(extra)h(bit)g(accesses)f(in)h(a)g(read)f(action)g(on) h(the)h(atomic)e(v)-5 b(ariable)33 b(\(in)523 3603 y(addition)d(to)g (the)g FC(b)g FK(accesses)e(to)i(the)h(bits)f(on)g(a)f(trac)n(k\),)g (making)h(its)g(time)g(complexit)n(y)523 3703 y(v)n(ery)h(near)h(\(if)h (not)f(equal\))g(to)g(optimal.)h(The)f(cost)g(for)g(this)g(\\sp)r(eed") g(is)g(in)h(the)g(space)523 3802 y(complexit)n(y)-7 b(,)32 b(whic)n(h)g(is)g(ab)r(out)h(a)f(factor)f(4)p FC(=)p FK(3)g(from)h(optimal,)g(since)g(P)n(eterson)f(sho)n(w)n(ed)523 3902 y(the)36 b(su\016ciency)g(of)g(3)g(trac)n(ks.)f(A)h(main)g(adv)-5 b(an)n(tage)35 b(of)h(the)g(4-trac)n(k)e(construction)h(as)523 4002 y(giv)n(en)d(here,)f(is)i(its)f(simplicit)n(y)h(and)f (transparency|the)e(purp)r(ose)i(of)g(the)h(bits)g(in)f(the)523 4101 y(arc)n(hitecture)g(and)h(the)h(w)n(orkings)d(of)i(the)h(proto)r (cols)e(can)g(b)r(e)i(easily)e(understo)r(o)r(d.)h(W)-7 b(e)523 4201 y(ha)n(v)n(e)26 b(dev)n(elop)r(ed)h(a)g(\014nite)g(state)g (v)n(eri\014cation)f(metho)r(dology)g(for)h(concurren)n(t)f(w)n (ait-free)523 4301 y(shared)j(v)-5 b(ariable)29 b(constructions,)g (whose)g(succesful)h(application)g(pro)n(vides)e(additional)523 4400 y(practical)f(supp)r(ort.)p eop end %%Page: 86 96 TeXDict begin 86 95 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Bibliograph)l(y)565 2516 y FK([1])41 b(K.)26 b(Abrahamson,)g FG(On)i(achieving)j(c)l (onsensus)d(using)h(shar)l(e)l(d)h(memory)p FK(,)d(Pro)r(c.)f(7th)694 2615 y(A)n(CM)e(Symp)r(osium)h(on)g(Principles)e(of)i(Distributed)g (Computing,)g(1988,)e(pp.)i(291{)694 2715 y(302.)565 2881 y([2])41 b(B.)25 b(Blo)r(om,)h FG(Constructing)h(Two-writer)j(A)n (tomic)e(R)l(e)l(gisters)p FK(,)d(IEEE)g(T)-7 b(ransactions)694 2980 y(on)27 b(Computers,)g(v)n(ol.)g(37,)g(pp.)h(1506{1514,)23 b(1988.)565 3147 y([3])41 b(B.)28 b(Chor,)g(A.)i(Israeli,)d(M.)i(Li,)g FG(On)h(pr)l(o)l(c)l(essor)i(c)l(o)l(or)l(dination)g(using)f(asynchr)l (onous)694 3246 y(har)l(dwar)l(e)p FK(,)g(Pro)r(c.)d(6th)h(A)n(CM)g (Symp)r(osium)g(on)g(Principles)f(of)h(Distributed)h(Com-)694 3346 y(puting,)e(pp.)g(86{97,)d(1987.)565 3512 y([4])41 b(E.M.)32 b(Clark)n(e,)e(E.A.Emerson,)h(A.P)-7 b(.)32 b(Sistla,)h FG(A)n(utomatic)g(V)-6 b(eri\014c)l(ation)34 b(of)h(Finite)694 3611 y(State)29 b(Concurr)l(ent)g(Systems)g(Using)g (T)-6 b(emp)l(or)l(al)31 b(L)l(o)l(gic)f(Sp)l(e)l(ci\014c)l(ations:)h (A)e(Pr)l(acti-)694 3711 y(c)l(al)f(Appr)l(o)l(ach)p FK(,)e(Pro)r(c.)e(10th)h(A)n(CM)g(Symp)r(osium)g(on)g(Principles)f(of)h (Programming)694 3811 y(Languages,)g(pp.)j(117{126,)d(1983.)565 3977 y([5])41 b(L.)29 b(Lamp)r(ort,)f FG(On)j(Interpr)l(o)l(c)l(ess)g (Communic)l(ation)h(Parts)f(I)g(and)h(II)p FK(,)d(Distributed)694 4076 y(Computing,)e(v)n(ol.1,)g(1986,)e(pp.)j(77{101)565 4242 y([6])41 b(M.)36 b(Loui,)h(H.H.)g(Abu-Amara,)e FG(Memory)40 b(r)l(e)l(quir)l(ements)d(for)h(agr)l(e)l(ement)g(among)694 4342 y(unr)l(eliable)24 b(asynchr)l(onous)g(pr)l(o)l(c)l(esses)p FK(,)d(pp.)g(163{183)d(in:)i(Adv)-5 b(ances)21 b(in)g(Computing)694 4442 y(Researc)n(h,)26 b(JAI)h(Press,)g(1987.)565 4608 y([7])41 b(L.M.)25 b(Kirousis,)f(E.)h(Kranakis,)e(P)-7 b(.M.B.)25 b(Vit\023)-42 b(an)n(yi,)25 b FG(A)n(tomic)i(Multir)l(e)l (ader)i(R)l(e)l(gister)p FK(,)694 4707 y(Pro)r(c.)37 b(2nd)h(In)n(ternational)f(W)-7 b(orkshop)37 b(on)h(Distributed)h (Computing,)f(Springer)694 4807 y(V)-7 b(erlag)26 b(Lecture)h(Notes)h (in)g(Computer)f(Science)h(312,)e(pp.)i(278{296,)c(1987.)565 4973 y([8])41 b(M.)d(Li,)h(J.)f(T)-7 b(romp,)39 b(P)-7 b(.M.B.)38 b(Vit\023)-42 b(an)n(yi,)38 b FG(How)i(to)g(Shar)l(e)h (Concurr)l(ent)e(Wait-F)-6 b(r)l(e)l(e)694 5073 y(V)g(ariables)p FK(,)29 b(Chapter)e(7)g(\(also)g(under)g(revision)g(for)g FG(Journal)i(of)i(the)f(A)n(CM)p FK(\).)565 5239 y([9])41 b(B.)c(Aw)n(erbuc)n(h,)g(L.M.)h(Kirousis,)e(E.)h(Kranakis,)f(P)-7 b(.M.B.)37 b(Vit\023)-42 b(an)n(yi,)37 b FG(On)i(Pr)l(oving)694 5338 y(R)l(e)l(gister)21 b(A)n(tomicity)p FK(,)f(Pro)r(c.)f(8th)g (Conference)f(on)h(F)-7 b(oundations)19 b(of)g(Soft)n(w)n(are)f(T)-7 b(ec)n(h-)p eop end %%Page: 87 97 TeXDict begin 87 96 bop 2559 299 a FF(6.9.)53 b(Conclusions)155 b(87)694 506 y FK(nology)25 b(and)i(Theoretical)f(Computer)h(Science,)g (Springer)f(V)-7 b(erlag)25 b(Lecture)i(Notes)694 606 y(in)h(Computer)f(Science)g(338,)g(pp.)h(286{303,)c(1988.)523 772 y([10])41 b(G.L.)36 b(P)n(eterson)e(and)i(J.E.)f(Burns,)g FG(Concurr)l(ent)i(r)l(e)l(ading)h(while)h(writing)f(II:)f(the)694 872 y(multiwriter)f(c)l(ase)p FK(,)g(Pro)r(c.)e(28th)h(IEEE)e(Symp)r (osium)j(on)f(F)-7 b(oundations)34 b(of)h(Com-)694 971 y(puter)27 b(Science,)h(pp.)g(383{392,)c(1987.)523 1137 y([11])41 b(G.L.)21 b(P)n(eterson)d(and)j(J.E.)f(Burns,)g FG(The)k(A)n(mbiguity)g(of)g(Cho)l(osing)p FK(,)f(Pro)r(c.)c(8th)i(A)n (CM)694 1237 y(Symp)r(osium)28 b(on)f(Principles)g(of)g(Distributed)h (Computing,)g(pp.)g(145{157,)c(1989.)523 1403 y([12])41 b(G.L.)36 b(P)n(eterson,)e FG(Concurr)l(ent)j(r)l(e)l(ading)h(while)h (writing)p FK(,)e(A)n(CM)f(T)-7 b(ransactions)34 b(on)694 1503 y(Programming)25 b(Languages)g(and)i(Systems,)h(v)n(ol.5,)e(No.1,) h(1983,)f(pp.)i(46{55)523 1669 y([13])41 b(J.E.)31 b(Burns,)g(G.L.)h(P) n(eterson,)e FG(Sharp)k(Bounds)g(for)h(Concurr)l(ent)e(R)l(e)l(ading)g (While)694 1768 y(Writing)p FK(,)47 b(T)-7 b(ec)n(hnical)46 b(Rep)r(ort,)g(Georgia)f(Institute)j(of)e(T)-7 b(ec)n(hnology)45 b(GIT-ICS-)694 1868 y(87/31)523 2034 y([14])c(R.)26 b(Sc)n(ha\013er,)g FG(On)i(the)h(c)l(orr)l(e)l(ctness)f(of)i(atomic)f(multi-writer)g(r)l (e)l(gisters)p FK(,)d(T)-7 b(ec)n(hnical)694 2134 y(Rep)r(ort)27 b(MIT/LCS/TM-364,)e(MIT)j(lab.)f(for)g(Computer)h(Science,)f(June)h (1988.)523 2300 y([15])41 b(P)-7 b(.M.B.)36 b(Vit\023)-42 b(an)n(yi,)37 b(B.)g(Aw)n(erbuc)n(h,)f FG(A)n(tomic)j(Shar)l(e)l(d)g(R) l(e)l(gister)f(A)l(c)l(c)l(ess)g(by)g(Asyn-)694 2399 y(chr)l(onous)25 b(Har)l(dwar)l(e)p FK(,)e(Pro)r(c.)f(27th)g(IEEE)e (Symp)r(osium)j(on)f(F)-7 b(oundations)22 b(of)g(Com-)694 2499 y(puter)27 b(Science,)h(pp.)g(233{243,)c(1986.)i(\(Errata,)g (Ibid.,1987\))p eop end %%Page: 88 98 TeXDict begin 88 97 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(7)523 806 y FI(Ho)l(w)52 b(to)g(Share)g(Concurren)l(t)f(W)-13 b(ait-F)g(ree)523 972 y(V)g(ariables)523 2549 y FL(7.1)116 b(In)m(tro)s(duction)523 2748 y FK(In)35 b([10)o(])f(Lamp)r(ort)g(has)g(sho)n(wn)f(ho)n(w)h(an)g (atomic)g(v)-5 b(ariable|one)33 b(whose)h(accesses)e(ap-)523 2848 y(p)r(ear)24 b(to)h(b)r(e)g(indivisible|shared)f(b)r(et)n(w)n(een) h(one)g(writer)f(and)h(one)f(reader,)f(acting)i(asyn-)523 2947 y(c)n(hronously)f(and)i(without)g(w)n(aiting,)f(can)g(b)r(e)i (constructed)e(from)g(lo)n(w)n(er)g(lev)n(el)g(hardw)n(are)523 3047 y(rather)30 b(than)i(just)g(assuming)e(its)h(existence.)g(There)g (arises)f(the)i(question)f(of)g(the)g(con-)523 3147 y(struction)37 b(of)h(m)n(ulti-user)f(atomic)g(v)-5 b(ariables)36 b(of)i(this)g(t)n (yp)r(e)f(\(see)h([20)o(],)g(on)f(whic)n(h)g(the)523 3246 y(curren)n(t)27 b(c)n(hapter)g(is)g(based\).)h(In)g(this)g(c)n (hapter)f(w)n(e)g(will)h(supply)g(a)f(uniform)h(solution)f(to)523 3346 y(suc)n(h)h(problems,)g(giv)n(en)f(Lamp)r(ort's)g(construction,)h (and)g(deriv)n(e)f(the)i(implemen)n(tations)523 3445 y(b)n(y)e(transformations)f(from)h(the)h(sp)r(eci\014cation.)523 3694 y Fl(7.1.1)99 b(Informal)33 b(Pr)-5 b(oblem)34 b(Statement)h(and)g (Main)f(R)-5 b(esult)523 3844 y FK(Usually)e(,)24 b(with)g(async)n (hronous)e(readers)g(and)h(writers,)h(atomicit)n(y)f(of)h(op)r (erations)e(is)i(sim-)523 3944 y(ply)30 b(assumed)g(or)f(enforced)g(b)n (y)h(sync)n(hronization)e(primitiv)n(es)i(lik)n(e)f(semaphores.)g(Ho)n (w-)523 4043 y(ev)n(er,)41 b(activ)n(e)f(serialization)g(of)i(async)n (hronous)d(concurren)n(t)h(actions)h(alw)n(a)n(ys)f(implies)523 4143 y(w)n(aiting)28 b(b)n(y)h(one)g(action)g(for)f(another.)g(In)i (con)n(trast,)e(our)g(aim)h(is)g(to)g(realize)f(the)h(maxi-)523 4242 y(m)n(um)23 b(amoun)n(t)g(of)g(parallelism)e(inheren)n(t)i(in)h (concurren)n(t)d(systems)i(b)n(y)f(a)n(v)n(oiding)f(w)n(aiting)523 4342 y(altogether)35 b(in)h(our)f(algorithms.)g(In)h(suc)n(h)g(a)f (setting,)h(serializabilit)n(y)f(is)h FG(not)g FK(activ)n(ely)523 4442 y(enforced,)25 b(rather)g(it)h(follo)n(ws)f(from)g(the)h(w)n(a)n (y)e(the)j(executions)e(of)g(the)h(algorithm)f(b)n(y)g(the)523 4541 y(v)-5 b(arious)25 b(pro)r(cesses)f(in)n(teract.)i(An)n(y)g(one)f (of)h(the)h(references,)e(sa)n(y)g([10)o(])h(or)f([20)o(],)h(describ)r (es)523 4641 y(the)i(problem)f(area)f(in)i(some)f(detail.)606 4741 y(The)c(p)r(oin)n(t)g(of)f(departure)g(is)h(the)g(solution)f(of)h (the)g(follo)n(wing)f(problem.)g(\(W)-7 b(e)23 b(k)n(eep)f(the)523 4840 y(discussion)e(informal.\))h(Consider)f(t)n(w)n(o)g(pro)r(cessors) e(that)j(are)f(async)n(hronous)f(and)h(do)h(not)523 4940 y(w)n(ait)28 b(for)f(one)h(another.)f(A)i(\015ip-\015op)f(is)g(a)g(b)r (o)r(olean)f(v)-5 b(ariable)27 b(that)i(can)e(b)r(e)i(read)e(b)n(y)h (one)523 5039 y(pro)r(cessor)g(and)j(written)g(b)n(y)f(the)h(other.)f (Supp)r(ose,)h(one)f(is)g(giv)n(en)g(atomic)g(\015ip-\015ops)g(as)523 5139 y(building)25 b(blo)r(c)n(ks,)f(and)g(is)g(ask)n(ed)g(to)g (implemen)n(t)h(a)f FC(k)s FK(-bit)h(atomic)f(v)-5 b(ariable,)23 b(that)i(can)f(b)r(e)523 5239 y(written)29 b(b)n(y)f(one)g(pro)r (cessor)e(and)i(read)g(b)n(y)g(the)h(other.)e(Of)i(course,)e(a)h (bu\013er)h(consisting)523 5338 y(of)37 b FC(k)j FK(\015ip-\015ops)c (su\016ces)h(to)f(hold)h(suc)n(h)g(a)f(v)-5 b(alue.)37 b(If,)h(ho)n(w)n(ev)n(er,)c(the)k(implemen)n(tation)p eop end %%Page: 89 99 TeXDict begin 89 98 bop 2536 299 a FF(7.1.)53 b(In)n(tro)r(duction)153 b(89)523 506 y FK(allo)n(ws)33 b(the)i(reader)e(to)h(read)f(and)i (return)f(the)g(v)-5 b(alue)35 b(held)f(b)n(y)g(the)h(same)f(bu\013er)g (that)523 606 y(the)27 b(writer)g(ma)n(y)f(sim)n(ultaneously)g(access)g (for)g(writing,)h(then)g(either)g(the)g(writer)f(or)g(the)523 706 y(reader)c(migh)n(t)i(do)f(all)g(of)h(its)f(accesses)f(while)i(the) g(other)f(is)g(sleeping)h(halfw)n(a)n(y)-7 b(.)22 b(Th)n(us,)h(the)523 805 y(reader)18 b(w)n(ould)g(obtain)h(a)g(v)-5 b(alue)19 b(consisting)f(of)h(half)g(the)h(new)f(v)-5 b(alue)19 b(and)g(half)g(the)g(old)g(one.)523 905 y(Ob)n(viously)-7 b(,)19 b(this)h(violates)f(atomicit)n(y)-7 b(.)20 b(The)g(problem)g (then)g(is)g(to)g(design)g(a)g(proto)r(col)e(that)523 1005 y(pro)n(vides)28 b(exclusiv)n(e)h(access)g(to)g(bu\013ers)h (without)g(w)n(aiting.)f(Correct)g(implemen)n(tations)523 1104 y(of)f(atomic)f(m)n(ulti-bit)h(v)-5 b(ariables)26 b(from)i(single)f(bits)g(can)h(b)r(e)g(found)g(in)f([15,)g(10)o(,)h(26) o(].)606 1204 y(These)d(atomic)f(v)-5 b(ariables)23 b(serv)n(e)h(as)g (the)h(building)g(blo)r(c)n(ks)f(of)h(our)f(construction)g(of)h(an)523 1303 y FC(n)p FK(-user)d(v)-5 b(ariable;)23 b(a)f(v)-5 b(ariable)23 b(shared)f(b)r(et)n(w)n(een)h FC(n)g FK(users)g(eac)n(h)f (of)i(whic)n(h)f(can)g(atomically)523 1403 y(execute)28 b(b)r(oth)g(read)e(and)i(write)f(op)r(erations.)606 1503 y(A)n(t)h(the)g(outset)f(w)n(e)h(state)f(our)g(main)h(result:)523 1669 y Fv(Theorem)k FH(7.1)41 b FG(A)n(n)24 b(atomic)i FC(n)p FG(-user)e(variable)j(is)e(implemente)l(d)h(wait-fr)l(e)l(e)g (fr)l(om)f FC(O)r FK(\()p FC(n)3287 1639 y FB(2)3325 1669 y FK(\))523 1768 y FG(atomic)31 b FK(1)p FG(-r)l(e)l(ader)f FK(1)p FG(-writer)g(variables)i(e)l(ach)f(with)g FC(O)r FK(\()p FC(n)p FK(\))g FG(c)l(ontr)l(ol)f(bits;)h(using)f FC(O)r FK(\()p FC(n)p FK(\))h FG(ac-)523 1868 y(c)l(esses)f(p)l(er)g(R) l(e)l(ad/Write)g(running)f(in)h FC(O)r FK(\(1\))h FG(p)l(ar)l(al)t(lel) g(time.)606 2034 y FK(Our)f(notion)g(of)h(parallel)f(time)h(allo)n(ws)e (a)i(set)f(of)h(accesses)e(to)i(di\013eren)n(t)f(v)-5 b(ariables)30 b(to)523 2134 y(pro)r(ceed)d(in)h(arbitrary)d(order)i(in) g(one)h(time-unit.)523 2383 y Fl(7.1.2)99 b(Comp)-5 b(arison)33 b(with)i(R)-5 b(elate)g(d)34 b(Work.)523 2532 y FK(Related)21 b(constructions)f(are)g(giv)n(en)g(b)n(y)g([17,)h(9)o(,)g(3,)g(13)o(,)g (7)o(])h(for)e(the)h(single-reader)e(to)i(m)n(ulti-)523 2632 y(reader)h(case,)h(and)g(b)n(y)g([20)o(,)h(14)o(,)f(16)o(,)h(8])f (for)g(the)h(m)n(ulti-reader)e(to)h(m)n(ulti-writer)g(case.)g(\(see)523 2731 y(also)h(Section)h(7.6.\))g(The)g(latter)g(problem)f(is)h(the)h (more)e(di\016cult)i(one.)f(The)g(solutions)f(in)523 2831 y(references)k([20)o(,)h(14)o(])g(are)f(kno)n(wn)h(to)f(b)r(e)i (incorrect)e([16)o(].)h(There)f(has)h(b)r(een)g(no)g(previous)523 2931 y(attempt)f(to)g(implemen)n(t)g(an)f FC(n)p FK(-user)g(v)-5 b(ariable)26 b(directly)i(from)f(single)g(reader)f(v)-5 b(ariables.)606 3030 y(The)34 b(algorithm)g(uses)f FC(O)r FK(\()p FC(n)p FK(\))j(accesses)d(to)h(single-reader)e(v)-5 b(ariables)33 b(p)r(er)h(op)r(eration,)523 3130 y(and)23 b(eac)n(h)f(single-reader)e(v)-5 b(ariable)22 b(stores)f(t)n(w)n(o)h (copies)g(of)h(the)g(v)-5 b(alue)22 b(of)h(the)g(constructed)523 3230 y(v)-5 b(ariable)20 b(together)f(with)i FC(O)r FK(\()p FC(n)p FK(\))h(bits)f(of)f(con)n(trol)f(information.)h(In)h(order)e(to) h(compare)g(our)523 3329 y(algorithm)28 b(to)i(one)f(using)g FC(n)g FK(m)n(ulti-reader)f(v)-5 b(ariables,)28 b(the)i(latter)f(could) g(b)r(e)h(com)n(bined)523 3429 y(with)22 b FC(n)f FK(copies)g(of)h(a)f (single-reader)e(to)i(m)n(ulti-reader)f(algorithm.)h(This)g(do)r(esn't) h(increase)523 3528 y(the)i(n)n(um)n(b)r(er)f(of)h(v)-5 b(ariables)22 b(used,)i(since)f(one)h(single-reader)d(register)h(from)h (eac)n(h)g(pro)r(cess)523 3628 y(to)j(eac)n(h)e(other)i(pro)r(cess)e (is)i(b)r(oth)g(necessary)e(and)h(su\016cien)n(t.)h(It)g(do)r(es)f(ho)n (w)n(ev)n(er)f(increase)523 3728 y(their)34 b(size,)g(as)g(w)n(ell)g (as)f(the)i(n)n(um)n(b)r(er)f(of)g(accesses)e(p)r(er)i(op)r(eration,)g (b)n(y)g(a)f(factor)h(of)g FC(n)p FK(.)523 3827 y(This)28 b(should)f(b)r(e)h(k)n(ept)f(in)h(mind)g(with)h(the)f(comparisons)d(b)r (elo)n(w.)606 3927 y(The)32 b(m)n(ulti-writer)f(algorithm)f(in)i([16)o (],)f(whic)n(h)h(patc)n(hes)f([14)o(],)g(uses)h(\002\()p FC(n)2970 3897 y FB(2)3006 3927 y FK(\))g(accesses)523 4027 y(to)h(m)n(ulti-reader)f(v)-5 b(ariables)31 b(p)r(er)i(op)r (eration.)f(F)-7 b(ollo)n(wing)32 b([7],)h(recen)n(t)f(w)n(ork)g([4)o (,)h(21)o(,)h(22)o(,)523 4126 y(23)o(,)42 b(24)o(])f(pro)n(vides)f(a)h (general)f(metho)r(d)i(for)f(replacing)g(un)n(b)r(ounded)g(timestamps)h (b)n(y)523 4226 y(b)r(ounded)26 b(timestamps)f(in)g(concurren)n(t)f (systems)g(of)i(m)n(ulti-reader)d(v)-5 b(ariables.)24 b(The)h(b)r(est)523 4325 y(construction,)k([24)o(],)i(uses)f(m)n (ulti-reader)e(v)-5 b(ariables)29 b(of)h(size)g(\002\()p FC(n)p FK(\),)g(and)g(\002\()p FC(n)p FK(\))g(accesses)523 4425 y(p)r(er)e(op)r(eration,)e(and)i(can)f(b)r(e)h(applied)f(directly) h(to)f(giv)n(e)g(a)g(m)n(ulti-writer)g(v)-5 b(ariable.)606 4525 y(A)32 b(more)f(recen)n(t)g(construction)g(than)h(ours,)f([8],)h (comes)f(up)h(with)g(a)g(direct)f(solution)523 4624 y(that)i(is)f (optimal)g(in)g(space)g(\(logarithmic)f(con)n(trol)g(bit)i(complexit)n (y\))f(as)f(w)n(ell)h(as)g(n)n(um-)523 4724 y(b)r(er)f(of)g(v)-5 b(ariable)30 b(accesses)f(p)r(er)i(read/write)e(\(linear\).)i(They)g (do)f(not)h(ho)n(w)n(ev)n(er)e(ac)n(hiev)n(e)523 4824 y(constan)n(t)k(parallel)g(time)i(and)e(ha)n(v)n(e)g(a)h(rather)f(more) g(complicated)g(proto)r(col.)g(W)-7 b(e)35 b(b)r(e-)523 4923 y(liev)n(e)23 b(the)h(construction)f(presen)n(ted)g(here)g(is)h (relativ)n(ely)e(simple)i(and)g(transparen)n(t.)e(Both)523 5023 y(problems)27 b(ab)r(o)n(v)n(e)f(are)h(solv)n(ed)f(b)n(y)i (simpli\014cations)f(of)g(our)g(main)h(solution.)606 5122 y(The)d(basis)e(of)i(our)f(pro)r(of-tec)n(hnique)f(w)n(as)h(dev)n (elop)r(ed)g(in)h([1)o(].)g(Our)f(mo)r(del)h(and)f(termi-)523 5222 y(nology)e(is)h(based)g(on)g([6)o(],)h(whic)n(h)f(de\014nes)g(and) g(motiv)-5 b(ates)23 b(the)h(notion)f(of)g(linearizabilit)n(y)-7 b(.)523 5322 y(Blo)r(om)35 b([2])h(presen)n(ted)f(an)g(elegan)n(t)g (2-writer)g(construction.)g(In)h([5)o(],)g(Herlih)n(y)g(consid-)p eop end %%Page: 90 100 TeXDict begin 90 99 bop 2536 299 a FF(7.1.)53 b(In)n(tro)r(duction)153 b(90)523 506 y FK(ers)26 b(more)g(p)r(o)n(w)n(erful)g(shared)f(ob)5 b(jects)26 b(that)h(ha)n(v)n(e)f(no)g(w)n(ait-free)g(implemen)n (tations)g(from)523 606 y(v)-5 b(ariables.)523 857 y Fl(7.1.3)99 b(Multi-user)36 b(V)-7 b(ariable)34 b(Construction)523 1006 y FK(In)25 b(this)f(section)g(w)n(e)g(consider)f(the)i(problem)f (of)g(constructing)g(an)g FC(n)p FK(-user)f(v)-5 b(ariable)23 b(from)523 1106 y(single-reader)j(v)-5 b(ariables)26 b(and)i(state)g(the)g(correctness)e(condition)i(suc)n(h)f(a)h (construction)523 1205 y(has)f(to)h(satisfy)-7 b(.)606 1305 y(Throughout)22 b(the)h(c)n(hapter,)f(the)h FC(n)f FK(users)g(are)g(indexed)g(with)i(the)f(set)f FC(I)31 b FK(=)22 b FD(f)p FK(0)p FC(;)14 b(:)g(:)g(:)f(;)h(n)9 b FD(\000)523 1405 y FK(1)p FD(g)p FK(.)27 b(The)g(v)-5 b(ariable)27 b(constructed)g(will)h(b)r(e)g(called)f Fv(abs)h FK(\(for)f(abstract\).)606 1504 y(A)k(construction)e(consists) g(of)h(a)g(collection)f(of)h(shared)f(v)-5 b(ariables)29 b FC(R)2798 1516 y FA(i;j)2877 1504 y FC(;)14 b(i;)g(j)31 b FD(2)d FC(I)7 b FK(,)30 b(and)523 1604 y(t)n(w)n(o)c(pro)r(cedures,)h FG(R)l(e)l(ad)36 b FK(and)27 b FG(Write)6 b FK(.)27 b(Both)g(pro)r (cedures)f(ha)n(v)n(e)g(an)h(input)h(parameter)e FC(i)p FK(,)523 1703 y(whic)n(h)k(is)f(the)i(index)f(of)f(the)h(executing)g (user,)f(and)h(in)g(addition,)g(W)-7 b(rite)30 b(tak)n(es)e(a)i(v)-5 b(alue)523 1803 y(to)29 b(b)r(e)g(written)g(to)f Fv(abs)h FK(as)f(input.)i(A)f(return)f(statemen)n(t)h(m)n(ust)g(end)g(b)r(oth)g (pro)r(cedures,)523 1903 y(in)k(the)h(case)e(of)h(Read)f(ha)n(ving)g (an)h(argumen)n(t)f(whic)n(h)h(is)g(tak)n(en)f(to)h(b)r(e)g(the)h(v)-5 b(alue)33 b(read)523 2002 y(from)27 b Fv(abs)p FK(.)606 2102 y(A)37 b(pro)r(cedure)e(con)n(tains)g(a)h(declaration)e(of)i(lo)r (cal)g(v)-5 b(ariables)35 b(and)h(a)f(b)r(o)r(dy)-7 b(.)37 b(A)f(lo)r(cal)523 2202 y(v)-5 b(ariable)30 b(app)r(earing)g(in)i(b)r (oth)g(pro)r(cedures)e(can)h(b)r(e)g(declared)g FG(static)p FK(,)g(whic)n(h)h(means)e(it)523 2301 y(retains)g(its)h(v)-5 b(alue)30 b(b)r(et)n(w)n(een)h(pro)r(cedure)f(in)n(v)n(o)r(cations.)f (The)i(b)r(o)r(dy)g(is)f(a)g(program)f(frag-)523 2401 y(men)n(t)i(comprised)g(of)g(atomic)f(statemen)n(ts.)h(Access)g(to)g (shared)f(v)-5 b(ariables)30 b(is)h(naturally)523 2500 y(restricted)26 b(to)g(assignmen)n(ts)g(from)g FC(R)1710 2512 y FA(j;i)1811 2500 y FK(to)h(lo)r(cal)f(v)-5 b(ariables)25 b(and)i(assignmen)n(ts)e(from)h(lo-)523 2600 y(cal)f(v)-5 b(ariables)24 b(to)h FC(R)1154 2612 y FA(i;j)1233 2600 y FK(,)g(for)g(an)n(y)g FC(j)30 b FK(\(recall)25 b(that)g FC(i)g FK(is)h(the)f(index)h(of)f(the)h(executing)f(user\).)523 2700 y(No)35 b(other)f(means)h(of)g(in)n(ter-pro)r(cess)e(comm)n (unication)h(is)h(allo)n(w)n(ed.)e(In)i(particular,)f(no)523 2799 y(sync)n(hronization)26 b(primitiv)n(es)i(can)g(b)r(e)g(used.)g (Assignmen)n(ts)g(to)g(and)g(from)g(shared)f(v)-5 b(ari-)523 2899 y(ables)28 b(are)g(called)h(writes)g(and)f(reads)g(resp)r(ectiv)n (ely)-7 b(,)29 b(alw)n(a)n(ys)e(in)i(lo)n(w)n(er)e(case.)h(The)i(space) 523 2999 y(complexit)n(y)24 b(of)h(a)f(construction)g(is)h(the)g(maxim) n(um)f(size,)h(in)g(bits,)g(of)g(a)f(shared)g(v)-5 b(ariable.)606 3098 y(A)24 b(lo)r(op)f(of)h(the)g(t)n(yp)r(e)g FH(for)32 b FC(j)c FD(2)c FC(I)31 b FK(signi\014es)23 b(a)g(parallel)g(lo)r(op)g (whose)g(iterations)3064 3068 y FB(1)3124 3098 y FK(can)g(b)r(e)523 3198 y(executed)k(in)f(arbitrary)f(order.)g(Shared)h(v)-5 b(ariables)25 b(accessed)h(in)h(di\013eren)n(t)f(iterations)g(of)523 3297 y(a)h(parallel)f(lo)r(op)h(m)n(ust)g(b)r(e)h(disjoin)n(t)f(since)g (a)g(user)g(can)g(only)g(execute)g(one)g(op)r(eration)f(at)523 3397 y(a)e(time)g(on)g(a)f(giv)n(en)g(shared)g(v)-5 b(ariable.)23 b(As)h(the)g(time)g(complexit)n(y)g(of)g(the)g(Read)g(or)f(W)-7 b(rite)523 3497 y(pro)r(cedure)34 b(w)n(e)g(tak)n(e)g(the)h(maxim)n(um) g(n)n(um)n(b)r(er)f(of)h(shared)e(v)-5 b(ariable)34 b(accesses)f (outside)523 3596 y(parallel)26 b(lo)r(ops)g(plus)h(for)f(eac)n(h)g (suc)n(h)g(lo)r(op)h(the)g(maxim)n(um)g(n)n(um)n(b)r(er)f(of)h(shared)f (v)-5 b(ariable)523 3696 y(accesses)26 b(in)i(a)f(single)g(iteration)g (of)h(that)g(lo)r(op.)606 3796 y(A)g(construction)f(m)n(ust)g(satisfy)h (the)g(follo)n(wing)e(constrain)n(t.)565 3971 y FH(W)-8 b(ait-F)g(reeness)26 b FK(Eac)n(h)g(pro)r(cedure)h(m)n(ust)h(b)r(e)g (free)f(from)g(un)n(b)r(ounded)h(lo)r(ops.)606 4146 y(Giv)n(en)c(a)h (construction,)e(w)n(e)h(are)g(in)n(terested)g(in)h(prop)r(erties)f(of) g(its)h(executions,)f(whic)n(h)523 4246 y(the)h(follo)n(wing)e(notions) h(help)g(form)n(ulate.)g(A)g FG(state)g FK(is)h(a)e(con\014guration)g (of)h(the)h(construc-)523 4345 y(tion,)36 b(comprising)e(v)-5 b(alues)36 b(of)g(all)f(shared)g(and)g(lo)r(cal)h(v)-5 b(ariables,)34 b(as)h(w)n(ell)h(as)f(program)523 4445 y(coun)n(ters.)i(Note)h(that)h(w)n(e)e(need)i(a)e(somewhat)h(lib)r (eral)g(notion)f(of)i(program)d(coun)n(ter)523 4544 y(to)30 b(c)n(haracterize)d(the)k(execution)e(of)h(a)f(parallel)g(lo)r(op.)h (In)g(b)r(et)n(w)n(een)f(in)n(v)n(o)r(cations)g(of)g(the)523 4644 y(Read)i(and)f(W)-7 b(rite)32 b(pro)r(cedure,)e(a)g(user)g(is)h (said)g(to)f(b)r(e)i(idle,)f(and)g(its)g(program)e(coun)n(ter)523 4744 y(has)g(the)h(v)-5 b(alue)30 b(`idle',)g(One)f(state)g(is)h (designated)f(as)g FG(initial)j(state)p FK(.)e(All)g(users)f(m)n(ust)g (b)r(e)523 4843 y(idle)f(in)g(this)g(state.)606 4943 y(A)k(state)g FC(t)g FK(is)g(an)f FG(imme)l(diate)k(suc)l(c)l(essor)d FK(of)g(a)g(state)f FC(s)h FK(if)h FC(t)f FK(can)f(b)r(e)i(reac)n(hed)d (from)i FC(s)523 5043 y FK(through)i(the)h(execution)g(of)f(a)h(pro)r (cedure)e(statemen)n(t)i(b)n(y)g(some)f(user)g(in)h(accordance)p 523 5162 499 5 v 627 5244 a Fm(1)661 5276 y FF(This)e(is)f(a)g(sligh)n (t)g(abuse)g(of)h(the)e(term,)h(since)g(the)g(w)n(ord)g(iteration)g (suggests)h(sequen)n(tial)523 5359 y(b)r(eha)n(viour.)p eop end %%Page: 91 101 TeXDict begin 91 100 bop 2536 299 a FF(7.1.)53 b(In)n(tro)r(duction)153 b(91)523 506 y FK(with)37 b(its)f(program)e(coun)n(ter.)h(Recall)h (that)g FC(n)g FK(denotes)g(the)g(n)n(um)n(b)r(er)g(of)g(users)f(of)h (the)523 606 y(constructed)24 b(v)-5 b(ariable)23 b Fv(abs)p FK(.)h(A)g(state)g(has)g(at)f(least)h FC(n)g FK(immediate)g (successors:)e(If)j(a)e(user)523 706 y(is)h(idle,)g(it)g(can)g(in)n(v)n (ok)n(e)e(either)h(the)i(Read)e(or)g(W)-7 b(rite)24 b(pro)r(cedure.)f (And)h(if)h(it)f(is)g(within)g(one)523 805 y(of)h(these)g(pro)r (cedures,)f(there)h(is)g(at)g(least)g(one)f(atomic)h(statemen)n(t)g(to) g(b)r(e)g(executed)h(next)523 905 y(\(p)r(ossibly)h(more)g(during)g (the)h(execution)g(of)f(a)g(parallel)g(lo)r(op\).)606 1005 y(A)19 b FG(history)g FK(of)g(the)f(construction)g(is)g(a)g (\014nite)h(or)f(in\014nite)h(sequence)f(of)g(states)g FC(t)3017 1017 y FB(0)3054 1005 y FC(;)c(t)3121 1017 y FB(1)3158 1005 y FC(;)g(t)3225 1017 y FB(2)3262 1005 y FC(;)g(:)g(:)g(:)523 1104 y FK(suc)n(h)28 b(that)g FC(t)921 1116 y FB(0)986 1104 y FK(is)g(the)h(initial)f(state)g(and)g FC(t)1850 1116 y FA(i)p FB(+1)1990 1104 y FK(is)g(an)f(immediate)i (successor)d(of)i FC(t)3078 1116 y FA(i)3106 1104 y FK(.)g(T)-7 b(ran-)523 1204 y(sitions)30 b(b)r(et)n(w)n(een)g(successiv)n(e)g (states)g(are)f(called)h(the)h FG(events)f FK(of)h(a)f(history)-7 b(.)29 b(With)j(eac)n(h)523 1303 y(ev)n(en)n(t)41 b(is)f(asso)r(ciated) g(the)i(index)f(of)g(the)g(executing)g(user,)f(the)h(relev)-5 b(an)n(t)41 b(pro)r(cedure)523 1403 y(statemen)n(t,)28 b(and)f(the)h(v)-5 b(alues)27 b(manipulated)h(b)n(y)f(the)h(execution)g (of)f(the)h(statemen)n(t.)606 1503 y(An)e(ev)n(en)n(t)f FC(a)h FG(pr)l(e)l(c)l(e)l(des)g FK(an)f(ev)n(en)n(t)g FC(b)h FK(in)g(history)e FC(h)p FK(,)i FC(a)d FD(\036)2335 1515 y FA(h)2401 1503 y FC(b)p FK(,)i(if)h FC(a)g FK(o)r(ccurs)e(b)r (efore)i FC(b)f FK(in)h FC(h)p FK(.)523 1602 y(The)i(subscript)g FC(h)g FK(is)f(omitted)i(when)f(clear)f(from)g(con)n(text.)h(Call)g(a)f (\014nite)i(set)f(of)g(ev)n(en)n(ts)523 1702 y(of)k(a)g(history)g(an)g (ev)n(en)n(t-set.)f(Then)i(w)n(e)f(similarly)f(sa)n(y)g(that)i(an)f(ev) n(en)n(t-set)f FC(a)i FK(precedes)523 1802 y(an)25 b(ev)n(en)n(t-set)f FC(b)g FK(in)h(a)g(history)-7 b(,)24 b FC(a)f FD(\036)1628 1814 y FA(h)1694 1802 y FC(b)p FK(,)h(when)h(eac)n(h)g(ev)n(en)n(t)f (in)h FC(a)g FK(o)r(ccurs)f(b)r(efore)h(all)f(those)523 1901 y(in)34 b FC(b)p FK(.)f(The)h(relation)e FD(\036)1270 1913 y FA(h)1347 1901 y FK(on)h(ev)n(en)n(t-sets)f(constitutes)i(what)f (is)h(kno)n(wn)f(as)g(an)g FG(interval)523 2001 y(or)l(der)p FK(.)27 b(That)g(is,)f(a)g(partial)g(order)f(satisfying)h(the)g(in)n (terv)-5 b(al)26 b(axiom)g FC(a)d FD(\036)f FC(b)16 b FD(^)h FC(c)23 b FD(\036)f FC(d)17 b FD(^)f FC(c)23 b FD(6\036)523 2100 y FC(b)i FD(\))g FC(a)h FD(\036)e FC(d)p FK(.)30 b(This)f(implication)g(can)f(b)r(e)i(seen)e(to)h(hold)g(b)n(y)g (considering)e(the)j(last)e(ev)n(en)n(t)523 2200 y(of)h FC(c)g FK(and)h(the)f(earliest)g(ev)n(en)n(t)f(of)h FC(b)p FK(.)g(See)h([10)o(])f(for)g(an)g(extensiv)n(e)f(discussion)h(on)g(mo)r (dels)523 2300 y(of)f(time.)606 2399 y(Of)21 b(particular)e(in)n (terest)h(are)g(the)h(sets)g(consisting)f(of)g(all)h(ev)n(en)n(ts)f(of) g(a)h(single)f(pro)r(cedure)523 2499 y(in)n(v)n(o)r(cation,)i(whic)n(h) h(w)n(e)f(call)h(an)g FG(op)l(er)l(ation)p FK(.)h(An)g(op)r(eration)e (is)h(either)f(a)h(Read)g(op)r(eration)523 2599 y(or)37 b(a)g(W)-7 b(rite)38 b(op)r(eration.)e(It)i(is)f FG(c)l(omplete)i FK(if)f(it)g(includes)f(the)h(execution)f(of)h(the)g(\014nal)523 2698 y FH(return)20 b FK(statemen)n(t)g(of)g(the)g(pro)r(cedure.)e (Otherwise)h(it)h(is)f(said)h(to)f(b)r(e)h FG(p)l(ending)p FK(.)h(A)f(history)523 2798 y(is)30 b(complete)f(if)i(all)e(its)h(op)r (erations)f(are)f(complete.)i(Note)g(that)g(in)g(the)g(\014nal)g(state) f(of)h(a)523 2897 y(complete)24 b(\014nite)h(history)-7 b(,)24 b(all)g(users)g(are)f(idle.)i(The)g FG(value)g FK(of)f(an)g(op)r(eration)g(is)g(the)h(v)-5 b(alue)523 2997 y(written)31 b(to)f Fv(abs)h FK(in)g(the)g(case)f(of)g(a)h(W)-7 b(rite,)31 b(or)e(the)i(v)-5 b(alue)31 b(read)f(from)g Fv(abs)h FK(in)g(the)g(case)523 3097 y(of)d(a)f(Read.)606 3196 y(The)32 b(follo)n(wing)g(crucial)f(de\014nition)h(expresses)f (the)i(idea)f(that)g(the)h(op)r(erations)e(in)h(a)523 3296 y(history)23 b(app)r(ear)h(to)g(tak)n(e)f(place)h(instan)n (taneously)f(somewhere)g(during)h(their)g(execution)523 3396 y(in)n(terv)-5 b(al.)31 b(A)h(more)f(general)f(v)n(ersion)g(of)i (this)g(is)f(presen)n(ted)h(and)f(motiv)-5 b(ated)32 b(in)g([6)o(].)g(T)-7 b(o)523 3495 y(a)n(v)n(oid)35 b(sp)r(ecial)h (cases,)g(w)n(e)g(in)n(tro)r(duce)g(the)h(notion)f(of)h(a)f FG(pr)l(op)l(er)i FK(history)d(as)h(one)g(that)523 3595 y(starts)27 b(with)h(an)f(initializing)h(W)-7 b(rite)28 b(op)r(eration)e(that)i(precedes)f(all)g(other)g(op)r(erations.)565 3778 y FH(Linearizabilit)m(y)20 b FK(A)g(complete)f(prop)r(er)g (history)g FC(h)g FK(is)h FG(line)l(arizable)i FK(if)e(the)g(partial)f (order)731 3877 y FD(\036)796 3889 y FA(h)863 3877 y FK(on)24 b(the)i(set)e(of)h(op)r(erations)e(can)i(b)r(e)g(extended)g (to)f(a)h(total)f(order)g(whic)n(h)g(ob)r(eys)731 3977 y(the)36 b(seman)n(tics)e(of)i(a)f(v)-5 b(ariable.)35 b(That)g(is,)h(eac)n(h)f(Read)g(op)r(erations)f(returns)h(the)731 4076 y(v)-5 b(alue)27 b(written)h(b)n(y)g(that)g(W)-7 b(rite)28 b(op)r(eration)f(whic)n(h)h(last)f(precedes)g(it)i(in)f(the)g (total)731 4176 y(order.)606 4359 y(A)39 b(construction)f(is)g FG(c)l(orr)l(e)l(ct)g FK(if)h(it)g(satis\014es)f(W)-7 b(ait-F)g(reeness)38 b(and)g(all)g(its)h(complete)523 4458 y(prop)r(er)27 b(histories)f(are)h(linearizable.)523 4707 y Fl(7.1.4)99 b(The)34 b(T)-7 b(ag)34 b(F)-7 b(unction)523 4857 y FK(While)21 b(the)g(de\014nition)g(of)g(linearizabilit)n(y)f(is) g(quite)h(clear,)f(it)h(is)g(con)n(v)n(enien)n(t)e(to)i(transform)523 4956 y(it)i(in)n(to)e(an)h(equiv)-5 b(alen)n(t)22 b(sp)r(eci\014cation) g(from)g(whic)n(h)g(the)g(\014rst)g(algorithm)f(can)h(b)r(e)g(directly) 523 5056 y(deriv)n(ed.)27 b(The)h(idea)g(b)r(ehind)g(the)h(follo)n (wing)e(lemma)g(w)n(as)g(\014rst)h(expressed)f(b)n(y)g(Lamp)r(ort)523 5156 y(in)k(Prop)r(osition)e(3)h(of)h([10)o(],)g(for)f(the)h(case)e(of) i(a)f(single)g(writer.)g(In)h([17)o(],)g(the)g(equiv)-5 b(alen)n(t)523 5255 y(conditions)32 b(giv)n(en)g(b)n(y)h(Lamp)r(ort's)f (prop)r(osition)f(are)h(in)h(fact)g(tak)n(en)f(as)g(the)h(de\014nition) 523 5355 y(of)24 b(linearizabilit)n(y)f(\(often)i(called)e(atomicit)n (y)h(in)g(the)g(register)f(construction)g(literature\).)p eop end %%Page: 92 102 TeXDict begin 92 101 bop 1747 299 a FF(7.2.)53 b(The)26 b(Basic)h(Un)n(b)r(ounded)d(Construction)154 b(92)523 506 y FK(The)27 b(A)n(tomicit)n(y)g(Criterion)f(of)h([1])g(is)g(the)g (\014rst)g(generalization)e(of)i(Lamp)r(ort's)f(prop)r(osi-)523 606 y(tion)e(to)g(the)g(case)g(of)g(m)n(ultiple)g(readers.)f(A)h (further)g(generalization)e(app)r(ears)h(in)h([18)o(])g(for)523 706 y(the)h(case)f(of)h(a)g(v)-5 b(ariable)24 b(ha)n(ving)g(sev)n(eral) f(\014elds)i(whic)n(h)g(can)f(b)r(e)i(written)f(indep)r(enden)n(tly)-7 b(.)523 863 y Fv(Lemma)32 b FH(7.2)40 b FG(A)22 b(c)l(omplete)i(pr)l (op)l(er)f(history)g FC(h)g FG(is)f(line)l(arizable)j(i\013)d(ther)l(e) h(exist)f(a)h(function)523 962 y(mapping)31 b(e)l(ach)f(op)l(er)l (ation)g(in)f FC(h)g FG(to)g(a)h(r)l(ational)g(numb)l(er,)f(c)l(al)t (le)l(d)h(its)f(tag,)h(such)f(that)g(the)523 1062 y(fol)t(lowing)j(3)e (c)l(onditions)h(ar)l(e)f(satis\014e)l(d:)523 1209 y FH(Uniqueness)41 b FG(di\013er)l(ent)30 b(Write)g(op)l(er)l(ations)g (have)h(di\013er)l(ent)f(tags.)523 1366 y FH(In)m(tegrit)m(y)42 b FG(for)25 b(e)l(ach)f(R)l(e)l(ad)f(op)l(er)l(ation)i(ther)l(e)e (exists)g(a)h(Write)f(op)l(er)l(ation)i(with)f(the)f(same)731 1466 y(tag)30 b(and)g(value,)g(that)g(it)g(do)l(esn)-8 b('t)30 b(pr)l(e)l(c)l(e)l(de.)523 1623 y FH(Precedence)42 b FG(if)30 b(one)g(op)l(er)l(ation)g(pr)l(e)l(c)l(e)l(des)g(another,)h (then)e(the)g(tag)h(of)g(the)g(latter)f(is)h(at)731 1722 y(le)l(ast)f(that)h(of)h(the)f(former.)523 1927 y Fv(Pr)n(oof.)23 b FD(\))h FK(Let)h(a)e(complete)h(prop)r(er)f(history)g FC(h)h FK(b)r(e)h(linearizable.)d(Then)j(there)e(is)h(some)523 2027 y(total)d(order)f FC(<)h FK(extending)g FD(\036)1451 2039 y FA(h)1494 2027 y FK(.)g(Assign)g(to)g(eac)n(h)f(op)r(eration)h (a)f(tag)h(whic)n(h)g(is)g(the)h(n)n(um)n(b)r(er)523 2126 y(of)h(W)-7 b(rite)22 b(op)r(erations)g(preceding)f(it)i(in)g FC(<)p FK(.)f(This)h(clearly)e(satis\014es)h(Uniqueness.)h(F)-7 b(or)22 b(an)n(y)523 2226 y(Read)32 b(op)r(eration)f FC(R)q FK(,)i(the)f(W)-7 b(rite)33 b(op)r(eration)e FC(W)45 b FK(that)32 b(precedes)g(it)h(last)f(in)h FC(<)f FK(has)f(the)523 2326 y(same)22 b(tag.)g(Also,)g(b)r(ecause)g FC(<)h FK(ob)r(eys)f(the)h (seman)n(tics)e(of)i(a)f(v)-5 b(ariable,)22 b FC(W)34 b FK(and)23 b FC(R)g FK(ha)n(v)n(e)e(the)523 2425 y(same)30 b(v)-5 b(alue.)31 b(F)-7 b(rom)31 b(the)g(facts)g(that)g FC(<)g FK(extends)g FD(\036)2193 2437 y FA(h)2236 2425 y FK(,)g FC(W)40 b(<)29 b(R)q FK(,)i(and)f FC(<)h FK(is)g(acyclic,)f(w) n(e)523 2525 y(conclude)22 b(that)h FD(:)p FC(R)h FD(\036)1241 2537 y FA(h)1307 2525 y FC(W)12 b FK(.)23 b(So)f(In)n(tegrit)n(y)f(is)i (satis\014ed)f(as)g(w)n(ell.)g(Finally)-7 b(,)23 b(for)f(op)r(erations) 523 2624 y FC(A)28 b FD(\036)678 2636 y FA(h)748 2624 y FC(B)t FK(,)j(w)n(e)f(necessarily)f(ha)n(v)n(e)g FC(A)f(<)f(B)35 b FK(and)30 b(th)n(us)g(the)h(tag)f(of)g FC(B)35 b FK(is)30 b(at)g(least)g(that)h(of)523 2724 y FC(A)p FK(.)606 2824 y FD(\()37 b FK(Supp)r(ose)h(w)n(e)f(are)f(giv)n(en)g(a)h(complete)g (prop)r(er)g(history)f FC(h)h FK(and)g(a)g(function)h FG(tag)523 2923 y FK(satisfying)30 b(the)g(three)g(conditions.)g(Using) g(Uniqueness,)g(totally)g(order)f(the)i(W)-7 b(rite)30 b(op-)523 3023 y(erations)35 b(according)g(to)h(their)g(tags.)f(Next,)i (w)n(e)f(insert)g(all)g(Read)g(op)r(erations)f(in)h(this)523 3123 y(total)28 b(order:)e(for)h(eac)n(h)g(W)-7 b(rite)28 b(op)r(eration)f(in)h(turn,)g(insert)g(immediately)f(after)h(it)g (those)523 3222 y(Read)c(op)r(erations)f(ha)n(ving)h(the)h(same)e(tag,) h(in)h(an)n(y)f(order)f(extending)h FD(\036)2810 3234 y FA(h)2853 3222 y FK(.)h(By)f(In)n(tegrit)n(y)-7 b(,)523 3322 y(the)33 b(result)f(is)h(a)f(total)g(order)g FC(<)g FK(on)g(all)g(op)r(erations,)g(that)h(ob)r(eys)f(the)h(seman)n(tics)f (of)g(a)523 3421 y(v)-5 b(ariable.)22 b(It)i(remains)e(to)h(sho)n(w)f (that)h FC(<)g FK(extends)g FD(\036)2168 3433 y FA(h)2211 3421 y FK(.)g(Supp)r(ose)g FC(A)g FD(\036)2728 3433 y FA(h)2794 3421 y FC(B)k FK(are)22 b(t)n(w)n(o)h(op)r(er-)523 3521 y(ations.)i(By)g(Precedence,)g FC(A)p FK('s)g(tag)g(is)h(at)f (most)h(that)f(of)h FC(B)t FK(.)g(If)g FC(A)p FK('s)f(tag)g(is)h(less)f (than)h FC(B)t FK('s,)523 3621 y(or)i FC(A)i FK(and)f FC(B)k FK(are)28 b(Read)h(op)r(erations)f(with)h(the)h(same)e(tag,)h (then)h FC(A)25 b(<)h(B)33 b FK(follo)n(ws)28 b(from)523 3720 y(the)i(construction)f(of)g FC(<)p FK(.)g(In)h(the)g(remaining)e (case)h FC(A)h FK(and)f FC(B)34 b FK(ha)n(v)n(e)28 b(equal)h(tags)g (and)g(at)523 3820 y(least)22 b(one)g(of)h(them)g(is)g(a)f(W)-7 b(rite)23 b(op)r(eration.)f(By)g(Uniqueness,)g(one)h(is)f(a)g(Read)h (op)r(eration,)523 3920 y(and)i(the)h(other)f(is)h(the)g(unique)g(W)-7 b(rite)25 b(op)r(eration)g(with)h(the)g(same)f(tag.)g(Finally)-7 b(,)26 b(w)n(e)f(use)523 4019 y(In)n(tegrit)n(y)33 b(to)h(conclude)h (that)f FC(A)h FK(is)f(the)h(W)-7 b(rite,)34 b(and)g FC(B)39 b FK(the)c(Read)f(op)r(eration.)f(Th)n(us,)523 4119 y FC(A)23 b(<)g(B)32 b FK(follo)n(ws)26 b(again)h(from)g(the)h (construction)f(of)g FC(<)p FK(.)1014 b Fu(2)523 4471 y FL(7.2)116 b(The)38 b(Basic)g(Un)m(b)s(ounded)h(Construction)523 4671 y FK(Figure)28 b(7.1)g(sho)n(ws)f(Construction)h(0,)h(whic)n(h)f (is)h(the)g(un)n(b)r(ounded)g(solution)f(of)g([20].)g(W)-7 b(e)523 4770 y(presen)n(t)38 b(it)g(here)g(as)g(an)g(aid)g(in)g (understanding)g(Construction)f(1,)h(and)g(giv)n(e)f(only)h(a)523 4870 y(sk)n(etc)n(h)n(y)26 b(pro)r(of.)606 4969 y(The)31 b(W)-7 b(rite)31 b(and)f(Read)h(pro)r(cedures)e(are)h(giv)n(en)f(after) i(the)g(declaration)e(of)i(the)g(t)n(yp)r(e)523 5069 y(of)i(the)g(shared)e(v)-5 b(ariables)32 b FC(R)1452 5081 y FA(i;j)1530 5069 y FK(.)h(The)f(initial)h(state)g(of)f(the)h (construction)f(has)g(all)g FC(R)3279 5081 y FA(i;j)523 5169 y FK(con)n(taining)27 b(\(0)p FC(;)14 b FK(0\).)606 5268 y(The)23 b(tag)g(function)h(called)e(for)h(in)h(lemma)f(7.2)f(is)h (built)h(righ)n(t)f(in)g(to)g(this)h(construction.)523 5368 y(Eac)n(h)f(op)r(eration)g(starts)g(b)n(y)h(collecting)g(v)-5 b(alue-tag)23 b(pairs)g(from)h(all)g(users.)f(By)h(executing)p eop end %%Page: 93 103 TeXDict begin 93 102 bop 1747 299 a FF(7.2.)53 b(The)26 b(Basic)h(Un)n(b)r(ounded)d(Construction)154 b(93)p 523 1448 1277 4 v 523 1996 4 548 v 551 1542 a FH(t)m(yp)s(e)28 b FC(I)i FK(:)23 b(0)p FC(::n)18 b FD(\000)g FK(1)763 1642 y FG(shar)l(e)l(d)37 b FK(:)28 b FH(record)1187 1742 y FG(value)34 b FK(:)28 b Fv(abs)p FG(typ)l(e)1187 1841 y(tag)63 b FK(:)28 b FH(in)m(teger)1076 1941 y(end)p 1796 1996 V 523 1999 1277 4 v 523 2060 2296 4 v 523 3107 4 1047 v 551 2155 a(pro)s(cedure)g FG(Write)6 b FK(\()p FC(i;)14 b(v)s FK(\))551 2255 y FH(v)-5 b(ar)29 b FC(j)f FK(:)23 b FC(I)710 2354 y(t)g FK(:)28 b FH(in)m(teger)710 2454 y FG(fr)l(om)34 b FK(:)28 b FH(arra)m(y)t FK([0)p FC(::n)18 b FD(\000)g FK(1])27 b FH(of)36 b FG(shar)l(e)l(d)551 2554 y FH(b)s(egin)710 2653 y(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])23 b(:=)g FC(R)1648 2665 y FA(j;i)710 2753 y FK(select)k FC(t)h FK(suc)n(h)f(that)h(\()p FD(8)p FC(j)g FK(:)c FC(t)f(>)f FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)j FK(\))19 b FD(^)f FC(t)23 b FD(\021)g FC(i)83 b FK(\(mo)r(d)28 b FC(n)p FK(\))710 2852 y FG(fr)l(om)7 b FK([)p FC(i)p FK(])22 b(:=)h(\()p FC(v)s(;)14 b(t)p FK(\))710 2952 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 2964 y FA(i;j)1357 2952 y FK(:=)c FG(fr)l(om)7 b FK([)p FC(i)p FK(])551 3052 y FH(end)p 2815 3107 V 523 3110 2296 4 v 523 3171 2229 4 v 523 4217 4 1047 v 579 3266 a(pro)s(cedure)28 b FG(R)l(e)l(ad)8 b FK(\()p FC(i)p FK(\))579 3366 y FH(v)-5 b(ar)28 b FC(j;)14 b FG(max)34 b FK(:)23 b FC(I)737 3465 y FG(fr)l(om)30 b FK(:)24 b FH(arra)m(y)s FK([0)p FC(::n)18 b FD(\000)g FK(1])27 b FH(of)37 b FG(shar)l(e)l(d)579 3565 y FH(b)s(egin)737 3664 y(for)28 b FC(j)g FD(2)c FC(I)34 b FH(do)28 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])23 b(:=)g FC(R)1676 3676 y FA(j;i)737 3764 y FK(select)28 b FG(max)37 b FK(suc)n(h)28 b(that)g FD(8)p FC(j)g FK(:)23 b FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)30 b FD(\025)23 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)737 3864 y(fr)l(om)i FK([)p FC(i)p FK(])23 b(:=)g FG(fr)l(om)7 b FK([)p FG(max)j FK(])737 3963 y FH(for)28 b FC(j)g FD(2)c FC(I)34 b FH(do)28 b FC(R)1284 3975 y FA(i;j)1385 3963 y FK(:=)23 b FG(fr)l(om)7 b FK([)p FC(i)p FK(])737 4063 y FH(return)29 b FG(fr)l(om)7 b FK([)p FC(i)p FK(])p FC(:)p FG(value)579 4163 y FH(end)p 2748 4217 V 523 4220 2229 4 v 1453 4363 a FF(FIGURE)25 b(7.1.)i(Construction)f(0)p eop end %%Page: 94 104 TeXDict begin 94 103 bop 2393 299 a FF(7.3.)53 b(Solution)26 b(Metho)r(d)154 b(94)523 506 y FK(line)38 b(3)g(of)g(either)g(pro)r (cedure,)f(the)h(op)r(eration)f(pic)n(ks)h(a)f(v)-5 b(alue)38 b(and)g(tag)f(for)h(itself.)g(It)523 606 y(\014nishes)18 b(after)h(distributing)f(this)h(pair)f(to)g(all)g(users.)g(It)h(is)f (not)h(hard)f(to)g(see)g(that)h(the)g(three)523 706 y(conditions)25 b(of)g(lemma)g(7.2)g(are)f(satis\014ed)h(for)f(an)n(y)h(complete)g (prop)r(er)f(history)-7 b(.)25 b(In)n(tegrit)n(y)523 805 y(and)k(Precedence)f(are)h(straigh)n(tforw)n(ard)d(to)k(c)n(hec)n (k.)e(Uniqueness)i(follo)n(ws)e(since)h(tags)g(of)523 905 y(W)-7 b(rite)31 b(op)r(erations)f(of)h(di\013eren)n(t)g(users)f (are)g(not)g(congruen)n(t)g(mo)r(dulo)h FC(n)p FK(,)g(while)g(tags)f (of)523 1005 y(W)-7 b(rite)37 b(op)r(erations)d(of)j(a)e(single)h(user) g(strictly)g(increase)f(\(based)h(on)g(the)g(observ)-5 b(ation)523 1104 y(that)28 b(eac)n(h)f FC(R)953 1116 y FA(i;i)1024 1104 y FC(:)p FG(tag)35 b FK(is)27 b(nondecreasing\).)523 1411 y FL(7.3)116 b(Solution)36 b(Metho)s(d)523 1611 y FK(The)c(only)g(problem)g(with)h(Construction)f(0)g(is)g(that)h(the)g (n)n(um)n(b)r(er)f(of)g(tags)g(is)g(in\014nite.)523 1710 y(With)g(a)f(\014nite)g(n)n(um)n(b)r(er)g(of)g(tags)f(comes)g(the)i (necessit)n(y)e(to)h(re-use)f(tags)g(and)h(hence)g(to)523 1810 y(distinguish)d(old)f(tags)g(from)g(new)h(ones.)606 1910 y(In)i(Construction)e(1,)h(w)n(e)g(in)n(tro)r(duce)g(a)g(sho)r (oting)g(mec)n(hanism)f(to)i(pro)n(vide)e(aging)g(in-)523 2009 y(formation)37 b(in)h(addition)f(to)h(the)g(tags.)e(A)n(t)i(the)g (start)f(of)h(an)f(op)r(eration,)g(a)g(user)g(sets)523 2109 y(up)30 b(a)f(`target')f(that)i(gets)f(`shot)g(at')h(b)n(y)f(W)-7 b(rite)29 b(op)r(erations.)f(A)i(tag)f(can)g(b)r(e)h(considered)523 2208 y(old)f(once)f(its)h(asso)r(ciated)e(target)h(has)g(receiv)n(ed)g (su\016cien)n(tly)g(man)n(y)g(shots.)h(The)g(sho)r(ot-)523 2308 y(ing)h(mec)n(hanism)g(also)g(serv)n(es)e(another)i(purp)r(ose,)g (whic)n(h)g(is)h(that)f(of)h(appro)n(ximating)d(a)523 2408 y(snap-shot,)34 b(i.e.)g(an)h(instan)n(taneous)e(picture)i(of)f(a) g(set)h(of)g(shared)e(v)-5 b(ariables.)34 b(In)g(Con-)523 2507 y(struction)f(0,)h(an)f(op)r(eration)g(collects)g(information)g (on)g(v)-5 b(alues)33 b(and)h(tags)f(of)g(all)h(users)523 2607 y(b)n(y)25 b(reading)e(their)i(v)-5 b(ariables)24 b(one)g(after)h(another,)f(in)h(arbitrary)e(order)g(\(the)j(\014rst)e (line)h(in)523 2707 y(either)j(pro)r(cedure\).)g(Since)h(these)f(read)g (ev)n(en)n(ts)f(are)h(in)n(terlea)n(v)n(ed)e(with)j(ev)n(en)n(ts)f(of)g (other)523 2806 y(users,)i(in)i(particular)e(write)g(ev)n(en)n(ts,)h (the)g(picture)g(it)h(gets)f(this)g(w)n(a)n(y)f(can)h(b)r(e)g(v)n(ery)f (dis-)523 2906 y(torted.)h(In)h(Construction)f(1,)g(with)h(the)f (additional)g(information)g(to)g(collect,)h(there)f(is)523 3005 y(a)36 b(need)g(to)g(limit)h(the)f(amoun)n(t)g(of)g(distortion.)g (If,)g(after)g(the)g(information-collecting)523 3105 y(p)r(erio)r(d,)e(the)f(target)g(that)h(w)n(as)e(set)i(up)g(has)e (receiv)n(ed)h(su\016cien)n(tly)g(man)n(y)g(shots,)g(then)523 3205 y(the)27 b(op)r(eration)f(will)i FG(ab)l(ort)p FK(,)f(i.e.)g (terminate)g(without)g(executing)g(the)h(remainder)d(of)i(the)523 3304 y(pro)r(cedure.)21 b(Ab)r(orting)g(op)r(erations)g(do)g(not)h(c)n (hange)e(or)h(mak)n(e)g(use)h(of)f(an)n(y)g(tags)g(and)h(th)n(us)523 3404 y(ha)n(v)n(e)k(v)n(ery)h(limited)h(in)n(teraction)e(with)i(non-ab) r(orting)e(op)r(erations.)g(The)i(latter)f(in)h(turn)523 3504 y(will)h(ha)n(v)n(e)e(got)g(a)h(go)r(o)r(d,)g(if)g(not)h(instan)n (taneous,)e(picture)h(of)g(the)h(shared)e(state.)h(This)g(in)523 3603 y(principle)21 b(allo)n(ws)f(them)h(to)g(distinguish)g(old)g(tags) f(b)n(y)h(insp)r(ection)g(of)g(the)g(asso)r(ciated)f(tar-)523 3703 y(gets.)27 b(This)g(distinction)h(is)f(ho)n(w)n(ev)n(er)f(not)h(y) n(et)g(made)h(in)f(Construction)g(1.)g(With)h(all)f(the)523 3802 y(added)h(un)n(b)r(ounded)g(coun)n(ters,)f(Construction)h(1)f (merely)h(pa)n(v)n(es)e(the)j(w)n(a)n(y)e(to)h(our)f(\014nal,)523 3902 y(b)r(ounded,)22 b(solution.)g(In)g(Section)g(7.3.1,)f(w)n(e)g (discuss)h(Construction)f(1)g(and)h(in)g(particular)523 4002 y(the)32 b(sho)r(oting)e(mec)n(hanism,)h(in)h(some)f(more)f (detail.)i(Section)63 b(7.3.2)30 b(in)n(tro)r(duces)g(some)523 4101 y(notational)24 b(con)n(v)n(en)n(tions.)f(The)i(correctness)e(pro) r(of)i(is)g(giv)n(en)f(in)h(Section)g(7.3.3.)f(Finally)-7 b(,)523 4201 y(Section)31 b(7.4)f(sho)n(ws)g(ho)n(w)h(Construction)f(1) h(can)g(b)r(e)g(c)n(hanged)f(in)n(to)h(an)g(equiv)-5 b(alen)n(t)31 b(one)523 4301 y(using)c(only)g(b)r(ounded)h(coun)n (ters.)523 4550 y Fl(7.3.1)99 b(Construction)34 b(1)523 4699 y FK(Figure)j(7.2)h(sho)n(ws)e(the)j(data-structure)d(and)i(pro)r (cedures)f(of)h(Construction)f(1.)h(The)523 4799 y(W)-7 b(rite)30 b(pro)r(cedure)f(turns)g(out)h(to)f(b)r(e)h(an)g(extension)f (of)g(the)h(Read)g(pro)r(cedure)e(whic)n(h)i(is)523 4898 y(wh)n(y)e(the)g(t)n(w)n(o)f(are)h(more)f(con)n(v)n(enien)n(tly)g(sho)n (wn)g(together.)g(The)h(line)g(indicated)h(`\(Read)523 4998 y(only\)')f(is)g(unique)g(to)g(the)g(Read)g(pro)r(cedure,)f (making)g(the)i(remaining)e(lines)h(e\013ectiv)n(ely)523 5098 y(unique)g(to)g(the)g(W)-7 b(rite)28 b(pro)r(cedure.)f(The)h (initial)g(state)f(of)h(Construction)f(1)g(has)h(0)f(in)h(all)523 5197 y(\014elds)g(of)f(all)h(shared)e(and)i(static)f(v)-5 b(ariables.)606 5297 y(Let's)35 b(lo)r(ok)g(at)g(the)h(data)f (structures)g(used)g(in)h(the)g(construction.)e(The)i FG(value)42 b FK(and)p eop end %%Page: 95 105 TeXDict begin 95 104 bop 2393 299 a FF(7.3.)53 b(Solution)26 b(Metho)r(d)154 b(95)p 523 1107 2315 4 v 523 1854 4 748 v 551 1201 a FH(t)m(yp)s(e)28 b FC(I)i FK(:)23 b(0)p FC(::n)18 b FD(\000)g FK(1)763 1301 y FG(shar)l(e)l(d)37 b FK(:)28 b FH(record)1187 1400 y FG(value)7 b FK(,)p FG(pr)l(ev)37 b FK(:)28 b Fv(abs)p FG(typ)l(e)1187 1500 y(tag)63 b FK(:)28 b FH(in)m(teger)1187 1600 y FG(ss)34 b FK(:)28 b(0)p FC(::)p FK(1)1187 1699 y FG(sho)l(ot)8 b FK(,)p FG(he)l(al)38 b FK(:)27 b FH(arra)m(y)t FK([0)p FC(::)p FK(1][0)p FC(::n)17 b FD(\000)h FK(1])28 b FH(of)36 b(in)m(teger)1076 1799 y(end)p 2834 1854 V 523 1857 2315 4 v 523 1918 2383 4 v 523 4559 4 2641 v 551 2013 a(pro)s(cedure)28 b FG(R)l(e)l(ad)9 b FK(\()p FC(i)p FK(\))28 b(/)f FG(Write)6 b FK(\()p FC(i;)14 b(v)s FK(\))551 2113 y FH(v)-5 b(ar)29 b FC(j)f FK(:)23 b FC(I)710 2212 y(t)g FK(:)28 b FH(in)m(teger)710 2312 y FC(s)23 b FK(:)g(0)p FC(::)p FK(1)710 2412 y FG(fr)l(om)7 b FK(,)p FG(tmp)33 b FK(:)27 b FH(arra)m(y)t FK([0)p FC(::n)18 b FD(\000)g FK(1])27 b FH(of)37 b FG(shar)l(e)l(d)710 2511 y FH(static)28 b FG(me)34 b FK(:)27 b FG(shar)l(e)l(d)551 2611 y FH(b)s(egin)710 2710 y FC(s)c FK(:=)f(1)c FD(\000)g FG(me)7 b FC(:)p FG(ss)551 2810 y FK(s:)103 b FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(me)7 b FC(:)p FG(he)l(al)i FK([)p FC(s)p FK(][)p FC(j)c FK(])23 b(:=)g FC(R)1844 2822 y FA(j;i)1919 2810 y FC(:)p FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(i)p FK(])551 2910 y(h:)90 b FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 2922 y FA(i;j)1357 2910 y FK(:=)c FG(me)551 3009 y FK(r:)103 b FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])23 b(:=)g FC(R)1648 3021 y FA(j;i)551 3109 y FK(t:)104 b FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(tmp)5 b FK([)p FC(j)g FK(])23 b(:=)g FC(R)1618 3121 y FA(j;i)710 3209 y FH(if)36 b FD(9)p FC(j)28 b FD(2)c FC(I)30 b FK(:)23 b FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(sho)l(ot)k FK([)p FC(s)p FK(][)p FC(i)p FK(])18 b FD(\000)g FG(me)6 b FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][)p FC(j)5 b FK(])23 b FD(\025)g FK(3)710 3308 y FH(then)k(return)i FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(pr)l(ev)710 3408 y FK(select)27 b FG(max)38 b FK(suc)n(h)27 b(that)h FD(8)p FC(j)g FK(:)23 b FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)31 b FD(\025)22 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)710 3508 y(me)h FC(:)p FG(pr)l(ev)k FC(;)k FG(me)6 b FC(:)p FG(value)h FC(;)14 b FG(me)6 b FC(:)p FG(tag)i FC(;)14 b FG(me)6 b FC(:)p FG(ss)30 b FK(:=)936 3607 y FG(me)7 b FC(:)p FG(value)f FC(;)14 b FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(value)d FC(;)14 b FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)d FC(;)14 b(s)551 3707 y FK(p:)90 b FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 3719 y FA(i;j)1357 3707 y FK(:=)c FG(me)710 3806 y FK(\(Read)k(only\))h FH(return)g FG(me)6 b FC(:)p FG(value)710 3906 y FH(for)28 b FC(j)g FD(2)23 b FC(I)7 b(;)14 b(s)23 b FD(2)g(f)p FK(0)p FC(::)p FK(1)p FD(g)j FH(do)854 4006 y(if)36 b FG(me)6 b FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(j)c FK(])18 b FD(\000)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(i)p FK(])23 b FC(<)g FK(6)854 4105 y FH(then)k FG(me)7 b FC(:)p FG(sho)l(ot)h FK([)p FC(s)p FK(][)p FC(j)d FK(]+)23 b(:=)g(1)710 4205 y(select)k FC(t)h FK(suc)n(h)f(that)h FC(t)18 b FD(\000)g FG(me)7 b FC(:)p FG(tag)30 b FD(2)24 b(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(n)p FD(g)k(^)h FC(t)k FD(\021)g FC(i)82 b FK(\(mo)r(d)28 b FC(n)p FK(\))710 4305 y FG(me)6 b FC(:)p FG(value)h FC(;)14 b FG(me)6 b FC(:)p FG(tag)31 b FK(:=)23 b FC(v)s(;)14 b(t)551 4404 y FK(w:)76 b FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 4416 y FA(i;j)1357 4404 y FK(:=)c FG(me)551 4504 y FH(end)p 2902 4559 V 523 4562 2383 4 v 1453 4704 a FF(FIGURE)i(7.2.)i(Construction)f(1)p eop end %%Page: 96 106 TeXDict begin 96 105 bop 2393 299 a FF(7.3.)53 b(Solution)26 b(Metho)r(d)154 b(96)523 506 y FG(tag)37 b FK(\014elds)30 b(ha)n(v)n(e)e(exactly)h(the)h(same)f(function)i(as)e(in)g (Construction)g(0.)h(The)f FG(pr)l(ev)39 b FK(\014eld)523 606 y(is)32 b(used)f(to)h(remem)n(b)r(er)f(v)-5 b(alues)31 b(of)h(former)f(op)r(erations,)f(whic)n(h)i(are)f(used)g(b)n(y)h(ab)r (orting)523 706 y(Read)21 b(op)r(erations.)e(Tw)n(o)h(sets)g(of)h(heal) g(coun)n(ters,)e FG(he)l(al)10 b FK([0][0)p FC(::n)5 b FD(\000)g FK(1])19 b(and)h FG(he)l(al)10 b FK([1][0)p FC(::n)5 b FD(\000)g FK(1],)523 805 y(are)28 b(used)g(to)h(hold)g (targets.)e(The)i FG(ss)35 b FK(\(sho)r(ot-selector\))28 b(\014eld)h(selects)f(whic)n(h)h(of)f(the)i(t)n(w)n(o)523 905 y(sets)h(holds)f(the)i(target)e(asso)r(ciated)f(with)j(the)f (curren)n(t)f(v)-5 b(alue-tag)30 b(pair.)g(A)h(second)g(set)523 1005 y(is)25 b(needed)g(since)f(new)h(op)r(erations)e(m)n(ust)i(set)g (up)g(a)g(target)e(b)r(efore)i(they)g(can)f(compute)h(a)523 1104 y(new)20 b(tag.)g(T)-7 b(ogether)19 b(with)h(the)h(heal)e(coun)n (ters,)g(the)i(shot)f(coun)n(ters,)f FG(sho)l(ot)8 b FK([0)p FC(::)p FK(1][0)p FC(::n)s FD(\000)s FK(1],)523 1204 y(implemen)n(t)29 b(the)f(sho)r(oting)g(mec)n(hanism.)g(User)g FC(j)33 b FK(sho)r(ots)27 b(at)h(a)g(target)g FG(he)l(al)9 b FK([)p FC(s)p FK(][0)p FC(::n)19 b FD(\000)f FK(1])523 1303 y(of)26 b(user)f FC(k)j FK(b)n(y)e(making)e(his)i(coun)n(ter)f FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(k)s FK(])26 b(larger)e(than)i(the)g(coun)n(ter)e FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(j)5 b FK(])26 b(of)523 1403 y(user)h FC(k)s FK(,)h(up)f(to)h(a)f(maxim)n(um)h(of)f(6.)606 1503 y(No)n(w)33 b(let's)i(consider)d(the)j(pro)r(cedures.)d(Note)i (that)h(the)f(lines)g(are)f(no)g(longer)g(n)n(um-)523 1602 y(b)r(ered.)c(Instead,)g(the)h(lines)f(in)n(v)n(olving)f(shared)g (v)-5 b(ariable)28 b(access)g(are)h(iden)n(ti\014ed)g(b)n(y)g(one)523 1702 y(of)35 b(the)g(c)n(haracters)d(s,h,r,t,p)j(and)f(w,)h(whic)n(h)f (are)g(mnemonic)h(shorthands)e(for)h(setup,)523 1802 y(heal,)27 b(read,)g(test,)h(propagate)e(and)h(write,)h(resp)r(ectiv)n (ely)-7 b(.)606 1901 y(A)n(t)36 b(the)h(start)e(of)h(an)g(op)r (eration,)f(call)h(it)h FC(a)p FK(,)f(user)f FC(i)h FK(sets)g(up)g(a)g (new)g(target)f(in)h(the)523 2001 y(a)n(v)-5 b(ailable)36 b(heal)h(coun)n(ter)g(set)g(\(1)25 b FD(\000)f FG(me)6 b FC(:)p FG(ss)h FK(\))38 b(b)n(y)f(catc)n(hing)f(up)i(with)g(eac)n(h)f (user's)f(shot)523 2100 y(coun)n(ter.)24 b(It)h(then)g(writes)f(out)h (the)g(target)f(in)h(line)f(h)h(so)f(that)h(the)g(other)f(users)g(can)g (start)523 2200 y(sho)r(oting)29 b(it.)g(After)h(collecting)f(ev)n(ery) e(one's)i(data)g(in)g(line)h(r,)f(it)g(pro)r(ceeds)g(to)g(test)g(ho)n (w)523 2300 y(man)n(y)e(times)g(it's)h(target)e(has)h(b)r(een)g(shot.)g (More)g(precisely)-7 b(,)26 b(if)i(an)n(y)f(user)f(has)h(increased)523 2399 y(its)k(shot)g(coun)n(ter)f(at)h(least)g(3)g(times)g(since)g(it)g (w)n(as)g(previously)e(read)i(in)g(line)g(s,)g(then)h FC(a)523 2499 y FK(will)d(ab)r(ort.)f(The)h FC(j)34 b FK(in)29 b(the)g FH(return)g FK(statemen)n(t)g(is)f(mean)n(t)h(to)g(b)r (e)g(an)n(y)f FC(j)33 b FK(satisfying)28 b(the)523 2599 y(condition)33 b(of)h(the)f(test,)h(but)g(could)f(b)r(e)h(c)n(hosen)f (as)f(the)i(minimal)g(index)f(for)g(the)h(sak)n(e)523 2698 y(of)28 b(de\014niteness.)h(It)f(can)g(b)r(e)h(sho)n(wn)e(that)i FC(a)f FK(completely)g(`con)n(tains')g(an)g(op)r(eration)f FC(b)h FK(of)523 2798 y(user)j FC(j)37 b FK(with)32 b(the)h(v)-5 b(alue)31 b FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(pr)l(ev)10 b FK(.)32 b(Th)n(us,)g FC(a)f FK(can)h(b)r(e)g(imagined)g(to)f(ha)n(v)n (e)g(o)r(ccurred)523 2897 y(righ)n(t)d(b)r(efore)g(or)g(after)g FC(b)g FK(in)h(a)f(linearization,)f(dep)r(ending)i(on)g(whether)f(it's) h(a)f(W)-7 b(rite)29 b(or)523 2997 y(Read)f(op)r(eration.)f(If)i(no)f (user)g(shot)g(the)g(target)g(3)g(times,)g(then)h(user)f FC(i)g FK(sets)g FG(max)38 b FK(to)28 b(an)523 3097 y(index)f(of)h(the) f(largest)f(visible)h(tag.)g(It)h(then)g(sa)n(v)n(es)d(the)j(old)f(v)-5 b(alue)27 b(in)h FG(pr)l(ev)9 b FK(,)28 b(c)n(hanges)e(its)523 3196 y(v)-5 b(alue)27 b(and)g(tag)g(to)g(that)g(of)g FG(max)10 b FK(,)27 b(and)g(asso)r(ciates)f(its)h(target)f(with)i(the)g (new)f(v)-5 b(alue-tag)523 3296 y(pair.)28 b(In)h(line)g(p,)g(record)e FG(me)36 b FK(is)28 b(written)h(out.)g(The)g(purp)r(ose)f(of)h(the)g(W) -7 b(rite)29 b(op)r(erations)523 3396 y(propagating)17 b(the)j(v)-5 b(alue-tag)19 b(pair)f(of)i FG(max)29 b FK(is)20 b(to)f(ensure)g(that)h(the)g(maxim)n(um)f(tag)g(visible)523 3495 y(to)k(one)g(user)g(is)g(at)h(most)f FC(n)g FK(larger)f(than)h (the)h(maxim)n(um)f(tag)g(visible)h(to)f(an)n(y)f(other)h(user.)523 3595 y(The)j(Read)f(pro)r(cedure)g(ends)g(after)h(line)g(p)f(b)n(y)h (returning)f(the)h(v)-5 b(alue)25 b(copied)g(from)h FG(max)10 b FK(.)606 3694 y(The)20 b(W)-7 b(rite)20 b(pro)r(cedure)f(con)n(tin)n (ues)g(b)n(y)g(sho)r(oting)g(all)g(visible)h(targets,)f(that)h(is,)f (increas-)523 3794 y(ing)34 b(all)g(its)h(shot)f(coun)n(ters)f(that)h (are)g(not)g(already)f(6)h(ahead)f(of)h(their)h(corresp)r(onding)523 3894 y(heal)f(coun)n(ter.)g(User)g FC(i)g FK(next)h(c)n(ho)r(oses)d(a)j (tag)e(unique)i(to)f(it)h(whic)n(h)g(is)f(larger)e(than)j(all)523 3993 y(visible)30 b(ones.)g(This)h(is)f(paired)g(with)h(the)g(argumen)n (t)e FC(v)34 b FK(the)d(W)-7 b(rite)30 b(pro)r(cedure,)g(and)g(all)523 4093 y(is)e(written)f(out)h(in)g(line)g(w.)523 4342 y Fl(7.3.2)99 b(Notational)35 b(Conventions)523 4491 y FK(The)29 b(follo)n(wing)e(notions)h(are)g(used)h(in)g(the)g(pro)r(of.) f(Where)g(necessary)-7 b(,)27 b(assume)h(a)h(\014xed,)523 4591 y(but)20 b(arbitrary)e(history)-7 b(.)19 b(The)h FC(m)p FK('th)h(non-ab)r(orting)d(op)r(eration)h(of)g(user)h FC(i)f FK(is)h(denoted)g FC(N)3272 4561 y FA(m)3263 4613 y(i)3335 4591 y FK(.)523 4691 y(If)30 b FC(a)d FK(=)f FC(N)846 4661 y FA(m)837 4712 y(i)939 4691 y FK(then)k FC(a)1174 4661 y FB(+)p FA(r)1292 4691 y FK(denotes)f FC(N)1670 4655 y FA(m)p FB(+)p FA(r)1661 4714 y(i)1817 4691 y FK(,)h(i.e.)g(the)g FC(r)r FK(-th)h(next)f(non-ab)r(orting)e(op) r(eration)523 4790 y(b)n(y)i(user)g FC(i)g FK(follo)n(wing)f FC(a)p FK(,)i(assuming)e(it)i(exists.)f(If)h FC(a)d FK(=)f FC(N)2360 4760 y FA(m)2351 4812 y(i)2453 4790 y FK(then)k FC(a)2689 4760 y Fw(\000)p FA(r)2808 4790 y FK(denotes)f FC(N)3187 4755 y FA(m)p Fw(\000)p FA(r)3178 4814 y(i)3335 4790 y FK(,)523 4890 y(i.e.)c(the)h FC(r)r FK(-th)g(previous)e(non-ab)r (orting)g(op)r(eration)g(b)n(y)h(user)g FC(i)f FK(preceding)h FC(a)p FK(.)g(Use)g(of)g(this)523 4990 y(notation)32 b(dep)r(ends)i(on)e(the)i(assumption)e(that)h FC(r)i(<)d(m)p FK(.)h(Since)g(all)f(shot)h(coun)n(ters)f(are)523 5089 y(initialized)25 b(to)g(0,)g(and)g(increase)f(at)h(most)g(b)n(y)g(one)g (p)r(er)g(non-ab)r(orting)e(W)-7 b(rite)26 b(op)r(eration,)523 5189 y(the)c(v)-5 b(alue)22 b(assigned)f(b)n(y)g(an)h(op)r(eration)e FC(a)i FK(to)g(one)f(of)h(its)g(shot)g(coun)n(ters)f(pro)n(vides)f(a)h (lo)n(w)n(er)523 5289 y(b)r(ound)26 b(on)f FC(m)p FK(.)g(W)-7 b(e'll)25 b(use)h(the)f(notation)g(only)g(where)f(it)i(is)f (justi\014ed)h(on)f(these)g(grounds.)p eop end %%Page: 97 107 TeXDict begin 97 106 bop 2393 299 a FF(7.3.)53 b(Solution)26 b(Metho)r(d)154 b(97)606 506 y FK(The)30 b(ev)n(en)n(ts)e(of)i(an)f(op) r(eration)f FC(a)i FK(in)n(v)n(olving)e(shared)g(v)-5 b(ariable)28 b(access)h(constitute)g(up)523 606 y(to)f(6)f(ev)n(en)n (ts-sets,)f(or)h FG(phases)p FK(:)1326 805 y FC(a:)p FK(s)c FD(\036)g FC(a:)p FK(h)g FD(\036)g FC(a:)p FK(r)f FD(\036)h FC(a:)p FK(t)g FD(\036)g FC(a:)p FK(p)g FD(\036)f FC(a:)p FK(w)p FC(;)606 988 y FK(in)e(accordance)e(with)i(the)g(lab)r (elled)g(lines)g(of)f(the)h(Read)g(and)f(W)-7 b(rite)20 b(pro)r(cedure.)f(Ab)r(ort-)523 1087 y(ing)36 b(op)r(erations)f (consist)h(of)g(only)g(the)h(\014rst)f(3)f(phases,)h(while)g(a)g (non-ab)r(orting)f(Read)523 1187 y(op)r(eration)28 b(has)h(the)h (\014rst)g(5.)f(The)g FC(n)h FK(ev)n(en)n(ts)f(in)g(a)g(phase)g FC(a:)p FK(c)h(\(c)g(one)f(of)g(s,h,r,t,p)h(or)e(w\))523 1286 y(are)f(denoted)g FC(a:)p FK(c)1079 1298 y FA(j)1142 1286 y FK(with)h FC(j)g FD(2)23 b FC(I)7 b FK(,)28 b(and)f(are)g (called)g(c-ev)n(en)n(ts.)606 1386 y(F)-7 b(or)41 b(a)g(shared)f(v)-5 b(ariable)41 b(read)f(ev)n(en)n(t)h FC(e)p FK(,)g(de\014ne)h(p)p FG(-L)l(ast)o FK(\()p FC(e)p FK(\))g(to)f(b)r(e)h(the)g(op)r(eration) 523 1486 y(con)n(taining)25 b(the)h(last)g(p-ev)n(en)n(t)f(preceding)g FC(e)h FK(that)g(accesses)e(the)j(same)e(shared)g(v)-5 b(ariable.)523 1585 y(If)21 b(suc)n(h)e(an)h(ev)n(en)n(t)g(do)r(es)g (not)g(exist,)g(then)h(p)p FG(-L)l(ast)o FK(\()p FC(e)p FK(\))g(is)f(de\014ned)g(to)g(b)r(e)h(the)f(non-op)r(eration)523 1685 y FD(?)p FK(.)606 1785 y(F)-7 b(or)24 b FC(a)g FK(an)g(op)r (eration)g(and)g FG(exp)30 b FK(an)24 b(expression)f(consisting)g(of)i (\(sym)n(b)r(olic)f(or)f(explicit\))523 1884 y(constan)n(ts)g(and)g(lo) r(cal)g(v)-5 b(ariables.)22 b(de\014ne)i FG(exp)5 b FK(@)p FC(a)23 b FK(as)g(the)h(\014nal)g(v)-5 b(alue)23 b(of)g(that)h (expression)523 1984 y(in)33 b(the)g(pro)r(cedure)f(in)n(v)n(o)r (cation)f(corresp)r(onding)g(to)h FC(a)p FK(.)h(Arra)n(y)e(indices)i FC(i;)14 b(j;)g(k)s(;)g(s;)g(t)31 b FK(refer)523 2083 y(to)c(sym)n(b)r(olic)f(constan)n(ts)g(de\014ned)i(in)f(the)g(con)n (text,)g(not)g(to)g(the)g(lo)r(cal)f(v)-5 b(ariables.)26 b(De\014ne)656 2266 y FG(value)7 b FK(@)p FD(?)22 b FK(=)h FG(pr)l(ev)9 b FK(@)p FD(?)22 b FK(=)h FG(tag)8 b FK(@)p FD(?)22 b FK(=)g FG(ss)7 b FK(@)p FD(?)22 b FK(=)h FG(sho)l(ot)8 b FK([][]@)p FD(?)23 b FK(=)f FG(he)l(al)10 b FK([][]@)p FD(?)23 b FK(=)f(0)p FC(;)523 2449 y FK(in)i(accordance)e(with)j(the)g (initialization)e(of)h(the)h(construction.)e(De\014ne)i FG(exp)5 b FK(@)p FC(a:)p FK(c)24 b(\(c)g(one)523 2548 y(of)31 b(s,h,r,t,p)g(or)f(w\))h(as)g(the)g(v)-5 b(alue)31 b(of)g(the)g(expression)f FG(exp)36 b FK(after)31 b(completion)g(of)g (line)g(c)523 2648 y(of)d(the)g(pro)r(cedure)e(in)n(v)n(o)r(cation)h (corresp)r(onding)e(to)j FC(a)p FK(.)g(By)f(con)n(v)n(en)n(tion,)f(the) i(pre\014x)f FG(me)7 b FC(:)523 2748 y FK(is)28 b(omitted)g(when)f FG(exp)33 b FK(is)28 b(a)f(\014eld)h(of)f FG(me)7 b FK(.)523 2997 y Fl(7.3.3)99 b(Corr)-5 b(e)g(ctness)34 b(of)g(Construction)h(1) 523 3146 y FK(Construction)44 b(1)g(clearly)f(satis\014es)g(W)-7 b(ait-F)g(reeness)44 b(as)g(all)g(lo)r(ops)f(range)g(o)n(v)n(er)g FC(I)58 b FK(=)523 3246 y FD(f)p FK(0)p FC(;)14 b(:)g(:)g(:)f(;)h(n)6 b FD(\000)g FK(1)p FD(g)p FK(.)20 b(T)-7 b(o)22 b(pro)n(v)n(e)d (correctness,)h(w)n(e)h(m)n(ust)h(therefore)f(sho)n(w)f(that)i(eac)n(h) f(complete)523 3345 y(prop)r(er)k(history)h(is)g(linearizable.)f(The)h (pro)r(of)g(is)g(based)g(on)g(Lemma)g(7.2.)g(First)g(w)n(e)g(need)523 3445 y(some)h(preparatory)e(claims.)523 3611 y Fv(Claim)32 b FH(7.3)40 b FK(All)e(shared)e(tag,)g(heal)h(and)g(shot)f(coun)n(ters) g(are)g(nondecreasing)f(in)i(the)523 3711 y(course)26 b(of)i(a)f(history)-7 b(.)523 3877 y Fv(Pr)n(oof.)25 b FK(A)i(shared)e(v)-5 b(ariable)25 b FC(R)1559 3889 y FA(i;j)1663 3877 y FK(is)h(c)n(hanged)f(only)h(when)g FG(me)33 b FK(is)26 b(written)g(to)g(it,)h(in)f(an)523 3976 y(h-,)19 b(p-,)h(or)e(w-ev)n(en)n(t)h(of)g(user)g FC(i)p FK(,)g(so)f(a)h(nondecreasing)f(coun)n(ter)g(in)i(the)g(static)f (lo)r(cal)g(v)-5 b(ariable)523 4076 y FG(me)29 b FK(of)23 b(user)f FC(i)g FK(implies)h(a)f(corresp)r(onding)f(nondecreasing)f (coun)n(ter)i(in)h FC(R)2818 4088 y FA(i;j)2919 4076 y FK(for)f(all)g FC(j)28 b FD(2)c FC(I)7 b FK(.)523 4176 y(The)19 b FG(me)7 b FC(:)p FG(sho)l(ot)28 b FK(coun)n(ters)18 b(are)g(clearly)g(nondecreasing)g(and)h(therefore)f(so)h(are)f(the)i (shared)523 4275 y(shot)39 b(coun)n(ters.)f(Eac)n(h)g(heal)h(coun)n (ter)f FG(me)7 b FC(:)p FG(he)l(al)i FK([)p FC(s)p FK(][)p FC(j)c FK(])40 b(of)f(user)f FC(i)h FK(is)g(only)g(c)n(hanged)f(b)n(y) 523 4375 y(assignmen)n(t)31 b(from)h FC(R)1219 4387 y FA(j;i)1293 4375 y FC(:)p FG(sho)l(ot)9 b FK([)p FC(s)p FK(][)p FC(i)p FK(])32 b(and)f(is)h(th)n(us)g(also)f(nondecreasing.)f (It)j(remains)e(to)523 4474 y(sho)n(w)c(that)h FG(me)6 b FC(:)p FG(tag)36 b FK(is)27 b(non-decreasing.)f(Consider)g(the)i(new) g(tag)f FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)35 b FK(that)523 4574 y(is)c(assigned)f(to)h FG(me)6 b FC(:)p FG(tag)39 b FK(prior)30 b(to)h(line)g(p.)h(By)e(the)i (selection)f(of)g FG(max)10 b FK(,)31 b(this)g(is)g(at)g(least)523 4674 y FG(fr)l(om)7 b FK([)p FC(i)p FK(])p FC(:)p FG(tag)40 b FK(whic)n(h)33 b(b)n(y)g(lines)g(h,r)f(is)h(just)h(a)e(cop)n(y)g(of)h FG(me)6 b FC(:)p FG(tag)i FK(.)33 b(Th)n(us,)g FG(me)6 b FC(:)p FG(tag)41 b FK(do)r(esn't)523 4773 y(decrease)31 b(in)i(this)g(assignmen)n(t.)e(In)i(the)g(other)f(assignmen)n(t,)g (prior)f(to)h(line)h(w,)g FG(me)6 b FC(:)p FG(tag)523 4873 y FK(only)27 b(increases.)2247 b Fu(2)523 5089 y Fv(Cor)n(ollar)-6 b(y)31 b FH(7.4)41 b FK(If)33 b(ev)n(en)n(t)g FC(e)g FK(assigns)e FC(v)1877 5101 y FA(e)1946 5089 y FK(to)i(a)g(shared)f(tag,)g(heal,)h(or)f(shot)h(coun)n(ter,)523 5188 y(and)e(ev)n(en)n(t)f FC(f)40 b FK(assigns)29 b FC(v)1312 5200 y FA(f)1386 5188 y FK(from)i(the)g(same)f(shared)g(coun) n(ter,)g(then)i FC(e)c FD(\036)g FC(f)37 b FD(\))29 b FC(v)3117 5200 y FA(f)3189 5188 y FD(\025)f FC(v)3322 5200 y FA(e)523 5288 y FK(and)f FC(v)724 5300 y FA(f)791 5288 y FC(<)22 b(v)918 5300 y FA(e)977 5288 y FD(\))h FC(f)32 b FD(\036)23 b FC(e)p FK(.)p eop end %%Page: 98 108 TeXDict begin 98 107 bop 2393 299 a FF(7.3.)53 b(Solution)26 b(Metho)r(d)154 b(98)523 506 y Fv(Cor)n(ollar)-6 b(y)31 b FH(7.5)41 b FK(Let)22 b FC(a)h FD(\036)g FC(b)f FK(b)r(e)h(non-ab)r (orting)e(op)r(erations)g(b)n(y)h(users)g FC(i)g FK(and)g FC(j)28 b FK(resp)r(ec-)523 606 y(tiv)n(ely)-7 b(.)27 b(If)i FC(b)e FK(is)g(a)g(Read)h(op)r(eration,)e(then)1654 789 y FG(tag)7 b FK(@)p FC(b)22 b FD(\025)h FG(tag)8 b FK(@)p FC(a;)523 971 y FK(and)27 b(if)i FC(b)e FK(is)g(a)h(W)-7 b(rite)27 b(op)r(eration,)g(then)1582 1154 y FG(tag)8 b FK(@)p FC(b)22 b FD(\025)h FG(tag)7 b FK(@)p FC(a)18 b FK(+)g(1)p FC(:)523 1503 y Fv(Pr)n(oof.)i FK(By)g(the)h(selection)f (of)h FG(max)9 b FK(,)21 b FC(a)i FD(\036)g FC(b)p FK(,)d(and)g (corollary)e(7.4,)i FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)e FK(@)p FC(b:)p FK(p)22 b FD(\025)523 1602 y FG(fr)l(om)7 b FK([)p FC(i)p FK(])p FC(:)p FG(tag)g FK(@)p FC(b:)p FK(r)22 b FD(\025)h FG(tag)7 b FK(@)p FC(a)p FK(.)18 b(F)-7 b(or)18 b FC(b)g FK(a)g(non-ab)r(orting)f(Read)h (op)r(eration,)f FG(tag)8 b FK(@)p FC(b)22 b FK(=)h FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)d FK(@)p FC(b:)p FK(p.)523 1702 y(F)-7 b(or)18 b FC(b)g FK(a)g(non-ab)r(orting)f(W)-7 b(rite)18 b(op)r(eration,)g FG(tag)7 b FK(@)p FC(b)22 b FD(\025)h FG(tag)8 b FK(@)p FC(b:)p FK(p)o(+1)22 b(=)h FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)d FK(@)p FC(b:)p FK(p+)523 1802 y(1.)2708 b Fu(2)523 2017 y Fv(Claim)32 b FH(7.6)40 b FK(The)19 b(di\013erence)f FG(me)6 b FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(j)c FK(])p FD(\000)p FG(fr)l(om)h FK([)p FC(j)f FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(i)p FK(])18 b(as)g(w)n(ell)g(as)g FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(sho)l(ot)k FK([)p FC(s)p FK(][)p FC(i)p FK(])p FD(\000)523 2117 y FG(me)d FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][)p FC(j)5 b FK(])27 b(b)r(et)n(w)n(een)f(corresp)r(onding)e (shot)i(and)g(heal)g(coun)n(ter)g(as)f(computed)i(in)f(the)523 2217 y(Read)h(and)h(W)-7 b(rite)28 b(pro)r(cedure)e(is)i(b)r(et)n(w)n (een)f(0)g(and)h(6)f(\(inclusiv)n(e\).)523 2383 y Fv(Pr)n(oof.)j FK(Using)g(the)g(0)g(initialization)g(of)g(the)h(construction,)e(claim) h(7.3,)f(and)h(the)h(w)n(a)n(y)523 2482 y(shot)c(coun)n(ters)f(are)g (increased,)h(di\013erences)f(less)h(than)h(0)e(or)h(greater)e(than)j (6)e(are)h(easily)523 2582 y(sho)n(wn)g(to)g(lead)h(to)f(a)g(con)n (tradiction.)1572 b Fu(2)523 2798 y Fv(Claim)32 b FH(7.7)40 b FK(Let)19 b FC(a)f FK(b)r(e)h(an)f(op)r(eration)f(b)n(y)h(user)g FC(i)p FK(,)g FC(b)23 b FK(=)g(p)p FG(-L)l(ast)o FK(\()p FC(a:)p FK(t)2587 2810 y FA(j)2622 2798 y FK(\),)18 b(and)h FC(c)k FK(=)f(p)p FG(-L)l(ast)p FK(\()p FC(a:)p FK(r)3354 2810 y FA(j)3389 2798 y FK(\).)523 2897 y(Let)28 b FC(s)23 b FK(=)f FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(ss)i FK(@)p FC(a:)p FK(r)o(.)28 b(Then)625 3064 y(1.)41 b FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(pr)l(ev)k FK(@)p FC(a:)p FK(t)23 b(=)g FG(pr)l(ev)9 b FK(@)p FC(b;)14 b(s)22 b FK(=)h FG(ss)7 b FK(@)p FC(c)625 3230 y FK(2.)41 b(if)28 b FC(c)23 b FK(=)f FD(?)28 b FK(then)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)i FK(@)p FC(a:)p FK(r)22 b(=)h(0)731 3329 y(else)k FG(tag)7 b FK(@)p FC(c:)p FK(p)23 b FD(\024)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)i FK(@)p FC(a:)p FK(r)22 b FD(\024)h FG(tag)8 b FK(@)p FC(c)625 3495 y FK(3.)41 b(for)27 b(all)g FC(k)f FD(2)d FC(I)7 b FK(,)28 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)22 b(=)g FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(c)625 3661 y FK(4.)41 b(for)27 b(all)g FC(k)f FD(2)d FC(I)7 b(;)14 b(z)27 b FD(2)c(f)p FK(0)p FC(;)14 b FK(1)p FD(g)p FK(,)26 b(if)i FC(c)23 b FK(=)f FD(?)28 b FK(then)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(sho)l(ot)j FK([)p FC(z)t FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)22 b(=)g(0)731 3761 y(else)27 b FG(sho)l(ot)8 b FK([)p FC(z)t FK(][)p FC(k)s FK(]@)p FC(c:)p FK(p)22 b FD(\024)h FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(sho)l(ot)k FK([)p FC(z)t FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)21 b FD(\024)i FG(sho)l(ot)8 b FK([)p FC(z)t FK(][)p FC(k)s FK(]@)p FC(c)523 3993 y Fv(Pr)n(oof.)625 4159 y FK(1.)41 b(Only)27 b(the)h(p-ev)n(en)n(ts)e(of)i(user)f FC(j)33 b FK(c)n(hange)26 b FC(R)2079 4171 y FA(j;i)2154 4159 y FC(:)p FG(pr)l(ev)37 b FK(and)27 b FC(R)2587 4171 y FA(j;i)2662 4159 y FC(:)p FG(ss)7 b FK(.)625 4325 y(2.)41 b(In)23 b(case)f FC(c)h FK(=)f FD(?)p FK(,)h(no)g(tag)f(has)h(o)n(v)n (erwritten)e(the)i(initial)g(0.)g(In)g(case)f FC(c)h FD(6)p FK(=)g FD(?)p FK(,)g(the)g(\014rst)731 4425 y(inequalit)n(y)28 b(follo)n(ws)g(directly)h(from)g(the)h(de\014nition)f(of)g FC(c)g FK(and)g(corollary)e(7.4.)h(F)-7 b(or)731 4525 y(the)33 b(second,)g(note)g(that)h(after)f FC(c)p FK(,)g(the)h(v)-5 b(alue)33 b(of)g FC(R)2378 4537 y FA(j;i)2453 4525 y FC(:)p FG(tag)41 b FK(remains)32 b FG(tag)7 b FK(@)p FC(c)33 b FK(un)n(til)731 4624 y FC(c)767 4594 y FB(+1)855 4624 y FC(:)p FK(p)924 4645 y FA(i)979 4624 y FK(\(if)c(an)n(y\),)e (whic)n(h)g(b)n(y)h(de\014nition)g(of)f FC(c)h FK(do)r(esn't)g(precede) f FC(a:)p FK(r)2868 4636 y FA(j)2903 4624 y FK(.)625 4790 y(3.)41 b(After)f FC(c:)p FK(p)1065 4811 y FA(i)1132 4790 y FK(\(or)f(from)h(the)g(start)f(of)g(history)g(if)h FC(c)j FK(=)g FD(?)p FK(\),)d(the)g(v)-5 b(alue)39 b(of)h FG(ss)46 b FK(in)731 4890 y(user)20 b FC(j)5 b FK('s)20 b FG(me)27 b FK(remains)20 b FC(s)g FK(at)h(least)f(un)n(til)h FC(c)2017 4860 y FB(+1)2105 4890 y FC(:)p FK(p)g(\(if)g(an)n(y\),)f (hence)h(only)f(its)h FG(he)l(al)10 b FK([1)t FD(\000)t FC(s)p FK(])731 4990 y(coun)n(ters)26 b(are)h(c)n(hanged)f(at)i(least)f (un)n(til)h(a)f(new)h(op)r(eration)e(starts)h(after)g FC(c)3087 4959 y FB(+1)3175 4990 y FK(.)625 5156 y(4.)41 b(Analogous)26 b(to)h(item)h(2.)3296 5322 y Fu(2)p eop end %%Page: 99 109 TeXDict begin 99 108 bop 2393 299 a FF(7.3.)53 b(Solution)26 b(Metho)r(d)154 b(99)523 506 y Fv(Claim)32 b FH(7.8)40 b FK(Let)28 b FC(a;)14 b(b)22 b FK(=)h FC(a)1384 476 y FB(+1)1500 506 y FK(b)r(e)28 b(t)n(w)n(o)f(non-ab)r(orting)f(op)r (erations)g(b)n(y)h(user)g FC(i)p FK(.)625 661 y(1.)41 b FG(pr)l(ev)9 b FK(@)p FC(b)22 b FK(=)h FG(value)7 b FK(@)p FC(a)625 822 y FK(2.)41 b FD(8)p FC(j)28 b FD(2)23 b FC(I)7 b(;)14 b(s)23 b FD(2)g(f)p FK(0)p FC(;)14 b FK(1)p FD(g)21 b FK(:)j FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(j)d FK(]@)p FC(b)22 b FD(\024)h FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(j)d FK(]@)p FC(a)18 b FK(+)h(1)625 982 y(3.)41 b(If)28 b FC(a)f FK(and)h FC(b)f FK(are)g(W)-7 b(rite)27 b(op)r(erations)g(then)h FG(tag)7 b FK(@)p FC(b)23 b FD(\025)f FG(tag)8 b FK(@)p FC(a)18 b FK(+)g FC(n)p FK(.)523 1198 y Fv(Pr)n(oof.)625 1352 y FK(1.)41 b(Since)35 b FC(b)g FK(do)r(esn't)h(ab)r(ort,)f(and)g(ab)r(orting)f(op) r(erations)h(don't)g(c)n(hange)f FG(me)7 b FC(:)p FG(value)g FK(,)731 1452 y FG(pr)l(ev)i FK(@)p FC(b)22 b FK(=)h FG(value)7 b FK(@)p FC(b:)p FK(s)22 b(=)h FG(value)6 b FK(@)p FC(a)p FK(.)625 1612 y(2.)41 b(Similarly)-7 b(.)625 1773 y(3.)41 b(Since)32 b FG(tag)8 b FK(@)p FC(b)30 b FD(\021)h FG(tag)7 b FK(@)p FC(a)31 b FD(\021)f FC(i)83 b FK(\(mo)r(d)28 b FC(n)p FK(\),)33 b(their)f(di\013erence)g(is)h(a)e (m)n(ultiple)i(of)g FC(n)p FK(,)731 1873 y(and)27 b(b)n(y)g(corollary)e (7.5,)i(it)h(is)g(p)r(ositiv)n(e.)3296 2027 y Fu(2)523 2232 y Fv(Claim)k FH(7.9)40 b FK(Let)33 b FC(a)f FK(b)r(e)h(an)f(ab)r (orting)g(op)r(eration)f(b)n(y)h(user)g FC(i)p FK(,)g(and)h(let)f FC(j)38 b FK(b)r(e)33 b(the)g(index)523 2332 y(for)24 b(whic)n(h)g(the)g(ab)r(ortion)f(condition)h(holds.)g(Then)g(there)g (exists)f(a)h(non-ab)r(orting)f(W)-7 b(rite)523 2431 y(op)r(eration)54 b FC(b)28 b FK(b)n(y)f(user)g FC(j)5 b FK(,)27 b(suc)n(h)h(that)1160 2600 y FC(a:)p FK(s)1259 2612 y FA(j)1318 2600 y FD(\036)22 b FC(b)h FD(\036)f FC(a:)p FK(t)1651 2612 y FA(j)1704 2600 y FD(^)d FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(pr)l(ev)10 b FK(@)p FC(a)22 b FK(=)h FG(value)7 b FK(@)p FC(b:)523 2929 y Fv(Pr)n(oof.)34 b FK(Let)g FC(c)g FK(=)g(p)p FG(-L)l(ast)p FK(\()p FC(a:)p FK(t)1527 2941 y FA(j)1562 2929 y FK(\),)h FC(b)f FK(=)g FC(c)1857 2899 y Fw(\000)p FB(1)1946 2929 y FK(,)g(and)g FC(d)h FK(=)f FC(c)2384 2899 y Fw(\000)p FB(2)2507 2929 y FK(\(recall)g(Section)g(7.3.2)f(on)523 3028 y(notation\).)h(Then)h FC(d)g FD(\036)f FC(b)h FD(\036)f FC(c:)p FK(p)h FD(\036)f FC(a:)p FK(t)1826 3040 y FA(j)1896 3028 y FK(and)g(b)n(y)g(claims)g(7.7,7.8,)f FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(pr)l(ev)10 b FK(@)p FC(a)34 b FK(=)523 3128 y FG(pr)l(ev)10 b FK(@)p FC(c)25 b FK(=)h FG(value)7 b FK(@)p FC(b)p FK(.)29 b(Also,)g(with)h FC(s)c FK(=)f(1)20 b FD(\000)f FC(ss)p FK(@)p FC(a)p FK(,)29 b(b)n(y)g(ab)r(ortion)f(of)i FC(a)p FK(,)f(claims)g(7.7)g(and) 523 3228 y(7.8,)594 3396 y FG(he)l(al)9 b FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(a)18 b FK(+)h(3)j FD(\024)h FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(i)p FK(]@)p FC(a)23 b FD(\024)f FG(sho)l(ot)9 b FK([)p FC(s)p FK(][)p FC(i)p FK(]@)p FC(c)22 b FD(\024)h FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(i)p FK(]@)p FC(d)18 b FK(+)g(2)p FC(:)523 3565 y FK(This)34 b(sho)n(ws)g(that)h FG(he)l(al)9 b FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(a)34 b(<)g FG(sho)l(ot)9 b FK([)p FC(s)p FK(][)p FC(i)p FK(]@)p FC(d)p FK(,)34 b(hence)g(not)h FC(d)g FD(\036)f FC(a:)p FK(s)2898 3577 y FA(j)2933 3565 y FK(.)h(Com)n(bined)523 3664 y(with)28 b FC(d)23 b FD(\036)g FC(b)k FK(this)h(yields)g FC(a:)p FK(s)1424 3676 y FA(j)1482 3664 y FD(\036)23 b FC(b)p FK(.)1667 b Fu(2)606 3808 y FK(The)28 b(follo)n(wing)e(claim)i(will)f(b)r(e)h(used)g(in)g(later)f (sections.)523 3969 y Fv(Claim)32 b FH(7.10)40 b FK(If)30 b FC(a)f FK(is)g(an)g(op)r(eration)f FC(a)h FK(b)n(y)g(user)f FC(i)p FK(,)h(and)g FC(w)2415 3981 y FB(1)2453 3969 y FC(;)14 b(w)2549 3981 y FB(2)2586 3969 y FC(;)g(w)2682 3981 y FB(3)2749 3969 y FK(are)28 b(non-ab)r(orting)523 4068 y(W)-7 b(rite)28 b(op)r(erations)e(b)n(y)h(user)g FC(k)s FK(,)h(suc)n(h)f(that)1318 4237 y FC(a:)p FK(h)1432 4249 y FA(k)1495 4237 y FD(\036)c FC(w)1642 4249 y FB(1)1680 4237 y FC(:)p FK(r)1735 4249 y FA(i)1786 4237 y FD(\036)g FC(w)1933 4249 y FB(2)1993 4237 y FD(\036)g FC(w)2140 4249 y FB(3)2178 4237 y FC(:)p FK(w)2261 4249 y FA(i)2311 4237 y FD(\036)g FC(a:)p FK(t)2498 4249 y FA(k)2539 4237 y FC(;)523 4405 y FK(then)28 b FC(a)g FK(ab)r(orts.)523 4566 y Fv(Pr)n(oof.)f FK(Let)h FC(s)23 b FK(=)f FG(ss)7 b FK(@)p FC(a)p FK(.)27 b(Claim)h(7.6)e(and)i(the)g(assumption)f(of)g (the)h(claim)g(giv)n(e)910 4734 y FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(i)p FK(]@)p FC(w)1386 4746 y FB(1)1423 4734 y FC(:)p FK(r)23 b FD(\025)g FG(fr)l(om)7 b FK([)p FC(i)p FK(])p FC(:)p FG(he)l(al)i FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(w)2310 4746 y FB(1)2347 4734 y FC(:)p FK(r)23 b FD(\025)g FG(he)l(al)9 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a:)523 4903 y FK(According)17 b(to)i(the)f(sho)r (oting)g(mec)n(hanism,)g(induction)h(on)f FC(m)g FK(sho)n(ws)f(that)i FG(sho)l(ot)9 b FK([)p FC(s)p FK(][)p FC(i)p FK(]@)p FC(w)3335 4915 y FA(m)3420 4903 y FD(\025)523 5003 y FG(he)l(al)h FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a)18 b FK(+)g(min\()p FC(m;)c FK(6\).)28 b(Since)f FC(w)1739 5015 y FB(3)1777 5003 y FC(:)p FK(w)1860 5015 y FA(i)1911 5003 y FD(\036)22 b FC(a:)p FK(t)2098 5015 y FA(k)2138 5003 y FK(,)28 b(corollary)d(7.4)i(implies)886 5171 y FG(tmp)5 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(i)p FK(]@)p FC(a:)p FK(t)23 b FD(\025)g FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(i)p FK(]@)p FC(w)2247 5183 y FB(3)2307 5171 y FD(\025)23 b FG(he)l(al)9 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a)18 b FK(+)g(3)p FC(;)523 5340 y FK(hence)28 b FC(a)f FK(ab)r(orts.)2218 b Fu(2)p eop end %%Page: 100 110 TeXDict begin 100 109 bop 2355 299 a FF(7.3.)53 b(Solution)26 b(Metho)r(d)153 b(100)523 506 y Fv(Lemma)32 b FH(7.11)40 b FG(A)n(ny)29 b(c)l(omplete)h(pr)l(op)l(er)g(history)h FC(h)e FG(of)h(Construction)g(1)f(is)h(line)l(arizable.)523 772 y Fv(Pr)n(oof.)23 b FK(The)g(pro)r(of)g(is)g(based)g(on)g(the)g (tag)g(lemma.)g(W)-7 b(e)24 b(sho)n(w)e(that)i(there)f(is)g(a)g (function)523 872 y FC(\034)9 b FK(\(\),)31 b(mapping)e(eac)n(h)g(op)r (eration)g(in)h FC(h)f FK(to)h(a)f(rational)f(n)n(um)n(b)r(er,)i(that)g (satis\014es)f(Unique-)523 971 y(ness,)i(In)n(tegrit)n(y)-7 b(,)31 b(and)h(Precedence.)e(Let)i FC(a)f FK(b)r(e)h(an)g(op)r(eration) e(b)n(y)i(user)f FC(i)p FK(.)g(If)h FC(a)g FK(do)r(esn't)523 1071 y(ab)r(ort,)f(then)h(simply)g(set)g FC(\034)9 b FK(\()p FC(a)p FK(\))31 b(=)e FG(tag)7 b FK(@)p FC(a)p FK(.)32 b(Otherwise,)e(if)j FC(a)e FK(ab)r(orts,)g(let)h FC(b)f FK(b)r(e)h(the)g(op-)523 1171 y(eration)d(giv)n(en)f(b)n(y)i (claim)f(7.9.)g(No)n(w)g(set)g FC(\034)9 b FK(\()p FC(a)p FK(\))28 b(=)d FG(tag)8 b FK(@)p FC(b)29 b FK(if)h FC(a)f FK(is)h(a)f(Read)g(op)r(eration,)g(or)523 1270 y(set)e FC(\034)9 b FK(\()p FC(a)p FK(\))25 b(=)d FG(tag)8 b FK(@)p FC(b)17 b FD(\000)g FC(\017)1267 1282 y FA(a)1307 1270 y FK(,)27 b(if)h FC(a)f FK(is)g(a)g(W)-7 b(rite)28 b(op)r(eration,)e(where)h(0)22 b FC(<)h(\017)2707 1282 y FA(a)2770 1270 y FC(<)g FK(1)j(is)i(a)e(fraction)523 1370 y(unique)i(to)f FC(a)p FK(.)523 1536 y FH(Uniqueness)41 b FK(Let)32 b FC(a)h FK(and)f FC(b)g FK(b)r(e)h(di\013eren)n(t)f(W)-7 b(rites)32 b(op)r(erations)f(b)n(y)i(users)e FC(i)h FK(and)g FC(j)38 b FK(re-)731 1636 y(sp)r(ectiv)n(ely)-7 b(.)21 b(If)i(either)e(ab)r(orts,)g(then)i(its)f(tag)f(has)g(a)h(unique)g (fractional)f(part)g(and)h(is)731 1735 y(therefore)e(di\013eren)n(t)h (from)g(the)g(other)g(op)r(eration's)f(tag.)g(Supp)r(ose)i(neither)f (ab)r(orts.)731 1835 y(Then)32 b FC(\034)9 b FK(\()p FC(a)p FK(\))31 b(=)f FG(tag)7 b FK(@)p FC(a)30 b FK(=)f FC(i)83 b FK(\(mo)r(d)28 b FC(n)p FK(\),)k(and)g FC(\034)9 b FK(\()p FC(b)p FK(\))31 b(=)f FG(tag)7 b FK(@)p FC(b)29 b FK(=)h FC(j)88 b FK(\(mo)r(d)28 b FC(n)p FK(\).)k(If)731 1934 y FC(i)22 b FD(6)p FK(=)h FC(j)28 b FK(then)c(Uniqueness)f(follo)n (ws)g(immediately)-7 b(.)23 b(In)h(case)e FC(i)h FK(=)g FC(j)5 b FK(,)23 b(one)g(W)-7 b(rite)24 b(op)r(er-)731 2034 y(ation)i(m)n(ust)g(precede)g(the)h(other,)f(and)g(Uniqueness)g (follo)n(ws)g(from)g(corollary)e(7.5.)523 2200 y FH(In)m(tegrit)m(y)42 b FK(F)-7 b(or)24 b(ab)r(orting)g(Read)g(op)r(erations,)f(In)n(tegrit)n (y)g(follo)n(ws)h(from)g(claim)g(7.9.)g(The)731 2300 y(v)-5 b(alue-tag)19 b(pair)h(that)g(a)g(non-ab)r(orting)f(Read)h(op)r (eration)g FC(a)g FK(copies)g(m)n(ust)g(originate)731 2399 y(from)i(a)g(non-ab)r(orting)f(W)-7 b(rite)23 b(op)r(eration)f FC(b)p FK(.)g(Clearly)-7 b(,)22 b FD(:)p FK(\()p FC(a)h FD(\036)g FC(b)p FK(\).)g(Com)n(bined)f(with)731 2499 y(the)28 b(de\014nition)g(of)f FC(\034)9 b FK(,)29 b(this)e(pro)n(v)n (es)f(In)n(tegrit)n(y)-7 b(.)523 2665 y FH(Precedence)42 b FK(Consider)27 b(t)n(w)n(o)g(op)r(erations)g FC(a)d FD(\036)f FC(b)p FK(.)28 b(W)-7 b(e)28 b(m)n(ust)g(sho)n(w)f(that)i FC(\034)9 b FK(\()p FC(a)p FK(\))24 b FD(\024)g FC(\034)9 b FK(\()p FC(b)p FK(\).)731 2765 y(If)30 b FC(a)f FK(ab)r(orts,)g(then) h(b)n(y)f(claim)h(7.9)e(and)i(de\014nition)g(of)f FC(\034)9 b FK(,)30 b(there)g(exists)f(a)g FC(j)35 b FK(and)29 b(a)731 2864 y(non-ab)r(orting)i(op)r(eration)g FC(a)1652 2834 y Fw(0)1708 2864 y FK(suc)n(h)h(that)h FC(a)2129 2834 y Fw(0)2183 2864 y FD(\036)e FC(a:)p FK(t)2378 2876 y FA(j)2444 2864 y FD(\036)g FC(b)h FK(and)g FC(\034)9 b FK(\()p FC(a)p FK(\))33 b FD(\024)d FC(\034)9 b FK(\()p FC(a)3176 2834 y Fw(0)3201 2864 y FK(\),)32 b(in)731 2964 y(whic)n(h)23 b(case)h(it)g(w)n(ould)f(su\016ce)h(to)g(sho)n(w)f (Precedence)g(for)g FC(a)2594 2934 y Fw(0)2640 2964 y FD(\036)g FC(b)p FK(.)h(So)f(without)i(loss)731 3064 y(of)f(generalit)n(y)f(w)n(e)h(can)g(assume)f(that)i FC(a)f FK(do)r(esn't)h(ab)r(ort.)e(If)i FC(b)f FK(do)r(esn't)h(ab)r (ort,)e(then)731 3163 y(Precedence)34 b(follo)n(ws)g(from)h(corollary)e (7.5.)h(Supp)r(ose)i FC(b)f FK(ab)r(orts.)f(By)h(claim)h(7.9,)731 3263 y(there)30 b(exist)h(a)f FC(j)36 b FK(and)31 b(a)f(non-ab)r (orting)f(op)r(eration)h FC(b)2435 3233 y Fw(0)2489 3263 y FK(suc)n(h)g(that)i FC(a)c FD(\036)g FC(b:)p FK(s)3119 3275 y FA(j)3183 3263 y FD(\036)g FC(b)3312 3233 y Fw(0)3335 3263 y FK(.)731 3362 y(Then)g(w)n(e)g(use)g(the)h(de\014nition)g(of)f FC(\034)38 b FK(and)28 b(corollary)e(7.5)i(to)g(sho)n(w)f(Precedence:)g (If)731 3462 y FC(b)h FK(is)h(a)f(W)-7 b(rite)29 b(op)r(eration)e(then) i FC(\034)9 b FK(\()p FC(b)p FK(\))26 b(=)f FG(tag)7 b FK(@)p FC(b)2221 3432 y Fw(0)2263 3462 y FD(\000)19 b FC(\017)2381 3474 y FA(b)2438 3462 y FD(\025)25 b FG(tag)7 b FK(@)p FC(a)19 b FK(+)g(1)f FD(\000)h FC(\017)3033 3474 y FA(b)3091 3462 y FC(>)24 b(\034)9 b FK(\()p FC(a)p FK(\).)731 3562 y(If)28 b FC(b)f FK(is)g(a)h(Read)f(op)r(eration)f (then)j FC(\034)9 b FK(\()p FC(b)p FK(\))23 b(=)g FG(tag)8 b FK(@)p FC(b)2277 3532 y Fw(0)2322 3562 y FD(\025)23 b FG(tag)7 b FK(@)p FC(a)23 b FK(=)g FC(\034)9 b FK(\()p FC(a)p FK(\).)3296 3728 y Fu(2)523 4085 y FL(7.4)116 b(Bounding)37 b(the)i(coun)m(ters)523 4284 y FK(Ha)n(ving)32 b(pro)n(v)n(en)f(Construction)g(1)i(correct,)e(w)n(e)h(will)h(mak)n(e)f (a)g(correctness)e(preserving)523 4384 y(transformation)21 b(that)h(renders)f(all)h(v)-5 b(ariables)21 b(b)r(ounded.)i(The)f (transformation)f(is)h(based)523 4483 y(on)k(3)h(k)n(ey)f(lemmas.)g (The)h(\014rst)f(formalizes)f(the)i(idea)g(that)g(a)f(tag,)g(whose)g (target)g(is)g(seen)523 4583 y(to)j(ha)n(v)n(e)f(b)r(een)h(shot)g (su\016cien)n(tly)g(man)n(y)f(times,)h(can)g(b)r(e)g(considered)f(old,) h(and)g(ignored)523 4682 y(in)23 b(the)g(selection)f(of)h(a)f(maxim)n (um)h(tag.)f(The)h(second)f(sho)n(ws)f(that)i(the)g(remaining,)f(`liv)n (e',)523 4782 y(tags)k(are)g(in)h(a)g(b)r(ounded)g(range,)f(whic)n(h)h (is)g(the)g(basis)g(for)f(b)r(ounding)h(the)h(tags.)e(Finally)-7 b(,)523 4882 y(the)25 b(third)h(sho)n(ws)e(that)h(the)g(p)r(erceiv)n (ed)g(n)n(um)n(b)r(er)g(of)g(times)g(a)g(target)f(is)h(shot)f(is)h(b)r (ounded)523 4981 y(b)r(oth)j(from)e(b)r(elo)n(w)h(and)g(ab)r(o)n(v)n (e,)f(whic)n(h)h(is)g(the)h(basis)e(for)h(b)r(ounding)g(the)g(heal)g (and)g(shot)523 5081 y(coun)n(ters.)p eop end %%Page: 101 111 TeXDict begin 101 110 bop 2157 299 a FF(7.4.)53 b(Bounding)26 b(the)f(coun)n(ters)153 b(101)523 506 y Fl(7.4.1)99 b(Old)34 b(tags)523 656 y Fv(Lemma)e FH(7.12)40 b FG(L)l(et)d FC(a)g FG(b)l(e)g(a)g(non-ab)l(orting)g(op)l(er)l(ation)i(by)e(user)g FC(i)p FG(.)g(L)l(et)g FC(j;)14 b(k)39 b FD(2)e FC(I)7 b FG(,)37 b(and)523 756 y FC(s)23 b FK(=)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:ss)p FK(@)p FC(a:)p FK(r)o FG(.)30 b(If)1021 910 y(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)h FK([)p FC(s)p FK(][)p FC(j)d FK(]@)p FC(a:)p FK(r)18 b FD(\000)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)22 b FD(\025)g FK(6)523 1065 y FG(\()p FC(a)30 b FG(se)l(es)f(6)h(shots)g(by)h FC(k)h FG(on)e FC(j)5 b FG('s)30 b(tar)l(get\),)g(then)1321 1220 y(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(tag)g FK(@)p FC(a:)p FK(r)23 b FC(>)f FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)j FK(@)p FC(a:)p FK(r)523 1529 y Fv(Pr)n(oof.)18 b FK(Let)g FC(b)23 b FK(=)g(p)p FG(-L)l(ast)o FK(\()p FC(a:)p FK(r)1473 1541 y FA(j)1508 1529 y FK(\))c(and)f FC(c)23 b FK(=)f(p)p FG(-L)l(ast)p FK(\()p FC(a:)p FK(r)2217 1541 y FA(k)2258 1529 y FK(\).)d(Using)f(in)g(succession)g(claim)g (7.7,)523 1629 y(the)28 b(assumption)f(of)h(the)g(claim,)f(and)h(claim) f(7.7)g(again:)1202 1784 y FG(sho)l(ot)9 b FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(c)23 b FD(\025)f FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)i FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(a:)p FK(r)22 b FD(\025)1144 1938 y FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)18 b(+)g(6)23 b(=)f FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b)17 b FK(+)h(6)523 2071 y(This)28 b(sho)n(ws)e(the)i(existence)f(of)1389 2226 y FC(w)1448 2238 y FB(3)1508 2226 y FD(\036)c FC(w)1655 2238 y FB(4)1716 2226 y FD(\036)f FC(w)1862 2238 y FB(5)1923 2226 y FD(\036)h FC(w)2070 2238 y FB(6)2107 2226 y FC(:)p FK(w)2190 2238 y FA(i)2241 2226 y FD(\036)g FC(a:)p FK(r)2428 2238 y FA(k)2469 2226 y FC(;)523 2380 y FK(where)28 b FC(w)823 2392 y FA(m)886 2380 y FC(;)14 b FK(3)24 b FD(\024)f FC(m)h FD(\024)g FK(6)j(is)h(the)h FG(\014rst)e FK(non-ab)r(orting)g(W) -7 b(rite)29 b(op)r(eration)e(b)n(y)g(user)h FC(k)j FK(suc)n(h)523 2480 y(that)1299 2580 y FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(j)d FK(]@)p FC(w)1785 2592 y FA(m)1871 2580 y FK(=)23 b FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b)17 b FK(+)h FC(m:)523 2712 y FK(By)27 b(corollary)e(7.4,)i (claim)h(7.8,)e(and)i(the)g(tag)f(c)n(hoice)g(in)g(Construction)g(1,) 1419 2867 y FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(tag)h FK(@)p FC(a:)p FK(r)22 b FD(\025)g FG(tag)8 b FK(@)p FC(w)2337 2879 y FB(6)2397 2867 y FD(\025)1097 3022 y FG(tag)g FK(@)p FC(w)1337 3034 y FB(4)1393 3022 y FK(+)18 b(2)p FC(n)k FD(\025)h FG(fr)l(om)7 b FK([)p FG(max)i FK(])p FC(:)p FG(tag)f FK(@)p FC(w)2318 3034 y FB(4)2355 3022 y FC(:)p FK(p)19 b(+)f(2)p FC(n)g FK(+)g(1)p FC(:)523 3154 y FK(If)27 b FC(b)22 b FK(=)h FD(?)p FK(,)j(then)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)j FK(@)p FC(a:)p FK(r)22 b(=)h(0)i(and)h(the)h(lemma)f(follo)n(ws)f(immediately) -7 b(.)27 b(Other-)523 3254 y(wise,)g(b)n(y)h(claim)f(7.7)g(and)g(the)h (tag)f(c)n(hoice)g(in)h(Construction)f(1,)1011 3409 y FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)j FK(@)p FC(a:)p FK(r)22 b FD(\024)h FG(tag)7 b FK(@)p FC(b)22 b FD(\024)h FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)e FK(@)p FC(b:)p FK(p)17 b(+)h FC(n:)523 3564 y FK(Th)n(us,)27 b(to)h(pro)n(v)n(e)e(the)i(lemma)f(it)h(su\016ces)g (to)f(sho)n(w)g(that)914 3718 y FG(fr)l(om)6 b FK([)p FG(max)k FK(])p FC(:)p FG(tag)e FK(@)p FC(w)1554 3730 y FB(4)1591 3718 y FC(:)p FK(p)19 b(+)f(2)p FC(n)g FK(+)g(1)k FC(>)h FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)d FK(@)p FC(b:)p FK(p)18 b(+)g FC(n:)220 b FK(\(7.1\))606 3873 y(Since)37 b(b)n(y)f(its)g(de\014nition,)h FC(b)f FK(do)r(esn't)h(ab)r(ort,)e(corollary)f(7.4)i(implies)g FC(b:)p FK(r)h FD(\036)h FC(b:)p FK(t)3215 3885 y FA(k)3293 3873 y FD(\036)523 3973 y FC(w)582 3985 y FB(3)620 3973 y FC(:)p FK(w)703 3985 y FA(j)761 3973 y FD(\036)22 b FC(w)907 3985 y FB(4)945 3973 y FK(.)d(Let)f(W)-7 b(rite)19 b(op)r(eration)e FC(w)k FK(b)r(e)e(the)g(originator)d(of)i(the)h(tag)f FG(fr)l(om)7 b FK([)p FG(max)i FK(])p FC(:)p FG(tag)f FK(@)p FC(b:)p FK(p)o(.)523 4072 y(W)-7 b(e)34 b(ha)n(v)n(e)e FD(:)p FK(\()p FC(b:)p FK(r)h FD(\036)g FC(w)r(:)p FK(w\).)h(Since)g FC(b:)p FK(r)e FD(\036)h FC(w)1916 4084 y FB(4)1987 4072 y FK(and)g FC(w)r(:)p FK(p)h FD(\036)f FC(w)r(:)p FK(w,)h(it)g(m)n(ust) g(therefore)e(b)r(e)523 4172 y(that)c FC(w)r(:)p FK(p)c FD(\036)e FC(w)1003 4184 y FB(4)1041 4172 y FK(.)28 b(This)f(sho)n(ws) 653 4327 y FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)e FK(@)p FC(w)1294 4339 y FB(4)1331 4327 y FC(:)p FK(p)23 b FD(\025)g FG(tag)7 b FK(@)p FC(w)r(:)p FK(p)24 b FD(\025)f FG(tag)7 b FK(@)p FC(w)21 b FD(\000)d FC(n)23 b FK(=)f FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)e FK(@)p FC(b)18 b FD(\000)g FC(n;)523 4481 y FK(whic)n(h)28 b(immediately)f(implies)h(7.1.)1651 b Fu(2)523 4675 y Fv(Definition)32 b FH(7.13)41 b FK(In)27 b(the)h(con)n(text)g(of)f(a)g(Read)h(or)e(W)-7 b(rite)28 b(pro)r(cedure,)f(de\014ne)728 4830 y FG(alive)8 b FK(\()p FC(j)d FK(\))84 b FD(\021)e FK(\()p FD(8)p FC(k)27 b FD(2)c FC(I)30 b FK(:)23 b FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)i FK([)p FC(s)p FK(][)p FC(j)c FK(])18 b FD(\000)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(])23 b FC(<)g FK(6\))p FC(;)1234 4954 y FK(where)k FC(s)c FK(=)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(ss)523 5109 y Fv(Cor)n(ollar)-6 b(y)31 b FH(7.14)41 b FK(F)-7 b(or)27 b(an)n(y)f(non-ab)r(orting)g(op)r(eration)h FC(a)p FK(,)h FG(alive)7 b FK(\()p FG(max)j FK(\)@)p FC(a:)p FK(p.)606 5264 y(This)26 b(sho)n(ws)e(that)i(the)g(c)n(hoice)e(of)i FG(max)35 b FK(can)25 b(b)r(e)h(restricted)f(to)h(those)f FC(j)j FD(2)23 b FC(I)33 b FK(for)25 b(whic)n(h)523 5363 y FG(alive)8 b FK(\()p FC(j)d FK(\))28 b(holds.)p eop end %%Page: 102 112 TeXDict begin 102 111 bop 2157 299 a FF(7.4.)53 b(Bounding)26 b(the)f(coun)n(ters)153 b(102)523 506 y Fl(7.4.2)99 b(R)-5 b(ange)34 b(of)h(alive)f(tags)523 656 y FK(The)24 b(parameter)f FC(m)h FK(in)g(the)h(next)f(lemma)g(serv)n(es)f(to)g(prepare)g(for)h(a) f(later)h(simpli\014cation)523 756 y(of)k(the)g(construction,)e(for)h (the)h(case)f(of)h(only)f(one)g(writer.)523 914 y Fv(Lemma)32 b FH(7.15)40 b FG(L)l(et)32 b FC(a)h FG(b)l(e)g(a)g(non-ab)l(orting)g (op)l(er)l(ation)h(by)g(user)e FC(i)p FG(.)h(L)l(et)g FC(j)g FD(2)c FC(I)40 b FG(and)33 b FC(s)c FK(=)523 1014 y FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(ss)i FK(@)p FC(a:)p FK(r)o FG(.)32 b(L)l(et)g FK(1)27 b FD(\024)f FC(m)i FD(\024)e FC(n)32 b FG(b)l(e)g(the)h(numb)l(er)e(of)i(users)e (with)i(Write)f(op)l(er)l(ations.)523 1114 y(If)e(alive)8 b FK(\()p FC(j)d FK(\)@)p FC(a:)p FK(r)29 b FG(then)1097 1278 y(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)e FK(@)p FC(a:)p FK(p)18 b FD(\000)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)i FK(@)p FC(a:)p FK(p)23 b FD(\024)g FK(10)p FC(mn)523 1442 y Fv(Pr)n(oof.)e FK(Assume,)h(to)g (the)h(con)n(trary)-7 b(,)20 b(that)i FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)d FK(@)p FC(a:)p FK(p)23 b FC(>)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)i FK(@)p FC(a:)p FK(p)g(+)523 1542 y(10)p FC(mn)p FK(.)39 b(Let)g FC(W)52 b FK(b)r(e)40 b(the)g(set)g(of)f(all)h (non-ab)r(orting)e(W)-7 b(rite)40 b(op)r(erations)e FC(w)k FK(suc)n(h)d(that)523 1642 y FG(tag)8 b FK(@)p FC(w)25 b(>)e FG(fr)l(om)6 b FK([)p FC(j)f FK(])p FC(:)p FG(tag)j FK(@)p FC(a:)p FK(p)k FD(^)g(:)p FK(\()p FC(a:)p FK(r)24 b FD(\036)f FC(w)r FK(\).)i(Since)g FC(a)f FK(reads)g(a)g(tag)g(whic)n (h)g(is)h(more)f(than)523 1741 y(10)p FC(mn)g FK(greater)f(than)i FC(j)5 b FK('s,)24 b(and)h(new)g(tags)f(are)g(c)n(hosen)g(in)h (incremen)n(ts)f(of)h(at)g(most)f FC(n)p FK(,)h(w)n(e)523 1841 y(m)n(ust)h(ha)n(v)n(e)f FD(j)p FC(W)12 b FD(j)24 b FC(>)e FK(10)p FC(m)p FK(.)j(Therefore,)h(some)f(user,)h(sa)n(y)f FC(k)s FK(,)h(has)g(at)g(least)g(11)f(op)r(erations,)523 1941 y(sa)n(y)h FC(w)725 1953 y FB(0)786 1941 y FD(\036)d FC(w)933 1953 y FB(1)994 1941 y FD(\036)f(\001)14 b(\001)g(\001)23 b(\036)g FC(w)1348 1953 y FB(10)1419 1941 y FK(,)k(in)h FC(W)12 b FK(.)606 2040 y(W)-7 b(e)28 b(claim)f(that)1277 2205 y FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(w)2007 2217 y FB(1)2068 2205 y FD(\025)22 b FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b:)582 b FK(\(7.2\))523 2369 y(Otherwise)27 b(corollary)f(7.4)h(giv)n(es)g FC(b)c FD(6)p FK(=)h FD(?)k FK(and)f FC(w)2060 2381 y FB(0)2122 2369 y FD(\036)c FC(w)2269 2381 y FB(1)2307 2369 y FC(:)p FK(r)2363 2381 y FA(j)2421 2369 y FD(\036)h FC(b:)p FK(h)2615 2381 y FA(k)2679 2369 y FD(\036)g FC(b:)p FK(r)2859 2381 y FA(k)2900 2369 y FK(,)k(from)g(whic)n(h)523 2469 y(corollary)37 b(7.4)j(and)f(claim)h(7.7)f(imply)i FG(tag)7 b FK(@)p FC(w)2064 2481 y FB(0)2145 2469 y FD(\024)43 b FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(tag)h FK(@)p FC(b:)p FK(r)42 b FD(\024)i FG(tag)7 b FK(@)p FC(b:)p FK(p)43 b FD(\024)523 2568 y FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)j FK(@)p FC(a:)p FK(p)o(,)36 b(con)n(tradictory)d(to)i (the)g(de\014nition)h(of)f FC(w)2473 2580 y FB(0)2546 2568 y FD(2)h FC(W)12 b FK(.)35 b(As)h(the)f(pro)r(of)g(of)523 2668 y(claim)30 b(7.10)f(sho)n(ws,)h(7.2)f(implies)i FG(sho)l(ot)9 b FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(w)2098 2680 y FB(6)2163 2668 y FD(\025)27 b FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b)19 b FK(+)h(6.)30 b(On)h(the)f(other)523 2768 y(hand,)23 b(the)h(assumption)f FG(alive)8 b FK(\()p FC(j)d FK(\)@)p FC(a:)p FK(r)22 b(and)i(claim)f(7.7)f(giv)n(e)h FG(fr)l(om)6 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(a:)p FK(r)22 b FC(<)523 2867 y FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)t(+)c(6)22 b(=)h FG(he)l(al)9 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b)d FK(+)g(6.)19 b(T)-7 b(ogether,)20 b(using)h(corollary)d(7.4,)j (these)523 2967 y(inequalities)27 b(sho)n(w)g(that)1422 3131 y FC(a:)p FK(h)1535 3143 y FA(k)1599 3131 y FD(\036)c FC(a:)p FK(r)1786 3143 y FA(k)1850 3131 y FD(\036)g FC(w)1997 3143 y FB(6)2034 3131 y FC(:)p FK(w)2117 3143 y FA(i)2168 3131 y FD(\036)g FC(w)2315 3143 y FB(7)2352 3131 y FC(:)p FK(r)2408 3143 y FA(i)2436 3131 y FC(:)523 3296 y FK(Since)28 b FC(a)f FK(do)r(esn't)h(ab)r(ort,)f(claim)g(7.10)g(implies)1474 3460 y FC(a:)p FK(r)c FD(\036)g FC(a:)p FK(t)1784 3472 y FA(k)1848 3460 y FD(\036)f FC(w)1994 3472 y FB(9)2032 3460 y FC(:)p FK(w)2115 3472 y FA(i)2166 3460 y FD(\036)g FC(w)2312 3472 y FB(10)2383 3460 y FC(;)523 3625 y FK(in)28 b(con)n(tradiction)e(to)i(the)g(de\014nition)g(of)f FC(w)1892 3637 y FB(10)1986 3625 y FD(2)c FC(W)12 b FK(.)1119 b Fu(2)606 3767 y FK(The)26 b(lemma)g(sho)n(ws)f(that)h(all)g(aliv)n(e)f (tags)g(are)g(from)h(10)p FC(mn)f FK(to)h(0)f(less)h(than)g(the)g (maxi-)523 3866 y(m)n(um.)i(The)g(follo)n(wing)e(is)i(an)f(easy)g (consequence.)523 4025 y Fv(Cor)n(ollar)-6 b(y)31 b FH(7.16)41 b FK(Let)24 b FC(a)g FK(b)r(e)h(a)e(non-ab)r(orting)g(op)r(eration)g(b) n(y)h(user)g FC(i)p FK(.)g(Let)g(1)f FD(\024)f FC(m)h FD(\024)g FC(n)523 4125 y FK(b)r(e)c(the)g(n)n(um)n(b)r(er)f(of)g (users)g(with)g(W)-7 b(rite)19 b(op)r(erations.)e(Let)i FC(j;)14 b(k)26 b FD(2)d FC(I)j FK(suc)n(h)18 b(that)g FG(alive)8 b FK(\()p FC(j)d FK(\)@)p FC(a:)p FK(r)p FD(^)523 4224 y FG(alive)j FK(\()p FC(k)s FK(\)@)p FC(a:)p FK(r)o(.)28 b(Then)1129 4389 y FD(\000)p FK(10)p FC(mn)22 b FD(\024)g FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(tag)26 b FD(\000)18 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)31 b FD(\024)23 b FK(10)p FC(mn:)523 4806 y Fl(7.4.3)99 b(Bounds)34 b(on)g(p)-5 b(er)g(c)g(eive)g(d)34 b(shots)523 4956 y Fv(Lemma)e FH(7.17)40 b FG(L)l(et)d FC(a)g FG(b)l(e)g(a)g (non-ab)l(orting)g(op)l(er)l(ation)i(by)e(user)g FC(i)p FG(.)g(L)l(et)g FC(j;)14 b(k)39 b FD(2)e FC(I)7 b FG(,)37 b(and)523 5055 y FC(s)23 b FK(=)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(ss)h FK(@)p FC(a:)p FK(r)o FG(.)31 b(Then)913 5220 y FD(\000)p FK(4)22 b FD(\024)g FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)i FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(a:)p FK(r)17 b FD(\000)h FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)22 b FD(\024)h FK(9)p eop end %%Page: 103 113 TeXDict begin 103 112 bop 2157 299 a FF(7.4.)53 b(Bounding)26 b(the)f(coun)n(ters)153 b(103)523 506 y Fv(Pr)n(oof.)36 b FK(Assume,)i(to)e(the)i(con)n(trary)-7 b(,)35 b(that)i(the)h (di\013erence)f(is)g(outside)g FD(f\000)p FK(4)p FC(;)14 b(:)g(:)g(:)e(;)i FK(9)p FD(g)p FK(.)523 606 y(W)-7 b(e)39 b(will)g(reac)n(h)f(the)h(required)f(con)n(tradiction)f(b)n(y)i(sho)n (wing)e(that)i(the)g(conditions)g(of)523 706 y(claim)27 b(7.10)g(hold,)g(implying)h(that)g FC(a)f FK(ab)r(orts.)606 805 y(Let)40 b FC(b)j FK(=)g(p)p FG(-L)l(ast)p FK(\()p FC(a:)p FK(r)1314 817 y FA(j)1349 805 y FK(\))d(and)f FC(c)44 b FK(=)f(p)p FG(-L)l(ast)o FK(\()p FC(a:)p FK(r)2141 817 y FA(k)2182 805 y FK(\).)d(In)g(the)h(\014rst)e(case,)g(assume)g (the)523 905 y(di\013erence)28 b(is)f(under)h FD(\000)p FK(4.)e(Then)i(b)n(y)f(claim)h(7.7,)f FC(s)c FK(=)f FG(ss)7 b FK(@)p FC(b)27 b FK(and)741 1088 y FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b)22 b FK(=)h FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)22 b FD(\025)h FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)h FK([)p FC(s)p FK(][)p FC(j)d FK(]@)p FC(a:)p FK(r)18 b(+)g(5)p FC(:)523 1270 y FK(So)23 b FC(b)g FD(6)p FK(=)g FD(?)g FK(and)g FC(b:)p FK(s)1117 1282 y FA(k)1182 1270 y FK(read)f(a)h(shot)g(coun)n(ter)g(from)g(user)g FC(k)j FK(that's)e(at)f(least)g(5)g(greater)f(than)523 1370 y(what)28 b FC(a)f FK(read)g(in)h FC(a:)p FK(r)1183 1382 y FA(k)1224 1370 y FK(.)g(This)f(sho)n(ws)g(the)h(existence)f(of) 1104 1553 y FC(a:)p FK(r)1204 1565 y FA(k)1268 1553 y FD(\036)22 b FC(w)1414 1565 y FB(1)1452 1553 y FC(:)p FK(w)1535 1565 y FA(i)1586 1553 y FD(\036)g FC(w)1732 1565 y FB(2)1793 1553 y FD(\036)h FC(w)1940 1565 y FB(3)2001 1553 y FD(\036)f FC(w)2147 1565 y FB(4)2208 1553 y FD(\036)h FC(w)2355 1565 y FB(5)2392 1553 y FC(:)p FK(w)2475 1565 y FA(j)2533 1553 y FD(\036)g FC(b:)p FK(s)2712 1565 y FA(k)2753 1553 y FC(;)523 1735 y FK(where)i FC(w)820 1747 y FA(m)883 1735 y FC(;)14 b FK(1)23 b FD(\024)f FC(m)h FD(\024)g FK(5)i(is)g(the)g FG(\014rst)g FK(non-ab)r(orting)e (write)i(action)g(b)n(y)g(user)g FC(k)j FK(suc)n(h)c(that)1104 1918 y FG(sho)l(ot)9 b FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(w)1591 1930 y FA(m)1677 1918 y FK(=)23 b FG(fr)l(om)6 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(a:)p FK(r)18 b(+)g FC(m:)523 2100 y FK(Consequen)n(tly)-7 b(,)27 b(the)h(conditions)f(of)h(claim)f (7.10)f(hold:)1028 2283 y FC(a:)p FK(h)1141 2295 y FA(k)1205 2283 y FD(\036)d FC(a:)p FK(r)1392 2295 y FA(k)1456 2283 y FD(\036)g FC(w)1603 2295 y FB(2)1663 2283 y FD(\036)g FC(w)1810 2295 y FB(4)1871 2283 y FD(\036)f FC(b:)p FK(s)2050 2295 y FA(k)2114 2283 y FD(\036)g FC(b:)p FK(p)2306 2303 y FA(i)2357 2283 y FD(\036)g FC(a:)p FK(r)2544 2295 y FA(j)2602 2283 y FD(\036)h FC(a:)p FK(t)2789 2295 y FA(k)2830 2283 y FC(:)523 2466 y FK(This)28 b(pro)n(v)n(es)d(the)j(\014rst)g (inequalit)n(y)f(of)g(the)h(lemma.)606 2565 y(In)g(the)g(other)f(case,) g(assume)g(the)g(di\013erence)h(is)g(o)n(v)n(er)d(9.)j(Then)f(b)n(y)h (claim)f(7.7)1202 2748 y FG(sho)l(ot)9 b FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(c)23 b FD(\025)f FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)i FK([)p FC(s)p FK(][)p FC(j)c FK(]@)p FC(a:)p FK(r)22 b FD(\025)1091 2931 y FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(a:)p FK(r)18 b(+)g(10)k(=)h FG(he)l(al)9 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b)18 b FK(+)g(10)p FC(:)523 3080 y FK(This)28 b(sho)n(ws)e(the)i(existence)f(of)1372 3263 y FC(w)1431 3275 y FB(7)1492 3263 y FD(\036)22 b FC(w)1638 3275 y FB(8)1699 3263 y FD(\036)h FC(w)1846 3275 y FB(9)1907 3263 y FD(\036)f FC(w)2053 3275 y FB(10)2124 3263 y FC(:)p FK(w)2207 3275 y FA(i)2258 3263 y FD(\036)g FC(a:)p FK(r)2445 3275 y FA(k)2486 3263 y FC(;)523 3445 y FK(where)i FC(w)819 3457 y FA(m)883 3445 y FC(;)14 b FK(7)22 b FD(\024)h FC(m)g FD(\024)f FK(10)i(is)h(the)g FG(\014rst)f FK(non-ab)r(orting)f (W)-7 b(rite)25 b(op)r(eration)f(b)n(y)g(user)g FC(k)k FK(suc)n(h)523 3545 y(that)1299 3645 y FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(j)d FK(]@)p FC(w)1785 3657 y FA(m)1871 3645 y FK(=)23 b FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b)17 b FK(+)h FC(m:)606 3794 y FK(Claim)28 b(7.6)e(sho)n(ws)h(that)789 3977 y FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(w)1519 3989 y FB(7)1557 3977 y FC(:)p FK(r)22 b FD(\025)h FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(j)d FK(]@)p FC(w)2209 3989 y FB(7)2265 3977 y FD(\000)18 b FK(6)23 b(=)f FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(k)s FK(]@)p FC(b)18 b FK(+)g(1)p FC(:)523 4159 y FK(As)26 b(the)h(pro)r(of)f(of)g(item)h(3)f(of)g(claim)g(7.7)g (sho)n(ws,)f(this)i(can)f(only)f(b)r(e)i(if)g FC(d)c FD(\036)g FC(w)2949 4171 y FB(7)2987 4159 y FC(:)p FK(r)3042 4171 y FA(j)3077 4159 y FK(,)k(with)f FC(d)523 4259 y FK(b)r(eing)i FC(N)823 4229 y FB(1)814 4281 y FA(j)887 4259 y FK(in)g(case)f FC(b)c FK(=)f FD(?)28 b FK(and)f FC(b)1596 4229 y FB(+1)1712 4259 y FK(otherwise.)606 4359 y(Th)n(us,)g(using)h FC(b)p FK('s)f(de\014nition,)1351 4541 y FC(a:)p FK(h)1464 4553 y FA(k)1528 4541 y FD(\036)c FC(a:)p FK(r)1715 4553 y FA(j)1773 4541 y FD(\036)g FC(d:)p FK(p)1973 4562 y FA(i)2024 4541 y FD(\036)g FC(w)2171 4553 y FB(7)2208 4541 y FC(:)p FK(r)2264 4553 y FA(j)2322 4541 y FD(\036)g FC(w)2469 4553 y FB(8)2506 4541 y FC(:)523 4724 y FK(Again)31 b(the)h(conditions)e(of)i(claim)f(7.10)f(hold.)h (This)g(pro)n(v)n(es)f(the)h(second)g(inequalit)n(y)g(of)523 4824 y(the)d(lemma.)2367 b Fu(2)p eop end %%Page: 104 114 TeXDict begin 104 113 bop 2157 299 a FF(7.4.)53 b(Bounding)26 b(the)f(coun)n(ters)153 b(104)523 506 y Fl(7.4.4)99 b(Equivalenc)-5 b(e)34 b(with)g(b)-5 b(ounde)g(d)35 b(c)-5 b(ounters)523 656 y FK(F)e(or)27 b(notational)g(con)n(v)n(enience,)f(w)n(e)h(in)n (tro)r(duce)h(three)f(binary)g(op)r(erators)e FD(\011)p FK(,)j FD(\010)f FK(and)g FD(\014)p FK(:)523 805 y Fv(Definition)32 b FH(7.18)41 b FK(F)-7 b(or)35 b(an)n(y)h(in)n(tegers)f FC(a;)14 b(b)p FK(,)36 b FC(a)24 b FD(\011)g FC(b)p FK(,)37 b FC(a)24 b FD(\010)g FC(b)36 b FK(and)g FC(a)24 b FD(\014)g FC(b)36 b FK(are)g(uniquely)523 905 y(de\014ned)28 b(b)n(y)f(the)h (equations)855 1082 y FD(\000)p FK(4)22 b FD(\024)83 b FC(a)18 b FD(\011)g FC(b)83 b(<)22 b FK(10)321 b FD(^)83 b FC(a)18 b FD(\011)g FC(b)23 b FD(\021)g FC(a)18 b FD(\000)g FC(b)83 b FK(\(mo)r(d)28 b(14\))855 1182 y FD(\000)p FK(4)22 b FD(\024)83 b FC(a)18 b FD(\010)g FC(b)83 b(<)22 b FK(10)321 b FD(^)83 b FC(a)18 b FD(\010)g FC(b)23 b FD(\021)g FC(a)18 b FK(+)g FC(b)83 b FK(\(mo)r(d)28 b(14\))726 1281 y FD(\000)p FK(10)p FC(n)925 1251 y FB(2)984 1281 y FD(\024)83 b FC(a)18 b FD(\014)g FC(b)83 b(<)22 b FK(10)p FC(n)1617 1251 y FB(2)1672 1281 y FK(+)c FC(n)83 b FD(^)g FC(a)18 b FD(\014)g FC(b)23 b FD(\021)g FC(a)18 b FD(\000)g FC(b)83 b FK(\(mo)r(d)28 b(20)p FC(n)2935 1251 y FB(2)2989 1281 y FK(+)18 b FC(n)p FK(\))523 1452 y(By)27 b(Corollary)e(7.14)i (and)g(a)g(simple)h(reordering)d(of)j(terms,)f(the)h(assignmen)n(t)682 1601 y(select)f FG(max)38 b FK(suc)n(h)27 b(that)h FD(8)p FC(j)g FK(:)23 b FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)30 b FD(\025)23 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)523 1751 y FK(of)28 b(Construction)e(1)i (is)f(equiv)-5 b(alen)n(t)27 b(to:)682 1900 y(select)g FG(max)33 b FD(2)23 b FC(A)28 b FK(suc)n(h)g(that)f FD(8)p FC(j)i FD(2)23 b FC(A)g FK(:)g FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)26 b FD(\000)18 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)31 b FD(\025)23 b FK(0)682 2000 y(where)k FC(A)c FK(=)g FD(f)p FC(j)k FD(2)c FC(I)31 b FK(:)23 b FG(alive)7 b FK(\()p FC(j)e FK(\))p FD(g)523 2149 y FK(whic)n(h,)28 b(b)n(y)f(corollary)e(7.16)h (and)i(lemma)f(7.17,)g(is)g(in)h(turn)g(equiv)-5 b(alen)n(t)27 b(to)682 2299 y(select)g FG(max)33 b FD(2)23 b FC(A)28 b FK(suc)n(h)g(that)f FD(8)p FC(j)i FD(2)23 b FC(A)g FK(:)g FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)26 b FD(\014)18 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(tag)31 b FD(\025)23 b FK(0)682 2398 y(where)k FC(A)c FK(=)g FD(f)p FC(j)k FD(2)c FC(I)31 b FK(:)c FD(8)p FC(k)f FD(2)e FC(I)30 b FK(:)23 b FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)h FK([)p FC(z)t FK(][)p FC(j)d FK(])18 b FD(\011)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(z)t FK(][)p FC(k)s FK(])22 b FC(<)h FK(6)1393 2498 y(where)k FC(z)g FK(=)22 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(ss)i FD(g)523 2747 y FK(F)-7 b(urthermore,)24 b(the)h(subtractions)f(referred)f(to)i(in)g (claim)g(7.6)e(are)h(also)g(equiv)-5 b(alen)n(t)24 b(to)h FD(\011)p FK(.)606 2847 y(Let)g(Construction)g(2)f(b)r(e)i(the)f (result)g(of)g(replacing)f(these)h(3)g(program)e(fragmen)n(ts)h(\(se-) 523 2946 y(lection)29 b(of)f FG(max)39 b FK(and)28 b(shot-heal)f (di\013erences\))i(b)n(y)f(their)h(equiv)-5 b(alen)n(t)28 b(parts.)g(Ob)n(viously)-7 b(,)523 3046 y(Construction)27 b(2)g(is)h(also)e(correct.)606 3146 y(W)-7 b(e)26 b(next)f(consider)f (our)h(b)r(ounded)h(solution,)f(Construction)f(3,)h(sho)n(wn)f(in)i (\014gure)f(7.3.)523 3245 y(It)41 b(is)f(iden)n(tical)g(to)h (Construction)e(2)h(except)h(for)e(the)i(t)n(yp)r(e)g(of)f(tags)g(and)g (shot/heal)523 3345 y(coun)n(ters,)34 b(and)h(the)h(w)n(a)n(y)e(they)h (are)f(increased.)h(Note)g(that)g(in)h(the)f(2nd)g(to)h(last)e(line,) 523 3444 y(the)29 b(selection)e(of)i FC(t)f FK(is)g(p)r(ossible)g (\(and)g(unique\))h(b)r(ecause)f(20)p FC(n)2494 3414 y FB(2)2548 3444 y FK(+)19 b FC(n)28 b FK(is)g(a)g(m)n(ultiple)h(of)f FC(n)p FK(.)523 3544 y(The)33 b(initial)h(state)e(of)h(Construction)g (3)f(has)h(0)g(in)g(all)g(\014elds)g(of)g(all)g(shared)f(and)h(static) 523 3644 y(v)-5 b(ariables,)26 b(lik)n(e)i(Constructions)e(1)h(and)h (2.)606 3743 y(T)-7 b(o)27 b(pro)n(v)n(e)e(Construction)i(3)f(correct,) g(it)i(su\016ces)e(to)h(sho)n(w)g(that)g(an)n(y)f(of)h(its)h (histories,)523 3843 y(sa)n(y)33 b FC(h)721 3855 y FB(3)791 3843 y FK(=)g FC(S)940 3855 y FB(0)977 3843 y FC(;)14 b(S)1065 3855 y FB(1)1102 3843 y FC(;)g(S)1190 3855 y FB(2)1227 3843 y FC(;)g(:)g(:)g(:)p FK(,)34 b(is)g FG(e)l(quivalent)g FK(to)f(a)h(history)f FC(h)2415 3855 y FB(2)2485 3843 y FK(=)g FC(T)2632 3855 y FB(0)2669 3843 y FC(;)14 b(T)2755 3855 y FB(1)2791 3843 y FC(;)g(T)2877 3855 y FB(2)2914 3843 y FC(;)g(:)g(:)g(:)34 b FK(of)f(Con-)523 3943 y(struction)24 b(2,)g(in)g(the)h(sense)f(that)g(corresp)r(onding)e(states)i FC(S)29 b FK(and)24 b FC(T)36 b FK(are)23 b(the)i(same,)e(up)i(to)523 4042 y FG(c)l(ongruenc)l(e)30 b FK(of)h(tags)e(and)h(shot/heal)f(coun)n (ters.)h(That)g(is,)g(when)h FG(tag)2774 4063 y FB(3)2842 4042 y FK(is)f(the)h(v)-5 b(alue)30 b(of)523 4142 y(some)21 b(lo)r(cal)f(or)h(shared)f(v)-5 b(ariable)20 b(of)h(t)n(yp)r(e)g FG(tagtyp)l(e)28 b FK(in)22 b(state)f FC(S)2459 4154 y FA(r)2496 4142 y FK(,)g(and)g FG(tag)2811 4162 y FB(2)2869 4142 y FK(is)g(the)h(v)-5 b(alue)21 b(of)523 4242 y(that)f(same)g(v)-5 b(ariable)19 b(in)i(state)f FC(T)1535 4254 y FA(r)1571 4242 y FK(,)g(then)h(w)n(e)f(w)n(an)n(t)f FG(tag)2222 4262 y FB(3)2282 4242 y FD(\021)k FG(tag)2485 4262 y FB(2)2605 4242 y FK(\(mo)r(d)28 b(20)p FC(n)2958 4211 y FB(2)2998 4242 y FK(+)t FC(n)p FK(\).)20 b(Sim-)523 4341 y(ilarly)-7 b(,)25 b(when)h FG(shot)1121 4353 y FB(3)1184 4341 y FK(is)g(the)g(v)-5 b(alue)25 b(of)h(some)f(lo)r(cal)g (or)g(shared)g(v)-5 b(ariable)24 b(of)i(t)n(yp)r(e)g FG(shottyp)l(e)523 4441 y FK(in)32 b(state)f FC(S)882 4453 y FA(r)919 4441 y FK(,)g(and)g FG(shot)1293 4453 y FB(2)1361 4441 y FK(is)g(the)h(v)-5 b(alue)32 b(of)f(that)g(same)g(v) -5 b(ariable)31 b(in)g(state)g FC(T)2979 4453 y FA(r)3016 4441 y FK(,)g(then)h(w)n(e)523 4540 y(w)n(an)n(t)d FG(shot)882 4552 y FB(3)946 4540 y FD(\021)d FG(shot)1191 4552 y FB(2)1312 4540 y FK(\(mo)r(d)i(14\).)h(W)-7 b(e)30 b(pro)n(v)n(e)e(the) i(existence)f(of)h FC(h)2715 4552 y FB(2)2782 4540 y FK(b)n(y)f(induction)h(on)523 4640 y(the)e(length)g(of)f FC(h)1062 4652 y FB(3)1099 4640 y FK(.)606 4740 y(If)k FC(h)740 4752 y FB(3)807 4740 y FK(consists)e(of)i(only)e(the)i (initial)f(state)g FC(S)2042 4752 y FB(0)2110 4740 y FK(then)h(it)f(is)g(clearly)f(equiv)-5 b(alen)n(t)30 b(to)g(the)523 4839 y FC(h)571 4851 y FB(2)636 4839 y FK(consisting)d(only)g(of)h(the)g(initial)g(state)f FC(T)1932 4851 y FB(0)1997 4839 y FK(of)h(Construction)f(2.)g(No)n(w)g(supp)r (ose)h FC(h)3233 4851 y FB(3)3293 4839 y FK(=)523 4939 y FC(S)574 4951 y FB(0)611 4939 y FC(;)14 b(S)699 4951 y FB(1)736 4939 y FC(;)g(:)g(:)g(:)g(;)g(S)972 4951 y FA(r)1008 4939 y FC(;)g(S)1096 4951 y FA(r)r FB(+1)1251 4939 y FK(is)33 b(a)g(history)g(of)g(Construction)g(3,)g(and)g(the)h (one)f(ev)n(en)n(t)g(shorter)523 5039 y(history)22 b FC(S)849 5051 y FB(0)886 5039 y FC(;)14 b(S)974 5051 y FB(1)1011 5039 y FC(;)g(:)g(:)g(:)g(;)g(S)1247 5051 y FA(r)1306 5039 y FK(is)22 b(equiv)-5 b(alen)n(t)23 b(to)f(a)g(history)g FC(T)2258 5051 y FB(0)2295 5039 y FC(;)14 b(T)2381 5051 y FB(1)2417 5039 y FC(;)g(:)g(:)g(:)g(;)g(T) 2651 5051 y FA(r)2710 5039 y FK(of)22 b(Construction)g(2.)523 5138 y(In)34 b(particular,)e FC(S)1096 5150 y FA(r)1166 5138 y FK(is)h(the)h(same)e(as)h FC(T)1774 5150 y FA(r)1810 5138 y FK(,)h(up)f(to)g(congruence.)f(Let)i FC(T)2761 5150 y FA(r)r FB(+1)2915 5138 y FK(b)r(e)f(the)h(state)523 5238 y(reac)n(hed)f(from)h FC(T)1084 5250 y FA(r)1155 5238 y FK(b)n(y)g(execution)g(of)g(the)h(same)f(pro)r(cedure)f (statemen)n(t)i(b)n(y)f(the)g(same)523 5337 y(user)d(as)g(in)h(the)g (ev)n(en)n(t)f FC(S)1331 5349 y FA(r)1397 5337 y FD(!)f FC(S)1561 5349 y FA(r)r FB(+1)1682 5337 y FK(.)h(One)h(can)f(c)n(hec)n (k)g(in)g(a)h(straigh)n(tforw)n(ard)c(manner,)p eop end %%Page: 105 115 TeXDict begin 105 114 bop 2157 299 a FF(7.4.)53 b(Bounding)26 b(the)f(coun)n(ters)153 b(105)523 506 y FK(b)n(y)30 b(considering)f (all)h(pro)r(cedure)f(statemen)n(ts,)i(that)f FC(T)2260 518 y FA(r)r FB(+1)2411 506 y FK(m)n(ust)g(then)h(b)r(e)g(the)g(same)e (as)523 606 y FC(T)572 618 y FA(r)r FB(+1)692 606 y FK(,)h(up)h(to)e (congruence.)g(The)h(test)g(for)f(ab)r(ortion)g(comes)g(out)h(the)g (same)f(b)r(ecause)h(of)523 706 y(congruence.)k(Similarly)-7 b(,)35 b(the)h(same)f(c)n(hoices)f(of)i FG(max)45 b FK(are)35 b(a)n(v)-5 b(ailable)34 b(in)i FC(T)2961 718 y FA(r)3032 706 y FK(as)f(in)h FC(S)3298 718 y FA(r)3335 706 y FK(.)523 805 y(The)e(incremen)n(t)h(of)f FG(me)6 b FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(j)c FK(])34 b(in)h(the)f(3rd)g(to)g(last)g (line)h(preserv)n(es)d(congruence,)523 905 y(as)37 b(do)r(es)g(the)h (selection)f(of)h FC(t)g FK(in)g(the)g(next)f(line.)h(Other)f(statemen) n(ts)h(are)e(ev)n(en)i(more)523 1005 y(straigh)n(tforw)n(ard.)606 1104 y(This)28 b(completes)f(the)h(induction)g(argumen)n(t)e(and)i(sho) n(ws)523 1270 y Fv(Theorem)k FH(7.19)41 b FG(A)n(ny)26 b(c)l(omplete)i(pr)l(op)l(er)g(history)g(of)g(Construction)f(3)h(is)f (line)l(arizable.)523 1677 y FL(7.5)116 b(Complexit)m(y)523 1876 y FK(First)39 b(let's)g(consider)f(the)h(time)h(complexit)n(y)e (of)h(Construction)f(3.)h(Since)g(all)g(shared)523 1976 y(v)-5 b(ariable)24 b(accesses)g(o)r(ccur)h(in)h(phases,)f(eac)n(h)f (of)i(whic)n(h)f(consists)g(of)g FC(n)h FK(reads)e(or)g(writes)h(in)523 2076 y(parallel,)e(the)h(time)h(complexit)n(y)e(of)h(b)r(oth)g(the)h (Read)f(and)f(W)-7 b(rite)25 b(op)r(eration)d(is)i(b)r(ounded)523 2175 y(b)n(y)j(the)h(n)n(um)n(b)r(er)g(of)f(phases,)g(whic)n(h)h(is)f (clearly)g FC(O)r FK(\(1\).)606 2275 y(Next)33 b(consider)f(the)h (space)f(complexit)n(y)g(of)h(Construction)f(3,)g(whic)n(h)h(is)g(the)g (size)f(in)523 2374 y(bits)c(of)f(the)h(t)n(yp)r(e)f FG(shar)l(e)l(d)10 b FK(.)27 b(This)h(can)f(b)r(e)g(split)h(in)n(to)f (t)n(w)n(o)g(parts:)g(the)g(data)g(size)g(and)g(the)523 2474 y(con)n(trol)f(size.)606 2574 y(The)j(data)f(size)g(is)g(2)19 b FD(\002)g FG(size)l(of)f FK(\()p Fv(abs)q FK(\).)29 b(This)f(factor)g(2)g(o)n(v)n(erhead)f(can)h(b)r(e)h(traced)f(bac)n(k) 523 2673 y(to)36 b(the)g(use)g(of)g(single)g(reader)e(shared)h(v)-5 b(ariables)35 b(in)h(our)g(construction.)f(In)h(fact,)g(the)523 2773 y(v)n(ersion)31 b(of)i(Construction)e(3)i(using)f(m)n(ulti-reader) f(v)-5 b(ariables)31 b(can)i(b)r(e)g(easily)e(mo)r(di\014ed)523 2873 y(to)d(do)f(a)n(w)n(a)n(y)e(with)j(the)g FG(pr)l(ev)38 b FK(data)27 b(\014eld)h(\(as)f(sk)n(etc)n(hed)g(in)h(the)g(next)f (section\).)606 2972 y(The)34 b(con)n(trol)f(size)g(concerns)g(all)g (the)i(other)e(\014elds)h(in)g(the)g(shared)f(v)-5 b(ariables.)33 b(Note)523 3072 y(\014rst)27 b(that)h(from)g(the)g(v)-5 b(alues)27 b(read)g(from)g FC(R)1905 3084 y FA(j;i)1980 3072 y FK(,)g(user)g FC(i)h FK(nev)n(er)e(uses)h(an)n(y)g(of)h(the)g (coun)n(ters)523 3171 y FG(he)l(al)10 b FK([1)s FD(\000)s FG(ss)c FK(][)p FC(k)s FK(],)20 b(where)f FC(k)26 b FD(6)p FK(=)d FC(i)p FK(.)d(Th)n(us,)f(in)i(addition)e(to)h(the)h(single)e (coun)n(ter)g FG(he)l(al)10 b FK([1)s FD(\000)s FG(ss)c FK(][)p FC(i)p FK(],)523 3271 y(only)29 b(a)g(single)h(heal)f(coun)n (ter)g(set)g(needs)h(to)f(b)r(e)h(stored)f(in)h FC(R)2481 3283 y FA(j;i)2555 3271 y FK(,)g(of)g(whic)n(h)f(the)h(missing)523 3371 y(\014rst)d(index)h(is)g(understo)r(o)r(d)f(to)g(b)r(e)h FC(R)1713 3383 y FA(j;i)1788 3371 y FC(:)p FG(ss)7 b FK(.)27 b(This)h(leads)f(to)h(a)f(con)n(trol)f(size)h(of)1010 3553 y FD(d)p FK(log)14 b(20)p FC(n)1302 3519 y FB(2)1357 3553 y FK(+)k FC(n)p FD(e)g FK(+)g(1)g(+)g(\(3)p FC(n)g FK(+)g(1\))p FD(d)p FK(log)c(14)p FD(e)22 b(\024)g FK(12)p FC(n)c FK(+)g FC(o)p FK(\()p FC(n)p FK(\))p FC(:)523 3861 y FL(7.6)116 b(Subproblems)523 4060 y FK(The)35 b(\014nal)f(construction)g(presen)n(ts)f(a)h(solution)h(to)f(the)h (problem)f(of)g(implemen)n(ting)h(a)523 4159 y(m)n(ulti-user)29 b(v)-5 b(ariable)29 b(from)g(single-reader)f(v)-5 b(ariables.)28 b(Man)n(y)i(other)f(pap)r(ers)g(ha)n(v)n(e)f(con-)523 4259 y(sidered)36 b(the)h(in)n(termediate)f(lev)n(el)g(of)h(a)f (single-writer)f(m)n(ulti-reader)g(v)-5 b(ariable,)36 b(whic)n(h)523 4359 y(splits)26 b(the)h(problem)e(in)n(to)h(t)n(w)n(o)f (subproblems.)h(W)-7 b(e)26 b(sho)n(w)f(that)i FG(pr)l(oje)l(ctions)g FK(of)f(our)f(con-)523 4458 y(struction)c(yield)h(solutions)f(to)g (those)h(t)n(w)n(o)f(subproblems)f(with)j(comp)r(etitiv)n(e)e (complexit)n(y)523 4558 y(measures.)606 4658 y(The)38 b(\014rst)g(pro)5 b(jection)37 b(is)h(obtained)g(b)n(y)f(collapsing)g (the)h(ro)n(w)f(of)h(shared)f(v)-5 b(ariables)523 4757 y FC(R)586 4769 y FA(i;)p FB(0)667 4757 y FC(;)14 b(:)g(:)g(:)f(;)h(R) 914 4769 y FA(i;n)p Fw(\000)p FB(1)1115 4757 y FK(in)n(to)27 b(a)h(single)f(m)n(ulti-reader)f(v)-5 b(ariable)27 b FC(R)2432 4769 y FA(i)2459 4757 y FK(.)h(Eac)n(h)e(lo)r(op)682 4907 y FH(for)h FC(j)h FD(2)c FC(I)35 b FH(do)27 b FC(R)1228 4919 y FA(i;j)1329 4907 y FK(:=)c FG(me)523 5056 y FK(is)28 b(replaced)e(b)n(y)i(the)g(single)f(write)682 5205 y FC(R)745 5217 y FA(i)795 5205 y FK(:=)c FG(me)p eop end %%Page: 106 116 TeXDict begin 106 115 bop 2157 299 a FF(7.4.)53 b(Bounding)26 b(the)f(coun)n(ters)153 b(106)p 523 907 2323 4 v 523 1854 4 947 v 551 1002 a FH(t)m(yp)s(e)28 b FC(I)i FK(:)23 b(0)p FC(::n)18 b FD(\000)g FK(1)763 1102 y FG(tagtyp)l(e)35 b FK(:)27 b FD(\000)p FK(10)p FC(n)1299 1071 y FB(2)1335 1102 y FC(::)p FK(10)p FC(n)1515 1071 y FB(2)1570 1102 y FK(+)18 b FC(n)g FD(\000)g FK(1)763 1201 y FG(shottyp)l(e)35 b FK(:)28 b FD(\000)p FK(4)p FC(::)p FK(9)763 1301 y FG(shar)l(e)l(d)37 b FK(:)28 b FH(record)1187 1400 y FG(value)7 b FK(,)p FG(pr)l(ev)37 b FK(:)28 b Fv(abs)p FG(typ)l(e)1187 1500 y(tag)63 b FK(:)28 b FG(tagtyp)l(e)1187 1600 y(ss)34 b FK(:)28 b(0)p FC(::)p FK(1)1187 1699 y FG(sho)l(ot)8 b FK(,)p FG(he)l(al)38 b FK(:)27 b FH(arra)m(y)t FK([0)p FC(::)p FK(1][0)p FC(::n)17 b FD(\000)h FK(1])28 b FH(of)36 b FG(shottyp)l(e)1076 1799 y FH(end)p 2843 1854 V 523 1857 2323 4 v 523 1918 2778 4 v 523 4758 4 2840 v 551 2013 a(pro)s(cedure)28 b FG(R)l(e)l(ad)9 b FK(\()p FC(i)p FK(\))28 b(/)f FG(Write)6 b FK(\()p FC(i;)14 b(v)s FK(\))551 2113 y FH(v)-5 b(ar)29 b FC(j)f FK(:)23 b FC(I)710 2212 y(t)g FK(:)28 b FG(tagtyp)l(e)710 2312 y FC(s)23 b FK(:)g(0)p FC(::)p FK(1)710 2412 y FG(fr)l(om)7 b FK(,)p FG(tmp)33 b FK(:)27 b FH(arra)m(y)t FK([0)p FC(::n)18 b FD(\000)g FK(1])27 b FH(of)37 b FG(shar)l(e)l(d)710 2511 y FH(static)28 b FG(me)34 b FK(:)27 b FG(shar)l(e)l(d)551 2611 y FH(b)s(egin)710 2710 y FC(s)c FK(:=)f(1)c FD(\000)g FG(me)7 b FC(:)p FG(ss)710 2810 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(me)7 b FC(:)p FG(he)l(al)i FK([)p FC(s)p FK(][)p FC(j)c FK(])23 b(:=)g FC(R)1844 2822 y FA(j;i)1919 2810 y FC(:)p FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(i)p FK(])710 2910 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 2922 y FA(i;j)1357 2910 y FK(:=)c FG(me)710 3009 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])23 b(:=)g FC(R)1648 3021 y FA(j;i)710 3109 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(tmp)5 b FK([)p FC(j)g FK(])23 b(:=)g FC(R)1618 3121 y FA(j;i)710 3209 y FH(if)36 b FD(9)p FC(j)28 b FD(2)c FC(I)30 b FK(:)23 b FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(sho)l(ot)k FK([)p FC(s)p FK(][)p FC(i)p FK(])18 b FD(\011)g FG(me)6 b FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][)p FC(j)5 b FK(])23 b FD(\025)g FK(3)710 3308 y FH(then)k(return)i FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(pr)l(ev)710 3408 y FK(select)27 b FG(max)33 b FD(2)24 b FC(A)j FK(suc)n(h)h(that)g FD(8)p FC(j)g FD(2)23 b FC(A)g FK(:)h FG(fr)l(om)7 b FK([)p FG(max)i FK(])p FC(:)p FG(tag)27 b FD(\014)18 b FG(fr)l(om)6 b FK([)p FC(j)f FK(])p FC(:)p FG(tag)31 b FD(\025)23 b FK(0)710 3508 y(where)k FC(A)c FK(=)g FD(f)p FC(j)k FD(2)d FC(I)30 b FK(:)e FD(8)p FC(k)e FD(2)d FC(I)30 b FK(:)23 b FG(fr)l(om)7 b FK([)p FC(k)s FK(])p FC(:)p FG(sho)l(ot)i FK([)p FC(z)t FK(][)p FC(j)c FK(])17 b FD(\011)h FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(z)t FK(][)p FC(k)s FK(])23 b FC(<)f FK(6)1422 3607 y(where)27 b FC(z)f FK(=)d FG(fr)l(om)6 b FK([)p FC(j)f FK(])p FC(:)p FG(ss)i FD(g)710 3707 y FG(me)f FC(:)p FG(pr)l(ev)k FC(;)k FG(me)6 b FC(:)p FG(value)h FC(;)14 b FG(me)6 b FC(:)p FG(tag)i FC(;)14 b FG(me)6 b FC(:)p FG(ss)30 b FK(:=)765 3806 y FG(me)6 b FC(:)p FG(value)h FC(;)14 b FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(value)d FC(;)14 b FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)d FC(;)14 b(s)710 3906 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 3918 y FA(i;j)1357 3906 y FK(:=)c FG(me)710 4006 y FK(\(Read)k(only\))h FH(return)g FG(me)6 b FC(:)p FG(value)710 4105 y FH(for)28 b FC(j)g FD(2)23 b FC(I)7 b(;)14 b(s)23 b FD(2)g(f)p FK(0)p FC(::)p FK(1)p FD(g)j FH(do)854 4205 y(if)36 b FG(me)6 b FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(j)c FK(])18 b FD(\011)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(i)p FK(])23 b FC(<)g FK(6)854 4305 y FH(then)k FG(me)7 b FC(:)p FG(sho)l(ot)h FK([)p FC(s)p FK(][)p FC(j)d FK(])p FD(\010)23 b FK(:=)g(1)710 4404 y(select)k FC(t)c FD(2)h FG(tagtyp)l(e)34 b FK(suc)n(h)27 b(that)h FC(t)19 b FD(\014)f FG(me)6 b FC(:)p FG(tag)31 b FD(2)23 b(f)p FK(1)p FC(;)14 b(:)g(:)g(:)f(;)h(n)p FD(g)j(^)i FC(t)k FD(\021)g FC(i)82 b FK(\(mo)r(d)29 b FC(n)p FK(\))710 4504 y FG(me)6 b FC(:)p FG(value)h FC(;)14 b FG(me)6 b FC(:)p FG(tag)31 b FK(:=)23 b FC(v)s(;)14 b(t)710 4603 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 4615 y FA(i;j)1357 4603 y FK(:=)c FG(me)551 4703 y FH(end)p 3297 4758 V 523 4761 2778 4 v 1453 4904 a FF(FIGURE)i(7.3.)i(Construction)f(3)p eop end %%Page: 107 117 TeXDict begin 107 116 bop 2487 299 a FF(7.6.)52 b(Subproblems)153 b(107)523 506 y FK(while)30 b(eac)n(h)f(read)g(from)g FC(R)1379 518 y FA(j;i)1483 506 y FK(is)h(replaced)f(b)n(y)g(a)h(read)e (from)i FC(R)2536 518 y FA(j)2571 506 y FK(.)g(The)f(result)h(is)f(a)h (solu-)523 606 y(tion)k(to)g(the)g(problem)f(of)h(implemen)n(ting)g(a)g (m)n(ulti-user)f(v)-5 b(ariable)33 b(from)g(single-writer)523 706 y(m)n(ulti-reader)i(v)-5 b(ariables,)34 b(since)i(eac)n(h)f(of)h (its)g(histories)f(corresp)r(onds)f(to)i(a)g(history)f(of)523 805 y(Construction)h(3)g(in)h(whic)n(h)g(all)f(writes)g(of)h(a)f (parallel)g(lo)r(op)g(happ)r(en)h(to)g(b)r(e)g(consecu-)523 905 y(tiv)n(e)g(ev)n(en)n(ts.)g(The)g(time)h(complexit)n(y)f(is)g (still)g(constan)n(t,)g(while)g(the)h(space)f(complex-)523 1005 y(it)n(y)g(is)f FG(size)l(of)19 b FK(\()p FG(shar)l(e)l(d)10 b FK(\))39 b(=)e(2)25 b FD(\002)f FG(size)l(of)18 b FK(\()p Fv(abs)q FK(\))25 b(+)f(16)p FC(n)f FK(+)h FC(o)p FK(\()p FC(n)p FK(\).)38 b(The)f FG(pr)l(ev)46 b FK(\014eld)37 b(can)f(b)r(e)523 1104 y(made)31 b(redundan)n(t)g(b)n(y)g(letting)g(an) g(ab)r(orting)f(op)r(eration)g(return)h FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(value)38 b FK(instead)523 1204 y(of)29 b FG(tmp)5 b FK([)p FC(j)g FK(])p FC(:)p FG(pr)l(ev)k FK(.)29 b(This)g(can)f(b)r(e)h(pro)n(v)n(en)f(correct)f(b)n(y)h(reform) n(ulating)f(claim)i(7.9)f(and)g(the)523 1303 y(Precedence)j(part)i(of)f (lemma)h(7.11.)e(\(The)i(idea)g(is)f(that)h(the)h(v)-5 b(alue)32 b(returned)g(b)n(y)h FC(a)f FK(in)523 1403 y(claim)26 b(7.9)f(is)h(then)g(the)h(v)-5 b(alue)25 b(of)h FC(c)g FK(or)f(the)i(v)-5 b(alue)25 b(propagated)g(b)n(y)g FC(c)p FK(,)h(and)g FC(a)g FK(completely)523 1503 y(con)n(tains)h(the)h (part)f(of)g FC(c)h FK(up)g(to)f FC(c:)p FK(p\).)606 1602 y(The)38 b(second)g(pro)5 b(jection)37 b(is)h(more)g(in)n(v)n(olv) n(ed,)f(but)h(yields)g(a)g(large)f(space)g(sa)n(vings.)523 1702 y(Assume)26 b(that)g(only)f(user)g(0)h(executes)f(W)-7 b(rite)26 b(op)r(erations.)e(Then)i(all)g(sho)r(ot)f(coun)n(ters)g(of) 523 1802 y(the)31 b(remaining)f(users,)f(as)h(w)n(ell)g(as)g(all)h (heal)f(coun)n(ters)f FG(he)l(al)10 b FK([0)p FC(::)p FK(1][1)p FC(::n)19 b FD(\000)h FK(1],)30 b(remain)g(0,)523 1901 y(and)d(can)g(therefore)g(b)r(e)h(omitted.)g(The)f FG(pr)l(ev)37 b FK(\014eld)28 b(of)f(the)h(Read-only)f(users)f(will)i (nev)n(er)523 2001 y(b)r(e)34 b(used)g(and)g(can)f(also)g(b)r(e)h (omitted.)h(F)-7 b(urthermore,)33 b(0)g(is)h(easily)f(seen)h(to)f(b)r (e)i(alw)n(a)n(ys)523 2100 y(aliv)n(e)23 b(and)h(therefore)g(user)f(0)h (needs)g(neither)g(heal)g(coun)n(ters)f(nor)g(the)i(sho)r(ot-selector)d FG(ss)7 b FK(.)523 2200 y(User)27 b(0)g(also)g(nev)n(er)f(ab)r(orts)h (and)h(can)f(alw)n(a)n(ys)e(c)n(ho)r(ose)i FG(max)33 b FK(:=)22 b(0.)606 2300 y(By)g(corollary)d(7.16,)h(and)i(b)r(ecause)g (new)f(tags)g(are)g(alw)n(a)n(ys)f(c)n(hosen)h(to)h(b)r(e)g(0)82 b(\(mo)r(d)29 b FC(n)p FK(\),)523 2399 y(only)22 b(tags)f FD(f\000)p FK(10)p FC(n;)14 b FD(\000)p FK(9)p FC(n;)g FD(\000)p FK(8)p FC(n;)g(:)g(:)g(:)c(;)k FK(9)p FC(n;)g FK(10)p FC(n)p FD(g)19 b FK(ev)n(er)j(o)r(ccur,)f(and)h FC(n)h FK(can)f(b)r(e)g(factored)g(out.)606 2499 y(The)27 b(result)g(of)g(remo)n(ving)f(all)h(these)g(redundancies)f(is)h(sho)n (wn)g(in)g(\014gure)g(7.4)f(as)g(Con-)523 2599 y(struction)h(4.)606 2698 y(The)18 b(space)g(complexit)n(y)g(\(taking)g(in)n(to)g(accoun)n (t)g(p)r(ossible)g(sa)n(vings\))f(is)h(2)p FD(\002)p FG(size)l(of)g FK(\()p Fv(abs)p FK(\)+)523 2798 y FC(O)r FK(\()p FC(n)p FK(\))29 b(for)e(the)i(shared)d(v)-5 b(ariables)27 b(of)h(user)f(0,)h(and)f FG(size)l(of)19 b FK(\()p Fv(abs)p FK(\))g(+)g FC(O)r FK(\(1\))28 b(for)g(the)g(shared)523 2897 y(v)-5 b(ariables)28 b(of)g(the)i(remaining)e(users.)g(This)h (space)f(complexit)n(y)g(is)h(the)g(same)f(as)h(that)g(of)523 2997 y([9],)k(and,)h(apart)e(from)h(the)h(data)f(\014eld)h(used)f(in)h (the)g(shared)e(v)-5 b(ariables)33 b(of)g(Read)g(only)523 3097 y(users,)27 b(also)f(the)i(same)f(as)g(that)h(of)g([14)o(,)f(13,)g (17)o(].)523 3404 y FL(7.7)116 b(Conclusion)523 3603 y FK(Our)27 b(construction)g(sho)n(ws)f(that)i(shared)e(memory)h(can)g (b)r(e)h(implemen)n(ted,)g(using)f(repli-)523 3703 y(cation,)k(from)g (simple)h(b)r(ounded)f(memory)g(cells,)g(with)h(only)f(a)g(small)g (constan)n(t)g(factor)523 3802 y(increase)26 b(in)i(access)f(time.)606 3902 y(T)-7 b(o)35 b(this)g(end,)g(the)g(un)n(b)r(ounded)g(solution)f (of)h(Vit\023)-42 b(an)n(yi)35 b(and)g(Aw)n(erbuc)n(h,)f(for)g(a)g (long)523 4002 y(time)f(the)g(only)f(recognized)f(correct)g(solution,)h (is)g(re\014ned)g(b)n(y)h(adding)f(a)g(p)r(o)n(w)n(erful,)f(in)523 4101 y(itself)20 b(un)n(b)r(ounded,)g(sho)r(oting)f(mec)n(hanism.)h (This)f(mec)n(hanism)h(allo)n(ws)e(slo)n(w,)h(p)r(oten)n(tially)523 4201 y(confused)37 b(op)r(erations)f(to)g(safely)h(ab)r(ort,)f(and)h (allo)n(ws)f(the)h(remaining)f(op)r(erations)g(to)523 4301 y(in)n(terpret)k(the)h(un)n(b)r(ounded)g(timestamps)g(of)g (Vit\023)-42 b(an)n(yi)41 b(and)f(Aw)n(erbuc)n(h)g(as)g(b)r(ounded)523 4400 y(quan)n(tities.)e(The)h(end)f(result)g(follo)n(ws)g(b)n(y)g(sho)n (wing)f(that)i(the)g(sho)r(oting)e(mec)n(hanism)523 4500 y(itself)28 b(is)g(easily)e(b)r(ounded.)p eop end %%Page: 108 118 TeXDict begin 108 117 bop 2487 299 a FF(7.6.)52 b(Subproblems)153 b(108)p 523 693 2220 4 v 523 1340 4 648 v 551 787 a FH(t)m(yp)s(e)28 b FG(shar)l(e)l(d)37 b FK(:)28 b FH(record)1187 887 y FG(value)7 b FK(,)p FG(pr)l(ev)37 b FK(:)28 b Fv(abs)p FG(typ)l(e)1187 987 y(tag)63 b FK(:)28 b FD(\000)p FK(10)p FC(::)p FK(10)1187 1086 y FG(ss)34 b FK(:)28 b(0)p FC(::)p FK(1)1187 1186 y FG(sho)l(ot)8 b FK(,)p FG(he)l(al)38 b FK(:)27 b FH(arra)m(y)t FK([0)p FC(::)p FK(1][0)p FC(::n)17 b FD(\000)h FK(1])28 b FH(of)36 b FD(\000)p FK(4)p FC(::)p FK(9)1076 1286 y FH(end)p 2739 1340 V 523 1343 2220 4 v 523 1405 2044 4 v 523 2850 4 1445 v 551 1500 a(pro)s(cedure)28 b FG(Write)6 b FK(\()p FC(i;)14 b(v)s FK(\))551 1599 y FH(v)-5 b(ar)29 b FC(j)f FK(:)23 b FC(I)710 1699 y FG(fr)l(om)30 b FK(:)23 b FH(arra)m(y)s FK([0)p FC(::n)18 b FD(\000)g FK(1])28 b FH(of)36 b FG(shar)l(e)l(d)710 1799 y FH(static)28 b FG(me)34 b FK(:)27 b FG(shar)l(e)l(d)551 1898 y FH(b)s(egin)710 1998 y(for)h FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])23 b(:=)g FC(R)1648 2010 y FA(j;i)710 2098 y FG(me)6 b FC(:)p FG(pr)l(ev)33 b FK(:=)22 b FG(me)7 b FC(:)p FG(value)710 2197 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 2209 y FA(i;j)1357 2197 y FK(:=)c FG(me)710 2297 y FH(for)28 b FC(j)g FD(2)23 b FC(I)7 b(;)14 b(s)23 b FD(2)g(f)p FK(0)p FC(::)p FK(1)p FD(g)j FH(do)854 2396 y(if)36 b FG(me)6 b FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(j)c FK(])18 b FD(\011)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(s)p FK(][)p FC(i)p FK(])23 b FC(<)g FK(6)854 2496 y FH(then)k FG(me)7 b FC(:)p FG(sho)l(ot)h FK([)p FC(s)p FK(][)p FC(j)d FK(])p FD(\010)23 b FK(:=)g(1)710 2596 y FG(me)6 b FC(:)p FG(value)h FC(;)14 b FG(me)6 b FC(:)p FG(tag)31 b FK(:=)23 b FC(v)s(;)14 b FK(\()p FG(me)6 b FC(:)p FG(tag)26 b FK(+)18 b(10\))23 b(mo)r(d)g(21)17 b FD(\000)h FK(10)710 2695 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 2707 y FA(i;j)1357 2695 y FK(:=)c FG(me)551 2795 y FH(end)p 2563 2850 V 523 2853 2044 4 v 523 2915 2681 4 v 523 4957 4 2043 v 551 3009 a(pro)s(cedure)28 b FG(R)l(e)l(ad)9 b FK(\()p FC(i)p FK(\))551 3109 y FH(v)-5 b(ar)29 b FC(j)f FK(:)23 b FC(I)710 3208 y(s)g FK(:)g(0)p FC(::)p FK(1)710 3308 y FG(fr)l(om)7 b FK(,)p FG(tmp)33 b FK(:)27 b FH(arra)m(y)t FK([0)p FC(::n)18 b FD(\000)g FK(1])27 b FH(of)37 b FG(shar)l(e)l(d)710 3408 y FH(static)28 b FG(me)34 b FK(:)27 b FG(shar)l(e)l(d)551 3507 y FH(b)s(egin)710 3607 y FC(s)c FK(:=)f(1)c FD(\000)g FG(me)7 b FC(:)p FG(ss)710 3707 y(me)f FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][0])22 b(:=)h FC(R)1363 3719 y FB(0)p FA(;i)1444 3707 y FC(:)p FG(sho)l(ot)8 b FK([)p FC(s)p FK(][)p FC(i)p FK(])710 3806 y FC(R)773 3818 y FA(i;)p FB(0)876 3806 y FK(:=)23 b FG(me)710 3906 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])23 b(:=)g FC(R)1648 3918 y FA(j;i)710 4005 y FG(tmp)5 b FK([0])23 b(:=)f FC(R)1137 4017 y FB(0)p FA(;i)710 4105 y FH(if)36 b FG(tmp)5 b FK([0])p FC(:)p FG(sho)l(ot)j FK([)p FC(s)p FK(][)p FC(i)p FK(])19 b FD(\011)f FG(me)6 b FC(:)p FG(he)l(al)k FK([)p FC(s)p FK(][0])22 b FD(\025)h FK(3)710 4205 y FH(then)k(return)i FG(tmp)5 b FK([0])p FC(:)p FG(pr)l(ev)710 4304 y FK(select)27 b FG(max)33 b FD(2)24 b FC(A)j FK(suc)n(h)h(that)g FD(8)p FC(j)g FD(2)23 b FC(A)g FK(:)h FG(fr)l(om)7 b FK([)p FG(max)i FK(])p FC(:)p FG(tag)27 b FD(\014)18 b FG(fr)l(om)6 b FK([)p FC(j)f FK(])p FC(:)p FG(tag)31 b FD(\025)23 b FK(0)710 4404 y(where)k FC(A)c FK(=)g FD(f)p FK(0)p FD(g)17 b([)i(f)p FC(j)27 b FD(2)c FC(I)31 b FK(:)c FG(fr)l(om)7 b FK([0])p FC(:)p FG(sho)l(ot)h FK([)p FC(z)t FK(][)p FC(j)d FK(])18 b FD(\011)g FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(he)l(al)10 b FK([)p FC(z)t FK(][0])22 b FC(<)h FK(6)1638 4504 y(where)k FC(z)g FK(=)22 b FG(fr)l(om)7 b FK([)p FC(j)e FK(])p FC(:)p FG(ss)i FD(g)710 4603 y FG(me)f FC(:)p FG(value)h FC(;)14 b FG(me)6 b FC(:)p FG(tag)i FC(;)14 b FG(me)6 b FC(:)p FG(ss)30 b FK(:=)23 b FG(fr)l(om)6 b FK([)p FG(max)k FK(])p FC(:)p FG(value)d FC(;)14 b FG(fr)l(om)7 b FK([)p FG(max)j FK(])p FC(:)p FG(tag)e FC(;)14 b(s)710 4703 y FH(for)28 b FC(j)g FD(2)23 b FC(I)35 b FH(do)27 b FC(R)1256 4715 y FA(i;j)1357 4703 y FK(:=)c FG(me)710 4802 y FH(return)28 b FG(me)6 b FC(:)p FG(value)551 4902 y FH(end)p 3200 4957 V 523 4960 2681 4 v 1070 5103 a FF(FIGURE)25 b(7.4.)i(Construction)f(4;)g(single)h(to)f (m)n(ulti-reader)p eop end %%Page: 109 119 TeXDict begin 109 118 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Bibliograph)l(y)565 2516 y FK([1])41 b(B.)24 b(Aw)n(erbuc)n(h,)g(L.)h(Kirousis,)e(E.)h (Kranakis,)f(P)-7 b(.M.B.)24 b(Vit\023)-42 b(an)n(yi,)25 b FG(A)h(pr)l(o)l(of)i(te)l(chnique)694 2615 y(for)37 b(r)l(e)l(gister)f(atomicity)p FK(,)g(Pro)r(c.)e(8th)g(Conference)g(on) g(F)-7 b(oundations)35 b(of)f(Soft)n(w)n(are)694 2715 y(T)-7 b(ec)n(hnology)25 b(&)i(Theoretical)f(Computer)g(Science,)h (Lecture)g(Notes)g(in)g(Computer)694 2814 y(Science)g(338,)g(pp.)h (286{303,)c(1988.)565 2972 y([2])41 b(B.)25 b(Blo)r(om,)h FG(Constructing)h(Two-writer)j(A)n(tomic)e(R)l(e)l(gisters)p FK(,)d(IEEE)g(T)-7 b(ransactions)694 3071 y(on)27 b(Computers,)g(v)n (ol.)g(37,)g(pp.)h(1506{1514,)23 b(1988.)565 3229 y([3])41 b(J.E.)31 b(Burns)g(and)h(G.L.)g(P)n(eterson,)e FG(Constructing)k (Multi-r)l(e)l(ader)g(A)n(tomic)g(V)-6 b(alues)694 3328 y(F)g(r)l(om)25 b(Nonatomic)h(V)-6 b(alues)p FK(,)23 b(Pro)r(c.)f(6th)g(A)n(CM)h(Symp)r(osium)g(on)g(Principles)f(of)h(Dis-) 694 3428 y(tributed)28 b(Computing,)f(pp.)h(222{231,)d(1987.)565 3585 y([4])41 b(D.)34 b(Dolev)g(and)f(N.)h(Sha)n(vit,)g FG(Bounde)l(d)i(Concurr)l(ent)f(Time-Stamp)h(Systems)f(A)n(r)l(e)694 3685 y(Constructible)p FK(,)26 b(Pro)r(c.)f(21th)g(A)n(CM)h(Symp)r (osium)g(on)f(Theory)g(of)h(Computing,)f(pp.)694 3784 y(454{466,)f(1989.)565 3942 y([5])41 b(M.P)-7 b(.)37 b(Herlih)n(y)-7 b(,)38 b FG(Imp)l(ossibility)j(and)e(Universality)i(R)l (esults)c(for)j(Wait-F)-6 b(r)l(e)l(e)39 b(Syn-)694 4041 y(chr)l(onization)p FK(,)44 b(Pro)r(c.)d(7th)i(A)n(CM)g(Symp)r(osium)g (on)f(Principles)f(of)i(Distributed)694 4141 y(Computing,)27 b(1988.)565 4298 y([6])41 b(M.P)-7 b(.)28 b(Herlih)n(y)-7 b(,)27 b(J.)h(Wing,)g FG(Line)l(arizability:)34 b(A)c(Corr)l(e)l (ctness)g(Condition)h(for)g(Con-)694 4398 y(curr)l(ent)d(Obje)l(cts)p FK(,)g(A)n(CM)g(TOPLAS)f(v)n(ol.)g(12,)f(No.)i(3,)f(pp.)h(463{492,)c (1990.)565 4555 y([7])41 b(A.)24 b(Israeli)e(and)h(M.)h(Li,)g FG(Bounde)l(d)j(Time-Stamps)p FK(,)d(Pro)r(c.)e(28th)h(IEEE)f(Symp)r (osium)694 4655 y(on)27 b(F)-7 b(oundations)27 b(of)h(Computer)f (Science,)h(pp.)g(371{382,)c(1987.)565 4812 y([8])41 b(A.)19 b(Israeli)e(and)h(A.)h(Shaham,)f FG(Optimal)k(Multi-Writer)g (Multi-R)l(e)l(ader)f(A)n(tomic)h(R)l(e)l(g-)694 4912 y(ister)p FK(,)29 b(Pro)r(c.)f(11th)g(A)n(CM)h(Symp)r(osium)h(on)e (Principles)g(of)h(Distributed)h(Comput-)694 5011 y(ing,)d(pp.)h (71{82,)d(1992.)565 5169 y([9])41 b(L.M.)c(Kirousis,)f(E.)h(Kranakis,)e (P)-7 b(.M.B.)37 b(Vit\023)-42 b(an)n(yi,)37 b FG(A)n(tomic)i(Multir)l (e)l(ader)g(R)l(e)l(gis-)694 5268 y(ter)p FK(,)21 b(Pro)r(c.)g(2nd)h (In)n(ternational)e(W)-7 b(orkshop)21 b(on)h(Distributed)g(Computing,)g (Lecture)694 5368 y(Notes)27 b(in)h(Computer)f(Science)h(312,)e(pp.)i (278{296,)c(July)k(1987.)p eop end %%Page: 110 120 TeXDict begin 110 119 bop 2551 299 a FF(7.7.)53 b(Conclusion)154 b(110)523 506 y FK([10])41 b(L.)29 b(Lamp)r(ort,)f FG(On)j(Interpr)l(o) l(c)l(ess)g(Communic)l(ation)h(Parts)f(I)g(and)h(II)p FK(,)d(Distributed)694 606 y(Computing,)e(v)n(ol.)g(1,)g(pp.)h(77{101,) d(1986.)523 769 y([11])41 b(M.)c(Li)f(and)h(P)-7 b(.M.B.)36 b(Vit\023)-42 b(an)n(yi,)37 b FG(A)h(very)h(simple)g(c)l(onstruction)e (for)i(atomic)g(mul-)694 869 y(tiwriter)h(r)l(e)l(gister)p FK(,)e(T)-7 b(ec)n(hn.)39 b(Rep)r(ort)f(TR)g(01-87,)e(Aik)n(en)j(Comp.) f(Lab.,)g(Harv)-5 b(ard)694 969 y(Univ)n(ersit)n(y)e(,)25 b(No)n(v)n(em)n(b)r(er)g(1987.)f(Also,)i(pp.)g(488-505)d(in:)j FG(Pr)l(o)l(c.)j(International)g(Col-)694 1068 y(lo)l(quium)42 b(on)f(A)n(utomata,)h(L)l(anguages,)h(and)f(Pr)l(o)l(gr)l(amming)p FK(,)g(Lecture)e(Notes)g(in)694 1168 y(Computer)27 b(Science,)h(V)-7 b(ol.)27 b(372,)g(Springer)f(V)-7 b(erlag,)27 b(1989.)523 1331 y([12])41 b(N.)e(Lync)n(h)g(and)g(M.)g(T)-7 b(uttle,)40 b FG(Hier)l(ar)l(chic)l(al)i(c)l(orr)l(e)l(ctness)e(pr)l(o)l(ofs)h(for) g(distribute)l(d)694 1431 y(algorithms)p FK(,)25 b(Pro)r(c.)d(6th)h(A)n (CM)h(Symp)r(osium)f(on)h(Principles)e(of)h(Distributed)h(Com-)694 1531 y(puting,)k(1987.)523 1694 y([13])41 b(R.)19 b(Newman-W)-7 b(olfe,)19 b FG(A)j(Pr)l(oto)l(c)l(ol)g(for)h(Wait-F)-6 b(r)l(e)l(e,)22 b(A)n(tomic,)h(Multi-R)l(e)l(ader)f(Shar)l(e)l(d)694 1794 y(V)-6 b(ariables)p FK(,)29 b(Pro)r(c.)f(6th)g(A)n(CM)g(Symp)r (osium)h(on)f(Principles)f(of)h(Distributed)h(Com-)694 1893 y(puting,)f(pp.)g(232{248,)c(1987.)523 2057 y([14])41 b(G.L.)36 b(P)n(eterson)e(and)i(J.E.)f(Burns,)g FG(Concurr)l(ent)i(r)l (e)l(ading)h(while)h(writing)f(II:)f(the)694 2156 y(multiwriter)f(c)l (ase)p FK(,)g(Pro)r(c.)e(28th)h(IEEE)e(Symp)r(osium)j(on)f(F)-7 b(oundations)34 b(of)h(Com-)694 2256 y(puter)27 b(Science,)h(pp.)g (383{392,)c(1987.)523 2419 y([15])41 b(G.L.)36 b(P)n(eterson,)e FG(Concurr)l(ent)j(r)l(e)l(ading)h(while)h(writing)p FK(,)e(A)n(CM)f(T)-7 b(ransactions)34 b(on)694 2519 y(Programming)25 b(Languages)g(and)i(Systems,)h(v)n(ol.)f(5,)g(No.)h(1,)f(pp.)h(46{55,)d (1983.)523 2682 y([16])41 b(R.)26 b(Sc)n(ha\013er,)g FG(On)i(the)h(c)l(orr)l(e)l(ctness)f(of)i(atomic)f(multi-writer)g(r)l (e)l(gisters)p FK(,)d(T)-7 b(ec)n(hnical)694 2782 y(Rep)r(ort)27 b(MIT/LCS/TM-364,)e(MIT)j(lab.)f(for)g(Computer)h(Science,)f(June)h (1988.)523 2945 y([17])41 b(A.K.)d(Singh,)g(J.H.)h(Anderson,)e(M.G.)i (Gouda,)f FG(The)i(Elusive)g(A)n(tomic)g(R)l(e)l(gister)694 3045 y(R)l(evisite)l(d)p FK(,)30 b(Pro)r(c.)e(6th)i(A)n(CM)f(Symp)r (osium)h(on)f(Principles)g(of)g(Distributed)h(Com-)694 3144 y(puting,)e(pp.)g(206{221,)c(1987.)523 3308 y([18])41 b(J.)27 b(Anderson,)g FG(Comp)l(osite)k(R)l(e)l(gisters)p FK(,)d(Distributed)g(Computing,)g(to)f(app)r(ear.)523 3471 y([19])41 b(K.)26 b(Vidy)n(asank)-5 b(ar,)24 b FG(Converting)29 b(L)l(amp)l(ort's)g(R)l(e)l(gular)f(R)l(e)l(gister)g(to)g(an)h(atomic)g (r)l(e)l(g-)694 3571 y(ister)p FK(,)f(Information)e(Pro)r(cessing)g (Letters,)h(v)n(ol.)g(28,)g(pp.)h(287{290,)c(1988.)523 3734 y([20])41 b(P)-7 b(.M.B.)36 b(Vit\023)-42 b(an)n(yi,)37 b(B.)g(Aw)n(erbuc)n(h,)f FG(A)n(tomic)j(Shar)l(e)l(d)g(R)l(e)l(gister)f (A)l(c)l(c)l(ess)g(by)g(Asyn-)694 3834 y(chr)l(onous)25 b(Har)l(dwar)l(e)p FK(,)e(Pro)r(c.)f(27th)g(IEEE)e(Symp)r(osium)j(on)f (F)-7 b(oundations)22 b(of)g(Com-)694 3934 y(puter)27 b(Science,)h(pp.)g(233{243,)c(1986.)i(\(Errata,)g(Ibid.,1987\))523 4097 y([21])41 b(C.)22 b(Dw)n(ork,)g(O.)g(W)-7 b(aarts,)21 b FG(Simple)26 b(and)g(e\016cient)f(b)l(ounde)l(d)h(c)l(oncurr)l(ent)e (timestamp-)694 4197 y(ing,)45 b(or,)g(Bounde)l(d)h(c)l(oncurr)l(ent)d (timestamp)i(systems)f(ar)l(e)h(c)l(ompr)l(ehensible!,)j FK(,)694 4296 y(Pro)r(c.)22 b(24th)g(A)n(CM)h(Symp)r(osium)h(on)e (Theory)g(of)h(Computing,)g(pp.)h(655{666,)c(1992.)523 4460 y([22])41 b(A.)26 b(Israeli,)g(M.)g(Pinhaso)n(v,)f FG(A)j(Concurr)l(ent)g(Time-Stamp)h(Scheme)h(which)g(is)f(Lin-)694 4559 y(e)l(ar)h(in)g(Time)h(and)f(Sp)l(ac)l(e)p FK(,)f(Pro)r(c.)d(6th)i (In)n(ternational)f(W)-7 b(orkshop)27 b(on)g(Distributed)694 4659 y(Algorithms,)g(Lecture)g(Notes)g(in)h(Computer)f(Science)h(647,)e (pp.)i(95{109,)d(1992.)523 4822 y([23])41 b(R.)22 b(Ga)n(wlic)n(k,)f (N.)i(Lunc)n(h,)f(N.)h(Sha)n(vit,)f FG(Concurr)l(ent)i(Timestamping)i (Made)h(Simple)p FK(,)694 4922 y(Pro)r(c.)35 b(1st)g(Israel)g(Symp)r (osium)h(on)g(Theory)f(of)h(Computing)g(and)f(Systems,)h(pp.)694 5021 y(171{183,)24 b(1992.)523 5185 y([24])41 b(C.)23 b(Dw)n(ork,)f(M.)h(Herlih)n(y)-7 b(,)23 b(S.)g(Plotkin,)f(O)h(W)-7 b(aarts,)22 b FG(Time-L)l(apse)27 b(Snapshots)p FK(,)d(Pro)r(c.)694 5284 y(1st)f(Israel)g(Symp)r(osium)h(on)g(Theory)e(of)i(Computing)g (and)g(Systems,)g(pp.)g(154{170,)694 5384 y(1992.)p eop end %%Page: 111 121 TeXDict begin 111 120 bop 2551 299 a FF(7.7.)53 b(Conclusion)154 b(111)523 506 y FK([25])41 b(U.)32 b(Abraham,)f FG(On)j(interpr)l(o)l (c)l(ess)g(c)l(ommunic)l(ation)g(and)g(the)g(implementation)h(of)694 606 y(a)30 b(multi-writer)f(atomic)i(r)l(e)l(gister)p FK(,)d(unpublished)g(man)n(uscript.)523 772 y([26])41 b(J.)25 b(T)-7 b(romp,)25 b FG(How)j(to)f(Construct)g(an)h(A)n(tomic)g (V)-6 b(ariable)p FK(,)26 b(Chapter)f(6,)g(also)f(in)i(Pro)r(c.)694 872 y(3rd)i(In)n(ternational)g(W)-7 b(orkshop)27 b(on)i(Distributed)h (Algorithms,)e(Lecture)h(Notes)f(in)694 971 y(Computer)f(Science)h (392,)e(pp.)i(292{302,)c(1989.)p eop end %%Page: 112 122 TeXDict begin 112 121 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(8)523 806 y FI(Binary)52 b(Snapshots)523 2549 y FL(8.1)116 b(In)m(tro)s(duction)523 2748 y FK(Consider)42 b(a)h(concurren)n(t)f(shared)h(memory)f(system.)h (A)h(snapshot)e(memory)h(ob)5 b(ject)523 2848 y(shared)26 b(b)r(et)n(w)n(een)g FC(n)h FK(pro)r(cesses)e(is)i(a)f(v)n(ector)f(of)i FC(n)f FK(memory)g(cells,)h(one)f(`o)n(wned')g(b)n(y)h(eac)n(h)523 2947 y(pro)r(cess.)20 b(All)i(pro)r(cesses)d(can)i(indep)r(enden)n(tly) h(and)f(concurren)n(tly)e(write)i(to)g(\()p FG(up)l(date)6 b FK(\))22 b(the)523 3047 y(cell)30 b(they)h(o)n(wn,)f(and)g(all)g(pro) r(cesses)f(can)h(`instan)n(taneously')f(collect)h(\()p FG(sc)l(an)6 b FK(\))31 b(all)f(v)-5 b(alues)523 3147 y(in)28 b(the)g(v)n(ector)e(in)i(a)f(single)g(op)r(eration.)606 3246 y(The)j(problem)g(of)g(implemen)n(ting)g(a)f(w)n(ait-free)g (atomic)h(snapshot)f(ob)5 b(ject)30 b(w)n(as)f(inde-)523 3346 y(p)r(enden)n(tly)j(prop)r(osed)e(and)i(solv)n(ed)e(b)n(y)h (Anderson)g([6,)g(7,)g(8])g(and)h(Afek)g(et)f(al.)g([1].)h(An-)523 3445 y(derson)c(giv)n(es)g(an)h(exp)r(onen)n(tial)f(time)1717 3415 y FB(1)1784 3445 y FK(solution)h(to)g(this)g(problem)g(using)f (single-writer)523 3545 y(m)n(ulti-reader)h(registers,)g(and)h(also)f (considers)g(the)i(m)n(ulti-writer)f(case)g(in)g(whic)n(h)h(more)523 3645 y(than)j(one)f(pro)r(cess)g(ma)n(y)g(up)r(date)h(a)g(particular)e (cell.)i(In)g(his)g(solution)f(for)g(the)i(m)n(ulti-)523 3744 y(writer)40 b(case)g(he)h(uses)f(the)h(single-writer)e(snapshot)h (ob)5 b(ject)40 b(as)g(a)g(primitiv)n(e,)h(so)f(his)523 3844 y(solution)27 b(do)r(es)g(not)g(rely)g(on)g(m)n(ulti-writer)g(m)n (ulti-reader)f(registers.)f(Afek)j(et)g(al.)f(giv)n(e)f(a)523 3944 y(p)r(olynomial)c(time)g(implemen)n(tation)h(of)f(a)g (single-writer)e(atomic)i(snapshot)g(ob)5 b(ject,)22 b(also)523 4043 y(using)31 b(single-writer)f(m)n(ulti-reader)h (registers.)f(They)h(also)g(consider)f(the)i(m)n(ulti-writer)523 4143 y(case,)27 b(but)h(giv)n(e)f(a)g(solution)g(using)g(m)n (ulti-writer)g(m)n(ulti-reader)f(registers)g(instead.)606 4242 y(The)35 b(atomic)f(snapshot)f(memory)h(ob)5 b(ject)34 b(is)h(a)f(p)r(o)n(w)n(erful)g(to)r(ol)g(to)g(construct)g(other)523 4342 y(atomic)26 b(w)n(ait-free)g(ob)5 b(jects,)27 b(for)f(instance)h (coun)n(ters,)f(logical)f(clo)r(c)n(ks,)h(or)g(b)r(ounded)h(con-)523 4442 y(curren)n(t)h(time-stamp)g(sc)n(hemes.)g(Aspnes)h(and)f(Herlih)n (y)g([3])h(giv)n(e)e(a)i(general)e(metho)r(d)i(to)523 4541 y(con)n(v)n(ert)c(a)i(sequen)n(tial)f(sp)r(eci\014cation)h(of)f(a) h(shared)f(memory)g(ob)5 b(ject)26 b(that)i(satis\014es)e(cer-)523 4641 y(tain)31 b(constrain)n(ts)e(to)h(a)h(w)n(ait-free)e(implemen)n (tation)i(of)f(that)h(ob)5 b(ject)31 b(using)f(an)g(atomic)523 4741 y(snapshot)35 b(memory)f(ob)5 b(ject)35 b(as)g(a)g(primitiv)n(e.)g (They)h(also)e(giv)n(e)g(a)h(a)g(p)r(olynomial-time)523 4840 y(implemen)n(tation)28 b(of)f(a)g(w)n(ait-free)g(atomic)g (snapshot)g(ob)5 b(ject.)606 4940 y(The)26 b(main)f(question)g(remains) g(whether)g(it)h(is)f(p)r(ossible)g(to)h(deterministically)f(imple-)p 523 5060 499 5 v 627 5142 a Fm(1)661 5173 y FF(In)37 b(the)h(literature)h(on)e(this)h(sub)t(ject)h(the)e(time)h(complexit)n (y)g(is)g(usually)g(measured)h(b)n(y)523 5256 y(the)27 b(n)n(um)n(b)r(er)g(of)h(shared)g(register)h(accesses)g(p)r(er)f(op)r (eration)h(as)f(a)g(function)g(of)g(the)f(n)n(um)n(b)r(er)g(of)523 5339 y(pro)r(cesses.)p eop end %%Page: 113 123 TeXDict begin 113 122 bop 2498 299 a FF(8.1.)53 b(In)n(tro)r(duction) 152 b(113)523 506 y FK(men)n(t)29 b(an)g(atomic)f(snapshot)h(ob)5 b(ject)28 b(with)i(single-writer)d(m)n(ulti-reader)h(registers)f(suc)n (h)523 606 y(that)g(the)g(time)f(complexit)n(y)g(of)h(b)r(oth)g(the)f (up)r(date)h(and)f(the)h(scan)f(op)r(erations)f(is)h(linear.)523 706 y(Muc)n(h)32 b(researc)n(h)d(has)i(fo)r(cused)h(on)f(a\016rming)g (this,)h(b)n(y)f(imp)r(osing)g(certain)g(restrictions)523 805 y(on)j(the)g(applicabilit)n(y)g(of)g(the)h(solutions.)e(In)h([12)o (],)h(Kirousis)d(et)j(al.)f(presen)n(t)f(a)h(linear-)523 905 y(time)29 b(solution)e(for)h(the)g(case)g(in)g(whic)n(h)g(no)g(t)n (w)n(o)f(scans)h(ev)n(er)f(o)n(v)n(erlap.)f(Dw)n(ork)h(et)h(al.)g([9]) 523 1005 y(in)n(tro)r(duce)35 b(the)h(w)n(eak)n(er)e(time-lapse)h (snapshot)g(ob)5 b(ject,)35 b(and)h(giv)n(e)f(a)g(linear)g(time)h(im-) 523 1104 y(plemen)n(tation)30 b(of)h(this)g(ob)5 b(ject.)30 b(Time-lapse)f(snapshots)h(satisfy)g(the)h(same)f(prop)r(erties)523 1204 y(atomic)c(snapshots)g(do,)h(except)g(that)g(the)g(former)f(allo)n (w)g(concurren)n(t)g(scans)g(to)g(con)n(tra-)523 1303 y(dict)34 b(eac)n(h)f(other.)g(In)g([11)o(],)h(Israeli)e(et)i(al.)f (presen)n(t)g(linear-time)g(implemen)n(tations)g(for)523 1403 y(either)e(the)g(up)r(date)h(or)e(the)h(scan)g(op)r(erations,)e (or)h(for)h(un)n(balanced)f(systems)h(in)g(whic)n(h)523 1503 y(the)g(n)n(um)n(b)r(er)e(of)i(up)r(daters)f(is)g(substan)n (tially)f(smaller)g(than)h(the)h(n)n(um)n(b)r(er)f(of)g(scanners,)523 1602 y(or)36 b(vice)g(v)n(ersa.)f(Finally)-7 b(,)37 b(A)n(ttiy)n(a)f (et)h(al.)f([4])h(in)n(tro)r(duce)f(the)h(lattice)g(agreemen)n(t)e (deci-)523 1702 y(sion)30 b(problem)g(and)g(sho)n(w)g(that)g(a)g (solution)g(to)h(this)f(problem)g(can)g(b)r(e)h(con)n(v)n(erted)e(to)h (a)523 1802 y(w)n(ait-free)d(atomic)g(snapshot)g(implemen)n(tation.)606 1901 y(In)33 b(this)h(c)n(hapter)e(w)n(e)g(tak)n(e)h(a)f(similar)h (approac)n(h,)e(and)i(reduce)f(the)i(general)d(atomic)523 2001 y(snapshot)k(problem)f(to)h(a)g(simpler)g(one.)g(W)-7 b(e)36 b(presen)n(t)f(a)f(b)r(ounded,)i(linear)f(time)g(con-)523 2100 y(struction)29 b(of)h(a)f(w)n(ait-free)f(implemen)n(tation)i(of)f (the)h(general)e(atomic)h(snapshot)g(ob)5 b(ject)523 2200 y(from)29 b(an)h(atomic)f(w)n(ait-free)g FG(binary)38 b FK(snapshot)29 b(ob)5 b(ject)30 b(\(where)f(eac)n(h)g(cell)h(can)f (con)n(tain)523 2300 y(only)35 b(t)n(w)n(o)g(v)-5 b(alues\))35 b(and)g(a)g(small)g(amoun)n(t)g(of)h(safe)f(and)g(regular)e (single-writer)h(regis-)523 2399 y(ters.)29 b(Th)n(us)g(the)g(searc)n (h)f(for)h(an)g(e\016cien)n(t)g(atomic)g(snapshot)f(implemen)n(tation)i (ma)n(y)e(b)r(e)523 2499 y(restricted)f(to)g(the)h(binary)f(case.)606 2599 y(W)-7 b(e)29 b(will)f(use)g(a)g(pro)r(of)g(tec)n(hnique)g(prop)r (osed)f(in)h([5],)g(also)g(used)g(in)g([14)o(])h(to)f(pro)n(v)n(e)e (the)523 2698 y(correctness)20 b(of)j(some)f(atomic)f(register)g (constructions.)h(The)g(tec)n(hnique)g(is)g(a)g(deriv)-5 b(ation)523 2798 y(of)33 b(Lamp)r(ort's)g(system)g(as)f(describ)r(ed)h (in)h([13)o(],)f(where)g(his)g(t)n(w)n(o)f(precedence)h(relations)523 2897 y FG(pr)l(e)l(c)l(e)l(des)g FK(and)25 b FG(c)l(an)j(a\013e)l(ct)33 b FK(are)24 b(replaced)g(b)n(y)h(a)g(single)g(in)n(terv)-5 b(al)25 b(order.)f(W)-7 b(e)25 b(\014rst)g(presen)n(t)523 2997 y(the)i(mo)r(del)g(in)f(Section)h(8.2,)f(then)h(w)n(e)f(state)g (the)h(atomic)f(w)n(ait-free)f(snapshot)h(problem)523 3097 y(in)k(Section)g(8.3.)f(The)h(proto)r(col)f(is)h(presen)n(ted)f (in)h(Section)g(8.4,)f(and)h(is)g(pro)n(v)n(en)e(correct)523 3196 y(in)g(Section)f(8.5.)523 3504 y FL(8.2)116 b(The)38 b(Mo)s(del)523 3703 y FK(A)k(concurren)n(t)d(shared)i(memory)f(system)h (is)g(a)g(collection)g(of)g(sequen)n(tial)f(pro)r(cesses)523 3802 y(comm)n(unicating)f(async)n(hronously)e(through)i(shared)g (memory)f(data)i(structures.)e(A)n(t)523 3902 y(an)n(y)27 b(time)g(a)g(pro)r(cess)f(is)h(executing)g(at)g(most)g(one)g(action.)g (A)h(pro)r(cess)e(can)h(at)g(an)n(y)f(time)523 4002 y(decide)f(to)h (start)e(a)h(new)h(action)f(when)g(it)h(is)f(idle,)h(or)e(to)h (\014nish)h(an)f(ongoing)f(action.)h(The)523 4101 y(start)i(time)h(of)g (an)f(action)g FC(a)h FK(is)f(denoted)h(b)n(y)f FC(s)p FK(\()p FC(a)p FK(\))h(and)g(the)g(\014nish)f(time)i(b)n(y)e FC(f)9 b FK(\()p FC(a)p FK(\).)606 4201 y(W)-7 b(e)37 b(mo)r(del)g(an)f(execution)g(of)h(the)g(shared)e(memory)h(system)g(b)n (y)h(a)f(tuple)h FD(hA)p FC(;)14 b FD(!i)p FK(,)523 4301 y(where)24 b FD(A)h FK(is)g(the)g(set)f(of)h(all)f(executed)h(actions)f (ordered)f(b)n(y)i FD(!)f FK(suc)n(h)h(that)g FC(a)f FK(precedes)g FC(b)p FK(,)523 4400 y FC(a)g FD(!)f FC(b)p FK(,)28 b(if)h FC(f)9 b FK(\()p FC(a)p FK(\))24 b FC(<)f(s)p FK(\()p FC(b)p FK(\).)28 b(W)-7 b(e)28 b(require)f(for)h(an)n(y)f (execution)h FD(hA)p FC(;)14 b FD(!i)29 b FK(that)f(for)f(an)n(y)h FC(a)23 b FD(2)h(A)523 4500 y FK(there)32 b(are)f(only)h(a)g(\014nite)g (n)n(um)n(b)r(er)g(of)g(actions)g FC(b)e FD(2)h(A)h FK(with)h FD(:)p FK(\()p FC(a)e FD(!)g FC(b)p FK(\).)h(This)g(w)n(a)n(y)f(w)n(e) 523 4599 y(require)24 b(an)h(execution)g(to)g(start)f(at)h(some)g(p)r (oin)n(t)g(in)h(time,)g(rather)e(than)h(extending)g(in)n(to)523 4699 y(the)d(in\014nite)h(past)f([13)o(,)g(5].)g(With)h(this)g (de\014nition,)f FD(!)g FK(is)g(a)g(sp)r(ecial)g(kind)g(of)g(partial)f (order)523 4799 y(called)k(an)g FG(interval)j(or)l(der)36 b FK(\(i.e.)25 b(a)g(transitiv)n(e)g(binary)f(relation)g(suc)n(h)h (that)h(if)g FC(a)d FD(!)g FC(b)i FK(and)523 4898 y FC(c)31 b FD(!)g FC(d)h FK(then)h FC(a)e FD(!)g FC(d)h FK(or)g FC(c)e FD(!)h FC(b)p FK(\).)h(No)n(w)g(w)n(e)g(ha)n(v)n(e)f(abstracted) g(a)n(w)n(a)n(y)g(from)h(the)g(actual)523 4998 y(time)26 b(an)f(action)g(o)r(ccurred,)g(and)g(w)n(e)h(can)f(sp)r(ecify)h(the)g (b)r(eha)n(viour)e(of)h(actions)g(in)n(v)n(olving)523 5098 y(access)h(to)i(the)g(shared)e(memory)h(in)h(terms)f(of)h(the)g (in)n(terv)-5 b(al)27 b(order.)606 5197 y(If)j(one)g(wishes)f(to)g (implemen)n(t)i(a)e(certain)g FG(c)l(omp)l(ound)39 b FK(shared)29 b(memory)g(ob)5 b(ject,)29 b(one)523 5297 y(\014rst)g(assumes)e(a)i(set)g(of)f FG(primitive)37 b FK(shared)28 b(memory)g(ob)5 b(jects)28 b(used)h(in)g(the)g (implemen-)p eop end %%Page: 114 124 TeXDict begin 114 123 bop 2551 299 a FF(8.2.)53 b(The)26 b(Mo)r(del)154 b(114)523 506 y FK(tation.)28 b(Ev)n(ery)e(op)r(eration) h(on)h(the)h(comp)r(ound)f(ob)5 b(ject)28 b(is)g(implemen)n(ted)g(b)n (y)g(a)g FG(pr)l(oto)l(c)l(ol)523 606 y FK(whic)n(h)j(in)n(v)n(ok)n(es) e(actions)h(on)g(these)h(primitiv)n(e)g(ob)5 b(jects.)30 b(Using)h(the)g(comp)r(ound)g(ob)5 b(ject)523 706 y(will)28 b(result)g(in)g(an)g FG(implementation)36 b FK(execution.)27 b(Since)i(ev)n(ery)d(op)r(eration)h(on)h(the)g(com-)523 805 y(p)r(ound)c(ob)5 b(ject)24 b(is)f(implemen)n(ted)i(b)n(y)e(a)h (sequence)f(of)h(actions)f(on)g(the)i(primitiv)n(e)e(ob)5 b(jects,)523 905 y(an)31 b(implemen)n(tation)h(execution)f(induces)h(a) f FG(b)l(asic)38 b FK(execution)31 b FD(hA)p FC(;)14 b FD(!i)32 b FK(on)g(the)g(shared)523 1005 y(memory)23 b(system.)h(In)g(an)g(implemen)n(tation)g(execution)f(w)n(e)h(mo)r(del) g(an)f(op)r(eration)g(as)g(the)523 1104 y(set)30 b(of)g(actions)f(it)h (in)n(v)n(ok)n(es.)f(The)h(implemen)n(tation)g(execution)f(itself)i(is) e(mo)r(deled)i(b)n(y)e(a)523 1204 y(tuple)34 b FD(hO)r FC(;)904 1164 y FA(o)879 1204 y FD(!i)p FK(,)g(where)g FD(O)i FK(con)n(tains)d(all)g(op)r(erations)g(in)n(v)n(ok)n(ed)f (during)i(the)g(execution,)523 1303 y(and)f(where)f(for)g(op)r (erations)g FC(A;)14 b(B)36 b FD(2)c(O)r FK(,)h FC(A)2005 1263 y FA(o)1980 1303 y FD(!)f FC(B)37 b FK(i\013)c(all)g(actions)f FC(a)g FD(2)g FC(A)h FK(precede)f(all)523 1403 y(actions)27 b FC(b)c FD(2)g FC(B)32 b FK(in)c FD(hA)p FC(;)14 b FD(!i)p FK(.)523 1710 y FL(8.3)116 b(A)m(tomic)36 b(Snapshot)i(Memories)523 1910 y FK(A)e(snapshot)f(memory)g(ob)5 b(ject)35 b(on)h FC(n)f FK(pro)r(cesses)g(is)g(a)g(v)n(ector)g(of)g FC(n)h FK(memory)f(cells.)g(A)523 2009 y(pro)r(cess)24 b FC(P)863 2021 y FA(i)916 2009 y FK(can)g(b)r(oth)h(write)g(a)f(new)h(v)-5 b(alue)25 b(to)f(the)i FC(i)p FK(-th)e(cell)h(in)g(the)g(v)n(ector)f (or)g(instan)n(ta-)523 2109 y(neously)i(collect)g(all)h(v)-5 b(alues)26 b(in)h(the)g(v)n(ector)e(in)i(a)g(single)f(op)r(eration.)f (In)i(the)g(\014rst)g(case)e(it)523 2208 y(p)r(erforms)i(an)g FG(up)l(date-op)l(er)l(ation)6 b FK(,)30 b(in)d(the)h(latter)g(case)e (it)i(p)r(erforms)f(a)g FG(sc)l(an-op)l(er)l(ation)6 b FK(.)606 2308 y(W)-7 b(e)20 b(require)f(our)h(implemen)n(tation)g(to) g(b)r(e)g FG(wait-fr)l(e)l(e)27 b FK(to)20 b(allo)n(w)f(maximal)g (concurrency)-7 b(,)523 2408 y(and)30 b(failure-resilience)f(in)i(the)f (case)g(of)g(crash-failures.)e(An)j(implemen)n(tation)f(is)g(w)n(ait-) 523 2507 y(free)24 b(if)g(and)f(only)h(if)g(all)g(up)r(date)g(and)g (scan)f(op)r(erations)f(p)r(erformed)h(b)n(y)h(an)n(y)f(pro)r(cess)g (will)523 2607 y(complete)30 b(in)g(an)g(a)g(priori)f(b)r(ounded)h(n)n (um)n(b)r(er)g(of)g(steps,)g(regardless)e(of)i(the)g(b)r(eha)n(viour) 523 2707 y(of)e(the)g(other)f(pro)r(cesses.)606 2806 y(Secondly)-7 b(,)29 b(w)n(e)g(require)g(our)f(implemen)n(tation)i(to)f (b)r(e)h FG(atomic)5 b FK(.)30 b(This)f(means)g(that)h(all)523 2906 y(op)r(erations)d(m)n(ust)h(app)r(ear)f(to)h(tak)n(e)f(e\013ect)i (at)e(one)h(instan)n(t)g(of)g(time)g(during)g(the)g(actual)523 3005 y(time)33 b(the)f(op)r(eration)f(executed)1556 2975 y FB(2)1593 3005 y FK(.)h(This)g(allo)n(ws)f(us)h(to)g(`shrink')f(the)i (actual)e(execution)523 3105 y(in)n(terv)-5 b(al)28 b(of)g(an)f(op)r (eration)g(to)h(a)g(p)r(oin)n(t,)g(and)g(w)n(e)g(require)f(a)h(scan)f (to)h(return)g(the)g(v)-5 b(alues)523 3205 y(written)29 b(b)n(y)g(the)g(most)g(recen)n(t)f(preceding)g(up)r(dates.)i(The)e (next)i(paragraph)c(formalises)523 3304 y(this.)606 3404 y(Let)h FD(O)i FK(b)r(e)f(the)f(set)g(of)f(all)h(scan)f(and)h(up)r (date)g(op)r(erations)f(in)n(v)n(ok)n(ed)f(in)i(an)f(implemen-)523 3504 y(tation)i(execution)f FD(hO)r FC(;)1302 3464 y FA(o)1277 3504 y FD(!i)h FK(of)g(a)f(snapshot)g(ob)5 b(ject.)28 b(Assume)g(for)f(ease)g(of)h(presen)n(tation)523 3603 y(that)c FD(O)i FK(includes)e FC(n)f FK(initialising)h(up)r (dates,)g(one)f(p)r(er)g(pro)r(cessor,)f(that)i(precede)f(all)g(other) 523 3703 y(op)r(erations)30 b(in)i FD(O)r FK(.)h(The)e(implemen)n (tation)h(of)g(an)f(atomic)h(snapshot)f(ob)5 b(ject)31 b(is)h FG(c)l(orr)l(e)l(ct)523 3802 y FK(if)d(for)f(an)n(y)g(of)h(its)g (executions)f FD(hO)r FC(;)1667 3762 y FA(o)1642 3802 y FD(!i)h FK(w)n(e)f(can)g(extend)2358 3762 y FA(o)2333 3802 y FD(!)h FK(to)g(a)f(total)g(order)3086 3762 y FA(o)3036 3802 y FK(=)-15 b FD(\))29 b FK(suc)n(h)523 3902 y(that)j(for)f(all)g (scan)g(op)r(erations)f FC(S)35 b FD(2)30 b(O)r FK(,)i FC(S)k FK(returns)31 b(for)g(an)n(y)f(cell)i FC(i)f FK(the)h(v)-5 b(alue)32 b(written)523 4002 y(b)n(y)27 b(the)h(last)g(up)r(date)g FC(U)1275 4014 y FA(i)1325 4002 y FD(2)23 b(O)31 b FK(executed)c(b)n(y) g FC(P)2011 4014 y FA(i)2067 4002 y FK(preceding)g FC(S)32 b FK(in)2672 3962 y FA(o)2621 4002 y FK(=)-14 b FD(\))p FK(.)523 4309 y FL(8.4)116 b(The)38 b(Solution)523 4508 y FK(In)f(the)f(next)h(t)n(w)n(o)f(sections)f(w)n(e)h(giv)n(e)g(our)f (implemen)n(tation)i(of)f(the)h FC(n)f FK(pro)r(cess)f(w)n(ait-)523 4608 y(free)j(atomic)g(snapshot)g(ob)5 b(ject.)38 b(The)g FG(ar)l(chite)l(ctur)l(e)45 b FK(describ)r(es)38 b(all)g(primitiv)n(e)g (shared)523 4707 y(memory)29 b(ob)5 b(jects)30 b(used)g(b)n(y)g(the)g FG(pr)l(oto)l(c)l(ols)7 b FK(|one)31 b(for)e(eac)n(h)g(t)n(yp)r(e)i(of) f(op)r(eration)f(on)g(the)523 4807 y(shared)f(memory)h(ob)5 b(ject.)29 b(The)g(arc)n(hitecture)f(also)g(sp)r(eci\014es)h(the)h (initial)f(v)-5 b(alues)29 b(of)g(the)523 4907 y(primitiv)n(e)h(ob)5 b(jects,)30 b(the)h(op)r(erations)e(eac)n(h)h(pro)r(cess)f(is)i(allo)n (w)n(ed)e(to)h(p)r(erform)g(on)g(them,)523 5006 y(and)d(the)h(t)n(yp)r (e)g(of)g(v)-5 b(alues)27 b(it)h(holds.)p 523 5126 499 5 v 627 5208 a Fm(2)661 5240 y FF(Although)23 b(here)h(w)n(e)f(refer)i (to)e(the)g(global)i(time)f(mo)r(del)g(for)g(its)g(more)g(in)n(tuitiv)n (e)f(app)r(eal,)h(w)n(e)523 5323 y(will)j(actually)f(pro)n(v)n(e)f (atomicit)n(y)i(b)n(y)d(linearization)k(\(cf.)e([13)r(],)g(and)f(the)g (previous)h(section\).)p eop end %%Page: 115 125 TeXDict begin 115 124 bop 2483 299 a FF(8.4.)53 b(The)26 b(Solution)153 b(115)606 506 y FK(The)31 b(in)n(tuition)h(b)r(ehind)g (our)e(implemen)n(tation)h(is)g(quite)h(straigh)n(tforw)n(ard:)c(Supp)r (ose)523 606 y(up)r(date)e(op)r(erations)f(of)g FC(P)1348 618 y FA(i)1402 606 y FK(write)g(the)h(new)g(v)-5 b(alue)26 b(alternately)f(to)g(t)n(w)n(o)g(registers)f FG(val)3242 618 y FA(i)3270 606 y FK([0])523 706 y(and)18 b FG(val)786 718 y FA(i)813 706 y FK([1])g(\(this)h(idea)f(w)n(as)g(indep)r(enden)n (tly)h(put)g(forw)n(ard)d(b)n(y)j(Haldar)e(and)h(Vidy)n(asank)-5 b(ar)17 b([10)o(]\),)523 805 y(after)28 b(whic)n(h)h(they)g(use)g(an)f (up)r(date)h(on)g(the)g(binary)f(snapshot)g(to)g(inform)h(the)g(scans)f (of)523 905 y(the)23 b(p)r(osition)f(they)g(wrote)g(to.)g(A)g(scan)g (\014rst)g(p)r(erforms)f(a)h(scan)g(on)f(the)i(binary)e(snapshot,)523 1005 y(and)33 b(tries)g(to)g(read)g(the)h(v)-5 b(alues)33 b(from)g(the)g(registers)f FG(val)2376 1017 y FA(i)2437 1005 y FK(at)i(the)f(p)r(ositions)g(returned)523 1104 y(b)n(y)24 b(the)h(binary)e(scan.)h(As)h(later)e(up)r(dates)i(ma)n(y)e (o)n(v)n(erwrite)g(v)-5 b(alues)24 b(b)r(efore)g(they)g(are)g(read)523 1204 y(b)n(y)31 b(a)f(concurren)n(t)g(scan,)g(up)r(dates)h(p)r(erform)f (a)h(scan)f(op)r(eration)g(as)g(w)n(ell,)h(the)g(result)g(of)523 1303 y(whic)n(h)e(they)h(write)f(in)h(the)g(register)e FG(view)1872 1315 y FA(i)1900 1303 y FK(.)i(A)f(scan)g(uses)g(a)g FG(handshaking)39 b FK(mec)n(hanism)523 1403 y(to)31 b(detect)h(o)n(v)n(erwriting)d(up)r(dates,)i(in)h(whic)n(h)f(case)f(it) i(copies)e(the)i(view)f(written)g(b)n(y)g(an)523 1503 y(in)n(terfering)c(up)r(date.)523 1752 y Fl(8.4.1)99 b(The)34 b(A)n(r)-5 b(chite)g(ctur)g(e)523 1901 y FK(Our)33 b(implemen)n(tation)h(of)g(an)g FC(n)f FK(pro)r(cess)g(atomic)h (snapshot)f(memory|with)g(cells)h(of)523 2001 y(t)n(yp)r(e)40 b FC(T)12 b FK(|will)40 b(use)f(one)h FC(n)g FK(pro)r(cess)f(binary)g (atomic)h(snapshot)f(ob)5 b(ject)40 b(with)g(op)r(era-)523 2100 y(tions)23 b FG(B-Up)l(date)1067 2121 y FA(i)1118 2100 y FK(and)h FG(B-Sc)l(an)1540 2112 y FA(i)1567 2100 y FK(,)g(p)r(erformed)f(b)n(y)g(pro)r(cess)f FC(P)2456 2112 y FA(i)2484 2100 y FK(.)i(Eac)n(h)e(cell)h(of)h(this)g(binary)523 2200 y(snapshot)d(ob)5 b(ject)22 b(is)f(initially)h(0.)g(In)g(addition) f(to)h(this,)g(our)f FC(n)p FK(-pro)r(cess)f(atomic)i(snapshot)523 2300 y(proto)r(col)k(will)i(use)g(the)g(follo)n(wing)e(shared)h (registers.)f(F)-7 b(or)27 b(eac)n(h)g FC(i)22 b FD(2)i(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(n)p FD(g)p FK(:)648 2466 y FD(\017)41 b FK(2)30 b(safe)h(registers)e(of)i(t)n(yp)r(e)g FC(T)12 b FK(,)30 b FG(val)1816 2478 y FA(i)1843 2466 y FK([0])h(and)g FG(val)2237 2478 y FA(i)2265 2466 y FK([1],)f(written)i(b)n(y)e(pro)r(cess)g FC(P)3165 2478 y FA(i)3224 2466 y FK(and)731 2565 y(read)35 b(b)n(y)g(all.)h (Initially)-7 b(,)36 b FG(val)1642 2577 y FA(i)1670 2565 y FK([1])f(ma)n(y)g(b)r(e)i(arbitrary)-7 b(,)34 b(but)i FG(val)2751 2577 y FA(i)2779 2565 y FK([0])g(m)n(ust)g(b)r(e)g(ini-)731 2665 y(tialised)27 b(to)g(the)h(desired)g(initial)f(v)-5 b(alue)28 b(of)f(cell)h FC(i)f FK(of)h(the)g(snapshot)f(v)n(ector.)648 2831 y FD(\017)41 b FK(1)d(regular)f(register,)g FG(view)1600 2843 y FA(i)1666 2831 y FK(\(an)i FC(n)p FK(-v)-5 b(alue)38 b(v)n(ector)f(with)i(elemen)n(ts)g(of)f(t)n(yp)r(e)h FC(T)12 b FK(\),)731 2931 y(written)27 b(b)n(y)h(pro)r(cess)e FC(P)1479 2943 y FA(i)1535 2931 y FK(and)h(read)g(b)n(y)g(all,)h (initially)f(arbitrary)-7 b(.)648 3097 y FD(\017)41 b FK(for)30 b(eac)n(h)h FC(j)j FD(2)c(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(n)p FD(g)p FK(:)31 b(a)g(safe)g(bit)h FC(c)2028 3109 y FA(ij)2117 3097 y FK(\(the)g(`complemen)n(t'-bit\),)g (an)f(atomic)731 3196 y(bit)i FC(s)904 3208 y FA(ij)995 3196 y FK(\(the)h(`start'-bit\))f(and)f(a)h(regular)e(bit)i FC(e)2289 3208 y FA(ij)2380 3196 y FK(\(the)h(`end'-bit\).)f(All)h (written)731 3296 y(b)n(y)27 b(pro)r(cess)f FC(P)1188 3308 y FA(i)1216 3296 y FK(,)i(read)f(b)n(y)g(pro)r(cess)f FC(P)1909 3308 y FA(j)1972 3296 y FK(and)i(initially)g(0.)523 3545 y Fl(8.4.2)99 b(The)34 b(Pr)-5 b(oto)g(c)g(ols)523 3694 y FK(Eac)n(h)31 b(of)h(the)h FC(n)f FK(pro)r(cesses)f FC(P)1480 3706 y FA(i)1540 3694 y FK(can)h(execute)h(b)r(oth)f(up)r (dates)h(and)f(scans)f(according)g(to)523 3794 y(the)d(follo)n(wing)f (proto)r(cols)p 523 3872 1168 4 v 523 4818 4 947 v 551 3966 a FH(Pro)s(cedure)h FG(Up)l(date)1266 3987 y FA(i)1294 3966 y FK(\()p FG(value)7 b FK(\))704 4066 y FC(b)22 b FK(:=)h(1)18 b FD(\000)g FC(b)704 4166 y FK(write)27 b FG(val)1026 4178 y FA(i)1054 4166 y FK([)p FC(b)p FK(])c FD( )g FG(value)704 4265 y(B-Up)l(date)1049 4286 y FA(i)1076 4265 y FK(\()p FC(b)p FK(\))704 4365 y FH(for)k FC(j)h FD(2)c(f)p FK(1)p FC(;)14 b(:)g(:)g(:)f(;)h(n)p FD(g)26 b FH(do)847 4464 y FK(write)i FC(s)1099 4476 y FA(ij)1180 4464 y FD( )g FK(\(read)f FC(c)1544 4476 y FA(j)s(i)1602 4464 y FK(\))704 4564 y(write)g FG(view)1082 4576 y FA(i)1133 4564 y FD( )c FG(Sc)l(an)1415 4576 y FA(i)704 4664 y FH(for)k FC(j)h FD(2)c(f)p FK(1)p FC(;)14 b(:)g(:)g(:)f(;)h(n)p FD(g)26 b FH(do)847 4763 y FK(write)i FC(e)1099 4775 y FA(ij)1180 4763 y FD( )23 b FC(s)1325 4775 y FA(ij)p 1687 4818 V 523 4821 1168 4 v 1811 3872 1519 4 v 1811 4818 4 947 v 1867 3966 a FH(Pro)s(cedure)28 b FG(Sc)l(an)2501 3978 y FA(i)2019 4066 y FH(for)g FC(j)g FD(2)c(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(n)p FD(g)27 b FH(do)2163 4166 y FK(write)h FC(c)2412 4178 y FA(ij)2493 4166 y FD( )23 b FK(1)p FD(\000)p FK(\(read)j FC(s)2961 4178 y FA(j)s(i)3020 4166 y FK(\))2019 4265 y FC(b)p FK([1)p FC(::n)p FK(])d(:=)f FG(B-Sc)l(an)2637 4277 y FA(i)2019 4365 y FH(for)28 b FC(j)g FD(2)c(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(n)p FD(g)27 b FH(do)2163 4464 y FK(read)g FC(v)s FK([)p FC(j)5 b FK(])23 b FD( )h FG(val)2716 4476 y FA(j)2751 4464 y FK([)p FC(b)p FK([)p FC(j)5 b FK(]])2163 4564 y FH(if)28 b FC(c)2283 4576 y FA(ij)2369 4564 y FK(=)f(\(read)g FC(s)2717 4576 y FA(j)s(i)2775 4564 y FK(\))h(=)g(\(read)f FC(e)3184 4576 y FA(j)s(i)3242 4564 y FK(\))2163 4664 y FH(then)32 b(return)c FK(\(read)f FG(view)3058 4676 y FA(j)3093 4664 y FK(\))2019 4763 y FH(return)i FC(v)s FK([1)p FC(::n)p FK(])p 3327 4818 V 1811 4821 1519 4 v 606 4942 a(The)f(Up)r(date-proto)r(col)f(uses)h(lo)r(cal)g(v)-5 b(ariables)26 b FC(j)34 b FK(\(ranging)26 b(o)n(v)n(er)h FD(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(n)p FD(g)p FK(\),)28 b(and)g FC(b)p FK(,)523 5041 y(a)34 b(static)h(bit)g(v)-5 b(ariable)34 b(initially)g(0,)h(whic)n(h)f(retains)g(its)h(v)-5 b(alue)35 b(in)g(b)r(et)n(w)n(een)f(successiv)n(e)523 5141 y(in)n(v)n(o)r(cations)27 b(of)i(the)g(proto)r(col.)f(The)h (Scan-proto)r(col)e(uses)h(lo)r(cal)h(v)-5 b(ariables)27 b FC(b)i FK(\(an)g FC(n)p FK(-bit)523 5241 y(v)n(ector\),)d FC(j)32 b FK(\(ranging)26 b(o)n(v)n(er)g FD(f)p FK(1)p FC(;)14 b(:)g(:)g(:)e(;)i(n)p FD(g)p FK(\),)27 b(and)g FC(v)k FK(\(an)c FC(n)p FK(-v)-5 b(alue)26 b(v)n(ector)g(with)i(elemen) n(ts)f(of)523 5340 y(t)n(yp)r(e)h FC(T)12 b FK(\).)p eop end %%Page: 116 126 TeXDict begin 116 125 bop 2483 299 a FF(8.4.)53 b(The)26 b(Solution)153 b(116)606 506 y FK(A)32 b(few)f(w)n(ords)f(on)h(the)h (programming)d(notation)i(are)f(in)i(order.)e(Some)h(assignmen)n(ts)523 606 y(in)n(v)n(olv)n(e)23 b(b)r(oth)i(a)g(write)f(and)h(a)f(read)g(or)f (Scan.)i(These)f(are)g(to)h(b)r(e)g(executed)f(sequen)n(tially)-7 b(,)523 706 y(the)30 b(read/Scan)e(\014rst)i(and)g(then)g(the)g(write.) g(E.g.)f(`write)h FC(s)d FD( )f FK(\(read)k FC(c)p FK(\)')g(is)g (shorthand)523 805 y(for)38 b(`)h(read)e FC(t)k FD( )h FC(c)p FK(;)c(write)g FC(s)j FD( )h FC(t)p FK('.)c(This)h(should)f(not) g(to)h(b)r(e)g(confused)f(with)h(read-)523 905 y(mo)r(dify-write)g(op)r (erations)e(that)j(execute)f(atomically)-7 b(.)38 b(W)-7 b(e)39 b(assume)f(that)i(the)f(v)-5 b(alue)523 1005 y(of)34 b(a)g(shared)f(register)g(written)i(b)n(y)f(a)g(pro)r(cess)f(also)g(b)r (elongs)h(to)g(that)g(pro)r(cess's)f(lo)r(cal)523 1104 y(state.)d(This)f(means)h(that)g(the)g(v)-5 b(alue)29 b(of)h(for)f(instance)h(the)g(shared)e(v)-5 b(ariable)29 b FC(c)3055 1116 y FA(ij)3143 1104 y FK(in)h(the)523 1204 y(Scan-proto)r(col)c(need)j(not)f(b)r(e)h(explicitly)f(read.)g (The)g(return)g(statemen)n(ts)g(in)h(the)f(Scan-)523 1303 y(proto)r(col)d(serv)n(e)g(to)h(return)g(the)h(indicated)f(v)-5 b(alue)26 b(to)g(the)h(caller,)e(and)h(to)g(terminate)g(the)523 1403 y(proto)r(col)g(immediately)-7 b(.)606 1503 y(The)33 b(for)g(lo)r(ops)g(are)f(indexed)i(o)n(v)n(er)d(a)i(set)h(to)f(mak)n(e) g(clear)f(that)i(the)f FC(n)h FK(lo)r(op)f(b)r(o)r(dies)523 1602 y(ma)n(y)d(b)r(e)h(in)n(terlea)n(v)n(ed)f(arbitrarily)-7 b(.)29 b(Since)i(the)g(registers)e(accessed)h(in)h(the)g(lo)r(op)g(b)r (o)r(dies)523 1702 y(are)25 b(all)h(disjoin)n(t,)h(suc)n(h)f(a)g(for)f (statemen)n(t)i(can)f(also)f(b)r(e)h(in)n(terpreted)g(as)g(a)g (do-in-parallel)523 1802 y(construct.)21 b(Th)n(us)h(the)g(parallel)e (time)i(complexit)n(y)f([2])h(of)f(snapshots)g(equals)g(the)h(parallel) 523 1901 y(time)28 b(complexit)n(y)f(of)h(binary)f(snapshots)f(\(up)i (to)g(a)f(constan)n(t)g(factor\).)523 2208 y FL(8.5)116 b(Pro)s(of)37 b(of)h(Correctness)523 2408 y FK(T)-7 b(o)32 b(pro)n(v)n(e)f(correctness)g(w)n(e)h(assume)g(the)h(usual)f (correctness)f(conditions)h(on)h(the)g(read)523 2507 y(write)25 b(registers)e(that)j(w)n(e)f(use)g(in)g(our)g(implemen)n (tation.)g(W)-7 b(e)25 b(also)f(assume)h(the)g(correct-)523 2607 y(ness)j(of)h(the)g(atomic)f(binary)f(snapshot)h(ob)5 b(ject)29 b(used)f(b)n(y)g(our)g(implemen)n(tation.)h(I.e.)f(in)523 2707 y(an)d(execution)g FD(hA)p FC(;)14 b FD(!i)27 b FK(w)n(e)e(assume)g(there)g(exists)g(a)g(total)g(order)g FD(\))g FK(extending)h FD(!)f FK(suc)n(h)523 2806 y(that)f(ev)n(ery)f (binary)g(scan)g FC(B)t(S)28 b FK(returns)c(for)f(bit)h FC(i)g FK(the)g(v)-5 b(alue)23 b(written)h(b)n(y)g(the)g(last)g(binary) 523 2906 y(up)r(date)k FC(B)t(U)926 2918 y FA(i)981 2906 y FK(executed)g(b)n(y)f FC(P)1493 2918 y FA(i)1549 2906 y FK(preceding)g FC(B)t(S)32 b FK(in)c FD(\))p FK(.)606 3005 y(W)-7 b(e)30 b(write)g FC(U)39 b FK(for)29 b FG(Up)l(date)37 b FK(and)30 b FC(S)35 b FK(for)29 b FG(Sc)l(an)6 b FK(.)31 b(F)-7 b(or)29 b(op)r(eration)g FC(O)g FD(2)f(f)p FC(U;)14 b(S;)g(B)t(U;)g(B)t(S)5 b FD(g)p FK(,)523 3105 y FC(O)588 3075 y FA(x)586 3127 y(i)669 3105 y FK(denotes)39 b(the)g FC(x)p FK(-th)g(execution)f(of)h FC(O)i FK(b)n(y)d(pro)r(cess)g FC(P)2399 3117 y FA(i)2427 3105 y FK(,)h(including)f(scans)g FC(S)3139 3117 y FA(i)3205 3105 y FK(that)523 3205 y(are)32 b(in)n(v)n(ok)n(ed)f(b)n(y)i(some)f(up)r(date)h FC(U)1658 3165 y FA(y)1649 3228 y(i)1698 3205 y FK(.)g(These)f(scans)g(are)g (sometimes)g(written)h(as)f FG(US)3295 3165 y FA(y)3295 3228 y(i)3335 3205 y FK(.)523 3304 y(Note)h(that)g FC(B)t(S)1037 3274 y FA(x)1032 3326 y(i)1112 3304 y FK(is)g(in)n(v)n(ok)n(ed)e(b)n(y) i FC(S)1685 3274 y FA(x)1680 3326 y(i)1726 3304 y FK(,)h(and)e FC(B)t(U)2082 3274 y FA(x)2073 3326 y(i)2157 3304 y FK(is)h(in)n(v)n (ok)n(ed)e(b)n(y)i FC(U)2740 3274 y FA(x)2731 3326 y(i)2782 3304 y FK(.)g FD(O)i FK(con)n(tains)d(all)523 3404 y(in)n(v)n(o)r (cations)20 b FC(S)1007 3374 y FA(x)1002 3426 y(i)1069 3404 y FK(and)h FC(U)1290 3374 y FA(x)1281 3426 y(i)1353 3404 y FK(for)g FC(i)i FD(2)g(f)p FK(1)p FC(;)14 b(:)g(:)g(:)f(;)h(n)p FD(g)20 b FK(and)h FC(x)j FD(\025)e FK(0.)f(Note)h(that)f(this)h(also)e (includes)523 3504 y(up)r(dates)26 b FC(U)899 3473 y FB(0)890 3525 y FA(i)963 3504 y FK(that)g(wrote)g(the)g(initial)h(v)-5 b(alues)25 b(for)h(the)h(cells)f FC(i)p FK(,)g(and)g(scans)f FG(US)3015 3467 y FA(x)3015 3524 y(i)3083 3504 y FK(in)n(v)n(ok)n(ed) 523 3603 y(b)n(y)i(up)r(dates)h FC(U)1016 3573 y FA(x)1007 3625 y(i)1058 3603 y FK(.)606 3703 y(If)23 b(scan)g FC(S)921 3673 y FA(x)916 3724 y(i)985 3703 y FK(sees)g FC(c)1184 3715 y FA(ij)1265 3703 y FK(=)g(\(read)f FC(s)1604 3715 y FA(j)s(i)1662 3703 y FK(\))i(=)e(\(read)h FC(e)2057 3715 y FA(j)s(i)2115 3703 y FK(\),)g(then)h(pro)r(cess)d FC(P)2715 3715 y FA(j)2774 3703 y FK(\(or)h(some)g(up)r(date)523 3802 y FC(U)580 3814 y FA(j)615 3802 y FK(\))31 b(is)g(said)g(to)g FG(interfer)l(e)38 b FK(with)32 b FC(S)1637 3772 y FA(x)1632 3824 y(i)1679 3802 y FK(.)f(A)h(scan)e(is)h FG(dir)l(e)l(ct)40 b FK(if)32 b(no)f(pro)r(cess)f(in)n(terferes)g(with)523 3902 y(it.)f FC(S)686 3872 y FA(x)681 3924 y(i)755 3902 y FG(c)l(ontains)35 b FC(S)1145 3862 y FA(y)1140 3925 y(j)1213 3902 y FK(i\013)28 b FC(s)p FK(\()p FC(S)1439 3872 y FA(x)1434 3924 y(i)1481 3902 y FK(\))c FC(<)f(s)p FK(\()p FC(S)1752 3862 y FA(y)1747 3925 y(j)1792 3902 y FK(\))h FC(<)f(f)9 b FK(\()p FC(S)2074 3862 y FA(y)2069 3925 y(j)2114 3902 y FK(\))24 b FC(<)f(f)9 b FK(\()p FC(S)2396 3872 y FA(x)2391 3924 y(i)2437 3902 y FK(\).)29 b(The)f(next)g(lemma)g(sho)n(ws)523 4002 y(that)g(direct)f(scans)g (will)h(return)f(correct)f(v)-5 b(alues.)523 4151 y Fv(Lemma)32 b FH(8.1)40 b FG(Assume)27 b FC(P)1357 4163 y FA(j)1420 4151 y FG(do)l(es)i(not)e(interfer)l(e)h(with)g(some)g(sc)l(an)g FC(S)2707 4121 y FA(x)2702 4173 y(i)2749 4151 y FG(,)g(and)g(let)g FC(S)3132 4121 y FA(x)3127 4173 y(i)3201 4151 y FG(sc)l(an)523 4261 y(the)e(value)h FC(b)p FK([)p FC(j)5 b FK(])25 b FG(up)l(date)l(d)i(by)f(some)h FC(U)1691 4221 y FA(y)1682 4284 y(j)1730 4261 y FG(,)g(i.e.)g FC(B)t(U)2055 4221 y FA(y)2046 4284 y(j)2118 4261 y FD(\))c FC(B)t(S)2347 4230 y FA(x)2342 4282 y(i)2412 4261 y FD(\))g FC(B)t(U)2651 4221 y FA(y)r FB(+1)2642 4284 y FA(j)2775 4261 y FG(.)j(Then)h(the)f (value)523 4360 y(val)633 4372 y FA(j)668 4360 y FK([)p FC(b)p FK([)p FC(j)5 b FK(]])30 b FG(r)l(e)l(ad)g(by)g FC(S)1208 4330 y FA(x)1203 4382 y(i)1280 4360 y FG(was)g(written)f (ther)l(e)h(by)g FC(U)2107 4320 y FA(y)2098 4383 y(j)2147 4360 y FG(.)523 4510 y Fv(Pr)n(oof.)19 b FK(Assume)h(scan)f FC(S)1362 4479 y FA(x)1357 4531 y(i)1423 4510 y FK(do)r(es)g(not)h(see) f FC(c)1904 4522 y FA(ij)1982 4510 y FK(=)h(\(read)f FC(s)2315 4522 y FA(j)s(i)2373 4510 y FK(\))h(=)f(\(read)g FC(e)2757 4522 y FA(j)s(i)2816 4510 y FK(\))h(and)f(that)h FC(B)t(S)3316 4479 y FA(x)3311 4531 y(i)523 4619 y FK(scanned)27 b(the)h(v)-5 b(alue)28 b FC(b)p FK([)p FC(j)5 b FK(])27 b(for)g(cell)h FC(j)k FK(up)r(dated)c(b)n(y)g FC(B)t(U)2258 4579 y FA(y)2249 4642 y(j)2298 4619 y FK(,)f(i.e.)h FC(B)t(U)2615 4579 y FA(y)2606 4642 y(j)2678 4619 y FD(\))23 b FC(B)t(S)2907 4589 y FA(x)2902 4641 y(i)2972 4619 y FD(\))g FC(B)t(U)3211 4579 y FA(y)r FB(+1)3202 4642 y FA(j)3335 4619 y FK(.)606 4719 y(The)i(write)g(of)f FG(val)1186 4731 y FA(j)1221 4719 y FK([)p FC(b)p FK(])g(b)n(y)h FC(U)1506 4679 y FA(y)1497 4742 y(j)1570 4719 y FK(precedes)f FC(B)t(U)2033 4679 y FA(y)2024 4742 y(j)2098 4719 y FK(in)h FD(!)p FK(,)g(and)g(the)g(read)f(of)h FG(val)3006 4731 y FA(j)3041 4719 y FK([)p FC(b)p FK(])g(b)n(y)f FC(S)3316 4688 y FA(x)3311 4740 y(i)523 4818 y FK(follo)n(ws)k FC(B)t(S)920 4788 y FA(x)915 4840 y(i)991 4818 y FK(in)h FD(!)p FK(.)g(Since)g FC(B)t(U)1575 4778 y FA(y)1566 4841 y(j)1640 4818 y FD(\))d FC(B)t(S)1872 4788 y FA(x)1867 4840 y(i)1913 4818 y FK(,)k(w)n(e)e(ha)n (v)n(e)g FD(:)p FK(\()p FC(B)t(S)2492 4788 y FA(x)2487 4840 y(i)2560 4818 y FD(!)d FC(B)t(U)2801 4778 y FA(y)2792 4841 y(j)2841 4818 y FK(\),)k(so)g(the)g(write)523 4918 y(of)d FG(val)726 4930 y FA(j)761 4918 y FK([)p FC(b)p FK(])g(b)n(y)g FC(U)1049 4878 y FA(y)1040 4941 y(j)1114 4918 y FK(precedes)f(the)i(read)e(of)g(it)i(b)n(y)e FC(S)2113 4888 y FA(x)2108 4939 y(i)2155 4918 y FK(.)h(So)f(if)i FC(S)2448 4888 y FA(x)2443 4939 y(i)2515 4918 y FK(do)r(es)f(not)g (read)f(the)h(v)-5 b(alue)523 5017 y(written)26 b(b)n(y)g FC(U)992 4978 y FA(y)983 5041 y(j)1058 5017 y FK(it)g(m)n(ust)g(b)r(e)h (concurren)n(t)d(with)j(or)e(o)r(ccur)g(after)h(a)g(write)f(to)h FG(val)3060 5029 y FA(j)3095 5017 y FK([)p FC(b)p FK(])f(b)n(y)h(a)523 5138 y(later)f(up)r(date)h FC(U)1058 5107 y FA(z)1049 5159 y(j)1121 5138 y FK(Note)g(that)g(this)f(later)g(up)r(date)h (cannot)f(b)r(e)h FC(U)2573 5098 y FA(y)r FB(+1)2564 5161 y FA(j)2697 5138 y FK(,)f(since)h(this)f(up)r(date)523 5237 y(will)j(write)f(to)h FG(val)1104 5249 y FA(j)1139 5237 y FK([1)18 b FD(\000)g FC(b)p FK(].)606 5337 y(Supp)r(ose)33 b(the)g(read)e(of)i FG(val)1484 5349 y FA(j)1519 5337 y FK([)p FC(b)p FK(])g(is)f(concurren)n(t)g(with)h(or)e(o)r(ccurs)h (after)g(a)g(write)h(to)f(it)p eop end %%Page: 117 127 TeXDict begin 117 126 bop 2231 299 a FF(8.5.)53 b(Pro)r(of)27 b(of)f(Correctness)155 b(117)523 506 y FK(b)n(y)26 b(an)h(up)r(date)g FC(U)1096 476 y FA(z)1087 528 y(j)1134 506 y FK(,)g FC(z)f(>)c(y)e FK(+)c(1.)26 b(No)n(w)g FC(B)t(S)1880 476 y FA(x)1875 528 y(i)1945 506 y FD(\))d FC(B)t(U)2184 467 y FA(y)r FB(+1)2175 530 y FA(j)2308 506 y FK(,)k(so)e(b)n(y)i(a)f(similar)g (argumen)n(t)f(as)523 627 y(b)r(efore)k(the)g(read)f(of)h FC(c)1236 639 y FA(ij)1323 627 y FK(b)n(y)g FC(U)1506 587 y FA(y)r FB(+1)1497 650 y FA(j)1659 627 y FK(o)r(ccurs)f(after)g (the)i(write)e(of)h FC(c)2604 639 y FA(ij)2692 627 y FK(b)n(y)f FC(S)2864 596 y FA(x)2859 648 y(i)2935 627 y FK(in)h FD(!)p FK(.)g FC(U)3234 587 y FA(y)r FB(+1)3225 650 y FA(j)523 726 y FK(writes)i(the)h(v)-5 b(alue)31 b(of)g FC(c)1271 738 y FA(ij)1361 726 y FK(to)h FC(s)1506 738 y FA(j)s(i)1595 726 y FK(and)g(later)e(to)i FC(e)2103 738 y FA(j)s(i)2192 726 y FK(b)r(efore)f FC(S)2501 696 y FA(x)2496 748 y(i)2574 726 y FK(reads)g(these,)g(since)g(the)523 826 y(read)26 b(of)h FG(val)911 838 y FA(j)946 826 y FK([)p FC(b)p FK(])g(b)n(y)f FC(S)1225 796 y FA(x)1220 847 y(i)1293 826 y FK(is)h(concurren)n(t)f(with)h(or)f(o)r(ccurs)g (after)g(a)g(write)h(to)g(it)g(b)n(y)f(up)r(date)523 925 y FC(U)589 895 y FA(z)580 947 y(j)627 925 y FK(.)31 b(No)n(w)g(the)g(v)-5 b(alues)31 b(of)g FC(c)1405 937 y FA(ij)1463 925 y FK(,)h FC(s)1557 937 y FA(j)s(i)1646 925 y FK(and)f FC(e)1850 937 y FA(j)s(i)1939 925 y FK(m)n(ust)g(b)r(e)h (equal,)e(and)h(as)g(long)f(as)g FC(S)3125 895 y FA(x)3120 947 y(i)3198 925 y FK(do)r(es)523 1025 y(not)d(\014nish,)g FC(c)950 1037 y FA(ij)1035 1025 y FK(will)g(not)f(c)n(hange.)g(This)h (implies)f(that)h(an)n(y)f(later)g(writes)g(to)h FC(s)3015 1037 y FA(j)s(i)3100 1025 y FK(and)g FC(e)3300 1037 y FA(j)s(i)523 1125 y FK(will)d(not)g(c)n(hange)f(their)h(v)-5 b(alue)24 b(and)f(th)n(us,)i(as)e(they)h(are)f(atomic)g(and)h(regular,) e FC(S)3056 1095 y FA(x)3051 1146 y(i)3122 1125 y FK(should)523 1224 y(see)27 b FC(c)693 1236 y FA(ij)779 1224 y FK(=)h(\(read)f FC(s)1128 1236 y FA(j)s(i)1186 1224 y FK(\))h(=)f(\(read)g FC(e)1594 1236 y FA(j)s(i)1652 1224 y FK(\),)h(a)g(con)n(tradiction.) 989 b Fu(2)606 1374 y FK(The)24 b(next)h(lemma)f(sho)n(ws)f(that)h (scans)f(that)i(cannot)e(collect)h(the)h(v)-5 b(alues)24 b(directly)g(due)523 1473 y(to)e(in)n(terfering)f(up)r(dates)i(can)f (cop)n(y)f(the)h(result)g(from)g(suc)n(h)g(an)g(in)n(terfering)f(up)r (date.)i(This)523 1573 y(in)n(terfering)33 b(up)r(date)i(will)f(ha)n(v) n(e)f(stored)g(the)h(result,)g(called)g(a)f(view,)h(of)g(a)g(direct)f (scan)523 1673 y(con)n(tained)27 b(in)h(the)g(in)n(terfered)f(scan.)523 1822 y Fv(Lemma)32 b FH(8.2)40 b FG(If)25 b(pr)l(o)l(c)l(ess)f FC(P)1406 1834 y FA(j)1466 1822 y FG(interfer)l(es)g(with)h(sc)l(an)f FC(S)2241 1792 y FA(x)2236 1844 y(i)2283 1822 y FG(,)g(then)g(the)h (view)g FC(S)2881 1792 y FA(x)2876 1844 y(i)2946 1822 y FG(c)l(opie)l(d)h(fr)l(om)523 1922 y(view)689 1934 y FA(j)754 1922 y FG(is)k(the)g(r)l(esult)f(of)h(a)g(dir)l(e)l(ct)g(sc) l(an)g FC(S)1847 1892 y FA(z)1842 1945 y(k)1885 1922 y FG(,)g(c)l(ontaine)l(d)h(in)e FC(S)2469 1892 y FA(x)2464 1943 y(i)2511 1922 y FG(.)523 2071 y Fv(Pr)n(oof.)36 b FK(Since)h FC(S)1128 2041 y FA(x)1123 2093 y(i)1206 2071 y FK(sees)f FC(c)1418 2083 y FA(ij)1513 2071 y FK(=)g(\(read)g FC(s)1879 2083 y FA(j)s(i)1938 2071 y FK(\))h(and)f FC(s)2216 2083 y FA(j)s(i)2311 2071 y FK(is)h(atomic)f(and)g FC(S)2911 2041 y FA(x)2906 2093 y(i)2989 2071 y FK(sets)h FC(c)3197 2083 y FA(ij)3293 2071 y FK(=)523 2171 y(1)p FD(\000)p FK(\(read)28 b FC(s)887 2183 y FA(j)s(i)945 2171 y FK(\),)h(there)g(m)n (ust)g(b)r(e)h(an)f(up)r(date)g FC(U)2028 2131 y FA(y)2019 2194 y(j)2097 2171 y FK(that)g(c)n(hanged)f FC(s)2639 2183 y FA(j)s(i)2727 2171 y FK(after)g FC(S)2980 2141 y FA(x)2975 2192 y(i)3051 2171 y FK(read)g FC(s)3276 2183 y FA(j)s(i)3335 2171 y FK(.)523 2270 y(This)f(implies)g(that)g (the)h(scan)e FG(US)1617 2230 y FA(y)1617 2294 y(j)1684 2270 y FK(of)h FC(U)1844 2230 y FA(y)1835 2294 y(j)1911 2270 y FK(started)f(after)g FC(S)2443 2240 y FA(x)2438 2292 y(i)2512 2270 y FK(did.)h(Note)g(that)g(after)g FC(U)3318 2230 y FA(y)3309 2294 y(j)523 2370 y FK(c)n(hanges)d FC(s)867 2382 y FA(j)s(i)926 2370 y FK(,)h FC(e)1013 2382 y FA(j)s(i)1097 2370 y FK(holds)g(the)h(old)g(v)-5 b(alue)25 b(of)h FC(s)1934 2382 y FA(j)s(i)2018 2370 y FK(whic)n(h)f(is)g(unequal)h(to)f(the)h(curren)n(t)f(v)-5 b(alue)523 2470 y(of)25 b FC(s)654 2482 y FA(j)s(i)713 2470 y FK(.)g(Then)g(if)h FC(S)1105 2439 y FA(x)1100 2491 y(i)1172 2470 y FK(also)e(sees)h FC(c)1537 2482 y FA(ij)1620 2470 y FK(=)g(\(read)g FC(e)1964 2482 y FA(j)s(i)2022 2470 y FK(\),)h FC(U)2169 2430 y FA(y)2160 2493 y(j)2234 2470 y FK(m)n(ust)f(ha)n(v)n(e)f(written)h FC(e)2953 2482 y FA(j)s(i)3037 2470 y FK(b)r(efore)g(or)523 2569 y(concurren)n(t)j(with)j(the)f(read)f(of)h FC(e)1598 2581 y FA(j)s(i)1686 2569 y FK(b)n(y)f FC(S)1859 2539 y FA(x)1854 2591 y(i)1901 2569 y FK(.)g(This)h(implies)g(that)g FC(S)2667 2539 y FA(x)2662 2591 y(i)2739 2569 y FK(reads)e FG(view)3124 2581 y FA(j)3189 2569 y FK(after)523 2669 y(the)33 b(result)f(of)h FG(US)1125 2629 y FA(y)1125 2692 y(j)1198 2669 y FK(w)n(as)f(written)g(to)h(it)g(b)n(y)f FC(U)2039 2629 y FA(y)2030 2692 y(j)2079 2669 y FK(.)h(This)g(also)e (sho)n(ws)h(that)h FC(S)2986 2639 y FA(x)2981 2690 y(i)3060 2669 y FK(con)n(tains)523 2768 y(this)g FG(US)808 2729 y FA(y)808 2792 y(j)848 2768 y FK(.)f(Note)g(that)h FG(view)1459 2780 y FA(j)1526 2768 y FK(m)n(ust)f(b)r(e)h(a)f(regular)e(register,)h (since)h(views)g(written)g(b)n(y)523 2868 y(later)27 b(up)r(dates)h(ma)n(y)f(in)n(terfere)g(with)h(the)g(read)e(of)i(the)g (view)f(b)n(y)h FC(S)2654 2838 y FA(x)2649 2890 y(i)2695 2868 y FK(.)578 b Fu(2)606 3018 y FK(W)-7 b(e)25 b(conclude)f(b)n(y)g (pro)n(ving)f(the)i(correctness)e(of)h(our)g(implemen)n(tation)h(of)f (the)h(atomic)523 3117 y(snapshot)i(ob)5 b(ject.)27 b(The)h(implemen)n (tation)g(is)f(ob)n(viously)f(w)n(ait-free.)523 3267 y Fv(Theorem)32 b FH(8.3)41 b FG(F)-6 b(or)31 b(any)g(exe)l(cution)f FD(hO)r FC(;)1936 3227 y FA(o)1911 3267 y FD(!i)h FG(ther)l(e)g(exists) f(a)h(total)f(extension)3176 3227 y FA(o)3126 3267 y FK(=)-15 b FD(\))31 b FG(of)548 3326 y FA(o)523 3366 y FD(!)c FG(such)h(that)f(any)h(sc)l(an)f FC(S)1384 3336 y FA(x)1379 3388 y(i)1453 3366 y FG(with)h FC(U)1697 3326 y FA(y)1688 3389 y(j)1810 3326 y(o)1760 3366 y FK(=)-15 b FD(\))24 b FC(S)1973 3336 y FA(x)1968 3388 y(i)2088 3326 y(o)2037 3366 y FK(=)-14 b FD(\))23 b FC(U)2260 3326 y FA(y)r FB(+1)2251 3389 y FA(j)2411 3366 y FG(r)l(eturns)j(for)i (c)l(el)t(l)g FC(j)33 b FG(the)27 b(value)523 3466 y(written)i(by)i FC(U)983 3426 y FA(y)974 3489 y(j)1022 3466 y FG(.)523 3615 y Fv(Pr)n(oof.)38 b FK(F)-7 b(or)39 b(direct)f(scans)g FC(S)1540 3585 y FA(x)1535 3637 y(i)1582 3615 y FK(,)h(let)g FC(\014)t FK(\()p FC(S)1914 3585 y FA(x)1909 3637 y(i)1956 3615 y FK(\))k(=)e FC(B)t(S)2260 3585 y FA(x)2255 3637 y(i)2302 3615 y FK(.)e(F)-7 b(or)38 b(indirect)h(scans)f FC(S)3125 3585 y FA(x)3120 3637 y(i)3205 3615 y FK(that)523 3715 y(copied)21 b(the)h(view)f(collected)g(b)n(y)g(a)g(direct)h(scan)e FC(S)2068 3675 y FA(y)2063 3738 y(j)2129 3715 y FK(\(see)i(lemma)f (8.2\),)g(let)h FC(\014)t FK(\()p FC(S)2987 3685 y FA(x)2982 3737 y(i)3029 3715 y FK(\))h(=)g FC(B)t(S)3295 3675 y FA(y)3290 3738 y(j)3335 3715 y FK(.)523 3815 y(Finally)-7 b(,)28 b(for)f(up)r(dates,)h(let)g FC(\014)t FK(\()p FC(U)1553 3784 y FA(x)1544 3836 y(i)1595 3815 y FK(\))23 b(=)g FC(B)t(U)1871 3784 y FA(x)1862 3836 y(i)1912 3815 y FK(.)606 3914 y(F)-7 b(or)31 b(an)n(y)f(t)n(w)n(o)h FC(A;)14 b(B)33 b FD(2)d(O)r FK(,)i(de\014ne)f FC(A)1868 3874 y FA(o)1818 3914 y FK(=)-15 b FD(\))30 b FC(B)35 b FK(if)d FC(\014)t FK(\()p FC(A)p FK(\))e FD(\))f FC(\014)t FK(\()p FC(B)t FK(\).)k(Note)e(that)h(neither)523 4014 y FC(A)666 3974 y FA(o)615 4014 y FK(=)-14 b FD(\))30 b FC(B)36 b FK(nor)31 b FC(B)1178 3974 y FA(o)1128 4014 y FK(=)-15 b FD(\))31 b FC(A)h FK(i\013)g FC(\014)t FK(\()p FC(A)p FK(\))g(=)d FC(\014)t FK(\()p FC(B)t FK(\).)k(By)f(lemma)g(8.2,) f FC(\014)t FK(\()p FC(S)5 b FK(\))32 b(o)r(ccurs)f(inside)h FC(S)523 4113 y FK(for)25 b(an)n(y)g(indirect)h(scan)f FC(S)5 b FK(.)26 b(This)f(implies)h(that)g(if)g FC(A)2224 4073 y FA(o)2199 4113 y FD(!)d FC(B)30 b FK(w)n(e)25 b(ha)n(v)n(e)g FC(\014)t FK(\()p FC(A)p FK(\))f FD(\))f FC(\014)t FK(\()p FC(B)t FK(\))k(and)523 4213 y(th)n(us)h FC(A)842 4173 y FA(o)791 4213 y FK(=)-14 b FD(\))23 b FC(B)t FK(.)28 b(So)1232 4173 y FA(o)1181 4213 y FK(=)-14 b FD(\))27 b FK(extends)1670 4173 y FA(o)1645 4213 y FD(!)p FK(.)h(No)n(w)f(extend)2288 4173 y FA(o)2238 4213 y FK(=)-15 b FD(\))28 b FK(to)g(a)f(total)g(order.)606 4313 y(If)33 b(for)g(some)f(scan)g FC(S)1286 4283 y FA(x)1281 4334 y(i)1328 4313 y FK(,)h FC(U)1450 4273 y FA(y)1441 4336 y(j)1571 4273 y(o)1521 4313 y FK(=)-14 b FD(\))32 b FC(S)1743 4283 y FA(x)1738 4334 y(i)1866 4273 y(o)1816 4313 y FK(=)-14 b FD(\))31 b FC(U)2047 4273 y FA(y)r FB(+1)2038 4336 y FA(j)2171 4313 y FK(,)i(then)g FC(B)t(U)2554 4273 y FA(y)2545 4336 y(j)2626 4313 y FD(\))f FC(\014)t FK(\()p FC(S)2880 4283 y FA(x)2875 4334 y(i)2922 4313 y FK(\))g FD(\))g FC(B)t(U)3234 4273 y FA(y)r FB(+1)3225 4336 y FA(j)523 4428 y FK(b)n(y)h(the)g(de\014nition)g(of)g FC(\014)k FK(and)1567 4388 y FA(o)1517 4428 y FK(=)-15 b FD(\))33 b FK(\(Note)g(that)h(if)f FC(\014)t FK(\()p FC(A)p FK(\))g(=)e FC(\014)t FK(\()p FC(B)t FK(\),)j(then)g(b)r(oth)f FC(A)g FK(and)523 4528 y FC(B)g FK(are)28 b(scans\).)h(If)g FC(S)1174 4498 y FA(x)1169 4550 y(i)1245 4528 y FK(is)f(a)h(direct)g (scan,)f(then)i FC(\014)t FK(\()p FC(S)2176 4498 y FA(x)2171 4550 y(i)2218 4528 y FK(\))25 b(=)g FC(B)t(S)2488 4498 y FA(x)2483 4550 y(i)2559 4528 y FK(and)k(b)n(y)f(lemma)h(8.1)f(the)523 4628 y(theorem)i(is)g(pro)n(v)n(ed.)e(If)j FC(S)1372 4598 y FA(x)1367 4649 y(i)1444 4628 y FK(is)f(not)g(a)f(direct)h(scan,) g(then)h(it)f(copied)g(the)h(result)e(from)h(a)523 4727 y(direct)h(scan)f FC(S)1006 4697 y FA(z)1001 4751 y(k)1044 4727 y FK(,)h(and)f(th)n(us)h FC(\014)t FK(\()p FC(S)1587 4697 y FA(x)1582 4749 y(i)1629 4727 y FK(\))e(=)f FC(B)t(S)1906 4697 y FA(z)1901 4751 y(k)1944 4727 y FK(.)j(But)g(again)e(b)n(y)i (lemma)f(8.1)g(the)h(theorem)523 4827 y(is)d(satis\014ed.)2374 b Fu(2)p eop end %%Page: 118 128 TeXDict begin 118 127 bop 2231 299 a FF(8.5.)53 b(Pro)r(of)27 b(of)f(Correctness)155 b(118)523 506 y FL(8.6)116 b(F)-10 b(uture)38 b(Researc)m(h)523 706 y FK(F)-7 b(urther)39 b(researc)n(h)e(migh)n(t)j(b)r(e)f(directed)h(at)f(\014nding)g(an)g (implemen)n(tation)h(of)f(atomic)523 805 y(binary)27 b(snapshots)f(with)j(sub)r(quadratic)d(or)h(linear)g(time)h(complexit)n (y)-7 b(.)606 905 y(It)38 b(is)g(in)n(teresting)f(to)g(note)h(that)g (all)f(atomic)g(snapshot)g(implemen)n(tations)g(w)n(e)h(are)523 1005 y(a)n(w)n(are)29 b(of)i(use)g(at)g(least)g FC(O)r FK(\()p FC(n)p FK(\))i(registers)c(with)j FC(O)r FK(\()p FC(nv)s FK(\))g(size)f(\(where)g FC(v)k FK(is)c(the)g(maximal)523 1104 y(n)n(um)n(b)r(er)d(of)h(bits)g(con)n(tained)e(in)i(an)n(y)f(cell) g(of)h(the)g(snapshot)f(ob)5 b(ject\).)28 b(Ho)n(w)n(ev)n(er,)f(Dw)n (ork)523 1204 y(et)35 b(al.)g([9)o(])g(ha)n(v)n(e)f(sho)n(wn)g(that)i (for)e(time-lapse)g(snapshots)g FC(O)r FK(\()p FC(n)2590 1174 y FB(2)2628 1204 y FK(\))h(registers)f(with)h(size)523 1303 y FC(O)r FK(\()p FC(n)20 b FK(+)f FC(v)s FK(\))29 b(su\016ce.)g(It)g(is)g(an)g(in)n(teresting)f(op)r(en)g(question)h (whether)g(registers)e(with)i(size)523 1403 y FC(O)r FK(\()p FC(nv)s FK(\))g(are)e(necessary)e(to)j(implemen)n(t)g(atomic)f (snapshot)g(ob)5 b(jects.)p eop end %%Page: 119 129 TeXDict begin 119 128 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Bibliograph)l(y)565 2516 y FK([1])41 b(Y.)23 b(Afek,)h(H.)g(A)n(ttiy)n(a,)f(D.)h(Dolev,)f (E.)g(Gafni,)h(M.)f(Merritt,)h(and)f(N.)g(Sha)n(vit,)h FG(A)n(tomic)694 2615 y(snapshots)29 b(of)g(shar)l(e)l(d)h(memory)p FK(,)d(Pro)r(c.)e(9th)h(A)n(CM)g(Symp)r(osium)h(on)f(Principles)f(of) 694 2715 y(Distributed)j(Computing,)g(pp.)g(1{13,)d(1990.)565 2872 y([2])41 b(Y.)24 b(Afek,)h(E.)f(Gafni,)h(J.)f(T)-7 b(romp,)24 b(and)g(P)-7 b(.)24 b(M.)g(B.)g(Vit\023)-42 b(an)n(yi,)25 b FG(Wait-fr)l(e)l(e)i(test-and-set)p FK(,)694 2972 y(Pro)r(c.)f(6th)i(In)n(ternational)e(W)-7 b(orkshop)26 b(on)h(Distributed)h(Algorithms,)f(LNCS)h(647,)694 3071 y(pp.)g(85{94.)d(Springer)i(V)-7 b(erlag,)26 b(1992.)565 3229 y([3])41 b(J.)20 b(Aspnes)h(and)g(M.)g(P)-7 b(.)21 b(Herlih)n(y)-7 b(,)20 b FG(Wait-fr)l(e)l(e)k(data)h(structur)l(es)c (in)j(the)g(asynchr)l(onous)694 3328 y(pr)l(am)41 b(mo)l(del)p FK(,)f(Pro)r(c.)e(of)h(the)h(2nd)f(Ann.)h(Symp.)f(on)g(P)n(arallel)e (Algorithms)i(and)694 3428 y(Arc)n(hitectures,)27 b(pp.)h(340{349,)c (1990.)565 3585 y([4])41 b(H.)35 b(A)n(ttiy)n(a,)g(M.)g(Herlih)n(y)-7 b(,)35 b(and)g(O.)g(Rac)n(hman,)f FG(E\016cient)j(atomic)h(snapshots)f (us-)694 3685 y(ing)i(lattic)l(e)g(agr)l(e)l(ement)p FK(,)e(Pro)r(c.)f(6th)i(In)n(ternational)e(W)-7 b(orkshop)36 b(on)h(Distributed)694 3784 y(Algorithms,)27 b(LNCS)h(647,)e(pp.)i (35{53.)d(Springer)i(V)-7 b(erlag,)26 b(1992.)565 3942 y([5])41 b(B.)23 b(Aw)n(erbuc)n(h,)f(L.)h(M.)g(Kirousis,)e(E.)i (Kranakis,)d(and)j(P)-7 b(.)23 b(M.)g(B.)g(Vit\023)-42 b(an)n(yi,)22 b FG(On)j(pr)l(ov-)694 4041 y(ing)31 b(r)l(e)l(gister)h (atomicity)p FK(,)f(Pro)r(c.)d(of)i(the)g(8th)f(Conf.)h(on)f(F)-7 b(oundations)29 b(of)g(Soft)n(w)n(are)694 4141 y(T)-7 b(ec)n(hnology)26 b(and)h(Theoretical)f(Computer)i(Science,)f(pp.)h (286{303,)d(1988.)565 4298 y([6])41 b(J.)25 b(H.)i(Anderson,)e FG(Comp)l(osite)30 b(r)l(e)l(gisters)p FK(,)c(T)-7 b(ec)n(hnical)25 b(Rep)r(ort)h(TR-89-25,)d(Depart-)694 4398 y(men)n(t)28 b(of)f(Computer)g(Science,)h(The)g(Univ)n(ersit)n(y)e(of)i(T)-7 b(exas)27 b(at)g(Austin,)h(1989.)565 4555 y([7])41 b(J.)23 b(H.)g(Anderson,)g FG(Multiple-writer)k(c)l(omp)l(osite)g(r)l(e)l (gisters)p FK(,)c(T)-7 b(ec)n(hnical)23 b(Rep)r(ort)g(TR-)694 4655 y(89-26,)45 b(Departmen)n(t)j(of)g(Computer)g(Science,)f(The)h (Univ)n(ersit)n(y)f(of)h(T)-7 b(exas)47 b(at)694 4754 y(Austin,)28 b(1989.)565 4912 y([8])41 b(J.)24 b(H.)h(Anderson,)f FG(Comp)l(osite)k(r)l(e)l(gisters)p FK(,)d(Pro)r(c.)e(9th)h(A)n(CM)h (Symp)r(osium)g(on)f(Prin-)694 5011 y(ciples)j(of)h(Distributed)g (Computing,)g(pp.)g(15{29,)d(1990.)565 5169 y([9])41 b(C.)20 b(Dw)n(ork,)f(M.)h(Herlih)n(y)-7 b(,)20 b(S.)g(A.)g(Plotkin,)g (and)f(O.)h(W)-7 b(aarts,)19 b FG(Time-lapse)25 b(snapshots)p FK(,)694 5268 y(Israel)20 b(Symp)r(osium)h(Theory)g(of)g(Computing)g (and)g(Systems,)g(LNCS)h(601,)e(pp.)i(154{)694 5368 y(170.)k(Springer)h (V)-7 b(erlag,)26 b(1992.)p eop end %%Page: 120 130 TeXDict begin 120 129 bop 2371 299 a FF(8.6.)53 b(F)-6 b(uture)25 b(Researc)n(h)153 b(120)523 506 y FK([10])41 b(S.)31 b(Haldar)f(and)h(K.)g(Vidy)n(asank)-5 b(ar,)29 b FG(Ele)l(gant)k(c)l(onstructions)f(of)i(atomic)g(snapshot)694 606 y(variables)p FK(,)29 b(Unpublished)g(man)n(uscript,)e(1992.)523 772 y([11])41 b(Amos)g(Israeli,)f(Amnon)i(Shaham,)f(and)g(Asaf)g (Shirazi,)g FG(Line)l(ar-time)i(snapshot)694 872 y(pr)l(oto)l(c)l(ols) 27 b(for)f(unb)l(alanc)l(e)l(d)h(systems)p FK(,)c(T)-7 b(ec)n(hnical)23 b(Rep)r(ort)g(CS-R9236,)f(CWI,)i(1992.)523 1038 y([12])41 b(L.)26 b(M.)h(Kirousis,)e(P)-7 b(.)26 b(Spirakis,)g(and)g(P)-7 b(.)26 b(Tsigas,)g FG(R)l(e)l(ading)j(many)g (variables)i(in)d(one)694 1137 y(atomic)i(op)l(er)l(ation:)h(Solutions) f(with)g(line)l(ar)g(or)g(subline)l(ar)g(c)l(omplexity)p FK(,)f(Pro)r(c.)d(5th)694 1237 y(In)n(ternational)k(W)-7 b(orkshop)30 b(on)h(Distributed)h(Algorithms,)f(LNCS)h(579,)e(pp.)i (229{)694 1337 y(241.)26 b(Springer)h(V)-7 b(erlag,)26 b(1991.)523 1503 y([13])41 b(L.)28 b(Lamp)r(ort,)g FG(On)h(interpr)l(o) l(c)l(ess)i(c)l(ommunic)l(ation)g(p)l(art)f(i:)h(b)l(asic)h(formalism)p FK(,)e(Dis-)694 1602 y(tributed)e(Computing)f(1\(2\),)h(pp.)g(77{85,)d (1986.)523 1768 y([14])41 b(M.)26 b(Li,)g(J.)f(T)-7 b(romp,)26 b(and)f(P)-7 b(.)26 b(M.)g(B.)g(Vit\023)-42 b(an)n(yi,)26 b FG(How)i(to)g(shar)l(e)h(c)l(oncurr)l(ent)e(wait-fr)l(e)l(e)694 1868 y(variables)p FK(,)i(Chapter)f(7)f(\(also)g(under)g(revision)f (for)i FG(Journal)h(of)i(the)f(A)n(CM)p FK(\).)p eop end %%Page: 121 131 TeXDict begin 121 130 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 557 a Fz(9)523 806 y FI(On)52 b(Up)t(date-Last)h(Sc)l(hemes)523 2549 y FL(9.1)116 b(In)m(tro)s (duction)523 2748 y FK(Let)34 b FC(X)40 b FK(=)32 b FC(X)953 2760 y FB(1)1013 2748 y FD(\002)22 b(\001)14 b(\001)g(\001)22 b(\002)h FC(X)1376 2760 y FA(n)1454 2748 y FK(b)r(e)34 b(the)h(pro)r(duct)e(of)h FC(n)g FK(domains,)f(one)g(for)g(eac)n(h)g FC(i)g FD(2)h FC(I)40 b FK(=)523 2848 y FD(f)p FK(1)p FC(;)14 b(:)g(:)g(:)f(;)h(n)p FD(g)p FK(.)31 b(Elemen)n(ts)g(of)h(the)g FC(X)1615 2860 y FA(i)1674 2848 y FK(are)f(called)g FG(lab)l(els)p FK(,)i(and)f(those)f(of)h FC(X)38 b FG(lab)l(el)c(ve)l(ctors)p FK(.)523 2947 y(W)-7 b(e)27 b(sa)n(y)f(that)i(t)n(w)n(o)e(lab)r(el)h(v) n(ectors)e FC(l)k FK(and)e FC(l)1867 2917 y Fw(0)1916 2947 y FK(are)f FC(i)p FK(-equiv)-5 b(alen)n(t,)26 b FC(l)f FD(\021)2642 2959 y FA(i)2692 2947 y FC(l)2719 2917 y Fw(0)2742 2947 y FK(,)i(whenev)n(er)f FD(8)3202 2959 y FA(j)s Fw(6)p FB(=)p FA(i)3335 2947 y FK(:)523 3047 y FC(l)548 3059 y FA(j)606 3047 y FK(=)c FC(l)720 3017 y Fw(0)718 3069 y FA(j)753 3047 y FK(.)523 3212 y Fv(Definition)32 b FH(9.1)41 b FK(An)35 b(Up)r(date-Last)g(sc)n(heme) f(is)h(a)f(partial)g(function)h FC(l)r(ast)f FK(:)h FC(X)42 b FD(!)35 b FC(I)523 3312 y FK(with)28 b(a)f(non-empt)n(y)g(domain)h FC(U)j FD(\022)23 b FC(X)34 b FK(suc)n(h)27 b(that)1154 3493 y FD(8)g FC(l)e FD(2)e FC(U;)14 b(i)22 b FD(2)i FC(I)30 b FD(9)e FC(l)1746 3459 y Fw(0)1791 3493 y FD(2)c FC(U)32 b FK(:)23 b FC(l)h FD(\021)2119 3505 y FA(i)2169 3493 y FC(l)2196 3459 y Fw(0)2238 3493 y FD(^)18 b FC(l)r(ast)p FK(\()p FC(l)2510 3459 y Fw(0)2533 3493 y FK(\))23 b(=)g FC(i;)606 3674 y FK(In)30 b(this)h(c)n(hapter)e(w)n(e)h(deriv)n(e)f (exact)h(b)r(ounds)g(on)g(the)g(domain)g(sizes)g FD(j)p FC(X)2908 3686 y FA(i)2935 3674 y FD(j)g FK(that)h(allo)n(w)523 3774 y(the)d(existence)f(of)h(suc)n(h)f(a)g(sc)n(heme.)606 3874 y(One)19 b(can)g(think)h(of)f(an)g(Up)r(date-Last)g(sc)n(heme)g (as)g(pro)n(viding)e(a)i(metho)r(d)h(whereb)n(y)f(eac)n(h)523 3973 y(of)25 b(a)g(set)h(of)f FC(n)g FK(ob)5 b(jects)25 b(can)g(b)r(e)h(made)f(a)g(`leader')g(b)n(y)g(c)n(ho)r(osing)f(its)h (lab)r(el)g(appropriately)-7 b(.)523 4073 y(The)37 b(ob)5 b(jects)36 b(can)g(b)r(e)g(either)h(activ)n(e)e(en)n(tities)i(that)g (carry)e(out)h(the)h(lab)r(el-insp)r(ection)523 4172 y(and)c(c)n(hoice-making)f(themselv)n(es,)h(or)f(passiv)n(e)g(ob)5 b(jects)33 b(in)h(some)f(system)g(that)h(w)n(an)n(ts)523 4272 y(to)c(k)n(eep)f(trac)n(k)f(of)i(whic)n(h)g(ob)5 b(ject)29 b(is)h(sp)r(ecial.)g(The)f(v)n(ector)g(of)h(lab)r(els)f(can)g (b)r(e)i(seen)e(as)g(a)523 4372 y(w)n(a)n(y)d(of)i(storing)e(an)i (index)f(in)h(a)f(distributed)h(fashion.)606 4471 y(The)d(ab)r(o)n(v)n (e)f(formalization)g(is)h(in)n(tended)h(to)f(capture)g(the)h(essence)e (of)h(suc)n(h)g(metho)r(ds,)523 4571 y(whic)n(h)35 b(ma)n(y)g(app)r (ear)f(in)h(di\013eren)n(t)h(forms)e(and)h(shap)r(es.)g(The)g(p)r (ossibilit)n(y)g(of)g FC(l)r(ast)g FK(not)523 4671 y(b)r(eing)c(total)f (accommo)r(dates)g(metho)r(ds)h(where)f(not)g(all)h(p)r(ossible)f(lab)r (el)h(com)n(binations)523 4770 y(can)c(arise.)606 4870 y(The)i(main)f(motiv)-5 b(ation)28 b(for)g(this)h(w)n(ork)e(comes)h (from)g(the)h(implemen)n(tation)g(of)f(w)n(ait-)523 4969 y(free)d(m)n(ulti-writer)f(registers)f(from)i(single-writer)e(ones.)h (Up)r(date-Last)h(sc)n(hemes)f(imme-)523 5069 y(diately)e(pro)n(vide)f (for)g FG(serial)j FK(implemen)n(tations)d(that)i(w)n(ork)d(correctly)h (as)g(long)g(as)h(no)g(t)n(w)n(o)523 5169 y(op)r(erations)30 b(o)n(v)n(erlap:)f(a)i(writer)f(tags)g(eac)n(h)h(new)g(v)-5 b(alue)31 b(with)g(a)g(lab)r(el)g(that)h(sho)n(ws)d(this)523 5268 y(v)-5 b(alue)32 b(to)h(b)r(e)g(the)g(last-written)f(or)g(curren)n (t)f(one,)h(while)h(a)f(reader)f(simply)i(collects)f(all)523 5368 y(v)-5 b(alue-lab)r(el)24 b(pairs)g(and)g(returns)g(the)h(v)-5 b(alue)25 b(of)f(the)h(last)f(writer.)g(Con)n(v)n(ersely)-7 b(,)23 b(an)n(y)h(serial)p eop end %%Page: 122 132 TeXDict begin 122 131 bop 2498 299 a FF(9.1.)53 b(In)n(tro)r(duction) 152 b(122)523 506 y FK(implemen)n(tation)38 b(of)f(a)h(m)n(ulti-writer) f(register)f(where)h(the)h(n)n(um)n(b)r(er)g(of)f(writers)g(do)r(es)523 606 y(not)d(exceed)g(the)h(n)n(um)n(b)r(er)f(of)g(v)-5 b(alues)34 b(induces)g(an)g(Up)r(date-Last)g(sc)n(heme.)g(The)g(exact) 523 706 y(b)r(ounds)22 b(pro)n(v)n(ed)e(here)h(on)g(lab)r(el)h(domain)f (sizes)g(th)n(us)h(yield)g(a)f(lo)n(w)n(er)f(b)r(ound)i(on)f(the)i (space)523 805 y(complexit)n(y)29 b(of)g(real)f(concurren)n(t)f (implemen)n(tations.)i(The)h(m)n(ulti-writer)e(implemen)n(ta-)523 905 y(tion)f(of)g(Israeli)e(and)i(Shaham)g([4)o(])g(is)g(the)g(\014rst) g(optimal)f(one)h(in)g(the)g(sense)f(of)h(ac)n(hieving)523 1005 y(p)r(olynomial)d(lab)r(el)h(domain)f(size,)g(i.e.)h FG(lo)l(garithmic)i FK(lab)r(el)e(size)f(when)h(measured)e(in)i(bits.) 523 1318 y FL(9.2)116 b(Related)37 b(W)-10 b(ork)523 1517 y FK(Israeli)29 b(and)h(Li)h([3)o(])g(in)n(tro)r(duced)f FG(time-stamp)i(schemes)g FK(as)d(a)h(metho)r(d)h(of)f(represen)n(ting) 523 1616 y(a)25 b(total)f(order)g(on)h(a)f(dynamic)h(set)g(of)g(items,) h(and)f(pro)n(v)n(ed)e(a)i(lo)n(w)n(er)e(b)r(ound)j(of)f(2)3068 1586 y FA(n)3126 1616 y FD(\000)13 b FK(1)24 b(on)523 1716 y(the)h(size)f(of)g(the)h(lab)r(el)g(domain.)f(Li)g(and)h(Vitan)n (yi)f([5])g(presen)n(t)g(an)g(Up)r(date-Last)g(sc)n(heme)523 1816 y(where)35 b(eac)n(h)g FC(X)1035 1828 y FA(i)1098 1816 y FK(is)h(of)f(size)g FC(n)p FK(,)h(and)g(argue)e(that)i(for)f (the)h(purp)r(ose)f(of)g(implemen)n(ting)523 1915 y(m)n(ulti-writer)e (registers,)e(one)i(do)r(es)g(not)h(need)f(the)h(full)g(functionalit)n (y)f(of)h(time-stamp)523 2015 y(sc)n(hemes.)606 2115 y(The)20 b(unlab)r(eled)g(\(non-indexed\))h(case,)e(where)g FC(l)r(ast)h FK(gets)f(as)g(input)i(a)f(set)g(of)g FC(n)g FK(di\013eren)n(t)523 2214 y(lab)r(els)26 b(from)h(a)f(single)g (domain,)g(and)h(maps)f(to)g(one)g(of)h(them,)g(w)n(as)f(considered)f (b)n(y)i(Cori)523 2314 y(and)k(Sop)r(ena)f([2].)h(They)g(pro)n(v)n(ed)e (a)i(tigh)n(t)f(b)r(ound)i(of)f(2)p FC(n)20 b FD(\000)g FK(1)30 b(on)h(the)g(size)g(of)f(the)i(lab)r(el)523 2413 y(domain.)27 b(The)h(pro)r(of)f(of)h(our)e(main)i(theorem)f(w)n(as)g (in)g(part)h(inspired)f(b)n(y)g(their)h(pro)r(of.)606 2513 y(Another)37 b(surprising)f(application)h(is)g(in)h(the)g(sim)n (ulation)f(of)g(a)g(DF)-9 b(A)38 b(b)n(y)f(a)g(\(fully-)523 2613 y(connected\))c(async)n(hronous)e(cellular)h(automaton)g([1].)h (Suc)n(h)g(an)f(A)n(CA)i(has)e(one)h(no)r(de)523 2712 y(for)c(eac)n(h)f(letter)h(in)g(the)h(alphab)r(et,)f(whic)n(h)g(is)g (activ)-5 b(ated)29 b(when)g(that)g(letter)h(app)r(ears)d(in)523 2812 y(the)i(input.)h(Up)r(on)g(activ)-5 b(ation,)28 b(the)h(no)r(de)g(c)n(hanges)f(its)h(state)g(according)e(to)i(the)g (states)523 2912 y(of)34 b(all)f(its)h(neigh)n(b)r(ours.)e(In)i(the)g (sim)n(ulation,)g(part)f(of)g(a)h(no)r(de's)f(state)h(is)f(the)h(state) g(of)523 3011 y(the)f(sim)n(ulated)g(DF)-9 b(A,)33 b(and)g(an)g(Up)r (date-Last)f(sc)n(heme)g(allo)n(ws)g(an)g(activ)-5 b(ated)33 b(no)r(de)g(to)523 3111 y(iden)n(tify)28 b(the)g(no)r(de)g(holding)f (the)h(curren)n(t)f(DF)-9 b(A)28 b(state.)523 3424 y FL(9.3)116 b(Characterizing)35 b(Up)s(date-Last)i(sc)m(hemes)523 3623 y Fv(Theorem)32 b FH(9.2)41 b FG(Ther)l(e)29 b(exists)e(an)h(Up)l (date-L)l(ast)g(scheme)h(on)f(lab)l(el)h(ve)l(ctor)f(sp)l(ac)l(e)h FC(X)34 b FG(i\013)523 3660 y Fn(P)611 3748 y FA(i)p Fw(2)p FA(I)731 3723 y FK(1)p FC(=)p FD(j)p FC(X)907 3735 y FA(i)933 3723 y FD(j)23 b(\024)g FK(1)p FG(.)523 3877 y Fv(Pr)n(oof.)606 3977 y FD(\))30 b FK(Let)f FC(U)926 3989 y FA(i)983 3977 y FK(b)r(e)h FC(U)t(=)c FD(\021)1292 3989 y FA(i)1349 3977 y FK(and)j FC(U)1578 3947 y Fw(0)1631 3977 y FK(b)r(e)h(the)g(disjoin)n(t)f(union)h(of)f(all)h FC(U)2692 3989 y FA(i)2719 3977 y FK(.)g(Eac)n(h)e(elemen)n(t)h(in)523 4076 y FC(U)580 4088 y FA(i)638 4076 y FK(is)h(an)f(equiv)-5 b(alence)30 b(class)f(of)h(lab)r(el)g(v)n(ectors)f(di\013ering)h(only)g (in)g(comp)r(onen)n(t)g FC(i)p FK(.)g(Suc)n(h)523 4176 y(a)c(class)f(can)h(also)g(b)r(e)h(though)n(t)f(of)g(as)g(a)g(lab)r(el) g(v)n(ector)f(in)i(whic)n(h)f(comp)r(onen)n(t)g FC(i)g FK(has)g(b)r(een)523 4276 y(blank)n(ed.)606 4375 y(F)-7 b(or)27 b(a)h(\014xed)f FC(i)p FK(,)h(consider)e(the)j(n)n(um)n(b)r(er) e(of)h(pairs)f(\()p FC(l)r(;)14 b(x)p FK(\))23 b FD(2)h FC(U)j FD(\002)18 b FC(U)2674 4387 y FA(i)2729 4375 y FK(with)29 b FC(l)24 b FD(2)g FC(x)p FK(.)k(There)523 4475 y(is)h(one)g(suc)n(h)f(pair)h(for)f(eac)n(h)g FC(l)f FD(2)f FC(U)38 b FK(and)29 b(hence)g FD(j)p FC(U)9 b FD(j)29 b FK(in)g(total.)g(On)f(the)i(other)e(hand,)h(for)523 4600 y FC(x)36 b FD(2)f FC(U)753 4612 y FA(i)780 4600 y FK(,)g(there)g(are)f(at)h(most)f FC(x)1570 4612 y FA(i)1634 4553 y FB(def)1647 4600 y FK(=)48 b FD(j)p FC(X)1852 4612 y FA(i)1880 4600 y FD(j)35 b FK(suc)n(h)f(pairs.)g(This)h(giv)n (es)e FD(j)p FC(U)9 b FD(j)35 b(\024)g(j)p FC(U)3100 4612 y FA(i)3128 4600 y FD(j)p FC(x)3198 4612 y FA(i)3226 4600 y FK(,)g(or)523 4699 y(1)p FC(=x)654 4711 y FA(i)704 4699 y FD(\024)23 b(j)p FC(U)872 4711 y FA(i)899 4699 y FD(j)p FC(=)p FD(j)p FC(U)9 b FD(j)p FK(.)27 b(By)g(de\014nition)h (of)f FC(U)1785 4669 y Fw(0)1808 4699 y FK(,)h(w)n(e)f(also)f(ha)n(v)n (e)g(that)h FD(j)p FC(U)2606 4669 y Fw(0)2630 4699 y FD(j)c FK(=)2763 4637 y Fn(P)2851 4724 y FA(i)p Fw(2)p FA(I)2971 4699 y FD(j)p FC(U)3051 4711 y FA(i)3078 4699 y FD(j)p FK(.)28 b(Th)n(us,)1319 4799 y Fn(X)1328 4977 y FA(i)p Fw(2)p FA(I)1453 4878 y FK(1)p FC(=x)1584 4890 y FA(i)1634 4878 y FD(\024)1722 4799 y Fn(X)1731 4977 y FA(i)p Fw(2)p FA(I)1855 4878 y FD(j)p FC(U)1935 4890 y FA(i)1963 4878 y FD(j)p FC(=)p FD(j)p FC(U)9 b FD(j)22 b FK(=)h FD(j)p FC(U)2339 4844 y Fw(0)2362 4878 y FD(j)p FC(=)p FD(j)p FC(U)9 b FD(j)p FC(:)606 5110 y FK(Giv)n(en)31 b(that)g FC(l)r(ast)c FK(:)h FC(X)35 b FD(!)28 b FC(I)38 b FK(is)31 b(an)f(Up)r(date-Last)h(sc)n(heme,)f(there)h(exists)f(a)g (function)523 5210 y FC(new)25 b FK(:)e FC(U)808 5180 y Fw(0)854 5210 y FD(!)h FC(U)36 b FK(satisfying)1200 5363 y FD(8)p FC(x)24 b FD(2)f FC(U)1452 5375 y FA(i)1503 5363 y FK(:)g FC(new)r FK(\()p FC(x)p FK(\))h FD(2)f FC(x)c FD(^)g FC(l)r(ast)p FK(\()p FC(new)r FK(\()p FC(x)p FK(\)\))24 b(=)f FC(i:)p eop end %%Page: 123 133 TeXDict begin 123 132 bop 1689 299 a FF(9.3.)53 b(Characterizing)27 b(Up)r(date-Last)e(sc)n(hemes)154 b(123)523 506 y FK(Note)34 b(that)h FC(new)h FK(is)e(in)n(v)n(ertible)f(\(one-one\),)h(since)g FC(new)2323 476 y Fw(\000)p FB(1)2412 506 y FK(\()p FC(l)r FK(\))g(is)g(just)h(the)f(equiv)-5 b(alence)523 606 y(class)27 b(of)g FC(l)i FK(w.r.t.)f FD(\021)1153 621 y FA(last)p FB(\()p FA(l)p FB(\))1344 606 y FK(.)f(Hence)h FD(j)p FC(U)1730 576 y Fw(0)1753 606 y FD(j)23 b(\024)g(j)p FC(U)9 b FD(j)28 b FK(and)f(the)h(result)f(follo)n(ws.)606 706 y FD(\()e FK(W.l.o.g.)g(assume)f(that)h FC(X)1553 718 y FA(i)1604 706 y FK(=)d FD(f)p FK(0)p FC(;)14 b FK(1)p FC(;)g(:)g(:)g(:)e(;)i(x)2084 718 y FA(i)2125 706 y FD(\000)f FK(1)p FD(g)p FK(.)24 b(Giv)n(en)h(that)2749 643 y Fn(P)2837 731 y FA(i)p Fw(2)p FA(I)2957 706 y FK(1)p FC(=)p FD(j)p FC(X)3133 718 y FA(i)3159 706 y FD(j)e(\024)g FK(1,)523 805 y(w)n(e)j(can)h(partition)f(the)h([0)p FC(;)14 b FK(1\))26 b(in)n(terv)-5 b(al)27 b(in)n(to)f FC(n)h FK(disjoin)n(t)g(half-op)r(en)f(in)n(terv)-5 b(als)26 b(suc)n(h)g(that)523 905 y FC(i)p FK('s)34 b(in)n(terv)-5 b(al)34 b(has)g(length)g(at)h(least)f(1)p FC(=x)1805 917 y FA(i)1832 905 y FK(.)g(No)n(w)g(de\014ne)h(the)g(total)f (function)h FC(l)r(ast)p FK(\()p FC(l)r FK(\))f(to)523 1005 y(b)r(e)28 b(the)g(index)f(whose)g(in)n(terv)-5 b(al)27 b(con)n(tains)g(\()1905 942 y Fn(P)1992 1029 y FA(i)p Fw(2)p FA(I)2113 1005 y FC(l)2138 1017 y FA(i)2165 1005 y FC(=x)2254 1017 y FA(i)2282 1005 y FK(\))c(mo)r(d)g(1)k(\()p FC(x)d FK(mo)r(d)f(1)k(denotes)g(the)523 1104 y(fractional)g(part)g(of) h FC(x)p FK(\).)h(T)-7 b(o)27 b(see)h(that)g FC(l)r(ast)f FK(is)h(an)f(Up)r(date-Last)h(sc)n(heme,)f(note)h(that)g(for)523 1204 y(an)n(y)34 b FC(l)i FD(2)f FC(U)43 b FK(and)35 b FC(i)f FD(2)h FC(I)7 b FK(,)35 b(the)g(set)f FD(f)p FC(l)r(ast)p FK(\()p FC(l)1888 1174 y Fw(0)1910 1204 y FK(\))h(:)g FC(l)2062 1174 y Fw(0)2119 1204 y FD(\021)2184 1216 y FA(i)2246 1204 y FC(l)r FD(g)f FK(consists)g(of)g FC(x)2810 1216 y FA(i)2873 1204 y FK(p)r(oin)n(ts)g(ev)n(enly)523 1303 y(spread)27 b(around)f(the)i([0)p FC(;)14 b FK(1\))27 b(in)n(terv)-5 b(al)27 b(and)h(th)n(us)f(necessarily)f(in)n(tersects)h FC(i)p FK('s)g(in)n(terv)-5 b(al.)48 b Fu(2)606 1453 y FK(Putting)37 b FC(y)962 1465 y FA(i)1029 1453 y FK(=)h(1)p FC(=)p FD(j)p FC(X)1308 1465 y FA(i)1335 1453 y FD(j)p FK(,)f(the)h(condition)f(of)g(the)h(theorem)e(b)r(ecomes)2874 1391 y Fn(P)2962 1478 y FA(i)p Fw(2)p FA(I)3082 1453 y FC(y)3123 1465 y FA(i)3189 1453 y FD(\024)j FK(1.)523 1553 y(By)d(standard)f(con)n(v)n(exit)n(y)g(argumen)n(ts,)1831 1490 y Fn(Q)1910 1577 y FA(i)p Fw(2)p FA(I)2030 1553 y FC(y)2071 1565 y FA(i)2135 1553 y FK(is)h(maximal)g(\(and)g(hence) 3017 1490 y Fn(Q)3095 1577 y FA(i)p Fw(2)p FA(I)3215 1553 y FD(j)p FC(X)3307 1565 y FA(i)3335 1553 y FD(j)523 1652 y FK(minimal\))26 b(under)f(this)h(condition)g(when)f(all)g FC(y)2000 1664 y FA(i)2053 1652 y FK(equal)g(1)p FC(=n)p FK(.)g(This)g(pro)n(v)n(es)f(the)i(follo)n(wing)523 1752 y(lo)n(w)n(er)g(b)r(ound)i(on)f(the)h(n)n(um)n(b)r(er)g(of)f(lab)r(el)h (v)n(ectors:)523 1918 y Fv(Cor)n(ollar)-6 b(y)31 b FH(9.3)41 b FK(An)34 b(Up)r(date-Last)f(sc)n(heme)f(with)i(lab)r(el)f(v)n(ector)f (space)h FC(X)40 b FK(satis\014es)523 1955 y Fn(Q)601 2042 y FA(i)p Fw(2)p FA(I)722 2017 y FD(j)p FC(X)814 2029 y FA(i)841 2017 y FD(j)23 b(\025)g FC(n)1025 1987 y FA(n)1070 2017 y FK(.)606 2183 y(This)41 b(pro)n(v)n(es)e(the)i (optimalit)n(y)g(of)g(the)g(construction)g(presen)n(ted)f(in)h([5],)g (whic)n(h)g(is)523 2283 y(essen)n(tially)27 b(an)g(Up)r(date-Last)g(sc) n(heme)g(with)h FD(j)p FC(X)2082 2295 y FA(i)2110 2283 y FD(j)23 b FK(=)g FC(n;)14 b(i)22 b FK(=)h(1)p FC(;)14 b(:)g(:)g(:)f(;)h(n)p FK(.)523 2590 y FL(9.4)116 b(F)-10 b(urther)38 b(W)-10 b(ork)523 2790 y FK(There)25 b(are)g(sev)n(eral)f (directions)h(in)h(whic)n(h)g(Up)r(date-Last)f(sc)n(hemes)h(can)f(b)r (e)h(generalized.)523 2889 y(One)35 b(w)n(ould)f(b)r(e)i(a)f(sc)n(heme) f(where)h FC(i)g FK(can)f(c)n(ho)r(ose)g(its)h(lab)r(el)g(in)h(a)f(w)n (a)n(y)e(that)j(mak)n(es)e FC(j)523 2989 y FK(b)r(ecome)d(last,)g(for)g (all)g FC(i;)14 b(j)33 b FD(2)c FC(I)7 b FK(.)32 b(Theorem)e(1)h(sho)n (ws)f(a)h(w)n(a)n(y)f(to)h(do)f(this)i(when)f(all)g FD(j)p FC(X)3307 3001 y FA(i)3335 2989 y FD(j)523 3088 y FK(equal)24 b FC(n)p FK(,)h(but)g(in)g(general)e(the)i(condition)1864 3026 y Fn(P)1952 3113 y FA(i)p Fw(2)p FA(I)2072 3088 y FK(1)p FC(=)p FD(j)p FC(X)2248 3100 y FA(i)2275 3088 y FD(j)e(\024)f FK(1)i(will)h(not)g(b)r(e)g(su\016cien)n(t)g(an)n(y)523 3188 y(more.)606 3288 y(More)c(in)n(teresting,)h(p)r(erhaps,)f(is)h (the)g(study)g(of)g(general)f(sc)n(hemes)g(where)h FC(i)f FK(can)h(c)n(ho)r(ose)523 3387 y(its)29 b(lab)r(el)h(so)e(as)h(to)g (satisfy)g(some)f(constrain)n(t)g(on)h(a)g(function)h(of)f(all)g(the)g (lab)r(els,)g(where)523 3487 y(this)f(function)g(migh)n(t)g(represen)n (t)e(the)i(state)f(of)h(a)f(shared)g(ob)5 b(ject.)p eop end %%Page: 124 134 TeXDict begin 124 133 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Bibliograph)l(y)565 2520 y FK([1])41 b(R.)33 b(Cori,)g(Y.)g(Metivier,)g(W.)h(Zielonk)-5 b(a,)33 b(\\)f(Async)n(hronous)g(mappings)h(and)g(asyn-)694 2607 y(c)n(hronous)40 b(cellular)i(automata",)f(LaBRI)h(tec)n(hnical)g (rep)r(ort)f(89-97,)f(Univ)n(ersit)n(\023)-39 b(e)694 2689 y(Bordeaux,)26 b(Decem)n(b)r(er)h(1989.)565 2842 y([2])41 b(R.)d(Cori,)f(E.)g(Sop)r(ena,)h(\\Some)f(Com)n(binatorial)f (asp)r(ects)h(of)h(Time)g(Stamp)g(Sys-)694 2929 y(tems",)27 b(submitted)i(to)e(Journal)f(of)i(Algorithms.)565 3082 y([3])41 b(A.)25 b(Israeli,)f(M.)h(Li,)g(\\Bounded)f(Time-Stamps",)h (Pro)r(ceedings)e(of)h(the)i(28th)e(IEEE)694 3168 y(Symp)r(osium)k(on)f (F)-7 b(oundations)27 b(of)g(Computer)h(Science,)f(pp.)h(371{382,)d (1987.)565 3322 y([4])41 b(A.)27 b(Israeli,)f(A.)i(Shaham,)f(\\Optimal) f(Multi-W)-7 b(riter)28 b(Multi-Reader)e(A)n(tomic)h(Reg-)694 3408 y(ister",)f(Pro)r(ceedings)g(of)h(the)h(11th)f(Ann)n(ual)g(A)n(CM) h(Symp)r(osium)f(on)g(Principles)g(of)694 3490 y(Distributed)h (Computing,)g(pp.)g(71{82,)d(1992.)565 3644 y([5])41 b(M.)g(Li,)h(P)-7 b(.M.B.)41 b(Vit\023)-42 b(an)n(yi,)41 b(\\Optimalit)n(y)g(of)g(W)-7 b(ait-F)g(ree)41 b(A)n(tomic)h(Multi-W)-7 b(riter)694 3730 y(V)g(ariables",)26 b(tec)n(hnical)h(rep)r(ort)g (CS-R9128,)e(CWI,)j(June)g(1991.)p eop end %%Page: 125 135 TeXDict begin 125 134 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 552 a FI(Samen)l(v)-9 b(atting)52 b(\(Dutc)l(h\))523 2525 y FK(Het)27 b(pro)r(efsc)n(hrift)g(bundelt)h (een)f(kleine)f(v)n(ersc)n(heidenheid)g(aan)g(studies)h(binnen)h(de)f (the-)523 2624 y(oretisc)n(he)36 b(informatica.)h(De)h(meeste)g(v)n (erhandelen)e(o)n(v)n(er)g(zogenaamde)g FG(algorithmen)p FK(,)523 2724 y(d.w.z.)29 b(stapsgewijze)f(metho)r(den)h(v)n(o)r(or)e (het)i(oplossen)f(v)-5 b(an)28 b(een)h(probleem.)f(U)h(kun)n(t)g(hi-) 523 2824 y(erbij)h(denk)n(en)f(aan)g(de)g(metho)r(de)h(die)g(U)g(op)f (de)g(lagere)f(sc)n(ho)r(ol)h(heeft)h(geleerd)e(v)n(o)r(or)g(het)523 2923 y(uitv)n(o)r(eren)23 b(v)-5 b(an)25 b(staartdelingen.)d(Het)j (aftrekk)n(en)e(v)-5 b(an)24 b(een)g(enk)n(el)g(cijfer)g(v)-5 b(an)24 b(een)h(andere)523 3023 y(is)g(dan)h(een)f(go)r(ed)g(v)n(o)r (orb)r(eeld)g(v)-5 b(an)25 b(een)h(\(primitiev)n(e\))g(stap.)f(Het)h (aftrekk)n(en)f(v)-5 b(an)25 b(de)h(hele)523 3123 y(no)r(emer)c(v)-5 b(an)22 b(een)g(gedeelte)g(v)-5 b(an)22 b(de)h(teller)f(zou)g(dat)g (niet)h(zijn,)g(daar)e(deze)h(op)r(eratie)f(meer)523 3222 y(mo)r(eite)27 b(zal)g(k)n(osten)f(naarmate)g(de)h(no)r(emer)g (groter)f(w)n(ordt)g(\(uit)i(meer)f(cijfers)g(b)r(estaat\).)523 3322 y(Het)33 b(idee)f(v)-5 b(an)32 b(een)h(stap)f(is)g(dat)g(het)h (een)f(constan)n(te)f(ho)r(ev)n(eelheid)h(w)n(erk)g(v)n(ertegen)n(w)n (o-)523 3421 y(ordigt,)27 b(onafhank)n(elijk)f(v)-5 b(an)28 b(de)g(mogelijk)n(e)e(gro)r(otte)h(v)-5 b(an)27 b(het)h(probleem.)606 3521 y(De)42 b(aard)e(v)-5 b(an)41 b(de)g(stapp)r(en)g(w)n(aarin)f(een) h(algorithme)f(geform)n(uleerd)f(is)i(k)-5 b(an)41 b(zeer)523 3621 y(sterk)27 b(uiteenlop)r(en,)h(ev)n(enals)e(de)i(`w)n(erk)n (omgeving')c(w)n(aarbinnen)i(het)i(uitgev)n(o)r(erd)e(dien)n(t)523 3720 y(te)41 b(w)n(orden.)e(De)i(v)n(ersc)n(hillende)e(ho)r(ofdstukk)n (en)h(gev)n(en)g(een)g(aardige)f(indruk)h(v)-5 b(an)41 b(de)523 3820 y(mogelijk)n(e)27 b(v)-5 b(ariatie.)606 3920 y(Het)36 b(in)n(teressan)n(te)d(vraagstuk)g(bij)i(v)n(eel)g (problemen)f(is)h(ho)r(ev)n(eel)f(middelen)i(er)e(v)n(o)r(or)523 4019 y(no)r(dig)41 b(zijn)h(om)e(het)i(op)f(te)g(lossen.)f(De)i(2)f (meest)g(b)r(ek)n(ek)n(en)f(middelen)i(zijn)g(tijd)g(en)523 4119 y(geheugen\(ruim)n(te\).)34 b(Zo)g(gebruikt)g(de)h(klassiek)n(e)e (staartdeling)g(bijv)n(o)r(orb)r(eeld)h(een)g(ho-)523 4218 y(ev)n(eelheid)28 b(tijd)h(\(aan)n(tal)e(stapp)r(en\))h(en)g (geheugen)g(\(papieropp)r(ervlak\))e(die)i(prop)r(ortion-)523 4318 y(eel)i(is)g(met)h(zo)n(w)n(el)d(het)j(aan)n(tal)e(cijfers)h(v)-5 b(an)30 b(de)g(teller)g(als)f(v)-5 b(an)30 b(de)h(no)r(emer.)e(W)-7 b(e)31 b(zeggen)523 4418 y(dan:)k(de)h(tijds)g(\(of)g(geheugen\))f (complexiteit)h(v)-5 b(an)35 b(staartdelen)g(is)g(v)-5 b(an)36 b(de)f(order)f(het)523 4517 y(pro)r(dukt)e(v)-5 b(an)32 b(aan)n(tal)f(cijfers)g(in)i(no)r(emer)e(en)h(aan)n(tal)f (cijfers)h(in)g(teller.)g(Een)g(complex-)523 4617 y(iteits)e(maat)e (zegt)h(altijd)h(ho)r(e)f(het)g(gebruik)f(v)-5 b(an)29 b(middelen)h(to)r(eneem)n(t)f(met)h(de)f(gro)r(otte)523 4717 y(v)-5 b(an)28 b(de)f(probleem)g(instan)n(tie.)606 4816 y(Naast)f(geheugen)g(en)h(tijd)g(k)n(omen)f(o)r(ok)g(minder)h(b)r (ek)n(ende)g(middelen)g(aan)f(b)r(o)r(d,)h(zoals)523 4916 y(energiegebruik)f(in)i(electronisc)n(he)e(circuits.)606 5015 y(Zelfs)e(de)h(gro)r(otte)e(v)-5 b(an)25 b(de)g(oplossing)e(k)-5 b(an)24 b(men)h(als)f(te)g(minimaliseren)g(`middel')i(zien,)523 5115 y(ingev)-5 b(al)24 b(die)i(oplossing)d(niet)i(uniek)g(is.)g(Zo)g (w)n(ordt)f(in)h(Ho)r(ofdstuk)g(2)g(het)g(v)n(olgende)f(prob-)523 5215 y(leem)37 b(b)r(estudeerd:)f(gegev)n(en)f(een)h(v)n(erzameling)f (w)n(o)r(orden)g FC(w)2520 5227 y FB(1)2558 5215 y FC(;)14 b(w)2654 5227 y FB(2)2691 5215 y FC(;)g(:)g(:)g(:)g(;)g(w)2935 5227 y FA(n)2980 5215 y FK(,)37 b(zo)r(ek)f(een)523 5314 y(w)n(o)r(ord)f FC(w)k FK(w)n(aar)34 b(al)i(alle)f FC(w)1408 5326 y FA(i)1472 5314 y FK(deel)h(v)-5 b(an)36 b(uit)h(mak)n(en.)e(Zo)h (zijn)g(bijv)n(o)r(orb)r(eeld)g(`sto)r(el')g(en)p eop end %%Page: 126 136 TeXDict begin 126 135 bop 2458 299 a FF(9.4.)53 b(F)-6 b(urther)24 b(W)-6 b(ork)153 b(126)523 506 y FK(`kist')35 b(deelw)n(o)r(orden)f(v)-5 b(an)36 b(`kisto)r(el'.)f(Onder)f(een)i (algemeen)e(aan)n(v)-5 b(aarde)33 b(assumptie)i(is)523 606 y(het)j(niet)f(mogelijk)g(om)g(altijd)h(het)f(k)n(ortst)f(mogelijk) n(e)h FG(sup)l(erwo)l(or)l(d)h FK(in)f(redelijk)n(e)g(tijd)523 706 y(te)e(vinden.)g(Om)f(precies)g(te)h(zijn,)g(is)f(er)h(v)n(o)r(or)e (willek)n(eurige)g FC(k)k FK(geen)d(algorithme,)g(dat)523 805 y(v)-5 b(an)23 b(een)g(v)n(erzameling)f(w)n(o)r(orden)f(v)-5 b(an)23 b(totale)g(lengte)g FC(m)g FK(altijd)h(het)f(k)n(ortste)f(sup)r (erw)n(o)r(ord)523 905 y(oplev)n(ert)27 b(binnen)h FC(m)1187 875 y FA(k)1255 905 y FK(stapp)r(en.)606 1005 y(Er)f(is)g(w)n(el)g(een) g(b)r(ek)n(end)h(algorithme)e(dat)h(in)h(iets)f(als)g FC(m)2391 974 y FB(3)2456 1005 y FK(stapp)r(en)g(een)h(redelijk)f(k)n (ort)523 1104 y(sup)r(erw)n(o)r(ord)i(w)n(eet)h(te)g(vinden.)h(Dit)g (algorithme)e(w)n(ordt)g(w)n(el)h(gebruikt)g(bij)g(het)h(`DNA-)523 1204 y(sequencen',)41 b(het)h(b)r(epalen)g(v)-5 b(an)41 b(de)h(exacte)f(basen-v)n(olgorde)d(v)-5 b(an)41 b(DNA-moleculen.)523 1303 y(V)-7 b(o)r(orheen)35 b(w)n(as)h(niet)g(b)r(ek)n(end)g(of)g(de)g (lengte)g(v)-5 b(an)36 b(sup)r(erw)n(o)r(orden)f(gev)n(onden)g(met)h (dit)523 1403 y(algorithme)g(w)n(el)h(b)r(egrensd)g(is)g(tot)h(een)f (constan)n(t)g(aan)n(tal)f(k)n(eer)h(de)g(k)n(ortst)g(mogelijk)n(e)523 1503 y(lengte.)27 b(In)g(dit)g(ho)r(ofdstuk)g(w)n(ordt)f(afgeleid)h (dat)f(dit)i(inderdaad)e(zo)g(is,)h(en)g(w)n(el)f(met)i(een)523 1602 y(grens)f(v)-5 b(an)27 b(4)g(maal)g(de)h(k)n(ortste.)606 1702 y(In)19 b(het)f(v)n(olgende)f(ho)r(ofdstuk)i(staat)f(de)g (geheugen-complexiteit)f(v)-5 b(an)19 b(`plaatjes)f(inkleuren')523 1802 y(cen)n(traal.)25 b(Er)g(w)n(ordt)g(een)h(algorithme)e(afgeleid)i (dat)g(dit)g(probleem)f(met)i(een)f(constan)n(te)523 1901 y(ho)r(ev)n(eelheid)c(geheugen)f(\(in)n(terne)h(ruim)n(te\))g (oplost,)g(in)g(tegenstelling)g(tot)g(de)h(in)f(praktijk)523 2001 y(\(b.v.)j(tek)n(enprogramma's\))e(gebruikte)h(metho)r(den)h(die)g (geheugen)f(prop)r(ortioneel)g(in)h(de)523 2100 y(gro)r(otte)i(v)-5 b(an)29 b(het)g(in)f(te)h(kleuren)f(\014guur)g(no)r(dig)g(hebb)r(en.)h (Bij)g(gebruik)f(v)-5 b(an)28 b(slec)n(h)n(ts)g(een)523 2200 y(constan)n(te)e(ho)r(ev)n(eelheid)h(geheugen)f(is)h(de)h(w)n(erk) n(omgeving)c(als)j(een)g(gigan)n(tisc)n(h)e(do)r(olhof)523 2300 y(in)i(de)h(kleuren)e(wit)i(en)f(zw)n(art,)f(w)n(aarbij)g(de)h (hele)h(witte)f(omgeving)f(v)-5 b(an)27 b(de)g(startp)r(ositie)523 2399 y(\(die)h(dus)g(b)r(egrensd)f(is)g(do)r(or)g(zw)n(arte)f(stukk)n (en\))i(zw)n(art)e(gev)n(erfd)h(mo)r(et)h(w)n(orden.)606 2499 y(Ho)r(ofdstuk)41 b(4)f(gaat)g(v)n(erv)n(olgens)d(in)k(op)g(de)f (sc)n(hak)n(el-energie)e(v)-5 b(an)41 b(circuits)f(die)h(de)523 2599 y(binaire)28 b(\(2)g(w)n(aardig;)f(0)h(of)g(1\))h(of-functie)g (\(en)f(generalisaties)f(daarv)-5 b(an\))27 b(b)r(erek)n(enen)h(op)523 2698 y FC(n)d FK(inputs.)g(Do)r(or)g(een)g(kleine)f(redundan)n(tie)h (in)g(de)g(ho)r(ev)n(eelheid)g(sc)n(hak)n(el-elemen)n(ten)e(k)-5 b(an)523 2798 y(de)23 b(ho)r(ev)n(eelheid)f(b)r(edrading)h(die)g(omsc)n (hak)n(elt)e(bij)j(v)n(erandering)c(v)-5 b(an)23 b(de)g(inputs)g(met)h (een)523 2897 y(factor)j FC(l)i FK(gereduceerd)d(w)n(orden,)h(w)n (aarbij)f FC(l)j FK(het)f(aan)n(tal)e(cijfers)i(v)-5 b(an)27 b FC(n)h FK(is.)606 2997 y(In)35 b(Ho)r(ofdstuk)g(5)f(w)n(ordt) g(een)h(nieu)n(w)g(so)r(ort)e(computer)i(v)n(o)r(orgesteld,)e(w)n(aarv) -5 b(an)32 b(het)523 3097 y(geheugen)18 b(b)r(estaat)h(uit)h(`cellen')f (die)g(elk)-5 b(aar)18 b(aan)g(kunnen)i(wijzen,)f(elk)n(e)g(cel)g (wijst)g(bijv)n(o)r(or-)523 3196 y(b)r(eeld)h(naar)e(3)h(andere,)f(met) i(een)f(ro)r(de,)g(gro)r(ene,)f(en)i(blau)n(w)n(e)e(wijzer.)h(Op)g(elk) h(momen)n(t)f(v)-5 b(an)523 3296 y(de)31 b(b)r(erek)n(ening)f(is)h(er)f (een)h(sp)r(eciale)f(cel)h(v)-5 b(an)31 b(w)n(aaruit)e(de)i(andere)f (ge-adresseerd)e(kun-)523 3396 y(nen)j(w)n(orden.)g(Niet)g(alleen)g (enk)n(ele)g(cellen)g(kunnen)g(ge-adresseeerd)d(w)n(orden,)i(o)r(ok)h (k)-5 b(an)523 3495 y(v)g(an)n(uit)26 b(een)h(cel)f(alle)g(cellen)g (die)h(er)e(naar)g(wijzen,)i(b)r(ev)n(o)r(orb)r(eeld)f(met)g(de)h(gro)r (ene)e(wijzer,)523 3595 y(tegelijk)20 b(ge-adresseerd)d(w)n(orden.)i (Op)h(een)g(v)n(erzameling)e(ge-adresseerde)f(cellen)j(kunnen)523 3694 y(allerlei)k(op)r(eraties)g(w)n(orden)g(uitgev)n(o)r(erd,)g(zoals) f(het)j(cre)n(\177)-39 b(eren)22 b(v)-5 b(an)25 b(nieu)n(w)n(e)g (cellen,)g(of)f(het)523 3794 y(omleggen)k(v)-5 b(an)29 b(wijzers.)g(Dit)h(blijkt)g(een)f(bijzonder)g(krac)n(h)n(tige)f(so)r (ort)g(computer)h(op)f(te)523 3894 y(lev)n(eren,)23 b(die)h(bijv)n(o)r (orb)r(eeld)f(in)h(een)g(relatief)g(klein)g(aan)n(tal)e(stapp)r(en)i (het)h(sc)n(haaksp)r(el)d(zou)523 3993 y(kunnen)32 b(oplossen)e(\(ho)r (ew)n(el)i(het)g(aan)n(tal)e(cellen)i(w)n(at)f(in)h(die)g(b)r(erek)n (ening)f(aangemaakt)523 4093 y(w)n(ordt)c(w)n(el)g(v)n(ersc)n(hrikk)n (elijk)e(gro)r(ot)i(w)n(ordt.\))606 4193 y(In)i(de)h(laatste)e(4)h(ho)r (ofdstukk)n(en)f(k)n(omen)h(comm)n(unicatie)g(proto)r(collen)f(aan)g(b) r(o)r(d,)i(die)523 4292 y(v)n(ersc)n(hillende)21 b(pro)r(cessen)g(de)i (indruk)f(gev)n(en)f(dat)i(ze)f(gezamenlijk)d(\023)-39 b(e)n(\023)g(en)21 b(geheugen)h(delen.)523 4392 y(W)-7 b(at)34 b(de)h(een)f(erin)f(sc)n(hrijft)i(k)-5 b(an)34 b(een)g(ander)f(dan)h(lezen.)g(Het)h(b)r(egin)n(t)f(heel)g(een)n(v)n (oudig)523 4491 y(met)25 b(een)f(enk)n(el)f(bit)i(\(2-w)n(aardig)c (geheugenelemen)n(t\))j(dat)g(do)r(or)f(slec)n(h)n(ts)h(een)g(pro)r (ces)f(k)-5 b(an)523 4591 y(w)n(orden)24 b(gesc)n(hrev)n(en)e(en)j(do)r (or)f(een)g(ander)g(gelezen.)g(V)-7 b(an)n(uit)25 b(deze)g(b)r(ou)n (wstenen)f(kunnen)523 4691 y(geheugens)h(met)i(v)n(eel)e(meer)h (mogelijkheden)g(w)n(orden)f(geb)r(ou)n(wd:)g(meer)h(w)n(aardes,)e (meer)523 4790 y(lezers,)g(meer)h(sc)n(hrijv)n(ers,)f(enz.)h(Het)h (uniek)n(e)f(v)-5 b(an)25 b(deze)g(proto)r(collen)f(is)h(dat)h(ze)f FG(wachtvrij)523 4890 y FK(zijn,)35 b(w)n(at)e(wil)i(zeggen)e(dat)h (het)g(ene)h(pro)r(ces)e(no)r(oit)h(op)g(het)g(ander)g(ho)r(eft)g(te)h (w)n(ac)n(h)n(ten)523 4990 y(om)30 b(zijn)h(geheugen-op)r(eratie)d(te)i (kunnen)h(v)n(olto)r(oien.)e(Er)g(k)-5 b(an)30 b(rustig)f(tegelijk)n (ertijd)h(in)523 5089 y(gelezen)d(en)h(gesc)n(hrev)n(en)d(w)n(orden,)i (zonder)g(dat)g(er)g(onzin)h(uit)g(k)n(om)n(t.)p eop end %%Page: 127 137 TeXDict begin 127 136 bop 3357 223 2 75 v 3283 225 150 2 v 3357 300 2 75 v 523 543 a FI(Curriculum)52 b(Vitae)523 2516 y FK(Johannes)26 b(Theo)r(dorus)h(T)-7 b(romp)523 2715 y(13)27 b(mei)h(1966:)108 b(geb)r(oren)27 b(te)h(Alkmaar)523 2914 y(1978{1984:)166 b(A)n(theneum)1090 3014 y(Han)28 b(F)-7 b(ortman)27 b(College)g(te)g(Heerh)n(ugo)n(w)n(aard)523 3213 y(1984{1989)189 b(Do)r(ctoraal)27 b(Informatica)1090 3313 y(Univ)n(ersiteit)h(v)-5 b(an)27 b(Amsterdam)523 3512 y(1989{1993)189 b(Onderzo)r(ek)n(er)26 b(in)i(opleiding)1090 3611 y(in)g(het)g(pro)5 b(ject)27 b(\\Algorithms)g(and)g(Complexit)n (y")1090 3711 y(v)-5 b(an)28 b(het)g(CWI)g(te)g(Amsterdam)p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF