packages feed

chalmers-lava2000 1.0 → 1.0.1

raw patch · 2 files changed

+16544/−2 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

+ Doc/tutorial.ps view
@@ -0,0 +1,16541 @@+%!PS-Adobe-2.0+%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software+%%Pages: 93+%%PageOrder: Ascend+%%BoundingBox: 0 0 596 842+%%DocumentPaperSizes: A4+%%EndComments+%DVIPSCommandLine: /usr/pd/tex/teTeX/bin/sparc-solaris2.5.1/dvips.bin+%+ -o!lpr -f+%DVIPSParameters: dpi=600, comments removed+%DVIPSSource:  TeX output 2000.08.15:1545+%%BeginProcSet: tex.pro+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff+.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}+if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore 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+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail+{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}+B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{+4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{+p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p+a}B /bos{/SS save N}B /eos{SS restore}B end+%%EndProcSet+%%BeginProcSet: special.pro+TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N+/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen+false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B+/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit+div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{+/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{+10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B+/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale+true def end /@MacSetUp{userdict /md known{userdict /md get type+/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup+length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}+N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath+clippath mark{transform{itransform moveto}}{transform{itransform lineto}+}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{+itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{+closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39+0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N+/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1+scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get+ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip+not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0+TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR+pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1+-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg+TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg+sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr+0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add+2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp+{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72+div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}+N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict+maxlength dict begin /magscale 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 /copypage{}N /p 3 def @MacSetUp}N /doclip{+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath+moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict+begin /SpecialSave save N gsave normalscale currentpoint TR+@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial+{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury+lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath+}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{+end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}+N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{+/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX+SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X+/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad+yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end+%%EndProcSet+TeXDict begin 39158280 55380996 1000 600 600 () @start+/Fa 9 74 df<000000000000000000000C000000000000000000001E0000000000000000+00003E000000000000000000007E00000000000000000000FC00000000000000000001F8+00000000000000000003F000000000000000000007E00000000000000000000FC0000000+0000000000001F800000000000000000003F000000000000000000007E00000000000000+000000FC00000000000000000001F800000000000000000003F000000000000000000007+E00000000000000000000FC00000000000000000001F800000000000000000003F000000+000000000000007E00000000000000000000FC00000000000000000001F8000000000000+00000003F000000000000000000007E00000000000000000000FC0000000000000000000+1F800000000000000000003F000000000000000000007E00000000000000000000FC0000+0000000000000001F800000000000000000003F000000000000000000007E00000000000+000000000FC00000000000000000001F800000000000000000003F000000000000000000+007E00000000000000000000FC00000000000000000001F800000000000000000003F000+000000000000000007E00000000000000000000FC00000000000000000001F8000000000+00000000003F000000000000000000007E00000000000000000000FC0000000000000000+0001F800000000000000000003F000000000000000000007E00000000000000000000FC0+0000000000000000001F800000000000000000003F000000000000000000007E00000000+000000000000FC00000000000000000001F800000000000000000003F000000000000000+000007E00000000000000000000FC00000000000000000001F800000000000000000003F+000000000000000000007E00000000000000000000FC00000000000000000001F8000000+00000000000003F000000000000000000007E00000000000000000000FC0000000000000+0000001F800000000000000000003F000000000000000000007E00000000000000000000+FC00000000000000000001F800000000000000000003F000000000000000000007E00000+000000000000000FC00000000000000000001F800000000000000000003F000000000000+000000007E00000000000000000000FC00000000000000000001F8000000000000000000+03F000000000000000000007E00000000000000000000FC00000000000000000001F8000+00000000000000003F000000000000000000007E00000000000000000000FC0000000000+0000000000F8000000000000000000006000000000000000000000575782D453>0+D<00000000001800000000003C00000000007C00000000007C0000000000F80000000000+F80000000001F00000000001F00000000003E00000000003E00000000007C00000000007+C0000000000F80000000000F80000000001F00000000001F00000000003E00000000003E+00000000007C00000000007C0000000000F80000000000F80000000001F00000000001F0+0000000003E00000000003E00000000007C00000000007C0000000000F80000000000F80+000000001F00000000001F00000000003E00000000003E00000000007C00000000007C00+00000000F80000000000F80000000001F00000000001F00000000003E00000000003E000+00000007C0000000000FC0000000000F80000000001F00000000001F00000000003E0000+0000003E00000000007C00000000007C0000000000F80000000000F80000000001F00000+000001F00000000003E00000000003E00000000007C00000000007C0000000000F800000+00000F80000000001F00000000001F00000000003E00000000003E00000000007C000000+00007C0000000000F80000000000F80000000001F00000000001F00000000003E0000000+0003E00000000007C00000000007C0000000000F80000000000F80000000001F00000000+001F00000000003E00000000003E00000000007C00000000007C0000000000F800000000+00F80000000000F000000000006000000000002E5782D42A>I<000000060000000F0000+001F0000001F0000001E0000003E0000003E0000003C0000007C0000007C000000780000+00F8000000F8000000F0000001F0000001F0000001E0000003E0000003E0000003C00000+07C0000007C00000078000000F8000000F8000000F0000001F0000001F0000001E000000+3E0000003E0000003C0000007C0000007C00000078000000F8000000F8000000F0000001+F0000001F0000001E0000003E0000003E0000003C0000007C0000007C00000078000000F+8000000F8000000F0000001F0000001F0000001E0000003E0000003E0000003C0000007C+0000007C00000078000000F8000000F8000000F0000001F0000001F0000001E0000003E0+000003E0000003C0000007C0000007C00000078000000F8000000F8000000F0000001F00+00001F0000001E0000003E0000003E0000003C0000007C0000007C00000078000000F800+0000F8000000F000000060000000205782D41C>I<00000001000000020000000C000000+3C000000F8000003F800000FF000003FF00000FFE00003FFE0001FFFC0007FFFC003FFFF+801FFFFF80FFFFFF007FFFFF003FFFFE001FFFFE000FFFFC0007FFFC0003FFFC0001FFF8+0000FFF800007FF000003FF000001FF000000FE0000007E0000003E0000001C0000000C0+000000400020204DD253>18 D<001800001800001800001800003C00003C00003C00007E+00007E00007E0000FF0000FF0000FF0001FF8001FF8001FF8003FFC003FFC007FFE007FF+E007FFE00FFFF00FFFF01FFFF81FFFF83FFFFC3FFFFC7FFFFE7FFFFEFFFFFFFFFFFF181F+8CD053>54 D<6000000000000000000000F800000000000000000000FC00000000000000+0000007E000000000000000000003F000000000000000000001F80000000000000000000+0FC000000000000000000007E000000000000000000003F000000000000000000001F800+000000000000000000FC000000000000000000007E000000000000000000003F00000000+0000000000001F800000000000000000000FC000000000000000000007E0000000000000+00000003F000000000000000000001F800000000000000000000FC000000000000000000+007E000000000000000000003F000000000000000000001F800000000000000000000FC0+00000000000000000007E000000000000000000003F000000000000000000001F8000000+00000000000000FC000000000000000000007E000000000000000000003F000000000000+000000001F800000000000000000000FC000000000000000000007E00000000000000000+0003F000000000000000000001F800000000000000000000FC000000000000000000007E+000000000000000000003F000000000000000000001F800000000000000000000FC00000+0000000000000007E000000000000000000003F000000000000000000001F80000000000+0000000000FC000000000000000000007E000000000000000000003F0000000000000000+00001F800000000000000000000FC000000000000000000007E000000000000000000003+F000000000000000000001F800000000000000000000FC000000000000000000007E0000+00000000000000003F000000000000000000001F800000000000000000000FC000000000+000000000007E000000000000000000003F000000000000000000001F800000000000000+000000FC000000000000000000007E000000000000000000003F00000000000000000000+1F800000000000000000000FC000000000000000000007E000000000000000000003F000+000000000000000001F800000000000000000000FC000000000000000000007E00000000+0000000000003F000000000000000000001F800000000000000000000FC0000000000000+00000007E000000000000000000003F000000000000000000001F8000000000000000000+00FC000000000000000000007E000000000000000000003F000000000000000000001F80+0000000000000000000FC000000000000000000007E000000000000000000003F0000000+00000000000001F800000000000000000000FC000000000000000000007E000000000000+000000003E000000000000000000001E000000000000000000000C575782D453>64+D<600000000000F00000000000F80000000000F800000000007C00000000007C00000000+003E00000000003E00000000001F00000000001F00000000000F80000000000F80000000+0007C00000000007C00000000003E00000000003E00000000001F00000000001F0000000+0000F80000000000F800000000007C00000000007C00000000003E00000000003E000000+00001F00000000001F00000000000F80000000000F800000000007C00000000007C00000+000003E00000000003E00000000001F00000000001F00000000000F80000000000F80000+0000007C00000000007C00000000003E00000000003E00000000001F00000000001F0000+0000000F80000000000FC00000000007C00000000003E00000000003E00000000001F000+00000001F00000000000F80000000000F800000000007C00000000007C00000000003E00+000000003E00000000001F00000000001F00000000000F80000000000F800000000007C0+0000000007C00000000003E00000000003E00000000001F00000000001F00000000000F8+0000000000F800000000007C00000000007C00000000003E00000000003E00000000001F+00000000001F00000000000F80000000000F800000000007C00000000007C00000000003+E00000000003E00000000001F00000000001F00000000000F80000000000F80000000000+7C00000000007C00000000003C0000000000182E5782D42A>I<60000000F0000000F800+0000F8000000780000007C0000007C0000003C0000003E0000003E0000001E0000001F00+00001F0000000F0000000F8000000F8000000780000007C0000007C0000003C0000003E0+000003E0000001E0000001F0000001F0000000F0000000F8000000F8000000780000007C+0000007C0000003C0000003E0000003E0000001E0000001F0000001F0000000F0000000F+8000000F8000000780000007C0000007C0000003C0000003E0000003E0000001E0000001+F0000001F0000000F0000000F8000000F8000000780000007C0000007C0000003C000000+3E0000003E0000001E0000001F0000001F0000000F0000000F8000000F80000007800000+07C0000007C0000003C0000003E0000003E0000001E0000001F0000001F0000000F00000+00F8000000F8000000780000007C0000007C0000003C0000003E0000003E0000001E0000+001F0000001F0000000F00000006205782D41C>I<8000000040000000300000003C0000+001F0000001FC000000FF000000FFC000007FF000007FFC00003FFF80003FFFE0001FFFF+C001FFFFF800FFFFFF00FFFFFE007FFFFC007FFFF8003FFFF0003FFFE0003FFFC0001FFF+80001FFF00000FFE00000FFC00000FF8000007F0000007E0000007C00000038000000300+0000020000202080D253>73 D E /Fb 1 1 df<FFFFFFFFFEFFFFFFFFFEFFFFFFFFFE27+037A8F34>0 D E /Fc 5 63 df<F000000000FC00000000FF00000000FFC00000003FE0+0000000FF800000007FC00000003FE00000000FF000000007F800000003FC00000001FC0+0000001FE00000000FF000000007F000000007F800000003F800000003FC00000001FC00+000001FC00000001FE00000000FE00000000FE00000000FE00000000FE00000000FE0000+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000+00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000+FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE+00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00+000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000+00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000+FE00000000FE00000000FF000000007F000000007F000000007F000000003F800000003F+800000003FC00000001FC00000000FE00000000FE000000007F000000003F800000003FC+00000001FE00000000FF000000007F800000001FC00000000FF000000007F800000001FE+000000007E000000007E00000001FE00000007F80000000FF00000001FC00000007F8000+0000FF00000001FE00000003FC00000003F800000007F00000000FE00000000FE0000000+1FC00000003FC00000003F800000003F800000007F000000007F000000007F00000000FF+00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00+000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000+00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000+FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE+00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00+000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000+01FE00000001FC00000001FC00000003FC00000003F800000007F800000007F00000000F+F00000001FE00000001FC00000003FC00000007F80000000FF00000003FE00000007FC00+00000FF80000003FE0000000FFC0000000FF00000000FC00000000F00000000027C67582+3E>27 D<F8000000FE000000FF800000FFC00000FFF000003FF800001FFC00000FFE0000+03FF000001FF800000FFC000007FE000003FF000003FF800001FFC00000FFC000007FE00+0007FF000003FF000003FF800001FF800001FFC00000FFC00000FFC000007FE000007FE0+00007FE000003FF000003FF000003FF000003FF000003FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF81D4B737E4A>57 D<00001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8+00001FF800001FF800001FF800001FF800003FF800003FF000003FF000003FF000003FF0+00007FE000007FE000007FE00000FFC00000FFC00001FFC00001FF800003FF800003FF00+0007FF000007FE00000FFC00001FFC00003FF800003FF000007FE00000FFC00001FF8000+03FF00000FFE00001FFC00003FF80000FFF00000FFC00000FF800000FE000000F8000000+1D4B73804A>59 D<FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC000007FE000007FE000007FE000007FE000007FE000003FF000003FF000003FF00000+1FF800001FF800000FF800000FFC00000FFC000007FE000003FE000003FF000001FF0000+01FF800000FF8000007FC000003FE000003FF000001FF000000FF8000007FC000003FE00+0001FF000000FF8000003FE000001FF0000007F0000003F0000007F000001FF000003FE0+0000FF800001FF000003FE000007FC00000FF800001FF000003FF000003FE000007FC000+00FF800001FF800001FF000003FF000003FE000007FE00000FFC00000FFC00000FF80000+1FF800001FF800003FF000003FF000003FF000007FE000007FE000007FE000007FE00000+7FE00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000+1C9760804A>61 D<FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0+FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC0FFC00A1B60804A>I+E /Fd 5 53 df<00000E00000000000E00000000000E00000000000E00000000000E0000+0000000E00000000000E00000000000E00000000000E00000000000E00000000000E0000+0000000E00000000000E00000000000E00000000000E00000000000E00000000000E0000+0000000E00000000000E00000000000E000000FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFF+E000000E00000000000E00000000000E00000000000E00000000000E00000000000E0000+0000000E00000000000E00000000000E00000000000E00000000000E00000000000E0000+0000000E00000000000E00000000000E00000000000E00000000000E00000000000E0000+0000000E00000000000E0000002B2B7DA333>43 D<00380000780001F8001FF800FEF800+E0F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800+00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800+00F80000F80000F80000F80000F80000F80001FC00FFFFF8FFFFF815267BA521>49+D<00FF000003FFE0000E03F0001800F80030007C0060007E0078003F00FC003F00FE001F+80FE001F80FE001F80FE001F807C001F8000001F8000001F0000003F0000003E0000007E+0000007C000000F8000001F0000003E0000003C00000078000000E0000001C0000003800+000070018000E001800180018003000300060003000C0003001FFFFF003FFFFF007FFFFE+00FFFFFE00FFFFFE0019267DA521>I<00FF000003FFE0000F01F8001C007C0030007E00+3C003E007E003F007E003F007E003F007E003F003C003F0000003E0000007E0000007C00+0000F8000001F0000007E00001FF800001FF00000001E0000000F00000007C0000003E00+00003F0000001F0000001F8000001F8038001F807C001F80FE001F80FE001F80FE001F00+FC003F0078003E0070007C003800F8001F01F00007FFC00000FF000019277DA521>I<00+00380000003800000078000000F8000001F8000001F8000003F8000007F8000006F80000+0CF800001CF8000018F8000030F8000070F8000060F80000C0F80001C0F8000180F80003+00F8000700F8000E00F8000C00F8001C00F8003800F8003000F8006000F800E000F800FF+FFFFE0FFFFFFE00000F8000000F8000000F8000000F8000000F8000000F8000000F80000+01FC00003FFFE0003FFFE01B277EA621>I E /Fe 10 122 df<00FF000007FFE0001FFF+F0003FFFF8003FFFFC003F00FE0038007F0020003F0000003F0000001F8000001F800000+1F8000001F8000001F8000001F80000FFF8000FFFF8007FFFF801FFFFF803FFC1F807FC0+1F80FE001F80FC001F80FC001F80FC003F80FC003F80FE007F807F83FF807FFFFF803FFF+FF803FFF9F801FFE1F8007F0000019217D9F22>97 D<000003F0000003F0000003F00000+03F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000+03F0000003F0000003F0007F03F001FFE3F003FFFBF007FFFFF00FFFFFF01FF03FF03FC0+0FF03F8007F07F0003F07E0003F07E0003F0FE0003F0FC0003F0FC0003F0FC0003F0FC00+03F0FC0003F0FC0003F0FC0003F0FC0003F0FE0003F07E0003F07E0003F07F0007F03F80+0FF03FC01FF01FF03FF00FFFFFF007FFFBF003FFF3F001FFC3F0007F00001C2F7EAD24>+100 D<001F800000FFF00001FFF80007FFFC000FFFFE000FE07F001FC03F003F801F003F+000F807E0007807E0007807C0007C0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC0F8+000000F8000000FC000000FC0000007C0000007E0000007E0000003F0000003F8000401F+C001C00FF01FC007FFFFC003FFFFC001FFFF80007FFE00001FE0001A217E9F1F>I<FCFC+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC+FCFCFCFCFCFCFCFC062E7BAD11>108 D<000FE000FC3FF800FCFFFC00FDFFFE00FFFFFF+00FFC0FF00FF803F00FF003F80FE001F80FE001F80FE001F80FC001F80FC001F80FC001F+80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F+80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80FC001F80191F7B+9E24>110 D<001FE000007FF80001FFFE0003FFFF0007FFFF800FF03FC01FC00FE01F80+07E03F0003F03F0003F07E0001F87E0001F87C0000F8FC0000FCFC0000FCFC0000FCFC00+00FCFC0000FCFC0000FCFC0000FCFC0000FC7E0001F87E0001F87F0003F83F0003F03F80+07F01FC00FE00FF03FC007FFFF8003FFFF0001FFFE00007FF800001FE0001E217E9F23>+I<0007F000FC3FF800FCFFFE00FFFFFF00FFFFFF80FFC0FF80FF003FC0FE001FC0FC000F+E0FC000FE0FC0007E0FC0007F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003+F0FC0003F0FC0003F0FC0007E0FC0007E0FC000FE0FE000FC0FE001FC0FF007F80FFC1FF+80FFFFFF00FFFFFE00FCFFFC00FC7FF000FC0FC000FC000000FC000000FC000000FC0000+00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000001C2C7B+9E24>I<FC001FC001F8FC003FC001F87E003FC001F07E003FE003F07E003DE003F03F00+7DE003E03F0079F007E03F0079F007E01F00F9F007C01F80F8F00FC01F80F8F80FC01F80+F0F80FC00FC1F0F80F800FC1F0781F800FC1F07C1F8007C1E07C1F0007E3E07C1F0007E3+E03E3F0003E3E03E3E0003E3C03E3E0003E3C03E3E0003F7C01E7E0001F7801F7C0001F7+801F7C0001F7800F7C0000F7800F780000FF000FF80000FF0007F800007F0007F000007E+0007F0002D1E7F9D30>119 D<7E0000FC3F0001FC1F8003F81FC007F00FE007E007F00F+C003F01F8001F83F0000FC7F00007E7E00003FFC00001FF800001FF000000FE0000007C0+00000FE000000FF000001FF800003EFC00007C7E0000FC3F0001F81F8003F00F8003E00F+C007E007E00FC003F01F8001F83F0001FC7F0000FEFE00007F201E809D21>I<FC0000FC+7E0001F87E0001F87F0001F83F0003F03F8003F01F8007E01FC007E00FC007E00FC00FC0+07E00FC007E00F8007F01F8003F01F0003F03F0001F83F0001F83E0000F83E0000FC7C00+007C7C00007C7C00007C7800003EF800003EF000001EF000001EF000000FE000000FE000+0007C0000007C0000007800000078000000F8000000F0000001F0000001E0000003E0000+003E0000307C00003FF800003FF800003FF000003FE000000FC000001E2C7F9D21>I+E /Ff 7 117 df<FFFFFFFFFFFFFFFF0000000000000000000000007F7F7F7F7F7F7F7F+7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F08397BB814>+105 D<FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000+00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000+FE0003FE00FE0007FC00FE000FF800FE001FF000FE003FE000FE007FC000FE00FF8000FE+01FF0000FE03FE0000FE03FC0000FE07F80000FE0FF00000FE1FE00000FE3FC00000FE7F+800000FEFFC00000FFFFE00000FFFFE00000FFFFF00000FFF7F80000FFE3F80000FFC1FC+0000FF80FE0000FF00FF0000FE007F0000FE003F8000FE003FC000FE001FC000FE000FE0+00FE000FF000FE0007F000FE0003F800FE0001FC00FE0001FE00FE0000FE00FE00007F00+FE00007F80213A7AB929>107 D<0001FC00FE0FFF80FE1FFFC0FE7FFFE0FEFFFFF0FFF8+1FF8FFE007F8FFC003F8FF8003FCFF8001FCFF0001FCFF0001FCFF0001FCFE0001FCFE00+01FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE00+01FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE00+01FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FC1E267AA52B>110+D<0003FE0000000FFF8000003FFFE00000FFFFF80001FFFFFC0003FE03FE0007F800FF00+0FF0007F800FE0003F801FC0001FC03F80000FE03F80000FE03F000007E07F000007F07F+000007F07E000003F0FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE00+0003F8FE000003F8FE000003F8FE000003F87F000007F07F000007F07F000007F03F8000+0FE03F80000FE01FC0001FC01FE0003FC00FF0007F8007F800FF0003FE03FE0001FFFFFC+0000FFFFF800007FFFF000001FFFC0000003FE000025287EA62A>I<0001FC0000FE0FFF+0000FE3FFFC000FEFFFFE000FFFFFFF000FFF03FF800FFC00FF800FF8003FC00FF0003FC+00FE0001FE00FE0000FE00FE0000FF00FE00007F00FE00007F00FE00007F80FE00003F80+FE00003F80FE00003F80FE00003F80FE00003F80FE00003F80FE00003F80FE00003F80FE+00003F80FE00007F00FE00007F00FE00007F00FE0000FF00FE0000FE00FE0001FE00FF00+03FC00FF8007FC00FFC00FF800FFF03FF000FFFFFFE000FEFFFFC000FE7FFF8000FE1FFE+0000FE07F80000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000+00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000+FE00000000FE0000000021367AA52B>I<0007F03F80003FFC3F8000FFFE3F8001FFFFBF+8003FFFFFF8007FE07FF800FF801FF801FF000FF801FE000FF803FC0007F803F80007F80+7F80003F807F00003F807F00003F807F00003F80FE00003F80FE00003F80FE00003F80FE+00003F80FE00003F80FE00003F80FE00003F80FE00003F80FE00003F80FF00003F807F00+003F807F00003F807F80003F803F80003F803FC0007F801FE0007F801FE000FF800FF801+FF8007FE07FF8007FFFFFF8003FFFF3F8000FFFE3F80007FF83F80001FE03F800000003F+800000003F800000003F800000003F800000003F800000003F800000003F800000003F80+0000003F800000003F800000003F800000003F800000003F800000003F800000003F8021+367DA52B>I<01FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC+000001FC000001FC0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0001FC000001FC+000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC+000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC+000001FC000001FC000001FC000001FC000001FC000001FE008001FE018000FF07C000FF+FFC000FFFFC0007FFF00003FFC00001FE0001A307FAE1E>116 D+E /Fg 3 111 df<000E00001F00003F00003F00003E00001C0000000000000000000000+000000000000000000000003E00007F0000C7800187C00307C00307C00607C0060F800C0+F800C0F80001F00001F00001F00003E00003E00007C00007C00007C1800F81800F81801F+03001F03001F06000F0C000F1C0007F00003E00011287DA617>105+D<003E000007FE000007FE0000007C0000007C000000FC000000FC000000F8000000F800+0001F8000001F8000001F0000001F0000003F0000003F0078003E01FC003E0386007E061+E007E0C3E007C187E007C307E00FC607C00FCC03800FB800000FE000001FF000001FFE00+001F3F80001F0FC0003F07E0003F03E0003E03E0603E03E0607E03E0607E03C0C07C03C0+C07C03C180FC03C180FC01E300F800FE0070007C001B297CA723>107+D<07801FC0000FE07FF00018F0E0F80030F1807C0030FB007C0060FE003C0060FC003C00+60F8003C00C1F8007C00C1F0007C0001F0007C0001F0007C0003E000F80003E000F80003+E000F80003E001F00007C001F00007C001F06007C003E06007C003E0600F8007C0C00F80+07C0C00F8007C1800F8003C3001F0003C7001F0001FE000E0000F800231B7D9929>110+D E /Fh 20 120 df<000000FE000000000001FF000000000003FF800000000003FF8000+00000007FFC00000000007FFC00000000007FFC00000000007FFC0000000000FFFE00000+00000FFFE0000000000FEFE0000000000FEFE0000000000FEFE0000000001FEFF0000000+001FC7F0000000001FC7F0000000001FC7F0000000003FC7F8000000003FC7F800000000+3FC7F8000000003F83F8000000007F83FC000000007F83FC000000007F83FC000000007F+83FC000000007F01FC00000000FF01FE00000000FF01FE00000000FF01FE00000000FF01+FE00000001FE00FF00000001FE00FF00000001FE00FF00000001FE00FF00000003FE00FF+80000003FC007F80000003FC007F80000003FC007F80000003FC007F80000007F8003FC0+000007F8003FC0000007F8003FC0000007F8003FC000000FF8003FE000000FF0001FE000+000FF0001FE000000FF0001FE000000FF0001FE000001FFFFFFFF000001FFFFFFFF00000+1FFFFFFFF000001FFFFFFFF000003FFFFFFFF800003FFFFFFFF800003FFFFFFFF800003F+C00007F800007FC00007FC00007F800003FC00007F800003FC00007F800003FC00007F80+0003FC0000FF800003FE0000FF000001FE0000FF000001FE0000FF000001FE0001FF0000+01FF0001FE000000FF0001FE000000FF003FFFF0001FFFF87FFFF8003FFFFCFFFFFC007F+FFFEFFFFFC007FFFFEFFFFFC007FFFFE7FFFF8003FFFFC3FFFF0001FFFF8374B7DCA3E>+65 D<000001FF0003C000000FFFF007E000003FFFFC0FE00000FFFFFE0FE00001FFFFFF+9FE00007FFFFFFDFE0000FFFFFFFFFE0001FFF80FFFFE0003FFC001FFFE0007FF0000FFF+E0007FE00007FFE000FFC00003FFE001FF800001FFE003FF000000FFE003FE000000FFE0+07FC0000007FE007FC0000007FE00FF80000003FE00FF00000003FE01FF00000003FE01F+E00000001FE01FE00000001FE03FE00000001FE03FC00000001FE03FC00000001FE07FC0+0000000FC07F8000000000007F8000000000007F8000000000007F800000000000FF8000+00000000FF000000000000FF000000000000FF000000000000FF000000000000FF000000+000000FF000000000000FF000000000000FF000000000000FF000000000000FF00000000+0000FF000000000000FF000000000000FF000000000000FF8000000000007F8000000000+007F8000000000007F8000000000007F8000000000007FC000000000003FC00000000FC0+3FC00000001FE03FE00000001FE01FE00000001FE01FE00000001FE01FF00000001FE00F+F00000001FE00FF80000003FE007FC0000003FC007FC0000003FC003FE0000007FC003FF+0000007F8001FF800000FF8000FFC00001FF00007FE00003FE00007FF00007FE00003FFC+001FFC00001FFF80FFF800000FFFFFFFF0000007FFFFFFE0000001FFFFFFC0000000FFFF+FF000000003FFFFC000000000FFFF00000000001FF800000334B7BC93E>67+D<7FFFFFFFF000007FFFFFFFFE0000FFFFFFFFFF8000FFFFFFFFFFE000FFFFFFFFFFF800+7FFFFFFFFFFC007FFFFFFFFFFE0000FF00007FFF0000FF00000FFF8000FF000003FF8000+FF000000FFC000FF0000007FE000FF0000003FE000FF0000003FE000FF0000001FF000FF+0000000FF000FF0000000FF000FF0000000FF800FF00000007F800FF00000007F800FF00+000007F800FF00000007F800FF00000007F800FF00000007F800FF00000007F800FF0000+000FF800FF0000000FF000FF0000000FF000FF0000001FF000FF0000003FE000FF000000+3FE000FF0000007FE000FF000000FFC000FF000003FF8000FF00000FFF8000FF00007FFF+0000FFFFFFFFFE0000FFFFFFFFFC0000FFFFFFFFF80000FFFFFFFFE00000FFFFFFFF8000+00FFFFFFFE000000FFFFFFF0000000FF000000000000FF000000000000FF000000000000+FF000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF+000000000000FF000000000000FF000000000000FF000000000000FF000000000000FF00+0000000000FF000000000000FF000000000000FF000000000000FF000000000000FF0000+00000000FF000000000000FF000000000000FF000000000000FF00000000007FFFFE0000+00007FFFFE00000000FFFFFF00000000FFFFFF00000000FFFFFF000000007FFFFE000000+007FFFFE0000000035497DC83E>80 D<0000FFF00078000007FFFE00FC00001FFFFF81FC+00007FFFFFE1FC0000FFFFFFF9FC0001FFFFFFFFFC0003FFFFFFFFFC0007FFC03FFFFC00+0FFE0003FFFC001FF80001FFFC003FF000007FFC003FE000003FFC007FC000001FFC007F+8000001FFC007F8000000FFC00FF80000007FC00FF00000007FC00FF00000007FC00FF00+000007FC00FF00000003FC00FF00000003FC00FF00000003FC00FF80000003FC00FF8000+0001F8007FC000000000007FC000000000003FE000000000003FF000000000001FF80000+0000001FFE00000000000FFFE00000000007FFFE0000000003FFFFE000000001FFFFFE00+000000FFFFFFE00000003FFFFFF80000000FFFFFFE00000003FFFFFF000000007FFFFFC0+00000003FFFFE0000000003FFFF00000000003FFF000000000007FF800000000001FFC00+0000000007FC000000000003FE000000000003FE000000000001FF000000000000FF0000+00000000FF000000000000FF803E000000007F807F000000007F80FF000000007F80FF00+0000007F80FF000000007F80FF000000007F80FF000000007F80FF80000000FF80FF8000+0000FF00FF80000000FF00FFC0000001FF00FFE0000001FE00FFF0000003FE00FFF80000+07FC00FFFE00000FF800FFFF80003FF800FFFFFC01FFF000FFFFFFFFFFE000FFFFFFFFFF+C000FE7FFFFFFF8000FE1FFFFFFE0000FE07FFFFFC0000FC00FFFFE0000078000FFF0000+00314B7AC93E>83 D<000FFFC0000000007FFFF800000001FFFFFE00000003FFFFFF8000+0007FFFFFFE000000FFFFFFFF000000FFFFFFFF800001FFC007FFC00001FF8000FFE0000+1FF80007FE00001FF80001FF00001FF80001FF00000FF00000FF800007E000007F800000+0000007FC000000000003FC000000000003FC000000000003FC000000000003FC0000000+00003FC000000000003FC000000003FFFFC00000007FFFFFC0000003FFFFFFC000001FFF+FFFFC000007FFFFFFFC00000FFFFFFFFC00003FFFFC03FC00007FFF8003FC0000FFF8000+3FC0001FFC00003FC0003FF000003FC0003FE000003FC0007FC000003FC0007F8000003F+C000FF8000003FC000FF0000003FC000FF0000003FC000FF0000003FC000FF0000003FC0+00FF0000003FC000FF8000007FC0007F8000007FC0007FC00000FFC0003FE00003FFC000+3FF8000FFFE0001FFF00FFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFFC07FFFFFFCFFFFC01+FFFFFF07FFFC00FFFFFC03FFF8003FFFF0007FF80007FF00000000363679B43E>97+D<000007FFF00000003FFFFE000001FFFFFF800007FFFFFFC0000FFFFFFFE0001FFFFFFF+F0007FFFFFFFF000FFFC003FF801FFE0001FF803FF80001FF803FF00001FF807FE00001F+F80FFC00000FF00FF8000007E01FF0000000001FE0000000003FE0000000003FC0000000+007FC0000000007F80000000007F80000000007F8000000000FF8000000000FF00000000+00FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000+00FF0000000000FF0000000000FF80000000007F80000000007F80000000007FC0000000+003FC0000000003FE0000000003FE0000000FC1FF0000001FE1FF8000001FE0FFC000001+FE07FE000003FE07FF000007FC03FFC0000FFC01FFF0001FF800FFFE00FFF0007FFFFFFF+E0003FFFFFFFC0000FFFFFFF800007FFFFFF000001FFFFFC0000007FFFF000000007FF00+002F3678B43E>99 D<00001FF800000000FFFF80000003FFFFE000000FFFFFF800001FFF+FFFC00007FFFFFFE0000FFFFFFFF0001FFF80FFF8001FFC001FFC003FF8000FFE007FE00+003FE00FFC00001FF00FF800000FF01FF000000FF81FF0000007F83FE0000007FC3FE000+0007FC7FC0000003FC7FC0000003FC7F80000003FE7F80000003FEFF80000001FEFF8000+0001FEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFF+FFFFFCFFFFFFFFFFFCFF0000000000FF8000000000FF80000000007F80000000007F8000+0000007FC0000000003FC0000000003FE0000000FC3FE0000000FC1FF0000001FE1FF800+0001FE0FFC000003FE07FE000007FE07FF00000FFC03FF80001FFC01FFE0007FF800FFFC+03FFF0007FFFFFFFE0003FFFFFFFC0001FFFFFFF800007FFFFFF000001FFFFFC0000007F+FFE000000007FF00002F3679B43E>101 D<3FFF8000000000007FFF800000000000FFFF+C00000000000FFFFC00000000000FFFFC000000000007FFFC000000000003FFFC0000000+0000003FC00000000000003FC00000000000003FC00000000000003FC00000000000003F+C00000000000003FC00000000000003FC00000000000003FC00000000000003FC0000000+0000003FC00000000000003FC00000000000003FC00000000000003FC00000000000003F+C00000000000003FC007FC000000003FC03FFF800000003FC0FFFFE00000003FC3FFFFF0+0000003FC7FFFFF80000003FCFFFFFFC0000003FDFFFFFFE0000003FFFF80FFE0000003F+FFC003FF0000003FFF0001FF0000003FFE0000FF0000003FFC0000FF8000003FF80000FF+8000003FF800007F8000003FF000007F8000003FF000007F8000003FE000007F8000003F+E000007F8000003FE000007F8000003FC000007F8000003FC000007F8000003FC000007F+8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003F+C000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F+8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003F+C000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F+8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003F+C000007F80003FFFFFC07FFFFF807FFFFFE0FFFFFFC0FFFFFFF0FFFFFFE0FFFFFFF0FFFF+FFE0FFFFFFF0FFFFFFE07FFFFFE0FFFFFFC03FFFFFC07FFFFF803B497FC83E>104+D<00003E00000000007F0000000000FF8000000001FFC000000001FFC000000001FFC000+000001FFC000000001FFC000000000FF80000000007F00000000003E0000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000003FFFFF8000+007FFFFF8000007FFFFFC000007FFFFFC000007FFFFFC000007FFFFFC000003FFFFFC000+0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000+0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000+0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000+0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000+0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000+0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000+0000003FC000007FFFFFFFFF80FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFF+C0FFFFFFFFFFC07FFFFFFFFF802A4A76C93E>I<7FFFFFC00000FFFFFFC00000FFFFFFE0+0000FFFFFFE00000FFFFFFE00000FFFFFFE000007FFFFFE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0+000000001FE0000000001FE0000000001FE000007FFFFFFFFFF8FFFFFFFFFFFCFFFFFFFF+FFFCFFFFFFFFFFFCFFFFFFFFFFFCFFFFFFFFFFFC7FFFFFFFFFF82E4978C83E>108+D<00000FC0007E00007FF07FF003FF8000FFF0FFFC07FFE000FFFBFFFE1FFFF000FFFFFF+FE3FFFF000FFFFFFFF7FFFF800FFFFFFFF7FFFF8007FFFF07FFF83FC0003FFC03FFE01FC+0003FF803FFC01FC0003FF003FF801FE0003FF001FF800FE0003FE001FF000FE0003FE00+1FF000FE0003FC001FE000FE0003FC001FE000FE0003FC001FE000FE0003FC001FE000FE+0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F800+1FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE+0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F800+1FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE+0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F800+1FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE0003F8001FC000FE+007FFFC0FFFE07FFF0FFFFE1FFFF0FFFF8FFFFE3FFFF1FFFF8FFFFE3FFFF1FFFF8FFFFE3+FFFF1FFFF8FFFFE1FFFF0FFFF87FFFC0FFFE07FFF03D3480B33E>I<00000007FC000000+3FFF803FFF8000007FFF80FFFFE00000FFFFC3FFFFF00000FFFFC7FFFFF80000FFFFCFFF+FFFC00007FFFDFFFFFFE00003FFFFFF80FFE0000003FFFC003FF0000003FFF0001FF0000+003FFE0000FF0000003FFC0000FF8000003FF80000FF8000003FF800007F8000003FF000+007F8000003FF000007F8000003FE000007F8000003FE000007F8000003FE000007F8000+003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000+007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000+003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000+007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000+003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000+007F8000003FC000007F8000003FC000007F8000003FC000007F80003FFFFFC07FFFFF80+7FFFFFE0FFFFFFC0FFFFFFF0FFFFFFE0FFFFFFF0FFFFFFE0FFFFFFF0FFFFFFE07FFFFFE0+FFFFFFC03FFFFFC07FFFFF803B347FB33E>I<00001FF000000000FFFE00000003FFFF80+00000FFFFFE000001FFFFFF000007FFFFFFC0000FFFFFFFE0001FFF01FFF0001FFC007FF+0003FF0001FF8007FE0000FFC00FFC00007FE00FF800003FE01FF000001FF01FE000000F+F03FE000000FF83FC0000007F83FC0000007F87F80000003FC7F80000003FC7F80000003+FC7F80000003FCFF00000001FEFF00000001FEFF00000001FEFF00000001FEFF00000001+FEFF00000001FEFF00000001FEFF00000001FEFF00000001FEFF00000001FEFF80000003+FE7F80000003FC7F80000003FC7FC0000007FC7FC0000007FC3FC0000007F83FE000000F+F81FF000001FF01FF000001FF00FF800003FE00FFC00007FE007FE0000FFC007FF0001FF+C003FFC007FF8001FFF01FFF0000FFFFFFFE00007FFFFFFC00003FFFFFF800000FFFFFE0+000003FFFF80000000FFFE000000001FF000002F3679B43E>I<00001FF800FC00000000+FFFE00FC00000003FFFF81FE0000000FFFFFE1FE0000001FFFFFF1FE0000003FFFFFF9FE+0000007FFFFFFDFE000000FFF80FFFFE000001FFC001FFFE000003FF80007FFE000007FE+00003FFE00000FFC00001FFE00000FF800001FFE00001FF000000FFE00001FF0000007FE+00003FE0000007FE00003FC0000003FE00007FC0000003FE00007F80000003FE00007F80+000001FE00007F80000001FE0000FF80000001FE0000FF00000001FE0000FF00000001FE+0000FF00000001FE0000FF00000001FE0000FF00000001FE0000FF00000001FE0000FF00+000001FE0000FF00000001FE0000FF00000001FE0000FF80000001FE00007F80000001FE+00007F80000003FE00007F80000003FE00007FC0000003FE00003FC0000007FE00003FE0+000007FE00001FE000000FFE00001FF000000FFE00000FF800001FFE00000FFC00003FFE+000007FE00007FFE000007FF0000FFFE000003FFC003FFFE000001FFF01FFFFE000000FF+FFFFFDFE0000007FFFFFF9FE0000003FFFFFE1FE0000000FFFFFC1FE00000007FFFF81FE+00000001FFFE01FE000000003FF001FE00000000000001FE00000000000001FE00000000+000001FE00000000000001FE00000000000001FE00000000000001FE00000000000001FE+00000000000001FE00000000000001FE00000000000001FE00000000000001FE00000000+000001FE00000000000001FE00000000000001FE00000000000001FE00000000000001FE+00000000000001FE00000000000001FE00000000000001FE000000000003FFFFFF000000+0003FFFFFF0000000007FFFFFF8000000007FFFFFF8000000007FFFFFF8000000003FFFF+FF0000000003FFFFFF00394F7BB33E>113 D<0000000007FE003FFFF8007FFFC07FFFF8+01FFFFE0FFFFFC07FFFFF0FFFFFC0FFFFFF0FFFFFC1FFFFFF87FFFFC3FFFFFF83FFFFC7F+FC0FF80003FCFFC00FF80003FDFF0007F00003FFFE0003E00003FFF80000000003FFF000+00000003FFE00000000003FFE00000000003FFC00000000003FF800000000003FF800000+000003FF000000000003FF000000000003FE000000000003FE000000000003FE00000000+0003FE000000000003FC000000000003FC000000000003FC000000000003FC0000000000+03FC000000000003FC000000000003FC000000000003FC000000000003FC000000000003+FC000000000003FC000000000003FC000000000003FC000000000003FC000000000003FC+000000000003FC000000000003FC000000000003FC000000000003FC000000000003FC00+0000000003FC000000003FFFFFFFFC00007FFFFFFFFE0000FFFFFFFFFE0000FFFFFFFFFE+0000FFFFFFFFFE00007FFFFFFFFE00003FFFFFFFFC000035347CB33E>I<0001FFF00F00+001FFFFE1F8000FFFFFFBF8003FFFFFFFF8007FFFFFFFF800FFFFFFFFF801FFFFFFFFF80+3FFE003FFF803FF00007FF807FC00001FF807F000000FF80FF000000FF80FE0000007F80+FE0000007F80FE0000007F80FE0000007F80FF0000007F80FF0000003F007FC000000000+7FF0000000003FFE000000001FFFF00000000FFFFFC0000007FFFFFE000003FFFFFF8000+00FFFFFFE000003FFFFFF8000007FFFFFC0000003FFFFE00000000FFFF0000000007FF80+00000000FFC03E0000003FE07F0000001FE0FF0000000FE0FF0000000FF0FF80000007F0+FF80000007F0FF80000007F0FFC0000007F0FFC0000007F0FFE000000FF0FFF000000FE0+FFF000001FE0FFFC00003FC0FFFE0000FFC0FFFFC00FFF80FFFFFFFFFF00FFFFFFFFFE00+FEFFFFFFFC00FE3FFFFFF800FE1FFFFFE000FC07FFFF800078007FF800002C3677B43E>+I<00007C000000000000FC000000000001FE000000000001FE000000000001FE00000000+0001FE000000000001FE000000000001FE000000000001FE000000000001FE0000000000+01FE000000000001FE000000000001FE000000000001FE000000000001FE000000003FFF+FFFFFFFC007FFFFFFFFFFC00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE007FFFFF+FFFFFC007FFFFFFFFFFC000001FE000000000001FE000000000001FE000000000001FE00+0000000001FE000000000001FE000000000001FE000000000001FE000000000001FE0000+00000001FE000000000001FE000000000001FE000000000001FE000000000001FE000000+000001FE000000000001FE000000000001FE000000000001FE000000000001FE00000000+0001FE000000000001FE000000000001FE000000000001FE000000000001FE0000000000+01FE00003F000001FE00003F000001FE00007F800001FE00007F800001FE00007F800001+FE00007F800001FE00007F800001FE00007F800001FE00007F800001FF0000FF800000FF+0000FF000000FF8001FF000000FFC007FE0000007FF01FFE0000007FFFFFFC0000003FFF+FFF80000001FFFFFF00000000FFFFFE000000007FFFF8000000001FFFE00000000003FF0+000031437DC13E>I<3FFF80007FFF00007FFF8000FFFF0000FFFFC001FFFF8000FFFFC0+01FFFF8000FFFFC001FFFF80007FFFC000FFFF80003FFFC0007FFF8000003FC000007F80+00003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC0+00007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F80+00003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC0+00007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F80+00003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC0+00007F8000003FC000007F8000003FC000007F8000003FC000007F8000003FC000007F80+00003FC000007F8000003FC000007F8000003FC00000FF8000003FC00000FF8000003FC0+0001FF8000003FC00003FF8000003FE00003FF8000001FE0000FFF8000001FF0001FFF80+00001FFE00FFFFFF80000FFFFFFFFFFFC00007FFFFFFFFFFE00007FFFFFF7FFFE00001FF+FFFE7FFFE00000FFFFF83FFFC000003FFFE03FFF80000007FF000000003B347FB23E>I<+7FFFF8003FFFFCFFFFFC007FFFFEFFFFFE00FFFFFEFFFFFE00FFFFFEFFFFFE00FFFFFEFF+FFFC007FFFFE7FFFF8003FFFFC00FE000000FE0000FE000000FE0000FF000001FE00007F+000001FC00007F000001FC00007F800003FC00003F800003F800003F800003F800003FC0+0007F800001FC00007F000001FC00007F000001FE0000FF000000FE0000FE000000FE000+0FE000000FF0001FE0000007F0001FC0000007F0001FC0000007F8003FC0000003F8003F+80000003F8003F80000003FC007F80000001FC007F00000001FC007F00000001FE00FF00+000000FE00FE00000000FE00FE00000000FF01FE000000007F01FC000000007F01FC0000+00007F83FC000000003F83F8000000003F83F8000000003FC7F8000000001FC7F0000000+001FC7F0000000001FEFF0000000000FEFE0000000000FEFE0000000000FFFE000000000+07FFC00000000007FFC00000000007FFC00000000003FF800000000001FF000000000000+FE00000037347DB23E>I<7FFFFC001FFFFF00FFFFFC001FFFFF80FFFFFE003FFFFF80FF+FFFE003FFFFF80FFFFFE003FFFFF80FFFFFC001FFFFF807FFFFC001FFFFF0003F8000000+0FE00003F80000000FE00003F80000000FE00003F80000000FE00003F80000000FE00001+FC0000001FC00001FC0000001FC00001FC0000001FC00001FC0000001FC00001FC000000+1FC00001FC0000001FC00000FE0000003F800000FE0000003F800000FE003E003F800000+FE007F003F800000FE00FF803F800000FE01FFC03F8000007F01FFC07F0000007F01FFC0+7F0000007F01FFC07F0000007F03FFE07F0000007F03F7E07F0000007F03F7E07F000000+3F87F7F0FE0000003F87F7F0FE0000003F87E3F0FE0000003F87E3F0FE0000003F8FE3F8+FE0000003F8FE3F8FE0000001F8FE3F8FC0000001FCFC1F9FC0000001FCFC1F9FC000000+1FDFC1FDFC0000001FDFC1FDFC0000000FDF80FDF80000000FDF80FDF80000000FFF80FF+F80000000FFF80FFF80000000FFF007FF80000000FFF007FF800000007FF007FF0000000+07FE003FF000000007FE003FF000000003FC001FE000000001F8000FC0000039347EB23E+>I E /Fi 5 55 df<7FFFFFFFFFFF80FFFFFFFFFFFFC0FFFFFFFFFFFFC07FFFFFFFFFFF+803204799641>0 D<000FE000007FFC0000FFFE0003FFFF8007F83FC00FC007E01F8003+F03F0001F83E0000F87C00007C7C00007C7800003CF800003EF800003EF000001EF00000+1EF000001EF000001EF800003EF800003E7800003C7C00007C7C00007C3E0000F83F0001+F81F8003F00FC007E007F83FC003FFFF8000FFFE00007FFC00000FE0001F207BA42A>14+D<000FE000007FFC0000FFFE0003FFFF8007FFFFC00FFFFFE01FFFFFF03FFFFFF83FFFFF+F87FFFFFFC7FFFFFFC7FFFFFFCFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFF+FEFFFFFFFEFFFFFFFE7FFFFFFC7FFFFFFC7FFFFFFC3FFFFFF83FFFFFF81FFFFFF00FFFFF+E007FFFFC003FFFF8000FFFE00007FFC00000FE0001F207BA42A>I<00000000003C0000+0000000000003C00000000000000003E00000000000000001E00000000000000001F0000+0000000000000F00000000000000000F800000000000000007C00000000000000003C000+00000000000003E00000000000000001F00000000000000000F800000000000000007C00+007FFFFFFFFFFFFE0000FFFFFFFFFFFFFF0000FFFFFFFFFFFFFF80007FFFFFFFFFFFFFC0+0000000000000003F00000000000000001F80000000000000000FE00000000000000003F+80000000000000001FE00000000000000007F80000000000000001FF0000000000000001+FF0000000000000007F8000000000000001FE0000000000000003F8000000000000000FE+0000000000000001F80000000000000003F0007FFFFFFFFFFFFFC000FFFFFFFFFFFFFF80+00FFFFFFFFFFFFFF00007FFFFFFFFFFFFE00000000000000007C0000000000000000F800+00000000000001F00000000000000003E00000000000000003C00000000000000007C000+0000000000000F80000000000000000F00000000000000001F00000000000000001E0000+0000000000003E00000000000000003C00000000000000003C00000048307BAC53>41+D<0000000001800000000003C00000000007C00000000007C0000000000F80000000000F+80000000001F00000000001F00000000003E00000000003E00000000007C00000000007C+0000000000F80000000000F80000000001F00000000001F00000000003E00000000003E0+0000000007C0000000000FC0000000000F80000000001F00000000001F00000000003E00+000000003E00000000007C00000000007C0000000000F80000000000F80000000001F000+00000001F00000000003E00000000003E00000000007C00000000007C0000000000F8000+0000000F80000000001F00000000001F00000000003E00000000003E00000000007C0000+0000007C0000000000F80000000000F80000000001F00000000001F00000000003E00000+000003E00000000007C00000000007C0000000000F80000000000F80000000001F000000+00001F00000000003E00000000003E00000000007C0000000000FC0000000000F8000000+0001F00000000001F00000000003E00000000003E00000000007C00000000007C0000000+000F80000000000F80000000001F00000000001F00000000003E00000000003E00000000+007C00000000007C0000000000F80000000000F80000000000F000000000006000000000+002A4E75BB00>54 D E /Fj 17 123 df<0003800000000007E0000700000FE0000F8000+0FE0001F80000FC0001F80000FC0001F80001FC0003F80001FC0003F80001F80003F0000+1F80003F00003F80007F00003F80007F00003F00007E00003F00007E00007F0000FE0000+7F0000FE00007E0000FC00007E0000FC0000FE0001FC0000FE0001FC0000FC0001F80000+FC0001F80001FC0003F80001FC0003F80001F80003F01801F80003F01803F80007F01803+F80007F03803F80007E03003F8000FE03007F8000FE07007F8001FE06007F8003FE06007+FC0077E0E00FFE00E3E1C00FFF03C1F3800FCFFF00FF000FC3FC003E001FC0000000001F+C0000000001F80000000001F80000000003F80000000003F80000000003F00000000003F+00000000007F00000000007F00000000007E00000000007E0000000000FE0000000000FE+0000000000FC0000000000FC00000000007000000000002D377EA432>22+D<1C007F00FF80FF80FF80FF80FF807F001C000909798817>58 D<1C007F00FF80FF80FF+C0FFC0FFC07FC01CC000C000C000C000C001C00180018003800300070006000E001C0038+00700060000A19798817>I<00000000006000000000000070000000000000F000000000+0001F0000000000001F0000000000003F0000000000003F0000000000007F00000000000+0FF000000000000FF000000000001FF800000000001FF8000000000033F8000000000073+F8000000000063F80000000000C3F80000000000C3F8000000000183F8000000000183F8+000000000303F8000000000603F8000000000603FC000000000C03FC000000000C01FC00+0000001801FC000000003001FC000000003001FC000000006001FC000000006001FC0000+0000C001FC00000001C001FC000000018001FC000000030001FE000000030001FE000000+060000FE0000000E0000FE0000000C0000FE000000180000FE0000001FFFFFFE0000003F+FFFFFE0000003FFFFFFE000000600000FE000000C00000FE000000C00000FF0000018000+00FF0000018000007F0000030000007F0000060000007F0000060000007F00000C000000+7F00000C0000007F0000180000007F0000380000007F0000700000007F0000F00000007F+8001F80000007F8007F8000000FF80FFFF80003FFFFFFFFF80007FFFFFFFFF80007FFFFF+383C7DBB3E>65 D<0003FFFFFFFF80000007FFFFFFFFF0000007FFFFFFFFFC00000007F8+0003FE00000007F00000FF00000007F000007F8000000FF000003FC000000FF000001FC0+00000FE000001FE000000FE000001FE000001FE000001FE000001FE000001FE000001FC0+00001FE000001FC000001FE000003FC000001FE000003FC000001FC000003F8000003FC0+00003F8000003F8000007F8000007F8000007F8000007F0000007F000000FE0000007F00+0001FC000000FF000003F8000000FF00000FF0000000FE00001FC0000000FE0000FF0000+0001FFFFFFFC00000001FFFFFFF800000001FC0000FF00000001FC00003FC0000003FC00+000FE0000003FC000007F0000003F8000007F0000003F8000003F8000007F8000003F800+0007F8000003FC000007F0000001FC000007F0000001FC00000FF0000001FC00000FF000+0003FC00000FE0000003FC00000FE0000003FC00001FE0000003FC00001FE0000007F800+001FC0000007F800001FC000000FF000003FC000000FF000003FC000001FE000003F8000+003FC000003F8000007F8000007F800000FF0000007F800001FE0000007F000007FC0000+00FF00003FF00000FFFFFFFFFFC00000FFFFFFFFFF000000FFFFFFFFF80000003B397DB8+3F>I<0003FFFFFFFFFFE00007FFFFFFFFFFE00007FFFFFFFFFFE0000007F800003FE000+0007F000000FE0000007F0000003C000000FF0000003C000000FF0000001C000000FE000+0001C000000FE0000001C000001FE0000001C000001FE0000001C000001FC0000001C000+001FC00000018000003FC00000018000003FC00000018000003F800000018000003F8000+60018000007F8000E0018000007F8000E0000000007F0000C0000000007F0000C0000000+00FF0001C000000000FF0001C000000000FE00038000000000FE00078000000001FE001F+8000000001FFFFFF8000000001FFFFFF0000000001FFFFFF0000000003FC001F00000000+03FC000F0000000003F8000E0000000003F8000E0000000007F8000E0000000007F8000E+0000000007F0000C0000000007F0000C000000000FF0001C000000000FF0001C00000000+0FE00000000000000FE00000000000001FE00000000000001FE00000000000001FC00000+000000001FC00000000000003FC00000000000003FC00000000000003F80000000000000+3F800000000000007F800000000000007F800000000000007F00000000000000FF800000+000000FFFFFFC000000000FFFFFFC000000000FFFFFFC0000000003B397DB835>70+D<03FFFFFFFFFFFE03FFFFFFFFFFFE07FFFFFFFFFFFE07F8003FC001FE07C0003F80007E+0F80003F80003C0F00007F80001C1E00007F80001C1C00007F00001C1C00007F00001C38+0000FF00001C380000FF00001C300000FE00001C700000FE000018600001FE000018E000+01FE000018C00001FC000018C00001FC000018C00003FC000018000003FC000000000003+F8000000000003F8000000000007F8000000000007F8000000000007F0000000000007F0+00000000000FF000000000000FF000000000000FE000000000000FE000000000001FE000+000000001FE000000000001FC000000000001FC000000000003FC000000000003FC00000+0000003F8000000000003F8000000000007F8000000000007F8000000000007F00000000+00007F000000000000FF000000000000FF000000000000FE000000000000FE0000000000+01FE000000000001FE000000000001FC000000000001FC000000000003FC000000000003+FC000000000003F800000000000FFC000000003FFFFFFF0000007FFFFFFF0000007FFFFF+FF00000037397EB831>84 D<00003FC00001FFF00007E03C000F800E003F0007007E001F+00FC007F01F800FF03F000FF07E000FF0FE000FF0FC000FE1FC000383F8000003F800000+7F8000007F0000007F0000007F000000FF000000FE000000FE000000FE000000FE000000+FC000000FC000000FC000000FC000003FC0000077E0000067E00000E3E00003C3F000070+1F0000E00F8007C007C03F0001FFF800003FC00020267DA424>99+D<00000000F80000000003FE000000000F87000000001F0F800000003E3F800000003E7F+800000007C7F800000007C7F80000000FC7F80000000FC7F00000000FC1C00000001F800+00000001F80000000001F80000000001F80000000003F80000000003F00000000003F000+00000003F00000000003F00000000007F00000000007E00000000007E000000007FFFFF0+000007FFFFF0000007FFFFF00000000FE0000000000FC0000000000FC0000000000FC000+0000000FC0000000001FC0000000001F80000000001F80000000001F80000000001F8000+0000003F80000000003F00000000003F00000000003F00000000003F00000000007F0000+0000007E00000000007E00000000007E00000000007E00000000007E0000000000FE0000+000000FC0000000000FC0000000000FC0000000000FC0000000001FC0000000001F80000+000001F80000000001F80000000001F80000000003F00000000003F00000000003F00000+000003F00000000003E00000000007E00000000007E00000000007C00000001E07C00000+003F07C00000007F8F800000007F8F80000000FF8F00000000FF1E00000000FE1E000000+007C3C000000007878000000001FF00000000007C000000000294C7CBA29>102+D<000007E00000001FF80000007C1C380001F80EFC0003F007FC0007E003FC000FC003FC+001F8001FC003F0001F8007F0001F8007E0003F800FE0003F800FE0003F001FC0003F001+FC0007F003FC0007F003F80007E003F80007E003F8000FE007F8000FE007F0000FC007F0+000FC007F0001FC007F0001FC007E0001F8007E0001F8007E0003F8007E0003F8007E000+3F0003E0007F0003F000FF0001F001FF0001F003FE0000F8077E00007C1EFE00001FF8FE+000007E0FC00000000FC00000001FC00000001FC00000001F800000001F800000003F800+1E0003F0003F0003F0007F8007F0007F8007E000FF800FC000FF001F8000FE003F00007C+007E00003C01F800001FFFE0000003FF00000026367FA428>I<0003F0000001FFF00000+01FFF0000001FFF000000007F000000007E000000007E000000007E00000000FE0000000+0FC00000000FC00000000FC00000001FC00000001F800000001F800000001F800000003F+800000003F000000003F000000003F000000007F000000007E0007C0007E001FF0007E00+783800FE00E0F800FC01C1FC00FC0383FC00FC0707FC01FC0E07FC01F81C07F801F83803+F001F87001E003F8E0000003F1C0000003F380000003F700000007FE00000007FE000000+07FFE0000007E7F800000FE0FE00000FC07F00000FC03F80000FC01F80001FC01FC0001F+800FC0301F800FC0301F800FC0703F801FC0603F001F80603F001F80603F001F80E07F00+1F80C07E001F81C07E000F81807E000F8380FE00078700FC0003FE00380000F800263B7C+B92B>107 D<03E0007F0000FE000007F801FFE003FFC0000E3C0781F00F03E0001C3E1E+00F83C01F000383F3800FC7001F800303F7000FCE001F800303FE0007DC000F800703FC0+007F8000F800603F80007F0000F800603F80007F0000F800E03F0000FE0001F800C07F00+00FE0001F800C07E0000FC0001F800C07E0000FC0001F800007E0001FC0003F80000FE00+01FC0003F00000FC0001F80003F00000FC0001F80003F00000FC0003F80007F00001FC00+03F80007E00001F80003F00007E00001F80003F0000FE00001F80007F0000FC00003F800+07F0000FC00003F00007E0001FC06003F00007E0001F806003F0000FE0003F80E007F000+0FE0003F00C007E0000FC0003F00C007E0000FC0003F01C007E0001FC0003E01800FE000+1FC0003E03800FC0001F80003E03000FC0001F80003E07000FC0003F80003E0E001FC000+3F80001E1C001F80003F00000FF8000700000E000003E00043267EA449>109+D<03E0007F000007F801FFE0000E3C0781F0001C3E1E00F800383F3800FC00303F7000FC+00303FE0007C00703FC0007C00603F80007C00603F80007C00E03F0000FC00C07F0000FC+00C07E0000FC00C07E0000FC00007E0001FC0000FE0001F80000FC0001F80000FC0001F8+0000FC0003F80001FC0003F00001F80003F00001F80007F00001F80007E00003F80007E0+0003F0000FE03003F0000FC03003F0001FC07007F0001F806007E0001F806007E0001F80+E007E0001F00C00FE0001F01C00FC0001F01800FC0001F03800FC0001F07001FC0000F0E+001F800007FC0007000001F0002C267EA432>I<0001C0000003E0000007E0000007E000+0007E0000007E000000FE000000FC000000FC000000FC000001FC000001F8000001F8000+001F8000003F8000003F00007FFFFF807FFFFF80FFFFFF80007E0000007E0000007E0000+00FE000000FC000000FC000000FC000001FC000001F8000001F8000001F8000003F80000+03F0000003F0000003F0000007F0000007E0000007E0000007E000000FE000000FC00600+0FC006000FC00E001FC00C001F801C001F8018001F8038001F8070001F8060001F80E000+0F81C0000787800003FE000000F8000019357EB31E>116 D<0007E001F000001FF807FC+0000783E0E0F0000E01F1C1F0001C01F383F8003800FF07F8003000FE0FF8007000FE0FF+800E000FC0FF000C000FC07E000C001FC03C001C001F80000018001F80000018001F8000+0000003F80000000003F80000000003F00000000003F00000000007F00000000007F0000+0000007E00000000007E0000000000FE0000000000FE0000000000FC000C000000FC000C+000001FC001C001E01FC0018003F01F80018007F81F80038007F83F8007000FF83F80060+00FF07F800E000FE0E7C01C0007C1C7C03800078383E0F00001FF00FFC000007C003F000+0029267EA42F>120 D<00F800000003FE000070070F0000F80E0F8001F81C0F8001F818+0F8001F8380F8003F8300F8003F0701F8003F0601F8003F0603F8007F0E03F0007E0C03F+0007E0C07F0007E0007E000FE0007E000FC000FE000FC000FC000FC000FC001FC001FC00+1F8001F8001F8001F8001F8001F8003F8003F8003F0003F0003F0003F0003F0003F0007F+0003F0007E0003F0007E0003F0007E0003F000FE0003F000FC0003F001FC0001F003FC00+00F807FC00007C1FF800003FF9F800000FE1F800000003F800000003F000000003F0000E+0007F0003F8007E0007F800FC0007F800FC0007F801F80007F801F00007F003E00007C00+7C00007000F800003801F000001E07C000000FFF00000001FC00000025367EA429>I<00+01E00060000FF800E0001FFC00C0003FFE01C0007FFF038000FFFF070000F81FFF0001E0+03FE0001C0001C0001800038000180007000000000E000000001C0000000038000000007+000000000E000000001C000000003800000000F000000001E00000000380000000070000+00000E000000001C0000000038000300007000030000E000070001C00006000380000E00+0700001C000FFC007C001FFF81F8001E0FFFF8003807FFF0007003FFE0006003FFC000E0+01FF0000C0007C000023267DA427>I E /Fk 36 122 df<000380000FC0001FC0003F80+00FF0000FE0001F80003F80007F0000FE0000FC0001F80001F80003F00003F00003E0000+7E00007E00007C00007C0000FC0000FC0000F80000F80000F80000F80000F80000F80000+F80000F80000FC0000FC00007C00007C00007E00007E00003E00003F00003F00001F8000+1F80000FC0000FE00007F00003F80001F80000FE0000FF00003F80001FC0000FC0000380+123476AD23>40 D<700000FC0000FE00007F00003FC0001FC00007E00007F00003F80001+FC0000FC00007E00007E00003F00003F00001F00001F80001F80000F80000F80000FC000+0FC00007C00007C00007C00007C00007C00007C00007C00007C0000FC0000FC0000F8000+0F80001F80001F80001F00003F00003F00007E00007E0000FC0001FC0003F80007F00007+E0001FC0003FC0007F0000FE0000FC000070000012347AAD23>I<1F003F807FC07FE07F+E07FE07FE03FE01FE007E007E00FC01FC07F80FF00FE00FC0070000B12748823>44+D<7FFFFF80FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC07FFFFF801A067C9623>I<3E007F00+FF80FF80FF80FF80FF807F003E000909738823>I<001800003C00007C00007C0000FC00+01FC0003FC0007FC007FFC00FFFC00FFFC00FF7C007C7C00007C00007C00007C00007C00+007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00+007C00007C00007C00007C00007C00007C00007C00007C007FFFFC7FFFFE7FFFFE7FFFFE+7FFFFC172A7AA923>49 D<007FC00003FFF00007FFFC001FFFFE003FFFFF807F80FF807E+003FC0FE000FE0FC0007E0FE0003F0FE0003F0FE0003F0FE0001F07C0001F0380001F000+0001F0000003F0000003F0000007E0000007E000000FC000001FC000003F8000003F0000+00FE000001FE000003F8000007F000000FE000003FC000007F800000FE000001FC000003+F800000FF000E01FE001F03F8001F07FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF07FFFFFE01C+2A7DA923>I<007FC00001FFF00007FFFC000FFFFE001FFFFF003FE07F803F801FC03F80+0FC03F8007C03F8007C03F8007C00E0007C000000FC000000FC000001F8000003F800001+FF00007FFE0000FFFC0000FFF80000FFFC00007FFF0000007F8000001FC000000FE00000+07E0000003F0000003F0000001F0000001F07C0001F0FE0001F0FE0003F0FE0003F0FE00+07E0FC000FE0FE001FC07FC07FC03FFFFF801FFFFF000FFFFC0003FFF800007FC0001C2B+7DA923>I<3E007F00FF80FF80FF80FF80FF807F003E0000000000000000000000000000+0000000000000000003E007F00FF80FF80FF80FF80FF807F003E00091D739C23>58+D<1F003F807FC07FC07FC07FC07FC03F801F000000000000000000000000000000000000+00000000001E003F807F807FC07FC07FC07FC03FC01FC00FC00FC01F803F807F00FF00FE+00F80070000A26749C23>I<000FC000000FC000001FE000001FE000001FE000001FE000+003CF000003CF000003CF000003CF000003CF000007CF800007CF800007CF80000787800+00F87C0000F87C0000F87C0000F87C0000F87C0001F03E0001F03E0001F03E0001F03E00+03F03F0003E01F0003E01F0003FFFF0003FFFF0007FFFF8007FFFF8007FFFF8007C00F80+0FC00FC00F8007C00F8007C00F8007C07FF03FF8FFF03FFCFFF03FFCFFF03FFC7FF03FF8+1E2A7EA923>65 D<FFFFFEFFFFFEFFFFFEFFFFFEFFFFFE007C00007C00007C00007C0000+7C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000+7C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0000+7C00007C00007C00FFFFFEFFFFFEFFFFFEFFFFFEFFFFFE17297AA823>73+D<03FFF0000FFFFC001FFFFE003FFFFF003FFFFF007F807F807E001F807C000F807C000F+80FC000FC0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007+C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007C0F80007+C0F80007C0F80007C0F80007C0F80007C0F80007C0FC000FC0FC000FC07C000F807C000F+807E001F807F807F803FFFFF003FFFFF001FFFFE000FFFFC0003FFF0001A2B7CA923>79+D<7FFFFF80FFFFFFC0FFFFFFC0FFFFFFC0FFFFFFC07FFFFF801A067C7E23>95+D<03FF80000FFFE0001FFFF8003FFFFC003FFFFE003F80FF003F803F801F001F8000001F+8000000F800000FF80007FFF8003FFFF800FFFFF801FFFFF807FF00F807F000F80FC000F+80FC000F80F8000F80F8001F80FC001F80FE003F807F81FF807FFFFFFC3FFFFFFE1FFFFF+FE07FFC7FE01FE01FC1F1D7D9C23>97 D<FF800000FFC00000FFC00000FFC00000FFC000+0007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C1FC0007C7FF+0007DFFFC007FFFFE007FFFFF007FE0FF807F803F807F001FC07E000FC07E000FC07C000+7E07C0007E07C0003E07C0003E07C0003E07C0003E07C0003E07C0007E07E0007E07E000+FC07F000FC07F001FC07F803F807FE0FF007FFFFF007FFFFE007DFFF8007CFFF000383F8+001F297FA823>I<003FF00000FFFC0003FFFF0007FFFF000FFFFF001FE07F003F807F00+7F003E007E0000007E000000FC000000FC000000F8000000F8000000F8000000F8000000+F8000000FC000000FC0000007E0007007F000F807F001F803FC01F801FF07F000FFFFF00+07FFFE0003FFFC0000FFF000003FC000191D7B9C23>I<0000FF800000FFC00000FFC000+00FFC00000FFC0000007C0000007C0000007C0000007C0000007C0000007C0000007C000+7F87C001FFE7C003FFF7C00FFFFFC01FFFFFC01FE0FFC03F803FC07F001FC07E000FC07E+000FC0FC0007C0FC0007C0F80007C0F80007C0F80007C0F80007C0F80007C0FC000FC0FC+000FC07E000FC07E001FC07F003FC03F807FC03FE0FFC01FFFFFFE0FFFFFFE03FFF7FE01+FFC7FE007F03FE1F297EA823>I<003FC00000FFF80003FFFC0007FFFF000FFFFF801FF0+7F803F801FC03F000FC07E0007C07E0007E0FC0007E0FFFFFFE0FFFFFFE0FFFFFFE0FFFF+FFE0FFFFFFC0F8000000FC000000FC0000007E0001C07F0003E03F8007E03FE007E01FF8+1FC00FFFFFC007FFFF8001FFFE00007FFC00001FE0001B1D7D9C23>I<00007F000001FF+C00007FFE0000FFFE0001FFFE0003FCFE0003F0FE0003E07C0003E0000003E0000003E00+00003E00007FFFFF80FFFFFFC0FFFFFFC0FFFFFFC07FFFFF80003E0000003E0000003E00+00003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E00+00003E0000003E0000003E0000003E0000003E0000003E0000003E00003FFFFE007FFFFF+007FFFFF007FFFFF003FFFFE001B297EA823>I<000001F0003F07FC00FFDFFE03FFFFFE+07FFFFFE0FFFFF7E1FE1FE7E1F807E183F003F003F003F003E001F003E001F003E001F00+3E001F003F003F003F003F001F807E001FE1FE000FFFFC001FFFF8001FFFF0001EFFC000+1E3F00001E0000001F0000001F4000000FFFFC000FFFFF801FFFFFC03FFFFFF07E0007F8+7C0000F8F800007CF800007CF000003CF000003CF000003CF800007CFC0000FC7F0003F8+7FE01FF83FFFFFF00FFFFFC007FFFF8001FFFE00003FF0001F2E7E9D23>I<FF800000FF+C00000FFC00000FFC00000FFC0000007C0000007C0000007C0000007C0000007C0000007+C0000007C0000007C1FC0007C7FF0007DFFF8007FFFFC007FFFFC007FE0FE007F807E007+F003E007E003E007E003E007E003E007C003E007C003E007C003E007C003E007C003E007+C003E007C003E007C003E007C003E007C003E007C003E007C003E007C003E0FFFE1FFFFF+FE3FFFFFFE3FFFFFFE3FFFFFFE1FFF20297FA823>I<00380000FE0000FE0000FE0000FE+0000FE000038000000000000000000000000000000000000007FFC00FFFE00FFFE00FFFE+007FFE00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E+00003E00003E00003E00003E00003E00003E00003E00003E007FFFFEFFFFFFFFFFFFFFFF+FF7FFFFE182A7AA923>I<7F800000FFC00000FFC00000FFC000007FC0000003C0000003+C0000003C0000003C0000003C0000003C0000003C0000003C0FFFC03C1FFFC03C1FFFC03+C1FFFC03C0FFFC03C03F0003C07E0003C0FC0003C1F80003C3F00003C7E00003CFC00003+DFE00003FFF00003FFF00003FCF80003F8FC0003F07E0003E03E0003C01F0003C01F8003+C00FC003C007C003C003E07FFE0FFFFFFF1FFFFFFF1FFFFFFF1FFF7FFE0FFF20297FA823+>107 D<7FFE0000FFFF0000FFFF0000FFFF00007FFF0000001F0000001F0000001F0000+001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000+001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000+001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000+001F00007FFFFFC0FFFFFFE0FFFFFFE0FFFFFFE07FFFFFC01B297CA823>I<7E1F01F000+FF7FC7FC00FFFFEFFE00FFFFFFFE007FFFFFFF000FE1FE1F000FC1FC1F000FC0FC0F000F+80F80F000F80F80F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00+F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F00F000F00F0+0F000F00F00F007FE3FE3FE0FFF3FF3FF0FFF3FF3FF0FFF3FF3FF07FE3FE3FE0241D819C+23>I<FF81FC00FFC7FF00FFDFFF80FFFFFFC0FFFFFFC007FE0FE007F807E007F003E007+E003E007E003E007E003E007C003E007C003E007C003E007C003E007C003E007C003E007+C003E007C003E007C003E007C003E007C003E007C003E007C003E0FFFE1FFFFFFE3FFFFF+FE3FFFFFFE3FFFFFFE1FFF201D7F9C23>I<003F000001FFE00003FFF00007FFF8000FFF+FC001FC0FE003F807F003E001F007E001F807C000F80FC000FC0F80007C0F80007C0F800+07C0F80007C0F80007C0F80007C0FC000FC0FC000FC07C000F807E001F803F003F003F80+7F001FE1FE000FFFFC0007FFF80003FFF00001FFE000003F00001A1D7C9C23>I<FF81FC+00FFC7FF00FFDFFFC0FFFFFFE0FFFFFFF007FE0FF807F803F807F001FC07E000FC07E000+FC07C0007E07C0007E07C0003E07C0003E07C0003E07C0003E07C0003E07C0007E07E000+7E07E000FC07F000FC07F001FC07F803F807FE0FF007FFFFF007FFFFE007DFFF8007CFFF+0007C3F80007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C000+0007C0000007C00000FFFE0000FFFE0000FFFE0000FFFE0000FFFE00001F2C7F9C23>I<+7FF00FE0FFF87FF8FFF8FFFCFFFBFFFC7FFFFFFC00FFF8FC00FFC07800FF800000FF0000+00FE000000FE000000FC000000FC000000FC000000F8000000F8000000F8000000F80000+00F8000000F8000000F8000000F8000000F8000000F800007FFFFC00FFFFFE00FFFFFE00+FFFFFE007FFFFC001E1D7E9C23>114 D<01FF9C0FFFFE1FFFFE7FFFFE7FFFFEFF00FEFC+007EF8003EF8003EFC001CFE00007FF0003FFF800FFFE007FFF8007FFC0001FE00007F70+003FF8001FFC001FFC003FFE003FFF80FFFFFFFEFFFFFCFFFFF8FFFFF070FF80181D7B9C+23>I<0070000000F8000000F8000000F8000000F8000000F8000000F8000000F800007F+FFFF80FFFFFFC0FFFFFFC0FFFFFFC07FFFFF8000F8000000F8000000F8000000F8000000+F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F801C000+F803E000F803E000F803E000FC07E000FC0FE000FE1FC0007FFFC0007FFF80003FFE0000+0FFC000007F0001B257EA423>I<FF807FC0FFC07FE0FFC07FE0FFC07FE0FFC07FE007C0+03E007C003E007C003E007C003E007C003E007C003E007C003E007C003E007C003E007C0+03E007C003E007C003E007C003E007C003E007C003E007C003E007C007E007C00FE007E0+3FE007FFFFFF03FFFFFF03FFFFFF00FFF3FF003FC1FF201D7F9C23>I<7FF00FFEFFF81F+FFFFF81FFFFFF81FFF7FF00FFE1F0000F80F0000F00F0000F00F0000F00F0000F00F0000+F00F8000F00783E1E00787F1E00787F1E00787F1E0078FF9E0038F79C003CF79C003CF79+C003DF7BC003DF7BC003DE3BC001DE3B8001FE3F8001FE3F8001FC1F8001FC1F8000F80F+00201D7F9C23>119 D<7FF07FF0FFF8FFF8FFF8FFF8FFF8FFF87FF07FF003E03E0001F0+3C0000F87C000078F800007CF000003FE000001FE000000FC000000F800000078000000F+C000001FE000003DE000003CF0000078780000F07C0001F03C0001E01E0003C01F007FF0+3FF8FFF87FFCFFF87FFCFFF87FFC7FF03FF81E1D7E9C23>I<FFF03FFCFFF03FFCFFF03F+FCFFF03FFCFFF03FFC078007C00780078007C0078003C00F8003C00F0001E00F0001E01F+0001F01E0000F01E0000F01E0000F83C0000783C0000783C00003C7800003C7800003C78+00001E7000001EF000000EF000000FE000000FE0000007E0000007C0000007C0000007C0+000007800000078000000F8000000F0000000F00003E1F00007F1E00007F3E00007CFC00+007FFC00007FF800003FF000001FE000000F8000001E2C7E9C23>I+E /Fl 70 123 df<078007C00FC00FE01FE00FE01FE01FE01FE01FE03FC01FE03FC01FE0+3FC01FC03F803FC03F803FC03F803F807F003F807F003F807F003F007E007F007E007F00+7E007E00FC007E00FC007E00FC007C00F800FC00F800FC00F800F800F000F80060007000+1B196EB32C>34 D<001E00007F0000FF8000FF8000FFC000FFC000FFC000FFC0003FC000+0F80000F80000F80001F80001F00003F00007E00007E0000FC0001F80003F80007F0001F+E0007FC0007F8000FF00007C0000700000121B6BB22C>39 D<00000038000000FC000001+FC000007FC00000FF800001FE000007FC00000FF000001FE000003FC000007F800000FF0+00000FE000001FC000003F8000007F0000007E000000FE000001FC000001F8000003F800+0003F0000007E0000007E000000FC000000FC000001FC000001F8000003F8000003F0000+003F0000003F0000007F0000007E0000007E0000007E000000FE000000FC000000FC0000+00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000+007C0000007E0000007E0000007E0000003E0000003F0000003F0000001F8000001F8000+000FC000000FE0000007F0000003F0000003FC000001FC000000FE0000007C0000001C00+001E426DB92C>I<0000E0000001F0000001F8000001FC000000FE0000007F0000003F80+00001F8000000FC000000FC0000007E0000007E0000003F0000003F0000003F0000001F8+000001F8000001F8000001F8000001F8000001F8000000F8000000F8000000F8000001F8+000001F8000001F8000001F8000001F8000001F8000001F8000003F8000003F0000003F0+000003F0000007F0000007E0000007E000000FE000000FC000001FC000001F8000001F80+00003F0000007F0000007E000000FE000000FC000001FC000003F8000007F0000007F000+000FE000001FC000003F8000007F000000FE000003FC000007F800000FF000003FE00000+7FC00000FF000000FE000000F8000000700000001D427AB92C>I<000007000000000F80+0000001F800000001F800000001F800000001F800000003F800000003F000000003F0000+00003F000000007F000000007E000000007E000000007E00000000FE00000000FC00003F+FFFFFFE07FFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFF03FFFFFFFE00003F800000003+F000000003F000000003F000000007F000000007E000000007E000000007E00000000FE0+0000000FC00000000FC00000000FC00000001FC00000001F800000000F80000000070000+00242677AB2C>43 D<007C0000FF0001FF8003FF8003FFC007FFC007FFC007FFC003FFC0+03FF8000FF80001F80003F00003F00007E0000FC0003FC000FF8007FF0007FE000FF8000+7E00007800001217748A2C>I<3FFFFFFF807FFFFFFFC0FFFFFFFFC0FFFFFFFFC07FFFFF+FFC03FFFFFFF802206769B2C>I<0F801FC03FE07FE07FE0FFE0FFE0FFE07FC03F801E00+0B0B6F8A2C>I<000003F00000001FFC0000007FFF000000FFFF800003FFFF800007F83F+C0000FE00FE0001FC00FE0003F8007E0003F0003F0007E0003F000FC0003F001F80003F0+01F80001F003F00001F803E00001F807E00001F807C00001F80FC00001F80FC00001F81F+800001F01F800003F01F000003F03F000003F03F000003F03F000003F07E000007E07E00+0007E07E000007E07E00000FE07E00000FC0FC00000FC0FC00001F80FC00001F80FC0000+3F80FC00003F00FC00003F00FC00007E00FC0000FE00FE0000FC00FE0001F8007E0003F8+007E0003F0007F0007E0007F000FC0003F801F80003F807F80001FE0FE00001FFFFC0000+0FFFF8000007FFF0000003FFC00000007E000000253577B32C>48+D<000000E0000001F0000001F0000003F0000007F000000FF000001FF000003FE000007F+E00001FFE0003FFFE0007FFFC0007FFFC0007FDFC0003F1FC000001F8000001F8000003F+8000003F8000003F0000003F0000007F0000007F0000007E0000007E000000FE000000FE+000000FC000000FC000001FC000001FC000001F8000001F8000003F8000003F8000003F0+000003F0000007F0000007F0000007E0000007E000000FE000000FE000000FC000000FC0+00001FC000001FC0007FFFFFC0FFFFFFE0FFFFFFE0FFFFFFE07FFFFFC01C3477B32C>I<+000001FE000000000FFFC00000003FFFF0000000FFFFF8000003FFFFFC000007FF03FE00+000FF800FF00001FF0003F00003FC0003F80003F80001F80007F00001FC0007E00000FC0+00FE00000FC000FC00000FC001FC00000FC001F800000FC001F800000FC000F800001FC0+000000001F80000000001F80000000003F80000000007F0000000000FF0000000001FE00+00000003FC000000000FFC000000001FF8000000007FF000000001FFC000000007FF8000+00003FFE00000000FFFC00000003FFF000000007FFC00000001FFF000000003FFC000000+007FE00007C000FFC00007C001FF00000FC003FE00000FC007F800001FC00FF000001FC0+0FE000003F801FF000007F801FFF80007F003FFFF001FE003FFFFE07FE007FFFFFFFFC00+7F9FFFFFF8007E01FFFFF000FE007FFFC0007C001FFF8000780003FC00002A357CB32C>+I<000007FE0000003FFF800000FFFFE00003FFFFF00007FFFFF8001FFE07FC001FF001FE+003FC000FE007F00007E007F00003F00FE00003F00FC00003F00FC00003F007800007F00+0000007E000000007E00000000FE00000001FC00000001FC00000003F80000000FF00000+001FE0000000FFC00003FFFF800003FFFF000007FFFC000003FFFC000001FFFE00000001+FF000000007F000000003F800000001F800000001F800000001F800000000FC00000000F+C03C00000FC07E00001FC0FF00001F80FF00001F80FF00001F80FF00003F80FE00007F00+FC0000FF00FC0001FE00FE0007FC007E001FF8007F80FFF0003FFFFFE0001FFFFF80000F+FFFE000003FFF8000000FF800000283579B32C>I<00000000E000000001F000000003F0+00000003F000000003F000000007F000000007E000000007E000000007E00000000FE000+00000FC00000000FC00000001F800000001F800000003F800000003F000000003F000000+007E000000007E00000000FE00000000FC00000001FC00000001F800000003F800000003+F000000007E00000000FE00000000FC00000001FC00000001F800000003F000000007F00+000000FE00000000FC00000001FC0F000003F81F800007F01F80000FE03F80001FC03F00+003F803F00007F003F0000FF007F0001FE007E0003FC007E0007F0007E001FFF80FE003F+FFF0FC007FFFFEFC00FFFFFFFC1CFFFFFFFFFEF800FFFFFE70001FFFFE000003FFFC0000+03FFF0000003F000000003F000000003F000000007F000000007E000000007E000000007+E00000000FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F80+0000000F8000000007000027467EB32C>I<0007FFFFFE000FFFFFFF000FFFFFFF000FFF+FFFF001FFFFFFE001F800000001F800000001F800000003F800000003F000000003F0000+00003F000000007F000000007E000000007E000000007E00000000FE00000000FC000000+00FC3FE00000FDFFF80001FFFFFE0001FFFFFF0001FFFFFF8001FFE03F8003FF001FC003+FC000FC003F80007E003E00007E001C00007E000000007E000000003E000000007E00000+0007E000000007E000000007E03E000007E07F00000FE0FF00000FC0FF00001FC0FF0000+1F80FE00003F80FE00007F00FC0000FF00FC0001FE00FE0007FC007F000FF8007FC07FF0+003FFFFFE0001FFFFF80000FFFFE000003FFF80000007FC00000283479B22C>I<000000+7F80000003FFE000001FFFF000003FFFF80000FFFFF80001FFC1FC0007FE01FC000FF803+FC001FF003FC003FC003FC007F8003F8007F0003F800FE0000E001FC00000003F8000000+03F800000007F000000007E00000000FE00000000FC0FF00001FC7FFE0001F9FFFF0003F+FFFFF8003FFFFFFC003FFF81FE003FFC007F007FF0003F007FE0003F807FC0001F807F80+001F80FF00001FC0FE00000FC0FE00000FC0FE00001FC0FC00001F80FC00001F80FC0000+1F80FC00003F80FC00003F00FC00003F00FC00007F00FC0000FE00FC0001FC00FC0003FC+007E0007F8007E000FF0003F003FE0003FC0FFC0001FFFFF80000FFFFF000007FFFC0000+03FFF00000007F800000263577B32C>I<00F03F8000F001F9FFE001F801FFFFF001F803+FFFFF807F803FFFFF80FF007FFFFFC3FF007FFE0FFFFE00FFF007FFFC00FFC003FFFC01F+F0001FFF801FE0000FFF003FC000007F003F800000FE007F000001FC007E000001FC00FE+000003F800FC000007F0007C000007F0000000000FE0000000000FC0000000001FC00000+00001F80000000003F80000000003F00000000007F00000000007E0000000000FE000000+0000FC0000000001FC0000000001F80000000003F80000000003F00000000007F0000000+0007E0000000000FE0000000000FC0000000000FC0000000001FC0000000001F80000000+001F80000000003F80000000003F00000000003F00000000007F00000000007E00000000+007E0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC00000000+00F80000000000700000002D3578B32C>I<000001FE0000001FFFC000007FFFF00001FF+FFF80003FFFFFC0007FC07FE000FF001FE001FC000FE003F80007F007F00007F007E0000+3F00FC00003F00FC00003F00FC00003F01F800007E01F800007E01FC0000FC00FC0001FC+00FC0003F8007E0007F0007F001FE0003FC07F80001FFFFE000007FFF8000000FFC00000+07FFF800003FFFFC00007F80FF0001FC003F8003F0001F8007E0000FC00FC0000FC01F80+0007E03F000007E03F000007E07E000007E07E000007E07E000007E0FC00000FC0FC0000+0FC0FC00001FC0FC00001F80FE00003F00FE00007F007F0000FE007F8001FC003FC007F8+003FF03FF0001FFFFFE0000FFFFF800007FFFF000001FFF80000003FC00000283579B32C+>I<000007F80000003FFF000000FFFF800003FFFFC00007FFFFE0000FFC0FF0001FF003+F0003FC001F8007F8001F800FF0001F801FC0000FC01FC0000FC03F80000FC03F00000FC+07F00000FC07E00000FC07E00000FC07E00000FC0FE00000FC0FC00001FC0FC00001FC0F+C00003FC0FC00003F80FE00007F807E0000FF807E0001FF807F0003FF003F800FFF001FE+07FFF001FFFFFFF000FFFFFFE0007FFFE7E0001FFF8FE00007FC0FC00000001FC0000000+1F800000003F800000007F000000007E00000000FE003C0001FC007E0003F800FF0007F8+00FF000FF000FF001FE000FF007FC000FE00FF8000FE07FF0000FFFFFC00007FFFF80000+3FFFE000001FFF80000007FC000000263578B32C>I<001E00007F0000FF8001FFC001FF+C001FFC001FF8001FF8001FF0000FE00007C000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000F80001FC0003FE0007FE0+007FE000FFE000FFE000FFE0007FC0003F80001E000012246FA32C>I<00000000380000+0000FC00000001FE00000007FE0000001FFC0000007FF8000001FFE0000003FFC000000F+FF0000003FFC000000FFF0000003FFC0000007FF8000001FFE0000007FF8000001FFE000+0007FF8000000FFF0000003FFC0000007FF0000000FFC0000000FF800000007FC0000000+3FE00000001FF80000000FFC00000003FE00000001FF00000000FFC00000003FE0000000+1FF00000000FFC00000007FE00000001FF00000000FFC00000007FE00000001FF0000000+0FF800000007FC00000001FC00000000F8000000007000272A76AD2C>60+D<07FFFFFFFE0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF03FFFFFFFE0000000000+00000000000000000000000000000000000000000000000000000000000000000000003F+FFFFFFE07FFFFFFFF0FFFFFFFFF8FFFFFFFFF87FFFFFFFF03FFFFFFFE0281479A22C>I<+0038000000007E000000007F000000007F800000007FC00000003FF00000000FF8000000+07FC00000003FF00000001FF800000007FC00000003FF00000001FF800000007FC000000+03FF00000001FF800000007FC00000003FE00000001FF800000007FC00000003FC000000+0FFC0000001FFC0000007FF8000001FFE0000007FF8000001FFE0000003FFC000000FFF0+000003FFC000000FFF0000003FFC000000FFF8000001FFE0000007FF8000001FFE000000+7FF8000000FFE0000000FFC0000000FF00000000FC000000007000000000262A7AAD2C>+I<0007FE00003FFF8000FFFFE003FFFFF007FFFFF80FFE07F81FF001FC3FC000FC7F8000+FC7F0000FCFF0000FCFF0000FCFF0001FCFF0001FC7E0003F83C000FF800003FF000007F+E00001FFC00007FF80001FFE00007FF80000FFF00001FFC00003FF000003FC780007F0FC+0007E0FC0007E1FC0007E3FC0007FFF80007FFF00003FFE00001FFC00000FF0000000000+000000000000000000000000000000000000000000000000000000000003C0000007E000+000FF000001FF000001FF000001FF000001FE000000FE00000078000001E3471B32C>I<+0000000FC00000001FE00000003FE00000003FE00000007FE00000007FE0000000FFE000+0000FBE0000001F7E0000001F7E0000003F7E0000003E7C0000007E7C0000007C7C00000+0FC7C000000FC7C000001F87C000001F87C000003F0FC000003F0FC000003E0FC000007E+0FC000007E0FC00000FC0FC00000FC0FC00001F80FC00001F80FC00003F00FC00003F00F+C00007E00FC00007E00FC0000FC00FC0000FC00FC0001FFFFFC0001FFFFFC0001FFFFFC0+003FFFFFC0003FFFFFC0007E000FC0007E001FC000FC001FC000FC001FC001F8001F8001+F8001F8003F0001F8003F0001F8007F0001F807FFC01FFF0FFFE03FFF8FFFE03FFF8FFFE+03FFF87FFC01FFF025347DB32C>65 D<0007FFFFFC00000FFFFFFF00000FFFFFFFC0000F+FFFFFFE00007FFFFFFE00000FE001FF00000FC0007F00000FC0003F80001FC0003F80001+FC0001F80001F80001F80001F80001F80003F80001F80003F80003F00003F00003F00003+F00003F00007F00007E00007F0000FC00007E0001FC00007E0003F80000FE0007F00000F+E003FE00000FFFFFF800000FFFFFF000001FFFFFE000001FFFFFF800001FFFFFFC00001F+8001FE00003F80007F00003F80007F00003F00003F00003F00003F80007F00001F80007F+00001F80007E00001F80007E00001F8000FE00001F8000FE00003F0000FC00003F0000FC+00007F0001FC00007E0001FC0000FE0001F80001FC0001F80003F80003F8000FF00003F8+003FE0007FFFFFFFC000FFFFFFFF8000FFFFFFFF0000FFFFFFFC00007FFFFFE000002D33+7EB22C>I<000001FE01C000000FFF83E000003FFFE7E00000FFFFF7E00001FFFFFFE000+03FF03FFE00007F801FFE0000FF000FFC0001FE0007FC0003F80003FC0007F00003FC000+FE00003F8001FE00003F8001FC00003F8003F800003F8003F000003F0007F000003F0007+E000001E000FE0000000000FC0000000001FC0000000001F80000000003F80000000003F+00000000003F00000000003F00000000007F00000000007E00000000007E00000000007E+00000000007E0000000000FE0000000000FC0000000000FC0000000000FC0000000000FC+0000000000FC0000078000FC000007C0007E00000FC0007E00000FC0007E00001FC0007E+00001F80003F00003F80003F00007F00003F8000FF00001F8001FE00001FC007FC00000F+F03FF8000007FFFFF0000003FFFFC0000001FFFF800000007FFE000000001FF00000002B+3578B32C>I<000FFFFFF000001FFFFFFC00001FFFFFFE00001FFFFFFF00000FFFFFFF80+0001FC00FFC00001F8003FC00001F8001FE00003F8000FE00003F80007E00003F00007F0+0003F00007F00007F00003F00007F00003F00007E00003F00007E00003F0000FE00003F0+000FE00003F0000FC00003F0000FC00003F0001FC00003F0001FC00003F0001F800003F0+001F800003F0003F800003F0003F800007E0003F000007E0003F000007E0007F000007E0+007F00000FC0007E00000FC0007E00001F8000FE00001F8000FE00003F8000FC00003F00+00FC00007F0001FC00007E0001FC0000FC0001F80001FC0001F80001F80003F80003F000+03F80007F00003F0000FE00003F0003FC00007F0007F800007F003FF00007FFFFFFE0000+FFFFFFF80000FFFFFFF00000FFFFFFC000007FFFFE0000002C337EB22C>I<000FFFFFFF+FF00000FFFFFFFFF80001FFFFFFFFF80000FFFFFFFFF80000FFFFFFFFF800000FE00003F+000000FC00003F000000FC00003F000001FC00007F000001FC00007E000001F800007E00+0001F800007E000003F800003C000003F8000000000003F0000000000003F00000000000+07F0000000000007F001E000000007E003F000000007E003F00000000FE007F00000000F+E007F00000000FFFFFE00000000FFFFFE00000001FFFFFE00000001FFFFFE00000001FFF+FFC00000001F800FC00000003F801FC00000003F801FC00000003F000F800000003F000F+000000007F0000000000007F0000000000007E0000000000007E000000000000FE000000+000000FE00000F000000FC00001F800000FC00001F800001FC00003F800001FC00003F00+0001F800003F000001F800003F000003F800007F000003F800007E00007FFFFFFFFE0000+FFFFFFFFFE0000FFFFFFFFFE0000FFFFFFFFFC00007FFFFFFFFC000031337EB22C>I<00+0FFFFFFFFE001FFFFFFFFF001FFFFFFFFF001FFFFFFFFF000FFFFFFFFF0000FE00007E00+00FC00007E0000FC00007E0001FC0000FE0001FC0000FC0001F80000FC0001F80000FC00+03F80000780003F80000000003F00000000003F00000000007F00000000007F000000000+07E003C0000007E007C000000FE00FE000000FE00FE000000FC00FC000000FFFFFC00000+1FFFFFC000001FFFFFC000001FFFFF8000001FFFFF8000003F803F8000003F803F800000+3F003F0000003F003F0000007F001E0000007F00000000007E00000000007E0000000000+FE0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC0000000001+F80000000001F80000000003F80000000003F8000000007FFFC0000000FFFFE0000000FF+FFE0000000FFFFE00000007FFFC000000030337DB22C>I<0007FFE01FFF80000FFFF03F+FFC0000FFFF03FFFC0000FFFF03FFFC00007FFE01FFF800000FE0003F0000000FC0003F0+000000FC0003F0000001FC0007F0000001FC0007E0000001F80007E0000001F80007E000+0003F8000FE0000003F8000FC0000003F0000FC0000003F0000FC0000007F0001FC00000+07F0001F80000007E0001F80000007E0001F8000000FE0003F8000000FE0003F0000000F+FFFFFF0000000FFFFFFF0000001FFFFFFF0000001FFFFFFE0000001FFFFFFE0000001F80+007E0000003F8000FE0000003F8000FC0000003F0000FC0000003F0000FC0000007F0001+FC0000007F0001F80000007E0001F80000007E0001F8000000FE0003F8000000FE0003F0+000000FC0003F0000000FC0003F0000001FC0007F0000001FC0007E0000001F80007E000+0001F80007E0000003F8000FE0000003F8000FC000007FFF01FFFC00007FFF81FFFE0000+FFFF83FFFE00007FFF81FFFE00007FFF01FFFC000032337EB22C>72+D<000FFFFFFF00001FFFFFFF80001FFFFFFF80001FFFFFFF80000FFFFFFF00000003F800+00000003F00000000003F00000000007F00000000007F00000000007E00000000007E000+0000000FE0000000000FE0000000000FC0000000000FC0000000001FC0000000001FC000+0000001F80000000001F80000000003F80000000003F80000000003F00000000003F0000+0000007F00000000007F00000000007E00000000007E0000000000FE0000000000FE0000+000000FC0000000000FC0000000001FC0000000001FC0000000001F80000000001F80000+000003F80000000003F80000000003F00000000003F00000000007F00000000007F00000+000007E00000000007E0000000000FE0000000000FE00000007FFFFFF80000FFFFFFF800+00FFFFFFFC0000FFFFFFF800007FFFFFF80000293379B22C>I<0007FFFE00000FFFFF00+000FFFFF00000FFFFF000007FFFE0000007F000000007E000000007E00000000FE000000+00FE00000000FC00000000FC00000001FC00000001FC00000001F800000001F800000003+F800000003F800000003F000000003F000000007F000000007F000000007E000000007E0+0000000FE00000000FE00000000FC00000000FC00000001FC00000001FC00000001F8000+00001F800000003F800000003F800000003F000000003F000000007F000000007F00001E+007E00003F007E00003F00FE00007F00FE00007E00FC00007E00FC00007E01FC0000FE01+FC0000FC7FFFFFFFFC7FFFFFFFFCFFFFFFFFFC7FFFFFFFF87FFFFFFFF828337EB22C>76+D<0007FF000FFF80000FFF801FFFC0000FFFC01FFFC0000FFFC01FFFC00007FFC00FFF80+0000FFC001F0000000FBC001F0000000FBC001F0000001FBC003F0000001FBC003E00000+01F3C003E0000001F3C003E0000003F3E007E0000003F3E007C0000003E3E007C0000003+E3E007C0000007E3E00FC0000007E3E00F80000007C3E00F80000007C1E00F8000000FC1+E01F8000000FC1E01F0000000F81E01F0000000F81F01F0000001F81F03F0000001F81F0+3E0000001F01F03E0000001F01F03E0000003F01F07E0000003F01F07C0000003E01F07C+0000003E00F07C0000007E00F0FC0000007E00F0F80000007C00F0F80000007C00F0F800+0000FC00F9F8000000FC00F9F0000000F800F9F0000000F800F9F0000001F800FBF00000+01F8007BE0000001F0007BE0000001F0007BE0000003F0007FE0000003F0007FC000007F+FE007FC000007FFF007FC00000FFFF007FC000007FFF003F8000007FFE003F8000003233+7EB22C>78 D<00001FFFE0000001FFFFFC000003FFFFFE00000FFFFFFF00001FFFFFFF00+001FF001FF80003FC0007F80007F00003F80007F00003F80007E00003F8000FC00003F80+00FC00003F8001F800003F0001F800003F0001F800003F0003F000003F0003F000003F00+03F000007E0007E000007E0007E000007E0007E000007E0007E000007E000FC00000FC00+0FC00000FC000FC00000FC000FC00000FC001F800001F8001F800001F8001F800001F800+1F800001F8003F000003F0003F000003F0003F000003F0003F000003F0007F000007E000+7E000007E0007E000007E0007E00000FC0007E00000FC0007E00000FC000FE00001F8000+FC00001F8000FC00003F8000FE00003F0000FE00007F0000FE0000FE0000FF0001FE0000+FFC00FFC0000FFFFFFF800007FFFFFF000003FFFFFE000001FFFFF80000003FFFC000000+293579B32C>I<000FFFFFFC00000FFFFFFF80001FFFFFFFC0000FFFFFFFE0000FFFFFFF+F00000FE001FF80000FC0007F80000FC0003FC0001FC0001FC0001FC0000FC0001F80000+FC0001F80000FC0003F80000FC0003F80000FC0003F00000FC0003F00000FC0007F00000+FC0007F00001F80007E00003F80007E00003F0000FE00007F0000FE0000FE0000FC0003F+C0000FC0007F80001FC003FF00001FFFFFFE00001FFFFFFC00001FFFFFF000001FFFFFC0+00003FFFFE0000003F00000000003F00000000003F00000000007F00000000007E000000+00007E00000000007E0000000000FE0000000000FC0000000000FC0000000000FC000000+0001FC0000000001F80000000001F80000000001F80000000003F8000000007FFF000000+00FFFF80000000FFFF80000000FFFF800000007FFF000000002E337EB22C>I<0007FFFF+C000000FFFFFF800000FFFFFFC00000FFFFFFF000007FFFFFF000000FE01FF800000FC00+7FC00000FC001FC00001FC001FC00001FC000FE00001F8000FE00001F8000FE00003F800+0FE00003F8000FC00003F0000FC00003F0000FC00007F0001F800007F0001F800007E000+3F000007E0007F00000FE001FE00000FE003FC00000FC01FF800000FFFFFF000001FFFFF+C000001FFFFF8000001FFFFF8000001FFFFFC000003F803FC000003F800FE000003F0007+E000003F0007E000007F0007E000007F0007E000007E0007E000007E0007E00000FE000F+E00000FE000FE00000FC000FC00000FC000FC00001FC000FC38001FC001FCFC001F8001F+8FC001F8001F8FC003F8001F9FC003F8001F9F807FFF001FBF807FFF801FFF00FFFF800F+FF007FFF800FFE007FFF0007FC0000000001F0002B347EB22C>82+D<000001FF00E000000FFFE1F000003FFFF9F000007FFFFFF00001FFFFFFF00003FF01FF+F00007FC007FE0000FF0003FE0000FE0001FE0001FC0001FE0001F80001FC0003F80001F+C0003F00000FC0003F00001FC0007F00001F80007E00000F80007E00000F00007F000000+00007F00000000003F80000000003FC0000000001FF8000000001FFF000000000FFFF000+000007FFFE00000003FFFF80000000FFFFC00000001FFFE000000001FFF0000000001FF0+0000000007F80000000003F80000000001FC0000000001FC0000000000FC0000000000FC+000F000000FC000F800001FC001F800001F8001F800001F8001F800001F8003F800003F0+003F800007F0003F80000FE0003FC0000FE0007FC0003FC0007FF0007F80007FFE03FF00+007FFFFFFE0000FFFFFFFC0000FCFFFFF00000783FFFC000007807FF0000002C357CB32C+>I<0FFFFFFFFF001FFFFFFFFF801FFFFFFFFF801FFFFFFFFF803FFFFFFFFF803F803F80+3F003F003F003F003F003F003F007F007F007F007F007F007E007E007E007E007E007E00+7E003C00FE003C000000FE0000000000FC0000000000FC0000000001FC0000000001FC00+00000001F80000000001F80000000003F80000000003F80000000003F00000000003F000+00000007F00000000007F00000000007E00000000007E0000000000FE0000000000FE000+0000000FC0000000000FC0000000001FC0000000001FC0000000001F80000000001F8000+0000003F80000000003F80000000003F00000000003F00000000007F00000000007F0000+0000007E00000000007E0000000000FE0000000000FE000000007FFFF0000000FFFFF800+0000FFFFF8000000FFFFF80000007FFFF0000000293375B22C>I<1FFFE01FFFE01FFFF0+1FFFF03FFFF03FFFF01FFFF01FFFF01FFFE01FFFE001FC0001FC0001F80001F80001F800+01F80001F80003F80003F80003F80003F00003F00003F00003F00003F00007F00007F000+07F00007E00007E00007E00007E00007E0000FE0000FE0000FE0000FC0000FC0000FC000+0FC0000FC0001FC0001FC0001FC0001F80001F80001F80001F80001F80003F80003F8000+3F80003F00003F00003F00003F00003F00007F00007F00007F00007E00007E00007E0000+7E00007E0000FE0000FE0000FE0000FC0000FC0000FC0000FC0000FC0001FC0000FC0001+F80000FC0003F80000FC0003F00000FC0007F00000FC000FE00000FC000FE00000FC001F+C000007E007F8000007F00FF0000003F83FE0000003FFFFC0000001FFFF80000000FFFF0+00000003FFC000000000FE000000002C3476B22C>I<7FFC00FFFCFFFE00FFFCFFFE01FF+FEFFFE00FFFC7FFC00FFFC1FC0001F801FC0001F801FC0003F001FC0003F001FC0007E00+1FC0007E001FC000FC001F8000FC001F8001F8001F8001F8001F8003F0001F8003F0001F+8007E0001F8007E0001F800FC0001F800FC0001F801FC0001F801F80001F803F80001F80+3F00001F803F00001F807E00001F807E00001F80FC00001F80FC00001F81F800001F81F8+00001F83F000001F83F000001F87E000001F87E000001F8FC000001F8FC000001F8F8000+001F9F8000001F9F0000001F3F0000001F3E0000001F7E0000001F7C0000001FFC000000+1FF80000001FF80000001FF00000001FF00000001FE00000000FC0000000273472B22C>+I<0FFE0001FFC01FFF0003FFE01FFF0003FFE01FFF0003FFE00FFE0001FFC007C000003E+0007C000003E0007C000003E0007C000007C0007C000007C0007C000007C0007C00000F8+000F800000F8000F800001F0000F800001F0000F800001F0000F800003E0000F800003E0+000F800003E0000F800007C0001F00FC07C0001F03FC0780001F03FC0F80001F07FC0F80+001F07FC1F00001F0FFC1F00001F0FBC1F00001E0F7C3E00003E1F7C3E00003E1E7C3C00+003E3E7C7C00003E3E7C7C00003E7C7C7800003C7C7CF800003C787CF800003CF878F000+007CF879F000007CF079E000007DF079E0000079E07BE0000079E07BC000007BC0FBC000+007BC0F7C00000FB80F7800000F780F7800000FF80FF800000FF00FF000000FF00FF0000+00FE00FE000000FE00FE000000FC00FC000000F800780000002B3476B22C>I<0000FFFF+F00001FFFFF80001FFFFF80003FFFFF80003FFFFF00003F000000003F000000007F00000+0007F000000007E000000007E00000000FE00000000FE00000000FC00000000FC0000000+1FC00000001FC00000001F800000001F800000003F800000003F800000003F000000003F+000000007F000000007F000000007E000000007E00000000FE00000000FE00000000FC00+000000FC00000001FC00000001FC00000001F800000001F800000003F800000003F80000+0003F000000003F000000007F000000007F000000007E000000007E00000000FE0000000+0FE00000000FC00000000FC00000001FC00000001FC00000001F800000001F800000003F+800000003F800000003F000000003F000000007F000000007F000000007E000000007E00+000000FE00000000FFFFF80000FFFFFC0000FFFFFC0000FFFFFC00007FFFF80000254170+B92C>91 D<0000FFFFF00001FFFFF80001FFFFF80001FFFFF80000FFFFF800000003F000+000003F000000003F000000007F000000007E000000007E000000007E00000000FE00000+000FC00000000FC00000000FC00000001FC00000001F800000001F800000001F80000000+3F800000003F000000003F000000003F000000007F000000007E000000007E000000007E+00000000FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F800+000001F800000003F800000003F000000003F000000003F000000007F000000007E00000+0007E000000007E00000000FE00000000FC00000000FC00000000FC00000001FC0000000+1F800000001F800000001F800000003F800000003F000000003F000000003F000000007F+000000007E000000007E000000007E00007FFFFE0000FFFFFC0000FFFFFC0000FFFFFC00+007FFFF8000025417EB92C>93 D<00038000000FC000007FF00001FFF80007FFFE001FFF+FF007FFCFFC07FF07FE0FFC03FE07F000FE07C0007C0300001801B0C6EB22C>I<7FFFFF+FF00FFFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFFFFFF807FFFFFFF0022067D7D2C>I<0003+F00000000FFC7800003FFFFC00007FFFFC0000FFFFFC0001FE1FFC0003FC0FF80007F80F+F8000FF007F8000FE007F8001FC007F0001F8007F0003F8007F0003F0007F0007F0007E0+007E0007E0007E0007E0007E000FE000FE000FE000FC000FC000FC000FC000FC001FC180+FC001F87E0FC003F87E0FC003F87E0FC007F8FE0FC00FF0FC0FC01FF0FC0FE03FF0FC07E+07FF1F807F0FFF3F803FFFFFFF001FFFDFFF001FFF8FFE0007FE07FC0001F801F0002324+76A32C>97 D<7FF80000FFFC0000FFFC0000FFFC00007FFC000001FC000001F8000001F8+000003F8000003F8000003F0000003F0000007F0000007F0000007E0000007E1FC000FE7+FF000FFFFF800FFFFFC00FFFFFE01FFF0FE01FFC07F01FF803F01FF001F83FE001F83FC0+01F83F8001F83F8001F87F0001F87F0001F87E0001F87E0001F87E0003F8FE0003F8FC00+03F0FC0003F0FC0007F0FC0007E0FC000FE0FC000FC0FC001FC0FC003F80FC007F007E00+FF007F01FE003F87FC003FFFF8001FFFF0000FFFC00007FF000001FC00001D3375B22C>+I<00007F800003FFE0000FFFF8003FFFFC007FFFFC00FFC1FE01FE00FE03FC01FE07F801+FE0FF001FE0FE001FC1FC001FC3F8000703F0000003F0000007E0000007E0000007E0000+00FE000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FE0000+007E00001C7F00003E3F8000FE3FC00FFE1FFFFFFE0FFFFFFC07FFFFF001FFFFC0007FFE+001F2475A32C>I<000003FF80000007FFC0000007FFC0000007FFC0000003FFC0000000+1FC00000001F800000001F800000003F800000003F800000003F000000003F000000007F+000000007F000000007E000003F07E00000FFCFE00003FFFFE00007FFFFC0000FFFFFC00+01FE1FFC0003FC0FFC0007F80FF8000FF007F8000FE007F8001FC007F8001F8007F0003F+8007F0003F0007F0007F0007F0007E0007E0007E0007E0007E000FE000FE000FE000FC00+0FC000FC000FC000FC001FC180FC001FC7E0FC003F87E0FC003F87E0FC007F8FE0FC00FF+8FC0FC01FF0FC0FE03FF0FC07E07FF1F807F0FFF3F803FFFFFFF001FFFDFFF001FFF8FFE+0007FE07FC0001F801F000233376B22C>I<00007F000003FFC0000FFFF0003FFFF8007F+FFFC00FFC1FC01FE00FC03FC007E07F8007E0FE000FE0FE000FC1FC000FC3F8001FC3F00+07F87F003FF87FFFFFF07FFFFFE07FFFFF80FFFFFE00FFFFF000FC000000FC000000FC00+0000FC000000FC000000FC0000007E0000007E00001C7F00003E3F8000FE3FC00FFE1FFF+FFFE0FFFFFFC07FFFFF001FFFFC0007FFE001F2475A32C>I<00000003FC000000001FFF+000000003FFFC00000007FFFC00000007FFFE0000000FE1FE0000000FC1FE0000000FC1F+E0000000FC1FE0000001FC0FC0000001F80780000001F80000000001F80000000001F800+00000001F800000003FFFFF8000003FFFFFC000007FFFFFC000003FFFFFC000003FFFFF8+00000007F00000000007E00000000007E00000000007E00000000007E00000000007E000+0000000FE0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000+0000001FC0000000001F80000000001F80000000001F80000000001F80000000001F8000+0000003F80000000003F00000000003F00000000003F00000000003F00000000007F0000+0000007E00000000007E00000000007E00000000007E00000000007E0000000000FE0000+000000FC0000000000FC0000000000FC0000000001FC0000000001F80000000001F80000+000001F80000000003F80000001C03F00000007F03F00000007F07F0000000FF07E00000+00FF0FE0000000FF1FC0000000FFFF800000007FFF800000003FFF000000001FFC000000+0007F0000000002B457DB22C>I<000007F00000001FFC7800007FFEFC0001FFFFFC0003+FFFFFC0007FC3FFC000FF01FFC001FE00FF8001FC007F8003F8007F8007F0007F8007E00+07F000FE0007F000FC0007F001FC0007F001F80007E001F80007E001F8000FE003F8000F+E003F0000FC003F0000FC003F0001FC003F0001FC003F0003F8003F0003F8003F0007F80+03F000FF8003F001FF0001F803FF0001FC07FF0000FE1FFF0000FFFFFE00007FFFFE0000+3FFFFE00001FFCFE000007F0FC00000000FC00000001FC00000001FC00000001F8000000+01F800000003F800000003F800000003F0003C0007F0007E000FE000FF001FE000FF003F+C000FF01FF8000FFFFFF0000FFFFFE00007FFFF800003FFFE000000FFF00000026367BA3+2C>I<07FF0000000FFF8000000FFF8000000FFF80000007FF800000003F800000003F00+0000003F000000007F000000007F000000007E000000007E00000000FE00000000FE0000+0000FC00000000FC3FC00001FCFFF00001FFFFF80001FFFFFC0001FFFFFC0003FFF0FE00+03FFC07E0003FF007E0003FE007E0007FE007E0007FC007E0007F8007E0007F8007E000F+F000FE000FF000FC000FE000FC000FE000FC001FC001FC001FC001F8001FC001F8001F80+03F8003F8003F0303F8003F0FC3F0007F0FC3F0007E0FC7F0007E1FC7F000FE1F87E000F+C1F87E000FC3F0FE000FC7F0FE000FCFE0FC000FFFE0FC0007FFC0FC0007FF80F80003FE+00700000FC00263379B22C>I<00000F0000001F8000003FC000003FC000003FC000003F+C000001F8000000F00000000000000000000000000000000000000000000000000000000+0000000000003F000000FFC00003FFF00007FFF0000FFFF8001FE1F8003FC1F8003F81F8+007F01F8007E01F800FE03F800FC03F000FC07F000FC07E0000007E000000FE000000FC0+00001FC000001FC000001F8000003F8000003F0060003F01F8007F01F8007E01F800FE03+F800FC03F000FC07F000FC0FE000FC1FE000FC3FC000FFFF80007FFF00007FFE00001FF8+000007E0001D3475B32C>I<0FFF0000001FFF8000001FFF8000001FFF8000000FFF8000+00003F800000003F000000003F000000007F000000007F000000007E000000007E000000+00FE00000000FE00000000FC00000000FC001F8001FC007FC001FC01FFE001F803FFE001+F807FFF003F80FF3F003F81FC3F003F03F87F003F07F0FF007F0FE1FF007F1FC1FF007E3+F80FE007E7F00FC00FFFE007800FFFC000000FFF8000000FFF8000001FFFE000001FFFF8+00001FFFFC00001FBFFE00003F81FF00603F807F01F83F003F01F83F003F81F87F003F83+F87F003F03F07E003F03F07E003F07F0FE003F07E0FE003F8FC0FC001FFFC0FC001FFF80+FC000FFF00F80007FE00700001F800253378B22C>107 D<7FFF00FFFF80FFFF80FFFF80+7FFF80003F80003F00003F00007F00007F00007E00007E0000FE0000FE0000FC0000FC00+01FC0001FC0001F80001F80003F80003F80003F00003F00007F00007F00007E00007E000+0FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F80183F807E3F007E3F007E+7F00FE7F00FC7E00FC7E01F87E03F87F87F03FFFF01FFFE00FFFC007FF0001FE00173370+B22C>I<00707E007E000079FF81FF8000FFFFC7FFC000FFFFCFFFC000FFFFFFFFE000FF+C3FFC3E001FF83FF83E001FF03FF03F001FE03FE03F001FC03FC03E003FC03FC03E003F8+03F803E003F803F803E003F007F007E007F007F007C007F007F007C007E007E007C00FE0+0FE00FC00FC00FC00F800FC00FC00F801FC01FC01F801F801F801F001F801F801F001F80+1F803F003F803F803E003F003F003E003F003F007E003F003F007C007F007F007C007E00+7E007C007E007E007C007E007E007F00FE00FE007F00FC00FC003F80FC00FC003F007800+78000F002C247DA32C>I<01F007F00007F81FFC000FFC7FFE001FFEFFFF003FFFFFFF80+3F3FFE1F803F3FF81F807E3FF01F807E3FE01F807E7FC01F80FE7FC01F80FC7F801F80FC+7F001F80FCFF003F8000FE003F0000FE003F0000FE003F0001FC007F0001FC007E0001FC+007E0001F800FE0003F800FC1803F800FC7E03F001FC7E03F001F87E07F001F8FE07F003+F8FC07E003F0FC07E003F1FC0FE003F1F80FE003F3F00FC003FFF00FC001FFE00FC001FF+C00F8000FF800700003E0027247AA32C>I<0000FE000007FF80001FFFE0003FFFF000FF+FFF001FF83F803FE01FC03F800FC07F000FC0FE0007E1FC0007E1FC0007E3F80007E3F00+007E7F00007E7E00007E7E00007E7E0000FEFE0000FEFC0000FCFC0000FCFC0001FCFC00+01F8FC0003F8FC0007F0FC0007F0FC000FE07E001FC07E003F807F00FF803F83FF001FFF+FE001FFFF8000FFFF00003FFC00000FE00001F2476A32C>I<0007C00FC000001FF03FF0+00003FF8FFFC00007FFDFFFC00007FFFFFFE0000FE7FF87F0000FC7FF03F0001F87FE03F+8001F87FC01F8001F8FF801F8003F8FF001F8003F0FE001F8003F0FE001F8003F1FC001F+800001FC001F800001F8001F800001F8001F800003F8003F800003F8003F800003F0003F+000003F0003F000007F0007F000007F0007E000007F000FE000007F000FC00000FF001FC+00000FF003F800000FF007F800000FF80FF000001FF81FE000001FFC3FC000001FFFFF80+00001FFFFF0000003FFFFE0000003F9FF80000003F07E00000003F00000000007F000000+00007F00000000007E00000000007E0000000000FE0000000000FE0000000000FC000000+0000FC0000000001FC0000000001FC0000000001F80000000001F8000000007FFFE00000+007FFFE0000000FFFFF00000007FFFE00000007FFFE0000000293680A32C>I<0001FC0E+0007FF0F001FFF9F007FFFDF00FFFFFF01FF0FFF03FC07FF07F803FE07F001FE0FE001FE+1FC001FE1F8001FC3F8001FC3F0001FC7F0001FC7E0001F87E0001F87E0001F8FE0003F8+FC0003F0FC0003F0FC0007F0FC0007F0FC000FE0FC000FE0FC001FE0FC003FE0FC007FC0+7E00FFC07F01FFC03F87FFC03FFFFF801FFFFF800FFFDF8007FF3F8001FC3F0000003F00+00003F0000007F0000007E0000007E0000007E000000FE000000FC000000FC000000FC00+0001FC000001F8000001F80001FFFFF003FFFFF003FFFFF803FFFFF001FFFFF0203675A3+2C>I<01F800FF8007FE03FFE00FFF0FFFF81FFF9FFFFC1FFFFFFFFE3F9FFF81FE3F0FFE+007E7E0FFC007F7E0FF800FF7E1FF001FFFC1FF001FFFC1FE000FEFC1FE000FCFC3FC000+78003FC00000003F800000003F800000007F000000007F000000007F000000007E000000+00FE00000000FE00000000FC00000000FC00000001FC00000001FC00000001F800000001+F800000003F800000003F800000003F000000003F000000003F000000003E000000001C0+000000282479A32C>I<0000FFE0000007FFFC00001FFFFE00003FFFFF00007FFFFF8000+FF807F8000FC007F8001F8007F8001F0007F8001F0007F8003F0003F0003F0001C0001F8+00000001FE00000001FFF8000000FFFF0000007FFFC000001FFFF0000007FFF80000003F+FC00000001FC000000007E000000007E001C00003E007F00003E007F00007E00FF00007C+00FF0000FC00FF0001FC00FE0003F800FF803FF0007FFFFFE0003FFFFFC0001FFFFF8000+07FFFE000000FFE00000212478A32C>I<0001E0000003F0000003F0000003F0000007F0+000007F0000007E0000007E000000FE000000FE000000FC000000FC000001FC000001FC0+00001F80007FFFFF807FFFFFC0FFFFFFC07FFFFFC07FFFFF80007F0000007F0000007E00+00007E000000FE000000FE000000FC000000FC000001FC000001FC000001F8000001F800+0003F8000003F8000003F0000003F0000007F000C007F003F007E003F007E003F00FE007+F00FE00FE00FC01FE00FC03FC00FC07F800FE1FF0007FFFE0007FFFC0003FFF80001FFE0+00007F00001C3374B22C>I<00F80001C003FE0003E007FF0007E00FFF0007E01FFF8007+E03F9F800FE03F1F800FE07F1F800FC07E1F800FC07E3F801FC0FE3F001FC0FC3F001F80+FC7F001F80FC7E003F80007E003F8000FE003F0000FC003F0000FC007F0001FC007F0001+F8007E0001F8007E0001F800FE1803F800FE7E03F001FC7E03F001FC7E03F003FC7E03F0+03FCFE03F007F8FC03F00FF8FC03F81FF9FC01FC3FF9F801FFFFFFF800FFFFFFF0007FFE+7FE0003FF83FC0000FE00F8027247AA32C>I<007E0000F001FF8001F007FFC001F80FFF+C001F81FFFE001F81FC7E001FC3F87E000FC3F07E000FC7F07E001FC7E07E001F8FE0FE0+01F8FC0FC001F8FC1FC001F8FC1F8003F8001F8003F0003F8003F0003F0003F0003F0007+F0007F0007E0007E0007E0007E0007E0007E000FC000FE000FC000FC001FC000FC001F80+00FC001F8000FC003F0000FC007F00007E007E00007E00FC00007F83FC00003FFFF80000+1FFFF000000FFFE0000007FF80000000FE000026247AA32C>I<3C0003800E003F0003C0+1F007F8007C03F803F8007C03F803FC007C01F8007C00FC01F8007C00F801F8007C00F80+1F8007C00F801F8007C01F801F800FC01F001F000F801F001F000F801F001F001F803F00+3F001F003E003E003F003E003E003E003E003E003E007E007E007E007E007C007C007C00+7C007C007C007C007C00FC00FC00FC00FC00F800F800F800F800F801F801F800F801F801+F000F801F801F000F803F803F000FC03FC03E0007C07FC07E0007E0FFE0FC0007FFFFFFF+C0003FFFBFFF80001FFF1FFF00000FFE0FFE000003F803F80000292479A32C>I<001FC0+1F8000FFF07FE001FFF9FFF807FFFFFFF80FFFFFFFFC1FF0FFF0FC3FC07FE07E3F803FC0+FE7F003F81FE7E003F83FEFE003F03FEFC003F01FCFC003F01F8FC007F00F000007F0000+00007E000000007E00000000FE00000000FE00000000FC00000000FC00000001FC00181E+01FC007E3F01F8007E7F01F8007E7F83F800FEFF83F800FCFF03F801FCFE07F803F8FC0F+FC07F87E1FFE1FF07FFFFFFFE03FFFFFFFC03FFF3FFF000FFC1FFE0003F007F00027247A+A32C>I<007E00003801FF80007C03FFC000FC07FFC000FC0FFFE000FC1FC7E001FC3F87+E001F83F07E001F87F07E001F87E0FE003F8FE0FC003F0FC0FC003F0FC1FC003F0FC1F80+07F0001F8007E0003F8007E0003F0007E0003F000FE0007F000FC0007E000FC0007E001F+C0007E001FC000FE001F8000FC003F8000FC003F8000FC007F8000FC007F0000FC00FF00+00FC01FF00007E03FF00007F0FFE00007FFFFE00003FFFFE00001FFFFE00000FFFFC0000+01FCFC00000000FC00000001FC00000001F800000001F800000003F800078003F0000FC0+07F0001FE00FE0001FE01FC0001FE01FC0001FC07F80001FC0FF00001F83FE00001FFFFC+00000FFFF8000007FFE0000003FFC0000000FE00000026367AA32C>I<0003F003C0000F+FC03E0003FFF07E0007FFFCFE000FFFFFFE001FFFFFFC001FE1FFF8003F803FF0003F800+FF0003F001FE0007F003FC0003E007F80001C00FF00000003FE00000007FC0000000FF80+000001FF00000003FC00000007F80000001FF00000003FE003E0007FC003E000FF8007E0+01FE0007E003FC000FE007F8000FC00FF0001FC01FF8003F801FFF007F803FFFC1FF007F+FFFFFE00FFFFFFFC00FF1FFFF800FC03FFF000F801FFC00078007F0000232478A32C>I+E /Fm 60 123 df<00000000FFFC0000000000001FFFFF800000000001FFFFFFE0000000+0007FFFFFFF0000000001FFFC00FF8000000007FFE0003FC00000000FFF00000FE000000+01FFE00003FF00000003FF800007FF00000007FF00000FFF8000000FFE00001FFF800000+0FFE00001FFF8000001FFC00001FFF8000001FFC00003FFFC000003FFC00001FFF800000+3FF800001FFF8000003FF800001FFF8000003FF800001FFF8000003FF800000FFF000000+3FF8000007FE0000003FF8000001F80000003FF8000000000000003FF800000000000000+3FF8000000000000003FF8000000000000003FF8000000000000003FF800000000000000+3FF8000000000000003FF8000000000000003FF8000000000000003FF80003FFFFC000FF+FFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FF+FFFFFFFFFFFFC000003FFC000007FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC00000+3FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC0003F+FFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03F+FFFFFC03FFFFFFC042547DD34B>12 D<00000000FFFE0000000000001FFFFFCFC0000000+01FFFFFFFFC000000007FFFFFFFFC00000001FFFC007FFC00000007FFC0007FFC0000000+FFF0000FFFC0000001FFC0001FFFC0000003FF80001FFFC0000007FF00001FFFC000000F+FE00001FFFC000000FFE00001FFFC000001FFC00001FFFC000001FFC00000FFFC000003F+FC00000FFFC000003FF8000007FFC000003FF8000003FFC000003FF8000003FFC000003F+F8000003FFC000003FF8000003FFC000003FF8000003FFC000003FF8000003FFC000003F+F8000003FFC000003FF8000003FFC000003FF8000003FFC000003FF8000003FFC000003F+F8000003FFC000003FF8000003FFC000003FF8000003FFC000003FF8000003FFC000003F+F8000003FFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFC000FFFF+FFFFFFFFFFC000FFFFFFFFFFFFFFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003FFC000003F+FC000003FFC0003FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFFFFFC03FFF+FFFC03FFFFFFC03FFFFFFC03FFFFFFC042547DD34B>I<07F0001FF8003FFE007FFF007F+FF00FFFF80FFFFC0FFFFC0FFFFC0FFFFE0FFFFE0FFFFE07FFFE07FFFE03FFFE01FFDE007+F1E00001E00001E00003E00003C00003C00003C00007C0000780000F80000F80000F0000+1F00003E00003E00007C0000F80001F00003F00007E0000FC0001F80001F00000C000013+2876D225>39 D<07F0000FF8001FFC003FFE007FFF00FFFF80FFFF80FFFF80FFFF80FFFF+80FFFF80FFFF807FFF003FFE001FFC000FF80007F0001111769025>46+D<000003FFC0000000003FFFFC00000000FFFFFF00000003FFFFFFC000000FFF81FFF000+001FFC003FF800003FF8001FFC00007FF0000FFE0000FFE00007FF0001FFC00003FF8003+FF800001FFC003FF800001FFC007FF800001FFE00FFF000000FFF00FFF000000FFF00FFF+000000FFF01FFF000000FFF81FFF000000FFF83FFF000000FFFC3FFE0000007FFC3FFE00+00007FFC3FFE0000007FFC7FFE0000007FFE7FFE0000007FFE7FFE0000007FFE7FFE0000+007FFE7FFE0000007FFE7FFE0000007FFEFFFE0000007FFFFFFE0000007FFFFFFE000000+7FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007F+FFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFF+FFFE0000007FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFFFF+FE0000007FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFFFFFE0000007FFF7FFE+0000007FFE7FFE0000007FFE7FFE0000007FFE7FFE0000007FFE7FFE0000007FFE7FFE00+00007FFE3FFE0000007FFC3FFE0000007FFC3FFF000000FFFC3FFF000000FFFC1FFF0000+00FFF81FFF000000FFF81FFF000000FFF80FFF000000FFF00FFF000000FFF007FF800001+FFE007FF800001FFE003FFC00003FFC001FFC00003FF8001FFE00007FF8000FFF0000FFF+00007FF8001FFE00001FFC003FF800000FFF81FFF0000007FFFFFFE0000001FFFFFF8000+00003FFFFC0000000003FFC00000384F7BCD43>48 D<000000780000000000FC00000000+03FC0000000007FC000000001FFC00000000FFFC0000000FFFFC000007FFFFFC0000FFFF+FFFC0000FFFFFFFC0000FFFF7FFC0000FFF07FFC0000F8007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC000000007FFC00000000+7FFC000000007FFC000000007FFC000000007FFC000000007FFC00007FFFFFFFFFFE7FFF+FFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE7FFFFFFFFFFE2F4E76CD43>I<00003FFE000000+0003FFFFE00000000FFFFFFC0000003FFFFFFF000000FFFFFFFFC00001FFC07FFFE00003+FE000FFFF80007F80003FFFC000FE00001FFFE001FC00000FFFF003F8000007FFF003FF0+00007FFF807FF800003FFFC07FFC00003FFFC0FFFE00001FFFE0FFFF00001FFFE0FFFF00+001FFFE0FFFF00000FFFF0FFFF00000FFFF0FFFF00000FFFF0FFFF00000FFFF0FFFF0000+0FFFF07FFE00000FFFF07FFE00000FFFF03FFC00000FFFF00FF000000FFFF003C000000F+FFF0000000000FFFE0000000001FFFE0000000001FFFE0000000001FFFC0000000003FFF+C0000000003FFF80000000003FFF80000000007FFF00000000007FFE0000000000FFFC00+00000001FFF80000000001FFF00000000003FFE00000000003FFC00000000007FF800000+00000FFF00000000001FFE00000000001FFC00000000003FF800000000007FE000000000+00FFC00000000001FF800000000003FE000000000007FC000000000007F800000000000F+F00001F000001FE00001F000003F800001F000007F000001F00000FE000003E00001FC00+0003E00003F8000003E00007F0000003E0000FE0000003E0001F80000007E0003F000000+07E0003E0000000FE0007FFFFFFFFFE000FFFFFFFFFFC001FFFFFFFFFFC003FFFFFFFFFF+C007FFFFFFFFFFC00FFFFFFFFFFFC01FFFFFFFFFFFC03FFFFFFFFFFFC07FFFFFFFFFFFC0+FFFFFFFFFFFFC0FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF8034+4E79CD43>I<00000FFFC000000000FFFFFC00000007FFFFFF8000001FFFFFFFE000003F+F807FFF00000FF8001FFFC0001FE00007FFE0003F800003FFF0003F000003FFF8007FC00+001FFF800FFF00001FFFC00FFF80001FFFC01FFFC0001FFFE01FFFC0001FFFE01FFFC000+1FFFE01FFFC0001FFFE01FFFE0001FFFE01FFFC0001FFFE01FFFC0001FFFE01FFFC0001F+FFE00FFFC0001FFFC007FF80001FFFC003FF00003FFFC001FC00003FFF80000000003FFF+80000000007FFF00000000007FFE00000000007FFE0000000000FFFC0000000001FFF800+00000003FFF00000000007FFC0000000000FFF8000000000FFFE00000000FFFFF8000000+00FFFFE000000000FFFFFC00000000FFFFFF800000000007FFE00000000001FFF8000000+00007FFE00000000003FFF00000000001FFF80000000000FFFC0000000000FFFE0000000+0007FFF00000000007FFF00000000007FFF80000000007FFF80000000003FFFC00000000+03FFFC0000000003FFFE0000000003FFFE03E0000003FFFE0FF8000003FFFE1FFC000003+FFFE3FFE000003FFFE7FFF000003FFFEFFFF800003FFFEFFFF800003FFFEFFFF800003FF+FEFFFF800003FFFCFFFF800003FFFCFFFF800007FFFCFFFF800007FFF8FFFF000007FFF8+7FFF000007FFF07FFE00000FFFF03FFC00000FFFE03FF000001FFFC01FE000003FFF800F+F800007FFF0007FF0000FFFE0003FFF007FFFC0000FFFFFFFFF000007FFFFFFFE000001F+FFFFFF80000003FFFFFC000000001FFF800000374F7ACD43>I<00000000007C00000000+000000FE00000000000000FE00000000000001FE00000000000003FE00000000000007FE+0000000000000FFE0000000000000FFE0000000000001FFE0000000000003FFE00000000+00007FFE0000000000007FFE000000000000FFFE000000000001FFFE000000000003FFFE+000000000003FFFE000000000007FFFE00000000000FFFFE00000000001FBFFE00000000+003F3FFE00000000003E3FFE00000000007C3FFE0000000000FC3FFE0000000001F83FFE+0000000001F03FFE0000000003E03FFE0000000007E03FFE000000000FC03FFE00000000+0F803FFE000000001F003FFE000000003F003FFE000000007E003FFE000000007C003FFE+00000000F8003FFE00000001F8003FFE00000003F0003FFE00000007E0003FFE00000007+C0003FFE0000000F80003FFE0000001F80003FFE0000003F00003FFE0000003E00003FFE+0000007C00003FFE000000FC00003FFE000001F800003FFE000001F000003FFE000003E0+00003FFE000007E000003FFE00000FC000003FFE00001F8000003FFE00001F0000003FFE+00003E0000003FFE00007E0000003FFE0000FC0000003FFE0000FFFFFFFFFFFFFFC0FFFF+FFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0000000007FFE+0000000000007FFE0000000000007FFE0000000000007FFE0000000000007FFE00000000+00007FFE0000000000007FFE0000000000007FFE0000000000007FFE0000000000007FFE+0000000000007FFE0000000000007FFE0000000000007FFE0000000000007FFE00000000+00007FFE000000000FFFFFFFFFC000000FFFFFFFFFC000000FFFFFFFFFC000000FFFFFFF+FFC000000FFFFFFFFFC03A4F7CCE43>I<03800000000E0007E00000007E0007FE000003+FE0007FFF0007FFE0007FFFFFFFFFC0007FFFFFFFFF80007FFFFFFFFF00007FFFFFFFFE0+0007FFFFFFFFC00007FFFFFFFF800007FFFFFFFF000007FFFFFFFE000007FFFFFFFC0000+07FFFFFFF0000007FFFFFFC0000007FFFFFF00000007FFFFF800000007E1FF0000000007+E0000000000007E0000000000007E0000000000007E0000000000007E0000000000007E0+000000000007E0000000000007E0000000000007E0000000000007E0000000000007E000+0000000007E00FFF00000007E07FFFF0000007E3FFFFFE000007E7FFFFFF800007FFF807+FFC00007FFC001FFE00007FE0000FFF80007FC00007FFC0007F800003FFC0007F000003F+FE0007E000001FFF0003C000001FFF80000000001FFF80000000001FFFC0000000000FFF+C0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFF0+000000000FFFF0000000000FFFF00FE000000FFFF01FF000000FFFF03FF800000FFFF07F+FC00000FFFF0FFFE00000FFFF0FFFE00000FFFF0FFFE00000FFFF0FFFE00000FFFF0FFFE+00000FFFE0FFFE00000FFFE0FFFE00000FFFE0FFFC00000FFFE07FF800001FFFC07FF000+001FFFC07FE000001FFF803E0000003FFF803F0000003FFF001F8000007FFE001FC00000+7FFC000FE00000FFF80007F80001FFF00003FE0007FFE00001FFC03FFFC00000FFFFFFFF+8000003FFFFFFE0000001FFFFFF800000003FFFFC0000000007FF8000000344F79CD43>+I<0000000FFF0000000000FFFFE000000007FFFFF00000001FFFFFFC0000007FFE03FE00+0001FFF0007F000003FFC0003F800007FF00001F80000FFE00007FC0001FFC0000FFC000+3FF80001FFE0007FF00003FFE000FFF00007FFE001FFE00007FFE001FFE00007FFE003FF+C00007FFE007FFC00007FFE007FFC00007FFE00FFFC00003FFC00FFF800001FF801FFF80+0000FF001FFF8000007E001FFF80000000003FFF80000000003FFF80000000003FFF0000+0000007FFF00000000007FFF00000000007FFF00080000007FFF01FFF800007FFF07FFFF+0000FFFF0FFFFFC000FFFF1FFFFFF000FFFF3F007FF800FFFF3C003FFC00FFFF78001FFE+00FFFFF0000FFF00FFFFF00007FF80FFFFE00007FFC0FFFFE00007FFC0FFFFC00007FFE0+FFFFC00003FFF0FFFF800003FFF0FFFF800003FFF8FFFF800003FFF8FFFF800003FFF8FF+FF800003FFF8FFFF000003FFFCFFFF000003FFFCFFFF000003FFFC7FFF000003FFFC7FFF+000003FFFC7FFF000003FFFC7FFF000003FFFC7FFF000003FFFC7FFF000003FFFC3FFF00+0003FFFC3FFF000003FFFC3FFF000003FFFC3FFF000003FFFC1FFF000003FFF81FFF8000+03FFF81FFF800003FFF80FFF800003FFF80FFF800003FFF007FF800007FFF007FF800007+FFE003FFC00007FFC001FFC00007FFC001FFE0000FFF8000FFF0000FFF00007FF8001FFE+00003FFC007FFC00001FFF01FFF800000FFFFFFFF0000003FFFFFFC0000000FFFFFF0000+00003FFFFC0000000007FFC00000364F7ACD43>I<1F000000000000001F800000000000+001FC00000000000001FFF8000000000001FFFFFFFFFFFFF801FFFFFFFFFFFFF801FFFFF+FFFFFFFF801FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFFFF003FFFFFFFFFFFFE+003FFFFFFFFFFFFC003FFFFFFFFFFFF8003FFFFFFFFFFFF8003FFFFFFFFFFFF0003FFFFF+FFFFFFE0003FFFFFFFFFFFC0007FFFFFFFFFFF80007F800000007F00007E00000000FF00+007E00000001FE00007C00000003FC00007C00000003F800007C00000007F000007C0000+000FF000007C0000001FE00000F80000003FC00000F80000007F800000F80000007F0000+00F8000000FE00000000000001FE00000000000003FC00000000000003F8000000000000+07F00000000000000FF00000000000001FE00000000000001FE00000000000003FC00000+000000003FC00000000000007F80000000000000FF80000000000000FF80000000000001+FF00000000000001FF00000000000003FF00000000000003FE00000000000007FE000000+00000007FE0000000000000FFE0000000000000FFE0000000000000FFC0000000000001F+FC0000000000001FFC0000000000003FFC0000000000003FFC0000000000003FFC000000+0000003FFC0000000000007FFC0000000000007FF80000000000007FF80000000000007F+F8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000+000000FFF8000000000001FFF8000000000001FFF8000000000001FFF8000000000001FF+F8000000000001FFF8000000000001FFF8000000000001FFF8000000000001FFF8000000+000001FFF8000000000001FFF8000000000001FFF8000000000001FFF8000000000000FF+F0000000000000FFF00000000000003FC00000000000001F8000000000395279D043>I<+000007FFC0000000007FFFFC00000003FFFFFF8000000FFFFFFFE000001FFC01FFF80000+3FE0003FFC00007F80000FFE0000FF000007FF0001FE000003FF0003FC000001FF8007FC+000001FFC007F8000000FFC00FF8000000FFC00FF8000000FFE00FF80000007FE00FF800+00007FE01FF80000007FE01FFC0000007FE01FFC0000007FE01FFE0000007FE01FFF0000+007FE01FFF800000FFE01FFFE00000FFC01FFFF80000FFC01FFFFE0001FF800FFFFF0001+FF800FFFFFC003FF000FFFFFF007FE0007FFFFF807FC0007FFFFFE1FF80003FFFFFFBFF0+0001FFFFFFFFE00001FFFFFFFF800000FFFFFFFE0000007FFFFFFF0000003FFFFFFF8000+000FFFFFFFE0000007FFFFFFF0000001FFFFFFFC000007FFFFFFFE00001FFFFFFFFF0000+3FFFFFFFFF8000FFE7FFFFFF8001FF81FFFFFFC003FF007FFFFFE007FE001FFFFFF00FFC+000FFFFFF01FF80003FFFFF01FF80000FFFFF83FF000007FFFF83FF000001FFFF87FE000+0007FFFC7FE0000001FFFC7FE0000000FFFCFFC00000007FFCFFC00000003FFCFFC00000+003FFCFFC00000001FFCFFC00000001FFCFFC00000000FFCFFC00000000FFCFFC0000000+0FF8FFC00000000FF8FFE00000000FF87FE00000000FF07FF00000001FF07FF00000001F+F03FF80000003FE01FF80000003FC01FFC0000007FC00FFE000000FF8007FF800003FF00+03FFE0000FFE0001FFFC00FFFC00007FFFFFFFF000003FFFFFFFE000000FFFFFFF800000+01FFFFFC000000000FFFC00000364F7ACD43>I<00000FFF8000000000FFFFF800000003+FFFFFE0000000FFFFFFF8000001FFF03FFC000007FF800FFE00000FFF0003FF00001FFE0+001FF80003FFC0001FFC0007FFC0000FFE000FFF80000FFF000FFF800007FF001FFF8000+07FF803FFF800007FF803FFF000007FFC07FFF000007FFC07FFF000003FFE07FFF000003+FFE07FFF000003FFF0FFFF000003FFF0FFFF000003FFF0FFFF000003FFF0FFFF000003FF+F8FFFF000003FFF8FFFF000003FFF8FFFF000003FFF8FFFF000003FFF8FFFF000003FFF8+FFFF000003FFFCFFFF000003FFFCFFFF000003FFFCFFFF000003FFFC7FFF000007FFFC7F+FF000007FFFC7FFF000007FFFC3FFF000007FFFC3FFF000007FFFC3FFF00000FFFFC1FFF+80000FFFFC0FFF80001FFFFC0FFF80001FFFFC07FF80003FFFFC03FFC0003FFFFC01FFE0+007BFFFC00FFF000F3FFFC007FF803F3FFFC001FFFFFE3FFFC000FFFFFC3FFFC0003FFFF+83FFF800007FFE03FFF80000004003FFF80000000003FFF80000000003FFF80000000003+FFF00000000007FFF00000000007FFF00000000007FFF001F8000007FFE003FC000007FF+E007FE000007FFC00FFF000007FFC01FFF80000FFF801FFF80000FFF801FFF80000FFF00+1FFF80001FFF001FFF80001FFE001FFF80003FFC001FFF00003FFC000FFE00007FF8000F+FC0000FFF0000FF80001FFE00007F00003FFC00003FC000FFF800003FF807FFE000001FF+FFFFFC0000007FFFFFF00000003FFFFFC00000000FFFFE0000000000FFF0000000364F7A+CD43>I<07F0000FF8001FFC003FFE007FFF00FFFF80FFFF80FFFF80FFFF80FFFF80FFFF+80FFFF807FFF003FFE001FFC000FF80007F0000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+0000000007F0000FF8001FFC003FFE007FFF00FFFF80FFFF80FFFF80FFFF80FFFF80FFFF+80FFFF807FFF003FFE001FFC000FF80007F000113576B425>I<00000000001F00000000+000000000000003F80000000000000000000007FC0000000000000000000007FC0000000+00000000000000FFE000000000000000000000FFE000000000000000000000FFE0000000+00000000000001FFF000000000000000000001FFF000000000000000000003FFF8000000+00000000000003FFF800000000000000000003FFF800000000000000000007FFFC000000+00000000000007FFFC00000000000000000007FFFC0000000000000000000FFFFE000000+0000000000000FFFFE0000000000000000001FFFFF0000000000000000001FFFFF000000+0000000000001FFFFF0000000000000000003FFFFF8000000000000000003F7FFF800000+0000000000007F7FFFC000000000000000007E7FFFC000000000000000007E3FFFC00000+000000000000FE3FFFE00000000000000000FC1FFFE00000000000000001FC1FFFF00000+000000000001F81FFFF00000000000000001F80FFFF00000000000000003F80FFFF80000+000000000003F007FFF80000000000000007F007FFFC0000000000000007E007FFFC0000+000000000007E003FFFC000000000000000FE003FFFE000000000000000FC001FFFE0000+00000000001FC001FFFF000000000000001F8001FFFF000000000000001F8000FFFF0000+00000000003F8000FFFF800000000000003F00007FFF800000000000007F00007FFFC000+00000000007E00007FFFC00000000000007E00003FFFC0000000000000FE00003FFFE000+0000000000FC00001FFFE0000000000001FC00001FFFF0000000000001F800001FFFF000+0000000001F800000FFFF0000000000003F800000FFFF8000000000003F0000007FFF800+0000000007F0000007FFFC000000000007E0000007FFFC000000000007E0000003FFFC00+000000000FFFFFFFFFFFFE00000000000FFFFFFFFFFFFE00000000001FFFFFFFFFFFFF00+000000001FFFFFFFFFFFFF00000000001FFFFFFFFFFFFF00000000003F80000000FFFF80+000000003F000000007FFF80000000007F000000007FFFC0000000007F000000007FFFC0+000000007E000000003FFFC000000000FE000000003FFFE000000000FC000000001FFFE0+00000001FC000000001FFFF000000001FC000000001FFFF000000001F8000000000FFFF0+00000003F8000000000FFFF800000003F00000000007FFF800000007F00000000007FFFC+00000007F00000000007FFFC00000007E00000000003FFFC0000000FE00000000003FFFE+0000000FC00000000003FFFE0000001FC00000000001FFFF000000FFFC0000000001FFFF+0000FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFF+FFE0FFFFFFF800000FFFFFFFFFE0FFFFFFF800000FFFFFFFFFE05B547BD366>65+D<FFFFFFFFFFFFFFC0000000FFFFFFFFFFFFFFFE000000FFFFFFFFFFFFFFFFC00000FFFF+FFFFFFFFFFFFF00000FFFFFFFFFFFFFFFFFC00000007FFF0000003FFFF00000007FFF000+00007FFF80000007FFF00000003FFFC0000007FFF00000000FFFE0000007FFF000000007+FFF0000007FFF000000007FFF8000007FFF000000003FFF8000007FFF000000003FFFC00+0007FFF000000001FFFC000007FFF000000001FFFE000007FFF000000000FFFE000007FF+F000000000FFFE000007FFF000000000FFFF000007FFF000000000FFFF000007FFF00000+0000FFFF000007FFF000000000FFFF000007FFF000000000FFFF000007FFF000000000FF+FF000007FFF000000000FFFF000007FFF000000000FFFF000007FFF000000001FFFE0000+07FFF000000001FFFE000007FFF000000001FFFC000007FFF000000003FFFC000007FFF0+00000003FFF8000007FFF000000007FFF8000007FFF000000007FFF0000007FFF0000000+0FFFE0000007FFF00000001FFFC0000007FFF00000007FFF00000007FFF0000001FFFE00+000007FFF0000007FFF800000007FFFFFFFFFFFFE000000007FFFFFFFFFFFF0000000007+FFFFFFFFFFFF8000000007FFFFFFFFFFFFF000000007FFF0000003FFFE00000007FFF000+00003FFF80000007FFF00000000FFFE0000007FFF000000007FFF0000007FFF000000001+FFF8000007FFF000000001FFFC000007FFF000000000FFFE000007FFF0000000007FFF00+0007FFF0000000007FFF800007FFF0000000003FFFC00007FFF0000000003FFFC00007FF+F0000000001FFFE00007FFF0000000001FFFE00007FFF0000000001FFFE00007FFF00000+00001FFFF00007FFF0000000001FFFF00007FFF0000000001FFFF00007FFF0000000000F+FFF00007FFF0000000000FFFF00007FFF0000000000FFFF00007FFF0000000001FFFF000+07FFF0000000001FFFF00007FFF0000000001FFFF00007FFF0000000001FFFE00007FFF0+000000001FFFE00007FFF0000000003FFFE00007FFF0000000003FFFC00007FFF0000000+003FFFC00007FFF0000000007FFF800007FFF000000000FFFF800007FFF000000000FFFF+000007FFF000000001FFFE000007FFF000000007FFFE000007FFF00000000FFFFC000007+FFF00000003FFFF0000007FFF0000001FFFFE000FFFFFFFFFFFFFFFFFF8000FFFFFFFFFF+FFFFFFFF0000FFFFFFFFFFFFFFFFF80000FFFFFFFFFFFFFFFFC00000FFFFFFFFFFFFFFF8+00000054527CD160>I<0000000001FFFC000001C0000000007FFFFFC00003C000000007+FFFFFFF80007C00000003FFFFFFFFE001FC0000000FFFFFFFFFF803FC0000003FFFFE003+FFC07FC000000FFFFC00003FF0FFC000003FFFE000000FF9FFC000007FFF80000003FFFF+C00001FFFE00000000FFFFC00003FFF8000000007FFFC00007FFF0000000003FFFC0000F+FFE0000000001FFFC0001FFFC0000000000FFFC0003FFF800000000007FFC0007FFF0000+00000003FFC000FFFE000000000001FFC000FFFE000000000001FFC001FFFC0000000000+00FFC003FFF8000000000000FFC003FFF80000000000007FC007FFF00000000000007FC0+0FFFF00000000000003FC00FFFF00000000000003FC01FFFE00000000000001FC01FFFE0+0000000000001FC01FFFE00000000000001FC03FFFC00000000000001FC03FFFC0000000+0000000FC03FFFC00000000000000FC07FFFC00000000000000FC07FFFC0000000000000+0FC07FFFC000000000000000007FFF8000000000000000007FFF800000000000000000FF+FF800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF8000+00000000000000FFFF800000000000000000FFFF800000000000000000FFFF8000000000+00000000FFFF800000000000000000FFFF800000000000000000FFFF8000000000000000+00FFFF800000000000000000FFFF800000000000000000FFFF800000000000000000FFFF+8000000000000000007FFF8000000000000000007FFF8000000000000000007FFFC00000+0000000000007FFFC000000000000000007FFFC000000000000007C03FFFC00000000000+0007C03FFFC000000000000007C03FFFC000000000000007C01FFFE000000000000007C0+1FFFE000000000000007C01FFFE00000000000000FC00FFFF00000000000000F800FFFF0+0000000000000F8007FFF00000000000001F8003FFF80000000000001F8003FFF8000000+0000001F0001FFFC0000000000003F0000FFFE0000000000007E0000FFFE000000000000+7E00007FFF000000000000FC00003FFF800000000001F800001FFFC00000000003F80000+0FFFE00000000007F0000007FFF0000000000FE0000003FFFC000000001FC0000001FFFE+000000007F800000007FFF80000000FF000000003FFFE0000007FE000000000FFFFE0000+1FF80000000003FFFFE001FFF00000000000FFFFFFFFFFC000000000003FFFFFFFFF0000+0000000007FFFFFFFC000000000000007FFFFFE00000000000000001FFFC000000005254+79D261>I<FFFFFFFFFFFFFF8000000000FFFFFFFFFFFFFFFC00000000FFFFFFFFFFFFFF+FF80000000FFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFC0000000007FFF000000F+FFFF0000000007FFF0000000FFFFC000000007FFF00000001FFFE000000007FFF0000000+07FFF800000007FFF000000001FFFC00000007FFF000000000FFFE00000007FFF0000000+007FFF00000007FFF0000000003FFF80000007FFF0000000001FFFC0000007FFF0000000+000FFFC0000007FFF00000000007FFE0000007FFF00000000003FFF0000007FFF0000000+0003FFF8000007FFF00000000001FFF8000007FFF00000000001FFFC000007FFF0000000+0000FFFC000007FFF00000000000FFFE000007FFF00000000000FFFE000007FFF0000000+00007FFF000007FFF000000000007FFF000007FFF000000000007FFF000007FFF0000000+00007FFF800007FFF000000000003FFF800007FFF000000000003FFF800007FFF0000000+00003FFFC00007FFF000000000003FFFC00007FFF000000000003FFFC00007FFF0000000+00003FFFC00007FFF000000000003FFFC00007FFF000000000003FFFE00007FFF0000000+00003FFFE00007FFF000000000003FFFE00007FFF000000000001FFFE00007FFF0000000+00001FFFE00007FFF000000000001FFFE00007FFF000000000001FFFE00007FFF0000000+00001FFFE00007FFF000000000001FFFE00007FFF000000000001FFFE00007FFF0000000+00001FFFE00007FFF000000000001FFFE00007FFF000000000003FFFE00007FFF0000000+00003FFFE00007FFF000000000003FFFE00007FFF000000000003FFFC00007FFF0000000+00003FFFC00007FFF000000000003FFFC00007FFF000000000003FFFC00007FFF0000000+00003FFFC00007FFF000000000003FFF800007FFF000000000003FFF800007FFF0000000+00007FFF800007FFF000000000007FFF000007FFF000000000007FFF000007FFF0000000+00007FFF000007FFF00000000000FFFE000007FFF00000000000FFFE000007FFF0000000+0000FFFC000007FFF00000000001FFFC000007FFF00000000001FFF8000007FFF0000000+0003FFF0000007FFF00000000007FFF0000007FFF00000000007FFE0000007FFF0000000+000FFFC0000007FFF0000000001FFF80000007FFF0000000003FFF00000007FFF0000000+00FFFE00000007FFF000000001FFFC00000007FFF000000007FFF800000007FFF0000000+1FFFF000000007FFF0000000FFFFC000000007FFF000000FFFFF000000FFFFFFFFFFFFFF+FFFE000000FFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFC0000000FFFFFFFFFFFFFF+FC00000000FFFFFFFFFFFFFF80000000005B527CD167>I<FFFFFFFFFFFFFFFFFF80FFFF+FFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFFFF80FFFFFFFFFFFFFFFF+FF800007FFF8000001FFFFC00007FFF80000001FFFC00007FFF800000007FFC00007FFF8+00000001FFC00007FFF800000000FFC00007FFF8000000007FC00007FFF8000000003FC0+0007FFF8000000001FC00007FFF8000000001FC00007FFF8000000000FE00007FFF80000+00000FE00007FFF80000000007E00007FFF80000000007E00007FFF80000000007E00007+FFF80000000003E00007FFF80000000003E00007FFF80000000003E00007FFF80000F800+03E00007FFF80000F80003F00007FFF80000F80001F00007FFF80000F80001F00007FFF8+0000F80001F00007FFF80000F80001F00007FFF80000F80000000007FFF80001F8000000+0007FFF80001F80000000007FFF80001F80000000007FFF80003F80000000007FFF80007+F80000000007FFF8000FF80000000007FFF8007FF80000000007FFFFFFFFF80000000007+FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF800+00000007FFF8007FF80000000007FFF8000FF80000000007FFF80007F80000000007FFF8+0003F80000000007FFF80001F80000000007FFF80001F80000000007FFF80001F8000000+0007FFF80000F80000000007FFF80000F800003E0007FFF80000F800003E0007FFF80000+F800003E0007FFF80000F800007C0007FFF80000F800007C0007FFF80000F800007C0007+FFF800000000007C0007FFF800000000007C0007FFF80000000000FC0007FFF800000000+00FC0007FFF80000000000F80007FFF80000000000F80007FFF80000000001F80007FFF8+0000000001F80007FFF80000000001F80007FFF80000000003F80007FFF80000000003F0+0007FFF80000000007F00007FFF8000000000FF00007FFF8000000000FF00007FFF80000+00001FF00007FFF8000000003FF00007FFF8000000007FE00007FFF800000001FFE00007+FFF800000007FFE00007FFF80000001FFFE00007FFF8000003FFFFE0FFFFFFFFFFFFFFFF+FFE0FFFFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFF+FFFFFFFFFFC04F517CD058>I<FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE00FFFFFF+FFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE000007FFF8000007FFFF+000007FFF80000007FFF000007FFF80000001FFF000007FFF800000007FF000007FFF800+000003FF000007FFF800000001FF000007FFF800000000FF000007FFF8000000007F0000+07FFF8000000003F000007FFF8000000003F800007FFF8000000003F800007FFF8000000+001F800007FFF8000000001F800007FFF8000000001F800007FFF8000000000F800007FF+F8000000000F800007FFF8000000000F800007FFF8000000000F800007FFF8000000000F+C00007FFF80000F80007C00007FFF80000F80007C00007FFF80000F80007C00007FFF800+00F80007C00007FFF80000F80000000007FFF80000F80000000007FFF80000F800000000+07FFF80001F80000000007FFF80001F80000000007FFF80001F80000000007FFF80003F8+0000000007FFF80007F80000000007FFF8000FF80000000007FFF8007FF80000000007FF+FFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF80000000007FFFFFFFFF80000+000007FFFFFFFFF80000000007FFF8007FF80000000007FFF8000FF80000000007FFF800+07F80000000007FFF80003F80000000007FFF80001F80000000007FFF80001F800000000+07FFF80001F80000000007FFF80000F80000000007FFF80000F80000000007FFF80000F8+0000000007FFF80000F80000000007FFF80000F80000000007FFF80000F80000000007FF+F80000F80000000007FFF80000000000000007FFF80000000000000007FFF80000000000+000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800+00000000000007FFF80000000000000007FFF80000000000000007FFF800000000000000+07FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8000000+0000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FF+F80000000000000007FFF8000000000000FFFFFFFFFFF800000000FFFFFFFFFFF8000000+00FFFFFFFFFFF800000000FFFFFFFFFFF800000000FFFFFFFFFFF8000000004A517CD055+>I<0000000001FFFC000001C000000000007FFFFFC00003C00000000007FFFFFFF80007+C0000000003FFFFFFFFE001FC000000000FFFFFFFFFF803FC000000003FFFFE003FFC07F+C00000000FFFFC00003FF0FFC00000003FFFE000000FF9FFC00000007FFF80000003FFFF+C0000001FFFE00000000FFFFC0000003FFF8000000007FFFC0000007FFF0000000003FFF+C000000FFFE0000000001FFFC000001FFFC0000000000FFFC000003FFF800000000007FF+C000007FFF000000000003FFC00000FFFE000000000001FFC00000FFFE000000000001FF+C00001FFFC000000000000FFC00003FFF8000000000000FFC00003FFF80000000000007F+C00007FFF00000000000007FC0000FFFF00000000000003FC0000FFFF00000000000003F+C0001FFFE00000000000001FC0001FFFE00000000000001FC0001FFFE00000000000001F+C0003FFFC00000000000001FC0003FFFC00000000000000FC0003FFFC00000000000000F+C0007FFFC00000000000000FC0007FFFC00000000000000FC0007FFFC000000000000000+00007FFF800000000000000000007FFF80000000000000000000FFFF8000000000000000+0000FFFF80000000000000000000FFFF80000000000000000000FFFF8000000000000000+0000FFFF80000000000000000000FFFF80000000000000000000FFFF8000000000000000+0000FFFF80000000000000000000FFFF80000000000000000000FFFF8000000000000000+0000FFFF80000000000000000000FFFF80000000000000000000FFFF8000000000000000+0000FFFF800000000000000000007FFF800000007FFFFFFFFFE07FFF800000007FFFFFFF+FFE07FFFC00000007FFFFFFFFFE07FFFC00000007FFFFFFFFFE07FFFC00000007FFFFFFF+FFE03FFFC000000000003FFFC0003FFFC000000000003FFFC0003FFFC000000000003FFF+C0001FFFE000000000003FFFC0001FFFE000000000003FFFC0001FFFE000000000003FFF+C0000FFFF000000000003FFFC0000FFFF000000000003FFFC00007FFF000000000003FFF+C00003FFF800000000003FFFC00003FFF800000000003FFFC00001FFFC00000000003FFF+C00000FFFE00000000003FFFC00000FFFE00000000003FFFC000007FFF00000000003FFF+C000003FFF80000000003FFFC000001FFFC0000000003FFFC000000FFFE0000000007FFF+C0000007FFF0000000007FFFC0000003FFFC00000000FFFFC0000001FFFF00000000FFFF+C00000007FFF80000001FFFFC00000003FFFF0000007FBFFC00000000FFFFE00001FF1FF+C000000003FFFFF001FFE0FFC000000000FFFFFFFFFFC07FC0000000003FFFFFFFFF001F+C00000000007FFFFFFFC0007C000000000007FFFFFE00001C0000000000001FFFE000000+00005B5479D26A>I<FFFFFFFFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFFF+FFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFF0007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFFFFFFFFFFFFFFFE0000007FF+FFFFFFFFFFFFFFE0000007FFFFFFFFFFFFFFFFE0000007FFFFFFFFFFFFFFFFE0000007FF+FFFFFFFFFFFFFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE0000007FF+F8000000001FFFE0000007FFF8000000001FFFE0000007FFF8000000001FFFE000FFFFFF+FFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFFFFFFFF+FFFFC003FFFFFFFFFFFFFFFFFFFFC003FFFFFFFFFF60527CD169>I<FFFFFFFFFFC0FFFF+FFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC00007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007FFF800000007+FFF800000007FFF800000007FFF800000007FFF80000FFFFFFFFFFC0FFFFFFFFFFC0FFFF+FFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC02A527CD132>I<FFFFFFFFFFF8000000FFFFFFFF+FFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF80000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF800000000000007FFF800000000000007FFF800000000000007FFF8+00000000000007FFF8000000007C0007FFF8000000007C0007FFF8000000007C0007FFF8+000000007C0007FFF800000000FC0007FFF800000000F80007FFF800000000F80007FFF8+00000000F80007FFF800000000F80007FFF800000000F80007FFF800000001F80007FFF8+00000001F80007FFF800000001F80007FFF800000003F80007FFF800000003F80007FFF8+00000007F80007FFF800000007F00007FFF80000000FF00007FFF80000000FF00007FFF8+0000001FF00007FFF80000003FF00007FFF80000007FF00007FFF8000000FFF00007FFF8+000003FFF00007FFF8000007FFF00007FFF800003FFFF00007FFF80001FFFFF0FFFFFFFF+FFFFFFFFE0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFE0FFFFFFFF+FFFFFFFFE046527CD151>76 D<FFFFFFFC000000000000003FFFFFFEFFFFFFFE00000000+0000007FFFFFFEFFFFFFFE000000000000007FFFFFFEFFFFFFFF00000000000000FFFFFF+FEFFFFFFFF00000000000000FFFFFFFE0007FFFF00000000000000FFFFC0000007FFFF80+000000000001EFFFC0000007FFFF80000000000001EFFFC0000007EFFFC0000000000003+CFFFC0000007EFFFC0000000000003CFFFC0000007E7FFE00000000000078FFFC0000007+E7FFE00000000000078FFFC0000007E3FFF000000000000F0FFFC0000007E3FFF0000000+00000F0FFFC0000007E1FFF800000000001E0FFFC0000007E1FFF800000000001E0FFFC0+000007E1FFF800000000001E0FFFC0000007E0FFFC00000000003C0FFFC0000007E0FFFC+00000000003C0FFFC0000007E07FFE0000000000780FFFC0000007E07FFE000000000078+0FFFC0000007E03FFF0000000000F00FFFC0000007E03FFF0000000000F00FFFC0000007+E01FFF8000000001E00FFFC0000007E01FFF8000000001E00FFFC0000007E00FFFC00000+0003C00FFFC0000007E00FFFC000000003C00FFFC0000007E00FFFC000000003C00FFFC0+000007E007FFE000000007800FFFC0000007E007FFE000000007800FFFC0000007E003FF+F00000000F000FFFC0000007E003FFF00000000F000FFFC0000007E001FFF80000001E00+0FFFC0000007E001FFF80000001E000FFFC0000007E000FFFC0000003C000FFFC0000007+E000FFFC0000003C000FFFC0000007E000FFFC0000003C000FFFC0000007E0007FFE0000+0078000FFFC0000007E0007FFE00000078000FFFC0000007E0003FFF000000F0000FFFC0+000007E0003FFF000000F0000FFFC0000007E0001FFF800001E0000FFFC0000007E0001F+FF800001E0000FFFC0000007E0000FFFC00003C0000FFFC0000007E0000FFFC00003C000+0FFFC0000007E00007FFE0000780000FFFC0000007E00007FFE0000780000FFFC0000007+E00007FFE0000780000FFFC0000007E00003FFF0000F00000FFFC0000007E00003FFF000+0F00000FFFC0000007E00001FFF8001E00000FFFC0000007E00001FFF8001E00000FFFC0+000007E00000FFFC003C00000FFFC0000007E00000FFFC003C00000FFFC0000007E00000+7FFE007800000FFFC0000007E000007FFE007800000FFFC0000007E000007FFE00780000+0FFFC0000007E000003FFF00F000000FFFC0000007E000003FFF00F000000FFFC0000007+E000001FFF81E000000FFFC0000007E000001FFF81E000000FFFC0000007E000000FFFC3+C000000FFFC0000007E000000FFFC3C000000FFFC0000007E0000007FFE78000000FFFC0+000007E0000007FFE78000000FFFC0000007E0000003FFFF0000000FFFC0000007E00000+03FFFF0000000FFFC0000007E0000003FFFF0000000FFFC0000007E0000001FFFE000000+0FFFC0000007E0000001FFFE0000000FFFC0000007E0000000FFFC0000000FFFC0000007+E0000000FFFC0000000FFFC0000007E00000007FF80000000FFFC0000007E00000007FF8+0000000FFFC0000007E00000003FF00000000FFFC0000007E00000003FF00000000FFFC0+00003FFC0000001FE00000000FFFC000FFFFFFFF00001FE00001FFFFFFFFFEFFFFFFFF00+001FE00001FFFFFFFFFEFFFFFFFF00000FC00001FFFFFFFFFEFFFFFFFF00000FC00001FF+FFFFFFFEFFFFFFFF000007800001FFFFFFFFFE77527CD180>I<000000000FFFC0000000+0000000003FFFFFF000000000000001FFFFFFFE0000000000000FFFFFFFFFC0000000000+03FFFC00FFFF00000000000FFFC0000FFFC0000000003FFF000003FFF0000000007FFC00+0000FFF800000001FFF80000007FFE00000003FFE00000001FFF00000007FFC00000000F+FF8000000FFF8000000007FFC000001FFF0000000003FFE000003FFF0000000003FFF000+007FFE0000000001FFF80000FFFC0000000000FFFC0000FFFC0000000000FFFC0001FFF8+00000000007FFE0003FFF800000000007FFF0003FFF000000000003FFF0007FFF0000000+00003FFF8007FFE000000000001FFF800FFFE000000000001FFFC00FFFE000000000001F+FFC01FFFE000000000001FFFE01FFFC000000000000FFFE01FFFC000000000000FFFE03F+FFC000000000000FFFF03FFFC000000000000FFFF03FFFC000000000000FFFF07FFF8000+0000000007FFF87FFF80000000000007FFF87FFF80000000000007FFF87FFF8000000000+0007FFF87FFF80000000000007FFF8FFFF80000000000007FFFCFFFF80000000000007FF+FCFFFF80000000000007FFFCFFFF80000000000007FFFCFFFF80000000000007FFFCFFFF+80000000000007FFFCFFFF80000000000007FFFCFFFF80000000000007FFFCFFFF800000+00000007FFFCFFFF80000000000007FFFCFFFF80000000000007FFFCFFFF800000000000+07FFFCFFFF80000000000007FFFCFFFF80000000000007FFFCFFFF80000000000007FFFC+7FFF80000000000007FFF87FFFC000000000000FFFF87FFFC000000000000FFFF87FFFC0+00000000000FFFF87FFFC000000000000FFFF83FFFC000000000000FFFF03FFFC0000000+00000FFFF03FFFE000000000001FFFF01FFFE000000000001FFFE01FFFE000000000001F+FFE01FFFE000000000001FFFE00FFFF000000000003FFFC00FFFF000000000003FFFC007+FFF800000000007FFF8007FFF800000000007FFF8003FFF800000000007FFF0001FFFC00+00000000FFFE0001FFFE0000000001FFFE0000FFFE0000000001FFFC00007FFF00000000+03FFF800003FFF8000000007FFF000001FFFC00000000FFFE000000FFFE00000001FFFC0+000007FFF00000003FFF80000003FFF80000007FFF00000001FFFC000000FFFE00000000+FFFF000003FFFC000000003FFFE0001FFFF0000000000FFFFC00FFFFC00000000003FFFF+FFFFFF000000000000FFFFFFFFFC0000000000001FFFFFFFE000000000000003FFFFFF00+000000000000001FFFE000000000565479D265>79 D<FFFFFFFFFFFFFF000000FFFFFFFF+FFFFFFF80000FFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFFE000FFFFFFFFFFFFFFFFF000+0007FFF000001FFFFC000007FFF0000001FFFF000007FFF00000007FFF800007FFF00000+003FFFC00007FFF00000000FFFE00007FFF00000000FFFF00007FFF000000007FFF00007+FFF000000003FFF80007FFF000000003FFFC0007FFF000000003FFFC0007FFF000000001+FFFE0007FFF000000001FFFE0007FFF000000001FFFE0007FFF000000001FFFE0007FFF0+00000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF+0007FFF000000001FFFF0007FFF000000001FFFF0007FFF000000001FFFF0007FFF00000+0001FFFF0007FFF000000001FFFE0007FFF000000001FFFE0007FFF000000001FFFE0007+FFF000000001FFFC0007FFF000000003FFFC0007FFF000000003FFFC0007FFF000000003+FFF80007FFF000000007FFF00007FFF00000000FFFE00007FFF00000001FFFE00007FFF0+0000003FFFC00007FFF00000007FFF000007FFF0000001FFFE000007FFF000001FFFFC00+0007FFFFFFFFFFFFF0000007FFFFFFFFFFFFC0000007FFFFFFFFFFFE00000007FFFFFFFF+FFE000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007+FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800000000+00000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8+0000000000000007FFF80000000000000007FFF80000000000000007FFF8000000000000+0007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF80000+000000000007FFF80000000000000007FFF80000000000000007FFF80000000000000007+FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF800000000+00000007FFF80000000000000007FFF80000000000000007FFF80000000000000007FFF8+0000000000000007FFF80000000000000007FFF80000000000000007FFF8000000000000+FFFFFFFFFFC000000000FFFFFFFFFFC000000000FFFFFFFFFFC000000000FFFFFFFFFFC0+00000000FFFFFFFFFFC00000000050527CD15C>I<000000000FFFC00000000000000003+FFFFFF000000000000001FFFFFFFE0000000000000FFFFFFFFFC000000000003FFFC00FF+FF00000000000FFFC0000FFFC0000000003FFF000003FFF0000000007FFC000000FFF800+000001FFF00000003FFE00000003FFE00000001FFF00000007FFC00000000FFF8000000F+FF8000000007FFC000001FFF0000000003FFE000003FFE0000000001FFF000007FFC0000+000000FFF80000FFFC0000000000FFFC0000FFF800000000007FFC0001FFF80000000000+7FFE0003FFF000000000003FFF0003FFF000000000003FFF0007FFE000000000001FFF80+07FFE000000000001FFF800FFFE000000000001FFFC00FFFC000000000000FFFC01FFFC0+00000000000FFFE01FFFC000000000000FFFE01FFF80000000000007FFE03FFF80000000+000007FFF03FFF80000000000007FFF03FFF80000000000007FFF07FFF80000000000007+FFF87FFF80000000000007FFF87FFF00000000000003FFF87FFF00000000000003FFF87F+FF00000000000003FFF8FFFF00000000000003FFFCFFFF00000000000003FFFCFFFF0000+0000000003FFFCFFFF00000000000003FFFCFFFF00000000000003FFFCFFFF0000000000+0003FFFCFFFF00000000000003FFFCFFFF00000000000003FFFCFFFF00000000000003FF+FCFFFF00000000000003FFFCFFFF00000000000003FFFCFFFF00000000000003FFFCFFFF+00000000000003FFFCFFFF00000000000003FFFCFFFF00000000000003FFFC7FFF000000+00000003FFF87FFF00000000000003FFF87FFF80000000000007FFF87FFF800000000000+07FFF87FFF80000000000007FFF83FFF80000000000007FFF03FFF80000000000007FFF0+3FFF80000000000007FFF01FFFC000000000000FFFE01FFFC000000000000FFFE01FFFC0+00000000000FFFE00FFFC000000000000FFFC00FFFE000000000001FFFC007FFE0000000+00001FFF8007FFF000000000003FFF8003FFF00001FE00003FFF0001FFF80007FF80007F+FE0001FFF8000FFFE0007FFE0000FFFC003FFFF000FFFC00007FFC007F03F800FFF80000+3FFE007C00FC01FFF000001FFF00F8007E03FFE000000FFF80F8003F07FFC0000007FFC0+F0001F8FFF80000003FFE0F0001F9FFF00000001FFF0F0000FFFFE00000000FFFCF8000F+FFFC000000003FFFF80007FFF0000000000FFFFC000FFFC00000000003FFFF00FFFF0000+00000000FFFFFFFFFC0000000000001FFFFFFFFC00000C00000003FFFFFFFC00001E0000+00001FFFE3FE00001E00000000000001FF00001E00000000000001FF80003E0000000000+0001FFC0007E00000000000001FFE000FE00000000000001FFF807FE00000000000000FF+FFFFFE00000000000000FFFFFFFC00000000000000FFFFFFFC000000000000007FFFFFFC+000000000000007FFFFFFC000000000000007FFFFFF8000000000000007FFFFFF8000000+000000003FFFFFF8000000000000003FFFFFF0000000000000001FFFFFE0000000000000+001FFFFFE0000000000000000FFFFFC00000000000000007FFFF800000000000000003FF+FF000000000000000001FFFE0000000000000000007FF80000000000000000001FE00057+6A79D265>I<FFFFFFFFFFFFF00000000000FFFFFFFFFFFFFF8000000000FFFFFFFFFFFF+FFF800000000FFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFC00000000007FFF00000+FFFFF00000000007FFF000000FFFF80000000007FFF0000001FFFE0000000007FFF00000+00FFFF0000000007FFF00000007FFF8000000007FFF00000003FFFC000000007FFF00000+001FFFC000000007FFF00000000FFFE000000007FFF00000000FFFF000000007FFF00000+000FFFF000000007FFF000000007FFF800000007FFF000000007FFF800000007FFF00000+0007FFF800000007FFF000000007FFFC00000007FFF000000007FFFC00000007FFF00000+0007FFFC00000007FFF000000007FFFC00000007FFF000000007FFFC00000007FFF00000+0007FFFC00000007FFF000000007FFFC00000007FFF000000007FFFC00000007FFF00000+0007FFF800000007FFF000000007FFF800000007FFF00000000FFFF800000007FFF00000+000FFFF000000007FFF00000000FFFE000000007FFF00000000FFFE000000007FFF00000+001FFFC000000007FFF00000003FFF8000000007FFF00000007FFF0000000007FFF00000+00FFFE0000000007FFF0000003FFFC0000000007FFF000000FFFF00000000007FFF00000+FFFFC00000000007FFFFFFFFFFFF000000000007FFFFFFFFFFF8000000000007FFFFFFFF+FFE0000000000007FFFFFFFFFFF8000000000007FFF00003FFFE000000000007FFF00000+7FFF800000000007FFF000003FFFC00000000007FFF000001FFFE00000000007FFF00000+0FFFF00000000007FFF0000007FFF80000000007FFF0000003FFFC0000000007FFF00000+03FFFE0000000007FFF0000001FFFE0000000007FFF0000001FFFE0000000007FFF00000+01FFFF0000000007FFF0000000FFFF0000000007FFF0000000FFFF0000000007FFF00000+00FFFF0000000007FFF0000000FFFF0000000007FFF0000000FFFF0000000007FFF00000+00FFFF0000000007FFF0000000FFFF0000000007FFF0000000FFFF8000000007FFF00000+00FFFF8000000007FFF0000000FFFF8000000007FFF0000000FFFF8000000007FFF00000+00FFFF8000000007FFF0000000FFFF8000000007FFF0000000FFFF8000000007FFF00000+00FFFF80001C0007FFF0000000FFFFC0003E0007FFF0000000FFFFC0003E0007FFF00000+00FFFFC0003E0007FFF00000007FFFC0003E0007FFF00000007FFFE0007E0007FFF00000+003FFFE0007C0007FFF00000003FFFF000FC0007FFF00000001FFFF001FCFFFFFFFFFF80+000FFFF803F8FFFFFFFFFF800003FFFE07F0FFFFFFFFFF800001FFFFFFE0FFFFFFFFFF80+00007FFFFFC0FFFFFFFFFF8000000FFFFF000000000000000000007FFC005F537CD164>+I<00000FFF800007000000FFFFF8000F000007FFFFFF001F00001FFFFFFFC03F00003FFF+FFFFF07F0000FFFC00FFF8FF0001FFE0000FFDFF0003FF800001FFFF0007FE0000007FFF+000FFC0000003FFF000FF80000000FFF001FF800000007FF001FF000000003FF003FF000+000003FF003FE000000001FF007FE000000000FF007FE000000000FF007FE0000000007F+00FFE0000000007F00FFE0000000003F00FFE0000000003F00FFF0000000003F00FFF000+0000003F00FFF8000000001F00FFF8000000001F00FFFC000000001F00FFFE000000001F+00FFFF000000000000FFFFC000000000007FFFF000000000007FFFFF00000000007FFFFF+F8000000003FFFFFFF800000003FFFFFFFFC0000001FFFFFFFFFC000001FFFFFFFFFF000+000FFFFFFFFFFC000007FFFFFFFFFF000003FFFFFFFFFFC00001FFFFFFFFFFE00000FFFF+FFFFFFF000007FFFFFFFFFF800003FFFFFFFFFFC00000FFFFFFFFFFE000003FFFFFFFFFE+000000FFFFFFFFFF0000001FFFFFFFFF80000000FFFFFFFF800000000FFFFFFFC0000000+007FFFFFC00000000007FFFFE00000000000FFFFE000000000003FFFE000000000000FFF+F0000000000007FFF0000000000003FFF0000000000003FFF0780000000001FFF0F80000+000000FFF0F80000000000FFF0F80000000000FFF0F800000000007FF0F800000000007F+F0FC00000000007FF0FC00000000007FF0FC00000000007FE0FE00000000007FE0FE0000+0000007FE0FF0000000000FFC0FF0000000000FFC0FF8000000000FFC0FFC000000001FF+80FFE000000001FF00FFF000000003FF00FFFC00000007FE00FFFF0000000FFC00FFFFC0+00001FF800FFFFF800007FF000FF1FFFC003FFE000FE0FFFFFFFFFC000FC03FFFFFFFF00+00F8007FFFFFFC0000F0000FFFFFF00000E000007FFF0000003C5479D24B>I<3FFFFFFF+FFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFF+FFFFFF803FFFFFFFFFFFFFFFFFFF803FFFC0003FFFC0007FFF803FFE00003FFFC00007FF+807FF800003FFFC00001FFC07FE000003FFFC00000FFC07FC000003FFFC000007FC07F80+00003FFFC000003FC07F0000003FFFC000001FC07F0000003FFFC000001FC07E0000003F+FFC000000FC07E0000003FFFC000000FC07E0000003FFFC000000FC07C0000003FFFC000+0007C07C0000003FFFC0000007C07C0000003FFFC0000007C07C0000003FFFC0000007C0+7C0000003FFFC0000007C0FC0000003FFFC0000007E0F80000003FFFC0000003E0F80000+003FFFC0000003E0F80000003FFFC0000003E0F80000003FFFC0000003E0F80000003FFF+C0000003E0F80000003FFFC0000003E0000000003FFFC000000000000000003FFFC00000+0000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000+0000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000000000+3FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0+00000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000+00000000003FFFC000000000000000003FFFC000000000000000003FFFC0000000000000+00003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003F+FFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC000+000000000000003FFFC000000000000000003FFFC000000000000000003FFFC000000000+000000003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000+003FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFF+C000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000+0000000000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000+0000003FFFC000000000000000003FFFC000000000000000003FFFC00000000000000000+3FFFC000000000000000003FFFC000000000000000003FFFC000000000000000003FFFC0+000000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFF000+000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFF0000053517BD05E>I<FFFFFFFFFFC0+0003FFFFFFFCFFFFFFFFFFC00003FFFFFFFCFFFFFFFFFFC00003FFFFFFFCFFFFFFFFFFC0+0003FFFFFFFCFFFFFFFFFFC00003FFFFFFFC0007FFF80000000000FFF0000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000001F80000007FFF80000+0000001F80000007FFF800000000001F80000007FFF800000000003F80000007FFF80000+0000003F80000003FFF800000000003F00000003FFFC00000000003F00000003FFFC0000+0000007F00000001FFFC00000000007F00000001FFFC00000000007E00000000FFFE0000+000000FE00000000FFFE0000000001FC000000007FFF0000000001FC000000007FFF0000+000003F8000000003FFF8000000007F8000000001FFF800000000FF0000000000FFFC000+00001FE00000000007FFE00000003FC00000000003FFF80000007F800000000001FFFC00+0003FF0000000000007FFF80000FFE0000000000003FFFF001FFF80000000000000FFFFF+FFFFF000000000000003FFFFFFFFC0000000000000007FFFFFFF00000000000000000FFF+FFF80000000000000000007FFF80000000005E537CD167>I<FFFFFFFFFE0000001FFFFF+FEFFFFFFFFFE0000001FFFFFFEFFFFFFFFFE0000001FFFFFFEFFFFFFFFFE0000001FFFFF+FEFFFFFFFFFE0000001FFFFFFE001FFFF000000000003FFE00001FFFF0000000000007F0+00000FFFF0000000000007E000000FFFF800000000000FE0000007FFF800000000000FC0+000007FFFC00000000000FC0000007FFFC00000000001FC0000003FFFE00000000001F80+000003FFFE00000000003F80000001FFFE00000000003F00000001FFFF00000000007F00+000000FFFF00000000007E00000000FFFF80000000007E00000000FFFF8000000000FE00+0000007FFFC000000000FC000000007FFFC000000001FC000000003FFFE000000001F800+0000003FFFE000000003F8000000001FFFE000000003F0000000001FFFF000000007F000+0000001FFFF000000007F0000000000FFFF800000007E0000000000FFFF80000000FE000+00000007FFFC0000000FC00000000007FFFC0000001FC00000000003FFFC0000001F8000+00000003FFFE0000003F800000000003FFFE0000003F800000000001FFFF0000003F0000+00000001FFFF0000007F000000000000FFFF8000007E000000000000FFFF800000FE0000+000000007FFF800000FC0000000000007FFFC00001FC0000000000007FFFC00001FC0000+000000003FFFE00001F80000000000003FFFE00003F80000000000001FFFF00003F00000+000000001FFFF00007F00000000000000FFFF00007E00000000000000FFFF8000FE00000+000000000FFFF8000FE000000000000007FFFC000FC000000000000007FFFC001FC00000+0000000003FFFE001F8000000000000003FFFE003F8000000000000001FFFE003F000000+0000000001FFFF007F0000000000000001FFFF007F0000000000000000FFFF807E000000+0000000000FFFF80FE00000000000000007FFFC0FC00000000000000007FFFC1FC000000+00000000003FFFC1F800000000000000003FFFE3F800000000000000001FFFE3F0000000+00000000001FFFF3F000000000000000001FFFF7F000000000000000000FFFFFE0000000+00000000000FFFFFE0000000000000000007FFFFC0000000000000000007FFFFC0000000+000000000003FFFF80000000000000000003FFFF80000000000000000003FFFF80000000+000000000001FFFF00000000000000000001FFFF00000000000000000000FFFE00000000+000000000000FFFE000000000000000000007FFC000000000000000000007FFC00000000+0000000000007FFC000000000000000000003FF8000000000000000000003FF800000000+0000000000001FF0000000000000000000001FF0000000000000000000000FE000000000+00000000000007C000000000005F537DD166>I<FFFFFFFFFC007FFFFFFFFE0000FFFFFF+F0FFFFFFFFFC007FFFFFFFFE0000FFFFFFF0FFFFFFFFFC007FFFFFFFFE0000FFFFFFF0FF+FFFFFFFC007FFFFFFFFE0000FFFFFFF0FFFFFFFFFC007FFFFFFFFE0000FFFFFFF0003FFF+C00000001FFFE000000000FFF800003FFFE00000001FFFF0000000000FC000001FFFE000+00000FFFF0000000000F8000001FFFE00000000FFFF8000000000F8000001FFFF0000000+0FFFF8000000001F8000000FFFF000000007FFF8000000001F0000000FFFF800000007FF+FC000000001F0000000FFFF800000003FFFC000000003F00000007FFF800000003FFFC00+0000003E00000007FFFC00000003FFFE000000003E00000003FFFC00000001FFFE000000+007C00000003FFFC00000001FFFF000000007C00000003FFFE00000001FFFF00000000FC+00000001FFFE00000001FFFF00000000F800000001FFFF00000003FFFF80000000F80000+0001FFFF00000003FFFF80000001F800000000FFFF00000003FFFF80000001F000000000+FFFF80000007FFFFC0000001F0000000007FFF80000007FFFFC0000003E0000000007FFF+80000007FFFFE0000003E0000000007FFFC000000FFFFFE0000007E0000000003FFFC000+000F9FFFE0000007C0000000003FFFE000001F9FFFF0000007C0000000003FFFE000001F+0FFFF000000FC0000000001FFFE000001F0FFFF000000F80000000001FFFF000003F0FFF+F800000F80000000000FFFF000003E07FFF800001F00000000000FFFF000003E07FFFC00+001F00000000000FFFF800007E07FFFC00003F000000000007FFF800007C03FFFC00003E+000000000007FFFC0000FC03FFFE00003E000000000007FFFC0000F801FFFE00007E0000+00000003FFFC0000F801FFFE00007C000000000003FFFE0001F801FFFF00007C00000000+0003FFFE0001F000FFFF0000FC000000000001FFFE0001F000FFFF8000F8000000000001+FFFF0003F000FFFF8001F8000000000000FFFF0003E0007FFF8001F0000000000000FFFF+0007E0007FFFC001F0000000000000FFFF8007C0003FFFC003F00000000000007FFF8007+C0003FFFC003E00000000000007FFFC00FC0003FFFE003E00000000000007FFFC00F8000+1FFFE007E00000000000003FFFC00F80001FFFF007C00000000000003FFFE01F80001FFF+F00FC00000000000001FFFE01F00000FFFF00F800000000000001FFFE01F00000FFFF80F+800000000000001FFFF03E000007FFF81F800000000000000FFFF03E000007FFF81F0000+00000000000FFFF87E000007FFFC1F000000000000000FFFF87C000003FFFC3F00000000+00000007FFF87C000003FFFE3E0000000000000007FFFCFC000003FFFE7E000000000000+0003FFFCF8000001FFFE7C0000000000000003FFFCF8000001FFFF7C0000000000000003+FFFFF0000000FFFFFC0000000000000001FFFFF0000000FFFFF80000000000000001FFFF+F0000000FFFFF80000000000000001FFFFE00000007FFFF80000000000000000FFFFE000+00007FFFF00000000000000000FFFFE00000007FFFF000000000000000007FFFC0000000+3FFFE000000000000000007FFFC00000003FFFE000000000000000007FFF800000001FFF+E000000000000000003FFF800000001FFFC000000000000000003FFF800000001FFFC000+000000000000003FFF000000000FFFC000000000000000001FFF000000000FFF80000000+00000000001FFF000000000FFF8000000000000000000FFE0000000007FF000000000000+0000000FFE0000000007FF0000000000000000000FFE0000000007FF0000000000000000+0007FC0000000003FE00000000000000000007FC0000000003FE00000000000000000007+F80000000001FE00000000000000000003F80000000001FC00000000000000000003F800+00000001FC00000000000000000001F00000000000F8000000000084537DD18B>I<FFFF+FFFFFF0000000FFFFFFF80FFFFFFFFFF0000000FFFFFFF80FFFFFFFFFF0000000FFFFFFF+80FFFFFFFFFF0000000FFFFFFF80FFFFFFFFFF0000000FFFFFFF80000FFFFC0000000000+3FFF0000000FFFFE000000000007F800000007FFFF000000000007F000000003FFFF0000+0000000FE000000003FFFF80000000000FE000000001FFFFC0000000001FC000000000FF+FFC0000000003F8000000000FFFFE0000000003F80000000007FFFF0000000007F000000+00003FFFF000000000FE00000000003FFFF800000000FE00000000001FFFFC00000001FC+00000000000FFFFC00000003F800000000000FFFFE00000003F8000000000007FFFF0000+0007F0000000000003FFFF0000000FE0000000000003FFFF8000000FE0000000000001FF+FFC000001FC0000000000000FFFFC000003F80000000000000FFFFE000003F8000000000+00007FFFF000007F000000000000003FFFF00000FF000000000000003FFFF80000FE0000+00000000001FFFFC0001FC000000000000000FFFFC0003FC000000000000000FFFFE0003+F80000000000000007FFFF0007F00000000000000003FFFF000FF00000000000000003FF+FF800FE00000000000000001FFFFC01FC00000000000000000FFFFC03FC0000000000000+0000FFFFE03F8000000000000000007FFFF07F0000000000000000003FFFF0FF00000000+00000000003FFFF8FE0000000000000000001FFFFDFC0000000000000000000FFFFFFC00+00000000000000000FFFFFF800000000000000000007FFFFF000000000000000000003FF+FFF000000000000000000001FFFFE000000000000000000001FFFFC00000000000000000+0000FFFFC0000000000000000000007FFF80000000000000000000007FFF000000000000+00000000007FFF00000000000000000000007FFF00000000000000000000007FFF000000+00000000000000007FFF00000000000000000000007FFF00000000000000000000007FFF+00000000000000000000007FFF00000000000000000000007FFF00000000000000000000+007FFF00000000000000000000007FFF00000000000000000000007FFF00000000000000+000000007FFF00000000000000000000007FFF00000000000000000000007FFF00000000+000000000000007FFF00000000000000000000007FFF00000000000000000000007FFF00+000000000000000000007FFF00000000000000000000007FFF0000000000000000000000+7FFF00000000000000000000007FFF00000000000000000000007FFF0000000000000000+0000007FFF00000000000000000000007FFF00000000000000000000007FFF0000000000+0000000000007FFF00000000000000000000007FFF0000000000000000000FFFFFFFFFF8+000000000000000FFFFFFFFFF8000000000000000FFFFFFFFFF8000000000000000FFFFF+FFFFF8000000000000000FFFFFFFFFF80000000061527ED166>89+D<00007FFF000000000007FFFFF0000000003FFFFFFE00000000FFFFFFFF80000001FFE0+0FFFC0000003FE0001FFF0000007FF0000FFF8000007FF80003FFC00000FFF80003FFE00+000FFFC0001FFE00000FFFC0001FFF00000FFFC0000FFF80000FFFC0000FFF80000FFFC0+000FFF800007FF800007FFC00007FF800007FFC00003FF000007FFC00001FE000007FFC0+000000000007FFC0000000000007FFC0000000000007FFC0000000000007FFC000000000+0007FFC0000000000007FFC0000000007FFFFFC00000000FFFFFFFC0000000FFFFFFFFC0+000007FFFF87FFC000003FFFF007FFC000007FFF8007FFC00001FFFC0007FFC00003FFF0+0007FFC00007FFE00007FFC0000FFFC00007FFC0001FFF800007FFC0003FFF000007FFC0+007FFF000007FFC0007FFE000007FFC0007FFE000007FFC000FFFC000007FFC000FFFC00+0007FFC000FFFC000007FFC000FFFC000007FFC000FFFC00000FFFC000FFFC00000FFFC0+00FFFE00001FFFC0007FFE00001DFFC0007FFE00003DFFC0003FFF000079FFE0001FFF80+00F1FFF8000FFFC003E1FFFFE007FFF81FC0FFFFF003FFFFFF807FFFF000FFFFFF001FFF+F0001FFFFC0007FFE00001FFE0000000003C387CB641>97 D<003FF0000000000000FFFF+F0000000000000FFFFF0000000000000FFFFF0000000000000FFFFF0000000000000FFFF+F000000000000003FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F001FFE000000000FFF00FFFFE00000000FFF03FFFFFC0000000FFF0FFFFFFF0000000FF+F3FF01FFF8000000FFF7F8003FFE000000FFFFE0000FFF000000FFFF800007FF800000FF+FF000003FFC00000FFFE000001FFE00000FFFC000001FFF00000FFF8000000FFF80000FF+F8000000FFF80000FFF80000007FFC0000FFF80000007FFC0000FFF80000007FFE0000FF+F80000007FFE0000FFF80000007FFF0000FFF80000003FFF0000FFF80000003FFF0000FF+F80000003FFF0000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FF+F80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FF+F80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FF+F80000003FFF8000FFF80000003FFF0000FFF80000003FFF0000FFF80000003FFF0000FF+F80000003FFF0000FFF80000007FFE0000FFF80000007FFE0000FFF80000007FFE0000FF+F80000007FFC0000FFF8000000FFFC0000FFF8000000FFF80000FFFC000001FFF00000FF+FC000001FFF00000FFFE000003FFE00000FFFF000007FFC00000FFFF80000FFF800000FF+CFC0001FFF000000FF87F0007FFC000000FF03FE03FFF8000000FE00FFFFFFE0000000FC+007FFFFF80000000F8001FFFFC00000000000003FFC000000041547BD24B>I<000001FF+F8000000001FFFFF80000000FFFFFFF0000003FFFFFFFC00000FFFC00FFE00001FFE0001+FF00007FFC0003FF8000FFF00007FF8001FFF00007FFC003FFE0000FFFC003FFC0000FFF+C007FFC0000FFFC00FFF80000FFFC00FFF80000FFFC01FFF800007FF801FFF000007FF80+3FFF000003FF003FFF000001FE007FFF00000000007FFE00000000007FFE00000000007F+FE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE+0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE00+00000000FFFE0000000000FFFE0000000000FFFE00000000007FFE00000000007FFF0000+0000007FFF00000000003FFF00000000003FFF00000000003FFF00000003E01FFF800000+03E01FFF80000007E00FFFC0000007C007FFC0000007C007FFE000000FC003FFE000001F+8001FFF000003F0000FFF800007E00007FFE0000FC00003FFF0003F800000FFFE01FF000+0003FFFFFFE0000000FFFFFF800000003FFFFE0000000001FFE0000033387CB63C>I<00+0000000001FF80000000000007FFFF80000000000007FFFF80000000000007FFFF800000+00000007FFFF80000000000007FFFF800000000000001FFF8000000000000007FF800000+0000000007FF8000000000000007FF8000000000000007FF8000000000000007FF800000+0000000007FF8000000000000007FF8000000000000007FF8000000000000007FF800000+0000000007FF8000000000000007FF8000000000000007FF8000000000000007FF800000+0000000007FF8000000000000007FF8000000000000007FF8000000000000007FF800000+0000000007FF8000000000000007FF8000000000000007FF8000000000000007FF800000+0000000007FF8000000001FFE007FF800000001FFFFC07FF80000000FFFFFF07FF800000+03FFFFFFC7FF8000000FFFE03FE7FF8000001FFF0007F7FF8000007FFC0001FFFF800000+FFF80000FFFF800001FFF000003FFF800003FFE000001FFF800007FFC000001FFF800007+FFC000000FFF80000FFF8000000FFF80001FFF8000000FFF80001FFF0000000FFF80003F+FF0000000FFF80003FFF0000000FFF80003FFF0000000FFF80007FFE0000000FFF80007F+FE0000000FFF80007FFE0000000FFF80007FFE0000000FFF8000FFFE0000000FFF8000FF+FE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FF+FE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF8000FF+FE0000000FFF8000FFFE0000000FFF8000FFFE0000000FFF80007FFE0000000FFF80007F+FE0000000FFF80007FFE0000000FFF80003FFF0000000FFF80003FFF0000000FFF80003F+FF0000000FFF80001FFF0000000FFF80001FFF0000000FFF80000FFF8000000FFF80000F+FF8000001FFF800007FFC000003FFF800003FFC000003FFF800001FFE000007FFF800000+FFF00001FFFF8000007FF80003FFFFE000003FFE000FEFFFFF80000FFFC07FCFFFFF8000+07FFFFFF8FFFFF800001FFFFFE0FFFFF8000003FFFF80FFFFF80000003FFC00FFE000041+547CD24B>I<000003FFC0000000003FFFFC00000001FFFFFF00000007FFFFFFC000000F+FF81FFE000003FFC007FF800007FF8003FFC0000FFF0001FFE0001FFE0000FFE0003FFC0+0007FF0007FFC00007FF800FFF800003FF800FFF800003FFC01FFF800001FFC01FFF0000+01FFC03FFF000001FFE03FFF000001FFE07FFF000000FFE07FFE000000FFE07FFE000000+FFF07FFE000000FFF0FFFE000000FFF0FFFE000000FFF0FFFE000000FFF0FFFE000000FF+F0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFF0FFFFFFFFFFFFE0FFFE0000000000+FFFE0000000000FFFE0000000000FFFE0000000000FFFE0000000000FFFE00000000007F+FE00000000007FFE00000000007FFF00000000003FFF00000000003FFF00000000003FFF+00000000E01FFF00000001F01FFF80000003F00FFF80000003F007FFC0000007E007FFC0+000007E003FFE000000FC001FFF000001FC000FFF800003F80007FFC0000FF00001FFE00+03FE00000FFFC03FF8000003FFFFFFF0000000FFFFFFC00000001FFFFE0000000001FFF0+000034387CB63D>I<0000003FFC00000003FFFF0000000FFFFFC000003FFFFFE00000FF+F81FF00001FFC03FF80003FF807FF80007FF00FFFC000FFE00FFFC001FFC00FFFC001FFC+00FFFC003FF800FFFC003FF800FFFC003FF8007FF8007FF0007FF8007FF0003FF0007FF0+000FC0007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0+000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0+000000007FF0000000007FF0000000FFFFFFFFE000FFFFFFFFE000FFFFFFFFE000FFFFFF+FFE000FFFFFFFFE000007FF8000000007FF8000000007FF8000000007FF8000000007FF8+000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8+000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8+000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8+000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8+000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8+000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8000000007FF8+000000007FF8000000007FF80000007FFFFFFE00007FFFFFFE00007FFFFFFE00007FFFFF+FE00007FFFFFFE00002E547CD329>I<00003FFF0000FF000003FFFFF007FFC0000FFFFF+FC1FFFE0003FFFFFFF7FFFE0007FFC0FFFFF9FF000FFE001FFF83FF001FFC000FFE03FF0+03FF80007FF01FF007FF00003FF81FE00FFF00003FFC0FC00FFF00003FFC07801FFE0000+1FFE00001FFE00001FFE00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF0000+3FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE00001FFF00003FFE0000+1FFF00003FFE00001FFF00001FFE00001FFE00001FFE00001FFE00000FFF00003FFC0000+0FFF00003FFC000007FF00003FF8000003FF80007FF0000001FFC000FFE0000000FFE001+FFC0000000FFFC0FFF80000001FFFFFFFF00000003EFFFFFFC00000003C3FFFFF0000000+07C03FFF0000000007C000000000000007C00000000000000FC00000000000000FC00000+000000000FC00000000000000FE00000000000000FE00000000000000FF8000000000000+0FFE0000000000000FFFFFFFFF00000007FFFFFFFFF8000007FFFFFFFFFF000007FFFFFF+FFFFC00003FFFFFFFFFFE00001FFFFFFFFFFF00000FFFFFFFFFFF800007FFFFFFFFFFC00+007FFFFFFFFFFE0001FFFFFFFFFFFF0007FFFFFFFFFFFF000FFE000003FFFF801FF80000+003FFF803FF000000007FF807FE000000003FFC07FE000000001FFC0FFC000000001FFC0+FFC000000000FFC0FFC000000000FFC0FFC000000000FFC0FFC000000000FFC0FFC00000+0000FFC0FFE000000001FFC07FE000000001FF807FF000000003FF803FF000000003FF00+1FF800000007FE000FFE0000001FFC0007FF8000007FF80003FFE00001FFF00001FFFE00+1FFFE000007FFFFFFFFF8000000FFFFFFFFC00000001FFFFFFE0000000000FFFFC000000+3C4F7CB543>I<003FF0000000000000FFFFF0000000000000FFFFF0000000000000FFFF+F0000000000000FFFFF0000000000000FFFFF000000000000003FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF000000000000000FFF000000000000000FF+F000000000000000FFF000000000000000FFF0001FFC00000000FFF000FFFFC0000000FF+F003FFFFF0000000FFF00FFFFFF8000000FFF01FE07FFC000000FFF03F001FFE000000FF+F07C001FFF000000FFF0F0000FFF000000FFF1E0000FFF800000FFF3C0000FFF800000FF+F7800007FF800000FFF7800007FFC00000FFFF000007FFC00000FFFE000007FFC00000FF+FE000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FFFC000007FFC00000FF+FC000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FF+F8000007FFC00000FFF8000007FFC00000FFF8000007FFC000FFFFFFF807FFFFFFC0FFFF+FFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC04253+7BD24B>I<007F000000FF800003FFE00007FFF00007FFF0000FFFF8000FFFF8000FFFF8+000FFFF8000FFFF8000FFFF8000FFFF80007FFF00007FFF00003FFE00000FF8000007F00+000000000000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000003FF000FFFFF000FFFFF000FFFFF000FFFFF0+00FFFFF00001FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF0+0000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000FFFFFF+E0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE01B547BD325>I<003FF000FFFFF000FFFFF000+FFFFF000FFFFF000FFFFF00001FFF00000FFF00000FFF00000FFF00000FFF00000FFF000+00FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000+00FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000+00FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000+00FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000+00FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000+00FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000+00FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF00000FFF000+00FFF00000FFF00000FFF000FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF01C537BD2+25>108 D<003FF0001FFC000000FFE00000FFFFF000FFFFC00007FFFE0000FFFFF003FF+FFF0001FFFFF8000FFFFF00FFFFFF8007FFFFFC000FFFFF01FE07FFC00FF03FFE000FFFF+F03F001FFE01F800FFF00003FFF07C001FFF03E000FFF80000FFF0F0000FFF0780007FF8+0000FFF1E0000FFF8F00007FFC0000FFF3C0000FFF9E00007FFC0000FFF7800007FFBC00+003FFC0000FFF7800007FFFC00003FFE0000FFFF000007FFF800003FFE0000FFFE000007+FFF000003FFE0000FFFE000007FFF000003FFE0000FFFC000007FFE000003FFE0000FFFC+000007FFE000003FFE0000FFFC000007FFE000003FFE0000FFFC000007FFE000003FFE00+00FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC00000+3FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FF+C000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF800+0007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000+FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003F+FE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC0+00003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF80000+07FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FF+F8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE+0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000+003FFE0000FFF8000007FFC000003FFE0000FFF8000007FFC000003FFE00FFFFFFF807FF+FFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFEFFFFFF+F807FFFFFFC03FFFFFFEFFFFFFF807FFFFFFC03FFFFFFE67367BB570>I<003FF0001FFC+000000FFFFF000FFFFC00000FFFFF003FFFFF00000FFFFF00FFFFFF80000FFFFF01FE07F+FC0000FFFFF03F001FFE000003FFF07C001FFF000000FFF0F0000FFF000000FFF1E0000F+FF800000FFF3C0000FFF800000FFF7800007FF800000FFF7800007FFC00000FFFF000007+FFC00000FFFE000007FFC00000FFFE000007FFC00000FFFC000007FFC00000FFFC000007+FFC00000FFFC000007FFC00000FFFC000007FFC00000FFF8000007FFC00000FFF8000007+FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007+FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007+FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007+FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007+FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007+FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007+FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007+FFC000FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FFFFFFC0FFFFFFF807FF+FFFFC0FFFFFFF807FFFFFFC042367BB54B>I<000001FFE000000000001FFFFE00000000+00FFFFFFC000000003FFFFFFF00000000FFF807FFC0000001FFC000FFE0000007FF80007+FF800000FFF00003FFC00001FFE00001FFE00003FFC00000FFF00003FF8000007FF00007+FF8000007FF8000FFF0000003FFC000FFF0000003FFC001FFF0000003FFE001FFF000000+3FFE003FFE0000001FFF003FFE0000001FFF003FFE0000001FFF007FFE0000001FFF807F+FE0000001FFF807FFE0000001FFF807FFE0000001FFF80FFFE0000001FFFC0FFFE000000+1FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FF+FE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE0000001FFFC0FFFE000000+1FFFC0FFFE0000001FFFC07FFE0000001FFF807FFE0000001FFF807FFE0000001FFF803F+FE0000001FFF003FFF0000003FFF003FFF0000003FFF001FFF0000003FFE001FFF000000+3FFE000FFF0000003FFC000FFF8000007FFC0007FF8000007FF80003FFC00000FFF00001+FFE00001FFE00000FFF00003FFC000007FF80007FF8000003FFE001FFF0000000FFF807F+FC00000007FFFFFFF800000000FFFFFFC0000000003FFFFF000000000001FFE00000003A+387CB643>I<003FF001FFE0000000FFFFF00FFFFE000000FFFFF03FFFFFC00000FFFFF0+FFFFFFF00000FFFFF3FF01FFF80000FFFFF7F8007FFE000003FFFFE0001FFF000000FFFF+80000FFF800000FFFF000007FFC00000FFFE000007FFE00000FFFC000003FFF00000FFF8+000001FFF80000FFF8000001FFF80000FFF8000000FFFC0000FFF8000000FFFC0000FFF8+000000FFFE0000FFF80000007FFE0000FFF80000007FFF0000FFF80000007FFF0000FFF8+0000007FFF0000FFF80000007FFF0000FFF80000003FFF8000FFF80000003FFF8000FFF8+0000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF8+0000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF80000003FFF8000FFF8+0000003FFF8000FFF80000003FFF8000FFF80000003FFF0000FFF80000007FFF0000FFF8+0000007FFF0000FFF80000007FFF0000FFF80000007FFE0000FFF8000000FFFE0000FFF8+000000FFFE0000FFF8000000FFFC0000FFF8000001FFFC0000FFF8000001FFF80000FFFC+000003FFF00000FFFC000003FFF00000FFFE000007FFE00000FFFF00000FFFC00000FFFF+80001FFF800000FFFFC0003FFF000000FFFFF000FFFC000000FFFBFE07FFF8000000FFF8+FFFFFFE0000000FFF87FFFFF80000000FFF81FFFFC00000000FFF803FFC000000000FFF8+00000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8+00000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8+00000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8+00000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8+000000000000FFFFFFF80000000000FFFFFFF80000000000FFFFFFF80000000000FFFFFF+F80000000000FFFFFFF80000000000414D7BB54B>I<000001FFE00007800000001FFFF8+000F80000000FFFFFE001F80000003FFFFFF801F8000000FFFF03FC03F8000001FFF800F+E07F8000007FFE0003F07F800000FFFC0001F8FF800001FFF80000FDFF800003FFF00000+7FFF800003FFE000003FFF800007FFE000003FFF80000FFFC000001FFF80001FFFC00000+1FFF80001FFF8000000FFF80003FFF8000000FFF80003FFF8000000FFF80003FFF000000+07FF80007FFF00000007FF80007FFF00000007FF80007FFF00000007FF80007FFE000000+07FF8000FFFE00000007FF8000FFFE00000007FF8000FFFE00000007FF8000FFFE000000+07FF8000FFFE00000007FF8000FFFE00000007FF8000FFFE00000007FF8000FFFE000000+07FF8000FFFE00000007FF8000FFFE00000007FF8000FFFE00000007FF8000FFFE000000+07FF80007FFF00000007FF80007FFF00000007FF80007FFF00000007FF80003FFF000000+07FF80003FFF00000007FF80003FFF80000007FF80001FFF8000000FFF80001FFF800000+0FFF80000FFFC000001FFF80000FFFC000001FFF800007FFE000003FFF800003FFF00000+7FFF800001FFF00000FFFF800000FFF80001FFFF8000007FFC0003FFFF8000003FFF000F+EFFF8000000FFFC07FCFFF80000007FFFFFF0FFF80000001FFFFFE0FFF800000003FFFF8+0FFF8000000003FF800FFF800000000000000FFF800000000000000FFF80000000000000+0FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000000000+0FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000000000+0FFF800000000000000FFF800000000000000FFF800000000000000FFF80000000000000+0FFF800000000000000FFF800000000000000FFF8000000000000FFFFFFF80000000000F+FFFFFF80000000000FFFFFFF80000000000FFFFFFF80000000000FFFFFFF80414D7CB547+>I<007FE003FE00FFFFE00FFF80FFFFE03FFFE0FFFFE07FFFF0FFFFE0FE1FF8FFFFE1F8+3FFC03FFE3E03FFE00FFE3C07FFE00FFE7807FFE00FFEF807FFE00FFEF007FFE00FFEE00+7FFE00FFFE003FFC00FFFC003FFC00FFFC001FF800FFFC000FF000FFF800000000FFF800+000000FFF800000000FFF800000000FFF800000000FFF000000000FFF000000000FFF000+000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000+000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000+000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000+000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000+000000FFF0000000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC+00002F367CB537>I<0003FFF00F00003FFFFE1F0000FFFFFFFF0003FFFFFFFF0007FF00+3FFF000FF80007FF001FE00001FF003FC00000FF003F8000007F007F8000007F007F0000+003F007F0000003F00FF0000001F00FF0000001F00FF8000001F00FF8000001F00FFC000+001F00FFF000000000FFFC00000000FFFFC00000007FFFFF0000007FFFFFF800003FFFFF+FF00003FFFFFFFC0001FFFFFFFF0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE0000FFFF+FFFF00003FFFFFFF80000FFFFFFFC00000FFFFFFC0000007FFFFE00000003FFFE0000000+07FFF000000001FFF0780000007FF0F80000003FF0F80000001FF0FC0000001FF0FC0000+000FF0FC0000000FF0FE0000000FF0FE0000000FE0FF0000000FE0FF8000001FE0FF8000+001FC0FFC000001FC0FFE000003F80FFF800007F00FFFE0001FE00FFFFC00FFC00FF7FFF+FFF800FC1FFFFFE000F807FFFF8000F000FFF800002C387CB635>I<00003E0000000000+3E00000000003E00000000003E00000000003E00000000003E00000000007E0000000000+7E00000000007E00000000007E0000000000FE0000000000FE0000000001FE0000000001+FE0000000001FE0000000003FE0000000007FE0000000007FE000000000FFE000000001F+FE000000003FFE00000000FFFE00000001FFFE0000000FFFFFFFFF00FFFFFFFFFF00FFFF+FFFFFF00FFFFFFFFFF00FFFFFFFFFF00003FFE000000003FFE000000003FFE000000003F+FE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003F+FE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003F+FE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003F+FE000000003FFE000000003FFE000000003FFE000000003FFE000000003FFE000000003F+FE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003F+FE0007C0003FFE0007C0003FFE0007C0003FFE0007C0003FFE0007C0001FFE000F80001F+FF000F80001FFF000F80000FFF001F00000FFF801F000007FFC03E000003FFF0FC000001+FFFFF80000007FFFF00000001FFFE000000003FF80002A4D7ECB34>I<003FF8000001FF+C000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFFC000FFFFF80007FFFF+C000FFFFF80007FFFFC00003FFF800001FFFC00000FFF8000007FFC00000FFF8000007FF+C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF+C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF+C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF+C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF+C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF+C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF+C00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FFC00000FFF8000007FF+C00000FFF8000007FFC00000FFF8000007FFC00000FFF800000FFFC00000FFF800000FFF+C00000FFF800000FFFC00000FFF800001FFFC00000FFF800001FFFC000007FF800003FFF+C000007FF800003BFFC000007FF800007BFFC000003FFC0000F3FFC000003FFC0001E3FF+F000001FFE0007C3FFFFC0000FFFC03F83FFFFC00007FFFFFF03FFFFC00001FFFFFE03FF+FFC000007FFFF803FFFFC0000007FFE003FF000042377BB54B>I<FFFFFFF00007FFFFFF+FFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFF01FFF80000+007FE000FFFC0000003F0000FFFC0000003F00007FFC0000003E00007FFE0000007E0000+3FFE0000007C00003FFF000000FC00001FFF000000F800001FFF800001F800000FFF8000+01F000000FFFC00001F000000FFFC00003F0000007FFC00003E0000007FFE00007E00000+03FFE00007C0000003FFF0000FC0000001FFF0000F80000001FFF8001F80000000FFF800+1F00000000FFFC001F00000000FFFC003F000000007FFE003E000000007FFE007E000000+003FFE007C000000003FFF00FC000000001FFF00F8000000001FFF81F8000000000FFF81+F0000000000FFFC3F0000000000FFFC3F00000000007FFE3E00000000007FFE7E0000000+0003FFE7C00000000003FFFFC00000000001FFFF800000000001FFFF800000000000FFFF+000000000000FFFF0000000000007FFE0000000000007FFE0000000000007FFE00000000+00003FFC0000000000003FFC0000000000001FF80000000000001FF80000000000000FF0+0000000000000FF000000000000007E000000000000003C000000040367DB447>I<FFFF+FFE07FFFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC0FFFF+FFE07FFFFFC003FFFFC0FFFFFFE07FFFFFC003FFFFC001FFF00000FFF000001FF80001FF+F800007FF0000007E00000FFF800007FF8000007C00000FFF800007FF8000007C00000FF+FC00003FF800000FC000007FFC00003FFC00000F8000007FFC00003FFC00000F8000007F+FE00003FFC00001F8000003FFE00007FFE00001F0000003FFF00007FFE00003F0000001F+FF00007FFF00003E0000001FFF0000FFFF00003E0000001FFF8000FFFF00007E0000000F+FF8001FFFF80007C0000000FFFC001F3FF8000FC00000007FFC001F3FFC000F800000007+FFC003F3FFC000F800000007FFE003E1FFC001F800000003FFE007E1FFE001F000000003+FFF007C0FFE001F000000001FFF007C0FFF003E000000001FFF00FC0FFF003E000000001+FFF80F807FF007E000000000FFF80F807FF807C000000000FFF81F003FF807C000000000+FFFC1F003FF80FC0000000007FFC3F003FFC0F80000000007FFE3E001FFC1F8000000000+3FFE3E001FFE1F00000000003FFE7E001FFE1F00000000003FFF7C000FFE3F0000000000+1FFFFC000FFF3E00000000001FFFF80007FF7E00000000000FFFF80007FFFC0000000000+0FFFF80007FFFC00000000000FFFF00003FFFC000000000007FFF00003FFF80000000000+07FFE00001FFF8000000000003FFE00001FFF0000000000003FFE00001FFF00000000000+03FFC00000FFF0000000000001FFC00000FFE0000000000001FF8000007FE00000000000+01FF8000007FE0000000000000FF8000007FC0000000000000FF0000003FC00000000000+007F0000003F800000000000007F0000003F800000000000003E0000001F000000005A36+7DB461>I<7FFFFFF0007FFFFE007FFFFFF0007FFFFE007FFFFFF0007FFFFE007FFFFFF0+007FFFFE007FFFFFF0007FFFFE00007FFE00000FFF0000003FFF000007F80000001FFF80+0007F00000000FFFC0000FE000000007FFC0001FC000000007FFE0003F8000000003FFF0+003F0000000001FFF8007E0000000000FFFC00FC00000000007FFE01FC00000000007FFE+03F800000000003FFF07F000000000001FFF8FE000000000000FFFCFC0000000000007FF+FF80000000000003FFFF00000000000003FFFF00000000000001FFFE00000000000000FF+FC000000000000007FFE000000000000003FFF000000000000003FFF000000000000001F+FF800000000000001FFFC00000000000003FFFE00000000000007FFFF0000000000000FF+FFF0000000000001FDFFF8000000000001F8FFFC000000000003F07FFE000000000007E0+3FFF00000000000FE01FFF00000000001FC01FFF80000000003F800FFFC0000000007F00+07FFE000000000FE0003FFF000000000FC0001FFF800000001F80001FFF800000003F000+00FFFC00000007F000007FFE0000000FE000003FFF0000001FC000001FFF800000FFF000+001FFF8000FFFFFE0001FFFFFFC0FFFFFE0001FFFFFFC0FFFFFE0001FFFFFFC0FFFFFE00+01FFFFFFC0FFFFFE0001FFFFFFC042357EB447>I<FFFFFFF00007FFFFFFFFFFF00007FF+FFFFFFFFF00007FFFFFFFFFFF00007FFFFFFFFFFF00007FFFF00FFF80000007FE000FFFC+0000003F0000FFFC0000003F00007FFE0000003E00007FFE0000007E00003FFE0000007C+00003FFF000000FC00001FFF000000F800001FFF800001F800000FFF800001F000000FFF+C00003F0000007FFC00003E0000007FFE00003E0000007FFE00007E0000003FFF00007C0+000003FFF0000FC0000001FFF8000F80000001FFF8001F80000000FFF8001F00000000FF+FC003F000000007FFC003E000000007FFE007E000000003FFE007C000000003FFF00FC00+0000003FFF00FC000000001FFF80F8000000001FFF81F8000000000FFFC1F0000000000F+FFC3F00000000007FFC3E00000000007FFE7E00000000003FFE7C00000000003FFFFC000+00000001FFFF800000000001FFFF800000000000FFFF000000000000FFFF000000000000+FFFF0000000000007FFE0000000000007FFE0000000000003FFC0000000000003FFC0000+000000001FF80000000000001FF80000000000000FF00000000000000FF0000000000000+07E000000000000007E000000000000007E000000000000007C00000000000000FC00000+000000000F800000000000001F800000000000001F000000000000003F000000001FC000+3E000000003FE0007E000000007FF0007C00000000FFF800FC00000000FFF800F8000000+00FFF801F800000000FFF801F000000000FFF803F000000000FFF807E0000000007FF00F+C0000000007FE01F80000000003FC07F00000000003F81FE00000000001FFFFC00000000+000FFFF0000000000003FFE0000000000000FF000000000000404D7DB447>I<1FFFFFFF+FFFF001FFFFFFFFFFF801FFFFFFFFFFF801FFFFFFFFFFF801FFF80007FFF001FFC0000FF+FF001FF00001FFFE001FE00001FFFC001FC00003FFF8001F800007FFF8001F80000FFFF0+003F00000FFFE0003F00001FFFE0003F00003FFFC0003F00003FFF80003E00007FFF0000+3E0000FFFF00003E0001FFFE00003E0001FFFC00003E0003FFF800003E0007FFF8000000+000FFFF0000000000FFFE0000000001FFFC0000000003FFFC0000000007FFF8000000000+7FFF0000000000FFFF0000000001FFFE0000000001FFFC0000000003FFF8000F800007FF+F8000F80000FFFF0000F80000FFFE0000F80001FFFC0000F80003FFFC0001F80007FFF80+001F00007FFF00001F0000FFFE00001F0001FFFE00003F0003FFFC00003F0003FFF80000+3F0007FFF800007F000FFFF000007F000FFFE00000FF001FFFC00001FF003FFFC00007FF+007FFF80000FFE007FFF0000FFFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE00+7FFFFFFFFFFE0031357CB43C>I E /Fn 54 123 df<000000003FFC0000000001FFFF80+00000007E007C00000001F8001E00000003F0001F00000007E0003F0000000FC0007F000+0000FC0007F0000001F80007F0000001F80007E0000003F0000380000003F00000000000+03F0000000000003F0000000000007F0000000000007E0000000000007E0000000000007+E0000000000007E000000000000FE000000000000FC000000000000FC000000000000FC0+000000000FFFFFFFFF00000FFFFFFFFF00000FFFFFFFFE0000001F80007E0000001F8000+7E0000001F8000FE0000003F8000FC0000003F0000FC0000003F0000FC0000003F0001FC+0000003F0001F80000007F0001F80000007E0001F80000007E0003F80000007E0003F000+00007E0003F0000000FE0003F0000000FC0007F0000000FC0007E0000000FC0007E00000+00FC0007E0000001FC000FE0000001FC000FC0000001F8000FC1C00001F8000FC1C00001+F8001FC1C00001F8001F83C00003F8001F83800003F0001F83800003F0001F83800003F0+001F87000007F0001F87000007E0001F0F000007E0000F8E000007E000079E000007E000+03FC00000FE00000F000000FC000000000000FC000000000000FC000000000000F800000+0000001F8000000000001F80000000001C1F00000000007E1F00000000007E3F00000000+00FE3E0000000000FE3C0000000000FE7C0000000000F878000000000078F00000000000+3FE000000000000F800000000000344C82BA2F>12 D<000000007FE00000000003FFFC7E+0000000FC03E7E0000001F000F7E0000003E003FFE0000007C007FFE000000FC007FFC00+0000F8007FFC000001F8007FFC000001F8003DFC000003F00001F8000003F00001F80000+03F00003F8000003F00003F8000007E00003F0000007E00003F0000007E00007F0000007+E00007F000000FE00007E000000FC00007E000000FC0000FE000000FC0000FE000000FC0+000FC0000FFFFFFFFFC0000FFFFFFFFFC0000FFFFFFFFFC000001F80001F8000001F8000+1F8000001F80003F8000003F80003F8000003F00003F0000003F00003F0000003F00007F+0000003F00007F0000007F00007E0000007E00007E0000007E0000FE0000007E0000FE00+00007E0000FC000000FE0000FC000000FC0001FC000000FC0001FC000000FC0001F80000+00FC0001F8000001FC0003F8000001F80003F8000001F80003F0700001F80003F0700001+F80007F0700003F80007F0F00003F00007E0E00003F00007E0E00003F00007E0E00003F0+0007E1C00007F00007E1C00007E00007C3C00007E00003E3800007E00001E7800007E000+00FF00000FC000003C00000FC000000000000FC000000000000FC000000000001F800000+0000001F8000000000001F80000000001C1F00000000007E1F00000000007E3E00000000+00FE3E0000000000FE3C0000000000FE7C0000000000F878000000000078F00000000000+3FE000000000000F800000000000374C82BA31>I<00000000FF00003FF00000000003FF+E001FFFE3F0000000FC0F007E01F3F0000003F00780F8007BF0000007E01F81F001FFF00+00007C03F83E003FFF000000FC03F87E003FFE000001F803F8FC003FFE000001F803F0FC+003FFE000001F801E0FC001EFE000003F00001F80000FC000003F00001F80000FC000003+F00001F80001FC000003F00003F80001FC000007F00003F00001F8000007E00003F00001+F8000007E00003F00003F8000007E00003F00003F8000007E00007F00003F000000FE000+07E00003F000000FC00007E00007F000000FC00007E00007F000000FC00007E00007E000+0FFFFFFFFFFFFFFFE0000FFFFFFFFFFFFFFFE0000FFFFFFFFFFFFFFFE000001F80000FC0+000FC000001F80000FC0000FC000001F80000FC0001FC000003F80001FC0001FC000003F+00001F80001F8000003F00001F80001F8000003F00001F80003F8000003F00001F80003F+8000007F00003F80003F0000007E00003F00003F0000007E00003F00007F0000007E0000+3F00007F0000007E00003F00007E000000FE00007F00007E000000FE00007E0000FE0000+00FC00007E0000FE000000FC00007E0000FC000000FC00007E0000FC000000FC0000FE00+01FC000001FC0000FC0001FC000001F80000FC0001F8380001F80000FC0001F8380001F8+0000FC0003F8380003F80001FC0003F8780003F80001F80003F0700003F00001F80003F0+700003F00001F80003F0700003F00001F80003F0E00007F00003F80003F0E00007F00003+F00003E1E00007E00003F00001F1C00007E00003F00000F3C00007E00003F000007F8000+0FE00007E000001E00000FC00007E000000000000FC00007E000000000000FC00007E000+000000000F80000FC000000000001F80000FC000000000001F80000F80000000001C1F03+801F80000000007E1F0FC01F00000000007E3F0FC01F0000000000FE3E1FC03E00000000+00FE3C1FC07C0000000000FE7C1FC0F80000000000F8780F01F0000000000078F00F83E0+00000000003FE003FF8000000000000F8000FE000000000000504C82BA4A>15+D<01E007F00FF00FF81FF81FF81FF80FF807B0003000300070006000E000C001C0018003+8007000E001C0038007000E000C0000D196EB919>39 D<03C007F00FF01FF01FF81FF81F+F81FF007B0003000700060006000E000C001C00380030007000E001C0038007000E000C0+000D197A8819>44 D<7FFFF87FFFF8FFFFF8FFFFF8FFFFF0150579941E>I<0E003F807F+80FF80FF80FF80FF007E003C000909778819>I<000003F80000001FFE0000007C1F0000+00F807800001E007C00003C003E000078003E0000F8001E0001F0001F0001F0001F0003E+0001F0007E0001F0007C0003F000FC0003F000FC0003F001F80003F001F80003F003F800+07F003F00007F003F00007F007F00007F007F00007E007E0000FE00FE0000FE00FE0000F+E00FE0000FE01FC0001FC01FC0001FC01FC0001FC01FC0001FC03F80003F803F80003F80+3F80003F803F80003F807F00007F007F00007F007F00007F007F00007E007E0000FE007E+0000FE007E0000FC00FE0001FC00FE0001F800FE0001F800FC0003F000FC0003F000FC00+03E0007C0007E0007C0007C0007C000F80007C000F80007C001F00003E003E00003E007C+00001F00F800000F83E0000007FF80000000FE000000243A77B72A>48+D<000000180000003800000078000000F0000001F0000003F0000007F000000FE000001F+E000007FE00003FFE0003FEFC0003F8FC0001C1FC000001FC000001F8000001F8000003F+8000003F8000003F0000003F0000007F0000007F0000007E0000007E000000FE000000FE+000000FC000000FC000001FC000001FC000001F8000001F8000003F8000003F8000003F0+000003F0000007F0000007F0000007E0000007E000000FE000000FE000000FC000000FC0+00001FC000001FC000001F8000001F8000003F8000003F8000003F0000007F8000FFFFFF+80FFFFFF80FFFFFF801D3877B72A>I<000003F80000000FFE0000003C0F800000F007C0+0001E003E00003C003F000078001F000070001F8000E0001F8001E0001F8001C6000FC00+387000FC00383001FC00703001FC00703001FC00F03001FC00E03001FC00E07003FC01E0+6003F801C06003F801C0E003F801C0C007F801C1C007F00181800FF00183800FE001C700+1FC001FE003F800078003F000000007E00000000FC00000001F800000003F000000007C0+0000001F800000003E00000000FC00000001F000000007C00000000F800000001E000000+007C00000000F80000C001F00001C001E00001C003C00001C007800003C00F000003800E+000007801E00000F803C00001F003FF8003F007FFFC07E00783FFFFC00700FFFFC00F007+FFF800E001FFF000E000FFC000E0001F0000263A79B72A>I<000001FC0000000FFF0000+003FFF8000007E07C00001F803E00003F003E00007E001F0000FC001F0001F8001F0003F+8001F8003F0001F8007F0001F8007E0001F800FE0001F800FE0001F801FC0001F801FC00+01F801FC0003F803FC0003F803F80003F803F80003F803F80007F007F80007F007F00007+F007F0000FF007F0000FF007F0000FE003F0001FE003F0001FE003F0003FE003F0007FC0+01F0007FC001F000FFC000F801FFC0007803BF80003C0F3F80001FFC3F000007F07F0000+00007F000000007E00000000FE00000000FC00000001FC00000001F800000003F0000000+03F0003E0007E0007F000FC0007F000F80007F001F0000FE003F0000FC007E00007000F8+00007803F000007C0FE000003FFF8000001FFE00000003F8000000253A78B72A>57+D<0000000001C0000000000003C0000000000003C0000000000007C000000000000FC000+000000000FC000000000001FC000000000001FE000000000003FE000000000003FE00000+0000007FE00000000000FFE00000000000EFE00000000001EFE00000000001CFE0000000+00038FE000000000038FE000000000070FE000000000070FE0000000000E0FE000000000+1E0FE0000000001C0FE000000000380FE000000000380FE000000000700FF00000000070+0FF000000000E007F000000000E007F000000001C007F000000003C007F0000000038007+F0000000070007F0000000070007F00000000E0007F00000000E0007F00000001C0007F0+0000001C0007F0000000380007F00000007FFFFFF00000007FFFFFF0000000FFFFFFF000+0000E00007F8000001C00003F8000001C00003F8000003800003F8000007800003F80000+07000003F800000F000003F800000E000003F800001C000003F800001C000003F8000038+000003F8000078000003F8000070000003F80000F0000003F80003F8000003F80007FC00+0007FC00FFFF8001FFFFF0FFFF8001FFFFF0FFFF8001FFFFF0343C7BBB3E>65+D<0007FFFFFFFC000007FFFFFFFF800007FFFFFFFFC000000FF0001FF000000FE00007F8+00000FE00003F800001FE00003FC00001FE00001FC00001FC00001FE00001FC00001FE00+003FC00000FE00003FC00000FE00003F800001FE00003F800001FE00007F800001FE0000+7F800001FC00007F000003FC00007F000003F80000FF000007F80000FF000007F00000FE+00000FE00000FE00001FC00001FE00003F800001FE00007F000001FC0001FE000001FC00+07F8000003FFFFFFE0000003FFFFFFC0000003F80007F0000003F80001FC000007F80000+FE000007F800007F000007F000003F800007F000003F80000FF000003FC0000FF000001F+C0000FE000001FC0000FE000001FC0001FE000001FC0001FE000003FC0001FC000003FC0+001FC000003FC0003FC000003FC0003FC000007F80003F8000007F80003F8000007F0000+7F800000FF00007F800001FE00007F000003FC00007F000003F80000FF00000FF80000FF+00001FE00000FE00003FC00001FE0001FF8000FFFFFFFFFE0000FFFFFFFFF80000FFFFFF+FFC0000037397BB83A>I<00000003FE000E0000003FFF801E000000FFFFE03C000003FE+01F03C00000FF000787C00003FC0003CFC00007F00001FF80000FE00000FF80003FC0000+0FF80007F8000007F8000FF0000007F0001FE0000003F0003FC0000003F0003F80000003+F0007F00000003E000FF00000003E001FE00000003E001FC00000003E003FC00000003C0+07F800000003C007F800000003C00FF000000003C00FF000000003801FE000000003801F+E000000000001FE000000000003FC000000000003FC000000000003FC000000000007FC0+00000000007F8000000000007F8000000000007F800000000000FF800000000000FF0000+00000000FF000000000000FF000000000000FF000000000000FF000000003800FF000000+003800FF000000007800FE000000007000FF000000007000FF00000000F0007F00000000+E0007F00000001E0007F00000001C0007F00000003C0003F8000000780003F8000000700+001F8000000E00001FC000001E00000FC000003C00000FE0000078000007F00001F00000+03F80003C0000001FE000F800000007F807E000000003FFFFC000000000FFFE000000000+00FF00000000373D74BA3B>I<0003FFFFFFFE00000003FFFFFFFFC0000003FFFFFFFFF0+00000007F8000FF800000007F00003FC00000007F00000FE0000000FF000007F0000000F+F000003F8000000FE000001F8000000FE000001FC000001FE000000FC000001FE000000F+E000001FC000000FE000001FC0000007E000003FC0000007E000003FC0000007F000003F+80000007F000003F80000007F000007F80000007F000007F80000007F000007F00000007+F000007F00000007F00000FF00000007F00000FF0000000FF00000FE0000000FF00000FE+0000000FF00001FE0000000FF00001FE0000000FE00001FC0000001FE00001FC0000001F+E00003FC0000001FE00003FC0000001FC00003F80000003FC00003F80000003FC00007F8+0000003F800007F80000007F800007F00000007F000007F00000007F00000FF0000000FE+00000FF0000000FE00000FE0000001FC00000FE0000001F800001FE0000003F800001FE0+000007F000001FC0000007E000001FC000000FC000003FC000001F8000003FC000003F80+00003F8000007F0000003F800000FC0000007F800003F80000007F800007F00000007F00+001FC0000000FF0001FF8000007FFFFFFFFE000000FFFFFFFFF0000000FFFFFFFF800000+003C397CB83F>I<0007FFFFFFFFFF0007FFFFFFFFFF0007FFFFFFFFFF00000FF00003FF+00000FE000007F00000FE000003E00001FE000003E00001FE000001E00001FC000001E00+001FC000001E00003FC000001E00003FC000001E00003F8000001E00003F8000001C0000+7F8000001C00007F8000001C00007F0003801C00007F0003801C0000FF0007801C0000FF+000780000000FE000700000000FE000F00000001FE000F00000001FE001F00000001FC00+3E00000001FC007E00000003FFFFFE00000003FFFFFE00000003FFFFFC00000003F800FC+00000007F8007C00000007F8003C00000007F0003800000007F000380000000FF0007800+00000FF0007800E0000FE0007000E0000FE0007001E0001FE0007001C0001FE0000001C0+001FC0000003C0001FC000000380003FC000000780003FC000000700003F8000000F0000+3F8000000F00007F8000001E00007F8000003E00007F0000003C00007F0000007C0000FF+000000FC0000FF000001F80000FE000007F80001FE00007FF000FFFFFFFFFFF000FFFFFF+FFFFF000FFFFFFFFFFE00038397BB838>I<0007FFFFFFFFFE0007FFFFFFFFFE0007FFFF+FFFFFE00000FF00007FE00000FE00000FE00000FE000007C00001FE000003C00001FE000+003C00001FC000003C00001FC000003C00003FC000003C00003FC000003C00003F800000+3C00003F8000003800007F8000003800007F8000003800007F0000003800007F00038038+0000FF000780380000FF000780000000FE000700000000FE000700000001FE000F000000+01FE000F00000001FC001E00000001FC003E00000003FC00FE00000003FFFFFE00000003+FFFFFC00000003FFFFFC00000007F800FC00000007F8007C00000007F0007800000007F0+00780000000FF000780000000FF000780000000FE000700000000FE000700000001FE000+F00000001FE000F00000001FC000000000001FC000000000003FC000000000003FC00000+0000003F8000000000003F8000000000007F8000000000007F8000000000007F00000000+00007F000000000000FF000000000000FF000000000000FE000000000001FF0000000000+FFFFFF00000000FFFFFF00000000FFFFFF0000000037397BB836>I<00000003FE000E00+00003FFF801E000000FFFFE03C000003FE01F03C00000FF000787C00003FC0003CFC0000+7F00001FF80000FE00000FF80003FC00000FF80007F8000007F8000FF0000007F0001FE0+000003F0003FC0000003F0003F80000003F0007F00000003E000FF00000003E001FE0000+0003E001FC00000003E003FC00000003C007F800000003C007F800000003C00FF0000000+03C00FF000000003801FE000000003801FE000000000001FE000000000003FC000000000+003FC000000000003FC000000000007FC000000000007F8000000000007F800000000000+7F800000000000FF800000000000FF000000000000FF000007FFFFE0FF000007FFFFE0FF+000007FFFFE0FF00000007FC00FF00000003F800FF00000007F800FF00000007F000FF00+000007F000FF00000007F0007F0000000FF0007F0000000FE0007F0000000FE0007F0000+000FE0003F8000001FE0003F8000001FE0001F8000001FC0001FC000003FC0000FE00000+3FC0000FE000007FC00007F00000FF800003F80003EF800001FE0007C78000007FC03F07+8000003FFFFC030000000FFFF00000000000FF80000000373D74BA40>I<0003FFFFF80F+FFFFE00003FFFFF80FFFFFE00003FFFFF80FFFFFE0000007F800001FE000000007F00000+1FC000000007F000001FC00000000FF000003FC00000000FF000003F800000000FE00000+3F800000000FE000003F800000001FE000007F800000001FE000007F000000001FC00000+7F000000001FC000007F000000003FC00000FF000000003FC00000FE000000003F800000+FE000000003F800000FE000000007F800001FE000000007F800001FC000000007F000001+FC000000007F000001FC00000000FF000003FC00000000FF000003F800000000FE000003+F800000000FE000003F800000001FFFFFFFFF800000001FFFFFFFFF000000001FFFFFFFF+F000000001FC000007F000000003FC00000FF000000003FC00000FE000000003F800000F+E000000003F800000FE000000007F800001FE000000007F800001FC000000007F000001F+C000000007F000001FC00000000FF000003FC00000000FF000003F800000000FE000003F+800000000FE000003F800000001FE000007F800000001FE000007F000000001FC000007F+000000001FC000007F000000003FC00000FF000000003FC00000FE000000003F800000FE+000000003F800000FE000000007F800001FE000000007F800001FC000000007F000001FC+00000000FF000003FC0000007FFFFE01FFFFF80000FFFFFE03FFFFF80000FFFFFE03FFFF+F8000043397CB83E>I<0003FFFFF80003FFFFF80003FFFFF8000007F800000007F00000+0007F00000000FF00000000FF00000000FE00000000FE00000001FE00000001FE0000000+1FC00000001FC00000003FC00000003FC00000003F800000003F800000007F800000007F+800000007F000000007F00000000FF00000000FF00000000FE00000000FE00000001FE00+000001FE00000001FC00000001FC00000003FC00000003FC00000003F800000003F80000+0007F800000007F800000007F000000007F00000000FF00000000FF00000000FE0000000+0FE00000001FE00000001FE00000001FC00000001FC00000003FC00000003FC00000003F+800000003F800000007F800000007F800000007F00000000FF800000FFFFFF0000FFFFFF+0000FFFFFE000025397CB820>I<000007FFFFF0000007FFFFF0000007FFFFF000000007+FC0000000003F80000000003F80000000007F80000000007F00000000007F00000000007+F0000000000FF0000000000FE0000000000FE0000000000FE0000000001FE0000000001F+C0000000001FC0000000001FC0000000003FC0000000003F80000000003F80000000003F+80000000007F80000000007F00000000007F00000000007F0000000000FF0000000000FE+0000000000FE0000000000FE0000000001FE0000000001FC0000000001FC0000000001FC+0000000003FC0000000003F80000000003F80000000003F80000000007F80000000007F8+0000000007F00000000007F0000000000FF0000000000FF000003F000FE000007F000FE0+00007F001FE00000FF001FC00000FF001FC00000FF003F800000FC003F800000E0007F00+0000E000FE0000007000FC0000007001F80000003803F00000001E0FC00000000FFF0000+000001F8000000002C3B78B82C>I<0007FFFFFC000007FFFFFC000007FFFFF80000000F+F8000000000FF0000000000FE0000000001FE0000000001FE0000000001FC0000000001F+C0000000003FC0000000003FC0000000003F80000000003F80000000007F80000000007F+80000000007F00000000007F0000000000FF0000000000FF0000000000FE0000000000FE+0000000001FE0000000001FE0000000001FC0000000001FC0000000003FC0000000003FC+0000000003F80000000003F80000000007F80000000007F80000000007F00000000007F0+000000000FF0000000000FF000000C000FE000001C000FE000001C001FE000003C001FE0+000038001FC0000078001FC0000078003FC0000070003FC00000F0003F800000E0003F80+0001E0007F800003E0007F800003C0007F000007C0007F00000FC000FF00001F8000FF00+003F8000FE0000FF8001FE0007FF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFE002E397B+B834>76 D<0007FFF800000007FFF00007FFF80000000FFFF00007FFF80000001FFFE000+000FF80000001FF00000000FF80000003FE00000000FF80000003FE00000001FF8000000+7FE00000001FF8000000EFC00000001DF8000000EFC00000001CFC000001CFC00000003C+FC000001DFC00000003CFC0000039F8000000038FC0000071F8000000038FC0000071F80+00000078FC00000E3F8000000078FC00000E3F0000000070FC00001C3F0000000070FC00+001C3F00000000F0FC0000387F00000000F0FC0000707E00000000E0FC0000707E000000+00E07E0000E07E00000001E07E0000E0FE00000001E07E0001C0FC00000001C07E000380+FC00000001C07E000380FC00000003C07E000701FC00000003C07E000701F80000000380+7E000E01F800000003807E000E01F800000007807E001C03F800000007807E003803F000+000007007E003803F000000007003F007003F00000000F003F007007F00000000F003F00+E007E00000000E003F01C007E00000000E003F01C007E00000001E003F03800FE0000000+1E003F03800FC00000001C003F07000FC00000001C003F07000FC00000003C003F0E001F+C00000003C003F1C001F8000000038003F1C001F8000000038001FB8001F800000007800+1FB8003F8000000078001FF0003F0000000070001FE0003F0000000070001FE0003F0000+0000F0001FC0007F00000000F0001FC0007E00000001F0001F80007E00000007F8001F80+00FE000000FFFFC01F007FFFFC0000FFFFC01E007FFFFC0000FFFFC00E007FFFFC00004C+397AB84A>I<0003FFF80000FFFFE00003FFF80000FFFFE00003FFFC0000FFFFE0000007+FC000007F800000007FE000003F000000007FE000003E00000000FFE000003C00000000F+FF000003C00000000E7F000003800000000E7F000003800000001E7F800007800000001E+3F800007000000001C3F800007000000001C3FC00007000000003C1FC0000F000000003C+1FE0000E00000000380FE0000E00000000380FE0000E00000000780FF0001E0000000078+07F0001C000000007007F0001C000000007007F8001C00000000F003F8003C00000000F0+03FC003800000000E003FC003800000000E001FC003800000001E001FE007800000001E0+00FE007000000001C000FE007000000001C000FF007000000003C0007F00F000000003C0+007F00E00000000380007F80E00000000380003F80E00000000780003FC1E00000000780+001FC1C00000000700001FC1C00000000700001FE1C00000000F00000FE3C00000000F00+000FE3800000000E00000FF3800000000E000007F3800000001E000007FF800000001E00+0007FF000000001C000003FF000000001C000003FF000000003C000001FF000000003C00+0001FE0000000038000001FE0000000038000000FE0000000078000000FE000000007800+0000FC00000000F80000007C00000003FC0000007C0000007FFFE000003C000000FFFFE0+000038000000FFFFE000003800000043397CB83E>I<0007FFFFFFF8000007FFFFFFFF00+0007FFFFFFFF8000000FF0003FE000000FE0000FF000000FE00003F800001FE00003F800+001FE00001FC00001FC00001FC00001FC00001FC00003FC00001FE00003FC00001FE0000+3F800001FE00003F800001FE00007F800001FE00007F800003FC00007F000003FC00007F+000003FC0000FF000003F80000FF000007F80000FE000007F00000FE00000FE00001FE00+000FE00001FE00001FC00001FC00003F800001FC0000FE000003FC0001FC000003FC000F+F0000003FFFFFFC0000003FFFFFE00000007F8000000000007F8000000000007F0000000+000007F000000000000FF000000000000FF000000000000FE000000000000FE000000000+001FE000000000001FE000000000001FC000000000001FC000000000003FC00000000000+3FC000000000003F8000000000003F8000000000007F8000000000007F8000000000007F+0000000000007F000000000000FF000000000000FF000000000000FE000000000001FE00+00000000FFFFFC00000000FFFFFC00000000FFFFFC0000000037397BB838>80+D<0003FFFFFFF0000003FFFFFFFE000003FFFFFFFF80000007F8003FC0000007F0000FF0+000007F00007F000000FF00003F800000FF00001FC00000FE00001FC00000FE00001FC00+001FE00001FE00001FE00001FE00001FC00001FE00001FC00001FE00003FC00001FE0000+3FC00003FC00003F800003FC00003F800003FC00007F800007F800007F800007F000007F+00000FF000007F00000FE00000FF00001FC00000FF00003F000000FE0000FE000000FE00+01F8000001FE000FE0000001FFFFFF80000001FFFFFC00000001FC003F00000003FC000F+80000003FC000FC0000003F80007E0000003F80007F0000007F80003F0000007F80003F0+000007F00003F0000007F00003F800000FF00007F800000FF00007F000000FE00007F000+000FE00007F000001FE0000FF000001FE0000FF000001FC0000FF000001FC0000FF00000+3FC0000FF000003FC0001FF000003F80001FE007003F80001FE007007F80001FE00F007F+80001FE00E007F00001FE00E00FF00000FE01C7FFFFE000FE03CFFFFFE0007F078FFFFFE+0003F0F00000000000FFE000000000003F80383B7CB83D>82 D<0000003FC00E000001FF+F01C000007FFFC1C00001FC07E3C00003F001F7C00007C000FF80000F80007F80001F000+03F80003E00003F80007C00001F00007C00001F0000F800001F0000F800001F0001F8000+01E0001F000001E0001F000001E0001F000001E0003F000001C0003F000001C0003F0000+01C0003F80000000003F80000000003FC0000000001FE0000000001FFC000000001FFF80+0000000FFFF00000000FFFFE00000007FFFF80000003FFFFE0000000FFFFF00000003FFF+F800000007FFF8000000007FFC000000000FFC0000000003FC0000000001FC0000000001+FC0000000000FC0000000000FC00000000007C000E0000007C000E0000007C000E000000+7C001E000000FC001E000000F8001E000000F8001E000000F8003E000001F0003E000001+F0003E000003E0003E000003E0007F000007C0007F00000F80007F80001F00007FC0003E+0000F9F000FC0000F8FC03F80000F07FFFE00000E01FFF800000C003FC0000002F3D7ABA+2F>I<FFFFF80003FFFEFFFFF80003FFFEFFFFF80003FFFC03FE0000007FC003FC000000+3F0001FC0000003E0001FC0000003C0001FC000000380001FC000000700001FC00000070+0001FC000000E00001FC000001E00001FC000001C00001FE000003800001FE0000038000+00FE000007000000FE00000F000000FE00000E000000FE00001C000000FE00001C000000+FE000038000000FE000038000000FE000070000000FE0000E0000000FE0000E0000000FF+0001C00000007F0001C00000007F0003800000007F0007800000007F0007000000007F00+0E000000007F000E000000007F001C000000007F003C000000007F0038000000007F0070+000000007F8070000000003F80E0000000003F81E0000000003F81C0000000003F838000+0000003F8380000000003F8700000000003F8700000000003F8E00000000003F9E000000+00003F9C00000000003FF800000000003FF800000000001FF000000000001FF000000000+001FE000000000001FC000000000001FC000000000001F8000000000001F800000000000+1F0000000000001E0000000000001E0000000000373B6FB83E>86+D<FFFFF80FFFFF001FFFF0FFFFF80FFFFF003FFFF0FFFFF00FFFFF003FFFE007FE00007F+E00003FE0003F800003F800001FC0003F800003F800000F00003F800003F800000F00003+F800003F800001E00003F800003F800001C00003F800003F800003C00003F800003F8000+03800003F800003F800007800003F800007F800007000003F800007F80000E000003F800+00FF80000E000003F80001FF80001C000003F80001FF80001C000003F80003BF80003800+0003FC0003BF800038000001FC00073F800070000001FC00073F800070000001FC000E3F+8000E0000001FC000E3FC000E0000001FC001C1FC001C0000001FC001C1FC003C0000001+FC00381FC00380000001FC00381FC00700000001FC00701FC00700000001FC00F01FC00E+00000001FC00E01FC00E00000001FC01C01FC01C00000001FC01C01FC01C00000001FC03+801FC03800000001FC03801FC03800000001FC07001FC07000000001FC07001FC0700000+0001FC0E001FC0E000000001FC0E001FC1E000000001FC1C001FC1C000000001FC1C001F+C38000000001FC38001FC38000000001FC78001FC70000000001FC70001FC70000000001+FCE0001FCE0000000001FEE0001FCE0000000000FFC0001FDC0000000000FFC0001FDC00+00000000FF80001FF80000000000FF80001FF80000000000FF00001FF00000000000FF00+000FF00000000000FE00000FE00000000000FE00000FC00000000000FC00000FC0000000+0000FC00000F800000000000F800000F800000000000F000000F000000000000F000000F+000000000000E000000E00000000004C3B6FB853>I<0000F800000007FE0000001F871C+00003E03FE00007C03FE0000F801FE0001F801FE0003F000FC0007E000FC000FE000FC00+0FC001FC001FC001F8001FC001F8003F8001F8003F8003F8007F8003F0007F0003F0007F+0003F0007F0007F000FF0007E000FE0007E000FE0007E000FE000FE000FE000FC000FC00+0FC1C0FC000FC1C0FC001FC1C0FC001F83C0FC001F8380FC003F8380FC003F87807C007F+87007C00FF07003E01FF0F003E038F8E001F0F079E0007FE03FC0001F000F000222677A4+2A>97 D<003F00001FFF00001FFF00001FFF0000007F0000007E0000007E0000007E0000+00FE000000FC000000FC000000FC000001FC000001F8000001F8000001F8000003F80000+03F0000003F0000003F0000007F0000007E0F80007E7FE0007EF0F800FFC07C00FF807C0+0FF003E00FE003E01FC003F01FC003F01F8003F01F8003F03F8003F03F0003F03F0003F0+3F0007F07F0007F07E0007F07E0007F07E000FF0FE000FF0FC000FE0FC000FE0FC001FE0+FC001FC0F8001FC0F8003F80F8003F80F8003F00F8007F00F8007E00F800FC007801F800+7C01F0003C03E0003E07C0001E1F80000FFE000001F000001C3B77B926>I<00007F0000+03FFC0000FC1E0001F0070007E007800FC003801F801F803F003F807F003F807E003F80F+E003F81FC003F01FC000003F8000003F8000007F8000007F0000007F0000007F000000FF+000000FE000000FE000000FE000000FE000000FC000000FC000000FC000000FC000030FC+000038FC0000787C0000F07E0001E03E0003C03E000F801F003E000F81F80003FFE00000+FF00001D2677A426>I<00000001F8000000FFF8000000FFF8000000FFF800000003F800+000003F000000003F000000007F000000007F000000007E000000007E00000000FE00000+000FE00000000FC00000000FC00000001FC00000001FC00000001F800000001F80000000+3F800000003F800000F83F000007FE3F00001F877F00003E03FF00007C03FE0000F801FE+0001F801FE0003F000FE0007E000FC000FE000FC000FC001FC001FC001FC001FC001F800+3F8001F8003F8003F8007F8003F8007F0003F0007F0003F0007F0007F000FF0007F000FE+0007E000FE0007E000FE000FE000FE000FE000FC000FC1C0FC000FC1C0FC001FC1C0FC00+1FC3C0FC001F8380FC003F8380FC003F87807C007F87007C00FF07003E01FF0F003E038F+8E001F0F079E0007FE03FC0001F000F000253B77B92A>I<00007F000003FFC0000FC1E0+003F00F0007E007800FC007801F8007803F0007807E000780FE000780FC000F81FC000F0+3F8001F03F8007E03F801F807F81FF007FFFF8007FFF00007F000000FF000000FE000000+FE000000FE000000FE000000FE000000FC000000FC000000FC0000307C0000387C000078+7E0000F03E0001E03E0003C01F000F800F003E000781F80003FFE00000FF00001D2677A4+26>I<00000007C00000001FF00000003E380000007C3C000000F8FC000000F9FC000001+F9FC000001F1FC000003F1F8000003F0F0000003F000000007F000000007E000000007E0+00000007E000000007E00000000FE00000000FC00000000FC00000000FC00000000FC000+00001FC00000001F8000000FFFFFC0001FFFFFC0001FFFFF8000003F800000003F000000+003F000000003F000000003F000000007F000000007E000000007E000000007E00000000+7E00000000FE00000000FC00000000FC00000000FC00000000FC00000001FC00000001F8+00000001F800000001F800000001F800000003F800000003F000000003F000000003F000+000003F000000007F000000007E000000007E000000007E000000007E00000000FE00000+000FC00000000FC00000000FC00000001FC00000001F800000001F800000001F80000000+1F000000003F0000001C3F0000007E3E0000007E3E000000FE3C000000FE7C000000FE78+000000F8F000000078F00000003FC00000000F80000000264C82BA19>I<000007C00000+003FF0000000FC38E00001F01FF00003E01FF00007C00FF0000F800FF0001F8007F0003F+0007E0007F0007E0007E000FE000FE000FE000FC000FC001FC000FC001FC001FC003FC00+1FC003F8001F8003F8001F8003F8003F8007F8003F8007F0003F0007F0003F0007F0007F+0007F0007F0007E0007E0007E0007E0007E000FE0007E000FE0007E000FC0003E001FC00+03E003FC0003E007FC0001F00FF80000F01FF80000787BF800003FF3F800000FC3F00000+0003F000000007F000000007F000000007E000000007E00000000FE00000000FC0001C00+0FC0007E001FC0007E001F8000FE003F0000FE007E0000FE00FC00007801F800007C07E0+00001FFF80000003FE00000024367CA426>I<0003F0000001FFF0000001FFF0000001FF+F000000007F000000007E000000007E000000007E00000000FE00000000FC00000000FC0+0000000FC00000001FC00000001F800000001F800000001F800000003F800000003F0000+00003F000000003F000000007F000000007E07F000007E1FFC00007E783E0000FFE01F00+00FFC01F8000FF800F8000FF000F8001FE000F8001FE000FC001FC000FC001F8001F8003+F8001F8003F0001F8003F0001F8003F0003F8007F0003F0007E0003F0007E0003F0007E0+007F000FE0007E000FC0007E000FC000FE000FC000FC001FC000FC001F8001FC1C1F8001+F81C1F8001F83C3F8003F8383F0003F0383F0003F0383F0003F0707F0003E0707E0003E0+F07E0003E0E07E0003E1C0FE0001E380FC0000FF003800003C00263B7BB92A>I<0001C0+0007E00007F0000FF0000FE00007E0000380000000000000000000000000000000000000+00000000000000000000000000000000F00003FC00071E000E1F001C1F001C1F00381F00+383F00703F00703F00707F00F07E00E07E00E0FE0000FC0000FC0001FC0001F80003F800+03F80003F00007F00007E00007E0000FE0E00FC0E00FC1E01FC1C01F81C01F81C01F8380+1F03801F07001F07001F0E000F1C0007F80001E000143879B619>I<0003F0000001FFF0+000001FFF0000001FFF000000007F000000007E000000007E000000007E00000000FE000+00000FC00000000FC00000000FC00000001FC00000001F800000001F800000001F800000+003F800000003F000000003F000000003F000000007F000000007E000F80007E003FE000+7E00F0E000FE01C1F000FC0387F000FC0707F000FC0E07F001FC1C07E001F83807E001F8+30038001F870000003F8E0000003F1C0000003F380000003FF00000007FC00000007FE00+000007FFC0000007E7F800000FE1FC00000FC07E00000FC07F00000FC03F00001FC03F80+001F801F81C01F801F81C01F801F83C03F803F83803F003F03803F003F03803F003F0780+7F003F07007E003E07007E001E0E007E001E1E00FE000F3C00FC0007F800380001E00024+3B7BB926>107 D<000FC007FFC007FFC007FFC0001FC0001F80001F80003F80003F8000+3F00003F00007F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0001+F80001F80003F80003F80003F00003F00007F00007F00007E00007E0000FE0000FE0000F+C0000FC0001FC0001FC0001F80001F80003F80003F80003F00003F00007F00007F00007E+0E007E0E00FE0E00FE1E00FC1C00FC1C00FC3C00FC3800F83800F878007870007CE0001F+E0000F8000123B79B915>I<01E000FE0007F00007F803FF801FFC000E3C0F07C0783E00+1E3E3C03E1E01F001C1F7803F3C01F80383FF001F7800F80383FE001F7000F80783FC001+FE000F80703FC001FE000FC0703F8001FC000FC0703F0003F8001F80F07F0003F8001F80+E07E0003F0001F80E07E0003F0001F80007E0007F0003F8000FE0007F0003F0000FC0007+E0003F0000FC0007E0003F0000FC000FE0007F0001FC000FE0007E0001F8000FC0007E00+01F8000FC000FE0001F8001FC000FC0003F8001FC000FC0003F0001F8001FC1C03F0001F+8001F81C03F0003F8001F83C07F0003F8003F83807E0003F0003F03807E0003F0003F038+07E0007F0003F0700FE0007F0003E0700FC0007E0003E0F00FC0007E0003E0E00FC000FE+0003E1C01FC000FE0001E3C01F8000FC0000FF000700003800003C003E2679A444>I<01+E000FE000007F803FF80000E3C0F07C0001E3E3C03E0001C1F7803F000383FF001F00038+3FE001F000783FC001F000703FC001F800703F8001F800703F0003F000F07F0003F000E0+7E0003F000E07E0003F000007E0007F00000FE0007E00000FC0007E00000FC0007E00000+FC000FE00001FC000FC00001F8000FC00001F8001FC00001F8001F800003F8001F800003+F0003F838003F0003F038003F0003F078007F0007F070007E0007E070007E0007E070007+E0007E0E000FE0007C0E000FC0007C1E000FC0007C1C000FC0007C38001FC0003C78001F+80001FE000070000078000292679A42F>I<00007F000003FFC0000FC1F0001F00F8007E+007C00FC007C01F8007E03F0003E07F0003F07E0003F0FE0003F1FC0003F1FC0003F3F80+003F3F80007F7F80007F7F00007F7F00007F7F0000FFFF0000FFFE0000FEFE0000FEFE00+01FEFE0001FCFC0001FCFC0003F8FC0003F8FC0007F0FC0007E0FC000FE07C000FC07E00+1F803E003F003E007E001F00F8000F83F00003FFC00000FE0000202677A42A>I<000780+07C000001FE03FF000003CF0787C000038F8E03E0000787FC03E0000707F801F000070FF+001F0000F0FE001F8000E0FE001F8000E0FC001F8001E1FC001F8001C1FC001F8001C1F8+001F8001C1F8001F800003F8003F800003F8003F800003F0003F800003F0003F800007F0+007F800007F0007F800007E0007F000007E0007F00000FE000FF00000FE000FE00000FC0+00FE00000FC001FC00001FC001FC00001FC001F800001F8003F800001F8003F000003F80+07E000003FC00FC000003FC00F8000003FE01F0000007FE03E0000007F70FC0000007E3F+F00000007E0F80000000FE0000000000FE0000000000FC0000000000FC0000000001FC00+00000001FC0000000001F80000000001F80000000003F80000000003F80000000003F000+00000007F000000000FFFFC0000000FFFFC0000000FFFFC0000000293580A42A>I<0000+F8030007FE07001F871F003E03BF007C03FE00F801FE01F801FE03F000FE07E000FC0FE0+00FC0FC000FC1FC001FC1FC001F83F8001F83F8001F87F8003F87F0003F07F0003F07F00+03F0FF0007F0FE0007E0FE0007E0FE0007E0FE000FE0FC000FC0FC000FC0FC000FC0FC00+1FC0FC001F80FC003F80FC003F807C007F807C00FF003E01FF003E03BF001F0F7F0007FE+7E0001F07E0000007E000000FE000000FC000000FC000000FC000001FC000001F8000001+F8000001F8000003F8000003F0000007F00001FFFFC001FFFFC001FFFFC0203577A426>+I<03C003F0000FF01FFC001E783C0F001C7C700F003C3EE03F80383FC03F80387F803F80+787F803F00707F003F00707F001C00F07E000000E0FE000000E0FC000000E0FC00000000+FC00000001FC00000001F800000001F800000001F800000003F800000003F000000003F0+00000003F000000007F000000007E000000007E000000007E00000000FE00000000FC000+00000FC00000000FC00000001FC00000001F800000001F800000001F800000003F800000+003F000000000E00000000212679A423>I<0000FE000007FF80000F83C0003E00E0007C+00F00078007000F800F001F803F001F003F001F003F001F003E003F001C003F8000003FC+000003FFC00001FFF80001FFFE0000FFFF00007FFF80003FFF80000FFFC00000FFC00000+3FC000001FC000000FC03E000FC07E000FC0FE000F80FE000F80FE000F80FC001F00E000+1F00F0003E0070007C003800F8001E03E0000FFFC00001FE00001C267AA422>I<000380+0007C0000FC0000FC0000FC0000FC0001FC0001F80001F80001F80003F80003F00003F00+003F00007F00007E007FFFFF7FFFFFFFFFFF00FC0000FC0000FC0001FC0001F80001F800+01F80003F80003F00003F00003F00007F00007E00007E00007E0000FE0000FC0000FC000+0FC0001FC0001F801C1F801C1F803C3F80383F00783F00703F00F03F00E03F01C03E03C0+1F07800F0F0007FC0001F000183579B31C>I<00F800000003FE0001C0078F0003E00E0F+8007E01E0F8007E01C0F8007E0380F800FE0381F800FE0781F800FC0701F800FC0703F80+1FC0F03F001FC0E03F001F80E07F001F80007E003F80007E003F8000FE003F0000FC003F+0000FC007F0001FC007F0001F8007E0001F8007E0001F800FE0003F800FE0003F000FC0E+03F000FC0E03F001FC1E03F001FC1C03F001F81C03E001F81C03E001F83C03F003F83803+F007F83801F007F07001F01EF8F000F83C78E0003FF03FC0000FC00F00272679A42D>I<+00F0000E0003FC003F00071E007F800E1F007F801C1F007F803C1F007F80381F003F8038+3F001F80703F000F80703F000F80707F000F80F07E000F00E07E000700E0FE00070000FC+000F0000FC000E0001FC000E0001F8000E0001F8001E0003F8001C0003F0001C0003F000+1C0003F0003C0007F000380007E000380007E000700007E000700007E000700007E000E0+0007E000E00007E001C00007E003C00003E003800003F007000001F00E000000F83C0000+007FF80000000FC00000212679A426>I<00F0000000070003FC0003801F80071E0007C0+3FC00E1F000FC03FC01C1F000FC03FC03C1F000FC03FC0381F001FC01FC0383F001F800F+C0703F001F8007C0703F001F8007C0707F003F8007C0F07E003F800780E07E003F000380+E0FE003F00038000FC007F00078000FC007F00070001FC007E00070001F8007E00070001+F800FE000F0003F800FE000E0003F000FC000E0003F000FC000E0003F000FC001E0007F0+01FC001C0007E001F8001C0007E001F8003C0007E001F800380007E001F800380007E001+F800780007E001F800700007E003F800F00007E003F800E00003E007F801E00003F00FFC+03C00001F01E7C07800000FC3C3E0F0000003FF81FFE0000000FE003F00000322679A437+>I<0007E007C0001FF81FF800787C383C00F03E703C01E01EE0FE03C01FE0FE03801FC0+FE07001FC0FC0F001F80FC0E001F80700E003F80001E003F00001C003F00001C003F0000+00007F000000007F000000007E000000007E00000000FE00000000FE00000000FC000000+00FC00000001FC00000001FC00000001F800700001F800700003F800F00003F800E01C03+F000E07E03F001E07E07F001C0FE07F00380FE0FF00780FE0EF00F00781CF81E0078387C+3C003FF03FF00007C00FC00027267CA427>I<00F000000003FC0001C0071E0003E00E1F+0007E01C1F0007E03C1F0007E0381F000FE0383F000FC0703F000FC0703F000FC0707F00+1FC0F07E001F80E07E001F80E0FE001F8000FC003F8000FC003F0001FC003F0001F8003F+0001F8007F0003F8007E0003F0007E0003F0007E0003F000FE0007F000FC0007E000FC00+07E000FC0007E001FC0007E001F80007E001F80007E001F80007E003F80007E003F00007+E007F00003E00FF00003F01FF00001F87FE000007FF7E000001FC7E00000000FE0000000+0FC00000000FC00000001FC0003F001F80007F003F80007F003F00007F007E00007F007C+00007E00FC00007001F800007003E000003807C000003C1F8000000FFE00000003F00000+00233679A428>I<0003C00380000FF00780001FF80700003FFC0F00007FFC0E0000FFFE+1E0000F83FFC0001F007F80001E000F00001C000E00001C001E000000003C00000000780+0000000F000000001E000000003C000000007800000000F000000001E000000003C00000+0007800000000F000000001E000000003C0000000078001C0000F0001C0001E0003C0003+C00038000380007800078000F8000FF801F0001FFF07E0003E1FFFE0003C0FFFC000780F+FF80007007FF0000F003FC0000E000F0000021267BA422>I E /Fo+23 121 df<000000003FFF000000000000000007FFFFF8000000000000003FFFFFFF0000+0000000001FFFFFFFFE0000000000007FFFFFFFFF800000000001FFFFFFFFFFE00000000+003FFFF807FFFF0000000000FFFFC000FFFFC000000001FFFF00003FFFE000000003FFFC+00000FFFF000000007FFF8000007FFF80000000FFFF0000003FFFC0000001FFFE0000001+FFFE0000003FFFC0000000FFFF0000003FFF800000007FFF0000007FFF800000007FFF80+0000FFFF000000003FFFC00000FFFF000000003FFFC00001FFFE000000001FFFE00001FF+FE000000001FFFE00003FFFE000000001FFFF00003FFFE000000001FFFF00007FFFE0000+00001FFFF80007FFFC000000000FFFF8000FFFFC000000000FFFFC000FFFFC000000000F+FFFC000FFFFC000000000FFFFC001FFFFC000000000FFFFE001FFFFC000000000FFFFE00+1FFFFC000000000FFFFE001FFFFC000000000FFFFE003FFFFC000000000FFFFF003FFFF8+0000000007FFFF003FFFF80000000007FFFF003FFFF80000000007FFFF003FFFF8000000+0007FFFF007FFFF80000000007FFFF807FFFF80000000007FFFF807FFFF80000000007FF+FF807FFFF80000000007FFFF807FFFF80000000007FFFF807FFFF80000000007FFFF807F+FFF80000000007FFFF807FFFF80000000007FFFF80FFFFF80000000007FFFFC0FFFFF800+00000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF800000000+07FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFF+C0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFF+F80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000+000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007+FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0+FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF8+0000000007FFFFC0FFFFF80000000007FFFFC0FFFFF80000000007FFFFC0FFFFF8000000+0007FFFFC07FFFF80000000007FFFF807FFFF80000000007FFFF807FFFF80000000007FF+FF807FFFF80000000007FFFF807FFFF80000000007FFFF807FFFF80000000007FFFF807F+FFF80000000007FFFF807FFFF80000000007FFFF803FFFF80000000007FFFF003FFFFC00+0000000FFFFF003FFFFC000000000FFFFF003FFFFC000000000FFFFF003FFFFC00000000+0FFFFF001FFFFC000000000FFFFE001FFFFC000000000FFFFE001FFFFC000000000FFFFE+000FFFFC000000000FFFFC000FFFFC000000000FFFFC000FFFFC000000000FFFFC0007FF+FE000000001FFFF80007FFFE000000001FFFF80007FFFE000000001FFFF80003FFFE0000+00001FFFF00003FFFE000000001FFFF00001FFFF000000003FFFE00001FFFF000000003F+FFE00000FFFF800000007FFFC000007FFF800000007FFF8000007FFFC0000000FFFF8000+003FFFC0000000FFFF0000001FFFE0000001FFFE0000000FFFF0000003FFFC00000007FF+F8000007FFF800000003FFFC00000FFFF000000001FFFF00003FFFE000000000FFFFC000+FFFFC0000000007FFFF807FFFF80000000001FFFFFFFFFFE000000000007FFFFFFFFF800+0000000001FFFFFFFFE00000000000007FFFFFFF8000000000000007FFFFF80000000000+0000003FFF0000000000527379F061>48 D<0000000001F00000000000000007F8000000+000000000FF8000000000000003FF8000000000000007FF800000000000001FFF8000000+0000000FFFF80000000000003FFFF8000000000001FFFFF800000000003FFFFFF8000000+000FFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF8000000+FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFE7FFFF8000000FFFFC07FFFF8000000+FFF0007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000000000007FFFF8000000+0000007FFFF80000000000007FFFF80000000000007FFFF80000007FFFFFFFFFFFFFFFF0+7FFFFFFFFFFFFFFFF07FFFFFFFFFFFFFFFF07FFFFFFFFFFFFFFFF07FFFFFFFFFFFFFFFF0+7FFFFFFFFFFFFFFFF07FFFFFFFFFFFFFFFF07FFFFFFFFFFFFFFFF0447171F061>I<0000+000FFFE000000000000001FFFFFF8000000000000FFFFFFFF000000000007FFFFFFFFE00+00000001FFFFFFFFFF8000000003FFFFFFFFFFE00000000FFFFFFFFFFFF80000003FFFFF+FFFFFFFC0000007FFFC01FFFFFFF000000FFFC0001FFFFFF800001FFE000007FFFFFC000+03FF8000001FFFFFE00007FF0000000FFFFFF0000FFE00000007FFFFF8001FFC00000003+FFFFFC001FFF00000001FFFFFE003FFFC0000000FFFFFF003FFFF00000007FFFFF007FFF+F80000007FFFFF807FFFFC0000003FFFFF807FFFFE0000003FFFFFC0FFFFFE0000001FFF+FFC0FFFFFE0000001FFFFFE0FFFFFF0000000FFFFFE0FFFFFF0000000FFFFFE0FFFFFF00+00000FFFFFE0FFFFFF00000007FFFFF0FFFFFF00000007FFFFF0FFFFFF00000007FFFFF0+FFFFFF00000007FFFFF0FFFFFF00000007FFFFF07FFFFE00000007FFFFF07FFFFE000000+07FFFFF07FFFFE00000007FFFFF03FFFFC00000007FFFFF01FFFF800000007FFFFF00FFF+F000000007FFFFF003FFC000000007FFFFF000FF0000000007FFFFF000000000000007FF+FFE00000000000000FFFFFE00000000000000FFFFFE00000000000000FFFFFE000000000+00001FFFFFC00000000000001FFFFFC00000000000001FFFFF800000000000003FFFFF80+0000000000003FFFFF000000000000007FFFFF000000000000007FFFFE00000000000000+7FFFFC00000000000000FFFFF800000000000001FFFFF800000000000001FFFFF0000000+00000003FFFFE000000000000003FFFFC000000000000007FFFF800000000000000FFFFF+000000000000000FFFFE000000000000001FFFFC000000000000003FFFF0000000000000+007FFFE0000000000000007FFFC000000000000000FFFF8000000000000001FFFE000000+0000000003FFFC0000000000000007FFF8000000000000000FFFE0000000000000001FFF+C0000000000000001FFF80000000000000003FFF00000000000000007FFC000000000000+0000FFF80000000000000001FFF00000000000000003FFE00000000000000007FF800000+0FF00000000FFF0000000FF00000001FFE0000000FF00000003FFC0000000FF00000007F+F80000001FE0000000FFE00000001FE0000001FFC00000001FE0000003FF800000001FE0+000007FF000000001FE000000FFE000000003FE000001FFC000000003FE000003FF00000+00003FC000003FE0000000003FC000007FC0000000007FC00000FF80000000007FC00001+FF0000000000FFC00003FC0000000007FFC00007FFFFFFFFFFFFFFC0000FFFFFFFFFFFFF+FFC0001FFFFFFFFFFFFFFF80003FFFFFFFFFFFFFFF80007FFFFFFFFFFFFFFF8000FFFFFF+FFFFFFFFFF8001FFFFFFFFFFFFFFFF8003FFFFFFFFFFFFFFFF8007FFFFFFFFFFFFFFFF80+0FFFFFFFFFFFFFFFFF801FFFFFFFFFFFFFFFFF003FFFFFFFFFFFFFFFFF007FFFFFFFFFFF+FFFFFF00FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFF00FFFF+FFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE00FFFFFFFFFFFFFFFF+FE00FFFFFFFFFFFFFFFFFE004C7176F061>I<00000001FFFE000000000000003FFFFFF8+000000000001FFFFFFFF00000000000FFFFFFFFFE0000000003FFFFFFFFFF8000000007F+FFFFFFFFFE00000001FFFFFFFFFFFF80000003FFFF003FFFFFC000000FFFF00007FFFFF0+00001FFF800001FFFFF800003FFE000000FFFFFC00007FF80000007FFFFE00007FE00000+003FFFFE0000FFF00000003FFFFF0001FFFC0000001FFFFF8001FFFF0000001FFFFF8003+FFFF8000000FFFFFC003FFFFC000000FFFFFC003FFFFE000000FFFFFC007FFFFE000000F+FFFFE007FFFFF000000FFFFFE007FFFFF000000FFFFFE007FFFFF000000FFFFFE007FFFF+F000000FFFFFE007FFFFF000000FFFFFE007FFFFF000000FFFFFE007FFFFF000000FFFFF+E007FFFFF000000FFFFFE007FFFFF000000FFFFFE003FFFFE000000FFFFFE003FFFFE000+000FFFFFC001FFFFC000001FFFFFC000FFFF8000001FFFFFC0007FFF0000001FFFFF8000+3FFE0000001FFFFF80000FF80000003FFFFF800000000000003FFFFF000000000000003F+FFFE000000000000007FFFFE000000000000007FFFFC00000000000000FFFFF800000000+000001FFFFF000000000000001FFFFE000000000000003FFFFC000000000000007FFFF80+0000000000000FFFFF000000000000001FFFFC000000000000003FFFF800000000000001+FFFFE00000000000007FFFFF8000000000007FFFFFFE000000000000FFFFFFF800000000+0000FFFFFFC0000000000000FFFFFFF8000000000000FFFFFFFF8000000000007FFFFFFF+F0000000000000003FFFFC0000000000000007FFFF0000000000000001FFFFC000000000+000000FFFFE0000000000000007FFFF8000000000000003FFFFC000000000000001FFFFE+000000000000001FFFFF000000000000000FFFFF800000000000000FFFFFC00000000000+0007FFFFE000000000000007FFFFF000000000000007FFFFF000000000000003FFFFF800+000000000003FFFFFC00000000000003FFFFFC00000000000003FFFFFC00000000000001+FFFFFE00000000000001FFFFFE00000000000001FFFFFE00000000000001FFFFFF00FF80+00000001FFFFFF03FFE000000001FFFFFF07FFF000000001FFFFFF1FFFFC00000001FFFF+FF3FFFFE00000001FFFFFF3FFFFE00000001FFFFFF7FFFFF00000001FFFFFF7FFFFF0000+0001FFFFFFFFFFFF80000001FFFFFFFFFFFF80000001FFFFFFFFFFFF80000001FFFFFFFF+FFFF80000001FFFFFEFFFFFF80000001FFFFFEFFFFFF80000001FFFFFEFFFFFF80000003+FFFFFEFFFFFF80000003FFFFFCFFFFFF80000003FFFFFCFFFFFF00000003FFFFFC7FFFFF+00000003FFFFF87FFFFE00000007FFFFF87FFFFC00000007FFFFF03FFFF80000000FFFFF+E03FFFF00000000FFFFFE01FFFC00000001FFFFFC00FFF000000001FFFFF800FFF000000+003FFFFF0007FF800000007FFFFE0003FFF0000000FFFFFC0001FFFC000001FFFFF80000+7FFFC00007FFFFF000003FFFFE003FFFFFC000000FFFFFFFFFFFFF80000007FFFFFFFFFF+FE00000001FFFFFFFFFFF8000000003FFFFFFFFFE0000000000FFFFFFFFF000000000000+FFFFFFF000000000000007FFFE00000000507378F061>I<000000000000000FF0000000+0000000000001FF80000000000000000003FF80000000000000000003FF8000000000000+0000007FF8000000000000000000FFF8000000000000000001FFF8000000000000000001+FFF8000000000000000003FFF8000000000000000007FFF800000000000000000FFFF800+000000000000001FFFF800000000000000001FFFF800000000000000003FFFF800000000+000000007FFFF80000000000000000FFFFF80000000000000000FFFFF800000000000000+01FFFFF80000000000000003FFFFF80000000000000007FFFFF80000000000000007FFFF+F8000000000000000FFFFFF8000000000000001FFFFFF8000000000000003FFFFFF80000+00000000007FFFFFF8000000000000007FBFFFF800000000000000FF3FFFF80000000000+0001FF3FFFF800000000000003FE3FFFF800000000000003FC3FFFF800000000000007F8+3FFFF80000000000000FF83FFFF80000000000001FF03FFFF80000000000003FE03FFFF8+0000000000003FC03FFFF80000000000007FC03FFFF8000000000000FF803FFFF8000000+000001FF003FFFF8000000000001FE003FFFF8000000000003FC003FFFF8000000000007+FC003FFFF800000000000FF8003FFFF800000000001FF0003FFFF800000000001FE0003F+FFF800000000003FE0003FFFF800000000007FC0003FFFF80000000000FF80003FFFF800+00000000FF00003FFFF80000000001FE00003FFFF80000000003FE00003FFFF800000000+07FC00003FFFF80000000007F800003FFFF8000000000FF000003FFFF8000000001FF000+003FFFF8000000003FE000003FFFF8000000007FC000003FFFF8000000007F8000003FFF+F800000000FF0000003FFFF800000001FF0000003FFFF800000003FE0000003FFFF80000+0003FC0000003FFFF800000007F80000003FFFF80000000FF80000003FFFF80000001FF0+0000003FFFF80000003FE00000003FFFF80000003FC00000003FFFF80000007FC0000000+3FFFF8000000FF800000003FFFF8000001FF000000003FFFF8000001FE000000003FFFF8+000003FC000000003FFFF8000007FC000000003FFFF800000FF8000000003FFFF800001F+F0000000003FFFF800001FE0000000003FFFF800003FE0000000003FFFF800007FC00000+00003FFFF80000FF80000000003FFFF80000FFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFF+FFFFFFFCFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFFFF+FCFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFCFFFFFFFFFFFFFFFFFFFFFC0000+00000000FFFFF80000000000000000FFFFF80000000000000000FFFFF800000000000000+00FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFF+F80000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF80000+000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000+000000FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000+FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF8+000000000007FFFFFFFFFFFFFC00000007FFFFFFFFFFFFFC00000007FFFFFFFFFFFFFC00+000007FFFFFFFFFFFFFC00000007FFFFFFFFFFFFFC00000007FFFFFFFFFFFFFC00000007+FFFFFFFFFFFFFC00000007FFFFFFFFFFFFFC56727BF161>I<0070000000000000700000+FE000000000001F80000FF80000000000FF80000FFF8000000007FF80000FFFF80000007+FFF80000FFFFFE0001FFFFF80000FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFE00000FFFF+FFFFFFFFFFC00000FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFF800000FFFFFFFFFFFFFF00+0000FFFFFFFFFFFFFE000000FFFFFFFFFFFFFC000000FFFFFFFFFFFFF8000000FFFFFFFF+FFFFE0000000FFFFFFFFFFFFC0000000FFFFFFFFFFFF80000000FFFFFFFFFFFE00000000+FFFFFFFFFFF800000000FFFFFFFFFFF000000000FFFFFFFFFFC000000000FFFFFFFFFF00+00000000FFFFFFFFF80000000000FFFFFFFFC00000000000FF07FFF8000000000000FF00+0000000000000000FF000000000000000000FF000000000000000000FF00000000000000+0000FF000000000000000000FF000000000000000000FF000000000000000000FF000000+000000000000FF000000000000000000FF000000000000000000FF000000000000000000+FF000000000000000000FF000000000000000000FF000000000000000000FF0000000000+00000000FF000000000000000000FF0001FFFC0000000000FF001FFFFFE000000000FF00+FFFFFFFC00000000FF03FFFFFFFF00000000FF0FFFFFFFFFC0000000FF1FFFFFFFFFF000+0000FF7FFF003FFFF8000000FFFFF0000FFFFE000000FFFF800003FFFF000000FFFE0000+01FFFF800000FFF8000000FFFFC00000FFF00000007FFFE00000FFE00000003FFFF00000+FFC00000003FFFF80000FF800000001FFFFC0000FF000000001FFFFE00007E000000001F+FFFE00007C000000000FFFFF000000000000000FFFFF000000000000000FFFFF80000000+0000000FFFFF800000000000000FFFFFC00000000000000FFFFFC000000000000007FFFF+C000000000000007FFFFE000000000000007FFFFE000000000000007FFFFE00000000000+0007FFFFE000000000000007FFFFE000000000000007FFFFF000000000000007FFFFF000+000000000007FFFFF000FE0000000007FFFFF003FF8000000007FFFFF00FFFC000000007+FFFFF01FFFF000000007FFFFF03FFFF800000007FFFFF07FFFF800000007FFFFF07FFFFC+00000007FFFFF0FFFFFC00000007FFFFF0FFFFFC00000007FFFFF0FFFFFC00000007FFFF+F0FFFFFC00000007FFFFF0FFFFFC00000007FFFFE0FFFFFC00000007FFFFE0FFFFFC0000+0007FFFFE0FFFFFC00000007FFFFE0FFFFFC0000000FFFFFC0FFFFF80000000FFFFFC07F+FFF80000000FFFFFC07FFFF00000000FFFFF807FFFE00000000FFFFF807FFFC00000001F+FFFF803FFF000000001FFFFF003FE0000000001FFFFE001FF0000000003FFFFE001FF800+0000003FFFFC000FFC000000007FFFF8000FFE000000007FFFF80007FE00000000FFFFF0+0003FF80000001FFFFE00001FFC0000003FFFFC00001FFE0000007FFFF8000007FF80000+1FFFFE0000003FFF00007FFFFC0000001FFFF007FFFFF80000000FFFFFFFFFFFE0000000+03FFFFFFFFFF8000000001FFFFFFFFFE00000000007FFFFFFFF800000000001FFFFFFFC0+000000000003FFFFFE000000000000003FFF80000000004C7376F061>I<00000000001F+FF8000000000000003FFFFF80000000000003FFFFFFE000000000001FFFFFFFF80000000+0007FFFFFFFFC0000000001FFFFFFFFFF0000000007FFFFFFFFFF800000000FFFFFC01FF+FC00000003FFFFC0001FFE00000007FFFE000007FF0000001FFFF8000003FF0000003FFF+F0000001FF8000007FFFC000000FFF800000FFFF8000003FFFC00001FFFF0000007FFFC0+0003FFFE000000FFFFC00007FFFC000001FFFFE0000FFFF8000001FFFFE0001FFFF80000+03FFFFE0001FFFF0000003FFFFE0003FFFF0000003FFFFE0007FFFE0000003FFFFE0007F+FFE0000003FFFFE000FFFFC0000003FFFFE001FFFFC0000003FFFFE001FFFF80000003FF+FFE003FFFF80000001FFFFC003FFFF80000001FFFFC007FFFF00000000FFFF8007FFFF00+0000007FFF0007FFFF000000003FFE000FFFFF000000000FF8000FFFFF00000000000000+1FFFFE000000000000001FFFFE000000000000001FFFFE000000000000001FFFFE000000+000000003FFFFE000000000000003FFFFE000000000000003FFFFE000000000000003FFF+FE000000000000007FFFFC0007FFE00000007FFFFC001FFFFE0000007FFFFC007FFFFFC0+00007FFFFC01FFFFFFF800007FFFFC03FFFFFFFC00007FFFFC0FFFFFFFFF0000FFFFFC1F+F803FFFF8000FFFFFC3FC0007FFFE000FFFFFC3F80001FFFF000FFFFFC7E00000FFFF800+FFFFFCFC000007FFFC00FFFFFDFC000003FFFE00FFFFFDF8000001FFFF00FFFFFFF00000+01FFFF80FFFFFFE0000000FFFFC0FFFFFFE0000000FFFFE0FFFFFFC0000000FFFFE0FFFF+FFC00000007FFFF0FFFFFF800000007FFFF0FFFFFF800000007FFFF8FFFFFF800000007F+FFF8FFFFFF000000007FFFFCFFFFFF000000003FFFFCFFFFFF000000003FFFFCFFFFFE00+0000003FFFFEFFFFFE000000003FFFFEFFFFFE000000003FFFFEFFFFFE000000003FFFFE+FFFFFE000000003FFFFFFFFFFE000000003FFFFF7FFFFC000000003FFFFF7FFFFC000000+003FFFFF7FFFFC000000003FFFFF7FFFFC000000003FFFFF7FFFFC000000003FFFFF7FFF+FC000000003FFFFF7FFFFC000000003FFFFF7FFFFC000000003FFFFF3FFFFC000000003F+FFFF3FFFFC000000003FFFFF3FFFFC000000003FFFFF3FFFFC000000003FFFFF3FFFFE00+0000003FFFFF1FFFFE000000003FFFFF1FFFFE000000003FFFFF1FFFFE000000003FFFFE+0FFFFE000000003FFFFE0FFFFE000000003FFFFE0FFFFE000000003FFFFE07FFFE000000+003FFFFE07FFFE000000003FFFFC07FFFF000000007FFFFC03FFFF000000007FFFF803FF+FF000000007FFFF801FFFF000000007FFFF801FFFF800000007FFFF000FFFF80000000FF+FFE0007FFFC0000000FFFFE0007FFFC0000000FFFFC0003FFFE0000001FFFF80001FFFE0+000003FFFF00001FFFF0000003FFFF00000FFFF8000007FFFE000007FFFC00000FFFFC00+0003FFFF00001FFFF0000000FFFF80007FFFE00000007FFFF007FFFFC00000003FFFFFFF+FFFF000000000FFFFFFFFFFE0000000003FFFFFFFFF80000000001FFFFFFFFE000000000+003FFFFFFF80000000000007FFFFFC000000000000007FFF80000000507378F061>I<03+FC00000000000000000003FC00000000000000000007FE00000000000000000007FF0000+0000000000000007FFC0000000000000000007FFFFF00000000000000007FFFFFFFFFFFF+FFFFFFC007FFFFFFFFFFFFFFFFFFC007FFFFFFFFFFFFFFFFFFC007FFFFFFFFFFFFFFFFFF+C00FFFFFFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFFFFFC00FFF+FFFFFFFFFFFFFFFF800FFFFFFFFFFFFFFFFFFF000FFFFFFFFFFFFFFFFFFE000FFFFFFFFF+FFFFFFFFFE001FFFFFFFFFFFFFFFFFFC001FFFFFFFFFFFFFFFFFF8001FFFFFFFFFFFFFFF+FFF0001FFFFFFFFFFFFFFFFFE0001FFFFFFFFFFFFFFFFFC0001FFFFFFFFFFFFFFFFFC000+1FFFFFFFFFFFFFFFFF80001FFFFFFFFFFFFFFFFF00003FFFFFFFFFFFFFFFFE00003FFFFF+FFFFFFFFFFFC00003FFE00000000000FF800003FF000000000001FF800003FE000000000+003FF000003FE000000000007FE000003FC000000000007FC000003FC00000000000FF80+00007FC00000000001FF0000007FC00000000003FF0000007F800000000007FE0000007F+80000000000FFC0000007F80000000000FF80000007F80000000001FF00000007F800000+00003FE0000000FF00000000007FE0000000FF0000000000FFC0000000FF0000000001FF+80000000FF0000000001FF00000000000000000003FE00000000000000000007FC000000+0000000000000FFC0000000000000000001FF80000000000000000001FF0000000000000+0000003FF00000000000000000007FE00000000000000000007FC0000000000000000000+FFC0000000000000000001FF80000000000000000001FF80000000000000000003FF8000+0000000000000007FF00000000000000000007FF0000000000000000000FFE0000000000+000000001FFE0000000000000000001FFE0000000000000000003FFC0000000000000000+003FFC0000000000000000007FFC0000000000000000007FFC000000000000000000FFF8+000000000000000000FFF8000000000000000001FFF8000000000000000001FFF8000000+000000000003FFF0000000000000000003FFF0000000000000000007FFF0000000000000+000007FFF000000000000000000FFFF000000000000000000FFFF000000000000000000F+FFE000000000000000001FFFE000000000000000001FFFE000000000000000003FFFE000+000000000000003FFFE000000000000000003FFFE000000000000000007FFFE000000000+000000007FFFE000000000000000007FFFE00000000000000000FFFFE000000000000000+00FFFFE00000000000000000FFFFC00000000000000000FFFFC00000000000000001FFFF+C00000000000000001FFFFC00000000000000001FFFFC00000000000000001FFFFC00000+000000000003FFFFC00000000000000003FFFFC00000000000000003FFFFC00000000000+000003FFFFC00000000000000003FFFFC00000000000000003FFFFC00000000000000003+FFFFC00000000000000007FFFFC00000000000000007FFFFC00000000000000007FFFFC0+0000000000000007FFFFC00000000000000007FFFFC00000000000000007FFFFC0000000+0000000007FFFFC00000000000000007FFFFC00000000000000007FFFFC0000000000000+0007FFFFC00000000000000007FFFFC00000000000000007FFFFC00000000000000007FF+FFC00000000000000003FFFF800000000000000003FFFF800000000000000001FFFF0000+00000000000001FFFF000000000000000000FFFE0000000000000000003FF80000000000+000000000FE0000000000000527775F461>I<00000000FFFF800000000000001FFFFFFC+000000000000FFFFFFFF800000000003FFFFFFFFF0000000000FFFFFFFFFFC000000003F+FFFFFFFFFF000000007FFFFFFFFFFF80000001FFFF8003FFFFE0000003FFF800003FFFF0+000007FFC000000FFFF800000FFF00000003FFFC00001FFC00000001FFFE00003FF80000+00007FFF00007FF8000000007FFF00007FF0000000003FFF8000FFE0000000001FFF8000+FFE0000000000FFFC001FFE0000000000FFFC001FFC00000000007FFC001FFC000000000+07FFE003FFC00000000007FFE003FFC00000000007FFE003FFC00000000003FFE007FFE0+0000000003FFE007FFE00000000003FFE007FFE00000000003FFE007FFF00000000003FF+E007FFF80000000003FFE007FFFC0000000003FFE007FFFE0000000007FFE007FFFF0000+000007FFE007FFFFC000000007FFC007FFFFE000000007FFC007FFFFF80000000FFFC007+FFFFFE0000000FFF8007FFFFFF8000001FFF8003FFFFFFC000001FFF0003FFFFFFF00000+3FFF0003FFFFFFFC00007FFE0001FFFFFFFE00007FFC0001FFFFFFFF8000FFFC0001FFFF+FFFFE001FFF80000FFFFFFFFF803FFF00000FFFFFFFFFC0FFFC000007FFFFFFFFF1FFF80+00003FFFFFFFFFFFFF0000003FFFFFFFFFFFFC0000001FFFFFFFFFFFF00000000FFFFFFF+FFFFE000000007FFFFFFFFFF8000000003FFFFFFFFFFE000000001FFFFFFFFFFF0000000+007FFFFFFFFFFC000000003FFFFFFFFFFF000000000FFFFFFFFFFF8000000007FFFFFFFF+FFE000000003FFFFFFFFFFF00000000FFFFFFFFFFFF80000003FFFFFFFFFFFFC000000FF+FFFFFFFFFFFE000001FFFFFFFFFFFFFF000007FFF0FFFFFFFFFF80000FFFC07FFFFFFFFF+C0003FFF801FFFFFFFFFE0007FFF0007FFFFFFFFE000FFFE0001FFFFFFFFF001FFFC0000+FFFFFFFFF003FFF800003FFFFFFFF807FFF000000FFFFFFFF807FFE0000007FFFFFFFC0F+FFE0000001FFFFFFFC1FFFC00000007FFFFFFE1FFF800000001FFFFFFE3FFF800000000F+FFFFFE3FFF0000000003FFFFFE7FFF0000000000FFFFFF7FFF00000000003FFFFF7FFE00+000000001FFFFF7FFE00000000000FFFFFFFFE000000000007FFFFFFFE000000000003FF+FFFFFC000000000001FFFFFFFC000000000001FFFFFFFC000000000000FFFFFFFC000000+0000007FFFFFFC0000000000007FFFFFFC0000000000007FFFFFFC0000000000003FFFFF+FC0000000000003FFEFFFC0000000000003FFEFFFE0000000000003FFEFFFE0000000000+003FFE7FFE0000000000003FFC7FFF0000000000003FFC7FFF0000000000007FFC7FFF00+00000000007FF83FFF8000000000007FF83FFF800000000000FFF01FFFC00000000000FF+F01FFFE00000000001FFE00FFFF00000000003FFC007FFF80000000007FFC007FFFC0000+00000FFF8003FFFE000000001FFF0001FFFF800000007FFE0000FFFFE0000001FFFC0000+3FFFFC00000FFFF000001FFFFFC001FFFFE0000007FFFFFFFFFFFF80000003FFFFFFFFFF+FF00000000FFFFFFFFFFFC000000001FFFFFFFFFF00000000007FFFFFFFF800000000000+7FFFFFFC00000000000001FFFF00000000507378F061>I<00000000FFFF000000000000+001FFFFFF0000000000000FFFFFFFE000000000007FFFFFFFF80000000001FFFFFFFFFE0+000000003FFFFFFFFFF800000000FFFFFFFFFFFC00000001FFFFF007FFFF00000007FFFF+0001FFFF8000000FFFFC00007FFFC000001FFFF800003FFFE000003FFFF000001FFFF000+007FFFE000000FFFF80000FFFFC0000007FFFC0001FFFF80000003FFFC0003FFFF800000+03FFFE0007FFFF00000001FFFF0007FFFF00000001FFFF000FFFFF00000000FFFF800FFF+FE00000000FFFF801FFFFE00000000FFFFC01FFFFE00000000FFFFC03FFFFE000000007F+FFE03FFFFE000000007FFFE07FFFFC000000007FFFF07FFFFC000000007FFFF07FFFFC00+0000007FFFF07FFFFC000000007FFFF87FFFFC000000007FFFF8FFFFFC000000007FFFF8+FFFFFC000000007FFFF8FFFFFC000000003FFFFCFFFFFC000000003FFFFCFFFFFC000000+003FFFFCFFFFFC000000003FFFFCFFFFFC000000003FFFFCFFFFFC000000003FFFFEFFFF+FC000000003FFFFEFFFFFC000000003FFFFEFFFFFC000000003FFFFEFFFFFC000000003F+FFFEFFFFFC000000003FFFFEFFFFFC000000003FFFFEFFFFFC000000003FFFFFFFFFFC00+0000007FFFFFFFFFFC000000007FFFFF7FFFFC000000007FFFFF7FFFFC000000007FFFFF+7FFFFC000000007FFFFF7FFFFC000000007FFFFF3FFFFC00000000FFFFFF3FFFFC000000+00FFFFFF3FFFFE00000000FFFFFF1FFFFE00000001FFFFFF1FFFFE00000001FFFFFF0FFF+FE00000001FFFFFF0FFFFE00000003FFFFFF07FFFF00000003FFFFFF07FFFF00000007FF+FFFF03FFFF00000007FFFFFF01FFFF8000000FFFFFFF00FFFF8000001FBFFFFF007FFFC0+00003F3FFFFF003FFFE000003F3FFFFF001FFFF00000FE3FFFFF000FFFF80001FC3FFFFF+0007FFFE0007FC3FFFFF0001FFFFC01FF83FFFFF0000FFFFFFFFF03FFFFE00003FFFFFFF+C03FFFFE00001FFFFFFF803FFFFE000003FFFFFE003FFFFE0000007FFFF8003FFFFE0000+0007FFC0003FFFFE000000000000003FFFFE000000000000007FFFFC000000000000007F+FFFC000000000000007FFFFC000000000000007FFFFC000000000000007FFFF800000000+0000007FFFF8000000000000007FFFF8000000000000007FFFF0001FF000000000FFFFF0+007FFC00000000FFFFF000FFFE00000000FFFFE001FFFF00000000FFFFE003FFFF800000+00FFFFC003FFFF80000001FFFFC007FFFFC0000001FFFFC007FFFFC0000001FFFF8007FF+FFC0000003FFFF0007FFFFC0000003FFFF0007FFFFC0000003FFFE0007FFFFC0000007FF+FE0007FFFFC0000007FFFC0007FFFFC000000FFFF80007FFFF8000001FFFF80007FFFF80+00001FFFF00003FFFF0000003FFFE00003FFFE0000007FFFC00003FFFC000000FFFF8000+01FFF0000001FFFF000001FF80000003FFFE000000FFE000000FFFFC0000007FF000003F+FFF00000007FFE0000FFFFE00000003FFFE00FFFFFC00000001FFFFFFFFFFF0000000007+FFFFFFFFFC0000000003FFFFFFFFF00000000000FFFFFFFFC000000000003FFFFFFF0000+0000000007FFFFF0000000000000007FFE0000000000507378F061>I<00000000000000+03F800000000000000000000000000000007FC0000000000000000000000000000000FFE+0000000000000000000000000000000FFE0000000000000000000000000000001FFF0000+000000000000000000000000001FFF0000000000000000000000000000001FFF00000000+00000000000000000000003FFF8000000000000000000000000000003FFF800000000000+0000000000000000007FFFC000000000000000000000000000007FFFC000000000000000+000000000000007FFFC00000000000000000000000000000FFFFE0000000000000000000+0000000000FFFFE00000000000000000000000000001FFFFF00000000000000000000000+000001FFFFF00000000000000000000000000001FFFFF000000000000000000000000000+03FFFFF80000000000000000000000000003FFFFF80000000000000000000000000007FF+FFFC0000000000000000000000000007FFFFFC0000000000000000000000000007FFFFFC+000000000000000000000000000FFFFFFE000000000000000000000000000FFFFFFE0000+00000000000000000000001FFFFFFF000000000000000000000000001FFFFFFF00000000+0000000000000000001FFFFFFF000000000000000000000000003FFFFFFF800000000000+000000000000003FFFFFFF800000000000000000000000007FFFFFFFC000000000000000+00000000007FFFFFFFC00000000000000000000000007FBFFFFFC0000000000000000000+000000FF9FFFFFE0000000000000000000000000FF1FFFFFE00000000000000000000000+01FF0FFFFFF0000000000000000000000001FF0FFFFFF0000000000000000000000001FE+0FFFFFF0000000000000000000000003FE07FFFFF8000000000000000000000003FC07FF+FFF8000000000000000000000007FC03FFFFFC000000000000000000000007FC03FFFFFC+000000000000000000000007F803FFFFFC00000000000000000000000FF801FFFFFE0000+0000000000000000000FF001FFFFFE00000000000000000000001FF000FFFFFF00000000+000000000000001FF000FFFFFF00000000000000000000001FE000FFFFFF000000000000+00000000003FE0007FFFFF80000000000000000000003FC0007FFFFF8000000000000000+0000007FC0003FFFFFC0000000000000000000007FC0003FFFFFC0000000000000000000+007F80003FFFFFC000000000000000000000FF80001FFFFFE000000000000000000000FF+00001FFFFFE000000000000000000001FF00000FFFFFF000000000000000000001FF0000+0FFFFFF000000000000000000001FE00000FFFFFF000000000000000000003FE000007FF+FFF800000000000000000003FC000007FFFFF800000000000000000007FC000003FFFFFC+00000000000000000007FC000003FFFFFC00000000000000000007F8000003FFFFFC0000+000000000000000FF8000001FFFFFE0000000000000000000FF0000001FFFFFE00000000+00000000001FF0000000FFFFFF0000000000000000001FF0000000FFFFFF000000000000+0000001FE0000000FFFFFF0000000000000000003FE00000007FFFFF8000000000000000+003FC00000007FFFFF8000000000000000007FC00000003FFFFFC000000000000000007F+C00000003FFFFFC000000000000000007F800000003FFFFFC00000000000000000FF8000+00001FFFFFE00000000000000000FF000000001FFFFFE00000000000000001FF00000000+0FFFFFF00000000000000001FF000000000FFFFFF00000000000000001FE000000000FFF+FFF00000000000000003FE0000000007FFFFF80000000000000003FC0000000007FFFFF8+0000000000000007FFFFFFFFFFFFFFFFFC0000000000000007FFFFFFFFFFFFFFFFFC0000+000000000007FFFFFFFFFFFFFFFFFC000000000000000FFFFFFFFFFFFFFFFFFE00000000+0000000FFFFFFFFFFFFFFFFFFE000000000000001FFFFFFFFFFFFFFFFFFF000000000000+001FFFFFFFFFFFFFFFFFFF000000000000001FFFFFFFFFFFFFFFFFFF000000000000003F+E000000000007FFFFF800000000000003FC000000000007FFFFF800000000000007FC000+000000003FFFFFC00000000000007FC000000000003FFFFFC00000000000007F80000000+00003FFFFFC0000000000000FF8000000000001FFFFFE0000000000000FF800000000000+1FFFFFE0000000000001FF0000000000000FFFFFF0000000000001FF0000000000000FFF+FFF0000000000001FE0000000000000FFFFFF0000000000003FE00000000000007FFFFF8+000000000003FE00000000000007FFFFF8000000000007FC00000000000003FFFFFC0000+00000007FC00000000000003FFFFFC000000000007F800000000000003FFFFFC00000000+000FF800000000000001FFFFFE00000000000FF800000000000001FFFFFE00000000000F+F000000000000000FFFFFE00000000001FF000000000000000FFFFFF00000000001FE000+000000000000FFFFFF00000000003FE0000000000000007FFFFF80000000003FE0000000+000000007FFFFF80000000003FC0000000000000003FFFFF80000000007FC00000000000+00003FFFFFC0000000007F80000000000000003FFFFFC000000007FFFC00000000000000+1FFFFFE00000FFFFFFFFFF800000001FFFFFFFFFFFFFE0FFFFFFFFFF800000001FFFFFFF+FFFFFFE0FFFFFFFFFF800000001FFFFFFFFFFFFFE0FFFFFFFFFF800000001FFFFFFFFFFF+FFE0FFFFFFFFFF800000001FFFFFFFFFFFFFE0FFFFFFFFFF800000001FFFFFFFFFFFFFE0+FFFFFFFFFF800000001FFFFFFFFFFFFFE0FFFFFFFFFF800000001FFFFFFFFFFFFFE08379+79F892>65 D<FFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFFFFFFFFFE00000000+FFFFFFFFFFFFFFFFFFFFFFC0000000FFFFFFFFFFFFFFFFFFFFFFF8000000FFFFFFFFFFFF+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFC00000FFFFFFFFFFFFFFFFFFFFFFFF+F00000FFFFFFFFFFFFFFFFFFFFFFFFF8000000003FFFFE000000000FFFFFFE000000003F+FFFE0000000001FFFFFF000000003FFFFE00000000007FFFFF800000003FFFFE00000000+001FFFFFC00000003FFFFE00000000000FFFFFE00000003FFFFE000000000007FFFFF000+00003FFFFE000000000003FFFFF80000003FFFFE000000000001FFFFFC0000003FFFFE00+0000000001FFFFFC0000003FFFFE000000000000FFFFFE0000003FFFFE000000000000FF+FFFE0000003FFFFE0000000000007FFFFF0000003FFFFE0000000000007FFFFF0000003F+FFFE0000000000007FFFFF8000003FFFFE0000000000003FFFFF8000003FFFFE00000000+00003FFFFF8000003FFFFE0000000000003FFFFF8000003FFFFE0000000000003FFFFFC0+00003FFFFE0000000000003FFFFFC000003FFFFE0000000000001FFFFFC000003FFFFE00+00000000001FFFFFC000003FFFFE0000000000001FFFFFC000003FFFFE0000000000001F+FFFFC000003FFFFE0000000000001FFFFFC000003FFFFE0000000000003FFFFFC000003F+FFFE0000000000003FFFFFC000003FFFFE0000000000003FFFFF8000003FFFFE00000000+00003FFFFF8000003FFFFE0000000000003FFFFF8000003FFFFE0000000000003FFFFF80+00003FFFFE0000000000007FFFFF0000003FFFFE0000000000007FFFFF0000003FFFFE00+0000000000FFFFFE0000003FFFFE000000000000FFFFFE0000003FFFFE000000000001FF+FFFC0000003FFFFE000000000001FFFFF80000003FFFFE000000000003FFFFF80000003F+FFFE000000000007FFFFF00000003FFFFE00000000000FFFFFE00000003FFFFE00000000+001FFFFFC00000003FFFFE00000000003FFFFF800000003FFFFE00000000007FFFFE0000+00003FFFFE0000000001FFFFFC000000003FFFFE0000000007FFFFF0000000003FFFFE00+0000003FFFFFC0000000003FFFFE00000007FFFFFF00000000003FFFFFFFFFFFFFFFFFF8+00000000003FFFFFFFFFFFFFFFFFC000000000003FFFFFFFFFFFFFFFFF8000000000003F+FFFFFFFFFFFFFFFFFC00000000003FFFFFFFFFFFFFFFFFFF80000000003FFFFFFFFFFFFF+FFFFFFF0000000003FFFFE0000000000FFFFFC000000003FFFFE00000000003FFFFF0000+00003FFFFE00000000000FFFFF800000003FFFFE000000000003FFFFE00000003FFFFE00+0000000001FFFFF00000003FFFFE000000000000FFFFFC0000003FFFFE0000000000007F+FFFE0000003FFFFE0000000000003FFFFF0000003FFFFE0000000000003FFFFF8000003F+FFFE0000000000001FFFFF8000003FFFFE0000000000000FFFFFC000003FFFFE00000000+00000FFFFFE000003FFFFE0000000000000FFFFFE000003FFFFE00000000000007FFFFF0+00003FFFFE00000000000007FFFFF000003FFFFE00000000000007FFFFF800003FFFFE00+000000000003FFFFF800003FFFFE00000000000003FFFFFC00003FFFFE00000000000003+FFFFFC00003FFFFE00000000000003FFFFFC00003FFFFE00000000000003FFFFFC00003F+FFFE00000000000001FFFFFE00003FFFFE00000000000001FFFFFE00003FFFFE00000000+000001FFFFFE00003FFFFE00000000000001FFFFFE00003FFFFE00000000000001FFFFFE+00003FFFFE00000000000001FFFFFE00003FFFFE00000000000001FFFFFE00003FFFFE00+000000000001FFFFFE00003FFFFE00000000000001FFFFFE00003FFFFE00000000000003+FFFFFE00003FFFFE00000000000003FFFFFC00003FFFFE00000000000003FFFFFC00003F+FFFE00000000000003FFFFFC00003FFFFE00000000000003FFFFFC00003FFFFE00000000+000007FFFFF800003FFFFE00000000000007FFFFF800003FFFFE0000000000000FFFFFF8+00003FFFFE0000000000000FFFFFF000003FFFFE0000000000001FFFFFF000003FFFFE00+00000000001FFFFFE000003FFFFE0000000000003FFFFFC000003FFFFE0000000000007F+FFFFC000003FFFFE000000000000FFFFFF8000003FFFFE000000000001FFFFFF0000003F+FFFE000000000003FFFFFE0000003FFFFE00000000000FFFFFFE0000003FFFFE00000000+001FFFFFF80000003FFFFE0000000000FFFFFFF00000003FFFFE0000000007FFFFFFE000+FFFFFFFFFFFFFFFFFFFFFFFFFFC000FFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF+FFFFFFFFFFFFFC0000FFFFFFFFFFFFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFFFFFFFFFFF+C00000FFFFFFFFFFFFFFFFFFFFFFFE000000FFFFFFFFFFFFFFFFFFFFFFE0000000FFFFFF+FFFFFFFFFFFFFFF800000000777679F58A>I<000000000000007FFFE000000000700000+000000003FFFFFFF00000001F8000000000003FFFFFFFFF0000003F800000000003FFFFF+FFFFFC000007F80000000001FFFFFFFFFFFF80000FF80000000007FFFFFFFFFFFFE0001F+F8000000003FFFFFFFFFFFFFF0003FF800000000FFFFFFFFFFFFFFFC007FF800000003FF+FFFFFF0007FFFE00FFF80000000FFFFFFFC000003FFF81FFF80000001FFFFFFC00000007+FFC3FFF80000007FFFFFE000000001FFF7FFF8000000FFFFFF80000000007FFFFFF80000+03FFFFFE00000000001FFFFFF8000007FFFFF800000000000FFFFFF800000FFFFFE00000+00000007FFFFF800001FFFFFC0000000000001FFFFF800007FFFFF80000000000000FFFF+F80000FFFFFE000000000000007FFFF80001FFFFFC000000000000003FFFF80003FFFFF8+000000000000003FFFF80003FFFFF0000000000000001FFFF80007FFFFF0000000000000+000FFFF8000FFFFFE00000000000000007FFF8001FFFFFC00000000000000003FFF8003F+FFFF800000000000000003FFF8003FFFFF800000000000000001FFF8007FFFFF00000000+0000000001FFF800FFFFFE000000000000000000FFF800FFFFFE000000000000000000FF+F801FFFFFC0000000000000000007FF801FFFFFC0000000000000000007FF803FFFFFC00+00000000000000003FF803FFFFF80000000000000000003FF807FFFFF800000000000000+00001FF807FFFFF00000000000000000001FF80FFFFFF00000000000000000001FF80FFF+FFF00000000000000000000FF80FFFFFF00000000000000000000FF81FFFFFE000000000+00000000000FF81FFFFFE00000000000000000000FF81FFFFFE00000000000000000000F+F83FFFFFE000000000000000000007F83FFFFFC000000000000000000007F83FFFFFC000+000000000000000007F83FFFFFC000000000000000000003F07FFFFFC000000000000000+000000007FFFFFC000000000000000000000007FFFFFC000000000000000000000007FFF+FFC000000000000000000000007FFFFF8000000000000000000000007FFFFF8000000000+00000000000000FFFFFF800000000000000000000000FFFFFF8000000000000000000000+00FFFFFF800000000000000000000000FFFFFF800000000000000000000000FFFFFF8000+00000000000000000000FFFFFF800000000000000000000000FFFFFF8000000000000000+00000000FFFFFF800000000000000000000000FFFFFF800000000000000000000000FFFF+FF800000000000000000000000FFFFFF800000000000000000000000FFFFFF8000000000+00000000000000FFFFFF800000000000000000000000FFFFFF8000000000000000000000+00FFFFFF800000000000000000000000FFFFFF800000000000000000000000FFFFFF8000+00000000000000000000FFFFFF8000000000000000000000007FFFFF8000000000000000+000000007FFFFF8000000000000000000000007FFFFFC000000000000000000000007FFF+FFC000000000000000000000007FFFFFC000000000000000000000007FFFFFC000000000+000000000000003FFFFFC000000000000000000000003FFFFFC000000000000000000000+003FFFFFC000000000000000000003F03FFFFFE000000000000000000007F81FFFFFE000+000000000000000007F81FFFFFE000000000000000000007F81FFFFFE000000000000000+000007F80FFFFFF000000000000000000007F80FFFFFF000000000000000000007F80FFF+FFF00000000000000000000FF807FFFFF00000000000000000000FF807FFFFF800000000+00000000000FF003FFFFF80000000000000000000FF003FFFFFC0000000000000000001F+F001FFFFFC0000000000000000001FF001FFFFFC0000000000000000001FE000FFFFFE00+00000000000000003FE000FFFFFF0000000000000000003FE0007FFFFF00000000000000+00007FC0003FFFFF8000000000000000007FC0003FFFFF800000000000000000FF80001F+FFFFC00000000000000000FF80000FFFFFE00000000000000001FF000007FFFFF0000000+0000000003FF000003FFFFF00000000000000007FE000003FFFFF80000000000000007FE+000001FFFFFC000000000000000FFC000000FFFFFE000000000000001FF80000007FFFFF+800000000000003FF00000001FFFFFC0000000000000FFE00000000FFFFFE00000000000+01FFC000000007FFFFF8000000000003FF8000000003FFFFFE00000000000FFF00000000+00FFFFFF80000000003FFE00000000007FFFFFF000000000FFFC00000000001FFFFFFE00+000003FFF800000000000FFFFFFFC000001FFFE0000000000003FFFFFFFF0003FFFFC000+0000000000FFFFFFFFFFFFFFFF000000000000003FFFFFFFFFFFFFFC0000000000000007+FFFFFFFFFFFFF00000000000000001FFFFFFFFFFFFC000000000000000003FFFFFFFFFFF+00000000000000000003FFFFFFFFF8000000000000000000003FFFFFFF80000000000000+00000000007FFFF00000000000757A75F78C>I<0000003FFFF80000000000000007FFFF+FFE00000000000007FFFFFFFFC000000000001FFFFFFFFFF800000000007FFFFFFFFFFE0+000000001FFFFFFFFFFFF0000000003FFFF0007FFFFC000000007FFE00000FFFFE000000+00FFFF000003FFFF80000001FFFF800001FFFFC0000001FFFFC00000FFFFE0000001FFFF+C000007FFFF0000003FFFFE000003FFFF8000003FFFFE000001FFFF8000003FFFFE00000+1FFFFC000003FFFFE000000FFFFE000003FFFFE000000FFFFE000003FFFFE000000FFFFF+000003FFFFE0000007FFFF000003FFFFE0000007FFFF000001FFFFC0000007FFFF000001+FFFFC0000003FFFF800000FFFF80000003FFFF8000007FFF00000003FFFF8000003FFE00+000003FFFF8000000FF800000003FFFF80000003E000000003FFFF800000000000000003+FFFF800000000000000003FFFF800000000000000003FFFF800000000000000003FFFF80+0000000000000003FFFF800000000000000003FFFF800000000000000003FFFF80000000+00000007FFFFFF8000000000001FFFFFFFFF800000000003FFFFFFFFFF80000000007FFF+FFFFFFFF8000000003FFFFFFFFFFFF800000001FFFFFFE03FFFF80000000FFFFFF8003FF+FF80000003FFFFF80003FFFF8000000FFFFFC00003FFFF8000001FFFFF000003FFFF8000+007FFFFC000003FFFF800000FFFFF0000003FFFF800001FFFFC0000003FFFF800003FFFF+80000003FFFF800007FFFF00000003FFFF80000FFFFE00000003FFFF80001FFFFE000000+03FFFF80003FFFFC00000003FFFF80003FFFF800000003FFFF80007FFFF800000003FFFF+80007FFFF000000003FFFF80007FFFF000000003FFFF8000FFFFF000000003FFFF8000FF+FFE000000003FFFF8000FFFFE000000003FFFF8000FFFFE000000003FFFF8000FFFFE000+000007FFFF8000FFFFE000000007FFFF8000FFFFE000000007FFFF8000FFFFF00000000F+FFFF8000FFFFF00000000FFFFF80007FFFF00000001FFFFF80007FFFF80000003FFFFF80+007FFFF80000007EFFFF80003FFFFC0000007EFFFFC0003FFFFE000001FCFFFFE0001FFF+FF000003F8FFFFFC000FFFFF80000FF0FFFFFFFC07FFFFE0003FE07FFFFFFE01FFFFFC03+FFC07FFFFFFE00FFFFFFFFFF803FFFFFFE003FFFFFFFFE001FFFFFFE000FFFFFFFFC0007+FFFFFE0003FFFFFFF00001FFFFFE00003FFFFF8000003FFFFC000001FFF8000000000000+57507ACE5E>97 D<00000000000000000FFFE00000000000000007FFFFFFE00000000000+000007FFFFFFE00000000000000007FFFFFFE00000000000000007FFFFFFE00000000000+000007FFFFFFE00000000000000007FFFFFFE00000000000000007FFFFFFE00000000000+000007FFFFFFE0000000000000000003FFFFE0000000000000000000FFFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE00000000000000000007FFFE00000000000000000007FFFE00000000000+000000007FFFE000000000003FFF80007FFFE00000000007FFFFF8007FFFE0000000003F+FFFFFF007FFFE000000001FFFFFFFFC07FFFE000000007FFFFFFFFF07FFFE00000001FFF+FFFFFFFC7FFFE00000007FFFFE007FFE7FFFE0000000FFFFF0000FFF7FFFE0000003FFFF+800001FFFFFFE0000007FFFE0000007FFFFFE000000FFFFC0000003FFFFFE000001FFFF8+0000001FFFFFE000003FFFF00000000FFFFFE000007FFFE000000007FFFFE00000FFFFC0+00000003FFFFE00001FFFFC000000001FFFFE00003FFFF8000000000FFFFE00003FFFF00+00000000FFFFE00007FFFF0000000000FFFFE00007FFFF0000000000FFFFE0000FFFFE00+00000000FFFFE0000FFFFE0000000000FFFFE0001FFFFE0000000000FFFFE0001FFFFC00+00000000FFFFE0003FFFFC0000000000FFFFE0003FFFFC0000000000FFFFE0003FFFFC00+00000000FFFFE0007FFFFC0000000000FFFFE0007FFFF80000000000FFFFE0007FFFF800+00000000FFFFE0007FFFF80000000000FFFFE0007FFFF80000000000FFFFE000FFFFF800+00000000FFFFE000FFFFF80000000000FFFFE000FFFFF80000000000FFFFE000FFFFF800+00000000FFFFE000FFFFF80000000000FFFFE000FFFFF80000000000FFFFE000FFFFF800+00000000FFFFE000FFFFF80000000000FFFFE000FFFFF80000000000FFFFE000FFFFF800+00000000FFFFE000FFFFF80000000000FFFFE000FFFFF80000000000FFFFE000FFFFF800+00000000FFFFE000FFFFF80000000000FFFFE000FFFFF80000000000FFFFE0007FFFF800+00000000FFFFE0007FFFF80000000000FFFFE0007FFFF80000000000FFFFE0007FFFF800+00000000FFFFE0007FFFFC0000000000FFFFE0003FFFFC0000000000FFFFE0003FFFFC00+00000000FFFFE0003FFFFC0000000000FFFFE0001FFFFC0000000000FFFFE0001FFFFC00+00000000FFFFE0001FFFFE0000000000FFFFE0000FFFFE0000000000FFFFE0000FFFFE00+00000000FFFFE00007FFFF0000000000FFFFE00007FFFF0000000001FFFFE00003FFFF80+00000003FFFFE00001FFFF8000000007FFFFE00000FFFFC000000007FFFFE00000FFFFC0+0000000FFFFFE000007FFFE00000001FFFFFE000003FFFF00000003FFFFFE000001FFFF8+000000FFFFFFF000000FFFFC000001FFFFFFFC000003FFFF000007FFFFFFFFFE0001FFFF+C0003FFEFFFFFFFE00007FFFFC01FFF8FFFFFFFE00003FFFFFFFFFF0FFFFFFFE00000FFF+FFFFFFC0FFFFFFFE000003FFFFFFFF00FFFFFFFE0000007FFFFFFC00FFFFFFFE0000000F+FFFFE000FFFFFFFE000000007FFE0000FFFE00005F797AF76C>100+D<000000007FFF800000000000000FFFFFFC0000000000007FFFFFFF800000000001FFFF+FFFFE00000000007FFFFFFFFF8000000001FFFFFFFFFFE000000007FFFF807FFFF000000+01FFFFC000FFFF80000003FFFF00003FFFE0000007FFFC00000FFFF000000FFFF8000007+FFF800001FFFF0000003FFF800003FFFE0000001FFFC00007FFFC0000000FFFE0000FFFF+80000000FFFE0001FFFF800000007FFF0001FFFF000000007FFF8003FFFF000000003FFF+8007FFFE000000003FFF8007FFFE000000003FFFC00FFFFE000000001FFFC00FFFFE0000+00001FFFE01FFFFC000000001FFFE01FFFFC000000001FFFE01FFFFC000000000FFFF03F+FFFC000000000FFFF03FFFFC000000000FFFF03FFFF8000000000FFFF07FFFF800000000+0FFFF07FFFF8000000000FFFF07FFFF8000000000FFFF87FFFF80000000007FFF87FFFF8+0000000007FFF8FFFFF80000000007FFF8FFFFF80000000007FFF8FFFFF80000000007FF+F8FFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFF8FFFFFFFFFF+FFFFFFFFF8FFFFFFFFFFFFFFFFFFF0FFFFF800000000000000FFFFF800000000000000FF+FFF800000000000000FFFFF800000000000000FFFFF800000000000000FFFFF800000000+0000007FFFF8000000000000007FFFF8000000000000007FFFF8000000000000007FFFFC+000000000000003FFFFC000000000000003FFFFC000000000000003FFFFC000000000000+003FFFFC000000000000001FFFFC000000000000001FFFFE000000000000000FFFFE0000+00000003F00FFFFE000000000007F807FFFF000000000007F807FFFF00000000000FF803+FFFF80000000000FF001FFFF80000000001FF001FFFFC0000000001FE000FFFFE0000000+003FE0007FFFF0000000007FC0003FFFF800000000FFC0001FFFFC00000001FF80000FFF+FE00000003FF000007FFFF8000000FFE000003FFFFE000003FFC000001FFFFF80000FFF8+000000FFFFFFC00FFFF00000003FFFFFFFFFFFE00000000FFFFFFFFFFF8000000003FFFF+FFFFFE0000000000FFFFFFFFF800000000001FFFFFFFE0000000000003FFFFFF00000000+0000000FFFE00000004D507BCE58>I<0001FFFC000000000000000000FFFFFFFC000000+000000000000FFFFFFFC000000000000000000FFFFFFFC000000000000000000FFFFFFFC+000000000000000000FFFFFFFC000000000000000000FFFFFFFC000000000000000000FF+FFFFFC000000000000000000FFFFFFFC000000000000000000007FFFFC00000000000000+0000001FFFFC000000000000000000000FFFFC000000000000000000000FFFFC00000000+0000000000000FFFFC000000000000000000000FFFFC000000000000000000000FFFFC00+0000000000000000000FFFFC000000000000000000000FFFFC000000000000000000000F+FFFC000000000000000000000FFFFC000000000000000000000FFFFC0000000000000000+00000FFFFC000000000000000000000FFFFC000000000000000000000FFFFC0000000000+00000000000FFFFC000000000000000000000FFFFC000000000000000000000FFFFC0000+00000000000000000FFFFC000000000000000000000FFFFC000000000000000000000FFF+FC000000000000000000000FFFFC000000000000000000000FFFFC000000000000000000+000FFFFC000000000000000000000FFFFC000000000000000000000FFFFC000000000000+000000000FFFFC000000000000000000000FFFFC000000000000000000000FFFFC000000+000000000000000FFFFC000000000000000000000FFFFC000000000000000000000FFFFC+000000000000000000000FFFFC000000000000000000000FFFFC00000FFFE00000000000+0FFFFC0000FFFFFE00000000000FFFFC0003FFFFFF80000000000FFFFC000FFFFFFFE000+0000000FFFFC003FFFFFFFF8000000000FFFFC007FFFFFFFFC000000000FFFFC01FFF01F+FFFE000000000FFFFC03FF0007FFFF000000000FFFFC07FC0003FFFF800000000FFFFC0F+F00001FFFFC00000000FFFFC1FC00000FFFFC00000000FFFFC3F800000FFFFE00000000F+FFFC7F000000FFFFE00000000FFFFC7E0000007FFFF00000000FFFFCFC0000007FFFF000+00000FFFFDF80000007FFFF00000000FFFFDF00000007FFFF00000000FFFFFF00000003F+FFF80000000FFFFFE00000003FFFF80000000FFFFFE00000003FFFF80000000FFFFFC000+00003FFFF80000000FFFFFC00000003FFFF80000000FFFFF800000003FFFF80000000FFF+FF800000003FFFF80000000FFFFF000000003FFFF80000000FFFFF000000003FFFF80000+000FFFFF000000003FFFF80000000FFFFF000000003FFFF80000000FFFFE000000003FFF+F80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000+003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE+000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF8000000+0FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF8+0000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE00000000+3FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE00+0000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000F+FFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF800+00000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003F+FFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE0000+00003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFF+FE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000+000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFF+F80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000+003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000FFFFFFFF+FFE003FFFFFFFFFF80FFFFFFFFFFE003FFFFFFFFFF80FFFFFFFFFFE003FFFFFFFFFF80FF+FFFFFFFFE003FFFFFFFFFF80FFFFFFFFFFE003FFFFFFFFFF80FFFFFFFFFFE003FFFFFFFF+FF80FFFFFFFFFFE003FFFFFFFFFF80FFFFFFFFFFE003FFFFFFFFFF80617879F76C>104+D<0001FC0000000007FF000000001FFFC00000003FFFE00000007FFFF0000000FFFFF800+0000FFFFF8000001FFFFFC000001FFFFFC000003FFFFFE000003FFFFFE000003FFFFFE00+0003FFFFFE000003FFFFFE000003FFFFFE000003FFFFFE000001FFFFFC000001FFFFFC00+0000FFFFF8000000FFFFF80000007FFFF00000003FFFE00000001FFFC000000007FF0000+000001FC0000000000000000000000000000000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+000000000000000001FFFC00007FFFFFFC00007FFFFFFC00007FFFFFFC00007FFFFFFC00+007FFFFFFC00007FFFFFFC00007FFFFFFC00007FFFFFFC0000007FFFFC0000001FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC00+00000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000000FFFFC0000FFFFFFFFFF+80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF+80FFFFFFFFFF80297979F835>I<0001FFF800000FFFE000000000FFFFFFF80000FFFFFE+00000000FFFFFFF80003FFFFFF80000000FFFFFFF8000FFFFFFFE0000000FFFFFFF8003F+FFFFFFF8000000FFFFFFF8007FFFFFFFFC000000FFFFFFF801FFF01FFFFE000000FFFFFF+F803FF0007FFFF000000FFFFFFF807FC0003FFFF800000007FFFF80FF00001FFFFC00000+001FFFF81FC00000FFFFC00000000FFFF83F800000FFFFE00000000FFFF87F000000FFFF+E00000000FFFF87E0000007FFFF00000000FFFF8FC0000007FFFF00000000FFFF9F80000+007FFFF00000000FFFF9F00000007FFFF00000000FFFFBF00000003FFFF80000000FFFFB+E00000003FFFF80000000FFFFFE00000003FFFF80000000FFFFFC00000003FFFF8000000+0FFFFFC00000003FFFF80000000FFFFF800000003FFFF80000000FFFFF800000003FFFF8+0000000FFFFF000000003FFFF80000000FFFFF000000003FFFF80000000FFFFF00000000+3FFFF80000000FFFFF000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE00+0000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000F+FFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF800+00000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003F+FFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE0000+00003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFF+FE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000+000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFF+F80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000+003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE+000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF8000000+0FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF8+0000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE00000000+3FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000FFFFE00+0000003FFFF80000000FFFFE000000003FFFF80000000FFFFE000000003FFFF80000000F+FFFE000000003FFFF80000000FFFFE000000003FFFF80000FFFFFFFFFFE003FFFFFFFFFF+80FFFFFFFFFFE003FFFFFFFFFF80FFFFFFFFFFE003FFFFFFFFFF80FFFFFFFFFFE003FFFF+FFFFFF80FFFFFFFFFFE003FFFFFFFFFF80FFFFFFFFFFE003FFFFFFFFFF80FFFFFFFFFFE0+03FFFFFFFFFF80FFFFFFFFFFE003FFFFFFFFFF80614E79CD6C>110+D<0001FFFC00007FFE00000000FFFFFFFC000FFFFFF0000000FFFFFFFC007FFFFFFE0000+00FFFFFFFC01FFFFFFFFC00000FFFFFFFC07FFFFFFFFF00000FFFFFFFC1FFFFFFFFFF800+00FFFFFFFC7FFFFFFFFFFE0000FFFFFFFCFFFF007FFFFF0000FFFFFFFFFFF0000FFFFFC0+00007FFFFFFF800003FFFFE000001FFFFFFE000001FFFFF000000FFFFFFC000000FFFFF8+00000FFFFFF00000007FFFFC00000FFFFFE00000003FFFFE00000FFFFFC00000001FFFFF+00000FFFFF800000000FFFFF00000FFFFF000000000FFFFF80000FFFFE0000000007FFFF+C0000FFFFE0000000003FFFFC0000FFFFE0000000003FFFFE0000FFFFE0000000003FFFF+E0000FFFFE0000000001FFFFF0000FFFFE0000000001FFFFF0000FFFFE0000000000FFFF+F8000FFFFE0000000000FFFFF8000FFFFE0000000000FFFFF8000FFFFE0000000000FFFF+F8000FFFFE00000000007FFFFC000FFFFE00000000007FFFFC000FFFFE00000000007FFF+FC000FFFFE00000000007FFFFC000FFFFE00000000007FFFFC000FFFFE00000000003FFF+FE000FFFFE00000000003FFFFE000FFFFE00000000003FFFFE000FFFFE00000000003FFF+FE000FFFFE00000000003FFFFE000FFFFE00000000003FFFFE000FFFFE00000000003FFF+FE000FFFFE00000000003FFFFE000FFFFE00000000003FFFFE000FFFFE00000000003FFF+FE000FFFFE00000000003FFFFE000FFFFE00000000003FFFFE000FFFFE00000000003FFF+FE000FFFFE00000000003FFFFE000FFFFE00000000003FFFFE000FFFFE00000000007FFF+FC000FFFFE00000000007FFFFC000FFFFE00000000007FFFFC000FFFFE00000000007FFF+FC000FFFFE00000000007FFFFC000FFFFE0000000000FFFFF8000FFFFE0000000000FFFF+F8000FFFFE0000000000FFFFF8000FFFFE0000000000FFFFF0000FFFFE0000000001FFFF+F0000FFFFE0000000001FFFFE0000FFFFE0000000003FFFFE0000FFFFE0000000003FFFF+C0000FFFFE0000000007FFFFC0000FFFFE0000000007FFFF80000FFFFF000000000FFFFF+80000FFFFF800000000FFFFF00000FFFFFC00000001FFFFE00000FFFFFC00000003FFFFC+00000FFFFFE00000007FFFF800000FFFFFF0000000FFFFF000000FFFFFFC000001FFFFE0+00000FFFFFFE000003FFFFC000000FFFFFFF80000FFFFF8000000FFFFFFFE0003FFFFE00+00000FFFFE7FFC01FFFFFC0000000FFFFE3FFFFFFFFFF00000000FFFFE0FFFFFFFFFC000+00000FFFFE03FFFFFFFF000000000FFFFE00FFFFFFF8000000000FFFFE003FFFFFC00000+00000FFFFE0003FFF000000000000FFFFE0000000000000000000FFFFE00000000000000+00000FFFFE0000000000000000000FFFFE0000000000000000000FFFFE00000000000000+00000FFFFE0000000000000000000FFFFE0000000000000000000FFFFE00000000000000+00000FFFFE0000000000000000000FFFFE0000000000000000000FFFFE00000000000000+00000FFFFE0000000000000000000FFFFE0000000000000000000FFFFE00000000000000+00000FFFFE0000000000000000000FFFFE0000000000000000000FFFFE00000000000000+00000FFFFE0000000000000000000FFFFE0000000000000000000FFFFE00000000000000+00000FFFFE0000000000000000000FFFFE0000000000000000000FFFFE00000000000000+00000FFFFE0000000000000000FFFFFFFFFFE0000000000000FFFFFFFFFFE00000000000+00FFFFFFFFFFE0000000000000FFFFFFFFFFE0000000000000FFFFFFFFFFE00000000000+00FFFFFFFFFFE0000000000000FFFFFFFFFFE0000000000000FFFFFFFFFFE00000000000+005F6F7ACD6C>112 D<0001FFF80007FE0000FFFFFFF8003FFFC000FFFFFFF800FFFFF0+00FFFFFFF803FFFFF800FFFFFFF807FFFFFE00FFFFFFF80FFFFFFF00FFFFFFF81FFC3FFF+80FFFFFFF83FE07FFFC0FFFFFFF87F80FFFFC0007FFFF87F00FFFFC0001FFFF8FE01FFFF+E0000FFFF9FC01FFFFE0000FFFF9F801FFFFE0000FFFFBF801FFFFE0000FFFFBF001FFFF+E0000FFFFBE001FFFFE0000FFFFFE001FFFFE0000FFFFFC001FFFFE0000FFFFFC000FFFF+C0000FFFFF8000FFFFC0000FFFFF80007FFF80000FFFFF80001FFE00000FFFFF00000FFC+00000FFFFF000001E000000FFFFF0000000000000FFFFF0000000000000FFFFE00000000+00000FFFFE0000000000000FFFFE0000000000000FFFFE0000000000000FFFFE00000000+00000FFFFE0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000000FFFFC00000000+00000FFFFC0000000000000FFFFC0000000000000FFFFC0000000000FFFFFFFFFFF80000+00FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF80000+00FFFFFFFFFFF8000000FFFFFFFFFFF8000000FFFFFFFFFFF8000000434E7ACD4F>114+D<000000FF00000000000000FF00000000000000FF00000000000000FF00000000000000+FF00000000000000FF00000000000000FF00000000000001FF00000000000001FF000000+00000001FF00000000000001FF00000000000001FF00000000000003FF00000000000003+FF00000000000003FF00000000000003FF00000000000007FF00000000000007FF000000+0000000FFF0000000000000FFF0000000000001FFF0000000000001FFF0000000000003F+FF0000000000003FFF0000000000007FFF000000000000FFFF000000000000FFFF000000+000001FFFF000000000003FFFF000000000007FFFF00000000001FFFFF00000000003FFF+FF0000000000FFFFFFFFFFFF000FFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF+00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF000007FF+FF000000000007FFFF000000000007FFFF000000000007FFFF000000000007FFFF000000+000007FFFF000000000007FFFF000000000007FFFF000000000007FFFF000000000007FF+FF000000000007FFFF000000000007FFFF000000000007FFFF000000000007FFFF000000+000007FFFF000000000007FFFF000000000007FFFF000000000007FFFF000000000007FF+FF000000000007FFFF000000000007FFFF000000000007FFFF000000000007FFFF000000+000007FFFF000000000007FFFF000000000007FFFF000000000007FFFF000000000007FF+FF000000000007FFFF000000000007FFFF000000000007FFFF000000000007FFFF000000+000007FFFF000000000007FFFF000000000007FFFF000000000007FFFF000000000007FF+FF000000000007FFFF000000000007FFFF000000000007FFFF00001FE00007FFFF00001F+E00007FFFF00001FE00007FFFF00001FE00007FFFF00001FE00007FFFF00001FE00007FF+FF00001FE00007FFFF00001FE00007FFFF00001FE00007FFFF00001FE00007FFFF00001F+E00007FFFF00001FE00007FFFF00001FE00007FFFF00001FE00007FFFF00003FE00007FF+FF80003FC00003FFFF80003FC00003FFFF80007FC00003FFFFC0007F800001FFFFC000FF+800001FFFFE000FF800000FFFFE001FF0000007FFFF003FE0000007FFFFE0FFE0000003F+FFFFFFFC0000000FFFFFFFF800000007FFFFFFF000000001FFFFFFC0000000007FFFFF80+000000001FFFFE000000000001FFF000003B6E7CEC4B>116 D<7FFFFFFFFF00003FFFFF+FFF07FFFFFFFFF00003FFFFFFFF07FFFFFFFFF00003FFFFFFFF07FFFFFFFFF00003FFFFF+FFF07FFFFFFFFF00003FFFFFFFF07FFFFFFFFF00003FFFFFFFF07FFFFFFFFF00003FFFFF+FFF07FFFFFFFFF00003FFFFFFFF00003FFFFC0000001FFFF00000001FFFFE00000007FF0+00000001FFFFF00000007FE000000000FFFFF0000000FFC0000000007FFFF8000001FF80+000000003FFFFC000003FF00000000001FFFFE000007FF00000000001FFFFF00000FFE00+000000000FFFFF00001FFC000000000007FFFF80001FF8000000000003FFFFC0003FF000+0000000001FFFFE0007FE0000000000001FFFFF000FFE0000000000000FFFFF801FFC000+00000000007FFFF803FF800000000000003FFFFC07FF000000000000001FFFFE07FE0000+00000000001FFFFF0FFC000000000000000FFFFF9FF80000000000000007FFFFBFF80000+000000000003FFFFFFF00000000000000001FFFFFFE00000000000000001FFFFFFC00000+000000000000FFFFFF8000000000000000007FFFFF0000000000000000003FFFFE000000+0000000000001FFFFE0000000000000000001FFFFF0000000000000000000FFFFF800000+00000000000007FFFF80000000000000000003FFFFC0000000000000000001FFFFE00000+00000000000001FFFFF0000000000000000003FFFFF8000000000000000007FFFFF80000+0000000000000FFFFFFC00000000000000000FFFFFFE00000000000000001FFFFFFF0000+0000000000003FFFFFFF80000000000000007FE7FFFF8000000000000000FFE3FFFFC000+000000000001FFC1FFFFE000000000000003FF80FFFFF000000000000003FF00FFFFF800+000000000007FE007FFFF80000000000000FFC003FFFFC0000000000001FFC001FFFFE00+00000000003FF8000FFFFF0000000000007FF0000FFFFF800000000000FFE00007FFFF80+0000000000FFC00003FFFFC00000000001FF800001FFFFE00000000003FF000000FFFFF0+0000000007FF000000FFFFF8000000000FFE0000007FFFF8000000001FFC0000003FFFFC+000000003FF80000001FFFFE000000003FF00000000FFFFF000000007FE00000000FFFFF+80000000FFC000000007FFFFC000000FFFF800000003FFFFC000FFFFFFFF800000FFFFFF+FFFEFFFFFFFF800000FFFFFFFFFEFFFFFFFF800000FFFFFFFFFEFFFFFFFF800000FFFFFF+FFFEFFFFFFFF800000FFFFFFFFFEFFFFFFFF800000FFFFFFFFFEFFFFFFFF800000FFFFFF+FFFEFFFFFFFF800000FFFFFFFFFE5F4D7DCC66>120 D E /Fp 83+126 df<3C001E007F007F00FF007F80FF007F80FF007F80FF007F80FF007F80FF007F80+7F007F007F007F007F007F007F007F007F007F007F007F007E003F007E003F007E003F00+7E003F007E003F007E003F003E003E003E003E003E003E003C001E001C001C00191977B3+2C>34 D<000F003C00001F807E00001F807E00001F807E00001F807E00001F807E00001F+807E00001F807E00001F807E00003F80FE00003F00FC00003F00FC00003F00FC00003F00+FC007FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF83FFFFFFFF0007E01F8+00007E01F800007E01F800007E01F800007E01F80000FE03F80000FC03F00000FC03F000+00FC03F00000FC03F00000FC03F00000FC03F0003FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FF+FFFFFFF8FFFFFFFFF87FFFFFFFF001F807E00001F807E00001F807E00003F80FE00003F0+0FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00F+C00001E007800025337DB22C>I<0001C000000003E000000003E000000003E000000003+E000000003E000000003E00000000FFC0000007FFF800001FFFFE00007FFFFF0000FFFFF+F8001FFBEFFC003FC3E1FE003F03E07F007E03E03F007C03E03F00FC03E03F80F803E03F+80F803E07F80F803E07F80F803E07F80FC03E03F00FC03E03F007E03E000007F03E00000+3FC3E000003FFBE000001FFFE000000FFFFC000007FFFF000001FFFFC000007FFFE00000+1FFFF8000003FFFC000003E7FC000003E1FE000003E07F000003E03F001803E01F007E03+E01F807E03E00F80FF03E00F80FF03E00F80FF03E00F80FE03E00F80FE03E01F80FE03E0+1F007E03E03F007F03E03E003F83E0FE003FC3E1FC001FFBEFF8000FFFFFF00007FFFFE0+0003FFFFC00000FFFF0000001FF800000003E000000003E000000003E000000003E00000+0003E000000003E000000001C0000021417BB92C>I<07800007001FE0000F801FE0001F+803FF0001F807FF8003F807FF8003F007CF8007F00FCFC007E00F87C007E00F87C00FE00+F87C00FC00F87C01FC00F87C01F800F87C01F800F87C03F800FCFC03F0007CF803F0007F+F807F0007FF807E0003FF00FE0001FE00FC0001FE00FC00007801FC00000001F80000000+3F800000003F000000003F000000007F000000007E00000000FE00000000FC00000000FC+00000001FC00000001F800000001F800000003F800000003F000000007F000000007E000+000007E00000000FE00000000FC00000001FC00000001F800F00001F803FC0003F807FE0+003F007FE0007F00FFF0007E00F9F0007E00F9F000FE01F9F800FC01F0F800FC01F0F801+FC01F0F801F801F0F803F801F0F803F001F0F803F001F9F807F000F9F007E000F9F00FE0+00FFF00FC0007FE00FC0007FE007C0003FC00380000F0025417DB92C>I<000FC0000000+3FE00000007FF0000000FFF8000000FFFC000001F8FC000001F07C000001F07E000003F0+3E000003E03E000003E03E000003E03E000003E03E000003E03E000003E07E000003E07C+000003E0FC3FF803F0F87FFC01F1F87FFC01F3F07FFC01F7F03FF801F7E01F0001FFC03F+0000FF803E0000FF803E0000FF007E0000FE007C0001FC007C0003FE00FC0007FE00F800+07FF01F8000FDF01F0001F9F81F0003F8F83F0003F0FC3E0007E07E7E0007E07E7C000FC+03F7C000FC01FFC000FC01FF8000FC00FF8010FC00FF007CFC007F007CFC007F007CFE00+FF807C7E01FFC07C7F03FFE0FC3F87F7F1F83FFFE3FFF81FFFC1FFF00FFF80FFF007FF00+7FC001FC001F8026357EB32C>I<0F801FC03FE03FF03FF03FF83FF81FF80FF800F800F8+00F800F801F801F001F003F003E007E00FC01FC03F807F00FE00FC00F80070000D1B71B2+2C>I<0000380000FC0001FC0003FC0007F8000FF0001FC0003F80007F0000FE0001FC00+03F80003F00007F00007E0000FE0000FC0001F80001F80003F80003F00003F00007F0000+7E00007E00007E0000FE0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000+FC0000FC0000FC0000FC0000FE00007E00007E00007E00007F00003F00003F00003F8000+1F80001F80000FC0000FE00007E00007F00003F00003F80001FC0000FE00007F00003F80+001FC0000FF00007F80003FC0001FC0000FC000038164272B92C>I<700000FC0000FE00+00FF00007F80003FC0000FE00007F00003F80001FC0000FE00007F00003F00003F80001F+80001FC0000FC00007E00007E00007F00003F00003F00003F80001F80001F80001F80001+FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000+FC0001FC0001F80001F80001F80003F80003F00003F00007F00007E00007E0000FC0001F+C0001F80003F80003F00007F0000FE0001FC0003F80007F0000FE0003FC0007F8000FF00+00FE0000FC0000700000164279B92C>I<000380000007C0000007C0000007C0000007C0+000007C0000007C0002007C008F807C03EFE07C0FEFF07C1FEFFC7C7FEFFE7CFFE3FFFFF+F80FFFFFE003FFFF8001FFFF00007FFC00007FFC0001FFFF0003FFFF800FFFFFE03FFFFF+F8FFE7CFFEFFC7C7FEFF07C1FEFE07C0FEF807C03E2007C0080007C0000007C0000007C0+000007C0000007C0000007C000000380001F247AAA2C>I<00007800000000FC00000000+FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC+00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00007FFFFFFF+F0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF00000FC00000000FC0000+0000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000000+00FC00000000FC00000000FC00000000FC00000000FC00000000FC000000007800002526+7DAB2C>I<0F801FE03FF07FF87FF87FFC7FFC7FFC3FFC1FFC0FFC00FC00F800F801F803+F007F01FE07FC0FF80FF00FC0070000E17718A2C>I<7FFFFFFF00FFFFFFFF80FFFFFFFF+80FFFFFFFF80FFFFFFFF807FFFFFFF0021067B9B2C>I<1F003F807FC0FFE0FFE0FFE0FF+E0FFE07FC03F801F000B0B708A2C>I<00000007000000000F800000001F800000001F80+0000003F800000003F000000007F000000007E00000000FE00000000FC00000001FC0000+0001F800000003F800000003F000000003F000000007F000000007E00000000FE0000000+0FC00000001FC00000001F800000003F800000003F000000007F000000007E00000000FE+00000000FC00000000FC00000001FC00000001F800000003F800000003F000000007F000+000007E00000000FE00000000FC00000001FC00000001F800000001F800000003F800000+003F000000007F000000007E00000000FE00000000FC00000001FC00000001F800000003+F800000003F000000007F000000007E000000007E00000000FE00000000FC00000001FC0+0000001F800000003F800000003F000000007F000000007E00000000FE00000000FC0000+0000FC00000000F800000000780000000021417BB92C>I<0003F80000000FFE0000003F+FF8000007FFFC00000FFFFE00001FE0FF00003F803F80007F001FC0007E000FC000FC000+7E000FC0007E001F80003F001F80003F003F00001F803F00001F803E00000F807E00000F+C07E00000FC07E00000FC07C000007C0FC000007E0FC000007E0FC000007E0FC000007E0+FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC+000007E0FE00000FE07E00000FC07E00000FC07E00000FC07E00000FC03F00001F803F00+001F803F00001F801F80003F001F80003F000FC0007E000FE000FE0007E000FC0007F001+FC0003F803F80001FE0FF00000FFFFE000007FFFC000003FFF8000000FFE00000003F800+0023357CB32C>I<00070000000F8000000F8000001F8000001F8000003F8000007F8000+00FF800001FF800007FF80007FFF8000FFFF8000FFDF8000FF9F80007C1F8000001F8000+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000+001F8000001F8000001F8000001F80007FFFFFE0FFFFFFF0FFFFFFF0FFFFFFF07FFFFFE0+1C3477B32C>I<000FF80000007FFF800001FFFFE00007FFFFF0000FFFFFFC001FF80FFE+003FE001FF003F80007F007F00003F807E00001F80FE00001FC0FE00000FC0FF00000FE0+FF000007E0FF000007E0FF000007E07E000007E03C000007E000000007E000000007E000+00000FE00000000FC00000001FC00000001F800000003F800000003F000000007F000000+00FE00000001FC00000003FC00000007F80000000FF00000001FE00000003FC0000000FF+80000001FE00000003FC00000007F80000000FF00000003FE00000007F80000000FF0000+0001FE00000003FC0003C007F80007E01FE00007E03FC00007E07FFFFFFFE0FFFFFFFFE0+FFFFFFFFE0FFFFFFFFE07FFFFFFFC023347CB32C>I<000FFC0000007FFF800001FFFFE0+0007FFFFF8000FFFFFFC001FF807FE001FC000FE003F80007F003FC0003F003FC0003F80+3FC0001F803FC0001F801F80001F800F00001F800000001F800000003F800000003F0000+00007F00000000FE00000001FE00000003FC0000001FF800001FFFF000003FFFE000003F+FFE000003FFFF800001FFFFC00000007FE00000000FF000000007F000000003F80000000+1FC00000000FC00000000FC00000000FE000000007E000000007E03C000007E07E000007+E0FF000007E0FF00000FE0FF00000FC0FF00000FC0FE00001FC07F00003F807F80007F00+3FC000FF001FF807FE000FFFFFFC0007FFFFF80003FFFFE000007FFF8000000FFC000023+357CB32C>I<000007F00000000FF80000001FF80000003FF80000003FF80000007EF800+00007EF8000000FCF8000001F8F8000001F8F8000003F0F8000007E0F8000007E0F80000+0FC0F800001F80F800001F80F800003F00F800007E00F800007E00F80000FC00F80001F8+00F80001F800F80003F000F80003E000F80007E000F8000FC000F8000FC000F8001F8000+F8003F0000F8003F0000F8007E0000F800FC0000F800FFFFFFFFFCFFFFFFFFFEFFFFFFFF+FEFFFFFFFFFE7FFFFFFFFC000000F800000000F800000000F800000000F800000000F800+000000F800000000F800000000F800000000F800000000F80000007FFFF00000FFFFF800+00FFFFF80000FFFFF800007FFFF027347EB32C>I<0FFFFFFE001FFFFFFF001FFFFFFF00+1FFFFFFF001FFFFFFE001F800000001F800000001F800000001F800000001F800000001F+800000001F800000001F800000001F800000001F800000001F800000001F800000001F80+0000001F83FE00001F9FFF80001FFFFFE0001FFFFFF8001FFFFFFC001FFE03FE001FF000+FF001FC0007F001F80003F801F00001F800F00001FC00000000FC00000000FC000000007+E000000007E000000007E000000007E03C000007E07E000007E0FF000007E0FF00000FE0+FF00000FC0FF00000FC0FE00001FC07E00003F807F00007F003F8000FF003FC001FE001F+F80FFC000FFFFFF80007FFFFF00001FFFFC000007FFF0000000FF8000023347CB22C>I<+00003FC0000001FFF8000007FFFC00001FFFFE00003FFFFF00007FE07F0000FF003F8001+FE007F8003F8007F8007F0007F8007E0007F800FE0003F001FC0001E001F800000003F80+0000003F000000003F000000007F000000007E000000007E03FE00007E1FFF8000FC7FFF+E000FDFFFFF000FFFFFFF800FFFE07FC00FFF001FE00FFC0007F00FF80003F80FF00001F+80FF00001FC0FE00000FC0FE00000FE0FE000007E0FE000007E0FE000007E07E000007E0+7E000007E07E000007E07E000007E03F000007E03F00000FE03F80000FC01F80001FC01F+C0001F800FC0003F800FE0007F0007F801FE0003FE07FC0001FFFFF80000FFFFF000007F+FFE000001FFF80000007FC000023357CB32C>I<7800000000FFFFFFFFC0FFFFFFFFE0FF+FFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00003F80FC00007F00FC0000FE00780000FC000000+01FC00000003F800000007F000000007E00000000FE00000000FC00000001F800000003F+800000003F000000007F000000007E00000000FE00000000FC00000001FC00000001F800+000001F800000003F000000003F000000007F000000007E000000007E000000007E00000+000FC00000000FC00000000FC00000000FC00000001F800000001F800000001F80000000+1F800000001F800000003F800000003F000000003F000000003F000000003F000000003F+000000003F000000003F000000003F000000003F000000003F000000001E00000023357C+B32C>I<0007FC0000003FFF800000FFFFE00003FFFFF80007FFFFFC000FFC07FE001FF0+01FF001FC0007F003F80003F803F00001F807F00001FC07E00000FC07E00000FC07E0000+0FC07E00000FC07E00000FC03F00001F803F00001F801F80003F001FC0007F000FF001FE+0003FC07F80001FFFFF000007FFFC0000007FC0000007FFFC00001FFFFF00003FC07F800+0FF001FE001FC0007F001F80003F003F00001F807E00000FC07E00000FC0FC000007E0FC+000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E07E00000FC07E00+000FC07F00001FC03F80003F801FC0007F001FF001FF000FFC07FE0007FFFFFC0003FFFF+F80000FFFFE000003FFF80000007FC000023357CB32C>I<0007FC0000003FFF000000FF+FFC00001FFFFE00003FFFFF00007FC07F8000FF001FC001FE000FE003F80007E003F8000+7F007F00003F007E00001F80FE00001F80FC00001F80FC00000FC0FC00000FC0FC00000F+C0FC00000FC0FC00000FE0FC00000FE0FC00000FE0FE00000FE07E00000FE07F00001FE0+3F00001FE03F80003FE01FC0007FE00FF001FFE007FC0FFFE003FFFFFFE001FFFFF7E000+FFFFC7E0003FFF0FE0000FF80FC00000000FC00000000FC00000001FC00000001F800000+003F800000003F000F00007F001F80007E003FC000FE003FC001FC003FC003F8003FC007+F8003F801FF0001FE07FE0001FFFFFC0000FFFFF000007FFFE000001FFF80000007FC000+0023357CB32C>I<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F00000000000000+000000000000000000000000000000000000000000001F003F807FC0FFE0FFE0FFE0FFE0+FFE07FC03F801F000B2470A32C>I<00000007000000001F800000003F80000000FF8000+0003FF80000007FF0000001FFC0000003FF8000000FFE0000001FF80000007FF0000000F+FC0000003FF80000007FE0000001FFC0000003FF0000000FFE0000001FF80000007FF000+0000FFC0000000FF80000000FF80000000FFC00000007FF00000001FF80000000FFE0000+0003FF00000001FFC00000007FE00000003FF80000000FFC00000007FF00000001FF8000+0000FFE00000003FF80000001FFC00000007FF00000003FF80000000FF800000003F8000+00001F800000000700212A7BAD2C>60 D<7FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFF+F8FFFFFFFFF83FFFFFFFF000000000000000000000000000000000000000000000000000+0000000000000000000000000000003FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FF+FFFFFFF87FFFFFFFF025147DA22C>I<7000000000FC00000000FE00000000FF80000000+FFE00000007FF00000001FFC0000000FFE00000003FF80000000FFC00000007FF0000000+1FF80000000FFE00000003FF00000001FFC00000007FE00000003FF80000000FFC000000+07FF00000001FF80000000FF80000000FF80000001FF80000007FF0000000FFC0000003F+F80000007FE0000001FFC0000003FF0000000FFE0000001FF80000007FF0000000FFC000+0003FF8000000FFE0000001FFC0000007FF0000000FFE0000000FF80000000FE00000000+FC000000007000000000212A7BAD2C>I<0000FE00000001FF00000001FF00000001FF00+000001FF00000003FF80000003FF80000003EF80000003EF80000007EF80000007EFC000+0007EFC0000007C7C0000007C7C000000FC7E000000FC7E000000FC7E000000FC3E00000+1F83F000001F83F000001F83F000001F83F000001F83F000003F01F800003F01F800003F+01F800003F01F800007E00FC00007E00FC00007E00FC00007E00FC00007E00FC0000FC00+7E0000FFFFFE0000FFFFFE0000FFFFFE0001FFFFFF0001FFFFFF0001F8003F0001F8003F+0001F8003F0003F0001F8003F0001F8003F0001F8003F0001F8007F0001FC007E0000FC0+7FFE00FFFC7FFF01FFFCFFFF01FFFE7FFF01FFFC7FFE00FFFC27347EB32C>65+D<7FFFFFE0007FFFFFF800FFFFFFFE007FFFFFFF007FFFFFFFC003F0003FC003F0000FE0+03F00007F003F00003F003F00003F003F00001F803F00001F803F00001F803F00001F803+F00001F803F00001F803F00003F003F00003F003F00007F003F0000FE003F0001FC003F0+00FF8003FFFFFF0003FFFFFE0003FFFFFC0003FFFFFF0003FFFFFFC003F0001FE003F000+07F003F00003F803F00001F803F00000FC03F00000FC03F00000FE03F000007E03F00000+7E03F000007E03F000007E03F000007E03F000007E03F00000FE03F00000FC03F00001FC+03F00003F803F0000FF803F0003FF07FFFFFFFE07FFFFFFFC0FFFFFFFF807FFFFFFE007F+FFFFF00027337FB22C>I<0000FF00700007FFE0F8000FFFF9F8003FFFFDF8007FFFFFF8+00FF81FFF801FE007FF803FC001FF807F0000FF807F00007F80FE00007F80FC00003F81F+800003F81F800001F83F000001F83F000001F87F000001F87E000000F07E000000007E00+000000FE00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000+0000FC00000000FC00000000FC00000000FC00000000FC00000000FE000000007E000000+007E000000007E000000007F000000F03F000001F83F000001F81F800001F81F800001F8+0FC00003F80FE00003F007F00007F007F00007E003FC001FE001FE003FC000FF81FF8000+7FFFFF00003FFFFE00000FFFFC000007FFF0000000FF800025357DB32C>I<7FFFFF0000+FFFFFFC000FFFFFFF000FFFFFFF8007FFFFFFC0007E003FE0007E000FF0007E0007F8007+E0003F8007E0001FC007E0000FE007E0000FE007E00007E007E00007F007E00003F007E0+0003F807E00001F807E00001F807E00001F807E00001F807E00000FC07E00000FC07E000+00FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000+FC07E00000FC07E00000FC07E00001F807E00001F807E00001F807E00003F807E00003F0+07E00003F007E00007F007E00007E007E0000FE007E0001FC007E0003FC007E0007F8007+E000FF0007E003FE007FFFFFFC00FFFFFFF800FFFFFFF000FFFFFFC0007FFFFF00002633+7EB22C>I<7FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF803F00001F803+F00001F803F00001F803F00001F803F00001F803F00001F803F00001F803F00000F003F0+00000003F000000003F000000003F000000003F001E00003F003F00003F003F00003F003+F00003F003F00003FFFFF00003FFFFF00003FFFFF00003FFFFF00003FFFFF00003F003F0+0003F003F00003F003F00003F003F00003F001E00003F000000003F000000003F0000000+03F000000003F000000003F000003C03F000007E03F000007E03F000007E03F000007E03+F000007E03F000007E03F000007E03F000007E7FFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFF+FFFFFE7FFFFFFFFC27337EB22C>I<7FFFFFFFF8FFFFFFFFFCFFFFFFFFFCFFFFFFFFFC7F+FFFFFFFC03F00000FC03F00000FC03F00000FC03F00000FC03F00000FC03F00000FC03F0+0000FC03F000007803F000000003F000000003F000000003F000000003F000000003F000+F00003F001F80003F001F80003F001F80003F001F80003FFFFF80003FFFFF80003FFFFF8+0003FFFFF80003FFFFF80003F001F80003F001F80003F001F80003F001F80003F000F000+03F000000003F000000003F000000003F000000003F000000003F000000003F000000003+F000000003F000000003F000000003F000000003F000000003F00000007FFFE00000FFFF+E00000FFFFF00000FFFFE000007FFFE0000026337EB22C>I<0001FC0380000FFF87C000+1FFFEFC0007FFFFFC000FFFFFFC001FF07FFC003FC01FFC003F800FFC007F0007FC00FE0+003FC00FC0001FC01FC0001FC01F80001FC03F80000FC03F00000FC03F00000FC07E0000+0FC07E000007807E000000007E00000000FE00000000FC00000000FC00000000FC000000+00FC00000000FC00000000FC00000000FC00000000FC00000000FC0003FFF8FC0007FFFC+FC0007FFFCFE0007FFFC7E0003FFF87E00000FC07E00000FC07E00000FC03F00001FC03F+00001FC03F80001FC01F80001FC01FC0003FC00FC0003FC00FE0007FC007F0007FC003F8+00FFC003FC01FFC001FF07FFC000FFFFFFC0007FFFEFC0001FFFCFC0000FFF07800001FC+000026357DB32C>I<7FFE00FFFCFFFF01FFFEFFFF01FFFEFFFF01FFFE7FFE00FFFC07E0+000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E000+0FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000F+C007E0000FC007E0000FC007FFFFFFC007FFFFFFC007FFFFFFC007FFFFFFC007FFFFFFC0+07E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007+E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0+000FC007E0000FC007E0000FC007E0000FC007E0000FC07FFE00FFFCFFFF01FFFEFFFF01+FFFEFFFF01FFFE7FFE00FFFC27337EB22C>I<7FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7F+FFFFF8000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000+0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000+0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000+0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000+0FC000000FC000000FC000000FC000000FC000000FC0007FFFFFF8FFFFFFFCFFFFFFFCFF+FFFFFC7FFFFFF81E3379B22C>I<7FFFE00000FFFFF00000FFFFF00000FFFFF000007FFF+E0000003F000000003F000000003F000000003F000000003F000000003F000000003F000+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000+0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000+03F000000003F000000003F000000003F000000003F000000003F000000003F000000003+F000000003F000000003F000000003F000000003F00000F003F00001F803F00001F803F0+0001F803F00001F803F00001F803F00001F803F00001F803F00001F87FFFFFFFF8FFFFFF+FFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF025337DB22C>76 D<7FE0000FFCFFF0001FFEFF+F0001FFEFFF8003FFE7FF8003FFC0FF8003FE00FBC007BE00FBC007BE00FBC007BE00FBC+007BE00F9E00F3E00F9E00F3E00F9E00F3E00F9F01F3E00F9F01F3E00F8F01E3E00F8F01+E3E00F8F83E3E00F8F83E3E00F8783C3E00F87C7C3E00F87C7C3E00F83C783E00F83C783+E00F83EF83E00F83EF83E00F81EF03E00F81EF03E00F81FF03E00F80FE03E00F80FE03E0+0F80FE03E00F807C03E00F803803E00F800003E00F800003E00F800003E00F800003E00F+800003E00F800003E00F800003E00F800003E00F800003E00F800003E00F800003E00F80+0003E07FF0001FFCFFF8003FFEFFF8003FFEFFF8003FFE7FF0001FFC27337EB22C>I<7F+F0007FFCFFF800FFFEFFF800FFFEFFFC00FFFE7FFC007FFC07FE0007C007DE0007C007DE+0007C007DF0007C007CF0007C007CF0007C007CF8007C007C78007C007C7C007C007C7C0+07C007C3C007C007C3E007C007C3E007C007C1E007C007C1F007C007C1F007C007C0F007+C007C0F807C007C0F807C007C07C07C007C07C07C007C07C07C007C03E07C007C03E07C0+07C01E07C007C01F07C007C01F07C007C00F07C007C00F87C007C00F87C007C00787C007+C007C7C007C007C7C007C003C7C007C003E7C007C001E7C007C001E7C007C001F7C007C0+00F7C007C000F7C007C000FFC07FFC007FC0FFFE007FC0FFFE003FC0FFFE003FC07FFC00+1F8027337EB22C>I<007FFF000003FFFFE0000FFFFFF8001FFFFFFC003FFFFFFE003FE0+03FE003F8000FE007F00007F007F00007F007E00003F007E00003F007E00003F00FE0000+3F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F+80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80+FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC+00001F80FC00001F80FC00001F80FC00001F80FC00001F80FE00003F80FE00003F807E00+003F007E00003F007E00003F007F00007F007F00007F003F8000FE003FF007FE003FFFFF+FE001FFFFFFC000FFFFFF80003FFFFE000007FFF000021357BB32C>I<7FFFFFC000FFFF+FFF800FFFFFFFC00FFFFFFFF007FFFFFFF8003F000FFC003F0003FC003F0000FE003F000+07F003F00007F003F00003F003F00003F803F00001F803F00001F803F00001F803F00001+F803F00001F803F00001F803F00003F803F00003F003F00007F003F00007F003F0000FE0+03F0003FC003F000FFC003FFFFFF8003FFFFFF0003FFFFFC0003FFFFF80003FFFFC00003+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0+00000003F000000003F000000003F000000003F000000003F000000003F000000003F000+000003F00000007FFF800000FFFFC00000FFFFC00000FFFFC000007FFF80000025337EB2+2C>I<7FFFFC000000FFFFFF800000FFFFFFE00000FFFFFFF800007FFFFFFC000007E007+FE000007E001FE000007E0007F000007E0003F800007E0001F800007E0001F800007E000+0FC00007E0000FC00007E0000FC00007E0000FC00007E0000FC00007E0000FC00007E000+1F800007E0001F800007E0003F800007E0007F000007E001FE000007E007FE000007FFFF+FC000007FFFFF8000007FFFFE0000007FFFFF0000007FFFFF8000007E007FC000007E001+FE000007E000FE000007E0007F000007E0003F000007E0003F000007E0003F000007E000+3F000007E0003F000007E0003F000007E0003F000007E0003F000007E0003F0F0007E000+3F1F8007E0003F1F8007E0003F1F8007E0003F1F8007E0003F1F807FFE001FBF80FFFF00+1FFF00FFFF000FFF00FFFF000FFE007FFE0007FC0000000001F00029347EB22C>82+D<001FF8070000FFFF0F8001FFFFCF8007FFFFFF800FFFFFFF801FF01FFF803FC003FF80+3F8001FF807F0000FF807E00007F80FE00003F80FC00003F80FC00001F80FC00001F80FC+00001F80FC00001F80FE00000F007E000000007F000000007F800000003FE00000001FFC+0000001FFFC000000FFFFC000003FFFFC00001FFFFF000007FFFF8000007FFFC0000007F+FE00000007FF00000000FF800000003F800000001FC00000001FC00000000FE00000000F+E078000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FE00000FC0+FE00000FC0FF00001F80FF80003F80FFE0007F00FFFE01FF00FFFFFFFE00FFFFFFFC00F9+FFFFF000F83FFFC0007007FF000023357CB32C>I<7FFFFFFFFCFFFFFFFFFEFFFFFFFFFE+FFFFFFFFFEFFFFFFFFFEFC007E007EFC007E007EFC007E007EFC007E007EFC007E007EFC+007E007EFC007E007E78007E003C00007E000000007E000000007E000000007E00000000+7E000000007E000000007E000000007E000000007E000000007E000000007E000000007E+000000007E000000007E000000007E000000007E000000007E000000007E000000007E00+0000007E000000007E000000007E000000007E000000007E000000007E000000007E0000+00007E000000007E000000007E000000007E000000007E000000007E000000007E000000+3FFFFC00003FFFFC00007FFFFE00003FFFFC00003FFFFC0027337EB22C>I<7FFF803FFF+C0FFFFC07FFFE0FFFFC07FFFE0FFFFC07FFFE07FFF803FFFC003F00001F80003F00001F8+0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8+0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8+0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8+0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8+0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8+0003F00001F80003F80003F80001F80003F00001F80003F00001FC0007F00000FC0007E0+0000FE000FE000007F001FC000003F803F8000003FE0FF8000001FFFFF0000000FFFFE00+000003FFF800000001FFF0000000003F8000002B3480B22C>I<7FFC007FFCFFFE00FFFE+FFFE00FFFEFFFE00FFFE7FFC007FFC0FC00007E00FE0000FE007E0000FC007E0000FC007+E0000FC007F0001FC003F0001F8003F0001F8003F0001F8003F8003F8001F8003F0001F8+003F0001F8003F0001FC007F0000FC007E0000FC007E0000FC007E0000FC007E00007E00+FC00007E00FC00007E00FC00007E00FC00003F01F800003F01F800003F01F800003F01F8+00001F83F000001F83F000001F83F000001F83F000000F83E000000FC7E000000FC7E000+000FC7E0000007C7C0000007C7C0000007EFC0000007EFC0000003EF80000003EF800000+03FF80000003FF80000001FF00000001FF00000001FF00000001FF00000000FE00002734+7EB22C>I<7FF00007FF00FFF8000FFF80FFF8000FFF80FFF8000FFF807FF00007FF001F+0000007C001F0000007C001F0000007C001F0000007C000F800000F8000F800000F8000F+800000F8000F800000F8000F800000F8000F800000F8000F800000F80007C00001F00007+C00001F00007C00001F00007C00001F00007C03E01F00007C07F01F00007C07F01F00007+C07F01F00003E0FF83E00003E0FF83E00003E0F783E00003E0F783E00003E1F7C3E00003+E1F7C3E00003E1F7C3E00001E1E3C3C00001E1E3C3C00001F1E3C7C00001F3E3E7C00001+F3E3E7C00001F3E3E7C00001F3C1E7C00001F3C1E7C00000F3C1E7800000F3C1E7800000+F7C1F7800000F780F7800000F780F7800000F780F7800000FF80FF8000007F80FF000000+7F007F0000007F007F0000007F007F0000007F007F0000003E003E000029347FB22C>I<+7FFFFCFFFFFEFFFFFEFFFFFEFFFFFCFC0000FC0000FC0000FC0000FC0000FC0000FC0000+FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000+FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000+FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000+FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000+FFFFFCFFFFFEFFFFFEFFFFFE7FFFFC17416FB92C>91 D<7800000000F800000000FC0000+0000FC00000000FE000000007E000000007F000000003F000000003F800000001F800000+001FC00000000FC00000000FE000000007E000000007E000000007F000000003F0000000+03F800000001F800000001FC00000000FC00000000FE000000007E000000007F00000000+3F000000003F800000001F800000001F800000001FC00000000FC00000000FE000000007+E000000007F000000003F000000003F800000001F800000001FC00000000FC00000000FC+00000000FE000000007E000000007F000000003F000000003F800000001F800000001FC0+0000000FC00000000FE000000007E000000007F000000003F000000003F000000003F800+000001F800000001FC00000000FC00000000FE000000007E000000007F000000003F0000+00003F800000001F800000001F800000000F80000000070021417BB92C>I<7FFFFCFFFF+FEFFFFFEFFFFFE7FFFFE00007E00007E00007E00007E00007E00007E00007E00007E0000+7E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0000+7E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0000+7E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0000+7E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E7FFFFEFFFF+FEFFFFFEFFFFFE7FFFFC17417DB92C>I<000E0000003F800000FFE00003FFF8000FFFFE+001FFFFF007FF1FFC0FFE0FFE0FF803FE0FE000FE07C0007C0300001801B0C78B22C>I<+7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF807FFFFFFF0021067B7D2C>+I<007000F801F803F807F00FE01FC01F803F003E007E007C007C00FC00F800F800F800F8+00FF80FFC0FFE0FFE07FE07FE03FE01FC00F800D1B71B82C>I<01FFF0000007FFFE0000+1FFFFF80001FFFFFE0003FFFFFF0003FC01FF8003FC007F8003FC001FC001F8000FC0006+0000FE000000007E000000007E000000007E000000FFFE00001FFFFE0000FFFFFE0003FF+FFFE000FFFFFFE001FFF807E003FF8007E007FC0007E007F00007E00FE00007E00FC0000+7E00FC00007E00FC00007E00FC00007E00FE00007E007F0000FE007F8003FE003FE01FFE+001FFFFFFFFC0FFFFFFFFE07FFFFBFFE01FFFE1FFE003FF007FC27247CA32C>I<7FF000+0000FFF8000000FFF8000000FFF80000007FF800000001F800000001F800000001F80000+0001F800000001F800000001F800000001F800000001F800000001F800000001F8000000+01F81FE00001F8FFF80001FBFFFE0001FFFFFF0001FFFFFF8001FFF07FC001FF801FE001+FF0007F001FE0003F801FC0003F801FC0001FC01F80000FC01F80000FC01F80000FE01F8+00007E01F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01F800+007E01F80000FE01FC0000FC01FC0000FC01FC0001F801FE0003F801FF0007F001FF000F+F001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FBFFFE0001F8FFF80000F03FC000+27337FB22C>I<0003FFE000001FFFF800007FFFFE0001FFFFFE0003FFFFFF0007FE00FF+000FF000FF001FE000FF001FC0007E003F800018003F000000007F000000007E00000000+7E00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC+00000000FC000000007E000000007E000000007F000000003F00000F003F80001F801FC0+001F801FE0003F800FF0007F0007FE03FF0003FFFFFE0001FFFFFC00007FFFF800001FFF+E0000003FF000021247AA32C>I<00000FFE0000001FFF0000001FFF0000001FFF000000+0FFF000000003F000000003F000000003F000000003F000000003F000000003F00000000+3F000000003F000000003F000000003F000007F83F00003FFE3F0000FFFFBF0001FFFFFF+0003FFFFFF0007FC0FFF000FF003FF001FE001FF001FC000FF003F80007F003F00007F00+7E00003F007E00003F00FE00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC+00003F00FC00003F00FC00003F00FC00003F00FE00003F007E00007F007E00007F007F00+00FF003F8000FF003F8001FF001FC003FF000FF007FF0007FC1FFF0003FFFFFFFC01FFFF+BFFE00FFFF3FFE003FFC3FFE000FF01FFC27337DB22C>I<0003FE0000001FFFC000007F+FFF00001FFFFF80003FFFFFC0007FE03FE000FF800FF001FE0003F801FC0003F803F8000+1FC03F00000FC07F00000FC07E00000FE07E000007E0FC000007E0FFFFFFFFE0FFFFFFFF+E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00000000FE000000007E000000007E00000000+7F000000003F000003C03F800007E01FC00007E00FF0000FE007F8003FC007FF00FFC001+FFFFFF8000FFFFFF00003FFFFC00000FFFF0000001FF800023247CA32C>I<00000FF800+00003FFE000000FFFF000001FFFF800003FFFF800007FC7F800007F07F80000FE03F0000+0FC03F00000FC00000000FC00000000FC00000000FC00000000FC00000000FC000007FFF+FFFE00FFFFFFFF00FFFFFFFF00FFFFFFFF007FFFFFFE00000FC00000000FC00000000FC0+0000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000+00000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000+000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000000+0FC00000000FC000003FFFFFF0007FFFFFF8007FFFFFF8007FFFFFF8003FFFFFF0002133+7DB22C>I<00000003F80007F80FFC001FFE3FFE007FFFFFFF01FFFFFFFF03FFFFFE7F03+FC0FF87F07F003F83E0FE001FC1C0FC000FC001FC000FE001F80007E001F80007E001F80+007E001F80007E001F80007E001F80007E001FC000FE000FC000FC000FE001FC0007F003+F80003FC0FF00007FFFFF00007FFFFE0000FFFFF80000F9FFE00000F87F800000F800000+000F800000000F800000000FC000000007E000000007FFFFF00003FFFFFE0007FFFFFF80+0FFFFFFFE01FFFFFFFF03FC0001FF87F000003FC7E000000FC7C0000007CFC0000007EF8+0000003EF80000003EF80000003EF80000003EFC0000007E7E000000FC7F800003FC3FE0+000FF81FFC007FF00FFFFFFFE003FFFFFF8001FFFFFF00003FFFF8000007FFC00028387E+A42C>I<7FF000000000FFF800000000FFF800000000FFF8000000007FF80000000001F8+0000000001F80000000001F80000000001F80000000001F80000000001F80000000001F8+0000000001F80000000001F80000000001F80000000001F81FE0000001F87FFC000001F9+FFFE000001FBFFFF000001FFFFFF000001FFF03F800001FFC01F800001FF801FC00001FF+000FC00001FE000FC00001FC000FC00001FC000FC00001F8000FC00001F8000FC00001F8+000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8+000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8+000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0007FFFE0FFFF00FFFF+F1FFFF80FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF0029337FB22C>I<00070000001FC0+00001FC000003FE000003FE000003FE000001FC000001FC0000007000000000000000000+0000000000000000000000000000000000000000007FFFC0007FFFE000FFFFE0007FFFE0+007FFFE0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0+000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0+000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0+007FFFFFFCFFFFFFFEFFFFFFFEFFFFFFFE7FFFFFFC1F3479B32C>I<00000E0000003F80+00003F8000007FC000007FC000007FC000003F8000003F8000000E000000000000000000+000000000000000000000000000000000000000001FFFF8003FFFFC003FFFFC003FFFFC0+01FFFFC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0+00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0+00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0+00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0+00000FC000000FC000000FC000001FC03C001F807E003F80FF003F00FF007F00FF01FE00+FFFFFC007FFFF8007FFFF0001FFFE00007FF00001A467CB32C>I<7FE0000000FFF00000+00FFF0000000FFF00000007FF000000001F000000001F000000001F000000001F0000000+01F000000001F000000001F000000001F000000001F000000001F000000001F01FFFF001+F03FFFF801F03FFFF801F03FFFF801F01FFFF001F000FE0001F001FC0001F003F80001F0+07F00001F00FE00001F01FC00001F03F800001F07F000001F0FE000001F1FC000001F3FC+000001F7FE000001FFFF000001FFFF000001FF9F800001FF0FC00001FE0FE00001FC07E0+0001F803F00001F001F80001F001FC0001F000FC0001F0007E0001F0003F0001F0003F80+01F0001F807FFFC0FFFCFFFFE1FFFEFFFFE1FFFEFFFFE1FFFE7FFFC0FFFC27337EB22C>+I<7FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFF000000003F000000003F00000+0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000+03F000000003F000000003F000000003F000000003F000000003F000000003F000000003+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0+00000003F000000003F000000003F000000003F000000003F000000003F000000003F000+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000+0003F000000003F000000003F000007FFFFFFF80FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07F+FFFFFF8022337BB22C>I<7F83F007E0007FCFFC1FF800FFDFFE3FFC007FFFFEFFFC007F+FFFFFFFE0007FE1FFC3E0007FC1FF83F0007F80FF01F0007F00FE01F0007E00FC01F0007+E00FC01F0007E00FC01F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007+C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007+C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007+C00F801F0007C00F801F0007C00F801F007FFC3FF87FF07FFC7FF8FFF0FFFE7FFCFFF87F+FC7FF8FFF07FFC3FF87FF02D2481A32C>I<7FF01FE00000FFF87FFC0000FFF9FFFE0000+FFFBFFFF00007FFFFFFF000001FFF03F800001FFC01F800001FF801FC00001FF000FC000+01FE000FC00001FC000FC00001FC000FC00001F8000FC00001F8000FC00001F8000FC000+01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000+01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000+01F8000FC00001F8000FC00001F8000FC00001F8000FC0007FFFE0FFFF00FFFFF1FFFF80+FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF0029247FA32C>I<0007FC0000001FFF000000+7FFFC00001FFFFF00003FFFFF80007FC07FC000FF001FE001FE000FF001F80003F003F80+003F803F00001F807E00000FC07E00000FC07E00000FC0FC000007E0FC000007E0FC0000+07E0FC000007E0FC000007E0FC000007E0FC000007E0FE00000FE07E00000FC07E00000F+C07F00001FC03F00001F803F80003F801FC0007F001FE000FF000FF001FE0007FC07FC00+03FFFFF80001FFFFF000007FFFC000001FFF00000007FC000023247CA32C>I<7FF01FE0+00FFF8FFF800FFFBFFFE00FFFFFFFF007FFFFFFF8001FFF07FC001FF801FE001FF0007F0+01FE0003F801FC0003F801FC0001FC01F80000FC01F80000FC01F80000FE01F800007E01+F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01F800007E01F8+0000FE01FC0000FC01FC0000FC01FC0001F801FE0003F801FF0007F001FF000FF001FF80+1FE001FFE07FC001FFFFFF8001FFFFFF0001FBFFFE0001F8FFF80001F83FC00001F80000+0001F800000001F800000001F800000001F800000001F800000001F800000001F8000000+01F800000001F800000001F800000001F800000001F80000007FFFE00000FFFFF00000FF+FFF00000FFFFF000007FFFE0000027367FA32C>I<0003FC078000001FFF0FC000007FFF+CFC00001FFFFEFC00003FFFFFFC00007FE07FFC0000FF001FFC0001FE000FFC0001FC000+7FC0003F80003FC0003F00003FC0007F00001FC0007E00001FC0007E00000FC000FC0000+0FC000FC00000FC000FC00000FC000FC00000FC000FC00000FC000FC00000FC000FC0000+0FC000FC00000FC000FE00000FC0007E00001FC0007E00001FC0003F00003FC0003F8000+3FC0001FC0007FC0001FE000FFC0000FF003FFC00007FC0FFFC00003FFFFFFC00001FFFF+EFC000007FFF8FC000003FFF0FC0000007F80FC0000000000FC0000000000FC000000000+0FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000000+0FC0000000000FC0000000000FC0000000000FC0000000000FC000000003FFFF00000007+FFFF80000007FFFF80000007FFFF80000003FFFF0029367DA32C>I<7FFE003FC0FFFF01+FFF0FFFF07FFF8FFFF1FFFFC7FFF3FFFFC003F7FE1FC003FFF01FC003FFC00F8003FF800+70003FF00000003FE00000003FE00000003FC00000003F800000003F800000003F800000+003F000000003F000000003F000000003F000000003F000000003F000000003F00000000+3F000000003F000000003F000000003F000000003F000000003F000000003F000000003F+0000007FFFFFE000FFFFFFF000FFFFFFF000FFFFFFF0007FFFFFE00026247EA32C>I<00+7FF87003FFFFF80FFFFFF81FFFFFF83FFFFFF87FC00FF87E0003F8FC0001F8F80001F8F8+0001F8F80001F8FC0000F07F0000007FF000003FFFC0001FFFFE000FFFFF8003FFFFE000+7FFFF80001FFFC000007FC000000FE7800007FFC00003FFC00001FFE00001FFE00001FFF+00003FFF80003EFFC000FEFFF007FCFFFFFFFCFFFFFFF8FFFFFFE0F8FFFF80701FFC0020+247AA32C>I<001E000000003F000000003F000000003F000000003F000000003F000000+003F000000003F000000003F000000003F0000007FFFFFFF00FFFFFFFF80FFFFFFFF80FF+FFFFFF807FFFFFFF00003F000000003F000000003F000000003F000000003F000000003F+000000003F000000003F000000003F000000003F000000003F000000003F000000003F00+0000003F000000003F000000003F000000003F000000003F0003C0003F0007E0003F0007+E0003F0007E0003F0007E0003F0007E0003F800FE0001F801FC0001FE07FC0000FFFFF80+000FFFFF000003FFFE000001FFF80000003FE000232E7EAD2C>I<7FF003FF8000FFF807+FFC000FFF807FFC000FFF807FFC0007FF803FFC00001F8000FC00001F8000FC00001F800+0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800+0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800+0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800+0FC00001F8001FC00001F8001FC00001F8003FC00001FC007FC00000FE03FFC00000FFFF+FFFF00007FFFFFFF80003FFFFFFF80001FFFCFFF800003FE07FF0029247FA32C>I<7FFF+01FFFCFFFF01FFFEFFFF83FFFEFFFF01FFFE7FFF01FFFC03E0000F8003E0000F8003F000+1F8001F0001F0001F0001F0001F8003F0000F8003E0000F8003E0000FC007E00007C007C+00007C007C00007E00FC00003E00F800003E00F800003F01F800001F01F000001F01F000+001F83F000000F83E000000F83E000000FC7E0000007C7C0000007C7C0000007EFC00000+03EF80000003EF80000003FF80000001FF00000001FF00000000FE000000007C00002724+7EA32C>I<7FFF007FFF007FFF80FFFF00FFFF80FFFF807FFF80FFFF007FFF007FFF0007+C00001F00007C00001F00007C00001F00007C00001F00007C00001F00007C00001F00003+E00003E00003E00003E00003E00003E00003E03E03E00003E07F03E00003E07F03E00001+F07F07C00001F0FF87C00001F0FF87C00001F0F787C00001F0F787C00001F1F7C7C00000+F1F7C7800000F9E3CF800000F9E3CF800000FBE3EF800000FBE3EF800000FBE3EF800000+7BC1EF0000007FC1FF0000007FC1FF0000007F80FF0000007F80FF0000003F80FE000000+1F007C000029247FA32C>I<3FFF03FFF07FFF87FFF87FFF87FFF87FFF87FFF83FFF03FF+F000FC007E0000FC00FC00007E01F800003F01F000001F83F000001F87E000000FCFC000+0007EF80000003FF80000001FF00000001FE00000000FC000000007C00000000FE000000+01FE00000001FF00000003EF80000007CFC000000FC7C000000F83E000001F01F000003F+01F800007E00F800007C007C0000F8007E0001F8003F007FFF01FFFC7FFF83FFFCFFFF83+FFFE7FFF83FFFC7FFF01FFFC27247EA32C>I<7FFF01FFFCFFFF81FFFEFFFF83FFFEFFFF+81FFFE7FFF01FFFC03E0000F8001F0000F8001F0001F8001F8001F0000F8001F0000F800+3F0000FC003E00007C003E00007E007E00003E007C00003E007C00003F00FC00001F00F8+00001F00F800000F81F800000F81F000000F81F0000007C1F0000007C3E0000007C3E000+0003E3E0000003E7C0000001E7C0000001F7C0000001F780000000FF80000000FF800000+00FF000000007F000000007F000000003E000000003E000000007E000000007C00000000+7C00000000FC00000000F800000000F800000C01F800003F01F000007F83F000007F87E0+00007E0FE000007E1FC000007FFF8000003FFF0000001FFE0000000FFC00000007E00000+0027367EA32C>I<3FFFFFFFE07FFFFFFFF07FFFFFFFF07FFFFFFFF07FFFFFFFF07E0000+1FE07E00003FC07E00007F807E0000FF007E0001FE003C0003FC00000007F80000000FF0+0000001FE00000003FC00000007F80000000FF00000001FC00000003F80000000FF00000+001FE00000003FC00000007F80000000FF00000001FE0001E003FC0003F007F80003F00F+F00003F01FE00003F03FC00003F07F800003F0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFF+FFFFF07FFFFFFFE024247DA32C>I<000000FF00000007FF8000001FFF8000007FFF8000+00FFFF000001FFC0000001FE00000003F800000003F000000003F000000003F000000003+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0+00000003F000000003F000000003F000000003F000000003F000000003F000000003F000+000003F000000007F00000001FE0000000FFE000007FFFC00000FFFF800000FFFE000000+FFFF8000007FFFC0000000FFE00000001FE000000007F000000003F000000003F0000000+03F000000003F000000003F000000003F000000003F000000003F000000003F000000003+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0+00000003F000000003F000000003F800000001FE00000001FFC0000000FFFF0000007FFF+8000001FFF80000007FF80000000FF0021417BB92C>I<78FCFCFCFCFCFCFCFCFCFCFCFC+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC+FCFCFCFCFCFCFCFCFCFCFCFCFCFCFC7806416DB92C>I<7FC0000000FFF8000000FFFE00+0000FFFF8000007FFFC0000000FFE00000001FE000000007F000000003F000000003F000+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000+0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000+03F000000003F000000003F000000003F800000001FE00000001FFC0000000FFFF000000+7FFF8000001FFF8000007FFF800000FFFF000001FFC0000001FE00000003F800000003F0+00000003F000000003F000000003F000000003F000000003F000000003F000000003F000+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000+0003F000000003F000000003F000000003F000000007F00000001FE0000000FFE000007F+FFC00000FFFF800000FFFE000000FFF80000007FC000000021417BB92C>I+E /Fq 87 124 df<00000FF800FC0000007FFF07FF000001F807DF83C00007E001FF0FC0+001F8007FE1FE0003F000FFC1FE0007E000FFC1FE0007E000FF81FE000FC000FF81FE000+FC000FF0078001F80007F0000001F80003F0000001F80003F0000001F80003F0000001F8+0003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F800+03F0000001F80003F0000001F80003F0000001F80003F00000FFFFFFFFFFF800FFFFFFFF+FFF800FFFFFFFFFFF80001F80003F0000001F80003F0000001F80003F0000001F80003F0+000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F000+0001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F00000+01F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001+F80003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000001F8+0003F0000001F80003F0000001F80003F0000001F80003F0000001F80003F0000003FC00+07F800007FFFE0FFFFF0007FFFE0FFFFF0007FFFE0FFFFF000333B7FBA30>11+D<00000FF8000000007FFE00000001F80780000007E001C000001F8000E000003F0007E0+00007E000FF000007E000FF00000FC000FF00000FC000FF00001F8000FF00001F80007E0+0001F80001800001F80000000001F80000000001F80000000001F80000000001F8000000+0001F80000000001F80000000001F80000000001F80000000001F80003F000FFFFFFFFF0+00FFFFFFFFF000FFFFFFFFF00001F8000FF00001F80003F00001F80003F00001F80003F0+0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0+0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0+0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0+0001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F0+0001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A3B7FBA2E+>I<00000FFC000000007FFF70000001F803F0000007E007F000001F800FF000003F000F+F000007E000FF000007E000FF00000FC000FF00000FC0007F00001F80003F00001F80003+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F000FFFFFFFF+F000FFFFFFFFF000FFFFFFFFF00001F80003F00001F80003F00001F80003F00001F80003+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003+F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003+F00001F80003F00003FC0007F8007FFFE0FFFFC07FFFE0FFFFC07FFFE0FFFFC02A3B7FBA+2E>I<00000FF0001FF0000000007FFE00FFFC00000001F80F83F00F00000007E001CFC0+038000001F8000FF0001C000003F0007FE000FC000007E000FFC001FE000007E000FFC00+1FE00000FC000FF8001FE00000FC000FF8001FE00001F8000FF0001FE00001F80007F000+0FC00001F80003F00003000001F80003F00000000001F80003F00000000001F80003F000+00000001F80003F00000000001F80003F00000000001F80003F00000000001F80003F000+00000001F80003F00000000001F80003F00000000001F80003F00007E000FFFFFFFFFFFF+FFE000FFFFFFFFFFFFFFE000FFFFFFFFFFFFFFE00001F80003F0001FE00001F80003F000+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F000+07E00001F80003F00007E00001F80003F00007E00001F80003F00007E00003FC0007F800+0FF0007FFFE0FFFFC1FFFF807FFFE0FFFFC1FFFF807FFFE0FFFFC1FFFF80413B7FBA45>+I<00000FF8001FF8000000007FFF00FFFEE0000001F80783F007E0000007E001CFC00FE0+00001F8007FF001FE000003F000FFE001FE000007E000FFC001FE000007E000FFC001FE0+0000FC000FF8001FE00000FC000FF8000FE00001F80007F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E000FFFFFFFFFFFFFFE0+00FFFFFFFFFFFFFFE000FFFFFFFFFFFFFFE00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00001F80003F00007E0+0001F80003F00007E00001F80003F00007E00001F80003F00007E00003FC0007F8000FF0+007FFFE0FFFFC1FFFF807FFFE0FFFFC1FFFF807FFFE0FFFFC1FFFF80413B7FBA45>I<00+3C007E007E00FE01FE03FC03F007E00FC01F801E003C007800F000C0000F0F6FB92A>19+D<03F00003F00003F00003FE00003F80001FC0000FE00007E00007E00007E0000FE0001F+C000FF80FFFE00FFE000130F757D25>24 D<1C007F00FF80FF80FF80FF80FF80FF80FF80+FF807F007F007F007F007F007F007F007F007F007F007F003E003E003E003E003E003E00+3E003E003E003E003E001C001C001C001C001C001C001C001C001C001C001C0000000000+0000000000000000000000001C007F00FF80FF80FF80FF80FF807F001C00093C79BB17>+33 D<1C001C007F007F00FF80FF80FF80FF80FFC0FFC0FFC0FFC0FFC0FFC07FC07FC01C+C01CC000C000C000C000C000C000C000C000C001C001C001800180018001800380038003+00030007000700060006000E000E001C001C003800380070007000600060001A197DB92A+>I<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C000C000C001C0018001800380+0300070006000E001C003800700060000A1979B917>39 D<0000600000E00001C0000380+000700000E00001E00003C0000780000780000F00001E00001E00003C00003C00007C000+0780000F80000F00000F00001F00001E00001E00003E00003E00003E00007C00007C0000+7C00007C00007C00007C0000F80000F80000F80000F80000F80000F80000F80000F80000+F80000F80000F80000F80000F80000F80000F80000F80000F80000F800007C00007C0000+7C00007C00007C00007C00003E00003E00003E00001E00001E00001F00000F00000F0000+0F800007800007C00003C00003C00001E00001E00000F000007800007800003C00001E00+000E000007000003800001C00000E0000060135278BD20>I<C00000E000007000003800+001C00000E00000F000007800003C00003C00001E00000F00000F000007800007800007C+00003C00003E00001E00001E00001F00000F00000F00000F80000F80000F800007C00007+C00007C00007C00007C00007C00003E00003E00003E00003E00003E00003E00003E00003+E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00007C00007+C00007C00007C00007C00007C0000F80000F80000F80000F00000F00001F00001E00001E+00003E00003C00007C0000780000780000F00000F00001E00003C00003C0000780000F00+000E00001C0000380000700000E00000C0000013527CBD20>I<000380000007C0000007+C0000007C0000007C0000007C0000007C0000007C0007803803CFC03807EFE0380FE7F83+83FC3FC387F80FE38FE003FBBF8000FFFE00003FF800000FE000000FE000003FF80000FF+FE0003FBBF800FE38FE03FC387F87F8383FCFE0380FEFC03807E7803803C0007C0000007+C0000007C0000007C0000007C0000007C0000007C000000380001F247BBD2A>I<000000+300000000000007800000000000078000000000000780000000000007800000000000078+000000000000780000000000007800000000000078000000000000780000000000007800+000000000078000000000000780000000000007800000000000078000000000000780000+000000007800000000000078000000000000780000000000007800000000000078000000+000000780000000000007800000000000078000000000000780000007FFFFFFFFFFFF8FF+FFFFFFFFFFFCFFFFFFFFFFFFFC7FFFFFFFFFFFF800000078000000000000780000000000+007800000000000078000000000000780000000000007800000000000078000000000000+780000000000007800000000000078000000000000780000000000007800000000000078+000000000000780000000000007800000000000078000000000000780000000000007800+000000000078000000000000780000000000007800000000000078000000000000780000+00000000780000000000003000000036367BAF41>I<1C007F00FF80FF80FFC0FFC0FFC0+7FC01CC000C000C000C000C001C00180018003800300070006000E001C00380070006000+0A19798817>I<FFFFFCFFFFFCFFFFFCFFFFFCFFFFFC16057F941C>I<1C007F00FF80FF80+FF80FF80FF807F001C000909798817>I<0003F80000001FFF0000007E0FC00000F803E0+0001E000F00003C000780007C0007C000F80003E000F80003E001F00001F001F00001F00+3F00001F803F00001F803F00001F807E00000FC07E00000FC07E00000FC07E00000FC07E+00000FC07E00000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00+000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE0000+0FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE07E00000F+C07E00000FC07E00000FC07E00000FC07F00001FC03F00001F803F00001F803F00001F80+1F00001F001F80003F000F80003E000F80003E0007C0007C0003E000F80001F001F00000+F803E000007E0FC000001FFF00000003F80000233A7DB72A>48 D<0001C0000003C00000+07C000001FC00000FFC000FFFFC000FFFFC000FF1FC000001FC000001FC000001FC00000+1FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00000+1FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00000+1FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00000+1FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00000+1FC000001FC000001FC000001FC000001FC000003FE0007FFFFFF07FFFFFF07FFFFFF01C+3879B72A>I<000FF00000007FFE000001FFFF800003E03FE0000F000FF0000E0007F800+1C0003FC00380001FE00300001FE00700000FF00600000FF00FC0000FF00FF00007F80FF+80007F80FF80007F80FF80007F80FF80007F80FF80007F807F00007F801C00007F800000+007F80000000FF00000000FF00000000FF00000001FE00000001FC00000003FC00000003+F800000007F000000007E00000000FE00000001FC00000003F800000003F000000007C00+000000F800000001F000000003E000000007C00000000F800000000F000000001E000180+003C000180007800018000F000038001E000030003C000030007800003000E000007000F+FFFFFF001FFFFFFF003FFFFFFF007FFFFFFE00FFFFFFFE00FFFFFFFE00FFFFFFFE002138+7CB72A>I<0007F80000003FFF0000007FFFC00001F80FF00003C007F800078003FC000E+0001FC000F0001FE001FE000FE001FF000FF001FF000FF001FF000FF001FF000FF001FF0+00FF000FE000FF0007C000FF00000000FE00000001FE00000001FE00000001FC00000003+F800000003F800000007F000000007E00000000F800000007E0000001FFC0000001FFF80+0000000FE000000007F000000001FC00000001FE00000000FF000000007F800000007F80+0000007FC00000007FC00000003FC00000003FE00000003FE01E00003FE07F80003FE0FF+C0003FE0FFC0003FE0FFC0003FE0FFC0003FE0FFC0003FC0FF80007FC07F80007F807E00+007F80700000FF00380001FE001E0001FE000F8003F80007F00FF00001FFFFC000007FFF+0000000FF80000233A7DB72A>I<000000380000000038000000007800000000F8000000+00F800000001F800000003F800000007F800000007F80000000FF80000001FF80000001B+F800000033F800000073F800000063F8000000C3F8000001C3F800000183F800000303F8+00000703F800000603F800000C03F800001C03F800001803F800003003F800007003F800+006003F80000C003F80001C003F800038003F800030003F800070003F8000E0003F8000C+0003F800180003F800380003F800300003F800600003F800E00003F800FFFFFFFFF8FFFF+FFFFF8FFFFFFFFF8000003F800000003F800000003F800000003F800000003F800000003+F800000003F800000003F800000003F800000003F800000003F800000007FC000003FFFF+F80003FFFFF80003FFFFF825397EB82A>I<0600000C000780003C0007F003F80007FFFF+F80007FFFFF00007FFFFE00007FFFF800007FFFF000007FFFC0000067FE0000006000000+000600000000060000000006000000000600000000060000000006000000000600000000+0600000000060000000006000000000607F80000063FFE000006780F800007E007E00007+8003F000070001F800060001F800060000FC00000000FE00000000FE00000000FF000000+007F000000007F000000007F800000007F800000007F800000007F803E00007F807F0000+7F80FF80007F80FF80007F80FF80007F80FF80007F80FF00007F00FE0000FF00E00000FF+00600000FE00700000FE00300001FC00380001F8001C0003F8001E0007F0000F800FE000+07E03F800001FFFF0000007FFC0000001FE00000213A7CB72A>I<00003FC0000001FFF0+000007FFFC00000FE03E00003F800700007E001F0000FC003F8001F8007F8003F0007F80+03F0007F8007E0007F800FE0003F000FC0001E001FC00000001FC00000003F800000003F+800000003F800000007F800000007F000000007F01FC00007F07FF8000FF1E07E000FF38+01F000FF7000F800FF6000FC00FFE0007E00FFC0003F00FFC0003F00FF80003F80FF8000+3FC0FF80001FC0FF80001FC0FF00001FE0FF00001FE0FF00001FE0FF00001FE0FF00001F+E07F00001FE07F00001FE07F00001FE07F00001FE07F00001FE03F80001FE03F80001FC0+3F80001FC01F80001FC01F80003F801FC0003F800FC0003F0007E0007F0007E000FE0003+F000FC0001F801F80000FE07F000003FFFC000001FFF00000003FC0000233A7DB72A>I<+300000000038000000003E000000003FFFFFFFE03FFFFFFFE03FFFFFFFE03FFFFFFFC07F+FFFFFFC07FFFFFFF807FFFFFFF0070000006006000000E006000001C006000001800E000+003800C000007000C00000E000C00000C000000001C00000000380000000030000000007+000000000E000000000C000000001C000000003800000000380000000070000000007000+000000F000000001E000000001E000000003E000000003E000000003C000000007C00000+0007C00000000FC00000000FC00000000FC00000001F800000001F800000001F80000000+3F800000003F800000003F800000003F800000003F800000007F800000007F800000007F+800000007F800000007F800000007F800000007F800000007F800000007F800000003F00+0000001E000000233B7BB82A>I<0003F80000001FFF0000007FFFC00000FC07F00001E0+01F80003C000FC000780007C000700003E000F00001E000E00001F001E00000F001E0000+0F001E00000F001F00000F001F00000F001F80000F001F80001F001FE0001E000FF0003E+000FFC003C000FFE00780007FF80F00007FFC1E00003FFF3C00001FFFF000000FFFE0000+003FFF0000001FFFC000001FFFE000007FFFF80000F0FFFC0003E07FFE0007801FFF000F+000FFF801F0003FF803E0001FFC03C00007FC07C00003FC07800000FE0F8000007E0F000+0007E0F0000003E0F0000003E0F0000001E0F0000001E0F0000001E0F8000001C0780000+01C078000003C07C000003803E000007001F00000F000F80001E0007E0007C0003F803F0+0000FFFFE000003FFF80000007FC0000233A7DB72A>I<0003F80000001FFF0000007FFF+C00000FC07E00003F803F00007F001F8000FE000FC000FC0007E001FC0007E003F80003F+003F80003F007F80003F807F00003F807F00003F80FF00001FC0FF00001FC0FF00001FC0+FF00001FC0FF00001FC0FF00001FC0FF00001FE0FF00001FE0FF00001FE0FF00001FE0FF+00001FE07F00003FE07F00003FE07F80003FE03F80003FE01F80007FE01F80007FE00FC0+00FFE007E000DFE003E001DFE001F0039FE000FC0F1FE0003FFC1FC00007F01FC0000000+1FC00000003FC00000003F800000003F800000003F800000003F000000007F000F00007E+001F80007E003FC000FC003FC000FC003FC001F8003FC003F0003F8007E0001F000FC000+1C001F80000F807F000007FFFC000001FFF00000003FC00000233A7DB72A>I<1C007F00+FF80FF80FF80FF80FF807F001C0000000000000000000000000000000000000000000000+00000000000000000000000000001C007F00FF80FF80FF80FF80FF807F001C00092479A3+17>I<1C007F00FF80FF80FF80FF80FF807F001C00000000000000000000000000000000+0000000000000000000000000000000000000000001C007F00FF00FF80FF80FF80FF807F+801D8001800180018001800380030003000700060006000E001C00180038007000600009+3479A317>I<7FFFFFFFFFFFF8FFFFFFFFFFFFFCFFFFFFFFFFFFFC7FFFFFFFFFFFF80000+000000000000000000000000000000000000000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000007FFFFFFFFFFFF8FFFFFFFFFF+FFFCFFFFFFFFFFFFFC7FFFFFFFFFFFF836167B9F41>61 D<003FE00001FFFE0007C03F80+0E000FC03C0007F0300003F0700003F87C0001F8FE0001FCFF0001FCFF0001FCFF0001FC+FF0001FC7E0001FC3C0003F8000003F8000007F0000007F000000FE000001F8000003F00+00007E0000007C000000F8000001F0000001E0000003C000000380000003800000070000+000700000007000000060000000600000006000000060000000600000006000000060000+000600000006000000060000000000000000000000000000000000000000000000000000+0000000000000000000E0000003F8000007FC000007FC000007FC000007FC000007FC000+003F8000000E00001E3B7CBA27>63 D<0000003800000000000038000000000000380000+000000007C0000000000007C0000000000007C000000000000FE000000000000FE000000+000000FE000000000001FF000000000001FF000000000001FF0000000000037F80000000+00037F8000000000077FC000000000063FC000000000063FC0000000000E3FE000000000+0C1FE0000000000C1FE0000000001C1FF000000000180FF000000000180FF00000000038+0FF8000000003007F8000000003007F8000000007007FC000000006003FC000000006003+FC00000000C003FE00000000C001FE00000000C001FE000000018001FF000000018000FF+000000018000FF000000030000FF8000000300007F8000000300007F8000000600007FC0+000007FFFFFFC0000007FFFFFFC000000FFFFFFFE000000C00001FE000000C00001FE000+001800000FF000001800000FF000001800000FF0000030000007F8000030000007F80000+30000007F8000060000003FC000060000003FC0000E0000003FC0000E0000001FE0001E0+000001FE0003F0000001FF000FFC000007FF80FFFF8000FFFFFEFFFF8000FFFFFEFFFF80+00FFFFFE373C7DBB3E>65 D<FFFFFFFFE00000FFFFFFFFFC0000FFFFFFFFFF000001FF80+007FC00000FF00001FE00000FF00000FF00000FF000007F80000FF000003FC0000FF0000+03FC0000FF000001FE0000FF000001FE0000FF000001FF0000FF000001FF0000FF000001+FF0000FF000001FF0000FF000001FF0000FF000001FF0000FF000001FF0000FF000001FE+0000FF000003FE0000FF000003FC0000FF000007F80000FF00000FF00000FF00001FE000+00FF00003FC00000FF0000FF800000FFFFFFFC000000FFFFFFFC000000FF00007F800000+FF00001FE00000FF000007F00000FF000003F80000FF000001FC0000FF000001FE0000FF+000000FF0000FF000000FF0000FF000000FF8000FF0000007F8000FF0000007FC000FF00+00007FC000FF0000007FC000FF0000007FC000FF0000007FC000FF0000007FC000FF0000+007FC000FF0000007F8000FF000000FF8000FF000000FF8000FF000001FF0000FF000001+FE0000FF000003FE0000FF000007FC0000FF00001FF80001FF80007FF000FFFFFFFFFFC0+00FFFFFFFFFF0000FFFFFFFFF8000032397DB83B>I<000001FF80018000000FFFE00380+00007FFFF803800001FF807E07800003FC000F0F80000FF000039F80001FE00001DF8000+3F800000FF80007F0000007F8000FE0000003F8001FE0000003F8003FC0000001F8007F8+0000000F8007F80000000F800FF000000007800FF000000007801FE000000007801FE000+000003803FE000000003803FC000000003807FC000000001807FC000000001807FC00000+0001807F800000000180FF800000000000FF800000000000FF800000000000FF80000000+0000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000+00FF800000000000FF800000000000FF800000000000FF8000000000007F800000000000+7FC000000001807FC000000001807FC000000001803FC000000001803FE000000001801F+E000000003801FE000000003000FF000000003000FF0000000070007F8000000070007F8+000000060003FC0000000E0001FE0000001C0000FE0000001800007F0000003800003F80+00007000001FE00000E000000FF00003C0000003FC000F80000001FF803F000000007FFF+FC000000000FFFF00000000001FF800000313D7BBA3C>I<FFFFFFFFC00000FFFFFFFFF8+0000FFFFFFFFFE000001FF8001FF800000FF00003FE00000FF00000FF00000FF000003F8+0000FF000001FC0000FF000000FE0000FF0000007F0000FF0000007F0000FF0000003F80+00FF0000003FC000FF0000001FC000FF0000001FE000FF0000000FE000FF0000000FF000+FF0000000FF000FF0000000FF000FF00000007F800FF00000007F800FF00000007F800FF+00000007F800FF00000007FC00FF00000007FC00FF00000007FC00FF00000007FC00FF00+000007FC00FF00000007FC00FF00000007FC00FF00000007FC00FF00000007FC00FF0000+0007FC00FF00000007FC00FF00000007FC00FF00000007F800FF00000007F800FF000000+07F800FF00000007F800FF0000000FF000FF0000000FF000FF0000000FE000FF0000000F+E000FF0000001FE000FF0000001FC000FF0000003F8000FF0000003F8000FF0000007F00+00FF000000FE0000FF000001FC0000FF000003F80000FF00000FF00000FF00003FE00001+FF8000FF8000FFFFFFFFFF0000FFFFFFFFF80000FFFFFFFFC0000036397DB83F>I<FFFF+FFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC0001FF80000FFC0000FF000001FC0000FF00+00007E0000FF0000003E0000FF0000001E0000FF0000000E0000FF0000000E0000FF0000+000E0000FF000000060000FF000000060000FF000000060000FF000000070000FF000000+030000FF0000C0030000FF0000C0030000FF0000C0030000FF0000C0000000FF0000C000+0000FF0000C0000000FF0001C0000000FF0001C0000000FF0003C0000000FF000FC00000+00FFFFFFC0000000FFFFFFC0000000FFFFFFC0000000FF000FC0000000FF0003C0000000+FF0001C0000000FF0001C0000000FF0000C0000000FF0000C0000000FF0000C0006000FF+0000C0006000FF0000C0006000FF0000C000E000FF00000000C000FF00000000C000FF00+000000C000FF00000000C000FF00000001C000FF00000001C000FF00000001C000FF0000+00038000FF000000038000FF000000078000FF000000078000FF0000000F8000FF000000+3F8000FF0000007F8001FF800007FF00FFFFFFFFFFFF00FFFFFFFFFFFF00FFFFFFFFFFFF+0033397DB839>I<FFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF801FF80001FF800FF0000+01F800FF000000FC00FF0000007C00FF0000003C00FF0000001C00FF0000001C00FF0000+000C00FF0000000C00FF0000000C00FF0000000C00FF0000000E00FF0000000600FF0000+000600FF0001800600FF0001800600FF0001800000FF0001800000FF0001800000FF0001+800000FF0003800000FF0003800000FF0007800000FF001F800000FFFFFF800000FFFFFF+800000FFFFFF800000FF001F800000FF0007800000FF0003800000FF0003800000FF0001+800000FF0001800000FF0001800000FF0001800000FF0001800000FF0001800000FF0000+000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000+000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000+000001FFC0000000FFFFFFC00000FFFFFFC00000FFFFFFC000002F397DB836>I<000000+FF8000C000000FFFF001C000003FFFFC01C00000FF803F03C00003FC000787C0000FF000+03CFC0001FE00000EFC0003FC000007FC0007F8000003FC000FF0000001FC001FE000000+1FC003FC0000000FC007F800000007C007F800000007C00FF000000003C00FF000000003+C01FE000000003C01FE000000001C03FE000000001C03FC000000001C07FC000000000C0+7FC000000000C07FC000000000C07FC000000000C0FF800000000000FF800000000000FF+800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80+0000000000FF800000000000FF800000000000FF800000000000FF800000FFFFFFFF8000+00FFFFFF7FC00000FFFFFF7FC00000007FE07FC00000003FC07FC00000003FC03FC00000+003FC03FE00000003FC01FE00000003FC01FE00000003FC00FF00000003FC00FF0000000+3FC007F80000003FC007F80000003FC003FC0000003FC001FE0000003FC000FF0000007F+C0007F8000007FC0003FC00000FFC0001FE00000EFC0000FF80003C7C00003FE000783C0+0000FFC03F01C000003FFFFC00C000000FFFF00000000000FF800000383D7CBA41>I<FF+FFFF01FFFFFEFFFFFF01FFFFFEFFFFFF01FFFFFE01FF800003FF0000FF000001FE0000FF+000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF00+0001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF0000+01FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001+FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE+0000FFFFFFFFFE0000FFFFFFFFFE0000FFFFFFFFFE0000FF000001FE0000FF000001FE00+00FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000+FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF+000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF00+0001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF000001FE0000FF0000+01FE0000FF000001FE0001FF800003FF00FFFFFF01FFFFFEFFFFFF01FFFFFEFFFFFF01FF+FFFE37397DB83E>I<FFFFFFC0FFFFFFC0FFFFFFC000FFC000007F8000007F8000007F80+00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80+00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80+00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80+00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80+00007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80+00007F800000FFC000FFFFFFC0FFFFFFC0FFFFFFC01A397EB81E>I<003FFFFFE0003FFF+FFE0003FFFFFE000001FFC00000007F800000007F800000007F800000007F800000007F8+00000007F800000007F800000007F800000007F800000007F800000007F800000007F800+000007F800000007F800000007F800000007F800000007F800000007F800000007F80000+0007F800000007F800000007F800000007F800000007F800000007F800000007F8000000+07F800000007F800000007F800000007F800000007F800000007F800000007F800000007+F800000007F800000007F800000007F800000007F800000007F8003F0007F8007F8007F8+00FFC007F800FFC007F800FFC007F800FFC007F800FFC00FF000FF800FF0007F000FE000+70001FE00038001FC0001C003F80000E007F00000781FC000001FFF00000007F80000023+3B7DB82B>I<FFFFFF0001FFFF00FFFFFF0001FFFF00FFFFFF0001FFFF0001FF8000007F+F00000FF0000003F800000FF0000003E000000FF0000003C000000FF00000038000000FF+00000070000000FF000000E0000000FF000001C0000000FF00000380000000FF00000700+000000FF00000E00000000FF00001C00000000FF00003800000000FF00007000000000FF+0000E000000000FF0001C000000000FF00078000000000FF000E0000000000FF001C0000+000000FF003E0000000000FF007E0000000000FF00FF0000000000FF01FF0000000000FF+03FF8000000000FF077FC000000000FF0E7FC000000000FF1C3FE000000000FF381FF000+000000FF701FF000000000FFE00FF800000000FFC007FC00000000FF8007FC00000000FF+0003FE00000000FF0001FF00000000FF0001FF00000000FF0000FF80000000FF00007FC0+000000FF00007FC0000000FF00003FE0000000FF00001FF0000000FF00001FF0000000FF+00000FF8000000FF00000FF8000000FF000007FC000000FF000003FE000000FF000003FE+000000FF000001FF000000FF000000FF800000FF000000FFC00000FF000000FFE00001FF+800001FFF000FFFFFF001FFFFF80FFFFFF001FFFFF80FFFFFF001FFFFF8039397DB841>+I<FFFFFFE00000FFFFFFE00000FFFFFFE0000001FFC000000000FF0000000000FF000000+0000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF000000+0000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF000000+0000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF000000+0000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF000000+0000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF000000+1800FF0000001800FF0000001800FF0000001800FF0000001800FF0000003800FF000000+3000FF0000003000FF0000003000FF0000007000FF0000007000FF0000007000FF000000+F000FF000000F000FF000001F000FF000003F000FF00000FF000FF00001FE001FF8000FF+E0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE02D397DB834>I<FFFF0000000007FFF8FF+FF800000000FFFF8FFFF800000000FFFF801FF800000000FFC0000DFC00000001BF80000+DFC00000001BF80000CFE000000033F80000CFE000000033F80000CFE000000033F80000+C7F000000063F80000C7F000000063F80000C7F000000063F80000C3F8000000C3F80000+C3F8000000C3F80000C1FC00000183F80000C1FC00000183F80000C1FC00000183F80000+C0FE00000303F80000C0FE00000303F80000C07F00000603F80000C07F00000603F80000+C07F00000603F80000C03F80000C03F80000C03F80000C03F80000C03F80000C03F80000+C01FC0001803F80000C01FC0001803F80000C00FE0003003F80000C00FE0003003F80000+C00FE0003003F80000C007F0006003F80000C007F0006003F80000C003F800C003F80000+C003F800C003F80000C003F800C003F80000C001FC018003F80000C001FC018003F80000+C001FC018003F80000C000FE030003F80000C000FE030003F80000C0007F060003F80000+C0007F060003F80000C0007F060003F80000C0003F8C0003F80000C0003F8C0003F80000+C0001FD80003F80000C0001FD80003F80000C0001FD80003F80000C0000FF00003F80000+C0000FF00003F80000C0000FF00003F80001E00007E00003F80003F00007E00003F8000F+FC0003C00007FC00FFFFC003C003FFFFF8FFFFC003C003FFFFF8FFFFC0018003FFFFF845+397DB84C>I<FFFF000007FFFEFFFF800007FFFEFFFFC00007FFFE00FFC000007FE000FF+E000001F8000DFF000000F0000DFF00000060000CFF80000060000C7FC0000060000C7FC+0000060000C3FE0000060000C1FF0000060000C1FF0000060000C0FF8000060000C07FC0+00060000C07FC000060000C03FE000060000C01FF000060000C01FF800060000C00FF800+060000C007FC00060000C007FE00060000C003FE00060000C001FF00060000C001FF8006+0000C000FF80060000C0007FC0060000C0007FE0060000C0003FE0060000C0001FF00600+00C0000FF8060000C0000FF8060000C00007FC060000C00003FE060000C00003FE060000+C00001FF060000C00000FF860000C00000FF860000C000007FC60000C000003FE60000C0+00003FE60000C000001FF60000C000000FFE0000C000000FFE0000C0000007FE0000C000+0003FE0000C0000003FE0000C0000001FE0000C0000000FE0000C0000000FE0000C00000+007E0001E00000003E0003F00000003E000FFC0000001E00FFFFC000000E00FFFFC00000+0E00FFFFC00000060037397DB83E>I<000003FF00000000001FFFE000000000FE01FC00+000001F8007E00000007E0001F8000000FC0000FC000003F800007F000007F000003F800+00FE000001FC0001FC000000FE0001F80000007E0003F80000007F0007F00000003F8007+F00000003F800FE00000001FC00FE00000001FC01FE00000001FE01FC00000000FE03FC0+0000000FF03FC00000000FF03FC00000000FF07FC00000000FF87F8000000007F87F8000+000007F87F8000000007F8FF8000000007FCFF8000000007FCFF8000000007FCFF800000+0007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF80000000+07FCFF8000000007FCFF8000000007FCFF8000000007FC7F8000000007F87FC00000000F+F87FC00000000FF87FC00000000FF83FC00000000FF03FC00000000FF01FE00000001FE0+1FE00000001FE01FE00000001FE00FF00000003FC007F00000003F8007F80000007F8003+F80000007F0001FC000000FE0001FC000000FE0000FE000001FC00007F000003F800003F+800007F000001FC0000FE0000007E0001F80000003F8007F00000000FE01FC000000001F+FFE00000000003FF000000363D7BBA41>I<FFFFFFFFC000FFFFFFFFF800FFFFFFFFFE00+01FF8001FF8000FF00003FC000FF00000FE000FF000007F000FF000003F800FF000003FC+00FF000003FE00FF000001FE00FF000001FE00FF000001FF00FF000001FF00FF000001FF+00FF000001FF00FF000001FF00FF000001FF00FF000001FF00FF000001FE00FF000001FE+00FF000003FC00FF000003FC00FF000007F800FF000007F000FF00000FE000FF00003FC0+00FF0001FF0000FFFFFFFC0000FFFFFFF00000FF0000000000FF0000000000FF00000000+00FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000+00FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000+00FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000+00FF0000000000FF0000000001FF80000000FFFFFF000000FFFFFF000000FFFFFF000000+30397DB839>I<000003FF00000000001FFFE000000000FE01FC00000001F8007E000000+07E0001F8000000FC0000FC000003F800007F000007F000003F80000FE000001FC0001FC+000000FE0001FC000000FE0003F80000007F0007F80000007F8007F00000003F800FF000+00003FC00FE00000001FC01FE00000001FE01FE00000001FE03FC00000000FF03FC00000+000FF03FC00000000FF07FC00000000FF87FC00000000FF87F8000000007F87F80000000+07F8FF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007+FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FCFF8000000007FC+FF8000000007FCFF8000000007FC7F8000000007F87F8000000007F87FC00000000FF87F+C00000000FF83FC00000000FF03FC00000000FF01FE00000001FE01FE00000001FE01FE0+0000001FE00FF00000003FC007F0007C003F8007F001FF003F8003F80383807F0001FC07+01C0FE0001FC0E00C0FE0000FE0C00E1FC00007F0C0063F800003F8C0077F000001FCC00+3FE0000007EE003F80000003FF007F00000000FF81FC000C00001FFFFC000C000003FF1C+000C000000001E001C000000001F001C000000001F003C000000001F807C000000001FC0+F8000000000FFFF8000000000FFFF8000000000FFFF8000000000FFFF00000000007FFF0+0000000007FFE00000000003FFC00000000001FF8000000000007E00364B7BBA41>I<FF+FFFFFE00000000FFFFFFFFE0000000FFFFFFFFF800000001FF8007FE00000000FF0000FF+80000000FF00003FC0000000FF00001FE0000000FF00000FF0000000FF000007F8000000+FF000007F8000000FF000003FC000000FF000003FC000000FF000003FE000000FF000003+FE000000FF000003FE000000FF000003FE000000FF000003FE000000FF000003FE000000+FF000003FC000000FF000003FC000000FF000007F8000000FF000007F8000000FF00000F+F0000000FF00001FE0000000FF00003F80000000FF0000FF00000000FF0007FC00000000+FFFFFFE000000000FFFFFFC000000000FF000FF000000000FF0003F800000000FF0000FE+00000000FF0000FF00000000FF00007F80000000FF00003FC0000000FF00003FC0000000+FF00001FC0000000FF00001FE0000000FF00001FE0000000FF00001FE0000000FF00001F+E0000000FF00001FE0000000FF00001FF0000000FF00001FF0000000FF00001FF0000000+FF00001FF0000000FF00001FF0000000FF00001FF0000000FF00001FF0018000FF00001F+F0018000FF00001FF8018000FF00000FF8018000FF00000FF8038001FF800007F80300FF+FFFF0003FC0700FFFFFF0001FC0600FFFFFF0000FE0E0000000000003FFC000000000000+07F000393B7DB83D>I<000FF800C0003FFE01C000FFFF81C003F807E3C007E000F7C00F+C0007FC01F80003FC03F00001FC03E00000FC07E000007C07E000007C07C000003C0FC00+0003C0FC000001C0FC000001C0FC000001C0FE000000C0FE000000C0FE000000C0FF0000+00C0FF800000007FC00000007FE00000007FF80000003FFF8000001FFFF800001FFFFF80+000FFFFFE00007FFFFF80003FFFFFE0000FFFFFF00003FFFFF800007FFFFC000007FFFC0+000007FFE00000007FE00000003FF00000001FF00000000FF000000007F800000007F8C0+000003F8C0000003F8C0000001F8C0000001F8C0000001F8E0000001F8E0000001F8E000+0001F0F0000001F0F0000003F0F8000003E0FC000007E0FE000007C0FF00000FC0FF8000+1F80FBF0003F00F0FE00FE00E03FFFF800E00FFFE000C001FF0000253D7CBA2E>I<3FFF+FFFFFFFFE03FFFFFFFFFFFE03FFFFFFFFFFFE03FC003FF001FE03E0001FE0003E07C0001+FE0001F0780001FE0000F0700001FE000070700001FE000070700001FE000070600001FE+000030600001FE000030600001FE000030600001FE000030E00001FE000038C00001FE00+0018C00001FE000018C00001FE000018C00001FE000018000001FE000000000001FE0000+00000001FE000000000001FE000000000001FE000000000001FE000000000001FE000000+000001FE000000000001FE000000000001FE000000000001FE000000000001FE00000000+0001FE000000000001FE000000000001FE000000000001FE000000000001FE0000000000+01FE000000000001FE000000000001FE000000000001FE000000000001FE000000000001+FE000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE+000000000001FE000000000001FE000000000001FE000000000001FE000000000001FE00+0000000001FE000000000007FF800000001FFFFFFFE000001FFFFFFFE000001FFFFFFFE0+0035397DB83C>I<FFFFFF0007FFFEFFFFFF0007FFFEFFFFFF0007FFFE01FF8000007FE0+00FF0000001F8000FF0000000F0000FF000000060000FF000000060000FF000000060000+FF000000060000FF000000060000FF000000060000FF000000060000FF000000060000FF+000000060000FF000000060000FF000000060000FF000000060000FF000000060000FF00+0000060000FF000000060000FF000000060000FF000000060000FF000000060000FF0000+00060000FF000000060000FF000000060000FF000000060000FF000000060000FF000000+060000FF000000060000FF000000060000FF000000060000FF000000060000FF00000006+0000FF000000060000FF000000060000FF000000060000FF000000060000FF0000000600+00FF000000060000FF000000060000FF0000000E00007F0000000C00007F8000000C0000+7F8000001C00003F8000001C00003F8000001800001FC000003800001FC000007000000F+E00000F0000007F00000E0000003F80001C0000001FC000780000000FE000F000000007F+807E000000001FFFF80000000007FFE000000000007F800000373B7DB83E>I<FFFFFC00+007FFF80FFFFFC00007FFF80FFFFFC00007FFF8003FF8000000FFC0001FF00000007E000+01FF00000003C00000FF00000001800000FF800000038000007F800000030000007F8000+00030000007FC00000030000003FC00000060000003FC00000060000003FE000000E0000+001FE000000C0000001FF000000C0000000FF00000180000000FF00000180000000FF800+001800000007F800003000000007F800003000000007FC00007000000003FC0000600000+0003FC00006000000001FE0000C000000001FE0000C000000001FF0000C000000000FF00+018000000000FF00018000000000FF800380000000007F800300000000007F8003000000+00003FC00600000000003FC00600000000003FE00600000000001FE00C00000000001FE0+0C00000000001FF01C00000000000FF01800000000000FF018000000000007F830000000+000007F830000000000007FC30000000000003FC60000000000003FC60000000000003FE+E0000000000001FEC0000000000001FEC0000000000000FF80000000000000FF80000000+000000FF800000000000007F000000000000007F000000000000007F000000000000003E+000000000000003E000000000000001C000000000000001C000000000000001C00000000+393B7EB83E>I<FFFFFC07FFFFF001FFFFFFFFFC07FFFFF001FFFFFFFFFC07FFFFF001FF+FF07FF80001FFE00001FF803FE00000FF8000007E001FE000007F8000003C001FE000007+F80000038001FF000007F80000038000FF000003FC0000030000FF000003FC0000030000+FF800003FC00000700007F800001FE00000600007F800001FE00000600007FC00001FE00+000600003FC00003FF00000C00003FC00003FF00000C00003FE00003FF00000C00001FE0+0007FF80001800001FE000067F80001800001FE000067F80001800000FF0000E7FC00030+00000FF0000C3FC0003000000FF0000C3FC00030000007F8001C3FE00060000007F80018+1FE00060000007F800181FE00060000003FC00181FF000C0000003FC00300FF000C00000+03FC00300FF000C0000001FE00300FF80180000001FE006007F80180000001FE006007F8+0180000000FF006007F80300000000FF00C003FC0300000000FF00C003FC0300000000FF+80C003FC07000000007F818001FE06000000007F818001FE06000000007FC18001FE0E00+0000003FC30000FF0C000000003FC30000FF0C000000003FE30000FF1C000000001FE600+007F98000000001FE600007F98000000001FF600007F98000000000FFC00003FF0000000+000FFC00003FF0000000000FFC00003FF00000000007FC00003FE00000000007F800001F+E00000000007F800001FE00000000003F800001FC00000000003F000000FC00000000003+F000000FC00000000001F000000F800000000001E0000007800000000001E00000078000+00000000E0000007000000000000C0000003000000503B7EB855>I<7FFFFF003FFFFC00+7FFFFF003FFFFC007FFFFF003FFFFC0000FFF80007FF8000007FE00003FC0000003FE000+01F00000001FF00001E00000001FF00001C00000000FF800018000000007FC0003800000+0007FC00070000000003FE00060000000003FE000E0000000001FF001C0000000000FF80+180000000000FF803800000000007FC03000000000003FE06000000000003FE0E0000000+00001FF0C000000000000FF18000000000000FFB80000000000007FF00000000000007FE+00000000000003FE00000000000001FF00000000000001FF00000000000000FF80000000+0000007FC00000000000007FC0000000000000FFE0000000000000DFE00000000000019F+F00000000000038FF80000000000030FF800000000000607FC00000000000E03FE000000+00000C03FE00000000001801FF00000000003800FF00000000003000FF80000000006000+7FC000000000E0007FC000000000C0003FE00000000180001FF00000000380001FF00000+000300000FF800000006000007FC0000000E000007FC0000000C000003FE0000001C0000+01FE0000003C000001FF000000FE000001FF800007FF800007FFE000FFFFE0003FFFFF80+FFFFE0003FFFFF80FFFFE0003FFFFF8039397EB83E>I<FFFFFE00003FFFE0FFFFFE0000+3FFFE0FFFFFE00003FFFE003FFE0000007FE0000FFC0000003F000007FC0000001E00000+7FC0000001C000003FE00000018000001FF00000038000001FF00000030000000FF80000+060000000FF800000600000007FC00000C00000003FE00001C00000003FE000018000000+01FF00003800000001FF00003000000000FF800060000000007FC000E0000000007FC000+C0000000003FE001C0000000003FE00180000000001FF00380000000000FF80300000000+000FF806000000000007FC0E000000000007FC0C000000000003FE1C000000000001FF18+000000000001FF30000000000000FFB0000000000000FFE00000000000007FE000000000+00003FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC0+0000000000003FC00000000000003FC00000000000003FC00000000000003FC000000000+00003FC00000000000003FC00000000000003FC00000000000003FC00000000000003FC0+0000000000003FC00000000000003FC00000000000003FC00000000000003FC000000000+00003FC00000000000003FC00000000000007FE000000000003FFFFFC0000000003FFFFF+C0000000003FFFFFC000003B397FB83E>I<FFF8FFF8FFF8FFF8F000F000F000F000F000+F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000+F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000+F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000+F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000FFF8FFF8+FFF8FFF80D5378BD17>91 D<0180018003800380070007000E000E001C001C0018001800+3800380030003000700070006000600060006000E000E000C000C000C000C000C000C000+C000C000CE00CE00FF80FF80FFC0FFC0FFC0FFC0FFC0FFC07FC07FC07FC07FC03F803F80+0E000E001A1974B92A>I<FFF8FFF8FFF8FFF80078007800780078007800780078007800+780078007800780078007800780078007800780078007800780078007800780078007800+780078007800780078007800780078007800780078007800780078007800780078007800+780078007800780078007800780078007800780078007800780078007800780078007800+78007800780078007800780078007800780078007800780078FFF8FFF8FFF8FFF80D537F+BD17>I<0180038007000E001C00180038003000700060006000E000C000C000C000C000+CE00FF80FFC0FFC0FFC07FC07FC03F800E000A197AB917>96 D<001FE0000000FFFC0000+03E03F000007000F80000F8007E0001FC003F0001FE003F0001FE001F8001FE001F8001F+E000FC000FC000FC00078000FC00000000FC00000000FC00000000FC00000000FC000000+7FFC000007FFFC00003FE0FC0000FE00FC0003F800FC000FF000FC001FC000FC003FC000+FC007F8000FC007F0000FC007F0000FC0CFE0000FC0CFE0000FC0CFE0000FC0CFE0001FC+0CFE0001FC0CFF0003FC0C7F00077C0C7F80063E183FC01E3E180FE0781FF003FFF00FE0+007F8007C026277DA52A>I<03F0000000FFF0000000FFF0000000FFF00000000FF00000+0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000+03F000000003F000000003F000000003F000000003F000000003F000000003F000000003+F000000003F000000003F01FE00003F07FF80003F1E03E0003F3801F8003F7000FC003FE+0007E003FC0003F003F80001F803F00001F803F00000FC03F00000FC03F00000FE03F000+00FE03F000007E03F000007F03F000007F03F000007F03F000007F03F000007F03F00000+7F03F000007F03F000007F03F000007F03F000007F03F000007E03F00000FE03F00000FE+03F00000FC03F00001FC03F80001F803F80003F003FC0003F003EE0007E003C6000FC003+C7801F000381E07E000300FFF80000001FC000283B7EB92E>I<0003FC00001FFF80007E+03E001F8007003F000F807E001FC0FC003FC0FC003FC1F8003FC3F8003FC3F0001F87F00+00F07F0000007F0000007E000000FE000000FE000000FE000000FE000000FE000000FE00+0000FE000000FE000000FE000000FE0000007E0000007F0000007F0000003F0000063F80+00061F80000E1FC0000C0FC0001C07E0003803F0007001F800E0007C07C0001FFF000007+F8001F277DA525>I<0000000FC0000003FFC0000003FFC0000003FFC00000003FC00000+000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000000+0FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000F+C00000000FC00003F80FC0001FFF0FC0007E078FC000F801EFC003F0007FC007E0003FC0+0FC0001FC00FC0001FC01F80000FC03F80000FC03F00000FC07F00000FC07F00000FC07E+00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00+000FC0FE00000FC0FE00000FC0FE00000FC07E00000FC07F00000FC07F00000FC03F0000+0FC03F00000FC01F80001FC01F80001FC00FC0003FC007E0007FC003F000EFF001F801CF+FF007C078FFF001FFE0FFF0007F80FC0283B7DB92E>I<0007F800001FFF00007C0FC001+F803E003F001F007E001F80FC000F81F80007C1F80007C3F00007E3F00003E7F00003E7F+00003F7E00003FFE00003FFE00003FFE00003FFFFFFFFFFFFFFFFFFE000000FE000000FE+000000FE000000FE0000007E0000007E0000007F0000007F0000003F0000033F8000031F+8000070FC0000607C0000E07E0001C01F0003800F80070007E03E0001FFF800003FC0020+277EA525>I<00007E000003FF80000FC1E0001F87E0003F0FF0007E0FF0007E0FF000FC+0FF000FC0FF001F803C001F8000001F8000001F8000001F8000001F8000001F8000001F8+000001F8000001F8000001F8000001F8000001F8000001F80000FFFFFC00FFFFFC00FFFF+FC0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8+000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8+000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8+000001F8000001F8000003FC00007FFFF8007FFFF8007FFFF8001C3B7FBA19>I<000000+03F0000FF00FF8003FFC3C3C00F81F707C01F00FE07C03E007C07C07C003E0100FC003F0+000FC003F0001F8001F8001F8001F8001F8001F8001F8001F8001F8001F8001F8001F800+1F8001F8001F8001F8000FC003F0000FC003F00007C003E00003E007C00003F00F800003+F81F0000073FFC0000060FF000000E000000000E000000000E000000000E000000000F00+0000000F000000000FC000000007FFFFC00007FFFFF80003FFFFFE0001FFFFFF8003FFFF+FFC00F80007FE01F00000FF03E000003F07C000001F07C000001F8F8000000F8F8000000+F8F8000000F8F8000000F8F8000000F8FC000001F87C000001F03E000003E03F000007E0+0F80000F8007E0003F0001FC01FC00007FFFF0000007FF000026387EA52A>I<03F00000+0000FFF000000000FFF000000000FFF0000000000FF00000000003F00000000003F00000+000003F00000000003F00000000003F00000000003F00000000003F00000000003F00000+000003F00000000003F00000000003F00000000003F00000000003F00000000003F00000+000003F00000000003F00000000003F00FF0000003F03FFC000003F0F03F000003F1C01F+800003F3800FC00003F7000FC00003FE000FC00003FC0007E00003FC0007E00003F80007+E00003F80007E00003F80007E00003F00007E00003F00007E00003F00007E00003F00007+E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007+E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007+E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00007F8000F+F000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF80293A7EB92E>I<0380000FE0001FF000+1FF0001FF0001FF0001FF0000FE000038000000000000000000000000000000000000000+00000000000000000000000003F000FFF000FFF000FFF00007F00003F00003F00003F000+03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000+03F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F000+03F00007F800FFFFC0FFFFC0FFFFC012387EB717>I<0001C00007F0000FF8000FF8000F+F8000FF8000FF80007F00001C00000000000000000000000000000000000000000000000+000000000000000001F800FFF800FFF800FFF80007F80001F80001F80001F80001F80001+F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001+F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001+F80001F80001F80001F80001F80001F80001F80001F80001F80001F83C01F87E01F8FF01+F0FF03F0FF03F0FF03E0FE07C07C07C03C0F000FFE0003F800154984B719>I<03F00000+00FFF0000000FFF0000000FFF00000000FF000000003F000000003F000000003F0000000+03F000000003F000000003F000000003F000000003F000000003F000000003F000000003+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0+01FFFC03F001FFFC03F001FFFC03F0007FC003F0007F0003F0007C0003F000700003F000+E00003F001C00003F003800003F007000003F01E000003F038000003F078000003F0FC00+0003F1FC000003F3FE000003F73F000003FE3F800003F81F800003F00FC00003F00FE000+03F007E00003F003F00003F001F80003F001FC0003F000FC0003F0007E0003F0007F0003+F0003F0003F0003F8003F0001FC007F8003FF0FFFFC0FFFFFFFFC0FFFFFFFFC0FFFF283A+7EB92C>I<03F000FFF000FFF000FFF0000FF00003F00003F00003F00003F00003F00003+F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003+F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003+F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003+F00003F00003F00003F00003F00003F00003F00003F00007F800FFFFC0FFFFC0FFFFC012+3A7EB917>I<03F00FF0001FE000FFF03FFC007FF800FFF0F03F01E07E00FFF1C01F8380+3F000FF3800FC7001F8003F7000FCE001F8003FE000FDC001F8003FC0007F8000FC003FC+0007F8000FC003F80007F0000FC003F80007F0000FC003F80007F0000FC003F00007E000+0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0+0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000+0FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F0+0007E0000FC003F00007E0000FC003F00007E0000FC003F00007E0000FC003F00007E000+0FC003F00007E0000FC003F00007E0000FC007F8000FF0001FE0FFFFC1FFFF83FFFFFFFF+C1FFFF83FFFFFFFFC1FFFF83FFFF40257EA445>I<03F00FF00000FFF03FFC0000FFF0F0+3F0000FFF1C01F80000FF3800FC00003F7000FC00003FE000FC00003FC0007E00003FC00+07E00003F80007E00003F80007E00003F80007E00003F00007E00003F00007E00003F000+07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F000+07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F000+07E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F000+07E00007F8000FF000FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029257EA42E>I<0003+FE0000000FFF8000003E03E00000F800F80001F0007C0003E0003E0007C0001F000F8000+0F801F80000FC01F000007C03F000007E03F000007E07E000003F07E000003F07E000003+F07E000003F0FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8FE000003F8+FE000003F8FE000003F8FE000003F87E000003F07E000003F07F000007F03F000007E03F+000007E01F80000FC00F80000F800FC0001F8007E0003F0003F0007E0000F800F800007E+03F000001FFFC0000003FE000025277EA52A>I<03F01FE000FFF07FF800FFF1E07E00FF+F3801F8007F7000FC003FE0007E003FC0003F003F80003F803F00001F803F00001FC03F0+0000FC03F00000FE03F00000FE03F00000FE03F000007F03F000007F03F000007F03F000+007F03F000007F03F000007F03F000007F03F000007F03F000007F03F000007F03F00000+FE03F00000FE03F00000FE03F00001FC03F00001FC03F80003F803F80003F003FC0007F0+03FE000FE003F6000FC003F7803F0003F1E07E0003F0FFF80003F01FC00003F000000003+F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0+00000003F000000003F000000007F8000000FFFFC00000FFFFC00000FFFFC0000028357E+A42E>I<0003F800C0001FFE01C0007E0781C000FC01C3C003F000E3C007F00077C00FE0+0037C00FC0003FC01FC0001FC03F80001FC03F80000FC07F00000FC07F00000FC07F0000+0FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000FC0FE00000F+C0FE00000FC0FE00000FC0FE00000FC07F00000FC07F00000FC07F00000FC03F00000FC0+3F80001FC01F80001FC01FC0003FC00FC0003FC007E0007FC003F000EFC001F801CFC000+7E078FC0001FFE0FC00007F80FC00000000FC00000000FC00000000FC00000000FC00000+000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000000+1FE0000003FFFF000003FFFF000003FFFF28357DA42C>I<07E01F00FFE07FC0FFE1E3E0+FFE387F00FE707F003E607F003EE07F003EC03E003FC008003F8000003F8000003F80000+03F8000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000+03F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00000+03F0000003F0000003F0000007F80000FFFFF000FFFFF000FFFFF0001C257EA421>I<00+FF030003FFE7000F80FF001E003F003C001F0078000F0070000700F0000700F0000700F0+000300F8000300F8000300FC000300FF0000007FE000007FFF00003FFFE0001FFFF8000F+FFFC0003FFFE0000FFFF000007FF8000007F8000001F80C0000FC0C00007C0C00007C0E0+0003C0E00003C0E00003C0F00003C0F0000380F8000780FC000780FC000F00FF001E00F3+C07C00E1FFF000C03F80001A277DA521>I<001800000018000000180000001800000018+000000380000003800000038000000780000007800000078000000F8000001F8000003F8+000007F800001FFFFF00FFFFFF00FFFFFF0001F8000001F8000001F8000001F8000001F8+000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8+000001F8000001F8000001F8000001F8000001F800C001F800C001F800C001F800C001F8+00C001F800C001F800C001F800C001F800C000FC01C000FC0180007C0380007E0300003F+0700000FFE000001F8001A347FB220>I<03F00007E000FFF001FFE000FFF001FFE000FF+F001FFE0000FF0001FE00003F00007E00003F00007E00003F00007E00003F00007E00003+F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003+F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003+F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003F00007E00003+F0000FE00003F0000FE00003F0000FE00003F0001FE00001F0001FE00001F8003FE00000+F80077F80000FC00E7FF80003F03C7FF80001FFF87FF800003FC07E00029267EA42E>I<+FFFF803FFEFFFF803FFEFFFF803FFE0FF8000FF007F00007E003F00003C003F800038001+F800030001F800030000FC00060000FC00060000FE000E00007E000C00007E000C00003F+001800003F001800003F803800001F803000001F803000000FC06000000FC06000000FE0+60000007E0C0000007E0C0000003F180000003F180000003F180000001FB00000001FB00+000001FF00000000FE00000000FE000000007C000000007C000000007C00000000380000+000038000027257EA32C>I<FFFF1FFFE03FFEFFFF1FFFE03FFEFFFF1FFFE03FFE0FF800+FF000FF807F0007E0003E007F0007E0003C003F0003E00018003F0003E00018001F8003F+00030001F8003F00030001F8003F00030000FC003F80060000FC006F80060000FC006F80+0600007E00EFC00C00007E00C7C00C00007E00C7C00C00003F01C7E01800003F0183E018+00003F8183F03800001F8383F03000001F8301F03000001FC301F87000000FC600F86000+000FC600F860000007E600FCC0000007EC007CC0000007EC007CC0000003FC007F800000+03F8003F80000003F8003F80000001F8003F00000001F0001F00000001F0001F00000000+F0001E00000000E0000E0000000060000C000037257EA33C>I<FFFF807FFF00FFFF807F+FF00FFFF807FFF0003FE003FF00001FE001F800000FE001F0000007E001C0000003F0018+0000001F80300000001FC0700000000FC0E000000007E0C000000007F18000000003FB80+00000001FF0000000000FE0000000000FE00000000007F00000000003F00000000007F80+000000007FC000000000CFC000000001C7E00000000383F00000000703F80000000601F8+0000000C00FC0000001C007E00000038007F00000078003F000000F0001F800001F8001F+C0000FF8003FF000FFFE00FFFF80FFFE00FFFF80FFFE00FFFF8029247FA32C>I<FFFF80+3FFEFFFF803FFEFFFF803FFE0FF8000FF007F00007C003F000038001F800038001F80003+0001FC00030000FC00060000FC000600007E000C00007E000C00007F000C00003F001800+003F001800001F803000001F803000001FC07000000FC06000000FC060000007E0C00000+07E0C0000007F1C0000003F180000003F180000001FB00000001FB00000001FF00000000+FE00000000FE000000007C000000007C000000007C000000003800000000380000000030+000000003000000000700000000060000000006000000000C000000000C000007C01C000+00FE01800000FE03800000FE03000000FE06000000FC0E000000701C0000003838000000+1FF00000000FC000000027357EA32C>I<3FFFFFFC3FFFFFFC3F8003FC3E0003F83C0007+F038000FE030000FE070001FC070003F8060007F8060007F006000FE006001FC006001FC+000003F8000007F0000007F000000FE000001FC000003F8000003F8000007F000600FE00+0600FE000601FC000603F8000607F8000E07F0000E0FE0000C1FC0001C1FC0001C3F8000+3C7F00007CFF0003FCFFFFFFFCFFFFFFFC1F247EA325>I<FFFFFFFFFF80FFFFFFFFFF80+290280962A>I E /Fr 49 124 df<000003FFC00000007FFFF0000003FFFFFC00000FFF+00FE00003FF8003F00007FE000FF8000FFC001FF8001FFC001FF8001FF8001FF8003FF80+03FFC003FF0001FF8003FF0001FF8003FF0001FF8003FF0000FF0003FF00007E0003FF00+00000003FF0000000003FF0000000003FF0000000003FF0000000003FF003FFFC0FFFFFF+FFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC003FF0000FFC003FF0000FFC003FF00+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00+00FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC+3FFFFF303A7EB935>12 D<0001FF0000000FFFE000007FFFFC0000FF83FE0001FE00FF00+03FC007F8007F8003FC00FF0001FE00FF0001FE01FF0001FF01FF0001FF03FE0000FF83F+E0000FF83FE0000FF87FE0000FFC7FE0000FFC7FE0000FFC7FE0000FFC7FE0000FFCFFE0+000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE000+0FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000F+FEFFE0000FFEFFE0000FFEFFE0000FFEFFE0000FFE7FE0000FFC7FE0000FFC7FE0000FFC+7FE0000FFC3FE0000FF83FE0000FF83FF0001FF81FF0001FF01FF0001FF00FF0001FE00F+F8003FE007F8003FC003FC007F8001FE00FF0000FF83FE00007FFFFC00001FFFF0000001+FF000027387CB630>48 D<00001E000000003E00000000FE00000007FE0000003FFE0000+FFFFFE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE000000+0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F+FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE+0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00+00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000+000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000+0FFE0000000FFE0000000FFE00007FFFFFFF807FFFFFFF807FFFFFFF807FFFFFFF802137+79B630>I<000FFC0000007FFFC00001FFFFF00007FFFFFC000FF03FFF001F800FFF803F+0003FFC07F0003FFC07FC001FFE0FFE000FFF0FFF000FFF0FFF000FFF0FFF0007FF8FFF0+007FF8FFF0007FF8FFF0007FF87FE0007FF83FC0007FF80F00007FF80000007FF8000000+FFF0000000FFF0000000FFE0000001FFE0000001FFC0000003FF80000003FF00000007FE+00000007FC0000000FF80000001FF00000003FE00000007F800000007F00000000FE0000+0001F800000003F000780007E00078000FC00078001F800078003E0000F8007C0000F000+F80000F001F00001F003FFFFFFF003FFFFFFF007FFFFFFF00FFFFFFFF01FFFFFFFF03FFF+FFFFF07FFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE025377BB630>I<00+03FF0000001FFFF000007FFFFC0001FC07FF0003F003FF8007E001FFC007C000FFE00FF0+00FFE00FFC00FFF01FFC00FFF01FFE00FFF01FFE00FFF01FFE00FFF01FFE00FFF01FFE00+FFF00FFC00FFE00FFC00FFE003F001FFE0000001FFC0000003FF80000003FF00000007FE+0000000FFC0000003FF000000FFFC000000FFF0000000FFFF000000007FE00000001FF80+000000FFC0000000FFE00000007FF00000007FF80000007FFC0000003FFC0000003FFC00+00003FFE1FC0003FFE3FE0003FFE7FF0003FFEFFF8003FFEFFF8003FFEFFF8003FFEFFF8+003FFEFFF8003FFCFFF8003FFCFFF0007FF87FF0007FF87FC000FFF03F8000FFE01FC001+FFC00FFC07FF8007FFFFFF0001FFFFFC00007FFFF0000007FF000027387CB630>I<0000+0007C0000000000FC0000000000FC0000000001FC0000000003FC0000000007FC0000000+00FFC000000000FFC000000001FFC000000003FFC000000007FFC00000000FFFC0000000+0FFFC00000001EFFC00000003CFFC00000007CFFC0000000F8FFC0000000F0FFC0000001+E0FFC0000003C0FFC0000007C0FFC000000F80FFC000000F00FFC000001E00FFC000003C+00FFC000007C00FFC00000F800FFC00000F000FFC00001E000FFC00003C000FFC00007C0+00FFC0000F8000FFC0000F0000FFC0001E0000FFC0003C0000FFC0007C0000FFC000F800+00FFC000FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80FFFFFFFFFF80000001FFC0000000+01FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000000+01FFC000000001FFC000000001FFC0000003FFFFFF800003FFFFFF800003FFFFFF800003+FFFFFF8029377DB630>I<1C000000C01F800007C01FF8007FC01FFFFFFF801FFFFFFF80+1FFFFFFF001FFFFFFE001FFFFFFC001FFFFFF0001FFFFFE0001FFFFF80001FFFFE00001F+FFF000001F000000001F000000001F000000001F000000001F000000001F000000001F00+0000001F000000001F07FE00001F3FFFE0001FFFFFF8001FFC07FC001FE003FF001F8001+FF801F0000FFC00E0000FFC0000000FFE00000007FE00000007FF00000007FF00000007F+F80000007FF80600007FF83F80007FF87FE0007FF8FFE0007FF8FFF0007FF8FFF0007FF8+FFF0007FF8FFF0007FF8FFE0007FF0FFE0007FF07FC000FFF07F0000FFE07C0000FFC03E+0001FFC01F0003FF801FC007FF000FF01FFE0007FFFFF80001FFFFE000007FFF8000000F+F8000025387BB630>I<00000FF8000000FFFE000003FFFF80000FF80FC0003FE003E000+7FC001F000FF000FF001FF001FF803FE003FF807FC003FF80FFC003FF80FF8003FF81FF8+003FF81FF8003FF83FF8001FF03FF8000FE03FF00000007FF00000007FF00000007FF008+00007FF07FF000FFF1FFFC00FFF3FFFF00FFF780FF80FFFF007FC0FFFE003FE0FFFC003F+F0FFFC001FF8FFF8001FF8FFF8001FFCFFF8001FFCFFF8001FFCFFF0001FFEFFF0001FFE+FFF0001FFEFFF0001FFEFFF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE7F+F0001FFE3FF0001FFE3FF0001FFC3FF0001FFC1FF8001FFC1FF8001FF80FF8003FF807FC+003FF007FC007FE003FE007FC001FF81FF8000FFFFFF00003FFFFC00000FFFF0000001FF+800027387CB630>I<3C00000000003E00000000003FE0000000003FFFFFFFFF803FFFFF+FFFF803FFFFFFFFF803FFFFFFFFF803FFFFFFFFF007FFFFFFFFE007FFFFFFFFC007FFFFF+FFF8007FFFFFFFF0007FFFFFFFF0007FFFFFFFE0007C00000FC0007800001F8000780000+3F0000F800007E0000F000007C0000F00000FC0000F00001F80000F00003F00000000007+E00000000007C0000000000FC0000000001F80000000003F80000000003F00000000007F+00000000007E0000000000FE0000000001FE0000000001FE0000000003FC0000000003FC+0000000003FC0000000007FC0000000007FC000000000FFC000000000FF8000000000FF8+000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000003FF8+000000003FF8000000003FF8000000003FF8000000003FF8000000003FF8000000003FF8+000000003FF8000000003FF8000000001FF0000000000FE00000000007C0000000293A7B+B830>I<0001FF8000000FFFF000003FFFFC0000FE01FF0001F8007F8003F0003FC007E0+001FE007E0000FE00FC0000FE00FC00007F01FC00007F01FC00007F01FE00007F01FE000+07F01FF00007F01FF80007F01FFE000FE01FFF800FE01FFFE01FC00FFFF03FC00FFFFC3F+800FFFFF7F0007FFFFFC0003FFFFF80001FFFFF80000FFFFFE00007FFFFF00003FFFFFC0+007FFFFFE001FFFFFFF007F8FFFFF00FF07FFFF81FE01FFFFC3FC007FFFC3F8001FFFC7F+8000FFFE7F00003FFEFF00000FFEFE000007FEFE000003FEFE000001FEFE000001FEFE00+0000FEFE000000FEFE000000FCFF000000FC7F000001FC7F800001F83FC00003F03FE000+07F01FF0000FE00FFE007FC003FFFFFF0000FFFFFC00003FFFF0000003FF800027387CB6+30>I<0003FF0000001FFFE000007FFFF80001FF03FE0003FE00FF0007FC007F800FF800+7FC01FF8003FE03FF8003FE03FF0001FF07FF0001FF07FF0001FF87FF0001FF8FFF0001F+F8FFF0001FFCFFF0001FFCFFF0001FFCFFF0001FFCFFF0001FFCFFF0001FFEFFF0001FFE+FFF0001FFEFFF0001FFEFFF0001FFE7FF0003FFE7FF0003FFE7FF0003FFE3FF0003FFE3F+F0007FFE1FF8007FFE0FF800FFFE07FC01FFFE03FE03DFFE01FFFF9FFE007FFF1FFE001F+FC1FFC0000201FFC0000001FFC0000001FFC0000001FF80FE0003FF81FF0003FF83FF800+3FF03FF8003FF03FF8003FE03FF8007FE03FF8007FC03FF800FF803FF001FF801FE003FF+001F8007FE000FE01FF80007FFFFF00003FFFFC00000FFFF0000001FF0000027387CB630+>I<00000003E00000000000000007F00000000000000007F0000000000000000FF80000+00000000000FF8000000000000000FF8000000000000001FFC000000000000001FFC0000+00000000003FFE000000000000003FFE000000000000003FFE000000000000007FFF0000+00000000007FFF00000000000000FFFF80000000000000FFFF80000000000000FFFF8000+0000000001FFFFC0000000000001F3FFC0000000000003F3FFE0000000000003E1FFE000+0000000003E1FFE0000000000007E1FFF0000000000007C0FFF000000000000FC0FFF800+000000000F807FF800000000000F807FF800000000001F807FFC00000000001F003FFC00+000000003F003FFE00000000003E001FFE00000000003E001FFE00000000007E001FFF00+000000007C000FFF0000000000FC000FFF8000000000F80007FF8000000000F80007FF80+00000001F80007FFC000000001F00003FFC000000003FFFFFFFFE000000003FFFFFFFFE0+00000003FFFFFFFFE000000007FFFFFFFFF000000007C00000FFF00000000FC00000FFF8+0000000F8000007FF80000000F8000007FF80000001F8000007FFC0000001F0000003FFC+0000003F0000003FFE0000003E0000001FFE0000003E0000001FFE0000007E0000001FFF+0000007C0000000FFF000000FE0000000FFF8000FFFFF80007FFFFFF80FFFFF80007FFFF+FF80FFFFF80007FFFFFF80FFFFF80007FFFFFF80413A7DB948>65+D<FFFFFFFFFFC00000FFFFFFFFFFFC0000FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF0+0003FFE000007FF00000FFF000007FF000007FF800007FF000003FFC00007FF000001FFC+00007FF000001FFE00007FF000001FFE00007FF000000FFF00007FF000000FFF00007FF0+00000FFF00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF000000FFF+00007FF000001FFE00007FF000001FFE00007FF000001FFC00007FF000003FFC00007FF0+00007FF800007FF00000FFF000007FF00001FFC000007FF0000FFF8000007FFFFFFFFC00+00007FFFFFFFFC0000007FFFFFFFFF8000007FF00000FFF000007FF000003FF800007FF0+00001FFC00007FF000000FFE00007FF0000007FF00007FF0000007FF80007FF0000003FF+C0007FF0000003FFC0007FF0000003FFC0007FF0000003FFE0007FF0000003FFE0007FF0+000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FF+E0007FF0000003FFC0007FF0000003FFC0007FF0000007FFC0007FF000000FFF80007FF0+00000FFF00007FF000001FFF00007FF000007FFE00007FF00001FFFC00FFFFFFFFFFFFF0+00FFFFFFFFFFFFC000FFFFFFFFFFFF0000FFFFFFFFFFF000003B397DB844>I<0000003F+FC0001C0000003FFFFC003C000001FFFFFF007C00000FFFFFFFC0FC00003FFFC00FF3FC0+0007FFC0001FFFC0001FFE00000FFFC0003FFC000003FFC0007FF0000001FFC000FFE000+0000FFC001FFC0000000FFC003FFC00000007FC007FF800000003FC00FFF000000003FC0+0FFF000000001FC01FFE000000001FC01FFE000000000FC03FFE000000000FC03FFC0000+00000FC03FFC0000000007C07FFC0000000007C07FFC0000000007C07FF8000000000000+FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000+00000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000+FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000007FF80000+000000007FFC0000000000007FFC0000000003C03FFC0000000003C03FFC0000000003C0+3FFE0000000003C01FFE0000000007C01FFE0000000007C00FFF0000000007800FFF0000+00000F8007FF800000000F0003FFC00000001F0001FFC00000003E0000FFE00000007E00+007FF8000000FC00003FFC000001F800001FFF000003F0000007FFC0000FE0000003FFFC+00FF80000000FFFFFFFE000000001FFFFFF80000000003FFFFE000000000003FFE000000+3A3B7BB945>I<0000003FFC0001C000000003FFFFC003C00000001FFFFFF007C0000000+FFFFFFFC0FC0000003FFFC00FF3FC0000007FFC0001FFFC000001FFE00000FFFC000003F+FC000003FFC000007FF0000001FFC00000FFE0000000FFC00001FFC0000000FFC00003FF+C00000007FC00007FF800000003FC0000FFF000000003FC0000FFF000000001FC0001FFE+000000001FC0001FFE000000000FC0003FFE000000000FC0003FFC000000000FC0003FFC+0000000007C0007FFC0000000007C0007FFC0000000007C0007FF800000000000000FFF8+00000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8+00000000000000FFF800000000000000FFF800000000000000FFF800000000000000FFF8+00000000000000FFF800000000000000FFF800000000000000FFF800003FFFFFFF80FFF8+00003FFFFFFF807FF800003FFFFFFF807FFC00003FFFFFFF807FFC00000003FFC0003FFC+00000003FFC0003FFC00000003FFC0003FFE00000003FFC0001FFE00000003FFC0001FFE+00000003FFC0000FFF00000003FFC0000FFF00000003FFC00007FF80000003FFC00003FF+C0000003FFC00001FFE0000003FFC00000FFE0000003FFC000007FF8000007FFC000003F+FC000007FFC000001FFF00000FFFC0000007FFC0001FFFC0000003FFFC00FF3FC0000000+FFFFFFFE0FC00000001FFFFFF803C000000003FFFFE000C0000000003FFE00000000413B+7BB94B>71 D<FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC007FF800007FF800007FF800007F+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F+F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F+F800FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC1E397DB824>73 D<FFFFFFFF000000FFFFFF+FF000000FFFFFFFF000000FFFFFFFF000000007FF800000000007FF800000000007FF800+000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000+0000007FF800000000007FF800000000007FF800000000007FF800000000007FF8000000+00007FF800000000007FF800000000007FF800000000007FF800000000007FF800000000+007FF800000000007FF800000000007FF800000000007FF800000000007FF80000000000+7FF800000000007FF800000000007FF800000000007FF800000000007FF800000000007F+F800000000007FF800000000007FF800000780007FF800000780007FF800000780007FF8+00000780007FF800000780007FF800000F80007FF800000F00007FF800000F00007FF800+000F00007FF800001F00007FF800001F00007FF800003F00007FF800003F00007FF80000+7F00007FF80000FF00007FF80001FF00007FF80003FF00007FF8000FFE00007FF8007FFE+00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE0031397DB839>76+D<FFFFF80000000003FFFFF0FFFFFC0000000007FFFFF0FFFFFC0000000007FFFFF0FFFF+FE000000000FFFFFF0007FFE000000000FFFE000007FFE000000000FFFE000007BFF0000+00001EFFE000007BFF000000001EFFE0000079FF800000003CFFE0000079FF800000003C+FFE0000078FFC000000078FFE0000078FFC000000078FFE00000787FE0000000F0FFE000+00787FE0000000F0FFE00000787FE0000000F0FFE00000783FF0000001E0FFE00000783F+F0000001E0FFE00000781FF8000003C0FFE00000781FF8000003C0FFE00000780FFC0000+0780FFE00000780FFC00000780FFE000007807FE00000F00FFE000007807FE00000F00FF+E000007803FF00001E00FFE000007803FF00001E00FFE000007803FF00001E00FFE00000+7801FF80003C00FFE000007801FF80003C00FFE000007800FFC0007800FFE000007800FF+C0007800FFE0000078007FE000F000FFE0000078007FE000F000FFE0000078003FF001E0+00FFE0000078003FF001E000FFE0000078003FF001E000FFE0000078001FF803C000FFE0+000078001FF803C000FFE0000078000FFC078000FFE0000078000FFC078000FFE0000078+0007FE0F0000FFE00000780007FE0F0000FFE00000780003FF1E0000FFE00000780003FF+1E0000FFE00000780003FF1E0000FFE00000780001FFBC0000FFE00000780001FFBC0000+FFE00000780000FFF80000FFE00000780000FFF80000FFE000007800007FF00000FFE000+007800007FF00000FFE000007800003FE00000FFE000007800003FE00000FFE00000FC00+003FE00000FFE000FFFFFC001FC001FFFFFFF0FFFFFC001FC001FFFFFFF0FFFFFC000F80+01FFFFFFF0FFFFFC00070001FFFFFFF054397DB85B>I<000000FFF800000000000FFFFF+80000000007FFFFFF000000001FFE03FFC00000007FF0007FF0000001FFC0001FFC00000+3FF80000FFE000007FE000003FF00000FFC000001FF80001FFC000001FFC0003FF800000+0FFE0007FF00000007FF0007FF00000007FF000FFE00000003FF800FFE00000003FF801F+FE00000003FFC01FFC00000001FFC03FFC00000001FFE03FFC00000001FFE03FFC000000+01FFE07FFC00000001FFF07FF800000000FFF07FF800000000FFF07FF800000000FFF0FF+F800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF8000000+00FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FF+F800000000FFF8FFF800000000FFF8FFF800000000FFF87FF800000000FFF07FF8000000+00FFF07FF800000000FFF07FFC00000001FFF03FFC00000001FFE03FFC00000001FFE03F+FC00000001FFE01FFE00000003FFC01FFE00000003FFC00FFE001FC003FF8007FF007FF0+07FF0007FF00FFF807FF0003FF81F07C0FFE0001FFC3C01E1FFC0000FFC3800F1FF80000+7FE3800FBFF000003FF38007FFE000001FFF8007FFC0000007FFC007FF00000001FFF01F+FC000000007FFFFFF0000800000FFFFFF8001C000000FFF9FC001C0000000001FE003C00+00000001FF80FC0000000001FFFFFC0000000000FFFFFC0000000000FFFFF80000000000+FFFFF800000000007FFFF800000000007FFFF000000000007FFFF000000000003FFFE000+000000003FFFE000000000001FFFC000000000000FFF80000000000007FF000000000000+01FC003E4A7BB948>81 D<FFFFFFFFFC00000000FFFFFFFFFFE0000000FFFFFFFFFFFC00+0000FFFFFFFFFFFF000000007FF8000FFFC00000007FF80001FFE00000007FF80000FFF0+0000007FF800007FF80000007FF800003FFC0000007FF800003FFC0000007FF800001FFE+0000007FF800001FFE0000007FF800001FFF0000007FF800001FFF0000007FF800001FFF+0000007FF800001FFF0000007FF800001FFF0000007FF800001FFF0000007FF800001FFF+0000007FF800001FFE0000007FF800001FFE0000007FF800003FFC0000007FF800003FF8+0000007FF800007FF00000007FF80000FFE00000007FF80003FFC00000007FF8001FFF00+0000007FFFFFFFFC000000007FFFFFFFE0000000007FFFFFFFF0000000007FF8003FFC00+0000007FF8000FFF000000007FF80007FF800000007FF80003FFC00000007FF80001FFC0+0000007FF80001FFE00000007FF80001FFE00000007FF80000FFF00000007FF80000FFF0+0000007FF80000FFF00000007FF80000FFF00000007FF80000FFF00000007FF80000FFF8+0000007FF80000FFF80000007FF80000FFF80000007FF80000FFF80000007FF80000FFF8+0000007FF80000FFF80060007FF80000FFF800F0007FF80000FFFC00F0007FF800007FFC+00F0007FF800007FFC01F0007FF800003FFE01E0FFFFFFFC001FFE03E0FFFFFFFC000FFF+87C0FFFFFFFC0007FFFF80FFFFFFFC0001FFFF000000000000001FFC00443A7DB848>I<+0007FF000E00003FFFE01E0000FFFFF83E0003FFFFFE7E0007FC01FFFE000FF0001FFE00+1FE0000FFE003FC00003FE003F800001FE007F800000FE007F000000FE007F0000007E00+FF0000007E00FF0000003E00FF0000003E00FF8000003E00FF8000001E00FFC000001E00+FFE000001E00FFF000000000FFFC000000007FFFE00000007FFFFE0000007FFFFFF00000+3FFFFFFE00003FFFFFFF80001FFFFFFFC0000FFFFFFFF00007FFFFFFF80003FFFFFFFC00+00FFFFFFFE00003FFFFFFE00000FFFFFFF000001FFFFFF0000000FFFFF800000007FFF80+0000000FFFC000000003FFC000000001FFC000000000FFC0F00000007FC0F00000007FC0+F00000007FC0F00000003FC0F00000003FC0F80000003FC0F80000003F80FC0000003F80+FC0000007F80FE0000007F00FF0000007F00FF800000FE00FFE00001FC00FFF80003FC00+FFFF801FF800FCFFFFFFE000F83FFFFFC000F007FFFE0000E0007FF000002A3B7BB935>+I<3FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFFFF803FFFFFFFFFFFFF803FF800+FFF003FF807FC000FFF0007FC07F8000FFF0001FC07E0000FFF0000FC07E0000FFF0000F+C07C0000FFF00007C07C0000FFF00007C0780000FFF00003C0780000FFF00003C0780000+FFF00003C0780000FFF00003C0F80000FFF00003E0F00000FFF00001E0F00000FFF00001+E0F00000FFF00001E0F00000FFF00001E0000000FFF0000000000000FFF0000000000000+FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000+00000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000+FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000+00000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000+FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000+00000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000+FFF0000000000000FFF0000000000000FFF0000000000FFFFFFFFF0000000FFFFFFFFF00+00000FFFFFFFFF0000000FFFFFFFFF00003B387DB742>I<FFFFFFF00003FFFFE0FFFFFF+F00003FFFFE0FFFFFFF00003FFFFE0FFFFFFF00003FFFFE000FFF000000007F00000FFF8+00000007E000007FF800000007C000007FFC0000000FC000007FFC0000000FC000003FFC+0000000F8000003FFE0000001F8000001FFE0000001F0000001FFF0000003F0000000FFF+0000003E0000000FFF8000007E00000007FF8000007C00000007FF8000007C00000007FF+C00000FC00000003FFC00000F800000003FFE00001F800000001FFE00001F000000001FF+F00003F000000000FFF00003E000000000FFF80003E000000000FFF80007E0000000007F+F80007C0000000007FFC000FC0000000003FFC000F80000000003FFE001F80000000001F+FE001F00000000001FFF001F00000000001FFF003F00000000000FFF003E00000000000F+FF807E000000000007FF807C000000000007FFC0FC000000000003FFC0F8000000000003+FFE0F8000000000003FFE1F8000000000001FFE1F0000000000001FFF3F0000000000000+FFF3E0000000000000FFFFE00000000000007FFFC00000000000007FFFC0000000000000+7FFFC00000000000003FFF800000000000003FFF800000000000001FFF00000000000000+1FFF000000000000000FFE000000000000000FFE000000000000000FFE00000000000000+07FC0000000000000007FC0000000000000003F80000000000000003F800000000000000+01F000000000433A7EB848>86 D<003FFE00000003FFFFE000000FFFFFF800001FF00FFE+00003FF003FF00003FF801FF80003FF800FFC0003FF800FFC0003FF8007FE0003FF8007F+E0001FF0007FE0000FE0007FE0000380007FE0000000007FE0000000007FE00000003FFF+E000000FFFFFE000007FFFFFE00001FFF87FE00007FF807FE0000FFE007FE0003FF8007F+E0003FF0007FE0007FE0007FE000FFE0007FE000FFC0007FE000FFC0007FE000FFC0007F+E000FFC0007FE000FFC000FFE000FFE001FFE0007FE001FFE0003FF007FFF8001FFC1FBF+FFC00FFFFE1FFFC003FFF80FFFC0003FE003FFC02A257DA42E>97+D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF000000+0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000+0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000+0003FF0000000003FF0000000003FF0000000003FF01FF800003FF0FFFF00003FF3FFFFC+0003FFFE03FF0003FFF000FF8003FFE0007FC003FF80003FE003FF00003FF003FF00001F+F803FF00001FF803FF00001FFC03FF00000FFC03FF00000FFC03FF00000FFE03FF00000F+FE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000F+FE03FF00000FFE03FF00000FFE03FF00000FFC03FF00000FFC03FF00000FFC03FF00001F+F803FF00001FF803FF00001FF003FF80003FF003FFC0007FE003FFE0007FC003FDF001FF+8003F8FC07FE0003F03FFFF80003E00FFFE00003C003FF00002F3A7EB935>I<0001FFC0+00000FFFFC00007FFFFF0000FF80FF8003FE00FFC007FC01FFC00FF801FFC01FF801FFC0+1FF001FFC03FF001FFC03FF000FF807FE0007F007FE0001C007FE0000000FFE0000000FF+E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0+0000007FE00000007FE00000007FF00000003FF00000003FF00001E01FF80001E01FF800+03E00FFC0007C007FE00078003FF001F8000FFC07E00007FFFFC00000FFFF0000001FF80+0023257DA42A>I<000000007F800000007FFF800000007FFF800000007FFF800000007F+FF8000000003FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001+FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001+FF8000000001FF8000000001FF8000000001FF8000000001FF800001FF81FF80000FFFF1+FF80003FFFFDFF8000FFC07FFF8003FF001FFF8007FC0007FF800FFC0003FF801FF80001+FF801FF00001FF803FF00001FF803FF00001FF807FE00001FF807FE00001FF807FE00001+FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001+FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF807FE00001FF807FE00001+FF807FF00001FF803FF00001FF803FF00001FF801FF80003FF800FF80007FF8007FC000F+FF8003FE001FFFC001FF80FDFFFE007FFFF9FFFE001FFFE1FFFE0003FF01FFFE2F3A7DB9+35>I<0003FF8000001FFFF000007FFFFC0001FF83FE0003FE007F8007FC003F800FF800+3FC01FF8001FE01FF0001FE03FF0000FF03FF0000FF07FE0000FF07FE0000FF87FE00007+F8FFE00007F8FFE00007F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FFE0000000+FFE0000000FFE00000007FE00000007FE00000007FE00000003FF00000003FF00000781F+F00000780FF80000F80FFC0000F007FC0003F001FF000FE000FFC07FC0007FFFFF00000F+FFFC000001FFE00025257DA42C>I<00001FF0000001FFFC000007FFFF00001FF87F8000+3FE0FF8000FFC1FFC000FFC1FFC001FF81FFC001FF81FFC003FF01FFC003FF00FF8003FF+00FF8003FF003E0003FF00000003FF00000003FF00000003FF00000003FF00000003FF00+000003FF00000003FF000000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF000003FF0000+0003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000+03FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003+FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF+00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE+0000FFFFFE0000FFFFFE0000FFFFFE0000223A7DB91D>I<000000001F000007FE00FFC0+007FFFE3FFC001FFFFFFEFE007FE07FF8FE00FF801FF1FE01FF000FF8FE03FF000FFCFE0+3FE0007FC7C03FE0007FC0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE000+7FE0007FE0007FE0007FE0003FE0007FC0003FE0007FC0003FF000FFC0001FF000FF8000+0FF801FF000007FE07FE00000FFFFFF800000F7FFFE000001E07FE0000001E0000000000+1E00000000003E00000000003F00000000003F80000000001FC0000000001FFFFFF80000+1FFFFFFF80001FFFFFFFE0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE0007FFFFFFFE00+1FFFFFFFFF003FC0000FFF007F000000FF80FF0000007F80FE0000007F80FE0000003F80+FE0000003F80FE0000003F80FF0000007F807F0000007F007F800000FF003FC00001FE00+1FF00007FC0007FE003FF00001FFFFFFC000007FFFFF00000007FFF000002B377DA530>+I<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF000000+0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000+0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000+0003FF0000000003FF0000000003FF0000000003FF007FC00003FF03FFF80003FF0FFFFE+0003FF1F03FF0003FF3C01FF8003FF7801FF8003FFF000FF8003FFE000FFC003FFC000FF+C003FFC000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF303A7DB935>I<01F00007+FC000FFE000FFE001FFF001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F00000+000000000000000000000000000000000000000000000000000000FF007FFF007FFF007F+FF007FFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003+FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003+FF0003FF0003FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8153B7DBA1B>I<+00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF00000000+03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000+03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000+03FF0000000003FF0000000003FF0000000003FF000FFFE003FF000FFFE003FF000FFFE0+03FF000FFFE003FF0003FC0003FF0003F00003FF000FE00003FF001F800003FF003F0000+03FF007E000003FF00FC000003FF03F8000003FF07E0000003FF0FC0000003FF1FC00000+03FF7FE0000003FFFFF0000003FFFFF8000003FFFFFC000003FFFFFC000003FFCFFE0000+03FF0FFF000003FE07FF800003FE03FF800003FE01FFC00003FE00FFE00003FE00FFF000+03FE007FF00003FE003FF80003FE001FFC0003FE001FFE0003FE000FFE0003FE000FFF00+FFFFF83FFFF8FFFFF83FFFF8FFFFF83FFFF8FFFFF83FFFF82D3A7EB932>107+D<00FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF+0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF+0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF+0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF+0003FF0003FF0003FF0003FF0003FF0003FF00FFFFFCFFFFFCFFFFFCFFFFFC163A7DB91B+>I<00FE007FE0000FFC0000FFFE01FFFC003FFF8000FFFE07FFFF00FFFFE000FFFE1F81+FF83F03FF000FFFE3C00FF87801FF00007FE7800FFCF001FF80003FEF000FFDE001FF800+03FFE0007FFC000FFC0003FFC0007FF8000FFC0003FFC0007FF8000FFC0003FF80007FF0+000FFC0003FF80007FF0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF+00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000F+FC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF0000+7FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC00+03FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0+000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF00007FE0000FFC0003FF+00007FE0000FFC00FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FFFFF0FFFFFC1FFFFF83FF+FFF0FFFFFC1FFFFF83FFFFF04C257DA451>I<00FE007FC000FFFE03FFF800FFFE0FFFFE+00FFFE1F03FF00FFFE3C01FF8007FE7801FF8003FEF000FF8003FFE000FFC003FFC000FF+C003FFC000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF30257DA435>I<0001FFC0+0000000FFFF80000007FFFFF000000FF80FF800003FE003FE00007FC001FF0000FF8000F+F8001FF00007FC001FF00007FC003FF00007FE003FE00003FE007FE00003FF007FE00003+FF007FE00003FF00FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003+FF80FFE00003FF80FFE00003FF80FFE00003FF80FFE00003FF807FE00003FF007FE00003+FF007FE00003FF003FE00003FE003FF00007FE001FF00007FC001FF00007FC000FF8000F+F80007FC001FF00003FE003FE00001FF80FFC000007FFFFF0000001FFFFC00000001FFC0+000029257DA430>I<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFFFE07FF00FFFFF0+01FF8003FFE000FFC003FF80007FE003FF00007FF003FF00003FF803FF00003FF803FF00+001FFC03FF00001FFC03FF00001FFC03FF00000FFE03FF00000FFE03FF00000FFE03FF00+000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00000FFE03FF00+000FFE03FF00000FFC03FF00001FFC03FF00001FFC03FF00001FF803FF00003FF803FF00+003FF003FF80007FF003FFC0007FE003FFE000FFC003FFF003FF8003FFFC07FE0003FF3F+FFF80003FF0FFFE00003FF03FF000003FF0000000003FF0000000003FF0000000003FF00+00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00+00000003FF0000000003FF00000000FFFFFC000000FFFFFC000000FFFFFC000000FFFFFC+0000002F357EA435>I<0001FF000780000FFFE00F80003FFFF81F8000FFC07C3F8003FF+803E3F8007FE000F7F800FFC0007FF801FFC0007FF801FF80003FF803FF80003FF803FF0+0001FF807FF00001FF807FF00001FF807FE00001FF80FFE00001FF80FFE00001FF80FFE0+0001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE0+0001FF80FFE00001FF807FF00001FF807FF00001FF807FF00001FF803FF80001FF803FF8+0003FF801FFC0003FF800FFC0007FF8007FE000FFF8003FF003FFF8001FFC0FDFF80007F+FFF1FF80001FFFC1FF800001FF01FF8000000001FF8000000001FF8000000001FF800000+0001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF800000+0001FF8000000001FF8000000001FF800000007FFFFE0000007FFFFE0000007FFFFE0000+007FFFFE2F357DA432>I<00FE03F000FFFE0FFE00FFFE3FFF00FFFE7C7F80FFFEF8FFC0+07FEF0FFC003FFE0FFC003FFC0FFC003FFC0FFC003FF807F8003FF803F0003FF800C0003+FF80000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF+00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00+000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE00+00FFFFFE0000FFFFFE0000FFFFFE000022257EA427>I<003FF03803FFFEF80FFFFFF81F+C00FF83F0003F87E0001F87C0000F8FC0000F8FC000078FE000078FF000078FF800000FF+FC0000FFFFE0007FFFFC007FFFFF803FFFFFC01FFFFFF00FFFFFF803FFFFF800FFFFFC00+1FFFFC00007FFE000007FEF00001FEF00000FEF80000FEF800007EFC00007EFC00007CFE+0000FCFF0000F8FF8001F8FFF007F0FFFFFFC0F8FFFF00E01FF8001F257DA426>I<000F+0000000F0000000F0000000F0000000F0000001F0000001F0000001F0000001F0000003F+0000003F0000007F000000FF000000FF000001FF000007FF00001FFFFFE0FFFFFFE0FFFF+FFE0FFFFFFE003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF+000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF+000003FF000003FF007803FF007803FF007803FF007803FF007803FF007803FF007803FF+007803FF00F801FF80F001FF81F000FFC3E0003FFFC0001FFF800003FE001D357EB425>+I<00FF00003FC0FFFF003FFFC0FFFF003FFFC0FFFF003FFFC0FFFF003FFFC007FF0001FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0001FFC003FF0001FFC003FF0003FF+C003FF0003FFC001FF0007FFC001FF800FFFE000FFC03EFFFF007FFFFCFFFF001FFFF0FF+FF0003FF80FFFF30257DA435>I<FFFFF001FFF8FFFFF001FFF8FFFFF001FFF8FFFFF001+FFF803FF00003F0003FF00001E0003FF80003E0001FF80003C0001FFC0007C0000FFC000+780000FFE000F800007FE000F000007FF001F000003FF001E000003FF801E000001FF803+C000001FF803C000001FFC07C000000FFC078000000FFE0F80000007FE0F00000007FF1F+00000003FF1E00000003FFBE00000001FFBC00000001FFFC00000000FFF800000000FFF8+00000000FFF8000000007FF0000000007FF0000000003FE0000000003FE0000000001FC0+000000001FC0000000000F80000000000F8000002D257EA432>I<FFFFF1FFFF803FFFFF+FFF1FFFF803FFFFFFFF1FFFF803FFFFFFFF1FFFF803FFF07FE000FF80003E003FF0007F8+0003C003FF0007FC0003C003FF8007FC0007C001FF8003FE00078001FF8007FE00078000+FFC007FE000F0000FFC007FF000F0000FFE00FFF001F00007FE00FFF801E00007FE01FFF+801E00003FF01E7F803C00003FF01E7FC03C00003FF83E7FC07C00001FF83C3FE0780000+1FF87C3FE0F800000FFC781FF0F000000FFC781FF0F000000FFEF00FF1F0000007FEF00F+F9E0000007FFF00FFBE0000003FFE007FFC0000003FFE007FFC0000003FFC003FFC00000+01FFC003FF80000001FFC003FF80000000FF8001FF00000000FF8001FF00000000FF0000+FF000000007F0000FE000000007F0000FE000000003E00007C000000003C00003C000040+257EA445>I<FFFFF01FFFF0FFFFF01FFFF0FFFFF01FFFF0FFFFF01FFFF003FF8003F800+01FFC003E00000FFC007E000007FE007C000003FF00F8000003FF81F0000001FFC3E0000+000FFC7C00000007FEFC00000003FFF800000003FFF000000001FFE000000000FFC00000+00007FE0000000003FF0000000003FF8000000007FFC000000007FFC00000000FFFE0000+0001F3FF00000003E3FF80000007C1FFC000000FC0FFC000001F807FE000001F003FF000+003E003FF800007C001FFC0000F8000FFC0001F80007FE00FFFF003FFFF8FFFF003FFFF8+FFFF003FFFF8FFFF003FFFF82D257EA432>I<FFFFF001FFF8FFFFF001FFF8FFFFF001FF+F8FFFFF001FFF803FF00003F0003FF00001E0003FF80003E0001FF80003C0001FFC0007C+0000FFC000780000FFE000F800007FE000F000007FF001F000003FF001E000003FF801E0+00001FF803C000001FF803C000001FFC07C000000FFC078000000FFE0F80000007FE0F00+000007FF1F00000003FF1E00000003FFBE00000001FFBC00000001FFFC00000000FFF800+000000FFF800000000FFF8000000007FF0000000007FF0000000003FE0000000003FE000+0000001FC0000000001FC0000000000F80000000000F80000000000F00000000000F0000+0000001F00000000001E0000003F003E0000007F803C000000FFC07C000000FFC0780000+00FFC0F8000000FFC1F0000000FFC3E00000007F87C00000007D1F800000003FFF000000+001FFC0000000007F0000000002D357EA432>I<3FFFFFFFC03FFFFFFFC03FFFFFFFC03F+F003FF803F8007FF803F000FFF003E000FFE003C001FFC007C003FFC007C003FF8007800+7FF0007800FFF0007800FFE0007801FFC0007803FFC0000007FF80000007FF0000000FFE+0000001FFE0000001FFC0000003FF80000007FF803C000FFF003C000FFE003C001FFC003+C003FFC003C003FF8007C007FF0007C00FFF0007C00FFE000F801FFC000F803FFC001F80+7FF8003F807FF001FF80FFFFFFFF80FFFFFFFF80FFFFFFFF8022257DA42A>I<FFFFFFFF+FFFEFFFFFFFFFFFEFFFFFFFFFFFE2F03809730>I E /Fs 38 123+df[<000000000000000FFFFE00000000000000000000000FFFFFFFE00000000000000000+0001FFFFFFFFFC0000000000000000001FFFFFFFFFFF000000000000000000FFFFFFFFFF+FFC00000000000000007FFFFFFFFFFFFE0000000000000001FFFFFFFFFFFFFF800000000+0000007FFFFFFC001FFFFC00000000000001FFFFFF800001FFFE00000000000007FFFFF8+0000003FFF0000000000000FFFFFE00000000FFF8000000000003FFFFF800000001FFFC0+00000000007FFFFE000000007FFFC00000000000FFFFFC00000000FFFFE00000000001FF+FFF000000001FFFFE00000000003FFFFE000000003FFFFF00000000007FFFFC000000007+FFFFF0000000000FFFFF8000000007FFFFF8000000000FFFFF800000000FFFFFF8000000+001FFFFF000000000FFFFFF8000000003FFFFE000000000FFFFFF8000000003FFFFE0000+00000FFFFFF8000000007FFFFC000000000FFFFFF8000000007FFFFC000000001FFFFFFC+000000007FFFFC000000000FFFFFF800000000FFFFFC000000000FFFFFF800000000FFFF+F8000000000FFFFFF800000000FFFFF8000000000FFFFFF800000000FFFFF8000000000F+FFFFF800000000FFFFF80000000007FFFFF000000000FFFFF80000000007FFFFF0000000+00FFFFF80000000003FFFFE000000000FFFFF80000000001FFFFC000000000FFFFF80000+000000FFFF8000000000FFFFF800000000003FFE0000000000FFFFF800000000000FF800+00000000FFFFF8000000000000000000000000FFFFF8000000000000000000000000FFFF+F8000000000000000000000000FFFFF8000000000000000000000000FFFFF80000000000+00000000000000FFFFF8000000000000000000000000FFFFF80000000000000000000000+00FFFFF8000000000000000000000000FFFFF8000000000000000000000000FFFFF80000+00000000000000000000FFFFF8000000000000000000000000FFFFF80000000000000000+00000000FFFFF8000000000000000000000000FFFFF8000000000000000000000000FFFF+F8000000000000000000000000FFFFF80000003FFFFFFFFC0000FFFFFFFFFFFFFFFFFFFF+FFFFFC0000FFFFFFFFFFFFFFFFFFFFFFFFFC0000FFFFFFFFFFFFFFFFFFFFFFFFFC0000FF+FFFFFFFFFFFFFFFFFFFFFFFC0000FFFFFFFFFFFFFFFFFFFFFFFFFC0000FFFFFFFFFFFFFF+FFFFFFFFFFFC0000FFFFFFFFFFFFFFFFFFFFFFFFFC0000FFFFFFFFFFFFFFFFFFFFFFFFFC+0000FFFFFFFFFFFFFFFFFFFFFFFFFC00000000FFFFFC0000000003FFFFFC00000000FFFF+FC0000000001FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000+FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC000000+00FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000+000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC+00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFF+FC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000+FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC000000+00FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000+000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC+00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFF+FC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000+FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC000000+00FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000+000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC+00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFF+FC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000+FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC000000+00FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000+000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC+00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFF+FC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000+FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC000000+00FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000+000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC+00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFF+FC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000+FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC000000+00FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000+000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC+00000000FFFFFC0000000000FFFFFC00000000FFFFFC0000000000FFFFFC00000000FFFF+FC0000000000FFFFFC00003FFFFFFFFFFFF0003FFFFFFFFFFFF03FFFFFFFFFFFF0003FFF+FFFFFFFFF03FFFFFFFFFFFF0003FFFFFFFFFFFF03FFFFFFFFFFFF0003FFFFFFFFFFFF03F+FFFFFFFFFFF0003FFFFFFFFFFFF03FFFFFFFFFFFF0003FFFFFFFFFFFF03FFFFFFFFFFFF0+003FFFFFFFFFFFF03FFFFFFFFFFFF0003FFFFFFFFFFFF03FFFFFFFFFFFF0003FFFFFFFFF+FFF0>116 144 123 271 129 12 D[<0000000000000000001FF0000000000000000000+0000000000000000003FF80000000000000000000000000000000000007FFC0000000000+000000000000000000000000007FFC000000000000000000000000000000000000FFFE00+0000000000000000000000000000000000FFFE0000000000000000000000000000000000+00FFFE000000000000000000000000000000000001FFFF00000000000000000000000000+0000000001FFFF000000000000000000000000000000000003FFFF800000000000000000+000000000000000003FFFF800000000000000000000000000000000007FFFFC000000000+00000000000000000000000007FFFFC00000000000000000000000000000000007FFFFC0+000000000000000000000000000000000FFFFFE000000000000000000000000000000000+0FFFFFE0000000000000000000000000000000001FFFFFF0000000000000000000000000+000000001FFFFFF0000000000000000000000000000000001FFFFFF00000000000000000+00000000000000003FFFFFF8000000000000000000000000000000003FFFFFF800000000+0000000000000000000000007FFFFFFC000000000000000000000000000000007FFFFFFC+000000000000000000000000000000007FFFFFFC00000000000000000000000000000000+FFFFFFFE00000000000000000000000000000000FFFFFFFE000000000000000000000000+00000001FFFFFFFF00000000000000000000000000000001FFFFFFFF0000000000000000+0000000000000001FFFFFFFF00000000000000000000000000000003FFFFFFFF80000000+000000000000000000000003FFFFFFFF80000000000000000000000000000007FFFFFFFF+C0000000000000000000000000000007FFFFFFFFC0000000000000000000000000000007+FFFFFFFFC000000000000000000000000000000FFFFFFFFFE00000000000000000000000+0000000FFFFFFFFFE000000000000000000000000000001FFFFFFFFFF000000000000000+000000000000001FFDFFFFFFF000000000000000000000000000001FF9FFFFFFF0000000+00000000000000000000003FF8FFFFFFF800000000000000000000000000003FF8FFFFFF+F800000000000000000000000000007FF0FFFFFFFC00000000000000000000000000007F+F07FFFFFFC00000000000000000000000000007FE07FFFFFFC0000000000000000000000+000000FFE03FFFFFFE0000000000000000000000000000FFE03FFFFFFE00000000000000+00000000000001FFC03FFFFFFF0000000000000000000000000001FFC01FFFFFFF000000+0000000000000000000001FF801FFFFFFF0000000000000000000000000003FF800FFFFF+FF8000000000000000000000000003FF800FFFFFFF8000000000000000000000000007FF+000FFFFFFFC000000000000000000000000007FF0007FFFFFFC000000000000000000000+000007FE0007FFFFFFC00000000000000000000000000FFE0003FFFFFFE0000000000000+0000000000000FFE0003FFFFFFE00000000000000000000000001FFC0003FFFFFFF00000+000000000000000000001FFC0001FFFFFFF00000000000000000000000001FF80001FFFF+FFF00000000000000000000000003FF80000FFFFFFF80000000000000000000000003FF8+0000FFFFFFF80000000000000000000000007FF00000FFFFFFFC00000000000000000000+00007FF000007FFFFFFC0000000000000000000000007FE000007FFFFFFC000000000000+000000000000FFE000003FFFFFFE000000000000000000000000FFE000003FFFFFFE0000+00000000000000000001FFC000003FFFFFFF000000000000000000000001FFC000001FFF+FFFF000000000000000000000001FF8000001FFFFFFF000000000000000000000003FF80+00000FFFFFFF800000000000000000000003FF8000000FFFFFFF80000000000000000000+0007FF0000000FFFFFFFC00000000000000000000007FF00000007FFFFFFC00000000000+000000000007FE00000007FFFFFFC0000000000000000000000FFE00000003FFFFFFE000+0000000000000000000FFE00000003FFFFFFE0000000000000000000001FFC00000003FF+FFFFF0000000000000000000001FFC00000001FFFFFFF0000000000000000000001FF800+000001FFFFFFF0000000000000000000003FF800000000FFFFFFF8000000000000000000+003FF800000000FFFFFFF8000000000000000000007FF000000000FFFFFFFC0000000000+00000000007FF0000000007FFFFFFC000000000000000000007FE0000000007FFFFFFC00+000000000000000000FFE0000000003FFFFFFE00000000000000000000FFE0000000003F+FFFFFE00000000000000000001FFC0000000003FFFFFFF00000000000000000001FFC000+0000001FFFFFFF00000000000000000001FF80000000001FFFFFFF000000000000000000+03FF80000000000FFFFFFF80000000000000000003FF80000000000FFFFFFF8000000000+0000000007FF00000000000FFFFFFFC0000000000000000007FF000000000007FFFFFFC0+000000000000000007FE000000000007FFFFFFC000000000000000000FFE000000000003+FFFFFFE000000000000000000FFFFFFFFFFFFFFFFFFFFFE000000000000000001FFFFFFF+FFFFFFFFFFFFFFF000000000000000001FFFFFFFFFFFFFFFFFFFFFF00000000000000000+1FFFFFFFFFFFFFFFFFFFFFF000000000000000003FFFFFFFFFFFFFFFFFFFFFF800000000+000000003FFFFFFFFFFFFFFFFFFFFFF800000000000000007FFFFFFFFFFFFFFFFFFFFFFC+00000000000000007FFFFFFFFFFFFFFFFFFFFFFC00000000000000007FFFFFFFFFFFFFFF+FFFFFFFC0000000000000000FFE00000000000003FFFFFFE0000000000000000FFE00000+000000003FFFFFFE0000000000000001FFC00000000000003FFFFFFF0000000000000001+FFC00000000000001FFFFFFF0000000000000001FF800000000000001FFFFFFF00000000+00000003FF800000000000000FFFFFFF8000000000000003FF800000000000000FFFFFFF+8000000000000007FF000000000000000FFFFFFFC000000000000007FF00000000000000+07FFFFFFC000000000000007FE0000000000000007FFFFFFC00000000000000FFE000000+0000000003FFFFFFE00000000000000FFE0000000000000003FFFFFFE00000000000001F+FC0000000000000003FFFFFFF00000000000001FFC0000000000000001FFFFFFF0000000+0000001FF80000000000000001FFFFFFF00000000000003FF80000000000000000FFFFFF+F80000000000003FF80000000000000000FFFFFFF80000000000007FF000000000000000+00FFFFFFFC0000000000007FF000000000000000007FFFFFFC0000000000007FE0000000+00000000007FFFFFFC000000000000FFE000000000000000003FFFFFFE000000000000FF+E000000000000000003FFFFFFE000000000001FFC000000000000000001FFFFFFF000000+000001FFC000000000000000001FFFFFFF000000000001FF8000000000000000001FFFFF+FF000000000003FF8000000000000000000FFFFFFF800000000003FF8000000000000000+000FFFFFFF800000000007FF00000000000000000007FFFFFFC00000000007FF00000000+000000000007FFFFFFC00000000007FE00000000000000000007FFFFFFC0000000001FFF+80000000000000000003FFFFFFE000000003FFFFFE000000000000000003FFFFFFE00000+FFFFFFFFFFFFC0000000001FFFFFFFFFFFFFFFFEFFFFFFFFFFFFC0000000001FFFFFFFFF+FFFFFFFEFFFFFFFFFFFFC0000000001FFFFFFFFFFFFFFFFEFFFFFFFFFFFFC0000000001F+FFFFFFFFFFFFFFFEFFFFFFFFFFFFC0000000001FFFFFFFFFFFFFFFFEFFFFFFFFFFFFC000+0000001FFFFFFFFFFFFFFFFEFFFFFFFFFFFFC0000000001FFFFFFFFFFFFFFFFEFFFFFFFF+FFFFC0000000001FFFFFFFFFFFFFFFFEFFFFFFFFFFFFC0000000001FFFFFFFFFFFFFFFFE+>159 145 120 272 176 65 D[<FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFF+FFFFFFFFFFFFFFFFFE0000000000FFFFFFFFFFFFFFFFFFFFFFFFFFE000000000FFFFFFFF+FFFFFFFFFFFFFFFFFFFC00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF80000000FFFFFFFF+FFFFFFFFFFFFFFFFFFFFF0000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFC000000FFFFFFFF+FFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000003FF+FFFF00000000001FFFFFFFE00000000003FFFFFF000000000001FFFFFFF00000000003FF+FFFF0000000000007FFFFFF80000000003FFFFFF0000000000001FFFFFFC0000000003FF+FFFF0000000000000FFFFFFF0000000003FFFFFF00000000000003FFFFFF8000000003FF+FFFF00000000000001FFFFFF8000000003FFFFFF00000000000000FFFFFFC000000003FF+FFFF00000000000000FFFFFFE000000003FFFFFF000000000000007FFFFFF000000003FF+FFFF000000000000003FFFFFF000000003FFFFFF000000000000003FFFFFF800000003FF+FFFF000000000000001FFFFFF800000003FFFFFF000000000000001FFFFFFC00000003FF+FFFF000000000000000FFFFFFC00000003FFFFFF000000000000000FFFFFFE00000003FF+FFFF000000000000000FFFFFFE00000003FFFFFF0000000000000007FFFFFF00000003FF+FFFF0000000000000007FFFFFF00000003FFFFFF0000000000000007FFFFFF00000003FF+FFFF0000000000000007FFFFFF00000003FFFFFF0000000000000003FFFFFF80000003FF+FFFF0000000000000003FFFFFF80000003FFFFFF0000000000000003FFFFFF80000003FF+FFFF0000000000000003FFFFFF80000003FFFFFF0000000000000003FFFFFF80000003FF+FFFF0000000000000003FFFFFF80000003FFFFFF0000000000000003FFFFFF80000003FF+FFFF0000000000000003FFFFFF80000003FFFFFF0000000000000003FFFFFF80000003FF+FFFF0000000000000003FFFFFF80000003FFFFFF0000000000000003FFFFFF80000003FF+FFFF0000000000000007FFFFFF00000003FFFFFF0000000000000007FFFFFF00000003FF+FFFF0000000000000007FFFFFF00000003FFFFFF0000000000000007FFFFFF00000003FF+FFFF000000000000000FFFFFFE00000003FFFFFF000000000000000FFFFFFE00000003FF+FFFF000000000000000FFFFFFC00000003FFFFFF000000000000001FFFFFFC00000003FF+FFFF000000000000001FFFFFF800000003FFFFFF000000000000003FFFFFF800000003FF+FFFF000000000000003FFFFFF000000003FFFFFF000000000000007FFFFFE000000003FF+FFFF00000000000000FFFFFFC000000003FFFFFF00000000000000FFFFFFC000000003FF+FFFF00000000000001FFFFFF8000000003FFFFFF00000000000003FFFFFF0000000003FF+FFFF00000000000007FFFFFE0000000003FFFFFF0000000000000FFFFFF80000000003FF+FFFF0000000000003FFFFFF00000000003FFFFFF0000000000007FFFFFE00000000003FF+FFFF000000000001FFFFFF800000000003FFFFFF00000000000FFFFFFE000000000003FF+FFFF00000000007FFFFFF8000000000003FFFFFF000000001FFFFFFFE0000000000003FF+FFFFFFFFFFFFFFFFFFFF00000000000003FFFFFFFFFFFFFFFFFFFFF800000000000003FF+FFFFFFFFFFFFFFFFFF8000000000000003FFFFFFFFFFFFFFFFFFFFF800000000000003FF+FFFFFFFFFFFFFFFFFFFF80000000000003FFFFFFFFFFFFFFFFFFFFFFF8000000000003FF+FFFFFFFFFFFFFFFFFFFFFE000000000003FFFFFF000000000000FFFFFFC00000000003FF+FFFF0000000000001FFFFFF00000000003FFFFFF00000000000007FFFFF80000000003FF+FFFF00000000000003FFFFFE0000000003FFFFFF00000000000000FFFFFF8000000003FF+FFFF000000000000007FFFFFC000000003FFFFFF000000000000003FFFFFE000000003FF+FFFF000000000000001FFFFFF000000003FFFFFF000000000000000FFFFFF800000003FF+FFFF0000000000000007FFFFFC00000003FFFFFF0000000000000003FFFFFE00000003FF+FFFF0000000000000003FFFFFF00000003FFFFFF0000000000000001FFFFFF80000003FF+FFFF0000000000000001FFFFFFC0000003FFFFFF0000000000000000FFFFFFC0000003FF+FFFF0000000000000000FFFFFFE0000003FFFFFF00000000000000007FFFFFE0000003FF+FFFF00000000000000007FFFFFF0000003FFFFFF00000000000000007FFFFFF0000003FF+FFFF00000000000000007FFFFFF8000003FFFFFF00000000000000003FFFFFF8000003FF+FFFF00000000000000003FFFFFF8000003FFFFFF00000000000000003FFFFFFC000003FF+FFFF00000000000000003FFFFFFC000003FFFFFF00000000000000003FFFFFFC000003FF+FFFF00000000000000001FFFFFFC000003FFFFFF00000000000000001FFFFFFE000003FF+FFFF00000000000000001FFFFFFE000003FFFFFF00000000000000001FFFFFFE000003FF+FFFF00000000000000001FFFFFFE000003FFFFFF00000000000000001FFFFFFE000003FF+FFFF00000000000000001FFFFFFE000003FFFFFF00000000000000001FFFFFFE000003FF+FFFF00000000000000001FFFFFFE000003FFFFFF00000000000000001FFFFFFE000003FF+FFFF00000000000000001FFFFFFE000003FFFFFF00000000000000001FFFFFFE000003FF+FFFF00000000000000003FFFFFFC000003FFFFFF00000000000000003FFFFFFC000003FF+FFFF00000000000000003FFFFFFC000003FFFFFF00000000000000003FFFFFFC000003FF+FFFF00000000000000003FFFFFFC000003FFFFFF00000000000000007FFFFFF8000003FF+FFFF00000000000000007FFFFFF8000003FFFFFF00000000000000007FFFFFF8000003FF+FFFF0000000000000000FFFFFFF0000003FFFFFF0000000000000000FFFFFFF0000003FF+FFFF0000000000000001FFFFFFE0000003FFFFFF0000000000000003FFFFFFE0000003FF+FFFF0000000000000003FFFFFFC0000003FFFFFF0000000000000007FFFFFF80000003FF+FFFF000000000000000FFFFFFF80000003FFFFFF000000000000001FFFFFFF00000003FF+FFFF000000000000003FFFFFFE00000003FFFFFF000000000000007FFFFFFC00000003FF+FFFF00000000000000FFFFFFFC00000003FFFFFF00000000000001FFFFFFF800000003FF+FFFF00000000000007FFFFFFF000000003FFFFFF0000000000001FFFFFFFC000000003FF+FFFF000000000000FFFFFFFF8000000003FFFFFF00000000000FFFFFFFFF0000FFFFFFFF+FFFFFFFFFFFFFFFFFFFFFFFC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80000FFFFFFFF+FFFFFFFFFFFFFFFFFFFFFFE00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000FFFFFFFF+FFFFFFFFFFFFFFFFFFFFFC000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000FFFFFFFF+FFFFFFFFFFFFFFFFFFFF80000000FFFFFFFFFFFFFFFFFFFFFFFFFFF000000000FFFFFFFF+FFFFFFFFFFFFFFFFFC0000000000>143 142 120 269 165 I[<000000000000000003FF+FFC00000000001F00000000000000003FFFFFFFE0000000003F8000000000000007FFFFF+FFFFE000000007F800000000000007FFFFFFFFFFFC0000000FF80000000000003FFFFFFF+FFFFFF0000001FF8000000000001FFFFFFFFFFFFFFE000003FF800000000000FFFFFFFFF+FFFFFFF800007FF800000000003FFFFFFFFFFFFFFFFE0000FFF80000000000FFFFFFFFFF+FFFFFFFF0001FFF80000000003FFFFFFFFF8000FFFFFC003FFF8000000000FFFFFFFFE00+00007FFFF007FFF8000000003FFFFFFFC00000000FFFF80FFFF800000000FFFFFFFE0000+000003FFFC1FFFF800000001FFFFFFF000000000007FFF3FFFF800000007FFFFFFC00000+0000001FFFFFFFF80000000FFFFFFF0000000000000FFFFFFFF80000003FFFFFFC000000+00000003FFFFFFF80000007FFFFFF000000000000001FFFFFFF8000000FFFFFFE0000000+00000000FFFFFFF8000001FFFFFF80000000000000003FFFFFF8000003FFFFFF00000000+000000001FFFFFF8000007FFFFFE00000000000000000FFFFFF800000FFFFFFC00000000+0000000007FFFFF800001FFFFFF0000000000000000003FFFFF800003FFFFFE000000000+0000000001FFFFF800007FFFFFE0000000000000000000FFFFF80000FFFFFFC000000000+0000000000FFFFF80001FFFFFF800000000000000000007FFFF80003FFFFFF0000000000+00000000003FFFF80003FFFFFE000000000000000000001FFFF80007FFFFFE0000000000+00000000001FFFF8000FFFFFFC000000000000000000000FFFF8000FFFFFF80000000000+00000000000FFFF8001FFFFFF80000000000000000000007FFF8003FFFFFF00000000000+000000000003FFF8003FFFFFF00000000000000000000003FFF8007FFFFFE00000000000+000000000003FFF8007FFFFFE00000000000000000000001FFF800FFFFFFC00000000000+000000000001FFF800FFFFFFC00000000000000000000000FFF801FFFFFFC00000000000+000000000000FFF801FFFFFF800000000000000000000000FFF803FFFFFF800000000000+0000000000007FF803FFFFFF8000000000000000000000007FF807FFFFFF000000000000+0000000000007FF807FFFFFF0000000000000000000000003FF807FFFFFF000000000000+0000000000003FF80FFFFFFF0000000000000000000000003FF80FFFFFFE000000000000+0000000000003FF80FFFFFFE0000000000000000000000003FF81FFFFFFE000000000000+0000000000001FF81FFFFFFE0000000000000000000000001FF81FFFFFFE000000000000+0000000000001FF83FFFFFFC0000000000000000000000001FF83FFFFFFC000000000000+0000000000000FF03FFFFFFC00000000000000000000000000003FFFFFFC000000000000+00000000000000007FFFFFFC00000000000000000000000000007FFFFFFC000000000000+00000000000000007FFFFFFC00000000000000000000000000007FFFFFFC000000000000+00000000000000007FFFFFF800000000000000000000000000007FFFFFF8000000000000+00000000000000007FFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF80000000000000000000000000000FFFFFFF8000000000000+0000000000000000FFFFFFF800000000000000000000000000007FFFFFF8000000000000+00000000000000007FFFFFF800000000000000000000000000007FFFFFF8000000000000+00000000000000007FFFFFFC00000000000000000000000000007FFFFFFC000000000000+00000000000000007FFFFFFC00000000000000000000000000007FFFFFFC000000000000+00000000000000003FFFFFFC00000000000000000000000000003FFFFFFC000000000000+00000000000000003FFFFFFC00000000000000000000000000003FFFFFFC000000000000+00000000000000001FFFFFFE00000000000000000000000000001FFFFFFE000000000000+00000000000007F01FFFFFFE0000000000000000000000000FF80FFFFFFE000000000000+0000000000000FF80FFFFFFE0000000000000000000000000FF80FFFFFFF000000000000+0000000000000FF807FFFFFF0000000000000000000000000FF807FFFFFF000000000000+0000000000000FF807FFFFFF0000000000000000000000000FF803FFFFFF800000000000+0000000000001FF803FFFFFF8000000000000000000000001FF001FFFFFF800000000000+0000000000001FF001FFFFFFC000000000000000000000001FF000FFFFFFC00000000000+0000000000001FF000FFFFFFC000000000000000000000003FF0007FFFFFE00000000000+0000000000003FE0007FFFFFE000000000000000000000003FE0003FFFFFF00000000000+0000000000007FE0003FFFFFF000000000000000000000007FC0001FFFFFF80000000000+000000000000FFC0000FFFFFF80000000000000000000000FFC0000FFFFFFC0000000000+000000000001FF800007FFFFFE0000000000000000000001FF800003FFFFFE0000000000+000000000003FF000003FFFFFF0000000000000000000007FF000001FFFFFF8000000000+000000000007FE000000FFFFFFC00000000000000000000FFC0000007FFFFFE000000000+00000000001FFC0000003FFFFFF00000000000000000003FF80000001FFFFFF800000000+00000000007FF00000000FFFFFFC000000000000000000FFF000000007FFFFFE00000000+0000000001FFE000000003FFFFFF000000000000000003FFC000000001FFFFFF80000000+0000000007FF8000000000FFFFFFE0000000000000000FFF00000000007FFFFFF0000000+000000003FFE00000000003FFFFFFC000000000000007FFC00000000000FFFFFFF000000+00000001FFF8000000000007FFFFFFC0000000000007FFF0000000000001FFFFFFF00000+0000001FFFE0000000000000FFFFFFFE00000000007FFF800000000000003FFFFFFFE000+000003FFFF000000000000000FFFFFFFFE0000003FFFFC0000000000000003FFFFFFFFF8+0007FFFFF80000000000000000FFFFFFFFFFFFFFFFFFE000000000000000003FFFFFFFFF+FFFFFFFF8000000000000000000FFFFFFFFFFFFFFFFE00000000000000000001FFFFFFFF+FFFFFFF8000000000000000000003FFFFFFFFFFFFFC00000000000000000000007FFFFFF+FFFFFF0000000000000000000000007FFFFFFFFFF000000000000000000000000003FFFF+FFFF000000000000000000000000000003FFFFC0000000000000>141+146 115 271 168 I[<000000000000000003FFFFC00000000001F00000000000000000+0003FFFFFFFE0000000003F80000000000000000007FFFFFFFFFE000000007F800000000+0000000007FFFFFFFFFFFC0000000FF800000000000000003FFFFFFFFFFFFF0000001FF8+0000000000000001FFFFFFFFFFFFFFE000003FF8000000000000000FFFFFFFFFFFFFFFF8+00007FF8000000000000003FFFFFFFFFFFFFFFFE0000FFF800000000000000FFFFFFFFFF+FFFFFFFF0001FFF800000000000003FFFFFFFFF8000FFFFFC003FFF80000000000000FFF+FFFFFE0000007FFFF007FFF80000000000003FFFFFFFC00000000FFFF80FFFF800000000+0000FFFFFFFE0000000003FFFC1FFFF8000000000001FFFFFFF000000000007FFF3FFFF8+000000000007FFFFFFC000000000001FFFFFFFF800000000000FFFFFFF0000000000000F+FFFFFFF800000000003FFFFFFC00000000000003FFFFFFF800000000007FFFFFF0000000+00000001FFFFFFF80000000000FFFFFFE000000000000000FFFFFFF80000000001FFFFFF+80000000000000003FFFFFF80000000003FFFFFF00000000000000001FFFFFF800000000+07FFFFFE00000000000000000FFFFFF8000000000FFFFFFC000000000000000007FFFFF8+000000001FFFFFF0000000000000000003FFFFF8000000003FFFFFE00000000000000000+01FFFFF8000000007FFFFFE0000000000000000000FFFFF800000000FFFFFFC000000000+0000000000FFFFF800000001FFFFFF800000000000000000007FFFF800000003FFFFFF00+0000000000000000003FFFF800000003FFFFFE000000000000000000001FFFF800000007+FFFFFE000000000000000000001FFFF80000000FFFFFFC000000000000000000000FFFF8+0000000FFFFFF8000000000000000000000FFFF80000001FFFFFF8000000000000000000+0007FFF80000003FFFFFF00000000000000000000003FFF80000003FFFFFF00000000000+000000000003FFF80000007FFFFFE00000000000000000000003FFF80000007FFFFFE000+00000000000000000001FFF8000000FFFFFFC00000000000000000000001FFF8000000FF+FFFFC00000000000000000000000FFF8000001FFFFFFC00000000000000000000000FFF8+000001FFFFFF800000000000000000000000FFF8000003FFFFFF80000000000000000000+00007FF8000003FFFFFF8000000000000000000000007FF8000007FFFFFF000000000000+0000000000007FF8000007FFFFFF0000000000000000000000003FF8000007FFFFFF0000+000000000000000000003FF800000FFFFFFF0000000000000000000000003FF800000FFF+FFFE0000000000000000000000003FF800000FFFFFFE0000000000000000000000003FF8+00001FFFFFFE0000000000000000000000001FF800001FFFFFFE00000000000000000000+00001FF800001FFFFFFE0000000000000000000000001FF800003FFFFFFC000000000000+0000000000001FF800003FFFFFFC0000000000000000000000000FF000003FFFFFFC0000+00000000000000000000000000003FFFFFFC000000000000000000000000000000007FFF+FFFC000000000000000000000000000000007FFFFFFC0000000000000000000000000000+00007FFFFFFC000000000000000000000000000000007FFFFFFC00000000000000000000+0000000000007FFFFFF8000000000000000000000000000000007FFFFFF8000000000000+000000000000000000007FFFFFF800000000000000000000000000000000FFFFFFF80000+0000000000000000000000000000FFFFFFF800000000000000000000000000000000FFFF+FFF800000000000000000000000000000000FFFFFFF80000000000000000000000000000+0000FFFFFFF800000000000000000000000000000000FFFFFFF800000000000000000000+000000000000FFFFFFF800000000000000000000000000000000FFFFFFF8000000000000+00000000000000000000FFFFFFF800000000000000000000000000000000FFFFFFF80000+0000000000000000000000000000FFFFFFF800000000000000000000000000000000FFFF+FFF800000000000000000000000000000000FFFFFFF80000000000000000000000000000+0000FFFFFFF800000000000000000000000000000000FFFFFFF800000000000000000000+000000000000FFFFFFF800000000000000000000000000000000FFFFFFF8000000000000+00000000000000000000FFFFFFF8000000000000000000000000000000007FFFFFF80000+00000000000000000000000000007FFFFFF8000000000000000000000000000000007FFF+FFF8000000000000000000000000000000007FFFFFFC0000000000000000000000000000+00007FFFFFFC000000000000000000000000000000007FFFFFFC0000000000000FFFFFFF+FFFFFFFFFFF87FFFFFFC0000000000000FFFFFFFFFFFFFFFFFF83FFFFFFC000000000000+0FFFFFFFFFFFFFFFFFF83FFFFFFC0000000000000FFFFFFFFFFFFFFFFFF83FFFFFFC0000+000000000FFFFFFFFFFFFFFFFFF83FFFFFFC0000000000000FFFFFFFFFFFFFFFFFF81FFF+FFFE0000000000000FFFFFFFFFFFFFFFFFF81FFFFFFE0000000000000FFFFFFFFFFFFFFF+FFF81FFFFFFE0000000000000FFFFFFFFFFFFFFFFFF80FFFFFFE00000000000000000000+7FFFFFF800000FFFFFFE000000000000000000007FFFFFF800000FFFFFFF000000000000+000000007FFFFFF8000007FFFFFF000000000000000000007FFFFFF8000007FFFFFF0000+00000000000000007FFFFFF8000007FFFFFF000000000000000000007FFFFFF8000003FF+FFFF800000000000000000007FFFFFF8000003FFFFFF800000000000000000007FFFFFF8+000001FFFFFF800000000000000000007FFFFFF8000001FFFFFFC0000000000000000000+7FFFFFF8000000FFFFFFC00000000000000000007FFFFFF8000000FFFFFFE00000000000+000000007FFFFFF80000007FFFFFE00000000000000000007FFFFFF80000007FFFFFE000+00000000000000007FFFFFF80000003FFFFFF00000000000000000007FFFFFF80000003F+FFFFF00000000000000000007FFFFFF80000001FFFFFF80000000000000000007FFFFFF8+0000000FFFFFFC0000000000000000007FFFFFF80000000FFFFFFC000000000000000000+7FFFFFF800000007FFFFFE0000000000000000007FFFFFF800000003FFFFFF0000000000+000000007FFFFFF800000003FFFFFF0000000000000000007FFFFFF800000001FFFFFF80+00000000000000007FFFFFF800000000FFFFFFC000000000000000007FFFFFF800000000+7FFFFFE000000000000000007FFFFFF8000000003FFFFFF000000000000000007FFFFFF8+000000001FFFFFF800000000000000007FFFFFF8000000000FFFFFFC0000000000000000+FFFFFFF80000000007FFFFFE0000000000000000FFFFFFF80000000003FFFFFF00000000+00000000FFFFFFF80000000001FFFFFFC000000000000001FFFFFFF80000000000FFFFFF+E000000000000001FFFFFFF800000000007FFFFFF800000000000003FFFFFFF800000000+003FFFFFFE00000000000007FFFFFFF800000000000FFFFFFF0000000000000FFFFFFFF8+000000000007FFFFFFE000000000003FFFFFFFF8000000000001FFFFFFF800000000007F+FFFFFFF8000000000000FFFFFFFF0000000001FFFCFFFFF80000000000003FFFFFFFE000+000007FFF87FFFF80000000000000FFFFFFFFF0000003FFFF03FFFF800000000000003FF+FFFFFFFC0007FFFFE00FFFF800000000000000FFFFFFFFFFFFFFFFFFC007FFF800000000+0000003FFFFFFFFFFFFFFFFF0001FFF8000000000000000FFFFFFFFFFFFFFFFC00007FF8+0000000000000001FFFFFFFFFFFFFFF000001FF800000000000000003FFFFFFFFFFFFFC0+000007F8000000000000000007FFFFFFFFFFFF00000001F80000000000000000007FFFFF+FFFFF8000000007000000000000000000003FFFFFFFF8000000000000000000000000000+000003FFFFE00000000000000000>157 146 115 271 183 71 D[<FFFFFFFFFFFFFFFF+FFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFF+FFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0+FFFFFFFFFFFFFFFFFFC0000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFF+E0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE00000000000+01FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE000+0000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FF+FFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000+000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFF+E0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE00000000000+01FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE000+0000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FF+FFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000+000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFF+E0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE00000000000+01FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE000+0000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FF+FFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000+000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFF+E0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE00000000000+01FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE000+0000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FF+FFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000+000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFF+E0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE00000000000+01FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE000+0000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FF+FFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000+000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFF+E0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE00000000000+01FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE000+0000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FF+FFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000+000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFF+E0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE00000000000+01FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE000+0000000001FFFFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000000001FF+FFFFE0000000000001FFFFFFE0000000000001FFFFFFE0000000FFFFFFFFFFFFFFFFFFC0+FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFF+FFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFC0FFFF+FFFFFFFFFFFFFFC0>74 142 122 269 87 73 D[<FFFFFFFFFFFFFFFFFFF80000000000+00FFFFFFFFFFFFFFFFFFF8000000000000FFFFFFFFFFFFFFFFFFF8000000000000FFFFFF+FFFFFFFFFFFFF8000000000000FFFFFFFFFFFFFFFFFFF8000000000000FFFFFFFFFFFFFF+FFFFF8000000000000FFFFFFFFFFFFFFFFFFF8000000000000FFFFFFFFFFFFFFFFFFF800+0000000000FFFFFFFFFFFFFFFFFFF8000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC000000000+0000000000000003FFFFFFC0000000000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC000000000+0000000000000003FFFFFFC0000000000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC000000000+0000000000000003FFFFFFC0000000000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC000000000+0000000000000003FFFFFFC0000000000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC000000000+0000000000000003FFFFFFC0000000000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC000000000+0000000000000003FFFFFFC0000000000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC000000000+0000000000000003FFFFFFC0000000000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC000000000+0000000000000003FFFFFFC0000000000000000000000003FFFFFFC00000000000000000+00000003FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003+FFFFFFC0000000000000000000000003FFFFFFC0000000000000000000000003FFFFFFC0+00000000000000FF80000003FFFFFFC000000000000000FF80000003FFFFFFC000000000+000000FF80000003FFFFFFC000000000000000FF80000003FFFFFFC000000000000001FF+80000003FFFFFFC000000000000001FF00000003FFFFFFC000000000000001FF00000003+FFFFFFC000000000000001FF00000003FFFFFFC000000000000001FF00000003FFFFFFC0+00000000000001FF00000003FFFFFFC000000000000001FF00000003FFFFFFC000000000+000003FF00000003FFFFFFC000000000000003FF00000003FFFFFFC000000000000003FF+00000003FFFFFFC000000000000003FE00000003FFFFFFC000000000000003FE00000003+FFFFFFC000000000000007FE00000003FFFFFFC000000000000007FE00000003FFFFFFC0+00000000000007FE00000003FFFFFFC000000000000007FE00000003FFFFFFC000000000+00000FFE00000003FFFFFFC00000000000000FFE00000003FFFFFFC00000000000000FFE+00000003FFFFFFC00000000000001FFC00000003FFFFFFC00000000000001FFC00000003+FFFFFFC00000000000003FFC00000003FFFFFFC00000000000003FFC00000003FFFFFFC0+0000000000007FFC00000003FFFFFFC00000000000007FFC00000003FFFFFFC000000000+0000FFFC00000003FFFFFFC0000000000000FFFC00000003FFFFFFC0000000000001FFFC+00000003FFFFFFC0000000000003FFFC00000003FFFFFFC0000000000003FFF800000003+FFFFFFC0000000000007FFF800000003FFFFFFC000000000000FFFF800000003FFFFFFC0+00000000001FFFF800000003FFFFFFC000000000003FFFF800000003FFFFFFC000000000+007FFFF800000003FFFFFFC00000000001FFFFF800000003FFFFFFC00000000003FFFFF8+00000003FFFFFFC00000000007FFFFF800000003FFFFFFC0000000001FFFFFF000000003+FFFFFFC0000000007FFFFFF000000003FFFFFFC000000003FFFFFFF000000003FFFFFFC0+0000001FFFFFFFF000000003FFFFFFC0000003FFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFF+FFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFF0+00FFFFFFFFFFFFFFFFFFFFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFE000FFFFFF+FFFFFFFFFFFFFFFFFFFFFFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFE000FFFFFFFFFFFFFF+FFFFFFFFFFFFFFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFE000>121+142 120 269 140 76 D[<FFFFFFFFFFFFC00000000000000000000000007FFFFFFFFFFF+E0FFFFFFFFFFFFE0000000000000000000000000FFFFFFFFFFFFE0FFFFFFFFFFFFF00000+00000000000000000001FFFFFFFFFFFFE0FFFFFFFFFFFFF8000000000000000000000003+FFFFFFFFFFFFE0FFFFFFFFFFFFF8000000000000000000000003FFFFFFFFFFFFE0FFFFFF+FFFFFFF8000000000000000000000003FFFFFFFFFFFFE0FFFFFFFFFFFFFC000000000000+000000000007FFFFFFFFFFFFE0FFFFFFFFFFFFFC000000000000000000000007FFFFFFFF+FFFFE0FFFFFFFFFFFFFE00000000000000000000000FFFFFFFFFFFFFE0000003FFFFFFFE+00000000000000000000000FFFFFFFF8000000000003FFFFFFFF00000000000000000000+001FEFFFFFF8000000000003FFFFFFFF00000000000000000000001FEFFFFFF800000000+0003FF7FFFFF80000000000000000000003FCFFFFFF8000000000003FF7FFFFF80000000+000000000000003FCFFFFFF8000000000003FF7FFFFF80000000000000000000003FCFFF+FFF8000000000003FF3FFFFFC0000000000000000000007F8FFFFFF8000000000003FF3F+FFFFC0000000000000000000007F8FFFFFF8000000000003FF1FFFFFE000000000000000+000000FF0FFFFFF8000000000003FF1FFFFFE000000000000000000000FF0FFFFFF80000+00000003FF0FFFFFF000000000000000000001FE0FFFFFF8000000000003FF0FFFFFF000+000000000000000001FE0FFFFFF8000000000003FF0FFFFFF000000000000000000001FE+0FFFFFF8000000000003FF07FFFFF800000000000000000003FC0FFFFFF8000000000003+FF07FFFFF800000000000000000003FC0FFFFFF8000000000003FF03FFFFFC0000000000+0000000007F80FFFFFF8000000000003FF03FFFFFC00000000000000000007F80FFFFFF8+000000000003FF01FFFFFE0000000000000000000FF00FFFFFF8000000000003FF01FFFF+FE0000000000000000000FF00FFFFFF8000000000003FF00FFFFFF000000000000000000+1FE00FFFFFF8000000000003FF00FFFFFF0000000000000000001FE00FFFFFF800000000+0003FF00FFFFFF0000000000000000001FE00FFFFFF8000000000003FF007FFFFF800000+0000000000003FC00FFFFFF8000000000003FF007FFFFF8000000000000000003FC00FFF+FFF8000000000003FF003FFFFFC000000000000000007F800FFFFFF8000000000003FF00+3FFFFFC000000000000000007F800FFFFFF8000000000003FF001FFFFFE0000000000000+0000FF000FFFFFF8000000000003FF001FFFFFE00000000000000000FF000FFFFFF80000+00000003FF000FFFFFF00000000000000001FE000FFFFFF8000000000003FF000FFFFFF0+0000000000000001FE000FFFFFF8000000000003FF000FFFFFF00000000000000001FE00+0FFFFFF8000000000003FF0007FFFFF80000000000000003FC000FFFFFF8000000000003+FF0007FFFFF80000000000000003FC000FFFFFF8000000000003FF0003FFFFFC00000000+00000007F8000FFFFFF8000000000003FF0003FFFFFC0000000000000007F8000FFFFFF8+000000000003FF0001FFFFFE000000000000000FF0000FFFFFF8000000000003FF0001FF+FFFE000000000000000FF0000FFFFFF8000000000003FF0001FFFFFE000000000000000F+F0000FFFFFF8000000000003FF0000FFFFFF000000000000001FE0000FFFFFF800000000+0003FF0000FFFFFF000000000000001FE0000FFFFFF8000000000003FF00007FFFFF8000+00000000003FC0000FFFFFF8000000000003FF00007FFFFF800000000000003FC0000FFF+FFF8000000000003FF00003FFFFFC00000000000007F80000FFFFFF8000000000003FF00+003FFFFFC00000000000007F80000FFFFFF8000000000003FF00001FFFFFE00000000000+00FF00000FFFFFF8000000000003FF00001FFFFFE0000000000000FF00000FFFFFF80000+00000003FF00001FFFFFE0000000000000FF00000FFFFFF8000000000003FF00000FFFFF+F0000000000001FE00000FFFFFF8000000000003FF00000FFFFFF0000000000001FE0000+0FFFFFF8000000000003FF000007FFFFF8000000000003FC00000FFFFFF8000000000003+FF000007FFFFF8000000000003FC00000FFFFFF8000000000003FF000003FFFFFC000000+000007F800000FFFFFF8000000000003FF000003FFFFFC000000000007F800000FFFFFF8+000000000003FF000001FFFFFE00000000000FF000000FFFFFF8000000000003FF000001+FFFFFE00000000000FF000000FFFFFF8000000000003FF000001FFFFFE00000000000FF0+00000FFFFFF8000000000003FF000000FFFFFF00000000001FE000000FFFFFF800000000+0003FF000000FFFFFF00000000001FE000000FFFFFF8000000000003FF0000007FFFFF80+000000003FC000000FFFFFF8000000000003FF0000007FFFFF80000000003FC000000FFF+FFF8000000000003FF0000003FFFFFC0000000007F8000000FFFFFF8000000000003FF00+00003FFFFFC0000000007F8000000FFFFFF8000000000003FF0000003FFFFFC000000000+7F8000000FFFFFF8000000000003FF0000001FFFFFE000000000FF0000000FFFFFF80000+00000003FF0000001FFFFFE000000000FF0000000FFFFFF8000000000003FF0000000FFF+FFF000000001FE0000000FFFFFF8000000000003FF0000000FFFFFF000000001FE000000+0FFFFFF8000000000003FF00000007FFFFF800000003FC0000000FFFFFF8000000000003+FF00000007FFFFF800000003FC0000000FFFFFF8000000000003FF00000003FFFFFC0000+0007F80000000FFFFFF8000000000003FF00000003FFFFFC00000007F80000000FFFFFF8+000000000003FF00000003FFFFFC00000007F80000000FFFFFF8000000000003FF000000+01FFFFFE0000000FF00000000FFFFFF8000000000003FF00000001FFFFFE0000000FF000+00000FFFFFF8000000000003FF00000000FFFFFF0000001FE00000000FFFFFF800000000+0003FF00000000FFFFFF0000001FE00000000FFFFFF8000000000003FF000000007FFFFF+8000003FC00000000FFFFFF8000000000003FF000000007FFFFF8000003FC00000000FFF+FFF8000000000003FF000000003FFFFFC000007F800000000FFFFFF8000000000003FF00+0000003FFFFFC000007F800000000FFFFFF8000000000003FF000000003FFFFFC000007F+800000000FFFFFF8000000000003FF000000001FFFFFE00000FF000000000FFFFFF80000+00000003FF000000001FFFFFE00000FF000000000FFFFFF8000000000003FF000000000F+FFFFF00001FE000000000FFFFFF8000000000003FF000000000FFFFFF00001FE00000000+0FFFFFF8000000000003FF0000000007FFFFF80003FC000000000FFFFFF8000000000003+FF0000000007FFFFF80003FC000000000FFFFFF8000000000003FF0000000007FFFFF800+03FC000000000FFFFFF8000000000003FF0000000003FFFFFC0007F8000000000FFFFFF8+000000000003FF0000000003FFFFFC0007F8000000000FFFFFF8000000000003FF000000+0001FFFFFE000FF0000000000FFFFFF8000000000003FF0000000001FFFFFE000FF00000+00000FFFFFF8000000000003FF0000000000FFFFFF001FE0000000000FFFFFF800000000+0003FF0000000000FFFFFF001FE0000000000FFFFFF8000000000003FF00000000007FFF+FF803FC0000000000FFFFFF8000000000003FF00000000007FFFFF803FC0000000000FFF+FFF8000000000003FF00000000007FFFFF803FC0000000000FFFFFF8000000000003FF00+000000003FFFFFC07F80000000000FFFFFF8000000000003FF00000000003FFFFFC07F80+000000000FFFFFF8000000000003FF00000000001FFFFFE0FF00000000000FFFFFF80000+00000003FF00000000001FFFFFE0FF00000000000FFFFFF8000000000003FF0000000000+0FFFFFF1FE00000000000FFFFFF8000000000003FF00000000000FFFFFF1FE0000000000+0FFFFFF8000000000003FF000000000007FFFFFBFC00000000000FFFFFF8000000000003+FF000000000007FFFFFBFC00000000000FFFFFF8000000000003FF000000000007FFFFFB+FC00000000000FFFFFF8000000000003FF000000000003FFFFFFF800000000000FFFFFF8+000000000003FF000000000003FFFFFFF800000000000FFFFFF8000000000003FF000000+000001FFFFFFF000000000000FFFFFF8000000000003FF000000000001FFFFFFF0000000+00000FFFFFF8000000000003FF000000000000FFFFFFE000000000000FFFFFF800000000+0003FF000000000000FFFFFFE000000000000FFFFFF8000000000003FF000000000000FF+FFFFE000000000000FFFFFF8000000000003FF0000000000007FFFFFC000000000000FFF+FFF8000000000003FF0000000000007FFFFFC000000000000FFFFFF8000000000003FF00+00000000003FFFFF8000000000000FFFFFF8000000000003FF0000000000003FFFFF8000+000000000FFFFFF8000000000003FF0000000000001FFFFF0000000000000FFFFFF80000+00000003FF0000000000001FFFFF0000000000000FFFFFF8000000000003FF0000000000+000FFFFE0000000000000FFFFFF8000000000003FF0000000000000FFFFE000000000000+0FFFFFF8000000000003FF0000000000000FFFFE0000000000000FFFFFF8000000000007+FF80000000000007FFFC0000000000000FFFFFF80000000001FFFFFE000000000007FFFC+0000000000000FFFFFF8000000FFFFFFFFFFFFFC00000003FFF800000003FFFFFFFFFFFF+FFFFE0FFFFFFFFFFFFFC00000003FFF800000003FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFC+00000001FFF000000003FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFC00000001FFF000000003+FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFC00000000FFE000000003FFFFFFFFFFFFFFFFE0FF+FFFFFFFFFFFC00000000FFE000000003FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFC00000000+FFE000000003FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFC000000007FC000000003FFFFFFFF+FFFFFFFFE0FFFFFFFFFFFFFC000000001F0000000003FFFFFFFFFFFFFFFFE0>203+142 120 269 220 I[<0000000000000000FFFFF0000000000000000000000000000000+7FFFFFFFE00000000000000000000000000007FFFFFFFFFE000000000000000000000000+007FFFFFFFFFFFE0000000000000000000000003FFFFFFFFFFFFFC000000000000000000+00001FFFFFFFFFFFFFFF80000000000000000000007FFFFFFFFFFFFFFFE0000000000000+00000003FFFFFFFFFFFFFFFFFC0000000000000000000FFFFFFFE0007FFFFFFF00000000+00000000003FFFFFFE000007FFFFFFC000000000000000007FFFFFE00000007FFFFFE000+00000000000001FFFFFF800000001FFFFFF80000000000000007FFFFFE0000000007FFFF+FE000000000000000FFFFFF80000000001FFFFFF000000000000001FFFFFE00000000000+7FFFFF800000000000007FFFFF8000000000001FFFFFE0000000000000FFFFFF00000000+00000FFFFFF0000000000001FFFFFE00000000000007FFFFF8000000000003FFFFFC0000+0000000003FFFFFC000000000007FFFFF000000000000000FFFFFE00000000000FFFFFE0+000000000000007FFFFF00000000001FFFFFE0000000000000007FFFFF80000000003FFF+FFC0000000000000003FFFFFC0000000007FFFFF80000000000000001FFFFFE000000000+FFFFFF00000000000000000FFFFFF000000001FFFFFE000000000000000007FFFFF80000+0001FFFFFE000000000000000007FFFFF800000003FFFFFC000000000000000003FFFFFC+00000007FFFFF8000000000000000001FFFFFE0000000FFFFFF8000000000000000001FF+FFFF0000000FFFFFF0000000000000000000FFFFFF0000001FFFFFF00000000000000000+00FFFFFF8000001FFFFFE00000000000000000007FFFFF8000003FFFFFE0000000000000+0000007FFFFFC000007FFFFFC00000000000000000003FFFFFE000007FFFFFC000000000+00000000003FFFFFE00000FFFFFF800000000000000000001FFFFFF00000FFFFFF800000+000000000000001FFFFFF00001FFFFFF800000000000000000001FFFFFF80001FFFFFF00+0000000000000000000FFFFFF80003FFFFFF000000000000000000000FFFFFFC0003FFFF+FF000000000000000000000FFFFFFC0003FFFFFE0000000000000000000007FFFFFC0007+FFFFFE0000000000000000000007FFFFFE0007FFFFFE0000000000000000000007FFFFFE+0007FFFFFE0000000000000000000007FFFFFE000FFFFFFC0000000000000000000003FF+FFFF000FFFFFFC0000000000000000000003FFFFFF000FFFFFFC00000000000000000000+03FFFFFF001FFFFFFC0000000000000000000003FFFFFF801FFFFFFC0000000000000000+000003FFFFFF801FFFFFF80000000000000000000001FFFFFF803FFFFFF8000000000000+0000000001FFFFFFC03FFFFFF80000000000000000000001FFFFFFC03FFFFFF800000000+00000000000001FFFFFFC03FFFFFF80000000000000000000001FFFFFFC03FFFFFF80000+000000000000000001FFFFFFC07FFFFFF80000000000000000000001FFFFFFE07FFFFFF8+0000000000000000000001FFFFFFE07FFFFFF80000000000000000000001FFFFFFE07FFF+FFF00000000000000000000000FFFFFFE07FFFFFF00000000000000000000000FFFFFFE0+7FFFFFF00000000000000000000000FFFFFFE07FFFFFF00000000000000000000000FFFF+FFE0FFFFFFF00000000000000000000000FFFFFFF0FFFFFFF00000000000000000000000+FFFFFFF0FFFFFFF00000000000000000000000FFFFFFF0FFFFFFF0000000000000000000+0000FFFFFFF0FFFFFFF00000000000000000000000FFFFFFF0FFFFFFF000000000000000+00000000FFFFFFF0FFFFFFF00000000000000000000000FFFFFFF0FFFFFFF00000000000+000000000000FFFFFFF0FFFFFFF00000000000000000000000FFFFFFF0FFFFFFF0000000+0000000000000000FFFFFFF0FFFFFFF00000000000000000000000FFFFFFF0FFFFFFF000+00000000000000000000FFFFFFF0FFFFFFF00000000000000000000000FFFFFFF0FFFFFF+F00000000000000000000000FFFFFFF0FFFFFFF00000000000000000000000FFFFFFF0FF+FFFFF00000000000000000000000FFFFFFF0FFFFFFF00000000000000000000000FFFFFF+F0FFFFFFF00000000000000000000000FFFFFFF0FFFFFFF00000000000000000000000FF+FFFFF07FFFFFF00000000000000000000000FFFFFFE07FFFFFF000000000000000000000+00FFFFFFE07FFFFFF00000000000000000000000FFFFFFE07FFFFFF00000000000000000+000000FFFFFFE07FFFFFF80000000000000000000001FFFFFFE07FFFFFF8000000000000+0000000001FFFFFFE07FFFFFF80000000000000000000001FFFFFFE03FFFFFF800000000+00000000000001FFFFFFC03FFFFFF80000000000000000000001FFFFFFC03FFFFFF80000+000000000000000001FFFFFFC03FFFFFF80000000000000000000001FFFFFFC03FFFFFF8+0000000000000000000001FFFFFFC01FFFFFF80000000000000000000001FFFFFF801FFF+FFFC0000000000000000000003FFFFFF801FFFFFFC0000000000000000000003FFFFFF80+0FFFFFFC0000000000000000000003FFFFFF000FFFFFFC0000000000000000000003FFFF+FF000FFFFFFC0000000000000000000003FFFFFF0007FFFFFE0000000000000000000007+FFFFFE0007FFFFFE0000000000000000000007FFFFFE0007FFFFFE000000000000000000+0007FFFFFE0003FFFFFF000000000000000000000FFFFFFC0003FFFFFF00000000000000+0000000FFFFFFC0001FFFFFF000000000000000000000FFFFFF80001FFFFFF0000000000+00000000000FFFFFF80000FFFFFF800000000000000000001FFFFFF00000FFFFFF800000+000000000000001FFFFFF000007FFFFFC00000000000000000003FFFFFE000007FFFFFC0+0000000000000000003FFFFFE000003FFFFFC000000007FE000000003FFFFFC000003FFF+FFE00000003FFFC00000007FFFFFC000001FFFFFE0000000FFFFF00000007FFFFF800000+1FFFFFF0000003FFFFFC000000FFFFFF8000000FFFFFF800000FFFFFFE000001FFFFFF00+000007FFFFF800001FFFFFFF800001FFFFFE00000007FFFFFC00003FFFFFFFC00003FFFF+FE00000003FFFFFC00007FFC03FFE00003FFFFFC00000001FFFFFE00007FE0007FF00007+FFFFF800000000FFFFFF0000FF80001FF8000FFFFFF0000000007FFFFF8001FF000007F8+001FFFFFE0000000003FFFFF8001FE000003FC001FFFFFC0000000003FFFFFC001FC0000+03FE003FFFFFC0000000001FFFFFE003FC000001FF007FFFFF80000000000FFFFFF003F8+000000FF00FFFFFF000000000007FFFFF803F8000000FF81FFFFFE000000000001FFFFFC+03F80000007FC3FFFFF8000000000000FFFFFF03F80000007FCFFFFFF00000000000007F+FFFF83F80000003FFFFFFFE00000000000003FFFFFE3F80000003FFFFFFFC00000000000+000FFFFFF3FC0000001FFFFFFF0000000000000007FFFFFDFC0000001FFFFFFE00000000+00000001FFFFFFFE0000001FFFFFF80000000000000000FFFFFFFF0000007FFFFFF00000+0000000000003FFFFFFFC00003FFFFFFC000000000000000000FFFFFFFF0007FFFFFFF00+000000000000000003FFFFFFFFFFFFFFFFFC00000000000000000000FFFFFFFFFFFFFFFF+F0000000000000000000001FFFFFFFFFFFFFFF800000000000000000000007FFFFFFFFFF+FFFF8000000000F00000000000007FFFFFFFFFFFFFC000000001F80000000000000FFFFF+FFFFFFFFE000000001F8000000000000007FFFFFFFE3FFE000000001F800000000000000+00FFFFF003FFF000000001F8000000000000000000000003FFF800000001F80000000000+00000000000001FFFC00000003F8000000000000000000000001FFFC00000003F8000000+000000000000000001FFFE00000007F8000000000000000000000001FFFF0000000FF800+0000000000000000000000FFFFC000001FF8000000000000000000000000FFFFE000007F+F8000000000000000000000000FFFFF80003FFF0000000000000000000000000FFFFFF00+3FFFF0000000000000000000000000FFFFFFFFFFFFF00000000000000000000000007FFF+FFFFFFFFF00000000000000000000000007FFFFFFFFFFFF0000000000000000000000000+7FFFFFFFFFFFE00000000000000000000000007FFFFFFFFFFFE000000000000000000000+00003FFFFFFFFFFFE00000000000000000000000003FFFFFFFFFFFE00000000000000000+000000003FFFFFFFFFFFC00000000000000000000000001FFFFFFFFFFFC0000000000000+0000000000001FFFFFFFFFFFC00000000000000000000000001FFFFFFFFFFF8000000000+00000000000000000FFFFFFFFFFF800000000000000000000000000FFFFFFFFFFF000000+0000000000000000000007FFFFFFFFFF0000000000000000000000000007FFFFFFFFFE00+00000000000000000000000003FFFFFFFFFE0000000000000000000000000003FFFFFFFF+FC0000000000000000000000000001FFFFFFFFFC0000000000000000000000000001FFFF+FFFFF80000000000000000000000000000FFFFFFFFF00000000000000000000000000000+7FFFFFFFE000000000000000000000000000007FFFFFFFC0000000000000000000000000+00003FFFFFFF8000000000000000000000000000001FFFFFFF0000000000000000000000+000000000FFFFFFE00000000000000000000000000000003FFFFFC000000000000000000+00000000000001FFFFF0000000000000000000000000000000003FFFC000000000000000+00000000000000000007FE000000>149 184 115 271 175 81 D[<FFFFFFFFFFFFFFFF+FFFFFC00000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC000000000000000000FFFF+FFFFFFFFFFFFFFFFFFFFE00000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFC00000000+00000000FFFFFFFFFFFFFFFFFFFFFFFFFFC000000000000000FFFFFFFFFFFFFFFFFFFFFF+FFFFF000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFE00000000000000FFFFFFFFFF+FFFFFFFFFFFFFFFFFF80000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFE00000000000+00000003FFFFFF800000007FFFFFFFF8000000000000000003FFFFFF8000000001FFFFFF+FC000000000000000003FFFFFF80000000003FFFFFFF000000000000000003FFFFFF8000+00000007FFFFFF800000000000000003FFFFFF800000000001FFFFFFE000000000000000+03FFFFFF8000000000007FFFFFF00000000000000003FFFFFF8000000000003FFFFFF800+00000000000003FFFFFF8000000000001FFFFFFC0000000000000003FFFFFF8000000000+000FFFFFFE0000000000000003FFFFFF80000000000007FFFFFF0000000000000003FFFF+FF80000000000003FFFFFF0000000000000003FFFFFF80000000000001FFFFFF80000000+00000003FFFFFF80000000000001FFFFFFC000000000000003FFFFFF80000000000000FF+FFFFE000000000000003FFFFFF80000000000000FFFFFFE000000000000003FFFFFF8000+0000000000FFFFFFF000000000000003FFFFFF800000000000007FFFFFF0000000000000+03FFFFFF800000000000007FFFFFF800000000000003FFFFFF800000000000007FFFFFF8+00000000000003FFFFFF800000000000007FFFFFF800000000000003FFFFFF8000000000+00003FFFFFFC00000000000003FFFFFF800000000000003FFFFFFC00000000000003FFFF+FF800000000000003FFFFFFC00000000000003FFFFFF800000000000003FFFFFFC000000+00000003FFFFFF800000000000003FFFFFFE00000000000003FFFFFF800000000000003F+FFFFFE00000000000003FFFFFF800000000000003FFFFFFE00000000000003FFFFFF8000+00000000003FFFFFFE00000000000003FFFFFF800000000000003FFFFFFE000000000000+03FFFFFF800000000000003FFFFFFE00000000000003FFFFFF800000000000003FFFFFFE+00000000000003FFFFFF800000000000003FFFFFFE00000000000003FFFFFF8000000000+00003FFFFFFE00000000000003FFFFFF800000000000003FFFFFFE00000000000003FFFF+FF800000000000003FFFFFFC00000000000003FFFFFF800000000000003FFFFFFC000000+00000003FFFFFF800000000000003FFFFFFC00000000000003FFFFFF800000000000007F+FFFFFC00000000000003FFFFFF800000000000007FFFFFF800000000000003FFFFFF8000+00000000007FFFFFF800000000000003FFFFFF800000000000007FFFFFF0000000000000+03FFFFFF800000000000007FFFFFF000000000000003FFFFFF80000000000000FFFFFFE0+00000000000003FFFFFF80000000000000FFFFFFE000000000000003FFFFFF8000000000+0000FFFFFFC000000000000003FFFFFF80000000000001FFFFFF8000000000000003FFFF+FF80000000000001FFFFFF0000000000000003FFFFFF80000000000003FFFFFF00000000+00000003FFFFFF80000000000007FFFFFE0000000000000003FFFFFF8000000000000FFF+FFFC0000000000000003FFFFFF8000000000001FFFFFF80000000000000003FFFFFF8000+000000003FFFFFF00000000000000003FFFFFF800000000000FFFFFFC000000000000000+03FFFFFF800000000001FFFFFF800000000000000003FFFFFF800000000007FFFFFE0000+00000000000003FFFFFF80000000003FFFFFFC000000000000000003FFFFFF8000000001+FFFFFFF0000000000000000003FFFFFF800000007FFFFFFFC0000000000000000003FFFF+FFFFFFFFFFFFFFFFFF00000000000000000003FFFFFFFFFFFFFFFFFFFFF8000000000000+00000003FFFFFFFFFFFFFFFFFFFFC000000000000000000003FFFFFFFFFFFFFFFFFFFE00+00000000000000000003FFFFFFFFFFFFFFFFFFFC0000000000000000000003FFFFFFFFFF+FFFFFFFFFF8000000000000000000003FFFFFFFFFFFFFFFFFFFFE0000000000000000000+03FFFFFF80000003FFFFFFF800000000000000000003FFFFFF800000003FFFFFFE000000+00000000000003FFFFFF800000000FFFFFFF00000000000000000003FFFFFF8000000003+FFFFFFC0000000000000000003FFFFFF8000000001FFFFFFE0000000000000000003FFFF+FF80000000007FFFFFF0000000000000000003FFFFFF80000000003FFFFFF80000000000+00000003FFFFFF80000000001FFFFFFC000000000000000003FFFFFF80000000000FFFFF+FE000000000000000003FFFFFF80000000000FFFFFFF000000000000000003FFFFFF8000+00000007FFFFFF800000000000000003FFFFFF800000000003FFFFFF8000000000000000+03FFFFFF800000000003FFFFFFC00000000000000003FFFFFF800000000001FFFFFFC000+00000000000003FFFFFF800000000001FFFFFFE00000000000000003FFFFFF8000000000+00FFFFFFE00000000000000003FFFFFF800000000000FFFFFFF00000000000000003FFFF+FF800000000000FFFFFFF00000000000000003FFFFFF800000000000FFFFFFF000000000+00000003FFFFFF8000000000007FFFFFF00000000000000003FFFFFF8000000000007FFF+FFF80000000000000003FFFFFF8000000000007FFFFFF80000000000000003FFFFFF8000+000000007FFFFFF80000000000000003FFFFFF8000000000007FFFFFF800000000000000+03FFFFFF8000000000007FFFFFF80000000000000003FFFFFF8000000000007FFFFFF800+00000000000003FFFFFF8000000000007FFFFFF80000000000000003FFFFFF8000000000+007FFFFFF80000000000000003FFFFFF8000000000007FFFFFF80000000000000003FFFF+FF8000000000007FFFFFF80000000000000003FFFFFF8000000000007FFFFFF800000000+00000003FFFFFF8000000000007FFFFFF80000000000000003FFFFFF8000000000007FFF+FFF80000000000000003FFFFFF8000000000007FFFFFFC0000000000000003FFFFFF8000+000000007FFFFFFC0000000000000003FFFFFF8000000000007FFFFFFC00000000000000+03FFFFFF8000000000007FFFFFFC0000000000000003FFFFFF8000000000007FFFFFFC00+00000000000003FFFFFF8000000000007FFFFFFC0000000000000003FFFFFF8000000000+007FFFFFFC0000000000000003FFFFFF8000000000007FFFFFFC0000000000000003FFFF+FF8000000000007FFFFFFC0000000000000003FFFFFF8000000000007FFFFFFC00000000+00000003FFFFFF8000000000007FFFFFFC0000000000000003FFFFFF8000000000007FFF+FFFC0000000000000003FFFFFF8000000000007FFFFFFC0000001FC0000003FFFFFF8000+000000007FFFFFFC0000003FE0000003FFFFFF8000000000007FFFFFFE0000003FE00000+03FFFFFF8000000000003FFFFFFE0000003FE0000003FFFFFF8000000000003FFFFFFE00+00003FE0000003FFFFFF8000000000003FFFFFFE0000003FE0000003FFFFFF8000000000+001FFFFFFF0000003FE0000003FFFFFF8000000000001FFFFFFF0000007FE0000003FFFF+FF8000000000001FFFFFFF0000007FC0000003FFFFFF8000000000000FFFFFFF8000007F+C0000003FFFFFF80000000000007FFFFFF800000FFC0000003FFFFFF80000000000007FF+FFFFC00000FF80000003FFFFFF80000000000003FFFFFFC00001FF80000003FFFFFF8000+0000000001FFFFFFE00001FF00FFFFFFFFFFFFFFFFFE00000000FFFFFFF00003FF00FFFF+FFFFFFFFFFFFFE000000007FFFFFF80007FE00FFFFFFFFFFFFFFFFFE000000003FFFFFFE+001FFC00FFFFFFFFFFFFFFFFFE000000001FFFFFFFC07FF800FFFFFFFFFFFFFFFFFE0000+000007FFFFFFFFFFF000FFFFFFFFFFFFFFFFFE0000000001FFFFFFFFFFE000FFFFFFFFFF+FFFFFFFE00000000007FFFFFFFFFC000FFFFFFFFFFFFFFFFFE00000000001FFFFFFFFF80+00FFFFFFFFFFFFFFFFFE000000000003FFFFFFFE00000000000000000000000000000000+001FFFFFF80000000000000000000000000000000000003FFFC00000>163+144 120 269 173 I[<000000000FFFF8000000003E0000000001FFFFFFE00000003F00+0000001FFFFFFFFE0000007F000000007FFFFFFFFFC00000FF00000003FFFFFFFFFFF000+01FF0000000FFFFFFFFFFFFC0003FF0000001FFFFFFFFFFFFF0007FF0000007FFFFFFFFF+FFFFC00FFF000000FFFFFE000FFFFFF01FFF000003FFFFC000007FFFF83FFF000007FFFF+00000007FFFC7FFF00000FFFFC00000000FFFFFFFF00001FFFF0000000003FFFFFFF0000+3FFFE0000000000FFFFFFF00007FFF800000000007FFFFFF0000FFFF800000000001FFFF+FF0000FFFF000000000000FFFFFF0001FFFE0000000000007FFFFF0003FFFC0000000000+001FFFFF0003FFFC0000000000000FFFFF0007FFF800000000000007FFFF0007FFF80000+0000000007FFFF000FFFF000000000000003FFFF000FFFF000000000000001FFFF001FFF+F000000000000000FFFF001FFFF000000000000000FFFF003FFFE0000000000000007FFF+003FFFE0000000000000003FFF003FFFE0000000000000003FFF007FFFE0000000000000+001FFF007FFFE0000000000000001FFF007FFFE0000000000000001FFF007FFFE0000000+000000000FFF007FFFE0000000000000000FFF00FFFFE00000000000000007FF00FFFFF0+0000000000000007FF00FFFFF00000000000000007FF00FFFFF00000000000000007FF00+FFFFF80000000000000003FF00FFFFF80000000000000003FF00FFFFFC00000000000000+03FF00FFFFFC0000000000000003FF00FFFFFE0000000000000001FF00FFFFFF00000000+00000001FF00FFFFFF0000000000000001FF00FFFFFF8000000000000001FF00FFFFFFC0+00000000000001FF00FFFFFFF000000000000000FE007FFFFFF80000000000000000007F+FFFFFE0000000000000000007FFFFFFF0000000000000000007FFFFFFFE0000000000000+00003FFFFFFFFE00000000000000003FFFFFFFFFE0000000000000003FFFFFFFFFFF0000+00000000001FFFFFFFFFFFF00000000000001FFFFFFFFFFFFF8000000000000FFFFFFFFF+FFFFF800000000000FFFFFFFFFFFFFFFC00000000007FFFFFFFFFFFFFFFC0000000007FF+FFFFFFFFFFFFFF8000000003FFFFFFFFFFFFFFFFE000000003FFFFFFFFFFFFFFFFF80000+0001FFFFFFFFFFFFFFFFFE00000000FFFFFFFFFFFFFFFFFF800000007FFFFFFFFFFFFFFF+FFE00000007FFFFFFFFFFFFFFFFFF00000003FFFFFFFFFFFFFFFFFF80000001FFFFFFFFF+FFFFFFFFFC0000000FFFFFFFFFFFFFFFFFFF00000007FFFFFFFFFFFFFFFFFF80000003FF+FFFFFFFFFFFFFFFFC0000000FFFFFFFFFFFFFFFFFFE00000007FFFFFFFFFFFFFFFFFE000+00003FFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFF800000003FFFFFFFFFFFFFF+FFFC00000000FFFFFFFFFFFFFFFFFE000000003FFFFFFFFFFFFFFFFE000000000FFFFFFF+FFFFFFFFFF0000000001FFFFFFFFFFFFFFFF00000000001FFFFFFFFFFFFFFF8000000000+01FFFFFFFFFFFFFF8000000000000FFFFFFFFFFFFFC00000000000007FFFFFFFFFFFC000+000000000007FFFFFFFFFFE0000000000000003FFFFFFFFFE00000000000000003FFFFFF+FFF000000000000000003FFFFFFFF000000000000000000FFFFFFFF00000000000000000+03FFFFFFF8000000000000000000FFFFFFF80000000000000000007FFFFFF80000000000+000000001FFFFFF80000000000000000000FFFFFF800000000000000000007FFFFFC0000+0000000000000007FFFFFC00000000000000000003FFFFFC7F000000000000000001FFFF+FCFF800000000000000000FFFFFCFF800000000000000000FFFFFCFF8000000000000000+007FFFFCFF8000000000000000007FFFFCFF8000000000000000007FFFFCFF8000000000+000000003FFFFCFF8000000000000000003FFFFCFF8000000000000000003FFFFCFFC000+000000000000001FFFFCFFC000000000000000001FFFFCFFC000000000000000001FFFFC+FFC000000000000000001FFFF8FFE000000000000000001FFFF8FFE00000000000000000+1FFFF8FFE000000000000000001FFFF8FFF000000000000000001FFFF8FFF00000000000+0000001FFFF0FFF000000000000000001FFFF0FFF800000000000000003FFFF0FFFC0000+0000000000003FFFE0FFFC00000000000000003FFFE0FFFE00000000000000003FFFE0FF+FF00000000000000007FFFC0FFFF00000000000000007FFFC0FFFF80000000000000007F+FF80FFFFC000000000000000FFFF80FFFFE000000000000000FFFF00FFFFF80000000000+0001FFFF00FFFFFC00000000000003FFFE00FFFFFE00000000000003FFFC00FFFFFF8000+0000000007FFFC00FFFFFFE000000000000FFFF800FFFFFFF800000000001FFFF000FFFF+FFFE00000000007FFFE000FFFFFFFFC000000000FFFFC000FFFFFFFFF800000003FFFF80+00FFFE7FFFFF8000001FFFFF0000FFFC1FFFFFFF0001FFFFFE0000FFF807FFFFFFFFFFFF+FFFC0000FFF003FFFFFFFFFFFFFFF00000FFE000FFFFFFFFFFFFFFE00000FFC0001FFFFF+FFFFFFFF800000FF800007FFFFFFFFFFFE000000FF000000FFFFFFFFFFF8000000FE0000+001FFFFFFFFFC0000000FC00000000FFFFFFFC000000007C0000000001FFFF8000000000+>102 146 115 271 129 I[<0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000FFFFFFFFF+FFFFFFFFFFFFFFFFFFFFFFFFF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000FFFFF+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000F+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC+001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF+FFFC001FFFFFFFC000001FFFFFFE000001FFFFFFFC001FFFFFF80000001FFFFFFE000000+0FFFFFFC001FFFFFC00000001FFFFFFE00000001FFFFFC001FFFFF000000001FFFFFFE00+0000007FFFFC001FFFFC000000001FFFFFFE000000001FFFFC001FFFF8000000001FFFFF+FE0000000007FFFC001FFFE0000000001FFFFFFE0000000003FFFC001FFFC0000000001F+FFFFFE0000000001FFFC001FFF80000000001FFFFFFE0000000000FFFC003FFF00000000+001FFFFFFE00000000007FFE003FFF00000000001FFFFFFE00000000007FFE003FFE0000+0000001FFFFFFE00000000003FFE003FFC00000000001FFFFFFE00000000001FFE003FFC+00000000001FFFFFFE00000000001FFE003FFC00000000001FFFFFFE00000000001FFE00+3FF800000000001FFFFFFE00000000000FFE003FF800000000001FFFFFFE00000000000F+FE003FF000000000001FFFFFFE000000000007FE003FF000000000001FFFFFFE00000000+0007FE003FF000000000001FFFFFFE000000000007FE003FF000000000001FFFFFFE0000+00000007FE003FE000000000001FFFFFFE000000000003FE007FE000000000001FFFFFFE+000000000003FF007FE000000000001FFFFFFE000000000003FF007FE000000000001FFF+FFFE000000000003FF007FE000000000001FFFFFFE000000000003FF007FC00000000000+1FFFFFFE000000000001FF007FC000000000001FFFFFFE000000000001FF007FC0000000+00001FFFFFFE000000000001FF007FC000000000001FFFFFFE000000000001FF007FC000+000000001FFFFFFE000000000001FF007FC000000000001FFFFFFE000000000001FF007F+C000000000001FFFFFFE000000000001FF007FC000000000001FFFFFFE000000000001FF+00FF8000000000001FFFFFFE000000000000FF80FF8000000000001FFFFFFE0000000000+00FF80FF8000000000001FFFFFFE000000000000FF80FF8000000000001FFFFFFE000000+000000FF80FF8000000000001FFFFFFE000000000000FF80FF8000000000001FFFFFFE00+0000000000FF80000000000000001FFFFFFE0000000000000000000000000000001FFFFF+FE0000000000000000000000000000001FFFFFFE0000000000000000000000000000001F+FFFFFE0000000000000000000000000000001FFFFFFE0000000000000000000000000000+001FFFFFFE0000000000000000000000000000001FFFFFFE000000000000000000000000+0000001FFFFFFE0000000000000000000000000000001FFFFFFE00000000000000000000+00000000001FFFFFFE0000000000000000000000000000001FFFFFFE0000000000000000+000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE000000000000+0000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE00000000+00000000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE0000+000000000000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE+0000000000000000000000000000001FFFFFFE0000000000000000000000000000001FFF+FFFE0000000000000000000000000000001FFFFFFE000000000000000000000000000000+1FFFFFFE0000000000000000000000000000001FFFFFFE00000000000000000000000000+00001FFFFFFE0000000000000000000000000000001FFFFFFE0000000000000000000000+000000001FFFFFFE0000000000000000000000000000001FFFFFFE000000000000000000+0000000000001FFFFFFE0000000000000000000000000000001FFFFFFE00000000000000+00000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE0000000000+000000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE000000+0000000000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE00+00000000000000000000000000001FFFFFFE0000000000000000000000000000001FFFFF+FE0000000000000000000000000000001FFFFFFE0000000000000000000000000000001F+FFFFFE0000000000000000000000000000001FFFFFFE0000000000000000000000000000+001FFFFFFE0000000000000000000000000000001FFFFFFE000000000000000000000000+0000001FFFFFFE0000000000000000000000000000001FFFFFFE00000000000000000000+00000000001FFFFFFE0000000000000000000000000000001FFFFFFE0000000000000000+000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE000000000000+0000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE00000000+00000000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE0000+000000000000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE+0000000000000000000000000000001FFFFFFE0000000000000000000000000000001FFF+FFFE0000000000000000000000000000001FFFFFFE000000000000000000000000000000+1FFFFFFE0000000000000000000000000000001FFFFFFE00000000000000000000000000+00001FFFFFFE0000000000000000000000000000001FFFFFFE0000000000000000000000+000000001FFFFFFE0000000000000000000000000000001FFFFFFE000000000000000000+0000000000001FFFFFFE0000000000000000000000000000001FFFFFFE00000000000000+00000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE0000000000+000000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE000000+0000000000000000000000001FFFFFFE0000000000000000000000000000001FFFFFFE00+00000000000000000000000000001FFFFFFE0000000000000000000000000000001FFFFF+FE0000000000000000000000000000001FFFFFFE0000000000000000000000000000001F+FFFFFE0000000000000000000000000000001FFFFFFE0000000000000000000000000000+001FFFFFFE0000000000000000000000000000001FFFFFFE000000000000000000000000+0000001FFFFFFE0000000000000000000000000000001FFFFFFE00000000000000000000+00000000001FFFFFFE00000000000000000000000FFFFFFFFFFFFFFFFFFFFFFC00000000+0000000FFFFFFFFFFFFFFFFFFFFFFC000000000000000FFFFFFFFFFFFFFFFFFFFFFC0000+00000000000FFFFFFFFFFFFFFFFFFFFFFC000000000000000FFFFFFFFFFFFFFFFFFFFFFC+000000000000000FFFFFFFFFFFFFFFFFFFFFFC000000000000000FFFFFFFFFFFFFFFFFFF+FFFC000000000000000FFFFFFFFFFFFFFFFFFFFFFC000000000000000FFFFFFFFFFFFFFF+FFFFFFFC00000000>145 140 120 267 162 I[<FFFFFFFFFFFFFFFFE0000000000007FF+FFFFFFFFF8FFFFFFFFFFFFFFFFE0000000000007FFFFFFFFFFF8FFFFFFFFFFFFFFFFE000+0000000007FFFFFFFFFFF8FFFFFFFFFFFFFFFFE0000000000007FFFFFFFFFFF8FFFFFFFF+FFFFFFFFE0000000000007FFFFFFFFFFF8FFFFFFFFFFFFFFFFE0000000000007FFFFFFFF+FFF8FFFFFFFFFFFFFFFFE0000000000007FFFFFFFFFFF8FFFFFFFFFFFFFFFFE000000000+0007FFFFFFFFFFF8FFFFFFFFFFFFFFFFE0000000000007FFFFFFFFFFF800001FFFFFFF00+000000000000000001FFFFFF000000001FFFFFFF8000000000000000000007FFE0000000+000FFFFFFF8000000000000000000003FF80000000000FFFFFFFC0000000000000000000+03FF80000000000FFFFFFFC000000000000000000003FF800000000007FFFFFFC0000000+00000000000007FF000000000007FFFFFFE000000000000000000007FF000000000003FF+FFFFE00000000000000000000FFE000000000003FFFFFFF00000000000000000000FFE00+0000000001FFFFFFF00000000000000000001FFC000000000001FFFFFFF8000000000000+0000001FFC000000000000FFFFFFF80000000000000000001FF8000000000000FFFFFFF8+0000000000000000003FF8000000000000FFFFFFFC0000000000000000003FF800000000+00007FFFFFFC0000000000000000007FF00000000000007FFFFFFE000000000000000000+7FF00000000000003FFFFFFE000000000000000000FFE00000000000003FFFFFFF000000+000000000000FFE00000000000001FFFFFFF000000000000000000FFC00000000000001F+FFFFFF000000000000000001FFC00000000000001FFFFFFF800000000000000001FFC000+00000000000FFFFFFF800000000000000003FF800000000000000FFFFFFFC00000000000+000003FF8000000000000007FFFFFFC00000000000000007FF0000000000000007FFFFFF+E00000000000000007FF0000000000000003FFFFFFE00000000000000007FE0000000000+000003FFFFFFE0000000000000000FFE0000000000000003FFFFFFF0000000000000000F+FE0000000000000001FFFFFFF0000000000000001FFC0000000000000001FFFFFFF80000+00000000001FFC0000000000000000FFFFFFF8000000000000003FF80000000000000000+FFFFFFFC000000000000003FF800000000000000007FFFFFFC000000000000007FF00000+0000000000007FFFFFFE000000000000007FF000000000000000007FFFFFFE0000000000+00007FF000000000000000003FFFFFFE00000000000000FFE000000000000000003FFFFF+FF00000000000000FFE000000000000000001FFFFFFF00000000000001FFC00000000000+0000001FFFFFFF80000000000001FFC000000000000000000FFFFFFF80000000000003FF+8000000000000000000FFFFFFFC0000000000003FF80000000000000000007FFFFFFC000+0000000003FF00000000000000000007FFFFFFC0000000000007FF000000000000000000+07FFFFFFE0000000000007FF00000000000000000003FFFFFFE000000000000FFE000000+00000000000003FFFFFFF000000000000FFE00000000000000000001FFFFFFF000000000+001FFC00000000000000000001FFFFFFF800000000001FFC00000000000000000000FFFF+FFF800000000001FF800000000000000000000FFFFFFF800000000003FF8000000000000+00000000FFFFFFFC00000000003FF8000000000000000000007FFFFFFC00000000007FF0+000000000000000000007FFFFFFE00000000007FF0000000000000000000003FFFFFFE00+00000000FFE0000000000000000000003FFFFFFF0000000000FFE0000000000000000000+001FFFFFFF0000000000FFC0000000000000000000001FFFFFFF0000000001FFC0000000+000000000000001FFFFFFF8000000001FFC0000000000000000000000FFFFFFF80000000+03FF80000000000000000000000FFFFFFFC000000003FF800000000000000000000007FF+FFFFC000000007FF000000000000000000000007FFFFFFE000000007FF00000000000000+0000000003FFFFFFE00000000FFE000000000000000000000003FFFFFFF00000000FFE00+0000000000000000000003FFFFFFF00000000FFE000000000000000000000001FFFFFFF0+0000001FFC000000000000000000000001FFFFFFF80000001FFC00000000000000000000+0000FFFFFFF80000003FF8000000000000000000000000FFFFFFFC0000003FF800000000+00000000000000007FFFFFFC0000007FF00000000000000000000000007FFFFFFE000000+7FF00000000000000000000000003FFFFFFE0000007FE00000000000000000000000003F+FFFFFE000000FFE00000000000000000000000003FFFFFFF000000FFE000000000000000+00000000001FFFFFFF000001FFC00000000000000000000000001FFFFFFF800001FFC000+00000000000000000000000FFFFFFF800003FF800000000000000000000000000FFFFFFF+C00003FF8000000000000000000000000007FFFFFFC00003FF0000000000000000000000+000007FFFFFFC00007FF0000000000000000000000000007FFFFFFE00007FF0000000000+000000000000000003FFFFFFE0000FFE0000000000000000000000000003FFFFFFF0000F+FE0000000000000000000000000001FFFFFFF0001FFC0000000000000000000000000001+FFFFFFF8001FFC0000000000000000000000000000FFFFFFF8001FF80000000000000000+000000000000FFFFFFFC003FF80000000000000000000000000000FFFFFFFC003FF80000+0000000000000000000000007FFFFFFC007FF000000000000000000000000000007FFFFF+FE007FF000000000000000000000000000003FFFFFFE00FFE00000000000000000000000+0000003FFFFFFF00FFE000000000000000000000000000001FFFFFFF01FFC00000000000+0000000000000000001FFFFFFF81FFC000000000000000000000000000001FFFFFFF81FF+C000000000000000000000000000000FFFFFFF83FF800000000000000000000000000000+0FFFFFFFC3FF80000000000000000000000000000007FFFFFFC7FF000000000000000000+00000000000007FFFFFFE7FF00000000000000000000000000000003FFFFFFEFFE000000+00000000000000000000000003FFFFFFFFFE00000000000000000000000000000001FFFF+FFFFFC00000000000000000000000000000001FFFFFFFFFC000000000000000000000000+00000001FFFFFFFFFC00000000000000000000000000000000FFFFFFFFF8000000000000+00000000000000000000FFFFFFFFF8000000000000000000000000000000007FFFFFFFF0+000000000000000000000000000000007FFFFFFFF0000000000000000000000000000000+003FFFFFFFE0000000000000000000000000000000003FFFFFFFE0000000000000000000+000000000000003FFFFFFFE0000000000000000000000000000000001FFFFFFFC0000000+000000000000000000000000001FFFFFFFC0000000000000000000000000000000000FFF+FFFF80000000000000000000000000000000000FFFFFFF80000000000000000000000000+0000000007FFFFFF000000000000000000000000000000000007FFFFFF00000000000000+0000000000000000000007FFFFFF000000000000000000000000000000000003FFFFFE00+0000000000000000000000000000000003FFFFFE00000000000000000000000000000000+0001FFFFFC000000000000000000000000000000000001FFFFFC00000000000000000000+0000000000000000FFFFF8000000000000000000000000000000000000FFFFF800000000+0000000000000000000000000000FFFFF80000000000000000000000000000000000007F+FFF00000000000000000000000000000000000007FFFF000000000000000000000000000+00000000003FFFE00000000000000000000000000000000000003FFFE000000000000000+00000000000000000000001FFFC00000000000000000000000000000000000001FFFC000+00000000000000000000000000000000000FFF8000000000000000000000000000000000+00000FFF8000000000000000000000000000000000000007FF0000000000000000000000+000000000000000003FE00000000000000000000>165 144 123+269 176 86 D<00000000FFFFFC000000000000000000007FFFFFFFF000000000000000+0007FFFFFFFFFF00000000000000003FFFFFFFFFFFE000000000000000FFFFFFFFFFFFF8+00000000000001FFFFFFFFFFFFFE00000000000007FFFFFFFFFFFFFF8000000000000FFF+FFC0007FFFFFE000000000001FFFE000000FFFFFF000000000003FFFF0000003FFFFF800+000000007FFFF8000000FFFFFE00000000007FFFFC0000007FFFFF0000000000FFFFFC00+00003FFFFF8000000000FFFFFE0000001FFFFFC000000000FFFFFE0000000FFFFFC00000+0001FFFFFF00000007FFFFE000000001FFFFFF00000003FFFFF000000001FFFFFF000000+03FFFFF000000001FFFFFF00000001FFFFF800000001FFFFFF00000001FFFFF800000001+FFFFFF00000001FFFFFC00000001FFFFFF00000000FFFFFC00000001FFFFFF00000000FF+FFFE00000000FFFFFE00000000FFFFFE00000000FFFFFE00000000FFFFFE000000007FFF+FC000000007FFFFE000000007FFFFC000000007FFFFF000000003FFFF8000000007FFFFF+000000001FFFF0000000007FFFFF0000000007FFC0000000007FFFFF0000000001FF0000+0000007FFFFF00000000000000000000007FFFFF00000000000000000000007FFFFF0000+0000000000000000007FFFFF00000000000000000000007FFFFF00000000000000000000+007FFFFF00000000000000000000007FFFFF00000000000000000000007FFFFF00000000+000000000000007FFFFF00000000000000000000007FFFFF00000000000000000003FFFF+FFFF00000000000000000FFFFFFFFFFF0000000000000003FFFFFFFFFFFF000000000000+007FFFFFFFFFFFFF00000000000007FFFFFFFFFFFFFF0000000000003FFFFFFFFFFFFFFF+000000000001FFFFFFFF807FFFFF00000000000FFFFFFFE0007FFFFF00000000003FFFFF+FC00007FFFFF0000000000FFFFFFE000007FFFFF0000000003FFFFFF0000007FFFFF0000+000007FFFFFC0000007FFFFF000000001FFFFFF00000007FFFFF000000003FFFFFC00000+007FFFFF000000007FFFFF800000007FFFFF00000000FFFFFE000000007FFFFF00000001+FFFFFC000000007FFFFF00000003FFFFF8000000007FFFFF00000007FFFFF0000000007F+FFFF0000000FFFFFE0000000007FFFFF0000001FFFFFE0000000007FFFFF0000001FFFFF+C0000000007FFFFF0000003FFFFF80000000007FFFFF0000003FFFFF80000000007FFFFF+0000007FFFFF00000000007FFFFF0000007FFFFF00000000007FFFFF0000007FFFFF0000+0000007FFFFF000000FFFFFF00000000007FFFFF000000FFFFFE00000000007FFFFF0000+00FFFFFE00000000007FFFFF000000FFFFFE00000000007FFFFF000000FFFFFE00000000+00FFFFFF000000FFFFFE0000000000FFFFFF000000FFFFFE0000000000FFFFFF000000FF+FFFE0000000000FFFFFF000000FFFFFE0000000001FFFFFF000000FFFFFF0000000001FF+FFFF0000007FFFFF0000000003FFFFFF0000007FFFFF0000000007EFFFFF0000003FFFFF+800000000FEFFFFF0000003FFFFFC00000000FCFFFFF0000001FFFFFC00000003FCFFFFF+0000001FFFFFE00000007F8FFFFF8000000FFFFFF0000000FF0FFFFFE0000007FFFFFC00+0003FE0FFFFFFE000003FFFFFE00000FFC07FFFFFFFF0001FFFFFF80003FF807FFFFFFFF+8000FFFFFFF803FFF003FFFFFFFF80003FFFFFFFFFFFE001FFFFFFFF80000FFFFFFFFFFF+8000FFFFFFFF800003FFFFFFFFFF00007FFFFFFF800000FFFFFFFFFC00001FFFFFFF8000+001FFFFFFFF0000007FFFFFF80000001FFFFFF800000007FFFFF0000000007FFF8000000+0000000000695F79DD71>97 D[<0000001FF000000000000000000000007FFFFFF00000+0000000000000000FFFFFFFFF000000000000000000000FFFFFFFFF00000000000000000+0000FFFFFFFFF000000000000000000000FFFFFFFFF000000000000000000000FFFFFFFF+F000000000000000000000FFFFFFFFF000000000000000000000FFFFFFFFF00000000000+0000000000FFFFFFFFF000000000000000000000FFFFFFFFF00000000000000000000000+3FFFFFF0000000000000000000000007FFFFF0000000000000000000000007FFFFF00000+00000000000000000003FFFFF0000000000000000000000003FFFFF00000000000000000+00000003FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFF+F0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000000000+00000000000003FFFFF0000000000000000000000003FFFFF00000000000000000000000+03FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000+00000000000000000003FFFFF0000000000000000000000003FFFFF00000000000000000+00000003FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFF+F0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000000000+00000000000003FFFFF0000000000000000000000003FFFFF00000000000000000000000+03FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000+00000000000000000003FFFFF0000000000000000000000003FFFFF00000000000000000+00000003FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFF+F0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000000000+00000000000003FFFFF0000000000000000000000003FFFFF00000000000000000000000+03FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000+00000000000000000003FFFFF000003FFFC000000000000003FFFFF00007FFFFFE000000+00000003FFFFF0003FFFFFFFE0000000000003FFFFF001FFFFFFFFF8000000000003FFFF+F007FFFFFFFFFF000000000003FFFFF01FFFFFFFFFFFC00000000003FFFFF07FFFFFFFFF+FFF00000000003FFFFF0FFFFC00FFFFFF80000000003FFFFF3FFFC0000FFFFFE00000000+03FFFFF7FFE000003FFFFF0000000003FFFFFFFF8000000FFFFF8000000003FFFFFFFE00+000007FFFFE000000003FFFFFFF800000001FFFFF000000003FFFFFFF000000000FFFFF8+00000003FFFFFFE0000000007FFFFC00000003FFFFFF80000000003FFFFC00000003FFFF+FF00000000003FFFFE00000003FFFFFE00000000001FFFFF00000003FFFFFC0000000000+0FFFFF80000003FFFFFC00000000000FFFFF80000003FFFFF8000000000007FFFFC00000+03FFFFF8000000000007FFFFE0000003FFFFF8000000000007FFFFE0000003FFFFF80000+00000003FFFFF0000003FFFFF8000000000003FFFFF0000003FFFFF8000000000003FFFF+F8000003FFFFF8000000000001FFFFF8000003FFFFF8000000000001FFFFF8000003FFFF+F8000000000001FFFFFC000003FFFFF8000000000001FFFFFC000003FFFFF80000000000+01FFFFFE000003FFFFF8000000000001FFFFFE000003FFFFF8000000000001FFFFFE0000+03FFFFF8000000000000FFFFFE000003FFFFF8000000000000FFFFFF000003FFFFF80000+00000000FFFFFF000003FFFFF8000000000000FFFFFF000003FFFFF8000000000000FFFF+FF000003FFFFF8000000000000FFFFFF000003FFFFF8000000000000FFFFFF800003FFFF+F8000000000000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF80000000000+00FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF8000+03FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF80000+00000000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFF+FF800003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFF+F8000000000000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF80000000000+00FFFFFF800003FFFFF8000000000000FFFFFF000003FFFFF8000000000000FFFFFF0000+03FFFFF8000000000000FFFFFF000003FFFFF8000000000000FFFFFF000003FFFFF80000+00000000FFFFFF000003FFFFF8000000000000FFFFFE000003FFFFF8000000000001FFFF+FE000003FFFFF8000000000001FFFFFE000003FFFFF8000000000001FFFFFC000003FFFF+F8000000000001FFFFFC000003FFFFF8000000000001FFFFFC000003FFFFF80000000000+01FFFFF8000003FFFFF8000000000003FFFFF8000003FFFFF8000000000003FFFFF00000+03FFFFF8000000000003FFFFF0000003FFFFF8000000000007FFFFE0000003FFFFF80000+00000007FFFFE0000003FFFFF8000000000007FFFFC0000003FFFFF800000000000FFFFF+C0000003FFFFFC00000000000FFFFF80000003FFFFFE00000000001FFFFF00000003FFFF+FF00000000003FFFFE00000003FFFFFF00000000003FFFFE00000003FFFFFF8000000000+7FFFFC00000003FFFFFFC000000000FFFFF800000003FFFFFFF000000001FFFFF0000000+03FFFFBFF800000003FFFFE000000003FFFF1FFC0000000FFFFFC000000003FFFE0FFF00+00001FFFFF0000000003FFFE07FFC000007FFFFE0000000003FFFC03FFF00003FFFFFC00+00000003FFF800FFFF003FFFFFF00000000003FFF0007FFFFFFFFFFFC00000000003FFE0+001FFFFFFFFFFF000000000003FFC0000FFFFFFFFFFC000000000003FF800003FFFFFFFF+F0000000000003FF0000007FFFFFFF80000000000003FE0000000FFFFFF8000000000000+000000000000FFFE000000000000>113 144 121 270 129 I<00000000007FFFF00000+00000000001FFFFFFFE0000000000000FFFFFFFFFE000000000007FFFFFFFFFF80000000+001FFFFFFFFFFFF000000000FFFFFFFFFFFFF800000001FFFFFFFFFFFFFE00000007FFFF+FFFFFFFFFF0000001FFFFFF8000FFFFF8000003FFFFF800000FFFFC000007FFFFE000001+FFFFE00001FFFFF8000003FFFFE00003FFFFF0000003FFFFF00007FFFFE0000007FFFFF0+000FFFFFC0000007FFFFF0001FFFFF8000000FFFFFF8003FFFFF0000000FFFFFF8003FFF+FE0000000FFFFFF8007FFFFC0000000FFFFFF800FFFFFC0000000FFFFFF800FFFFF80000+000FFFFFF801FFFFF80000000FFFFFF803FFFFF00000000FFFFFF803FFFFF000000007FF+FFF007FFFFF000000007FFFFF007FFFFE000000003FFFFE00FFFFFE000000003FFFFE00F+FFFFE000000001FFFFC01FFFFFE000000000FFFF801FFFFFC0000000003FFE001FFFFFC0+000000000FF8003FFFFFC0000000000000003FFFFFC0000000000000003FFFFFC0000000+000000003FFFFFC0000000000000007FFFFF80000000000000007FFFFF80000000000000+007FFFFF80000000000000007FFFFF80000000000000007FFFFF8000000000000000FFFF+FF8000000000000000FFFFFF8000000000000000FFFFFF8000000000000000FFFFFF8000+000000000000FFFFFF8000000000000000FFFFFF8000000000000000FFFFFF8000000000+000000FFFFFF8000000000000000FFFFFF8000000000000000FFFFFF8000000000000000+FFFFFF8000000000000000FFFFFF8000000000000000FFFFFF8000000000000000FFFFFF+8000000000000000FFFFFF8000000000000000FFFFFF80000000000000007FFFFF800000+00000000007FFFFF80000000000000007FFFFFC0000000000000007FFFFFC00000000000+00007FFFFFC0000000000000003FFFFFC0000000000000003FFFFFC0000000000000003F+FFFFC0000000000000001FFFFFE0000000000000001FFFFFE0000000000000001FFFFFE0+000000000000000FFFFFE0000000000000000FFFFFF0000000000000FE07FFFFF0000000+000001FF07FFFFF0000000000001FF03FFFFF8000000000003FF03FFFFF8000000000003+FE01FFFFFC000000000003FE01FFFFFC000000000007FE00FFFFFE00000000000FFC007F+FFFF00000000000FFC007FFFFF80000000001FF8003FFFFF80000000003FF0001FFFFFC0+000000007FF0000FFFFFE000000000FFE00007FFFFF800000001FFC00003FFFFFC000000+03FFC00001FFFFFF0000000FFF800000FFFFFFC000003FFF0000003FFFFFF00001FFFC00+00001FFFFFFF801FFFF800000007FFFFFFFFFFFFF000000003FFFFFFFFFFFFC000000000+FFFFFFFFFFFF80000000003FFFFFFFFFFE000000000007FFFFFFFFF8000000000000FFFF+FFFFC00000000000001FFFFFFE00000000000000007FFFC0000000585F78DD67>I[<0000+0000000000000000003FE00000000000000000000000FFFFFFE000000000000000000001+FFFFFFFFE000000000000000000001FFFFFFFFE000000000000000000001FFFFFFFFE000+000000000000000001FFFFFFFFE000000000000000000001FFFFFFFFE000000000000000+000001FFFFFFFFE000000000000000000001FFFFFFFFE000000000000000000001FFFFFF+FFE000000000000000000001FFFFFFFFE000000000000000000000007FFFFFE000000000+000000000000000FFFFFE000000000000000000000000FFFFFE000000000000000000000+0007FFFFE0000000000000000000000007FFFFE0000000000000000000000007FFFFE000+0000000000000000000007FFFFE0000000000000000000000007FFFFE000000000000000+0000000007FFFFE0000000000000000000000007FFFFE0000000000000000000000007FF+FFE0000000000000000000000007FFFFE0000000000000000000000007FFFFE000000000+0000000000000007FFFFE0000000000000000000000007FFFFE000000000000000000000+0007FFFFE0000000000000000000000007FFFFE0000000000000000000000007FFFFE000+0000000000000000000007FFFFE0000000000000000000000007FFFFE000000000000000+0000000007FFFFE0000000000000000000000007FFFFE0000000000000000000000007FF+FFE0000000000000000000000007FFFFE0000000000000000000000007FFFFE000000000+0000000000000007FFFFE0000000000000000000000007FFFFE000000000000000000000+0007FFFFE0000000000000000000000007FFFFE0000000000000000000000007FFFFE000+0000000000000000000007FFFFE0000000000000000000000007FFFFE000000000000000+0000000007FFFFE0000000000000000000000007FFFFE0000000000000000000000007FF+FFE0000000000000000000000007FFFFE0000000000000000000000007FFFFE000000000+0000000000000007FFFFE0000000000000000000000007FFFFE0000000000000003FFF80+0007FFFFE00000000000000FFFFFFC0007FFFFE0000000000000FFFFFFFF8007FFFFE000+0000000007FFFFFFFFE007FFFFE000000000001FFFFFFFFFF807FFFFE000000000007FFF+FFFFFFFE07FFFFE00000000001FFFFFFFFFFFF87FFFFE00000000007FFFFFE007FFFC7FF+FFE0000000001FFFFFE00007FFF7FFFFE0000000003FFFFF000000FFFFFFFFE000000000+7FFFFC0000003FFFFFFFE000000001FFFFF80000000FFFFFFFE000000003FFFFE0000000+07FFFFFFE000000007FFFFC000000003FFFFFFE00000000FFFFF8000000001FFFFFFE000+00001FFFFF00000000007FFFFFE00000003FFFFE00000000007FFFFFE00000003FFFFE00+000000003FFFFFE00000007FFFFC00000000001FFFFFE0000000FFFFF800000000000FFF+FFE0000001FFFFF800000000000FFFFFE0000001FFFFF000000000000FFFFFE0000003FF+FFF000000000000FFFFFE0000003FFFFF000000000000FFFFFE0000007FFFFE000000000+000FFFFFE0000007FFFFE000000000000FFFFFE000000FFFFFE000000000000FFFFFE000+000FFFFFC000000000000FFFFFE000001FFFFFC000000000000FFFFFE000001FFFFFC000+000000000FFFFFE000001FFFFFC000000000000FFFFFE000003FFFFFC000000000000FFF+FFE000003FFFFFC000000000000FFFFFE000003FFFFF8000000000000FFFFFE000007FFF+FF8000000000000FFFFFE000007FFFFF8000000000000FFFFFE000007FFFFF8000000000+000FFFFFE000007FFFFF8000000000000FFFFFE000007FFFFF8000000000000FFFFFE000+00FFFFFF8000000000000FFFFFE00000FFFFFF8000000000000FFFFFE00000FFFFFF8000+000000000FFFFFE00000FFFFFF8000000000000FFFFFE00000FFFFFF8000000000000FFF+FFE00000FFFFFF8000000000000FFFFFE00000FFFFFF8000000000000FFFFFE00000FFFF+FF8000000000000FFFFFE00000FFFFFF8000000000000FFFFFE00000FFFFFF8000000000+000FFFFFE00000FFFFFF8000000000000FFFFFE00000FFFFFF8000000000000FFFFFE000+00FFFFFF8000000000000FFFFFE00000FFFFFF8000000000000FFFFFE00000FFFFFF8000+000000000FFFFFE00000FFFFFF8000000000000FFFFFE000007FFFFF8000000000000FFF+FFE000007FFFFF8000000000000FFFFFE000007FFFFF8000000000000FFFFFE000007FFF+FF8000000000000FFFFFE000007FFFFF8000000000000FFFFFE000003FFFFF8000000000+000FFFFFE000003FFFFFC000000000000FFFFFE000003FFFFFC000000000000FFFFFE000+003FFFFFC000000000000FFFFFE000001FFFFFC000000000000FFFFFE000001FFFFFC000+000000000FFFFFE000000FFFFFC000000000000FFFFFE000000FFFFFC000000000000FFF+FFE000000FFFFFE000000000000FFFFFE0000007FFFFE000000000000FFFFFE0000007FF+FFE000000000000FFFFFE0000003FFFFF000000000000FFFFFE0000003FFFFF000000000+000FFFFFE0000001FFFFF000000000001FFFFFE0000000FFFFF800000000003FFFFFE000+0000FFFFF800000000007FFFFFE00000007FFFFC00000000007FFFFFE00000003FFFFE00+00000000FFFFFFE00000001FFFFE0000000001FFFFFFE00000000FFFFF0000000007FFFF+FFE00000000FFFFF800000000FFFFFFFE000000007FFFFC00000001FFFFFFFF000000001+FFFFF00000007FFFFFFFF000000000FFFFF8000000FFFFFFFFFE000000007FFFFE000003+FFEFFFFFFFFF8000003FFFFF80001FFFCFFFFFFFFF8000000FFFFFF801FFFF0FFFFFFFFF+80000003FFFFFFFFFFFE0FFFFFFFFF80000001FFFFFFFFFFF80FFFFFFFFF800000007FFF+FFFFFFE00FFFFFFFFF800000000FFFFFFFFF800FFFFFFFFF8000000001FFFFFFFC000FFF+FFFFFF80000000003FFFFFE0000FFFFFFFFF800000000000FFFE00000FFFFE000000>+113 144 120 270 129 I<00000000007FFFC000000000000000000FFFFFFF0000000000+000000FFFFFFFFE000000000000007FFFFFFFFFC0000000000001FFFFFFFFFFF00000000+00007FFFFFFFFFFFC00000000001FFFFFFFFFFFFF00000000007FFFFF803FFFFF8000000+001FFFFF80003FFFFE000000003FFFFE00000FFFFF000000007FFFF8000003FFFF800000+01FFFFF0000001FFFFC0000003FFFFC00000007FFFE0000007FFFF800000003FFFF00000+0FFFFF000000003FFFF000001FFFFF000000001FFFF800003FFFFE000000000FFFFC0000+3FFFFC000000000FFFFE00007FFFFC0000000007FFFE0000FFFFF80000000003FFFF0001+FFFFF80000000003FFFF0001FFFFF00000000003FFFF8003FFFFF00000000001FFFF8003+FFFFE00000000001FFFF8007FFFFE00000000001FFFFC007FFFFE00000000000FFFFC00F+FFFFE00000000000FFFFE00FFFFFC00000000000FFFFE01FFFFFC00000000000FFFFE01F+FFFFC000000000007FFFE01FFFFFC000000000007FFFF03FFFFFC000000000007FFFF03F+FFFFC000000000007FFFF03FFFFF8000000000007FFFF07FFFFF8000000000007FFFF07F+FFFF8000000000007FFFF07FFFFF8000000000007FFFF87FFFFF8000000000003FFFF87F+FFFF8000000000003FFFF8FFFFFF8000000000003FFFF8FFFFFF8000000000003FFFF8FF+FFFF8000000000003FFFF8FFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFF8FF+FFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFF8FF+FFFFFFFFFFFFFFFFFFFFF0FFFFFF800000000000000000FFFFFF800000000000000000FF+FFFF800000000000000000FFFFFF800000000000000000FFFFFF800000000000000000FF+FFFF800000000000000000FFFFFF8000000000000000007FFFFF8000000000000000007F+FFFF8000000000000000007FFFFF8000000000000000007FFFFF8000000000000000007F+FFFFC000000000000000003FFFFFC000000000000000003FFFFFC000000000000000003F+FFFFC000000000000000001FFFFFC000000000000000001FFFFFC000000000000000001F+FFFFE000000000000000000FFFFFE000000000000000000FFFFFE0000000000000000007+FFFFE000000000000007F007FFFFF00000000000000FF803FFFFF00000000000000FF803+FFFFF80000000000000FF801FFFFF80000000000001FF801FFFFFC0000000000001FF000+FFFFFC0000000000003FF0007FFFFE0000000000007FE0003FFFFF0000000000007FE000+3FFFFF000000000000FFC0001FFFFF800000000001FF80000FFFFFC00000000003FF8000+07FFFFF00000000007FF000003FFFFF8000000001FFE000001FFFFFC000000003FFC0000+007FFFFF00000000FFF80000003FFFFFE0000003FFF00000001FFFFFFC00001FFFE00000+0007FFFFFFC003FFFFC000000003FFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFE000000+00003FFFFFFFFFFFF800000000000FFFFFFFFFFFE0000000000001FFFFFFFFFF80000000+0000003FFFFFFFFC0000000000000003FFFFFFC000000000000000000FFFF8000000005D+5F7ADD6A>I[<0000000000003FFF80000000000000000FFFFFF000000000000000FFFFFF+FE00000000000007FFFFFFFF0000000000001FFFFFFFFFC000000000007FFFFFFFFFE000+00000001FFFFFFFFFFF00000000007FFFFF807FFF8000000001FFFFFC00FFFFC00000000+3FFFFE001FFFFE000000007FFFFC003FFFFE00000000FFFFF0003FFFFF00000001FFFFE0+007FFFFF00000003FFFFC0007FFFFF00000007FFFFC000FFFFFF80000007FFFF8000FFFF+FF8000000FFFFF0000FFFFFF8000001FFFFF0000FFFFFF8000001FFFFE0000FFFFFF8000+003FFFFE0000FFFFFF8000003FFFFC0000FFFFFF8000007FFFFC0000FFFFFF8000007FFF+FC00007FFFFF0000007FFFFC00007FFFFF0000007FFFF800003FFFFE000000FFFFF80000+1FFFFC000000FFFFF800001FFFFC000000FFFFF800000FFFF8000000FFFFF8000003FFE0+000000FFFFF8000000FF80000000FFFFF80000000000000000FFFFF80000000000000000+FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF8+0000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF8000000+0000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF8000000000000+0000FFFFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000FF+FFF80000000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF800+00000000000000FFFFF80000000000000000FFFFF80000000000000000FFFFF800000000+0000FFFFFFFFFFFFFFF8000000FFFFFFFFFFFFFFF8000000FFFFFFFFFFFFFFF8000000FF+FFFFFFFFFFFFF8000000FFFFFFFFFFFFFFF8000000FFFFFFFFFFFFFFF8000000FFFFFFFF+FFFFFFF8000000FFFFFFFFFFFFFFF8000000FFFFFFFFFFFFFFF80000000000FFFFFC0000+000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000+000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000+FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC+0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC000000+0000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC000000000000+0000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FF+FFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC00+00000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC00000000+00000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC00000000000000+00FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFF+FC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000+000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000+000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000+FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC+0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC000000+0000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC000000000000+0000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FF+FFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC00+00000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC00000000+00000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC00000000000000+00FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFF+FC0000000000000000FFFFFC0000000000000000FFFFFC0000000000000000FFFFFC0000+000000000000FFFFFC0000000000003FFFFFFFFFFFFF000000003FFFFFFFFFFFFF000000+003FFFFFFFFFFFFF000000003FFFFFFFFFFFFF000000003FFFFFFFFFFFFF000000003FFF+FFFFFFFFFF000000003FFFFFFFFFFFFF000000003FFFFFFFFFFFFF000000003FFFFFFFFF+FFFF00000000>81 144 121 271 71 I<0000000000000000000000FFC000000000000F+FFFC0000000FFFF00000000001FFFFFFE000007FFFF8000000001FFFFFFFFE0001FFFFFE+000000007FFFFFFFFF8007FFFFFF00000003FFFFFFFFFFF01FFFFFFF0000000FFFFFFFFF+FFFC3FFFFFFF8000001FFFFFFFFFFFFE7FFF3FFF8000007FFFFF003FFFFFFFF03FFFC000+00FFFFF80007FFFFFF807FFFC00001FFFFE00001FFFFFC007FFFC00007FFFF8000007FFF+F8007FFFC00007FFFF0000003FFFF8007FFFC0000FFFFE0000001FFFFC007FFFC0001FFF+FC0000000FFFFE007FFFC0003FFFF800000007FFFF003FFF80007FFFF800000007FFFF80+3FFF80007FFFF800000007FFFF801FFF0000FFFFF000000003FFFFC00FFE0000FFFFF000+000003FFFFC003F80001FFFFF000000003FFFFE000000001FFFFF000000003FFFFE00000+0003FFFFE000000001FFFFF000000003FFFFE000000001FFFFF000000003FFFFE0000000+01FFFFF000000003FFFFE000000001FFFFF000000007FFFFE000000001FFFFF800000007+FFFFE000000001FFFFF800000007FFFFE000000001FFFFF800000007FFFFE000000001FF+FFF800000007FFFFE000000001FFFFF800000007FFFFE000000001FFFFF800000007FFFF+E000000001FFFFF800000007FFFFE000000001FFFFF800000007FFFFE000000001FFFFF8+00000007FFFFE000000001FFFFF800000007FFFFE000000001FFFFF800000003FFFFE000+000001FFFFF000000003FFFFE000000001FFFFF000000003FFFFE000000001FFFFF00000+0003FFFFE000000001FFFFF000000001FFFFF000000003FFFFE000000001FFFFF0000000+03FFFFE000000000FFFFF000000003FFFFC000000000FFFFF000000003FFFFC000000000+7FFFF800000007FFFF80000000007FFFF800000007FFFF80000000003FFFF800000007FF+FF00000000001FFFFC0000000FFFFE00000000000FFFFE0000001FFFFC000000000007FF+FF0000003FFFF8000000000007FFFF8000007FFFF8000000000001FFFFE00001FFFFE000+0000000000FFFFF80007FFFFC0000000000001FFFFFF003FFFFF80000000000003FFFFFF+FFFFFFFE00000000000007FFFFFFFFFFFFFC00000000000007F3FFFFFFFFFFF000000000+00000FE07FFFFFFFFF800000000000000FE01FFFFFFFFE000000000000001FC001FFFFFF+E0000000000000001FC0000FFFFC00000000000000003FC0000000000000000000000000+3FC00000000000000000000000003FC00000000000000000000000007FC0000000000000+0000000000007FC00000000000000000000000007FE00000000000000000000000007FE0+0000000000000000000000007FE00000000000000000000000007FF00000000000000000+000000007FF00000000000000000000000007FF80000000000000000000000007FFC0000+000000000000000000007FFE0000000000000000000000007FFF80000000000000000000+00007FFFF000000000000000000000007FFFFFFFFFFFFFF00000000000003FFFFFFFFFFF+FFFFE000000000003FFFFFFFFFFFFFFFFE00000000003FFFFFFFFFFFFFFFFFC000000000+1FFFFFFFFFFFFFFFFFF8000000001FFFFFFFFFFFFFFFFFFE000000001FFFFFFFFFFFFFFF+FFFF800000000FFFFFFFFFFFFFFFFFFFE000000007FFFFFFFFFFFFFFFFFFF000000007FF+FFFFFFFFFFFFFFFFF800000003FFFFFFFFFFFFFFFFFFFE00000001FFFFFFFFFFFFFFFFFF+FF00000000FFFFFFFFFFFFFFFFFFFF000000007FFFFFFFFFFFFFFFFFFF800000007FFFFF+FFFFFFFFFFFFFFC0000003FFFFFFFFFFFFFFFFFFFFE000000FFFFFFFFFFFFFFFFFFFFFE0+00003FFFFFFFFFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFFFFFFFFFF00001FFFFE0000000+003FFFFFFFF80003FFFF000000000000FFFFFFF80007FFFC0000000000000FFFFFF8000F+FFF800000000000001FFFFFC001FFFF0000000000000007FFFFC003FFFE0000000000000+003FFFFC003FFFE0000000000000001FFFFC007FFFC0000000000000000FFFFE007FFFC0+0000000000000007FFFE007FFFC00000000000000007FFFE00FFFF800000000000000007+FFFE00FFFF800000000000000003FFFE00FFFF800000000000000003FFFE00FFFF800000+000000000003FFFE00FFFF800000000000000003FFFE00FFFF800000000000000003FFFE+00FFFF800000000000000003FFFE00FFFFC00000000000000007FFFE007FFFC000000000+00000007FFFC007FFFC00000000000000007FFFC007FFFE0000000000000000FFFFC003F+FFF0000000000000001FFFF8001FFFF0000000000000001FFFF0001FFFF8000000000000+003FFFF0000FFFFC000000000000007FFFE00007FFFE00000000000000FFFFC00003FFFF+80000000000003FFFF800003FFFFC0000000000007FFFF800000FFFFF000000000001FFF+FE0000007FFFFC00000000007FFFFC0000003FFFFF8000000003FFFFF80000000FFFFFF8+0000003FFFFFE000000007FFFFFFE0000FFFFFFFC000000001FFFFFFFFFFFFFFFFFF0000+0000003FFFFFFFFFFFFFFFF800000000000FFFFFFFFFFFFFFFE0000000000001FFFFFFFF+FFFFFF000000000000001FFFFFFFFFFFF00000000000000001FFFFFFFFFF000000000000+00000001FFFFFF0000000000006A887ADD74>I[<0000001FF00000000000000000000000+7FFFFFF000000000000000000000FFFFFFFFF000000000000000000000FFFFFFFFF00000+0000000000000000FFFFFFFFF000000000000000000000FFFFFFFFF00000000000000000+0000FFFFFFFFF000000000000000000000FFFFFFFFF000000000000000000000FFFFFFFF+F000000000000000000000FFFFFFFFF000000000000000000000FFFFFFFFF00000000000+0000000000003FFFFFF0000000000000000000000007FFFFF00000000000000000000000+07FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000+00000000000000000003FFFFF0000000000000000000000003FFFFF00000000000000000+00000003FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFF+F0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000000000+00000000000003FFFFF0000000000000000000000003FFFFF00000000000000000000000+03FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000+00000000000000000003FFFFF0000000000000000000000003FFFFF00000000000000000+00000003FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFF+F0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000000000+00000000000003FFFFF0000000000000000000000003FFFFF00000000000000000000000+03FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000+00000000000000000003FFFFF0000000000000000000000003FFFFF00000000000000000+00000003FFFFF0000000000000000000000003FFFFF0000000000000000000000003FFFF+F0000000000000000000000003FFFFF0000000000000000000000003FFFFF00000000000+00000000000003FFFFF0000000000000000000000003FFFFF00000000000000000000000+03FFFFF0000000000000000000000003FFFFF0000003FFFC00000000000003FFFFF00000+3FFFFFE0000000000003FFFFF00000FFFFFFF8000000000003FFFFF00007FFFFFFFE0000+00000003FFFFF0001FFFFFFFFF800000000003FFFFF0003FFFFFFFFFE00000000003FFFF+F000FFFFFFFFFFF00000000003FFFFF001FFFC03FFFFF80000000003FFFFF003FFC000FF+FFFC0000000003FFFFF007FE00007FFFFE0000000003FFFFF00FF800003FFFFE00000000+03FFFFF01FE000003FFFFF0000000003FFFFF03FC000001FFFFF8000000003FFFFF07F80+00001FFFFF8000000003FFFFF0FE0000001FFFFFC000000003FFFFF1FC0000000FFFFFC0+00000003FFFFF1F80000000FFFFFC000000003FFFFF3F80000000FFFFFE000000003FFFF+F7F00000000FFFFFE000000003FFFFF7E000000007FFFFE000000003FFFFFFC000000007+FFFFE000000003FFFFFFC000000007FFFFE000000003FFFFFF8000000007FFFFF0000000+03FFFFFF8000000007FFFFF000000003FFFFFF0000000007FFFFF000000003FFFFFF0000+000007FFFFF000000003FFFFFE0000000007FFFFF000000003FFFFFE0000000007FFFFF0+00000003FFFFFE0000000007FFFFF000000003FFFFFC0000000007FFFFF000000003FFFF+FC0000000007FFFFF000000003FFFFFC0000000007FFFFF000000003FFFFFC0000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+00000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFF+F80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+00000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFF+F80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+00000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFF+F80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+00000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFF+F80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF00000FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE0+01FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFF+FFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFF+FFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFF+FFFFFFFFC0>114 143 119 270 129 I[<00003FC00000000000FFF00000000003FFFC00+00000007FFFE000000000FFFFF000000001FFFFF800000003FFFFFC00000007FFFFFE000+00007FFFFFE0000000FFFFFFF0000000FFFFFFF0000001FFFFFFF8000001FFFFFFF80000+01FFFFFFF8000001FFFFFFF8000001FFFFFFF8000001FFFFFFF8000001FFFFFFF8000001+FFFFFFF8000000FFFFFFF0000000FFFFFFF00000007FFFFFE00000007FFFFFE00000003F+FFFFC00000001FFFFF800000000FFFFF0000000007FFFE0000000003FFFC0000000000FF+F000000000003FC000000000000000000000000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+00000000000000000000000000000000001FF00000007FFFFFF00000FFFFFFFFF00000FF+FFFFFFF00000FFFFFFFFF00000FFFFFFFFF00000FFFFFFFFF00000FFFFFFFFF00000FFFF+FFFFF00000FFFFFFFFF00000FFFFFFFFF00000003FFFFFF000000007FFFFF000000007FF+FFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFF+F000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0+00000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000+000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF00000+0003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0000000+03FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003+FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FF+FFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFF+F000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0+00000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000+000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF00000+0003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0000000+03FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003+FFFFF000000003FFFFF000000003FFFFF000000003FFFFF00000FFFFFFFFFFFF80FFFFFF+FFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFF+FFFF80FFFFFFFFFFFF80FFFFFFFFFFFF80>49 144 119 271 65+I[<0000001FF0000000000000000000007FFFFFF0000000000000000000FFFFFFFFF000+0000000000000000FFFFFFFFF0000000000000000000FFFFFFFFF0000000000000000000+FFFFFFFFF0000000000000000000FFFFFFFFF0000000000000000000FFFFFFFFF0000000+000000000000FFFFFFFFF0000000000000000000FFFFFFFFF0000000000000000000FFFF+FFFFF0000000000000000000003FFFFFF00000000000000000000007FFFFF00000000000+000000000007FFFFF00000000000000000000003FFFFF00000000000000000000003FFFF+F00000000000000000000003FFFFF00000000000000000000003FFFFF000000000000000+00000003FFFFF00000000000000000000003FFFFF00000000000000000000003FFFFF000+00000000000000000003FFFFF00000000000000000000003FFFFF0000000000000000000+0003FFFFF00000000000000000000003FFFFF00000000000000000000003FFFFF0000000+0000000000000003FFFFF00000000000000000000003FFFFF00000000000000000000003+FFFFF00000000000000000000003FFFFF00000000000000000000003FFFFF00000000000+000000000003FFFFF00000000000000000000003FFFFF00000000000000000000003FFFF+F00000000000000000000003FFFFF00000000000000000000003FFFFF000000000000000+00000003FFFFF00000000000000000000003FFFFF00000000000000000000003FFFFF000+00000000000000000003FFFFF00000000000000000000003FFFFF0000000000000000000+0003FFFFF00000000000000000000003FFFFF00000000000000000000003FFFFF0000000+0000000000000003FFFFF00000000000000000000003FFFFF00000000000000000000003+FFFFF00000000000000000000003FFFFF00000000000000000000003FFFFF00000000000+000000000003FFFFF00000000000000000000003FFFFF00000000000000000000003FFFF+F00000003FFFFFFFFFC00003FFFFF00000003FFFFFFFFFC00003FFFFF00000003FFFFFFF+FFC00003FFFFF00000003FFFFFFFFFC00003FFFFF00000003FFFFFFFFFC00003FFFFF000+00003FFFFFFFFFC00003FFFFF00000003FFFFFFFFFC00003FFFFF00000003FFFFFFFFFC0+0003FFFFF00000003FFFFFFFFFC00003FFFFF000000001FFFFFE00000003FFFFF0000000+003FFFC000000003FFFFF0000000003FFF0000000003FFFFF0000000007FFE0000000003+FFFFF000000000FFFC0000000003FFFFF000000001FFF80000000003FFFFF000000003FF+E00000000003FFFFF00000000FFFC00000000003FFFFF00000001FFF800000000003FFFF+F00000003FFF000000000003FFFFF00000007FFC000000000003FFFFF0000001FFF80000+00000003FFFFF0000003FFF0000000000003FFFFF0000007FFE0000000000003FFFFF000+000FFFC0000000000003FFFFF000001FFF00000000000003FFFFF000007FFE0000000000+0003FFFFF00000FFFC00000000000003FFFFF00001FFF800000000000003FFFFF00003FF+F000000000000003FFFFF00007FFC000000000000003FFFFF0001FFF8000000000000003+FFFFF0003FFF0000000000000003FFFFF0007FFE0000000000000003FFFFF000FFF80000+000000000003FFFFF003FFFC0000000000000003FFFFF007FFFC0000000000000003FFFF+F00FFFFE0000000000000003FFFFF01FFFFF0000000000000003FFFFF03FFFFF80000000+00000003FFFFF0FFFFFFC000000000000003FFFFF1FFFFFFC000000000000003FFFFF3FF+FFFFE000000000000003FFFFF7FFFFFFF000000000000003FFFFFFFFFFFFF80000000000+0003FFFFFFFFFFFFF800000000000003FFFFFFFFFFFFFC00000000000003FFFFFFFFFFFF+FE00000000000003FFFFFFF1FFFFFF00000000000003FFFFFFE0FFFFFF00000000000003+FFFFFFC0FFFFFF80000000000003FFFFFF807FFFFFC0000000000003FFFFFF003FFFFFE0+000000000003FFFFFC001FFFFFF0000000000003FFFFF8001FFFFFF0000000000003FFFF+F0000FFFFFF8000000000003FFFFE00007FFFFFC000000000003FFFFE00003FFFFFE0000+00000003FFFFE00003FFFFFE000000000003FFFFE00001FFFFFF000000000003FFFFE000+00FFFFFF800000000003FFFFE000007FFFFFC00000000003FFFFE000003FFFFFC0000000+0003FFFFE000003FFFFFE00000000003FFFFE000001FFFFFF00000000003FFFFE000000F+FFFFF80000000003FFFFE0000007FFFFFC0000000003FFFFE0000007FFFFFC0000000003+FFFFE0000003FFFFFE0000000003FFFFE0000001FFFFFF0000000003FFFFE0000000FFFF+FF8000000003FFFFE0000000FFFFFF8000000003FFFFE00000007FFFFFC000000003FFFF+E00000003FFFFFE000000003FFFFE00000001FFFFFF000000003FFFFE00000000FFFFFF0+00000003FFFFE00000000FFFFFF800000003FFFFE000000007FFFFFC00000003FFFFE000+000003FFFFFE00000003FFFFE000000001FFFFFF00000003FFFFE000000001FFFFFF0000+0003FFFFE000000000FFFFFF80000003FFFFE000000000FFFFFFC0000003FFFFE0000000+01FFFFFFF000FFFFFFFFFFFF80007FFFFFFFFFFFFFFFFFFFFFFF80007FFFFFFFFFFFFFFF+FFFFFFFF80007FFFFFFFFFFFFFFFFFFFFFFF80007FFFFFFFFFFFFFFFFFFFFFFF80007FFF+FFFFFFFFFFFFFFFFFFFF80007FFFFFFFFFFFFFFFFFFFFFFF80007FFFFFFFFFFFFFFFFFFF+FFFF80007FFFFFFFFFFFFFFFFFFFFFFF80007FFFFFFFFFFF>112+143 121 270 123 107 D[<0000001FF00000007FFFFFF00000FFFFFFFFF00000FFFFFF+FFF00000FFFFFFFFF00000FFFFFFFFF00000FFFFFFFFF00000FFFFFFFFF00000FFFFFFFF+F00000FFFFFFFFF00000FFFFFFFFF00000003FFFFFF000000007FFFFF000000007FFFFF0+00000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000+000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF00000+0003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0000000+03FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003+FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FF+FFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFF+F000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0+00000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000+000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF00000+0003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0000000+03FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003+FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FF+FFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFF+F000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0+00000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000+000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF00000+0003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0000000+03FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003+FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FF+FFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFF+F000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF0+00000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000+000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF000000003FFFFF00000+0003FFFFF000000003FFFFF00000FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FF+FFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFF+FFFFFFFFC0>50 143 119 270 65 I<0000003FE0000001FFFC000000000001FFFC0000+000000007FFFFFE000001FFFFFE0000000001FFFFFE000000000FFFFFFFFE00000FFFFFF+FC00000000FFFFFFFC00000000FFFFFFFFE00003FFFFFFFF00000003FFFFFFFF00000000+FFFFFFFFE0000FFFFFFFFFC000000FFFFFFFFFC0000000FFFFFFFFE0003FFFFFFFFFF000+003FFFFFFFFFF0000000FFFFFFFFE000FFFFFFFFFFF80000FFFFFFFFFFF8000000FFFFFF+FFE001FFFC03FFFFFC0001FFFC03FFFFFC000000FFFFFFFFE003FFC000FFFFFE0003FFC0+00FFFFFE000000FFFFFFFFE007FE00003FFFFF0007FE00003FFFFF000000FFFFFFFFE00F+F800001FFFFF000FF800001FFFFF000000003FFFFFE01FF000001FFFFF801FF000001FFF+FF8000000007FFFFE03FC000000FFFFFC03FC000000FFFFFC000000007FFFFE07F800000+0FFFFFC07F8000000FFFFFC000000003FFFFE0FF0000000FFFFFE0FF0000000FFFFFE000+000003FFFFE1FE00000007FFFFE1FE00000007FFFFE000000003FFFFE1FC00000007FFFF+E1FC00000007FFFFE000000003FFFFE3F800000007FFFFF3F800000007FFFFF000000003+FFFFE7F000000007FFFFF7F000000007FFFFF000000003FFFFE7E000000003FFFFF7E000+000003FFFFF000000003FFFFEFC000000003FFFFFFC000000003FFFFF000000003FFFFEF+C000000003FFFFFFC000000003FFFFF000000003FFFFFF8000000003FFFFFF8000000003+FFFFF800000003FFFFFF8000000003FFFFFF8000000003FFFFF800000003FFFFFF000000+0003FFFFFF0000000003FFFFF800000003FFFFFF0000000003FFFFFF0000000003FFFFF8+00000003FFFFFE0000000003FFFFFE0000000003FFFFF800000003FFFFFE0000000003FF+FFFE0000000003FFFFF800000003FFFFFE0000000003FFFFFE0000000003FFFFF8000000+03FFFFFC0000000003FFFFFC0000000003FFFFF800000003FFFFFC0000000003FFFFFC00+00000003FFFFF800000003FFFFFC0000000003FFFFFC0000000003FFFFF800000003FFFF+FC0000000003FFFFFC0000000003FFFFF800000003FFFFF80000000003FFFFF800000000+03FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000+000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFF+F800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003+FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF80000+0003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF8+0000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FF+FFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF8000000+0003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF800+00000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FF+FFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF800000000+03FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800+000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFF+F80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003+FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000+000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF8+0000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003+FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF8000000+0003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF8+00000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FF+FFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF8000000+03FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF800+00000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFF+F80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF800000000+03FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000+000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFF+F800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003+FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF80000+0003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF8+0000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FF+FFF80000000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF8000000+0003FFFFF800000003FFFFF80000000003FFFFF80000000003FFFFF800000003FFFFF800+00000003FFFFF80000000003FFFFF800000003FFFFF80000000003FFFFF80000000003FF+FFF80000FFFFFFFFFFFFE000FFFFFFFFFFFFE000FFFFFFFFFFFFE0FFFFFFFFFFFFE000FF+FFFFFFFFFFE000FFFFFFFFFFFFE0FFFFFFFFFFFFE000FFFFFFFFFFFFE000FFFFFFFFFFFF+E0FFFFFFFFFFFFE000FFFFFFFFFFFFE000FFFFFFFFFFFFE0FFFFFFFFFFFFE000FFFFFFFF+FFFFE000FFFFFFFFFFFFE0FFFFFFFFFFFFE000FFFFFFFFFFFFE000FFFFFFFFFFFFE0FFFF+FFFFFFFFE000FFFFFFFFFFFFE000FFFFFFFFFFFFE0FFFFFFFFFFFFE000FFFFFFFFFFFFE0+00FFFFFFFFFFFFE0FFFFFFFFFFFFE000FFFFFFFFFFFFE000FFFFFFFFFFFFE0B35D77DCC2+>I<0000003FE0000003FFFC0000000000007FFFFFE000003FFFFFE000000000FFFFFFFF+E00000FFFFFFF800000000FFFFFFFFE00007FFFFFFFE00000000FFFFFFFFE0001FFFFFFF+FF80000000FFFFFFFFE0003FFFFFFFFFE0000000FFFFFFFFE000FFFFFFFFFFF0000000FF+FFFFFFE001FFFC03FFFFF8000000FFFFFFFFE003FFC000FFFFFC000000FFFFFFFFE007FE+00007FFFFE000000FFFFFFFFE00FF800003FFFFE000000003FFFFFE01FE000003FFFFF00+00000007FFFFE03FC000001FFFFF8000000007FFFFE07F8000001FFFFF8000000003FFFF+E0FE0000001FFFFFC000000003FFFFE1FC0000000FFFFFC000000003FFFFE1F80000000F+FFFFC000000003FFFFE3F80000000FFFFFE000000003FFFFE7F00000000FFFFFE0000000+03FFFFE7E000000007FFFFE000000003FFFFEFC000000007FFFFE000000003FFFFEFC000+000007FFFFE000000003FFFFFF8000000007FFFFF000000003FFFFFF8000000007FFFFF0+00000003FFFFFF0000000007FFFFF000000003FFFFFF0000000007FFFFF000000003FFFF+FE0000000007FFFFF000000003FFFFFE0000000007FFFFF000000003FFFFFE0000000007+FFFFF000000003FFFFFC0000000007FFFFF000000003FFFFFC0000000007FFFFF0000000+03FFFFFC0000000007FFFFF000000003FFFFFC0000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+00000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFF+F80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+00000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFF+F80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+00000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFF+F80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+00000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFF+F80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007+FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0000000+03FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000+000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF0+0000FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFF+FFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFF+FFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0FF+FFFFFFFFFFE001FFFFFFFFFFFFC0FFFFFFFFFFFFE001FFFFFFFFFFFFC0725D77DC81>I<+00000000001FFFF000000000000000000007FFFFFFC000000000000000007FFFFFFFFC00+00000000000003FFFFFFFFFF800000000000000FFFFFFFFFFFE00000000000007FFFFFFF+FFFFFC000000000001FFFFFFFFFFFFFF000000000003FFFFFC007FFFFF80000000000FFF+FFC00007FFFFE0000000001FFFFE000000FFFFF0000000007FFFF80000003FFFFC000000+00FFFFF00000001FFFFE00000001FFFFC000000007FFFF00000003FFFF8000000003FFFF+80000007FFFF0000000001FFFFC000000FFFFE0000000000FFFFE000001FFFFC00000000+007FFFF000003FFFFC00000000007FFFF800007FFFF800000000003FFFFC00007FFFF800+000000003FFFFC0000FFFFF000000000001FFFFE0001FFFFF000000000001FFFFF0001FF+FFE000000000000FFFFF0003FFFFE000000000000FFFFF8003FFFFE000000000000FFFFF+8007FFFFE000000000000FFFFFC007FFFFC0000000000007FFFFC00FFFFFC00000000000+07FFFFE00FFFFFC0000000000007FFFFE01FFFFFC0000000000007FFFFF01FFFFFC00000+00000007FFFFF01FFFFFC0000000000007FFFFF03FFFFF80000000000003FFFFF83FFFFF+80000000000003FFFFF83FFFFF80000000000003FFFFF83FFFFF80000000000003FFFFF8+7FFFFF80000000000003FFFFFC7FFFFF80000000000003FFFFFC7FFFFF80000000000003+FFFFFC7FFFFF80000000000003FFFFFC7FFFFF80000000000003FFFFFCFFFFFF80000000+000003FFFFFEFFFFFF80000000000003FFFFFEFFFFFF80000000000003FFFFFEFFFFFF80+000000000003FFFFFEFFFFFF80000000000003FFFFFEFFFFFF80000000000003FFFFFEFF+FFFF80000000000003FFFFFEFFFFFF80000000000003FFFFFEFFFFFF80000000000003FF+FFFEFFFFFF80000000000003FFFFFEFFFFFF80000000000003FFFFFEFFFFFF8000000000+0003FFFFFEFFFFFF80000000000003FFFFFEFFFFFF80000000000003FFFFFEFFFFFF8000+0000000003FFFFFE7FFFFF80000000000003FFFFFC7FFFFF80000000000003FFFFFC7FFF+FF80000000000003FFFFFC7FFFFF80000000000003FFFFFC7FFFFF80000000000003FFFF+FC3FFFFFC0000000000007FFFFF83FFFFFC0000000000007FFFFF83FFFFFC00000000000+07FFFFF81FFFFFC0000000000007FFFFF01FFFFFC0000000000007FFFFF01FFFFFC00000+00000007FFFFF00FFFFFC0000000000007FFFFE00FFFFFE000000000000FFFFFE007FFFF+E000000000000FFFFFC007FFFFE000000000000FFFFFC003FFFFF000000000001FFFFF80+03FFFFF000000000001FFFFF8001FFFFF000000000001FFFFF0001FFFFF800000000003F+FFFF0000FFFFF800000000003FFFFE00007FFFFC00000000007FFFFC00007FFFFE000000+0000FFFFFC00003FFFFE0000000000FFFFF800001FFFFF0000000001FFFFF000000FFFFF+8000000003FFFFE0000007FFFFC000000007FFFFC0000003FFFFF00000001FFFFF800000+01FFFFF80000003FFFFF000000007FFFFE000000FFFFFC000000003FFFFFC00007FFFFF8+000000001FFFFFFC007FFFFFF00000000007FFFFFFFFFFFFFFC00000000001FFFFFFFFFF+FFFF0000000000007FFFFFFFFFFFFC0000000000001FFFFFFFFFFFF000000000000003FF+FFFFFFFF80000000000000007FFFFFFFFC000000000000000007FFFFFFC0000000000000+0000001FFFF00000000000675F7ADD74>I<0000001FF000001FFFC00000000000007FFF+FFF00003FFFFFF0000000000FFFFFFFFF0001FFFFFFFE000000000FFFFFFFFF000FFFFFF+FFFC00000000FFFFFFFFF003FFFFFFFFFF00000000FFFFFFFFF00FFFFFFFFFFFC0000000+FFFFFFFFF03FFFFFFFFFFFF0000000FFFFFFFFF0FFFFFFFFFFFFFC000000FFFFFFFFF1FF+FFC01FFFFFFE000000FFFFFFFFF7FFFC0001FFFFFF000000FFFFFFFFFFFFE000007FFFFF+C00000003FFFFFFFFF0000003FFFFFE000000007FFFFFFFE0000000FFFFFF000000007FF+FFFFF800000007FFFFF800000003FFFFFFE000000003FFFFFC00000003FFFFFFC0000000+01FFFFFE00000003FFFFFF8000000000FFFFFE00000003FFFFFF00000000007FFFFF0000+0003FFFFFE00000000007FFFFF80000003FFFFFC00000000003FFFFFC0000003FFFFF800+000000003FFFFFC0000003FFFFF800000000001FFFFFE0000003FFFFF800000000001FFF+FFE0000003FFFFF800000000000FFFFFF0000003FFFFF800000000000FFFFFF0000003FF+FFF8000000000007FFFFF8000003FFFFF8000000000007FFFFF8000003FFFFF800000000+0007FFFFFC000003FFFFF8000000000003FFFFFC000003FFFFF8000000000003FFFFFC00+0003FFFFF8000000000003FFFFFE000003FFFFF8000000000003FFFFFE000003FFFFF800+0000000001FFFFFE000003FFFFF8000000000001FFFFFE000003FFFFF8000000000001FF+FFFF000003FFFFF8000000000001FFFFFF000003FFFFF8000000000001FFFFFF000003FF+FFF8000000000001FFFFFF000003FFFFF8000000000000FFFFFF000003FFFFF800000000+0000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF80+0003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF800+0000000000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FF+FFFF800003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF800003FF+FFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF800000000+0000FFFFFF800003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF80+0003FFFFF8000000000000FFFFFF800003FFFFF8000000000000FFFFFF000003FFFFF800+0000000001FFFFFF000003FFFFF8000000000001FFFFFF000003FFFFF8000000000001FF+FFFF000003FFFFF8000000000001FFFFFF000003FFFFF8000000000001FFFFFE000003FF+FFF8000000000001FFFFFE000003FFFFF8000000000003FFFFFE000003FFFFF800000000+0003FFFFFC000003FFFFF8000000000003FFFFFC000003FFFFF8000000000003FFFFFC00+0003FFFFF8000000000007FFFFF8000003FFFFF8000000000007FFFFF8000003FFFFF800+0000000007FFFFF0000003FFFFF800000000000FFFFFF0000003FFFFF800000000000FFF+FFE0000003FFFFF800000000001FFFFFE0000003FFFFF800000000001FFFFFC0000003FF+FFF800000000003FFFFFC0000003FFFFFC00000000003FFFFF80000003FFFFFE00000000+007FFFFF00000003FFFFFF0000000000FFFFFE00000003FFFFFF0000000000FFFFFE0000+0003FFFFFF8000000001FFFFFC00000003FFFFFFC000000003FFFFF800000003FFFFFFE0+00000007FFFFF000000003FFFFFFF80000000FFFFFE000000003FFFFFFFC0000003FFFFF+C000000003FFFFFFFF0000007FFFFF0000000003FFFFFFFFC00001FFFFFE0000000003FF+FFFBFFF00007FFFFFC0000000003FFFFF8FFFF007FFFFFF00000000003FFFFF87FFFFFFF+FFFFC00000000003FFFFF81FFFFFFFFFFF000000000003FFFFF80FFFFFFFFFFC00000000+0003FFFFF803FFFFFFFFF0000000000003FFFFF8007FFFFFFF80000000000003FFFFF800+0FFFFFF800000000000003FFFFF80000FFFE0000000000000003FFFFF800000000000000+0000000003FFFFF8000000000000000000000003FFFFF8000000000000000000000003FF+FFF8000000000000000000000003FFFFF8000000000000000000000003FFFFF800000000+0000000000000003FFFFF8000000000000000000000003FFFFF800000000000000000000+0003FFFFF8000000000000000000000003FFFFF8000000000000000000000003FFFFF800+0000000000000000000003FFFFF8000000000000000000000003FFFFF800000000000000+0000000003FFFFF8000000000000000000000003FFFFF8000000000000000000000003FF+FFF8000000000000000000000003FFFFF8000000000000000000000003FFFFF800000000+0000000000000003FFFFF8000000000000000000000003FFFFF800000000000000000000+0003FFFFF8000000000000000000000003FFFFF8000000000000000000000003FFFFF800+0000000000000000000003FFFFF8000000000000000000000003FFFFF800000000000000+0000000003FFFFF8000000000000000000000003FFFFF8000000000000000000000003FF+FFF8000000000000000000000003FFFFF8000000000000000000000003FFFFF800000000+000000000000FFFFFFFFFFFFE00000000000000000FFFFFFFFFFFFE00000000000000000+FFFFFFFFFFFFE00000000000000000FFFFFFFFFFFFE00000000000000000FFFFFFFFFFFF+E00000000000000000FFFFFFFFFFFFE00000000000000000FFFFFFFFFFFFE00000000000+000000FFFFFFFFFFFFE00000000000000000FFFFFFFFFFFFE00000000000000000718579+DC81>I<00000000007FFF000000001FE00000000000000FFFFFF00000003FE000000000+0000FFFFFFFE0000007FE0000000000007FFFFFFFF8000007FE000000000001FFFFFFFFF+E00000FFE00000000000FFFFFFFFFFF80001FFE00000000003FFFFFFFFFFFC0001FFE000+00000007FFFFFFFFFFFE0003FFE0000000001FFFFFFF007FFF8007FFE0000000003FFFFF+F0000FFFC007FFE000000000FFFFFFC00003FFE00FFFE000000001FFFFFF000000FFF01F+FFE000000003FFFFFC0000003FF81FFFE000000007FFFFF80000001FF83FFFE00000000F+FFFFF00000000FFC7FFFE00000001FFFFFE000000007FE7FFFE00000003FFFFFC0000000+03FFFFFFE00000007FFFFF8000000001FFFFFFE00000007FFFFF0000000001FFFFFFE000+0000FFFFFF0000000000FFFFFFE0000001FFFFFE00000000007FFFFFE0000001FFFFFE00+000000007FFFFFE0000003FFFFFC00000000003FFFFFE0000003FFFFFC00000000003FFF+FFE0000007FFFFF800000000001FFFFFE0000007FFFFF800000000001FFFFFE000000FFF+FFF000000000000FFFFFE000000FFFFFF000000000000FFFFFE000001FFFFFF000000000+000FFFFFE000001FFFFFE0000000000007FFFFE000001FFFFFE0000000000007FFFFE000+003FFFFFE0000000000007FFFFE000003FFFFFE0000000000007FFFFE000003FFFFFC000+0000000007FFFFE000007FFFFFC0000000000007FFFFE000007FFFFFC0000000000007FF+FFE000007FFFFFC0000000000007FFFFE000007FFFFFC0000000000007FFFFE000007FFF+FFC0000000000007FFFFE00000FFFFFF80000000000007FFFFE00000FFFFFF8000000000+0007FFFFE00000FFFFFF80000000000007FFFFE00000FFFFFF80000000000007FFFFE000+00FFFFFF80000000000007FFFFE00000FFFFFF80000000000007FFFFE00000FFFFFF8000+0000000007FFFFE00000FFFFFF80000000000007FFFFE00000FFFFFF80000000000007FF+FFE00000FFFFFF80000000000007FFFFE00000FFFFFF80000000000007FFFFE00000FFFF+FF80000000000007FFFFE00000FFFFFF80000000000007FFFFE00000FFFFFF8000000000+0007FFFFE00000FFFFFF80000000000007FFFFE00000FFFFFF80000000000007FFFFE000+007FFFFF80000000000007FFFFE000007FFFFFC0000000000007FFFFE000007FFFFFC000+0000000007FFFFE000007FFFFFC0000000000007FFFFE000007FFFFFC0000000000007FF+FFE000003FFFFFC0000000000007FFFFE000003FFFFFC0000000000007FFFFE000003FFF+FFC0000000000007FFFFE000003FFFFFE0000000000007FFFFE000001FFFFFE000000000+0007FFFFE000001FFFFFE0000000000007FFFFE000000FFFFFF0000000000007FFFFE000+000FFFFFF0000000000007FFFFE000000FFFFFF0000000000007FFFFE0000007FFFFF000+000000000FFFFFE0000007FFFFF800000000000FFFFFE0000003FFFFF800000000001FFF+FFE0000003FFFFFC00000000001FFFFFE0000001FFFFFC00000000003FFFFFE0000000FF+FFFE00000000007FFFFFE0000000FFFFFE0000000000FFFFFFE00000007FFFFF00000000+00FFFFFFE00000003FFFFF8000000001FFFFFFE00000001FFFFF8000000003FFFFFFE000+00000FFFFFC000000007FFFFFFE000000007FFFFE00000001FFFFFFFE000000003FFFFF0+0000003FFFFFFFE000000001FFFFF80000007FFFFFFFE000000000FFFFFE000001FFEFFF+FFE0000000007FFFFF000007FFCFFFFFE0000000003FFFFFC0001FFF8FFFFFE000000000+0FFFFFFC01FFFE0FFFFFE00000000003FFFFFFFFFFFC0FFFFFE00000000000FFFFFFFFFF+F00FFFFFE000000000003FFFFFFFFFC00FFFFFE000000000000FFFFFFFFF000FFFFFE000+0000000001FFFFFFFC000FFFFFE00000000000003FFFFFE0000FFFFFE000000000000000+FFFE00000FFFFFE000000000000000000000000FFFFFE000000000000000000000000FFF+FFE000000000000000000000000FFFFFE000000000000000000000000FFFFFE000000000+000000000000000FFFFFE000000000000000000000000FFFFFE000000000000000000000+000FFFFFE000000000000000000000000FFFFFE000000000000000000000000FFFFFE000+000000000000000000000FFFFFE000000000000000000000000FFFFFE000000000000000+000000000FFFFFE000000000000000000000000FFFFFE000000000000000000000000FFF+FFE000000000000000000000000FFFFFE000000000000000000000000FFFFFE000000000+000000000000000FFFFFE000000000000000000000000FFFFFE000000000000000000000+000FFFFFE000000000000000000000000FFFFFE000000000000000000000000FFFFFE000+000000000000000000000FFFFFE000000000000000000000000FFFFFE000000000000000+000000000FFFFFE000000000000000000000000FFFFFE000000000000000000000000FFF+FFE000000000000000000000000FFFFFE000000000000000000000000FFFFFE000000000+000000000000000FFFFFE000000000000000000000000FFFFFE000000000000000000003+FFFFFFFFFFFF800000000000000003FFFFFFFFFFFF800000000000000003FFFFFFFFFFFF+800000000000000003FFFFFFFFFFFF800000000000000003FFFFFFFFFFFF800000000000+000003FFFFFFFFFFFF800000000000000003FFFFFFFFFFFF800000000000000003FFFFFF+FFFFFF800000000000000003FFFFFFFFFFFF80718578DC7B>I<0000007FC00001FF8000+0000FFFFFFC0001FFFF80000FFFFFFFFC0007FFFFE0000FFFFFFFFC001FFFFFF8000FFFF+FFFFC003FFFFFFE000FFFFFFFFC007FFFFFFF000FFFFFFFFC00FFFFFFFF800FFFFFFFFC0+1FFF07FFFC00FFFFFFFFC03FF00FFFFE00FFFFFFFFC07FC01FFFFE00FFFFFFFFC0FF803F+FFFF00003FFFFFC0FF003FFFFF000007FFFFC1FE007FFFFF800007FFFFC3FC007FFFFF80+0003FFFFC3F8007FFFFF800003FFFFC7F0007FFFFF800003FFFFC7E0007FFFFF800003FF+FFCFE0007FFFFF800003FFFFCFC0007FFFFF800003FFFFDFC0007FFFFF800003FFFFDF80+003FFFFF000003FFFFDF80003FFFFF000003FFFFFF00001FFFFE000003FFFFFF00001FFF+FE000003FFFFFF00000FFFFC000003FFFFFE000007FFF8000003FFFFFE000003FFF00000+03FFFFFE000000FFC0000003FFFFFC0000000000000003FFFFFC0000000000000003FFFF+FC0000000000000003FFFFFC0000000000000003FFFFF80000000000000003FFFFF80000+000000000003FFFFF80000000000000003FFFFF80000000000000003FFFFF80000000000+000003FFFFF80000000000000003FFFFF00000000000000003FFFFF00000000000000003+FFFFF00000000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF0+0000000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF0000000+0000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF0000000000000+0003FFFFF00000000000000003FFFFF00000000000000003FFFFF00000000000000003FF+FFF00000000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF000+00000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF000000000+00000003FFFFF00000000000000003FFFFF00000000000000003FFFFF000000000000000+03FFFFF00000000000000003FFFFF00000000000000003FFFFF00000000000000003FFFF+F00000000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF00000+000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF00000000000+000003FFFFF00000000000000003FFFFF00000000000000003FFFFF00000000000000003+FFFFF00000000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF0+0000000000000003FFFFF00000000000000003FFFFF00000000000000003FFFFF0000000+0000000003FFFFF0000000000000FFFFFFFFFFFFFC00000000FFFFFFFFFFFFFC00000000+FFFFFFFFFFFFFC00000000FFFFFFFFFFFFFC00000000FFFFFFFFFFFFFC00000000FFFFFF+FFFFFFFC00000000FFFFFFFFFFFFFC00000000FFFFFFFFFFFFFC00000000FFFFFFFFFFFF+FC00000000515D79DC5F>I<0000001FFFF80000F800000003FFFFFFC001FC0000003FFF+FFFFFC07FC000000FFFFFFFFFF1FFC000003FFFFFFFFFFFFFC00000FFFFFFFFFFFFFFC00+003FFFF8001FFFFFFC00007FFF000000FFFFFC0000FFF80000003FFFFC0001FFE0000000+0FFFFC0003FFC000000003FFFC0007FF8000000001FFFC000FFF0000000000FFFC000FFF+00000000007FFC001FFE00000000003FFC001FFE00000000001FFC003FFC00000000001F+FC003FFC00000000001FFC007FFC00000000000FFC007FFC00000000000FFC007FFC0000+0000000FFC007FFC000000000007FC00FFFE000000000007FC00FFFE000000000007FC00+FFFF000000000007FC00FFFF000000000007FC00FFFF800000000007FC00FFFFE0000000+0003F800FFFFF000000000000000FFFFFC00000000000000FFFFFF00000000000000FFFF+FFF00000000000007FFFFFFF8000000000007FFFFFFFFC00000000007FFFFFFFFFF00000+00003FFFFFFFFFFF800000003FFFFFFFFFFFF00000001FFFFFFFFFFFFE0000001FFFFFFF+FFFFFF8000000FFFFFFFFFFFFFE000000FFFFFFFFFFFFFF0000007FFFFFFFFFFFFFC0000+03FFFFFFFFFFFFFE000001FFFFFFFFFFFFFF800000FFFFFFFFFFFFFFC000007FFFFFFFFF+FFFFE000001FFFFFFFFFFFFFF000000FFFFFFFFFFFFFF8000003FFFFFFFFFFFFF8000000+FFFFFFFFFFFFFC0000003FFFFFFFFFFFFE0000000FFFFFFFFFFFFE00000001FFFFFFFFFF+FF000000001FFFFFFFFFFF00000000007FFFFFFFFF800000000003FFFFFFFF8000000000+000FFFFFFFC0000000000000FFFFFFC00000000000003FFFFFC00000000000000FFFFFE0+7F000000000003FFFFE0FF800000000001FFFFE0FF8000000000007FFFE0FF8000000000+003FFFE0FFC000000000003FFFE0FFC000000000001FFFE0FFC000000000000FFFE0FFE0+00000000000FFFE0FFE000000000000FFFE0FFE0000000000007FFE0FFF0000000000007+FFE0FFF0000000000007FFC0FFF8000000000007FFC0FFF8000000000007FFC0FFFC0000+00000007FFC0FFFC000000000007FF80FFFE00000000000FFF80FFFF00000000000FFF80+FFFF00000000000FFF00FFFF80000000001FFF00FFFFC0000000001FFE00FFFFE0000000+003FFE00FFFFF0000000007FFC00FFFFFC00000000FFF800FFFFFE00000003FFF000FFFF+FF80000007FFE000FFFFFFF000003FFFC000FFFFFFFF0007FFFF8000FFF9FFFFFFFFFFFF+0000FFF07FFFFFFFFFFC0000FFE01FFFFFFFFFF00000FF8007FFFFFFFFC00000FF0001FF+FFFFFF000000FE00003FFFFFF80000007C000003FFFE000000004B5F78DD5C>I[<000000+03FE0000000000000003FE0000000000000003FE0000000000000003FE00000000000000+03FE0000000000000003FE0000000000000003FE0000000000000003FE00000000000000+07FE0000000000000007FE0000000000000007FE0000000000000007FE00000000000000+07FE000000000000000FFE000000000000000FFE000000000000000FFE00000000000000+0FFE000000000000001FFE000000000000001FFE000000000000001FFE00000000000000+3FFE000000000000003FFE000000000000007FFE000000000000007FFE00000000000000+FFFE00000000000000FFFE00000000000001FFFE00000000000001FFFE00000000000003+FFFE00000000000007FFFE00000000000007FFFE0000000000000FFFFE0000000000001F+FFFE0000000000003FFFFE0000000000007FFFFE000000000000FFFFFE000000000003FF+FFFE000000000007FFFFFE00000000001FFFFFFE00000000007FFFFFFFFFFFFFF007FFFF+FFFFFFFFFFF0FFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFF0FFFFFF+FFFFFFFFFFF0FFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFF0FFFFFFFFFFFFFFFFF00000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000000000000FFFFFE000000000000FF+FFFE000000000000FFFFFE000000000000FFFFFE000001FF0000FFFFFE000001FF0000FF+FFFE000001FF0000FFFFFE000001FF0000FFFFFE000001FF0000FFFFFE000001FF0000FF+FFFE000001FF0000FFFFFE000001FF0000FFFFFE000001FF0000FFFFFE000001FF0000FF+FFFE000001FF0000FFFFFE000001FF0000FFFFFE000001FF0000FFFFFE000001FF0000FF+FFFE000001FF0000FFFFFE000001FF0000FFFFFE000001FF0000FFFFFE000003FF00007F+FFFE000003FE00007FFFFF000003FE00007FFFFF000003FE00007FFFFF000007FE00003F+FFFF000007FC00003FFFFF800007FC00001FFFFF80000FF800001FFFFFC0001FF800000F+FFFFE0003FF000000FFFFFF0007FF0000007FFFFF800FFE0000003FFFFFF03FFC0000001+FFFFFFFFFF80000000FFFFFFFFFF000000003FFFFFFFFE000000001FFFFFFFFC00000000+07FFFFFFF80000000000FFFFFFE000000000001FFFFF80000000000000FFFC0000>72+132 124 258 90 I<0000000FF80000000000001FF00000007FFFFFF800000000FFFFFF+F00000FFFFFFFFF8000001FFFFFFFFF00000FFFFFFFFF8000001FFFFFFFFF00000FFFFFF+FFF8000001FFFFFFFFF00000FFFFFFFFF8000001FFFFFFFFF00000FFFFFFFFF8000001FF+FFFFFFF00000FFFFFFFFF8000001FFFFFFFFF00000FFFFFFFFF8000001FFFFFFFFF00000+FFFFFFFFF8000001FFFFFFFFF00000FFFFFFFFF8000001FFFFFFFFF00000003FFFFFF800+0000007FFFFFF000000007FFFFF8000000000FFFFFF000000007FFFFF8000000000FFFFF+F000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FF+FFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800000000+07FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF00000+0003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800+00000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFF+F000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FF+FFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800000000+07FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF00000+0003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800+00000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFF+F000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FF+FFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800000000+07FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF00000+0003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800+00000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFF+F000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FF+FFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800000000+07FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF00000+0003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800+00000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFF+F000000003FFFFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FF+FFF80000000007FFFFF000000003FFFFF80000000007FFFFF000000003FFFFF800000000+0FFFFFF000000003FFFFF8000000000FFFFFF000000003FFFFF8000000000FFFFFF00000+0003FFFFF8000000000FFFFFF000000003FFFFF8000000001FFFFFF000000003FFFFF800+0000001FFFFFF000000003FFFFF8000000003FFFFFF000000003FFFFF8000000003FFFFF+F000000001FFFFF8000000003FFFFFF000000001FFFFF8000000007FFFFFF000000001FF+FFF800000000FFFFFFF000000001FFFFF800000000FFFFFFF000000000FFFFF800000001+FBFFFFF000000000FFFFFC00000003FBFFFFF0000000007FFFFC00000007F3FFFFF00000+00007FFFFC0000000FE3FFFFF8000000003FFFFE0000001FE3FFFFF8000000003FFFFE00+00007FC3FFFFFF000000001FFFFF800000FF83FFFFFFFFC000000FFFFFC00003FF03FFFF+FFFFC0000007FFFFFC003FFE03FFFFFFFFC0000003FFFFFFFFFFFC03FFFFFFFFC0000000+FFFFFFFFFFF803FFFFFFFFC00000007FFFFFFFFFE003FFFFFFFFC00000001FFFFFFFFF80+03FFFFFFFFC000000003FFFFFFFE0003FFFFFFFFC0000000007FFFFFF80003FFFFFFFFC0+0000000001FFFFC00003FFFF000000725E77DC81>I<FFFFFFFFFFFF00000003FFFFFFFF+FFFFFFFFFFFF00000003FFFFFFFFFFFFFFFFFFFF00000003FFFFFFFFFFFFFFFFFFFF0000+0003FFFFFFFFFFFFFFFFFFFF00000003FFFFFFFFFFFFFFFFFFFF00000003FFFFFFFFFFFF+FFFFFFFF00000003FFFFFFFFFFFFFFFFFFFF00000003FFFFFFFFFFFFFFFFFFFF00000003+FFFFFFFF0007FFFFF800000000000FFFFE000003FFFFFC000000000000FFE0000003FFFF+FC000000000000FFC0000001FFFFFE000000000000FF80000001FFFFFE000000000001FF+80000001FFFFFF000000000001FF80000000FFFFFF000000000003FF00000000FFFFFF80+0000000003FF000000007FFFFF800000000007FE000000007FFFFF800000000007FE0000+00003FFFFFC0000000000FFC000000003FFFFFC0000000000FFC000000001FFFFFE00000+00001FF8000000001FFFFFE0000000001FF8000000000FFFFFF0000000001FF000000000+0FFFFFF0000000003FF0000000000FFFFFF8000000003FF00000000007FFFFF800000000+7FE00000000007FFFFFC000000007FE00000000003FFFFFC00000000FFC00000000003FF+FFFC00000000FFC00000000001FFFFFE00000001FF800000000001FFFFFE00000001FF80+0000000000FFFFFF00000003FF000000000000FFFFFF00000003FF0000000000007FFFFF+80000003FE0000000000007FFFFF80000007FE0000000000007FFFFFC0000007FE000000+0000003FFFFFC000000FFC0000000000003FFFFFE000000FFC0000000000001FFFFFE000+001FF80000000000001FFFFFE000001FF80000000000000FFFFFF000003FF00000000000+000FFFFFF000003FF000000000000007FFFFF800007FE000000000000007FFFFF800007F+E000000000000003FFFFFC00007FC000000000000003FFFFFC0000FFC000000000000003+FFFFFE0000FFC000000000000001FFFFFE0001FF8000000000000001FFFFFF0001FF8000+000000000000FFFFFF0003FF0000000000000000FFFFFF0003FF00000000000000007FFF+FF8007FE00000000000000007FFFFF8007FE00000000000000003FFFFFC007FC00000000+000000003FFFFFC00FFC00000000000000001FFFFFE00FF800000000000000001FFFFFE0+1FF800000000000000001FFFFFF01FF800000000000000000FFFFFF03FF0000000000000+00000FFFFFF83FF0000000000000000007FFFFF87FE0000000000000000007FFFFF87FE0+000000000000000003FFFFFCFFC0000000000000000003FFFFFCFFC00000000000000000+01FFFFFEFF80000000000000000001FFFFFFFF80000000000000000000FFFFFFFF000000+00000000000000FFFFFFFF00000000000000000000FFFFFFFF000000000000000000007F+FFFFFE000000000000000000007FFFFFFE000000000000000000003FFFFFFC0000000000+00000000003FFFFFFC000000000000000000001FFFFFF8000000000000000000001FFFFF+F8000000000000000000000FFFFFF0000000000000000000000FFFFFF000000000000000+0000000FFFFFF00000000000000000000007FFFFE00000000000000000000007FFFFE000+00000000000000000003FFFFC00000000000000000000003FFFFC0000000000000000000+0001FFFF800000000000000000000001FFFF800000000000000000000000FFFF00000000+0000000000000000FFFF0000000000000000000000007FFE000000000000000000000000+7FFE0000000000000000000000007FFE0000000000000000000000003FFC000000000000+0000000000001FF80000000000000000000000000FF0000000000000705D7BDB7B>I<FF+FFFFFFFFFE007FFFFFFFFFF800003FFFFFFFF8FFFFFFFFFFFE007FFFFFFFFFF800003FFF+FFFFF8FFFFFFFFFFFE007FFFFFFFFFF800003FFFFFFFF8FFFFFFFFFFFE007FFFFFFFFFF8+00003FFFFFFFF8FFFFFFFFFFFE007FFFFFFFFFF800003FFFFFFFF8FFFFFFFFFFFE007FFF+FFFFFFF800003FFFFFFFF8FFFFFFFFFFFE007FFFFFFFFFF800003FFFFFFFF8FFFFFFFFFF+FE007FFFFFFFFFF800003FFFFFFFF8FFFFFFFFFFFE007FFFFFFFFFF800003FFFFFFFF800+0FFFFFF000000007FFFFC0000000003FFFF800000FFFFFF000000007FFFFC00000000003+FF80000007FFFFF800000003FFFFC00000000001FF00000007FFFFF800000003FFFFE000+00000003FF00000003FFFFF800000003FFFFE00000000003FE00000003FFFFFC00000001+FFFFF00000000007FE00000003FFFFFC00000001FFFFF00000000007FE00000001FFFFFE+00000000FFFFF00000000007FC00000001FFFFFE00000000FFFFF8000000000FFC000000+00FFFFFE00000000FFFFF8000000000FF800000000FFFFFF000000007FFFFC000000001F+F800000000FFFFFF000000007FFFFC000000001FF8000000007FFFFF800000003FFFFC00+0000001FF0000000007FFFFF800000007FFFFE000000003FF0000000003FFFFF80000000+7FFFFE000000003FE0000000003FFFFFC0000000FFFFFF000000007FE0000000003FFFFF+C0000000FFFFFF000000007FE0000000001FFFFFC0000000FFFFFF000000007FC0000000+001FFFFFE0000001FFFFFF80000000FFC0000000000FFFFFE0000001FFFFFF80000000FF+80000000000FFFFFF0000003FFFFFF80000001FF80000000000FFFFFF0000003FFFFFFC0+000001FF800000000007FFFFF0000003FFFFFFC0000001FF000000000007FFFFF8000007+FFFFFFE0000003FF000000000003FFFFF8000007FFFFFFE0000003FE000000000003FFFF+FC00000FFDFFFFE0000007FE000000000003FFFFFC00000FFDFFFFF0000007FE00000000+0001FFFFFC00000FF8FFFFF0000007FC000000000001FFFFFE00001FF8FFFFF800000FFC+000000000000FFFFFE00001FF8FFFFF800000FF8000000000000FFFFFF00003FF07FFFF8+00001FF8000000000000FFFFFF00003FF07FFFFC00001FF80000000000007FFFFF00003F+E03FFFFC00001FF00000000000007FFFFF80007FE03FFFFE00003FF00000000000003FFF+FF80007FE03FFFFE00003FE00000000000003FFFFFC000FFC01FFFFE00007FE000000000+00003FFFFFC000FFC01FFFFF00007FE00000000000001FFFFFC000FF800FFFFF00007FC0+0000000000001FFFFFE001FF800FFFFF8000FFC00000000000001FFFFFE001FF800FFFFF+8000FFC00000000000000FFFFFF001FF0007FFFF8001FF800000000000000FFFFFF003FF+0007FFFFC001FF8000000000000007FFFFF003FE0003FFFFC001FF0000000000000007FF+FFF807FE0003FFFFE003FF0000000000000007FFFFF807FE0003FFFFE003FF0000000000+000003FFFFFC07FC0001FFFFE007FE0000000000000003FFFFFC0FFC0001FFFFF007FE00+00000000000001FFFFFC0FF80000FFFFF007FC0000000000000001FFFFFE1FF80000FFFF+F80FFC0000000000000001FFFFFE1FF80000FFFFF80FFC0000000000000000FFFFFF1FF0+00007FFFF81FF80000000000000000FFFFFF3FF000007FFFFC1FF800000000000000007F+FFFF3FE000003FFFFC1FF000000000000000007FFFFFFFE000003FFFFE3FF00000000000+0000007FFFFFFFE000003FFFFE3FF000000000000000003FFFFFFFC000001FFFFE7FE000+000000000000003FFFFFFFC000001FFFFF7FE000000000000000001FFFFFFF8000000FFF+FF7FC000000000000000001FFFFFFF8000000FFFFFFFC000000000000000001FFFFFFF80+00000FFFFFFFC000000000000000000FFFFFFF00000007FFFFFF8000000000000000000F+FFFFFF00000007FFFFFF80000000000000000007FFFFFE00000003FFFFFF000000000000+00000007FFFFFE00000003FFFFFF00000000000000000007FFFFFE00000003FFFFFF0000+0000000000000003FFFFFC00000001FFFFFE00000000000000000003FFFFFC00000001FF+FFFE00000000000000000001FFFFF800000000FFFFFC00000000000000000001FFFFF800+000000FFFFFC00000000000000000001FFFFF800000000FFFFFC00000000000000000000+FFFFF0000000007FFFF800000000000000000000FFFFF0000000007FFFF8000000000000+000000007FFFE0000000003FFFF0000000000000000000007FFFE0000000003FFFF00000+00000000000000007FFFE0000000003FFFF0000000000000000000003FFFC0000000001F+FFE0000000000000000000003FFFC0000000001FFFE0000000000000000000001FFF8000+0000000FFFC0000000000000000000001FFF80000000000FFFC000000000000000000000+1FFF80000000000FFFC0000000000000000000000FFF000000000007FF80000000000000+000000000FFF000000000007FF800000000000000000000007FE000000000003FF000000+000000000000000003FC000000000001FE0000000000009D5D7BDBA8>I<7FFFFFFFFFFF+800001FFFFFFFFFE007FFFFFFFFFFF800001FFFFFFFFFE007FFFFFFFFFFF800001FFFFFF+FFFE007FFFFFFFFFFF800001FFFFFFFFFE007FFFFFFFFFFF800001FFFFFFFFFE007FFFFF+FFFFFF800001FFFFFFFFFE007FFFFFFFFFFF800001FFFFFFFFFE007FFFFFFFFFFF800001+FFFFFFFFFE007FFFFFFFFFFF800001FFFFFFFFFE000000FFFFFF000000000FFFFFC00000+00007FFFFF8000000001FFF000000000007FFFFFC000000001FFE000000000003FFFFFE0+00000003FFC000000000001FFFFFF000000007FF8000000000000FFFFFF00000000FFF00+000000000007FFFFF80000000FFE00000000000007FFFFFC0000001FFE00000000000003+FFFFFE0000003FFC00000000000001FFFFFF0000007FF800000000000000FFFFFF000000+FFF0000000000000007FFFFF800001FFE0000000000000007FFFFFC00003FFC000000000+0000003FFFFFE00007FF80000000000000001FFFFFF00007FF80000000000000000FFFFF+F8000FFF000000000000000007FFFFF8001FFE000000000000000007FFFFFC003FFC0000+00000000000003FFFFFE007FF8000000000000000001FFFFFF00FFF00000000000000000+00FFFFFF81FFE00000000000000000007FFFFF81FFC00000000000000000003FFFFFC3FF+C00000000000000000003FFFFFE7FF800000000000000000001FFFFFFFFF000000000000+000000000FFFFFFFFE0000000000000000000007FFFFFFFC0000000000000000000003FF+FFFFF80000000000000000000003FFFFFFF00000000000000000000001FFFFFFF0000000+0000000000000000FFFFFFE000000000000000000000007FFFFFC0000000000000000000+00003FFFFFC000000000000000000000003FFFFFE000000000000000000000001FFFFFF0+00000000000000000000000FFFFFF8000000000000000000000007FFFFFC000000000000+000000000003FFFFFC000000000000000000000001FFFFFE000000000000000000000001+FFFFFF000000000000000000000003FFFFFF800000000000000000000007FFFFFFC00000+00000000000000000FFFFFFFC0000000000000000000001FFFFFFFE00000000000000000+00001FFFFFFFF0000000000000000000003FFFFFFFF8000000000000000000007FFFFFFF+FC00000000000000000000FFF3FFFFFE00000000000000000001FFE1FFFFFE0000000000+0000000003FFC1FFFFFF00000000000000000007FF80FFFFFF80000000000000000007FF+007FFFFFC000000000000000000FFF003FFFFFE000000000000000001FFE001FFFFFE000+000000000000003FFC001FFFFFF000000000000000007FF8000FFFFFF800000000000000+00FFF00007FFFFFC0000000000000001FFE00003FFFFFE0000000000000003FFC00001FF+FFFE0000000000000003FFC00000FFFFFF0000000000000007FF800000FFFFFF80000000+0000000FFF0000007FFFFFC00000000000001FFE0000003FFFFFE00000000000003FFC00+00001FFFFFE00000000000007FF80000000FFFFFF0000000000000FFF00000000FFFFFF8+000000000000FFE000000007FFFFFC000000000001FFE000000003FFFFFE000000000003+FFC000000001FFFFFF000000000007FF8000000000FFFFFF00000000000FFF0000000000+FFFFFF80000000001FFE00000000007FFFFFC0000000003FFE00000000003FFFFFE00000+000FFFFFE0000000001FFFFFF00000FFFFFFFFFF0000001FFFFFFFFFFFE0FFFFFFFFFF00+00001FFFFFFFFFFFE0FFFFFFFFFF0000001FFFFFFFFFFFE0FFFFFFFFFF0000001FFFFFFF+FFFFE0FFFFFFFFFF0000001FFFFFFFFFFFE0FFFFFFFFFF0000001FFFFFFFFFFFE0FFFFFF+FFFF0000001FFFFFFFFFFFE0FFFFFFFFFF0000001FFFFFFFFFFFE0FFFFFFFFFF0000001F+FFFFFFFFFFE0735C7CDB7B>I<7FFFFFFFFFFFC0000001FFFFFFFF807FFFFFFFFFFFC000+0001FFFFFFFF807FFFFFFFFFFFC0000001FFFFFFFF807FFFFFFFFFFFC0000001FFFFFFFF+807FFFFFFFFFFFC0000001FFFFFFFF807FFFFFFFFFFFC0000001FFFFFFFF807FFFFFFFFF+FFC0000001FFFFFFFF807FFFFFFFFFFFC0000001FFFFFFFF807FFFFFFFFFFFC0000001FF+FFFFFF800003FFFFFE000000000007FFFF00000001FFFFFE000000000000FFF000000001+FFFFFE0000000000007FE000000000FFFFFF000000000000FFC000000000FFFFFF000000+000000FFC0000000007FFFFF800000000000FF80000000007FFFFF800000000001FF8000+0000007FFFFFC00000000001FF80000000003FFFFFC00000000003FF00000000003FFFFF+E00000000003FF00000000001FFFFFE00000000007FE00000000001FFFFFF00000000007+FE00000000000FFFFFF0000000000FFC00000000000FFFFFF0000000000FFC0000000000+07FFFFF8000000001FF8000000000007FFFFF8000000001FF8000000000003FFFFFC0000+00001FF0000000000003FFFFFC000000003FF0000000000001FFFFFE000000003FE00000+00000001FFFFFE000000007FE0000000000001FFFFFF000000007FE0000000000000FFFF+FF00000000FFC0000000000000FFFFFF80000000FFC00000000000007FFFFF80000001FF+800000000000007FFFFFC0000001FF800000000000003FFFFFC0000003FF000000000000+003FFFFFC0000003FF000000000000001FFFFFE0000007FE000000000000001FFFFFE000+0007FE000000000000000FFFFFF0000007FC000000000000000FFFFFF000000FFC000000+000000000FFFFFF800000FFC0000000000000007FFFFF800001FF80000000000000007FF+FFFC00001FF80000000000000003FFFFFC00003FF00000000000000003FFFFFE00003FF0+0000000000000001FFFFFE00007FE00000000000000001FFFFFE00007FE0000000000000+0000FFFFFF0000FFC00000000000000000FFFFFF0000FFC000000000000000007FFFFF80+00FF8000000000000000007FFFFF8001FF8000000000000000003FFFFFC001FF00000000+00000000003FFFFFC003FF0000000000000000003FFFFFE003FF0000000000000000001F+FFFFE007FE0000000000000000001FFFFFF007FE0000000000000000000FFFFFF00FFC00+00000000000000000FFFFFF00FFC00000000000000000007FFFFF81FF800000000000000+000007FFFFF81FF800000000000000000003FFFFFC3FF000000000000000000003FFFFFC+3FF000000000000000000001FFFFFE3FE000000000000000000001FFFFFE7FE000000000+000000000001FFFFFF7FE000000000000000000000FFFFFFFFC000000000000000000000+FFFFFFFFC0000000000000000000007FFFFFFF80000000000000000000007FFFFFFF8000+0000000000000000003FFFFFFF00000000000000000000003FFFFFFF0000000000000000+0000001FFFFFFE00000000000000000000001FFFFFFE00000000000000000000000FFFFF+FC00000000000000000000000FFFFFFC00000000000000000000000FFFFFFC0000000000+00000000000007FFFFF8000000000000000000000007FFFFF80000000000000000000000+03FFFFF0000000000000000000000003FFFFF0000000000000000000000001FFFFE00000+00000000000000000001FFFFE0000000000000000000000000FFFFC00000000000000000+00000000FFFFC00000000000000000000000007FFF800000000000000000000000007FFF+800000000000000000000000003FFF000000000000000000000000003FFF000000000000+000000000000003FFF000000000000000000000000001FFE000000000000000000000000+001FFE000000000000000000000000000FFC000000000000000000000000000FFC000000+000000000000000000001FF8000000000000000000000000001FF8000000000000000000+000000003FF0000000000000000000000000003FF0000000000000000000000000003FE0+000000000000000000000000007FE0000000000000000000000000007FE0000000000000+00000000000000FFC000000000000000000000000000FFC0000000000000000000000000+01FF800000000000000000FE00000001FF800000000000000003FF80000003FF00000000+000000000FFFE0000003FF00000000000000001FFFF0000007FE00000000000000003FFF+F8000007FE00000000000000007FFFFC00000FFC00000000000000007FFFFC00000FFC00+000000000000007FFFFC00000FF80000000000000000FFFFFE00001FF800000000000000+00FFFFFE00003FF00000000000000000FFFFFE00003FF00000000000000000FFFFFE0000+7FE00000000000000000FFFFFE0000FFE00000000000000000FFFFFE0000FFC000000000+00000000FFFFFE0001FF800000000000000000FFFFFC0003FF0000000000000000007FFF+FC0007FF0000000000000000007FFFFC000FFE0000000000000000003FFFF8003FFC0000+000000000000003FFFF0007FF80000000000000000001FFFE001FFF00000000000000000+001FFE8007FFE00000000000000000000FFFC03FFFC000000000000000000007FFFFFFFF+0000000000000000000003FFFFFFFE0000000000000000000001FFFFFFF8000000000000+00000000007FFFFFF000000000000000000000001FFFFFC0000000000000000000000007+FFFE000000000000000000000000007FE0000000000000000000000071857CDB7B>I<03+FFFFFFFFFFFFFFFFFFF803FFFFFFFFFFFFFFFFFFFC03FFFFFFFFFFFFFFFFFFFC03FFFFFF+FFFFFFFFFFFFFC03FFFFFFFFFFFFFFFFFFFC03FFFFFFFFFFFFFFFFFFFC03FFFFFFFFFFFF+FFFFFFF803FFFFFF8000003FFFFFF803FFFFF00000007FFFFFF007FFFF800000007FFFFF+E007FFFE00000000FFFFFFC007FFFC00000001FFFFFFC007FFF000000003FFFFFF8007FF+E000000003FFFFFF0007FFE000000007FFFFFE0007FFC00000000FFFFFFE0007FF800000+001FFFFFFC0007FF800000001FFFFFF80007FF000000003FFFFFF00007FF000000007FFF+FFF00007FE00000000FFFFFFE00007FE00000000FFFFFFC00007FE00000001FFFFFF8000+07FC00000003FFFFFF800007FC00000003FFFFFF000007FC00000007FFFFFE000007FC00+00000FFFFFFC00000FFC0000001FFFFFFC00000FFC0000001FFFFFF800000FF80000003F+FFFFF000000FF80000007FFFFFE000000FF8000000FFFFFFE000000FF8000000FFFFFFC0+00000FF8000001FFFFFF8000000FF8000003FFFFFF0000000FF8000007FFFFFF00000000+00000007FFFFFE000000000000000FFFFFFC000000000000001FFFFFFC00000000000000+3FFFFFF8000000000000003FFFFFF0000000000000007FFFFFE000000000000000FFFFFF+E000000000000001FFFFFFC000000000000001FFFFFF8000000000000003FFFFFF000000+0000000007FFFFFF000000000000000FFFFFFE000000000000000FFFFFFC000000000000+001FFFFFF8000000000000003FFFFFF8000000000000007FFFFFF0000007FC0000007FFF+FFE0000007FC000000FFFFFFC0000007FC000001FFFFFFC0000007FC000001FFFFFF8000+0007FC000003FFFFFF0000000FF8000007FFFFFE0000000FF800000FFFFFFE0000000FF8+00000FFFFFFC0000000FF800001FFFFFF80000000FF800003FFFFFF00000000FF800007F+FFFFF00000001FF800007FFFFFE00000001FF80000FFFFFFC00000001FF80001FFFFFF80+0000001FF80003FFFFFF800000001FF00003FFFFFF000000003FF00007FFFFFE00000000+3FF0000FFFFFFE000000003FF0001FFFFFFC000000007FF0001FFFFFF8000000007FF000+3FFFFFF000000000FFF0007FFFFFF000000001FFF000FFFFFFE000000001FFF000FFFFFF+C000000003FFF001FFFFFF8000000007FFF003FFFFFF800000000FFFE007FFFFFF000000+001FFFE007FFFFFE000000003FFFE00FFFFFFC00000000FFFFE01FFFFFFC00000003FFFF+E03FFFFFF80000001FFFFFE03FFFFFF0000003FFFFFFE07FFFFFFFFFFFFFFFFFFFE0FFFF+FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFF+FFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFC07FFFFFFFFFFFFFFF+FFFFC0565C7ADB67>I E /Ft 13 116 df<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC0+3F801F000B0B6C8A33>46 D<000007F8000000003FFF00000000FFFF80000003FFFFE000+000FFFFFF000001FFFFFF800003FFC0FF800007FE003FC0000FF8001FC0001FF0000FE00+03FC00007E0003F8007E7F0007F801FFBF0007F007FFFF000FE00FFFFF800FC01FFFFF80+1FC03FFFFF801F803FC3FF803F807F81FF803F007F00FFC03F00FE007FC07F00FC003FC0+7E01FC003FC07E01F8001FC07E01F8001FC0FE01F8001FC0FC03F8001FC0FC03F0000FC0+FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0FC03F0000FC0+FC03F0000FC0FC03F0000FC0FC03F8001FC0FE01F8001F807E01F8001F807E01F8001F80+7E01FC003F807F00FC003F003F00FE007F003F007F00FE003F807F81FE001F803FC3FC00+1FC03FFFFC000FC01FFFF8000FE00FFFF00007F007FFE00007F801FF800003F8007E0000+03FC00000F8001FF00001FC000FF80003FC0007FE000FFC0003FFC07FF80001FFFFFFF00+000FFFFFFE000003FFFFF8000000FFFFF00000003FFF8000000007FC00002A3F7CBD33>+64 D<001FFC00000000FFFF80000003FFFFE0000007FFFFF000000FFFFFFC00001FFFFF+FE00001FF007FF00001FE001FF00001FE000FF80001FE0003F80000FC0003FC000078000+1FC0000000001FE0000000000FE0000000000FE0000000000FE0000000000FE000000000+0FE00000000FFFE0000001FFFFE000001FFFFFE000007FFFFFE00001FFFFFFE00007FFFF+0FE0000FFFC00FE0001FFC000FE0003FF0000FE0007FC0000FE0007F80000FE000FF0000+0FE000FE00000FE000FE00000FE000FE00000FE000FE00000FE000FE00000FE000FF0000+1FE0007F00001FE0007F80007FE0003FE000FFF0003FF807FFFFF01FFFFFFFFFF80FFFFF+FFFFF807FFFFF3FFF803FFFFC1FFF800FFFF003FF0001FF00000002D2E7BAC33>97+D<0000FFF0000007FFFE00001FFFFF80003FFFFFC0007FFFFFE001FFFFFFF003FFC01FF0+03FE000FF007FC000FF00FF8000FF01FF00007E01FE00003C03FC00000003F800000003F+800000007F800000007F000000007F00000000FF00000000FE00000000FE00000000FE00+000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FF0000+00007F000000007F000000007F800000003F800001F03FC00003F81FE00003F81FF00007+F80FF80007F007FC000FF007FF001FE003FFE07FE001FFFFFFC000FFFFFF80003FFFFF00+001FFFFC000007FFF8000000FFC000252E79AC33>99 D<0000FF80000007FFF000001FFF+FC00003FFFFE0000FFFFFF0001FFFFFF8003FF80FFC007FE003FE007F8000FF00FF00007+F01FE00007F81FC00003F83FC00003FC3F800001FC7F800001FC7F000001FC7F000001FE+7F000000FEFF000000FEFE000000FEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFF+FFFFFFFEFFFFFFFFFCFE00000000FF000000007F000000007F000000007F000000003F80+0000003F8000007C1FC00000FE1FE00000FE0FF00000FE0FF80001FE07FC0003FC03FF00+0FFC01FFC03FF800FFFFFFF0007FFFFFE0003FFFFFC0000FFFFF000003FFFC0000007FE0+00272E7BAC33>101 D<3FFC000000007FFE00000000FFFE00000000FFFE000000007FFE+000000003FFE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE+0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE+0000000000FE01FF000000FE07FFC00000FE1FFFF00000FE7FFFF80000FEFFFFF80000FF+FFFFFC0000FFFF07FE0000FFF801FE0000FFF000FE0000FFE000FF0000FFC0007F0000FF+80007F0000FF80007F0000FF00007F0000FF00007F0000FF00007F0000FE00007F0000FE+00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE+00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE+00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE+00007F0000FE00007F0000FE00007F003FFFF80FFFFC7FFFFC1FFFFEFFFFFE3FFFFFFFFF+FE3FFFFF7FFFFC1FFFFE3FFFF80FFFFC303D7FBC33>104 D<7FF800000000FFFC000000+00FFFC00000000FFFC00000000FFFC000000007FFC0000000000FC0000000000FC000000+0000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000+0000FC0000000000FC0000000000FC0000000000FC0000000000FC01FFFFC000FC03FFFF+E000FC07FFFFF000FC07FFFFF000FC03FFFFE000FC01FFFFC000FC000FF00000FC001FE0+0000FC003FC00000FC007F800000FC00FF000000FC01FE000000FC03FC000000FC07F800+0000FC0FF0000000FC1FE0000000FC3FC0000000FC7F80000000FCFFC0000000FDFFE000+0000FFFFE0000000FFFFF0000000FFF3F8000000FFE3FC000000FFC1FC000000FF80FE00+0000FF007F000000FE007F000000FC003F800000FC001FC00000FC001FE00000FC000FE0+0000FC0007F00000FC0003F80000FC0003FC0000FC0001FC0000FC0000FE007FFFF80FFF+F0FFFFFC1FFFF8FFFFFC1FFFFCFFFFFC1FFFFCFFFFFC1FFFF87FFFF80FFFF02E3D7EBC33+>107 D<3FFFFC00007FFFFE0000FFFFFE0000FFFFFE00007FFFFE00003FFFFE00000000+FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE+00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00+000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000+00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000+FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE+00000000FE00000000FE00000000FE00000000FE00000000FE00003FFFFFFFF87FFFFFFF+FCFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC3FFFFFFFF8273D7ABC33>I<0000FC007E00007F+C3FF01FF8000FFEFFF87FFC000FFFFFFCFFFE000FFFFFFDFFFE000FFFFFFFFFFF0007FFF+0FFF87F00007FE07FF03F00007FC07FE03F80007F803FC01F80007F803FC01F80007F003+F801F80007F003F801F80007F003F801F80007F003F801F80007E003F001F80007E003F0+01F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001+F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F8+0007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F800+07E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007+E003F001F8007FFE0FFF07FF80FFFF1FFF8FFFC0FFFF1FFF8FFFC0FFFF1FFF8FFFC0FFFF+1FFF8FFFC07FFE0FFF07FF80322C80AB33>I<000001FF00003FFC07FFC0007FFE1FFFF0+00FFFE7FFFF800FFFEFFFFF8007FFFFFFFFC003FFFFF07FE0000FFF801FE0000FFF000FE+0000FFE000FF0000FFC0007F0000FF80007F0000FF80007F0000FF00007F0000FF00007F+0000FF00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F+0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F+0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F+0000FE00007F0000FE00007F0000FE00007F0000FE00007F0000FE00007F003FFFF80FFF+FC7FFFFC1FFFFEFFFFFE3FFFFFFFFFFE3FFFFF7FFFFC1FFFFE3FFFF80FFFFC302C7FAB33+>I<0001FE0000000FFFC000003FFFF000007FFFF80000FFFFFC0001FFFFFE0003FF03FF+0007FC00FF800FF8007FC00FF0003FC01FE0001FE01FC0000FE03F800007F03F800007F0+7F800007F87F000003F87F000003F87F000003F8FE000001FCFE000001FCFE000001FCFE+000001FCFE000001FCFE000001FCFE000001FCFE000001FCFE000001FCFE000001FCFF00+0003FC7F000003F87F000003F87F800007F83F800007F03FC0000FF03FC0000FF01FE000+1FE01FF0003FE00FF8007FC007FC00FF8003FF03FF0001FFFFFE0000FFFFFC00007FFFF8+00003FFFF000000FFFC0000001FE0000262E7AAC33>I<00000003FE007FFF801FFF80FF+FFC07FFFE0FFFFC1FFFFE0FFFFC3FFFFF0FFFFC7FFFFF07FFFCFFE0FF0001FDFF00FF000+1FFFC007E0001FFF8003C0001FFF000000001FFE000000001FFC000000001FF800000000+1FF8000000001FF0000000001FF0000000001FE0000000001FE0000000001FE000000000+1FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000000+1FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC000000000+1FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000007F+FFFFFE0000FFFFFFFF0000FFFFFFFF0000FFFFFFFF0000FFFFFFFF00007FFFFFFE00002C+2C7DAB33>114 D<001FFE0F0000FFFF8F8003FFFFFF800FFFFFFF801FFFFFFF803FFFFF+FF803FF007FF807F8001FF807F0000FF80FE00007F80FC00007F80FC00003F80FC00003F+80FC00003F80FE00003F807F00001F007FC00000003FF80000003FFFC000001FFFFF0000+0FFFFFE00003FFFFF80000FFFFFC00001FFFFF000000FFFF80000007FFC00000007FC000+00001FE07C00000FE0FE000007F0FE000003F0FE000003F0FF000003F0FF000003F0FF80+0003F0FF800007F0FFC00007E0FFE0000FE0FFF0003FC0FFFE01FFC0FFFFFFFF80FFFFFF+FF00FDFFFFFE00FCFFFFF800F83FFFE0007807FF0000242E79AC33>I+E /Fu 22 122 df<1E007F80FF80FFC0FFC0FFE0FFE0FFE07FE01E600060006000600060+00E000C000C000C001C0018003800300070006000E001C003800700060000B1D78891B>+44 D<0000FF00000007FFE000001F81F800003E007C0000FC003F0001F8001F8001F000+0F8003E00007C007C00003E007C00003E00FC00003F00F800001F01F800001F81F800001+F83F800001FC3F800001FC3F800001FC3F000000FC7F000000FE7F000000FE7F000000FE+7F000000FE7F000000FEFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF+000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF00+0000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF000000FFFF0000+00FFFF000000FFFF000000FF7F000000FE7F000000FE7F000000FE7F000000FE7F000000+FE7F800001FE3F800001FC3F800001FC3F800001FC1F800001F81F800001F80FC00003F0+0FC00003F00FC00003F007E00007E003E00007C003F0000FC001F8001F8000FC003F0000+3E007C00001F81F8000007FFE0000000FF000028447CC131>48 D<000030000000F00000+01F0000003F000001FF00000FFF000FFFFF000FFE7F000FF07F0000007F0000007F00000+07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000+07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000+07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000+07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000+07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000+07F0000007F0000007F0000007F0000007F000000FF800001FFC007FFFFFFF7FFFFFFF7F+FFFFFF204278C131>I<0003FE0000001FFFC000007FFFF00001F80FFC0003C001FE0007+8000FF000E00007F801C00003FC01C00001FE03800001FF03000000FF07000000FF86000+0007F86C000007F8FF000007FCFF800007FCFFC00007FCFFC00003FCFFC00003FCFFC000+03FCFFC00003FC7F800007FC3F000007FC00000007FC00000007F800000007F80000000F+F80000000FF00000001FF00000001FE00000001FE00000003FC00000007F800000007F00+000000FF00000000FE00000001FC00000003F800000007F000000007E00000000FC00000+001F800000003F000000007C00000000F800000000F000000001E000000003C000000007+800000000F00000C001E00000C003C00000C0038000018007000001800E000001801C000+0018038000003807000000300E000000701FFFFFFFF01FFFFFFFF03FFFFFFFF07FFFFFFF+F0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE026427BC131>I<06000000C007C00007C007FC00+7F8007FFFFFF0007FFFFFE0007FFFFFC0007FFFFF80007FFFFE00007FFFF8000063FFC00+000600000000060000000006000000000600000000060000000006000000000600000000+060000000006000000000600000000060000000006000000000600000000060000000006+00FF00000607FFC000061F01F000063800FC0006F0007E0007C0003F000780001F800780+001FC00700000FC00600000FE000000007F000000007F000000007F000000007F8000000+03F800000003F800000003FC00000003FC00000003FC00000003FC00000003FC3E000003+FC7F000003FCFF800003FCFF800003FCFF800003FCFF800003FCFF800003F8FF000007F8+FE000007F860000007F060000007F07000000FF03000000FE03800001FC01C00001FC01E+00003F800F00007F00078000FE0003C001FC0001F807F000007FFFE000001FFF00000007+F8000026447BC131>53 D<00000000C00000000000000001E00000000000000001E00000+000000000001E00000000000000003F00000000000000003F00000000000000003F00000+000000000007F80000000000000007F80000000000000007F8000000000000000FFC0000+00000000000FFC000000000000000FFC0000000000000019FE0000000000000019FE0000+000000000019FE0000000000000030FF0000000000000030FF0000000000000070FF8000+0000000000607F80000000000000607F80000000000000E07FC0000000000000C03FC000+0000000000C03FC0000000000001C03FE0000000000001801FE0000000000001801FE000+0000000003001FF0000000000003000FF0000000000003000FF0000000000006000FF800+00000000060007F80000000000060007F800000000000C0003FC00000000000C0003FC00+000000000C0003FC0000000000180001FE0000000000180001FE0000000000180001FE00+00000000300000FF0000000000300000FF0000000000700000FF80000000006000007F80+000000006000007F8000000000E000007FC000000000FFFFFFFFC000000000FFFFFFFFC0+00000001FFFFFFFFE0000000018000001FE0000000018000001FE0000000030000001FF0+000000030000000FF0000000030000000FF0000000060000000FF80000000600000007F8+0000000600000007F80000000C00000003FC0000000C00000003FC0000000C00000003FC+0000001800000001FE0000001800000001FE0000001800000001FE0000003000000000FF+0000003000000000FF0000007800000000FF800000F800000000FF800001FC00000000FF+C0000FFF00000003FFE000FFFFE000007FFFFFC0FFFFE000007FFFFFC0FFFFE000007FFF+FFC042477DC649>65 D<0000000FFE000060000000FFFFC000E0000003FFFFF000E00000+0FFC01FC01E000003FC0003E01E00000FF00000F83E00003FC000003C7E00007F8000001+E7E0000FF0000000FFE0001FE00000007FE0003FC00000003FE0007F800000001FE000FF+000000000FE001FE000000000FE001FC0000000007E003FC0000000007E007F800000000+03E007F80000000003E00FF00000000001E00FF00000000001E01FE00000000000E01FE0+0000000000E03FE00000000000E03FE00000000000E03FC00000000000607FC000000000+00607FC00000000000607FC00000000000607FC0000000000000FF80000000000000FF80+000000000000FF80000000000000FF80000000000000FF80000000000000FF8000000000+0000FF80000000000000FF80000000000000FF80000000000000FF80000000000000FF80+000000000000FF80000000000000FF80000000000000FF800000000000007FC000000000+00007FC00000000000007FC00000000000607FC00000000000603FC00000000000603FE0+0000000000603FE00000000000601FE00000000000E01FF00000000000E00FF000000000+00C00FF00000000000C007F80000000001C007F800000000018003FC00000000038001FC+00000000038001FE00000000070000FF000000000600007F800000000E00003FC0000000+1C00001FE00000003800000FF000000078000007F8000000F0000003FC000001E0000000+FF000007800000003FC0001F000000000FFC00FC0000000003FFFFF00000000000FFFFC0+00000000000FFE0000003B487BC546>67 D<FFFFFFC00001FFFFC0FFFFFFC00001FFFFC0+FFFFFFC00001FFFFC001FFE00000007FFC0000FFC00000003FE000007F800000003F8000+007F800000003E0000007F800000003C0000007F80000000380000007F80000000700000+007F80000000E00000007F80000001C00000007F80000003800000007F80000007000000+007F8000001E000000007F80000038000000007F80000070000000007F800000E0000000+007F800001C0000000007F80000380000000007F80000700000000007F80000E00000000+007F80001C00000000007F80003800000000007F80007000000000007F8000E000000000+007F8001C000000000007F8003E000000000007F8007F000000000007F800FF000000000+007F801FF800000000007F803FFC00000000007F8077FC00000000007F80E3FE00000000+007F81C1FF00000000007F8381FF00000000007F8700FF80000000007F8E007FC0000000+007F9C007FC0000000007FB8003FE0000000007FF0001FF0000000007FC0001FF0000000+007F80000FF8000000007F800007FC000000007F800007FC000000007F800003FE000000+007F800001FF000000007F800001FF000000007F800000FF800000007F8000007FC00000+007F8000007FC00000007F8000003FE00000007F8000001FF00000007F8000001FF00000+007F8000000FF80000007F80000007FC0000007F80000007FC0000007F80000003FE0000+007F80000001FF0000007F80000001FF0000007F80000000FF8000007F80000000FFC000+007F80000000FFE00000FFC0000000FFF00001FFE0000001FFFC00FFFFFFC0001FFFFFE0+FFFFFFC0001FFFFFE0FFFFFFC0001FFFFFE043447CC34C>75 D<FFFF800000000007FFFC+FFFFC0000000000FFFFCFFFFC0000000000FFFFC01FFC0000000000FFE00006FE0000000+001BF800006FE0000000001BF800006FE0000000001BF8000067F00000000033F8000067+F00000000033F8000063F80000000063F8000063F80000000063F8000063F80000000063+F8000061FC00000000C3F8000061FC00000000C3F8000061FC00000000C3F8000060FE00+00000183F8000060FE0000000183F80000607F0000000303F80000607F0000000303F800+00607F0000000303F80000603F8000000603F80000603F8000000603F80000603F800000+0603F80000601FC000000C03F80000601FC000000C03F80000600FE000001803F8000060+0FE000001803F80000600FE000001803F800006007F000003003F800006007F000003003+F800006007F000003003F800006003F800006003F800006003F800006003F800006001FC+0000C003F800006001FC0000C003F800006001FC0000C003F800006000FE00018003F800+006000FE00018003F800006000FE00018003F8000060007F00030003F8000060007F0003+0003F8000060003F80060003F8000060003F80060003F8000060003F80060003F8000060+001FC00C0003F8000060001FC00C0003F8000060001FC00C0003F8000060000FE0180003+F8000060000FE0180003F80000600007F0300003F80000600007F0300003F80000600007+F0300003F80000600003F8600003F80000600003F8600003F80000600003F8600003F800+00600001FCC00003F80000600001FCC00003F80000600000FF800003F80000600000FF80+0003F80000600000FF800003F800006000007F000003F80000F000007F000003F80000F0+00007F000003F80001F800003E000003F8000FFF00003E00000FFE00FFFFF0001C0007FF+FFFCFFFFF0001C0007FFFFFCFFFFF0001C0007FFFFFC4E447BC359>77+D<0001FF000300000FFFE00700003FFFF8070000FE00FE0F0001F8001F0F0007E000079F+0007C00003DF000F800001FF001F000000FF003F0000007F003E0000003F007E0000003F+007E0000001F007C0000001F00FC0000000F00FC0000000F00FC0000000700FC00000007+00FC0000000700FE0000000700FE0000000300FE0000000300FF0000000300FF00000003+007F80000000007FC0000000007FE0000000003FF8000000003FFE000000001FFFE00000+000FFFFE00000007FFFFE0000003FFFFFC000001FFFFFF000000FFFFFFC000003FFFFFF0+00000FFFFFF8000001FFFFFC0000001FFFFE00000001FFFE000000001FFF0000000003FF+8000000001FF8000000000FFC0000000007FC0000000003FC0000000001FC0000000001F+E0C00000000FE0C00000000FE0C00000000FE0C000000007E0C000000007E0C000000007+E0E000000007E0E000000007E0E000000007E0F000000007C0F00000000FC0F80000000F+C0F80000000F80FC0000001F80FE0000001F00FF0000003F00FF8000007E00FBC00000FC+00F9F00001F800F07C0003F000F03FC00FE000E00FFFFF8000E001FFFE0000C0003FF000+002B487BC536>83 D<0007FC000000003FFF80000000F80FE0000003C003F00000070001+F800000E0000FC00000FC0007E00001FE0007F00001FF0003F80001FF0003F80001FF000+3F80001FF0001FC0001FF0001FC0000FE0001FC0000380001FC0000000001FC000000000+1FC0000000001FC0000000001FC00000000FFFC0000001FFFFC000000FFE1FC000003FC0+1FC00000FF001FC00003FC001FC00007F8001FC0000FF0001FC0001FE0001FC0003FC000+1FC0007FC0001FC0007F80001FC0007F80001FC060FF00001FC060FF00001FC060FF0000+1FC060FF00003FC060FF00003FC060FF00003FC060FF80007FC0607F8000EFC0607FC000+C7E0C03FC001C7E0C01FE00783F1C007F81E03FF8001FFFC01FF00001FE0007C002B2E7C+AC31>97 D<0001FE00000007FFC000001F03F000007E00FC0000FC007E0001F8003F0003+F0003F0007E0001F800FE0001FC00FC0000FC01FC0000FC03F80000FE03F800007E03F80+0007E07F800007F07F000007F07F000007F0FF000007F0FF000007F0FF000007F0FFFFFF+FFF0FFFFFFFFF0FF00000000FF00000000FF00000000FF00000000FF00000000FF000000+007F000000007F000000007F800000007F800000003F800000003F800000301FC0000030+1FC00000700FC00000600FE00000E007F00000C003F00001C001F800038000FC00070000+3E001E00001F80F8000003FFE0000000FF0000242E7DAC2B>101+D<000000000F800001FC007FE0000FFF81F0F0003F07E381F000FC01FF03F001F800FE01+F003F0007E01E007F0007F000007E0003F00000FE0003F80000FC0001F80001FC0001FC0+001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0+001FC0001FC0001FC0001FC0000FC0001F80000FE0003F800007E0003F000007F0007F00+0003F0007E000001F800FC000001FC01F8000003BF07E00000030FFF8000000701FC0000+000700000000000700000000000F00000000000F00000000000F00000000000F80000000+0007C00000000007E00000000007FFFFF8000003FFFFFF000003FFFFFFE00001FFFFFFF8+00007FFFFFFC0001FFFFFFFE0007C0000FFF000F800000FF003F0000003F803E0000001F+807C0000000FC07C0000000FC0F800000007C0F800000007C0F800000007C0F800000007+C0F800000007C0FC0000000FC07C0000000F807E0000001F803E0000001F001F0000003E+000F8000007C0007E00001F80001F80007E000007F003F8000001FFFFE00000001FFE000+002C427DAC31>103 D<01FC00000000FFFC00000000FFFC00000000FFFC0000000007FC+0000000003FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC+0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC+0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC+0000000001FC0000000001FC0000000001FC01FE000001FC07FFC00001FC1E07F00001FC+3801F80001FC7001FC0001FCE000FC0001FDC000FE0001FD8000FE0001FF80007F0001FF+00007F0001FF00007F0001FE00007F0001FE00007F0001FE00007F0001FC00007F0001FC+00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC+00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC+00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC+00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC+00007F0003FE0000FF80FFFFF83FFFFEFFFFF83FFFFEFFFFF83FFFFE2F457DC436>I<01+FC00FFFC00FFFC00FFFC0007FC0003FC0001FC0001FC0001FC0001FC0001FC0001FC0001+FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001+FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001+FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001+FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001+FC0001FC0001FC0001FC0001FC0003FE00FFFFF8FFFFF8FFFFF815457DC41C>108+D<01FC01FE0000FFFC07FFC000FFFC1E07F000FFFC3801F80007FC7001FC0003FCE000FC+0001FDC000FE0001FD8000FE0001FF80007F0001FF00007F0001FF00007F0001FE00007F+0001FE00007F0001FE00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F+0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F+0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F+0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F+0001FC00007F0001FC00007F0001FC00007F0001FC00007F0003FE0000FF80FFFFF83FFF+FEFFFFF83FFFFEFFFFF83FFFFE2F2C7DAB36>110 D<00007F8000000003FFF00000000F+C0FC0000003E001F0000007C000F800000F80007C00001F00003E00003E00001F00007C0+0000F8000FC00000FC000FC00000FC001F8000007E003F8000007F003F8000007F003F00+00003F007F0000003F807F0000003F807F0000003F807F0000003F80FF0000003FC0FF00+00003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF00+00003FC0FF0000003FC0FF0000003FC07F0000003F807F0000003F807F8000007F803F80+00007F003F8000007F001F8000007E001FC00000FE000FC00000FC000FE00001FC0007E0+0001F80003F00003F00001F80007E00000FC000FC000003E001F0000001FC0FE00000007+FFF8000000007F8000002A2E7DAC31>I<03F803F0FFF81FFCFFF83C3EFFF8707F07F8E0+FF03F9C0FF01F980FF01FB80FF01FB007E01FB003C01FF000001FE000001FE000001FE00+0001FE000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00+0001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC00+0001FC000001FC000001FC000001FC000001FC000001FC000001FC000001FC000003FF00+00FFFFFE00FFFFFE00FFFFFE00202C7DAB26>114 D<003FE01801FFFC3807E01F780F00+03F81E0001F83C0000F87C00007878000078F8000038F8000038F8000018F8000018FC00+0018FC000018FE000018FF8000007FC000007FFC00003FFFE0001FFFFC000FFFFF0007FF+FFC003FFFFE000FFFFF0001FFFF80000FFF800000FFC000003FCC00001FEC00000FEC000+007EE000007EE000003EE000003EF000003EF000003EF000003EF800003CFC00007CFC00+0078FE0000F8FF0001F0F38003E0F1F00F80E07FFE00C00FF0001F2E7DAC26>I<000600+0000060000000600000006000000060000000E0000000E0000000E0000000E0000001E00+00001E0000001E0000003E0000007E0000007E000000FE000001FE000007FE00001FFFFF+F0FFFFFFF0FFFFFFF000FE000000FE000000FE000000FE000000FE000000FE000000FE00+0000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00+0000FE000000FE000000FE000000FE000000FE000000FE000000FE000C00FE000C00FE00+0C00FE000C00FE000C00FE000C00FE000C00FE000C00FE000C00FE000C007E001C007F00+18007F0018003F0038001F8030001FC0700007E0E00001FFC000007F001E3E7EBC26>I<+01FC00007F00FFFC003FFF00FFFC003FFF00FFFC003FFF0007FC0001FF0003FC0000FF00+01FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F00+01FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F00+01FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F00+01FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F0001FC00007F00+01FC00007F0001FC00007F0001FC0000FF0001FC0000FF0001FC0000FF0001FC0001FF00+01FC0001FF0000FC0001FF0000FE0003FF00007E00077F80007F000E7FC0003F001C7FFE+000FC0787FFE0003FFF07FFE00007F807F002F2D7DAB36>I<FFFFF001FFFCFFFFF001FF+FCFFFFF001FFFC07FF00007FE003FE00001F8001FE00001F0001FE00000E0000FE00000C+0000FF00001C00007F00001800007F00001800007F80003800003F80003000003F800030+00001FC0006000001FC0006000001FE000E000000FE000C000000FE000C0000007F00180+000007F00180000007F80380000003F80300000003F80300000001FC0600000001FC0600+000001FE0E00000000FE0C00000000FE0C000000007F18000000007F18000000007FB800+0000003FB0000000003FB0000000001FE0000000001FE0000000001FE0000000000FC000+0000000FC000000000078000000000078000000000078000000000030000000000030000+0000000600000000000600000000000600000000000C00000000000C0000000000180000+000000180000003C00180000007E0030000000FF0030000000FF0060000000FF00600000+00FF00C0000000FE01C00000007C03800000007007000000003C1E000000000FFC000000+0003F0000000002E3F7EAA33>121 D E /Fv 26 122 df<000000003FF0000000000000+03FFFE0000000000001FFFFF8000000000007FC01FC00000000001FE0003E00000000007+F80000F0000000000FF0000078000000001FE000003C000000003FC00001FC000000007F+800007FE00000000FF000007FE00000001FE00000FFE00000003FE00000FFE00000003FC+00000FFE00000007FC00000FFE00000007F800000FFE00000007F8000007FC0000000FF8+000003F80000000FF0000000E00000000FF0000000000000000FF0000000000000000FF0+000000000000000FF0000000000000000FF0000000000000000FF0000000000000000FF0+000000000000000FF0000000000000000FF0000000000000000FF0000000000000000FF0+000000000000000FF0000000000000000FF0000000000000000FF0000000000000000FF0+000000000000000FF0000000000000000FF0000000000000000FF0000000000000000FF0+000000000000000FF0000003FE0000FFFFFFFFFFFFFE0000FFFFFFFFFFFFFE0000FFFFFF+FFFFFFFE0000FFFFFFFFFFFFFE0000000FF000000FFE0000000FF0000003FE0000000FF0+000003FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0000001FE0000000FF0+000001FE0000000FF0000001FE0000001FF8000003FF0000003FFC000007FF80003FFFFF+FC07FFFFFF803FFFFFFC07FFFFFF803FFFFFFC07FFFFFF803FFFFFFC07FFFFFF8041657E+E448>12 D<0F003FC07FE0FFF0FFF0FFF0FFF0FFF0FFF07FE03FC00F0000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+0000000000000000000000000000000000000000000000000000000000000000000F003F+C07FE0FFF0FFF0FFF0FFF0FFF0FFF07FE03FC00F000C3E74BD24>58+D<00000000000F00000000000000000000000F00000000000000000000000F0000000000+0000000000001F80000000000000000000001F80000000000000000000003FC000000000+0000000000003FC0000000000000000000003FC0000000000000000000007FE000000000+0000000000007FE0000000000000000000007FE000000000000000000000FFF000000000+000000000000FFF000000000000000000000FFF000000000000000000001FFF800000000+000000000001DFF800000000000000000001DFF8000000000000000000039FFC00000000+0000000000038FFC000000000000000000038FFC000000000000000000070FFE00000000+00000000000707FE0000000000000000000F07FF0000000000000000000E03FF00000000+00000000000E03FF0000000000000000001E03FF8000000000000000001C01FF80000000+00000000001C01FF8000000000000000003C01FFC000000000000000003800FFC0000000+00000000003800FFC000000000000000007000FFE0000000000000000070007FE0000000+000000000070007FE00000000000000000E0007FF00000000000000000E0003FF0000000+0000000000E0003FF00000000000000001C0003FF80000000000000001C0001FF8000000+0000000003C0001FFC000000000000000380000FFC000000000000000380000FFC000000+000000000780000FFE0000000000000007000007FE0000000000000007000007FE000000+000000000F000007FF000000000000000E000003FF000000000000000E000003FF000000+000000001C000003FF800000000000001C000001FF800000000000001C000001FF800000+0000000038000001FFC000000000000038000000FFC000000000000038000000FFC00000+0000000070000000FFE0000000000000700000007FE0000000000000F00000007FF00000+00000000E00000003FF0000000000000E00000003FF0000000000001E00000003FF80000+00000001C00000001FF8000000000001C00000001FF8000000000003C00000001FFC0000+00000003FFFFFFFFFFFC000000000003FFFFFFFFFFFC000000000007FFFFFFFFFFFE0000+00000007FFFFFFFFFFFE0000000000070000000007FE00000000000E0000000007FF0000+0000000E0000000003FF00000000000E0000000003FF00000000001C0000000003FF8000+0000001C0000000001FF80000000003C0000000001FFC000000000380000000000FFC000+000000380000000000FFC000000000780000000000FFE0000000007000000000007FE000+0000007000000000007FE000000000F000000000007FF000000000E000000000003FF000+000000E000000000003FF000000001C000000000003FF800000001C000000000001FF800+000001C000000000001FF8000000038000000000001FFC000000038000000000000FFC00+0000038000000000000FFC000000070000000000000FFE0000000700000000000007FE00+00000F00000000000007FF0000000F00000000000003FF0000001F00000000000003FF00+00003F80000000000003FF8000007FC0000000000003FF800001FFE0000000000007FFC0+000FFFF800000000001FFFF000FFFFFF0000000007FFFFFFF0FFFFFF0000000007FFFFFF+F0FFFFFF0000000007FFFFFFF0FFFFFF0000000007FFFFFFF05C657DE463>65+D<FFFFFFFFFFFFF000000000FFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFE0000000FFFF+FFFFFFFFFFF800000000FFFC0000007FFE000000003FF80000000FFF800000001FF80000+0001FFC00000001FF8000000007FF00000001FF8000000001FF80000001FF8000000000F+FC0000001FF80000000003FE0000001FF80000000001FF0000001FF80000000000FF8000+001FF800000000007FC000001FF800000000003FE000001FF800000000001FF000001FF8+00000000000FF000001FF800000000000FF800001FF8000000000007FC00001FF8000000+000003FC00001FF8000000000003FE00001FF8000000000001FF00001FF8000000000001+FF00001FF8000000000000FF80001FF8000000000000FF80001FF80000000000007FC000+1FF80000000000007FC0001FF80000000000007FE0001FF80000000000003FE0001FF800+00000000003FE0001FF80000000000003FF0001FF80000000000003FF0001FF800000000+00001FF0001FF80000000000001FF8001FF80000000000001FF8001FF80000000000001F+F8001FF80000000000001FFC001FF80000000000001FFC001FF80000000000000FFC001F+F80000000000000FFC001FF80000000000000FFC001FF80000000000000FFC001FF80000+000000000FFE001FF80000000000000FFE001FF80000000000000FFE001FF80000000000+000FFE001FF80000000000000FFE001FF80000000000000FFE001FF80000000000000FFE+001FF80000000000000FFE001FF80000000000000FFE001FF80000000000000FFE001FF8+0000000000000FFE001FF80000000000000FFE001FF80000000000000FFE001FF8000000+0000000FFE001FF80000000000000FFE001FF80000000000000FFC001FF8000000000000+0FFC001FF80000000000000FFC001FF80000000000000FFC001FF80000000000000FFC00+1FF80000000000001FFC001FF80000000000001FF8001FF80000000000001FF8001FF800+00000000001FF8001FF80000000000001FF8001FF80000000000003FF0001FF800000000+00003FF0001FF80000000000003FE0001FF80000000000003FE0001FF80000000000007F+E0001FF80000000000007FC0001FF8000000000000FFC0001FF8000000000000FF80001F+F8000000000000FF80001FF8000000000001FF00001FF8000000000001FF00001FF80000+00000003FE00001FF8000000000007FC00001FF8000000000007FC00001FF80000000000+0FF800001FF800000000001FF000001FF800000000003FE000001FF800000000007FC000+001FF80000000000FFC000001FF80000000001FF8000001FF80000000003FF0000001FF8+0000000007FC0000001FF8000000001FF80000001FF8000000007FF00000001FF8000000+01FFC00000003FF800000007FF80000000FFFC0000007FFE000000FFFFFFFFFFFFFFF800+0000FFFFFFFFFFFFFFE0000000FFFFFFFFFFFFFF00000000FFFFFFFFFFFFF00000000057+6279E165>68 D<FFFFFFFF00000FFFFFFFF0FFFFFFFF00000FFFFFFFF0FFFFFFFF00000F+FFFFFFF0FFFFFFFF00000FFFFFFFF000FFFF000000000FFFF000003FFC0000000003FFC0+00001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001F+F80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000+000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001+FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000+001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF8+0000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF8000000+0001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF+8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF800000+1FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF800+00000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF800000000+01FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF80+00001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001F+FFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFF8000001FFFFFFF+FFFFFFFF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001+FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000+001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF8+0000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF8000000+0001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF+8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF800000+1FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF800+00000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF800000000+01FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF80+00001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001F+F80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000+000001FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001+FF8000001FF80000000001FF8000001FF80000000001FF8000001FF80000000001FF8000+001FF80000000001FF8000003FFC0000000003FFC00000FFFF000000000FFFF000FFFFFF+FF00000FFFFFFFF0FFFFFFFF00000FFFFFFFF0FFFFFFFF00000FFFFFFFF0FFFFFFFF0000+0FFFFFFFF0546279E163>72 D<FFFFFFFFE000000000FFFFFFFFE000000000FFFFFFFFE0+00000000FFFFFFFFE00000000000FFFF800000000000003FFC000000000000001FFC0000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF8000000000000001FF80000+00000000001FF8000000000000001FF8000000000000001FF800000000001C001FF80000+0000001C001FF800000000001C001FF800000000001C001FF800000000001C001FF80000+0000001C001FF800000000003C001FF8000000000038001FF8000000000038001FF80000+00000038001FF8000000000038001FF8000000000038001FF8000000000038001FF80000+00000078001FF8000000000078001FF8000000000078001FF8000000000078001FF80000+000000F8001FF80000000000F8001FF80000000000F0001FF80000000001F0001FF80000+000001F0001FF80000000003F0001FF80000000007F0001FF80000000007F0001FF80000+00000FF0001FF8000000001FF0001FF8000000003FF0001FF8000000007FF0001FF80000+0001FFF0001FF800000007FFF0003FF80000003FFFE000FFFC000003FFFFE0FFFFFFFFFF+FFFFFFE0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFE0FFFFFFFFFFFFFFFFE0466279E153+>76 D<000007FF0000030000003FFFF00007000001FFFFFC0007000007FFFFFF000F0000+0FFC00FFC00F00003FE0000FF01F00007F800003F81F0000FE000000FC3F0001FC000000+7E3F0003F80000001F7F0007F00000000FFF000FE000000007FF000FC000000007FF001F+C000000003FF001F8000000001FF003F8000000000FF003F0000000000FF007F00000000+007F007F00000000007F007E00000000003F007E00000000003F00FE00000000003F00FE+00000000001F00FE00000000001F00FE00000000001F00FE00000000000F00FE00000000+000F00FF00000000000F00FF00000000000F00FF00000000000F00FF80000000000700FF+800000000007007FC00000000007007FC00000000007007FE00000000000003FF0000000+0000003FF80000000000003FFC0000000000001FFE0000000000001FFF8000000000000F+FFE0000000000007FFFC000000000007FFFFC00000000003FFFFF80000000001FFFFFF80+00000000FFFFFFF8000000007FFFFFFF800000001FFFFFFFE00000000FFFFFFFF8000000+03FFFFFFFE00000000FFFFFFFF800000001FFFFFFFC000000001FFFFFFE0000000003FFF+FFF00000000003FFFFF800000000003FFFFC000000000003FFFE0000000000007FFE0000+000000001FFF0000000000000FFF80000000000003FF80000000000001FFC00000000000+00FFC0000000000000FFC00000000000007FE00000000000003FE00000000000003FE000+00000000001FE0E000000000001FF0E000000000000FF0E000000000000FF0E000000000+000FF0E000000000000FF0E0000000000007F0E0000000000007F0F0000000000007F0F0+000000000007F0F0000000000007F0F0000000000007F0F8000000000007F0F800000000+0007E0F800000000000FE0FC00000000000FE0FC00000000000FC0FE00000000000FC0FF+00000000001FC0FF00000000001F80FF80000000003F80FFC0000000003F00FFE0000000+007F00FFF000000000FE00FEF800000000FC00FEFC00000001F800FC7F00000003F800FC+1F8000000FF000F80FE000001FE000F807FC00007F8000F001FFE003FF0000F0007FFFFF+FC0000E0001FFFFFF00000E00003FFFFC00000C000001FFE0000003C667AE349>83+D<3FFFFFFFFFFFFFFFFFFFF83FFFFFFFFFFFFFFFFFFFF83FFFFFFFFFFFFFFFFFFFF83FFF+FFFFFFFFFFFFFFFFF83FFFC00003FFC00003FFF83FFC000001FF8000007FF83FF0000001+FF8000000FF83FC0000001FF80000007F87F80000001FF80000003FC7F00000001FF8000+0001FC7E00000001FF80000000FC7C00000001FF800000007C7C00000001FF800000007C+7C00000001FF800000007C7800000001FF800000003C7800000001FF800000003C780000+0001FF800000003C7800000001FF800000003C7000000001FF800000001C7000000001FF+800000001C7000000001FF800000001C7000000001FF800000001C7000000001FF800000+001C7000000001FF800000001CF000000001FF800000001EE000000001FF800000000EE0+00000001FF800000000EE000000001FF800000000EE000000001FF800000000EE0000000+01FF800000000EE000000001FF800000000EE000000001FF800000000E0000000001FF80+000000000000000001FF80000000000000000001FF80000000000000000001FF80000000+000000000001FF80000000000000000001FF80000000000000000001FF80000000000000+000001FF80000000000000000001FF80000000000000000001FF80000000000000000001+FF80000000000000000001FF80000000000000000001FF80000000000000000001FF8000+0000000000000001FF80000000000000000001FF80000000000000000001FF8000000000+0000000001FF80000000000000000001FF80000000000000000001FF8000000000000000+0001FF80000000000000000001FF80000000000000000001FF80000000000000000001FF+80000000000000000001FF80000000000000000001FF80000000000000000001FF800000+00000000000001FF80000000000000000001FF80000000000000000001FF800000000000+00000001FF80000000000000000001FF80000000000000000001FF800000000000000000+01FF80000000000000000001FF80000000000000000001FF80000000000000000001FF80+000000000000000001FF80000000000000000001FF80000000000000000001FF80000000+000000000001FF80000000000000000001FF80000000000000000001FF80000000000000+000001FF80000000000000000001FF80000000000000000001FF80000000000000000001+FF80000000000000000001FF80000000000000000001FF80000000000000000001FF8000+0000000000000001FF80000000000000000001FF80000000000000000001FF8000000000+0000000001FF80000000000000000001FF80000000000000000001FF8000000000000000+0001FF80000000000000000001FF80000000000000000001FF80000000000000000003FF+C0000000000000000003FFC000000000000000001FFFF800000000000001FFFFFFFFFF80+0000000001FFFFFFFFFF800000000001FFFFFFFFFF800000000001FFFFFFFFFF80000057+627CE160>I<FFFFFFFC00000000007FFFFFFFFFFFFC00000000007FFFFFFFFFFFFC0000+0000007FFFFFFFFFFFFC00000000007FFFFF00FFFF8000000000000FFFF0003FFE000000+00000003FF80003FFC00000000000001FE00001FFC00000000000001FC00001FFC000000+00000000F800000FFC00000000000000F800000FFE00000000000000F0000007FE000000+00000000E0000007FF00000000000000E0000003FF00000000000001C0000003FF000000+00000001C0000003FF80000000000001C0000001FF8000000000000380000001FF800000+0000000380000001FFC000000000000780000000FFC000000000000700000000FFE00000+00000007000000007FE000000000000E000000007FE000000000000E000000007FF00000+0000001E000000003FF000000000001C000000003FF800000000001C000000003FF80000+0000003C000000001FF8000000000038000000001FFC000000000038000000000FFC0000+00000070000000000FFC000000000070000000000FFE0000000000F00000000007FE0000+000000E00000000007FF0000000000E00000000007FF0000000001E00000000003FF0000+000001C00000000003FF8000000001C00000000001FF8000000003800000000001FF8000+000003800000000001FFC000000007800000000000FFC000000007000000000000FFE000+0000070000000000007FE00000000E0000000000007FE00000000E0000000000007FF000+00000E0000000000003FF00000001C0000000000003FF80000001C0000000000003FF800+00003C0000000000001FF8000000380000000000001FFC000000380000000000000FFC00+0000700000000000000FFC000000700000000000000FFE000000F000000000000007FE00+0000E000000000000007FF000000E000000000000007FF000001E000000000000003FF00+0001C000000000000003FF800001C000000000000001FF8000038000000000000001FF80+00038000000000000001FFC000078000000000000000FFC000070000000000000000FFE0+000700000000000000007FE0000E00000000000000007FE0000E00000000000000007FF0+000E00000000000000003FF0001C00000000000000003FF0001C00000000000000003FF8+003C00000000000000001FF8003800000000000000001FFC003800000000000000000FFC+007000000000000000000FFC007000000000000000000FFE00F0000000000000000007FE+00E0000000000000000007FF00E0000000000000000007FF01E0000000000000000003FF+01C0000000000000000003FF81C0000000000000000001FF8380000000000000000001FF+8380000000000000000001FFC780000000000000000000FFC700000000000000000000FF+E7000000000000000000007FEE000000000000000000007FEE000000000000000000007F+FE000000000000000000003FFC000000000000000000003FFC000000000000000000003F+FC000000000000000000001FF8000000000000000000001FF8000000000000000000000F+F0000000000000000000000FF0000000000000000000000FF00000000000000000000007+E00000000000000000000007E00000000000000000000007E00000000000000000000003+C00000000000000000000003C0000000000060647FE163>86 D<00003FF0000000000003+FFFE00000000000FFFFF80000000003FC03FE0000000007E0007F800000000F80003FC00+000001E00001FE00000003C00000FF000000078000007F8000000F0000003FC000000F80+00003FC000000FF000001FE000001FF800001FE000001FFC00000FF000001FFC00000FF0+00001FFC00000FF000001FFC000007F800001FFC000007F800001FFC000007F800000FF8+000007F8000003E0000007F800000000000007F800000000000007F800000000000007F8+00000000000007F800000000000007F800000000000007F80000000000007FF800000000+007FFFF8000000000FFFFFF8000000007FF807F800000001FF8007F800000007FC0007F8+0000001FF00007F80000007FC00007F8000000FF800007F8000003FE000007F8000007FC+000007F800000FFC000007F800000FF8000007F800001FF0000007F800003FE0000007F8+00003FE0000007F800007FC0000007F800E07FC0000007F800E07FC0000007F800E0FFC0+000007F800E0FF80000007F800E0FF80000007F800E0FF8000000FF800E0FF8000000FF8+00E0FF8000000FF800E0FF8000001FF800E0FFC000001BF800E07FC000003BF800E07FC0+000073F800E07FE0000071FC01C03FF00000E1FC01C01FF00001C1FC01C00FFC000780FE+038007FE000F00FF070001FF807E007FFF00007FFFF8003FFE00001FFFE0001FF8000001+FF000007E0003B417ABF42>97 D<000001FF80000000000FFFF8000000003FFFFE000000+00FF007F80000003FC0007E0000007F00001F000001FE000007800003FC000003C00007F+8000001E0000FF0000000F0001FE0000001F0001FC000000FF0003FC000001FF8007F800+0003FF8007F8000003FF800FF0000003FF800FF0000003FF801FE0000003FF801FE00000+03FF803FE0000001FF003FC00000007C003FC000000000007FC000000000007FC0000000+00007FC000000000007F800000000000FF800000000000FF800000000000FF8000000000+00FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000+FF800000000000FF800000000000FF800000000000FF800000000000FF8000000000007F+8000000000007FC000000000007FC000000000007FC000000000007FC000000000003FC0+00000000003FE000000000003FE000000000001FE000000001C01FF000000001C00FF000+000003C00FF8000000038007F8000000038003FC000000078003FE000000070001FE0000+000F0000FF0000001E00007F8000003C00003FC000007800001FE00000F000000FF80001+E0000003FC0007C0000000FF803F800000003FFFFE000000000FFFF80000000001FF8000+0032417CBF3A>99 D<0000000000001E000000000000003FFE00000000000007FFFE0000+0000000007FFFE00000000000007FFFE00000000000007FFFE000000000000000FFE0000+000000000003FE0000000000000003FE0000000000000001FE0000000000000001FE0000+000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE0000+000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE0000+000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE0000+000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE0000+000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE0000+000000000001FE0000000000000001FE0000000000000001FE0000000000000001FE0000+000000000001FE0000000000000001FE0000000000FF8001FE000000000FFFF801FE0000+00003FFFFE01FE00000000FF803F81FE00000003FC0007C1FE00000007F80001E1FE0000+001FE00000F9FE0000003FC000007DFE0000007F8000003DFE000000FF0000001FFE0000+01FE0000000FFE000001FC00000007FE000003FC00000007FE000007F800000003FE0000+07F000000001FE00000FF000000001FE00001FF000000001FE00001FE000000001FE0000+1FE000000001FE00003FE000000001FE00003FC000000001FE00007FC000000001FE0000+7FC000000001FE00007FC000000001FE00007FC000000001FE00007F8000000001FE0000+FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000+FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000+FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000FF8000000001FE0000+FF8000000001FE00007F8000000001FE00007FC000000001FE00007FC000000001FE0000+7FC000000001FE00003FC000000001FE00003FC000000001FE00003FE000000001FE0000+1FE000000001FE00001FE000000001FE00000FF000000003FE00000FF000000003FE0000+07F800000007FE000003F800000007FE000003FC0000000FFE000001FE0000001FFE0000+00FE0000003DFE0000007F0000003DFE0000003F800000F9FF0000001FC00001F1FF0000+000FF00003C1FFC0000007F8000F81FFFF800001FF007F01FFFF8000007FFFFC01FFFF80+00001FFFE001FFFF80000001FF0001FF000041657CE349>I<000003FE00000000001FFF+E000000000FFFFF800000001FE03FE00000007F0007F8000000FE0003FC000003FC0001F+E000007F00000FF00000FF000007F80000FE000003F80001FC000003FC0003F8000001FC+0007F8000001FE0007F0000000FE000FF0000000FF000FF00000007F001FE00000007F00+1FE00000007F803FE00000007F803FC00000003F803FC00000003F807FC00000003FC07F+C00000003FC07FC00000003FC07F800000003FC07F800000003FC0FF800000003FC0FFFF+FFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FF800000000000FF800000000000FF8000+00000000FF800000000000FF800000000000FF800000000000FF800000000000FF800000+000000FF8000000000007F8000000000007FC000000000007FC000000000007FC0000000+00003FC000000000003FC000000000003FE000000000001FE000000000001FE000000001+C00FF000000001C00FF000000003C007F8000000038007F8000000038003FC0000000780+01FC0000000F0001FE0000000E0000FF0000001E00007F8000003C00003FC00000780000+1FE00000F0000007F00003E0000003FC0007C0000000FF803F000000003FFFFC00000000+0FFFF00000000001FF80000032417CBF3A>I<003C000000FF000001FF800003FFC00003+FFC00003FFC00003FFC00003FFC00003FFC00001FF800000FF0000003C00000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+000000000000000000000000000000000000000000000000000000000000000000000000+0000000003C00007FFC0007FFFC0007FFFC0007FFFC0007FFFC00001FFC000007FC00000+7FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000+3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000+3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000+3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000+3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000+3FC000003FC000003FC000003FC000007FE00000FFF000FFFFFFE0FFFFFFE0FFFFFFE0FF+FFFFE01B5F7DDE23>105 D<0003C00007FFC000FFFFC000FFFFC000FFFFC000FFFFC000+01FFC000007FC000007FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000+003FC000003FC000003FC000003FC000003FC000003FC000003FC000007FE00000FFF000+FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF01C647DE323>108 D<0003C000FFC0000007FE00+000007FFC003FFF800001FFFC00000FFFFC00FFFFE00007FFFF00000FFFFC03F00FF8001+F807FC0000FFFFC078003FC003C001FE0000FFFFC1E0001FE00F0000FF000001FFC3C000+0FF01E00007F8000007FC3800007F81C00003FC000007FC7000007F83800003FC000003F+CE000003FC7000001FE000003FCC000003FC6000001FE000003FDC000003FCE000001FE0+00003FD8000003FCC000001FE000003FF8000001FFC000000FF000003FF0000001FF8000+000FF000003FF0000001FF8000000FF000003FE0000001FF0000000FF000003FE0000001+FF0000000FF000003FE0000001FF0000000FF000003FE0000001FF0000000FF000003FC0+000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000+003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE000000+0FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE+0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC000+0001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF00000+3FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000F+F000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE00+00000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC00000+01FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003F+C0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF0+00003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000+000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0000001+FE0000000FF000003FC0000001FE0000000FF000003FC0000001FE0000000FF000003FC0+000001FE0000000FF000007FE0000003FF0000001FF80000FFF0000007FF8000003FFC00+FFFFFFF007FFFFFF803FFFFFFCFFFFFFF007FFFFFF803FFFFFFCFFFFFFF007FFFFFF803F+FFFFFCFFFFFFF007FFFFFF803FFFFFFC663F7CBE6F>I<0003C0007FE000000007FFC003+FFFC000000FFFFC00FFFFF000000FFFFC03F00FFC00000FFFFC078001FE00000FFFFC0F0+000FF0000001FFC1C00007F80000007FC3800007FC0000007FC7000003FC0000003FCE00+0003FE0000003FCE000001FE0000003FDC000001FE0000003FD8000001FE0000003FF800+0000FF0000003FF0000000FF0000003FF0000000FF0000003FF0000000FF0000003FE000+0000FF0000003FE0000000FF0000003FE0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC000+0000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000007FE000+0001FF800000FFF0000003FFC000FFFFFFF003FFFFFFC0FFFFFFF003FFFFFFC0FFFFFFF0+03FFFFFFC0FFFFFFF003FFFFFFC0423F7DBE49>I<000000FF8000000000000FFFF80000+0000003FFFFE0000000000FF007F8000000003FC001FE000000007F00007F00000000FC0+0001F80000003F800000FE0000007F0000007F0000007E0000003F000000FC0000001F80+0001F80000000FC00003F80000000FE00003F000000007E00007F000000007F0000FE000+000003F8000FE000000003F8001FE000000003FC001FC000000001FC001FC000000001FC+003FC000000001FE003FC000000001FE003FC000000001FE007F8000000000FF007F8000+000000FF007F8000000000FF007F8000000000FF00FF8000000000FF80FF8000000000FF+80FF8000000000FF80FF8000000000FF80FF8000000000FF80FF8000000000FF80FF8000+000000FF80FF8000000000FF80FF8000000000FF80FF8000000000FF80FF8000000000FF+80FF8000000000FF807F8000000000FF007F8000000000FF007FC000000001FF007FC000+000001FF003FC000000001FE003FC000000001FE003FC000000001FE001FE000000003FC+001FE000000003FC001FE000000003FC000FF000000007F80007F000000007F00007F000+000007F00003F80000000FE00001FC0000001FC00001FC0000001FC00000FE0000003F80+00007F0000007F0000003F800000FE0000001FC00001FC0000000FF00007F800000003FC+001FE000000000FF007F80000000007FFFFF00000000000FFFF8000000000001FFC00000+0039417CBF42>I<0003C0007FC000000007FFC007FFFC000000FFFFC01FFFFF000000FF+FFC07F00FFC00000FFFFC0F8001FF00000FFFFC3E00007F8000001FFC7800003FC000000+7FCF000001FE0000007FDE000000FF0000003FFC0000007F8000003FF80000003FC00000+3FF00000003FE000003FF00000001FE000003FE00000001FF000003FE00000000FF80000+3FC00000000FF800003FC000000007FC00003FC000000007FC00003FC000000003FE0000+3FC000000003FE00003FC000000003FE00003FC000000001FF00003FC000000001FF0000+3FC000000001FF00003FC000000001FF00003FC000000001FF80003FC000000000FF8000+3FC000000000FF80003FC000000000FF80003FC000000000FF80003FC000000000FF8000+3FC000000000FF80003FC000000000FF80003FC000000000FF80003FC000000000FF8000+3FC000000000FF80003FC000000000FF80003FC000000000FF80003FC000000001FF0000+3FC000000001FF00003FC000000001FF00003FC000000001FF00003FC000000001FF0000+3FC000000003FE00003FC000000003FE00003FC000000003FC00003FC000000007FC0000+3FC000000007FC00003FC00000000FF800003FE00000000FF000003FE00000001FF00000+3FF00000003FE000003FF80000003FC000003FF80000007FC000003FFC000000FF800000+3FDE000001FF0000003FCF000003FE0000003FC7800007FC0000003FC3C0000FF0000000+3FC1F0003FE00000003FC07E01FF800000003FC03FFFFE000000003FC00FFFF800000000+3FC000FF80000000003FC0000000000000003FC0000000000000003FC000000000000000+3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000+3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000+3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000+3FC0000000000000003FC0000000000000003FC0000000000000003FC000000000000000+3FC0000000000000003FC0000000000000007FE000000000000000FFF0000000000000FF+FFFFF00000000000FFFFFFF00000000000FFFFFFF00000000000FFFFFFF0000000000041+5B7DBE49>I<00078003F80007FF800FFF00FFFF803FFFC0FFFF807C0FE0FFFF81F01FE0+FFFF81E03FF001FF83803FF0007F87003FF0007F8F003FF0003F8E003FF0003F9C001FE0+003F9C000FC0003F98000300003FB8000000003FB8000000003FB0000000003FF0000000+003FF0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000+003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000+003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000+003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000+003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000+003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000+003FC0000000003FC0000000003FC0000000003FC0000000007FE000000000FFF8000000+FFFFFFFC0000FFFFFFFC0000FFFFFFFC0000FFFFFFFC00002C3F7CBE33>114+D<0000FFE00180000FFFFC0380007FFFFF078001FF001FCF8003F80003EF8007E00001FF+800FC00000FF801F8000007F803F0000003F803E0000001F807E0000000F807C0000000F+807C0000000F80FC0000000780FC0000000780FC0000000780FC0000000380FE00000003+80FE0000000380FF0000000380FF80000003807FC0000003807FE0000000007FF8000000+003FFE000000001FFFF00000000FFFFF80000007FFFFF8000003FFFFFF000001FFFFFFC0+00007FFFFFF000001FFFFFF8000007FFFFFE0000007FFFFF00000003FFFF800000003FFF+C000000003FFC000000000FFE0000000007FE0E00000001FF0E00000000FF0E00000000F+F8F000000007F8F000000003F8F000000003F8F000000003F8F800000001F8F800000001+F8F800000001F8FC00000001F8FC00000001F8FE00000001F0FE00000003F0FF00000003+F0FF00000003E0FF80000007E0FFC000000FC0FFE000000F80FDF000001F80F8F800007F+00F83E0000FC00F01FC00FF800F007FFFFE000E001FFFF8000C0003FF800002D417DBF34+>I<00003800000000003800000000003800000000003800000000003800000000003800+00000000380000000000780000000000780000000000780000000000780000000000F800+00000000F80000000000F80000000001F80000000001F80000000001F80000000003F800+00000003F80000000007F8000000000FF8000000001FF8000000001FF8000000007FF800+000000FFF800000003FFF80000000FFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFF+FF000007F80000000007F80000000007F80000000007F80000000007F80000000007F800+00000007F80000000007F80000000007F80000000007F80000000007F80000000007F800+00000007F80000000007F80000000007F80000000007F80000000007F80000000007F800+00000007F80000000007F80000000007F80000000007F80000000007F80000000007F800+00000007F80000000007F80000000007F80000000007F80000000007F80000000007F800+00000007F80000000007F80000000007F80000E00007F80000E00007F80000E00007F800+00E00007F80000E00007F80000E00007F80000E00007F80000E00007F80000E00007F800+00E00007F80000E00007F80000E00007F80000E00007F80000E00003FC0001C00003FC00+01C00003FC0001C00003FC0003C00001FE0003800001FE0007800000FF00070000007F80+0F0000003FC01E0000001FF07C0000000FFFF800000003FFE0000000007F80002B597FD7+33>I<0003C00000000F000007FFC000001FFF0000FFFFC00003FFFF0000FFFFC00003FF+FF0000FFFFC00003FFFF0000FFFFC00003FFFF000001FFC0000007FF0000007FC0000001+FF0000007FC0000001FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000FF0000003FC0000000+FF0000003FC0000000FF0000003FC0000001FF0000003FC0000001FF0000003FC0000001+FF0000003FC0000003FF0000003FC0000003FF0000003FC0000003FF0000003FC0000007+FF0000001FC0000006FF0000001FE000000EFF0000001FE000001CFF0000000FE000001C+FF0000000FF0000038FF80000007F0000070FF80000003F80001E0FFE0000001FE0003C0+FFFFC00000FFC01F80FFFFC000003FFFFE00FFFFC000000FFFF800FFFFC0000000FFC000+FF800042407DBE49>I<FFFFFF800001FFFFE0FFFFFF800001FFFFE0FFFFFF800001FFFF+E0FFFFFF800001FFFFE001FFF80000007FFE00007FE00000001FF800007FE00000001FE0+00003FE00000000FC000003FE00000000F8000001FE00000000F8000001FF00000000F00+00000FF00000000F0000000FF00000000E0000000FF80000001E00000007F80000001C00+000007FC0000001C00000003FC0000003800000003FC0000003800000003FE0000007800+000001FE0000007000000001FF0000007000000000FF000000E000000000FF000000E000+000000FF800001E0000000007F800001C0000000007F800001C0000000003FC000038000+0000003FC0000380000000003FE0000780000000001FE0000700000000001FE000070000+0000000FF0000E00000000000FF0000E00000000000FF8001E000000000007F8001C0000+00000007F8001C000000000007FC003C000000000003FC0038000000000003FE00380000+00000001FE0070000000000001FE0070000000000001FF00F0000000000000FF00E00000+00000000FF80E00000000000007F81C00000000000007F81C00000000000007FC3C00000+000000003FC3800000000000003FE3800000000000001FE7000000000000001FE7000000+000000001FFF000000000000000FFE000000000000000FFE0000000000000007FC000000+0000000007FC0000000000000007FC0000000000000003F80000000000000003F8000000+0000000001F00000000000000001F00000000000000001F00000000000000000E0000000+00433F7FBD46>I<FFFFFF801FFFFFE000FFFFF8FFFFFF801FFFFFE000FFFFF8FFFFFF80+1FFFFFE000FFFFF8FFFFFF801FFFFFE000FFFFF803FFF000007FFC00001FFF8000FFC000+003FF0000007FE0000FFC000001FF0000003FC00007FC000000FF0000001F800007FC000+000FF0000001F000003FC000000FF0000001F000003FC0000007F0000001E000003FE000+0007F8000001E000001FE000000FF8000001C000001FE000000FF8000001C000001FF000+000FFC000003C000000FF000001FFC0000038000000FF000001DFC0000038000000FF800+001DFE00000780000007F800003DFE00000700000007F8000038FE00000700000007FC00+0038FF00000F00000003FC000078FF00000E00000003FC0000707F00000E00000003FE00+00707F80001E00000001FE0000F07F80001C00000001FE0000E03F80001C00000001FF00+00E03FC0003C00000000FF0001E03FC0003800000000FF0001C01FC0003800000000FF80+01C01FE00078000000007F8003C01FE00070000000007F8003800FE00070000000007FC0+03800FF000F0000000003FC007800FF000E0000000003FC0070007F000E0000000003FE0+070007F801E0000000001FE00F0007F801C0000000001FE00E0003F801C0000000001FF0+0E0003FC03C0000000000FF01E0003FC0380000000000FF01C0001FC0380000000000FF8+1C0001FE07800000000007F83C0001FE07000000000007F8380000FE07000000000007FC+380000FF0F000000000003FC780000FF0E000000000003FC7000007F0E000000000003FE+7000007F9E000000000001FEF000007F9C000000000001FEE000003F9C000000000001FF+E000003FFC000000000000FFE000003FF8000000000000FFC000001FF8000000000000FF+C000001FF80000000000007FC000001FF00000000000007F8000000FF00000000000007F+8000000FF00000000000003F8000000FE00000000000003F00000007E00000000000003F+00000007E00000000000001F00000007C00000000000001E00000003C00000000000000E+00000003800000005D3F7FBD60>I<FFFFFF800001FFFFE0FFFFFF800001FFFFE0FFFFFF+800001FFFFE0FFFFFF800001FFFFE001FFF80000007FFE00007FE00000001FF800007FE0+0000001FE000003FE00000000FC000003FE00000000F8000001FE00000000F8000001FF0+0000000F0000000FF00000000E0000000FF00000000E00000007F80000001C00000007F8+0000001C00000007FC0000003C00000003FC0000003800000003FC0000003800000001FE+0000007000000001FE0000007000000001FF000000F000000000FF000000E000000000FF+000000E0000000007F800001C0000000007F800001C0000000007FC00003C0000000003F+C0000380000000003FC0000380000000003FE0000780000000001FE0000700000000001F+F0000F00000000000FF0000E00000000000FF0000E00000000000FF8001E000000000007+F8001C000000000007FC003C000000000003FC0038000000000003FC0038000000000003+FE0078000000000001FE0070000000000001FF00F0000000000000FF00E0000000000000+FF00E0000000000000FF81E00000000000007F81C00000000000007FC3C0000000000000+3FC3800000000000003FC3800000000000003FE7800000000000001FE700000000000000+1FFF000000000000000FFE000000000000000FFE000000000000000FFE00000000000000+07FC0000000000000007FC0000000000000003F80000000000000003F800000000000000+03F80000000000000001F00000000000000001F00000000000000000E000000000000000+00E00000000000000001E00000000000000001C00000000000000003C000000000000000+038000000000000000038000000000000000078000000000000000070000000000000000+0F00000000000000000E00000000000000000E00000000000000001E0000000000000000+1C00000000000000003C00000000001F80003800000000003FC0003800000000007FE000+7000000000007FE0007000000000007FE000E000000000007FE001E000000000007FE001+C000000000007FC0038000000000003F80078000000000003F000F0000000000001E003E+0000000000000FC0FC00000000000007FFF800000000000001FFE0000000000000007F00+000000000000435B7FBD46>121 D E end+%%EndProlog+%%BeginSetup+%%Feature: *Resolution 600dpi+TeXDict begin+%%PaperSize: A4++%%EndSetup+%%Page: 1 1+1 0 bop 1377 2090 a Fv(A)44 b(T)-11 b(utorial)44 b(on)f(La)l(v)-7+b(a:)543 2273 y(A)43 b(Hardw)l(are)h(Description)h(and)f(V)-11+b(eri\014cation)45 b(System)1073 2678 y Fu(Ko)s(en)33+b(Claessen)897 2794 y Ft(koen@cs.chalmers.se)2263 2678+y Fu(Mary)g(Sheeran)2125 2794 y Ft(ms@cs.chalmers.se)1601+3070 y Fu(August)g(15,)g(2000)p eop+%%Page: 1 2+1 1 bop 515 1227 a Fs(Con)-6 b(ten)g(ts)515 1782 y Fr(1)76+b(In)m(tro)s(duction)2166 b(4)515 2004 y(2)76 b(Getting)31+b(Started)2031 b(6)639 2144 y Fq(2.1)84 b(Y)-7 b(our)27+b(First)h(Circuit)79 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131+b(6)639 2283 y(2.2)84 b(The)28 b(La)n(v)-5 b(a)26 b(In)n(terpreter)39+b(.)j(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131 b(7)639 2423 y(2.3)84+b(Y)-7 b(our)27 b(Second)h(Circuit)64 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)+131 b(8)639 2562 y(2.4)84 b(Generating)27 b(VHDL)70 b(.)41+b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)131 b(9)639 2702 y(2.5)84+b(Exercises)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(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(10)515 2924 y Fr(3)76 b(Bigger)31 b(Circuits)2008 b(12)639+3064 y Fq(3.1)84 b(Recursion)27 b(o)n(v)n(er)f(Lists)67+b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)+h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(12)639 3203 y(3.2)84+b(Connection)27 b(P)n(atterns)55 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(13)639 3342 y(3.3)84 b(Arithmetic)22 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(.)g(.)+f(.)h(.)f(.)h(.)f(.)h(.)90 b(14)639 3482 y(3.4)84 b(Compilation)32+b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)+h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(16)639 3621 y(3.5)84 b(Exercises)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(.)g(.)f(.)+h(.)f(.)h(.)f(.)h(.)90 b(16)515 3844 y Fr(4)76 b(V)-8+b(eri\014cation)2165 b(18)639 3983 y Fq(4.1)84 b(Simple)28+b(Prop)r(erties)f(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)+f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(18)639 4123 y(4.2)84 b(Quan)n(ti\014cation)25 b(.)41+b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(19)639+4262 y(4.3)84 b(General)27 b(Prop)r(erties)54 b(.)41+b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(20)639 4402 y(4.4)84+b(Helping)28 b(V)-7 b(eri\014cation)80 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)+90 b(20)639 4541 y(4.5)84 b(Exercises)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(.)g(.)+f(.)h(.)f(.)h(.)f(.)h(.)90 b(22)515 4764 y Fr(5)76 b(Sequen)m(tial)32+b(Circuits)1850 b(23)639 4903 y Fq(5.1)84 b(The)28 b(Dela)n(y)f(Comp)r+(onen)n(t)43 b(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(23)1926 5255+y(1)p eop+%%Page: 2 3+2 2 bop 639 523 a Fq(5.2)84 b(Multiple)29 b(Dela)n(ys)34+b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)+f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(24)639+663 y(5.3)84 b(Coun)n(ters)24 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(.)g(.)f(.)+h(.)f(.)h(.)f(.)h(.)90 b(25)639 802 y(5.4)84 b(Sequen)n(tialization)55+b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)+h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(25)639 941+y(5.5)84 b(V)-7 b(ariations)27 b(on)g Fp(rowSeq)f Fq(.)42+b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g+(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(26)639 1081 y(5.6)84+b(Exercises)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(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(27)515 1303 y Fr(6)76 b(Sequen)m(tial)32 b(V)-8 b(eri\014cation)1702+b(29)639 1443 y Fq(6.1)84 b(Sequen)n(tial)27 b(Safet)n(y)h(Prop)r+(erties)33 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g+(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(29)639 1582 y(6.2)84+b(Sequen)n(tial)27 b(Logic)77 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)+90 b(30)639 1722 y(6.3)84 b(V)-7 b(eri\014cation)64 b(.)42+b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(30)639+1861 y(6.4)84 b(Induction)68 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(.)g(.)f(.)h(.)+f(.)h(.)f(.)h(.)90 b(31)639 2001 y(6.5)84 b(Induction)28+b(With)h(Depth)53 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(32)639+2140 y(6.6)84 b(Induction)28 b(With)h(Restricted)e(States)44+b(.)e(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h+(.)90 b(35)639 2280 y(6.7)84 b(Exercises)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(.)+g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(36)515 2502 y Fr(7)76+b(Time)30 b(T)-8 b(ransformations)1717 b(38)639 2642+y Fq(7.1)84 b(Timing)28 b(Issues)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)+h(.)f(.)h(.)90 b(38)639 2781 y(7.2)84 b(Slo)n(wing)27+b(Do)n(wn)i(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(39)639 2921 y(7.3)84 b(Sp)r(eeding)28 b(Up)84 b(.)41+b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(42)639+3060 y(7.4)84 b(Exercises)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(.)g(.)f(.)h(.)f(.)+h(.)f(.)h(.)90 b(43)515 3283 y Fr(8)76 b(More)32 b(connection)f+(patterns)1566 b(45)639 3422 y Fq(8.1)84 b(Connection)27+b(patterns)h(revisited)51 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(45)639 3562+y(8.2)84 b(T)-7 b(ree)27 b(shap)r(ed)h(circuits)72 b(.)42+b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g+(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(48)639 3701 y(8.3)84+b(Describing)27 b(Butter\015y)h(Circuits)72 b(.)42 b(.)f(.)h(.)f(.)h(.)+f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(50)639 3841 y(8.4)84 b(Batc)n(her's)26 b(Bitonic)i(Merger)83+b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)+h(.)f(.)h(.)f(.)h(.)90 b(54)639 3980 y(8.5)84 b(Exercises)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(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(56)515 4203 y Fr(9)76 b(Syn)m(thesizing)32 b(La)m(v)-5+b(a)33 b(Circuits)1535 b(59)639 4342 y Fq(9.1)84 b(State)28+b(Mac)n(hines)54 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(59)639 4482 y(9.2)84 b(Beha)n(vioral)25 b(Descriptions)70+b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)+f(.)h(.)f(.)h(.)f(.)h(.)90 b(63)639 4621 y(9.3)84 b(Exercises)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(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(67)1926 5255 y(2)p eop+%%Page: 3 4+3 3 bop 515 523 a Fr(10)28 b(T)m(yp)s(es)2394 b(68)639+663 y Fq(10.1)42 b(Signals)27 b(and)g(Circuits)73 b(.)42+b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g+(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(68)639 802 y(10.2)42+b(Connection)27 b(P)n(atterns)55 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(69)639 941 y(10.3)42 b(Ov)n(erloading)d(.)j(.)f(.)h(.)g(.)f(.)h(.)f+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)+h(.)f(.)h(.)f(.)h(.)90 b(69)515 1164 y Fr(A)52 b(Quic)m(k)33+b(Reference)e(Guide)1677 b(72)639 1303 y Fq(A.1)64 b(The)28+b Fp(lava)e Fq(command)79 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90+b(72)639 1443 y(A.2)64 b(Logical)26 b(Gates)49 b(.)41+b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(72)639+1582 y(A.3)64 b(Arithmetical)28 b(Gates)43 b(.)e(.)h(.)f(.)h(.)f(.)h(.)+g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f+(.)h(.)90 b(73)639 1722 y(A.4)64 b(Generic)27 b(Gates)k(.)41+b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(74)639+1861 y(A.5)64 b(Mo)r(dule:)37 b Fp(Patterns)55 b Fq(.)41+b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(74)639 2001 y(A.6)64+b(Mo)r(dule:)37 b Fp(Arithmetic)31 b Fq(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)+90 b(75)639 2140 y(A.7)64 b(Mo)r(dule:)37 b Fp(SequentialCircuit)o(s)68+b Fq(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h+(.)f(.)h(.)90 b(76)639 2280 y(A.8)64 b(In)n(terpretations)j(.)42+b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)90 b(76)639 2419+y(A.9)64 b(Errors)56 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(.)f(.)h(.)g(.)f(.)h(.)+f(.)h(.)f(.)h(.)90 b(77)515 2642 y Fr(B)56 b(Answ)m(ers)2295+b(79)639 2864 y(Bibliograph)m(y)2109 b(88)639 3087 y(Index)2409+b(90)1926 5255 y Fq(3)p eop+%%Page: 4 5+4 4 bop 515 1186 a Fo(Chapter)64 b(1)515 1641 y Fs(In)-6+b(tro)6 b(duction)515 2112 y Fq(La)n(v)-5 b(a)27 b(is)h(an)g(exp)r+(erimen)n(tal)f(to)r(ol)h(for)g(hardw)n(are)e(design)h(and)h(v)n+(eri\014cation.)37 b(Using)28 b(La)n(v)-5 b(a,)515 2212+y(one)36 b(can)f(describ)r(e)h(circuits)g(using)g(a)g(simple)g+(functional)h(hardw)n(are)d(description)i(lan-)515 2311+y(guage.)51 b(The)33 b(descriptions)f(are)g(short)h(and)f(sw)n(eet,)i+(and)f(do)g(not)g(su\013er)f(from)h(the)g(v)n(er-)515+2411 y(b)r(osit)n(y)22 b(of)g(more)f(standard)g(hardw)n(are)f+(description)i(languages)e(\(HDLs\))j(lik)n(e)f(VHDL)h(and)515+2511 y(V)-7 b(erilog.)34 b(On)22 b(the)g(other)f(hand,)j(w)n(e)d+(cannot)h(express)f(the)h(same)g(things)g(as)f(in)h(these)g(large,)515+2610 y(expressiv)n(e)32 b(\(and)i(complicated\))g(languages.)54+b(F)-7 b(or)34 b(example,)h(w)n(e)e(cannot)h(express)f(lo)n(w)515+2710 y(lev)n(el)22 b(details)g(ab)r(out)h(timing.)36+b(What)23 b(w)n(e)f(can)g(express)g(v)n(ery)g(nicely)-7+b(,)23 b(though,)h(is)e(the)i(w)n(a)n(ys)515 2809 y(in)29+b(whic)n(h)g(circuits)g(are)f(built)h(from)g(sub-circuits.)41+b(La)n(v)-5 b(a)27 b(facilitates)i(the)h(description)e(of)515+2909 y Fn(c)l(onne)l(ction)g(p)l(atterns)e Fq(so)f(that)i(they)f(are)f+(easily)h(reusable.)35 b(F)-7 b(or)26 b(some)f(kinds)h(of)g(circuits,)+515 3009 y(for)h(example)h(in)g(signal)f(pro)r(cessing,)f(this)i(is)g+(exactly)g(what)f(w)n(e)h(w)n(an)n(t)f(to)h(do.)37 b(La)n(v)-5+b(a)27 b(also)515 3108 y(pro)n(vides)d(man)n(y)g(di\013eren)n(t)h(w)n+(a)n(ys)f(of)h(analysing)f(our)h(circuit)g(descriptions.)35+b(W)-7 b(e)26 b(can)e(sim-)515 3208 y(ulate)29 b(circuits,)g(just)g(as)+g(with)g(more)f(standard)g(HDLs,)i(but)g(w)n(e)e(can)h(also)f(use)h+(sym)n(b)r(olic)515 3308 y(metho)r(ds)e(to)g(generate)f(input)h(to)g+(analysis)f(to)r(ols)g(suc)n(h)h(as)g(automatic)f(theorem)g(pro)n(v)n+(ers)515 3407 y(and)h(mo)r(del)h(c)n(hec)n(k)n(ers.)36+b(Indeed,)28 b(the)h(same)e(metho)r(ds)h(are)f(used)h(to)f(generate)g+(structural)515 3507 y(VHDL)39 b(from)g(La)n(v)-5 b(a)37+b(circuit)i(descriptions.)69 b(Our)38 b(aim)h(in)f(this)h(tutorial)g+(is)f(to)h(gen)n(tly)515 3606 y(in)n(tro)r(duce)27 b(this)h(new)g(st)n+(yle)f(of)g(circuit)h(design)f(and)g(analysis,)g(b)n(y)g(means)g(of)h+(examples.)515 3746 y(La)n(v)-5 b(a)20 b(is)h(used)g(at)g(Chalmers)f+(as)h(a)g(platform)g(for)f(exp)r(erimen)n(ts)h(in)g(the)h(formal)e(v)n+(eri\014cation)515 3846 y(of)30 b(hardw)n(are)e([3,)i(2].)45+b(\(Note,)31 b(ho)n(w)n(ev)n(er,)e(that)i(b)r(oth)f(of)g(these)h+(references)e(are)g(ab)r(out)h(an)515 3945 y(older)24+b(v)n(ersion)g(of)h(La)n(v)-5 b(a,)25 b(in)h(whic)n(h)f(circuit)g+(descriptions)g(are)f(a)h(bit)h(more)e(complicated.\))515+4045 y(Satnam)31 b(Singh,)i(on)e(the)h(other)f(hand,)h(uses)f(La)n(v)-5+b(a)31 b(in)g(real)g(industrial)g(design)g(pro)5 b(jects)515+4144 y(at)33 b(Xilinx)h(Inc.,)h(one)e(of)g(the)h(main)f(suppliers)g(of)+g(Field)h(Programmable)d(Gate)i(Arra)n(ys)515 4244 y(\(FPGAs\).)k(In)28+b(particular,)f(La)n(v)-5 b(a)26 b(has)i(b)r(een)g(used)g(with)g(great)+e(success)h(in)h(the)g(dev)n(elop-)515 4344 y(men)n(t)33+b(of)g(FPGA)g(cores)f(suc)n(h)g(as)g(\014lters)h(and)g(Bezier)f(curv)n+(e)g(dra)n(wing)f(circuits,)j(and)f(of)515 4443 y(customer)27+b(applications)g(suc)n(h)g(as)g(digital)h(signal)f(pro)r(cessing)f(for)+h(high)h(sp)r(eed)g(net)n(w)n(orks)515 4543 y(and)f(for)g(high)h(p)r+(erformance)e(graphics)g(applications.)515 4682 y(La)n(v)-5+b(a)38 b(really)f(consists)i(of)f(a)h(simple)g(hardw)n(are)e+(description)h(language)f(em)n(b)r(edded)j(in)515 4782+y(the)30 b(p)r(o)n(w)n(erful)f(functional)g(programming)f(language)g+(Hask)n(ell.)42 b(So)29 b(it)h(can)f(b)r(e)h(seen)g(as)e(a)515+4882 y(domain)19 b(sp)r(eci\014c)g(language)e(em)n(b)r(edded)j(in)f(a)g+(general)f(purp)r(ose)h(programming)e(language.)515 4981+y(W)-7 b(e)30 b(describ)r(e)g(circuits)g(b)n(y)g(writing)g(Hask)n(ell)f+(programs)f({)i(and)g(the)h(La)n(v)-5 b(a)29 b(system)h(itself)1926+5255 y(4)p eop+%%Page: 5 6+5 5 bop 515 523 a Fq(consists)33 b(of)i(a)f(set)g(of)g(Hask)n(ell)g(mo)+r(dules)g(that)h(giv)n(e)e(the)i(user)f(v)-5 b(arious)33+b(facilities.)57 b(The)515 623 y(em)n(b)r(edded)21 b(language)e(is)i+(quite)g(similar)f(to)g(the)h(Lustre)f(sync)n(hronous)f(data\015o)n(w)h+(language)515 722 y([6)o(].)37 b(The)26 b(idea)g(of)g(using)f(a)h+(functional)g(programming)e(language)g(to)i(describ)r(e)g(hardw)n(are)+515 822 y(w)n(as)c(\014rst)i(prop)r(osed)e(in)i(the)g(early)f(eigh)n+(ties)f([13,)h(14)o(,)h(7],)g(and)g(there)f(has)g(b)r(een)h(quite)g(a)f+(lot)515 922 y(of)29 b(w)n(ork)e(in)i(the)h(area)d(since)i(then)g([15)o+(,)h(16)o(,)f(10)o(,)g(12)o(,)g(11)o(,)g(5)o(].)41 b(Our)29+b(in)n(ten)n(tion)g(in)g(building)515 1021 y(the)j(La)n(v)-5+b(a)32 b(system)g(\(together)f(with)i(Singh\))f(is)h(to)f(pro)n(vide)f+(a)h(to)r(ol)g(that)g(demonstrates)515 1121 y(the)c(feasibilit)n(y)f+(of)h(doing)f(circuit)g(design)g(and)h(analysis)e(using)h(a)g+(functional)h(language.)515 1260 y(The)h(main)g(idea)g(in)h(La)n(v)-5+b(a)28 b(is)h(that)g(a)g(single)g(circuit)g(description)f(can)h(b)r(e)h+(analysed)e(in)h(a)515 1360 y(v)-5 b(ariet)n(y)31 b(of)h(di\013eren)n+(t)h(w)n(a)n(ys,)f(b)n(y)g(giving)g(di\013eren)n(t)g+Fn(interpr)l(etations)h Fq(to)f(its)h(comp)r(onen)n(ts)515+1460 y(\(and)f(sometimes)f(ev)n(en)h(to)g(its)g(connection)f+(patterns\).)50 b(The)32 b(simplest)g(of)g(these)g(in)n(ter-)515+1559 y(pretations)h(giv)n(es)g(us)h(ordinary)f(sim)n(ulation.)56+b(But)35 b(w)n(e)f(can)g(do)g(m)n(uc)n(h)g(more.)56 b(W)-7+b(e)34 b(can)515 1659 y(allo)n(w)26 b Fn(symb)l(olic)k+Fq(rather)c(than)i(concrete)f(data)g(to)h(\015o)n(w)f(in)h(the)g+(circuit,)g(and)f(in)h(this)g(w)n(a)n(y)515 1758 y(collect)d+(information)h(ab)r(out)f(the)i(circuit)f(in)g(v)-5 b(arious)24+b(di\013eren)n(t)i(w)n(a)n(ys.)35 b(F)-7 b(or)26 b(example,)f(w)n(e)515+1858 y(can)32 b(run)h(the)g(circuit)g(on)g(sym)n(b)r(olic)f(data)h(and)+f(pro)r(duce)h(expressions)e(on)i(the)g(outputs)515 1958+y(that)25 b(indicate)g(ho)n(w)f(eac)n(h)h(output)g(is)g(related)g(to)f+(the)i(inputs.)36 b(This)25 b(can)g(b)r(e)g(useful)h(when)515+2057 y(dev)n(eloping)k(a)g(\014rst)h(implemen)n(tation.)48+b(Ho)n(w)n(ev)n(er,)30 b(the)i(expressions)d(can)i(get)g(to)r(o)f+(large)515 2157 y(for)d(h)n(umans)h(to)g(in)n(terpret.)37+b(Then,)28 b(w)n(e)g(ho)r(ok)f(up)h(external)g(analysis)e(to)r(ols,)i+(suc)n(h)f(as)h(au-)515 2257 y(tomatic)g(theorem)g(pro)n(v)n(ers,)e(to)+i(help)h(us)f(to)g(analyse)f(our)h(circuits.)38 b(When)29+b(w)n(e)f(ho)r(ok)g(up)515 2356 y(to)h(external)f(theorem)h(pro)n(v)n+(ers,)f(w)n(e)h(are)f(actually)h(using)g(Hask)n(ell)f(as)h(a)g(pro)r+(of)g(scripting)515 2456 y(language.)51 b(This)33 b(turns)g(out)g(to)g+(b)r(e)h(v)n(ery)d(con)n(v)n(enien)n(t.)52 b(Similarly)-7+b(,)34 b(when)g(w)n(e)e(ho)r(ok)h(up)515 2555 y(to)g(other)g(external)f+(to)r(ols,)j(suc)n(h)e(as)f(VHDL-based)i(CAD)g(to)r(ols,)g(w)n(e)f(use)+g(Hask)n(ell)g(as)f(a)515 2655 y(scripting)h(language.)52+b(One)33 b(w)n(a)n(y)f(to)i(view)f(the)h(La)n(v)-5 b(a)32+b(system)h(is)g(as)g(a)g(to)r(ol)g(for)g(linking)515+2755 y(together)27 b(and)i(con)n(trolling)e(other)g(to)r(ols)h(in)h(a)f+(uni\014ed)h(w)n(a)n(y!)38 b(Th)n(us)29 b(Hask)n(ell)e(is)i(used)f(not)+515 2854 y(only)g(to)h(construct)f(circuit)h(descriptions)f(but)h(also)+f(to)g(con)n(trol)g(the)h(to)r(ols)f(that)h(pro)r(cess)515+2954 y(those)23 b(descriptions.)34 b(The)24 b(user)e(sees)h(only)g(one)+g(language,)f(rather)h(than)g(ha)n(ving)f(to)h(w)n(ork)515+3054 y(with)28 b(man)n(y)-7 b(,)27 b(as)g(is)g(more)g(usual)g(in)h(the)+g(CAD)h(w)n(orld.)515 3193 y(This)f(tutorial)f(in)n(tro)r(duces)h(the)g+(st)n(yle)g(of)g(circuit)g(description)g(used)g(in)g(La)n(v)-5+b(a,)28 b(b)n(y)g(means)515 3293 y(of)e(v)n(ery)g(simple)h(examples.)36+b(It)26 b(emphasises)g(the)h(w)n(a)n(y)f(in)h(whic)n(h)f(La)n(v)-5+b(a)26 b Fn(c)l(ombinators)h Fq(can)515 3392 y(b)r(e)j(used)f(to)g+(capture)g(common)g(in)n(terconnection)g(patterns.)42+b(It)30 b(sho)n(ws)e(the)i(three)f(most)515 3492 y(imp)r(ortan)n(t)i+Fn(interpr)l(etations)h Fq(or)e(circuit)i(analysis)e(metho)r(ds)i({)f+(sim)n(ulation,)h(generation)515 3592 y(of)25 b(VHDL)h(co)r(de,)g(and)f+(generation)f(of)h(logical)f(form)n(ulas)g(for)g(input)j(to)e(theorem)f+(pro)n(v)n(ers.)515 3691 y(After)h(w)n(orking)e(through)h(the)h+(tutorial,)g(y)n(ou)f(should)h(understand)f(ho)n(w)g(to)h(describ)r(e)f+(and)515 3791 y(analyse)h(simple)i(com)n(binational)e(and)h(sequen)n+(tial)g(circuits)g(using)g(La)n(v)-5 b(a.)35 b(W)-7 b(e)27+b(hop)r(e)g(that)515 3890 y(the)g(quic)n(k)g(reference)g(sections)f(at)+h(the)h(bac)n(k)f(of)g(the)h(tutorial)e(will)i(also)e(help)i(y)n(ou)e+(to)h(get)515 3990 y(started.)1926 5255 y(5)p eop+%%Page: 6 7+6 6 bop 515 1186 a Fo(Chapter)64 b(2)515 1641 y Fs(Getting)77+b(Started)515 2112 y Fq(In)19 b(this)h(c)n(hapter,)g(w)n(e)f(sho)n(w)g+(ho)n(w)f(to)h(describ)r(e)g(some)g(simple)h(circuits)f(in)g(the)h(La)n+(v)-5 b(a)18 b(system,)515 2212 y(and)27 b(run)h(the)g(in)n(terpreter)e+(on)h(them.)515 2526 y Fm(2.1)135 b(Y)-11 b(our)44 b(First)h(Circuit)+515 2748 y Fq(T)-7 b(o)40 b(mak)n(e)g(a)h(\014rst)g(circuit)g+(description,)i(start)e(up)g(the)g(text)h(editor)e(of)h(y)n(our)f(c)n+(hoice,)515 2847 y(and)32 b(create)f(a)h(text)g(\014le)g(called)g+Fp(First.hs)p Fq(,)e(for)i(example.)50 b(La)n(v)-5 b(a)31+b(\014le)h(names)g(ha)n(v)n(e)f(the)515 2947 y(extension)c+Fp(.hs)p Fq(.)515 3087 y(W)-7 b(e)29 b(are)e(going)h(to)g(de\014ne)h(a)+g(so-called)e Fn(half)32 b(adder)e Fq(\(see)f(\014gure)f(2.1\).)39+b(A)29 b(half)g(adder)f(is)g(a)515 3186 y(comp)r(onen)n(t)23+b(that)h(is)g(for)f(example)g(used)h(in)g(the)g(implemen)n(tation)g(of)+g(a)f(binary)g(adder.)35 b(It)515 3286 y(tak)n(es)27+b(as)g(an)g(input)i(t)n(w)n(o)e(bits,)h(and)g(adds)g(them)g(up.)38+b(The)28 b(result)g(is)f(a)h Fn(sum)f Fq(and)h(a)f Fn(c)l(arry)515+3385 y Fq(bit.)37 b(A)28 b(half)g(adder)f(is)g(usually)g(realized)g+(using)g(one)g Fp(and)g Fq(and)g(one)g Fp(xor)g Fq(gate.)515+3525 y(Here)g(is)g(ho)n(w)g(w)n(e)h(de\014ne)g(a)f(half)g(adder)g+Fp(halfAdd)e Fq(in)j(La)n(v)-5 b(a.)602 3711 y Fp(import)41+b(Lava)602 3910 y(halfAdd)g(\(a,)h(b\))h(=)g(\(sum,)e(carry\))689+4010 y(where)776 4109 y(sum)130 b(=)43 b(xor2)f(\(a,)g(b\))776+4209 y(carry)g(=)h(and2)f(\(a,)g(b\))515 4395 y Fq(W)-7+b(e)25 b(imp)r(ort)h(a)e(mo)r(dule)i(called)f Fp(Lava)p+Fq(,)f(whic)n(h)h(de\014nes)g(a)g(n)n(um)n(b)r(er)g(of)g(op)r(erations)+f(that)h(w)n(e)515 4495 y(can)j(use)h(to)g(build)g(circuits.)40+b(Notably)-7 b(,)29 b(it)h(con)n(tains)d(the)j(de\014nitions)f(of)g+(the)g(gates)f Fp(xor2)515 4594 y Fq(and)f Fp(and2)p+Fq(.)35 b(App)r(endix)29 b(A)f(con)n(tains)f(a)g(list)h(of)f(suc)n(h)g+(prede\014ned)h(op)r(erations.)515 4734 y(Note)k(that)h(the)g(order)e+(of)i(de\014nitions)g(after)f(a)g Fp(where)f Fq(do)r(es)h(not)h+(matter!)51 b(Since)33 b(these)515 4833 y(circuit)22+b(comp)r(onen)n(ts)g(act)g(in)h(parallel,)f(w)n(e)g(could)h(just)g(as)e+(w)n(ell)i(ha)n(v)n(e)e(put)i(them)g(the)g(other)515+4933 y(w)n(a)n(y)j(around.)1926 5255 y(6)p eop+%%Page: 7 8+7 7 bop 1514 973 a @beginspecial 0 @llx 0 @lly 208 @urx+128 @ury 1040 @rwi @setspecial+%%BeginDocument: Pictures/halfAdd.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-54.0 199.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 4312 m -1000 -1000 l 5365 -1000 l 5365 4312 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 2100 1200 m 3000 1200 l 3000 2100 l 2100 2100 l cp gs col0 s gr +% Polyline+n 2100 2400 m 3000 2400 l 3000 3300 l 2100 3300 l cp gs col0 s gr +% Polyline+n 1200 3000 m 2100 3000 l gs col0 s gr +% Polyline+gs  clippath+1977 1470 m 2073 1500 l 1977 1530 l 2115 1530 l 2115 1470 l cp+clip+n 1200 1500 m 2100 1500 l gs col0 s gr gr++% arrowhead+n 1977 1470 m 2073 1500 l 1977 1530 l 1953 1500 l 1977 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3477 1620 m 3573 1650 l 3477 1680 l 3615 1680 l 3615 1620 l cp+clip+n 3000 1650 m 3600 1650 l gs col0 s gr gr++% arrowhead+n 3477 1620 m 3573 1650 l 3477 1680 l 3453 1650 l 3477 1620 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3477 2820 m 3573 2850 l 3477 2880 l 3615 2880 l 3615 2820 l cp+clip+n 3000 2850 m 3600 2850 l gs col0 s gr gr++% arrowhead+n 3477 2820 m 3573 2850 l 3477 2880 l 3453 2850 l 3477 2820 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2072 2577 m 2087 2675 l 2018 2603 l 2080 2727 l 2134 2700 l cp+clip+n 1500 1500 m 2100 2700 l gs col0 s gr gr++% arrowhead+n 2072 2577 m 2087 2675 l 2018 2603 l 2034 2569 l 2072 2577 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2018 1897 m 2087 1824 l 2072 1923 l 2134 1800 l 2080 1773 l cp+clip+n 1500 3000 m 2100 1800 l gs col0 s gr gr++% arrowhead+n 2018 1897 m 2087 1824 l 2072 1923 l 2034 1931 l 2018 1897 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+900 3075 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+900 1575 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+3750 1725 m+gs 1 -1 sc (sum) col0 sh gr+/Helvetica ff 270.00 scf sf+3750 2925 m+gs 1 -1 sc (carry) col0 sh gr+/Courier ff 270.00 scf sf+2325 1725 m+gs 1 -1 sc (XOR) col0 sh gr+/Courier ff 270.00 scf sf+2325 2925 m+gs 1 -1 sc (AND) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1493 1156 a Fq(Figure)27 b(2.1:)36 b(A)28+b(half)g(adder.)515 1412 y Fm(2.2)135 b(The)45 b(La)l(v)-7+b(a)45 b(In)l(terpreter)515 1634 y Fq(During)40 b(the)i(dev)n(elopmen)n+(t)e(of)h(a)f(collection)g(of)h(circuits,)j(w)n(e)d(mainly)f(use)h(the)+g(La)n(v)-5 b(a)515 1734 y Fn(interpr)l(eter)p Fq(.)42+b(This)29 b(is)h(actually)e(the)i(Hask)n(ell)f(in)n(terpreter)f+Fn(Hugs)h Fq([8)o(].)43 b(The)29 b(command)g(is)515 1833+y Fp(lava)p Fq(.)602 2011 y Fp(\045)87 b Fl(lava)602+2110 y Fp(--)43 b(Lava2000)d(----------------)o(--)o(---)o(--)o(---)o+(--)o(---)o(--)o(--)o(---)o(--)o(---)o(--)o(--)o(---)o(-)602+2210 y(...)602 2309 y(Prelude>)515 2487 y Fq(W)-7 b(e)36+b(can)f(use)h(the)g(in)n(terpreter)f(to)g(load)g(di\013eren)n(t)h(mo)r+(dules)g(with)g(circuit)g(de\014nitions,)515 2586 y(and)27+b(to)h(t)n(yp)r(e)f(in)h(commands)f(that)h(w)n(e)f(w)n(an)n(t)g(to)h+(execute.)515 2726 y(If)d(w)n(e)f(t)n(yp)r(e)g(in)h(the)g(half)f(adder)+g(de\014nition)h(in)f(the)h(\014le)g Fp(First.hs)p Fq(,)c(w)n(e)k(can)f+(load)f(it)i(in)g(the)515 2825 y(in)n(terpreter,using)h(the)i(command)f+Fp(:l)p Fq(:)602 3002 y Fp(Prelude>)40 b Fl(:l)j(First.hs)602+3102 y Fp(Reading)e(file)h("First.hs":)602 3202 y(...)602+3301 y(First.hs)602 3401 y(Main>)515 3578 y Fq(One)28+b(of)h(the)g(things)g(w)n(e)f(can)h(do)f(with)i(a)e(circuit)h(is)g(sim)+n(ulating)f(it.)41 b(Sim)n(ulation)29 b(is)f(done)515+3678 y(in)c(La)n(v)-5 b(a)23 b(with)i(the)g(op)r(eration)e+Fp(simulate)p Fq(.)32 b(It)25 b(tak)n(es)e(t)n(w)n(o)h(argumen)n(ts;)g+(one)f(is)i(the)f(circuit)515 3777 y(to)j(sim)n(ulate)h(\(in)g(this)h+(case)e Fp(halfAdd)p Fq(\),)e(and)j(the)g(other)f(is)h(the)g(input)h+(to)f(the)g(circuit)g(\(in)515 3877 y(this)g(case)e(a)i(pair)e(of)i+(bits\).)602 4054 y Fp(Main>)41 b Fl(simulate)g(halfAdd)f(\(low,low\))+602 4154 y Fp(\(low,)h(low\))602 4253 y(Main>)g Fl(simulate)g(halfAdd)f+(\(high,high\))602 4353 y Fp(\(low,)h(high\))515 4530+y Fq(If)28 b(w)n(e)f(mak)n(e)g(an)n(y)g(c)n(hanges)g(to)h(the)g(\014le)+g(with)g(our)f(circuit)h(de\014nitions,)g(w)n(e)f(can)h(t)n(yp)r(e)g+(the)515 4630 y(reload)e(command)h Fp(:r)g Fq(in)h(the)g(in)n+(terpreter:)602 4807 y Fp(Main>)41 b Fl(:r)602 4907 y+Fp(...)602 5006 y(Main>)1926 5255 y Fq(7)p eop+%%Page: 8 9+8 8 bop 1005 861 a @beginspecial 0 @llx 0 @lly 452 @urx+101 @ury 2260 @rwi @setspecial+%%BeginDocument: Pictures/fullAdd.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-13.0 172.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 3851 m -1000 -1000 l 8736 -1000 l 8736 3851 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 5100 1800 m 6000 1800 l 6000 2700 l 5100 2700 l cp gs col0 s gr +/Courier ff 270.00 scf sf+5325 2325 m+gs 1 -1 sc (XOR) col0 sh gr+% Polyline+n 1200 2700 m 2700 2700 l gs col0 s gr +% Polyline+gs  clippath+1977 1470 m 2073 1500 l 1977 1530 l 2115 1530 l 2115 1470 l cp+clip+n 1200 1500 m 2100 1500 l gs col0 s gr gr++% arrowhead+n 1977 1470 m 2073 1500 l 1977 1530 l 1953 1500 l 1977 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 2100 1200 m 3000 1200 l 3000 2100 l 2100 2100 l cp gs col0 s gr +% Polyline+gs  clippath+1977 1828 m 2075 1812 l 2003 1882 l 2127 1820 l 2100 1766 l cp+clip+n 1200 2100 m 1500 2100 l 2100 1800 l gs col0 s gr gr++% arrowhead+n 1977 1828 m 2075 1812 l 2003 1882 l 1969 1866 l 1977 1828 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 3600 1200 m 4500 1200 l 4500 2100 l 3600 2100 l cp gs col0 s gr +% Polyline+gs  clippath+3492 1866 m 3580 1819 l 3534 1908 l 3632 1811 l 3589 1768 l cp+clip+n 2700 2700 m 3600 1800 l gs col0 s gr gr++% arrowhead+n 3492 1866 m 3580 1819 l 3534 1908 l 3496 1904 l 3492 1866 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4977 2370 m 5073 2400 l 4977 2430 l 5115 2430 l 5115 2370 l cp+clip+n 3000 1800 m 3600 2400 l 5100 2400 l gs col0 s gr gr++% arrowhead+n 4977 2370 m 5073 2400 l 4977 2430 l 4953 2400 l 4977 2370 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3477 1470 m 3573 1500 l 3477 1530 l 3615 1530 l 3615 1470 l cp+clip+n 3000 1500 m 3600 1500 l gs col0 s gr gr++% arrowhead+n 3477 1470 m 3573 1500 l 3477 1530 l 3453 1500 l 3477 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6477 1470 m 6573 1500 l 6477 1530 l 6615 1530 l 6615 1470 l cp+clip+n 4500 1500 m 6600 1500 l gs col0 s gr gr++% arrowhead+n 6477 1470 m 6573 1500 l 6477 1530 l 6453 1500 l 6477 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6477 2220 m 6573 2250 l 6477 2280 l 6615 2280 l 6615 2220 l cp+clip+n 6000 2250 m 6600 2250 l gs col0 s gr gr++% arrowhead+n 6477 2220 m 6573 2250 l 6477 2280 l 6453 2250 l 6477 2220 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+5003 2018 m 5075 2087 l 4977 2072 l 5100 2134 l 5127 2080 l cp+clip+n 4500 1800 m 5100 2100 l gs col0 s gr gr++% arrowhead+n 5003 2018 m 5075 2087 l 4977 2072 l 4969 2034 l 5003 2018 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+900 1575 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+900 2175 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+6750 1575 m+gs 1 -1 sc (sum) col0 sh gr+/Helvetica ff 270.00 scf sf+6675 2325 m+gs 1 -1 sc (carryOut) col0 sh gr+/Courier ff 270.00 scf sf+2400 1725 m+gs 1 -1 sc (HA) col0 sh gr+/Courier ff 270.00 scf sf+3900 1725 m+gs 1 -1 sc (HA) col0 sh gr+/Helvetica ff 270.00 scf sf+225 2775 m+gs 1 -1 sc (carryIn) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1502 1043 a Fq(Figure)27 b(2.2:)36 b(A)28+b(full)g(adder.)515 1297 y(The)33 b(c)n(hanges)f(are)g(no)n(w)h(up)r+(dated.)55 b(If)33 b(y)n(ou)g(ev)n(er)f(w)n(an)n(t)h(to)g(exit)g(from)g+(the)h(in)n(terpreter,)515 1396 y(y)n(ou)27 b(can)g(use)g(the)h+Fp(:q)f Fq(command.)602 1570 y Fp(Main>)41 b Fl(:q)602+1670 y Fp([Leaving)f(Hugs])602 1770 y(\045)515 2081 y+Fm(2.3)135 b(Y)-11 b(our)44 b(Second)h(Circuit)515 2303+y Fq(Y)-7 b(ou)29 b(guessed)f(it!)42 b(Y)-7 b(our)29+b(second)f(circuit)h(is)g(going)f(to)h(b)r(e)h(a)f Fn(ful)t(l)i(adder)g+Fq(\(see)e(\014gure)g(2.2\),)515 2403 y(a)k(comp)r(onen)n(t)h+Fp(fullAdd)d Fq(that)j(consists)f(of)h(t)n(w)n(o)f(half)h(adders.)55+b(T)-7 b(o)34 b(de\014ne)g(it,)i(add)e(the)515 2502 y(follo)n(wing)26+b(de\014nition)i(to)g(the)g(\014le)f Fp(First.hs)p Fq(.)602+2676 y Fp(fullAdd)41 b(\(carryIn,)e(\(a,)k(b\)\))f(=)h(\(sum,)f+(carryOut\))689 2776 y(where)776 2876 y(\(sum1,)f(carry1\))g(=)i+(halfAdd)e(\(a,)h(b\))776 2975 y(\(sum,)g(carry2\))84+b(=)43 b(halfAdd)e(\(carryIn,)f(sum1\))776 3075 y(carryOut)302+b(=)43 b(xor2)f(\(carry1,)e(carry2\))515 3249 y Fq(Note)32+b(that,)h(just)g(lik)n(e)e(the)h(half)g(adder,)h(this)f(circuit)g(has)f+Fn(one)h Fq(input.)51 b(This)32 b(one)f(input)515 3348+y(consists)h(of)i(a)f(pair)f(of)i(a)f(bit)h(and)f(a)g(pair)g(of)g+(bits.)55 b(W)-7 b(e)34 b(could)f(also)f(ha)n(v)n(e)g(represen)n(ted)+515 3448 y(the)27 b(input)h(as)f(a)g(triple)g(of)g(bits,)h(but)g(w)n(e)+f(shall)g(later)f(see)h(wh)n(y)g(w)n(e)g(made)g(this)g(particular)515+3548 y(c)n(hoice.)515 3687 y(W)-7 b(e)30 b(can)g(sim)n(ulate)g(this)h+(circuit)f(b)n(y)g(using)g(the)g Fp(simulate)d Fq(op)r(eration)i(that)i+(w)n(e)f(used)g(in)515 3787 y(the)22 b(previous)e(section.)35+b(Though)21 b(as)g(inputs)h(get)g(bigger,)f(t)n(yping)h(in)g+(di\013eren)n(t)g(test)g(inputs)515 3886 y(in)30 b(the)g(in)n+(terpreter)f(is)h(a)g(lot)g(of)f(w)n(ork.)43 b(T)-7 b(o)30+b(a)n(v)n(oid)e(this,)j(w)n(e)f(can)f(describ)r(e)h(a)f(n)n(um)n(b)r+(er)h(of)515 3986 y(test)e(cases)e(in)i(the)g(\014le)g+Fp(First.hs)p Fq(:)602 4160 y Fp(test1)41 b(=)j(simulate)c(halfAdd)h+(\(low,low\))602 4260 y(test2)g(=)j(simulate)c(fullAdd)h+(\(low,\(high,low\))o(\))602 4359 y(test3)g(=)j(simulate)c(fullAdd)h+(\(high,\(low,high)o(\)\))515 4533 y Fq(And)28 b(w)n(e)f(can)g(p)r+(erform)g(tests)h(in)g(the)g(in)n(terpreter.)602 4707+y Fp(Main>)41 b Fl(test3)602 4807 y Fp(\(low,)g(high\))602+4907 y(Main>)g Fl(test2)602 5006 y Fp(\(high,)g(low\))1926+5255 y Fq(8)p eop+%%Page: 9 10+9 9 bop 515 523 a Fq(If)26 b(w)n(e)f(w)n(an)n(t)g(to)h(sim)n(ulate)f(y)+n(our)g(circuit)h(for)f(more)g(than)h(one)f(input)i(at)e(the)h(time,)h+(w)n(e)e(can)515 623 y(use)g(the)g(op)r(eration)f Fp(simulateSeq)p+Fq(.)32 b(It)25 b(tak)n(es)f(a)h(circuit)g(and)g(a)g(list)g(of)g+(sample)g(inputs)h(as)515 722 y(a)h(parameter.)35 b(Lists)28+b(are)e(denoted)i(b)r(et)n(w)n(een)g(square)e(brac)n(k)n(ets.)602+904 y Fp(Main>)41 b Fl(simulateSeq)e(halfAdd)i([\(low,low\),)e+(\(low,high\),)g(\(high,low\)])602 1004 y Fp([\(low,low\),)g+(\(high,low\),)g(\(high,low\)])515 1185 y Fq(There)28+b(is)g(a)g(sp)r(ecial)g(list,)g(called)g Fp(domain)p+Fq(,)e(whic)n(h)j(con)n(tains)e(all)h(the)h(v)-5 b(alues)28+b(of)g(a)g(certain)515 1285 y(input)g(shap)r(e.)602 1466+y Fp(Main>)41 b Fl(simulateSeq)e(halfAdd)i(domain)602+1566 y Fp([\(low,low\),)e(\(high,low\),)g(\(high,low\),)g+(\(low,high\)])515 1748 y Fq(Not)d(all)g(input)h(shap)r(es)e(\(for)h+(example)g(inputs)h(con)n(taining)e(n)n(um)n(b)r(ers!\))62+b(ha)n(v)n(e)35 b(a)h(\014nite)515 1847 y(domain)27 b(list)h(asso)r+(ciated)e(with)i(them.)515 2161 y Fm(2.4)135 b(Generating)46+b(VHDL)515 2382 y Fq(Giv)n(en)29 b(a)g(La)n(v)-5 b(a)28+b(circuit)h(description,)h(w)n(e)f(can)g(generate)f(VHDL)i(from)f(it,)i+(b)n(y)e(using)g(the)515 2482 y(op)r(eration)21 b Fp(writeVhdl)p+Fq(.)31 b(It)22 b(tak)n(es)f(t)n(w)n(o)h(argumen)n(ts,)f(the)i(name)e+(of)h(the)h(VHDL)g(de\014nition)515 2582 y(as)k(a)g(string,)g(and)g+(the)h(circuit.)602 2763 y Fp(Main>)41 b Fl(writeVhdl)f("fullAdd")g+(fullAdd)602 2863 y Fp(Writing)h(to)h(file)g("fullAdd.vhd")c(...)43+b(Done.)515 3044 y Fq(The)32 b(VHDL)i(\014le)f(that)f(is)h(generated)e+(will)i(assume)f(that)h(there)f(are)g(de\014nitions)g(of)h(the)515+3144 y(gates.)58 b(The)35 b(La)n(v)-5 b(a)33 b(distribution)j(pro)n+(vides)d(these)i(de\014nitions)g(in)g(the)h(\014le)f+Fp(Lava2000/)515 3244 y(Auxiliary/lava.v)o(hd)o Fq(.)46+b(W)-7 b(e)33 b(m)n(ust)g(load)f(this)h(\014le)g(in)n(to)f(the)h(VHDL)g+(w)n(orking)e(library)515 3343 y(and)c(compile)h(it.)515+3483 y(Normally)-7 b(,)23 b(the)g(VHDL)h(generator)c(giv)n(es)i(names)h+(to)f(the)i(inputs)f(and)g(outputs)g(automat-)515 3582+y(ically)-7 b(.)36 b(If)27 b(w)n(e)g(w)n(an)n(t)f(to)g(giv)n(e)g(names)+h(to)f(the)i(input)f(ourselv)n(es,)e(w)n(e)i(can)f(do)h(this)g(b)n(y)f+(using)515 3682 y(the)i(op)r(eration)e Fp(writeVhdlInput)p+Fq(.)31 b(Here)d(is)f(ho)n(w)g(w)n(e)g(use)h(it:)602+3864 y Fp(Main>)41 b Fl(writeVhdlInput)d("fullAdd")i(fullAdd)1604+3963 y(\(var)i("carryIn",)e(\(var)i("a",)g(var)g("b"\)\))602+4063 y Fp(Writing)f(to)h(file)g("fullAdd.vhd")c(...)43+b(Done.)515 4245 y Fq(And)28 b(lastly)-7 b(,)27 b(if)i(w)n(e)e(also)g+(w)n(an)n(t)g(to)g(giv)n(e)g(names)g(for)g(the)i(outputs,)f(w)n(e)f+(can)g(use)h(the)g(op)r(er-)515 4344 y(ations)f Fp(writeVhdlInputO)o+(utp)o(ut)o Fq(.)k(Here)d(is)f(ho)n(w)g(w)n(e)g(use)h(it:)602+4526 y Fp(Main>)41 b Fl(writeVhdlInputOut)o(put)c("fullAdd")j(fullAdd)+1604 4625 y(\(var)i("carryIn",)e(\(var)i("a",)g(var)g("b"\)\))2258+4725 y(\(var)g("sum",)f(var)i("carryOut"\))602 4825 y+Fp(Writing)e(to)h(file)g("fullAdd.vhd")c(...)43 b(Done.)515+5006 y Fq(See)27 b(\014gure)g(2.3)g(for)g(the)h(result)f(of)h(this)g+(last)f(op)r(eration.)1926 5255 y(9)p eop+%%Page: 10 11+10 10 bop 515 481 a Fk(use)36 b(work.all;)515 638 y(entity)707+b(architecture)585 717 y(fullAdd)673 b(structural)515+796 y(is)847 b(of)515 875 y(port)h(fullAdd)585 954 y(--)36+b(clock)566 b(is)585 1033 y(\()36 b(clk)g(:)g(in)f(bit)425+b(signal)37 b(w1)f(:)f(bit;)585 1112 y(--)h(inputs)602+b(signal)37 b(w2)f(:)f(bit;)585 1190 y(;)h(carryIn)h(:)f(in)g(bit)283+b(signal)37 b(w3)f(:)f(bit;)585 1269 y(;)h(a)f(:)h(in)g(bit)424+b(begin)585 1348 y(;)36 b(b)f(:)h(in)g(bit)495 b(c_w1)248+b(:)35 b(entity)i(and2)g(port)f(map)g(\(clk,)h(a,)f(b,)g(w1\);)585+1427 y(--)g(outputs)567 b(c_sum)213 b(:)35 b(entity)i(and2)g(port)f+(map)g(\(clk,)h(w1,)f(carryIn,)i(sum\);)585 1506 y(;)e(sum)g(:)g(out)g+(bit)389 b(c_w2)248 b(:)35 b(entity)i(xor2)g(port)f(map)g(\(clk,)h(a,)f+(b,)g(w2\);)585 1585 y(;)g(carryOut)h(:)f(out)g(bit)213+b(c_w3)248 b(:)35 b(entity)i(xor2)g(port)f(map)g(\(clk,)h(w1,)f+(carryIn,)i(w3\);)585 1664 y(\);)848 b(c_carryOut)38+b(:)d(entity)i(xor2)g(port)f(map)g(\(clk,)h(w2,)f(w3,)g(carryOut\);)515+1743 y(end)g(entity)h(fullAdd;)249 b(end)36 b(structural;)795+1988 y Fq(Figure)27 b(2.3:)36 b(The)28 b(VHDL)g(co)r(de)g(for)f(the)h+(full)g(adder)f(in)h Fp(fullAdd.vhd)p Fq(.)515 2253 y+Fm(2.5)135 b(Exercises)575 2469 y Fq(2.1)40 b(De\014ne)22+b(the)g(circuits)g Fp(swap)e Fq(and)h Fp(copy)p Fq(.)33+b(Sw)n(ap)21 b(gets)g(a)h(pair)e(of)i(inputs,)h(and)f(outputs)722+2568 y(them)28 b(in)g(the)f(sw)n(app)r(ed)g(order.)35+b(Cop)n(y)27 b(gets)f(one)h(input)h(and)f(outputs)h(it)g(t)n(wice,)f+(as)722 2668 y(a)g(pair.)37 b(Here)27 b(is)g(ho)n(w)g(they)h(should)g+(b)r(eha)n(v)n(e:)809 2867 y Fp(Main>)42 b Fl(simulateSeq)d(swap)j+([\(low,)f(high\),)g(\(low,)h(low\),)f(\(high,)g(low\)])809+2967 y Fp([\(high,)g(low\),)h(\(low,)f(low\),)h(\(low,)f(high\)])809+3066 y(Main>)h Fl(simulateSeq)d(copy)j([low,)f(high])809+3166 y Fp([\(low,)h(low\),)f(\(high,)g(high\)])575 3365+y Fq(2.2)f(De\014ne)32 b(a)e Fn(two-bit)j(sorter)p Fq(.)48+b(It)31 b(tak)n(es)f(as)h(input)g(a)g(pair)f(of)h(bits,)i(and)d+(outputs)i(the)722 3465 y(same)f(bits,)h(but)g(the)f(lo)n(w)n(est)f+(one)h(on)g(the)g(left)h(hand)f(side,)h(and)f(the)h(highest)e(one)722+3564 y(on)e(the)g(righ)n(t)e(hand)i(side.)575 3730 y(2.3)40+b(De\014ne)e(a)e(circuit)h(with)g(no)f(inputs,)k(and)d(one)f(output,)k+(whic)n(h)d(is)f(alw)n(a)n(ys)f(high.)722 3830 y(Hin)n(t:)j(input)28+b(consisting)f(of)g(no)h(wires)f(is)g(written)h(as)f+Fp(\(\))p Fq(.)575 3996 y(2.4)40 b(De\014ne)34 b(and)f(sim)n(ulate)g(a)+g Fn(multiplexer)g Fq(in)h(La)n(v)-5 b(a.)52 b(A)34 b(m)n(ultiplexer)f+(circuit)g(has)g(as)722 4096 y(an)27 b(input)h(a)f(pair)f(of)h(a)f+(signal)h(and)g(a)f(pair)g Fp(\(x,)43 b(y\))p Fq(.)36+b(The)27 b(output)g(is)g(equal)g(to)g Fp(x)g Fq(if)722+4195 y(the)h(signal)f(is)g(lo)n(w,)g(and)h(to)f Fp(y)h+Fq(if)g(the)g(signal)e(is)i(high.)575 4361 y(2.5)40 b(Use)c(three)g+(full)h(adders)e(to)h(mak)n(e)f(a)g(three)h(bit)h(binary)e(adder.)61+b(Sim)n(ulate)36 b(y)n(our)722 4461 y(design)27 b(and)h(generate)e+(VHDL)j(co)r(de.)575 4627 y(2.6)40 b(Supp)r(ose)c(y)n(ou)e(are)h+(designing)f(a)h(digital)h(w)n(atc)n(h.)59 b(It)36 b(migh)n(t)f(come)g+(in)h(handy)f(to)722 4727 y(ha)n(v)n(e)g(a)g(circuit)h(that)g(tak)n(es)+f(a)h(four-bit)g(binary)f(n)n(um)n(b)r(er)g(and)h(displa)n(ys)f(it)h+(as)f(a)722 4826 y(digital)c(digit,)g(using)f(a)g(sev)n(en)g(segmen)n+(t)g(displa)n(y)-7 b(.)45 b(Y)-7 b(our)30 b(circuit)h(migh)n(t)f(ha)n+(v)n(e)g(the)722 4926 y(follo)n(wing)d(in)n(terface)g(\(see)g(\014gure)+g(2.4\):)1905 5255 y(10)p eop+%%Page: 11 12+11 11 bop 1734 1065 a @beginspecial 0 @llx 0 @lly 51+@urx 75 @ury 510 @rwi @setspecial+%%BeginDocument: Pictures/display.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-2.0 77.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 2269 m -1000 -1000 l 1872 -1000 l 1872 2269 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 150 225 m 225 225 l 225 600 l 150 600 l cp gs col0 s gr +% Polyline+n 150 675 m 225 675 l 225 1050 l 150 1050 l cp gs col0 s gr +% Polyline+n 675 225 m 750 225 l 750 600 l 675 600 l cp gs col0 s gr +% Polyline+n 150 600 m 750 600 l 750 675 l 150 675 l cp gs col0 s gr +% Polyline+n 150 1050 m 750 1050 l 750 1125 l 150 1125 l cp gs col0 s gr +% Polyline+n 675 675 m 750 675 l 750 1050 l 675 1050 l cp gs col0 s gr +% Polyline+n 150 150 m 750 150 l 750 225 l 150 225 l cp gs col0 s gr +/Times-Roman ff 180.00 scf sf+787 895 m+gs 1 -1 sc (c) col0 sh gr+/Times-Roman ff 180.00 scf sf+48 447 m+gs 1 -1 sc (f) col0 sh gr+/Times-Roman ff 180.00 scf sf+38 895 m+gs 1 -1 sc (e) col0 sh gr+/Times-Roman ff 180.00 scf sf+413 538 m+gs 1 -1 sc (g) col0 sh gr+/Times-Roman ff 180.00 scf sf+409 125 m+gs 1 -1 sc (a) col0 sh gr+/Times-Roman ff 180.00 scf sf+780 447 m+gs 1 -1 sc (b) col0 sh gr+/Times-Roman ff 180.00 scf sf+412 1269 m+gs 1 -1 sc (d) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1460 1248 a Fq(Figure)27 b(2.4:)36 b(Digital)28+b(displa)n(y)-7 b(.)809 1513 y Fp(digitalDisplay)38 b(\(one,)k(two,)g+(four,)f(eight\))g(=)940 1613 y(\(a,)i(b,)f(c,)h(d,)g(e,)g(f,)f(g\))897+1712 y(where)f(...)722 1911 y Fq(Hin)n(t:)i(start)29+b(b)n(y)h(making)f(a)h(table)g(with)g(10)f(en)n(tries)h(\(0)g(..)44+b(9\))30 b(where)g(y)n(ou)f(can)g(see)722 2011 y(what)f(parts)f(of)g+(the)h(displa)n(y)f(should)g(ligh)n(t)h(up)g(for)f(what)g(n)n(um)n(b)r+(er.)1905 5255 y(11)p eop+%%Page: 12 13+12 12 bop 515 1186 a Fo(Chapter)64 b(3)515 1641 y Fs(Bigger)77+b(Circuits)515 2112 y Fq(In)26 b(this)f(c)n(hapter)g(w)n(e)g(describ)r+(e)h(ho)n(w)f(to)g(mak)n(e)g(more)g(complicated)g(circuits)g(using)g+(recur-)515 2212 y(sion)i(and)g Fn(c)l(onne)l(ction)j(p)l(atterns)p+Fq(.)37 b(W)-7 b(e)28 b(will)f(also)g(see)g(ho)n(w)g(w)n(e)g(use)h(n)n+(um)n(b)r(ers)f(in)h(La)n(v)-5 b(a.)515 2524 y Fm(3.1)135+b(Recursion)45 b(o)l(v)l(er)h(Lists)515 2746 y Fq(A)27+b Fn(bit)i(adder)f Fq(tak)n(es)e(a)g(pair)g(of)h(inputs.)37+b(The)27 b(\014rst)g(part)f(is)g(a)h(carry)e(bit,)i(the)g(second)g+(part)515 2845 y(is)g(a)f(binary)h(n)n(um)n(b)r(er,)g(represen)n(ted)e+(as)i(a)g(list)g(of)g(bits.)37 b(The)27 b(bit)h(adder)e(will)h(add)g+(the)h(bit)515 2945 y(to)f(the)h(binary)f(n)n(um)n(b)r(er,)g(resulting)+g(in)h(a)f(binary)g(n)n(um)n(b)r(er)h(and)f(a)g(carry)f(out.)515+3084 y(W)-7 b(e)24 b(de\014ne)g(a)g(bit)g(adder)f Fp(bitAdder)e+Fq(in)j(La)n(v)-5 b(a)23 b(b)n(y)h(recursion)e(o)n(v)n(er)g(the)j(list)+f(of)g(bits.)36 b(There)515 3184 y(are)29 b(t)n(w)n(o)h(cases.)44+b(Either)30 b(the)h(list)f(is)g(empt)n(y)-7 b(,)32 b(denoted)e(as)g+Fp([])p Fq(,)g(and)h(there)f(is)g(nothing)g(to)515 3284+y(add.)39 b(Or)28 b(the)h(list)f(has)g(at)h(least)f(one)g(elemen)n(t)h+Fp(a)p Fq(,)f(and)g(w)n(e)h(can)f(split)h(the)g(list)f(up)h(in)g(t)n(w)+n(o)515 3383 y(parts,)c Fp(a)h Fq(and)g Fp(as)p Fq(,)g(denoted)g(as)f+Fp(a:as)p Fq(.)35 b(In)26 b(this)h(case,)e(w)n(e)h(will)g(use)g(an)g+(half)g(adder)f(to)h(add)515 3483 y Fp(a)e Fq(and)g(the)g(carry)-7+b(,)24 b(and)g Fn(r)l(e)l(cursively)h Fq(add)f(the)g(resulting)g(carry)+f(to)h(the)g(rest)g(of)g(the)h(binary)515 3582 y(n)n(um)n(b)r(er.)602+3758 y Fp(bitAdder)40 b(\(carryIn,)g([]\))130 b(=)43+b(\([],)f(carryIn\))602 3957 y(bitAdder)e(\(carryIn,)g(a:as\))i(=)h+(\(sum:sums,)c(carryOut\))689 4057 y(where)776 4157 y(\(sum,)j(carry\))+215 b(=)43 b(halfAdd)e(\(carryIn,)f(a\))776 4256 y(\(sums,)h+(carryOut\))f(=)j(bitAdder)e(\(carry,)f(as\))515 4432+y Fq(A)26 b(more)f(complicated)g(circuit)h(is)f(the)h(circuit)g+Fp(adder)d Fq(that)j(tak)n(es)f(a)g(carry)f(and)i(a)f(pair)g(of)515+4532 y(binary)c(n)n(um)n(b)r(ers,)h(and)g(adds)f(them)i(up.)35+b(This)22 b(is)g(called)f(a)h(binary)f(adder.)34 b(The)22+b(recursiv)n(e)515 4631 y(structure)g(is)i(almost)e(the)i(same,)g(but)g+(w)n(e)e(are)h(doing)f Fn(simultane)l(ous)h Fq(recursion)f(o)n(v)n(er)g+(b)r(oth)515 4731 y(binary)27 b(n)n(um)n(b)r(ers.)602+4907 y Fp(adder)41 b(\(carryIn,)f(\([],)i([]\)\))216+b(=)44 b(\([],)e(carryIn\))1905 5255 y Fq(12)p eop+%%Page: 13 14+13 13 bop 1441 673 a @beginspecial 0 @llx 0 @lly 243+@urx 56 @ury 1215 @rwi @setspecial+%%BeginDocument: Pictures/serial.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-58.0 307.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 6112 m -1000 -1000 l 6013 -1000 l 6013 6112 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 1800 4200 m 2700 4200 l 2700 5100 l 1800 5100 l cp gs col0 s gr +% Polyline+n 3300 4200 m 4200 4200 l 4200 5100 l 3300 5100 l cp gs col0 s gr +% Polyline+gs  clippath+1677 4620 m 1773 4650 l 1677 4680 l 1815 4680 l 1815 4620 l cp+clip+n 1200 4650 m 1800 4650 l gs col0 s gr gr++% arrowhead+n 1677 4620 m 1773 4650 l 1677 4680 l 1653 4650 l 1677 4620 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 4620 m 3273 4650 l 3177 4680 l 3315 4680 l 3315 4620 l cp+clip+n 2700 4650 m 3300 4650 l gs col0 s gr gr++% arrowhead+n 3177 4620 m 3273 4650 l 3177 4680 l 3153 4650 l 3177 4620 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 4620 m 4773 4650 l 4677 4680 l 4815 4680 l 4815 4620 l cp+clip+n 4200 4650 m 4800 4650 l gs col0 s gr gr++% arrowhead+n 4677 4620 m 4773 4650 l 4677 4680 l 4653 4650 l 4677 4620 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+975 4725 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+2925 4575 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+4875 4725 m+gs 1 -1 sc (c) col0 sh gr+/Courier ff 270.00 scf sf+1875 4725 m+gs 1 -1 sc (circ1) col0 sh gr+/Courier ff 270.00 scf sf+3375 4725 m+gs 1 -1 sc (circ2) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1014 856 a Fq(Figure)27 b(3.1:)36 b(Serial)27+b(comp)r(osition)g(of)h Fp(circ1)d Fq(and)j Fp(circ2)p+Fq(.)1428 1630 y @beginspecial 0 @llx 0 @lly 249 @urx+158 @ury 1245 @rwi @setspecial+%%BeginDocument: Pictures/circF.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-99.0 180.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 4000 m -1000 -1000 l 6786 -1000 l 6786 4000 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 3150 1200 m 4050 1200 l 4050 2100 l 3150 2100 l cp gs col0 s gr +% Polyline+gs  clippath+3027 1620 m 3123 1650 l 3027 1680 l 3165 1680 l 3165 1620 l cp+clip+n 2550 1650 m 3150 1650 l gs col0 s gr gr++% arrowhead+n 3027 1620 m 3123 1650 l 3027 1680 l 3003 1650 l 3027 1620 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3630 1077 m 3600 1173 l 3570 1077 l 3570 1215 l 3630 1215 l cp+clip+n 3600 600 m 3600 1200 l gs col0 s gr gr++% arrowhead+n 3630 1077 m 3600 1173 l 3570 1077 l 3600 1053 l 3630 1077 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3630 2577 m 3600 2673 l 3570 2577 l 3570 2715 l 3630 2715 l cp+clip+n 3600 2100 m 3600 2700 l gs col0 s gr gr++% arrowhead+n 3630 2577 m 3600 2673 l 3570 2577 l 3600 2553 l 3630 2577 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4527 1620 m 4623 1650 l 4527 1680 l 4665 1680 l 4665 1620 l cp+clip+n 4050 1650 m 4650 1650 l gs col0 s gr gr++% arrowhead+n 4527 1620 m 4623 1650 l 4527 1680 l 4503 1650 l 4527 1620 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+1650 1725 m+gs 1 -1 sc (carryIn) col0 sh gr+/Courier ff 270.00 scf sf+3525 1725 m+gs 1 -1 sc (F) col0 sh gr+/Helvetica ff 270.00 scf sf+4725 1725 m+gs 1 -1 sc (carryOut) col0 sh gr+/Helvetica ff 270.00 scf sf+3525 525 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+3525 3000 m+gs 1 -1 sc (b) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 891 1813 a(Figure)f(3.2:)36 b(A)28 b(circuit)g+Fj(F)39 b Fq(pro)r(cessing)26 b(an)i(input)g Fp(a)f Fq(and)h(a)f(carry)+-7 b(.)602 2078 y Fp(adder)41 b(\(carryIn,)f(\(a:as,)h(b:bs\)\))g(=)j+(\(sum:sums,)39 b(carryOut\))689 2178 y(where)776 2277+y(\(sum,)j(carry\))215 b(=)43 b(fullAdd)e(\(carryIn,)f(\(a,)i(b\)\))776+2377 y(\(sums,)f(carryOut\))f(=)j(adder)f(\(carry,)f(\(as,)h(bs\)\))515+2691 y Fm(3.2)135 b(Connection)46 b(P)l(atterns)515 2913+y Fq(Lo)r(oking)30 b(at)h(the)h(t)n(w)n(o)f(circuit)h(de\014nitions)f+(in)h(the)g(previous)e(section,)i(w)n(e)g(can)f(see)g(that)515+3013 y(they)e(ha)n(v)n(e)e(a)i(lot)f(in)h(common.)40+b(Ev)n(en)28 b(though)g(the)h Fn(gates)h Fq(that)f(they)g(use)f(are)g+(di\013eren)n(t,)515 3112 y(their)f Fn(structur)l(e)f+Fq(is)i(v)n(ery)e(similar.)515 3252 y(In)h(La)n(v)-5+b(a,)26 b(w)n(e)h(can)f(capture)h(these)g(common)g(structures)f(in)h+Fn(c)l(onne)l(ction)i(p)l(atterns)p Fq(.)37 b(Con-)515+3351 y(nection)23 b(patterns)g(are)g(higher-order)e(circuits;)k+(circuits)e(that)h(build)g(circuits)f(from)h(other)515+3451 y(circuits.)515 3590 y(A)39 b(v)n(ery)e(common)h(connection)h+(pattern)f(is)h(the)g Fn(serial)h Fq(comp)r(osition)e+Fp(serial)e Fq(of)j(t)n(w)n(o)515 3690 y(circuits)30+b(\(see)h(\014gure)f(3.1\).)46 b(It)31 b(is)f(a)h(circuit)f+Fn(p)l(ar)l(ametrize)l(d)j Fq(b)n(y)d(t)n(w)n(o)g(circuits)g+Fp(circ1)f Fq(and)515 3790 y Fp(circ2)p Fq(.)k(This)24+b(means)g(that)g Fp(serial)41 b(circ1)h(circ2)22 b Fq(is)i(a)f+(circuit,)i(whic)n(h)f(feeds)g(its)g(input)515 3889 y+Fp(a)33 b Fq(to)g Fp(circ1)p Fq(,)g(connects)h(the)f(output)i+Fp(b)e Fq(of)g(it)h(to)g(the)g(input)g(of)f Fp(circ2)p+Fq(,)g(and)h(results)f(in)515 3989 y(that)28 b(output)g+Fp(c)p Fq(.)602 4175 y Fp(serial)41 b(circ1)h(circ2)f(a)i(=)g(c)689+4274 y(where)776 4374 y(b)g(=)h(circ1)d(a)776 4474 y(c)i(=)h(circ2)d(b)+515 4660 y Fq(More)29 b(in)n(teresting)g(connection)h(patterns)f(app)r+(ear)h(when)g(w)n(e)g(lo)r(ok)f(at)h(recursiv)n(e)e(circuit)515+4759 y(structures.)39 b(F)-7 b(or)28 b(example,)g(instead)h(of)f(the)h+(half)g(adder)f(circuit)g(in)h(the)g Fp(addBit)d Fq(de\014ni-)515+4859 y(tion,)32 b(w)n(e)g(can)f(plug)g(in)h(an)n(y)f(other)g(circuit.)+49 b(The)32 b(result)f(consists)g(of)g(a)g Fn(r)l(ow)h+Fq(of)g(smaller)515 4959 y(circuits)27 b(\(see)h(\014gure)e(3.2)h(and)h+(3.3\).)1905 5255 y(13)p eop+%%Page: 14 15+14 14 bop 791 1119 a @beginspecial 0 @llx 0 @lly 555+@urx 163 @ury 2775 @rwi @setspecial+%%BeginDocument: Pictures/rowF.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-18.0 419.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/reencdict 12 dict def /ReEncode { reencdict begin+/newcodesandnames exch def /newfontname exch def /basefontname exch def+/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def+basefontdict { exch dup /FID ne { dup /Encoding eq+{ exch dup length array copy newfont 3 1 roll put }+{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall+newfont /FontName newfontname put newcodesandnames aload pop+128 1 255 { newfont /Encoding get exch /.notdef put } for+newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat+newfontname newfont definefont pop end } def+/isovec [+8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde+8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis+8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron+8#220 /dotlessi 8#230 /oe 8#231 /OE+8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling+8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis+8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot+8#255 /endash 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus+8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph+8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine+8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf+8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute+8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring+8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute+8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute+8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve+8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply+8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex+8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave+8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring+8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute+8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute+8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve+8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide+8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex+8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def+/Helvetica /Helvetica-iso isovec ReEncode+/Courier /Courier-iso isovec ReEncode+/Times-Italic /Times-Italic-iso isovec ReEncode+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 7975 m -1000 -1000 l 10536 -1000 l 10536 7975 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 1800 5100 m 2700 5100 l 2700 6000 l 1800 6000 l cp gs col0 s gr +% Polyline+n 3300 5100 m 4200 5100 l 4200 6000 l 3300 6000 l cp gs col0 s gr +% Polyline+ [15 45] 45 sd+n 4200 5550 m 5400 5550 l gs col0 s gr  [] 0 sd+% Polyline+n 5400 5100 m 6300 5100 l 6300 6000 l 5400 6000 l cp gs col0 s gr +% Polyline+n 6900 5100 m 7800 5100 l 7800 6000 l 6900 6000 l cp gs col0 s gr +% Polyline+gs  clippath+1677 5520 m 1773 5550 l 1677 5580 l 1815 5580 l 1815 5520 l cp+clip+n 1200 5550 m 1800 5550 l gs col0 s gr gr++% arrowhead+n 1677 5520 m 1773 5550 l 1677 5580 l 1653 5550 l 1677 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 5520 m 3273 5550 l 3177 5580 l 3315 5580 l 3315 5520 l cp+clip+n 2700 5550 m 3300 5550 l gs col0 s gr gr++% arrowhead+n 3177 5520 m 3273 5550 l 3177 5580 l 3153 5550 l 3177 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 4977 m 2250 5073 l 2220 4977 l 2220 5115 l 2280 5115 l cp+clip+n 2250 4500 m 2250 5100 l gs col0 s gr gr++% arrowhead+n 2280 4977 m 2250 5073 l 2220 4977 l 2250 4953 l 2280 4977 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 6477 m 2250 6573 l 2220 6477 l 2220 6615 l 2280 6615 l cp+clip+n 2250 6000 m 2250 6600 l gs col0 s gr gr++% arrowhead+n 2280 6477 m 2250 6573 l 2220 6477 l 2250 6453 l 2280 6477 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3780 6477 m 3750 6573 l 3720 6477 l 3720 6615 l 3780 6615 l cp+clip+n 3750 6000 m 3750 6600 l gs col0 s gr gr++% arrowhead+n 3780 6477 m 3750 6573 l 3720 6477 l 3750 6453 l 3780 6477 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3780 4977 m 3750 5073 l 3720 4977 l 3720 5115 l 3780 5115 l cp+clip+n 3750 4500 m 3750 5100 l gs col0 s gr gr++% arrowhead+n 3780 4977 m 3750 5073 l 3720 4977 l 3750 4953 l 3780 4977 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+5880 4977 m 5850 5073 l 5820 4977 l 5820 5115 l 5880 5115 l cp+clip+n 5850 4500 m 5850 5100 l gs col0 s gr gr++% arrowhead+n 5880 4977 m 5850 5073 l 5820 4977 l 5850 4953 l 5880 4977 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+5880 6477 m 5850 6573 l 5820 6477 l 5820 6615 l 5880 6615 l cp+clip+n 5850 6000 m 5850 6600 l gs col0 s gr gr++% arrowhead+n 5880 6477 m 5850 6573 l 5820 6477 l 5850 6453 l 5880 6477 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6777 5520 m 6873 5550 l 6777 5580 l 6915 5580 l 6915 5520 l cp+clip+n 6300 5550 m 6900 5550 l gs col0 s gr gr++% arrowhead+n 6777 5520 m 6873 5550 l 6777 5580 l 6753 5550 l 6777 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+8277 5520 m 8373 5550 l 8277 5580 l 8415 5580 l 8415 5520 l cp+clip+n 7800 5550 m 8400 5550 l gs col0 s gr gr++% arrowhead+n 8277 5520 m 8373 5550 l 8277 5580 l 8253 5550 l 8277 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+7380 4977 m 7350 5073 l 7320 4977 l 7320 5115 l 7380 5115 l cp+clip+n 7350 4500 m 7350 5100 l gs col0 s gr gr++% arrowhead+n 7380 4977 m 7350 5073 l 7320 4977 l 7350 4953 l 7380 4977 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+7380 6477 m 7350 6573 l 7320 6477 l 7320 6615 l 7380 6615 l cp+clip+n 7350 6000 m 7350 6600 l gs col0 s gr gr++% arrowhead+n 7380 6477 m 7350 6573 l 7320 6477 l 7350 6453 l 7380 6477 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica-iso ff 270.00 scf sf+300 5625 m+gs 1 -1 sc (carryIn) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+2100 4425 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+2100 6900 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+3600 4425 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+3600 6900 m+gs 1 -1 sc (b) col0 sh gr+/Courier-iso ff 270.00 scf sf+2175 5625 m+gs 1 -1 sc (F) col0 sh gr+/Courier-iso ff 270.00 scf sf+3675 5625 m+gs 1 -1 sc (F) col0 sh gr+/Times-Italic-iso ff 270.00 scf sf+2250 4500 m+gs 1 -1 sc (1) col0 sh gr+/Times-Italic-iso ff 270.00 scf sf+3750 4500 m+gs 1 -1 sc (2) col0 sh gr+/Times-Italic-iso ff 270.00 scf sf+3750 6975 m+gs 1 -1 sc (2) col0 sh gr+/Times-Italic-iso ff 270.00 scf sf+2250 6975 m+gs 1 -1 sc (1) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+8475 5625 m+gs 1 -1 sc (carryOut) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+5475 4425 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+5475 6900 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+7200 4425 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica-iso ff 270.00 scf sf+7200 6900 m+gs 1 -1 sc (b) col0 sh gr+/Courier-iso ff 270.00 scf sf+5775 5625 m+gs 1 -1 sc (F) col0 sh gr+/Courier-iso ff 270.00 scf sf+7275 5625 m+gs 1 -1 sc (F) col0 sh gr+/Times-Italic-iso ff 270.00 scf sf+5625 4500 m+gs 1 -1 sc (\(n-1\)) col0 sh gr+/Times-Italic-iso ff 270.00 scf sf+5625 6975 m+gs 1 -1 sc (\(n-1\)) col0 sh gr+/Times-Italic-iso ff 270.00 scf sf+7350 6975 m+gs 1 -1 sc (n) col0 sh gr+/Times-Italic-iso ff 270.00 scf sf+7350 4500 m+gs 1 -1 sc (n) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 847 1302 a Fq(Figure)27 b(3.3:)36 b(The)28+b(pattern)f Fp(row)g Fj(F)12 b Fq(,)27 b(connecting)g+Fj(n)h Fq(instances)f(of)h Fj(F)12 b Fq(.)515 1550 y(Here)27+b(is)g(ho)n(w)g(w)n(e)h(de\014ne)g(the)f Fp(row)g Fq(connection)g+(pattern.)602 1718 y Fp(row)42 b(circ)g(\(carryIn,)e([]\))130+b(=)43 b(\([],)f(carryIn\))602 1917 y(row)g(circ)g(\(carryIn,)e(a:as\))+i(=)h(\(b:bs,)e(carryOut\))689 2017 y(where)776 2117+y(\(b,)i(carry\))215 b(=)43 b(circ)f(\(carryIn,)e(a\))776+2216 y(\(bs,)i(carryOut\))e(=)j(row)g(circ)e(\(carry,)g(as\))515+2385 y Fq(Once)25 b(w)n(e)g(ha)n(v)n(e)g(made)g(this)h(de\014nition,)g+(w)n(e)g(do)f(not)h(need)f(to)h(use)f(recursion)f(an)n(ymore)g(to)515+2485 y(de\014ne)k(circuits)f(of)g(this)h(sp)r(eci\014c)g(pattern.)515+2624 y(Here)f(are)g(alternativ)n(e)f(de\014nitions)i(of)f+Fp(bitAdder)e Fq(and)i Fp(adder)p Fq(:)602 2793 y Fp(bitAdder')40+b(\(carry,)g(inps\))i(=)h(row)f(halfAdd)f(\(carry,)g(inps\))602+2892 y(adder')172 b(\(carry,)40 b(inps\))i(=)h(row)f(fullAdd)f+(\(carry,)g(inps\))515 3061 y Fq(Doing)33 b(so)g(not)h(only)f(mak)n(es)+g(the)h(circuit)f(descriptions)g(shorter.)54 b(F)-7 b(or)33+b(someb)r(o)r(dy)g(who)515 3160 y(kno)n(ws)21 b(ho)n(w)g(the)i(pattern)+f Fp(row)e Fq(is)i(de\014ned,)i(it)e(is)g(m)n(uc)n(h)g(easier)f(to)h+(understand)g(the)g(circuit)515 3260 y(de\014nition.)36+b(It)27 b(is)f(also)f(v)n(ery)f(con)n(v)n(enien)n(t)h(to)h(b)r(e)h+(able)e(to)h(mix)g(these)g(t)n(w)n(o)g(di\013eren)n(t)g(st)n(yles)515+3360 y(of)h(descriptions.)515 3499 y(Note)f(that)g(the)g(reason)e(wh)n+(y)h(w)n(e)h(c)n(hose)f(the)h(input)g(to)g Fp(fullAdd)d+Fq(to)j(ha)n(v)n(e)e(the)i(particular)515 3599 y(form)32+b(it)h(has)f(is)h(b)r(ecause)f(w)n(e)g(w)n(an)n(ted)g(it)h(to)f(b)r(e)h+(used)g(with)g Fp(row)p Fq(.)51 b(W)-7 b(e)33 b(will)g(alw)n(a)n(ys)d+(use)515 3698 y(that)i(con)n(v)n(en)n(tion,)f(so)h(that)g(it)g(is)g+(easier)e(to)i(use)g(circuits)f(with)i(prede\014ned)f(connection)515+3798 y(patterns.)515 3937 y(Ev)n(en)26 b(shorter)h(de\014nitions)g(of)h+(the)g(same)f(circuits)g(are:)602 4106 y Fp(bitAdder')40+b(=)j(row)f(halfAdd)602 4206 y(adder')172 b(=)43 b(row)f(fullAdd)515+4374 y Fq(Note)27 b(that)h(the)g Fn(typ)l(e)g Fq(of)g+Fp(adder')d Fq(is)i(sligh)n(tly)g(di\013eren)n(t)h(from)f+Fp(adder)p Fq(,)f(see)h(exercise)g(3.3.)515 4685 y Fm(3.3)135+b(Arithmetic)515 4907 y Fq(In)27 b(La)n(v)-5 b(a,)26+b(w)n(e)h(can)g(not)g(only)g(deal)g(with)h(lo)n(w-lev)n(el)e(wire)g(t)n+(yp)r(es)i(lik)n(e)e(bits,)i(and)f(gates)f(lik)n(e)515+5006 y Fp(and2)e Fq(and)h Fp(xor2)p Fq(,)g(but)h(also)f(with)h(more)f+(abstract)g(wire)g(t)n(yp)r(es)h(and)g(gates.)35 b(One)25+b(of)h(these)1905 5255 y(14)p eop+%%Page: 15 16+15 15 bop 515 523 a Fq(t)n(yp)r(es)27 b(is)h(in)n(tegers.)515+663 y(On)h(these)g(in)n(tegers,)g(w)n(e)g(ha)n(v)n(e)f(op)r(erations)g+(corresp)r(onding)f(to)i(abstract)f(gates)h(o)n(v)n(er)e(in-)515+762 y(tegers.)36 b(A)27 b(list)h(of)g(these)g(gates)e(can)h(b)r(e)h+(found)g(in)g(app)r(endix)g(A.)515 902 y(A)33 b(simple)g(circuit)g+(using)g(these)g(arithmetical)g(gates)f(is)h(called)g+Fp(numBreak)p Fq(.)50 b(It)33 b(tak)n(es)f(a)515 1001+y(n)n(um)n(b)r(er)e(as)h(input,)h(and)f(has)g(a)f(pair)g(of)h(a)g(bit)g+(and)g(a)g(n)n(um)n(b)r(er)f(as)h(output.)47 b(The)31+b(bit)h(in)515 1101 y(the)i(pair)g(corresp)r(onds)e(to)i(the)g(v)-5+b(alue)34 b(of)g(the)h(\014rst)f(binary)f(digit)h(of)g(the)h(n)n(um)n+(b)r(er;)i(the)515 1200 y(resulting)27 b(n)n(um)n(b)r(er)g(is)h(the)g+(input)g(n)n(um)n(b)r(er)f(divided)h(b)n(y)f(2.)602 1386+y Fp(numBreak)40 b(num)j(=)g(\(bit,)e(num'\))689 1486+y(where)776 1586 y(digit)h(=)h(imod)f(\(num,)f(2\))776+1685 y(bit)130 b(=)43 b(int2bit)e(digit)776 1785 y(num')86+b(=)43 b(idiv)f(\(num,)f(2\))515 1971 y Fq(The)24 b(circuit)f+Fp(int2bit)e Fq(con)n(v)n(erts)h(a)i(n)n(um)n(b)r(er)f(in)n(to)h(a)f+(bit,)i(b)n(y)f(transforming)e(a)h(0)h(in)n(to)f Fp(low)p+Fq(,)515 2071 y(and)k(an)n(y)g(other)g(n)n(um)n(b)r(er)g(in)n(to)h+Fp(high)p Fq(.)515 2210 y(W)-7 b(e)31 b(can)g(use)g(this)h+(arithmetical)f(circuit)g(to)g(build)h(a)f(circuit)g(that)h(con)n(v)n+(erts)d(a)i(n)n(um)n(b)r(er)515 2310 y(in)n(to)36 b(a)h(binary)f(n)n+(um)n(b)r(er,)j(that)e(is,)j(a)c(list)h(of)g(bits.)65+b(The)37 b(circuit)g(tak)n(es)f(a)g(parameter,)515 2409+y(corresp)r(onding)e(to)i(the)h(size)f(of)g(the)h(list)f(it)h(has)f(to)+g(pro)r(duce,)i(and)e(has)g(as)g(input)h(the)515 2509+y(n)n(um)n(b)r(er)27 b(that)h(needs)f(to)h(b)r(e)g(con)n(v)n(erted.)515+2648 y(The)d(con)n(v)n(erter)f Fp(int2bin)f Fq(con)n(v)n(erts)h(an)h+(in)n(teger)g(to)g(a)h(binary)f(n)n(um)n(b)r(er.)35 b(It)26+b(has)g(an)f(extra)515 2748 y Fn(p)l(ar)l(ameter)p Fq(,)32+b(whic)n(h)f(sp)r(eci\014es)f(the)i(n)n(um)n(b)r(er)e(of)h(bits)g(the)g+(binary)f(n)n(um)n(b)r(er)h(should)f(ha)n(v)n(e.)515+2848 y(Note)25 b(again)f(that)h(parameters)e(of)j(circuits)e(are)g+(di\013eren)n(t)i(from)e(inputs;)j Fp(int2bin)22 b Fq(is)j(not)515+2947 y(really)g(a)h(circuit,)h(but)g Fp(int2bin)40 b(16)26+b Fq(is.)37 b(W)-7 b(e)26 b(de\014ne)h(this)g(circuit)f(b)n(y)g+(recursion)f(o)n(v)n(er)g(the)515 3047 y(size)i(of)h(the)g(binary)e(n)n+(um)n(b)r(er.)602 3233 y Fp(int2bin)41 b(0)i(num)f(=)h([])602+3432 y(int2bin)e(n)i(num)f(=)h(\(bit:bits\))689 3532+y(where)776 3631 y(\(bit,num'\))d(=)j(numBreak)d(num)776+3731 y(bits)304 b(=)43 b(int2bin)e(\(n-1\))g(num')515+3917 y Fq(Other)27 b(arithmetical)g(gates)g(include)g+Fp(plus)p Fq(,)g Fp(times)p Fq(,)e(etc.)515 4056 y(Here)i(are)g(some)g+(example)g(sim)n(ulations)g(of)g(these)h(circuits:)602+4242 y Fp(Main>)41 b Fl(simulate)g(numBreak)f(7)602 4342+y Fp(\(high,3\))602 4541 y(Main>)h Fl(simulate)g(\(int2bin)f(3\))j(7)+602 4641 y Fp([high,)e(high,)h(high])1905 5255 y Fq(15)p+eop+%%Page: 16 17+16 16 bop 515 523 a Fm(3.4)135 b(Compilation)515 745+y Fq(As)38 b(so)r(on)f(as)g(w)n(e)g(start)g(writing)h(bigger)e+(circuits,)k(the)f(need)e(migh)n(t)h(arise)f(to)g Fn(c)l(ompile)515+844 y Fq(them.)48 b(So)31 b(far,)g(w)n(e)g(ha)n(v)n(e)f(only)h(used)g+(an)g(in)n(terpreter,)g(whic)n(h)g(can)g(b)r(e)h(a)e(little)i(bit)g+(slo)n(w)515 944 y(for)25 b(larger)f(pro)5 b(jects.)35+b(Compiling)25 b(can)h(b)r(e)g(done)f(b)n(y)h(running)f(the)h+Fp(lava)e Fq(command)i(with)515 1044 y(the)i(option)f+Fp(-c)p Fq(.)515 1183 y(But)32 b(\014rst,)g(w)n(e)f(m)n(ust)h(sp)r+(ecify)f(what)h(w)n(e)f(w)n(an)n(t)g(the)h(compiled)f(program)f(to)h+(do.)48 b(W)-7 b(e)32 b(do)515 1283 y(this)23 b(b)n(y)f(making)g(a)g+(de\014nition)h(for)f(the)h(function)h Fp(main)d Fq(in)i(the)g(\014le)g+(w)n(e)f(are)g(w)n(orking)f(with.)515 1382 y(F)-7 b(or)27+b(example,)g(if)h(w)n(e)f(w)n(an)n(t)g(to)h(sim)n(ulate)f(an)g(adder,)g+(w)n(e)g(migh)n(t)h(de\014ne:)602 1561 y Fp(main)42 b(=)h(print)f+(\(simulate)d(adder)j(\(high,\([high,low)o(],)o([lo)o(w,)o(hig)o(h])o+(\)\))o(\))515 1740 y Fq(Then,)28 b(w)n(e)f(run)g(the)h(La)n(v)-5+b(a)27 b(compiler,)g(b)n(y)g(in)n(v)n(oking:)602 1918+y Fp(\045)43 b Fl(lava)f(-c)h(First)602 2018 y Fp(--)g(Lava2000)d+(----------------)o(--)o(---)o(--)o(---)o(--)o(---)o(--)o(--)o(---)o+(--)o(---)o(--)o(--)o(---)o(-)602 2118 y(Compiling)g(First)h(...)602+2217 y(...)515 2396 y Fq(The)23 b(compiler)g(has)h(no)n(w)f(pro)r+(duced)g(an)g(executable)h(program,)e(called)h Fp(First)p+Fq(,)g(whic)n(h)g(w)n(e)515 2495 y(can)k(run)g(b)n(y)h(sa)n(ying:)602+2674 y Fp(\045)43 b Fl(First)602 2774 y Fp(\([high,low],high)o(\))515+2952 y Fq(F)-7 b(or)27 b(more)g(con)n(trol)f(o)n(v)n(er)g(the)i+(compilation)f(pro)r(cess,)f(see)h(app)r(endix)h(A.1.)515+3265 y Fm(3.5)135 b(Exercises)575 3478 y Fq(3.1)40 b(De\014ne)27+b(a)f(bit)h(subtractor,)e(called)h Fp(bitSubber)p Fq(,)d(whic)n(h)k+(tak)n(es)e(a)h(bit)h(and)f(a)g(binary)722 3578 y(n)n(um)n(b)r(er)i(as)+f(input,)h(and)f(subtracts)g(the)h(bit)g(from)g(the)g(binary)f(n)n(um)n+(b)r(er.)575 3740 y(3.2)40 b(De\014ne)29 b(a)f(binary)g(adder,)g+(called)g Fp(adder2)p Fq(,)e(whic)n(h)i(do)r(es)g(not)h(tak)n(e)e(in)i+(a)f(carry)e(bit,)722 3840 y(and)i(thro)n(ws)e(a)n(w)n(a)n(y)g(the)i+(resulting)f(carry)-7 b(.)575 4002 y(3.3)40 b(What)e(is)g(the)g+(di\013erence)g(b)r(et)n(w)n(een)g Fp(adder)d Fq(and)j+Fp(adder')p Fq(?)65 b(Hin)n(t:)58 b(lo)r(ok)37 b(at)h(the)722+4102 y(t)n(yp)r(es)28 b(of)f(the)h(inputs.)575 4264 y(3.4)40+b(De\014ne)28 b(a)g(circuit)f Fp(bin2int)p Fq(,)e(whic)n(h)j(con)n(v)n+(erts)d(a)j(bit)g(v)n(ector)e(in)n(to)h(an)h(in)n(teger.)575+4427 y(3.5)40 b(De\014ne)29 b(the)g(circuit)f Fp(zipp)p+Fq(,)f(whic)n(h)i(tak)n(es)e(a)h(pair)g(of)g(list)h(as)f(inputs)h(and)f+(pro)r(duces)722 4526 y(a)f(list)h(of)g(pairs,)f(one)g(b)n(y)g(one)g+(group)r(ed)g(together.)809 4717 y Fp(Main>)42 b Fl(simulate)e(zipp)i+(\([low,high,low],[)o(hi)o(gh)o(,hi)o(gh)o(,lo)o(w])o(\))809+4816 y Fp([\(low,high\),\(high)o(,hi)o(gh)o(\),\()o(lo)o(w,)o(low)o+(\)])722 5006 y Fq(Also)28 b(de\014ne)f(the)h(circuit)g+Fp(unzipp)p Fq(,)d(whic)n(h)j(is)f(the)h(in)n(v)n(erse)e(of)i+Fp(zipp)p Fq(.)1905 5255 y(16)p eop+%%Page: 17 18+17 17 bop 575 523 a Fq(3.6)40 b(De\014ne)29 b(the)f(circuit)g+Fp(pair)p Fq(,)f(whic)n(h)h(tak)n(es)f(a)h(list)g(as)f(input)i(and)f+(pro)r(duces)f(a)h(list)g(of)722 623 y(pairs,)f(with)h(the)g(neigh)n(b)+r(ours)e(group)r(ed)h(together.)809 822 y Fp(Main>)42+b Fl(simulate)e(pair)i(\([low,high,low,hi)o(gh)o(,h)o(igh)o(,l)o(ow])o+(\))809 922 y Fp([\(low,high\),\(low,)o(hig)o(h\))o(,\(h)o(ig)o(h,)o+(low)o(\)])722 1121 y Fq(Also)28 b(de\014ne)f(the)h(circuit)g+Fp(unpair)p Fq(,)d(whic)n(h)j(is)f(the)h(in)n(v)n(erse)e(of)i+Fp(pair)p Fq(.)575 1287 y(3.7)40 b(De\014ne)i(a)f(connection)g(pattern)+g(called)g Fp(par)f Fq(whic)n(h)i(turns)f(t)n(w)n(o)f(circuits,)45+b(eac)n(h)722 1386 y(taking)33 b(in)h(one)g(input)g(and)g(ha)n(ving)e+(one)h(output,)j(in)n(to)e(one)f(circuit)g(taking)h(in)f(a)722+1486 y(pair)27 b(of)h(inputs)g(and)f(ha)n(ving)g(a)g(pair)g(of)g+(outputs.)575 1652 y(3.8)40 b(De\014ne,)31 b(using)e(recursion,)f(a)h+(binary)g(m)n(ultiplier.)42 b(What)30 b(is)f(the)h(recursiv)n(e)e+(struc-)722 1752 y(ture?)575 1918 y(3.9)40 b(Lo)r(oking)20+b(at)h(the)h(de\014nition)g(of)f Fp(row)p Fq(,)g(de\014ne)h(a)f+(connection)g(pattern)g(called)f Fp(column)722 2017 y+Fq(whic)n(h)32 b(carries)e(the)j(righ)n(t)e(part)g(of)h(the)g(input)h+(and)f(the)g(left)h(part)e(of)h(the)h(output)722 2117+y(through.)722 2250 y(\(*\))28 b(Can)f(y)n(ou)g(de\014ne)h+Fp(column)d Fq(in)j(terms)f(of)h Fp(row)p Fq(?)533 2416+y(3.10)40 b(De\014ne)33 b(a)f(connection)g(pattern)g(called)g+Fp(grid)p Fq(,)g(whic)n(h)h(puts)f(a)g(n)n(um)n(b)r(er)g(of)h(copies)+722 2516 y(of)g(circuits)g(in)g(a)f(matrix.)53 b(The)33+b(left)g(parts)g(of)g(the)g(inputs)g(are)f(carried)g(through)722+2615 y(from)22 b(left)h(to)f(righ)n(t,)h(and)f(the)g(righ)n(t)g(parts)f+(of)h(the)h(inputs)g(and)f(outputs)g(are)f(carried)722+2715 y(through)27 b(from)g(top)h(to)f(b)r(ottom.)722+2848 y(Hin)n(t:)38 b(think)28 b(of)f(a)h(grid)e(as)h(a)h(ro)n(w)e(of)h+(columns)h(\(or)f(a)g(column)g(of)h(ro)n(ws\).)533 3014+y(3.11)40 b(Can)31 b(y)n(ou)f(think)i(of)f(a)g(useful)g(circuit)g(that)+h(mak)n(es)e(use)h(of)g(the)g Fp(grid)f Fq(connection)722+3113 y(pattern?)533 3279 y(3.12)40 b(Lo)r(oking)22 b(at)h(the)g+(recursiv)n(e)e(de\014nition)i(of)g(an)f(adder,)h(de\014ne)g(a)f+(simple)h(subtractor.)722 3379 y(It)30 b(will)g(only)f(ha)n(v)n(e)f(to)+i(subtract)f(smaller)f(n)n(um)n(b)r(ers)h(from)g(bigger)f(n)n(um)n(b)r+(ers.)42 b(Can)722 3479 y(y)n(ou)27 b(use)h(an)n(y)f(of)h(the)h+(connection)e(patterns)h(describ)r(ed)f(in)i(this)f(c)n(hapter)f(to)h+(mak)n(e)722 3578 y(a)f(non-recursiv)n(e)f(description?)533+3744 y(3.13)40 b(De\014ne)35 b(a)f(sw)n(app)r(er,)h(a)f(circuit)g(that)+h(tak)n(es)e(in)i(t)n(w)n(o)e(inputs:)51 b(an)34 b(activ)-5+b(ate)34 b(signal)722 3844 y(and)d(a)g(pair)g(of)g(signals,)g(and)h+(the)f(output)h(is)f(a)g(pair)g(of)g(signals.)47 b(If)32+b(the)f(activ)-5 b(ate)722 3944 y(signal)32 b(is)g(high,)h(the)g(order)+d(of)j(the)f(input)h(pair)f(is)g(sw)n(app)r(ed,)h(otherwise)e(is)h(sta)+n(ys)722 4043 y(the)c(same.)809 4242 y Fp(swapper)41+b(\(swap,)g(\(a,)i(b\)\))f(=)h(\(x,)f(y\))897 4342 y(where)f(...)533+4541 y Fq(3.14)f(De\014ne)29 b(a)f(comparator,)e(a)i(circuit)g(that)h+(tak)n(es)e(in)i(t)n(w)n(o)e(binary)h(n)n(um)n(b)r(ers)f(of)i(equal)722+4641 y(length)c(and)g(tells)g(y)n(ou)f(if)h(the)h(left)f(one)g(is)f+(less)h(than)g(or)f(equal)g(than)h(the)g(righ)n(t)f(one.)533+4807 y(3.15)40 b(Implemen)n(t)34 b(a)f(binary)g(sorter.)53+b(It)34 b(tak)n(es)e(as)h(an)g(input)i(t)n(w)n(o)d(binary)h(n)n(um)n(b)+r(ers)g(of)722 4907 y(equal)27 b(length,)h(and)g(outputs)f(them)i(in)e+(the)h(correct)f(order.)1905 5255 y(17)p eop+%%Page: 18 19+18 18 bop 515 1186 a Fo(Chapter)64 b(4)515 1641 y Fs(V)-19+b(eri\014cation)515 2112 y Fq(In)32 b(this)h(c)n(hapter)f(w)n(e)g+(describ)r(e)g(ho)n(w)f(w)n(e)i(can)f(de\014ne)g(prop)r(erties)g(of)g+(circuits,)h(and)g(ho)n(w)515 2212 y(w)n(e)27 b(can)g(formally)g(v)n+(erify)g(these)g(prop)r(erties)g(using)g(a)g(theorem)h(pro)n(v)n(er.)+515 2526 y Fm(4.1)135 b(Simple)46 b(Prop)t(erties)515+2748 y Fq(The)25 b(main)f(kind)i(of)e(prop)r(erties)g(of)h(circuits)g+(w)n(e)f(deal)h(with)g(in)g(La)n(v)-5 b(a)24 b(are)g(so-called)f+Fn(safety)515 2847 y(pr)l(op)l(erties)p Fq(.)45 b(These)29+b(are)g(prop)r(erties)g(whic)n(h)g(can)h(b)r(e)g(de\014ned)g(in)g(suc)n+(h)g(a)f(w)n(a)n(y)g(that)h(they)515 2947 y(state)d(that)h(some)f+(condition)g(is)h Fn(always)h Fq(true)f(\(or,)f(equiv)-5+b(alen)n(tly)e(,)27 b(nev)n(er)g(false\).)515 3087 y(Here)f(is)g(an)f+(example;)i(a)f(prop)r(ert)n(y)f(that)h(c)n(hec)n(ks)f(that)h(the)h+(outputs)f(of)h(a)e(half)i(adder)e(are)515 3186 y(nev)n(er)h(b)r(oth)i+(true.)602 3372 y Fp(prop_HalfAddOutp)o(ut)o(Nev)o(er)o(Bot)o(hT)o(ru)o+(e)38 b(\(a,)k(b\))h(=)g(ok)689 3472 y(where)776 3571+y(\(sum,)f(carry\))f(=)i(halfAdd)e(\(a,)h(b\))776 3671+y(ok)479 b(=)43 b(nand2)f(\(sum,)f(carry\))515 3857 y+Fq(Note)28 b(that)h(this)g(prop)r(ert)n(y)e(lo)r(oks)h(prett)n(y)g(m)n+(uc)n(h)h(lik)n(e)f(a)g(normal)g(circuit)g(de\014nition,)h(and)515+3957 y(in)f(fact)f(it)h(is.)515 4096 y(The)e(actual)g(v)n+(eri\014cation)e(question)i(is:)36 b(do)r(es)26 b(this)h(prop)r(ert)n+(y)e(circuit)h(alw)n(a)n(ys)e(yield)i(true,)515 4196+y(no)21 b(matter)h(what)g(the)h(input)g(is?)35 b(T)-7+b(o)21 b(answ)n(er)g(the)h(question,)h(w)n(e)f(use)g(the)g(La)n(v)-5+b(a)21 b(op)r(eration)515 4295 y Fp(verify)p Fq(.)602+4481 y Fp(Main>)41 b Fl(verify)h(prop_HalfAddOut)o(pu)o(tNe)o(ve)o(rBo)+o(th)o(Tru)o(e)602 4581 y Fp(Proving:)e(...)j(Valid.)515+4767 y Fq(This)30 b(pro)r(cess)f(w)n(orks)f(in)j(the)f(follo)n(wing)g+(w)n(a)n(y)-7 b(.)43 b(Just)30 b(as)g(w)n(e)g(can)f(generate)g(VHDL)i+(from)515 4867 y(a)36 b(circuit)g(description,)i(w)n(e)e(can)g(also)f+(generate)g(a)h(logical)f(form)n(ula)h(represen)n(ting)f(the)515+4966 y(circuit.)j(This)27 b(logical)g(form)n(ula)g(is)h(then)g(giv)n+(en)f(to)h(an)g(external)f(theorem)g(pro)n(v)n(er)f(whic)n(h)1905+5255 y(18)p eop+%%Page: 19 20+19 19 bop 515 523 a Fq(will)34 b(pro)n(v)n(e)f(\(or)h(dispro)n(v)n(e\))+f(the)i(v)-5 b(alidit)n(y)35 b(of)f(the)h(form)n(ula.)56+b(The)35 b(result)f(is)h(then)g(tak)n(en)515 623 y(bac)n(k)26+b(in)n(to)i(La)n(v)-5 b(a.)515 762 y(Here)23 b(is)h(another)f(example;)+h(w)n(e)g(form)n(ulate)f(that)h(a)f(full)h(adder)f(do)r(es)h(not)f+(care)g(ab)r(out)h(the)515 862 y(order)29 b(of)i(the)g(argumen)n(ts,)f+(it)h(will)g(alw)n(a)n(ys)e(pro)r(duce)h(the)h(same)g(result.)46+b(This)30 b(prop)r(ert)n(y)515 961 y(is)d(in)h(general)e(called)i+Fn(c)l(ommutativity)p Fq(.)602 1135 y Fp(prop_FullAddComm)o(ut)o(ati)o+(ve)37 b(\(c,)42 b(\(a,)h(b\)\))f(=)h(ok)689 1234 y(where)776+1334 y(out1)f(=)h(fullAdd)e(\(c,)h(\(a,)h(b\)\))776 1434+y(out2)f(=)h(fullAdd)e(\(c,)h(\(b,)h(a\)\))776 1533 y(ok)130+b(=)43 b(out1)f(<==>)g(out2)515 1707 y Fq(Note)31 b(that,)i(since)e(w)n+(e)f(are)h(not)g(in)n(terested)g(in)g(the)h(exact)f(shap)r(e)g(of)g+(the)h(output)f(of)h(the)515 1806 y(t)n(w)n(o)26 b(full)i(adders,)e(w)n+(e)h(can)f(just)i(giv)n(e)e(a)h(name)g(to)g(the)g(whole)g(output,)h(in)+f(this)g(case)g Fp(out1)515 1906 y Fq(and)d Fp(out2)p+Fq(.)34 b(Another)24 b(thing)g(to)g(notice)g(is)g(that)h(w)n(e)f(use)g+(the)g(general)f(equalit)n(y)h Fp(<==>)p Fq(.)34 b(W)-7+b(e)515 2006 y(can)27 b(also)f(use)i(the)g(circuit)f+Fp(equal)f Fq(for)h(that.)515 2317 y Fm(4.2)135 b(Quan)l(ti\014cation)+515 2539 y Fq(The)25 b(comm)n(utativit)n(y)g(prop)r(ert)n(y)g(is)g(not)+h(only)f(true)h(for)f(full)h(adders,)f(but)h(also)f(in)g(general)515+2639 y(for)i(binary)g(adders.)36 b(Here)27 b(is)g(ho)n(w)g(w)n(e)g+(state)h(that)g(prop)r(ert)n(y:)602 2812 y Fp(prop_AdderCommut)o(at)o+(ive)37 b(\(as,)42 b(bs\))g(=)h(ok)689 2912 y(where)776+3011 y(out1)f(=)h(adder2)e(\(as,)h(bs\))776 3111 y(out2)g(=)h(adder2)e+(\(bs,)h(as\))776 3211 y(ok)130 b(=)43 b(out1)f(<==>)g(out2)515+3384 y Fq(Note)27 b(that)g(w)n(e)f(use)h(the)g(adder)f+Fp(adder2)e Fq(w)n(e)i(de\014ned)i(in)f(exercise)e(3.2)h(\(the)h(answ)n+(er)f(is)g(on)515 3484 y(page)g(80\).)515 3623 y(The)34+b(problem)f(is)h(that)h(this)f(prop)r(ert)n(y)f(holds)h(for)f+Fn(al)t(l)i Fq(circuit)f(sizes,)h(but)g(w)n(e)f(can)f(only)515+3723 y(v)n(erify)f(it)i(for)f(sp)r(eci\014c)h(sizes!)54+b(This)33 b(is)h(b)r(ecause)f(it)h(is)f(v)n(ery)f(hard)h(to)g(v)n+(erify)g(prop)r(erties)515 3822 y(automatically)26 b(for)h(all)h+(sizes.)515 3962 y(So,)38 b(instead)e(of)g(v)n(erifying)e(it)j(for)e+(all)h(sizes,)i(w)n(e)d(will)i(pic)n(k)e(a)h(sp)r(eci\014c)g(size)g+(and)g(v)n(erify)515 4062 y(the)27 b(prop)r(ert)n(y)f(for)g(those.)36+b(Th)n(us,)27 b(w)n(e)f(de\014ne)h(a)g(new)g(prop)r(ert)n(y)-7+b(,)26 b(whic)n(h)g(is)h(explicit)g(ab)r(out)515 4161+y(what)g(size)h(of)f(input)i(w)n(e)e(w)n(an)n(t)g(to)g(v)n(erify)g(the)+h(prop)r(ert)n(y.)602 4335 y Fp(prop_AdderCommut)o(at)o(ive)o(_F)o(orS)+o(iz)o(e)37 b(n)44 b(=)689 4434 y(forAll)d(\(list)h(n\))g($)i(\\as)e+(->)776 4534 y(forAll)f(\(list)h(n\))h($)g(\\bs)f(->)863+4634 y(prop_AdderCommuta)o(tiv)o(e)37 b(\(as,)42 b(bs\))515+4807 y Fq(This)33 b(prop)r(ert)n(y)e(means:)47 b(\\for)32+b(all)h(lists)g(of)g(size)f Fj(n)h Fq(called)f Fp(as)p+Fq(,)i(and)f(for)f(all)h(lists)g(of)f(size)515 4907 y+Fj(n)27 b Fq(called)h Fp(bs)p Fq(,)f(the)h(prop)r(ert)n(y)f(that)h(the)+g(adder)g(is)f(comm)n(utativ)n(e)g(holds)h(for)f Fp(\(as,)42+b(bs\))27 b Fq(as)515 5006 y(input".)1905 5255 y(19)p+eop+%%Page: 20 21+20 20 bop 515 523 a Fq(No)n(w,)35 b(w)n(e)f(can)f(v)n(erify)h(the)g+(prop)r(ert)n(y)f(using)h Fp(verify)p Fq(.)54 b(W)-7+b(e)34 b(can)g(of)g(course)e(do)i(this)h(for)515 623+y(more)27 b(than)g(one)g(size.)602 809 y Fp(Main>)41+b Fl(verify)h(\(prop_AdderComm)o(ut)o(ati)o(ve)o(_Fo)o(rS)o(ize)37+b(2\))602 908 y Fp(Proving:)j(...)j(Valid.)602 1108 y(Main>)e+Fl(verify)h(\(prop_AdderComm)o(ut)o(ati)o(ve)o(_Fo)o(rS)o(ize)37+b(4\))602 1207 y Fp(Proving:)j(...)j(Valid.)602 1406+y(Main>)e Fl(verify)h(\(prop_AdderComm)o(ut)o(ati)o(ve)o(_Fo)o(rS)o+(ize)37 b(32\))602 1506 y Fp(Proving:)j(...)j(Valid.)515+1820 y Fm(4.3)135 b(General)46 b(Prop)t(erties)515 2042+y Fq(General)22 b(prop)r(erties)g(are)g(prop)r(erties)g(that)h(are)f+(parametrized)g(b)n(y)h(one)f(or)g(more)g(circuits.)515+2142 y(They)31 b(can)h(b)r(e)g(de\014ned)g(just)h(lik)n(e)e(connection)+h(patterns.)49 b(Here)32 b(is)f(a)h(general)e(prop)r(ert)n(y)515+2241 y(that)e(p)r(oses)f(the)h(question)f(if)h(the)g(t)n(w)n(o)f(giv)n+(en)g(circuits)g(are)f(equiv)-5 b(alen)n(t.)602 2427+y Fp(prop_Equivalent)37 b(circ1)42 b(circ2)f(a)i(=)h(ok)689+2527 y(where)776 2627 y(out1)e(=)h(circ1)f(a)776 2726+y(out2)g(=)h(circ2)f(a)776 2826 y(ok)130 b(=)43 b(out1)f(<==>)g(out2)+515 3012 y Fq(The)27 b(follo)n(wing)g(prop)r(ert)n(y)f(c)n(hec)n(ks)h+(if)h(a)f(giv)n(en)g(circuit)g(is)h(comm)n(utativ)n(e.)602+3198 y Fp(prop_Commutative)37 b(circ)42 b(\(as,)g(bs\))g(=)h(ok)689+3297 y(where)776 3397 y(out1)f(=)h(circ)f(\(as,)g(bs\))776+3497 y(out2)g(=)h(circ)f(\(bs,)g(as\))776 3596 y(ok)130+b(=)43 b(out1)f(<==>)g(out2)515 3782 y Fq(Of)30 b(course,)f(the)h+(circuits)g(that)g(one)f(uses)h(to)g(instan)n(tiate)f(these)h(prop)r+(erties)f(ha)n(v)n(e)g(to)h(b)r(e)515 3882 y(of)d(the)h(righ)n(t)f+(shap)r(e)h(\(t)n(yp)r(e\).)515 4196 y Fm(4.4)135 b(Helping)46+b(V)-11 b(eri\014cation)515 4418 y Fq(The)23 b(form)n(ulas)f(that)i(w)n+(e)f(generate)f(can)h(sometimes)g(b)r(e)h(quite)g(hard.)34+b(It)24 b(is)g(often)f(the)h(case)515 4518 y(that,)36+b(the)e(larger)e(the)i(form)n(ula,)h(the)f(harder)f(it)h(is)g(to)g(v)n+(erify)f(it.)56 b(So)34 b(sometimes,)h(it)f(is)515 4617+y(necessary)26 b(to)h(help)h(the)g(pro)n(v)n(er)d(a)j(bit.)515+4757 y(One)d(w)n(a)n(y)e(of)i(doing)g(this)g(is)g(to)g(split)h(up)f(a)g+(large)f(pro)r(of)g(in)n(to)h(a)g(n)n(um)n(b)r(er)f(of)h(smaller)g+(ones.)515 4856 y(Then,)37 b(w)n(e)f(can)f(pro)n(v)n(e)f(these)h(parts)+g(one)g(b)n(y)g(one,)j(and)d(for)g(eac)n(h)g(new)g(pro)r(of,)i(w)n(e)e+(can)515 4956 y(assume)27 b(that)h(the)f(parts)g(that)h(are)f(already)f+(pro)n(v)n(ed)g(are)h(actually)g(true.)1905 5255 y(20)p+eop+%%Page: 21 22+21 21 bop 515 523 a Fq(In)30 b(La)n(v)-5 b(a,)30 b(w)n(e)h(can)f(do)g+(this)h(b)n(y)f(v)n(erifying)f(not)i(just)g Fn(one)f+Fq(question,)h(but)g(a)f(whole)g(list)h(of)515 623 y(questions.)52+b(F)-7 b(or)33 b(example,)h(to)f(v)n(erify)f(that)i(t)n(w)n(o)e+(circuits)h(ha)n(v)n(e)e(the)j(same)e(output,)j(w)n(e)515+722 y(can)e(pro)n(v)n(e)e(this)j(pin-b)n(y-pin)f(instead)g(of)g(at)g+(one)g(go.)53 b(T)-7 b(o)33 b(do)g(this,)i(w)n(e)e(ha)n(v)n(e)f(to)h+(de\014ne)515 822 y Fn(one-by-one)d(e)l(quality)p Fq(.)602+1008 y Fp(equalOneByOne)38 b(\([],)129 b([]\))h(=)43+b([])602 1207 y(equalOneByOne)38 b(\([],)129 b(y:ys\))42+b(=)h([low])602 1406 y(equalOneByOne)38 b(\(x:xs,)j([]\))130+b(=)43 b([low])602 1606 y(equalOneByOne)38 b(\(x:xs,)j(y:ys\))h(=)h(eq)+g(:)g(eqs)689 1705 y(where)776 1805 y(eq)87 b(=)43 b(equal)e(\(x,)i+(y\))776 1905 y(eqs)g(=)g(equalOneByOne)38 b(\(xs,)k(ys\))515+2090 y Fq(Note)27 b(that)h(the)h(comparison)d(fails)h(if)h(the)g(lists)+g(are)f(not)g(of)h(the)g(same)f(length.)38 b(T)-7 b(o)27+b(c)n(hec)n(k)515 2190 y(that)h(a)f(binary)g(adder)f(is)i(comm)n+(utativ)n(e,)f(w)n(e)g(can)g(no)n(w)g(instead)h(sa)n(y:)602+2376 y Fp(prop_AdderCommut)o(at)o(ive)o(')37 b(\(as,)42+b(bs\))h(=)g(oks)689 2476 y(where)776 2575 y(out1)f(=)h(adder2)e(\(as,)+h(bs\))776 2675 y(out2)g(=)h(adder2)e(\(bs,)h(as\))776+2775 y(oks)86 b(=)43 b(equalOneByOne)c(\(out1,)i(out2\))602+2974 y(prop_AdderCommut)o(at)o(ive)o(_F)o(orS)o(iz)o(e')c(n)43+b(=)689 3073 y(forAll)e(\(list)h(n\))g($)i(\\as)e(->)776+3173 y(forAll)f(\(list)h(n\))h($)g(\\bs)f(->)863 3273+y(prop_AdderCommuta)o(tiv)o(e')37 b(\(as,)42 b(bs\))515+3459 y Fq(No)n(w)30 b(w)n(e)g(ha)n(v)n(e)f(de\014ned)i(a)f(prop)r(ert)n+(y)g(that)h(p)r(oses)f(a)g(list)h(of)f(questions,)h(w)n(e)f(can)g(use)h+(the)515 3558 y(theorem)c(pro)n(v)n(er)e(to)j(pro)n(v)n(e)e(all)h(of)h+(them.)602 3744 y Fp(Lava>)41 b Fl(verify)h(\(prop_AdderComm)o(ut)o+(ati)o(ve)o(_Fo)o(rS)o(ize)o(')37 b(4\))602 3844 y Fp(Proving:)j(pin)j+(1)g(...)f(Valid.)602 3944 y(Proving:)e(pin)j(2)g(...)f(Valid.)602+4043 y(Proving:)e(pin)j(3)g(...)f(Valid.)602 4143 y(Proving:)e(pin)j(4)+g(...)f(Valid.)602 4242 y(Proving:)e(pin)j(5)g(...)f(Valid.)602+4342 y(--)602 4442 y(Result:)f(Valid.)515 4628 y Fq(Note)27+b(that)h(in)g(the)g(pro)r(of)f(for)g Fp(pin)43 b(2)p+Fq(,)27 b(w)n(e)g(can)g(assume)g(that)h Fp(pin)42 b(1)28+b Fq(holds,)f(etc.)1905 5255 y(21)p eop+%%Page: 22 23+22 22 bop 515 523 a Fm(4.5)135 b(Exercises)575 738 y+Fq(4.1)40 b(T)-7 b(ak)n(e)33 b(a)h(lo)r(ok)f(at)h(the)g(t)n(w)n(o)f+(bit)i(sorter)e(y)n(ou)g(de\014ned)h(in)g(exercise)f(2.2.)55+b(T)-7 b(o)34 b(v)n(erify)722 838 y(that)28 b(it)g(is)g(correct,)e(t)n+(w)n(o)h(prop)r(erties)f(need)i(to)g(b)r(e)g(true:)816+1004 y Fr({)41 b Fq(The)g(left)g(part)f(of)h(the)g(output)g(is)g+(smaller)f(than)h(the)g(righ)n(t)f(part)g(of)h(the)905+1103 y(output,)816 1236 y Fr({)g Fq(The)34 b(output)g(of)g(the)g+(circuit)f(con)n(tains)g(the)h(same)f(bits)h(as)g(the)g(input)g(\(but)+905 1336 y(p)r(ossibly)27 b(in)h(a)f(di\013eren)n(t)h(order\).)722+1502 y(State)g(these)g(t)n(w)n(o)f(prop)r(erties)f(separately)-7+b(,)26 b(and)i(v)n(erify)f(them)h(using)f Fp(verify)p+Fq(.)575 1668 y(4.2)40 b(Some)21 b(prop)r(erties)g(are)f(so)h(easy)f+(to)h(v)n(erify)g(that)g(w)n(e)g(can)g(actually)g(do)g(it)h(b)n(y)f+(sim)n(ulat-)722 1768 y(ing)i(them)g(for)f(all)g(inputs)h(\(using)g+Fp(domain)p Fq(\).)33 b(There)22 b(are)g(a)g(few)h(of)f(these)h(prop)r+(erties)722 1867 y(in)i(this)f(c)n(hapter.)35 b(V)-7+b(erify)24 b(them)h(b)n(y)e(testing)h(them)h(for)f(all)f(inputs.)37+b(Can)23 b(y)n(ou)h(think)722 1967 y(of)k(other)f(suc)n(h)g(easy-to-v)n+(erify)e(prop)r(erties?)575 2133 y(4.3)40 b(Chec)n(k)32+b(that)h(the)g(v)-5 b(arious)31 b(adders)g(in)i(the)g(previous)e(c)n+(hapter)g(are)h(all)g(comm)n(uta-)722 2232 y(tiv)n(e,)i(for)d(sizes)h+(up)h(to)f(16)f(bits.)51 b(What)33 b(happ)r(ens)f(if)h(y)n(ou)e(try)h+(to)h(pro)n(v)n(e)d(that)j(the)722 2332 y(subtractor)26+b(is)i(comm)n(utativ)n(e?)575 2498 y(4.4)40 b(Chec)n(k)29+b(that)g(the)h(subtractor)d(y)n(ou)i(de\014ned)g(in)h(the)f(previous)f+(c)n(hapter)g(is)h(really)f(a)722 2598 y(subtractor.)35+b(Ho)n(w)24 b(do)h(y)n(ou)f(form)n(ulate)h(y)n(our)f(prop)r(ert)n(y;)g+(what)h(is)g(the)h("de\014nition")722 2697 y(of)37 b(subtraction?)62+b(Mak)n(e)36 b(sure)g(y)n(ou)f(do)i(not)f(mess)g(up)h(the)g(sizes)f(of)+g(the)h(binary)722 2797 y(n)n(um)n(b)r(ers.)575 2963+y(4.5)j(De\014ne)35 b(a)f(general)e(prop)r(ert)n(y)h(that)i(states)e+(that)i(a)f(giv)n(en)f(circuit)h(is)g(asso)r(ciativ)n(e.)722+3063 y(An)29 b(op)r(erator)e Fi(\016)h Fq(is)h(asso)r(ciativ)n(e,)e(if)+i(for)f(ev)n(ery)f Fj(x;)14 b(y)s(;)g(z)32 b Fq(it)d(holds)f(that)h(\()+p Fj(x)20 b Fi(\016)f Fj(y)s Fq(\))g Fi(\016)f Fj(z)28+b Fq(=)722 3162 y Fj(x)19 b Fi(\016)f Fq(\()p Fj(y)k+Fi(\016)c Fj(z)t Fq(\).)36 b(Are)27 b(all)h(the)g(adders)e(asso)r+(ciativ)n(e?)575 3328 y(4.6)40 b(V)-7 b(erify)37 b(that)g(the)g+(carry-sa)n(v)n(e)c(adder)j(y)n(ou)f(de\014ned)i(in)g(the)g(previous)e+(c)n(hapter)h(is)722 3428 y(equiv)-5 b(alen)n(t)27 b(to)f(a)h(binary)f+(adder.)36 b(Be)26 b(careful)g(in)h(ho)n(w)g(y)n(ou)f(form)n(ulate)g(y)+n(our)f(prop-)722 3528 y(ert)n(y)-7 b(,)27 b(since)h(the)g(inputs)g(do)+f(not)h(ha)n(v)n(e)e(the)i(same)f(shap)r(e.)575 3694+y(4.7)40 b(Pro)n(v)n(e)27 b(that,)i(for)g(an)f(adder)h(and)f+(subtractor)g(of)h(y)n(our)e(c)n(hoice,)i(it)g(holds)f(that)i+Fj(x)19 b Fq(+)722 3793 y(\()p Fj(y)c Fi(\000)d Fj(z)t+Fq(\))22 b(=)h(\()p Fj(x)12 b Fq(+)g Fj(y)s Fq(\))g Fi(\000)g+Fj(z)t Fq(.)35 b(What)25 b(extra)e(condition)i(should)f(hold)g(for)g+Fj(y)j Fq(and)d Fj(z)t Fq(?)36 b(Ho)n(w)722 3893 y(do)28+b(y)n(ou)e(express)h(that?)575 4059 y(4.8)40 b(\(Hask)n(ell\))29+b(Ho)n(w)f(w)n(ould)h(y)n(ou)f(pro)r(ceed)g(if)h(y)n(ou)g(w)n(an)n(t)f+(to)h(v)n(erify)f(a)g(prop)r(ert)n(y)g(for)g(all)722+4159 y(sizes)f(in)h(b)r(et)n(w)n(een,)g(sa)n(y)-7 b(,)26+b(1)i(and)f(n?)1905 5255 y(22)p eop+%%Page: 23 24+23 23 bop 515 1186 a Fo(Chapter)64 b(5)515 1641 y Fs(Sequen)-6+b(tial)76 b(Circuits)515 2112 y Fq(In)34 b(this)h(c)n(hapter)e(w)n(e)h+(describ)r(e)g(ho)n(w)g(to)g(deal)g(with)g(sequen)n(tial)g(circuits)g+(in)h(La)n(v)-5 b(a.)55 b(Se-)515 2212 y(quen)n(tial)22+b(circuits)g(in)h(La)n(v)-5 b(a)22 b(are)g(sync)n(hronous)e(circuits,)k+(whic)n(h)e(means)g(that)h(there)g(is)f(one)515 2311+y(global)k(clo)r(c)n(k)h(a\013ecting)g(all)h(dela)n(y)f(comp)r(onen)n+(ts)g(in)g(the)h(circuit.)515 2626 y Fm(5.1)135 b(The)45+b(Dela)l(y)h(Comp)t(onen)l(t)515 2847 y Fq(A)37 b(new)h(comp)r(onen)n+(t)f(in)g(sequen)n(tial)g(circuits)g(is)g(the)h Fn(delay)h+Fq(comp)r(onen)n(t.)65 b(It)38 b(is)f(a)g(cir-)515 2947+y(cuit)29 b(with)h(one)e(parameter)g(\(the)h(initial)g(output)h(of)f+(the)g(dela)n(y\))g(and)f(one)h(input,)h(whic)n(h)515+3047 y(b)r(ecomes)d(its)h(output)g(in)g(the)g(next)g(clo)r(c)n(k)e+(cycle.)515 3186 y(Here)40 b(is)g(an)g(example)g(of)g(a)g(simple)g+(circuit)g(called)g Fp(edge)p Fq(,)i(that)f(c)n(hec)n(ks)e(if)i(its)f+(input)515 3286 y(has)31 b(c)n(hanged)h(with)h(resp)r(ect)f(to)g(its)g+(previous)f(input.)52 b(It)33 b(uses)f(a)g(dela)n(y)f(comp)r(onen)n(t)h+(to)515 3385 y(remem)n(b)r(er)27 b(the)h(previous)e(input.)602+3571 y Fp(edge)42 b(inp)g(=)h(change)689 3671 y(where)776+3771 y(inp')129 b(=)44 b(delay)d(low)h(inp)776 3870 y(change)f(=)j+(xor2)d(\(inp,)h(inp'\))515 4056 y Fq(W)-7 b(e)33 b(can)g(sim)n(ulate)g+(a)g(sequen)n(tial)g(circuit)g(b)n(y)g(using)g(the)h(op)r(eration)e+Fp(simulateSeq)p Fq(.)50 b(It)515 4156 y(needs)37 b(a)h(circuit)g(and)f+(a)h(list)g(of)f(inputs.)68 b(The)38 b(list)g(of)g(inputs)h(is)e(in)n+(terpreted)h(as)f(the)515 4255 y(di\013eren)n(t)27 b(inputs)i(at)e(eac)+n(h)g(clo)r(c)n(k)g(tic)n(k.)602 4441 y Fp(Main>)41 b+Fl(simulateSeq)e(edge)j([high,)f(low,)h(low,)g(high])602+4541 y Fp([high,)f(high,)h(low,)f(high])515 4727 y Fq(Here)34+b(is)h(another)e(sequen)n(tial)h(circuit,)i(whic)n(h)f(is)g(called)f+Fp(toggle)p Fq(.)55 b(It)35 b(has)f(an)h(in)n(ternal)515+4827 y(state,)29 b(whic)n(h)g(it)g(outputs,)h(and)f(it)g(tak)n(es)f+(one)h(input.)42 b(If)30 b(the)f(input)h(is)f(high,)g(it)g(c)n(hanges)+515 4926 y(the)f(state.)36 b(If)28 b(not,)g(it)g(sta)n(ys)f(the)h+(same.)1905 5255 y(23)p eop+%%Page: 24 25+24 24 bop 602 523 a Fp(toggle)41 b(change)g(=)i(out)689+623 y(where)776 722 y(out')f(=)h(delay)f(low)g(out)776+822 y(out)86 b(=)43 b(xor2)f(\(change,)f(out'\))515 1005+y Fq(As)31 b(w)n(e)g(can)f(see,)i(the)f(de\014nition)h(of)f+Fp(out')e Fq(is)i(dep)r(enden)n(t)h(on)f Fp(out)p Fq(,)f(whose)h+(de\014nition)g(is)515 1105 y(dep)r(enden)n(t)d(on)g+Fp(out')p Fq(.)36 b(Th)n(us,)28 b(there)f(is)h(a)f(lo)r(op)h(in)g(the)g+(circuit.)38 b(Lo)r(ops)27 b(are)g(not)g(allo)n(w)n(ed)515+1204 y(in)i(com)n(binational)f(circuits,)i(since)f(the)g(meaning)g(of)g+(suc)n(h)g(circuits)g(is)g(unclear.)41 b(But)30 b(in)515+1304 y(sequen)n(tial)d(circuits,)g(they)h(are)e(essen)n(tial)h(to)h+(implemen)n(t)g(an)n(y)f(in)n(teresting)f(b)r(eha)n(vior.)515+1443 y(Sim)n(ulating)h Fp(toggle)e Fq(giv)n(es:)602 1626+y Fp(Main>)41 b Fl(simulateSeq)e(toggle)j([high,)f(low,)h(low,)g(high])+602 1726 y Fp([high,)f(high,)h(high,)f(low])515 2040+y Fm(5.2)135 b(Multiple)46 b(Dela)l(ys)515 2262 y Fq(W)-7+b(e)22 b(ha)n(v)n(e)g(seen)g(ho)n(w)f(w)n(e)h(can)g(dela)n(y)g(a)g+(signal)f Fn(one)i Fq(time)g(instan)n(t,)g(so)f(that)h(w)n(e)f(can)g+(refer)f(to)515 2361 y(the)26 b(signal's)e(previous)h(v)-5+b(alue.)36 b(Sometimes,)26 b(w)n(e)g(w)n(an)n(t)f(to)g(dela)n(y)g(a)g+(signal)g(m)n(ultiple)i(time)515 2461 y(instances.)38+b(W)-7 b(e)29 b(can)f(do)g(this)h(b)n(y)f(de\014ning)g(a)g+(parametrized)f(circuit,)i(called)f Fp(delayN)p Fq(.)e(It)515+2560 y(has)e(t)n(w)n(o)f(parameters,)h Fj(n)p Fq(,)h(the)g(n)n(um)n(b)r+(er)f(of)h(dela)n(ys)e(to)i(use,)g(and)f Fp(init)p Fq(,)g(the)h+(initial)f(v)-5 b(alues)515 2660 y(of)27 b(these)h(dela)n(ys.)515+2799 y(W)-7 b(e)28 b(use)f(recursion)f(o)n(v)n(er)g Fj(n)i+Fq(to)f(de\014ne)h(this)g(circuit.)602 2983 y Fp(delayN)41+b(0)i(init)f(inp)g(=)i(inp)602 3182 y(delayN)d(n)i(init)f(inp)g(=)i+(out)689 3281 y(where)776 3381 y(out)86 b(=)43 b(delay)f(init)g(rest)+776 3481 y(rest)g(=)h(delayN)e(\(n-1\))h(init)g(inp)515+3664 y Fq(A)26 b(useful)h(sequen)n(tial)e(circuit)h(that)g(w)n(e)g(can)+g(implemen)n(t)g(using)g Fp(delayN)p Fq(,)e(is)i(called)g+Fp(puls)p Fq(.)515 3763 y(It)h(has)g(no)g(inputs,)g(one)g(output,)h+(and)f(one)g(parameter)e Fj(n)p Fq(.)37 b(Its)27 b(output)h(is)f+(normally)f(lo)n(w,)515 3863 y(except)h(on)h(the)g Fj(n)p+Fq(-th,)f(2)p Fj(n)p Fq(-th,)g(3)p Fj(n)p Fq(-th,)h(...)37+b(clo)r(c)n(k)27 b(tic)n(k,)g(where)g(it)h(outputs)g(high.)515+4002 y(W)-7 b(e)20 b(implemen)n(t)h(the)f(circuit)g(b)n(y)g(creating)f+Fj(n)s Fi(\000)s Fq(1)g(dela)n(y)g(comp)r(onen)n(ts)h(in)g(a)g(ro)n(w,)+g(initialized)515 4102 y(b)n(y)27 b Fp(low)p Fq(,)g(ended)g(with)h(one)+g(dela)n(y)e(comp)r(onen)n(t)i(initialized)g(b)n(y)f+Fp(high)p Fq(.)602 4285 y Fp(puls)42 b(n)h(\(\))g(=)g(out)689+4385 y(where)776 4484 y(out)86 b(=)43 b(delayN)e(\(n-1\))h(low)g(last)+776 4584 y(last)g(=)h(delay)f(high)g(out)515 4767 y Fq(Note)24+b(that)g(w)n(e)g(need)g(to)g(use)g(a)f(lo)r(op)h(bac)n(k)f(here.)35+b(This)24 b(implemen)n(tation)g(is)g(not)g(optimal,)515+4867 y(in)k(the)g(sense)f(that)h(it)g(uses)f(to)r(o)g(man)n(y)g(dela)n+(y)g(comp)r(onen)n(ts;)g(see)g(exercise)g(5.6.)515 5006+y(Sim)n(ulating)g Fp(puls)42 b(3)27 b Fq(giv)n(es:)1905+5255 y(24)p eop+%%Page: 25 26+25 25 bop 602 523 a Fp(Main>)41 b Fl(simulateSeq)e(\(puls)j(3\))h+([\(\),)f(\(\),)g(\(\),)g(\(\),)h(\(\),)f(\(\),)g(\(\)])602+623 y Fp([low,)f(low,)h(high,)g(low,)g(low,)g(high,)f(low])515+937 y Fm(5.3)135 b(Coun)l(ters)515 1159 y Fq(An)24 b+Fp(n)p Fq(-bit)g(coun)n(ter)g(is)g(a)g(circuit)g(that)g(outputs)h(an)e+Fp(n)p Fq(-bit)h(binary)g(n)n(um)n(b)r(er)g(at)g(ev)n(ery)f(clo)r(c)n+(k)515 1258 y(tic)n(k,)i(starting)f(with)h(0,)g(and)g(increasing)e(it)i+(b)n(y)g(1)f(ev)n(ery)f(clo)r(c)n(k)h(tic)n(k.)36 b(W)-7+b(e)25 b(implemen)n(t)h(this)515 1358 y(b)n(y)k(k)n(eeping)g(an)h(in)n+(ternal)f(state,)h(whic)n(h)g(is)g(a)f(binary)g(n)n(um)n(b)r(er.)46+b(The)31 b(circuit)g(tak)n(es)e(one)515 1458 y(parameter,)d(whic)n(h)h+(indicates)h(the)g(n)n(um)n(b)r(er)f(of)h(bits)g(to)f(use,)h(and)f(has)+g(no)g(inputs.)602 1644 y Fp(counter)41 b(n)i(\(\))g(=)g(number')689+1743 y(where)776 1843 y(number')520 b(=)44 b(delay)d(\(zeroList)f(n\))j+(number)776 1942 y(\(number,)e(carryOut\))e(=)44 b(bitAdder)c(\(high,)h+(number'\))515 2128 y Fq(W)-7 b(e)37 b(use)g(the)g(function)h+Fp(zeroList)p Fq(,)e(whic)n(h)h(creates)f(a)h(list)g(of)g+Fj(n)g Fq(zeros,)h(denoting)f(the)515 2228 y(initial)30+b(v)-5 b(alue.)46 b(Note)30 b(that)h(the)g(dela)n(y)f(comp)r(onen)n(t)g+(not)h(only)f(w)n(orks)e(for)i(bits,)i(but)f(also)515+2328 y(for)c(example)g(for)g(pairs)g(of)g(bits)h(and)g(lists)f(\(as)g+(in)h(this)g(case\).)515 2467 y(Sim)n(ulating)f Fp(counter)e+Fq(giv)n(es:)602 2653 y Fp(Main>)41 b Fl(simulateSeq)e(\(counter)i(3\))+h([\(\),)g(\(\),)h(\(\)])602 2753 y Fp([[low,)e(low,)h(low],)f([high,)h+(low,)f(low],)h([low,)g(high,)f(low]])515 2939 y Fq(A)22+b(v)-5 b(arian)n(t)21 b(on)h(this)g(circuit)g(is)f(the)i+Fn(up-c)l(ounter)p Fq(,)f(whic)n(h)g(tak)n(es)f(an)g(input,)j(whic)n(h)+e(indicates)515 3038 y(if)k(the)h(n)n(um)n(b)r(er)f(should)g(increase)f+(or)g(not.)37 b(In)26 b(this)h(case,)f(w)n(e)f(w)n(an)n(t)h(the)h+(desired)e(increase)515 3138 y(to)i(tak)n(e)g(e\013ect)h(immediately)-7+b(,)28 b(so)f(w)n(e)g(output)h(the)g(n)n(um)n(b)r(er)g+Fn(b)l(efor)l(e)g Fq(w)n(e)g(dela)n(y)e(it.)602 3324+y Fp(counterUp)40 b(n)j(up)g(=)g(number)689 3424 y(where)776+3523 y(number')520 b(=)44 b(delay)d(\(zeroList)f(n\))j(number)776+3623 y(\(number,)e(carryOut\))e(=)44 b(bitAdder)c(\(up,)i(number'\))515+3809 y Fq(Sim)n(ulating)27 b Fp(counterUp)d Fq(giv)n(es:)602+3995 y Fp(Main>)41 b Fl(simulateSeq)e(\(counterUp)h(3\))j([high,)e+(low,)h(high])602 4094 y Fp([[high,)f(low,)h(low],)f([high,)g(low,)h+(low],)g([low,)f(high,)h(low]])515 4409 y Fm(5.4)135+b(Sequen)l(tialization)515 4630 y Fq(In)27 b(c)n(hapter)g(3,)g(w)n(e)f+(ha)n(v)n(e)g(seen)i(a)e(com)n(binational)g(binary)h(adder.)36+b(As)27 b(an)g(input,)h(it)g(tak)n(es)515 4730 y(t)n(w)n(o)g+Fj(n)p Fq(-bit)h(binary)g(n)n(um)n(b)r(ers,)g(and)g(adds)g(them)g(up.)+42 b(F)-7 b(or)29 b(large)e Fj(n)p Fq(,)j(this)f(circuit)h(can)e(get)+515 4830 y(quite)h(large,)f(whic)n(h)h(means)g(it)g(tak)n(es)f(more)g+(circuit)h(area)f(and)h(consumes)f(more)g(p)r(o)n(w)n(er,)515+4929 y(and)f(will)h(need)g(a)f(lo)n(w)n(er)f(clo)r(c)n(k)h(frequency)g+(to)g(w)n(ork)g(prop)r(erly)-7 b(.)1905 5255 y(25)p eop+%%Page: 26 27+26 26 bop 515 523 a Fq(W)-7 b(e)37 b(can)g(mak)n(e)f(use)h(of)g(the)g+(regularit)n(y)e(in)i(the)h(circuit)f(to)f(mak)n(e)h(a)f(small)h(v)n+(ersion)e(of)515 623 y(the)27 b(circuit)g(that)h(ho)n(w)n(ev)n(er)d+(needs)i(sev)n(eral)e(clo)r(c)n(k)i(cycles)f(to)i(compute)f(the)g+(result.)37 b(If)27 b(w)n(e)515 722 y(apply)d(this)g(tec)n(hnique)h(on)+f(the)g(binary)g(adder,)g(w)n(e)g(obtain)g(a)g Fn(se)l(quential)j+(adder)p Fq(.)37 b(It)25 b(tak)n(es)515 822 y(one)32+b(new)h(digit)g(of)g(b)r(oth)g(binary)f(n)n(um)n(b)r(ers)g(at)h(eac)n+(h)f(clo)r(c)n(k)g(cycle.)52 b(This)33 b(is)f(sometimes)515+922 y(called)27 b Fn(bit)j(serial)p Fq(.)515 1061 y(W)-7+b(e)35 b(can)f(implemen)n(t)h(this)g(b)n(y)g(storing)e(the)i(carry)e+(as)h(an)g(in)n(ternal)g(state,)j(so)d(that)h(the)515+1161 y(curren)n(t)26 b(carry-in)g(of)i(the)g(circuit)f(is)h(the)g+(previous)e(carry-out.)602 1347 y Fp(adderSeq)40 b(\(a,b\))i(=)h(sum)+689 1446 y(where)776 1546 y(carryIn)346 b(=)43 b(delay)f(low)g+(carryOut)776 1645 y(\(sum,carryOut\))c(=)43 b(fullAdd)e(\(carryIn,)f+(\(a,b\)\))515 1831 y Fq(Sim)n(ulating)27 b Fp(adderSeq)e+Fq(giv)n(es:)602 2017 y Fp(Main>)41 b Fl(simulateSeq)e(adderSeq)i+([\(high,low\),)d(\(high,high\),)h(\(low,high\)])602+2117 y Fp([high,)i(low,)h(low])515 2303 y Fq(Because)29+b(w)n(e)i(\014nd)g(that)g(man)n(y)f(sequen)n(tial)g(circuits)g(ha)n(v)n+(e)f(this)i(structure,)g(w)n(e)g(de\014ne)f(a)515 2403+y Fn(se)l(quential)35 b Fq(connection)f(pattern,)i(called)e+Fp(rowSeq)e Fq(whic)n(h)j(w)n(orks)e(m)n(uc)n(h)h(lik)n(e)g+Fp(row)p Fq(,)h(but)515 2502 y(instead)27 b(in)n(terprets)g(the)h(ro)n+(w)e Fn(over)31 b(time)p Fq(.)602 2688 y Fp(rowSeq)41+b(circ)h(inp)g(=)h(out)689 2788 y(where)776 2888 y(carryIn)390+b(=)43 b(delay)e(zero)h(carryOut)776 2987 y(\(out,)g(carryOut\))e(=)j+(circ)f(\(carryIn,)e(inp\))515 3173 y Fq(W)-7 b(orth)33+b(noting)g(is)h(that)g(w)n(e)f(mak)n(e)f(use)i(of)f(the)h(generic)f+Fp(delay)e Fq(and)i Fp(zero)f Fq(comp)r(onen)n(t)515+3273 y(here.)k(The)28 b(structure)f(is)g(exactly)g(the)h(same)f(as)g+(in)h(the)g(sequen)n(tial)f(adder.)515 3412 y(Recalling)f(the)h+(de\014nition)f(of)h(a)f(binary)g(adder)g(in)g(terms)h(of)f+Fp(row)p Fq(,)g(w)n(e)g(can)g(rep)r(eat)g(it)h(and)515+3512 y(implemen)n(t)h(a)f(sequen)n(tial)g(adder)g(in)h(terms)f(of)h+Fp(rowSeq)p Fq(:)602 3698 y Fp(adder')172 b(=)43 b(row)173+b(fullAdd)84 b(--)43 b Fl(combinational)602 3797 y Fp(adderSeq')d(=)j+(rowSeq)e(fullAdd)84 b(--)43 b Fl(sequential)515 3983+y Fq(In)30 b(this)g(w)n(a)n(y)-7 b(,)29 b(using)g(a)g(connection)h+(pattern)f(to)h(de\014ne)g(a)f(com)n(binational)f(circuit)i(helps)515+4083 y(us)d(to)h(de\014ne)g(the)g(sequen)n(tial)e(v)n(ersion)h(of)g+(the)h(circuit.)515 4397 y Fm(5.5)135 b(V)-11 b(ariations)46+b(on)f Fh(rowSeq)515 4619 y Fq(The)35 b(sequen)n(tial)f(ro)n(w)f+(connection)h(pattern)h(is)f(sometimes)h(useful,)i(but)e(certainly)f+(not)515 4719 y(alw)n(a)n(ys.)g(If)26 b(w)n(e)f(use)g(it)h(to)f+(implemen)n(t)h(a)f(sequen)n(tial)g(adder,)g(as)g(w)n(e)g(did,)h(w)n(e)+f(can)g(also)f(use)515 4818 y(it)32 b(to)h(add)f(up)g(\\in\014nitely)h+(big")e(binary)h(n)n(um)n(b)r(ers.)50 b(The)33 b(addition)f(nev)n(er)f+(ends,)j(so)d(w)n(e)515 4918 y(can)c(nev)n(er)g(start)g(o)n(v)n(er)e+(adding)j(t)n(w)n(o)e(new)i(n)n(um)n(b)r(ers.)1905 5255+y(26)p eop+%%Page: 27 28+27 27 bop 515 523 a Fq(Therefore,)24 b(it)i(is)f(handy)g(to)g(ha)n(v)n+(e)g(a)f(connection)h(pattern,)h(called)f Fp(rowSeqReset)p+Fq(,)c(whic)n(h)515 623 y(tak)n(es)27 b(one)h(extra)f(input)i+Fp(reset)p Fq(.)37 b(When)29 b Fp(reset)d Fq(is)i(high,)g(the)h(in)n+(ternal)e(carry)g(state)h(will)515 722 y(b)r(e)g(reset)f(to)g+Fp(zero)p Fq(.)602 908 y Fp(rowSeqReset)39 b(circ)j(\(reset,inp\))d(=)k+(out)689 1008 y(where)776 1108 y(carryIn)390 b(=)43 b(delay)e(zero)h+(carry)776 1207 y(carry)478 b(=)43 b(mux)f(\(reset,)f(\(carryOut,)e+(zero\)\))776 1307 y(\(out,)j(carryOut\))e(=)j(circ)f(\(carryIn,)e+(inp\))515 1493 y Fq(W)-7 b(e)25 b(use)g(the)g(standard)f(m)n+(ultiplexer)h(comp)r(onen)n(t)f Fp(mux)g Fq(here,)h(whic)n(h)g(c)n(ho)r+(oses)e(the)i(left)h(or)515 1592 y(righ)n(t)31 b(comp)r(onen)n(t)h(of)h+(an)f(input)h(pair,)g(dep)r(ending)f(on)g(if)h(the)g(\014rst)f+(incoming)g(signal)f(is)515 1692 y(lo)n(w)c(or)f(high,)i(resp)r(ectiv)n+(ely)-7 b(.)515 1831 y(No)n(w)27 b(w)n(e)g(can)g(de\014ne)h(a)f+(resettable)g(sequen)n(tial)g(adder)g Fp(adderSeqReset)22+b Fq(as)27 b(follo)n(ws:)602 2017 y Fp(adderSeqReset)38+b(=)43 b(rowSeqReset)c(fullAdd)515 2203 y Fq(V)-7 b(ery)31+b(often,)i(it)e(is)h(the)g(case)e(that)i(the)g(in)n(ternal)e(carry)g+(state)h(has)g(to)h(b)r(e)g(reset)e(p)r(erio)r(di-)515+2303 y(cally)-7 b(,)30 b(that)h(is,)g(on)f(ev)n(ery)f+Fj(n)p Fq(-th,)h(2)p Fj(n)p Fq(-th,)h(...)45 b(clo)r(c)n(k)29+b(tic)n(k.)45 b(Therefore,)30 b(w)n(e)g(create)f(a)h(third)515+2403 y(sequen)n(tial)f(ro)n(w)g(v)-5 b(ariation,)30 b(whic)n(h)g(tak)n+(es)f(a)h(parameter)f Fj(n)p Fq(,)i(whic)n(h)f(indicates)g(the)h(reset)+515 2502 y(p)r(erio)r(d.)602 2688 y Fp(rowSeqPeriod)39+b(n)k(circ)f(inp)g(=)h(out)689 2788 y(where)776 2888+y(reset)f(=)h(puls)f(n)h(\(\))776 2987 y(out)130 b(=)43+b(rowSeqReset)c(circ)j(\(reset,)f(inp\))515 3173 y Fq(No)n(w)32+b(w)n(e)g(can)g(de\014ne)h(a)f(sequen)n(tial)g(adder)f+Fp(adderSeqPeriod)c Fq(adding)32 b Fj(n)p Fq(-bit)h(n)n(um)n(b)r(ers)+515 3273 y(as)27 b(follo)n(ws:)602 3459 y Fp(adderSeqPeriod)38+b(n)43 b(=)g(rowSeqPeriod)c(n)k(fullAdd)515 3773 y Fm(5.6)135+b(Exercises)575 3988 y Fq(5.1)40 b(De\014ne)33 b(a)f(circuit)g+Fp(evenSoFar)p Fq(,)e(whic)n(h)i(tak)n(es)f(one)h(input,)i(and)e(has)g+(one)f(output.)722 4088 y(The)26 b(output)g(is)f(high)g(if)h(and)f+(only)g(if)h(the)g(n)n(um)n(b)r(er)f(of)g(high)g(inputs)h(has)f(b)r+(een)h(ev)n(en)722 4187 y(so)h(far.)722 4320 y(Sim)n(ulate)h(y)n(our)e+(circuit)i(in)g(La)n(v)-5 b(a)26 b(and)i(generate)e(VHDL.)575+4486 y(5.2)40 b(Implemen)n(t)22 b(a)f Fp(flipFlop)d Fq(circuit,)23+b(whic)n(h)e(tak)n(es)f(t)n(w)n(o)h(inputs)h Fp(\(set,)41+b(reset\))p Fq(,)20 b(and)722 4586 y(has)30 b(one)g(output.)46+b(The)31 b(circuit)f(k)n(eeps)g(an)g(in)n(ternal)g(state,)h(whic)n(h)f+(is)g(set)h(to)f(high)722 4686 y(when)g Fp(set)e Fq(is)i(high,)g(and)f+(set)h(to)f(lo)n(w)g(when)h Fp(reset)e Fq(is)h(high.)43+b(The)29 b(in)n(ternal)g(state)722 4785 y(is)d(also)g(the)g(output.)37+b(Y)-7 b(ou)27 b(ma)n(y)e(decide)i(y)n(ourself)e(what)h(to)g(do)g(when)+h(b)r(oth)g(inputs)722 4885 y(are)g(high.)1905 5255 y(27)p+eop+%%Page: 28 29+28 28 bop 575 523 a Fq(5.3)40 b(Implemen)n(t)33 b(a)f(clo)r(c)n(k)n(ed)+f(dela)n(y)g(comp)r(onen)n(t)h Fp(delayClk)p Fq(.)47+b(It)32 b(has)g(one)f(parameter,)722 623 y(the)23 b(initial)f(state,)i+(and)e(it)h(has)e(an)h(extra)g(input)h Fp(clk)p Fq(.)34+b(Only)22 b(when)g Fp(clk)f Fq(is)h(high,)i(the)722 722+y(output)k(c)n(hanges)f(to)g(the)h(state)f(and)h(the)g(state)f(c)n+(hanges)f(to)i(the)g(curren)n(t)f(input.)575 888 y(5.4)40+b(De\014ne)29 b(a)e(circuit)h(called)g Fp(always)p Fq(,)d(whic)n(h)j+(has)f(one)h(input)h(and)e(one)h(output.)38 b(The)722+988 y(output)30 b(is)f(high)f(as)h(long)f(as)g(the)h(input)h(sta)n(ys)e+(high.)41 b(If)29 b(the)g(input)h(drops)e(to)h(lo)n(w,)722+1088 y(then)f(the)g(output)h(sta)n(ys)d(lo)n(w)h(forev)n(er.)575+1254 y(5.5)40 b(De\014ne)c(three)f(di\013eren)n(t)h(circuits)f(that)g+(output)h(high)f(only)g(on)g(ev)n(ery)f(6th)i(clo)r(c)n(k)722+1353 y(tic)n(k)28 b(\(so)g(it)h(happ)r(ens)g(on)f(the)g(6th,)h(12th,)f+(18th,)g(...)40 b(etc.\).)f(Use)29 b(6)f(dela)n(y)f(elemen)n(ts)722+1453 y(in)h(the)g(\014rst)f(circuit,)h(5)f(dela)n(y)g(elemen)n(ts)g(in)+h(the)g(second,)f(and)h(3)f(in)h(the)g(last.)722 1586+y(Is)21 b(it)h(p)r(ossible)f(to)g(de\014ne)h(this)f(circuit)h(with)f+(less)g(than)h(3)f(bit-lev)n(el)g(dela)n(y)f(elemen)n(ts?)575+1752 y(5.6)40 b(De\014ne)30 b(a)f(puls)h(generator)d+Fp(puls2)h Fq(whic)n(h)h(has)g(a)g(parameter)f Fj(k)s+Fq(,)i(and)g(generates)d(a)722 1851 y(puls)i(ev)n(ery)f(2)1162+1821 y Fg(k)1202 1851 y Fq(-th)h(clo)r(c)n(k)f(tic)n(k.)40+b(Y)-7 b(our)29 b(design)f(should)h(use)f(a)h(minimal)g(n)n(um)n(b)r+(er)f(of)722 1951 y(dela)n(y)f(comp)r(onen)n(ts)g(\(ho)n(w)g(man)n(y)g+(is)h(that?\).)575 2117 y(5.7)40 b(De\014ne)29 b(an)f(up-do)n(wn)g+(coun)n(ter.)38 b(The)28 b(coun)n(ter)f(gets)h(a)g(pair)f(of)i(inputs.)+39 b(If)29 b(the)f(left)722 2217 y(input)f(is)g(high,)f(it)h(coun)n(ts)+f(up.)36 b(Otherwise,)26 b(if)h(the)g(righ)n(t)e(input)i(is)f(high,)h+(it)g(coun)n(ts)722 2316 y(do)n(wn.)37 b(Otherwise,)26+b(the)i(state)g(sta)n(ys)e(the)i(same.)575 2482 y(5.8)40+b(De\014ne)32 b(a)e(0-to-9)g(coun)n(ter.)46 b(The)31+b(coun)n(ter)f(has)g(no)h(inputs,)h(and)f(a)g(4-bit)f(n)n(um)n(b)r(er)+722 2582 y(as)d(output.)37 b(Initially)-7 b(,)28 b(the)g(output)g+(starts)e(at)h(0,)g(and)h(incremen)n(ts)e(at)i(ev)n(ery)e(clo)r(c)n(k)+722 2682 y(tic)n(k,)i(but)g(after)f(the)h(output)g(9,)g(it)g(returns)f+(to)g(0.)722 2814 y(Connect)h(the)g(displa)n(y)f(from)g(exercise)f(2.6)+h(to)g(y)n(our)g(coun)n(ter.)575 2980 y(5.9)40 b(De\014ne)26+b(a)e Fn(synchr)l(onizer)p Fq(,)j(whic)n(h)e(has)f(t)n(w)n(o)h(inputs)g+Fp(go1)f Fq(and)h Fp(go2)p Fq(,)f(and)h(one)g(output)722+3080 y Fp(go)p Fq(.)35 b(The)23 b(output)h(only)e(b)r(ecomes)h(true)g+(when)g(b)r(oth)g Fp(go1)f Fq(and)h Fp(go2)f Fq(ha)n(v)n(e)g(b)r(een)h+(high)722 3180 y(in)28 b(the)g(past)f(or)g(are)g(high)g(no)n(w)g(since)+h(the)g(last)f Fp(go)p Fq(.)36 b(.)722 3313 y(Here)28+b(is)f(an)g(example)h(sim)n(ulation:)809 3512 y Fp(Main>)42+b Fl(simulateSeq)d(synchronize)1420 3611 y([\(low,high\),\(hi)o(gh,)o+(lo)o(w\),)o(\(h)o(ig)o(h,h)o(ig)o(h\),)1725 3711 y+(\(high,low\),\(low,)o(lo)o(w\))o(,\(l)o(ow)o(,hi)o(gh)o(\)])809+3811 y Fp([low,)j(high,)f(high,)h(low,)g(low,)g(high])533+4010 y Fq(5.10)e(De\014ne)f(a)e(circuit)h(called)f Fp(outputList)p+Fq(,)f(whic)n(h)i(has)f(one)h(parameter,)h(a)e(list)h(of)722+4110 y(v)-5 b(alues,)36 b(no)e(inputs,)i(and)f(one)e(output.)58+b(The)34 b(circuit)g(outputs)h(the)g(elemen)n(ts)f(in)722+4209 y(the)f(parameter)d(list)j(one)e(b)n(y)h(one)g(at)g(ev)n(ery)f+(clo)r(c)n(k)g(tic)n(k)h(rep)r(eatedly)-7 b(.)50 b(Here)31+b(is)h(an)722 4309 y(example)27 b(sim)n(ulation:)809+4508 y Fp(Main>)42 b Fl(simulateSeq)d(\(outputList)g([low,)j(low,)f+(high]\))2291 4608 y([\(\),\(\),\(\),\(\),\(\),\()o(\)])809+4707 y Fp([low,)h(low,)g(high,)f(low,)h(low,)g(high])1905+5255 y Fq(28)p eop+%%Page: 29 30+29 29 bop 515 1186 a Fo(Chapter)64 b(6)515 1641 y Fs(Sequen)-6+b(tial)76 b(V)-19 b(eri\014cation)515 2112 y Fq(In)29+b(this)h(c)n(hapter)e(w)n(e)h(describ)r(e)g(ho)n(w)f(w)n(e)h(can)g(v)n+(erify)f(prop)r(erties)h(of)g(sequen)n(tial)f(circuits.)515+2212 y(W)-7 b(e)28 b(restrict)f(ourselv)n(es)e(to)j(sequen)n(tial)f+(safet)n(y)g(prop)r(erties.)515 2525 y Fm(6.1)135 b(Sequen)l(tial)46+b(Safet)l(y)g(Prop)t(erties)515 2747 y Fq(Let)37 b(us)h(tak)n(e)f(a)g+(lo)r(ok)f(at)i(ho)n(w)f(to)g(de\014ne)h(prop)r(erties)e(ab)r(out)i+(sequen)n(tial)f(circuits.)66 b(In)515 2846 y(principle,)24+b(w)n(e)e(can)h(use)f(the)h(same)g(tec)n(hniques)f(as)h(w)n(e)f(did)h+(with)h(com)n(binational)d(circuits.)515 2946 y(Let)27+b(us)h(tak)n(e)f(a)g(lo)r(ok)g(at)g(some)g(examples.)515+3086 y(Here)g(is)g(ho)n(w)g(w)n(e)h(can)f(compare)f(the)i(t)n(w)n(o)f+(sequen)n(tial)g(adders)f(from)i(section)f(5.4.)602 3267+y Fp(prop_SameAdderSe)o(q)37 b(inp)43 b(=)g(ok)689 3366+y(where)776 3466 y(out1)f(=)h(adderSeq)e(inp)776 3566+y(out2)h(=)h(adderSeq')d(inp)776 3665 y(ok)130 b(=)43+b(out1)f(<==>)g(out2)515 3847 y Fq(Here)27 b(is)g(another)g(example;)g+(the)h(comp)r(osition)e(of)i Fp(edge)e Fq(and)h Fp(toggle)e+Fq(from)i(section)g(5.1)515 3946 y(giv)n(es)e(the)i(iden)n(tit)n(y)g+(circuit.)36 b(This)26 b(means)h(that)f(the)h(input)h(is)e(the)h(same)f+(as)g(the)g(output.)602 4128 y Fp(prop_ToggleEdgeI)o(de)o(nti)o(ty)37+b(inp)42 b(=)h(ok)689 4227 y(where)776 4327 y(mid)g(=)g(toggle)e(inp)+776 4426 y(out)i(=)g(edge)f(mid)776 4526 y(ok)87 b(=)43+b(out)f(<==>)g(inp)515 4707 y Fq(The)20 b(prop)r(erties)f(w)n(e)h(can)g+(describ)r(e)f(in)i(this)f(w)n(a)n(y)f(are)g(called)h+Fn(se)l(quential)j(safety)h(pr)l(op)l(erties)p Fq(.)515+4807 y(Recall)j(that)i(safet)n(y)e(prop)r(erties)g(are)g(prop)r(erties)+g(whic)n(h)h(can)f(b)r(e)i(describ)r(ed)e(as)h(a)f(circuit)515+4907 y(with)21 b(one)f(output,)i(whic)n(h)f(should)f(alw)n(a)n(ys)f(b)r+(e)i(true)f(\(or)g(nev)n(er)g(b)r(e)h(false\))f(for)g(the)h(prop)r(ert)+n(y)515 5006 y(to)27 b(hold.)1905 5255 y(29)p eop+%%Page: 30 31+30 30 bop 515 523 a Fq(Examples)25 b(of)h(prop)r(erties)f(whic)n(h)h+(are)f(not)h(safet)n(y)f(prop)r(erties)g(are)g(for)h(example)f+Fn(liveness)515 623 y Fq(prop)r(erties.)43 b(These)29+b(can)h(assert)f(that)h(a)g(certain)f(condition)h(m)n(ust)g(hold)g(at)g+(some)f(p)r(oin)n(t)515 722 y(in)f(the)g(future,)g(for)f(example.)515+1037 y Fm(6.2)135 b(Sequen)l(tial)46 b(Logic)515 1258+y Fq(Apart)22 b(from)h(the)g(tec)n(hniques)g(w)n(e)f(used)h(to)g+(de\014ne)g(com)n(binational)e(prop)r(erties,)i(there)g(are)515+1358 y(also)j(sp)r(ecial)i(tec)n(hniques)f(w)n(e)g(can)g(apply)h(to)f+(de\014ne)h(sequen)n(tial)f(prop)r(erties.)639 1581 y+Fi(\017)41 b Fq(When)28 b(w)n(e)e(w)n(an)n(t)h(to)g(refer)f(to)h(v)-5+b(alues)26 b(of)h(signals)f(at)h(di\013eren)n(t)g(time)h(instances,)e+(w)n(e)722 1680 y(can)34 b(use)f(a)g Fp(delay)f Fq(to)i(get)f(access)g+(to)g(previous)g(v)-5 b(alues.)55 b(But)34 b(b)r(e)g(careful)f(ab)r+(out)722 1780 y(what)28 b(initial)g(v)-5 b(alue)27 b(y)n(ou)g(c)n(ho)r+(ose)f(for)h(this)h(use)g(of)f(dela)n(y)-7 b(.)639 1946+y Fi(\017)41 b Fq(When)23 b(w)n(e)f(w)n(an)n(t)g(a)g(certain)g(prop)r+(ert)n(y)f(only)h(to)g(b)r(e)h(true)f(when)h(a)f(certain)f(condition)+722 2045 y(holds,)40 b(whic)n(h)e(do)r(es)f(not)h(necessarily)e(hold)i+(all)f(the)h(time,)j(w)n(e)c(can)h(use)f(logical)722+2145 y(implication.)j(Implication)29 b(is)f(implemen)n(ted)i(b)n(y)e+(the)h(La)n(v)-5 b(a)27 b(gate)h Fp(impl)p Fq(,)g(and)g(also)722+2245 y(b)n(y)g(the)g(binary)e(op)r(erator)g Fp(==>)p+Fq(.)515 2467 y(Here)32 b(is)h(an)g(example.)53 b(Supp)r(ose)33+b(w)n(e)g(w)n(an)n(t)f(to)h(de\014ne)h(the)f(follo)n(wing)f(prop)r(ert)+n(y)g(ab)r(out)515 2567 y(the)i Fp(toggle)e Fq(circuit:)49+b("if)35 b(the)f(input)h(is)f(high,)h(then)g(the)f(curren)n(t)f(output)+i(is)f(di\013eren)n(t)515 2666 y(from)27 b(the)h(previous)e(output".)+515 2806 y(The)h(w)n(a)n(y)g(w)n(e)g(de\014ne)h(this)g(in)g(La)n(v)-5+b(a)26 b(is:)602 2992 y Fp(prop_ToggleToggl)o(es)o(Whe)o(nH)o(igh)37+b(inp)42 b(=)h(ok)689 3092 y(where)776 3191 y(out)173+b(=)44 b(toggle)d(inp)776 3291 y(out')129 b(=)44 b(delay)d(low)h(out)+776 3390 y(change)f(=)j(xor2)d(\(out,)h(out'\))776 3490+y(ok)217 b(=)44 b(inp)e(==>)g(change)515 3676 y Fq(First,)21+b(w)n(e)d(compute)i(the)f(output)h Fp(out)e Fq(from)h+Fp(toggle)p Fq(.)32 b(Then,)21 b(w)n(e)e(use)g(a)g(dela)n(y)f(comp)r+(onen)n(t)515 3776 y(to)32 b(get)g(access)e(to)i(the)h(previous)e+(output)h Fp(out')p Fq(.)49 b(W)-7 b(e)33 b(de\014ne)f(the)g(situation)+g Fp(change)e Fq(in)515 3875 y(whic)n(h)j(these)g(outputs)h(di\013er.)+54 b(And)34 b(then)g(w)n(e)e(sa)n(y:)48 b("if)33 b(the)g(input)i(is)e+Fp(high)p Fq(,)g(then)h(the)515 3975 y(outputs)28 b(di\013er".)515+4289 y Fm(6.3)135 b(V)-11 b(eri\014cation)515 4511 y+Fq(After)33 b(de\014ning)f(these)h(prop)r(erties,)f(w)n(e)h(w)n(ould)f+(lik)n(e)g(to)g(formally)g(v)n(erify)f(them.)52 b(V)-7+b(eri\014-)515 4611 y(cation)28 b(of)h(a)f(sequen)n(tial)g(prop)r(ert)n+(y)g(means)h(that)g(w)n(e)f(ha)n(v)n(e)g(to)h(pro)n(v)n(e)e(that)i(the)+g(prop)r(ert)n(y)515 4710 y(holds)36 b(at)g(all)g(times.)63+b(In)37 b(La)n(v)-5 b(a,)37 b(w)n(e)f(do)h(this)f(b)n(y)g+Fn(induction)h Fq(o)n(v)n(er)e(time.)63 b(It)37 b(w)n(orks)e(as)515+4810 y(follo)n(ws.)1905 5255 y(30)p eop+%%Page: 31 32+31 31 bop 515 523 a Fq(Firstly)-7 b(,)23 b(w)n(e)f(ha)n(v)n(e)f(to)i+(do)f(the)g Fn(b)l(ase)k(c)l(ase)p Fq(:)35 b(pro)n(ving)20+b(that)j(the)g(prop)r(ert)n(y)e(holds)h(for)g(the)h Fn(\014rst)515+623 y Fq(time)28 b(instance.)38 b(Since)28 b(lo)r(oking)f(at)h(just)g+(one)g(time)g(instance)g(do)r(es)f(not)h(in)n(v)n(olv)n(e)f(time)h(at)+515 722 y(all,)f(w)n(e)g(can)h(use)f(the)h(same)f(tec)n(hniques)g(as)g+(w)n(e)g(did)h(in)g(the)g(com)n(binational)f(case.)515+862 y(Then,)f(w)n(e)g(do)g(the)g(inductiv)n(e)h Fn(step)p+Fq(.)36 b(W)-7 b(e)27 b(w)n(an)n(t)e(to)h(pro)n(v)n(e)f(that)h+Fn(if)h Fq(the)f(prop)r(ert)n(y)f(holds)h(at)515 961+y(time)h Fj(t)p Fq(,)f(it)h(also)f(holds)g(at)g(time)h+Fj(t)16 b Fq(+)f(1.)37 b(W)-7 b(e)26 b(do)g(this)h(as)f(follo)n(ws:)35+b(w)n(e)26 b(create)g(an)g Fn(arbitr)l(ary)515 1061 y+Fq(time)i(instance)f(b)n(y)g(\014lling)g(the)h(states)f(of)g(the)g+(circuits)g(with)h(fresh)f(v)-5 b(ariables.)36 b(Then,)27+b(w)n(e)515 1161 y(run)32 b(the)h(circuit)f(once)g(on)h(that)f(state,)i+(obtaining)e(an)g(output)h(and)g(new)f(state)g(v)-5 b(alues.)515+1260 y(Then)34 b(w)n(e)f(assert)f(that)i(the)g(output)g(is)g(true,)h+(and)e(run)h(the)g(circuit)f(on)h(the)g(new)f(state)515+1360 y(v)-5 b(alues.)36 b(Finally)-7 b(,)28 b(w)n(e)f(need)h(to)f(pro)n+(v)n(e)f(that)i(the)g(new)g(output)g(is)f(true.)515 1499+y(After)22 b(pro)n(ving)d(the)j(base)f(case)g(and)g(the)h(inductiv)n(e)+f(step,)i(w)n(e)e(ha)n(v)n(e)g(pro)n(v)n(ed)e(our)i(prop)r(ert)n(y)-7+b(.)515 1599 y(Here)27 b(is)g(what)h(happ)r(ens)g(in)g(La)n(v)-5+b(a:)602 1785 y Fp(Main>)41 b Fl(verify)h(prop_ToggleEdge)o(Id)o(ent)o+(it)o(y)602 1885 y Fp(Proving:)e(base)i(1)h(...)g(Valid.)602+1984 y(Proving:)d(step)i(1)h(...)g(Valid.)602 2084 y(--)602+2183 y(Result:)e(Valid.)602 2383 y(Lava>)g Fl(verify)h(prop_ToggleTogg)+o(le)o(sWh)o(en)o(Hig)o(h)602 2482 y Fp(Proving:)e(base)i(1)h(...)g+(Valid.)602 2582 y(Proving:)d(step)i(1)h(...)g(Valid.)602+2682 y(--)602 2781 y(Result:)e(Valid.)515 2967 y Fq(W)-7+b(e)28 b(giv)n(e)e(a)i(more)e(detailed)i(explanation)f(of)g(induction)h+(in)g(the)g(next)g(section.)515 3282 y Fm(6.4)135 b(Induction)515+3503 y Fq(T)-7 b(o)36 b(p)r(erform)f(induction)i(on)f(a)g(La)n(v)-5+b(a)35 b(prop)r(ert)n(y)-7 b(,)38 b(w)n(e)e(con)n(v)n(ert)e(it)j(to)f+(a)g(logical)f(form)n(ula)515 3603 y(relating)c(input)j(`)p+Ff(inp)o Fq(')f(and)f(old)h(state)f(v)-5 b(ariables)31+b(`)p Ff(q)2168 3620 y Fe(old)2261 3603 y Fq(')i(to)f(output)h(`)p+Ff(ok)p Fq(')f(and)h(new)f(state)515 3703 y(v)-5 b(ariables)31+b(`)p Ff(q)930 3715 y Fe(new)1050 3703 y Fq('.)52 b(Whenev)n(er)31+b(w)n(e)i(use)f(a)g(signal-lev)n(el)f(dela)n(y)g(comp)r(onen)n(t)h(in)h+(a)f(circuit)515 3802 y(or)26 b(prop)r(ert)n(y)-7 b(,)27+b(w)n(e)g(in)n(tro)r(duce)g(one)h(state)f(v)-5 b(ariable.)515+3942 y(In)27 b(this)h(translation,)f(w)n(e)g(also)g(in)n(tro)r(duce)g+(a)g(sp)r(ecial)g(input,)i(called)e(`)p Ff(init)o Fq(',)h(whic)n(h)g+(is)f(true)515 4041 y(only)33 b(in)h(the)g(\014rst)f(time)h(instance.)+54 b(So,)35 b(after)e(w)n(e)g(ha)n(v)n(e)g(translated)f(the)i(prop)r+(ert)n(y)-7 b(,)34 b(w)n(e)515 4141 y(ha)n(v)n(e)26 b(a)h(logical)g+(form)n(ula)f(of)i(the)g(follo)n(wing)e(form:)1428 4324+y Fj(T)12 b Fq(\()p Ff(init)o Fj(;)i Ff(inp)p Fj(;)g+Ff(q)1856 4341 y Fe(old)1948 4324 y Fj(;)g Ff(q)2028+4336 y Fe(new)2148 4324 y Fj(;)g Ff(ok)o Fq(\))515 4506+y(This)27 b(form)n(ula)g(is)g(usually)h(called)f(the)h+Fn(tr)l(ansition)h(r)l(elation)p Fq(.)515 4646 y(A)d(v)n(ery)f(simple)h+(w)n(a)n(y)f(to)h(pro)n(v)n(e)e(that)j(the)f(output)h(`)p+Ff(ok)o Fq(')f(is)g(alw)n(a)n(ys)e(true,)i(w)n(ould)g(b)r(e)g(to)g(try)+515 4745 y(pro)n(ving)g(the)i(follo)n(wing:)1406 4928+y Fj(T)12 b Fq(\()p Ff(init)o Fj(;)i Ff(inp)o Fj(;)g+Ff(q)1833 4945 y Fe(old)1926 4928 y Fj(;)g Ff(q)2006+4940 y Fe(new)2126 4928 y Fj(;)g Ff(ok)o Fq(\))23 b Fi(\))g+Ff(ok)719 b Fq(\(6.1\))1905 5255 y(31)p eop+%%Page: 32 33+32 32 bop 515 523 a Fq(Unfortunately)37 b(ho)n(w)n(ev)n(er,)g(this)g+(metho)r(d)h(do)r(es)f(not)g(w)n(ork)e(v)n(ery)h(often,)k(b)r(ecause)d+(ev)n(en)515 623 y(when)h(the)h(prop)r(ert)n(y)e(is)h(alw)n(a)n(ys)e+(true)i(in)h(an)n(y)e(run)h(of)g(the)h(circuit,)i(it)d(migh)n(t)g(not)h+(b)r(e)515 722 y(true)31 b(in)g(ev)n(ery)f(p)r(ossible)h+(con\014guration)e(of)j(the)f(state)g(v)-5 b(ariables.)46+b(This)32 b(is)f(wh)n(y)f(w)n(e)h(use)515 822 y(induction.)515+961 y(First,)e(w)n(e)f(pro)n(v)n(e)g(the)h Fn(b)l(ase)i(c)l(ase)p+Fq(,)f(that)f(is:)40 b(`)p Ff(ok)o Fq(')29 b(is)g(true)f(at)h(the)g+(\014rst)g(time)g(instance.)41 b(In)515 1061 y(this)28+b(case,)e(w)n(e)i(kno)n(w)e(that)i(the)g(v)-5 b(ariable)27+b(`)p Ff(init)o Fq(')h(is)g(true,)f(so)g(w)n(e)g(pro)n(v)n(e:)1368+1238 y Fj(T)12 b Fq(\()p Fr(true)p Fj(;)i Ff(inp)o Fj(;)g+Ff(q)1856 1250 y Fe(any)1963 1238 y Fj(;)g Ff(q)2043+1250 y Fe(new)2163 1238 y Fj(;)g Ff(ok)o Fq(\))23 b Fi(\))g+Ff(ok)682 b Fq(\(6.2\))515 1414 y(This)27 b(is)h(usually)f(easy)-7+b(,)27 b(since)g(initially)-7 b(,)28 b(w)n(e)f(kno)n(w)g(the)h(v)-5+b(alues)27 b(of)h(the)g(state)f(v)-5 b(ariables.)515+1554 y(Then,)24 b(w)n(e)g(pro)n(v)n(e)e(the)i Fn(induction)i(step)p+Fq(,)f(that)f(is:)35 b(if)24 b(`)p Ff(ok)o Fq(')g(is)g(true)f(at)h+(time)g Fj(t)p Fq(,)h(it)f(is)g(also)e(true)515 1653+y(at)27 b(time)h Fj(t)19 b Fq(+)f(1.)36 b(So,)28 b(w)n(e)f(are)f(lo)r+(oking)h(at)g(t)n(w)n(o)g(time)h(instances)f(of)h(the)g(prop)r(ert)n(y)+-7 b(.)1347 1824 y Fj(T)12 b Fq(\()p Ff(init)1552 1836+y Fd(1)1589 1824 y Fj(;)i Ff(inp)1732 1845 y Fd(1)1769+1824 y Fj(;)g Ff(q)1849 1836 y Fd(1)1886 1824 y Fj(;)g+Ff(q)1966 1836 y Fd(2)2003 1824 y Fj(;)g Fr(true)p Fq(\))1367+1924 y Fj(T)e Fq(\()p Fr(false)o Fj(;)i Ff(inp)1786 1944+y Fd(2)1823 1924 y Fj(;)g Ff(q)1903 1936 y Fd(2)1940+1924 y Fj(;)g Ff(q)2020 1936 y Fd(3)2057 1924 y Fj(;)g+Ff(ok)2176 1936 y Fd(2)2213 1924 y Fq(\))2287 1758 y+Fc(\033)2373 1875 y Fi(\))23 b Ff(ok)2561 1887 y Fd(2)3208+1875 y Fq(\(6.3\))515 2097 y(Note)28 b(ho)n(w)f(w)n(e)h(connect)g(the)g+(di\013eren)n(t)g(time)h(instances)f(1)f(and)h(2)g(b)n(y)f(reuse)h(of)g+(the)g(state)515 2196 y(v)-5 b(ariables)32 b(`)p Ff(q)931+2208 y Fd(2)968 2196 y Fq(')h(as)g(new)g(states)g(in)g(the)h(\014rst)e+(time)i(instance)f(and)g(as)g(old)g(states)f(in)i(the)515+2296 y(second)29 b(time)i(instance.)45 b(Also)30 b(note)g(that)g(w)n(e)+g(use)g Fr(false)g Fq(for)g(the)h(v)-5 b(alue)30 b(of)g(`)p+Ff(init)p Fq(')g(in)h(the)515 2395 y(second)d(time)h(instance,)g(b)r+(ecause)g(w)n(e)f(kno)n(w)g(it)h(is)g(not)g(the)g(initial)g(time)g+(instance.)40 b(And)515 2495 y(w)n(e)27 b(use)g Fr(true)h+Fq(for)f(the)h(v)-5 b(alue)27 b(of)h Ff(ok)e Fq(in)i(the)g(\014rst)f+(time,)h(since)f(w)n(e)g(ma)n(y)g(assume)g(that)h(the)515+2595 y(induction)g(h)n(yp)r(othesis)f(holds.)515 2734+y(If)e(w)n(e)f(ha)n(v)n(e)g(pro)n(v)n(en)f(the)i(t)n(w)n(o)f(form)n+(ulas)f(6.2)h(and)g(6.3,)h(then)g(w)n(e)f(kno)n(w)g(that)h(`)p+Ff(ok)o Fq(')g(m)n(ust)g(b)r(e)515 2834 y(true)i(at)h(all)f(time)h+(instances.)36 b(This)28 b(is)g(the)g(basic)f(notion)g(of)g(induction.)+515 3147 y Fm(6.5)135 b(Induction)45 b(With)g(Depth)515+3369 y Fq(Unfortunately)-7 b(,)24 b(the)f(metho)r(d)g(of)g(induction)g+(men)n(tioned)f(in)h(the)h(previous)d(section)h(is)h(not)515+3469 y Fn(c)l(omplete)p Fq(.)54 b(This)32 b(means)h(that)g(there)g(are)+f(prop)r(erties)g(whic)n(h)h(are)e(true,)k(whic)n(h)e(cannot)515+3568 y(b)r(e)28 b(pro)n(v)n(en)e(b)n(y)h(simple)h(induction.)515+3708 y(Here)e(is)h(an)f(example:)36 b(Consider)26 b(the)h+Fp(toggle)d Fq(circuit)j(from)f(section)g(5.1)g(and)h(the)g+Fp(puls)515 3807 y Fq(circuit)g(from)f(section)h(5.2.)36+b(W)-7 b(e)27 b(migh)n(t)g(w)n(an)n(t)g(to)g(v)n(erify)f(that)h(these)g+(circuits)g(do)g(exactly)515 3907 y(the)h(opp)r(osite)f(if)h+Fp(toggle)d Fq(alw)n(a)n(ys)h(has)h(a)g(high)h(input,)g(and)g+Fp(puls)e Fq(has)h(a)g(p)r(erio)r(d)g(of)h(2.)602 4088+y Fp(prop_Toggle_vs_P)o(ul)o(s)38 b(\(\))k(=)i(ok)689+4188 y(where)776 4287 y(out1)e(=)h(toggle)e(high)776+4387 y(out2)h(=)h(puls)f(2)h(\(\))776 4486 y(ok)130 b(=)43+b(inv)g(\(out1)e(<==>)h(out2\))515 4667 y Fq(This)22+b(cannot)f(b)r(e)i(pro)n(v)n(en)e(b)n(y)g(normal)g(induction,)j(since)e+(the)g Fp(puls)f Fq(circuit)h(has)g(t)n(w)n(o)f(dela)n(y)515+4767 y(comp)r(onen)n(ts)h(in)h(a)f(ro)n(w,)g(so)g(it)h(is)g(not)g+(enough)f(to)g(lo)r(ok)g(at)h(t)n(w)n(o)e(time)j(instances)e(at)g(a)h+(time.)515 4907 y(So,)38 b(instead,)f(w)n(e)f(will)g(lo)r(ok)g(at)f+(more)g(time)i(instances)e(in)i(the)f(induction)g(pro)r(of.)62+b(W)-7 b(e)515 5006 y(in)n(tro)r(duce)36 b(the)i(concept)e(of)h+Fn(induction)i(with)g(depth)g Fj(k)s Fq(,)h(whic)n(h)d(means)f(that)h+(the)h(base)1905 5255 y(32)p eop+%%Page: 33 34+33 33 bop 1557 1857 a @beginspecial 0 @llx 0 @lly 187+@urx 340 @ury 935 @rwi @setspecial+%%BeginDocument: Pictures/basek.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-58.0 397.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 7612 m -1000 -1000 l 5069 -1000 l 5069 7612 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 1800 5100 m 2700 5100 l 2700 6000 l 1800 6000 l cp gs col0 s gr +% Polyline+gs  clippath+1677 5520 m 1773 5550 l 1677 5580 l 1815 5580 l 1815 5520 l cp+clip+n 1200 5550 m 1800 5550 l gs col0 s gr gr++% arrowhead+n 1677 5520 m 1773 5550 l 1677 5580 l 1653 5550 l 1677 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 5520 m 3273 5550 l 3177 5580 l 3315 5580 l 3315 5520 l cp+clip+n 2700 5550 m 3300 5550 l gs col0 s gr gr++% arrowhead+n 3177 5520 m 3273 5550 l 3177 5580 l 3153 5550 l 3177 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+ [15 45] 45 sd+n 2250 4275 m 2250 5100 l gs col0 s gr  [] 0 sd+% Polyline+n 1800 1800 m 2700 1800 l 2700 2700 l 1800 2700 l cp gs col0 s gr +% Polyline+gs  clippath+1677 2220 m 1773 2250 l 1677 2280 l 1815 2280 l 1815 2220 l cp+clip+n 1200 2250 m 1800 2250 l gs col0 s gr gr++% arrowhead+n 1677 2220 m 1773 2250 l 1677 2280 l 1653 2250 l 1677 2220 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 6477 m 2250 6573 l 2220 6477 l 2220 6615 l 2280 6615 l cp+clip+n 2250 6000 m 2250 6600 l gs col0 s gr gr++% arrowhead+n 2280 6477 m 2250 6573 l 2220 6477 l 2250 6453 l 2280 6477 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 1800 3300 m 2700 3300 l 2700 4200 l 1800 4200 l cp gs col0 s gr +% Polyline+gs  clippath+1677 3720 m 1773 3750 l 1677 3780 l 1815 3780 l 1815 3720 l cp+clip+n 1200 3750 m 1800 3750 l gs col0 s gr gr++% arrowhead+n 1677 3720 m 1773 3750 l 1677 3780 l 1653 3750 l 1677 3720 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 3177 m 2250 3273 l 2220 3177 l 2220 3315 l 2280 3315 l cp+clip+n 2250 2700 m 2250 3300 l gs col0 s gr gr++% arrowhead+n 2280 3177 m 2250 3273 l 2220 3177 l 2250 3153 l 2280 3177 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 3720 m 3273 3750 l 3177 3780 l 3315 3780 l 3315 3720 l cp+clip+n 2700 3750 m 3300 3750 l gs col0 s gr gr++% arrowhead+n 3177 3720 m 3273 3750 l 3177 3780 l 3153 3750 l 3177 3720 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 1677 m 2250 1773 l 2220 1677 l 2220 1815 l 2280 1815 l cp+clip+n 2250 1200 m 2250 1800 l gs col0 s gr gr++% arrowhead+n 2280 1677 m 2250 1773 l 2220 1677 l 2250 1653 l 2280 1677 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 2220 m 3273 2250 l 3177 2280 l 3315 2280 l 3315 2220 l cp+clip+n 2700 2250 m 3300 2250 l gs col0 s gr gr++% arrowhead+n 3177 2220 m 3273 2250 l 3177 2280 l 3153 2250 l 3177 2220 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+975 2325 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+975 3825 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+975 5625 m+gs 1 -1 sc (x) col0 sh gr+/Times-Italic ff 270.00 scf sf+1125 5700 m+gs 1 -1 sc (k) col0 sh gr+/Times-Italic ff 270.00 scf sf+1125 2400 m+gs 1 -1 sc (1) col0 sh gr+/Courier ff 270.00 scf sf+2175 5625 m+gs 1 -1 sc (T) col0 sh gr+/Courier ff 270.00 scf sf+2175 3825 m+gs 1 -1 sc (T) col0 sh gr+/Courier ff 270.00 scf sf+2175 2325 m+gs 1 -1 sc (T) col0 sh gr+/Helvetica ff 270.00 scf sf+2025 1125 m+gs 1 -1 sc (q) col0 sh gr+/Times-Italic ff 270.00 scf sf+2175 1200 m+gs 1 -1 sc (init) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 2325 m+gs 1 -1 sc (ok) col0 sh gr+/Times-Italic ff 270.00 scf sf+3675 2400 m+gs 1 -1 sc (1) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 3825 m+gs 1 -1 sc (ok) col0 sh gr+/Times-Italic ff 270.00 scf sf+3675 3900 m+gs 1 -1 sc (2) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 5625 m+gs 1 -1 sc (ok) col0 sh gr+/Times-Italic ff 270.00 scf sf+3675 5700 m+gs 1 -1 sc (k) col0 sh gr+/Courier ff 270.00 scf sf+3900 2325 m+gs 1 -1 sc (?) col0 sh gr+/Courier ff 270.00 scf sf+3900 3825 m+gs 1 -1 sc (?) col0 sh gr+/Courier ff 270.00 scf sf+3900 5625 m+gs 1 -1 sc (?) col0 sh gr+/Times-Italic ff 270.00 scf sf+1125 3900 m+gs 1 -1 sc (2) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1052 2039 a Fq(Figure)27 b(6.1:)36 b(Base)26+b(case)h(for)g(induction)h(with)g(depth)g Fj(k)s Fq(.)515+2305 y(case)c(pro)n(v)n(es)g(that)h(the)h(\014rst)f Fj(k)k+Fq(steps)c(are)f(ok)-5 b(a)n(y)e(,)25 b(and)h(the)f(step)h(case)e(ma)n+(y)h(assume)g(that)g(a)515 2404 y(sequence)i(of)g Fj(k)k+Fq(steps)c(w)n(en)n(t)h(ok)-5 b(a)n(y)e(,)26 b(in)i(order)e(to)i(pro)n+(v)n(e)e(that)i(the)g Fj(k)21 b Fq(+)d(1-th)27 b(step)h(is)f(ok)-5+b(a)n(y)e(.)515 2544 y(Here)27 b(is)g(the)h(concrete)f(form)n(ula)g+(for)g(the)h(base)f(case)g(\(see)g(also)g(\014gure)f(6.1\):)1145+2725 y Fj(T)12 b Fq(\()p Fr(true)o Fj(;)i Ff(inp)1553+2746 y Fd(1)1590 2725 y Fj(;)g Ff(q)1670 2737 y Fd(1)1707+2725 y Fj(;)g Ff(q)1787 2737 y Fd(2)1824 2725 y Fj(;)g+Ff(ok)1943 2737 y Fd(1)1980 2725 y Fq(\))1134 2825 y+Fj(T)e Fq(\()p Fr(false)o Fj(;)i Ff(inp)1553 2845 y Fd(2)1590+2825 y Fj(;)g Ff(q)1670 2837 y Fd(2)1707 2825 y Fj(;)g+Ff(q)1787 2837 y Fd(3)1824 2825 y Fj(;)g Ff(ok)1943 2837+y Fd(2)1980 2825 y Fq(\))1916 2925 y Fj(:)g(:)g(:)1036+3024 y(T)e Fq(\()p Fr(false)o Fj(;)i Ff(inp)1454 3045+y Fg(k)1495 3024 y Fj(;)g Ff(q)1575 3036 y Fg(k)1616+3024 y Fj(;)g Ff(q)1696 3036 y Fg(k)q Fd(+1)1820 3024+y Fj(;)g Ff(ok)1939 3036 y Fg(k)1980 3024 y Fq(\))2054+2656 y Fc(9)2054 2730 y(>)2054 2755 y(>)2054 2780 y(=)2054+2930 y(>)2054 2955 y(>)2054 2980 y(;)2151 2876 y Fi(\))23+b Ff(ok)2339 2888 y Fd(1)2376 2876 y Fj(;)37 b Ff(ok)2518+2888 y Fd(2)2556 2876 y Fj(;)g(:)14 b(:)g(:)f(;)37 b+Ff(ok)2868 2888 y Fg(k)3208 2876 y Fq(\(6.4\))515 3203+y(Note)e(that)g(w)n(e)g(use)f(the)i(same)e(tric)n(k)g(of)h(reusing)f+(the)i(state)e(v)-5 b(ariables)34 b(of)h(consecutiv)n(e)515+3303 y(times)d(to)g(line)g(up)g(the)h(time)f(instances.)50+b(Here)32 b(is)g(the)g(concrete)f(form)n(ula)g(for)h(the)g(step)515+3402 y(case)26 b(\(see)i(also)e(\014gure)h(6.2\):)1463+3584 y Fj(T)12 b Fq(\()p Ff(init)1668 3596 y Fd(1)1705+3584 y Fj(;)i Ff(inp)1848 3605 y Fd(1)1885 3584 y Fj(;)g+Ff(q)1965 3596 y Fd(1)2002 3584 y Fj(;)g Ff(q)2082 3596+y Fd(2)2119 3584 y Fj(;)g Fr(true)p Fq(\))1429 3684 y+Fj(T)e Fq(\()p Fr(false)o Fj(;)i Ff(inp)1848 3704 y Fd(2)1885+3684 y Fj(;)g Ff(q)1965 3696 y Fd(2)2002 3684 y Fj(;)g+Ff(q)2082 3696 y Fd(3)2119 3684 y Fj(;)g Fr(true)p Fq(\))2264+3784 y Fj(:)g(:)g(:)1334 3883 y(T)e Fq(\()p Fr(false)o+Fj(;)i Ff(inp)1753 3903 y Fg(k)1794 3883 y Fj(;)g Ff(q)1874+3895 y Fg(k)1914 3883 y Fj(;)g Ff(q)1994 3895 y Fg(k)q+Fd(+1)2119 3883 y Fj(;)g Fr(true)p Fq(\))1132 3983 y+Fj(T)e Fq(\()p Fr(false)o Fj(;)i Ff(inp)1551 4003 y Fg(k)q+Fd(+1)1676 3983 y Fj(;)g Ff(q)1756 3995 y Fg(k)q Fd(+1)1880+3983 y Fj(;)g Ff(q)1960 3995 y Fg(k)q Fd(+2)2085 3983+y Fj(;)g Ff(ok)2204 3995 y Fg(k)q Fd(+1)2329 3983 y Fq(\))2403+3515 y Fc(9)2403 3589 y(>)2403 3614 y(>)2403 3639 y(>)2403+3664 y(>)2403 3689 y(=)2403 3838 y(>)2403 3863 y(>)2403+3888 y(>)2403 3913 y(>)2403 3938 y(;)2500 3784 y Fi(\))23+b Ff(ok)2688 3796 y Fg(k)q Fd(+1)3208 3784 y Fq(\(6.5\))515+4162 y(So,)31 b(for)f(an)n(y)f(depth)i Fj(k)s Fq(,)g(if)g(w)n(e)f(can)g+(pro)n(v)n(e)f(the)i(form)n(ulas)e(6.4)h(and)g(6.5,)g(w)n(e)g(ha)n(v)n+(e)g(pro)n(v)n(ed)515 4261 y(that)h(`)p Ff(ok)o Fq(')h(holds)f(at)g(ev)+n(ery)f(time)h(instance.)48 b(Note)31 b(that)h(if)f(w)n(e)g(c)n(ho)r+(ose)f Fj(k)i Fq(=)d(1,)j(then)f(w)n(e)515 4361 y(are)26+b(bac)n(k)h(to)h(normal)e(induction)i(again.)515 4500+y(Here)f(is)g(what)h(happ)r(ens)g(when)f(w)n(e)h(v)n(erify)f+Fp(prop)p 2079 4500 27 4 v 29 w(Toggle)p 2372 4500 V+29 w(vs)p 2489 4500 V 31 w(Puls)f Fq(in)i(La)n(v)-5 b(a:)602+4686 y Fp(Main>)41 b Fl(verify)h(prop_Toggle_vs_)o(Pu)o(ls)602+4786 y Fp(Prover:)f(base)h(1)h(...)f(Valid.)602 4886+y(Prover:)f(step)h(1)h(...)f(Falsifiable.)602 4985 y(Prover:)f(base)h+(2)h(...)f(Valid.)1905 5255 y Fq(33)p eop+%%Page: 34 35+34 34 bop 1501 2232 a @beginspecial 0 @llx 0 @lly 214+@urx 430 @ury 1070 @rwi @setspecial+%%BeginDocument: Pictures/stepk.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-49.0 487.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 9112 m -1000 -1000 l 5369 -1000 l 5369 9112 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+ [15 45] 45 sd+n 2250 4275 m 2250 5100 l gs col0 s gr  [] 0 sd+% Polyline+n 1800 1800 m 2700 1800 l 2700 2700 l 1800 2700 l cp gs col0 s gr +% Polyline+gs  clippath+1677 2220 m 1773 2250 l 1677 2280 l 1815 2280 l 1815 2220 l cp+clip+n 1200 2250 m 1800 2250 l gs col0 s gr gr++% arrowhead+n 1677 2220 m 1773 2250 l 1677 2280 l 1653 2250 l 1677 2220 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 1800 3300 m 2700 3300 l 2700 4200 l 1800 4200 l cp gs col0 s gr +% Polyline+gs  clippath+1677 3720 m 1773 3750 l 1677 3780 l 1815 3780 l 1815 3720 l cp+clip+n 1200 3750 m 1800 3750 l gs col0 s gr gr++% arrowhead+n 1677 3720 m 1773 3750 l 1677 3780 l 1653 3750 l 1677 3720 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 3177 m 2250 3273 l 2220 3177 l 2220 3315 l 2280 3315 l cp+clip+n 2250 2700 m 2250 3300 l gs col0 s gr gr++% arrowhead+n 2280 3177 m 2250 3273 l 2220 3177 l 2250 3153 l 2280 3177 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 3720 m 3273 3750 l 3177 3780 l 3315 3780 l 3315 3720 l cp+clip+n 2700 3750 m 3300 3750 l gs col0 s gr gr++% arrowhead+n 3177 3720 m 3273 3750 l 3177 3780 l 3153 3750 l 3177 3720 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 1677 m 2250 1773 l 2220 1677 l 2220 1815 l 2280 1815 l cp+clip+n 2250 1200 m 2250 1800 l gs col0 s gr gr++% arrowhead+n 2280 1677 m 2250 1773 l 2220 1677 l 2250 1653 l 2280 1677 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 2220 m 3273 2250 l 3177 2280 l 3315 2280 l 3315 2220 l cp+clip+n 2700 2250 m 3300 2250 l gs col0 s gr gr++% arrowhead+n 3177 2220 m 3273 2250 l 3177 2280 l 3153 2250 l 3177 2220 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 1800 5100 m 2700 5100 l 2700 6000 l 1800 6000 l cp gs col0 s gr +% Polyline+gs  clippath+1677 5520 m 1773 5550 l 1677 5580 l 1815 5580 l 1815 5520 l cp+clip+n 1200 5550 m 1800 5550 l gs col0 s gr gr++% arrowhead+n 1677 5520 m 1773 5550 l 1677 5580 l 1653 5550 l 1677 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 5520 m 3273 5550 l 3177 5580 l 3315 5580 l 3315 5520 l cp+clip+n 2700 5550 m 3300 5550 l gs col0 s gr gr++% arrowhead+n 3177 5520 m 3273 5550 l 3177 5580 l 3153 5550 l 3177 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 6477 m 2250 6573 l 2220 6477 l 2220 6615 l 2280 6615 l cp+clip+n 2250 6000 m 2250 6600 l gs col0 s gr gr++% arrowhead+n 2280 6477 m 2250 6573 l 2220 6477 l 2250 6453 l 2280 6477 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 1800 6600 m 2700 6600 l 2700 7500 l 1800 7500 l cp gs col0 s gr +% Polyline+gs  clippath+1677 7020 m 1773 7050 l 1677 7080 l 1815 7080 l 1815 7020 l cp+clip+n 1200 7050 m 1800 7050 l gs col0 s gr gr++% arrowhead+n 1677 7020 m 1773 7050 l 1677 7080 l 1653 7050 l 1677 7020 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 7020 m 3273 7050 l 3177 7080 l 3315 7080 l 3315 7020 l cp+clip+n 2700 7050 m 3300 7050 l gs col0 s gr gr++% arrowhead+n 3177 7020 m 3273 7050 l 3177 7080 l 3153 7050 l 3177 7020 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 7977 m 2250 8073 l 2220 7977 l 2220 8115 l 2280 8115 l cp+clip+n 2250 7500 m 2250 8100 l gs col0 s gr gr++% arrowhead+n 2280 7977 m 2250 8073 l 2220 7977 l 2250 7953 l 2280 7977 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+975 2325 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+975 3825 m+gs 1 -1 sc (x) col0 sh gr+/Times-Italic ff 270.00 scf sf+1125 2400 m+gs 1 -1 sc (1) col0 sh gr+/Courier ff 270.00 scf sf+2175 3825 m+gs 1 -1 sc (T) col0 sh gr+/Courier ff 270.00 scf sf+2175 2325 m+gs 1 -1 sc (T) col0 sh gr+/Helvetica ff 270.00 scf sf+2025 1125 m+gs 1 -1 sc (q) col0 sh gr+/Times-Italic ff 270.00 scf sf+2175 1200 m+gs 1 -1 sc (any) col0 sh gr+/Times-Italic ff 270.00 scf sf+1125 3900 m+gs 1 -1 sc (2) col0 sh gr+/Helvetica ff 270.00 scf sf+975 5625 m+gs 1 -1 sc (x) col0 sh gr+/Times-Italic ff 270.00 scf sf+1125 5700 m+gs 1 -1 sc (k) col0 sh gr+/Courier ff 270.00 scf sf+2175 5625 m+gs 1 -1 sc (T) col0 sh gr+/Courier ff 270.00 scf sf+2175 7125 m+gs 1 -1 sc (T) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 7125 m+gs 1 -1 sc (ok) col0 sh gr+/Times-Italic ff 270.00 scf sf+3675 7200 m+gs 1 -1 sc (k+1) col0 sh gr+/Helvetica ff 270.00 scf sf+825 7125 m+gs 1 -1 sc (x) col0 sh gr+/Times-Italic ff 270.00 scf sf+975 7275 m+gs 1 -1 sc (k+1) col0 sh gr+/Courier ff 270.00 scf sf+4200 7125 m+gs 1 -1 sc (?) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 2325 m+gs 1 -1 sc (true) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 3825 m+gs 1 -1 sc (true) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 5625 m+gs 1 -1 sc (true) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 967 2414 a Fq(Figure)27 b(6.2:)36 b(Inductiv)n(e)28+b(step)f(for)h(induction)f(with)i(depth)f Fj(k)s Fq(.)602+2680 y Fp(Prover:)41 b(step)h(2)h(...)f(Valid.)602 2779+y(--)602 2879 y(Result:)f(Valid.)515 3065 y Fq(So,)28+b(the)h(v)n(eri\014er)e(realizes)g(that)i(induction)g(depth)g(1)f(is)h+(not)f(enough)g(for)g(the)h(step)g(to)f(go)515 3164 y(through,)20+b(and)g(increases)e(the)i(induction)f(depth)i(automatically)-7+b(.)33 b(It)20 b(will)f(k)n(eep)h(increasing)515 3264+y(the)26 b(depth)g(un)n(til)g(either)g(the)g(base)f(case)g(turns)g(out)+h(to)f(b)r(e)h(false,)g(or)f(un)n(til)h(it)g(manages)e(to)515+3364 y(pro)n(v)n(e)i(b)r(oth)i(the)g(base)f(case)f(and)i(the)g(step)g+(case.)515 3503 y(If)k(w)n(e)g(w)n(an)n(t)g(to)g(sp)r(ecify)g(a)g(sp)r+(eci\014c)g(depth)h(to)f(do)g(the)h(induction)f(for,)h(w)n(e)f(can)g+(use)g(the)515 3603 y(op)r(eration)26 b Fp(verifyWith)p+Fq(,)e(whic)n(h)j(tak)n(es)g(an)g(extra)g(list)h(of)f(v)n(erify)g+(options.)602 3789 y Fp(Main>)41 b Fl(verifyWith)f([Depth)h(2])i+(prop_Toggle_vs_P)o(ul)o(s)602 3888 y Fp(Prover:)e(base)h(2)h(...)f+(Valid.)602 3988 y(Prover:)f(step)h(2)h(...)f(Valid.)602+4088 y(--)602 4187 y(Result:)f(Valid.)515 4373 y Fq(The)25+b(op)r(eration)g Fp(verify)e Fq(is)i(actually)g(just)h(a)f(short-hand)f+(for)h Fp(verifyWith)40 b([Depth)h(1,)515 4473 y(Increasing])p+Fq(.)61 b(With)38 b(the)g(option)f Fp(Depth)p Fq(,)h(one)f(can)f(sp)r+(ecify)i(the)g(induction)f(depth.)515 4572 y Fp(Increasing)g+Fq(means)j(that)i(it)f(will)g(k)n(eep)g(increasing)f(the)h(depth)h(un)n+(til)f(it)h(pro)n(v)n(es)d(or)515 4672 y(dispro)n(v)n(es)25+b(the)j(prop)r(ert)n(y)-7 b(.)1905 5255 y(34)p eop+%%Page: 35 36+35 35 bop 515 523 a Fm(6.6)135 b(Induction)45 b(With)g(Restricted)h+(States)515 745 y Fq(Unfortunately)-7 b(,)22 b(ev)n(en)e(induction)g+(with)h(depth)g(is)g(not)f(a)g(complete)g(metho)r(d.)35+b(This)21 b(means)515 844 y(that)27 b(there)h(exists)f(prop)r(eries)f+(whic)n(h)h(are)g(alw)n(a)n(ys)e(true,)j(but)g(for)f(whic)n(h)g(there)g+(exists)g(no)515 944 y Fj(k)j Fq(suc)n(h)e(that)f(the)h(prop)r(ert)n(y)+f(can)g(b)r(e)h(pro)n(v)n(en)e(b)n(y)h(induction)h(with)h(depth)f+Fj(k)s Fq(.)515 1083 y(An)21 b(example)f(of)h(suc)n(h)f(a)g(prop)r(ert)+n(y)g(is)g(to)h(c)n(hec)n(k)f(if)h(a)f(p)r(erio)r(dic)h(sequen)n(tial)f+(adder)g(of)g(p)r(erio)r(d)515 1183 y(2)27 b(is)g(equiv)-5+b(alen)n(t)28 b(to)f(a)g(resettable)g(adder)g(whic)n(h)h(w)n(e)f(reset)+g(ev)n(ery)f(second)h(clo)r(c)n(k)g(tic)n(k.)602 1369+y Fp(prop_AdderPeriod)o(2)37 b(ab)43 b(=)g(ok)689 1469+y(where)776 1568 y(sum1)f(=)h(adderSeqPeriod)38 b(2)43+b(ab)776 1668 y(two)86 b(=)43 b(delay)f(low)g(\(inv)g(two\))86+b(--)42 b Fl(010101...)776 1768 y Fp(sum2)g(=)h(adderSeqReset)c(\(two,)+i(ab\))776 1867 y(ok)130 b(=)43 b(sum1)f(<==>)g(sum2)515+2053 y Fq(V)-7 b(erifying)27 b(this)h(prop)r(ert)n(y)e(results)i(in)f+(an)h(in\014nite)g(lo)r(op:)602 2239 y Fp(Main>)41 b+Fl(verify)h(prop_AdderPerio)o(d2)602 2339 y Fp(Prover:)f(base)h(1)h+(...)f(Valid.)602 2438 y(Prover:)f(step)h(1)h(...)f(Falsifiable.)602+2538 y(Prover:)f(base)h(2)h(...)f(Valid.)602 2638 y(Prover:)f(step)h(2)+h(...)f(Falsifiable.)602 2737 y(...)515 2923 y Fq(The)26+b(problem)g(is)h(that)f(there)h(exist)f(a)g(lot)h(of)f(state)g(v)-5+b(ariable)26 b(con\014gurations)e(that)j(nev)n(er)515+3023 y(o)r(ccur)i(when)h(w)n(e)g(run)f(the)i(circuit,)f(but)g(are)f+(logically)g(p)r(ossible.)43 b(In)30 b(some)g(cases,)f(these)515+3122 y(so-called)h Fn(unr)l(e)l(achable)k(states)d Fq(mess)g(up)h(the)f+(induction)h(pro)r(of.)48 b(Ev)n(en)30 b(assuming)h(that)515+3222 y(the)d(prop)r(ert)n(y)f(w)n(e)h(w)n(an)n(t)g(to)g(pro)n(v)n(e)e+(is)i(true)h(for)e(a)h(v)n(ery)f(large)g(n)n(um)n(b)r(er)h+Fj(k)j Fq(of)d(consecutiv)n(e)515 3322 y(running)f(steps)g(\(lik)n(e)g+(w)n(e)g(do)g(in)h(the)g(induction)g(step\))g(is)f(not)g(enough)g(to)g+(ensure)g(w)n(e)g(are)515 3421 y(in)f(a)g(reac)n(hable)f(state.)36+b(The)26 b(reason)f(for)h(this)g(is)g(that)h(w)n(e)f(migh)n(t)g(b)r(e)h+(running)f(around)f(in)515 3521 y(the)g(unreac)n(hable)e(states)i(in)g+(circles)e(for)i(these)g Fj(k)i Fq(steps,)e(so)g(increasing)e+Fj(k)28 b Fq(do)r(es)c(not)h(help.)515 3660 y(Instead,)g(w)n(e)g(will)g+(strengthen)g(the)g(induction)h(step)f(b)n(y)g(sa)n(ying)f(that)h(all)g+Fj(k)16 b Fq(+)d(1)25 b(states)f(w)n(e)515 3760 y(visit)33+b(in)g(the)h(form)n(ula)e(m)n(ust)h(b)r(e)g(distinct.)54+b(In)33 b(this)h(w)n(a)n(y)-7 b(,)33 b(w)n(e)g(ensure)f(that)h(w)n(e)g+(are)f(not)515 3860 y(running)27 b(around)g(in)g(circles.)515+3999 y(The)g(new)h(form)n(ula)f(for)g(the)h(inductiv)n(e)g(step)f(b)r+(ecomes:)1614 4176 y Fj(T)12 b Fq(\()p Ff(init)1819 4188+y Fd(1)1856 4176 y Fj(;)i Ff(inp)1999 4197 y Fd(1)2036+4176 y Fj(;)g Ff(q)2116 4188 y Fd(1)2153 4176 y Fj(;)g+Ff(q)2233 4188 y Fd(2)2270 4176 y Fj(;)g Fr(true)p Fq(\))1580+4276 y Fj(T)e Fq(\()p Fr(false)o Fj(;)i Ff(inp)1999 4296+y Fd(2)2036 4276 y Fj(;)g Ff(q)2116 4288 y Fd(2)2153+4276 y Fj(;)g Ff(q)2233 4288 y Fd(3)2270 4276 y Fj(;)g+Fr(true)p Fq(\))2416 4376 y Fj(:)g(:)g(:)1486 4475 y(T)e+Fq(\()p Fr(false)n Fj(;)i Ff(inp)1904 4496 y Fg(k)1945+4475 y Fj(;)g Ff(q)2025 4487 y Fg(k)2065 4475 y Fj(;)g+Ff(q)2145 4487 y Fg(k)q Fd(+1)2270 4475 y Fj(;)g Fr(true)p+Fq(\))1284 4575 y Fj(T)e Fq(\()p Fr(false)n Fj(;)i Ff(inp)1702+4595 y Fg(k)q Fd(+1)1827 4575 y Fj(;)g Ff(q)1907 4587+y Fg(k)q Fd(+1)2032 4575 y Fj(;)g Ff(q)2112 4587 y Fg(k)q+Fd(+2)2236 4575 y Fj(;)g Ff(ok)2355 4587 y Fg(k)q Fd(+1)2480+4575 y Fq(\))811 4675 y Ff(q)854 4687 y Fd(1)914 4675+y Fi(6)p Fq(=)22 b Ff(q)1044 4687 y Fd(2)1082 4675 y+Fj(;)37 b Ff(q)1185 4687 y Fd(1)1245 4675 y Fi(6)p Fq(=)22+b Ff(q)1375 4687 y Fd(3)1412 4675 y Fj(;)37 b(:)14 b(:)g(:)g(;)37+b Ff(q)1686 4687 y Fg(k)q Fb(\000)p Fd(1)1835 4675 y+Fi(6)p Fq(=)23 b Ff(q)1966 4687 y Fg(k)q Fd(+1)2090 4675+y Fj(;)37 b Ff(q)2193 4687 y Fg(k)2257 4675 y Fi(6)p+Fq(=)23 b Ff(q)2388 4687 y Fg(k)q Fd(+1)2554 4107 y Fc(9)2554+4181 y(>)2554 4206 y(>)2554 4231 y(>)2554 4256 y(>)2554+4281 y(>)2554 4306 y(>)2554 4331 y(=)2554 4480 y(>)2554+4505 y(>)2554 4530 y(>)2554 4555 y(>)2554 4580 y(>)2554+4605 y(>)2554 4630 y(;)2651 4426 y Fi(\))g Ff(ok)2839+4438 y Fg(k)q Fd(+1)3208 4426 y Fq(\(6.6\))515 4853 y(F)-7+b(or)33 b(this)h(metho)r(d,)h(pro)n(ving)d(form)n(ulas)h(6.4)g(and)g+(6.6)g(for)g(some)g Fj(k)k Fq(is)c(enough)g(to)h(pro)n(v)n(e)515+4953 y(the)28 b(`)p Ff(ok)o Fq(')g(holds)g(at)f(all)h(time)g+(instances.)38 b(Moreo)n(v)n(er,)25 b(this)j(is)g(a)f(complete)h(metho)+r(d!)38 b(This)1905 5255 y(35)p eop+%%Page: 36 37+36 36 bop 515 523 a Fq(means)26 b(that,)h(if)g(the)g(prop)r(ert)n(y)e+(holds,)i(there)f(is)g(alw)n(a)n(ys)f(a)h Fj(k)k Fq(suc)n(h)c(that)h(w)+n(e)f(can)g(pro)n(v)n(e)f(it)515 623 y(b)n(y)i(induction)h(with)g+(depth)g Fj(k)j Fq(with)d(restricted)f(states.)515 762+y(T)-7 b(o)18 b(use)g(induction)h(with)g(restricted)e(states)h(in)h(La)+n(v)-5 b(a,)19 b(w)n(e)f(can)g(use)g(the)h(option)f Fp(RestrictStates)p+Fq(:)602 936 y Fp(Main>)41 b Fl(verifyWith)f([RestrictStates,)o(In)o+(cre)o(as)o(ing)o(])d(prop_AdderPeriod2)602 1036 y Fp(Proving:)j(base)i+(1)h(...)g(Valid.)602 1135 y(Proving:)d(step)i(1)h(...)g(Falsifiable.)+602 1235 y(...)602 1335 y(Proving:)d(base)i(5)h(...)g(Valid.)602+1434 y(Proving:)d(step)i(5)h(...)g(Valid.)602 1534 y(--)602+1633 y(Result:)e(Valid.)515 1807 y Fq(W)-7 b(e)31 b(needed)g(induction)+h(depth)f(5)g(for)g(this)g(prop)r(ert)n(y)-7 b(.)46 b(Note)31+b(that)g(w)n(e)g(used)g(the)g(option)515 1907 y Fp(Increasing)23+b Fq(also,)k(otherwise)g(the)h(v)n(eri\014cation)e(w)n(ould)h(ha)n(v)n+(e)f(stopp)r(ed)i(at)g(depth)g(1.)515 2219 y Fm(6.7)135+b(Exercises)575 2431 y Fq(6.1)40 b(Wh)n(y)28 b(is)f(sim)n(ulation)g+(not)h(enough)f(to)g(do)h(sequen)n(tial)f(v)n(eri\014cation?)575+2591 y(6.2)40 b(V)-7 b(erify)31 b(that)g(the)h Fp(edge)d+Fq(circuit)i(and)f(the)i(circuit)e Fp(evenSoFar)e Fq(from)i(exercise)g+(5.1)722 2691 y(alw)n(a)n(ys)c(ha)n(v)n(e)g(opp)r(osite)i(outputs)f(if)+i(fed)f(with)g(the)g(same)f(inputs.)575 2851 y(6.3)40+b(V)-7 b(erify)33 b(that)h(the)f(three)g(di\013eren)n(t)g(implemen)n+(tations)f(of)h(a)g(puls)g(generator)e(with)722 2950+y(p)r(erio)r(d)e(6)e(in)i(exercise)e(5.5)h(are)f(equiv)-5+b(alen)n(t.)39 b(What)28 b(is)g(the)h(induction)g(depth)g(that)722+3050 y(is)f(needed?)575 3210 y(6.4)40 b(V)-7 b(erify)35+b(the)g(ob)n(vious)e(relationship)h(b)r(et)n(w)n(een)g(the)h+Fp(puls)e Fq(circuit)i(and)f(the)h Fp(puls2)722 3309+y Fq(circuit)30 b(from)g(exercise)f(5.6,)h(for)f(di\013eren)n(t)h(v)-5+b(alues)30 b(of)g Fj(k)s Fq(.)44 b(What)30 b(is)g(the)h(induction)722+3409 y(depth)e(that)e(is)h(needed?)575 3569 y(6.5)40+b(V)-7 b(erify)21 b(that)g(the)g(up-part)f(of)h(the)g(up-do)n(wn)f+(coun)n(ter)g(y)n(ou)g(de\014ned)h(in)g(exercie)f(5.7)g(is)722+3669 y(equiv)-5 b(alen)n(t)27 b(to)g(the)g(up-coun)n(ter)f(from)g+(section)h(5.3.)35 b(Do)27 b(this)g(for)g(di\013eren)n(t)f(v)-5+b(alues)722 3768 y(of)28 b Fj(n)p Fq(.)575 3928 y(6.6)40+b(De\014ne)34 b(and)f(v)n(erify)f(the)h(follo)n(wing)f(prop)r(ert)n(y:)+47 b("if)33 b(the)g(input)h(to)f Fp(toggle)e Fq(is)i(the)722+4028 y(same)f(t)n(wice)g(in)h(a)f(ro)n(w,)h(then)g(the)f(curren)n(t)g+(output)h(is)f(the)h(same)f(as)g(the)h(output)722 4128+y(t)n(w)n(o)27 b(steps)h(ago".)575 4288 y(6.7)40 b(Consider)d(the)h+(follo)n(wing)f(general)g(prop)r(ert)n(y:)56 b("As)38+b(long)f(as)g Fj(A)h Fq(holds,)i(then)f Fj(B)722 4387+y Fq(m)n(ust)23 b(hold".)35 b(Ho)n(w)22 b(w)n(ould)h(y)n(ou)f(de\014ne)+h(suc)n(h)f(a)g(prop)r(ert)n(y?)35 b(Hin)n(t:)g(use)22+b(the)h Fp(always)722 4487 y Fq(circuit)28 b(from)f(5.4.)575+4647 y(6.8)40 b(Sho)n(w)27 b(that)h(doing)f(induction)h(with)g(depth)h+(1)e(amoun)n(ts)g(to)g(normal)g(induction.)575 4807 y(6.9)40+b(\(*\))31 b(Sho)n(w)e(that)i(doing)f(induction)g(with)h(depth)g+Fj(k)i Fq(is)d Fn(sound)p Fq(,)h(that)g(is,)g(if)f(w)n(e)g(ha)n(v)n(e)+722 4907 y(pro)n(v)n(en)g(the)i(base)f(case)f(and)h(the)h(inductiv)n(e)+g(step,)g(then)g(w)n(e)f(ha)n(v)n(e)f(really)h(pro)n(v)n(en)722+5006 y(that)d(the)g(prop)r(ert)n(y)f(alw)n(a)n(ys)e(holds.)1905+5255 y(36)p eop+%%Page: 37 38+37 37 bop 533 523 a Fq(6.10)40 b(\(**\))20 b(Sho)n(w)f(that)h(doing)f+(induction)h(with)g(depth)h Fj(k)h Fq(and)e(restricted)f(states)g(is)h+Fn(sound)p Fq(.)722 623 y(Y)-7 b(ou)28 b(ma)n(y)f(use)g(the)h(fact)g+(that)g(exercise)e(6.9)h(holds.)533 789 y(6.11)40 b(\(**\))25+b(Sho)n(w)f(that)h(doing)f(induction)h(with)g(depth)g+Fj(k)j Fq(and)c(restricted)g(states)g(is)h Fn(c)l(om-)722+888 y(plete)p Fq(.)1905 5255 y(37)p eop+%%Page: 38 39+38 38 bop 515 1186 a Fo(Chapter)64 b(7)515 1641 y Fs(Time)76+b(T)-19 b(ransformations)515 2112 y Fq(In)24 b(this)g(c)n(hapter,)g(w)n+(e)g(will)g(see)f(some)h(tec)n(hniques)f(with)i(whic)n(h)f(w)n(e)f(can)+h(compare)e(circuits)515 2212 y(that)28 b(op)r(erate)e(at)i(di\013eren)+n(t)g(clo)r(c)n(k)e(rates.)515 2523 y Fm(7.1)135 b(Timing)45+b(Issues)515 2745 y Fq(So)38 b(far,)i(when)e(w)n(e)g(w)n(ere)f+(comparing)f(t)n(w)n(o)i(circuits,)i(w)n(e)e(alw)n(a)n(ys)e(assumed)i+(that)g(they)515 2845 y(consumed)d(their)h(inputs)h(and)f(pro)r(duced)g+(their)g(outputs)g(at)g(the)g(same)g(rate.)61 b(Let)36+b(us)515 2944 y(tak)n(e)c(a)g(lo)r(ok)f(at)i(an)f(example)g(where)g+(this)h(is)f(not)h(the)g(case:)46 b(comparing)31 b(a)h(sequen)n(tial)+515 3044 y(adder)27 b(against)f(a)h(com)n(binational)g(adder.)515+3184 y(The)e(sequen)n(tial)f(adder)g(\(see)g(\014gure)g(7.1\))h(tak)n+(es)e(in)i(a)g(pair)f(of)g(bits)i(ev)n(ery)d(clo)r(c)n(k)h(tic)n(k,)h+(and)515 3283 y(outputs)k(the)g(sum,)g(and)f(remem)n(b)r(ers)g(the)h+(carry)e(for)h(the)h(next)g(clo)r(c)n(k)e(cycle.)40 b(The)29+b(carry)515 3383 y(is)e(reset)g(ev)n(ery)g Fj(n)p Fq(-th)g(clo)r(c)n(k)+g(tic)n(k.)37 b(Here)27 b(is)g(ho)n(w)g(w)n(e)h(de\014ned)g(it:)602+3556 y Fp(adderSeqPeriod)38 b(n)43 b(=)689 3656 y(rowSeqPeriod)c(n)k+(fullAdd)515 3830 y Fq(The)24 b(com)n(binational)f(adder)g(\(see)i+(\014gure)e(7.2\))h(tak)n(es)f(in)h(t)n(w)n(o)g Fj(n)p+Fq(-bit)g(binary)g(n)n(um)n(b)r(ers)f(and)515 3929 y(pro)r(duces)30+b(the)h(sum)g(as)f(a)h Fj(n)p Fq(-bit)g(binary)f(n)n(um)n(b)r(er)h(in)g+(one)f(clo)r(c)n(k)g(tic)n(k.)47 b(Here)30 b(is)h(ho)n(w)f(w)n(e)515+4029 y(de\014ne)e(it:)602 4203 y Fp(adderCom)40 b(abs)j(=)g(sum)689+4302 y(where)776 4402 y(\(sum,)f(carryOut\))e(=)j(row)f(fullAdd)f+(\(low,)g(abs\))1580 4807 y @beginspecial 0 @llx 0 @lly+176 @urx 56 @ury 880 @rwi @setspecial+%%BeginDocument: Pictures/adderSeq.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-94.0 181.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 4012 m -1000 -1000 l 5498 -1000 l 5498 4012 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 2400 2100 m 3300 2100 l 3300 3000 l 2400 3000 l cp gs col0 s gr +% Polyline+gs  clippath+2277 2595 m 2373 2625 l 2277 2655 l 2415 2655 l 2415 2595 l cp+clip+n 1800 2625 m 2400 2625 l gs col0 s gr gr++% arrowhead+n 2277 2595 m 2373 2625 l 2277 2655 l 2253 2625 l 2277 2595 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2277 2520 m 2373 2550 l 2277 2580 l 2415 2580 l 2415 2520 l cp+clip+n 1800 2550 m 2400 2550 l gs col0 s gr gr++% arrowhead+n 2277 2520 m 2373 2550 l 2277 2580 l 2253 2550 l 2277 2520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3777 2520 m 3873 2550 l 3777 2580 l 3915 2580 l 3915 2520 l cp+clip+n 3300 2550 m 3900 2550 l gs col0 s gr gr++% arrowhead+n 3777 2520 m 3873 2550 l 3777 2580 l 3753 2550 l 3777 2520 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+1575 2775 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+1575 2550 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+3975 2625 m+gs 1 -1 sc (sum) col0 sh gr+/Courier ff 270.00 scf sf+2625 2775 m+gs 1 -1 sc (Seq) col0 sh gr+/Courier ff 270.00 scf sf+2475 2550 m+gs 1 -1 sc (ADDER) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1381 4990 a Fq(Figure)27 b(7.1:)36 b(A)28+b(sequen)n(tial)f(adder.)1905 5255 y(38)p eop+%%Page: 39 40+39 39 bop 1543 1048 a @beginspecial 0 @llx 0 @lly 194+@urx 146 @ury 970 @rwi @setspecial+%%BeginDocument: Pictures/adderCom.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-229.0 199.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 4312 m -1000 -1000 l 8038 -1000 l 8038 4312 l cp clip+ 0.06000 0.06000 sc+/Helvetica ff 270.00 scf sf+3825 1200 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+3825 1425 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+3825 3000 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+3825 3225 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+3900 1575 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+3900 1875 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+3900 2175 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+3900 2475 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+3900 2775 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+6375 1575 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+6375 1875 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+6375 2175 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+6375 2475 m+gs 1 -1 sc (.) col0 sh gr+/Helvetica ff 270.00 scf sf+6375 2775 m+gs 1 -1 sc (.) col0 sh gr+% Polyline+7.500 slw+n 4800 900 m 5700 900 l 5700 3300 l 4800 3300 l cp gs col0 s gr +% Polyline+gs  clippath+4677 1245 m 4773 1275 l 4677 1305 l 4815 1305 l 4815 1245 l cp+clip+n 4200 1275 m 4800 1275 l gs col0 s gr gr++% arrowhead+n 4677 1245 m 4773 1275 l 4677 1305 l 4653 1275 l 4677 1245 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1170 m 4773 1200 l 4677 1230 l 4815 1230 l 4815 1170 l cp+clip+n 4200 1200 m 4800 1200 l gs col0 s gr gr++% arrowhead+n 4677 1170 m 4773 1200 l 4677 1230 l 4653 1200 l 4677 1170 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1470 m 4773 1500 l 4677 1530 l 4815 1530 l 4815 1470 l cp+clip+n 4200 1500 m 4800 1500 l gs col0 s gr gr++% arrowhead+n 4677 1470 m 4773 1500 l 4677 1530 l 4653 1500 l 4677 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1545 m 4773 1575 l 4677 1605 l 4815 1605 l 4815 1545 l cp+clip+n 4200 1575 m 4800 1575 l gs col0 s gr gr++% arrowhead+n 4677 1545 m 4773 1575 l 4677 1605 l 4653 1575 l 4677 1545 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1770 m 4773 1800 l 4677 1830 l 4815 1830 l 4815 1770 l cp+clip+n 4200 1800 m 4800 1800 l gs col0 s gr gr++% arrowhead+n 4677 1770 m 4773 1800 l 4677 1830 l 4653 1800 l 4677 1770 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1845 m 4773 1875 l 4677 1905 l 4815 1905 l 4815 1845 l cp+clip+n 4200 1875 m 4800 1875 l gs col0 s gr gr++% arrowhead+n 4677 1845 m 4773 1875 l 4677 1905 l 4653 1875 l 4677 1845 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2070 m 4773 2100 l 4677 2130 l 4815 2130 l 4815 2070 l cp+clip+n 4200 2100 m 4800 2100 l gs col0 s gr gr++% arrowhead+n 4677 2070 m 4773 2100 l 4677 2130 l 4653 2100 l 4677 2070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2145 m 4773 2175 l 4677 2205 l 4815 2205 l 4815 2145 l cp+clip+n 4200 2175 m 4800 2175 l gs col0 s gr gr++% arrowhead+n 4677 2145 m 4773 2175 l 4677 2205 l 4653 2175 l 4677 2145 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2370 m 4773 2400 l 4677 2430 l 4815 2430 l 4815 2370 l cp+clip+n 4200 2400 m 4800 2400 l gs col0 s gr gr++% arrowhead+n 4677 2370 m 4773 2400 l 4677 2430 l 4653 2400 l 4677 2370 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2445 m 4773 2475 l 4677 2505 l 4815 2505 l 4815 2445 l cp+clip+n 4200 2475 m 4800 2475 l gs col0 s gr gr++% arrowhead+n 4677 2445 m 4773 2475 l 4677 2505 l 4653 2475 l 4677 2445 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2670 m 4773 2700 l 4677 2730 l 4815 2730 l 4815 2670 l cp+clip+n 4200 2700 m 4800 2700 l gs col0 s gr gr++% arrowhead+n 4677 2670 m 4773 2700 l 4677 2730 l 4653 2700 l 4677 2670 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2745 m 4773 2775 l 4677 2805 l 4815 2805 l 4815 2745 l cp+clip+n 4200 2775 m 4800 2775 l gs col0 s gr gr++% arrowhead+n 4677 2745 m 4773 2775 l 4677 2805 l 4653 2775 l 4677 2745 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2970 m 4773 3000 l 4677 3030 l 4815 3030 l 4815 2970 l cp+clip+n 4200 3000 m 4800 3000 l gs col0 s gr gr++% arrowhead+n 4677 2970 m 4773 3000 l 4677 3030 l 4653 3000 l 4677 2970 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 3045 m 4773 3075 l 4677 3105 l 4815 3105 l 4815 3045 l cp+clip+n 4200 3075 m 4800 3075 l gs col0 s gr gr++% arrowhead+n 4677 3045 m 4773 3075 l 4677 3105 l 4653 3075 l 4677 3045 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 2970 m 6273 3000 l 6177 3030 l 6315 3030 l 6315 2970 l cp+clip+n 5700 3000 m 6300 3000 l gs col0 s gr gr++% arrowhead+n 6177 2970 m 6273 3000 l 6177 3030 l 6153 3000 l 6177 2970 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 2670 m 6273 2700 l 6177 2730 l 6315 2730 l 6315 2670 l cp+clip+n 5700 2700 m 6300 2700 l gs col0 s gr gr++% arrowhead+n 6177 2670 m 6273 2700 l 6177 2730 l 6153 2700 l 6177 2670 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 2370 m 6273 2400 l 6177 2430 l 6315 2430 l 6315 2370 l cp+clip+n 5700 2400 m 6300 2400 l gs col0 s gr gr++% arrowhead+n 6177 2370 m 6273 2400 l 6177 2430 l 6153 2400 l 6177 2370 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 2070 m 6273 2100 l 6177 2130 l 6315 2130 l 6315 2070 l cp+clip+n 5700 2100 m 6300 2100 l gs col0 s gr gr++% arrowhead+n 6177 2070 m 6273 2100 l 6177 2130 l 6153 2100 l 6177 2070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 1770 m 6273 1800 l 6177 1830 l 6315 1830 l 6315 1770 l cp+clip+n 5700 1800 m 6300 1800 l gs col0 s gr gr++% arrowhead+n 6177 1770 m 6273 1800 l 6177 1830 l 6153 1800 l 6177 1770 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 1470 m 6273 1500 l 6177 1530 l 6315 1530 l 6315 1470 l cp+clip+n 5700 1500 m 6300 1500 l gs col0 s gr gr++% arrowhead+n 6177 1470 m 6273 1500 l 6177 1530 l 6153 1500 l 6177 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 1170 m 6273 1200 l 6177 1230 l 6315 1230 l 6315 1170 l cp+clip+n 5700 1200 m 6300 1200 l gs col0 s gr gr++% arrowhead+n 6177 1170 m 6273 1200 l 6177 1230 l 6153 1200 l 6177 1170 l  cp gs 0.00 setgray ef gr  col0 s+/Courier ff 270.00 scf sf+5250 2550 m+gs 1 -1 sc  90.0 rot (ADDER) col0 sh gr+/Courier ff 270.00 scf sf+5475 2400 m+gs 1 -1 sc  90.0 rot (Com) col0 sh gr+/Times-Italic ff 270.00 scf sf+3975 3150 m+gs 1 -1 sc (7) col0 sh gr+/Helvetica ff 270.00 scf sf+6375 1275 m+gs 1 -1 sc (sum) col0 sh gr+/Helvetica ff 270.00 scf sf+6375 3075 m+gs 1 -1 sc (sum) col0 sh gr+/Times-Italic ff 270.00 scf sf+3975 1350 m+gs 1 -1 sc (1) col0 sh gr+/Times-Italic ff 270.00 scf sf+6900 3150 m+gs 1 -1 sc (7) col0 sh gr+/Times-Italic ff 270.00 scf sf+6900 1350 m+gs 1 -1 sc (1) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1306 1231 a Fq(Figure)27 b(7.2:)36 b(A)28+b(com)n(binational)e(adder.)1130 2255 y @beginspecial+0 @llx 0 @lly 392 @urx 218 @ury 1960 @rwi @setspecial+%%BeginDocument: Pictures/adderComSeqed.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-130.0 271.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 5512 m -1000 -1000 l 9698 -1000 l 9698 5512 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 3000 900 m 4200 900 l 4200 3300 l 3000 3300 l cp gs col0 s gr +% Polyline+n 6300 900 m 7500 900 l 7500 3300 l 6300 3300 l cp gs col0 s gr +% Polyline+gs  clippath+2877 2145 m 2973 2175 l 2877 2205 l 3015 2205 l 3015 2145 l cp+clip+n 2400 2175 m 3000 2175 l gs col0 s gr gr++% arrowhead+n 2877 2145 m 2973 2175 l 2877 2205 l 2853 2175 l 2877 2145 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 2070 m 2973 2100 l 2877 2130 l 3015 2130 l 3015 2070 l cp+clip+n 2400 2100 m 3000 2100 l gs col0 s gr gr++% arrowhead+n 2877 2070 m 2973 2100 l 2877 2130 l 2853 2100 l 2877 2070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 4800 900 m 5700 900 l 5700 3300 l 4800 3300 l cp gs col0 s gr +% Polyline+gs  clippath+4677 3045 m 4773 3075 l 4677 3105 l 4815 3105 l 4815 3045 l cp+clip+n 4200 3075 m 4800 3075 l gs col0 s gr gr++% arrowhead+n 4677 3045 m 4773 3075 l 4677 3105 l 4653 3075 l 4677 3045 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2970 m 4773 3000 l 4677 3030 l 4815 3030 l 4815 2970 l cp+clip+n 4200 3000 m 4800 3000 l gs col0 s gr gr++% arrowhead+n 4677 2970 m 4773 3000 l 4677 3030 l 4653 3000 l 4677 2970 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2745 m 4773 2775 l 4677 2805 l 4815 2805 l 4815 2745 l cp+clip+n 4200 2775 m 4800 2775 l gs col0 s gr gr++% arrowhead+n 4677 2745 m 4773 2775 l 4677 2805 l 4653 2775 l 4677 2745 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2670 m 4773 2700 l 4677 2730 l 4815 2730 l 4815 2670 l cp+clip+n 4200 2700 m 4800 2700 l gs col0 s gr gr++% arrowhead+n 4677 2670 m 4773 2700 l 4677 2730 l 4653 2700 l 4677 2670 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2445 m 4773 2475 l 4677 2505 l 4815 2505 l 4815 2445 l cp+clip+n 4200 2475 m 4800 2475 l gs col0 s gr gr++% arrowhead+n 4677 2445 m 4773 2475 l 4677 2505 l 4653 2475 l 4677 2445 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2370 m 4773 2400 l 4677 2430 l 4815 2430 l 4815 2370 l cp+clip+n 4200 2400 m 4800 2400 l gs col0 s gr gr++% arrowhead+n 4677 2370 m 4773 2400 l 4677 2430 l 4653 2400 l 4677 2370 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2145 m 4773 2175 l 4677 2205 l 4815 2205 l 4815 2145 l cp+clip+n 4200 2175 m 4800 2175 l gs col0 s gr gr++% arrowhead+n 4677 2145 m 4773 2175 l 4677 2205 l 4653 2175 l 4677 2145 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 2070 m 4773 2100 l 4677 2130 l 4815 2130 l 4815 2070 l cp+clip+n 4200 2100 m 4800 2100 l gs col0 s gr gr++% arrowhead+n 4677 2070 m 4773 2100 l 4677 2130 l 4653 2100 l 4677 2070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1845 m 4773 1875 l 4677 1905 l 4815 1905 l 4815 1845 l cp+clip+n 4200 1875 m 4800 1875 l gs col0 s gr gr++% arrowhead+n 4677 1845 m 4773 1875 l 4677 1905 l 4653 1875 l 4677 1845 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1770 m 4773 1800 l 4677 1830 l 4815 1830 l 4815 1770 l cp+clip+n 4200 1800 m 4800 1800 l gs col0 s gr gr++% arrowhead+n 4677 1770 m 4773 1800 l 4677 1830 l 4653 1800 l 4677 1770 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1545 m 4773 1575 l 4677 1605 l 4815 1605 l 4815 1545 l cp+clip+n 4200 1575 m 4800 1575 l gs col0 s gr gr++% arrowhead+n 4677 1545 m 4773 1575 l 4677 1605 l 4653 1575 l 4677 1545 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1470 m 4773 1500 l 4677 1530 l 4815 1530 l 4815 1470 l cp+clip+n 4200 1500 m 4800 1500 l gs col0 s gr gr++% arrowhead+n 4677 1470 m 4773 1500 l 4677 1530 l 4653 1500 l 4677 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1245 m 4773 1275 l 4677 1305 l 4815 1305 l 4815 1245 l cp+clip+n 4200 1275 m 4800 1275 l gs col0 s gr gr++% arrowhead+n 4677 1245 m 4773 1275 l 4677 1305 l 4653 1275 l 4677 1245 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4677 1170 m 4773 1200 l 4677 1230 l 4815 1230 l 4815 1170 l cp+clip+n 4200 1200 m 4800 1200 l gs col0 s gr gr++% arrowhead+n 4677 1170 m 4773 1200 l 4677 1230 l 4653 1200 l 4677 1170 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 6300 3900 m 7500 3900 l 7500 4500 l 6300 4500 l cp gs col0 s gr +% Polyline+gs  clippath+6177 2970 m 6273 3000 l 6177 3030 l 6315 3030 l 6315 2970 l cp+clip+n 5700 3000 m 6300 3000 l gs col0 s gr gr++% arrowhead+n 6177 2970 m 6273 3000 l 6177 3030 l 6153 3000 l 6177 2970 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 2670 m 6273 2700 l 6177 2730 l 6315 2730 l 6315 2670 l cp+clip+n 5700 2700 m 6300 2700 l gs col0 s gr gr++% arrowhead+n 6177 2670 m 6273 2700 l 6177 2730 l 6153 2700 l 6177 2670 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 2370 m 6273 2400 l 6177 2430 l 6315 2430 l 6315 2370 l cp+clip+n 5700 2400 m 6300 2400 l gs col0 s gr gr++% arrowhead+n 6177 2370 m 6273 2400 l 6177 2430 l 6153 2400 l 6177 2370 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 2070 m 6273 2100 l 6177 2130 l 6315 2130 l 6315 2070 l cp+clip+n 5700 2100 m 6300 2100 l gs col0 s gr gr++% arrowhead+n 6177 2070 m 6273 2100 l 6177 2130 l 6153 2100 l 6177 2070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 1770 m 6273 1800 l 6177 1830 l 6315 1830 l 6315 1770 l cp+clip+n 5700 1800 m 6300 1800 l gs col0 s gr gr++% arrowhead+n 6177 1770 m 6273 1800 l 6177 1830 l 6153 1800 l 6177 1770 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 1470 m 6273 1500 l 6177 1530 l 6315 1530 l 6315 1470 l cp+clip+n 5700 1500 m 6300 1500 l gs col0 s gr gr++% arrowhead+n 6177 1470 m 6273 1500 l 6177 1530 l 6153 1500 l 6177 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6177 1170 m 6273 1200 l 6177 1230 l 6315 1230 l 6315 1170 l cp+clip+n 5700 1200 m 6300 1200 l gs col0 s gr gr++% arrowhead+n 6177 1170 m 6273 1200 l 6177 1230 l 6153 1200 l 6177 1170 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+7977 2070 m 8073 2100 l 7977 2130 l 8115 2130 l 8115 2070 l cp+clip+n 7500 2100 m 8100 2100 l gs col0 s gr gr++% arrowhead+n 7977 2070 m 8073 2100 l 7977 2130 l 7953 2100 l 7977 2070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6870 3423 m 6900 3327 l 6930 3423 l 6930 3285 l 6870 3285 l cp+clip+n 6900 3900 m 6900 3300 l gs col0 s gr gr++% arrowhead+n 6870 3423 m 6900 3327 l 6930 3423 l 6900 3447 l 6870 3423 l  cp gs 0.00 setgray ef gr  col0 s+/Courier ff 270.00 scf sf+3975 2775 m+gs 1 -1 sc  90.0 rot (Parallel) col0 sh gr+/Courier ff 270.00 scf sf+3675 2325 m+gs 1 -1 sc  90.0 rot (to) col0 sh gr+/Courier ff 270.00 scf sf+6675 2775 m+gs 1 -1 sc  90.0 rot (Parallel) col0 sh gr+/Courier ff 270.00 scf sf+7275 2625 m+gs 1 -1 sc  90.0 rot (Serial) col0 sh gr+/Courier ff 270.00 scf sf+6975 2325 m+gs 1 -1 sc  90.0 rot (to) col0 sh gr+/Helvetica ff 270.00 scf sf+2175 2100 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+2175 2325 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+8175 2175 m+gs 1 -1 sc (sum) col0 sh gr+/Courier ff 270.00 scf sf+3375 2625 m+gs 1 -1 sc  90.0 rot (Serial) col0 sh gr+/Courier ff 270.00 scf sf+6600 4275 m+gs 1 -1 sc (Puls) col0 sh gr+/Courier ff 270.00 scf sf+5250 2550 m+gs 1 -1 sc  90.0 rot (ADDER) col0 sh gr+/Courier ff 270.00 scf sf+5475 2400 m+gs 1 -1 sc  90.0 rot (Com) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1025 2438 a(Figure)g(7.3:)37 b(The)27 b(slo)n(w)n(ed)g(do)+n(wn)g(com)n(binational)f(adder.)515 2703 y(F)-7 b(or)27+b(con)n(v)n(enience,)f(w)n(e)h(abstract)g(a)n(w)n(a)n(y)e(from)j(the)g+(carry)-7 b(.)515 2842 y(There)27 b(are)f(t)n(w)n(o)h(basic)g(metho)r+(ds)h(for)f(comparing)f(these)i(t)n(w)n(o)f(circuits.)515+2982 y(The)38 b(\014rst)h(metho)r(d)g(in)n(v)n(olv)n(es)e(slo)n(wing)g+(do)n(wn)h(the)i(com)n(binational)d(adder,)k(so)d(that)h(it)515+3082 y(tak)n(es)25 b(more)g(clo)r(c)n(k)h(tic)n(ks)f(to)h(calculate)g+(the)g(sum.)37 b(So)26 b(instead)g(of)g(taking)f Fj(n)h+Fq(pairs)g(of)g(bits)515 3181 y(at)31 b(a)g(time,)i(it)f(tak)n(es)f+(them)h(in)g(one-b)n(y-one,)e(and)i(when)g(it)g(has)f(gotten)g(all)g+(of)g(them,)j(it)515 3281 y(outputs)d(the)g(sums)f(one-b)n(y-one.)44+b(The)31 b(circuits)f(no)n(w)g(op)r(erate)g(at)g(the)h(same)g(rate,)f+(and)515 3380 y(can)d(b)r(e)h(compared)e(b)n(y)i(con)n(v)n(en)n(tional)+d(metho)r(ds.)515 3520 y(The)30 b(second)f(metho)r(d)h(in)n(v)n(olv)n+(es)e(sp)r(eeding)i(up)g(the)g(sequen)n(tial)f(adder,)h(so)f(that)h(it)+h(com-)515 3620 y(putes)g(sev)n(eral)e(results)h(in)h(one)f(clo)r(c)n+(k)g(tic)n(k.)46 b(So)30 b(instead)g(of)h(taking)f(in)h(one)f(pair)g+(of)h(bits)515 3719 y(at)c(a)g(time,)i(it)f(tak)n(es)e(in)i+Fj(n)g Fq(pairs)e(of)i(bits,)g(and)f(pro)r(duces)g Fj(n)h+Fq(sums)f(in)h(one)f(clo)r(c)n(k)g(cycle.)515 4034 y+Fm(7.2)135 b(Slo)l(wing)46 b(Do)l(wn)515 4255 y Fq(The)33+b(\014rst)f(tec)n(hnique)h(w)n(e)f(describ)r(e)h Fn(slows)i(down)e+Fq(the)h(com)n(binational)d(circuit.)52 b(So,)34 b(in-)515+4355 y(stead)24 b(of)g(computing)g(ev)n(erything)f(in)h(one)g(clo)r(c)n+(k)f(tic)n(k,)i(w)n(e)f(force)f(it)i(to)f(tak)n(e)f Fj(n)h+Fq(clo)r(c)n(k)f(tic)n(ks)515 4454 y(instead.)35 b(W)-7+b(e)23 b(do)g(this)g(b)n(y)g(transforming)f(the)h(circuit)g(in)n(to)g+(a)f(circuit)h(that)h(lo)r(oks)e(just)h(lik)n(e)515 4554+y(the)34 b(sequen)n(tial)e(v)n(ersion:)48 b(it)34 b(tak)n(es)e(one)h+(input)i(and)e(pro)r(duces)g(one)g(output)h(at)f(a)h(time)515+4654 y(\(see)27 b(\014gure)g(7.3\).)515 4793 y(Since)h(the)g(inputs)g+(come)f(in)h(one-b)n(y-one,)e(w)n(e)i(ha)n(v)n(e)e(to)i(w)n(ait)f(for)g+Fj(n)h Fq(clo)r(c)n(k)f(tic)n(ks)g(un)n(til)h(w)n(e)515+4893 y(ha)n(v)n(e)22 b(the)i(full)h(input)g(a)n(v)-5+b(ailable)22 b(for)h(the)h(circuit.)36 b(This)24 b(is)f(done)h(b)n(y)f+(the)h Fn(serial)k(to)e(p)l(ar)l(al)t(lel)515 4992 y(c)l(onverter)i+Fq(\(see)f(\014gure)g(7.4\).)36 b(W)-7 b(e)28 b(can)g(implemen)n(t)g+(this)g(comp)r(onen)n(t)f(as)g(follo)n(ws:)1905 5255+y(39)p eop+%%Page: 40 41+40 40 bop 1609 1925 a @beginspecial 0 @llx 0 @lly 162+@urx 302 @ury 810 @rwi @setspecial+%%BeginDocument: Pictures/ser2par.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-40.0 333.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 6550 m -1000 -1000 l 4363 -1000 l 4363 6550 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 1500 900 m 2400 900 l 2400 1800 l 1500 1800 l cp gs col0 s gr +% Polyline+n 1500 4200 m 2400 4200 l 2400 5100 l 1500 5100 l cp gs col0 s gr +% Polyline+n 1500 2400 m 2400 2400 l 2400 3300 l 1500 3300 l cp gs col0 s gr +% Polyline+ [15 45] 45 sd+n 1950 3600 m 1950 4200 l gs col0 s gr  [] 0 sd+% Polyline+gs  clippath+2877 570 m 2973 600 l 2877 630 l 3015 630 l 3015 570 l cp+clip+n 900 600 m 3000 600 l gs col0 s gr gr++% arrowhead+n 2877 570 m 2973 600 l 2877 630 l 2853 600 l 2877 570 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+1980 777 m 1950 873 l 1920 777 l 1920 915 l 1980 915 l cp+clip+n 1950 600 m 1950 900 l gs col0 s gr gr++% arrowhead+n 1980 777 m 1950 873 l 1920 777 l 1950 753 l 1980 777 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+1980 2277 m 1950 2373 l 1920 2277 l 1920 2415 l 1980 2415 l cp+clip+n 1950 1800 m 1950 2400 l gs col0 s gr gr++% arrowhead+n 1980 2277 m 1950 2373 l 1920 2277 l 1950 2253 l 1980 2277 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 2070 m 2973 2100 l 2877 2130 l 3015 2130 l 3015 2070 l cp+clip+n 1950 2100 m 3000 2100 l gs col0 s gr gr++% arrowhead+n 2877 2070 m 2973 2100 l 2877 2130 l 2853 2100 l 2877 2070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 3570 m 2973 3600 l 2877 3630 l 3015 3630 l 3015 3570 l cp+clip+n 1950 3300 m 1950 3600 l 3000 3600 l gs col0 s gr gr++% arrowhead+n 2877 3570 m 2973 3600 l 2877 3630 l 2853 3600 l 2877 3570 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 5370 m 2973 5400 l 2877 5430 l 3015 5430 l 3015 5370 l cp+clip+n 1950 5100 m 1950 5400 l 3000 5400 l gs col0 s gr gr++% arrowhead+n 2877 5370 m 2973 5400 l 2877 5430 l 2853 5400 l 2877 5370 l  cp gs 0.00 setgray ef gr  col0 s+/Times-Italic ff 270.00 scf sf+1950 3000 m+gs 1 -1 sc (low) col0 sh gr+/Courier ff 270.00 scf sf+1800 2925 m+gs 1 -1 sc (D) col0 sh gr+/Courier ff 270.00 scf sf+1800 4725 m+gs 1 -1 sc (D) col0 sh gr+/Courier ff 270.00 scf sf+1800 1425 m+gs 1 -1 sc (D) col0 sh gr+/Times-Italic ff 270.00 scf sf+1950 1500 m+gs 1 -1 sc (low) col0 sh gr+/Times-Italic ff 270.00 scf sf+1950 4800 m+gs 1 -1 sc (low) col0 sh gr+/Helvetica ff 270.00 scf sf+675 675 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+3075 675 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+3075 2175 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+3075 3675 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+3075 5475 m+gs 1 -1 sc (x) col0 sh gr+/Times-Italic ff 270.00 scf sf+3225 750 m+gs 1 -1 sc (1) col0 sh gr+/Times-Italic ff 270.00 scf sf+3225 2250 m+gs 1 -1 sc (2) col0 sh gr+/Times-Italic ff 270.00 scf sf+3225 3750 m+gs 1 -1 sc (3) col0 sh gr+/Times-Italic ff 270.00 scf sf+3225 5550 m+gs 1 -1 sc (n) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1202 2108 a Fq(Figure)27 b(7.4:)36 b(A)28+b(serial)e(to)i(parallel)e(con)n(v)n(erter.)1478 4581+y @beginspecial 0 @llx 0 @lly 225 @urx 465 @ury 1125+@rwi @setspecial+%%BeginDocument: Pictures/par2ser.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-58.0 500.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 9325 m -1000 -1000 l 5713 -1000 l 5713 9325 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 1800 4500 m 2700 4500 l 2700 5400 l 1800 5400 l cp gs col0 s gr +/Courier ff 270.00 scf sf+2100 5025 m+gs 1 -1 sc (D) col0 sh gr+/Times-Italic ff 270.00 scf sf+2250 5100 m+gs 1 -1 sc (low) col0 sh gr+% Polyline+n 1800 900 m 2700 900 l 2700 1800 l 1800 1800 l cp gs col0 s gr +/Courier ff 270.00 scf sf+2100 1425 m+gs 1 -1 sc (D) col0 sh gr+/Times-Italic ff 270.00 scf sf+2250 1500 m+gs 1 -1 sc (low) col0 sh gr+% Polyline+n 1800 2700 m 2700 2700 l 2700 3600 l 1800 3600 l cp gs col0 s gr +/Courier ff 270.00 scf sf+2100 3225 m+gs 1 -1 sc (D) col0 sh gr+/Times-Italic ff 270.00 scf sf+2250 3300 m+gs 1 -1 sc (low) col0 sh gr+% Polyline+n 3000 6600 m 3300 6600 l 3300 7500 l 3000 7500 l cp gs col0 s gr +% Polyline+n 3000 4200 m 3300 4200 l 3300 5100 l 3000 5100 l cp gs col0 s gr +% Polyline+n 3000 600 m 3300 600 l 3300 1500 l 3000 1500 l cp gs col0 s gr +% Polyline+n 3000 2400 m 3300 2400 l 3300 3300 l 3000 3300 l cp gs col0 s gr +% Polyline+gs  clippath+2220 1923 m 2250 1827 l 2280 1923 l 2280 1785 l 2220 1785 l cp+clip+n 3300 2850 m 3600 2850 l 3600 2250 l 2250 2250 l 2250 1800 l gs col0 s gr gr++% arrowhead+n 2220 1923 m 2250 1827 l 2280 1923 l 2250 1947 l 2220 1923 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 720 m 2973 750 l 2877 780 l 3015 780 l 3015 720 l cp+clip+n 1200 750 m 3000 750 l gs col0 s gr gr++% arrowhead+n 2877 720 m 2973 750 l 2877 780 l 2853 750 l 2877 720 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 1320 m 2973 1350 l 2877 1380 l 3015 1380 l 3015 1320 l cp+clip+n 2700 1350 m 3000 1350 l gs col0 s gr gr++% arrowhead+n 2877 1320 m 2973 1350 l 2877 1380 l 2853 1350 l 2877 1320 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4377 1020 m 4473 1050 l 4377 1080 l 4515 1080 l 4515 1020 l cp+clip+n 3300 1050 m 4500 1050 l gs col0 s gr gr++% arrowhead+n 4377 1020 m 4473 1050 l 4377 1080 l 4353 1050 l 4377 1020 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 3120 m 2973 3150 l 2877 3180 l 3015 3180 l 3015 3120 l cp+clip+n 2700 3150 m 3000 3150 l gs col0 s gr gr++% arrowhead+n 2877 3120 m 2973 3150 l 2877 3180 l 2853 3150 l 2877 3120 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 2520 m 2973 2550 l 2877 2580 l 3015 2580 l 3015 2520 l cp+clip+n 1200 2550 m 3000 2550 l gs col0 s gr gr++% arrowhead+n 2877 2520 m 2973 2550 l 2877 2580 l 2853 2550 l 2877 2520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2220 3723 m 2250 3627 l 2280 3723 l 2280 3585 l 2220 3585 l cp+clip+n 3300 4650 m 3600 4650 l 3600 4050 l 2250 4050 l 2250 3600 l gs col0 s gr gr++% arrowhead+n 2220 3723 m 2250 3627 l 2280 3723 l 2250 3747 l 2220 3723 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 4320 m 2973 4350 l 2877 4380 l 3015 4380 l 3015 4320 l cp+clip+n 1200 4350 m 3000 4350 l gs col0 s gr gr++% arrowhead+n 2877 4320 m 2973 4350 l 2877 4380 l 2853 4350 l 2877 4320 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 4920 m 2973 4950 l 2877 4980 l 3015 4980 l 3015 4920 l cp+clip+n 2700 4950 m 3000 4950 l gs col0 s gr gr++% arrowhead+n 2877 4920 m 2973 4950 l 2877 4980 l 2853 4950 l 2877 4920 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 6720 m 2973 6750 l 2877 6780 l 3015 6780 l 3015 6720 l cp+clip+n 1200 6750 m 3000 6750 l gs col0 s gr gr++% arrowhead+n 2877 6720 m 2973 6750 l 2877 6780 l 2853 6750 l 2877 6720 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 7320 m 2973 7350 l 2877 7380 l 3015 7380 l 3015 7320 l cp+clip+n 2700 7350 m 3000 7350 l gs col0 s gr gr++% arrowhead+n 2877 7320 m 2973 7350 l 2877 7380 l 2853 7350 l 2877 7320 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 3300 7050 m 3600 7050 l 3600 6450 l 2250 6450 l gs col0 s gr +% Polyline+ [60] 0 sd+gs  clippath+3120 7623 m 3150 7527 l 3180 7623 l 3180 7485 l 3120 7485 l cp+clip+n 3150 7500 m 3150 8100 l gs col0 s gr gr+ [] 0 sd+% arrowhead+n 3120 7623 m 3150 7527 l 3180 7623 l 3150 7647 l 3120 7623 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+ [60] 0 sd+gs  clippath+3120 5223 m 3150 5127 l 3180 5223 l 3180 5085 l 3120 5085 l cp+clip+n 3150 5100 m 3150 6600 l gs col0 s gr gr+ [] 0 sd+% arrowhead+n 3120 5223 m 3150 5127 l 3180 5223 l 3150 5247 l 3120 5223 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+ [60] 0 sd+gs  clippath+3120 3423 m 3150 3327 l 3180 3423 l 3180 3285 l 3120 3285 l cp+clip+n 3150 3300 m 3150 4200 l gs col0 s gr gr+ [] 0 sd+% arrowhead+n 3120 3423 m 3150 3327 l 3180 3423 l 3150 3447 l 3120 3423 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+ [60] 0 sd+gs  clippath+3120 1623 m 3150 1527 l 3180 1623 l 3180 1485 l 3120 1485 l cp+clip+n 3150 1500 m 3150 2400 l gs col0 s gr gr+ [] 0 sd+% arrowhead+n 3120 1623 m 3150 1527 l 3180 1623 l 3150 1647 l 3120 1623 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2220 6123 m 2250 6027 l 2280 6123 l 2280 5985 l 2220 5985 l cp+clip+n 2250 6450 m 2250 6000 l gs col0 s gr gr++% arrowhead+n 2220 6123 m 2250 6027 l 2280 6123 l 2250 6147 l 2220 6123 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+ [15 45] 45 sd+n 2250 6000 m 2250 5400 l gs col0 s gr  [] 0 sd+/Courier ff 270.00 scf sf+3075 6900 m+gs 1 -1 sc (1) col0 sh gr+/Courier ff 270.00 scf sf+3075 7425 m+gs 1 -1 sc (0) col0 sh gr+/Courier ff 270.00 scf sf+3075 4500 m+gs 1 -1 sc (1) col0 sh gr+/Courier ff 270.00 scf sf+3075 5025 m+gs 1 -1 sc (0) col0 sh gr+/Times-Italic ff 270.00 scf sf+2250 7425 m+gs 1 -1 sc (low) col0 sh gr+/Courier ff 270.00 scf sf+3075 900 m+gs 1 -1 sc (1) col0 sh gr+/Courier ff 270.00 scf sf+3075 1425 m+gs 1 -1 sc (0) col0 sh gr+/Helvetica ff 270.00 scf sf+975 825 m+gs 1 -1 sc (y) col0 sh gr+/Helvetica ff 270.00 scf sf+975 2625 m+gs 1 -1 sc (y) col0 sh gr+/Helvetica ff 270.00 scf sf+975 4425 m+gs 1 -1 sc (y) col0 sh gr+/Helvetica ff 270.00 scf sf+975 6825 m+gs 1 -1 sc (y) col0 sh gr+/Helvetica ff 270.00 scf sf+4575 1125 m+gs 1 -1 sc (y) col0 sh gr+/Times-Italic ff 270.00 scf sf+1050 900 m+gs 1 -1 sc (1) col0 sh gr+/Times-Italic ff 270.00 scf sf+1050 2775 m+gs 1 -1 sc (2) col0 sh gr+/Times-Italic ff 270.00 scf sf+1050 4575 m+gs 1 -1 sc (3) col0 sh gr+/Times-Italic ff 270.00 scf sf+1050 6900 m+gs 1 -1 sc (n) col0 sh gr+/Helvetica ff 270.00 scf sf+2925 8325 m+gs 1 -1 sc (load) col0 sh gr+/Courier ff 270.00 scf sf+3075 2700 m+gs 1 -1 sc (1) col0 sh gr+/Courier ff 270.00 scf sf+3075 3225 m+gs 1 -1 sc (0) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1202 4763 a(Figure)h(7.5:)36 b(A)28 b(parallel)e(to)i+(serial)e(con)n(v)n(erter.)1905 5255 y(40)p eop+%%Page: 41 42+41 41 bop 602 523 a Fp(serialToParallel)37 b(1)43 b(inp)f(=)i([inp])602+722 y(serialToParallel)37 b(n)43 b(inp)f(=)i(inp)e(:)h(rest)689+822 y(where)776 922 y(inp')f(=)h(delay)f(zero)g(inp)776+1021 y(rest)g(=)h(serialToParallel)37 b(\(n-1\))42 b(inp')515+1204 y Fq(Then)21 b(w)n(e)g(ha)n(v)n(e)f(to)h(tak)n(e)g(care)f(of)h+(the)g(outputs.)35 b(A)n(t)22 b(ev)n(ery)e(clo)r(c)n(k)g(tic)n(k,)j+(the)e(com)n(binational)515 1304 y(circuit)30 b(pro)r(duces)g+Fj(n)h Fq(outputs,)h(but)f(they)g(only)f(mak)n(e)g(sense)g(on)g(ev)n+(ery)f Fj(n)p Fq(-th,)j(2)p Fj(n)p Fq(-th,)f(...)515+1404 y(clo)r(c)n(k)e(tic)n(k,)i(b)r(ecause)f(then)g(w)n(e)g(ha)n(v)n(e)+f(the)i(righ)n(t)e(input.)46 b(Therefore,)29 b(w)n(e)h(need)g(to)g(add)+g(a)515 1503 y(comp)r(onen)n(t)c(on)h(the)h(outputs)f(that)g(spreads)f+(out)h(the)g(outputs)h(of)f(the)g(imp)r(ortan)n(t)g(clo)r(c)n(k)515+1603 y(tic)n(ks)h(o)n(v)n(er)f(the)i(other)f(clo)r(c)n(k)g(tic)n(ks.)39+b(This)29 b(is)f(done)g(b)n(y)h(the)g Fn(p)l(ar)l(al)t(lel)j(to)f+(serial)h(c)l(onverter)515 1702 y Fq(\(see)27 b(\014gure)g(7.5\).)36+b(W)-7 b(e)28 b(can)g(implemen)n(t)g(this)g(comp)r(onen)n(t)f(as)g+(follo)n(ws:)602 1886 y Fp(parallelToSerial)37 b(\(load,)k([inp]\))g(=)+i(out)689 1985 y(where)776 2085 y(out)86 b(=)43 b(mux)g(\(load,)e+(\(low,)g(inp\)\))602 2284 y(parallelToSerial)c(\(load,)k(inp:inps\))f+(=)j(out)689 2384 y(where)776 2483 y(from)f(=)h(parallelToSerial)37+b(\(load,)k(inps\))776 2583 y(prev)h(=)h(delay)f(low)g(from)776+2683 y(out)86 b(=)43 b(mux)g(\(load,)e(\(prev,)g(inp\)\))515+2866 y Fq(Then,)28 b(w)n(e)f(can)g(put)h(these)g(comp)r(onen)n(ts)f+(together)g(in)g(a)h(new)f(sequen)n(tial)g(adder:)602+3049 y Fp(adderSlowedDown)37 b(n)43 b(ab)g(=)g(sum)689+3149 y(where)776 3248 y(abs)86 b(=)43 b(serialToParallel)37+b(n)43 b(ab)776 3348 y(sums)f(=)h(adderCom)e(abs)776+3447 y(load)h(=)h(puls)f(n)h(\(\))776 3547 y(sum)86 b(=)43+b(parallelToSerial)37 b(\(load,)k(sums\))515 3730 y Fq(The)30+b Fp(load)e Fq(input)j(to)f(the)h(parallel)d(to)i(serial)f(con)n(v)n+(erter)f(is)i(a)g(puls)g(with)h(p)r(erio)r(d)f Fj(n)p+Fq(.)44 b(Let)515 3830 y(us)27 b(tak)n(e)g(a)g(lo)r(ok)g(at)h(ho)n(w)f+(this)h(sequen)n(tial)e(adder)h(adds)g(up)h(binary)f(n)n(um)n(b)r(ers)g+(for)g Fj(n)h Fq(=)f(4.)747 4023 y(clo)r(c)n(k)p 1040+4053 4 100 v 203 w(1)p 1265 4053 V 183 w(2)p 1489 4053+V 182 w(3)p 1714 4053 V 183 w(4)p 1938 4053 V 194 w(5)p+2186 4053 V 205 w(6)p 2433 4053 V 206 w(7)p 2681 4053+V 206 w(8)p 2928 4053 V 214 w(9)p 698 4057 2499 4 v 747+4126 a(input)p 1040 4156 4 100 v 152 w(ab)1180 4138 y+Fd(1)p 1265 4156 V 1316 4126 a Fq(ab)1404 4138 y Fd(2)p+1489 4156 V 1541 4126 a Fq(ab)1629 4138 y Fd(3)p 1714+4156 V 1765 4126 a Fq(ab)1853 4138 y Fd(4)p 1938 4156+V 1990 4126 a Fq(ab')2101 4138 y Fd(1)p 2186 4156 V 2237+4126 a Fq(ab')2348 4138 y Fd(2)p 2433 4156 V 2485 4126+a Fq(ab')2596 4138 y Fd(3)p 2681 4156 V 2732 4126 a Fq(ab')2843+4138 y Fd(4)p 2928 4156 V 2980 4126 a Fq(ab")3110 4138+y Fd(1)p 698 4160 2499 4 v 747 4229 a Fq(output)p 1040+4259 4 100 v 142 w(0)p 1265 4259 V 183 w(0)p 1489 4259+V 182 w(0)p 1714 4259 V 169 w(s)1826 4241 y Fd(1)p 1938+4259 V 2029 4229 a Fq(s)2062 4241 y Fd(2)p 2186 4259+V 2276 4229 a Fq(s)2309 4241 y Fd(3)p 2433 4259 V 2524+4229 a Fq(s)2557 4241 y Fd(4)p 2681 4259 V 2760 4229+a Fq(s')2816 4241 y Fd(1)p 2928 4259 V 3017 4229 a Fq(s')3073+4241 y Fd(2)515 4425 y Fq(As)h(w)n(e)g(can)g(see,)g(the)g(results)g(s)+1513 4437 y Fg(i)1569 4425 y Fq(are)f(dela)n(y)n(ed)g(b)n(y)h+Fj(n)19 b Fi(\000)f Fq(1)28 b(clo)r(c)n(k)f(tic)n(ks.)39+b(This)28 b(is)g(of)g(course)515 4524 y(b)r(ecause)i(the)h(result)f(is)+h(computed)g(at)f(the)i Fj(n)p Fq(-th,)f(2)p Fj(n)p Fq(-th,)g(...)46+b(clo)r(c)n(k)30 b(tic)n(k.)46 b(So,)32 b(when)e(w)n(e)515+4624 y(compare)d(this)i(with)h(the)f(original)e(sequen)n(tial)h(adder,)+h(w)n(e)f(ha)n(v)n(e)g(to)h(slo)n(w)f(the)h(output)g(of)515+4723 y(that)f(one)f(do)n(wn)g(with)h Fj(n)18 b Fi(\000)g+Fq(1)28 b(dela)n(y)e(comp)r(onen)n(ts.)37 b(Here)27 b(is)g(the)h(prop)r+(ert)n(y:)602 4907 y Fp(prop_AdderSeqSlo)o(we)o(dDo)o(wn)37+b(n)43 b(ab)g(=)g(ok)689 5006 y(where)1905 5255 y Fq(41)p+eop+%%Page: 42 43+42 42 bop 1628 1123 a @beginspecial 0 @llx 0 @lly 153+@urx 164 @ury 765 @rwi @setspecial+%%BeginDocument: Pictures/explF.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-58.0 216.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 4600 m -1000 -1000 l 4513 -1000 l 4513 4600 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 1800 1800 m 2700 1800 l 2700 2700 l 1800 2700 l cp gs col0 s gr +% Polyline+gs  clippath+1677 2220 m 1773 2250 l 1677 2280 l 1815 2280 l 1815 2220 l cp+clip+n 1200 2250 m 1800 2250 l gs col0 s gr gr++% arrowhead+n 1677 2220 m 1773 2250 l 1677 2280 l 1653 2250 l 1677 2220 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 1677 m 2250 1773 l 2220 1677 l 2220 1815 l 2280 1815 l cp+clip+n 2250 1200 m 2250 1800 l gs col0 s gr gr++% arrowhead+n 2280 1677 m 2250 1773 l 2220 1677 l 2250 1653 l 2280 1677 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 2220 m 3273 2250 l 3177 2280 l 3315 2280 l 3315 2220 l cp+clip+n 2700 2250 m 3300 2250 l gs col0 s gr gr++% arrowhead+n 3177 2220 m 3273 2250 l 3177 2280 l 3153 2250 l 3177 2220 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 3177 m 2250 3273 l 2220 3177 l 2220 3315 l 2280 3315 l cp+clip+n 2250 2700 m 2250 3300 l gs col0 s gr gr++% arrowhead+n 2280 3177 m 2250 3273 l 2220 3177 l 2250 3153 l 2280 3177 l  cp gs 0.00 setgray ef gr  col0 s+/Courier ff 270.00 scf sf+2025 2325 m+gs 1 -1 sc (F) col0 sh gr+/Times-Italic ff 270.00 scf sf+2100 2400 m+gs 1 -1 sc (expl) col0 sh gr+/Helvetica ff 270.00 scf sf+975 2325 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 2325 m+gs 1 -1 sc (y) col0 sh gr+/Helvetica ff 270.00 scf sf+2100 1050 m+gs 1 -1 sc (q) col0 sh gr+/Helvetica ff 270.00 scf sf+2025 3525 m+gs 1 -1 sc (q) col0 sh gr+/Times-Italic ff 270.00 scf sf+2175 3600 m+gs 1 -1 sc (new) col0 sh gr+/Times-Italic ff 270.00 scf sf+2250 1125 m+gs 1 -1 sc (old) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 675 1306 a Fq(Figure)27 b(7.6:)36 b(A)28+b(com)n(binational)f(circuit)g(with)h(explicit)g(states)f+Ff(q)2750 1324 y Fe(old)2871 1306 y Fq(and)g Ff(q)3075+1318 y Fe(new)3195 1306 y Fq(.)1609 2931 y @beginspecial+0 @llx 0 @lly 162 @urx 362 @ury 810 @rwi @setspecial+%%BeginDocument: Pictures/timeTransformF.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-58.0 451.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 8512 m -1000 -1000 l 4663 -1000 l 4663 8512 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 1800 5100 m 2700 5100 l 2700 6000 l 1800 6000 l cp gs col0 s gr +% Polyline+gs  clippath+1677 5520 m 1773 5550 l 1677 5580 l 1815 5580 l 1815 5520 l cp+clip+n 1200 5550 m 1800 5550 l gs col0 s gr gr++% arrowhead+n 1677 5520 m 1773 5550 l 1677 5580 l 1653 5550 l 1677 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 5520 m 3273 5550 l 3177 5580 l 3315 5580 l 3315 5520 l cp+clip+n 2700 5550 m 3300 5550 l gs col0 s gr gr++% arrowhead+n 3177 5520 m 3273 5550 l 3177 5580 l 3153 5550 l 3177 5520 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+ [15 45] 45 sd+n 2250 4275 m 2250 5100 l gs col0 s gr  [] 0 sd+% Polyline+n 1800 1800 m 2700 1800 l 2700 2700 l 1800 2700 l cp gs col0 s gr +% Polyline+gs  clippath+1677 2220 m 1773 2250 l 1677 2280 l 1815 2280 l 1815 2220 l cp+clip+n 1200 2250 m 1800 2250 l gs col0 s gr gr++% arrowhead+n 1677 2220 m 1773 2250 l 1677 2280 l 1653 2250 l 1677 2220 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 2220 m 3273 2250 l 3177 2280 l 3315 2280 l 3315 2220 l cp+clip+n 2700 2250 m 3300 2250 l gs col0 s gr gr++% arrowhead+n 3177 2220 m 3273 2250 l 3177 2280 l 3153 2250 l 3177 2220 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 1800 6300 m 2700 6300 l 2700 7200 l 1800 7200 l cp gs col0 s gr +% Polyline+gs  clippath+2280 6177 m 2250 6273 l 2220 6177 l 2220 6315 l 2280 6315 l cp+clip+n 2250 6000 m 2250 6300 l gs col0 s gr gr++% arrowhead+n 2280 6177 m 2250 6273 l 2220 6177 l 2250 6153 l 2280 6177 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 1677 m 2250 1773 l 2220 1677 l 2220 1815 l 2280 1815 l cp+clip+n 3000 2175 m 3000 1500 l 2250 1500 l 2250 1800 l gs col0 s gr gr++% arrowhead+n 2280 1677 m 2250 1773 l 2220 1677 l 2250 1653 l 2280 1677 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 3000 5475 m 3000 3825 l gs col0 s gr +% Polyline+n 2250 7200 m 2250 7500 l 3000 7500 l 3000 5625 l gs col0 s gr +% Polyline+n 3000 3675 m 3000 2325 l gs col0 s gr +% Polyline+n 1800 3300 m 2700 3300 l 2700 4200 l 1800 4200 l cp gs col0 s gr +% Polyline+gs  clippath+1677 3720 m 1773 3750 l 1677 3780 l 1815 3780 l 1815 3720 l cp+clip+n 1200 3750 m 1800 3750 l gs col0 s gr gr++% arrowhead+n 1677 3720 m 1773 3750 l 1677 3780 l 1653 3750 l 1677 3720 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2280 3177 m 2250 3273 l 2220 3177 l 2220 3315 l 2280 3315 l cp+clip+n 2250 2700 m 2250 3300 l gs col0 s gr gr++% arrowhead+n 2280 3177 m 2250 3273 l 2220 3177 l 2250 3153 l 2280 3177 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3177 3720 m 3273 3750 l 3177 3780 l 3315 3780 l 3315 3720 l cp+clip+n 2700 3750 m 3300 3750 l gs col0 s gr gr++% arrowhead+n 3177 3720 m 3273 3750 l 3177 3780 l 3153 3750 l 3177 3720 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+975 2325 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 2325 m+gs 1 -1 sc (y) col0 sh gr+/Courier ff 270.00 scf sf+2025 5625 m+gs 1 -1 sc (F) col0 sh gr+/Times-Italic ff 270.00 scf sf+2100 5700 m+gs 1 -1 sc (expl) col0 sh gr+/Courier ff 270.00 scf sf+2025 2325 m+gs 1 -1 sc (F) col0 sh gr+/Times-Italic ff 270.00 scf sf+2100 2400 m+gs 1 -1 sc (expl) col0 sh gr+/Helvetica ff 270.00 scf sf+975 3825 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+975 5625 m+gs 1 -1 sc (x) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 3825 m+gs 1 -1 sc (y) col0 sh gr+/Helvetica ff 270.00 scf sf+3375 5625 m+gs 1 -1 sc (y) col0 sh gr+/Courier ff 270.00 scf sf+2175 6825 m+gs 1 -1 sc (D) col0 sh gr+/Times-Italic ff 270.00 scf sf+1125 5700 m+gs 1 -1 sc (n) col0 sh gr+/Times-Italic ff 270.00 scf sf+3450 2400 m+gs 1 -1 sc (1) col0 sh gr+/Times-Italic ff 270.00 scf sf+3450 3900 m+gs 1 -1 sc (2) col0 sh gr+/Times-Italic ff 270.00 scf sf+3525 5700 m+gs 1 -1 sc (n) col0 sh gr+/Times-Italic ff 270.00 scf sf+1125 2400 m+gs 1 -1 sc (1) col0 sh gr+/Courier ff 270.00 scf sf+2025 3825 m+gs 1 -1 sc (F) col0 sh gr+/Times-Italic ff 270.00 scf sf+2100 3900 m+gs 1 -1 sc (expl) col0 sh gr+/Times-Italic ff 270.00 scf sf+1050 3900 m+gs 1 -1 sc (2) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 994 3114 a(Figure)g(7.7:)36 b(A)28 b(time)g(transformed)e+(sequen)n(tial)h(circuit)h Fj(F)12 b Fq(.)776 3379 y+Fp(sum1)86 b(=)43 b(adderSeqPeriod)38 b(n)43 b(ab)776+3479 y(sum1')f(=)h(delayN)e(\(n-1\))h(low)g(sum1)776+3579 y(sum2)86 b(=)43 b(adderSlowedDown)37 b(n)43 b(ab)776+3678 y(ok)174 b(=)43 b(sum1')e(<==>)h(sum2)515 3864 y+Fq(Unfortunately)-7 b(,)43 b(this)d(w)n(a)n(y)f(of)h(sp)r(ecifying)g+(the)h(prop)r(ert)n(y)e(in)n(tro)r(duces)g(a)h(lot)g(of)g(extra)515+3964 y(logic,)34 b(and)f(moreo)n(v)n(er,)f(extra)g(state.)54+b(This)33 b(mak)n(es)g(the)g(v)n(eri\014cation)f(of)h(these)h(kind)f+(of)515 4063 y(prop)r(erties)d(v)n(ery)g(hard.)47 b(In)31+b(particular,)g(the)h(induction)f(metho)r(ds)g(need)h(an)f(extremely)+515 4163 y(high)24 b(induction)h(depth.)36 b(In)25 b(the)g(next)g+(section,)f(w)n(e)g(will)h(see)f(a)g(simpler)g(and)h(more)e(direct)515+4263 y(metho)r(d)28 b(for)f(sp)r(ecifying)h(retiming)f(prop)r(erties.)+515 4577 y Fm(7.3)135 b(Sp)t(eeding)45 b(Up)515 4799+y Fq(Another)31 b(tec)n(hnique)g(for)g(retiming)g(w)n(orks)e(as)i+(follo)n(ws.)47 b(Instead)31 b(of)g(slo)n(wing)f(do)n(wn)h(the)515+4898 y(com)n(binational)h(circuit,)i(w)n(e)f(sp)r(eed)h(up)f(the)h+(sequen)n(tial)e(circuit.)54 b(Unfortunately)-7 b(,)35+b(this)515 4998 y(cannot)g(b)r(e)i(done)e(b)n(y)h(adding)f(retiming)h+(comp)r(onen)n(ts)f(around)g(the)h(circuit.)62 b(Instead,)1905+5255 y(42)p eop+%%Page: 43 44+43 43 bop 515 523 a Fq(w)n(e)32 b Fn(tr)l(ansform)h Fq(the)g(circuit)f+(in)n(to)g(another)g(circuit.)52 b(This)32 b(is)g(done)h(b)n(y)f(a)g+(built-in)h(La)n(v)-5 b(a)515 623 y(op)r(eration,)26+b(called)i Fp(timeTransform)p Fq(.)515 762 y(The)g(idea)g(is)g(that)h+(w)n(e)f(mak)n(e)f(the)i(state)f(of)g(the)h(sequen)n(tial)e(circuit)i+(explicit)f(b)n(y)g(turning)515 862 y(a)j(sequen)n(tial)g(circuit)h+Fj(F)43 b Fq(in)n(to)32 b(a)f(com)n(binational)f(circuit)i+Fj(F)2442 879 y Fe(expl)2564 862 y Fq(,)h(that)f(tak)n(es)e(in)i(the)g+(old)515 961 y(state)h(as)f(an)h(extra)f(input,)k(and)c(has)h(the)h+(new)f(state)g(as)f(an)h(extra)f(output)i(\(see)f(\014gure)515+1061 y(7.6\).)515 1200 y(The)23 b(next)g(step)g(is)g(to)g(create)f(a)g+(column)h(of)g Fj(F)1943 1218 y Fe(expl)2065 1200 y Fq(,)h(where)e(w)n+(e)h(thread)f(the)h(states)g(through)515 1300 y(as)37+b(carry)-7 b(.)67 b(The)38 b(last)g(step)g(is)g(to)g(mak)n(e)f(the)i+(state)f(implicit)h(again)d(b)n(y)i(adding)g(dela)n(y)515+1400 y(comp)r(onen)n(ts)27 b(and)g(a)g(lo)r(op)h(bac)n(k)e(\(see)i+(\014gure)f(7.7\).)515 1539 y(All)k(this)f(is)h(implemen)n(ted)g(b)n(y)+f(La)n(v)-5 b(a's)29 b(primitiv)n(e)h(op)r(eration)f+Fp(timeTransform)p Fq(.)41 b(So,)30 b(w)n(e)515 1639+y(can)24 b(mak)n(e)f(a)h(new)g(adder)g(from)g(the)g(sequen)n(tial)g+(adder,)g(b)n(y)g(using)g(time)h(transformation:)602+1824 y Fp(adderSpedUp)39 b(abs)j(=)h(sums)689 1923 y(where)776+2023 y(sums)f(=)h(timeTransform)c(\(adderSeqPeriod)e(n\))43+b(abs)776 2122 y(n)174 b(=)43 b(length)e(abs)515 2307+y Fq(The)22 b(function)h Fp(length)d Fq(computes)i(the)h(length)g(of)f+(a)g(list,)i(so)d(that)i(w)n(e)f(kno)n(w)g(what)g(p)r(erio)r(d)515+2407 y(the)28 b(sequen)n(tial)f(adder)f(requires.)515+2546 y(The)h(prop)r(ert)n(y)g(of)g(comparing)g(the)h(t)n(w)n(o)e+(di\013eren)n(t)i(adders)f(no)n(w)g(lo)r(oks)f(as)h(follo)n(ws:)602+2731 y Fp(prop_AdderSeqSpe)o(dU)o(p)38 b(abs)k(=)h(ok)689+2831 y(where)776 2930 y(sum1)f(=)h(adderSpedUp)c(abs)776+3030 y(sum2)j(=)h(adderCom)e(abs)776 3129 y(ok)130 b(=)43+b(sum1)f(<==>)g(sum2)515 3314 y Fq(Because)32 b(this)i(is)g(a)f(prop)r+(ert)n(y)g(that)h(has)f(a)g(list)h(as)f(an)h(input,)i(w)n(e)d(need)h+(to)g(b)r(e)g(explicit)515 3414 y(ab)r(out)27 b(the)h(length)g(of)f+(the)h(list:)602 3598 y Fp(prop_AdderSeqSpe)o(dU)o(p_F)o(or)o(Siz)o(e)+37 b(n)43 b(=)689 3698 y(forAll)e(\(list)h(n\))g($)i(\\abs)e(->)776+3798 y(prop_AdderSeqSped)o(Up)37 b(abs)515 3982 y Fq(V)-7+b(erifying)27 b(this)h(b)n(y)f(induction)h(is)g(easy)-7+b(,)27 b(and)g(needs)g(induction)h(depth)h(2)e(for)g(an)n(y)g+Fj(n)p Fq(.)515 4297 y Fm(7.4)135 b(Exercises)575 4511+y Fq(7.1)40 b(Consider)27 b(the)h(follo)n(wing)e(circuit:)809+4709 y Fp(highLow)41 b(\(\))i(=)g([high,)e(low])722 4907+y Fq(V)-7 b(erify)32 b(that)f(the)h(circuit)f Fp(toggle)d+Fq(b)r(eha)n(v)n(es)i(t)n(wice)h(as)g(slo)n(w)f(as)h(this)g(circuit)g+(if)h(its)722 5006 y(input)d(is)e(alw)n(a)n(ys)f(high.)37+b(Do)27 b(this)h(b)n(y)f(slo)n(wing)g(do)n(wn)g(and)g(sp)r(eeding)h+(up.)1905 5255 y(43)p eop+%%Page: 44 45+44 44 bop 575 523 a Fq(7.2)40 b(What)21 b(go)r(es)f(wrong)g(when)h(w)n+(e)g(try)f(using)h(the)g(slo)n(wing)e(do)n(wn)i(metho)r(d)g(for)g+(compar-)722 623 y(ing)j(t)n(w)n(o)f Fn(se)l(quential)i+Fq(circuits)e(that)i(op)r(erate)e(at)h(di\013eren)n(t)g(rate?)35+b(Also)24 b(see)f(exercise)722 722 y(7.5.)722 855 y(Hin)n(t:)38+b(what)27 b(happ)r(ens)h(to)f(the)h(state)g(of)f(a)g(circuit)h(that)g+(is)f(slo)n(w)n(ed)g(do)n(wn?)575 1021 y(7.3)40 b(Do)r(es)e(the)f(sp)r+(eeding)g(up)h(metho)r(d)g(w)n(ork)e(when)h(w)n(e)g(use)g(it)h(for)f+(comparing)f(t)n(w)n(o)722 1121 y(sequen)n(tial)27 b(circuits)g(that)h+(op)r(erate)f(at)h(di\013eren)n(t)f(rate?)575 1287 y(7.4)40+b(Design)19 b(a)f(prop)r(ert)n(y)g(connection)g(pattern)g(that)h(v)n+(eri\014es)f(t)n(w)n(o)g(circuits)g(that)h(op)r(erate)722+1386 y(at)36 b(di\013eren)n(t)g(rates)g(equiv)-5 b(alen)n(t.)62+b(Y)-7 b(ou)36 b(ma)n(y)f(decide)i(y)n(ourself)e(what)h(metho)r(d)g(to)+722 1486 y(c)n(ho)r(ose.)575 1652 y(7.5)k(Can)28 b(y)n(ou)e(\014nd)i(a)+g(metho)r(d)g(to)f(\014x)h(the)g(problem)f(in)h(exercise)e(7.2?)722+1785 y(Hin)n(t:)38 b(use)27 b(clo)r(c)n(k)n(ed)g(dela)n(ys)f(\(see)i+(exercise)e(5.3\).)1905 5255 y(44)p eop+%%Page: 45 46+45 45 bop 515 1186 a Fo(Chapter)64 b(8)515 1641 y Fs(More)78+b(connection)g(patterns)515 2112 y Fq(In)34 b(this)h(c)n(hapter,)h(w)n+(e)e(\014rst)g(review)g(some)g(standard)f(connection)h(patterns,)i(and)+f(then)515 2212 y(consider)h(the)h(problem)g(of)g(describing)g+Fn(tr)l(e)l(e)h(shap)l(e)l(d)i(cir)l(cuits)d Fq(and)g+Fn(butter\015y)h(cir)l(cuits)p Fq(.)515 2311 y(These)27+b(are)g(common)g(circuit)g(structures)g(in)h(digital)f(signal)g(pro)r+(cessing.)515 2626 y Fm(8.1)135 b(Connection)46 b(patterns)f(revisited)+515 2847 y Fq(In)21 b(an)f(earlier)f(c)n(hapter,)i(w)n(e)f(sa)n(w)g+(the)h Fp(serial)d Fq(connection)i(pattern,)i(whic)n(h)f(connects)f(t)n+(w)n(o)515 2947 y(circuits)27 b(in)g(series.)36 b(It)28+b(is)f(con)n(v)n(enien)n(t)f(to)h(ha)n(v)n(e)g(an)g(in\014x)g(v)n+(ersion,)f(so)h(that)g(w)n(e)g(can)g(write)515 3047 y+Fp(f)43 b(->-)f(g)p Fq(,)27 b(instead)g(of)f Fp(serial)41+b(f)j(g)p Fq(,)26 b(see)h(\014gure)f(8.1.)35 b(Note)27+b(that)g(serial)f(comp)r(osition)g(is)515 3146 y(asso)r(ciativ)n(e:)602+3332 y Fp(f)43 b(->-)f(\(g)h(->-)g(h\))129 b(===)h(\(f)43+b(->-)f(g\))h(->-)f(h)515 3518 y Fq(Sometimes)27 b(w)n(e)h(w)n(an)n(t)e+(to)i(comp)r(ose)f(a)g(list)h(of)f(circuits.)37 b(W)-7+b(e)28 b(call)f(this)h Fp(compose)p Fq(.)602 3704 y Fp(compose)41+b([])478 b(inp)43 b(=)g(inp)602 3804 y(compose)e(\(circ:circs\))d(inp)+43 b(=)g(out)689 3903 y(where)776 4003 y(x)131 b(=)43+b(circ)f(inp)776 4103 y(out)h(=)g(compose)d(circs)i(x)515+4289 y Fq(Note)34 b(that)g(w)n(e)f(could)h(ha)n(v)n(e)f(written)h(this)+g(de\014nition)g(in)h(a)e(di\013eren)n(t)h(st)n(yle,)h(using)f(the)515+4388 y(serial)26 b(connection)h(pattern.)602 4574 y Fp(compose1)40+b([])479 b(inp)42 b(=)h(inp)602 4674 y(compose1)d(\(circ:circs\))f(inp)+j(=)h(out)689 4774 y(where)776 4873 y(out)g(=)g(\(circ)e(->-)i+(compose1)d(circs\))h(inp)1905 5255 y Fq(45)p eop+%%Page: 46 47+46 46 bop 1615 1272 56 4 v 1615 1161 V 1615 1051 V 1615+940 V 1615 829 V 1615 718 V 1615 608 V 1615 497 V 1667+468 284 4 v 1667 1298 4 831 v 1784 904 a Fj(f)p 1947+1298 V 1667 1301 284 4 v 1947 1051 56 4 v 1947 940 V+1947 829 V 1947 718 V 1999 661 229 4 v 1999 1104 4 443+v 2092 893 a(g)p 2224 1104 V 1999 1107 229 4 v 2224 1051+56 4 v 2224 940 V 2224 829 V 2224 718 V 1580 1508 a Fq(Figure)27+b(8.1:)36 b Fp(f)43 b(->-)g(g)515 1776 y Fq(W)-7 b(e)33+b(could)f(go)g(ev)n(en)g(further)g(and)h(drop)f(the)h(circuit)f(inputs)+i(\()p Fp(inp)p Fq(\))e(from)g(eac)n(h)g(side)g(of)515+1875 y(the)26 b(de\014nitions.)36 b(The)26 b(iden)n(tit)n(y)f(circuit)h+(\(whic)n(h)f(just)i(returns)d(its)i(input\))h(is)e(written)h+Fp(id)p Fq(.)515 1975 y(This)h(is)f(a)h(de\014nite)h(c)n(hange)d(of)i+(st)n(yle)g(to)g(one)f(in)h(whic)n(h)g(the)h(emphasis)e(is)h(on)g+(connection)515 2075 y(patterns.)602 2261 y Fp(compose2)40+b([])479 b(=)43 b(id)602 2360 y(compose2)d(\(circ:circs\))f(=)k(circ)f+(->-)g(compose2)f(circs)515 2546 y Fq(All)35 b(of)f(these)h(st)n(yles)f+(are)g(equally)g(go)r(o)r(d,)i(and)e(the)h(c)n(hoice)f(is)h(really)e+(just)i(a)g(matter)f(of)515 2646 y(taste.)h(In)25 b(fact)f(it)h(is)f+(quite)h(con)n(v)n(enien)n(t)e(to)i(b)r(e)f(able)g(to)h(mix)f(st)n+(yles,)h(sometimes)f(c)n(ho)r(osing)515 2745 y(one)j(and)g(sometimes)h+(the)g(other.)515 2885 y(Out)22 b(of)f Fp(compose)p Fq(,)g(w)n(e)g(can)+h(easily)f(mak)n(e)g(a)g(connection)h(pattern,)h(called)e+Fp(composeN)p Fq(,)e(that)515 2985 y(comp)r(oses)26 b(sev)n(eral)g+(copies)h(of)h(the)g(same)f(circuit)g(in)h(sequence.)602+3171 y Fp(composeN)40 b(n)j(circ)f(=)h(compose)e(\(replicate)f(n)j+(circ\))602 3373 y(Main>)e Fl(simulateSeq)e(\(composeN)h(5)j(inc\))f+([0,2,4,6])602 3473 y Fp([5,7,9,11])515 3675 y Fq(Here)27+b Fp(inc)f Fq(is)i(the)g(circuit)f(that)h(adds)f(one)h(to)f(its)h(in)n+(teger)f(input.)515 3815 y(W)-7 b(e)22 b(also)f(sa)n(w)g(the)h+Fp(par)f Fq(connection)g(pattern:)34 b Fp(par)42 b(f)i(g)21+b Fq(tak)n(es)g(a)g(pair)h(of)g(inputs,)h(passing)515+3914 y(the)31 b(\014rst)f(to)h Fp(f)f Fq(and)h(the)g(second)f(to)h+Fp(g)p Fq(,)g(and)g(com)n(bining)f(the)h(results)f(in)n(to)h(a)f(pair.)+46 b(The)515 4014 y(in\014x)28 b(v)n(ersion)e(of)h Fp(par)42+b(f)i(g)27 b Fq(is)g(written)h Fp(f)43 b(-|-)g(g)p Fq(.)515+4154 y(A)25 b(v)n(ersion)f(of)h Fp(par)f Fq(that)i(\\do)r(es")e+Fp(f)g Fq(to)h(the)h(\014rst)f(half)g(of)h(a)e(list)i(and)f+Fp(g)g Fq(to)g(the)g(second)g(half)515 4253 y(also)g(turns)h(out)g(to)g+(b)r(e)h(useful.)36 b(W)-7 b(e)27 b(call)f(this)g(pattern)g+Fp(parl)p Fq(.)35 b(First,)26 b(w)n(e)g(de\014ne)g(a)g(help)r(er)515+4353 y(function,)i Fp(halveList)p Fq(,)c(whic)n(h)k(divides)f(a)g(list)+h(in)g(t)n(w)n(o.)602 4539 y Fp(halveList)40 b(inps)i(=)h+(\(left,right\))689 4638 y(where)776 4738 y(left)86 b(=)43+b(take)f(half)g(inps)776 4838 y(right)g(=)h(drop)f(half)g(inps)776+4937 y(half)86 b(=)43 b(length)e(inps)h(`div`)f(2)1905+5255 y Fq(46)p eop+%%Page: 47 48+47 47 bop 1808 1272 56 4 v 1808 1161 V 1808 1051 V 1808+940 V 1808 829 V 1808 718 V 1808 608 V 1808 497 V 1861+1132 173 4 v 1861 1298 4 167 v 1926 1225 a Fj(g)p 2030+1298 V 1861 1301 173 4 v 1861 910 V 1861 1077 4 167 v+1926 1003 a(g)p 2030 1077 V 1861 1080 173 4 v 1861 689+V 1861 855 4 167 v 1926 782 a(g)p 2030 855 V 1861 858+173 4 v 1861 468 V 1861 634 4 167 v 1926 561 a(g)p 2030+634 V 1861 637 173 4 v 2030 1272 56 4 v 2030 1161 V 2030+1051 V 2030 940 V 2030 829 V 2030 718 V 2030 608 V 2030+497 V 1624 1508 a Fq(Figure)27 b(8.2:)36 b Fp(map)42+b(g)602 1776 y(Main>)f Fl(simulate)g(halveList)f([high,low,high,)o(low)+o(])602 1875 y Fp(\([high,low],[hig)o(h,)o(low)o(]\))515+2078 y Fq(Then,)i(w)n(e)d(de\014ne)h(the)g(circuit)f+Fp(append)p Fq(,)h(whic)n(h)f(tak)n(es)g(a)g(pair)g(of)g(lists)g(of)h+(length)f Fj(m)515 2178 y Fq(and)29 b Fj(n)p Fq(,)g(and)g(joins)g(them)+g(together)f(\(or)h Fn(c)l(onc)l(atenates)g Fq(them\),)h(to)f(giv)n(e)f+(a)h(list)g(of)g(length)515 2277 y Fj(m)11 b Fq(+)g Fj(n)p+Fq(.)36 b(This)24 b(circuit)f(is)h(de\014ned)h(in)f(terms)g(of)g(Hask)n+(ell's)f(built-in)i(in\014x)f(list)g(concatenate)515+2377 y(op)r(erator)i(\()p Fp(++)p Fq(\).)602 2563 y Fp(append)41+b(\(a,b\))h(=)h(a)g(++)g(b)515 2749 y Fq(Lastly)-7 b(,)27+b(w)n(e)g(de\014ne)h Fp(parl)p Fq(:)602 2935 y Fp(parl)42+b(circ1)f(circ2)h(=)689 3034 y(halveList)e(->-)i(\(circ1)f(-|-)i+(circ2\))e(->-)h(append)602 3237 y(Main>)f Fl(simulate)g(\(parl)g+(reverse)g(id\))h([1..16])602 3337 y Fp([8,7,6,5,4,3,2,1)o(,9)o(,10)o+(,1)o(1,1)o(2,)o(13)o(,14)o(,1)o(5,1)o(6])515 3539 y+Fq(Sometimes,)26 b(w)n(e)f(w)n(an)n(t)g(to)g(p)r(erform)g(an)h(op)r+(eration)e(of)i(eac)n(h)e(elemen)n(t)i(of)g(a)f(list)h(of)f(signals)515+3639 y(or)31 b(bus.)50 b(F)-7 b(or)31 b(this)h(w)n(e)g(use)g(the)g+(connection)g(pattern)f Fp(map)p Fq(,)h(whic)n(h)g(y)n(ou)f(will)i(ha)n+(v)n(e)d(seen)515 3738 y(if)36 b(y)n(ou)f(ha)n(v)n(e)f(used)i(a)f+(functional)h(programming)d(language.)60 b(F)-7 b(or)35+b(example,)i Fp(map)42 b(inv)515 3838 y Fq(in)n(v)n(erts)26+b(eac)n(h)h(of)h(a)f(list)h(of)f(bits.)602 4024 y Fp(Main>)41+b Fl(simulate)g(\(map)h(inv\))g([high,)f(low,)h(high,)f(low])602+4124 y Fp([low,high,low,hi)o(gh)o(])515 4310 y Fq(Buses)d(need)g(not)h+(con)n(tain)e(only)h(lists)h(of)f(bits.)70 b(They)38+b(can)g(b)r(e)h(more)f(structured,)j(so)515 4409 y(that)29+b(our)f(circuit)h(descriptions)f(can)h(matc)n(h)g(the)g+Fn(lo)l(gic)l(al)i Fq(structure)d(of)h(the)h(circuit.)41+b(F)-7 b(or)515 4509 y(example,)27 b(the)h(circuit)f+Fp(map)43 b(fullAdd)25 b Fq(mak)n(es)h(p)r(erfect)i(sense.)602+4695 y Fp(Main>)41 b Fl(simulate)g(\(map)h(fullAdd\))951+4794 y([\(low,\(high,low)o(\)\),)o(\(h)o(ig)o(h,\()o(hi)o(gh,)o(hi)o+(gh\))o(\),)o(\(l)o(ow,)o(\(h)o(igh)o(,h)o(ig)o(h\)\))o(])602+4894 y Fp([\(high,low\),\(hig)o(h,)o(hig)o(h\))o(,\(l)o(ow)o(,h)o(igh)o+(\)])1905 5255 y Fq(47)p eop+%%Page: 48 49+48 48 bop 1382 1383 1130 4 v 1759 1100 753 4 v 2135 818+377 4 v 1382 1100 95 4 v 1665 1100 V 1473 1005 195 4+v 1473 1193 4 189 v 1546 1119 a Fj(f)p 1665 1193 V 1473+1196 195 4 v 1382 818 95 4 v 1665 818 V 1473 722 195+4 v 1473 910 4 189 v 1546 837 a(f)p 1665 910 V 1473 913+195 4 v 1382 536 95 4 v 1665 536 V 1473 440 195 4 v 1473+628 4 189 v 1546 555 a(f)p 1665 628 V 1473 631 195 4+v 1759 818 95 4 v 2041 818 V 1849 722 195 4 v 1849 910+4 189 v 1922 837 a(f)p 2041 910 V 1849 913 195 4 v 1759+536 95 4 v 2041 536 V 1849 440 195 4 v 1849 628 4 189+v 1922 555 a(f)p 2041 628 V 1849 631 195 4 v 2135 536+95 4 v 2417 536 V 2226 440 195 4 v 2226 628 4 189 v 335+w(f)p 2417 628 V 2226 631 195 4 v 1624 1658 a Fq(Figure)27+b(8.3:)36 b Fp(tri)42 b(f)515 1921 y Fq(Figure)22 b(8.2)g(sho)n(ws)g(a)+h Fp(map)e Fq(in)j(the)f(case)f(where)g(the)i(input)g(is)e(a)h(4-list)f+(\(of)i(pairs)d(or)i(2-lists\).)515 2060 y(Strangely)34+b(enough,)j(the)f(connection)g(pattern)f(that)h(places)f(zero)f(copies)+h(of)h(a)f(circuit)515 2160 y(on)29 b(the)i(\014rst)e(signal)g(in)i(a)e+(bus,)i(one)e(cop)n(y)g(on)h(the)g(next,)h(t)n(w)n(o)e(on)h(the)g+(next,)h(and)f(so)f(on,)515 2260 y(is)i(one)f(that)i(arises)e(often)h+(in)g(hardw)n(are)e(design.)48 b(It)31 b(is)g(a)g(sort)f(of)h(mixture)g+(of)g Fp(map)f Fq(and)515 2359 y Fp(composeN)p Fq(.)g(W)-7+b(e)33 b(call)g(it)g Fp(tri)f Fq(for)h Fn(triangle)p+Fq(.)54 b(Y)-7 b(ou)33 b(should)g(understand)g(wh)n(y)g(when)g(y)n(ou)+515 2459 y(lo)r(ok)25 b(at)g(the)h(diagram)e(in)i(\014gure)f(8.3.)35+b(W)-7 b(e)26 b(lea)n(v)n(e)f(the)h(de\014nition)g(of)f+Fp(tri)f Fq(as)h(exercise)g(8.3.)515 2598 y(An)j(example)f(of)h(the)g+(use)f(of)h(triangle)e(is)602 2783 y Fp(Main>)41 b Fl(simulate)g(\(tri)+h(inc\))g(\(replicate)d(10)k(0\))602 2882 y Fp([0,1,2,3,4,5,6,7)o(,8)o+(,9])515 3066 y Fq(The)24 b(connection)g(patterns)g(that)g(w)n(e)g(ha)n+(v)n(e)f(seen)h(in)h(this)f(section)g(are)f(all)h(useful)h(in)g(man)n+(y)515 3166 y(di\013eren)n(t)38 b(kinds)g(of)g(circuits.)68+b(No)n(w)37 b(let)i(us)f(consider)e(ho)n(w)i(to)g(describ)r(e)f(tree)h+(shap)r(ed)515 3266 y(circuits.)515 3580 y Fm(8.2)135+b(T)-11 b(ree)45 b(shap)t(ed)f(circuits)515 3801 y Fq(Circuits)27+b(in)h(the)g(shap)r(e)f(of)g(trees,)g(lik)n(e)g(that)h(sho)n(wn)f(in)h+(\014gure)e(8.4,)h(can)g(b)r(e)h(used)g(to)f(sys-)515+3901 y(tematically)g(apply)g(a)g(function)g(that)h(com)n(bines)f(data)f+(v)-5 b(alues)27 b(together)g(to)g(a)g(collection)515+4000 y(of)e(data.)36 b(A)26 b(binary)f(tree)g(circuit)h(\014rst)f(com)n+(bines)g(eac)n(h)g(half)h(of)f(the)h(input)h(v)-5 b(alues,)25+b(using)515 4100 y(t)n(w)n(o)31 b(smaller)g(trees)g(and)h(then)h(com)n+(bines)e(the)h(t)n(w)n(o)f(remaining)g(results.)50 b(One)31+b(example)515 4200 y(of)c(suc)n(h)h(a)f(circuit)g(is)h(an)f(adder)g+(tree)g(that)h(adds)f(up)h(a)f(list)h(of)g(n)n(umhers.)515+4339 y(The)f(outline)h(of)g(the)g(recursiv)n(e)e(de\014nition)i(of)f(a)+g(tree)h(connection)f(pattern)g(is:)602 4523 y Fp(tree)42+b(circ)g([inp])f(=)i(...)g(inp)f(...)602 4623 y(tree)g(circ)g(inps)85+b(=)43 b(...)g(tree)f(circ)g(...)g(tree)g(circ)g(...)g(circ)g(...)g+(inps)515 4807 y Fq(W)-7 b(e)26 b(call)f(the)g(parameter)f+Fp(circ)g Fq(the)i Fn(c)l(omp)l(onent)i(cir)l(cuit)p+Fq(.)36 b(The)26 b(\014rst)f(line)h(in)f(this)h(outline)515+4907 y(de\014nes)c(what)g(should)g(b)r(e)h(done)f(when)g(w)n(e)g(get)g+(do)n(wn)f(to)h(the)h(base)f(case)f(of)h(the)h(recursion.)515+5006 y(The)29 b(second)g(line)h(should)g(use)f(t)n(w)n(o)g(copies)g(of)+g Fp(tree)42 b(circ)28 b Fq(and)i(com)n(bine)f(their)h(results)1905+5255 y(48)p eop+%%Page: 49 50+49 49 bop 1440 1303 151 4 v 1440 1447 4 144 v 1497 1393+a Fj(c)p 1587 1447 V 1440 1450 151 4 v 1728 1303 V 1728+1447 4 144 v 252 w(c)p 1875 1447 V 1728 1450 151 4 v+2015 1303 V 2015 1447 4 144 v 252 w(c)p 2163 1447 V 2015+1450 151 4 v 2303 1303 V 2303 1447 4 144 v 252 w(c)p+2451 1447 V 2303 1450 151 4 v 1584 1016 V 1584 1160 4+144 v 1641 1105 a(c)p 1731 1160 V 1584 1163 151 4 v 2159+1016 V 2159 1160 4 144 v 540 w(c)p 2307 1160 V 2159 1163+151 4 v 1872 584 V 1872 728 4 144 v 1929 674 a(c)p 2019+728 V 1872 731 151 4 v 1478 1591 4 144 v 1479 1530 a+Fa(6)p 1765 1591 V 205 w(6)p 2053 1591 V 205 w(6)p 2341+1591 V 205 w(6)p 1549 1591 V -875 w(6)p 1837 1591 V 205+w(6)p 2125 1591 V 205 w(6)p 2413 1591 V 205 w(6)1515+1303 y(\000)1576 1243 y(\000)-83 b(\022)1720 1303 y(@)1659+1243 y(@)g(I)1659 1016 y(\000)1742 933 y(\000)1825 850+y(\000)1864 811 y(\000)g(\022)2091 1303 y(\000)2152 1243+y(\000)g(\022)2296 1303 y(@)2235 1243 y(@)g(I)2152 1016+y(@)2069 933 y(@)1986 850 y(@)1947 811 y(@)g(I)p 1945+584 V 1947 523 a(6)1350 1774 y Fq(Figure)27 b(8.4:)36+b(A)28 b(tree)f(shap)r(ed)g(circuit)515 2036 y(using)h+Fp(circ)p Fq(.)38 b(Exactly)28 b(ho)n(w)g(these)h(de\014nitions)f+(should)h(lo)r(ok)f(dep)r(ends)h(partly)f(on)g(what)515+2135 y(the)g(comp)r(onen)n(t)f Fp(circ)f Fq(lo)r(oks)h(lik)n(e,)g(and)g+(in)h(particular)f(on)g(its)h(t)n(yp)r(e.)515 2275 y(F)-7+b(or)27 b(example,)h(if)h Fp(circ)d Fq(is)i(a)g(binary)f(function)i+(taking)e(a)h(pair)f(of)h(inputs)h(and)f(returning)515+2374 y(a)c(single)g(output,)h(then)g(it)g(mak)n(es)f(sense)f(to)i(mak)n+(e)e(the)i(follo)n(wing)f(de\014nition)g(of)h(a)f(binary)515+2474 y(tree)j(connection)g(pattern,)h Fp(binTree)p Fq(.)602+2657 y Fp(binTree)41 b(circ)h([inp])f(=)i(inp)602 2756+y(binTree)e(circ)h(inps)85 b(=)689 2856 y(\(halveList)40+b(->-)i(\(binTree)e(circ)i(-|-)g(binTree)f(circ\))h(->-)g(circ\))f+(inps)515 3039 y Fq(This)23 b(giv)n(es)g(the)h(b)r(eha)n(viour)f(that)h+(w)n(e)f(exp)r(ect:)36 b(a)23 b(binary)g(tree)g(of)h+Fp(circ)e Fq(comp)r(onen)n(ts)i(gets)515 3138 y(built.)515+3278 y(An)i(example)g(use)g(of)h(a)e(tree)h(connection)g(pattern)g(is)g+(when)h(w)n(e)f(w)n(an)n(t)f(to)h(build)h(a)f(circuit)515+3377 y(that)f(adds)g(up)h(a)e(lot)i(of)f(n)n(um)n(b)r(ers.)35+b(One)25 b(w)n(a)n(y)f(of)h(doing)g(this)g(to)h(mak)n(e)e(a)h+(so-called)e Fn(adder)515 3477 y(tr)l(e)l(e)p Fq(.)42+b(T)-7 b(o)29 b(do)g(this,)h(w)n(e)f(need)h(a)f(binary)g(adder)f(that)i+(adds)f(t)n(w)n(o)g Fj(n)g Fq(bit)h(n)n(um)n(b)r(ers,)g(to)f(giv)n(e)+515 3577 y(an)k Fj(n)23 b Fq(+)f(1)34 b(bit)g(n)n(um)n(b)r(er.)56+b(This)34 b(means)f(that)h(w)n(e)g(m)n(ust)g(include)g(the)g(carry)f+(out)h(in)g(the)515 3676 y(result.)h(The)24 b(resulting)f(adder)h(is)g+(therefore)f(sligh)n(tly)g(di\013eren)n(t)h(from)g(those)f(that)h(w)n+(e)g(sa)n(w)515 3776 y(earlier.)35 b(W)-7 b(e)28 b(call)f(it)h+Fp(binAdder)p Fq(.)602 3958 y Fp(binAdder)40 b(\(as,)i(bs\))g(=)i(cs)e+(++)h([carryOut])689 4058 y(where)776 4158 y(\(cs,)f(carryOut\))e(=)j+(adder)f(\(low,)f(\(as,)h(bs\)\))515 4340 y Fq(And)28+b(here)f(is)h(the)g(de\014nition)f(of)h(our)f(adder)g(tree)g+Fp(addTree)p Fq(:)602 4523 y Fp(addTree)41 b(=)i(binTree)d(binAdder)515+4706 y Fq(T)-7 b(o)27 b(test)h(it,)g(w)n(e)f(wrap)g(the)h(circuit)f(in)+h(con)n(v)n(erters)e(from)h(in)n(teger)g(to)g(binary)g(and)g(bac)n(k.)+602 4888 y Fp(wrapAddTree)39 b(n)k(=)689 4988 y(map)f(\(int2bin)f(n\))h+(->-)h(addTree)d(->-)j(bin2int)1905 5255 y Fq(49)p eop+%%Page: 50 51+50 50 bop 602 523 a Fp(Main>)41 b Fl(simulate)g(\(wrapAddTree)d(8\))43+b([3,4,5,6,10,9,8,)o(7])602 623 y Fp(52)515 825 y Fq(Bew)n(are,)34+b(this)g(adder)f(tree)h(w)n(orks)e(only)i(for)g(input)g(lists)g(whose)g+(length)g(is)g(a)f(p)r(o)n(w)n(er)g(of)515 925 y(t)n(w)n(o.)j(Exercise)+26 b(8.5)h(asks)f(y)n(ou)h(to)g(de\014ne)h(an)g(adder)e(tree)i(that)g+(w)n(orks)d(for)j(an)n(y)e(size.)515 1239 y Fm(8.3)135+b(Describing)46 b(Butter\015y)e(Circuits)515 1461 y Fq(Butter\015y)28+b(circuits)g(are)f(circuits)h(with)h(a)f(particular)f(recursiv)n(e)g+(structure.)38 b(Figures)28 b(8.6)515 1561 y(and)33 b(8.7)f(sho)n(w)g+(t)n(w)n(o)g(suc)n(h)h(circuits)f(and)h(also)f(indicate)h(their)g+(recursiv)n(e)e(structures)h(b)n(y)515 1660 y(sho)n(wing,)d(b)n(y)h+(means)f(of)h(dotted)g(b)r(o)n(xes,)g(where)f(to)h(\014nd)g+(sub-circuits)f(that)i(themselv)n(es)515 1760 y(ha)n(v)n(e)h(the)h+(same)g(recursiv)n(e)e(structure.)53 b(It)34 b(turns)f(out)g(that)g+(these)g(t)n(w)n(o)g(circuits)g(are)f(in)515 1859 y(fact)f(equiv)-5+b(alen)n(t:)43 b(the)31 b(same)g(net)n(w)n(ork)e(of)i(comp)r(onen)n(ts)+f(can)h(b)r(e)g(recursiv)n(ely)e(describ)r(ed)515 1959+y(in)f(t)n(w)n(o)g(completely)g(di\013eren)n(t)g(w)n(a)n(ys.)37+b(And)29 b(indeed)g(it)f(turns)h(out)f(that)g(there)g(are)g(man)n(y)515+2059 y(more)f(w)n(a)n(ys)f(to)h(describ)r(e)g(the)h(same)f(net)n(w)n+(ork.)36 b(W)-7 b(e)28 b(will)g(study)f(some)g(of)h(them.)515+2198 y(Butter\015y)c(circuits)g(are)g(used)g(for)g(example)g(to)g+(build)h(routing)f(net)n(w)n(orks)e(from)j(switc)n(hes,)515+2298 y(and)38 b(in)h(building)f(e\016cien)n(t)h(sorting)e(circuits.)69+b(P)n(erhaps)37 b(the)i(b)r(est)f(kno)n(wn)g(butter\015y-)515+2397 y(lik)n(e)29 b(circuit)h(is)g(the)h(standard)e(Co)r(oley-T)-7+b(uk)n(ey)28 b(algorithm)h([4)o(])h(for)g(computing)g(the)g(F)-7+b(ast)515 2497 y(F)g(ourier)34 b(T)-7 b(ransform)35 b(\(FFT\).)h(W)-7+b(e)36 b(will)g(not)g(consider)f(the)h(FFT)g(here.)60+b(The)36 b(t)n(widdle-)515 2597 y(factors)31 b(complicate)g(matters)h+(a)g(bit.)51 b(The)32 b(circuit)g(is)g(not)g(quite)g(as)g(uniform)g(as)+f(those)515 2696 y(that)c(w)n(e)f(consider.)36 b(Ho)n(w)n(ev)n(er,)25+b(the)i(in)n(terested)f(reader)g(is)g(referred)g(to)h([3)o(],)g(whic)n+(h)g(sho)n(ws)515 2796 y(ho)n(w)h(to)g(describ)r(e)g(and)g(compare)g(v)+-5 b(arious)27 b(FFT)i(circuits)f(in)h(an)f(older)g(v)n(ersion)f(of)h+(La)n(v)-5 b(a.)515 2896 y(F)e(or)27 b(more)g(details)g(ab)r(out)g(ho)n+(w)g(the)h(v)n(eri\014cation)f(is)g(actually)g(done,)g(see)h([2)o(].)+515 3035 y(In)h(this)g(section,)f(w)n(e)g(\014rst)h(in)n(tro)r(duce)f+(t)n(w)n(o)g(new)h(connection)f(patterns,)g(and)h(then)g(sho)n(w)515+3135 y(that)41 b(butter\015y)g(circuits)g(can)f(b)r(e)i(made)f(with)g+(just)h(these)f(t)n(w)n(o)f(patterns)g(and)h(serial)515+3234 y(comp)r(osition.)515 3374 y(The)21 b(\014rst)f(of)h(these)g+(patterns)f(w)n(e)h(call)f Fp(two)p Fq(.)34 b(The)20+b(circuit)h Fp(two)43 b(circ)19 b Fq(con)n(tains)h(t)n(w)n(o)g(copies)+515 3473 y(of)31 b Fp(circ)p Fq(.)46 b(The)31 b(\014rst)g(of)g(these)g+(op)r(erates)f(on)h(the)h(\014rst)f(half)g(of)g(the)g(input)h(list,)h+(and)e(the)515 3573 y(second)26 b(on)g(the)h(second)e(half.)37+b(Eac)n(h)25 b(cop)n(y)h(of)g Fp(circ)f Fq(should)h(ha)n(v)n(e)g(a)g+(list)g(as)g(output,)h(and)515 3673 y(the)i(t)n(w)n(o)g(resulting)g+(lists)g(are)f(app)r(ended.)43 b(This)29 b(pattern)g(is)g(easily)g+(de\014ned)h(in)f(terms)g(of)515 3772 y Fp(parl)p Fq(,)d(whic)n(h)h(w)n+(as)g(in)n(tro)r(duced)g(earlier)f(in)i(this)g(c)n(hapter.)602+3958 y Fp(two)42 b(circ)g(=)h(parl)f(circ)g(circ)602+4161 y(Main>)f Fl(simulate)g(\(two)h(reverse\))e([1..16])602+4260 y Fp([8,7,6,5,4,3,2,1)o(,1)o(6,1)o(5,)o(14,)o(13)o(,1)o(2,1)o(1,)o+(10,)o(9])602 4460 y(Main>)h Fl(simulate)g(\(two)h(\(two)g(reverse\)\))+d([1..16])602 4559 y Fp([4,3,2,1,8,7,6,5)o(,1)o(2,1)o(1,)o(10,)o(9,)o+(16)o(,15)o(,1)o(4,1)o(3])515 4762 y Fq(Related)27 b(to)g+Fp(two)p Fq(,)f(w)n(e)g(also)g(in)n(tro)r(duce)h(the)g(pattern)g+Fp(ilv)p Fq(,)f(for)g Fn(interle)l(ave)p Fq(.)38 b(Whereas)26+b Fp(two)515 4862 y(f)21 b Fq(applies)g Fp(f)f Fq(to)i(the)f(top)g(and)+g(b)r(ottom)h(halv)n(es)e(of)h(a)g(list,)i Fp(ilv)42+b(f)21 b Fq(applies)g Fp(f)g Fq(to)g(the)h(o)r(dd)f(and)515+4961 y(ev)n(en)h(elemen)n(ts.)35 b(W)-7 b(e)23 b(de\014ne)h(it)f(in)g+(terms)f(of)h(the)g(wiring)g(pattern)f Fn(ri\017e)p Fq(,)j(whic)n(h)e+(p)r(erforms)1905 5255 y(50)p eop+%%Page: 51 52+51 51 bop 1200 1272 56 4 v 1200 1161 V 1200 1051 V 1200+940 V 1200 829 V 1200 718 V 1200 608 V 1200 497 V 1255+1272 111 4 v 1255 1132 a Fa(@)1283 1160 y(@)1255 910+y(A)1297 993 y(A)1324 1049 y(A)1255 689 y(B)1283 772+y(B)1310 855 y(B)1338 938 y(B)-28 b(B)p 1255 497 V 1255+717 a(\000)1283 689 y(\000)1255 938 y(\001)1297 855 y(\001)1324+800 y(\001)1255 1160 y(\002)1283 1077 y(\002)1310 994+y(\002)1338 910 y(\002)g(\002)p 1366 1272 56 4 v 1366+1161 V 1366 1051 V 1366 940 V 1366 829 V 1366 718 V 1366+608 V 1366 497 V 1418 910 173 4 v 1418 1298 4 388 v 1479+1125 a Fj(f)p 1587 1298 V 1418 1301 173 4 v 1418 468+V 1418 855 4 388 v 1479 682 a(f)p 1587 855 V 1418 858+173 4 v 1587 1272 56 4 v 1587 1161 V 1587 1051 V 1587+940 V 1587 829 V 1587 718 V 1587 608 V 1587 497 V 1642+1272 111 4 v 1642 1160 a Fa(\000)1670 1132 y(\000)1642+1049 y(\001)1684 966 y(\001)1712 911 y(\001)1642 938+y(\002)1670 855 y(\002)1698 772 y(\002)1725 689 y(\002)g(\002)p+1642 497 V -111 w(@)1670 717 y(@)1642 800 y(A)1684 883+y(A)1712 938 y(A)1642 910 y(B)1670 993 y(B)1698 1077+y(B)1725 1160 y(B)g(B)p 1753 1272 56 4 v 1753 1161 V+1753 1051 V 1753 940 V 1753 829 V 1753 718 V 1753 608+V 1753 497 V 2085 1272 V 2085 1161 V 2085 1051 V 2085+940 V 2085 829 V 2085 718 V 2085 608 V 2085 497 V 2141+1272 111 4 v 388 w(\000)2168 1132 y(\000)-110 b(@)2168+1160 y(@)p 2141 940 V 2141 829 V 2141 717 a(\000)2168+689 y(\000)g(@)2168 717 y(@)p 2141 497 V 2251 1272 56+4 v 2251 1161 V 2251 1051 V 2251 940 V 2251 829 V 2251+718 V 2251 608 V 2251 497 V 2303 1132 173 4 v 2303 1298+4 167 v 2368 1225 a Fj(g)p 2473 1298 V 2303 1301 173+4 v 2303 910 V 2303 1077 4 167 v 2368 1003 a(g)p 2473+1077 V 2303 1080 173 4 v 2303 689 V 2303 855 4 167 v+2368 782 a(g)p 2473 855 V 2303 858 173 4 v 2303 468 V+2303 634 4 167 v 2368 561 a(g)p 2473 634 V 2303 637 173+4 v 2473 1272 56 4 v 2473 1161 V 2473 1051 V 2473 940+V 2473 829 V 2473 718 V 2473 608 V 2473 497 V 2528 1272+111 4 v 2528 1160 a Fa(\000)2556 1132 y(\000)f(@)2556+1160 y(@)p 2528 940 V 2528 829 V 2528 717 a(\000)2556+689 y(\000)g(@)2556 717 y(@)p 2528 497 V 2639 1272 56+4 v 2639 1161 V 2639 1051 V 2639 940 V 2639 829 V 2639+718 V 2639 608 V 2639 497 V 1290 1508 a Fq(Figure)27+b(8.5:)36 b Fp(ilv)42 b(f)27 b Fq(and)h Fp(two)42 b(\(ilv)g(g\))515+1769 y Fq(the)22 b(p)r(erfect)g(sh)n(u\017e)g(on)g(a)f(list.)35+b(Think)23 b(of)e(taking)h(a)f(pac)n(k)g(of)h(cards,)g(halving)f(it,)j+(and)e(then)515 1869 y(in)n(terlea)n(ving)31 b(the)i(t)n(w)n(o)f(half)h+(pac)n(ks.)51 b(If)33 b(y)n(ou)f(no)n(w)g Fn(unri\017e)h+Fq(the)g(pac)n(k,)g(y)n(ou)f(rev)n(erse)f(the)515 1968+y(pro)r(cess,)h(returning)g(the)g(pac)n(k)g(to)g(its)h(original)d+(condition.)51 b(\(This)33 b(is)f(somewhat)g(more)515+2068 y(di\016cult)c(to)g(accomplish)e(with)j(aplom)n(b)d(at)i(the)g(p)r+(ok)n(er)e(table.\))602 2247 y Fp(Main>)41 b Fl(simulate)g(riffle)g+([1..16])602 2347 y Fp([1,9,2,10,3,11,4)o(,1)o(2,5)o(,1)o(3,6)o(,1)o+(4,)o(7,1)o(5,)o(8,1)o(6])602 2546 y(Main>)g Fl(simulate)g(\(riffle)f+(->-)j(unriffle\))d([1..16])602 2646 y Fp([1,2,3,4,5,6,7,8)o(,9)o(,10)o+(,1)o(1,1)o(2,)o(13)o(,14)o(,1)o(5,1)o(6])602 2845 y(Main>)h+Fl(simulate)g(unriffle)f([1..16])602 2945 y Fp([1,3,5,7,9,11,13)o(,1)o+(5,2)o(,4)o(,6,)o(8,)o(10)o(,12)o(,1)o(4,1)o(6])515 3124+y Fq(Note)29 b(that)h(unri\017ing)g(the)g(sequence)f(from)g(1)h(to)f+Fj(n)h Fq(divides)f(in)n(to)h(its)f(o)r(dd)h(and)g(its)g(ev)n(en)515+3223 y(elemen)n(ts.)36 b(W)-7 b(e)28 b(use)g(this)g(fact)g(to)f+(de\014ne)h Fp(ilv)e Fq(in)i(terms)f(of)h Fp(two)p Fq(.)602+3403 y Fp(ilv)42 b(circ)g(=)h(unriffle)e(->-)h(two)g(circ)g(->-)h+(riffle)602 3597 y(Main>)e Fl(simulate)g(\(ilv)h(reverse\))e([1..16])+602 3696 y Fp([15,16,13,14,11,)o(12)o(,9,)o(10)o(,7,)o(8,)o(5,)o(6,3)o+(,4)o(,1,)o(2])602 3896 y(Main>)h Fl(simulate)g(\(ilv)h(\(ilv)g+(reverse\)\))d([1..16])602 3995 y Fp([13,14,15,16,9,1)o(0,)o(11,)o(12)o+(,5,)o(6,)o(7,)o(8,1)o(,2)o(,3,)o(4])515 4189 y Fq(Figure)32+b(8.5)g(sho)n(ws)f Fp(ilv)43 b(f)32 b Fq(and)h Fp(two)42+b(\(ilv)g(g\))p Fq(.)52 b(W)-7 b(e)33 b(lea)n(v)n(e)e(the)j+(de\014nition)f(of)f Fp(riffle)515 4289 y Fq(and)27 b+Fp(unriffle)e Fq(as)h(exercise)h(8.6.)515 4428 y(W)-7+b(e)38 b(ha)n(v)n(e)e(seen)i(from)f(our)g(examples)g(that)h(it)g(mak)n+(es)f(sense)g(to)h(apply)f Fp(two)g Fq(and)g Fp(ilv)515+4528 y Fq(rep)r(eatedly)-7 b(.)36 b(W)-7 b(e)27 b(will)g(do)f(this)h+(so)g(often)g(in)g(the)g(butter\015y)g(circuits,)f(that)h(it)g(is)g+(useful)g(to)515 4628 y(de\014ne)h(sp)r(ecial)f(functions.)602+4807 y Fp(twoN)42 b(0)h(circ)f(=)h(circ)602 4907 y(twoN)f(n)h(circ)f(=)+h(two)f(\(twoN)g(\(n-1\))f(circ\))1905 5255 y Fq(51)p+eop+%%Page: 52 53+52 52 bop 1283 1272 56 4 v 1283 1161 V 1283 1051 V 1283+940 V 1283 829 V 1283 718 V 1283 608 V 1283 497 V 1338+1272 111 4 v 1338 1132 a Fa(@)1366 1160 y(@)1338 910+y(A)1380 993 y(A)1407 1049 y(A)1338 689 y(B)1366 772+y(B)1393 855 y(B)1421 938 y(B)-28 b(B)p 1338 497 V 1338+717 a(\000)1366 689 y(\000)1338 938 y(\001)1380 855 y(\001)1407+800 y(\001)1338 1160 y(\002)1366 1077 y(\002)1393 994+y(\002)1421 910 y(\002)g(\002)p 1449 1272 V 250 x(\000)1476+1132 y(\000)-110 b(@)1476 1160 y(@)p 1449 940 V 1449+829 V 1449 717 a(\000)1476 689 y(\000)g(@)1476 717 y(@)p+1449 497 V 1559 1272 56 4 v 1559 1161 V 1559 1051 V 1559+940 V 1559 829 V 1559 718 V 1559 608 V 1559 497 V 1611+1132 173 4 v 1611 1298 4 167 v 1677 1225 a Fj(g)p 1781+1298 V 1611 1301 173 4 v 1611 910 V 1611 1077 4 167 v+1677 1003 a(g)p 1781 1077 V 1611 1080 173 4 v 1611 689+V 1611 855 4 167 v 1677 782 a(g)p 1781 855 V 1611 858+173 4 v 1611 468 V 1611 634 4 167 v 1677 561 a(g)p 1781+634 V 1611 637 173 4 v 1781 1272 56 4 v 1781 1161 V 1781+1051 V 1781 940 V 1781 829 V 1781 718 V 1781 608 V 1781+497 V 1836 1272 111 4 v 1836 1160 a Fa(\000)1864 1132+y(\000)f(@)1864 1160 y(@)p 1836 940 V 1836 829 V 1836+717 a(\000)1864 689 y(\000)g(@)1864 717 y(@)p 1836 497+V 1947 1272 56 4 v 1947 1161 V 1947 1051 V 1947 940 V+1947 829 V 1947 718 V 1947 608 V 1947 497 V 1999 1132+173 4 v 1999 1298 4 167 v 2064 1225 a Fj(g)p 2168 1298+V 1999 1301 173 4 v 1999 910 V 1999 1077 4 167 v 2064+1003 a(g)p 2168 1077 V 1999 1080 173 4 v 1999 689 V 1999+855 4 167 v 2064 782 a(g)p 2168 855 V 1999 858 173 4+v 1999 468 V 1999 634 4 167 v 2064 561 a(g)p 2168 634+V 1999 637 173 4 v 2168 1272 56 4 v 2168 1161 V 2168+1051 V 2168 940 V 2168 829 V 2168 718 V 2168 608 V 2168+497 V 2224 1272 111 4 v 2224 1160 a Fa(\000)2251 1132+y(\000)2224 1049 y(\001)2265 966 y(\001)2293 911 y(\001)2224+938 y(\002)2251 855 y(\002)2279 772 y(\002)2307 689 y(\002)-28+b(\002)p 2224 497 V -111 w(@)2251 717 y(@)2224 800 y(A)2265+883 y(A)2293 938 y(A)2224 910 y(B)2251 993 y(B)2279 1077+y(B)2307 1160 y(B)g(B)p 2334 1272 56 4 v 2334 1161 V+2334 1051 V 2334 940 V 2334 829 V 2334 718 V 2334 608+V 2334 497 V 2386 1132 173 4 v 2386 1298 4 167 v 2451+1225 a Fj(g)p 2556 1298 V 2386 1301 173 4 v 2386 910+V 2386 1077 4 167 v 2451 1003 a(g)p 2556 1077 V 2386+1080 173 4 v 2386 689 V 2386 855 4 167 v 2451 782 a(g)p+2556 855 V 2386 858 173 4 v 2386 468 V 2386 634 4 167+v 2451 561 a(g)p 2556 634 V 2386 637 173 4 v 2556 1272+56 4 v 2556 1161 V 2556 1051 V 2556 940 V 2556 829 V+2556 718 V 2556 608 V 2556 497 V 1449 884 9 4 v 1449+442 V 2215 884 V 2215 442 V 1474 884 17 4 v 1507 884+V 1540 884 V 1573 884 V 1606 884 V 1640 884 V 1673 884+V 1706 884 V 1739 884 V 1773 884 V 1806 884 V 1839 884+V 1872 884 V 1905 884 V 1939 884 V 1972 884 V 2005 884+V 2038 884 V 2071 884 V 2105 884 V 2138 884 V 2171 884+V 1474 442 V 1507 442 V 1540 442 V 1573 442 V 1606 442+V 1640 442 V 1673 442 V 1706 442 V 1739 442 V 1773 442+V 1806 442 V 1839 442 V 1872 442 V 1905 442 V 1939 442+V 1972 442 V 2005 442 V 2038 442 V 2071 442 V 2105 442+V 2138 442 V 2171 442 V 1447 883 4 9 v 2222 883 V 1447+448 V 2222 448 V 1447 493 4 17 v 1447 526 V 1447 559+V 1447 592 V 1447 625 V 1447 659 V 1447 692 V 1447 725+V 1447 758 V 1447 791 V 1447 825 V 1447 858 V 2222 493+V 2222 526 V 2222 559 V 2222 592 V 2222 625 V 2222 659+V 2222 692 V 2222 725 V 2222 758 V 2222 791 V 2222 825+V 2222 858 V 1587 649 17 4 v 1620 649 V 1654 649 V 1687+649 V 1720 649 V 1753 649 V 1786 649 V 1587 456 V 1620+456 V 1654 456 V 1687 456 V 1720 456 V 1753 456 V 1786+456 V 1585 482 4 17 v 1585 515 V 1585 548 V 1585 581+V 1585 614 V 1585 648 V 1807 482 V 1807 515 V 1807 548+V 1807 581 V 1807 614 V 1807 648 V 1559 1508 a Fq(Figure)26+b(8.6:)37 b Fp(bfly)k(3)j(g)602 1774 y(ilvN)e(0)h(circ)f(=)h(circ)602+1874 y(ilvN)f(n)h(circ)f(=)h(ilv)f(\(ilvN)g(\(n-1\))f(circ\))515+2058 y Fq(Clearly)-7 b(,)31 b(there)f(are)g(similarities)h(b)r(et)n(w)n+(een)g(these)g(t)n(w)n(o)f(de\014nitions.)47 b(W)-7 b(e)31+b(migh)n(t)g(just)h(as)515 2157 y(w)n(ell)27 b(ha)n(v)n(e)f(de\014ned)i+(a)g(function)g(that)g(tak)n(es)e(a)i Fn(c)l(onne)l(ction)h(p)l(attern)+f Fq(as)f(input.)602 2342 y Fp(iter)42 b(0)h(comb)f(circ)g(=)h(circ)602+2441 y(iter)f(n)h(comb)f(circ)g(=)h(comb)f(\(iter)f(\(n-1\))h(comb)g+(circ\))515 2625 y Fq(No)n(w,)23 b(w)n(e)g(can)g(use)f+Fp(iter)42 b(n)i(two)e(f)23 b Fq(instead)f(of)h Fp(twoN)42+b(n)i(f)22 b Fq(and)h Fp(iter)42 b(n)h(ilv)g(f)22 b Fq(instead)515+2725 y(of)27 b Fp(ilvN)42 b(n)h(f)p Fq(.)515 2865 y(No)n(w)31+b(w)n(e)g(are)g(in)h(a)f(p)r(osition)h(to)f(de\014ne)h(a)f(connection)h+(pattern)f(for)g(butter\015y)h(circuits,)515 2964 y(that)27+b(is)g(circuits,)f(lik)n(e)h(those)g(sho)n(wn)f(in)h(\014gures)f(8.6)g+(and)h(8.7,)f(that)h(ha)n(v)n(e)f(a)g(v)n(ery)g(partic-)515+3064 y(ular)31 b(recursiv)n(e)f(structure.)50 b(Because)30+b(the)j(circuits)e(are)g(recursiv)n(e,)h(the)g(corresp)r(onding)515+3163 y(connection)27 b(pattern)g(is)h(de\014ned)g(using)f(recursion.)+602 3348 y Fp(bfly)42 b(0)h(circ)f(=)h(id)602 3447 y(bfly)f(n)h(circ)f+(=)h(ilv)f(\(bfly)g(\(n-1\))f(circ\))h(->-)g(twoN)g(\(n-1\))g(circ)515+3631 y Fq(The)31 b(smallest)g(butter\015y)h(is)f(just)h(the)g(iden)n+(tit)n(y)-7 b(.)49 b(A)32 b(butter\015y)g(of)f(size)g+Fj(n)p Fq(,)i(for)d Fj(n)i Fq(greater)515 3731 y(than)k(zero,)i+(consists)e(of)h(t)n(w)n(o)f(in)n(terlea)n(v)n(ed)e(butter\015ies)j(of)+g(size)f Fj(n)24 b Fi(\000)g Fq(1,)39 b(the)e(output)g(of)515+3831 y(whic)n(h)30 b(is)f(fed)i(in)n(to)f(a)f(stac)n(k)g(of)h+Fp(circ)e Fq(comp)r(onen)n(ts,)j(whic)n(h)e(is)h(made)g(using)g+Fp(twoN)p Fq(.)e(This)515 3930 y(connection)f(pattern)g(is)h(sho)n(wn)f+(in)g(\014gure)g(8.6,)g(whic)n(h)h(sho)n(ws)e Fp(bfly)42+b(3)h(g)p Fq(.)515 4070 y(The)34 b(larger)e(dashed)i(b)r(o)n(x)f(sho)n+(ws)g(one)h(instance)g(of)g Fp(bfly)42 b(2)h(g)p Fq(,)35+b(and)f(there)g(is)g(another)515 4169 y(instance)f(just)i(b)r(elo)n(w)e+(it.)56 b(These)33 b(t)n(w)n(o)g(smaller)g(butter\015ies)h(are)e(in)n+(terlea)n(v)n(ed,)i(so)f(there)515 4269 y(is)j(actually)f(an)h+Fn(unri\017e)g Fq(to)g(their)g(left)g(and)g(a)g Fn(ri\017e)g+Fq(to)g(their)g(righ)n(t.)62 b(\(Mak)n(e)35 b(sure)g(to)515+4369 y(\014nd)e(these)h(wiring)e(patterns,)j(and)e(lo)r(ok)f(again)h+(at)g(the)g(de\014nition)h(of)f Fp(ilv)p Fq(.\))53 b(The)34+b(t)n(w)n(o)515 4468 y(in)n(terlea)n(v)n(ed)24 b(butter\015ies)i(feed)g+(their)f(outputs)h(in)n(to)g(four)f Fp(g)g Fq(comp)r(onen)n(ts,)h(one)f+(ab)r(o)n(v)n(e)g(the)515 4568 y(other,)41 b(that)e(is)g+Fp(twoN)j(2)h(g)p Fq(.)71 b(And)39 b(if)h(y)n(ou)e(lo)r(ok)g(inside)h+(the)g Fp(bfly)j(2)i(g)38 b Fq(in)h(the)h(outer)515 4667+y(dashed)27 b(b)r(o)n(x,)g(y)n(ou)g(will)h(\014nd)g(that)g(it)g(again)e+(has)h(the)h(same)f(recursiv)n(e)f(structure.)515 4807+y(Strangely)34 b(enough,)j(the)f(same)e(connection)h(pattern)h(\(that)f+(is)h(the)g(same)e(netlist)i(and)515 4907 y(the)c(same)f(order)g(of)h+(inputs)g(and)g(outputs,)h(though)f(a)f(p)r(ossibly)h(di\013eren)n(t)g+(la)n(y)n(out\))e(can)515 5006 y(b)r(e)e(describ)r(ed)f(using)g(a)h+(di\013eren)n(t)f(pattern)h(of)f(recursion.)1905 5255+y(52)p eop+%%Page: 53 54+53 53 bop 1255 1272 56 4 v 1255 1161 V 1255 1051 V 1255+940 V 1255 829 V 1255 718 V 1255 608 V 1255 497 V 1310+1272 111 4 v 1310 1160 a Fa(\000)1338 1132 y(\000)1310+1049 y(\001)1352 966 y(\001)1380 911 y(\001)1310 938+y(\002)1338 855 y(\002)1366 772 y(\002)1393 689 y(\002)-28+b(\002)p 1310 497 V -111 w(@)1338 717 y(@)1310 800 y(A)1352+883 y(A)1380 938 y(A)1310 910 y(B)1338 993 y(B)1366 1077+y(B)1393 1160 y(B)g(B)p 1421 1272 56 4 v 1421 1161 V+1421 1051 V 1421 940 V 1421 829 V 1421 718 V 1421 608+V 1421 497 V 1473 1132 173 4 v 1473 1298 4 167 v 1538+1225 a Fj(g)p 1642 1298 V 1473 1301 173 4 v 1473 910+V 1473 1077 4 167 v 1538 1003 a(g)p 1642 1077 V 1473+1080 173 4 v 1473 689 V 1473 855 4 167 v 1538 782 a(g)p+1642 855 V 1473 858 173 4 v 1473 468 V 1473 634 4 167+v 1538 561 a(g)p 1642 634 V 1473 637 173 4 v 1642 1272+56 4 v 1642 1161 V 1642 1051 V 1642 940 V 1642 829 V+1642 718 V 1642 608 V 1642 497 V 1698 1272 111 4 v 1698+1132 a Fa(@)1725 1160 y(@)1698 910 y(A)1739 993 y(A)1767+1049 y(A)1698 689 y(B)1725 772 y(B)1753 855 y(B)1781+938 y(B)g(B)p 1698 497 V 1698 717 a(\000)1725 689 y(\000)1698+938 y(\001)1739 855 y(\001)1767 800 y(\001)1698 1160+y(\002)1725 1077 y(\002)1753 994 y(\002)1781 910 y(\002)g(\002)p+1808 1272 V 1808 1160 a(\000)1836 1132 y(\000)-111 b(@)1836+1160 y(@)p 1808 940 V 1808 829 V 1808 717 a(\000)1836+689 y(\000)g(@)1836 717 y(@)p 1808 497 V 1919 1272 56+4 v 1919 1161 V 1919 1051 V 1919 940 V 1919 829 V 1919+718 V 1919 608 V 1919 497 V 1971 1132 173 4 v 1971 1298+4 167 v 2036 1225 a Fj(g)p 2141 1298 V 1971 1301 173+4 v 1971 910 V 1971 1077 4 167 v 2036 1003 a(g)p 2141+1077 V 1971 1080 173 4 v 1971 689 V 1971 855 4 167 v+2036 782 a(g)p 2141 855 V 1971 858 173 4 v 1971 468 V+1971 634 4 167 v 2036 561 a(g)p 2141 634 V 1971 637 173+4 v 2141 1272 56 4 v 2141 1161 V 2141 1051 V 2141 940+V 2141 829 V 2141 718 V 2141 608 V 2141 497 V 2196 1272+111 4 v 2196 1160 a Fa(\000)2224 1132 y(\000)g(@)2224+1160 y(@)p 2196 940 V 2196 829 V 2196 717 a(\000)2224+689 y(\000)g(@)2224 717 y(@)p 2196 497 V 2307 1272 56+4 v 2307 1161 V 2307 1051 V 2307 940 V 2307 829 V 2307+718 V 2307 608 V 2307 497 V 2359 1132 173 4 v 2359 1298+4 167 v 2424 1225 a Fj(g)p 2528 1298 V 2359 1301 173+4 v 2359 910 V 2359 1077 4 167 v 2424 1003 a(g)p 2528+1077 V 2359 1080 173 4 v 2359 689 V 2359 855 4 167 v+2424 782 a(g)p 2528 855 V 2359 858 173 4 v 2359 468 V+2359 634 4 167 v 2424 561 a(g)p 2528 634 V 2359 637 173+4 v 2528 1272 56 4 v 2528 1161 V 2528 1051 V 2528 940+V 2528 829 V 2528 718 V 2528 608 V 2528 497 V 2583 1272+V 2583 1161 V 2583 1051 V 2583 940 V 2583 829 V 2583+718 V 2583 608 V 2583 497 V 1808 884 9 4 v 1808 442 V+2575 884 V 2575 442 V 1833 884 17 4 v 1867 884 V 1900+884 V 1933 884 V 1966 884 V 1999 884 V 2033 884 V 2066+884 V 2099 884 V 2132 884 V 2165 884 V 2199 884 V 2232+884 V 2265 884 V 2298 884 V 2332 884 V 2365 884 V 2398+884 V 2431 884 V 2464 884 V 2498 884 V 2531 884 V 1833+442 V 1867 442 V 1900 442 V 1933 442 V 1966 442 V 1999+442 V 2033 442 V 2066 442 V 2099 442 V 2132 442 V 2165+442 V 2199 442 V 2232 442 V 2265 442 V 2298 442 V 2332+442 V 2365 442 V 2398 442 V 2431 442 V 2464 442 V 2498+442 V 2531 442 V 1807 883 4 9 v 2582 883 V 1807 448 V+2582 448 V 1807 493 4 17 v 1807 526 V 1807 559 V 1807+592 V 1807 625 V 1807 659 V 1807 692 V 1807 725 V 1807+758 V 1807 791 V 1807 825 V 1807 858 V 2582 493 V 2582+526 V 2582 559 V 2582 592 V 2582 625 V 2582 659 V 2582+692 V 2582 725 V 2582 758 V 2582 791 V 2582 825 V 2582+858 V 2334 649 17 4 v 2368 649 V 2401 649 V 2434 649+V 2467 649 V 2500 649 V 2534 649 V 2334 456 V 2368 456+V 2401 456 V 2434 456 V 2467 456 V 2500 456 V 2534 456+V 2333 482 4 17 v 2333 515 V 2333 548 V 2333 581 V 2333+614 V 2333 648 V 2554 482 V 2554 515 V 2554 548 V 2554+581 V 2554 614 V 2554 648 V 1537 1508 a Fq(Figure)27+b(8.7:)36 b Fp(bfly1)41 b(3)i(g)602 1776 y(bfly1)e(0)j(circ)e(=)h(id)+602 1875 y(bfly1)e(n)j(circ)e(=)h(ilvN)f(\(n-1\))f(circ)h(->-)g(two)h+(\(bfly1)e(\(n-1\))g(circ\))515 2061 y Fq(This)35 b(time,)j(w)n(e)d+(start)g(with)h(a)g(rep)r(eatedly)f(in)n(terlea)n(v)n(ed)f(stac)n(k)g+(of)i(basic)f(comp)r(onen)n(ts,)515 2161 y(whose)e(outputs)i(are)e(fed)+i(in)n(to)f(t)n(w)n(o)f(smaller)h(butter\015ies,)i(whic)n(h)e(are)f+(com)n(bined)h(using)515 2261 y Fp(two)p Fq(.)h(Figure)27+b(8.7)g(sho)n(ws)g(this)h(recursiv)n(e)d(decomp)r(osition.)515+2400 y(It)g(turns)f(out)g(that)h Fp(ilv)43 b(\(bfly)e(n)i(circ\))23+b Fq(is)h(the)h(same)f(as)g Fp(bfly)42 b(n)h(\(ilv)f(circ\))p+Fq(.)34 b(\(See)515 2500 y(the)22 b(question)g(b)r(elo)n(w)g(ab)r(out)g+Fp(two)43 b(ilv)f(g)22 b Fq(if)g(y)n(ou)g(w)n(an)n(t)f(to)i(\014gure)e+(out)h(wh)n(y)-7 b(.\))35 b(This)23 b(means)515 2599+y(that)29 b(w)n(e)f(can)g(de\014ne)h(the)g(butter\015y)g(net)n(w)n(ork)+e(using)h(a)h(single)f(recursiv)n(e)f(call,)h(but)i(with)515+2699 y(a)d(larger)f(comp)r(onen)n(t:)602 2885 y Fp(bfly2)41+b(0)j(circ)e(=)h(id)602 2985 y(bfly2)e(n)j(circ)e(=)h(ilvN)f(\(n-1\))f+(circ)h(->-)g(bfly2)g(\(n-1\))f(\(two)h(circ\))602 3184+y(bfly3)f(0)j(circ)e(=)h(id)602 3283 y(bfly3)e(n)j(circ)e(=)h(bfly3)e+(\(n-1\))h(\(ilv)g(circ\))f(->-)i(twoN)e(\(n-1\))h(circ)515+3469 y Fq(The)d(surprising)f(thing)h(is)g(that)g(all)g(of)g(these)g+(connection)g(patterns)f(giv)n(e)g(equiv)-5 b(alen)n(t)515+3569 y(circuits)27 b(\(for)g(the)h(same)f(size)h(and)f(comp)r(onen)n+(t\).)515 3709 y(The)h(original)f(butter\015y)h(de\014n)n(tions)g(\()p+Fp(bfly)f Fq(and)h Fp(bfly1)p Fq(\))e(can)i(also)f(b)r(e)h(expressed)f+(using)515 3808 y(a)f(tree-lik)n(e)g(com)n(binator.)35+b(T)-7 b(ak)n(e)27 b(a)f(lo)r(ok)g(at)h(the)h(connection)e(pattern)h+Fp(listTree)p Fq(,)d(whic)n(h)515 3908 y(is)33 b(a)h(v)n(ersion)e(of)i+Fp(binTree)d Fq(whic)n(h)j(w)n(orks)e(for)h(a)h(comp)r(onen)n(t)f+(circuit)h Fp(circ)f Fq(pro)r(cessing)515 4007 y(lists.)602+4193 y Fp(listTree)40 b(circ)i([inp])g(=)h([inp])602+4293 y(listTree)d(circ)i(inps)86 b(=)43 b(\(two)f(\(listTree)e(circ\))h+(->-)h(circ\))g(inps)515 4479 y Fq(Y)-7 b(ou)27 b(should)h(think)g(ab)r+(out)f(the)h(t)n(yp)r(es)g(in)n(v)n(olv)n(ed)e(in)i(this)g+(de\014nition.)515 4618 y(Replacing)f(that)h Fp(two)e+Fq(b)n(y)h Fp(ilv)p Fq(,)g(w)n(e)g(get)g Fp(ilvTree)p+Fq(,)e(a)i(sort)g(of)h(in)n(terlea)n(v)n(ed)e(tree.)602+4804 y Fp(ilvTree)41 b(circ)h([inp])f(=)i([inp])602 4904+y(ilvTree)e(circ)h(inps)85 b(=)43 b(\(ilv)f(\(ilvTree)e(circ\))i(->-)g+(circ\))g(inps)1905 5255 y Fq(53)p eop+%%Page: 54 55+54 54 bop 515 523 a Fq(If)21 b(w)n(e)g(ha)n(v)n(e)f(a)h(comp)r(onen)n+(t)g(that)h(tak)n(es)e(a)h(pair)f(as)h(input)h(and)f(pro)r(duces)g(a)f+(pair)h(as)f(output,)515 623 y(then)34 b(w)n(e)f(can)h(describ)r(e)f(a)+g(stac)n(k)g(of)h(suc)n(h)f(comp)r(onen)n(ts)h(b)n(y)f(using)g+(pairing,)i(unpairing)515 722 y(and)d(map)h(as)e(follo)n(ws)h(\(see)g+(exercise)g(3.6)f(and)i(the)g(answ)n(er)e(on)h(page)g(80)f(for)h+Fp(pair)f Fq(and)515 822 y Fp(unpair)p Fq(\).)602 996+y Fp(pmap)42 b(circ)g(=)h(pair)f(->-)g(map)h(circ)e(->-)i(unpair)602+1183 y(Main>)e Fl(simulate)g(\(pmap)g(swap\))h([1..16])602+1282 y Fp([2,1,4,3,6,5,8,7)o(,1)o(0,9)o(,1)o(2,1)o(1,)o(14)o(,13)o(,1)o+(6,1)o(5])515 1470 y Fq(Then,)d(for)d(inputs)h(of)g(length)f(2)1573+1439 y Fg(n)1618 1470 y Fq(,)j Fp(ilvTree)i(\(pmap)g(circ\))35+b Fq(is)h(the)h(same)g(as)e Fp(bfly)42 b(n)515 1569 y(circl)p+Fq(,)22 b(where)h Fp(circl)e Fq(is)i(the)h(same)f(as)g+Fp(circ)e Fq(except)j(that)g(it)f(relates)g(a)g(2-list)f(to)i(a)f+(2-list.)515 1709 y(So)32 b(what)g(kinds)h(of)f(circuits)g(can)g(w)n(e)+h(build)g(with)g(these)f(remark)-5 b(ably)31 b(recursiv)n(e)g(struc-)+515 1808 y(tures?)63 b(W)-7 b(ell,)39 b(it)e(turns)g(out)f(that)h+Fp(bfly)42 b(3)h(id)36 b Fq(is)g(a)h(complicated)f(w)n(a)n(y)f(to)h+(write)h(the)515 1908 y(iden)n(tit)n(y)32 b(function)h(\(on)f(lists)g+(of)g(length)g(8)p Fj(n)p Fq(.\))50 b(And)33 b Fp(bfly)42+b(n)h(swapl)30 b Fq(rev)n(erses)g(a)i(list)g(of)515 2008+y(length)27 b(2)810 1977 y Fg(n)855 2008 y Fq(.)602 2181+y Fp(swapl)41 b([a,b])h(=)h([b,a])602 2368 y(Main>)85+b Fl(simulate)40 b(\(bfly)i(4)h(swapl\))e([1..16])602+2468 y Fp([16,15,14,13,12,)o(11)o(,10)o(,9)o(,8,)o(7,)o(6,)o(5,4)o(,3)o+(,2,)o(1])602 2667 y(Main>)g Fl(simulate)g(\(ilvTree)f(\(pmap)h+(swap\)\))h([1..16])602 2767 y Fp([16,15,14,13,12,)o(11)o(,10)o(,9)o+(,8,)o(7,)o(6,)o(5,4)o(,3)o(,2,)o(1])515 2954 y Fq(If)29+b(w)n(e)g(c)n(ho)r(ose)f(our)h(basic)f(comp)r(onen)n(t)h(to)h(b)r(e)f+(the)h(p)r(erfect)g(sh)n(u\017e)f(on)g(lists)g(of)g(length)g(4,)515+3054 y(the)34 b(circuit)g(that)g(w)n(e)f(call)h Fp(s2)p+Fq(,)h(then)f(w)n(e)f(\014nd)i(that)f(a)f(butter\015y)h(of)g(suc)n(h)g+(comp)r(onen)n(ts)515 3153 y(p)r(erforms)27 b(the)h(p)r(erfect)g(sh)n+(u\017e!)602 3327 y Fp(s2)43 b([a,b,c,d])d(=)j([a,c,b,d])602+3514 y(Main>)e Fl(simulate)g(\(bfly)g(3)i(s2\))g([1..16])602+3614 y Fp([1,9,2,10,3,11,4)o(,1)o(2,5)o(,1)o(3,6)o(,1)o(4,)o(7,1)o(5,)o+(8,1)o(6])515 3801 y Fq(But)31 b(all)g(of)g(these)g(examples)g(w)n(ere)+f(just)h(wiring)g(functions.)48 b(What)31 b(happ)r(ens)g(when)g(w)n(e)+515 3901 y(add)c(some)g(functionalit)n(y)h(to)f(the)h(comp)r(onen)n(t?)+515 4212 y Fm(8.4)135 b(Batc)l(her's)46 b(Bitonic)f(Merger)515+4434 y Fq(One)21 b(of)h(the)g(b)r(est)h(kno)n(wn)e(uses)g(of)h(the)g+(butter\015y)g(net)n(w)n(ork)f(is)g(in)i(the)f(building)g(of)g(mergers)+515 4534 y(and)i(sorters)f(based)g(on)h(a)g(t)n(w)n(o-input)g(t)n(w)n+(o-output)g(comparator.)33 b(Let)25 b(us)f(start)g(with)h(t)n(w)n(o)515+4633 y(abstract)36 b(comparators)e(that)j(w)n(ork)e(on)i(in)n(teger)f+(inputs.)65 b(One)37 b(sorts)e(in)n(to)i(ascending)515+4733 y(order,)26 b(and)h(the)h(other)f(in)n(to)h(descending.)602+4907 y Fp(compUp)128 b([x,y])42 b(=)h([imin)e(\(x,y\),)g(imax)h+(\(x,y\)])602 5006 y(compDown)e([x,y])i(=)h([imax)e(\(x,y\),)g(imin)h+(\(x,y\)])1905 5255 y Fq(54)p eop+%%Page: 55 56+55 55 bop 602 523 a Fp(Main>)41 b Fl(simulate)g(\(two)h(compUp\))e+([1,2,4,3])602 623 y Fp([1,2,3,4])602 822 y(Main>)h Fl(simulate)g+(\(ilv)h(compDown\))d([1,2,4,3])602 922 y Fp([4,3,1,2])515+1104 y Fq(It)29 b(turns)f(out)g(that)h Fp(bfly)42 b(n)h(compUp)26+b Fq(sorts)h(\(in)n(to)i(ascending)e(order\))h(a)g(list)h(whose)e+(\014rst)515 1203 y(half)g(is)h(ascending)f(and)g(second)g(half)h(is)f+(descending)g(or)g(vice-v)n(ersa.)35 b(W)-7 b(e)28 b(call)f(suc)n(h)g+(lists)515 1303 y Fn(inc-de)l(c)i Fq(and)g Fn(de)l(c-inc)h+Fq(lists.)41 b(\(The)29 b(merger)f(sorts)f(man)n(y)i(other)f(lists)h+(to)r(o,)g(the)h(so-called)515 1403 y Fn(bitonic)23 b+Fq(lists,)h(but)f(w)n(e)g(don't)g(need)f(to)h(w)n(orry)e(ab)r(out)h+(them.\))36 b(This)23 b(net)n(w)n(ork)e(is)i(kno)n(wn)f(as)515+1502 y Fn(Batcher's)32 b(bitonic)f(mer)l(ger)d Fq([1].)39+b(Also,)28 b Fp(bfly)41 b(n)j(compDown)25 b Fq(sorts)i+Fn(inc-de)l(c)h Fq(and)g Fn(de)l(c-inc)515 1602 y Fq(lists)f(in)n(to)h+(descending)f(order.)602 1772 y Fp(Main>)41 b Fl(simulate)g(\(bfly)g(3)+i(compUp\))e([1,3,5,7,8,6,4,2)o(])602 1871 y Fp([1,2,3,4,5,6,7,8)o(])+602 2071 y(Main>)g Fl(simulate)g(\(bfly)g(3)i(compDown\))d+([1,3,5,7,8,6,4,2])602 2170 y Fp([8,7,6,5,4,3,2,1)o(])515+2340 y Fq(Kno)n(wing)22 b(that)i(the)g(merger)e(sorts)g+Fn(inc-de)l(c)27 b(lists)c Fq(allo)n(ws)g(us)g(to)g(build)i(a)e+(recursiv)n(e)e(sorter.)515 2440 y(In)e(fact,)j(w)n(e)d(can)g+(parameterise)f(the)i(circuit)f(on)g(the)h(comparator)d(\(the)j+Fp(comp)e Fq(parameter\),)515 2539 y(and)28 b(de\014ne)h(b)r(oth)h(an)e+(up)h(and)g(a)f(do)n(wn)h(sorter)e(at)i(the)g(same)f(time.)41+b Fp(sorter)g(n)i(compUp)515 2639 y Fq(sorts)26 b(in)n(to)i(ascending)f+(order,)g(while)h Fp(sorter)41 b(n)i(compDown)25 b Fq(sorts)h(in)n(to)i+(descending)f(or-)515 2738 y(der.)602 2908 y Fp(sorter)41+b(0)i(comp)f([inp])g(=)h([inp])602 3008 y(sorter)e(n)i(comp)f(inps)86+b(=)43 b(outs)689 3107 y(where)776 3207 y(sortL)85 b(=)44+b(sorter)d(\(n-1\))g(comp)776 3307 y(sortR)85 b(=)44+b(sorter)d(\(n-1\))g(\(comp)h(->-)g(swapl\))f(--)i Fl(reversed)d+(comparator)776 3406 y Fp(merger)h(=)j(bfly)d(n)j(comp)826+b(--)43 b Fl(bitonic)e(merger)776 3506 y Fp(outs)129+b(=)44 b(\(parl)d(sortL)h(sortR)f(->-)h(merger\))f(inps)602+3688 y(Main>)g Fl(simulate)g(\(sorter)f(3)k(compUp\))c+([8,7,1,2,3,4,6,5])602 3788 y Fp([1,2,3,4,5,6,7,8)o(])602+3987 y(Main>)h Fl(simulate)g(\(sorter)f(3)k(compDown\))39+b([8,7,1,2,3,4,6,5])602 4087 y Fp([8,7,6,5,4,3,2,1)o(])515+4269 y Fq(Note)29 b(that)h(our)e(sorter)g(is)h(parameterised)f(on)h+(the)h(comparator)d(or)h(t)n(w)n(o-sorter)f(comp)r(o-)515+4369 y(nen)n(t.)44 b(So)29 b(w)n(e)h(ha)n(v)n(e)f(really)g(designed)g+(the)h(connection)g(pattern)g(that)g(m)n(ust)g(b)r(e)g(used)g(to)515+4468 y(connect)25 b(comparators.)33 b(W)-7 b(e)26 b(ha)n(v)n(e)e(not)h+(in)g(an)n(y)g(w)n(a)n(y)f(tied)h(ourselv)n(es)e(do)n(wn)i(to)g+(compara-)515 4568 y(tors)32 b(of)h(a)f(particular)g(t)n(yp)r(e.)53+b(So,)35 b(as)d(long)g(as)h(w)n(e)f(pro)n(vide)g(a)h(comparator)d(comp)+r(onen)n(t)515 4667 y(of)g(the)h(righ)n(t)f(t)n(yp)r(e,)i(then)f(w)n(e)+f(get)g(bac)n(k)g(a)g(function)h(of)g(the)g(same)f(t)n(yp)r(e)h(that)f+(acts)h(as)e(a)515 4767 y(sorter.)515 4907 y(The)k(next)g(step)g(is)f+(to)h(re\014ne)g(the)g(comparator)e(comp)r(onen)n(t,)i(b)n(y)g(c)n(ho)r+(osing)f(a)g(concrete)515 5006 y(represen)n(tation)16+b(for)i(the)h(in)n(teger)e(data.)34 b(Examples)17 b(of)h(suc)n(h)g+(represen)n(tations)f(are)g(parallel)1905 5255 y(55)p+eop+%%Page: 56 57+56 56 bop 515 523 a Fq(least)27 b(signi\014can)n(t)f(bit)i(\014rst)f+(binary)-7 b(,)26 b(or)h(serial)f(signed)h(t)n(w)n(os)f(complemen)n(t.)+36 b(The)28 b(p)r(oin)n(t)f(is)515 623 y(that)f(whatev)n(er)f+(re\014nemen)n(t)g(w)n(e)h(c)n(ho)r(ose,)f(w)n(e)h(can)f(simply)h(plug)+g(in)g(the)g(new)g(comp)r(onen)n(t)515 722 y(in)n(to)33+b(our)f(sorter)g(function.)55 b(This)33 b(is)h(an)f(example)g(of)g(ho)n+(w)g(La)n(v)-5 b(a)32 b(allo)n(ws)g(us)h(to)h(design)515+822 y(connection)k(patterns)h(and)g(then)h(reuse)e(them.)72+b(Exercise)38 b(8.9)g(asks)g(y)n(ou)h(to)g(build)g(a)515+922 y(sorter)c(based)i(on)g(the)g(comparator)e(for)i(binary)f(n)n(um)n+(b)r(ers)h(that)g(y)n(ou)f(designed)h(in)g(an)515 1021+y(earlier)26 b(exercise.)515 1161 y(An)i(in)n(teresting)f(prop)r(ert)n+(y)f(of)i(sorting)e(circuits)i(made)f(from)g(comparators)e(is)j(that)g+(they)515 1260 y(ob)r(ey)f(the)h Fn(zer)l(o-one)i(principle)p+Fq(.)39 b(If)28 b(suc)n(h)f(a)g(sorter)f(w)n(orks)g(correctly)g(on)h+(lists)h(of)f(in)n(tegers)515 1360 y(con)n(taining)32+b(only)h(zeros)f(and)h(ones,)i(then)f(it)f(w)n(orks)f(correctly)g(for)h+(arbitrary)e(in)n(tegers.)515 1460 y(So,)e(w)n(e)f(can)h(test)g(an)f+(in)n(teger)g(sorter)g(b)n(y)g(c)n(hec)n(king)g(that)h(it)g(w)n(orks)f+(on)g(bits!)41 b(In)29 b(exercise)515 1559 y(2.2,)f(y)n(ou)h(w)n(ere)f+(ask)n(ed)g(to)h(de\014ne)g Fp(twoBitSort)p Fq(,)d(whic)n(h)j(sorts)f+(a)g(pair)h(of)g(bits.)41 b(Here,)29 b(w)n(e)515 1659+y(need)e(the)h(circuit)g Fp(twoBitSortl)23 b Fq(that)28+b(sorts)e(a)i(t)n(w)n(o-list)e(of)i(bits:)602 1842 y+Fp(twoBitSortl)39 b([a,b])i(=)j([min,)d(max])689 1941+y(where)776 2041 y(\(min,)h(max\))g(=)h(twoBitSort)c(\(a,)k(b\))515+2224 y Fq(No)n(w,)27 b(all)g(w)n(e)g(need)h(to)g(do)f(is)g(to)h(plug)f+(this)h(comp)r(onen)n(t)g(in)n(to)f(our)g(sorter.)602+2407 y Fp(Main>)41 b Fl(simulateSeq)e(\(sorter)i(2)i(twoBitSortl\))c+(\(domainList)g(4\))602 2506 y Fp([[low,low,low,lo)o(w])o(,[l)o(ow)o+(,lo)o(w,)o(lo)o(w,h)o(ig)o(h])602 2606 y(,[low,low,low,hi)o(gh)o(],[)o+(lo)o(w,l)o(ow)o(,h)o(igh)o(,h)o(igh)o(])602 2706 y(,[low,low,low,hi)o+(gh)o(],[)o(lo)o(w,l)o(ow)o(,h)o(igh)o(,h)o(igh)o(])602+2805 y(,[low,low,high,h)o(ig)o(h],)o([l)o(ow,)o(hi)o(gh)o(,hi)o(gh)o+(,hi)o(gh)o(])602 2905 y(,[low,low,low,hi)o(gh)o(],[)o(lo)o(w,l)o(ow)o+(,h)o(igh)o(,h)o(igh)o(])602 3005 y(,[low,low,high,h)o(ig)o(h],)o([l)o+(ow,)o(hi)o(gh)o(,hi)o(gh)o(,hi)o(gh)o(])602 3104 y(,[low,low,high,h)o+(ig)o(h],)o([l)o(ow,)o(hi)o(gh)o(,hi)o(gh)o(,hi)o(gh)o(])602+3204 y(,[low,high,high,)o(hi)o(gh])o(,[)o(hig)o(h,)o(hi)o(gh,)o(hi)o+(gh,)o(hi)o(gh])602 3304 y(])515 3486 y Fq(If,)22 b(after)e(studying)h+(these)f(examples,)h(y)n(ou)f(\014nd)h(that)g(y)n(ou)e(ha)n(v)n(e)h+(dev)n(elop)r(ed)g(an)g(in)n(terest)g(in)515 3586 y(butter\015y)26+b(net)n(w)n(orks,)f(y)n(ou)h(migh)n(t)h(lik)n(e)f(to)g(lo)r(ok)g(at)g+(a)g(pap)r(er)g(that)h(p)r(oses)f(a)g(puzzle)g(ab)r(out)515+3686 y(butter\015y)38 b(net)n(w)n(orks)f(of)h(switc)n(hes)f([17)o(].)69+b(Do)38 b(let)g(us)g(kno)n(w)g(if)g(y)n(ou)g(solv)n(e)e(the)j(puzzle,)+515 3785 y(b)r(ecause)27 b(w)n(e)g(ha)n(v)n(e)g(not)g(managed)g(to)g+(do)g(so!)515 4099 y Fm(8.5)135 b(Exercises)575 4313+y Fq(8.1)40 b(Is)28 b(parallel)e(comp)r(osition)h(\()p+Fp(-|-)p Fq(\))g(asso)r(ciativ)n(e?)575 4478 y(8.2)40+b(Are)g(the)h(circuits)e Fp(\(a->-b\))i(-|-)h(\(c->-d\))c+Fq(and)h Fp(\(a-|-c\))i(->-)h(\(b-|-d\))c Fq(the)722+4578 y(same)27 b(or)g(not?)575 4742 y(8.3)40 b(De\014ne)28+b(the)g(connection)g(pattern)f Fp(tri)p Fq(.)575 4907+y(8.4)40 b(What)23 b(do)r(es)f(a)g(triangle)g(of)h(dela)n(y)e(elemen)n+(ts)i(do)f(to)g(its)h(inputs?)36 b(When)23 b(migh)n(t)f(suc)n(h)722+5006 y(a)27 b(circuit)h(b)r(e)g(useful?)1905 5255 y(56)p+eop+%%Page: 57 58+57 57 bop 1255 1272 56 4 v 1255 1161 V 1255 1051 V 1255+940 V 1255 829 V 1255 718 V 1255 608 V 1255 497 V 1310+1272 111 4 v 1310 1160 a Fa(\000)1338 1132 y(\000)1310+1049 y(\001)1352 966 y(\001)1380 911 y(\001)1310 938+y(\002)1338 855 y(\002)1366 772 y(\002)1393 689 y(\002)-28+b(\002)p 1310 497 V -111 w(@)1338 717 y(@)1310 800 y(A)1352+883 y(A)1380 938 y(A)1310 910 y(B)1338 993 y(B)1366 1077+y(B)1393 1160 y(B)g(B)p 1421 1272 56 4 v 1421 1161 V+1421 1051 V 1421 940 V 1421 829 V 1421 718 V 1421 608+V 1421 497 V 1473 1132 173 4 v 1473 1298 4 167 v 1538+1225 a Fj(g)p 1642 1298 V 1473 1301 173 4 v 1473 910+V 1473 1077 4 167 v 1538 1003 a(g)p 1642 1077 V 1473+1080 173 4 v 1473 689 V 1473 855 4 167 v 1538 782 a(g)p+1642 855 V 1473 858 173 4 v 1473 468 V 1473 634 4 167+v 1538 561 a(g)p 1642 634 V 1473 637 173 4 v 1642 1272+56 4 v 1642 1161 V 1642 1051 V 1642 940 V 1642 829 V+1642 718 V 1642 608 V 1642 497 V 1698 1272 111 4 v 1698+1160 a Fa(\000)1725 1132 y(\000)1698 1049 y(\001)1739+966 y(\001)1767 911 y(\001)1698 938 y(\002)1725 855 y(\002)1753+772 y(\002)1781 689 y(\002)g(\002)p 1698 497 V -111 w(@)1725+717 y(@)1698 800 y(A)1739 883 y(A)1767 938 y(A)1698 910+y(B)1725 993 y(B)1753 1077 y(B)1781 1160 y(B)g(B)p 1808+1272 56 4 v 1808 1161 V 1808 1051 V 1808 940 V 1808 829+V 1808 718 V 1808 608 V 1808 497 V 1861 1132 173 4 v+1861 1298 4 167 v 1926 1225 a Fj(g)p 2030 1298 V 1861+1301 173 4 v 1861 910 V 1861 1077 4 167 v 1926 1003 a(g)p+2030 1077 V 1861 1080 173 4 v 1861 689 V 1861 855 4 167+v 1926 782 a(g)p 2030 855 V 1861 858 173 4 v 1861 468+V 1861 634 4 167 v 1926 561 a(g)p 2030 634 V 1861 637+173 4 v 2030 1272 56 4 v 2030 1161 V 2030 1051 V 2030+940 V 2030 829 V 2030 718 V 2030 608 V 2030 497 V 2085+1272 111 4 v 2085 1160 a Fa(\000)2113 1132 y(\000)2085+1049 y(\001)2127 966 y(\001)2154 911 y(\001)2085 938+y(\002)2113 855 y(\002)2141 772 y(\002)2168 689 y(\002)g(\002)p+2085 497 V -111 w(@)2113 717 y(@)2085 800 y(A)2127 883+y(A)2154 938 y(A)2085 910 y(B)2113 993 y(B)2141 1077+y(B)2168 1160 y(B)g(B)p 2196 1272 56 4 v 2196 1161 V+2196 1051 V 2196 940 V 2196 829 V 2196 718 V 2196 608+V 2196 497 V 2248 1132 173 4 v 2248 1298 4 167 v 2313+1225 a Fj(g)p 2417 1298 V 2248 1301 173 4 v 2248 910+V 2248 1077 4 167 v 2313 1003 a(g)p 2417 1077 V 2248+1080 173 4 v 2248 689 V 2248 855 4 167 v 2313 782 a(g)p+2417 855 V 2248 858 173 4 v 2248 468 V 2248 634 4 167+v 2313 561 a(g)p 2417 634 V 2248 637 173 4 v 2417 1272+56 4 v 2417 1161 V 2417 1051 V 2417 940 V 2417 829 V+2417 718 V 2417 608 V 2417 497 V 2473 1272 V 2473 1161+V 2473 1051 V 2473 940 V 2473 829 V 2473 718 V 2473 608+V 2473 497 V 1211 1508 a Fq(Figure)27 b(8.8:)36 b(the)28+b(sh)n(u\017e-exc)n(hange)e(net)n(w)n(ork)575 1773 y(8.5)40+b(The)25 b(binary)e(adder)h(sho)n(wn)f(in)i(this)f(c)n(hapter)g(w)n+(orks)f(only)g(when)i(the)g(binary)e(n)n(um-)722 1873+y(b)r(ers)j(to)h(b)r(e)g(added)f(are)f(of)i(the)g(same)f(length.)36+b(De\014ne)27 b(a)f(binary)g(adder)g(that)g(adds)722+1973 y(t)n(w)n(o)k(binary)g(n)n(um)n(b)r(ers,)h(whatev)n(er)f(their)g+(lengths.)46 b(Use)31 b(this)g(to)f(mak)n(e)g(a)g(general)722+2072 y(adder)d(tree)g(that)h(w)n(orks)e(for)h(an)n(y)g(size.)575+2238 y(8.6)40 b(De\014ne)32 b(the)f(wiring)f(pattern)h+Fp(riffle)d Fq(that)j(corresp)r(onds)e(to)i(the)g(p)r(erfect)g(sh)n+(u\017e)722 2338 y(of)d(a)f(pac)n(k)g(of)g(cards.)575+2504 y(8.7)40 b(De\014ne)28 b(the)g(wiring)f(pattern)h+Fp(unriffle)c Fq(that)k(is)f(the)h(in)n(v)n(erse)f(of)g+Fp(riffle)p Fq(.)575 2670 y(8.8)40 b(V)-7 b(erify)39+b(that)f(the)h(sorter)e(de\014ned)h(in)h(this)g(c)n(hapter)e(w)n(orks)g+(on)h(list)g(of)g(bits,)k(for)722 2770 y(sev)n(eral)36+b(di\013eren)n(t)i(sizes.)67 b(Ho)n(w)37 b(do)h(y)n(ou)f(state)h(the)g+(prop)r(ert)n(y?)66 b(Hin)n(t:)58 b(lo)r(ok)37 b(at)722+2869 y(exercise)27 b(2.2.)575 3035 y(8.9)40 b(De\014ne)29+b(a)g(comparator)d(that)j(w)n(orks)d(on)j(binary)f(n)n(um)n(b)r(ers)g+(and)g(use)g(it)h(to)g(mak)n(e)e(a)722 3135 y(binary)g(n)n(um)n(b)r(er)+g(sorter.)533 3301 y(8.10)40 b(If)32 b(y)n(ou)f(ha)n(v)n(e)f(a)h(pac)n+(k)f(of)h(cards)g(of)g(size)g(2)2056 3271 y Fg(n)2132+3301 y Fq(and)g(ri\017e)g(it)h(rep)r(eatedly)-7 b(,)32+b(ho)n(w)f(man)n(y)722 3401 y(ri\017es)c(do)r(es)h(it)g(tak)n(e)f(b)r+(efore)g(y)n(ou)g(are)f(bac)n(k)h(where)g(y)n(ou)g(started?)533+3567 y(8.11)40 b(Consider)27 b(the)h(circuits)f Fp(two)42+b(\(ilv)g(f\))27 b Fq(and)g Fp(ilv)42 b(\(two)g(f\))p+Fq(.)36 b(Are)27 b(they)h(the)g(same)722 3666 y(or)f(not?)533+3832 y(8.12)40 b(Ho)n(w)34 b(w)n(ould)h(y)n(ou)e(sho)n(w)h(\(using)h(p)+r(encil)g(and)f(pap)r(er\))h(that)g(the)g(t)n(w)n(o)f(connection)722+3932 y(patterns)27 b Fp(bfly)f Fq(and)i Fp(bfly1)e Fq(are)g(the)i+(same?)533 4098 y(8.13)40 b(\(*\))g(Giv)n(e)g(an)g Fn(iter)l(ative)g+Fq(rather)f(than)h(recursiv)n(e)e(description)i(of)g(the)g(butter\015y)+722 4198 y(net)n(w)n(ork.)i(Hin)n(t:)f(think)30 b(of)g(the)g(n)n(um)n+(b)r(er)f(of)h Fp(two)e Fq(and)i Fp(ilv)e Fq(com)n(binators)g(in)i(eac)+n(h)722 4297 y(stac)n(k)d(of)g(basic)g(comp)r(onen)n(ts.)37+b(Y)-7 b(ou)28 b(migh)n(t)f(\014nd)h(a)f(list)h(comprehension)f+(useful.)533 4463 y(8.14)40 b(It)28 b(turns)g(out)g(that)f(for)h(t)n(w)+n(o-input)f(t)n(w)n(o-output)g(comp)r(onen)n(ts)g(the)h(butter\015y)g+(net-)722 4563 y(w)n(ork)37 b(is)h(also)g(the)g(same)g(as)g(the)g+(so-called)f(sh)n(u\017e-exc)n(hange)g(net)n(w)n(ork,)i(whic)n(h)722+4663 y(consists)d(of)h(a)f(sequence)g(of)g(iden)n(tical)h(blo)r(c)n+(ks,)h(eac)n(h)e(of)g(whic)n(h)h(is)f Fp(riffle)41 b(->-)722+4762 y(twoN)h(n)h(circ)p Fq(.)722 4895 y(Figure)22 b(out)g(ho)n(w)g+(man)n(y)f(suc)n(h)h(columns)g(y)n(ou)f(need)i(\(assuming)e(that)i+Fp(circ)d Fq(has)i(t)n(w)n(o)722 4995 y(inputs)37 b(and)f(t)n(w)n(o)g+(outputs\).)63 b(De\014ne)37 b(the)g(sh)n(u\017e-exc)n(hange)d(net)n(w)+n(ork)h(in)h(La)n(v)-5 b(a.)1905 5255 y(57)p eop+%%Page: 58 59+58 58 bop 722 523 a Fq(Chec)n(k)24 b(that)h(it)g(is)f(really)f(the)i+(same)f(as)g(the)h(butter\015y)f(net)n(w)n(ork.)35 b(In)24+b(what)h(circum-)722 623 y(stances)i(migh)n(t)h(a)f(circuit)g(designer)+g(prefer)g(the)h(sh)n(u\017e-exc)n(hange)e(net)n(w)n(ork?)533+789 y(8.15)40 b(W)-7 b(e)28 b(sa)n(w)e(that)h Fp(bfly)42+b(n)h(swapl)25 b Fq(rev)n(erses)g(its)i(input)h(list.)37+b(Can)27 b(y)n(ou)f(mak)n(e)g Fp(riffle)722 888 y Fq(b)n(y)e(plugging)f+(a)g(t)n(w)n(o-input)h(t)n(w)n(o-output)f(wiring)g(comp)r(onen)n(t)h+(in)n(to)f(a)h(butter\015y?)36 b(If)722 988 y(not,)28+b(wh)n(y)f(not?)1905 5255 y(58)p eop+%%Page: 59 60+59 59 bop 515 1186 a Fo(Chapter)64 b(9)515 1641 y Fs(Syn)-6+b(thesizing)76 b(La)-6 b(v)-13 b(a)77 b(Circuits)515+2112 y Fq(In)36 b(this)g(c)n(hapter,)g(w)n(e)g(presen)n(t)f(a)g(n)n(um)+n(b)r(er)g(of)h(examples)f(where)g(w)n(e)h(generate)e(a)h(La)n(v)-5+b(a)515 2212 y(circuit)39 b(from)g(a)g(di\013eren)n(t)g(kind)g(of)h(sp)+r(eci\014cation.)71 b(W)-7 b(e)40 b(assume)e(that)i(the)f(reader)f(is)+515 2311 y(familiar)27 b(with)h(the)g(Hask)n(ell)f(programming)e+(language)h([9)o(].)515 2624 y Fm(9.1)135 b(State)46+b(Mac)l(hines)515 2845 y Fq(A)25 b(v)n(ery)f(common)g(w)n(a)n(y)g(of)h+(sp)r(ecifying)g(a)f(sequen)n(tial)g(system)h(is)g(b)n(y)g+(constructing)f(a)g Fn(state)515 2945 y(machine)p Fq(.)37+b(A)26 b(state)f(mac)n(hine)g(consists)g(of)g(four)g(parts:)35+b(a)25 b(set)h(of)f(states,)h(a)f(set)g(of)g(inputs,)515+3044 y(a)h(set)i(of)f(initial)g(states)g(and)g(a)g(transition)f+(function.)37 b(The)28 b(transition)e(function)i(maps)e(a)515+3144 y(state)j(and)g(an)h(input)g(to)f(a)g(set)h(of)f(next)h(states.)42+b(Usually)-7 b(,)30 b(w)n(e)f(dra)n(w)g(state)g(mac)n(hines)g(as)515+3244 y(pictures.)36 b(An)28 b(example)g(of)f(a)g(state)h(mac)n(hine)f+(is)g(pictured)h(in)g(\014gure)f(9.1.)515 3383 y(In)i(Hask)n(ell,)g+(here)g(is)g(ho)n(w)g(w)n(e)g(migh)n(t)g(sp)r(ecify)g(a)g(datat)n(yp)r+(e)g(for)g(represen)n(ting)f(state)h(ma-)515 3483 y(c)n(hines.)36+b(W)-7 b(e)28 b(parametrize)e(o)n(v)n(er)g(the)i(t)n(yp)r(es)g(of)f+(the)h(states)f(and)h(the)g(inputs.)602 3659 y Fp(data)42+b(StateMachine)c(state)k(inp)689 3758 y(=)h(StateMachine)863+3858 y({)h(states)215 b(::)43 b([state])863 3957 y(,)h(inputs)215+b(::)43 b([inp])863 4057 y(,)h(initial)171 b(::)43 b([state])863+4157 y(,)h(transition)39 b(::)k(state)e(->)i(inp)f(->)h([state])863+4256 y(})515 4432 y Fq(Here)27 b(is)g(ho)n(w)g(w)n(e)h(can)f(describ)r+(e)g(the)h(state)g(mac)n(hine)f(in)h(\014gure)e(9.1:)602+4608 y Fp(theStateMachine)37 b(=)689 4707 y(StateMachine)776+4807 y({)43 b(states)216 b(=)43 b(["A",)f("B",)f("C"])776+4907 y(,)i(inputs)216 b(=)43 b(['a',)f('b'])776 5006+y(,)h(initial)172 b(=)43 b(["A"])1905 5255 y Fq(59)p+eop+%%Page: 60 61+60 60 bop 1382 1198 a @beginspecial 0 @llx 0 @lly 271+@urx 182 @ury 1355 @rwi @setspecial+%%BeginDocument: Pictures/statemachine.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-94.0 226.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} 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 tr xrad yrad sc 0 0 1 startangle endangle arc+	closepath+	savematrix setmatrix+	} def++/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 4757 m -1000 -1000 l 7078 -1000 l 7078 4757 l cp clip+ 0.06000 0.06000 sc+7.500 slw+% Ellipse+n 3000 2100 450 450 0 360 DrawEllipse gs col0 s gr++% Ellipse+n 5100 1200 450 450 0 360 DrawEllipse gs col0 s gr++% Ellipse+n 5400 3300 450 450 0 360 DrawEllipse gs col0 s gr++% Polyline+gs  clippath+5766 2892 m 5708 2974 l 5709 2874 l 5667 3005 l 5724 3023 l cp+clip+n 5475 1425 m 5476 1426 l 5477 1429 l 5481 1435 l 5485 1444 l 5492 1457 l+ 5501 1473 l 5512 1494 l 5526 1518 l 5541 1547 l 5558 1579 l+ 5577 1614 l 5597 1651 l 5618 1690 l 5639 1731 l 5660 1773 l+ 5681 1814 l 5702 1856 l 5722 1896 l 5741 1936 l 5758 1974 l+ 5774 2010 l 5789 2045 l 5802 2078 l 5814 2110 l 5824 2140 l+ 5833 2169 l 5840 2197 l 5846 2224 l 5850 2250 l 5854 2280 l+ 5855 2311 l 5856 2342 l 5854 2374 l 5851 2408 l 5847 2443 l+ 5841 2480 l 5833 2519 l 5825 2559 l 5815 2601 l 5804 2643 l+ 5793 2686 l 5781 2729 l 5769 2771 l 5758 2811 l 5747 2848 l+ 5737 2882 l 5727 2912 l 5719 2938 l 5713 2959 l 5708 2975 l+ 5700 3000 l gs col0 s gr gr++% arrowhead+n 5766 2892 m 5708 2974 l 5709 2874 l 5745 2860 l 5766 2892 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4885 1759 m 4942 1675 l 4943 1776 l 4983 1644 l 4926 1627 l cp+clip+n 5025 2925 m 5024 2923 l 5022 2919 l 5019 2912 l 5013 2900 l 5005 2884 l+ 4996 2864 l 4984 2839 l 4971 2811 l 4956 2779 l 4940 2745 l+ 4924 2709 l 4907 2672 l 4891 2635 l 4876 2598 l 4862 2562 l+ 4848 2528 l 4837 2495 l 4827 2464 l 4818 2434 l 4811 2406 l+ 4806 2378 l 4802 2352 l 4800 2325 l 4799 2300 l 4799 2275 l+ 4801 2249 l 4804 2221 l 4808 2191 l 4813 2160 l 4819 2127 l+ 4827 2093 l 4835 2056 l 4845 2019 l 4855 1980 l 4865 1941 l+ 4876 1901 l 4887 1863 l 4898 1826 l 4908 1791 l 4917 1760 l+ 4925 1732 l 4932 1708 l 4938 1688 l 4943 1673 l 4950 1650 l gs col0 s gr gr++% arrowhead+n 4885 1759 m 4942 1675 l 4943 1776 l 4907 1791 l 4885 1759 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3333 1659 m 3244 1705 l 3291 1617 l 3193 1714 l 3236 1757 l cp+clip+n 4650 1050 m 4648 1050 l 4644 1051 l 4637 1051 l 4626 1052 l 4611 1054 l+ 4591 1056 l 4566 1059 l 4536 1062 l 4502 1066 l 4464 1071 l+ 4424 1075 l 4381 1081 l 4336 1086 l 4291 1092 l 4246 1098 l+ 4201 1105 l 4157 1112 l 4115 1119 l 4075 1126 l 4037 1134 l+ 4001 1141 l 3967 1150 l 3936 1158 l 3906 1168 l 3878 1178 l+ 3851 1188 l 3825 1200 l 3800 1213 l 3775 1226 l 3750 1242 l+ 3725 1258 l 3699 1277 l 3672 1297 l 3645 1319 l 3616 1343 l+ 3587 1369 l 3557 1396 l 3527 1424 l 3496 1454 l 3465 1484 l+ 3434 1514 l 3404 1543 l 3375 1572 l 3348 1600 l 3323 1625 l+ 3300 1648 l 3280 1668 l 3264 1685 l 3251 1698 l 3241 1709 l+ 3225 1725 l gs col0 s gr gr++% arrowhead+n 3333 1659 m 3244 1705 l 3291 1617 l 3329 1621 l 3333 1659 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4829 3414 m 4923 3448 l 4826 3474 l 4964 3481 l 4966 3421 l cp+clip+n 3150 2550 m 3151 2551 l 3153 2555 l 3156 2560 l 3161 2569 l 3169 2582 l+ 3179 2598 l 3192 2619 l 3207 2644 l 3224 2672 l 3244 2704 l+ 3266 2739 l 3289 2776 l 3314 2815 l 3340 2855 l 3367 2895 l+ 3394 2936 l 3422 2975 l 3449 3014 l 3477 3050 l 3504 3085 l+ 3531 3118 l 3558 3149 l 3585 3177 l 3611 3203 l 3638 3226 l+ 3665 3248 l 3692 3267 l 3721 3284 l 3750 3300 l 3777 3313 l+ 3805 3324 l 3836 3335 l 3868 3345 l 3902 3354 l 3938 3363 l+ 3977 3371 l 4019 3378 l 4062 3385 l 4109 3391 l 4157 3397 l+ 4208 3403 l 4260 3408 l 4314 3412 l 4369 3417 l 4425 3421 l+ 4480 3425 l 4535 3429 l 4588 3432 l 4640 3435 l 4689 3438 l+ 4734 3440 l 4776 3442 l 4813 3444 l 4846 3445 l 4874 3447 l+ 4897 3448 l 4915 3449 l 4929 3449 l 4950 3450 l gs col0 s gr gr++% arrowhead+n 4829 3414 m 4923 3448 l 4826 3474 l 4803 3443 l 4829 3414 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3495 2365 m 3401 2327 l 3500 2305 l 3363 2294 l 3358 2354 l cp+clip+n 4950 3075 m 4949 3074 l 4947 3071 l 4942 3065 l 4935 3056 l 4925 3044 l+ 4913 3029 l 4897 3009 l 4878 2986 l 4856 2960 l 4832 2931 l+ 4806 2900 l 4778 2867 l 4749 2832 l 4719 2798 l 4688 2764 l+ 4658 2730 l 4628 2698 l 4598 2667 l 4569 2637 l 4540 2610 l+ 4512 2585 l 4485 2562 l 4458 2541 l 4432 2522 l 4405 2504 l+ 4378 2489 l 4350 2475 l 4323 2463 l 4295 2452 l 4266 2442 l+ 4234 2432 l 4201 2423 l 4165 2415 l 4127 2407 l 4086 2400 l+ 4043 2393 l 3998 2386 l 3951 2380 l 3902 2374 l 3852 2368 l+ 3802 2363 l 3751 2357 l 3701 2353 l 3653 2348 l 3607 2344 l+ 3564 2340 l 3525 2337 l 3490 2334 l 3460 2332 l 3434 2330 l+ 3414 2328 l 3399 2327 l 3375 2325 l gs col0 s gr gr++% arrowhead+n 3495 2365 m 3401 2327 l 3500 2305 l 3521 2337 l 3495 2365 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4611 1554 m 4704 1516 l 4648 1601 l 4756 1514 l 4718 1467 l cp+clip+n 3450 2025 m 3452 2025 l 3456 2024 l 3464 2023 l 3477 2021 l 3494 2019 l+ 3516 2015 l 3543 2011 l 3575 2006 l 3611 2001 l 3651 1995 l+ 3693 1988 l 3736 1981 l 3781 1974 l 3825 1966 l 3869 1959 l+ 3911 1951 l 3952 1943 l 3990 1935 l 4026 1927 l 4060 1919 l+ 4092 1911 l 4121 1903 l 4149 1894 l 4175 1885 l 4200 1875 l+ 4226 1864 l 4252 1851 l 4278 1837 l 4305 1822 l 4332 1805 l+ 4360 1787 l 4389 1767 l 4419 1745 l 4449 1722 l 4481 1698 l+ 4512 1674 l 4544 1649 l 4574 1624 l 4603 1601 l 4630 1579 l+ 4654 1559 l 4674 1542 l 4691 1528 l 4704 1517 l 4725 1500 l gs col0 s gr gr++% arrowhead+n 4611 1554 m 4704 1516 l 4648 1601 l 4611 1592 l 4611 1554 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2461 1935 m 2527 2010 l 2430 1986 l 2547 2058 l 2579 2007 l cp+clip+n 2175 1950 m 2178 1950 l 2186 1949 l 2198 1949 l 2216 1948 l 2237 1947 l+ 2261 1946 l 2286 1945 l 2310 1945 l 2333 1945 l 2353 1945 l+ 2371 1946 l 2386 1948 l 2400 1950 l 2415 1954 l 2430 1959 l+ 2446 1966 l 2463 1974 l 2481 1984 l 2499 1994 l 2516 2004 l+ 2550 2025 l gs col0 s gr gr++% arrowhead+n 2461 1935 m 2527 2010 l 2430 1986 l 2425 1948 l 2461 1935 l  cp gs 0.00 setgray ef gr  col0 s+/Courier ff 270.00 scf sf+5025 1275 m+gs 1 -1 sc (B) col0 sh gr+/Courier ff 270.00 scf sf+2925 2175 m+gs 1 -1 sc (A) col0 sh gr+/Courier ff 270.00 scf sf+5325 3375 m+gs 1 -1 sc (C) col0 sh gr+/Helvetica ff 270.00 scf sf+3600 1200 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+5925 2175 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+4875 2325 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+4125 2700 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+3600 3525 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+4050 1800 m+gs 1 -1 sc (b) col0 sh gr+/Times-Italic ff 270.00 scf sf+1575 2100 m+gs 1 -1 sc (start) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 1158 1381 a Fq(Figure)27 b(9.1:)36 b(An)28+b(example)g(of)f(a)g(state)h(mac)n(hine.)1170 2576 y+@beginspecial 0 @llx 0 @lly 373 @urx 259 @ury 1865 @rwi+@setspecial+%%BeginDocument: Pictures/statecircuit.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-89.0 312.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 6187 m -1000 -1000 l 8698 -1000 l 8698 6187 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+gs  clippath+2877 4470 m 2973 4500 l 2877 4530 l 3015 4530 l 3015 4470 l cp+clip+n 5400 1800 m 5400 2025 l 2400 2025 l 2400 4500 l 3000 4500 l gs col0 s gr gr++% arrowhead+n 2877 4470 m 2973 4500 l 2877 4530 l 2853 4500 l 2877 4470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 2670 m 2973 2700 l 2877 2730 l 3015 2730 l 3015 2670 l cp+clip+n 6000 1800 m 6000 2175 l 2700 2175 l 2700 2700 l 3000 2700 l gs col0 s gr gr++% arrowhead+n 2877 2670 m 2973 2700 l 2877 2730 l 2853 2700 l 2877 2670 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 1170 m 2973 1200 l 2877 1230 l 3015 1230 l 3015 1170 l cp+clip+n 2325 3525 m 2100 3525 l 2100 1200 l 3000 1200 l gs col0 s gr gr++% arrowhead+n 2877 1170 m 2973 1200 l 2877 1230 l 2853 1200 l 2877 1170 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 4170 m 2973 4200 l 2877 4230 l 3015 4230 l 3015 4170 l cp+clip+n 6000 3300 m 6000 3675 l 2700 3675 l 2700 4200 l 3000 4200 l gs col0 s gr gr++% arrowhead+n 2877 4170 m 2973 4200 l 2877 4230 l 2853 4200 l 2877 4170 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 2970 m 2973 3000 l 2877 3030 l 3015 3030 l 3015 2970 l cp+clip+n 2475 3000 m 3000 3000 l gs col0 s gr gr++% arrowhead+n 2877 2970 m 2973 3000 l 2877 3030 l 2853 3000 l 2877 2970 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+2877 1470 m 2973 1500 l 2877 1530 l 3015 1530 l 3015 1470 l cp+clip+n 2175 1500 m 3000 1500 l gs col0 s gr gr++% arrowhead+n 2877 1470 m 2973 1500 l 2877 1530 l 2853 1500 l 2877 1470 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 5400 3300 m 5400 3525 l 2475 3525 l gs col0 s gr +% Polyline+n 2175 3000 m 2325 3000 l gs col0 s gr +% Polyline+n 5400 4800 m 5400 5025 l 1800 5025 l 1800 3000 l 2025 3000 l gs col0 s gr +% Polyline+n 6000 4800 m 6000 5175 l 1500 5175 l 1500 1500 l 2025 1500 l gs col0 s gr +% Polyline+n 3000 3900 m 6300 3900 l 6300 4800 l 3000 4800 l cp gs col0 s gr +% Polyline+n 3000 2400 m 6300 2400 l 6300 3300 l 3000 3300 l cp gs col0 s gr +% Polyline+n 3000 900 m 6300 900 l 6300 1800 l 3000 1800 l cp gs col0 s gr +% Polyline+gs  clippath+6777 1320 m 6873 1350 l 6777 1380 l 6915 1380 l 6915 1320 l cp+clip+n 6300 1350 m 6900 1350 l gs col0 s gr gr++% arrowhead+n 6777 1320 m 6873 1350 l 6777 1380 l 6753 1350 l 6777 1320 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6777 2820 m 6873 2850 l 6777 2880 l 6915 2880 l 6915 2820 l cp+clip+n 6300 2850 m 6900 2850 l gs col0 s gr gr++% arrowhead+n 6777 2820 m 6873 2850 l 6777 2880 l 6753 2850 l 6777 2820 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6777 4320 m 6873 4350 l 6777 4380 l 6915 4380 l 6915 4320 l cp+clip+n 6300 4350 m 6900 4350 l gs col0 s gr gr++% arrowhead+n 6777 4320 m 6873 4350 l 6777 4380 l 6753 4350 l 6777 4320 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+5325 4650 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+5325 3150 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+5325 1650 m+gs 1 -1 sc (a) col0 sh gr+/Helvetica ff 270.00 scf sf+5925 1650 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+5925 3150 m+gs 1 -1 sc (b) col0 sh gr+/Helvetica ff 270.00 scf sf+5925 4650 m+gs 1 -1 sc (b) col0 sh gr+/Courier ff 270.00 scf sf+3375 1425 m+gs 1 -1 sc (A) col0 sh gr+/Courier ff 270.00 scf sf+3375 2925 m+gs 1 -1 sc (B) col0 sh gr+/Courier ff 270.00 scf sf+3375 4425 m+gs 1 -1 sc (C) col0 sh gr+/Helvetica ff 270.00 scf sf+6975 1425 m+gs 1 -1 sc (active) col0 sh gr+/Helvetica ff 270.00 scf sf+6975 2925 m+gs 1 -1 sc (active) col0 sh gr+/Helvetica ff 270.00 scf sf+6975 4425 m+gs 1 -1 sc (active) col0 sh gr+/Times-Italic ff 270.00 scf sf+5400 1425 m+gs 1 -1 sc (when) col0 sh gr+/Times-Italic ff 270.00 scf sf+5400 2925 m+gs 1 -1 sc (when) col0 sh gr+/Times-Italic ff 270.00 scf sf+5400 4425 m+gs 1 -1 sc (when) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 677 2759 a(Figure)f(9.2:)36 b(A)28 b(sc)n(hematic)f+(translation)f(of)i(the)g(state)f(mac)n(hine)g(of)h(\014gure)f(9.1.)776+3024 y Fp(,)43 b(transition)d(=)j(\\state)e(inp)h(->)1517+3123 y([)h(next)f(|)h(\(state',)e(inp',)g(next\))h(<-)2040+3223 y([)h(\("A",)f('a',)g("C"\))2040 3323 y(,)h(\("A",)f('b',)g("A"\))+2040 3422 y(,)h(...)2040 3522 y(])1822 3622 y(,)g(state)f(==)h(state')+1822 3721 y(,)g(inp)g(==)g(inp')1822 3821 y(])776 3920+y(})515 4106 y Fq(Note)31 b(that)g(the)g(somewhat)f(clumsy)h+(de\014nition)g(of)g(the)g(transition)f(function)h(w)n(ould)g(b)r(e)515+4206 y(easier)26 b(in)i(an)f(application)g(where)g(the)h(states)f(and)h+(inputs)g(actually)f Fn(me)l(an)h Fq(something.)515 4346+y(Giv)n(en)38 b(a)h(sp)r(eci\014cation)f(in)h(terms)g(of)f(a)h(state)f+(mac)n(hine,)j(w)n(e)e(w)n(ould)f(lik)n(e)h(to)f(b)r(e)h(able)515+4445 y(to)34 b(translate)g(in)h(in)n(to)f(a)g(circuit.)58+b(One)35 b(reason)e(for)h(this)h(migh)n(t)f(b)r(e)h(b)r(ecause)f(w)n(e)+h(w)n(an)n(t)515 4545 y(a)i(protot)n(yp)r(e)f(implemen)n(tation)h(of)h+(the)f(state)g(mac)n(hine.)66 b(Another)37 b(reason)e(migh)n(t)j(b)r(e)+515 4644 y(b)r(ecause)29 b(w)n(e)h(w)n(an)n(t)g(to)g(v)n(erify)f(that)i+(a)e(giv)n(en)h(circuit)g(implemen)n(tation)g(is)g(equiv)-5+b(alen)n(t)30 b(to)515 4744 y(the)e(translated)e(v)n(ersion.)515+4883 y(One)20 b(metho)r(d)h(of)f(translating)g(a)g(state)g(mac)n(hine)g+(in)n(to)g(a)g(circuit)h(is)f(pictured)h(in)f(\014gures)g(9.2)515+4983 y(and)k(9.3.)35 b(The)24 b(idea)g(is)g(that)h(ev)n(ery)e(state)h+(in)g(the)h(state)f(mac)n(hine)g(maps)f(to)i(a)e(comp)r(onen)n(t)1905+5255 y(60)p eop+%%Page: 61 62+61 61 bop 1030 1094 a @beginspecial 0 @llx 0 @lly 440+@urx 157 @ury 2200 @rwi @setspecial+%%BeginDocument: Pictures/component.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-4.0 410.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 7825 m -1000 -1000 l 8398 -1000 l 8398 7825 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+gs  clippath+4980 5277 m 4950 5373 l 4920 5277 l 4920 5415 l 4980 5415 l cp+clip+n 4950 4500 m 4950 5400 l gs col0 s gr gr++% arrowhead+n 4980 5277 m 4950 5373 l 4920 5277 l 4950 5253 l 4980 5277 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 4500 5400 m 5100 5400 l 5100 6000 l 4500 6000 l cp gs col0 s gr +% Polyline+gs  clippath+4680 5277 m 4650 5373 l 4620 5277 l 4620 5415 l 4680 5415 l cp+clip+n 4650 5100 m 4650 5400 l gs col0 s gr gr++% arrowhead+n 4680 5277 m 4650 5373 l 4620 5277 l 4650 5253 l 4680 5277 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4830 6477 m 4800 6573 l 4770 6477 l 4770 6615 l 4830 6615 l cp+clip+n 4800 6000 m 4800 6600 l gs col0 s gr gr++% arrowhead+n 4830 6477 m 4800 6573 l 4770 6477 l 4800 6453 l 4830 6477 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 3000 4650 m 3900 4650 l 3900 5550 l 3000 5550 l cp gs col0 s gr +% Polyline+gs  clippath+2877 5070 m 2973 5100 l 2877 5130 l 3015 5130 l 3015 5070 l cp+clip+n 2400 5100 m 3000 5100 l gs col0 s gr gr++% arrowhead+n 2877 5070 m 2973 5100 l 2877 5130 l 2853 5100 l 2877 5070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 1500 4650 m 2400 4650 l 2400 5550 l 1500 5550 l cp gs col0 s gr +% Polyline+gs  clippath+5880 5277 m 5850 5373 l 5820 5277 l 5820 5415 l 5880 5415 l cp+clip+n 5850 4500 m 5850 5400 l gs col0 s gr gr++% arrowhead+n 5880 5277 m 5850 5373 l 5820 5277 l 5850 5253 l 5880 5277 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 5400 5400 m 6000 5400 l 6000 6000 l 5400 6000 l cp gs col0 s gr +% Polyline+gs  clippath+5730 6477 m 5700 6573 l 5670 6477 l 5670 6615 l 5730 6615 l cp+clip+n 5700 6000 m 5700 6600 l gs col0 s gr gr++% arrowhead+n 5730 6477 m 5700 6573 l 5670 6477 l 5700 6453 l 5730 6477 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+n 3900 5100 m 4875 5100 l gs col0 s gr +% Polyline+n 5025 5100 m 5775 5100 l gs col0 s gr +% Polyline+gs  clippath+5580 5277 m 5550 5373 l 5520 5277 l 5520 5415 l 5580 5415 l cp+clip+n 5550 5100 m 5550 5400 l gs col0 s gr gr++% arrowhead+n 5580 5277 m 5550 5373 l 5520 5277 l 5550 5253 l 5580 5277 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+6477 5070 m 6573 5100 l 6477 5130 l 6615 5130 l 6615 5070 l cp+clip+n 5925 5100 m 6600 5100 l gs col0 s gr gr++% arrowhead+n 6477 5070 m 6573 5100 l 6477 5130 l 6453 5100 l 6477 5070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+1377 4845 m 1473 4875 l 1377 4905 l 1515 4905 l 1515 4845 l cp+clip+n 900 4875 m 1500 4875 l gs col0 s gr gr++% arrowhead+n 1377 4845 m 1473 4875 l 1377 4905 l 1353 4875 l 1377 4845 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+1377 5295 m 1473 5325 l 1377 5355 l 1515 5355 l 1515 5295 l cp+clip+n 900 5325 m 1500 5325 l gs col0 s gr gr++% arrowhead+n 1377 5295 m 1473 5325 l 1377 5355 l 1353 5325 l 1377 5295 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+4875 4425 m+gs 1 -1 sc (a) col0 sh gr+/Courier ff 270.00 scf sf+4575 5775 m+gs 1 -1 sc (AND) col0 sh gr+/Courier ff 270.00 scf sf+3375 5175 m+gs 1 -1 sc (D) col0 sh gr+/Courier ff 270.00 scf sf+1800 5175 m+gs 1 -1 sc (OR) col0 sh gr+/Helvetica ff 270.00 scf sf+5775 4425 m+gs 1 -1 sc (b) col0 sh gr+/Courier ff 270.00 scf sf+5475 5775 m+gs 1 -1 sc (AND) col0 sh gr+/Times-Italic ff 270.00 scf sf+5025 6825 m+gs 1 -1 sc (emits) col0 sh gr+/Helvetica ff 270.00 scf sf+6675 5175 m+gs 1 -1 sc (active) col0 sh gr+/Times-Italic ff 270.00 scf sf+75 5175 m+gs 1 -1 sc (activate) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 628 1277 a Fq(Figure)27 b(9.3:)36 b(A)28+b(more)f(detailed)g(view)h(of)f(the)h(comp)r(onen)n(t)g(b)r(elonging)e+(to)i(a)f(state.)515 1541 y(in)35 b(the)g(circuit.)59+b(The)35 b(comp)r(onen)n(t)g(has)g(a)f(dela)n(y)g(elemen)n(t)i(that)f+(k)n(eeps)f(trac)n(k)g(of)h(if)g(w)n(e)515 1640 y(are)k(in)h(that)h+(state.)74 b(The)41 b(comp)r(onen)n(t)f(receiv)n(es)e(messages)h(from)h+(other)f(comp)r(onen)n(t)515 1740 y(that)e(activ)-5 b(ate)36+b(it,)k(and,)f(dep)r(ending)e(on)f(the)h(inputs,)j(also)c(sends)g+(messages)f(to)i(other)515 1840 y(comp)r(onen)n(ts)27+b(activ)-5 b(ating)27 b(them.)515 1979 y(An)j(adv)-5+b(an)n(tage)28 b(of)h(this)h(translation)e(metho)r(d)i(is)g(that)f(w)n+(e)h(can)f(b)r(e)h(in)f(sev)n(eral)f(states)h(at)515+2079 y(the)k(same)f(time,)i(allo)n(wing)d(for)h(non-deterministic)g+(execution)h(of)f(our)g(state)g(mac)n(hine.)515 2178+y(A)g(disadv)-5 b(an)n(tage)30 b(is)h(that,)i(ev)n(en)e(when)h(our)f+(state)g(mac)n(hine)g(is)h(deterministic,)h(w)n(e)e(still)515+2278 y(ha)n(v)n(e)26 b(one)h(dela)n(y)g(comp)r(onen)n(t)g(p)r(er)h+(state,)f(whic)n(h)h(is)f(often)h(to)r(o)g(m)n(uc)n(h.)515+2418 y(The)e(t)n(yp)r(e)g(of)g(circuits)f(w)n(e)h(are)e(translating)h+(state)h(mac)n(hines)f(to)h(is)g(a)f(circuit)h(from)f(input)515+2517 y(signals)h(to)i(a)f(list)h(of)f(indicators)g(for)g(eac)n(h)g+(state.)602 2702 y Fp(type)42 b(StateCircuit)689 2802+y(=)h([Signal)e(Bool])g(->)i([Signal)e(Bool])515 2986+y Fq(F)-7 b(rom)24 b(these)g(t)n(w)n(o)g(t)n(yp)r(e,)h(w)n(e)f(can)g+(declare)g(the)h(t)n(yp)r(e)f(of)h(our)e(translation)g(function,)j+(whic)n(h)515 3086 y(tak)n(es)g(a)i(state)f(mac)n(hine)g(in)n(to)g(a)h+(state)f(circuit.)602 3271 y Fp(stateMachine)39 b(::)j(\(Eq)h(inp,)f+(Eq)g(state\))1169 3370 y(=>)g(StateMachine)d(state)i(inp)i(->)g+(StateCircuit)602 3470 y(stateMachine)c(machine)h(inSignals)g(=)j+(outSignals)689 3570 y(where)776 3669 y(...)515 3854+y Fq(First,)d(w)n(e)e(de\014ne)g(the)g(function)g Fp(inSignal)d+Fq(whic)n(h)j(maps)f(an)h(input)h(from)e(the)h(state)515+3954 y(mac)n(hine)27 b(to)g(the)h(corresp)r(onding)e(signal)h(wire.)776+4139 y Fp(inSignal)41 b(input)g(=)863 4238 y(head)h([)i(sig)1081+4338 y(|)g(\(input',sig\))38 b(<-)43 b(inputs)e(machine)g(`zip`)g+(inSignals)1081 4437 y(,)j(input)d(==)i(input')1081 4537+y(])515 4722 y Fq(Then,)26 b(w)n(e)f(create)f(a)h(list)h(of)f(the)h+(comp)r(onen)n(ts,)f(whic)n(h)h(w)n(e)f(use)g(as)g(a)g(lo)r(okup)g+(table)g(in)h(the)515 4821 y(rest)h(of)g(the)h(translation.)776+5006 y Fp(components)40 b(=)1905 5255 y Fq(61)p eop+%%Page: 62 63+62 62 bop 863 523 a Fp([)44 b(component)39 b(state)863+623 y(|)44 b(state)d(<-)i(states)e(machine)863 722 y(])515+885 y Fq(A)d(comp)r(onen)n(t)g(for)f(a)h(certain)f(state)h(consists)f+(of)g(a)h(pair)f Fp(\(active,)j(emits\))p Fq(,)f(where)515+985 y Fp(active)24 b Fq(is)j(the)g(indicator)f(signal)g(for)h(the)g+(state,)g(and)g Fp(emits)e Fq(is)h(a)h(lo)r(okup)f(table,)h(repre-)515+1084 y(sen)n(ting)g(what)g(signal)g(to)h(send)f(to)h(what)f(state.)776+1247 y Fp(component)40 b(state)i(=)h(\(active,)d(emits\))863+1347 y(where)951 1446 y(init)129 b(=)43 b(state)e(`elem`)g(initial)g+(machine)951 1546 y(active)g(=)i(delay)e(\(bool)h(init\))f+(\(activating)e(state\))951 1745 y(emits)85 b(=)1038+1845 y([)43 b(\()g(state')1125 1944 y(,)g(and2)f(\(active,)e(inSignal)h+(input\))1125 2044 y(\))1038 2144 y(|)i(input)85 b(<-)43+b(inputs)e(machine)1038 2243 y(,)i(state')e(<-)i(transition)c(machine)i+(state)g(input)1038 2343 y(])515 2506 y Fq(The)34 b(declaration)f(of)i+Fp(active)d Fq(uses)i(one)g(dela)n(y)g(comp)r(onen)n(t,)i(whose)e+(initial)h(v)-5 b(alue)34 b(de-)515 2605 y(p)r(ends)27+b(on)g(this)g(state)f(b)r(eing)h(an)g(initial)g(state)g(or)f(not,)h+(and)g(whose)f(next)h(v)-5 b(alue)27 b(dep)r(ends)515+2705 y(on)39 b(the)i(signals)e(the)h(other)g(comp)r(onen)n(ts)f(are)g+(sending)h(to)g(it)g(\(computed)h(using)f(the)515 2804+y(function)28 b Fp(activating)p Fq(\).)515 2944 y(The)37+b(list)g Fp(emits)e Fq(is)h(constructed)h(as)f(follo)n(ws.)64+b(F)-7 b(or)36 b(ev)n(ery)f(input)j(signal,)g(w)n(e)f(use)g(the)515+3044 y(transition)31 b(function)h(to)f(c)n(hec)n(k)g(what)g(next)h+(states)f(w)n(e)h(ha)n(v)n(e.)47 b(W)-7 b(e)32 b(then)g(send)g(a)f+(signal)515 3143 y(to)e(the)h(comp)r(onen)n(t)f(of)g(state)g(if)h(and)g+(only)f(if)h(w)n(e)f(are)f(activ)n(e,)h(and)g(w)n(e)g(ha)n(v)n(e)g+(that)g(input)515 3243 y(as)e(an)g(incoming)g(signal.)515+3382 y(Here)g(is)g(ho)n(w)g(w)n(e)h(de\014ne)g(the)f(function)i+Fp(activating)p Fq(.)776 3545 y Fp(activating)40 b(state)h(=)863+3645 y(orl)i([)g(activate)1038 3744 y(|)g(\(_,)f(emits\))390+b(<-)43 b(components)1038 3844 y(,)g(\(state',)d(activate\))g(<-)j+(emits)1038 3944 y(,)g(state)e(==)i(state')1038 4043+y(])515 4206 y Fq(F)-7 b(or)30 b(all)g(comp)r(onen)n(ts,)h(w)n(e)f(lo)r+(ok)g(at)h(what)f(messages)f(it)i(w)n(an)n(ts)f(to)h(send,)g(and)f+(\014lter)h(out)515 4306 y(the)d(signals)e(going)h(to)g(the)h(righ)n(t)+f(state.)37 b(Then,)27 b(w)n(e)h(tak)n(e)f(the)g(or)g(of)h(all)f(these)+h(signals.)515 4445 y(Finally)-7 b(,)30 b(w)n(e)g(can)g(create)f(the)h+(list)h(of)f(state)f(indicators,)h(b)n(y)g(taking)f(the)i(\014rst)f+(output)g(of)515 4545 y(the)e(comp)r(onen)n(ts.)776 4707+y Fp(outSignals)40 b(=)863 4807 y([)k(active)863 4907+y(|)g(\(active,)c(_\))j(<-)f(components)863 5006 y(])1905+5255 y Fq(62)p eop+%%Page: 63 64+63 63 bop 515 523 a Fq(Here)27 b(is)g(ho)n(w)g(w)n(e)h(can)f(mak)n(e)g+(the)h(circuit)f(for)g(the)h(state)g(mac)n(hine)f(w)n(e)g(sp)r+(eci\014ed)h(earlier.)602 689 y Fp(theCircuit)39 b(\(a,)k(b\))f(=)i+(\(inA,)d(inB,)h(inC\))689 789 y(where)776 889 y([inA,)g(inB,)g(inC])g+(=)863 988 y(stateMachine)d(theStateMachine)e([a,)43+b(b])515 1298 y Fm(9.2)135 b(Beha)l(vioral)47 b(Descriptions)515+1520 y Fq(Another)22 b(w)n(a)n(y)f(of)h(sp)r(ecifying)h(the)g(b)r(eha)n+(vior)e(of)h(a)g(circuit)g(is)h(b)n(y)f(a)g Fn(b)l(ehavior)l(al)27+b(description)515 1620 y(language)p Fq(.)47 b(Examples)30+b(of)g(these)h(kind)g(of)g(languages)e(are)g(b)r(eha)n(vioral)g(VHDL,)j+(V)-7 b(erilog,)515 1719 y(Esterel,)42 b(etc.)75 b(The)40+b(idea)g(is)g(to)g(write)f(a)h(program)e(in)j(suc)n(h)e(a)h(language,)i+(and)e(then)515 1819 y(transform)26 b(the)i(program)e(to)h(a)g(circuit)+h(with)g(the)g(same)f(b)r(eha)n(vior.)515 1958 y(W)-7+b(e)32 b(sho)n(w)e(ho)n(w)h(to)g(compile)h(programs)d(in)j(a)f(v)n(ery)+f(simple)h(description)g(language)f(to)h(a)515 2058 y(circuit.)56+b(W)-7 b(e)35 b(call)f(the)g(language)f Fn(Pac)l(e)p+Fq(.)57 b(Here)34 b(is)g(a)g(Hask)n(ell)f(datat)n(yp)r(e)h(respresen)n+(ting)515 2158 y(P)n(ace)26 b(programs:)602 2324 y Fp(data)42+b(Pace)g(out)689 2423 y(=)h(Skip)689 2523 y(|)g(Emit)f(out)689+2623 y(|)h(Wait)689 2722 y(|)g(IfThenElse)d(\(Signal)g(Bool\))i(\(Pace)+f(out,)h(Pace)g(out\))689 2822 y(|)h(While)f(\(Signal)e(Bool\))i+(\(Pace)f(out\))689 2922 y(|)i(Pace)f(out)h(:>>)f(Pace)g(out)689+3021 y(|)h(Pace)f(out)h(:||)f(Pace)g(out)515 3187 y Fq(A)29+b(P)n(ace)f(program)f(can)i(send)g(out)g(messages)e(of)i(t)n(yp)r(e)g+Fp(out)p Fq(.)40 b(Running)30 b(a)e(P)n(ace)g(program)515+3287 y(tak)n(es)18 b(a)g(n)n(um)n(b)r(er)g(of)h(clo)r(c)n(k)f(cycles.)+33 b(Here)19 b(is)f(the)i(informal)e(seman)n(tics)g(of)g(P)n(ace)g+(constructs:)639 3485 y Fi(\017)41 b Fp(Skip)p Fq(:)49+b(This)35 b(program)d(do)r(es)j(not)f(send)h(an)n(y)e(messages,)i(and)f+(tak)n(es)g(no)g(time)h(to)722 3585 y(execute.)639 3741+y Fi(\017)41 b Fp(Emit)h(msg)p Fq(:)k(This)33 b(program)d(sends)j(out)f+(the)h(message)e Fp(msg)p Fq(,)i(and)g(tak)n(es)e(no)i(time)722+3840 y(to)28 b(execute.)639 3996 y Fi(\017)41 b Fp(Wait)p+Fq(:)d(This)28 b(program)f(do)r(es)h(not)h(send)f(an)n(y)g(messages,)f+(and)i(tak)n(es)e(1)i(clo)r(c)n(k)e(cycle)722 4096 y(to)h(execute.)639+4252 y Fi(\017)41 b Fp(IfThenElse)f(cond)i(\(p1,)g(p2\))p+Fq(:)49 b(If)36 b(the)f(signal)e Fp(cond)g Fq(is)i(high,)h(it)f+(executes)g Fp(p1)p Fq(,)722 4352 y(and)c(sends)g(the)g(messages)f+Fp(p1)g Fq(sends,)i(and)e(tak)n(es)h(as)f(long)g(time)i(as)e+Fp(p1)g Fq(tak)n(es.)47 b(If)722 4452 y Fp(cond)26 b+Fq(is)i(lo)n(w,)f(the)h(same,)f(but)h(for)f Fp(p2)p Fq(.)639+4608 y Fi(\017)41 b Fp(While)h(cond)g(p)p Fq(:)34 b(If)24+b Fp(cond)d Fq(is)i(high,)h(then)g(it)f(executes)g Fp(p)p+Fq(,)h(and)e(sends)h(the)h(messages)722 4707 y Fp(p)29+b Fq(sends,)h(w)n(aits)f(for)g(the)h(amoun)n(t)f(of)g(time)h+Fp(p)g Fq(tak)n(es)e(to)h(\014nish,)i(and)e(then)h(tries)f(to)722+4807 y(execute)g(the)h(program)d(again.)41 b(If)30 b+Fp(cond)e Fq(is)h(lo)n(w,)g(it)h(\014nishes)f(righ)n(t)f(a)n(w)n(a)n(y)+g(without)722 4907 y(sending)g(an)n(y)g(messages.)37+b(F)-7 b(or)27 b(this)i(program)d(to)i(b)r(e)g(v)-5 b(alid,)29+b Fp(p)f Fq(m)n(ust)g(at)g(least)g(tak)n(e)722 5006 y(one)f(clo)r(c)n+(k)g(cycle)h(to)f(execute)h(if)g Fp(cond)e Fq(is)h(high.)1905+5255 y(63)p eop+%%Page: 64 65+64 64 bop 1570 1315 a @beginspecial 0 @llx 0 @lly 181+@urx 210 @ury 905 @rwi @setspecial+%%BeginDocument: Pictures/flashcircuit.eps+/$F2psDict 200 dict def+$F2psDict begin+$F2psDict /mtrx matrix put+/col-1 {0 setgray} bind def+/col0 {0.000 0.000 0.000 srgb} bind def+/col1 {0.000 0.000 1.000 srgb} bind def+/col2 {0.000 1.000 0.000 srgb} bind def+/col3 {0.000 1.000 1.000 srgb} bind def+/col4 {1.000 0.000 0.000 srgb} bind def+/col5 {1.000 0.000 1.000 srgb} bind def+/col6 {1.000 1.000 0.000 srgb} bind def+/col7 {1.000 1.000 1.000 srgb} bind def+/col8 {0.000 0.000 0.560 srgb} bind def+/col9 {0.000 0.000 0.690 srgb} bind def+/col10 {0.000 0.000 0.820 srgb} bind def+/col11 {0.530 0.810 1.000 srgb} bind def+/col12 {0.000 0.560 0.000 srgb} bind def+/col13 {0.000 0.690 0.000 srgb} bind def+/col14 {0.000 0.820 0.000 srgb} bind def+/col15 {0.000 0.560 0.560 srgb} bind def+/col16 {0.000 0.690 0.690 srgb} bind def+/col17 {0.000 0.820 0.820 srgb} bind def+/col18 {0.560 0.000 0.000 srgb} bind def+/col19 {0.690 0.000 0.000 srgb} bind def+/col20 {0.820 0.000 0.000 srgb} bind def+/col21 {0.560 0.000 0.560 srgb} bind def+/col22 {0.690 0.000 0.690 srgb} bind def+/col23 {0.820 0.000 0.820 srgb} bind def+/col24 {0.500 0.190 0.000 srgb} bind def+/col25 {0.630 0.250 0.000 srgb} bind def+/col26 {0.750 0.380 0.000 srgb} bind def+/col27 {1.000 0.500 0.500 srgb} bind def+/col28 {1.000 0.630 0.630 srgb} bind def+/col29 {1.000 0.750 0.750 srgb} bind def+/col30 {1.000 0.880 0.880 srgb} bind def+/col31 {1.000 0.840 0.000 srgb} bind def++end+save+-107.0 248.0 translate+1 -1 scale++/cp {closepath} bind def+/ef {eofill} bind def+/gr {grestore} bind def+/gs {gsave} bind def+/sa {save} bind def+/rs {restore} bind def+/l {lineto} bind def+/m {moveto} bind def+/rm {rmoveto} bind def+/n {newpath} bind def+/s {stroke} bind def+/sh {show} bind def+/slc {setlinecap} bind def+/slj {setlinejoin} bind def+/slw {setlinewidth} bind def+/srgb {setrgbcolor} bind def+/rot {rotate} bind def+/sc {scale} bind def+/sd {setdash} bind def+/ff {findfont} bind def+/sf {setfont} bind def+/scf {scalefont} bind def+/sw {stringwidth} bind def+/tr {translate} bind def+/tnt {dup dup currentrgbcolor+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}+  bind def+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul+  4 -2 roll mul srgb} bind def+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def+/$F2psEnd {$F2psEnteredState restore end} def++$F2psBegin+10 setmiterlimit+n -1000 5125 m -1000 -1000 l 5800 -1000 l 5800 5125 l cp clip+ 0.06000 0.06000 sc+% Polyline+7.500 slw+n 1800 1500 m 3900 1500 l 3900 3300 l 1800 3300 l cp gs col0 s gr +% Polyline+gs  clippath+2130 1377 m 2100 1473 l 2070 1377 l 2070 1515 l 2130 1515 l cp+clip+n 2100 900 m 2100 1500 l gs col0 s gr gr++% arrowhead+n 2130 1377 m 2100 1473 l 2070 1377 l 2100 1353 l 2130 1377 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+3630 3777 m 3600 3873 l 3570 3777 l 3570 3915 l 3630 3915 l cp+clip+n 3600 3300 m 3600 3900 l gs col0 s gr gr++% arrowhead+n 3630 3777 m 3600 3873 l 3570 3777 l 3600 3753 l 3630 3777 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4377 1770 m 4473 1800 l 4377 1830 l 4515 1830 l 4515 1770 l cp+clip+n 3900 1800 m 4500 1800 l gs col0 s gr gr++% arrowhead+n 4377 1770 m 4473 1800 l 4377 1830 l 4353 1800 l 4377 1770 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4377 2070 m 4473 2100 l 4377 2130 l 4515 2130 l 4515 2070 l cp+clip+n 3900 2100 m 4500 2100 l gs col0 s gr gr++% arrowhead+n 4377 2070 m 4473 2100 l 4377 2130 l 4353 2100 l 4377 2070 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4377 2370 m 4473 2400 l 4377 2430 l 4515 2430 l 4515 2370 l cp+clip+n 3900 2400 m 4500 2400 l gs col0 s gr gr++% arrowhead+n 4377 2370 m 4473 2400 l 4377 2430 l 4353 2400 l 4377 2370 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4377 2670 m 4473 2700 l 4377 2730 l 4515 2730 l 4515 2670 l cp+clip+n 3900 2700 m 4500 2700 l gs col0 s gr gr++% arrowhead+n 4377 2670 m 4473 2700 l 4377 2730 l 4353 2700 l 4377 2670 l  cp gs 0.00 setgray ef gr  col0 s+% Polyline+gs  clippath+4377 2970 m 4473 3000 l 4377 3030 l 4515 3030 l 4515 2970 l cp+clip+n 3900 3000 m 4500 3000 l gs col0 s gr gr++% arrowhead+n 4377 2970 m 4473 3000 l 4377 3030 l 4353 3000 l 4377 2970 l  cp gs 0.00 setgray ef gr  col0 s+/Helvetica ff 270.00 scf sf+3300 4125 m+gs 1 -1 sc (finish) col0 sh gr+/Helvetica ff 270.00 scf sf+1875 825 m+gs 1 -1 sc (start) col0 sh gr+/Times-Italic ff 270.00 scf sf+4800 2700 m+gs 1 -1 sc  90.0 rot (emits) col0 sh gr+$F2psEnd+rs+%%EndDocument+ @endspecial 788 1498 a Fq(Figure)27 b(9.4:)36 b(The)28+b(shap)r(e)f(of)h(a)f(circuit)g(represen)n(ting)f(a)i(P)n(ace)e+(program.)639 1763 y Fi(\017)41 b Fp(p1)i(:>>)f(p2)p+Fq(:)e(\()p Fn(se)l(quential)33 b(c)l(omp)l(osition)p+Fq(\))e(The)f(program)d(executes)i Fp(p1)p Fq(,)h(w)n(aits)f(for)722+1863 y(the)f(time)g(it)g(tak)n(es)f(to)h(\014nish,)f(and)h(then)g+(executes)f Fp(p2)p Fq(.)639 2029 y Fi(\017)41 b Fp(p1)i(:||)f(p2)p+Fq(:)57 b(\()p Fn(p)l(ar)l(al)t(lel)42 b(c)l(omp)l(osition)p+Fq(\))d(The)f(program)e(executes)i Fp(p1)f Fq(and)h Fp(p2)f+Fq(in)722 2128 y(parallel,)27 b(w)n(aiting)g(for)g(b)r(oth)h(to)f+(\014nish)h(un)n(til)g(it)g(\014nishes.)515 2351 y(Here)f(is)g(an)h+(example)f(of)h(a)f(P)n(ace)f(program,)f(where)j(w)n(e)f(describ)r(e)g+(a)g(toggle:)602 2537 y Fp(togglePace)39 b(change)i(=)689+2636 y(While)h(high)776 2736 y(\()h(While)f(\(inv)g(change\))951+2836 y(\()h(Wait)951 2935 y(\))689 3035 y(:>>)f(Emit)g(\(\))689+3134 y(:>>)g(Wait)689 3234 y(:>>)g(While)g(\(inv)g(change\))951+3334 y(\()h(Emit)f(\(\))863 3433 y(:>>)h(Wait)951 3533+y(\))689 3633 y(:>>)f(Wait)776 3732 y(\))515 3918 y Fq(W)-7+b(e)36 b(can)f(read)g(the)h(program)e(as)h(follo)n(ws.)60+b(F)-7 b(orev)n(er:)51 b(w)n(ait)35 b(un)n(til)h Fp(change)d+Fq(is)j(not)g(lo)n(w,)515 4018 y(then)c(emit)g(a)f(message,)g(and)g(w)n+(ait.)48 b(Then,)33 b(w)n(ait)e(un)n(til)h Fp(change)d+Fq(is)i(not)g(lo)n(w,)h(and)g(emit)515 4117 y(a)e(message)f(all)i(the)g+(time,)h(then)f(w)n(ait.)46 b(The)31 b(t)n(yp)r(e)g(of)f(messages)f+(this)i(P)n(ace)f(program)e(is)515 4217 y(using,)f(is)h+Fp(\(\))p Fq(,)e(b)r(ecause)i(there)f(is)g(only)h(one)f(message.)515+4356 y(W)-7 b(e)32 b(can)f(giv)n(e)f(a)h(more)g(formal)g(seman)n(tics)f+(to)i(this)g(language)d(b)n(y)j(giving)e(a)h(translation)515+4456 y(from)c(a)g(program)f(to)h(a)g(circuit.)37 b(And)28+b(then)g(w)n(e)g(get)f(an)g(implemen)n(tation)h(for)f(free!)515+4596 y(W)-7 b(e)33 b(are)f(going)g(to)h(de\014ne)g(a)g(function)h+Fp(circuit)p Fq(,)d(whic)n(h)i(tak)n(es)f(a)h(P)n(ace)f(program)f(to)h+(a)515 4695 y(P)n(ace)26 b(circuit.)602 4881 y Fp(type)42+b(PaceCircuit)d(out)689 4981 y(=)k(Signal)e(Bool)h(->)h(\(PaceEmits)c+(out,)j(Signal)g(Bool\))1905 5255 y Fq(64)p eop+%%Page: 65 66+65 65 bop 602 623 a Fp(type)42 b(PaceEmits)e(out)689+722 y(=)j([\(out,)e(Signal)g(Bool\)])602 922 y(circuit)g(::)h(Pace)g+(out)h(->)f(PaceCircuit)d(out)515 1103 y Fq(A)25 b(P)n(ace)e(circuit)i+(\(see)g(\014gure)f(9.4\))h(tak)n(es)f(in)h(one)f(input,)j(called)d+Fp(start)p Fq(,)g(whic)n(h)h(is)f(used)h(to)515 1203+y(activ)-5 b(ate)23 b(the)g(program,)f(and)h(has)g(t)n(w)n(o)f+(outputs,)j(a)e(list)g Fp(emits)p Fq(,)f(and)h(a)g(signal)f+Fp(finished)p Fq(,)515 1303 y(whic)n(h)33 b(the)i(circuit)e(uses)h(to)f+(indicate)h(that)g(it)g(is)g(done.)55 b(The)34 b(list)g+Fp(emits)e Fq(is)h(a)h(lo)r(okup)515 1402 y(table,)27+b(whic)n(h)h(relates)e(output)j(messages)d(and)h(signals.)515+1542 y(W)-7 b(e)30 b(start)f(with)h Fp(Skip)p Fq(.)40+b(Here,)30 b(w)n(e)f(just)h(connect)g Fp(start)d Fq(to)j+Fp(finish)p Fq(,)d(so)i(that)h(w)n(e)f(\014nish)515 1641+y(immediately)-7 b(.)602 1823 y Fp(circuit)41 b(Skip)h(start)f(=)i+(\([],)f(finish\))689 1923 y(where)776 2022 y(finish)f(=)j(start)515+2204 y Fq(In)33 b(the)h(case)e(of)i Fp(Emit)p Fq(,)f(w)n(e)g(connect)g+(the)h Fp(start)d Fq(to)i(the)h(righ)n(t)e(output,)k(and)d(w)n(e)g+(\014nish)515 2304 y(immediately)-7 b(.)602 2486 y Fp(circuit)41+b(\(Emit)g(out\))h(start)g(=)h(\(emits,)d(finish\))689+2585 y(where)776 2685 y(emits)85 b(=)44 b([\(out,)d(start\)])776+2785 y(finish)g(=)j(start)515 2966 y Fq(When)31 b(w)n(e)f(execute)h(a)f+Fp(Wait)p Fq(,)g(w)n(e)g(connect)g Fp(start)f Fq(and)h+Fp(finish)p Fq(,)f(but)j(with)f(a)f(dela)n(y)-7 b(,)31+b(so)515 3066 y(that)d(it)g(tak)n(es)e(one)h(clo)r(c)n(k)g(cycle)h(to)f+(\014nish.)602 3248 y Fp(circuit)41 b(Wait)h(start)f(=)i(\([],)f+(finish\))689 3347 y(where)776 3447 y(finish)f(=)j(delay)d(low)h(start)+515 3629 y Fq(T)-7 b(o)34 b(transform)g(an)h Fp(IfThenElse)p+Fq(,)e(w)n(e)h(\014rst)h(transform)f(the)h(t)n(w)n(o)f(subprograms)f+Fp(prog1)515 3729 y Fq(and)25 b Fp(prog2)p Fq(.)34 b(W)-7+b(e)26 b(start)e Fp(prog1)g Fq(if)h Fp(start)f Fq(is)h(high)g(and)g(if)+h(the)f(condition)g(is)h(true,)f(and)g(w)n(e)515 3828+y(start)31 b Fp(prog2)e Fq(if)k Fp(start)c Fq(is)j(high)f(and)h(the)g+(condition)f(is)h(false.)49 b(W)-7 b(e)32 b(collect)f(all)g(emitted)515+3928 y(messages,)26 b(and)h(\014nish)h(if)g(either)g(one)f(of)g(them)h+(\014nishes.)602 4110 y Fp(circuit)41 b(\(IfThenElse)e(cond)j(\(prog1,)+e(prog2\)\))h(start)g(=)j(\(emits,)c(finish\))689 4209+y(where)776 4309 y(\(emits1,)h(finish1\))f(=)j(circuit)e(prog1)g+(start1)776 4408 y(\(emits2,)g(finish2\))f(=)j(circuit)e(prog2)g+(start2)776 4608 y(start1)g(=)j(and2)d(\(start,)g(cond\))776+4707 y(start2)g(=)j(and2)d(\(start,)g(inv)h(cond\))776+4907 y(emits)85 b(=)44 b(emits1)d(++)h(emits2)776 5006+y(finish)f(=)j(or2)e(\(finish1,)e(finish2\))1905 5255+y Fq(65)p eop+%%Page: 66 67+66 66 bop 515 523 a Fq(T)-7 b(o)40 b(transform)g(a)g+Fp(While)p Fq(,)i(w)n(e)f(\014rst)f(transform)g(the)h(subprogram)e+Fp(prog)p Fq(.)75 b(Then,)44 b(w)n(e)515 623 y(in)n(tro)r(duce)c(an)h+(auxiliary)e(signal)h(called)g Fp(active)p Fq(,)i(whic)n(h)e(is)h(high)+f(exactly)h(when)f(w)n(e)515 722 y(should)31 b(consider)f(starting)g+Fp(prog)p Fq(,)g(that)h(is)g(when)h(the)f(whole)g(while)g(lo)r(op)g(is)+f(started)h(or)515 822 y(when)i Fp(prog)e Fq(has)i(\014nished.)53+b(W)-7 b(e)34 b(actually)e(start)h Fp(prog)e Fq(when)i(w)n(e)g(are)f+(activ)n(e,)i(and)f(the)515 922 y(condition)24 b(is)f(true.)36+b(W)-7 b(e)24 b(\014nish)h(the)f(while)g(lo)r(op)g(when)g(w)n(e)g(are)f+(activ)n(e)g(but)i(the)f(condition)515 1021 y(is)j(false.)602+1206 y Fp(circuit)41 b(\(While)g(cond)h(prog\))f(start)h(=)h(\(emits,)e+(finish\))689 1306 y(where)776 1405 y(\(emits,)g(finish'\))f(=)j+(circuit)e(prog)h(start')776 1605 y(active)f(=)j(or2)e(\(start,)f+(finish'\))776 1704 y(start')g(=)j(and2)d(\(active,)g(cond\))776+1804 y(finish)g(=)j(and2)d(\(active,)g(inv)h(cond\))515+1989 y Fq(T)-7 b(ransforming)25 b(sequen)n(tial)i(comp)r(osition)f+(just)i(connects)f(the)g Fp(finish)e Fq(of)i(the)h(\014rst)f(with)515+2089 y(the)h Fp(start)d Fq(of)j(the)g(second,)f(and)g(collects)g(the)h+(emitted)h(messages.)602 2274 y Fp(circuit)41 b(\(prog1)g(:>>)h+(prog2\))f(start)h(=)h(\(emits,)e(finish\))689 2373 y(where)776+2473 y(\(emits1,)g(finish1\))f(=)j(circuit)e(prog1)g(start)776+2572 y(\(emits2,)g(finish\))84 b(=)43 b(circuit)e(prog2)g(finish1)776+2772 y(emits)h(=)h(emits1)e(++)i(emits2)515 2957 y Fq(And)25+b(lastly)-7 b(,)26 b(transforming)d(parallel)h(comp)r(osition)g(starts)+g(b)r(oth)i(circuits)e(when)i(started,)515 3056 y(collects)j(the)h+(emitted)g(messages,)f(and)g Fn(synchr)l(onizes)i Fq(the)f(\014nish)g+(signals)e(for)h(\014nishing.)515 3156 y(W)-7 b(e)28+b(use)g(the)h Fp(synchronize)23 b Fq(circuit,)29 b(de\014ned)f(in)g+(exercise)f(5.9)h(\(the)g(answ)n(er)f(is)h(on)g(page)515+3256 y(84\).)602 3441 y Fp(circuit)41 b(\(prog1)g(:||)h(prog2\))f+(start)h(=)h(\(emits,)e(finish\))689 3540 y(where)776+3640 y(\(emits1,)g(finish1\))f(=)j(circuit)e(prog1)g(start)776+3740 y(\(emits2,)g(finish2\))f(=)j(circuit)e(prog2)g(start)776+3939 y(emits)85 b(=)44 b(emits1)d(++)h(emits2)776 4038+y(finish)f(=)j(synchronize)39 b(\(finish1,)g(finish2\))515+4223 y Fq(No)n(w)29 b(w)n(e)h(ha)n(v)n(e)f(made)h(this)g(translator,)f+(w)n(e)h(can)f(use)h(it)h(to)f(turn)g(a)f(P)n(ace)g(program)f(plus)515+4323 y(a)33 b(list)h(of)f(output)h(messages)e(w)n(e)i(are)e(in)n+(terested)h(in)h(in)n(to)g(a)f(circuit,)i(outputting)f(these)515+4423 y(messages.)602 4608 y Fp(compile)41 b(::)h(Eq)h(out)f(=>)h(Pace)f+(out)g(->)h([out])f(->)h([Signal)d(Bool])602 4707 y(compile)h(prog)h+(outputs)e(=)j(signals)689 4807 y(where)776 4907 y(start)260+b(=)43 b(delay)e(high)h(low)776 5006 y(\(emits,)f(_\))i(=)g(circuit)e+(prog)g(start)1905 5255 y Fq(66)p eop+%%Page: 67 68+67 67 bop 776 623 a Fp(signals)41 b(=)863 722 y([)j(orl)e([)h(sig)1125+822 y(|)g(\(out',sig\))d(<-)i(emits)1125 922 y(,)h(out)f(==)h(out')1125+1021 y(])863 1121 y(|)h(out)e(<-)h(outputs)863 1220 y(])515+1406 y Fq(W)-7 b(e)32 b(\014rst)f(create)g(a)h(top-lev)n(el)e+Fp(start)g Fq(signal,)i(whic)n(h)g(is)f(to)h(b)r(e)g(high)g(on)f(the)h+(\014rst)g(clo)r(c)n(k)515 1506 y(tic)n(k,)e(and)f(then)h(lo)n(w)f+(forev)n(er,)f(then)i(\014lter)f(out)h(the)g(signals)e(w)n(e)h(are)g+(in)n(terested)g(in)g(from)515 1606 y(the)i(resulting)g(circuit.)48+b(Note)32 b(that)f(w)n(e)g(ha)n(v)n(e)g(to)g(tak)n(e)g(the)g(or)g(for)g+(these)g(signals,)g(since)515 1705 y(there)c(migh)n(t)h(b)r(e)g(sev)n+(eral)d(parts)i(of)h(the)g(P)n(ace)e(program)g(emitting)i(the)g(same)f+(signal.)515 1845 y(Here)g(is)g(ho)n(w)g(w)n(e)h(can)f(create)g(a)g+(toggle)f(circuit)i(from)f(the)h(giv)n(en)f(P)n(ace)f(program:)602+2031 y Fp(toggle')41 b(change)g(=)i(out)689 2130 y(where)776+2230 y([out])f(=)h(compile)e(\(togglePace)e(change\))h([\(\)])515+2416 y Fq(W)-7 b(e)19 b(compile)g(the)g(P)n(ace)f(circuit,)i(and)f(sa)n+(y)f(that)h(w)n(e)g(are)f(only)h(in)n(terested)f(the)h+Fp(\(\))g Fq(messages.)515 2730 y Fm(9.3)135 b(Exercises)575+2945 y Fq(9.1)40 b(In)33 b(the)h(circuit)f(pro)r(duced)f(b)n(y)h(the)g+(state)g(mac)n(hine)g(translation,)g(all)f(inputs)i(will)722+3045 y(only)29 b(ha)n(v)n(e)f(e\013ect)i(on)f(the)g(outputs)h(in)f(the)+h Fn(next)e Fq(clo)r(c)n(k)h(cycle.)41 b(Sometimes,)30+b(ho)n(w-)722 3145 y(ev)n(er,)24 b(it)h(migh)n(t)f(b)r(e)g(desirable)f+(to)h(c)n(hange)f(state)h(dep)r(ending)h(on)f(the)g(curren)n(t)f(input)+722 3244 y Fn(right)31 b(away)p Fq(.)38 b(In)28 b(this)g(w)n(a)n(y)-7+b(,)26 b(y)n(ou)h(are)g(not)g(in)n(terested)g(in)h(the)g(initial)g+(state.)722 3377 y(Sho)n(w)33 b(ho)n(w)f(to)h(c)n(hange)f(the)i+(de\014nition)f(of)g Fp(stateMachine)28 b Fq(to)33 b(incorp)r(orate)f+(this)722 3477 y(c)n(hange.)575 3643 y(9.2)40 b(V)-7+b(erify)26 b(that)g(the)f(toggle)g(circuit)g(deriv)n(ed)g(from)g(the)h+(P)n(ace)e(program)f(is)i(equiv)-5 b(alen)n(t)722 3742+y(to)28 b(a)f(direct)g(de\014nition)h(of)g(a)f(toggle)g(circuit.)575+3908 y(9.3)40 b(Describ)r(e)d(the)h Fp(synchronize)32+b Fq(circuit)37 b(from)g(exercise)f(5.9)g(in)i(terms)f(of)g(a)f(state)+722 4008 y(mac)n(hine,)29 b(and)g(generate)e(a)h(circuit)h(for)f(it.)41+b(V)-7 b(erify)29 b(that)g(the)g(implemen)n(tation)g(in)722+4108 y(y)n(our)e(answ)n(er)f(to)h(5.9)g(is)g(correct!)575+4274 y(9.4)40 b(Describ)r(e)e(the)g Fp(synchronize)33+b Fq(circuit)38 b(from)f(exercise)g(5.9)f(in)i(terms)g(of)f(a)g(P)n+(ace)722 4373 y(program,)27 b(and)h(generate)f(a)g(circuit)h(for)g(it.)+39 b(V)-7 b(erify)28 b(that)h(the)g(implemen)n(tation)f(in)722+4473 y(y)n(our)f(answ)n(er)f(to)h(5.9)g(is)g(correct!)1905+5255 y(67)p eop+%%Page: 68 69+68 68 bop 515 1186 a Fo(Chapter)64 b(10)515 1641 y Fs(T)-6+b(yp)6 b(es)515 2112 y Fq(In)28 b(this)f(c)n(hapter,)g(w)n(e)g(will)h+(describ)r(e)f(what)h(role)f(t)n(yp)r(es)g(pla)n(y)g(in)h(the)g(La)n(v)+-5 b(a)26 b(system.)515 2426 y Fm(10.1)135 b(Signals)46+b(and)f(Circuits)515 2648 y Fq(The)35 b(circuits)g(in)g(La)n(v)-5+b(a)34 b(are)g Fn(functions)h Fq(from)g(input)h(signals)e(to)h(output)h+(signals.)58 b(The)515 2748 y(basic)31 b(signals)g(in)h(La)n(v)-5+b(a)31 b(are)g Fp(low)p Fq(,)g Fp(high)p Fq(,)h(and)g(in)n(teger)f+(signals.)48 b(The)32 b(t)n(yp)r(e)g(of)g(the)g(\014rst)515+2847 y(t)n(w)n(o)k(signals)g(is)h Fp(Signal)k(Bool)p+Fq(,)c(and)g(that)h(of)e(in)n(teger)g(signals)g(is)h+Fp(Signal)k(Int)p Fq(.)64 b(The)515 2947 y(notation)27+b(for)g(this)h(is:)602 3132 y Fp(low)86 b(::)43 b(Signal)e(Bool)602+3231 y(high)h(::)h(Signal)e(Bool)602 3331 y(3)174 b(::)43+b(Signal)e(Int)602 3430 y(42)130 b(::)43 b(Signal)e(Int)602+3530 y(-17)86 b(::)43 b(Signal)e(Int)515 3715 y Fq(The)27+b(t)n(yp)r(es)h(of)f(circuits)h(are)e(written)i(using)f(the)h(sym)n(b)r+(ol)g Fp(->)p Fq(.)36 b(Examples)26 b(are:)602 3900 y+Fp(and2)173 b(::)42 b(\(Signal)f(Bool,)h(Signal)f(Bool\))128+b(->)43 b(Signal)e(Bool)602 3999 y(times)129 b(::)42+b(\(Signal)f(Int,)h(Signal)f(Int\))216 b(->)43 b(Signal)e(Int)602+4099 y(halfAdd)g(::)h(\(Signal)f(Bool,)h(Signal)f(Bool\))128+b(->)43 b(\(Signal)e(Bool,)g(Signal)g(Bool\))602 4198+y(adder2)85 b(::)42 b([\(Signal)f(Bool,)g(Signal)g(Bool\)])g(->)i+([Signal)e(Bool])515 4383 y Fq(As)30 b(w)n(e)g(can)h(see,)f(the)h(t)n+(yp)r(es)g(for)f(pairs)f(are)h(written)h(using)f Fp(\()p+Fq(,)h Fp(,)g Fq(and)f Fp(\))p Fq(,)h(and)f(the)h(t)n(yp)r(es)515+4483 y(for)c(lists)g(are)g(written)h(using)f Fp([)g Fq(and)h+Fp(])p Fq(.)515 4622 y(T)n(yp)r(es)40 b(do)f(not)i(ha)n(v)n(e)e(to)h(b)+r(e)g(explicitly)g(written)h(in)f(La)n(v)-5 b(a;)46 b(they)40+b(are)f(automatically)515 4722 y Fn(derive)l(d)27 b Fq(and)e+Fn(che)l(cke)l(d)p Fq(.)38 b(So,)25 b(if)h(w)n(e)f(mak)n(e)g(a)g(t)n+(yp)r(e)g(error,)f(for)h(example)g(b)n(y)g(giving)g(a)g(list)g(of)515+4821 y(signals)h(rather)h(than)g(a)h(pair)e(of)i(signals)e(to)i(an)f+(and)h(gate)f(as)g(input,)h(w)n(e)f(get:)602 5006 y Fp(Main>)41+b Fl(and2)h([high,)f(low])1905 5255 y Fq(68)p eop+%%Page: 69 70+69 69 bop 602 523 a Fp(ERROR:)41 b(Type)h(error)f(in)i(application)602+623 y(***)f(Expression)214 b(:)43 b(and2)f([low,high])602+722 y(***)g(Term)478 b(:)43 b([low,high])602 822 y(***)f(Type)478+b(:)43 b([Signal)e(Bool])602 922 y(***)h(Does)g(not)h(match)e(:)i+(\(Signal)e(Bool,Signal)e(Bool\))515 1236 y Fm(10.2)135+b(Connection)46 b(P)l(atterns)515 1458 y Fq(T)-7 b(o)30+b(b)r(e)i(able)e(to)h(deal)f(with)i(t)n(yp)r(es)f(in)g(the)g(presence)f+(of)h(connection)f(patterns,)h(w)n(e)g(need)515 1557+y(t)n(w)n(o)c(features:)36 b Fn(p)l(olymorphism)30 b+Fq(and)e Fn(higher-or)l(der)k(functions)p Fq(.)639 1780+y Fi(\017)41 b Fn(Polymorphism)h Fq(means)c(that)g(some)g(circuits)g+(or)g(connection)g(patterns)g(do)g(not)722 1879 y(care)d(ab)r(out)h+(what)g(kind)g(of)g(t)n(yp)r(e)g(w)n(e)f(are)g(using,)j(as)d(long)g(as)+g(it)h(matc)n(hes)g(with)722 1979 y(another)27 b(\(unkno)n(wn\))h(t)n+(yp)r(e.)639 2145 y Fi(\017)41 b Fn(Higher-or)l(der)33+b(functions)c Fq(allo)n(w)f(us)h(to)g(ha)n(v)n(e)f(functions)h(as)f+(parameters)g(to)h(other)722 2245 y(functions.)515 2467+y(Here)e(is)g(an)h(example:)36 b(the)28 b(t)n(yp)r(e)g(of)g(the)g+Fp(row)e Fq(connection)h(pattern.)602 2653 y Fp(row)42+b(::)h(\(\(c,a\))e(->)i(\(b,c\)\))e(->)i(\(c,[a]\))d(->)j(\([b],c\))515+2839 y Fq(F)-7 b(rom)40 b(this)h(w)n(e)f(can)g(see)h(that)g+Fp(row)e Fq(exp)r(ects)i(a)f(circuit)g(of)h(the)g(follo)n(wing)f(t)n+(yp)r(e)h(as)e(a)515 2939 y(parameter:)602 3125 y Fp(\(c,a\))i(->)i+(\(b,c\))515 3311 y Fq(The)25 b(connection)f(pattern)h(do)r(es)g(not)g+(care)e(ho)n(w)n(ev)n(er)g(what)i(exactly)g Fp(a)p Fq(,)g+Fp(b)f Fq(or)g Fp(c)h Fq(is,)g(as)g(long)515 3410 y(as)g(the)i(t)n(w)n+(o)e(uses)h(of)g Fp(c)f Fq(are)h(the)g Fn(same)p Fq(.)37+b(This)26 b(has)g(to)g(b)r(e)g(the)g(case)g(since)g Fp(c)f+Fq(is)h(the)h(t)n(yp)r(e)f(of)515 3510 y(the)g(carry)-7+b(,)25 b(and)g(the)h(carries)f(are)f(matc)n(hed)i(up)g(in)g(the)g(ro)n+(w.)36 b(But)26 b(apart)e(from)i(that,)h Fp(a)p Fq(,)e+Fp(b)515 3610 y Fq(and)i Fp(c)g Fq(can)h(b)r(e)g Fn(any)g+Fq(t)n(yp)r(e,)g(a)f(signal,)g(a)g(pair)g(of)g(signals,)g(a)g(list)h+(of)f(pairs)g(of)g(signals,)g(etc.)515 3924 y Fm(10.3)135+b(Ov)l(erloading)515 4146 y Fq(W)-7 b(e)21 b(ha)n(v)n(e)e(seen)i(a)f(n)+n(um)n(b)r(er)g(of)h(circuits)g(and)f(functions)h(that)g(b)r(eha)n(v)n+(e)f(di\013eren)n(tly)h(when)f(w)n(e)515 4245 y(use)30+b(them)i(in)f(di\013eren)n(t)g(con)n(texts.)45 b(This)31+b(is)g(called)f Fn(overlo)l(ading)p Fq(.)49 b(W)-7 b(e)31+b(use)g(o)n(v)n(erloading)515 4345 y(b)r(ecause)36 b(it)h(is)g(con)n(v)+n(enien)n(t,)h(w)n(e)f(do)f(not)h(ha)n(v)n(e)e(to)i(ha)n(v)n(e)f+(di\013eren)n(t)h(v)n(ersions)e(of)h(op)r(era-)515 4445+y(tions)24 b(around,)f(and)h(w)n(e)g(can)g(write)g(general)e(op)r+(erations)h(and)h(circuits)g(using)g(o)n(v)n(erloaded)515+4544 y(op)r(erations.)515 4684 y(An)39 b(example)f(is)g(the)h(constan)n+(t)f Fp(zero)p Fq(,)i(whic)n(h)f(is)f(a)g(generalized)f(v)n(ersion)g+(of)i Fp(low)p Fq(.)69 b(It)515 4783 y(b)r(eha)n(v)n(es)26+b(as)h(follo)n(ws.)1905 5255 y(69)p eop+%%Page: 70 71+70 70 bop 602 523 a Fp(Main>)41 b Fl(zero)602 623 y Fp(ERROR:)g+(Unresolved)e(overloading)602 822 y(Main>)i Fl(zero)h(::)h(Signal)e+(Bool)602 922 y Fp(low)602 1121 y(Main>)g Fl(zero)h(::)h(\(Signal)e+(Bool,)g(Signal)g(Bool\))602 1220 y Fp(\(low,)g(low\))602+1420 y(Main>)g Fl(zero)h(::)h(Signal)e(Int)602 1519 y+Fp(0)602 1719 y(Main>)g Fl(zero)h(::)h(\(Signal)e(Bool,)g(Signal)g+(Int\))602 1818 y Fp(\(low,)g(0\))515 2004 y Fq(In)25+b(the)h(\014rst)f(example,)h(w)n(e)f(see)g(that)h(La)n(v)-5+b(a)24 b(complains)h(b)r(ecause)g(it)h(has)f(no)g(idea)g(in)h(what)515+2104 y(kind)k(of)f(con)n(text)h(y)n(ou)f(w)n(an)n(t)g(to)g(use)h+Fp(zero)p Fq(.)42 b(In)30 b(a)f(La)n(v)-5 b(a)29 b(program,)f(this)i+(can)f(usually)h(b)r(e)515 2203 y(\014gured)g(out,)i(but)g(w)n(e)f(can)+f(b)r(e)i(explicit)f(ab)r(out)g(the)h(shap)r(e)f(of)g(the)g(result)g(b)+n(y)g(using)g(the)515 2303 y Fp(::)36 b Fq(notation.)515+2443 y(A)31 b(similar)f(constan)n(t)g(w)n(e)g(ha)n(v)n(e)g(seen)h(is)f+Fp(domain)p Fq(.)45 b(It)31 b(creates)e(a)i(list)g(of)g(all)f(the)h(p)r+(ossible)515 2542 y(v)-5 b(alues)27 b(of)h(a)f(certain)g(t)n(yp)r(e.)37+b(Here)27 b(is)g(ho)n(w)g(it)h(b)r(eha)n(v)n(es.)602+2728 y Fp(Main>)41 b(domain)h(::)g([Signal)f(Bool])602+2828 y([low,)g(high])602 3027 y(Main>)g(domain)h(::)g([\(Signal)f+(Bool,Signal)e(Bool\)])602 3127 y([\(low,)i(low\),)h(\(low,)f(high\),)g+(\(high,)g(low\),)h(\(high,)f(high\)])515 3313 y Fq(And)28+b(so)f(forth.)37 b(Other)27 b(examples)g(of)g(o)n(v)n(erloaded)e(op)r+(erators)h(are)g Fp(var)h Fq(and)g Fp(random)p Fq(.)515+3452 y(All)g(these)h(o)n(v)n(erloaded)c(op)r(erations)i(ha)n(v)n(e)g(a)+h(sp)r(ecial)g(v)n(ersion)f(that)h(w)n(orks)f(for)g(lists.)37+b(The)515 3552 y(reason)20 b(for)i(this)g(is)g(that,)i(in)f(the)f(case)+f(of)i(lists,)g(w)n(e)f(w)n(an)n(t)f(to)h(kno)n(w)g(ho)n(w)f+Fn(long)i Fq(they)f(should)515 3651 y(b)r(e.)56 b(Ho)n(w)34+b(else)g(can)g(w)n(e)f(create)g(a)h(list)g(with)h(only)f(lo)n(w)f(bits)+i(in)f(it,)i(or)d(sum)h(up)h(all)f(the)515 3751 y(p)r(ossible)27+b(lists)h(in)f(a)h(certain)f(domain?)515 3890 y(Here)40+b(are)f(some)h(examples)g(of)h(ho)n(w)f(the)h(sp)r(ecial)f(list)h(v)n+(ersions)d(b)r(eha)n(v)n(e)i(in)h(di\013eren)n(t)515+3990 y(con)n(texts.)602 4176 y Fp(Main>)g Fl(zeroList)g(3)i(::)g+([Signal)d(Bool])602 4276 y Fp([low,)h(low,)h(low])602+4475 y(Main>)f Fl(zeroList)g(2)i(::)g([\(Signal)d(Bool,Signal)f+(Bool\)])602 4575 y Fp([\(low,)i(low\),)h(\(low,)f(low\)])602+4774 y(Main>)g Fl(domainList)f(2)j(::)g([[Signal)d(Bool]])602+4873 y Fp([[low,)h(low],)h([low,)f(high],)g([high,)g(low],)h([high,)f+(high]])1905 5255 y Fq(70)p eop+%%Page: 71 72+71 71 bop 602 523 a Fp(Main>)41 b Fl(varList)g(3)i("apa")f(::)h+([Signal)d(Bool])602 623 y Fp([apa_1,)h(apa_2,)g(apa_3])515+809 y Fq(Examples)26 b(of)i(a)f(circuits)g(that)h(are)f(o)n(v)n+(erloaded)e(are)h Fp(delay)p Fq(,)g Fp(mux)p Fq(,)h(and)g+Fp(equal)p Fq(.)1905 5255 y(71)p eop+%%Page: 72 73+72 72 bop 515 1186 a Fo(App)5 b(endix)65 b(A)515 1641+y Fs(Quic)-6 b(k)76 b(Reference)i(Guide)515 2112 y Fq(In)29+b(this)g(app)r(endix)g(w)n(e)f(presen)n(t)g(an)h(o)n(v)n(erview)d(of)j+(options,)f(op)r(erations,)g(prede\014ned)h(cir-)515+2212 y(cuits)f(and)f(connection)g(patterns)g(in)h(La)n(v)-5+b(a.)515 2526 y Fm(A.1)134 b(The)45 b Fh(lava)e Fm(command)515+2748 y Fq(Here)27 b(are)g(the)h(command-line)f(options)g(for)g(the)h+Fp(lava)e Fq(command.)602 2950 y Fp(-h)p Fl(size)346+b Fp(set)42 b(memory)g(size)f(to)i Fl(size)f Fp(for)h(interpreter)602+3050 y(-c)g Fl(module)215 b Fp(compile)602 3150 y(-ghc)42+b Fl(module)128 b Fp(compile)41 b(using)g(GHC)i(\(default\))602+3249 y(-hbc)f Fl(module)128 b Fp(compile)41 b(using)g(HBC)602+3349 y(-u)522 b(update)41 b(internal)f(modules)h(after)h(change)602+3448 y(-x)h Fl(executable)c Fp(use)j(<)p Fl(executable)p+Fp(>)d(instead)i(of)i(compiler)515 3763 y Fm(A.2)134+b(Logical)46 b(Gates)515 3985 y Fq(Here)24 b(are)f(the)h(logical)f+(gates)h(de\014ned)g(in)h(the)f(La)n(v)-5 b(a)23 b(system.)36+b(Some)24 b(binary)f(gates)g(ha)n(v)n(e)g(a)515 4084+y(corresp)r(onding)k(binary)h(op)r(erator)f(\(for)i(example,)g+Fp(and2)e Fq(can)h(also)g(b)r(e)i(written)f(as)f Fp(<&>)p+Fq(\).)602 4370 y Fp(--)43 b Fl(Nullary)d(gates)i(::)h(Signal)e(Bool)+602 4469 y Fp(low)391 b(--)43 b Fl(constant)d(low)602+4569 y Fp(high)347 b(--)43 b Fl(constant)d(high)602 4768+y Fp(--)j Fl(Unary)e(gates)h(::)g(Signal)g(Bool)f(->)i(Signal)e(Bool)+602 4868 y Fp(id)435 b(--)43 b Fl(identity)602 4968 y+Fp(inv)391 b(--)43 b Fl(inverse,)d(negation)1905 5255+y Fq(72)p eop+%%Page: 73 74+73 73 bop 602 623 a Fp(--)43 b Fl(Binary)e(gates)g(::)i(\(Signal)e+(Bool,)g(Signal)g(Bool\))h(->)h(Signal)e(Bool)602 722+y Fp(and2,)85 b(<&>)h(--)43 b Fl(logical)d(and)602 822+y Fp(nand2)303 b(--)43 b Fl(inverse)d(of)j(logical)e(and)602+922 y Fp(or2,)129 b(<|>)86 b(--)43 b Fl(logical)d(or)602+1021 y Fp(nor2)347 b(--)43 b Fl(inverse)d(of)j(logical)e(or)602+1121 y Fp(xor2,)85 b(<#>)h(--)43 b Fl(logical)d(exclusive)g(or)602+1220 y Fp(xnor2,)h(<=>)86 b(--)43 b Fl(inverse)d(of)j(exclusive)d(or)+602 1320 y Fp(equiv,)h(<=>)86 b(--)43 b Fl(logical)d(equivalence)602+1420 y Fp(impl,)85 b(==>)h(--)43 b Fl(logical)d(implication)602+1619 y Fp(--)j Fl(n-ary)e(gates)h(::)g([Signal)f(Bool])h(->)g(Signal)g+(Bool)602 1719 y Fp(andl)347 b(--)43 b Fl(logical)d(and)602+1818 y Fp(nandl)303 b(--)43 b Fl(inverse)d(of)j(logical)e(and)602+1918 y Fp(orl)391 b(--)43 b Fl(logical)d(or)602 2017+y Fp(norl)347 b(--)43 b Fl(inverse)d(of)j(logical)e(or)602+2117 y Fp(xorl)347 b(--)43 b Fl(logical)d(exclusive)g(or)515+2427 y Fm(A.3)134 b(Arithmetical)47 b(Gates)515 2649+y Fq(Here)28 b(are)f(the)h(arithmetical)g(gates)f(de\014ned)i(in)f(the)+g(La)n(v)-5 b(a)27 b(system.)39 b(Some)28 b(binary)f(gates)515+2748 y(ha)n(v)n(e)c(a)i(corresp)r(onding)e(binary)h(op)r(erator)f+(\(for)i(example,)g Fp(plus)e Fq(can)i(also)e(b)r(e)j(written)f(as)515+2848 y Fp(+)p Fq(\).)602 3014 y Fp(--)43 b Fl(Nullary)d(gates)i(::)h+(Signal)e(Int)602 3113 y Fp(n)479 b(--)43 b Fl(constant)d(integer)h+(signal)602 3313 y Fp(--)i Fl(Unary)e(gates)h(::)g(Signal)g(Int)g(->)h+(Signal)e(Int)602 3412 y Fp(id)435 b(--)43 b Fl(identity)602+3512 y Fp(neg,)129 b(-)174 b(--)43 b Fl(negation)602+3711 y Fp(--)g Fl(Unary)e(conversion)602 3811 y Fp(int2bit)215+b(--)43 b Fl(integer)d(signal)h(to)i(boolean)e(signal)602+3910 y Fp(bit2int)215 b(--)43 b Fl(boolean)d(signal)h(to)i(integer)e+(signal)602 4110 y Fp(--)i Fl(Binary)e(gates)g(::)i(\(Signal)e(Int,)h+(Signal)f(Int\))h(->)g(Signal)g(Int)602 4209 y Fp(plus,)85+b(+)174 b(--)43 b Fl(addition)602 4309 y Fp(times,)e(*)174+b(--)43 b Fl(multiplication)602 4408 y Fp(sub,)129 b(-)174+b(--)43 b Fl(subtraction)602 4508 y Fp(idiv,)85 b(/)174+b(--)43 b Fl(integer)d(division)602 4608 y Fp(imod,)85+b(\045\045)130 b(--)43 b Fl(modulo)602 4707 y Fp(imin)347+b(--)43 b Fl(minimum)602 4807 y Fp(imax)347 b(--)43 b+Fl(maximum)602 5006 y Fp(--)g Fl(Binary)e(gates)g(::)i(\(Signal)e(Int,)+h(Signal)f(Int\))h(->)g(Signal)g(Bool)1905 5255 y Fq(73)p+eop+%%Page: 74 75+74 74 bop 602 523 a Fp(gte,)129 b(>>==)42 b(--)h Fl(greater)d(than)i+(or)h(equal)602 722 y Fp(--)g Fl(n-ary)e(gates)h(::)g([Signal)f(Int])h+(->)h(Signal)e(Int)602 822 y Fp(plusl)303 b(--)43 b Fl(addition)602+922 y Fp(timesl)259 b(--)43 b Fl(multiplication)515 1236+y Fm(A.4)134 b(Generic)45 b(Gates)515 1458 y Fq(Here)27+b(are)g(some)g(generic)f(gates)h(de\014ned)h(in)g(the)g(La)n(v)-5+b(a)26 b(system.)602 1644 y Fp(equal,)41 b(<==>)h(--)h+Fl(equality)602 1743 y Fp(delay,)e(|->)86 b(--)43 b Fl(delay)e+(component)602 1843 y Fp(mux)391 b(--)43 b Fl(multplexer,)c+(if-else-then)515 2029 y Fq(F)-7 b(urthermore,)25 b(La)n(v)-5+b(a)25 b(de\014nes)h(some)f(op)r(erations)g(whic)n(h)g(can)h(b)r(e)g+(used)g(on)g(some)f(of)h(these)515 2128 y(t)n(yp)r(es:)602+2314 y Fp(domain)215 b(::)43 b([a])602 2414 y(domainList)c(::)k(Int)f+(->)h([[a]])602 2613 y(zero)303 b(::)43 b(a)602 2713+y(zeroList)127 b(::)43 b(Int)f(->)h([a])602 2912 y(var)347+b(::)43 b(String)e(->)i(a)602 3012 y(varList)171 b(::)43+b(Int)f(->)h(String)e(->)i([a])515 3326 y Fm(A.5)134+b(Mo)t(dule:)60 b Fh(Patterns)515 3548 y Fq(Y)-7 b(ou)32+b(get)h(access)e(to)i(the)f(follo)n(wing)g(wiring)g(circuits)g(and)h+(connection)f(patterns)g(if)h(y)n(ou)515 3648 y(include)602+3833 y Fp(import)41 b(Patterns)515 4019 y Fq(at)27 b(the)h(top)g(of)f+(y)n(our)g(La)n(v)-5 b(a)26 b(program.)602 4205 y Fp(swap)260+b(::)43 b(\(a,)f(b\))h(->)f(\(b,)h(a\))602 4305 y(swapl)216+b(::)43 b([a])f(->)h([a])602 4405 y(copy)260 b(::)43+b(a)g(->)f(\(a,)h(a\))602 4604 y(riffle)172 b(::)43 b([a])f(->)h([a])+602 4704 y(unriffle)84 b(::)43 b([a])f(->)h([a])602 4903+y(zipp)260 b(::)43 b(\([a],[b]\))c(->)k([\(a,b\)])602+5002 y(unzipp)172 b(::)43 b([\(a,b\)])d(->)j(\([a],[b]\))1905+5255 y Fq(74)p eop+%%Page: 75 76+75 75 bop 602 623 a Fp(pair)260 b(::)43 b([a])f(->)h([\(a,a\)])602+722 y(unpair)172 b(::)43 b([\(a,a\)])d(->)j([a])602 922+y(halveList)d(::)j([a])f(->)h(\([a],[a]\))602 1021 y(append)172+b(::)43 b(\([a],[a]\))c(->)k([a])602 1220 y(serial)172+b(::)43 b(\(a)f(->)h(b\))g(->)g(\(b)f(->)h(c\))g(->)g(\(a)f(->)h(c\))+602 1320 y(\(->-\))216 b(::)43 b(\(a)f(->)h(b\))g(->)g(\(b)f(->)h(c\))g+(->)g(\(a)f(->)h(c\))602 1420 y(compose)128 b(::)43 b([a)f(->)h(a])g+(->)g(\(a)f(->)h(a\))602 1519 y(composeN)84 b(::)43 b(Int)f(->)h(\(a)f+(->)h(a\))g(->)g(\(a)f(->)h(a\))602 1719 y(par)304 b(::)43+b(\(a)f(->)h(b\))g(->)g(\(c)f(->)h(d\))g(->)g(\(\(a,c\))e(->)h+(\(b,d\)\))602 1818 y(\(-|-\))216 b(::)43 b(\(a)f(->)h(b\))g(->)g(\(c)f+(->)h(d\))g(->)g(\(\(a,c\))e(->)h(\(b,d\)\))602 1918+y(parl)260 b(::)43 b(\([a])e(->)i([b]\))f(->)h(\([a])f(->)h([b]\))f(->)+g(\([a])g(->)h([b]\))602 2117 y(two)304 b(::)43 b(\([a])e(->)i([b]\))f+(->)h(\([a])f(->)h([b]\))602 2217 y(ilv)304 b(::)43 b(\([a])e(->)i+([b]\))f(->)h(\([a])f(->)h([b]\))602 2316 y(twoN)260+b(::)43 b(Int)f(->)h(\([a])f(->)g([b]\))g(->)h(\([a])f(->)h([b]\))602+2416 y(ilvN)260 b(::)43 b(Int)f(->)h(\([a])f(->)g([b]\))g(->)h(\([a])f+(->)h([b]\))602 2516 y(iter)260 b(::)43 b(Int)f(->)h(\(b)f(->)h(b\))g+(->)g(\(b)f(->)h(b\))602 2715 y(bfly)260 b(::)43 b(Int)f(->)h(\([b])f+(->)g([b]\))g(->)h([b])f(->)h([b])602 2814 y(tri)304+b(::)43 b(\(a)f(->)h(a\))g(->)g(\([a])e(->)i([a]\))602+3014 y(pmap)260 b(::)43 b(\(\(a,a\))e(->)h(\(b,b\)\))f(->)i([a])g(->)f+([b])602 3213 y(mirror)172 b(::)43 b(\(\(a,b\))e(->)h(\(c,d\)\))f(->)i+(\(\(b,a\))216 b(->)42 b(\(d,c\)\))602 3313 y(row)304+b(::)43 b(\(\(c,a\))e(->)h(\(b,c\)\))f(->)i(\(\(c,[a]\))128+b(->)42 b(\([b],c\)\))602 3412 y(column)172 b(::)43 b(\(\(a,c\))e(->)h+(\(c,b\)\))f(->)i(\(\([a],c\))128 b(->)42 b(\(c,[b]\)\))602+3512 y(grid)260 b(::)43 b(\(\(a,b\))e(->)h(\(b,a\)\))f(->)i+(\(\([a],[b]\))d(->)i(\([b],[a]\)\))515 3826 y Fm(A.6)134+b(Mo)t(dule:)60 b Fh(Arithmetic)515 4048 y Fq(Y)-7 b(ou)27+b(get)h(access)e(to)i(the)g(follo)n(wing)e(arithmetical)h(circuits)g+(if)i(y)n(ou)d(include)602 4234 y Fp(import)41 b(Arithmetic)515+4420 y Fq(at)27 b(the)h(top)g(of)f(y)n(our)g(La)n(v)-5+b(a)26 b(program.)602 4606 y Fp(halfAdd)84 b(::)43 b(\(Signal)e+(Bool,Signal)e(Bool\))1430 4705 y(->)k(\(Signal)d(Bool,Signal)g(Bool\))+602 4805 y(fullAdd)84 b(::)43 b(\(Signal)e(Bool,\(Signal)d(Bool,Signal)+h(Bool\)\))1430 4905 y(->)k(\(Signal)d(Bool,Signal)g(Bool\))1905+5255 y Fq(75)p eop+%%Page: 76 77+76 76 bop 602 523 a Fp(bitAdder)40 b(::)j(\(Signal)e(Bool,[Signal)d+(Bool]\))1430 623 y(->)43 b(\([Signal)d(Bool],Signal)f(Bool\))602+722 y(adder)172 b(::)43 b(\(Signal)e(Bool,\([Signal)d(Bool],[Signal)g+(Bool]\)\))1430 822 y(->)43 b(\([Signal)d(Bool],Signal)f(Bool\))602+922 y(binAdder)h(::)j(\([Signal)d(Bool],[Signal)e(Bool]\))1430+1021 y(->)43 b([Signal)d(Bool])602 1220 y(bitMulti)g(::)j(\(Signal)e+(Bool,[Signal)d(Bool]\))1430 1320 y(->)43 b([Signal)d(Bool])602+1420 y(multi)172 b(::)43 b(\([Signal)d(Bool],[Signal)e(Bool]\))1430+1519 y(->)43 b([Signal)d(Bool])602 1719 y(numBreak)g(::)j(Signal)e(Int)+h(->)h(\(Signal)e(Bool,Signal)e(Int\))602 1818 y(int2bin)84+b(::)43 b(Int)f(->)h(Signal)e(Int)h(->)h([Signal)e(Bool])602+1918 y(bin2int)84 b(::)43 b([Signal)e(Bool])g(->)i(Signal)e(Int)515+2232 y Fm(A.7)134 b(Mo)t(dule:)60 b Fh(SequentialCircu)o(it)o(s)515+2454 y Fq(Y)-7 b(ou)27 b(get)h(access)e(to)i(the)g(follo)n(wing)e+(often)i(used)g(sequen)n(tial)e(circuits)i(if)g(y)n(ou)f(include)602+2638 y Fp(import)41 b(SequentialCircui)o(ts)515 2822+y Fq(at)27 b(the)h(top)g(of)f(y)n(our)g(La)n(v)-5 b(a)26+b(program.)602 3006 y Fp(edge)391 b(::)42 b(Signal)f(Bool)h(->)h+(Signal)e(Bool)602 3106 y(toggle)303 b(::)42 b(Signal)f(Bool)h(->)h+(Signal)e(Bool)602 3205 y(delayClk)215 b(::)42 b(a)h(->)g(\(Signal)e+(Bool,a\))g(->)h(a)602 3305 y(delayN)303 b(::)42 b(Int)h(->)f(a)i(->)e+(a)h(->)g(a)602 3405 y(always)303 b(::)42 b(Signal)f(Bool)h(->)h+(Signal)e(Bool)602 3504 y(puls)391 b(::)42 b(Int)h(->)f(\(\))h(->)g+(Signal)e(Bool)602 3604 y(outputList)127 b(::)42 b([a])h(->)f(\(\))h+(->)g(a)602 3803 y(rowSeq)303 b(::)42 b(\(\(a,b\))f(->)i(\(c,a\)\))e+(->)i(\(b)g(->)g(c\))602 3903 y(rowSeqReset)83 b(::)42+b(\(\(a,b\))f(->)i(\(c,a\)\))e(->)i(\(\(Signal)d(Bool,b\))h(->)i(c\))+602 4002 y(rowSeqPeriod)c(::)j(Int)h(->)f(\(\(a,b\))f(->)i(\(c,a\)\))e+(->)i(\(b)g(->)g(c\))515 4187 y Fq(Note)33 b(that)g(these)f(functions)h+(are)f(not)h(completely)f(p)r(olymorphic)g(in)h Fp(a)p+Fq(,)h(but)g(there)e(are)515 4286 y(certain)27 b(restrictions.)515+4600 y Fm(A.8)134 b(In)l(terpretations)515 4822 y Fq(Here)27+b(are)g(the)h(v)-5 b(arious)26 b(in)n(terpretations)g(for)h(circuits)h+(that)f(La)n(v)-5 b(a)27 b(pro)n(vides.)602 5006 y Fp(--)43+b Fl(simulations)1905 5255 y Fq(76)p eop+%%Page: 77 78+77 77 bop 602 523 a Fp(simulate)40 b Fl(circuit)h(input)602+623 y Fp(simulateSeq)e Fl(circuit)i(inputs)602 722 y+Fp(simulateCon)e Fl(circuit)i(inputs)602 822 y Fp(test)h+Fl(circuit)602 1021 y Fp(--)h Fl(VHDL)602 1121 y Fp(writeVhdl)d+Fl(name)i(circuit)602 1220 y Fp(writeVhdlInput)c Fl(name)k(circuit)e+(input)602 1320 y Fp(writeVhdlInputOu)o(tp)o(ut)d Fl(name)42+b(circuit)f(input)g(output)602 1519 y Fp(--)i Fl(verification)602+1619 y Fp(verify)e Fl(property)602 1719 y Fp(verifyWith)e+Fl(options)i(property)602 1818 y Fp(fixit)g Fl(property)515+1986 y Fq(P)n(ossible)26 b(v)n(eri\014cation)g(opions)h(are:)602+2153 y Fp(Name)42 b Fl(name)602 2253 y Fp(ShowTime)602+2352 y(Sat)g Fl(level)602 2452 y Fp(NoBacktracking)602+2552 y(Depth)f Fl(depth)602 2651 y Fp(Increasing)602+2751 y(RestrictStates)515 3061 y Fm(A.9)134 b(Errors)515+3283 y Fq(Here,)35 b(w)n(e)e(list)h(a)f(n)n(um)n(b)r(er)g(of)h(error)d+(messages)h(that)i(migh)n(t)g(o)r(ccur)f(when)g(running)h(the)515+3383 y(La)n(v)-5 b(a)26 b(system.)639 3582 y Fi(\017)128+b Fp(ERROR:)42 b(Garbage)e(collection)g(fails)h(to)i(reclaim)1115+3682 y(sufficient)c(space)722 3810 y Fq(This)31 b(means)f(that)i(La)n+(v)-5 b(a)29 b(do)r(es)i(not)f(ha)n(v)n(e)g(enough)g(memory)g(to)h+(execute)g(the)g(cir-)722 3909 y(cuit.)63 b(T)-7 b(ry)35+b(to)h(start)f(up)h(La)n(v)-5 b(a)35 b(with)h(more)f(memory)-7+b(,)38 b(do)d(this)i(b)n(y)e(sa)n(ying)g Fp(lava)722+4009 y(-h9999999)p Fq(.)f(Y)-7 b(ou)27 b(can)g(increase)g(the)h(n)n(um)+n(b)r(er)f(if)h(y)n(ou)f(need)h(more.)722 4137 y(If)j(this)g(do)r(es)f+(not)g(w)n(ork,)g(y)n(ou)g(migh)n(t)g(ha)n(v)n(e)f(an)h(error)f(in)h(y)+n(our)f(circuit)i(de\014nition.)722 4237 y(Do)d(y)n(ou)f(ha)n(v)n(e)f+(a)h(circular)g(de\014nition)h(somewhere?)639 4394 y+Fi(\017)128 b Fp(Program)41 b(error:)g(evaluating)f(a)j(delay)e+(component)722 4522 y Fq(Y)-7 b(ou)22 b(get)g(this)g(error)e(when)i(y)n+(ou)f(try)h(to)g(use)f(com)n(binational)g(sim)n(ulation)g+Fp(simulate)722 4622 y Fq(to)28 b(sim)n(ulate)f(a)g(sequen)n(tial)g+(circuit.)37 b(Use)27 b Fp(simulateSeq)d Fq(instead.)639+4778 y Fi(\017)128 b Fp(Program)41 b(error:)g(evaluating)f(a)j+(symbolic)d(value)722 4907 y Fq(Y)-7 b(ou)31 b(get)g(this)g(error)e+(when)i(y)n(ou)g(ha)n(v)n(e)e(used)i(the)h Fp(forAll)c+Fq(or)i Fp(var)g Fq(prop)r(ert)n(y)g(con-)722 5006 y(structors,)d(and)g+(then)h(later)f(tried)h(to)f(sim)n(ulate)g(the)h(circuit.)1905+5255 y(77)p eop+%%Page: 78 79+78 78 bop 639 523 a Fi(\017)128 b Fp(Program)41 b(error:)g+(combinational)d(loop)722 652 y Fq(Y)-7 b(ou)35 b(get)f(this)h(error)e+(when)h(y)n(ou)g(ha)n(v)n(e)g(de\014ned)g(a)h(circuit)f(whic)n(h)h(has)+f(a)g(lo)r(op)g(in)722 751 y(it,)e(on)f(whic)n(h)f(there)h(is)f(no)h+(dela)n(y)-7 b(.)45 b(In)31 b(general,)f(these)g(circuits)h(are)e(hard)+h(to)h(giv)n(e)722 851 y(meaning)23 b(to,)g(and)g(are)f(therefore)g+(not)g(allo)n(w)n(ed)g(in)h(normal)f(La)n(v)-5 b(a)21+b(sim)n(ulation.)35 b(Y)-7 b(ou)722 951 y(ha)n(v)n(e)27+b(probably)f(made)i(a)f(mistak)n(e)g(somewhere.)722 1079+y(Y)-7 b(ou)34 b(migh)n(t)g(try)g(the)h Fn(c)l(onstructive)f+Fq(sim)n(ulation)f Fp(simulateCon)d Fq(when)k(this)h(hap-)722+1179 y(p)r(ens.)639 1336 y Fi(\017)128 b Fp(Program)41+b(error:)g(combining)f(incompatible)f(structures)722+1465 y Fq(Y)-7 b(ou)24 b(get)g(this)h(error)d(when)i(y)n(ou)f(use)h(a)g+Fp(delay)e Fq(comp)r(onen)n(t)i(or)f Fp(mux)g Fq(comp)r(onen)n(t)g(on)+722 1565 y(structures)30 b(of)h(a)f(di\013eren)n(t)h(shap)r(e,)g(for)g+(example)f(t)n(w)n(o)g(lists)h(of)f(di\013eren)n(t)h(lengths.)722+1664 y(This)26 b(is)f(not)g(allo)n(w)n(ed,)f(since)h(the)h(length)f(of)+h(a)e(list)i(needs)f(to)g(b)r(e)h(kno)n(wn)e(when)i(y)n(ou)722+1764 y(ev)-5 b(aluate)27 b(the)h(circuit.)639 1922 y+Fi(\017)128 b Fp(Program)41 b(error:)g(there)h(is)h(no)f(equality)f+(defined)f(for)j(this)f(type)722 2050 y Fq(Sigh)23 b(...)36+b(y)n(ou)22 b(get)h(this)g(error)e(when)i(y)n(ou)f(use)h(the)g(Hask)n+(ell)f(equalit)n(y)h Fp(==)f Fq(on)g(a)h(signal)722 2150+y(t)n(yp)r(e.)37 b(Y)-7 b(ou)28 b(probably)e(w)n(an)n(t)h(to)h(use)f+(signal)g(equalit)n(y)g Fp(<==>)f Fq(instead.)639 2308+y Fi(\017)128 b Fp(Program)41 b(error:)g(short)h(circuit)722+2436 y Fq(This)23 b(happ)r(ens)f(when)h(y)n(ou)f(ha)n(v)n(e)f(a)h+Fn(b)l(ad)h Fq(com)n(binational)f(lo)r(op)g(in)h(y)n(our)e(circuit,)i+(and)722 2536 y(y)n(ou)34 b(constructiv)n(ely)f(sim)n(ulate)g(it)i+(using)f Fp(simulateCon)p Fq(.)52 b(A)34 b(real)f(circuit)i(w)n(ould)+722 2635 y(ha)n(v)n(e)27 b(oscillated.)36 b(An)28 b(example)f(is)h(the)+g(follo)n(wing)e(circuit:)809 2814 y Fp(shortCircuit)39+b(\(\))k(=)g(out)897 2913 y(where)984 3013 y(out)f(=)h(inv)g(out)639+3191 y Fi(\017)128 b Fp(Program)41 b(error:)g(undriven)g(output)722+3320 y Fq(This)22 b(also)f(happ)r(ens)i(when)f(y)n(ou)f(ha)n(v)n(e)g(a)+h Fn(b)l(ad)h Fq(com)n(binational)e(lo)r(op)h(in)g(y)n(our)f(circuit.)+722 3419 y(The)39 b(output)h(wire)e(is)h(not)g(driv)n(en)g(b)n(y)g(an)n+(y)f(comp)r(onen)n(t.)71 b(An)39 b(example)g(is)g(the)722+3519 y(follo)n(wing)27 b(circuit:)809 3697 y Fp(undrivenOutput)38+b(\(\))43 b(=)g(out)897 3797 y(where)984 3897 y(out)f(=)h(and2)f+(\(out,)g(out\))639 4075 y Fi(\017)128 b Fp(Program)41+b(error:)g(you)i(can)f(not)g(enumerate)e(symbolic)g(values)722+4203 y Fq(Y)-7 b(ou)29 b(get)g(this)g(error)e(when)i(y)n(ou)f(use)g+Fp(..)40 b Fq(on)28 b(wires)g(from)h(a)f(circuit)h(instead)g(of)f(on)+722 4303 y(constan)n(ts.)36 b(Use)28 b Fp(..)36 b Fq(only)27+b(on)g(constan)n(ts!)639 4461 y Fi(\017)128 b Fp(Program)41+b(error:)g(INTERNAL)g(ERROR)g(...)722 4589 y Fq(Oops!)34+b(This)23 b(probably)e(means)h(that)g(there)h(is)f(a)g(bug)g(in)h(the)f+(La)n(v)-5 b(a)21 b(system.)35 b(Please)722 4689 y(rep)r(ort)27+b(this)h(bug)f(b)n(y)h(sending)f(y)n(our)f(program)g(to)h(us,)h(so)f+(that)h(w)n(e)f(can)g(\014x)h(it.)515 4890 y(If)f(y)n(ou)e(ha)n(v)n(e)h+(some)f(t)n(ypical)h(error)f(that)i(y)n(ou)e(w)n(ould)h(ha)n(v)n(e)f+(lik)n(ed)i(to)f(app)r(ear)g(here,)g(please)515 4990+y(e-mail)h(us)g(so)g(that)h(w)n(e)f(can)h(mak)n(e)e(this)i(list)g(more)+f(complete.)1905 5255 y(78)p eop+%%Page: 79 80+79 79 bop 515 1186 a Fo(App)5 b(endix)65 b(B)515 1641+y Fs(Answ)-6 b(ers)575 2105 y Fq(2.1)40 b(Here)28 b(is)f(ho)n(w)g(w)n+(e)g(de\014ne)h Fp(swap)e Fq(and)i Fp(copy)p Fq(:)809+2305 y Fp(swap)42 b(\(a,)h(b\))f(=)i(\(b,)e(a\))809 2404+y(copy)g(a)261 b(=)44 b(\(a,)e(a\))575 2604 y Fq(2.2)e(W)-7+b(e)28 b(could)g(de\014ne)g(the)f(sorter)g Fp(twoBitSort)c+Fq(in)28 b(the)g(follo)n(wing)f(w)n(a)n(y:)809 2803 y+Fp(twoBitSort)40 b(\(a,)i(b\))h(=)g(\(min,)f(max\))897+2902 y(where)984 3002 y(min)g(=)h(and2)f(\(a,)h(b\))984+3102 y(max)f(=)h(or2)86 b(\(a,)43 b(b\))575 3301 y Fq(2.3)d(Here)28+b(is)f(the)h(constan)n(t)f Fp(alwaysHigh)c Fq(circuit:)809+3500 y Fp(alwaysHigh)40 b(\(\))j(=)g(high)575 3699 y+Fq(2.4)d(One)28 b(could)f(de\014ne)h(a)f Fp(multiplexer)c+Fq(as)k(follo)n(ws:)809 3899 y Fp(multiplexer)39 b(\(c,\(x,y\)\))h(=)k+(out)897 3998 y(where)984 4098 y(out)129 b(=)43 b(or2)86+b(\(left,)42 b(right\))984 4198 y(left)85 b(=)43 b(and2)f(\(inv)g(c,)h+(x\))984 4297 y(right)e(=)i(and2)f(\(c,)h(y\))722 4496+y Fq(There)34 b(is)h(a)f(built-in)h(m)n(ultiplexer)g(in)g(La)n(v)-5+b(a,)35 b(called)f Fp(mux)p Fq(.)57 b(Using)34 b(that)h(one,)h(w)n(e)+722 4596 y(could)28 b(de\014ne:)809 4795 y Fp(multiplexer')39+b(\(c,\(x,y\)\))h(=)j(mux)f(\(c,\(x,)g(y\)\))575 4995+y Fq(2.5)e(A)28 b Fp(threeBitAdder)23 b Fq(can)k(b)r(e)h(de\014ned)g+(as)f(follo)n(ws:)1905 5255 y(79)p eop+%%Page: 80 81+80 80 bop 809 523 a Fp(threeBitAdder)39 b(\(carryIn,)h(\(\(a1,b1,c1\),)+e(\(a2,b2,c2\)\)\))h(=)897 623 y(\(\(a3,)i(b3,)h(c3\),)g(carryOut\))853+722 y(where)897 822 y(\(a3,)g(carryA\))127 b(=)44 b(fullAdd)c+(\(carryIn,)g(\(a1,)i(a2\)\))897 922 y(\(b3,)g(carryB\))127+b(=)44 b(fullAdd)c(\(carryA,)84 b(\(b1,)42 b(b2\)\))897+1021 y(\(c3,)g(carryOut\))d(=)44 b(fullAdd)c(\(carryB,)84+b(\(c1,)42 b(c2\)\))575 1220 y Fq(3.2)e(W)-7 b(e)28 b(can)f(mak)n(e)g+(use)h(of)f(the)h(adder)f(w)n(e)g(already)f(ha)n(v)n(e:)809+1420 y Fp(adder2)42 b(\(as,)f(bs\))i(=)g(cs)897 1519+y(where)984 1619 y(\(cs,)f(carryOut\))e(=)j(adder)e(\(low,)h(\(as,)g+(bs\)\))575 1851 y Fq(3.3)e(The)c Fp(adder)e Fq(circuit)h(tak)n(es)g+(as)g(an)g(input)i(a)e(pair)g(of)h(lists)g(of)f(bits,)j(whereas)d(the)+722 1951 y Fp(adder')25 b Fq(circuit)j(gets)f(a)g(list)h(of)g(pairs)e+(of)i(bits.)575 2117 y(3.4)40 b(Here)28 b(is)f(a)g(binary)g(n)n(um)n(b)+r(er)g(to)h(in)n(teger)f(con)n(v)n(erter)e Fp(bin2int)p+Fq(:)809 2316 y Fp(bin2int)41 b([])217 b(=)43 b(0)809+2416 y(bin2int)e(\(b:bs\))g(=)i(num)897 2516 y(where)984+2615 y(num')f(=)h(bin2int)e(bs)984 2715 y(num)86 b(=)43+b(bit2int)e(b)i(+)g(2)g(*)g(num')575 2914 y Fq(3.5)d(Here)28+b(is)f(ho)n(w)g(w)n(e)g(can)g(de\014ne)h Fp(zipp)p Fq(:)809+3113 y Fp(zipp)42 b(\([],)129 b([]\))h(=)43 b([])809+3213 y(zipp)f(\(a:as,)f(b:bs\))h(=)h(\(a,b\))f(:)h(rest)897+3313 y(where)984 3412 y(rest)f(=)h(zipp)f(\(as,)g(bs\))722+3611 y Fq(And)28 b(here)g(is)f(ho)n(w)g(w)n(e)g(de\014ne)h+Fp(unzipp)p Fq(:)809 3811 y Fp(unzipp)42 b([])435 b(=)43+b(\([],)129 b([]\))809 3910 y(unzipp)42 b(\(\(a,b\):abs\))d(=)k+(\(a:as,)e(b:bs\))897 4010 y(where)984 4110 y(\(as,)h(bs\))g(=)h+(unzipp)e(abs)575 4309 y Fq(3.6)f(Here)28 b(is)f(ho)n(w)g(w)n(e)g(can)g+(de\014ne)h Fp(pair)p Fq(:)809 4508 y Fp(pair)42 b(\(x:y:xs\))f(=)i+(\(x,y\))e(:)j(pair)d(xs)809 4608 y(pair)h(xs)305 b(=)43+b([])722 4807 y Fq(W)-7 b(e)27 b(c)n(ho)r(ose)f(to)h(ignore)e(the)i+(last)f(input)i(if)f(the)g(n)n(um)n(b)r(er)g(of)g(elemen)n(ts)f(is)h(o)+r(dd.)36 b(And)722 4907 y(here)27 b(is)h(ho)n(w)f(w)n(e)g(de\014ne)h+Fp(unpair)p Fq(:)1905 5255 y(80)p eop+%%Page: 81 82+81 81 bop 809 523 a Fp(unpair)42 b(\(\(x,y\):xys\))d(=)k(x)g(:)g(y)g(:)+g(unpair)f(xys)809 623 y(unpair)g([])435 b(=)43 b([])575+821 y Fq(3.7)d(This)28 b(is)f(ho)n(w)g(w)n(e)h(can)f(de\014ne)h+(parallel)e(comp)r(osition)h(of)h(circuits)f Fp(par)p+Fq(:)809 1019 y Fp(par)43 b(circ1)e(circ2)h(\(a,)g(b\))h(=)g(\(c,)f+(d\))897 1118 y(where)984 1218 y(c)h(=)g(circ1)f(a)984+1317 y(d)h(=)g(circ2)f(b)575 1515 y Fq(3.9)e(Here)28+b(is)f(ho)n(w)g(w)n(e)g(can)g(de\014ne)h Fp(column)p+Fq(:)809 1713 y Fp(column)42 b(circ)f(\([],)h(carryIn\))128+b(=)43 b(\(carryIn,)d([]\))809 1913 y(column)i(circ)f(\(a:as,)h+(carryIn\))e(=)j(\(carryOut,)c(b:bs\))897 2012 y(where)984+2112 y(\(carry,)h(b\))218 b(=)43 b(circ)f(\(a,)g(carryIn\))984+2211 y(\(carryOut,)d(bs\))k(=)g(column)e(circ)h(\(as,)g(carry\))722+2409 y Fq(Here)37 b(is)g(ho)n(w)g(w)n(e)g(can)g(de\014ne)h+Fp(column)d Fq(in)i(terms)g(of)g Fp(row)p Fq(.)65 b(First,)40+b(w)n(e)d(de\014ne)g(a)722 2509 y(connection)27 b(pattern)f(called)h+Fp(mirror)p Fq(,)e(whic)n(h)h(sw)n(aps)g(the)h(left)h(and)f(righ)n(t)f+(parts)g(of)722 2609 y(input)j(and)e(output:)809 2807+y Fp(mirror)42 b(circ)f(\(a,)i(b\))g(=)g(\(c,)f(d\))897+2906 y(where)984 3006 y(\(d,)g(c\))h(=)g(circ)f(\(b,)g(a\))722+3204 y Fq(And)28 b(then,)h(w)n(e)e(use)g Fp(row)g Fq(and)g(mirror)f+(the)i(input)h(to)e Fp(row)p Fq(:)809 3402 y Fp(column)42+b(circ)f(\(as,)h(carryIn\))f(=)i(\(carryOut,)c(bs\))897+3501 y(where)984 3601 y(\(bs,)j(carryOut\))e(=)j(row)f(\(mirror)f+(circ\))g(\(carryIn,)f(as\))722 3799 y Fq(W)-7 b(e)28+b(could)g(ev)n(en)f(sa)n(y:)809 3997 y Fp(column)42 b(circ)f(=)j+(mirror)d(\(row)h(\(mirror)e(circ\)\))533 4195 y Fq(3.10)g(W)-7+b(e)28 b(could)g(de\014ne)g Fp(grid)e Fq(as:)809 4393+y Fp(grid)42 b(circ)g(\(as,)g(bs\))h(=)g(\(cs,)f(ds\))897+4492 y(where)984 4592 y(\(cs,)g(ds\))g(=)h(row)g(\(column)d(circ\))i+(\(as,)g(bs\))722 4790 y Fq(Or,)27 b(ev)n(en)g(shorter:)809+4988 y Fp(grid)42 b(circ)g(=)h(row)g(\(column)e(circ\))1905+5255 y Fq(81)p eop+%%Page: 82 83+82 82 bop 533 523 a Fq(3.13)40 b(Here)28 b(is)f(ho)n(w)g(w)n(e)g+(de\014ne)h(a)f Fp(swapper)p Fq(:)809 722 y Fp(swapper)41+b(\(swap,)g(\(a,)i(b\)\))f(=)h(\(x,)f(y\))897 822 y(where)984+922 y(\(x,)g(y\))h(=)g(mux)f(\(swap,)g(\(\(a,)f(b\),)i(\(b,)f(a\)\)\))+575 1121 y Fq(4.1)e(The)28 b(\014rst)f(prop)r(ert)n(y)g(can)g(b)r(e)h+(de\014ned)g(as:)809 1320 y Fp(prop_SorterHasSor)o(ted)o(Ou)o(tpu)o(t)+37 b(\(a,)43 b(b\))f(=)i(ok)897 1420 y(where)984 1519+y(\(x,)e(y\))h(=)g(twoBitSort)d(\(a,)i(b\))984 1619 y(ok)217+b(=)43 b(or2)f(\(inv)g(x,)h(y\))86 b(--)43 b Fl(x)g(<=)g(y)722+1818 y Fq(The)28 b(second)f(prop)r(ert)n(y)f(can)i(b)r(e)g(stated)f+(as:)809 2017 y Fp(prop_SorterHasSam)o(eBi)o(ts)37 b(\(a,)42+b(b\))h(=)g(ok)897 2117 y(where)984 2217 y(\(x,)f(y\))86+b(=)44 b(twoBitSort)39 b(\(a,)j(b\))984 2316 y(same)172+b(=)44 b(\(a,)e(b\))h(<==>)f(\(x,)g(y\))984 2416 y(swapped)e(=)k(\(a,)e+(b\))h(<==>)f(\(y,)g(x\))984 2516 y(ok)260 b(=)44 b(or2)e(\(same,)f+(swapped\))575 2715 y Fq(4.4)f(T)-7 b(o)28 b(c)n(hec)n(k)e(that)i(the)g+(subtractor)e(really)h(subtracts,)g(w)n(e)g(can)g(de\014ne:)809+2914 y Fp(prop_SubtractorSu)o(btr)o(ac)o(ts)37 b(\(as,)42+b(bs\))g(=)i(ok)897 3014 y(where)984 3113 y(cs)86 b(=)43+b(subtractor)d(\(as,)i(bs\))984 3213 y(as')g(=)h(adder2)e(\(cs,)h(bs\))+984 3313 y(ok)86 b(=)43 b(as)g(<==>)f(as')575 3512 y+Fq(4.5)e(Here)28 b(is)f(the)h(general)e(prop)r(ert)n(y)h(of)g(asso)r+(ciativit)n(y:)809 3711 y Fp(prop_Associative)37 b(circ)42+b(\(as,)g(bs,)h(cs\))f(=)h(ok)897 3811 y(where)984 3910+y(out1)f(=)h(circ)f(\(as,)g(circ)g(\(bs,)g(cs\)\))984+4010 y(out2)g(=)h(circ)f(\(circ)f(\(as,)h(bs\),)g(cs\))984+4110 y(ok)130 b(=)43 b(out1)f(<==>)g(out2)575 4309 y+Fq(4.8)e(One)28 b(can)f(de\014ne)h(a)f(general)f(v)n(erify)h(function,)+h(as)f(follo)n(ws:)809 4508 y Fp(verifyFor)40 b(prop)i(ns)h(=)g+(sequence)d([)k(prop)e(n)h(|)g(n)g(<-)g(ns)g(])722 4707+y Fq(and)28 b(v)n(erify)f(a)g(prop)r(ert)n(y)f(b)n(y)i(sa)n(ying)e(for)+h(example:)809 4907 y Fp(Main>)42 b Fl(verifyFor)e(prop_AdderCommut)o+(at)o(ive)o(_F)o(or)o(Siz)o(e)d([1..32])809 5006 y Fp(...)1905+5255 y Fq(82)p eop+%%Page: 83 84+83 83 bop 575 523 a Fq(5.1)40 b(W)-7 b(e)28 b(can)f(de\014ne)h+Fp(evenSoFar)c Fq(as)j(follo)n(ws:)809 694 y Fp(evenSoFar)40+b(inp)j(=)g(out)897 794 y(where)984 893 y(out)86 b(=)43+b(delay)e(high)h(even)984 993 y(even)g(=)h(xor2)f(\(inp,)f(even\))722+1164 y Fq(This)28 b(is)f Fn(almost)i Fq(the)f(same)f(as)f(the)i+Fp(toggle)e Fq(circuit.)575 1319 y(5.2)40 b(W)-7 b(e)28+b(can)f(de\014ne)h Fp(flipFlop)d Fq(as)i(follo)n(ws:)809+1490 y Fp(flipFlop)41 b(\(set,)g(reset\))g(=)j(state)897+1589 y(where)984 1689 y(state')d(=)i(delay)f(low)g(state)984+1789 y(state)85 b(=)43 b(and2)f(\(up,)g(inv)g(reset\))984+1888 y(up)217 b(=)43 b(or2)f(\(state',)f(set\))575 2059+y Fq(5.3)f(W)-7 b(e)28 b(can)f(de\014ne)h Fp(delayClk)d+Fq(as)i(follo)n(ws:)809 2230 y Fp(delayClk)41 b(init)h(\(clk,)f(inp\))h+(=)h(out)897 2330 y(where)984 2429 y(out)f(=)h(delay)f(init)g(val)984+2529 y(val)g(=)h(mux)g(\(clk,)e(\(out,)h(inp\)\))575+2700 y Fq(5.4)e(The)28 b(circuit)f Fp(always)f Fq(can)h(b)r(e)h+(de\014ned)g(as)f(follo)n(ws:)809 2871 y Fp(always)42+b(inp)g(=)h(ok)897 2971 y(where)984 3070 y(sofar)e(=)i(delay)f(high)g+(ok)984 3170 y(ok)173 b(=)43 b(and2)f(\(inp,)g(sofar\))575+3341 y Fq(5.5)e(The)28 b(circuits)f(are:)809 3512 y Fp(pulsSix6)41+b(\(\))h(=)i(out)897 3611 y(where)984 3711 y(out)e(=)h(puls)f(6)h(\(\))+741 b(--)42 b Fl(000001...)809 3910 y Fp(pulsSix5)f(\(\))h(=)i(out)897+4010 y(where)984 4110 y(a)130 b(=)43 b(puls)f(2)h(\(\))741+b(--)42 b Fl(010101...)984 4209 y Fp(b)130 b(=)43 b(puls)f(3)h(\(\))741+b(--)42 b Fl(001001...)984 4309 y Fp(out)g(=)h(and2)f(\(a,)h(b\))809+4508 y(pulsSix3)e(\(\))h(=)i(out)897 4608 y(where)984+4707 y(a)130 b(=)43 b(delay)f(low)g(\(inv)g(a\))392 b(--)42+b Fl(010101...)984 4807 y Fp(b)130 b(=)43 b(delay)f(low)g(\(xor2)g+(\(b,)g(c\)\))130 b(--)42 b Fl(001001...)984 4907 y Fp(c)130+b(=)43 b(delay)f(low)g(\(nand2)f(\(b,)i(c\)\))86 b(--)42+b Fl(011011...)984 5006 y Fp(out)g(=)h(and2)f(\(a,)h(b\))1905+5255 y Fq(83)p eop+%%Page: 84 85+84 84 bop 575 523 a Fq(5.6)40 b(Using)28 b(a)f(coun)n(ter,)g(w)n(e)g+(can)g(de\014ne)h Fp(puls2)e Fq(as)g(follo)n(ws:)809+722 y Fp(puls2)42 b(k)h(\(\))g(=)g(out)897 822 y(where)984+922 y(number)e(=)i(counter)e(k)i(\(\))984 1021 y(out)173+b(=)43 b(norl)f(number)575 1220 y Fq(5.7)e(W)-7 b(e)28+b(can)f(de\014ne)h(the)g(circuit)g Fp(counterUpDown)22+b Fq(as)27 b(follo)n(ws:)809 1420 y Fp(counterUpDown)39+b(n)k(\(up,)f(down\))f(=)i(number)897 1519 y(where)940+1619 y(number')e(=)i(delay)f(\(zeroList)d(n\))k(number)940+1719 y(number)85 b(=)43 b(adder2)e(\(diff,)g(number'\))940+1818 y(diff)173 b(=)43 b(one)f(:)i(replicate)39 b(\(n-1\))j(rest)940+1918 y(one)217 b(=)43 b(or2)f(\(up,)g(down\))303 b(--)43+b Fl(should)e(I)i(change?)940 2017 y Fp(rest)173 b(=)43+b(and2)f(\(inv)g(up,)g(down\))85 b(--)43 b Fl(+1)g(or)g(-1?)575+2217 y Fq(5.9)d(Here)28 b(is)f(ho)n(w)g(w)n(e)g(could)h(de\014ne)f+Fp(synchronize)p Fq(:)809 2416 y Fp(synchronize)39 b(\(go1,)j(go2\))g+(=)h(go)897 2516 y(where)984 2615 y(both)f(=)h(and2)f(\(go1,)f(go2\))+984 2715 y(one)86 b(=)43 b(xor2)f(\(go1,)f(go2\))984+2814 y(wait)h(=)h(delay)e(low)i(\(xor2)e(\(one,)h(wait\)\))984+2914 y(go)130 b(=)43 b(or2)f(\(both,)f(and2)h(\(wait,)f(one\)\))533+3113 y Fq(5.10)f(First,)25 b(w)n(e)g(de\014ne)f(the)h(follo)n(wing)f+(help)r(er)g(circuit)h Fp(outputDone)p Fq(.)32 b(It)25+b(do)r(es)f(the)h(same)722 3213 y(as)g(output,)i(but)f(tak)n(es)e(an)h+(extra)g(parameter)f Fp(done)p Fq(,)g(the)i(signal)f(to)g(output)h(at)g+(the)722 3313 y(time)i(when)g(the)g(list)g(is)f(empt)n(y)-7+b(.)809 3512 y Fp(outputDone)40 b([])j(done)f(\(\))g(=)i(done)809+3711 y(outputDone)c(\(sig:sigs\))f(done)j(\(\))h(=)g(out)897+3811 y(where)984 3910 y(out)86 b(=)43 b(delay)e(sig)i(rest)984+4010 y(rest)f(=)h(outputDone)c(sigs)j(done)g(\(\))722+4209 y Fq(No)n(w,)27 b(w)n(e)h(can)f(de\014ne)h(the)g(circuit)f+Fp(outputList)d Fq(as)j(follo)n(ws:)809 4408 y Fp(outputList)40+b(sigs)i(\(\))h(=)g(out)897 4508 y(where)984 4608 y(out)f(=)h+(outputDone)d(sigs)i(out)g(\(\))575 4807 y Fq(6.2)e(Here)28+b(is)f(a)g(prop)r(ert)n(y)g(that)h(c)n(hec)n(ks)e(that:)1905+5255 y(84)p eop+%%Page: 85 86+85 85 bop 809 523 a Fp(prop_Edge_vs_Even)37 b(inp)42+b(=)i(ok)897 623 y(where)984 722 y(out1)e(=)h(edge)f(inp)984+822 y(out2)g(=)h(evenSoFar)d(inp)984 922 y(ok)130 b(=)43+b(inv)f(\(out1)g(<==>)g(out2\))575 1089 y Fq(6.3)e(Here)28+b(is)f(a)g(prop)r(ert)n(y)g(that)h(c)n(hec)n(ks)e(if)i(they)g(are)f+(equiv)-5 b(alen)n(t:)809 1257 y Fp(prop_PulsSixEquiv)o(ale)o(nt)37+b(\(\))43 b(=)g(ok)897 1356 y(where)984 1456 y(out3)f(=)h(pulsSix3)d+(\(\))984 1556 y(out5)i(=)h(pulsSix5)d(\(\))984 1655+y(out6)i(=)h(pulsSix6)d(\(\))984 1855 y(ok35)i(=)h(out3)f(<==>)g(out5)+984 1954 y(ok56)g(=)h(out5)f(<==>)g(out6)984 2054 y(ok)130+b(=)43 b(and2)f(\(ok35,)f(ok56\))722 2221 y Fq(These)28+b(can)f(b)r(e)h(v)n(eri\014ed)f(with)h(induction)g(depth)g(6)f(or)g(7.)+575 2375 y(6.4)40 b(Here)28 b(is)f(a)g(prop)r(ert)n(y)g(that)h(c)n(hec)+n(ks)e(if)i(they)g(are)f(equiv)-5 b(alen)n(t:)809 2542+y Fp(prop_PulsesEquiva)o(len)o(t)37 b(k)44 b(\(\))e(=)h(ok)897+2642 y(where)984 2742 y(out1)f(=)h(puls)f(\(2^k\))f(\(\))984+2841 y(out2)h(=)h(puls2)e(k)j(\(\))984 2941 y(ok)130+b(=)43 b(out1)f(<==>)g(out2)575 3109 y Fq(6.5)e(Here)28+b(is)f(a)g(prop)r(ert)n(y)g(that)h(c)n(hec)n(ks)e(that:)809+3276 y Fp(prop_CountingUp)38 b(n)43 b(up)g(=)g(ok)897+3376 y(where)984 3475 y(out1)f(=)h(counterUp)d(n)j(up)984+3575 y(out2)f(=)h(counterUpDown)38 b(n)43 b(\(up,)f(low\))984+3675 y(ok)130 b(=)43 b(out1)f(<==>)g(out2)575 3842 y+Fq(6.6)e(Here)28 b(is)f(ho)n(w)g(w)n(e)g(could)h(de\014ne)f(the)h(prop)+r(ert)n(y)-7 b(.)809 4010 y Fp(prop_ToggleTwiceS)o(tay)o(sS)o(ame)37+b(inp)42 b(=)h(ok)897 4110 y(where)984 4209 y(out)216+b(=)44 b(toggle)d(inp)984 4309 y(out')172 b(=)44 b(delay)d(low)i(out)+984 4408 y(out'')128 b(=)44 b(delay)d(low)i(out')984+4508 y(sameOut)d(=)k(out)e(<==>)g(out'')984 4707 y(inp')172+b(=)44 b(delay)d(low)i(inp)984 4807 y(sameInp)d(=)k(inp)e(<==>)g(inp')+984 5006 y(ok)260 b(=)44 b(sameInp)c(==>)j(sameOut)1905+5255 y Fq(85)p eop+%%Page: 86 87+86 86 bop 722 523 a Fq(First)25 b(w)n(e)f(compute)g(the)h(output)g+(from)f(the)h(input.)37 b(Then,)25 b(w)n(e)f(de\014ne)h(the)g(outputs)+722 623 y(and)30 b(inputs)g(at)f(sev)n(eral)f(di\013eren)n(t)h(p)r(oin)+n(ts)g(in)h(time.)43 b(And)30 b(then)g(w)n(e)f(compute)h(the)722+722 y(implication.)575 879 y(7.1)40 b(Here)28 b(are)e(the)i(prop)r+(erties)f(whic)n(h)g(state)h(this:)809 1053 y Fp(prop_ToggleHighLo)o+(w_S)o(lo)o(wed)o(Do)o(wn)37 b(\(\))43 b(=)g(ok)897 1153+y(where)984 1253 y(load)85 b(=)43 b(puls)f(2)i(\(\))984+1352 y(out1)85 b(=)43 b(highLow)e(\(\))984 1452 y(out1')g(=)i+(parallelToSerial)37 b(\(load,)42 b(out1\))984 1552 y(out2)85+b(=)43 b(toggle)f(high)984 1651 y(ok)173 b(=)43 b(out1')f(<==>)g(out2)+809 1850 y(prop_ToggleHighLo)o(w_S)o(pe)o(dUp)37 b(\(\))42+b(=)i(ok)897 1950 y(where)984 2050 y(out1)85 b(=)43 b(highLow)e(\(\))+984 2149 y(out2)85 b(=)43 b(timeTransform)c(toggle)i([high,high])984+2249 y(ok)173 b(=)43 b(out1)f(<==>)g(out2)722 2424 y+Fq(Note)29 b(that)h(w)n(e)f(do)f(not)i(need)f(to)g(use)g(a)f(serial)g+(to)h(parallel)f(con)n(v)n(erter)f(in)j(the)f(\014rst)722+2523 y(prop)r(ert)n(y)e(since)g Fp(highLow)e Fq(do)r(es)i(not)h(ha)n(v)+n(e)e(an)n(y)h(in)n(teresting)g(input.)575 2680 y(7.2)40+b(Slo)n(wing)31 b(do)n(wn)f(a)h(circuit)g(means)g(that)g(there)g(are)f+(only)h(a)g(few)g(imp)r(ortan)n(t)g(clo)r(c)n(k)722 2779+y(cycles,)h(and)g(w)n(e)f(ignore)f(all)i(unimp)r(ortan)n(t)f(clo)r(c)n+(k)g(cycles.)48 b(If)32 b(w)n(e)f(do)h(not)f(lo)r(ok)g(at)722+2879 y(some)g(outputs,)j(w)n(e)d(cannot)g(sa)n(y)g(an)n(ything)g(ab)r+(out)g(ho)n(w)g(the)i(circuit)e(b)r(eha)n(v)n(es)g(in)722+2979 y(these)d(outputs.)39 b(The)28 b(slo)n(w)n(ed)f(do)n(wn)h(prop)r+(ert)n(y)f(migh)n(t)h(b)r(e)g(true,)g(but)h(the)f(circuits)722+3078 y(are)f(not)g(equiv)-5 b(alen)n(t.)575 3234 y(7.3)40+b(Y)-7 b(es,)28 b(here)f(there)h(is)f(no)g(problem.)575+3391 y(8.1)40 b(No,)23 b(parallel)e(comp)r(osition)g(is)h(not)g(asso)r+(ciativ)n(e.)33 b Fp(\(a,\(b,c\)\))18 b Fq(and)k Fp(\(\(a,b\),c\))c+Fq(are)722 3490 y(not)28 b(the)g(same.)575 3647 y(8.2)40+b(Y)-7 b(es,)28 b(they)g(are)e(the)i(same.)575 3803 y(8.3)40+b(One)28 b(p)r(ossibilit)n(y)f(to)g(de\014ne)h Fp(tri)f+Fq(is)809 3978 y Fp(tri)43 b(circ)f([])391 b(=)43 b([])809+4077 y(tri)g(circ)f(\(inp:inps\))d(=)k(inp)g(:)g(outs)897+4177 y(where)984 4277 y(outs)f(=)h(\(map)f(circ)g(->-)g(tri)g(circ\))g+(inps)722 4451 y Fq(There)33 b(are)g(man)n(y)g(other)g(w)n(a)n(ys)f(of)+h(de\014ning)h(it.)55 b(F)-7 b(or)33 b(example,)h(y)n(ou)f(should)g+(try)722 4551 y(de\014ning)28 b Fp(tri)e Fq(using)i Fp(composeN)p+Fq(.)575 4707 y(8.6)40 b(W)-7 b(e)29 b(giv)n(e)f(a)g(de\014nition)h+(that)f(closely)g(re\015ects)g(our)g(informal)g(explanation)f(of)i(ho)n+(w)722 4807 y(a)g(card)f(sharp)g(sh)n(u\017es)g(the)h(pac)n(k.)40+b(He)29 b(halv)n(es)f(it,)i(zips)f(the)g(t)n(w)n(o)f(halv)n(es)g+(together)722 4907 y(\(to)e(get)f(a)f(lot)i(of)f(pairs)f(of)h(cards\))g+(whic)n(h)g(he)g(then)h(pats)f(carefully)f(on)h(the)h(sides)f(so)722+5006 y(as)i(to)h(unstic)n(k)f(the)h(pairs.)1905 5255+y(86)p eop+%%Page: 87 88+87 87 bop 809 523 a Fp(riffle)42 b(=)h(halveList)d(->-)i(zipp)g(->-)g+(unpair)722 722 y Fq(W)-7 b(e)28 b(use)g(the)g(circuit)f+Fp(zipp)p Fq(,)f(whic)n(h)i(w)n(e)f(de\014ned)h(in)g(exercise)e(3.5.)+575 888 y(8.7)40 b(This)28 b(de\014nition)g(is)f(exactly)g(the)h(in)n+(v)n(erse)e(of)i(the)g(de\014nition)g(of)f Fp(riffle)p+Fq(:)809 1088 y Fp(unriffle)41 b(=)i(pair)f(->-)g(unzipp)f(->-)i+(append)575 1287 y Fq(8.8)d(W)-7 b(e)28 b(need)g(to)f(v)n(erify)g(t)n+(w)n(o)g(prop)r(erties:)816 1453 y Fr({)41 b Fq(The)33+b(output)h(of)g(the)g(sorter)e(is)h(sorted.)54 b(W)-7+b(e)34 b(can)f(v)n(erify)f(this)i(b)n(y)f(c)n(hec)n(king)905+1553 y(that)25 b(the)h(\014rst)f(output)g(is)g(smaller)g(than)g(the)g+(second,)g(the)h(second)f(output)g(is)905 1652 y(smaller)i(than)g(the)h+(third,)g(etc.)816 1785 y Fr({)41 b Fq(The)36 b(bits)h(in)g(the)f+(output)h(are)e(the)i(same)f(as)f(the)i(bits)g(in)f(the)h(input,)i(but)+905 1885 y(ma)n(yb)r(e)19 b(in)g(a)g(di\013eren)n(t)h(order.)32+b(W)-7 b(e)20 b(can)f(v)n(erify)f(this)i(b)n(y)f(coun)n(ting)g(the)g(n)+n(um)n(b)r(er)905 1984 y(of)i(high)f(inputs)i(and)e(high)h(outputs,)h+(and)f(c)n(hec)n(king)f(that)h(they)g(are)e(the)j(same.)722+2150 y(The)28 b(details)f(are)g(left)h(to)g(the)g(reader.)533+2316 y(8.10)40 b(On)e(inputs)h(of)f(length)g(2)1547 2286+y Fg(n)1592 2316 y Fq(,)j Fj(n)d Fq(ri\017es)g(in)g(a)g(ro)n(w)f(gets)g+(y)n(ou)h(bac)n(k)f(to)h(where)g(y)n(ou)722 2416 y(started.)809+2615 y Fp(Main>)k Fl(simulate)e(\(composeN)g(4)j(riffle\))e(\(map)h+(int)g([1..\(2^4\)]\))809 2715 y Fp([1,2,3,4,5,6,7,8,)o(9,1)o(0,)o(11,)+o(12)o(,1)o(3,1)o(4,)o(15,)o(16)o(])533 2914 y Fq(8.13)e(Here)28+b(is)f(ho)n(w)g(w)n(e)g(de\014ne)h(the)g(butter\015y)g(circuit)f+(iterativ)n(ely:)809 3113 y Fp(ibfly)42 b(0)h(circ)f(=)h(id)809+3213 y(ibfly)f(n)h(circ)f(=)897 3313 y(compose)e([ilvN)i(\(n-1-j\))f+(\(twoN)g(j)i(circ\))f(|)h(j)g(<-)g([0..\(n-1\)]])575+3512 y Fq(9.1)d(W)-7 b(e)27 b(could)g(mak)n(e)e(the)i(follo)n(wing)f(c)+n(hange)f(to)h(the)h(lo)r(cal)f(de\014nition)h(of)g Fp(component)p+Fq(:)809 3711 y Fp(component)40 b(state)i(=)h(\(activated,)c(emits\))+897 3811 y(where)984 3910 y(init)260 b(=)43 b(state)e(`elem`)g(initial)+g(machine)984 4010 y(activated)f(=)j(activating)c(state)984+4110 y(active)172 b(=)43 b(delay)e(\(bool)h(init\))f(activated)984+4209 y(...)722 4408 y Fq(The)28 b(rest)f(of)h(the)g(de\014nition)g(sta)+n(ys)e(the)i(same.)1905 5255 y(87)p eop+%%Page: 88 89+88 88 bop 515 1227 a Fs(Bibliograph)-6 b(y)556 1703 y+Fq([1])41 b(K.E.)31 b(Batc)n(her.)45 b(Sorting)31 b(net)n(w)n(orks)e+(and)i(their)g(applications.)46 b(In)31 b Fn(AFIPS)i(Spring)685+1803 y(Joint)d(Computing)g(Confer)l(enc)l(e)p Fq(,)f(v)n(olume)e(32,)g+(1969.)556 1969 y([2])41 b(P)n(er)36 b(Bjesse.)66 b(Automatic)38+b(v)n(eri\014cation)e(of)h(com)n(binational)f(and)h(pip)r(elined)i(FFT)+685 2068 y(circuits.)e(In)28 b Fn(Computer)i(A)n(ide)l(d)g(V)-6+b(eri\014c)l(ation)p Fq(.)28 b(Springer)f(V)-7 b(erlag,)26+b(July)i(1999.)556 2234 y([3])41 b(P)n(er)f(Bjesse,)45+b(Ko)r(en)40 b(Claessen,)k(Mary)c(Sheeran,)k(and)e(Satnam)f(Singh.)77+b(La)n(v)-5 b(a)40 b(-)685 2334 y(Hardw)n(are)d(design)g(in)i(Hask)n+(ell.)68 b(In)38 b Fn(International)i(Confer)l(enc)l(e)g(on)g(F)-6+b(unctional)685 2434 y(Pr)l(o)l(gr)l(amming)p Fq(.)29+b(A)n(CM)f(SigPlan,)e(Sept.)i(1998.)556 2600 y([4])41+b(J.W.)21 b(Co)r(oley)f(and)g(J.W.)g(T)-7 b(uk)n(ey)g(.)25+b(An)c(algorithm)e(for)h(the)h(mac)n(hine)f(computation)g(of)685+2699 y(complex)j(fourier)f(series.)27 b(In)c Fn(Mathematics)k(of)f+(Computation,)i(19)p Fq(,)d(pages)c(297{301,)685 2799+y(1965.)556 2965 y([5])41 b(Alexandre)35 b(F)-7 b(rey)g(,)38+b(G)n(\023)-39 b(erard)33 b(Berry)-7 b(,)37 b(P)n(atrice)d(Bertin,)j(F)+-7 b(ran\030)-37 b(cois)35 b(Bourdoncle,)h(and)685 3065+y(Jean)f(V)-7 b(uillemin.)62 b(Jazz.)d(Av)-5 b(ailable)35+b(from)h Fp(http://www.cma.)o(en)o(smp)o(.f)o(r/j)o(az)o(z)p+Fq(,)685 3164 y(1998.)556 3330 y([6])41 b(Nicolas)28+b(Halb)n(w)n(ac)n(hs,)e(P)n(aul)h(Caspi,)h(P)n(ascal)e(Ra)n(ymond,)i+(and)g(Daniel)g(Pilaud.)38 b(The)685 3430 y(sync)n(hronous)19+b(data\015o)n(w)h(programming)f(language)g(LUSTRE.)25+b Fn(Pr)l(o)l(c.)g(IEEE)p Fq(,)d(79\(9\),)685 3530 y(1991.)556+3696 y([7])41 b(Stev)n(en)34 b(Johnson.)56 b Fn(Synthesis)36+b(of)g(Digital)h(Designs)f(fr)l(om)g(R)l(e)l(cursion)f(Equations)p+Fq(.)685 3795 y(The)28 b(A)n(CM)g(Distinguished)g(Dissertation)f+(Series,)g(The)g(MIT)h(Press,)e(1984.)556 3961 y([8])41+b(M.)66 b(P)-7 b(.)65 b(Jones.)149 b(The)65 b(Hugs)g(distribution.)150+b(Curren)n(tly)64 b(a)n(v)-5 b(ailable)64 b(from)685+4061 y Fp(http://haskell.or)o(g/h)o(ug)o(s)-6 b Fq(,)28+b(1999.)556 4227 y([9])41 b(Simon)35 b(P)n(eyton)f(Jones,)i(John)e+(Hughes,)i(\(editors\),)h(Lennart)d(Augustsson,)i(Da)n(v)n(e)685+4327 y(Barton,)44 b(Brian)c(Boutel,)k(W)-7 b(arren)40+b(Burton,)k(Joseph)c(F)-7 b(asel,)44 b(Kevin)c(Hammond,)685+4426 y(Ralf)f(Hinze,)i(P)n(aul)c(Hudak,)k(Thomas)c(Johnsson,)j(Mark)d+(Jones,)j(John)e(Launc)n(h-)685 4526 y(bury)-7 b(,)45+b(Erik)40 b(Meijer,)k(John)c(P)n(eterson,)j(Alastair)d(Reid,)45+b(Colin)c(Runciman,)j(and)685 4625 y(Philip)30 b(W)-7+b(adler.)42 b(Rep)r(ort)30 b(on)f(the)h(Programming)d(Language)g(Hask)n+(ell)i(98,)g(a)g(Non-)685 4725 y(strict,)f(Purely)e(F)-7+b(unctional)28 b(Language.)35 b(Av)-5 b(ailable)27 b(from)g+Fp(http://haskell.or)o(g)p Fq(,)685 4825 y(F)-7 b(ebruary)27+b(1999.)1905 5255 y(88)p eop+%%Page: 89 90+89 89 bop 515 523 a Fq([10])40 b(W)-7 b(a)n(yne)29 b(Luk,)h(Gerain)n(t)+f(Jones,)g(and)h(Mary)e(Sheeran.)42 b(Computer-based)29+b(to)r(ols)g(for)685 623 y(regular)j(arra)n(y)g(design.)55+b(In)34 b(J)f(McCann)n(y)-7 b(,)35 b(J)e(McWhirter,)j(and)d(E)h(Sw)n+(artzlander,)685 722 y(editors,)28 b Fn(Systolic)k(A)n(rr)l(ay)f(Pr)l+(o)l(c)l(essors)p Fq(,)e(pages)f(589)f({)h(598.)f(Pren)n(tice-Hall)g+(In)n(terna-)685 822 y(tional,)h(1989.)515 988 y([11])40+b(John)24 b(Matthews)h(and)f(John)g(Launc)n(h)n(bury)-7+b(.)30 b(Elemen)n(tary)23 b(microarc)n(hitecture)f(alge-)685+1088 y(bra.)29 b(In)23 b Fn(Int.)i(Conf.)h(on)g(Computer)g(A)n(ide)l(d)+g(V)-6 b(eri\014c)l(ation)p Fq(.)23 b(Springer)f(V)-7+b(erlag,)23 b(LNCS,)685 1187 y(1999.)515 1353 y([12])40+b(John)20 b(O'Donnell.)25 b(F)-7 b(rom)20 b(transistors)e(to)j+(computer)f(arc)n(hitecture:)32 b(T)-7 b(eac)n(hing)19+b(func-)685 1453 y(tional)i(circuit)f(sp)r(eci\014cation)h(in)g(Hydra.)+k(In)c Fn(F)-6 b(unctional)23 b(Pr)l(o)l(gr)l(amming)i(L)l(anguages)685+1553 y(in)30 b(Educ)l(ation)p Fq(.)f(Springer)d(V)-7+b(erlag,)27 b(LNCS,)h(1996.)515 1719 y([13])40 b(Mary)27+b(Sheeran.)36 b Fj(\026)p Fq(FP)-7 b(,)27 b(an)g(algebraic)f(VLSI)i+(design)f(language.)35 b(PhD)27 b(thesis,)h(Pro-)685+1818 y(gramming)f(Researc)n(h)f(Group,)h(Oxford)f(Univ)n(ersit)n(y)-7+b(,)27 b(1983.)515 1984 y([14])40 b(Mary)26 b(Sheeran.)34+b Fj(\026)p Fq(FP,)26 b(a)g(language)e(for)i(VLSI)h(design.)34+b(In)26 b Fn(A)n(CM)j(Symp.)g(on)g(LISP)685 2084 y(and)i(F)-6+b(unctional)29 b(Pr)l(o)l(gr)l(amming)p Fq(,)g(1984.)515+2250 y([15])40 b(Mary)c(Sheeran.)64 b(Designing)36 b(regular)f(arra)n+(y)g(arc)n(hitectures)g(using)h(higher)g(order)685 2350+y(functions.)i(In)28 b Fn(Int.)i(Conf.)h(on)f(F)-6 b(unctional)30+b(Pr)l(o)l(gr)l(amming)h(L)l(anguages)f(and)h(Com-)685+2449 y(puter)f(A)n(r)l(chite)l(ctur)l(e,)f(LNCS)h(201)p+Fq(.)f(Springer)d(V)-7 b(erlag,)27 b(1985.)515 2615 y([16])40+b(Mary)26 b(Sheeran.)35 b(Describing)27 b(and)f(reasoning)f(ab)r(out)i+(circuits)g(using)f(relations.)35 b(In)685 2715 y Fn(Workshop)d(on)e(F)+-6 b(oundations)30 b(of)g(VLSI)g(Design)p Fq(.)e(Klu)n(w)n(er,)e(1990.)+515 2881 y([17])40 b(Mary)29 b(Sheeran.)43 b(Puzzling)29+b(p)r(erm)n(utations.)43 b(In)30 b Fn(Pr)l(o)l(c.)j(Glasgow)g(F)-6+b(unctional)32 b(Pr)l(o-)685 2980 y(gr)l(amming)f(Workshop)p+Fq(,)e(1996.)1905 5255 y(89)p eop+%%Page: 90 91+90 90 bop 515 999 a Fs(Index)515 1414 y Fp(++)p Fq(,)27+b(47)515 1513 y Fp(*)p Fq(,)g(73)515 1613 y Fp(+)p Fq(,)g(73)515+1713 y Fp(->-)p Fq(,)f(45,)h(74)515 1812 y Fp(-|-)p Fq(,)f(46,)h(74)515+1912 y Fp(-)p Fq(,)g(73)515 2011 y Fp(/)p Fq(,)g(73)515+2111 y Fp(<==>)p Fq(,)f(19)515 2211 y Fp(<=>)p Fq(,)g(72)515+2310 y Fp(<#>)p Fq(,)g(72)515 2410 y Fp(<&>)p Fq(,)g(72)515+2510 y Fp(<|>)p Fq(,)g(72)515 2609 y Fp(==>)p Fq(,)g(30,)h(72)515+2709 y Fp(>>==)p Fq(,)f(73)515 2808 y Fp(\045\045)p Fq(,)h(73)515+2991 y(adder)681 3091 y(binary)-7 b(,)27 b(12)681 3190+y(bit,)h(12)681 3290 y(full,)g(8)681 3390 y(half,)g(6)681+3489 y(sequen)n(tial,)f(26,)f(27)681 3589 y(tree,)h(49)515+3688 y Fp(adder)p Fq(,)e(12,)i(76)515 3788 y Fp(adder2)p+Fq(,)e(80)515 3888 y Fp(adderSeq)p Fq(,)f(26)515 3987+y Fp(adderSeqPeriod)p Fq(,)e(27)515 4087 y Fp(adderSeqReset)p+Fq(,)g(27)515 4187 y Fp(addTree)p Fq(,)j(49)515 4286+y Fp(always)p Fq(,)g(76,)i(83)515 4386 y Fp(alwaysHigh)p+Fq(,)c(79)515 4485 y Fp(and2)p Fq(,)j(73)515 4585 y Fp(andl)p+Fq(,)g(73)515 4685 y Fp(append)p Fq(,)f(47,)i(75)515+4867 y(base)g(case,)f(induction,)j(31)515 4967 y Fp(bfly)p+Fq(,)d(75)2092 1414 y Fp(bin2int)p Fq(,)f(76,)i(80)2092+1513 y Fp(binAdder)p Fq(,)e(49,)h(76)2092 1613 y Fp(binTree)p+Fq(,)f(49)2092 1713 y Fp(bit2int)p Fq(,)g(73)2092 1812+y Fp(bitAdder)p Fq(,)g(12,)h(76)2092 1912 y Fp(bitMulti)p+Fq(,)f(76)2092 2011 y(bitonic,)j(55)2092 2111 y Fp(bitSubber)p+Fq(,)c(16)2092 2211 y(butter\015y)-7 b(,)28 b(45)2092+2393 y Fp(column)p Fq(,)d(75,)i(81)2092 2493 y(command-line)g(options,)+g(72)2092 2593 y(comm)n(utativit)n(y)-7 b(,)27 b(19)2092+2692 y(compilation,)g(16)2092 2792 y Fp(compose)p Fq(,)e(45,)i(75)2092+2891 y Fp(composeN)p Fq(,)e(46,)h(75)2092 2991 y(comp)r(osition)2258+3091 y(parallel,)h(46,)f(81)2258 3190 y(serial,)h(13,)f(45)2092+3290 y(connection)h(pattern,)h(13)2258 3390 y(prop)r(erties,)f(20)2258+3489 y(sequen)n(tial,)g(26)2092 3589 y Fp(copy)p Fq(,)f(74,)h(79)2092+3688 y(coun)n(ter,)g(25)2092 3788 y Fp(counterUpDown)p+Fq(,)c(84)2092 3971 y Fp(delay)p Fq(,)j(74)2092 4070+y Fp(delayClk)p Fq(,)f(76,)h(83)2092 4170 y Fp(delayN)p+Fq(,)f(24,)i(76)2092 4270 y Fp(Depth)p Fq(,)f(34)2092+4452 y Fp(edge)p Fq(,)g(23,)h(76)2092 4552 y Fp(equal)p+Fq(,)f(19,)h(74)2092 4652 y(equalit)n(y)-7 b(,)27 b(19)2092+4751 y Fp(equiv)p Fq(,)f(73)2092 4851 y(error)g(messages,)g(77)2092+4950 y Fp(evenSoFar)p Fq(,)e(83)1905 5255 y(90)p eop+%%Page: 91 92+91 91 bop 515 523 a Fp(fixit)p Fq(,)25 b(77)515 623 y+Fp(flipFlop)p Fq(,)f(83)515 722 y Fp(fullAdd)p Fq(,)h(8,)i(75)515+902 y(garbage)e(collection,)i(77)515 1001 y Fp(grid)p+Fq(,)f(75,)h(81)515 1101 y Fp(gte)p Fq(,)f(74)515 1280+y Fp(halfAdd)p Fq(,)f(6,)i(75)515 1380 y Fp(halveList)p+Fq(,)d(46,)j(75)515 1479 y Fp(high)p Fq(,)f(72)515 1579+y(Hugs,)h(7)515 1758 y Fp(id)p Fq(,)g(46,)f(72,)h(73)515+1858 y Fp(idiv)p Fq(,)f(73)515 1958 y Fp(ilv)p Fq(,)g(75)515+2057 y Fp(ilvN)p Fq(,)g(75)515 2157 y Fp(ilvTree)p Fq(,)f(53)515+2257 y Fp(imax)p Fq(,)h(73)515 2356 y Fp(imin)p Fq(,)g(73)515+2456 y Fp(imod)p Fq(,)g(73)515 2555 y Fp(impl)p Fq(,)g(30,)h(73)515+2655 y(implication,)g(30)515 2755 y Fp(inc)p Fq(,)f(46)515+2854 y Fp(Increasing)p Fq(,)d(34)515 2954 y(induction,)28+b(30,)f(31)681 3054 y(restricted)g(states,)g(35)681 3153+y(with)h(depth,)g(32)515 3253 y Fp(int2bin)p Fq(,)d(15,)h(76)515+3352 y Fp(int2bit)p Fq(,)f(15,)h(73)515 3452 y Fp(inv)p+Fq(,)g(72)515 3552 y Fp(iter)p Fq(,)g(75)515 3731 y(La)n(v)-5+b(a)26 b(in)n(terpreter,)h(7)515 3831 y Fp(lava.vhd)p+Fq(,)d(9)515 3930 y Fp(length)p Fq(,)h(43)515 4030 y(list,)j(12)515+4130 y Fp(listTree)p Fq(,)c(53)515 4229 y Fp(low)p Fq(,)i(72)515+4408 y Fp(map)p Fq(,)g(47)515 4508 y Fp(mirror)p Fq(,)f(75,)i(81)515+4608 y Fp(multi)p Fq(,)e(76)515 4707 y(m)n(ultiplexer,)i(10)515+4807 y Fp(multiplexer)p Fq(,)c(79)515 4907 y Fp(mux)p+Fq(,)j(27,)h(74,)g(79)515 5006 y Fp(mux)p Fq(,)f Fn(se)l(e)i+Fq(m)n(ultiplexer)2092 523 y Fp(nand2)p Fq(,)e(73)2092+623 y Fp(nandl)p Fq(,)g(73)2092 722 y Fp(neg)p Fq(,)h(73)2092+822 y Fp(nor2)p Fq(,)f(73)2092 922 y Fp(norl)p Fq(,)g(73)2092+1021 y Fp(numBreak)p Fq(,)f(15,)h(76)2092 1200 y Fp(or2)p+Fq(,)h(73)2092 1300 y Fp(orl)p Fq(,)g(73)2092 1400 y+Fp(outputList)p Fq(,)d(76,)j(84)2092 1579 y(P)n(ace,)f(63)2092+1679 y Fp(pair)p Fq(,)g(75,)h(80)2092 1778 y Fp(par)p+Fq(,)g(46,)f(75,)h(81)2092 1878 y Fp(parl)p Fq(,)f(47,)h(75)2092+1978 y Fp(plus)p Fq(,)f(73)2092 2077 y Fp(plusl)p Fq(,)g(74)2092+2177 y Fp(pmap)p Fq(,)g(75)2092 2276 y(program)g(error,)f(77)2092+2376 y(prop)r(erties,)i(18)2092 2476 y Fp(puls)p Fq(,)f(24,)h(76)2092+2575 y Fp(puls2)p Fq(,)f(84)2092 2755 y(quan)n(ti\014cation,)h(19)2092+2934 y(recursion,)f(12)2092 3034 y Fp(RestrictStates)p+Fq(,)c(36)2092 3133 y Fp(riffle)p Fq(,)j(74)2092 3233+y Fp(row)p Fq(,)i(14,)f(75)2092 3333 y Fp(rowSeq)p Fq(,)f(26,)i(76)2092+3432 y Fp(rowSeqPeriod)p Fq(,)c(76)2092 3532 y Fp(rowSeqReset)p+Fq(,)g(27,)k(76)2092 3711 y(safet)n(y)g(prop)r(erties,)g(18)2092+3811 y Fp(serial)p Fq(,)e(13,)i(45,)g(75)2092 3910 y(sim)n(ulate)2258+4010 y(com)n(binational,)g(7)2258 4110 y(sequen)n(tial,)g(9,)g(23)2092+4209 y Fp(simulate)p Fq(,)e(77)2092 4309 y Fp(simulateCon)p+Fq(,)e(77)2092 4408 y Fp(simulateSeq)p Fq(,)g(77)2092+4508 y(step,)28 b(induction,)g(31)2092 4608 y Fp(sub)p+Fq(,)f(73)2092 4707 y Fp(swap)p Fq(,)f(74,)h(79)2092+4807 y Fp(swapl)p Fq(,)f(74)2092 4907 y Fp(swapper)p+Fq(,)f(82)2092 5006 y Fp(synchronize)p Fq(,)e(84)1905+5255 y(91)p eop+%%Page: 92 93+92 92 bop 515 523 a Fp(test)p Fq(,)26 b(77)515 623 y+Fp(threeBitAdder)p Fq(,)c(79)515 722 y Fp(times)p Fq(,)j(73)515+822 y Fp(timesl)p Fq(,)g(74)515 922 y Fp(timeTransform)p+Fq(,)d(43)515 1021 y Fp(toggle)p Fq(,)j(23,)i(76)515+1121 y(transition)g(relation,)f(31)515 1220 y(tree)h(shap)r(ed)h+(circuits,)f(45)515 1320 y Fp(tri)p Fq(,)f(48,)h(75,)g(86)515+1420 y Fp(two)p Fq(,)f(75)515 1519 y Fp(twoBitSort)p+Fq(,)d(79)515 1619 y Fp(twoBitSortl)p Fq(,)g(56)515 1719+y Fp(twoN)p Fq(,)j(75)515 1901 y Fp(unpair)p Fq(,)f(75,)i(80)515+2001 y Fp(unriffle)p Fq(,)d(74)515 2100 y Fp(unzipp)p+Fq(,)h(74,)i(80)515 2283 y Fp(varList)p Fq(,)e(74)515+2383 y(v)n(eri\014cation,)h(30)515 2482 y(v)n(erify)681+2582 y(com)n(binational,)g(18)681 2682 y(one-b)n(y-one,)g(21)681+2781 y(options,)h(77)681 2881 y(sequen)n(tial,)g(29)515+2980 y Fp(verify)p Fq(,)e(18,)i(77)515 3080 y Fp(verifyWith)p+Fq(,)c(34,)k(77)515 3180 y(VHDL)681 3279 y(generation,)f(9)515+3462 y Fp(writeVhdl)p Fq(,)e(9,)j(77)515 3562 y Fp(writeVhdlInput)p+Fq(,)22 b(9,)27 b(77)515 3661 y Fp(writeVhdlInputOu)o(tp)o(ut)o+Fq(,)22 b(9,)27 b(77)515 3844 y Fp(xnor2)p Fq(,)e(73)515+3944 y Fp(xor2)p Fq(,)h(73)515 4043 y Fp(xorl)p Fq(,)g(73)515+4226 y Fp(zero)p Fq(,)g(26,)h(69)515 4325 y Fp(zeroList)p+Fq(,)d(25)515 4425 y Fp(zipp)p Fq(,)i(74,)h(80)1905 5255+y(92)p eop+%%Trailer+end+userdict /end-hook known{end-hook}if+%%EOF
chalmers-lava2000.cabal view
@@ -1,5 +1,6 @@ name:                chalmers-lava2000-version:             1.0+version:             1.0.1+homepage:            http://www.cs.chalmers.se/~koen/Lava/ synopsis:            Hardware description library description:         Hardware description library category:            Hardware@@ -11,7 +12,7 @@ cabal-version:       >= 1.2 build-type:          Simple tested-with:         GHC ==6.8.3-data-files:          README, INSTALL+data-files:          README, INSTALL, Doc/tutorial.ps extra-source-files:  Vhdl/lava.vhd, Scripts/satzoo.wrapper, Scripts/smv.wrapper  library