%!PS-Adobe-2.0
%%Creator: dvips 5.526 Copyright 1986, 1994 Radical Eye Software
%%Title: paper.dvi
%%CreationDate: Fri Apr 22 08:08:36 1994
%%Pages: 51
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips -o tmp paper
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource: TeX output 1994.04.22:0807
%%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 4 get round 4 exch put dup dup 5 get
round 5 exch put 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 add]{
ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn
/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1
sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{cc 1 add D
}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0
moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add
.99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley
false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley
scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave
transform round exch round exch itransform moveto rulex 0 rlineto 0
ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta
0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}
B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{
3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p
-1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{
3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
%%BeginProcSet: special.pro
TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
true def end /@MacSetUp{userdict /md known{userdict /md get type
/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
clippath mark{transform{itransform moveto}}{transform{itransform lineto}
}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
maxlength dict begin /magscale false def normalscale currentpoint TR
/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
begin /SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
%%EndProcSet
TeXDict begin 40258431 52099146 1000 300 300
(/boysen/homes/berry/thesis/IJSA/final/paper.dvi) @start
/Fa 1 1 df0 D E /Fb 14 84 df<004000800100030006
0004000C001800180038003000300070006000600060006000E000E000E000E000E000E0
00E000E000E000E000E000E00060006000600060007000300030003800180018000C0004
00060003000100008000400A2E7BA112>40 D<8000400020003000180008000C00060006
000700030003000380018001800180018001C001C001C001C001C001C001C001C001C001
C001C001C001800180018001800380030003000700060006000C00080018003000200040
0080000A2E7EA112>I<03F0000E1C001C0E001806003807007003807003807003807003
80F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003
C0F003C07003807003807003807807803807001806001C0E000E1C0003F000121F7E9D17
>48 D<008003800F80F38003800380038003800380038003800380038003800380038003
800380038003800380038003800380038003800380038007C0FFFE0F1E7C9D17>I<03F0
000C1C00100E00200F00780F80780780780780380F80000F80000F00000F00001E00001C
0000700007F000003C00000E00000F000007800007800007C02007C0F807C0F807C0F807
C0F00780400780400F00200E00183C0007F000121F7E9D17>51 D<000600000600000E00
000E00001E00002E00002E00004E00008E00008E00010E00020E00020E00040E00080E00
080E00100E00200E00200E00400E00C00E00FFFFF0000E00000E00000E00000E00000E00
000E00000E0000FFE0141E7F9D17>I<007C000182000701000E03800C07801807803803
00380000780000700000700000F1F000F21C00F40600F80700F80380F80380F003C0F003
C0F003C0F003C0F003C07003C07003C07003803803803807001807000C0E00061C0001F0
00121F7E9D17>54 D<4000007FFFE07FFFC07FFFC0400080800100800100800200000400
00040000080000100000100000200000200000600000600000E00000C00001C00001C000
01C00001C00003C00003C00003C00003C00003C00003C00003C000018000131F7E9D17>
I<000FE01000381C3000E0027003C00170078000F00F0000701E0000701E0000303C0000
303C0000107C00001078000010F8000000F8000000F8000000F8000000F8000000F80000
00F8000000F8000000F8000000780000007C0000103C0000103C0000101E0000201E0000
200F0000200780004003C0008000E0030000380C00000FF0001C217E9F21>67
D69 DI78
D82
D<03F0400C0CC01803C03001C06000C06000C0E000C0E00040E00040E00040F00000F800
007C00007F80003FF8001FFF0007FF8000FFC0001FE00003E00001E00000F00000708000
70800070800070800070C00060C000E0E000C0F80180C6030081FC0014217E9F19>I
E /Fc 4 108 df<3FFFC03060C040604040C04080C04080C04000C00001800001800001
80000180000300000300000300000300000600003FE00012117E9012>84
D<780018001800300030003000370078C0604060606060C0C0C0C0C0C0418063003C000B
117E900E>98 D<0020002000000000000000000000038004C008C008C000C00180018001
80018003000300030003004600CC0078000B1780910D>106 D<3C000C000C0018001800
1800187031903230340038007F00618061906190C1A0C0C00C117E9010>I
E /Fd 1 2 df<60F0F06004047D890A>1 D E /Fe 3 52 df<1878981818181818181818
18181818FF08107D8F0F>49 D<1F00618040C08060C0600060006000C00180030006000C
00102020207FC0FFC00B107F8F0F>I<1F00218060C060C000C0008001001F0000800040
0060C060C060804060801F000B107F8F0F>I E /Ff 1 18 df17 D E /Fg 6 108 df<03C0000C3040101840201880600C80C00C80C00D00C0
0E00800E00800C00C01C00C02C0060C4801F0300120E7E8D17>11
D<000F0000308000C0C00100400100600200C00400C0040080040180083F00083E000801
00080180100180100180100180100180300300300300300600280C0044180043E0004000
00400000800000800000800000800000131D7F9614>I<07FFF00000E01C0000E0060000
E0070000E0070001C0070001C0070001C0070001C00E0003801C000380700003FF800003
80E000070070000700380007003800070038000E0070000E0070000E0070800E0070801C
003100FF801E0019177F961B>82 D<003E1000C1A00100E00200600600600C00400C0040
0E00000F000007E00007FC0001FE00003F00000780000380000380200180400300400300
600600600400D8180087E00014177E9615>I<0018003800100000000000000000000000
0001C0022004300430086000600060006000C000C000C000C001800180018001806300E3
00C60078000D1D80960E>106 D<1F0006000600060006000C000C000C000C00181C1866
188E190C32003C003F00318060C060C460C460C4C0C8C0700F177E9612>I
E /Fh 6 85 df<70F8F8F87005057C840D>58 D<70F0F8F878080808101010202040050E
7C840D>I<01FFFFE0001E0078001E003C001E001C001E001E003C001E003C001E003C00
1E003C001E0078003C0078003C00780078007800F000F003C000FFFF0000F007C000F000
E001E000F001E0007801E0007801E0007803C0007803C0007803C0007803C00070078000
F0078001E0078003C0078007800F001E00FFFFF0001F1F7E9E22>66
D<01FFF0FFF8001F000F80001E000F00001E000F00001E000F00003C001E00003C001E00
003C001E00003C001E000078003C000078003C000078003C000078003C0000F000780000
FFFFF80000F000780000F000780001E000F00001E000F00001E000F00001E000F00003C0
01E00003C001E00003C001E00003C001E000078003C000078003C000078003C000078003
C0000F8007C000FFF87FFC00251F7E9E26>72 D<000FFF8000007C000000780000007800
000078000000F0000000F0000000F0000000F0000001E0000001E0000001E0000001E000
0003C0000003C0000003C0000003C00000078000000780000007800000078000000F0000
000F0000300F0000780F0000F81E0000F81E0000F03C0000803800004070000020E00000
1F80000019207E9E19>74 D<0FFFFFFC1E03C0381803C0181003C0082003C00820078008
600780084007800840078008800F0010000F0000000F0000000F0000001E0000001E0000
001E0000001E0000003C0000003C0000003C0000003C0000007800000078000000780000
0078000000F0000000F0000000F0000000F0000001F000007FFFC0001E1F7F9E1B>84
D E /Fi 5 120 df<700030003000300060006E0071806180C180C180C180C30046003C
00090E7E8D0D>98 D<0F0030806080FF00C000C000C04061803E000A097E880E>101
D<0808000000007098B0303060646870060F7D8E0B>105 D<73809C40986030C030C030
C03188619060E00D097D8812>110 D<70629863986318C230C230C230C431C41E781009
7D8815>119 D E /Fj 3 51 df<1E0061804080C0C0C0C0C0C0C0C0C0C0C0C0C0C04080
61801E000A0D7E8C0E>48 D<18F818181818181818181818FF080D7D8C0E>I<3E004180
80C0C0C000C000C0018003000400084030407F80FF800A0D7E8C0E>I
E /Fk 14 85 df<0300070007000F001F00FF00FF00E700070007000700070007000700
07000700070007000700070007000700FFF8FFF8FFF80D197B9816>49
D<07E0001FF8003FFC00783E00E00700F00780F003806003800003800003800007000007
00000E00001C0000380000700000E00001C0000380000F00001E03803803807FFF80FFFF
807FFF8011197E9816>I<00E00001F00001F00001B00001B00003B80003B80003B80003
1800071C00071C00071C00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C
07001C07007E0FC0FF1FE07E0FC013197F9816>65 D<01F18007FB800FFF801F0F803C07
80380380700380700380F00000E00000E00000E00000E00000E00000E00000E00000F000
007003807003803803803C07001F0F000FFE0007FC0001F00011197E9816>67
D<7FF800FFFE007FFF001C0F001C07801C03C01C01C01C01C01C01E01C00E01C00E01C00
E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C0F807FFF00FFFE
007FF8001319809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C01C01C01C00001C
00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00E01C00E01C00E01C
00E01C00E07FFFE0FFFFE07FFFE013197F9816>I<7F07F0FF8FF87F07F01C01C01C01C0
1C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C01C01C01C01C0
1C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F01519809816>72
D<7FFCFFFE7FFC0380038003800380038003800380038003800380038003800380038003
8003800380038003807FFCFFFE7FFC0F197D9816>I77
D<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CE1C01CE1C01C61C01C71
C01C71C01C71C01C31C01C39C01C39C01C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87
C07F03C01519809816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E0
0380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780F0
0780780F007FFF003FFE001FFC0011197E9816>I<7FF000FFFC007FFE001C0F001C0780
1C03801C03801C03801C03801C07801C0F001FFE001FFC001FFE001C0E001C07001C0700
1C07001C07001C07101C07381C07387F03F0FF83F07F01E01519809816>82
D<07E3001FFF003FFF00781F00F00700E00700E00700E00000F000007800003F80001FF0
0007FC0000FE00000F00000700000380000380600380E00380E00700F80F00FFFE00FFFC
00C7F00011197E9816>I<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000
E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
E00000E00007FC000FFE0007FC0013197F9816>I E /Fl 12 87
df<07C01FF03878701C601EE00EC00F400F400700070007000F000E001E001C003C0078
00F001E001C0038007000E001C0038007000FFFFFFFF101C7E9B15>50
D<001C0000003E0000003E0000002E0000006700000067000000E7800000C7800000C380
0001C3C0000183C0000181C0000381E0000301E0000700F0000700F0000600F0000E0078
000FFFF8000FFFF8001C003C001C003C0018003C0038001E0038001E0070001F0070000F
0060000F00E0000780191D7F9C1C>65 DI68 D73 D76 D78 D<003F000001FFE00003FFF00007C0F8000F807C001E001E003E001F00
3C000F00780007807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0
F00003C0F00003C0F00003C0F80007C078000780780007807C000F803C000F003E001F00
1F003E000F807C0007C0F80003FFF00001FFE000003F00001A1F7E9D1F>I82 D<03F8000FFE001C0F00380700700300600000
E00000E00000E00000E00000F000007800007F00003FE0001FFC0007FE0001FF00001F80
0007800003C00003C00001C00001C00001C00001C0C00180E00380F007007C0E001FFC00
07F000121F7E9D17>II86 D E /Fm 24 126 df2
DI<0000300000600000C0000180000300
000700000E00000C0000180000380000300000700000E00000C00001C000018000038000
0380000300000700000600000E00000E00000C00001C00001C00001C0000180000380000
380000380000380000700000700000700000700000700000700000700000E00000E00000
E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
E00000E00000E00000E00000E00000E00000E00000700000700000700000700000700000
7000007000003800003800003800003800001800001C00001C00001C00000C00000E0000
0E000006000007000003000003800003800001800001C00000C00000E000007000003000
003800001800000C00000E000007000003000001800000C0000060000030146377811F>
18 DI<00001C00003C0000F80001E00003C00007
80000F00000E00001E00003C00003C00003C000078000078000078000078000078000078
000078000078000078000078000078000078000078000078000078000078000078000078
000078000078000078000078000078000078000078000078000078000078000078000078
0000780000780000780000780000780000780000780000780000F00000F00000F00001E0
0001E00003C0000380000700000E00001C0000780000E00000E000007800001C00000E00
0007000003800003C00001E00001E00000F00000F00000F0000078000078000078000078
000078000078000078000078000078000078000078000078000078000078000078000078
000078000078000078000078000078000078000078000078000078000078000078000078
00007800007800007800007800007800007800007800007800007800007800003C00003C
00003C00001E00000E00000F000007800003C00001E00000F800003C00001C167C7B8121
>40 DI<00000C0000180000380000300000
600000E00000C00001C0000380000380000700000700000E00000E00001C00001C000038
0000380000780000700000F00000F00000E00001E00001E00003C00003C00003C00003C0
000780000780000780000F80000F00000F00000F00001F00001F00001E00001E00001E00
003E00003E00003E00003E00003C00003C00003C00007C00007C00007C00007C00007C00
007C00007C00007C0000780000780000F80000F80000F80000F80000F80000F80000F800
00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000164B748024
>48 DI<0018007800F001E003C007800F001F001E
003E003C007C007C007800F800F800F800F800F800F800F800F800F800F800F800F800F8
00F800F800F800F800F800F800F800F800F800F8000D25707E25>56
D58 D<007C007C007C007C007C007C007C007C007C007C007C007C00
7C007C007C007C007C007C007C007C007C007C007C007C00F800F800F800F001F001E003
E003C0078007000E001C003800F000C000F00038001C000E000700078003C003E001E001
F000F000F800F800F8007C007C007C007C007C007C007C007C007C007C007C007C007C00
7C007C007C007C007C007C007C007C007C007C007C0E4D798025>60
D64 D<00007C00007C00007C00007C00007C00007C
00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C000078
0000780000F80000F80000F80000F80000F80000F80000F80000F80000F00000F00000F0
0001F00001F00001F00001F00001E00001E00001E00003E00003E00003C00003C00003C0
0007C0000780000780000780000F00000F00000F00000F00001E00001E00001C00003C00
003C0000380000780000700000700000E00000E00001C00001C000038000038000070000
0700000E00000C00001C0000180000300000700000600000C00000164B7F8224>III88 D<000000038000000006600000000C700000000CF00000001C
F00000001860000000180000000038000000003800000000300000000070000000007000
0000007000000000F000000000E000000000E000000000E000000001E000000001E00000
0001C000000001C000000003C000000003C000000003C000000003C00000000780000000
07800000000780000000078000000007800000000F800000000F000000000F000000000F
000000001F000000001F000000001F000000001F000000001E000000003E000000003E00
0000003E000000003E000000007C000000007C000000007C000000007C000000007C0000
00007C00000000F800000000F800000000F800000000F800000000F000000001F0000000
01F000000001F000000001F000000001E000000001E000000001E000000003E000000003
C000000003C000000003C000000003C000000003C0000000078000000007800000000780
0000000780000000070000000007000000000F000000000F000000000E000000000E0000
00000E000000001E000000001C000000001C000000001C00000000380000000038000000
003800000000300000006070000000F060000000F0C0000000E0C000000063000000001E
00000000245C7E7F17>90 D<0000FF8000000007FFF00000001FFFFC0000007F007F0000
00F8000F800003E00003E00007C00001F0000700000070000E00000038001E0000003C00
1C0000001C00380000000E00380000000E00700000000700700000000700700000000700
E00000000380E00000000380E00000000380E00000000380E00000000380E00000000380
E00000000380E00000000380E00000000380E00000000380E00000000380E00000000380
E00000000380E00000000380E00000000380E00000000380E00000000380E00000000380
E00000000380E00000000380E00000000380E00000000380E00000000380E00000000380
E00000000380E00000000380E00000000380E00000000380E00000000380E00000000380
E00000000380E00000000380E00000000380E00000000380E00000000380E00000000380
E00000000380E00000000380E00000000380E00000000380E00000000380E00000000380
293A7E7F2E>92 D104 DI<0001F800
0FF8003FF800FFF803FFF807FC000FC0001F00003C0000780000700000E00000C0000015
0D818413>122 DII<0000180000
380000300000700000E00003C0000F80003F0003FE00FFFC00FFF800FFE000FF8000FC00
00150E818D13>I E /Fn 24 115 df<60F0F06004047B830D>46
D<03E0000C1800180C00300600300600700700600300600300E00380E00380E00380E003
80E00380E00380E00380E00380E00380E00380E00380E00380E003806003006003007007
00300600300600180C000E380003E000111D7D9B17>48 D<030007003F00C70007000700
070007000700070007000700070007000700070007000700070007000700070007000700
070007000F80FFF80D1C7B9B17>I<07E000183800200C00400E00400700F00780F80780
F80380F80380700380000780000700000700000E00000C00001C0000380000700000C000
0180000300000200800400800800801001003FFF007FFF00FFFF00111C7D9B17>I<07E0
00083800300C00200E00780F00780700780F00380F00000E00000E00001C000018000070
0007E000003800001C00000E00000700000780000780700780F80780F80780F80780F007
00400E00201C0018380007E000111D7D9B17>I<000C00000C00001C00003C00003C0000
5C0000DC00009C00011C00031C00021C00041C000C1C00081C00101C00301C00201C0040
1C00C01C00FFFFE0001C00001C00001C00001C00001C00001C00001C0001FFC0131C7E9B
17>I<3806003FFC003FF8003FE00020000020000020000020000020000020000023E000
241800280C00300E00200700000700000780000780000780600780F00780F00780F00700
800700400F00400E00201C0018380007E000111D7D9B17>I<00F8000306000602000C07
00180F00380F00300600700000700000600000E3E000E41800E80C00F00600F00700F003
00E00380E00380E00380E00380600380600380700380700300300700180600180C000C18
0003E000111D7D9B17>I<4000007FFFC07FFF807FFF8040010080020080020080040000
080000100000100000200000600000400000C00000C00001C00001800001800003800003
8000038000078000078000078000078000078000078000030000121D7D9B17>I<03E000
0C18001004002006002003006003006003007003007003007C06003F0C001F98000FE000
07F00007FC0008FE00303F00201F00600780C00380C00180C00180C00180C00180600100
6002003004001C180007E000111D7D9B17>I<03E0000C1800180C003006007006006007
00E00300E00300E00380E00380E00380E00380E00380600780700780300780180B800C13
8003E380000300000700000700300600780600780C007018002010001060000F8000111D
7D9B17>I70 D76 D<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F00
20800F0020800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00
00000F0000001F800003FFFC001B1C7D9B21>84 D<00200000700000700000700000B800
00B80000B800011C00011C00031E00020E00020E0004070007FF00040700080380080380
1803C01801C03801C0FC07F815157F9419>97 DI101 D<00FC200782600E01E01C00E0380060780020
700020F00020F00000F00000F00000F00FF8F000E0F000E07000E07800E03800E01C00E0
0E00E007836000FC2015157E941B>103 DII108
DI<01F800070E000C03001C03803801C078
01E07000E0F000F0F000F0F000F0F000F0F000F0F000F0F000F07000E07801E03801C01C
03801E0780070E0001F80014157E941A>111 D114 D E /Fo 24 121 df<03FF0FFF1C303018
601860186018C030C0304060604021801E00100D7F8C13>27 D<07FFE000E03801C01801
C01C01C01C01C01C0380380380700380E003FFC00700E00700700700300700380E00700E
00700E00E00E00E01C0380FFFE0016147F9319>66 D<07FFFC00E01C01C00C01C00C01C0
0C01C00803810803810003830003FF000702000702000702000700000E00000E00000E00
000E00001C0000FFC00016147F9315>70 D<1FFFF8381C18203818203808403808403810
80701000700000700000700000E00000E00000E00000E00001C00001C00001C00001C000
0380003FF8001514809314>84 D89 D<07B00C7010703060606060606060C0C0C0C8C0C841C862D03C70
0D0D7E8C12>97 D<3C000C001800180018001800300033803C6030206030603060306030
C060C06040C0608023001E000C147F930F>I<03C00C20187030E0600060006000C000C0
004010602030C01F000C0D7F8C0F>I<003C000C0018001800180018003007B00C701070
3060606060606060C0C0C0C8C0C841C862D03C700E147E9311>I<0780184030206040C0
40FF80C00080008000C020C04061803E000B0D7E8C10>I<06070600000000384C4C8C98
181830323264643808147F930C>105 D<003000380030000000000000000001C0026004
30046008600060006000C000C000C000C001800180018001806300E300C60078000D1A81
930E>I<1E0006000C000C000C000C0018001838185C189C3118360038003F8061C060C8
60C860C8C0D0C0600E147F9312>I<3C0C181818183030303060606060C0C8C8C8D06006
147F930A>I<30F87C00590C86004E0D06009C0E0600980C0600180C0600180C06003018
0C0030180C8030181880301818806030190060300E00190D7F8C1D>I<30F8590C4E0C9C
0C980C180C180C30183019303130316032601C100D7F8C15>I<03800C60182030306030
60306030C060C06040C0608023001E000C0D7E8C10>I<0C78168C130426062606060606
060C0C0C0C0C080C101A2019C018001800300030003000FC000F13818C11>I<03880C58
18383030603060306030C060C060406060E021C01EC000C000C00180018001800FE00D13
7F8C0F>I<31E05A704C709C609800180018003000300030003000600060000C0D7F8C0F>
I<0700188019C0318038001E000F0003804180E180C10082007C000A0D7E8C10>I<0400
0C000C000C001800FF801800180030003000300030006000610061006200640038000912
7F910D>I<3818204C18704C18208C302098302018302018302030604030604030604030
608018B1000F1E00140D7F8C18>119 D<0E3C13CE238E430C43000300030006000608C6
08E610CA2071C00F0D7F8C13>I E /Fp 66 123 df<00F800030C000E06041C07043803
08300388700390700390E003A0E003A0E003C0E00380E00380E00380600780600B883071
900F80E016127E911B>11 D<0001F000061800080C00100C00200E00400E00800E00801C
01001C010018010038020FF00210C0020FE0020030040030040030040038040038080070
0800700800700800E01800E01801C0140180140300230E0020F800200000200000400000
40000040000040000080000080000017257F9C17>I<0780101FC0103FE0207FF0206030
40C018408008800008800004800005000005000006000006000006000004000004000004
00000C00000C00000C00001800001800001800001800003000003000002000141B7F9115
>I<01F807000C0018003800300070007FC0E000E000E000E000E0006000600030001860
0F800D127E9111>15 D<3C1F004E61804681C04701C08F01C08E01C00E01C00E01C01C03
801C03801C03801C0380380700380700380700380700700E00300E00000E00000E00001C
00001C00001C00001C00003800003800003000121B7E9115>17 D<007800CC0186030606
060E060C061C07180738063806300E700E700E7FFEE01CE01CE01CE018E038C038C070C0
60C060C0C0C180618062003C00101D7E9C13>I<07800001C00001E00000E00000E00000
F000007000007000007800003800003800003C00001C00001C00001E00000E00001E0000
3F0000670000C7000187800303800603800E03C01C01C03801C07001E0E000E0C000F014
1D7E9C18>21 D<0180300380700380700380700700E00700E00700E00700E00E01C00E01
C00E01C00E01C01C03881C03881C03881E07883E19903BE0E03800003800007000007000
00700000700000E00000E00000C00000151B7F9119>I<7E00600E00E00E00E00E00E01C
01C01C01C01C03801C0300380700380E00380C0038180070300070600071C000730000FC
0000F0000013127E9115>I<001E0000718000C0C00180C00380C00300E00700E00700E0
0E01C00E01C00E01C00E01801C03801C03001C06001E0C003A180039E000380000380000
700000700000700000700000E00000E00000C00000131B7F9115>26
D<01FFF803FFF80FFFF81E1E00180E00380600700600700600E00E00E00E00E00E00E00C
00E01C00E01800E0300060600030C0001F000015127E9118>I<0FFFE01FFFE03FFFE060
C00040C00080800000800001800001800001800003000003000003000007000007000007
00000E000006000013127E9112>I<60F0F06004047C830C>58 D<60F0F0701010101020
204080040C7C830C>I<0000038000000F0000003C000000F0000003C000000F0000003C
000000F0000003C000000F0000003C000000F0000000F00000003C0000000F00000003C0
000000F00000003C0000000F00000003C0000000F00000003C0000000F00000003801918
7D9520>I<00010003000600060006000C000C000C001800180018003000300030006000
6000C000C000C0018001800180030003000300060006000C000C000C0018001800180030
0030003000600060006000C000C00010297E9E15>II<00000C0000000C0000001C0000001C0000003C
0000005C0000005C0000009E0000008E0000010E0000020E0000020E0000040E0000040E
0000080E0000100E0000100E0000200700003FFF00004007000080070000800700010007
00010007000200070004000700040007001C000780FF803FF01C1D7F9C1F>65
D<01FFFF00003C01C0003800E0003800F0003800700038007000700070007000F0007000
F0007001E000E003C000E0078000E01F0000FFFC0001C00F0001C0078001C003C001C003
C0038003C0038003C0038003C0038003C0070007800700070007000E0007001C000E0078
00FFFFC0001C1C7E9B1F>I<0001F808000E061800380138006000F001C0007003800070
070000300F0000200E0000201C0000203C0000203C000000780000007800000078000000
F0000000F0000000F0000000F0000000F0000100F0000100F00001007000020070000200
30000400380008001C0010000E0060000701800000FE00001D1E7E9C1E>I<01FFFF8000
3C01E000380070003800380038003C0038001C0070001C0070001E0070001E0070001E00
E0001E00E0001E00E0001E00E0001E01C0003C01C0003C01C0003C01C000380380007803
800070038000F0038000E0070001C0070003800700070007001C000E007800FFFFC0001F
1C7E9B22>I<01FFFFF8003C007800380018003800100038001000380010007000100070
0010007008100070080000E0100000E0100000E0300000FFF00001C0200001C0200001C0
200001C02000038040400380004003800080038000800700010007000100070003000700
06000E003E00FFFFFC001D1C7E9B1F>I<01FFFFF0003C00F00038003000380020003800
20003800200070002000700020007008200070080000E0100000E0100000E0300000FFF0
0001C0200001C0200001C0200001C0200003804000038000000380000003800000070000
000700000007000000070000000F000000FFF000001C1C7E9B1B>I<0001F808000E0618
00380138006000F001C0007003800070070000300F0000200E0000201C0000203C000020
3C000000780000007800000078000000F0000000F0000000F0007FF0F0000780F0000700
F0000700F00007007000070070000E0030000E0038000E001C001E000E00640007018400
00FE00001D1E7E9C21>I<01FFC3FF80003C007800003800700000380070000038007000
0038007000007000E000007000E000007000E000007000E00000E001C00000E001C00000
E001C00000FFFFC00001C003800001C003800001C003800001C003800003800700000380
0700000380070000038007000007000E000007000E000007000E000007000E00000F001E
0000FFE1FFC000211C7E9B23>I<01FFC0003C0000380000380000380000380000700000
700000700000700000E00000E00000E00000E00001C00001C00001C00001C00003800003
80000380000380000700000700000700000700000F0000FFE000121C7E9B12>I<001FFC
0001E00001C00001C00001C00001C0000380000380000380000380000700000700000700
000700000E00000E00000E00000E00001C00001C00001C00201C00703800F03800E03000
80700040E0006180001F0000161D7D9B17>I<01FFC07F80003C001E0000380018000038
00200000380040000038008000007002000000700400000070080000007010000000E040
000000E0C0000000E1E0000000E2E0000001C470000001D070000001E038000001C03800
00038038000003801C000003801C000003800E000007000E000007000E00000700070000
07000700000F00078000FFE03FF000211C7E9B23>I<01FFE0003C000038000038000038
0000380000700000700000700000700000E00000E00000E00000E00001C00001C00001C0
0001C00003800203800203800203800407000407000C0700180700380E00F0FFFFF0171C
7E9B1C>I<01FC00FF80001C001C00002E001800002E001000002E001000002700100000
470020000043002000004380200000438020000081C040000081C040000081C040000080
E040000100E0800001007080000100708000010070800002003900000200390000020039
000002001D000004001E000004000E000004000E00000C000E00001C00040000FF800400
00211C7E9B21>78 D<0003F800000E0E000038038000E001C001C001C0038000E0070000
E00F0000F01E0000F01C0000F03C0000F03C0000F0780000F0780000F0780000F0F00001
E0F00001E0F00001E0F00003C0F00003C0F0000780F0000780F0000F0070000E0070001C
00380038003C0070001C01C0000707800001FC00001C1E7E9C20>I<01FFFF00003C03C0
003800E0003800F00038007000380070007000F0007000F0007000F0007000E000E001E0
00E003C000E0070000E01E0001FFF00001C0000001C0000001C000000380000003800000
0380000003800000070000000700000007000000070000000F000000FFE000001C1C7E9B
1B>I<0003F800000E0E000038038000E001C001C001C0038000E0070000E00F0000F01E
0000F01C0000F03C0000F03C0000F0780000F0780000F0780000F0F00001E0F00001E0F0
0001E0F00003C0F00003C0F0000380F0000780F0000F00703C0E0070421C003882380038
8270001C83C0000787810001FF0100000303000003020000038E000003FC000003F80000
01F8000001E0001C257E9C21>I<01FFFE00003C03C0003800E0003800F0003800700038
0070007000F0007000F0007000F0007001E000E001C000E0078000E01E0000FFF00001C0
380001C00C0001C00E0001C00E0003800E0003800E0003800E0003800E0007001E000700
1E0807001E0807001E100F000F10FFE00F20000003C01D1D7E9B20>I<000FC100303300
400F00800601800603000603000606000406000407000007000007800003F00001FF0000
FFC0003FE00003E00000F00000700000300000302000302000306000606000606000C060
0080F00300CC060083F800181E7E9C19>I<1FFFFFF01C03807030070030200700206007
002040070020400E0020800E0020800E0020000E0000001C0000001C0000001C0000001C
0000003800000038000000380000003800000070000000700000007000000070000000E0
000000E0000000E0000000E0000001E000007FFF00001C1C7F9B18>I<7FF03FE00F0007
000E0006000E0004000E0004000E0004001C0008001C0008001C0008001C000800380010
0038001000380010003800100070002000700020007000200070002000E0004000E00040
00E0004000E0008000E0008000E00100006002000060040000300800001830000007C000
001B1D7D9B1C>III89 D<00FFFFE000F001C001C003800180070001000E0001001E0002001C0002
003800020070000000E0000001C0000003800000070000000F0000001E0000001C000000
3800000070020000E0040001C0040003800400070008000F0008000E0018001C00300038
0070007001E000FFFFE0001B1C7E9B1C>I<01E3000717000C0F00180F00380E00300E00
700E00700E00E01C00E01C00E01C00E01C00E03880E03880E038806078803199001E0E00
11127E9116>97 D<3F00070007000E000E000E000E001C001C001C001C0039E03A303C18
38187018701C701C701CE038E038E038E030E070E060E0C061C023001E000E1D7E9C12>
I<01F0030C0C0C1C1E383C301870007000E000E000E000E000E000E0046008601030601F
800F127E9112>I<0007E00000E00000E00001C00001C00001C00001C000038000038000
038000038001E7000717000C0F00180F00380E00300E00700E00700E00E01C00E01C00E0
1C00E01C00E03880E03880E038806078803199001E0E00131D7E9C16>I<01F007080C08
18043808300870307FC0E000E000E000E000E000E0046008601030600F800E127E9113>
I<0038C000C5C00183C00303C00703800603800E03800E03801C07001C07001C07001C07
001C0E001C0E001C0E000C1E00047C00039C00001C00001C00003800603800F03000F070
00E0C0007F0000121A809114>103 D<0FC00001C00001C0000380000380000380000380
000700000700000700000700000E3E000EC3000F03800E03801E03801C03801C03801C03
80380700380700380700380E00700E20700E20701C20701C40E00C80600700131D7E9C18
>I<01C003C003C001800000000000000000000000001C00270047004700870087000E00
0E001C001C001C003800388038807080710032001C000A1C7E9B0E>I<0007000F000F00
060000000000000000000000000078009C010C020C021C041C001C001C00380038003800
38007000700070007000E000E000E000E001C061C0F180F300E6007C001024809B11>I<
0FC00001C00001C0000380000380000380000380000700000700000700000700000E0700
0E08800E11C00E23C01C47801C83001D00001E00003FC00038E000387000387000707100
707100707100707200E03200601C00121D7E9C16>I<1F80038003800700070007000700
0E000E000E000E001C001C001C001C0038003800380038007000700070007000E200E200
E200E40064003800091D7F9C0C>I<381F81F04E20C6184640E81C4680F01C8F00F01C8E
00E01C0E00E01C0E00E01C1C01C0381C01C0381C01C0381C01C070380380713803807138
0380E1380380E2700700643003003820127E9124>I<3C1F004E61804681C04701C08F01
C08E01C00E01C00E01C01C03801C03801C03801C0700380710380710380E10380E207006
4030038014127E9119>I<00F800030C000E06001C0300180300300300700380700380E0
0700E00700E00700E00E00E00E00E01C0060180060300030E0000F800011127E9114>I<
07878009C86008D03008E03011C03011C03801C03801C038038070038070038070038060
0700E00700C00701800783000E86000E78000E00000E00001C00001C00001C00001C0000
3C0000FF0000151A819115>I<01C206260C1E181E381C301C701C701CE038E038E038E0
38E070E070E07060F023E01CE000E000E001C001C001C001C003801FF00F1A7E9113>I<
3C3C4E424687470F8E1E8E0C0E000E001C001C001C001C00380038003800380070003000
10127E9113>I<01F0060C0C040C0E180C1C001F000FE00FF003F80038201C7018F018F0
10803060601F800F127E9113>I<00C001C001C001C00380038003800380FFF007000700
07000E000E000E000E001C001C001C001C00382038203840384018800F000C1A80990F>
I<1C00C02701C04701C04701C08703808703800E03800E03801C07001C07001C07001C07
00180E20180E20180E201C1E200C264007C38013127E9118>I<1C032707470747038701
87010E010E011C021C021C021C041804180818081C100C2007C010127E9114>I<1C00C0
802701C1C04701C1C04701C0C087038040870380400E0380400E0380401C0700801C0700
801C0700801C07010018060100180601001C0E02001C0F04000E13080003E1F0001A127E
911E>I<07878008C84010F0C020F1E020E3C040E18000E00000E00001C00001C00001C0
0001C000638080F38080F38100E5810084C60078780013127E9118>I<1C00C02701C047
01C04701C08703808703800E03800E03801C07001C07001C07001C0700180E00180E0018
0E001C1E000C3C0007DC00001C00001800603800F03000F06000E0C0004180003E000012
1A7E9114>I<038107C10FF6081C10080010002000400080010002000400080410043C18
67F843F081E010127E9113>I E /Fq 14 115 df<02040818103020604040C0C0C0C0C0
C0C0C0C0C040406020301018080402071E7D950D>40 D<804020301018080C0404060606
0606060606060604040C08181030204080071E7E950D>I<006000006000006000006000
006000006000006000006000006000006000FFFFF0FFFFF0006000006000006000006000
00600000600000600000600000600000600014167E9119>43 D<0F0030C0606060604020
C030C030C030C030C030C030C030C030C03040206060606030C00F000C137E9211>48
D<0C001C00EC000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C
00FFC00A137D9211>I<1F0060C06060F070F030603000700070006000C001C001800200
04000810101020207FE0FFE00C137E9211>I<0FC030707038703870380038003000E00F
C0007000380018001C601CF01CF018E03860701FC00E137F9211>I<006000E000E00160
026006600C600860106020606060C060FFFC0060006000600060006003FC0E137F9211>
I<60607FC07F8044004000400040004F0070C040E0006000700070E070E070E06040E021
C01F000C137E9211>I<07C00C201070207060006000C000CF00D0C0E060C020C030C030
C03040306020206010C00F000C137E9211>I<40007FFC7FF84010803080200040008001
00010003000200060006000E000E000E000E000E0004000E147E9311>I<0FC010702018
6018601870183C303F600F800FE031F06078C01CC00CC00CC00C601830300FC00E137F92
11>I<7FFFE0FFFFF0000000000000000000000000000000000000FFFFF07FFFE0140A7E
8B19>61 D114 D E /Fr 24 113 df0 D<60F0F06004047C8B0C
>I<400020C000606000C03001801803000C0600060C0003180001B00000E00000E00001
B000031800060C000C06001803003001806000C0C0006040002013147A9320>I<000400
000006000000060000000600000006000000060000000600000006000000060000000600
00000600000006000000060000FFFFFFE0FFFFFFE0000600000006000000060000000600
0000060000000600000006000000060000000600000006000000060000FFFFFFE0FFFFFF
E01B1C7E9A20>6 D17 D<000001800000078000001E
00000078000001E00000078000001E00000078000001E00000078000001E000000780000
00E0000000780000001E0000000780000001E0000000780000001E0000000780000001E0
000000780000001E00000007800000018000000000000000000000000000000000000000
0000000000000000007FFFFF00FFFFFF8019227D9920>20 DI<0F8000201FE000203FF80020
707C0060E01F00E0C007C1C08003FF808000FF0080003E00000000000F8000201FE00020
3FF80020707C0060E01F00E0C007C1C08003FF808000FF0080003E001B137E9320>25
D<000003001800000F007800001C00E000007003800001E00F000003801C00000E007000
003C01E000007003800001C00E000007803C00000E007000003801C00000F007800000F0
078000003801C000000E0070000007803C000001C00E00000070038000003C01E000000E
0070000003801C000001E00F00000070038000001C00E000000F00780000030018251C7E
972A>28 DI<00C00060000180003000018000300001800030000300001800030000
18000600000C000C000006001C000007003000000180FFFFFFFFF0FFFFFFFFF030000001
801C000007000C000006000600000C000300001800030000180001800030000180003000
018000300000C000600024167D942A>36 D<007FF801FFF80780000E0000180000300000
300000600000600000C00000C00000C00000FFFFF8FFFFF8C00000C00000C00000600000
6000003000003000001800000E000007800001FFF8007FF8151A7D961C>50
D<0000600000600000C00000C0000180000180000180000300000300000600000600000C
00000C0000180000180000180000300000300000600000600000C00000C0000180000180
000300000300000300000600000600000C00000C00001800001800003000003000003000
00600000600000C0000040000013287A9D00>54 D<400004C0000C600018600018600018
3000303000303000301800601800601FFFE00FFFC00C00C00C00C0060180060180030300
03030003030001860001860001860000CC0000CC0000CC00007800007800007800003000
003000161E809C17>56 D<0004000C03CC0C381818301C303C703E603660666066E067E0
67E0C7E0C7E0C7E187E187E187E307E307E307E607E607E60766066C067C0E3C0C380C18
181C3033C03000300010237E9F15>59 D<000078001E03BC0023041C0041881E0080D00E
0080F00F0080600700C060038060700380307001C0187001C0087000E0047000C0047007
00047FF800047070008C7070008870700088707000707070000070700000707000007070
00007070000060700060607000C0E0700040C0704020C0718011803A000F001C001B1F7E
9D1E>I<000C1F8000107FE0002087F000C381F0018700F0030600F8060E00F80E1C0078
1C1C00781C3800783820007838000078780000787000007070000070F00000F0F00000E0
F00000E0F00001E0F00001C0F0000180F8000380F8000700780006007C000C007E001000
3F0020001FC1C0000FFF000003F800001D1E7E9C21>79 D<4000C000C000C000C000C000
C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000
C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000FF807F80
092A7A9E12>98 D<00800180018001800180018001800180018001800180018001800180
018001800180018001800180018001800180018001800180018001800180018001800180
01800180018001800180018001800180FF80FF80092A7E9E12>I<003C00E001C0018003
80038003800380038003800380038003800380038003800380030007001C00F0001C0007
0003000380038003800380038003800380038003800380038003800380018001C000E000
3C0E297D9E15>102 DI106 D<4020C030C030C030C030C030C030C030C030C030C030C030C030C030C030C0
30C030C030C030C030C030C030C030C030C030C030C030C030C030C030C030C030C030C0
30C030C030C030C030C030C030C03040200C2A7C9E15>I<000000004000000000C00000
000180000000018000000003000000000300000000060000000006000000000C00000000
0C00000000180000000018000000003000000000300000000060000000006000000000C0
00000000C0000000018000000001800000000300000C000300003C000600004E00060000
8E000C000007000C0000070018000003801800000380300000038030000001C060000001
C060000000E0C0000000E0C0000000718000000071800000003B000000003B000000001E
000000001E000000000C000000000C000000222A7E8123>112 D
E /Fs 73 123 df<0001F03C00071C47000C1CC7000C19C6001C0180001C038000180380
0038038000380380003807000038070003FFFFF000700700007007000070070000700E00
00700E0000E00E0000E00E0000E00E0000E01C0000E01C0001C01C0001C01C0001C01C00
01C0380001C03800038038000380380003803000030070000300700007006000C630E000
E638C000CC318000781E00002025819C19>11 D<0000FE000003018000060180000C0380
001C0180001C0000001800000038000000380000003800000038000003FFFE0000700E00
00700E0000700E0000701C0000701C0000E01C0000E01C0000E0380000E0380000E03800
01C0380001C0720001C0720001C0720001C0720003803400038018000380000003000000
0300000007000000C6000000E6000000CC000000780000001925819C17>I<0001FEE000
0707E0000E07E0000C07C0001C01C0001C01C0001801C000380380003803800038038000
38038003FFFF0000700700007007000070070000700E0000700E0000E00E0000E00E0000
E01C0000E01C0000E01C0001C01C0001C0390001C0390001C0390001C0390003801A0003
800C0003800000030000000300000007000000C6000000E6000000CC000000780000001B
25819C18>I<0000FE0FF0000307380C000607700C000E06601C001C00E00C001C00C000
001C01C000001C01C000003801C000003801C000003803800003FFFFFFF0003803807000
70038070007003807000700700E000700700E000700700E000E00700E000E00701C000E0
0701C000E00E01C000E00E01C001C00E038801C00E038801C00E038801C01C039001C01C
019001801C00E003801C0000038038000003003800000300300000C730300000E6386000
00CC30C00000781F0000002625819C25>I<183C3C3C0404080810204080060C779C0D>
39 D<00030006000800180030006000C000C0018003000300060006000C000C001C0018
001800380030003000700070006000600060006000E000E000E000E000E0006000600060
006000600020003000100008000800102A7B9E11>I<001000100008000C000400060006
000600060006000700070007000700070006000600060006000E000E000C000C001C0018
00180038003000300060006000C000C001800300030006000C00180010006000C000102A
809E11>I<183878380808101020404080050C7D830D>44 D
I<3078F06005047C830D>I<00000200000600000600000C00000C000018000030000030
0000600000600000C00000C0000180000180000300000600000600000C00000C00001800
00180000300000300000600000C00000C0000180000180000300000300000600000C0000
0C0000180000180000300000300000600000600000C0000080000017297F9E15>I<003E
0000E1800181C00300C00700C00600C00E00E00C00E01C00C01C00C01801C03801C03801
C03801C0700380700380700380700380600700E00700E00600E00E00E00E00E00C00E018
0060380060700030C0001F0000131D7C9B15>I<0004000C00180038007807B800700070
0070007000E000E000E000E001C001C001C001C003800380038003800700070007000700
0F00FFF00E1C7B9B15>I<003E000041800080C00100C00200E00440E00440E00840E008
40E00840E01081C01081C01103800E0300000600000C0000180000600000800003000004
00000800401000802000802001007F070043FE0081FC00807800131D7D9B15>I<001F00
0060C00080C00100600200600240600440E00440E00440E00481C00301C0000380000700
00FC00001C00000600000600000700000700000700000700700700E00E00800E00801C00
40180040300020E0001F8000131D7D9B15>I<0001800001C00003800003800003800003
00000700000700000600000E00000C00001C000018000018000030000030000060000040
0000C600018E00010E00020E00061C000C1C00181C003F1C0040F800803F800038000038
0000700000700000700000700000E00000600012247E9B15>I<00806001FFC001FF8001
FE0001000002000002000002000002000004000004F800050C000606000C060008060000
0600000700000600000E00000E00700E00700C00E01C0080180080380040300040600021
C0001F0000131D7C9B15>I<000F8000386000602000C0E00180E00300000600000E0000
0C00001C00001CF8003904003A06003C0300780300780300700380700300600700E00700
E00700E00600E00E00E00C00601C0060180020300030C0000F8000131D7C9B15>I<001F
000060C000C0600180600300300300300600600700600700C00780C003C10003E60001FC
0000780001BC00061E000C0F00180700300380200380600180600180C00300C00300C006
006004006008003830000FC000141D7D9B15>56 D<003E0000E1000181800300C00600C0
0E00C00C00C01C00C01C00C01C01C03801C03801C03801C03803C0180380180780080B80
0C330003C700000700000E00000C00001C00001800E03000E0600080C000C180003E0000
121D7C9B15>I<060F0F06000000000000000000003078F06008127C910D>I<0FFFFFE01F
FFFFF00000000000000000000000000000000000000000000000000000000000000000FF
FFFF807FFFFF001C0C7C8F20>61 D<000018000000180000003800000038000000780000
0078000000B800000138000001380000023C0000021C0000041C00000C1C0000081C0000
101C0000101C0000201C0000201C00007FFC0000C01C0000801C0001001C0001001E0002
000E0002000E0004000E000C000E001C001E00FF00FFC01A1D7E9C1F>65
D<01FFFF00003C0380003801C0003800E0003800E0003800E0007000E0007001E0007001
E0007003C000E0038000E00F0000E01E0000FFFC0001C00E0001C0070001C0078001C007
800380078003800780038007800380078007000F0007000E0007001E0007003C000E00F0
00FFFFC0001B1C7E9B1D>I<0003F020001E0C60003002E000E003C001C001C0038001C0
070000C00E0000801E0000801C0000803C0000803C000000780000007800000078000000
F0000000F0000000F0000000F0000000F0000400F0000400F0000400F000080070000800
7000100038002000180040000C0180000706000001F800001B1E7A9C1E>I<01FFFF0000
3C03C0003800E0003800E000380070003800700070007800700038007000380070007800
E0007800E0007800E0007800E0007801C000F001C000F001C000F001C000E0038001E003
8001C0038003C0038003800700070007000E0007001C00070038000E00E000FFFF80001D
1C7E9B1F>I<01FFFFF0003C00F000380030003800200038002000380020007000200070
0020007008200070080000E0100000E0100000E0300000FFF00001C0200001C0200001C0
200001C02000038040800380008003800080038001000700010007000300070002000700
06000E003C00FFFFFC001C1C7E9B1C>I<01FFFFF0003C00F00038003000380020003800
20003800200070002000700020007008200070080000E0100000E0100000E0300000FFF0
0001C0200001C0200001C0200001C0200003804000038000000380000003800000070000
000700000007000000070000000F000000FFF000001C1C7E9B1B>I<0003F020001E0C60
003002E000E003C001C001C0038001C0070000C00E0000801E0000801C0000803C000080
3C000000780000007800000078000000F0000000F0000000F001FF80F0001E00F0001C00
F0001C00F0001C00F0001C00700038007000380038003800180078000C00900007071000
01F800001B1E7A9C20>I<01FFC3FF80003C007800003800700000380070000038007000
0038007000007000E000007000E000007000E000007000E00000E001C00000E001C00000
E001C00000FFFFC00001C003800001C003800001C003800001C003800003800700000380
0700000380070000038007000007000E000007000E000007000E000007000E00000F001E
0000FFE1FFC000211C7E9B1F>I<03FF0078007000700070007000E000E000E000E001C0
01C001C001C0038003800380038007000700070007000E000E000E000E001E00FFC0101C
7D9B10>I<003FF80003C000038000038000038000038000070000070000070000070000
0E00000E00000E00000E00001C00001C00001C00001C0000380000380000380000380060
7000E07000C0600080E00081C0004380003E0000151D7C9B16>I<01FFC07F80003C001E
000038001800003800200000380040000038008000007002000000700400000070080000
007010000000E040000000E0C0000000E1C0000000E2E0000001C4E0000001D070000001
E070000001C070000003803800000380380000038018000003801C000007001C00000700
0E000007000E000007000E00000F000F0000FFE07FC000211C7E9B20>I<01FFC0003C00
00380000380000380000380000700000700000700000700000E00000E00000E00000E000
01C00001C00001C00001C00003800203800203800203800407000407000C070018070038
0E00F0FFFFF0171C7E9B1A>I<01FE0001FE003E0001E0002E0003C0002E0005C0002E00
05C0002E0009C0004E000B80004E001380004E0023800047002380008700470000870047
00008700870000870107000107010E000107020E000107040E000107040E000207081C00
0203881C000203901C000203A01C000403A038000403C038000403C038000C038038001C
03007800FF8307FF00271C7E9B25>I<01FC00FF80001C001C00002E001800002E001000
002E001000002700100000470020000043002000004380200000438020000081C0400000
81C040000081C040000080E040000100E080000100708000010070800001007080000200
3900000200390000020039000002001D000004001E000004000E000004000E00000C000E
00001C00040000FF80040000211C7E9B1F>I<0007F000001C1C0000700E0000E0070001
C0038003800380070003800E0003C01E0003C01C0003C03C0003C03C0003C0780003C078
0003C0780003C0F0000780F0000780F0000780F0000F00F0000F00F0000E00F0001E00F0
003C0070003800700070007800E0003801C0001C0380000E0E000003F800001A1E7A9C20
>I<01FFFE00003C0380003801C0003800E0003800E0003800E0007001E0007001E00070
01E0007001C000E003C000E0038000E0070000E01C0001FFF00001C0000001C0000001C0
000003800000038000000380000003800000070000000700000007000000070000000F00
0000FFE000001B1C7E9B1C>I<0007F000001C1C0000700E0000E0070001C00780038003
80070003800E0003C01E0003C01C0003C03C0003C03C0003C0780003C0780003C0780003
C0F0000780F0000780F0000780F0000F00F0000F00F0000E00F0001E00F0001C00707838
00708070007104E0003905C0001D0780000F0E040003FC040000040C0000060800000E18
00000FF0000007F0000007E000000380001A257A9C20>I<01FFFE00003C0780003801C0
003801E0003800E0003800E0007001E0007001E0007001E0007003C000E0038000E00700
00E01C0000FFE00001C0300001C0180001C01C0001C01C0003801C0003801C0003801C00
03801C0007003C0007003C2007003C2007003C200F003C40FFE01E8000000F001B1D7E9B
1E>I<000F8400304C00403C008018010018030018030018060010060010060000070000
07000003E00003FC0001FF00007F800007C00001C00001C00000C00000C02000C02000C0
600180600180600300600200F00400CC180083E000161E7D9C17>I<1FFFFFC01C0701C0
300E00C0200E0080600E0080400E0080401C0080801C0080801C0080001C000000380000
0038000000380000003800000070000000700000007000000070000000E0000000E00000
00E0000000E0000001C0000001C0000001C0000001C0000003C000007FFE00001A1C799B
1E>I<7FF03FE00F0007000E0006000E0004000E0004000E0004001C0008001C0008001C
0008001C0008003800100038001000380010003800100070002000700020007000200070
002000E0004000E0004000E0004000E0008000E0008000E0010000600200006004000030
0800001830000007C000001B1D789B1F>II<01FF81
FE003E0078001C0060001C00C0001E0080000E0100000F02000007040000070800000790
000003A0000003E0000001C0000001C0000001E0000002E0000004E0000008F000001070
00002070000060380000C0380000803C0001001C0002001C0006001E001E001E00FF007F
C01F1C7E9B1F>88 DI<01FFFF8001E0070003800E0003001E00
02001C0002003800040070000400E0000401C0000001C0000003800000070000000E0000
001C0000001C0000003800000070000000E0080001C0100001C010000380100007002000
0E0020001C0060003C00C0003801C00070078000FFFF8000191C7D9B19>I<01E307170C
0F180F380E300E700E700EE01CE01CE01CE01CE039E039E0396079319A1E0C10127C9115
>97 D<3F00070007000E000E000E000E001C001C001C001C0039E03A183C0C380C700C70
0E700E700EE01CE01CE01CE018E038E030E06060C031801E000F1D7C9C13>I<00F80304
0E041C0E181C300070007000E000E000E000E000E000E0046008601030600F800F127C91
13>I<0007E00000E00000E00001C00001C00001C00001C0000380000380000380000380
01E7000717000C0F00180F00380E00300E00700E00700E00E01C00E01C00E01C00E01C00
E03900E03900E03900607900319A001E0C00131D7C9C15>I<00F807040C041802380430
0470087FF0E000E000E000E000E00060046008301030600F800F127C9113>I<0003C000
0670000C70001C60001C00001C0000380000380000380000380000380003FF8000700000
700000700000700000700000E00000E00000E00000E00000E00001C00001C00001C00001
C00001C000038000038000038000030000030000070000C60000E60000CC000078000014
25819C0D>I<0078C001C5C00303C00603C00E03800C03801C03801C0380380700380700
380700380700380E00380E00380E00181E000C7C00079C00001C00001C00003800003800
C03000E07000C1C0007F0000121A7E9113>I<0FC00001C00001C0000380000380000380
000380000700000700000700000700000E3E000EC3000F03800E03801E03801C03801C03
801C0380380700380700380700380E00700E40700E40701C40701C80E00C80600700121D
7E9C15>I<01800380010000000000000000000000000000001C002600470047008E008E
000E001C001C001C0038003800710071007100720072003C00091C7C9B0D>I<00030007
000300000000000000000000000000000078008C010C020C021C041C001C001C00380038
00380038007000700070007000E000E000E000E001C001C0C180E300C60078001024819B
0D>I<0FC00001C00001C000038000038000038000038000070000070000070000070000
0E07800E08800E11C00E21C01C41801C80001D00001E00003FC00038E000387000387000
707100707100707100707200E03200601C00121D7E9C13>I<1F80038003800700070007
0007000E000E000E000E001C001C001C001C0038003800380038007000700070007000E2
00E200E200E40064003800091D7D9C0B>I<1C1E0780266318C04683A0E04703C0E08E03
80E08E0380E00E0380E00E0380E01C0701C01C0701C01C0701C01C070380380E0388380E
0388380E0708380E0710701C0320300C01C01D127C9122>I<383E004CC3004D03804E03
809E03809C03801C03801C0380380700380700380700380E00700E40700E40701C40701C
80E00C8060070012127C9117>I<00F800030C000E06001C030018030030030070038070
0380E00700E00700E00700E00E00E00E00E01C0060180060300030E0000F800011127C91
15>I<03878004C86004D03004E03009C03009C03801C03801C038038070038070038070
0380600700E00700C00701800783000E86000E78000E00000E00001C00001C00001C0000
1C0000380000FF0000151A809115>I<01E107130C0F180F380E300E700E700EE01CE01C
E01CE01CE038E038E038607831F01E700070007000E000E000E000E001C00FF8101A7C91
13>I<1C3C2642468747078E068E000E000E001C001C001C001C00380038003800380070
00300010127C9112>I<01F006080C080C1C18181C001F001FC00FF007F0007800386030
E030C030806060C01F000E127D9111>I<03000700070007000E000E000E000E00FFE01C
001C001C0038003800380038007000700070007000E080E080E100E100660038000B1A7C
990E>I<1C01802E03804E03804E03808E07008E07001C07001C0700380E00380E00380E
00380E00301C80301C80301C80383C80184D000F860011127C9116>I<1C062E0E4E064E
068E028E021C021C023804380438043808300830083010382018400F800F127C9113>I<
1E01832703874703874703838707018707010E07010E07011C0E021C0E021C0E021C0E04
180C04181C04181C081C1E080C263007C3C018127C911C>I<0387800CC8400870E01070
E020E0C020E00000E00000E00001C00001C00001C00001C000038100638100E38200C582
0085840078780013127E9113>I<1C01802E03804E03804E03808E07008E07001C07001C
0700380E00380E00380E00380E00301C00301C00301C00383C001878000FB80000380000
3000007000E06000E0C0008180004300003C0000111A7C9114>I<01C107E10FF6081C10
080010002000400080010002000400080410042C0C73F841F080E010127E9111>I
E /Ft 51 123 df<003FFC0001F07C0003C07C0007C07C000F807C000F807C000F807C00
0F807C000F807C000F807C000F807C00FFFFFC00FFFFFC000F807C000F807C000F807C00
0F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C00
0F807C000F807C007FF3FF807FF3FF80191D809C1B>13 D45 D<78FCFCFCFC7806067D850D>I<00600001E0000FE000FFE000F3E00003E00003
E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003
E00003E00003E00003E00003E00003E00003E0007FFF807FFF80111B7D9A18>49
D<07F8001FFE00383F80780FC0FC07C0FC07E0FC03E0FC03E07803E00007E00007C00007
C0000F80001F00001E0000380000700000E0000180600300600600600800E01FFFC03FFF
C07FFFC0FFFFC0FFFFC0131B7E9A18>I<07F8001FFE003C1F003C0F807C07C07E07C07C
07C03807C0000F80000F80001E00003C0003F800001E00000F800007C00007C00007E030
07E07807E0FC07E0FC07E0FC07C0780F80781F001FFE0007F800131B7E9A18>I<000180
000380000780000F80001F80003F80006F8000CF80008F80018F80030F80060F800C0F80
180F80300F80600F80C00F80FFFFF8FFFFF8000F80000F80000F80000F80000F80000F80
00FFF800FFF8151B7F9A18>I<3801803FFF003FFE003FFC003FF8003FC0003000003000
0030000030000031F800361E00380F803007800007C00007E00007E00007E07807E0F807
E0F807E0F807C0F007C0600F80381F001FFE0007F000131B7E9A18>I<007E0003FF0007
81800F03C01E07C03C07C07C0380780000780000F80000F8F800FB0E00FA0780FC0380FC
03C0F803E0F803E0F803E0F803E07803E07803E07803C03C03C03C07801E0F0007FE0003
F800131B7E9A18>I<6000007FFFE07FFFE07FFFC07FFF807FFF80E00300C00600C00C00
C0180000300000300000600000E00000E00001E00001C00003C00003C00003C00003C000
07C00007C00007C00007C00007C00007C000038000131C7D9B18>I<0003800000038000
0007C0000007C0000007C000000FE000000FE000001FF000001BF000003BF8000031F800
0031F8000060FC000060FC0000E0FE0000C07E0000C07E0001803F0001FFFF0003FFFF80
03001F8007001FC006000FC006000FC00C0007E00C0007E0FF803FFEFF803FFE1F1C7E9B
24>65 DI<001FE02000FFF8E003F80FE007C003E00F8001E01F
0000E03E0000E03E0000607E0000607C000060FC000000FC000000FC000000FC000000FC
000000FC000000FC000000FC0000007C0000607E0000603E0000603E0000C01F0000C00F
80018007C0030003F80E0000FFFC00001FE0001B1C7D9B22>I
III73 D75 DII<003FE00001F07C0003C01E000F800F801F0007C01E0003C03E0003E07E0003
F07C0001F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001
F8FC0001F87C0001F07E0003F07E0003F03E0003E03F0007E01F0007C00F800F8003C01E
0001F07C00003FE0001D1C7D9B24>79 DI82
D<07F8201FFEE03C07E07801E07000E0F000E0F00060F00060F80000FE0000FFE0007FFE
003FFF003FFF800FFFC007FFE0007FE00003F00001F00000F0C000F0C000F0C000E0E000
E0F001C0FC03C0EFFF0083FC00141C7D9B1B>I<7FFFFFE07FFFFFE0781F81E0701F80E0
601F8060E01F8070C01F8030C01F8030C01F8030C01F8030001F8000001F8000001F8000
001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000
001F8000001F8000001F8000001F800007FFFE0007FFFE001C1C7E9B21>I86
D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07
C0F807C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 DI<03FC000E0E001C1F003C1F00781F00780E00F80000F800
00F80000F80000F80000F800007800007801803C01801C03000E0E0003F80011127E9115
>I<000FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F001
F9F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F078
01F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<03FC000F07001C03803C01C0
7801C07801E0F801E0F801E0FFFFE0F80000F80000F800007800007800603C00601E00C0
0F038001FC0013127F9116>I<007F0001E38003C7C00787C00F87C00F83800F80000F80
000F80000F80000F8000FFF800FFF8000F80000F80000F80000F80000F80000F80000F80
000F80000F80000F80000F80000F80000F80000F80007FF0007FF000121D809C0F>I<03
F0F00E1F383C0F383807307807807807807807807807803807003C0F001E1C0033F00030
00003000003000003FFF003FFFC01FFFE01FFFF07801F8F00078F00078F0007870007078
00F01E03C007FF00151B7F9118>I
I<1E003F003F003F003F001E000000000000000000000000007F007F001F001F001F001F
001F001F001F001F001F001F001F001F001F001F00FFC0FFC00A1E7F9D0E>I107 DIII<01FC000F07801C01C0
3C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E0
1E03C00F078001FC0015127F9118>II<03F0600F0CE01E
07E03C03E07C03E07803E0F803E0F803E0F803E0F803E0F803E0F803E07803E07C03E03C
03E01C07E00E0FE003F3E00003E00003E00003E00003E00003E00003E0001FFC001FFC16
1A7E9119>II<1FD8307860
18E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113
>I<0300030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F001F00
1F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>IIIIII<7FFF80781F00703F00603E00607C0060FC0060F80001F000
03F00007E00007C1800F81801F81801F03803E03007E07007C0F00FFFF0011127F9115>
I E /Fu 8 122 df0 D<040004000400C460F5E03F800E00
3F80F5E0C4600400040004000B0D7E8D11>3 D<00001000000018000000180000000C00
00000C000000060000000300FFFFFFE0FFFFFFE0000003000000060000000C0000000C00
0000180000001800000010001B107E8E21>33 D<0F001E003BC061806060804040310040
801A0020800E0020800E0020800E0020800B0020401180404020C0C030C07B800F001E00
1B0D7E8C21>49 D<03FC0FFC1C003000600060006000C000C000FFFCFFFCC000C0006000
6000600030001C000FFC03FC0E147D9016>I<00400000C00000C00000C00000C00000C0
0000C00000C00000C00000C00000C00000C00000C00000C00000C00000C00000C00000C0
00FFFFE0FFFFE013147D931A>63 D<0F00603F807047C01803C00801E00801E00800E010
00E01000F01000F020007060007040007080007180007300007600007C00007800007000
80600080C000C380007F00003C000015187F9316>89 D<0C000C000C000C000C000C00FF
C0FFC00C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C
000C000A1A7E9310>121 D E /Fv 89 128 df<00030000000300000007800000078000
000FC000000BC0000013E0000011E0000021F0000020F0000040F8000040780000807C00
00803C0001003E0001001E0002001F0002000F0004000F8004000780080007C0080003C0
100001E0300001F0200000F0600000F87FFFFFF8FFFFFFFCFFFFFFFC1E1D7E9C23>1
D6 D<03FFF000003F0000001E0000001E0000001E000000FF80
00039EE0000E1E38001C1E1C00381E0E00781E0F00F01E0780F01E0780F01E0780F01E07
80F01E0780F01E0780781E0F00381E0E001C1E1C000E1E3800039EE00000FF8000001E00
00001E0000001E0000003F000003FFF000191C7E9B1E>8 D<007E1F0001C1B1800303E3
C00703C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC
000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0
000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D80
9C18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E
0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C0
0703C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C0
0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C07FCFF8151D809C17>I<003F07E00001C09C18000380F018000701F03C000E01E0
3C000E00E018000E00E000000E00E000000E00E000000E00E000000E00E00000FFFFFFFC
000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C00
0E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E
00E01C000E00E01C007FC7FCFF80211D809C23>I22
D<0F0000C0188000C030600380703807006027FB00E0100600E0100C00E0100C00E01018
00E0101800E0103000E0106000602060007020C00030418000188180000F0303C0000606
2000060C10000C1C08001818080018380400303804006038040060380400C0380400C038
04018038040300180803001C0806000C100C000620040003C01E217E9E23>37
D<60F0F8680808081010204080050C7C9C0C>39 D<00800100020006000C000C00180018
003000300030006000600060006000E000E000E000E000E000E000E000E000E000E000E0
00E0006000600060006000300030003000180018000C000C000600020001000080092A7C
9E10>I<8000400020003000180018000C000C0006000600060003000300030003000380
038003800380038003800380038003800380038003800300030003000300060006000600
0C000C00180018003000200040008000092A7E9E10>I<00060000000600000006000000
060000000600000006000000060000000600000006000000060000000600000006000000
060000FFFFFFE0FFFFFFE000060000000600000006000000060000000600000006000000
0600000006000000060000000600000006000000060000000600001B1C7E9720>43
D<60F0F0701010101020204080040C7C830C>II<60F0F0600404
7C830C>I<00010003000600060006000C000C000C001800180018003000300030006000
6000C000C000C0018001800180030003000300060006000C000C000C0018001800180030
0030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E6006
6006E007E007E007E007E007E007E007E007E007E007E007E007E00760066006700E300C
300C18180C3007E0101D7E9B15>I<010007003F00C70007000700070007000700070007
000700070007000700070007000700070007000700070007000700070007000700FFF80D
1C7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C
00380070006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<07E018
30201C201C781E780E781E381E001C001C00180030006007C00030001C001C000E000F00
0F700FF80FF80FF80FF00E401C201C183007C0101D7E9B15>I<000C00000C00001C0000
3C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C00101C0030
1C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C00001C0001
FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E02C30301830
1C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B15
>I<00F0030C04040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007
E007E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF
807FFF007FFF0040020080040080040080080000100000100000200000600000400000C0
0000C00001C0000180000180000380000380000380000380000780000780000780000780
00078000078000030000111D7E9B15>I<03E00C301008200C200660066006700670067C
0C3E183FB01FE007F007F818FC307E601E600FC007C003C003C003C00360026004300C1C
1007E0101D7E9B15>I<03C00C301818300C700C600EE006E006E007E007E007E007E007
6007700F300F18170C2707C700060006000E300C780C78187018203010C00F80101D7E9B
15>I<60F0F0600000000000000000000060F0F06004127C910C>I<60F0F0600000000000
000000000060F0F0701010101020204080041A7C910C>I<7FFFFFC0FFFFFFE000000000
00000000000000000000000000000000000000000000000000000000FFFFFFE07FFFFFC0
1B0C7E8F20>61 D<003F800000C0600003001800040004000800020010000100201F0080
2070808040E0404040C0384041C038408180382083803820838038208380382083803820
838038208180382041C0382040C0384040E0784020709880201F0F001000000008000000
04000000030001E000C01F80003FF0001B1D7E9C20>64 D<000600000006000000060000
000F0000000F0000000F000000178000001780000037C0000023C0000023C0000043E000
0041E0000041E0000080F0000080F0000080F000010078000100780001FFF80002003C00
02003C0002003C0004001E0004001E000C001F000C000F001E001F00FF00FFF01C1D7F9C
1F>II<001F808000E0618001801980070007800E0003801C00
03801C00018038000180780000807800008070000080F0000000F0000000F0000000F000
0000F0000000F0000000F0000000F0000000700000807800008078000080380000801C00
01001C0001000E000200070004000180080000E03000001FC000191E7E9C1E>IIII<001F808000E0618001801980070007800E0003801C0003801C00
018038000180780000807800008070000080F0000000F0000000F0000000F0000000F000
0000F0000000F000FFF0F0000F80700007807800078078000780380007801C0007801C00
07800E00078007000B800180118000E06080001F80001C1E7E9C21>III<07FF80007C
00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C
00003C00003C00003C00003C00003C00003C00003C00703C00F83C00F83C00F838007078
0040700030E0000F8000111D7F9B15>IIIII<003F800000E0E000038038
0007001C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001
E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003
C0780003C0380003803C0007801C0007000E000E0007001C000380380000E0E000003F80
001B1E7E9C20>II<003F800000E0E00003
80380007001C000E000E001C0007003C00078038000380780003C0780003C0700001C0F0
0001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C078
0003C0780003C0380003803C0E07801C1107000E208E0007205C0003A0780000F0E02000
3FE0200000602000003060000038E000003FC000003FC000001F8000000F001B257E9C20
>II<07E0801C1980300580300380600180E00180E0
0080E00080E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F8000
07C00003C00001C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F80012
1E7E9C17>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F
0020800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000001F800003FFFC001B1C7F9B1E>IIIIII91 D93
D<0C0012002100408080400A057B9B15>I<1FC000307000783800781C00301C00001C00
001C0001FC000F1C00381C00701C00601C00E01C40E01C40E01C40603C40304E801F8700
12127E9115>97 DI<03F80C0C181E
301E700C6000E000E000E000E000E000E00060007002300218040C1803E00F127F9112>
I<001F8000038000038000038000038000038000038000038000038000038000038003F3
800E0B80180780300380700380600380E00380E00380E00380E00380E00380E003806003
807003803003801807800E1B8003E3F0141D7F9C17>I<07E00C301818300C700E6006E0
06FFFEE000E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E
061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E007FE00F1D809C0D>I<00038007C4C01C78C038388030
1800701C00701C00701C00701C003018003838001C700027C0002000002000003000003F
F8001FFF001FFF802003806001C0C000C0C000C0C000C06001803003001C0E0007F80012
1C7F9215>II<18003C003C001800
0000000000000000000000000000FC001C001C001C001C001C001C001C001C001C001C00
1C001C001C001C001C001C00FF80091D7F9C0C>I<00C001E001E000C000000000000000
0000000000000007E000E000E000E000E000E000E000E000E000E000E000E000E000E000
E000E000E000E000E000E000E060E0F0C0F1C061803E000B25839C0D>IIIII<03F0000E1C0018060030030070
0380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E
1C0003F00012127F9115>II<03E0800E19801805803807
80700380700380E00380E00380E00380E00380E00380E003807003807003803807801807
800E1B8003E380000380000380000380000380000380000380000380001FF0141A7F9116
>II<1F9020704030C010C010E010F8007F803FE00FF000F880388018C0
18C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C00
1C001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F99
10>IIIIII<7FFC70386038407040F0
40E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>III<1C043F0843F080E00E047D9B15>126
D<6060F0F0F0F060600C047C9C15>I E /Fw 15 87 df<000070000000007000000000F8
00000000F800000000F800000001FC00000001FC00000003FE00000003FE00000003FE00
0000067F000000067F0000000C7F8000000C3F8000000C3F800000181FC00000181FC000
00301FE00000300FE00000700FF000006007F000006007F00000C007F80000FFFFF80001
FFFFFC00018001FC00018001FC00030001FE00030000FE00070000FF000600007F000600
007F00FFE007FFF8FFE007FFF825227EA12A>65 D<0003FE0080001FFF818000FF01E380
01F8003F8003E0001F8007C0000F800F800007801F800007803F000003803F000003807F
000001807E000001807E00000180FE00000000FE00000000FE00000000FE00000000FE00
000000FE00000000FE00000000FE000000007E000000007E000001807F000001803F0000
01803F000003801F800003000F8000030007C000060003F0000C0001F800380000FF00F0
00001FFFC0000003FE000021227DA128>67 D69 D<0003FE0040001FFFC0C0007F00F1C001F8
003FC003F0000FC007C00007C00FC00003C01F800003C03F000001C03F000001C07F0000
00C07E000000C07E000000C0FE00000000FE00000000FE00000000FE00000000FE000000
00FE00000000FE00000000FE000FFFFC7E000FFFFC7F00001FC07F00001FC03F00001FC0
3F00001FC01F80001FC00FC0001FC007E0001FC003F0001FC001FC003FC0007F80E7C000
1FFFC3C00003FF00C026227DA12C>71 D73 D76 DII<0007FC0000003FFF800000FC07E00003F001F80007E000FC00
0FC0007E001F80003F001F80003F003F00001F803F00001F807F00001FC07E00000FC07E
00000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00
000FE0FE00000FE0FE00000FE07E00000FC07F00001FC07F00001FC03F00001F803F8000
3F801F80003F000FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007FC00
0023227DA12A>II82 D<01FE0207FF861F01FE3C007E7C001E78000E78000EF80006F80006FC0006FC
0000FF0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FE00007F00
003F00003FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018
227DA11F>I<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180
E003F801C0E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F8000000
03F800000003F800000003F800000003F800000003F800000003F800000003F800000003
F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
00000003F800000003F800000003F800000003F8000001FFFFF00001FFFFF00022227EA1
27>II<
FFFF000FFEFFFF000FFE07F00000C007F00000C003F800018003F800018003FC00038001
FC00030001FE00030000FE00060000FF000600007F000C00007F000C00007F801C00003F
801800003FC03800001FC03000001FE03000000FE06000000FE060000007F0C0000007F0
C0000007F9C0000003F980000003FD80000001FF00000001FF00000000FE00000000FE00
000000FE000000007C000000007C00000000380000000038000027227FA12A>I
E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%EndSetup
%%Page: 1 1
1 0 bop 172 137 a Fw(LAR)n(GE)19 b(SCALE)g(SP)-5 b(ARSE)20
b(SINGULAR)e(V)-6 b(ALUE)19 b(COMPUT)-5 b(A)g(TIONS)766
253 y Fv(MICHAEL)22 b(W.)d(BERR)m(Y)1229 238 y Fu(\003)135
375 y Ft(Abstract.)35 b Fv(In)18 b(this)g(pap)q(er,)h(w)o(e)g(presen)o
(t)g(four)f(n)o(umerical)f(metho)q(ds)g(for)h(computing)f(the)h
(singular)g(v)n(alue)75 450 y(decomp)q(osition)c(\(SVD\))h(of)g(large)g
(sparse)i(matrices)e(on)g(a)g(m)o(ultipro)q(cessor)g(arc)o(hitecture.)
24 b(W)m(e)15 b(particularly)f(em-)75 525 y(phasize)h(Lanczos)h(and)e
(subspace)i(iteration-based)f(metho)q(ds)f(for)h(determining)e(sev)o
(eral)i(of)g(the)g(largest)g(singular)75 600 y(triplets)f(\(singular)g
(v)n(alues)f(and)h(corresp)q(onding)h(left-)e(and)h(righ)o(t-singular)f
(v)o(ectors\))i(for)e(sparse)i(matrices)f(arising)75
674 y(from)g(t)o(w)o(o)h(practical)g(applications:)21
b(information)12 b(retriev)n(al)k(and)f(seismic)g(re\015ection)i
(tomograph)o(y)m(.)j(The)c(target)75 749 y(arc)o(hitectures)f(for)d
(our)g(implemen)o(tations)d(of)j(suc)o(h)h(metho)q(ds)f(are)h(the)g
(Cra)o(y-2S/4-128)d(and)j(Allian)o(t)e(FX/80.)17 b(The)75
824 y(sparse)g(SVD)f(problem)f(is)h(w)o(ell)f(motiv)n(ated)g(b)o(y)g
(recen)o(t)j(information-retriev)n(al)13 b(tec)o(hniques)18
b(in)d(whic)o(h)h(dominan)o(t)75 898 y(singular)g(v)n(alues)h(and)g
(their)h(corresp)q(onding)g(singular)e(v)o(ectors)i(of)f(large)g
(sparse)h Fs(term-do)n(cument)f Fv(matrices)g(are)75
973 y(desired,)h(and)f(b)o(y)g(nonlinear)f(in)o(v)o(erse)i(problems)e
(from)f(seismic)i(tomograph)o(y)e(applications)h(in)g(whic)o(h)h(appro)
o(xi-)75 1048 y(mate)c(pseudo-in)o(v)o(erses)j(of)d(large)h(sparse)i
(Jacobian)d(matrices)h(are)h(needed.)20 b(It)14 b(is)g(hop)q(ed)h(that)
f(this)g(researc)o(h)i(will)75 1123 y(adv)n(ance)f(the)g(dev)o(elopmen)
o(t)e(of)h(future)i(out-of-core)e(sparse)i(SVD)e(metho)q(ds,)g(whic)o
(h)g(can)h(b)q(e)g(used,)h(for)e(example,)75 1197 y(to)i(handle)f
(extremely)g(large)h(sparse)h(matrices)e(\()p Fr(O)q
Fv(\(10)963 1182 y Fq(6)981 1197 y Fv(\))h(ro)o(ws)g(or)g(columns\))e
(asso)q(ciated)j(with)e(extremely)g(large)75 1272 y(databases)g(in)e
(query-based)i(information)c(retriev)n(al)j(applications.)135
1392 y Ft(Key)23 b(w)o(ords.)42 b Fv(algorithms,)18 b(applications,)i
(information,)e(m)o(ultipro)q(cessor,)j(retriev)n(al,)f(seismic,)h
(singular)75 1466 y(v)n(alue)13 b(decomp)q(osition,)f(sparse,)j
(tomograph)o(y)165 1570 y Ft(1.)24 b(In)o(tro)q(duction)o(.)18
b Fv(The)c(singular)f(v)n(alue)g(decomp)q(osition)f(\(SVD\))h(is)h
(commonl)o(y)d(used)j(in)f(the)h(solution)f(of)75 1644
y(unconstrained)i(linear)e(least)h(squares)h(problems,)e(matrix)f(rank)
i(estimation,)d(and)j(canonical)f(correlation)h(analy-)75
1719 y(sis.)23 b(In)16 b(applications)e(suc)o(h)j(as)e(information)e
(retriev)n(al,)i(seismic)g(re\015ection)i(tomograph)o(y)m(,)c(and)i
(real-time)f(signal)75 1794 y(pro)q(cessing,)h(the)h(solution)d(to)i
(these)h(problems)d(is)i(needed)h(in)e(the)h(shortest)h(p)q(ossible)f
(time.)k(Giv)o(en)14 b(the)h(gro)o(wing)75 1869 y(a)o(v)n(ailabili)o(t)
o(y)e(of)j(m)o(ultipro)q(cessor)g(computer)g(systems,)g(there)h(has)g
(b)q(een)g(great)f(in)o(terest)i(in)e(the)g(dev)o(elopmen)o(t)g(of)75
1943 y(parallel)f(implemen)o(tatio)o(ns)f(of)h(the)i(singular)e(v)n
(alue)h(decomp)q(osition,)e(in)i(general.)25 b(In)16
b(applications)f(suc)o(h)h(as)h(in-)75 2018 y(formation)d(retriev)n(al)
i(\([17)o(],)g([12)o(]\),)g(the)h(data)f(matrix)e(whose)j(SVD)f(is)g
(sough)o(t)g(is)g(usually)g(large)g(and)g(sparse.)26
b(It)75 2093 y(is)16 b(this)f(particular)h(case)h(that)f(motiv)n(ates)e
(our)i(researc)o(h)h(e\013ort.)25 b(Hence,)17 b(w)o(e)f(are)g
(primarily)d(in)o(terested)18 b(in)d(SVD)p 75 2156 150
2 v 118 2185 a Fu(\003)150 2200 y Fv(Departmen)o(t)e(of)f(Computer)g
(Science,)j(Univ)o(ersit)o(y)e(of)f(T)m(ennessee,)j(107)d(Ayres)i
(Hall,)e(Kno)o(xville,)g(TN,)g(37996-)75 2275 y(1301)18
b(\(b)q(erry@cs.utk.edu\).)34 b(P)o(art)18 b(of)g(this)h(researc)o(h)h
(w)o(as)f(supp)q(orted)h(b)o(y)e(the)h(National)e(Science)j(F)m
(oundation)75 2350 y(under)d(gran)o(ts)f(NSF)h(CCR-8717492)d(and)i
(CCR-900000N)e(\(NCSA\),)i(the)h(U.S.)e(Departmen)o(t)h(of)f(Energy)i
(under)75 2425 y(gran)o(t)d(DOE)g(DE-F)o(G02-85ER25001,)c(the)15
b(Air)e(F)m(orce)i(O\016ce)f(of)g(Scien)o(ti\014c)g(Researc)o(h)h
(under)g(gran)o(t)f(AF)o(OSR-90-)75 2499 y(0044,)g(and)h(the)h
(National)e(Aeronautics)i(and)f(Space)h(Administration)d(under)j(gran)o
(t)f(NASA)g(NCC)h(2-559,)d(when)75 2574 y(the)k(author)g(w)o(as)f(lo)q
(cated)h(at)f(the)h(Cen)o(ter)h(for)e(Sup)q(ercomputing)g(Researc)o(h)h
(and)g(Dev)o(elopmen)o(t,)e(Univ)o(ersit)o(y)i(of)75
2649 y(Illinois)12 b(at)i(Urbana-Champaign.)987 2762
y(1)p eop
%%Page: 2 2
2 1 bop 75 43 a Fv(metho)q(ds)13 b(whic)o(h)h(can)g(b)q(e)h(used)g(to)f
(determine)f(singular)h(v)n(alues)f(and)h(singular)f(v)o(ectors)i(of)f
(large)f(sparse)i(matrices)75 118 y(on)f(m)o(ultipro)q(cessors.)21
b(W)m(e)14 b(particularly)g(emphasize)g(Lanczos,)i(blo)q(c)o
(k-Lanczos,)e(subspace)i(iteration,)e(and)h(trace)75
193 y(minim)o(izatio)o(n)9 b(metho)q(ds)i(for)g(determining)f(sev)o
(eral)i(of)f(the)h(largest)g(singular)f(v)n(alues)g(and)g(corresp)q
(onding)i(singular)75 267 y(v)o(ectors)k(for)f Fs(unstructur)n(e)n(d)g
Fv(sparse)h(matrices)f(arising)f(from)f(practical)i(applications.)24
b(The)16 b(target)h(m)o(ultipro)q(ces-)75 342 y(sors)f(for)g(our)f
(implemen)o(tations)e(of)i(suc)o(h)h(metho)q(ds)f(are)h(the)h(Allian)o
(t)d(FX/80)h(and)g(the)i(Cra)o(y-2S/4-128.)k(Before)75
417 y(our)15 b(discussion)h(of)f(m)o(ultipro)q(cessor)g(algorithms)f
(for)h(the)h(sparse)g(SVD,)f(w)o(e)h(mak)o(e)e(a)h(few)h
(de\014nitions,)f(state)h(the)75 492 y(problem)d(of)g(in)o(terest,)h
(and)g(review)h(a)e(few)h(of)f(the)i(fundamen)o(tal)d(c)o
(haracterizations)j(of)e(the)h(SVD.)135 566 y(Without)g(loss)g(of)g
(generalit)o(y)m(,)g(supp)q(ose)i Fp(A)e Fv(is)h(a)f(sparse)i
Fp(m)f Fv(b)o(y)f Fp(n)h Fv(\()p Fp(m)e Fr(\035)f Fp(n)p
Fv(\))j(matrix)d(with)j(rank\()p Fp(A)p Fv(\))g(=)e Fp(r)q
Fv(.)20 b(The)75 641 y(singular)13 b(v)n(alue)g(decomp)q(osition)g
(\(SVD\))h(of)f Fp(A)h Fv(can)g(b)q(e)h(de\014ned)g(as)887
754 y Fp(A)d Fv(=)g Fp(U)5 b Fv(\006)p Fp(V)1070 737
y Fo(T)1096 754 y Fp(;)-1033 b Fv(\(1\))75 868 y(where)17
b Fp(U)230 853 y Fo(T)256 868 y Fp(U)i Fv(=)c Fp(V)384
853 y Fo(T)410 868 y Fp(V)24 b Fv(=)15 b Fp(I)523 874
y Fo(n)562 868 y Fv(and)g(\006)g(=)g Fp(diag)q Fv(\()p
Fp(\033)855 874 y Fq(1)873 868 y Fp(;)7 b(:::;)g(\033)971
874 y Fo(n)991 868 y Fv(\),)16 b Fp(\033)1059 874 y Fo(i)1087
868 y Fp(>)f Fv(0)h(for)f(1)g Fr(\024)g Fp(i)f Fr(\024)h
Fp(r)q Fv(,)h Fp(\033)1466 874 y Fo(i)1494 868 y Fv(=)f(0)h(for)f
Fp(i)g Fr(\025)g Fp(r)c Fv(+)g(1.)24 b(The)75 943 y(\014rst)13
b Fp(r)h Fv(columns)d(of)h(the)h(orthogonal)e(matrices)h
Fp(U)17 b Fv(and)12 b Fp(V)22 b Fv(de\014ne)14 b(the)f(orthonormalized)
e(eigen)o(v)o(ectors)i(asso)q(ciated)75 1017 y(with)g(the)g
Fp(r)h Fv(nonzero)g(eigen)o(v)n(alues)e(of)h Fp(AA)748
1002 y Fo(T)787 1017 y Fv(and)g Fp(A)898 1002 y Fo(T)924
1017 y Fp(A)p Fv(,)g(resp)q(ectiv)o(ely)m(.)19 b(The)13
b(singular)f(v)n(alues)h(of)f Fp(A)h Fv(are)h(de\014ned)g(as)75
1092 y(the)h(diagonal)e(elemen)o(ts)h(of)g(\006)g(whic)o(h)h(are)g(the)
g(nonnegativ)o(e)f(square)h(ro)q(ots)g(of)f(the)h Fp(n)f
Fv(eigen)o(v)n(alues)g(of)g Fp(AA)1790 1077 y Fo(T)1817
1092 y Fv(.)20 b(The)75 1167 y(set)15 b Fr(f)p Fp(u)185
1173 y Fo(i)198 1167 y Fp(;)7 b(\033)241 1173 y Fo(i)254
1167 y Fp(;)g(v)293 1173 y Fo(i)307 1167 y Fr(g)13 b
Fv(is)h(called)g(the)h Fp(i)p Fv(-th)f(singular)f(triplet.)19
b(The)14 b(singular)g(v)o(ectors)h(\(triplets\))f(corresp)q(onding)h
(to)f(large)75 1241 y(\(small\))e(singular)h(v)n(alues)h(are)g(called)g
(large)f(\(small\))f(singular)h(v)o(ectors)i(\(triplets\).)165
1344 y Ft(Problem.)i Fs(Given)h(the)h(sp)n(arse)f Fp(m)12
b Fr(\002)f Fp(n)18 b Fs(matrix)g Fp(A)p Fs(,)h(determine)f(the)g
Fp(p)p Fs(-lar)n(gest)f(singular)h(triplets)f(of)h Fp(A)g
Fs(as)75 1419 y(de\014ne)n(d)e(by)e Fv(\(1\).)135 1554
y(T)m(o)j(illustrate)g(w)o(a)o(ys)g(in)h(whic)o(h)f(the)h(SVD)g(can)g
(rev)o(eal)f(imp)q(ortan)o(t)f(information)f(ab)q(out)i(the)h
(structure)i(of)d(a)75 1628 y(matrix)12 b(w)o(e)i(state)h(t)o(w)o(o)e
(w)o(ell-kno)o(wn)g(theorems:)135 1703 y Fn(Theorem)j(1.1.)21
b Fs(L)n(et)15 b(the)g(SVD)g(of)g Fp(A)g Fs(b)n(e)g(given)g(by)g
Fv(\()p Fs(1)p Fv(\))h Fs(and)603 1817 y Fp(\033)627
1823 y Fq(1)657 1817 y Fr(\025)c Fp(\033)725 1823 y Fq(2)755
1817 y Fr(\025)g(\001)7 b(\001)g(\001)j(\025)h Fp(\033)926
1823 y Fo(r)956 1817 y Fp(>)h(\033)1024 1823 y Fo(r)q
Fq(+1)1095 1817 y Fv(=)g Fr(\001)7 b(\001)g(\001)j Fv(=)i
Fp(\033)1267 1823 y Fo(n)1301 1817 y Fv(=)g(0)i Fp(;)75
1930 y Fs(and)i(let)e Fp(R)p Fv(\()p Fp(A)p Fv(\))h Fs(and)h
Fp(N)5 b Fv(\()p Fp(A)p Fv(\))15 b Fs(denote)g(the)g(r)n(ange)g(and)h
(nul)r(l)f(sp)n(ac)n(e)g(of)g Fp(A)p Fs(,)g(r)n(esp)n(e)n(ctively,)e
(then)197 2005 y(1.)24 b(R)n(ank)16 b(pr)n(op)n(erty:)i
Fv(rank\()p Fp(A)p Fv(\))d(=)d Fp(r)q Fs(,)i Fv(N\()p
Fp(A)p Fv(\))i Fr(\021)f Fs(sp)n(an)p Fr(f)p Fp(v)1070
2011 y Fo(r)q Fq(+1)1131 2005 y Fp(;)21 b Fr(\001)7 b(\001)g(\001)20
b Fp(;)7 b(v)1273 2011 y Fo(n)1296 2005 y Fr(g)p Fs(,)255
2079 y(and)16 b Fv(R\()d Fp(A)p Fv(\))29 b Fr(\021)15
b Fs(sp)n(an)p Fr(f)p Fp(u)644 2085 y Fq(1)663 2079 y
Fp(;)21 b Fr(\001)7 b(\001)g(\001)21 b Fp(;)7 b(u)810
2085 y Fo(r)827 2079 y Fr(g)p Fs(,)14 b(wher)n(e)h Fp(U)h
Fv(=)c([)o Fp(u)1116 2085 y Fq(1)1150 2079 y Fp(u)1174
2085 y Fq(2)1214 2079 y Fr(\001)7 b(\001)g(\001)20 b
Fp(u)1308 2085 y Fo(m)1339 2079 y Fv(])15 b Fs(and)g
Fp(V)21 b Fv(=)12 b([)p Fp(v)1567 2085 y Fq(1)1600 2079
y Fp(v)1620 2085 y Fq(2)1661 2079 y Fr(\001)7 b(\001)g(\001)20
b Fp(v)1751 2085 y Fo(n)1774 2079 y Fv(])o Fs(.)197 2162
y(2.)k(Dyadic)16 b(de)n(c)n(omp)n(osition:)j Fp(A)12
b Fv(=)787 2111 y Fo(r)765 2123 y Fm(X)768 2211 y Fo(i)p
Fq(=1)832 2162 y Fp(u)856 2168 y Fo(i)879 2162 y Fr(\001)d
Fp(\033)924 2168 y Fo(i)947 2162 y Fr(\001)f Fp(v)988
2145 y Fo(T)987 2173 y(i)1030 2162 y Fs(.)197 2253 y(3.)24
b(Norms:)18 b Fr(k)p Fp(A)p Fr(k)480 2238 y Fq(2)480
2265 y Fo(F)519 2253 y Fv(=)12 b Fp(\033)588 2238 y Fq(2)587
2264 y(1)616 2253 y Fv(+)24 b Fr(\001)7 b(\001)g(\001)23
b Fv(+)9 b Fp(\033)811 2238 y Fq(2)810 2264 y Fo(r)830
2253 y Fs(,)15 b(and)g Fr(k)p Fp(A)p Fr(k)1011 2238 y
Fq(2)1011 2264 y(2)1041 2253 y Fv(=)d Fp(\033)1109 2259
y Fq(1)1127 2253 y Fs(.)135 2328 y Fv(The)e(rank)f(prop)q(ert)o(y)m(,)i
(p)q(erhaps)f(one)g(of)f(the)h(most)e(v)n(aluable)h(asp)q(ects)i(of)e
(the)h(SVD,)f(allo)o(ws)f(us)i(to)f(use)i(the)f(singular)75
2403 y(v)n(alues)g(of)f Fp(A)i Fv(as)f(quan)o(titativ)o(e)f(measures)h
(of)g(the)h(qualitativ)o(e)d(notion)i(of)f(rank.)17 b(The)10
b(dy)o(adic)g(decomp)q(osition,)f(whic)o(h)75 2478 y(is)h(the)h
(rationale)e(for)h(data)g(reduction)h(or)f(compression)f(in)h(man)o(y)e
(applications,)i(pro)o(vides)g(a)g(canonical)f(description)75
2552 y(of)16 b(a)h(matrix)d(as)j(a)g(sum)e(of)i Fp(r)g
Fv(rank-one)g(matrices)f(of)g(decreasing)i(imp)q(ortance,)e(as)h
(measured)g(b)o(y)f(the)i(singular)75 2627 y(v)n(alues.)k(The)16
b(three)h(results)f(in)f Ft(Theorem)i(1.1)33 b Fv(can)15
b(b)q(e)h(com)o(bined)e(to)i(yield)e(the)i(follo)o(wing)d(quan)o
(ti\014cation)i(of)75 2702 y(matrix)d(rank)i(de\014ciency)h(\(see)g
([21)o(])f(for)f(a)h(pro)q(of)s(\):)987 2762 y(2)p eop
%%Page: 3 3
3 2 bop 135 43 a Fn(Theorem)20 b(1.2.)31 b Fv([Ec)o(k)n(art)14
b(and)g(Y)m(oung])i Fs(L)n(et)i(the)g(SVD)h(of)e Fp(A)h
Fs(b)n(e)g(given)h(by)f Fv(\()p Fs(1)p Fv(\))g Fs(with)f
Fp(r)h Fv(=)g Fs(r)n(ank\()p Fp(A)p Fs(\))g Fr(\024)g
Fp(p)f Fv(=)75 118 y Fp(min)p Fv(\()p Fp(m)p Fs(,)p Fp(n)p
Fv(\))f Fs(and)g(de\014ne:)700 250 y Fp(A)731 256 y Fo(k)763
250 y Fv(=)828 198 y Fo(k)807 211 y Fm(X)810 299 y Fo(i)p
Fq(=1)874 250 y Fp(u)898 256 y Fo(i)921 250 y Fr(\001)8
b Fp(\033)965 256 y Fo(i)988 250 y Fr(\001)h Fp(v)1030
233 y Fo(T)1029 261 y(i)1072 250 y Fp(w)q(ith)14 b(k)f(<)f(r)j(;)75
378 y Fs(then)543 494 y Fv(min)523 523 y Fq(r\()o Fo(B)q
Fq(\))q(=)p Fo(k)639 494 y Fr(k)p Fp(A)9 b Fr(\000)g
Fp(B)r Fr(k)795 477 y Fq(2)795 504 y Fo(F)835 494 y Fv(=)j
Fr(k)p Fp(A)d Fr(\000)g Fp(A)1012 500 y Fo(k)1033 494
y Fr(k)1054 477 y Fq(2)1054 504 y Fo(F)1093 494 y Fv(=)i
Fp(\033)1161 477 y Fq(2)1160 504 y Fo(k)q Fq(+1)1232
494 y Fv(+)24 b Fr(\001)7 b(\001)g(\001)23 b Fv(+)9 b
Fp(\033)1427 477 y Fq(2)1426 504 y Fo(p)1461 494 y Fp(:)135
685 y Fv(This)j(imp)q(ortan)o(t)f(result,)i(whic)o(h)f(indicates)h
(that)g Fp(A)958 691 y Fo(k)991 685 y Fv(is)f(the)h(b)q(est)g(rank-)p
Fp(k)h Fv(appro)o(ximatio)o(n)c(\(in)i(a)g(least)h(squares)75
760 y(sense\))18 b(to)e(the)g(matrix)e Fp(A)p Fv(,)j(is)e(the)i(basis)f
(for)g(concepts)h(suc)o(h)g(as)f Fs(data)h(r)n(e)n(duction)f
Fv(and)g Fs(image)h(enhanc)n(ement)p Fv(.)26 b(In)75
835 y(fact,)13 b Fp(A)199 841 y Fo(k)234 835 y Fv(is)h(the)g(b)q(est)h
(appro)o(ximation)c(to)j Fp(A)g Fv(for)f(an)o(y)h(unitarily)e(in)o(v)n
(arian)o(t)g(norm)h(\([31)o(]\).)18 b(Hence,)671 951
y(min)651 979 y Fq(r\()p Fo(B)q Fq(\)=)p Fo(k)767 951
y Fr(k)p Fp(A)9 b Fr(\000)g Fp(B)r Fr(k)923 957 y Fq(2)954
951 y Fv(=)j Fr(k)p Fp(A)d Fr(\000)g Fp(A)1131 957 y
Fo(k)1152 951 y Fr(k)1173 957 y Fq(2)1203 951 y Fv(=)j
Fp(\033)1271 957 y Fo(k)q Fq(+1)1333 951 y Fp(:)135 1067
y Fv(In)18 b(the)h(next)f(section,)h(w)o(e)g(illustrate)e(the)i
(applicabilit)o(y)d(of)h Ft(Theorem)i(1.2)f Fv(to)g(problems)f(in)h
(information)75 1142 y(retriev)n(al)10 b(and)h(seismic)e(tomograph)o(y)
g(whic)o(h)h(motiv)n(ate)e(the)j(sparse)h(SVD)e(problem.)16
b(In)10 b(Section)h(3,)g(w)o(e)f(presen)o(t)i(t)o(w)o(o)75
1216 y(Lanczos-based)i(metho)q(ds)f(and)g(t)o(w)o(o)g(subspace)i(metho)
q(ds)d(for)h(solving)f(equiv)n(alen)o(t)h(sparse)h(symmetric)e(eigen)o
(v)n(alue)75 1291 y(problems.)17 b(F)m(undamen)o(tal)10
b(comparisons)i(in)g(complexit)o(y)m(,)e(parallelism,)g(memory)g
(requiremen)o(ts,)j(and)f(parameter)75 1366 y(selection)20
b(among)d(our)i(metho)q(ds)f(are)h(giv)o(en)g(in)f(Section)i(4.)33
b(In)19 b(Section)g(5,)h(w)o(e)f(discuss)h(the)g(p)q(erformance)f(of)75
1441 y(these)d(metho)q(ds)e(on)g(our)h(target)g(mac)o(hines)e(using)i
(a)f(test)h(suite)g(of)f(sparse)i(matrices)e(collected)h(from)e
(researc)o(hers)75 1515 y(in)i(information)d(retriev)n(al)k(and)f
(seismic)f(re\015ection)j(tomograph)o(y)m(.)i(With)c(regard)h(to)f(sp)q
(eed)i(of)e(computation)e(\(in)75 1590 y(CPU)j(time\),)e(w)o(e)i
(demonstrate)g(that)g(a)f(single-v)o(ector)h(Lanczos)g(metho)q(d)f(\()p
Fl(LASVD)p Fv(\))h(is)g(the)g(fastest)g(metho)q(d)f(for)75
1665 y(appro)o(ximating)f(sev)o(eral)k(of)f(the)h(largest)f(singular)g
(triplets)h(for)f(lo)o(w)f(or)i(mo)q(derate)f(accuracy)m(.)29
b(A)17 b(p)q(erformance)75 1739 y(summary)11 b(of)j(our)g(sparse)h(SVD)
e Fs(libr)n(ary)g Fv(of)g(metho)q(ds)h(is)f(giv)o(en)h(in)f(Section)i
(6.)165 1843 y Ft(2.)24 b(Application)o(s)c(for)i(Sparse)f(Singular)e
(V)l(alue)j(Decomp)q(osition)o(.)15 b Fv(Sparse)21 b(linear)e(least)h
(squares)75 1918 y(problems)c(naturally)h(arise)g(in)g(man)o(y)e
Fs(r)n(e)n(al)p Fv(-w)o(orld)h(applications.)27 b(The)18
b(use)g(of)f(the)g(sparse)i(SVD)e(to)g(solv)o(e)g(suc)o(h)75
1992 y(problems)f(is)g(of)g(curren)o(t)i(in)o(terest)g(to)e(researc)o
(hers)j(in)e(\014elds)g(suc)o(h)g(as)f(query-based)i(information)c
(retriev)n(al)i(and)75 2067 y(seismic)10 b(re\015ection)h(tomograph)o
(y)m(,)d(for)i(example.)16 b(In)10 b(the)h(follo)o(wing)d(sections,)j
(w)o(e)g(discuss)g(the)g(need)h(for)e(computing)75 2142
y(singular)i(triplets)h(of)g(large)f(sparse)i(matrices)f(as)g
(suggested)h(b)o(y)f(recen)o(t)h(researc)o(h)h(in)d(ph)o(ysical)h(and)f
(so)q(cial)h(science.)165 2245 y Ft(2.1.)24 b(Laten)o(t)16
b(Seman)o(tic)f(Indexing.)j Fv(In)d([12)o(])f(and)h([17)o(])g(a)g(new)g
(approac)o(h)g(to)g(automatic)f(indexing)g(and)75 2320
y(retriev)n(al)i(is)f(discussed.)26 b(It)16 b(is)g(designed)g(to)g(o)o
(v)o(ercome)f(a)g(fundamen)o(tal)f(problem)h(that)h(plagues)f(existing)
h(infor-)75 2394 y(mation)10 b(retriev)n(al)j(tec)o(hniques)g(that)g
(try)g(to)f(matc)o(h)f(w)o(ords)i(of)f(queries)h(with)f(w)o(ords)h(of)f
(do)q(cumen)o(ts.)17 b(The)c(problem)75 2469 y(is)i(that)h(users)h(w)o
(an)o(t)f(to)f(retriev)o(e)i(on)e(the)i(basis)e(of)g(conceptual)i
(topic)e(or)h(meaning)e(of)h(a)g(do)q(cumen)o(t.)23 b(There)17
b(are)75 2544 y(usually)d(man)o(y)f(w)o(a)o(ys)h(to)g(express)j(a)d
(giv)o(en)g(concept)i(\()p Fs(synonymy)p Fv(\),)g(so)f(the)g(literal)f
(terms)g(in)h(a)f(user's)i(query)f(ma)o(y)75 2619 y(not)f(matc)o(h)e
(those)i(of)f(a)h(relev)n(an)o(t)f(do)q(cumen)o(t.)18
b(In)c(addition,)e(most)g(w)o(ords)i(ha)o(v)o(e)f(m)o(ultiple)f
(meanings)g(\()p Fs(p)n(olysemy)p Fv(\),)75 2693 y(so)i(terms)g(in)f(a)
h(user's)h(query)f(will)e(literally)h(matc)o(h)g(terms)g(in)h(irrelev)n
(an)o(t)f(do)q(cumen)o(ts.)987 2762 y(3)p eop
%%Page: 4 4
4 3 bop 135 43 a Fv(The)19 b(prop)q(osed)f Fs(latent)h(semantic)g
(indexing)g Fv(\(LSI\))f(approac)o(h)g(tries)h(to)f(o)o(v)o(ercome)f
(the)i(problems)e(of)g(w)o(ord-)75 118 y(based)f(access)i(b)o(y)d
(treating)h(the)g(observ)o(ed)h(w)o(ord)f(to)f(text-ob)r(ject)i(asso)q
(ciation)f(data)f(as)h(an)f(unreliable)h(estimate)75
193 y(of)c(the)i(true,)f(larger)g(p)q(o)q(ol)f(of)h(w)o(ords)g(that)g
(could)f(ha)o(v)o(e)h(b)q(een)h(asso)q(ciated)g(with)e(eac)o(h)i(ob)r
(ject.)k(It)13 b(is)g(assumed)g(there)75 267 y(is)18
b(some)f(underlying)g(laten)o(t)h(seman)o(tic)f(structure)900
252 y Fq(1)938 267 y Fv(in)h(w)o(ord)f(usage)h(data)g(that)g(is)f
(partially)g(obscured)i(b)o(y)e(the)75 342 y(v)n(ariabilit)o(y)d(of)i
(w)o(ord)h(c)o(hoice.)27 b(Using)17 b(the)g(SVD)g(de\014ned)g(in)g
(\(1\),)g(w)o(e)g(can)g(estimate)f(this)h(laten)o(t)f(structure)j(and)
75 417 y(remo)o(v)o(e)13 b(the)h(obscuring)h Fs(noise)p
Fv(.)135 492 y(Sp)q(eci\014cally)m(,)10 b(for)f(an)h
Fp(m)q Fr(\002)q Fp(n)h Fs(term-do)n(cument)f Fv(matrix)e
Fp(A)h Fv(whose)i Fp(m)f Fv(ro)o(ws)g(and)g Fp(n)g Fv(columns)e(\()p
Fp(m)k Fr(\035)f Fp(n)p Fv(\))f(corresp)q(ond)75 566
y(to)16 b(terms)g(and)h(do)q(cumen)o(ts,)f(resp)q(ectiv)o(ely)m(,)i(w)o
(e)e(seek)i(the)f(closest)g(\(in)f(a)g(least)h(squares)h(sense\))g
(rank-)p Fp(k)f Fv(\()p Fp(k)g Fr(\034)e Fp(n)p Fv(\))75
641 y(matrix)702 752 y Fp(A)733 758 y Fo(k)765 752 y
Fv(=)829 701 y Fo(k)808 713 y Fm(X)812 801 y Fo(i)p Fq(=1)875
752 y Fp(u)899 758 y Fo(i)922 752 y Fr(\001)9 b Fp(\033)967
758 y Fo(i)990 752 y Fr(\001)f Fp(v)1031 735 y Fo(T)1030
763 y(i)1072 752 y Fp(w)q(ith)14 b(k)e(<)g(r)j(;)-1219
b Fv(\(2\))75 869 y(giv)o(en)13 b(b)o(y)g Ft(Theorem)h(1.2)p
Fv(.)k(The)c(idea)f(is)h(that)f(the)h(matrix)e Fp(A)1073
875 y Fo(k)1107 869 y Fv(captures)j(the)f(ma)r(jor)d(asso)q(ciational)i
(structure)i(in)75 944 y(the)d(matrix)e(and)h(remo)o(v)o(es)g(the)h
(noise.)17 b(Since)12 b(relativ)o(ely)f(few)h(terms)f(are)h(used)g(as)g
(referen)o(ts)h(to)f(a)f(giv)o(en)g(do)q(cumen)o(t,)75
1019 y(the)k(rectangular)f(matrix)f Fp(A)f Fv(=)g([)p
Fp(a)623 1025 y Fo(ij)651 1019 y Fv(])i(is)g(quite)g(sparse.)20
b(The)15 b(matrix)d(elemen)o(t)i Fp(a)1363 1025 y Fo(ij)1406
1019 y Fv(indicates)g(the)h(frequency)g(with)75 1094
y(whic)o(h)h(term)f Fp(i)h Fv(o)q(ccurs)i(in)d(do)q(cumen)o(t)g
Fp(j)r Fv(.)25 b(Dep)q(ending)16 b(up)q(on)g(the)h(size)f(of)g(the)g
(database)g(from)e(whic)o(h)i(the)h(term-)75 1168 y(do)q(cumen)o(t)11
b(is)g(generated,)h(the)g(matrix)e Fp(A)h Fv(can)g(ha)o(v)o(e)g(sev)o
(eral)h(thousand)g(ro)o(ws)f(and)g(sligh)o(tly)f(few)o(er)i(columns.)k
(T)m(able)75 1243 y(1)11 b(lists)h(a)f(few)h(statistics)h(of)e(four)g
(large)g(sparse)i(term-do)q(cumen)o(t)e(matrices)g(that)h(ha)o(v)o(e)f
(b)q(een)i(generated)1723 1228 y Fq(2)1743 1243 y Fv(.)k(W)m(e)12
b(note)75 1318 y(that)i Fp(\026)190 1324 y Fo(r)223 1318
y Fv(and)f Fp(\026)328 1324 y Fo(c)359 1318 y Fv(are)i(the)f(a)o(v)o
(erage)g(n)o(um)o(b)q(er)g(of)f(nonzeros)i(p)q(er)g(ro)o(w)f(and)g
(column,)e(resp)q(ectiv)o(ely)m(.)20 b(The)14 b Fs(Density)h
Fv(of)75 1393 y(eac)o(h)f(sparse)i(matrix)c(listed)h(in)h(T)m(able)f(1)
h(is)f(de\014ned)i(to)f(b)q(e)h(the)f(ratio)f(\(Ro)o(ws)h
Fr(\002)g Fv(Columns\))e Fp(=)i Fv(\(Nonzeros\).)p 404
1454 1173 2 v 403 1529 2 75 v 429 1507 a(Data)p 543 1529
V 543 1529 V 49 w(Columns)p 752 1529 V 752 1529 V 52
w(Ro)o(ws)p 905 1529 V 905 1529 V 53 w(Nonzeros)p 1120
1529 V 1120 1529 V 51 w(Densit)o(y)p 1308 1529 V 1308
1529 V 76 w Fp(\026)1385 1513 y Fo(c)p 1453 1529 V 1453
1529 V 1493 1507 a Fp(\026)1518 1513 y Fo(r)p 1576 1529
V 404 1531 1173 2 v 403 1605 2 75 v 429 1583 a Fk(ADI)p
543 1605 V 191 w Fv(82)p 752 1605 V 91 w(374)p 905 1605
V 131 w(1343)p 1120 1605 V 113 w(4.38)p 1308 1605 V 70
w(16.0)p 1453 1605 V 69 w(4.0)p 1576 1605 V 403 1680
V 429 1658 a Fk(CISI)p 543 1680 V 128 w Fv(1460)p 752
1680 V 69 w(5143)p 905 1680 V 110 w(66340)p 1120 1680
V 113 w(0.88)p 1308 1680 V 70 w(45.4)p 1453 1680 V 48
w(12.9)p 1576 1680 V 403 1755 V 429 1732 a Fk(CRAN)p
543 1755 V 128 w Fv(1400)p 752 1755 V 69 w(4997)p 905
1755 V 110 w(78942)p 1120 1755 V 113 w(1.10)p 1308 1755
V 70 w(56.4)p 1453 1755 V 48 w(15.8)p 1576 1755 V 403
1829 V 429 1807 a Fk(MED)p 543 1829 V 150 w Fv(1033)p
752 1829 V 69 w(5831)p 905 1829 V 110 w(52012)p 1120
1829 V 113 w(0.86)p 1308 1829 V 70 w(50.4)p 1453 1829
V 69 w(8.9)p 1576 1829 V 403 1904 V 429 1882 a Fk(TIME)p
543 1904 V 148 w Fv(425)p 752 1904 V 49 w(10337)p 905
1904 V 110 w(80888)p 1120 1904 V 113 w(1.80)p 1308 1904
V 49 w(190.3)p 1453 1904 V 69 w(7.8)p 1576 1904 V 403
1979 V 429 1956 a Fk(TECH)p 543 1979 V 128 w Fv(6535)p
752 1979 V 48 w(16637)p 905 1979 V 90 w(327244)p 1120
1979 V 112 w(0.30)p 1308 1979 V 70 w(50.0)p 1453 1979
V 48 w(20.0)p 1576 1979 V 404 1981 1173 2 v 917 2073
a Fn(T)l(able)i(1)575 2148 y Fs(Sp)n(arse)f(T)m(erm-Do)n(cument)f
(Matrix)h(Sp)n(e)n(ci\014c)n(ations)h(.)135 2311 y Fv(By)c(using)g(the)
g Fs(r)n(e)n(duc)n(e)n(d)h(mo)n(del)f Fv(in)g(\(2\),)g(usually)f(with)g
(100)g Fr(\024)h Fp(k)g Fr(\024)g Fv(200,)f(minor)f(di\013erences)k(in)
e(terminology)e(are)p 75 2371 150 2 v 119 2401 a Fq(1)150
2416 y Fs(Semantic)k(structur)n(e)e Fv(refers)j(to)d(the)i(correlation)
f(structure)i(in)d(the)h(w)o(a)o(y)g(in)f(whic)o(h)h(individual)d(w)o
(ords)k(app)q(ear)75 2490 y(in)h(do)q(cumen)o(ts;)g Fs(semantic)g
Fv(implies)e(only)i(the)g(fact)g(that)h(terms)f(in)f(a)h(do)q(cumen)o
(t)g(ma)o(y)e(b)q(e)j(tak)o(en)f(as)g(referen)o(ts)i(to)75
2565 y(the)d(do)q(cumen)o(t)g(itself)f(or)h(to)g(its)g(topic.)119
2606 y Fq(2)150 2621 y Fv(Sp)q(ecial)f(thanks)f(to)h(Sue)g(Dumais)d
(from)h(Bell)i(Comm)o(uni)o(cations)d(Researc)o(h)k(\(Bellcore\),)f
(Morristo)o(wn,)f(NJ)h(for)75 2696 y(pro)o(viding)g(the)h(v)n(arious)f
(sparse)i(matrices)f(from)e(Laten)o(t)i(Seman)o(tic)f(Indexing)g
(\(LSI\))i(studies.)987 2762 y(4)p eop
%%Page: 5 5
5 4 bop 75 43 a Fv(virtually)10 b(ignored.)16 b(Moreo)o(v)o(er,)c(the)g
(closeness)g(of)f(ob)r(jects)h(is)f(determined)g(b)o(y)f(the)i(o)o(v)o
(erall)e(pattern)h(of)g(term)f(usage,)75 118 y(so)j(do)q(cumen)o(ts)f
(can)h(b)q(e)h(classi\014ed)f(together)g(regardless)h(of)e(the)i
(precise)g(w)o(ords)f(that)g(are)g(used)g(to)g(describ)q(e)h(them,)75
193 y(and)i(their)h(description)f(dep)q(ends)i(on)e(a)g(consensus)i(of)
e(their)g(term)g(meanings,)e(th)o(us)j(damp)q(ening)e(the)h(e\013ects)j
(of)75 267 y(p)q(olysem)o(y)m(.)d(As)d(a)f(result,)i(terms)e(that)h(do)
f(not)h(actually)f(app)q(ear)h(in)f(a)h(do)q(cumen)o(t)f(ma)o(y)f
(still)h(b)q(e)h(used)h(as)e(referen)o(ts,)75 342 y(if)i(that)g(is)g
(consisten)o(t)i(with)e(the)h(ma)r(jor)d(patterns)k(of)e(asso)q
(ciation)f(in)h(the)h(data.)k(P)o(osition)14 b(in)g(the)h(reduced)h
(space)75 417 y(\(R\()p Fp(A)169 423 y Fo(k)189 417 y
Fv(\)\))f(then)f(serv)o(es)i(as)e(a)f(new)h(kind)g(of)f
Fs(semantic)i(indexing)p Fv(.)135 492 y(As)i(discussed)h(in)e([4)o(])g
(and)g([12)o(],)g(LSI)g(using)g(the)h(sparse)g(SVD)g(can)f(b)q(e)h
(more)e(robust)i(and)f(economical)f(than)75 566 y(straigh)o(t)20
b(term)g(o)o(v)o(erlap)g(metho)q(ds.)37 b(Ho)o(w)o(ev)o(er,)22
b(in)e(practice,)i(one)f(m)o(ust)e(compute)h(at)g(least)h(100-200)e
(largest)75 641 y(singular)13 b(v)n(alues)h(and)g(corresp)q(onding)h
(singular)e(v)o(ectors)i(of)e(sparse)j(matrices)d(ha)o(ving)g(similar)e
(c)o(haracteristics)16 b(to)75 716 y(those)g(matrices)e(in)h(T)m(able)f
(1.)22 b(In)15 b(addition,)e(it)i(is)g(not)g(necessarily)h(the)g(case)g
(that)f(rank\()p Fp(A)p Fv(\))g(=)f Fp(n)h Fv(for)g(the)g
Fp(m)c Fr(\002)f Fp(n)75 791 y Fv(term-do)q(cumen)o(t)15
b(matrix)e Fp(A)p Fv(,)j(this)g(is)g(due)g(to)f(errors)i(caused)g(b)o
(y)f(term)f(extraction,)h(sp)q(elling,)f(or)h(duplication)f(of)75
865 y(do)q(cumen)o(ts.)i(Regarding)10 b(the)h(n)o(umerical)e(precision)
j(of)e(the)h(desired)h(singular)e(triplets)h(for)f(LSI,)h(recen)o(t)h
(tests)g(using)75 940 y(a)i(few)g(of)f(the)h(databases)h(listed)f(in)f
(T)m(able)g(1)h(ha)o(v)o(e)g(rev)o(ealed)g(that)g(for)g(the)g
Fp(i)p Fv(-th)g(singular)g(triplet,)f Fr(f)p Fp(u)1705
946 y Fo(i)1718 940 y Fp(;)7 b(\033)1761 946 y Fo(i)1774
940 y Fp(;)g(v)1813 946 y Fo(i)1827 940 y Fr(g)p Fv(,)733
1056 y(10)775 1039 y Fu(\000)p Fq(6)831 1056 y Fr(\024)k(k)p
Fp(Av)946 1062 y Fo(i)969 1056 y Fr(\000)f Fp(\033)1035
1062 y Fo(i)1048 1056 y Fp(u)1072 1062 y Fo(i)1086 1056
y Fr(k)25 b(\024)12 b Fv(10)1218 1039 y Fu(\000)p Fq(3)75
1172 y Fv(will)h(su\016ce.)22 b(Finally)m(,)13 b(as)i(the)g(desire)h
(for)f(using)f(LSI)h(on)g(larger)f(and)h(larger)g(databases)g(or)g(arc)
o(hiv)o(es)g(gro)o(ws,)g(fast)75 1247 y(algorithms)f(for)i(computing)f
(the)i(sparse)g(singular)f(v)n(alue)g(decomp)q(osition)e(will)h(b)q
(ecome)i(of)e(paramoun)o(t)g(imp)q(or-)75 1322 y(tance.)165
1425 y Ft(2.2.)24 b(Seismic)12 b(Re\015ection)h(T)l(omograph)o(y)l(.)19
b Fv(Seismic)12 b(tra)o(v)o(el)g(tomograph)o(y)f(is)h(another)h
(application)f(area)75 1500 y(in)17 b(whic)o(h)g(the)h(sparse)g(SVD)f
(problem)f(arises.)28 b(In)18 b(recen)o(t)g(literature)g(\(see)h([41)o
(],)e([42)o(],)g(and)g([7)o(]\),)g(great)h(in)o(terest)75
1575 y(has)d(b)q(een)h(expressed)h(in)e(the)g(abilit)o(y)e(to)i
(compute)f(sev)o(eral)i(of)e(the)h(largest)h(singular)e(v)n(alues)g
(and)h(corresp)q(onding)75 1649 y(singular)e(v)o(ectors.)135
1724 y(In)h(this)f(application,)f(the)i(sparse)h(SVD)f(problem)e
(arises)i(from)e(the)j(solution)d(of)i(nonlinear)f(in)o(v)o(erse)h
(problems)75 1799 y(asso)q(ciated)g(with)f(the)h(appro)o(ximation)c(of)
j(acoustic)h(or)f(elastic)h(w)o(a)o(v)o(esp)q(eed)g(from)e(tra)o(v)o
(el)h(times.)k(Sp)q(eci\014cally)m(,)12 b(the)75 1874
y(tra)o(v)o(el)i(times)f(\(data\))g(are)i(related)f(to)g(the)g(w)o(a)o
(v)o(esp)q(eed)h(\(mo)q(del)e(parameters\))h(via)777
1990 y Fp(t)p Fv(\()p Fp(r)q Fv(\))d(=)899 1933 y Fm(Z)922
2028 y Fo(r)q Fq(\()p Fo(s)p Fq(\))989 1990 y Fp(s)p
Fv(\()p Fp(x;)c(y)q(;)g(z)r Fv(\))14 b Fp(dl)h(;)-1144
b Fv(\(3\))75 2112 y(where)11 b Fp(x)p Fv(,)f Fp(y)q
Fv(,)i(and)d Fp(z)k Fv(are)d(spatial)f(co)q(ordinates,)j
Fp(dl)e Fv(is)g(the)h(distance)g(\(di\013eren)o(tial\))f(along)f(the)i
(ra)o(y)f Fp(r)q Fv(,)g(and)g Fp(s)p Fv(\()p Fp(x;)d(y)q(;)g(z)r
Fv(\))12 b(=)75 2186 y(1)p Fp(=\026)p Fv(\()p Fp(x;)7
b(y)q(;)g(z)r Fv(\))16 b(is)g(the)h(slo)o(wness)f(\(recipro)q(cal)h(of)
f(v)o(elo)q(cit)o(y\))g(at)g(the)h(p)q(oin)o(t)f(\()p
Fp(x;)7 b(y)q(;)g(z)r Fv(\).)25 b(F)m(or)15 b(large)h(2D)g(problems,)f
(the)75 2261 y(tra)o(v)o(el)g(times)f(\()p Fp(t)p Fv(\()p
Fp(r)q Fv(\)\),)i(extracted)h(from)c(the)j(original)e(seismograms,)f
(can)i(in)o(v)o(olv)o(e)f(up)h(to)h Fp(O)q Fv(\(10)1618
2246 y Fq(5)1636 2261 y Fv(\))f(ra)o(ys.)22 b(The)16
b(ra)o(y)75 2336 y(path)10 b(dep)q(ends)i(on)e(the)h(slo)o(wness)h
(\(unkno)o(wn\))e(and)g(th)o(us)h(\(3\))f(m)o(ust)g(b)q(e)h(linearized)
f(ab)q(out)g(some)g(initial)e(or)i(reference)75 2410
y(slo)o(wness)17 b(mo)q(del.)22 b(Discretization)16 b(of)g(the)g(slo)o
(wness)h(b)o(y)f(cells)g(or)g(\014nite)g(elemen)o(ts,)g(within)f(whic)o
(h)h(the)g(slo)o(wness)75 2485 y(is)f(assumed)f(to)g(b)q(e)i(constan)o
(t,)f(allo)o(ws)e(the)j(linearized)e(in)o(tegral)g(to)h(b)q(e)g(appro)o
(ximated)e(as)i(a)f(sum.)20 b(The)15 b(resulting)75 2560
y(o)o(v)o(erdetermined)f(system)g(of)f(linear)g(equations)h(for)g(the)g
(unkno)o(wn)g(slo)o(wness)g(p)q(erturbation)h(v)n(alues)f(is)888
2676 y Fp(D)q Fv(\001)p Fp(s)e Fv(=)f(\001)p Fp(t)j(;)-1033
b Fv(\(4\))987 2762 y(5)p eop
%%Page: 6 6
6 5 bop 75 43 a Fv(where)15 b(the)f(comp)q(onen)o(ts)f(of)g(\001)p
Fp(t)g Fv(are)h(the)h(di\013erences)g(b)q(et)o(w)o(een)g(the)g(tra)o(v)
o(el)e(times)f(computed)i(for)f(the)h(mo)q(del)e(and)75
118 y(observ)o(ed)j(times,)d(the)i(comp)q(onen)o(ts)g(of)f(\001)p
Fp(s)g Fv(are)h(the)h(di\013erences)h(b)q(et)o(w)o(een)f(the)f(initial)
e(and)h(up)q(dated)h(mo)q(del,)e(and)75 193 y Fp(D)k
Fv(is)e(the)h(Jacobian)f(matrix)f(whose)i(\()p Fp(i;)7
b(j)r Fv(\))15 b(elemen)o(t)e(is)i(the)g(distance)g(the)g
Fp(i)p Fv(-th)g(ra)o(y)f(tra)o(v)o(els)g(in)g(the)h Fp(j)r
Fv(-th)g(cell.)k(F)m(or)75 267 y(2D)13 b(problems,)f(the)i(matrix)e
Fp(D)j Fv(in)e(\(4\))g(is)h(generally)f(large)g(\(up)h(to)f(order)i
Fp(O)q Fv(\(10)1344 252 y Fq(5)1362 267 y Fv(\)\))e(and)h(sparse.)19
b(T)m(able)13 b(2)g(lists)g(the)75 342 y(statistics)i(for)e(t)o(w)o(o)h
(suc)o(h)g(Jacobian)g(matrices,)f Fp(D)q Fv(,)h(arising)f(from)f
(seismic)h(re\015ection)i(tomograph)o(y)d(researc)o(h.)p
377 410 1228 2 v 376 485 2 75 v 422 462 a(Data)p 556
485 V 556 485 V 70 w(Columns)p 766 485 V 766 485 V 48
w(Ro)o(ws)p 912 485 V 912 485 V 50 w(Nonzeros)p 1127
485 V 1127 485 V 51 w(Densit)o(y)p 1315 485 V 1315 485
V 76 w Fp(\026)1392 468 y Fo(c)p 1459 485 V 1459 485
V 1511 462 a Fp(\026)1536 468 y Fo(r)p 1604 485 V 377
486 1228 2 v 376 561 2 75 v 402 539 a Fk(AMOCO1)p 556
561 V 145 w Fv(330)p 766 561 V 63 w(1436)p 912 561 V
110 w(35210)p 1127 561 V 113 w(7.43)p 1315 561 V 49 w(106.7)p
1459 561 V 69 w(24.5)p 1604 561 V 376 636 V 402 613 a
Fk(AMOCO2)p 556 636 V 125 w Fv(8754)p 766 636 V 62 w(9855)p
912 636 V 69 w(1159116)p 1127 636 V 112 w(1.34)p 1315
636 V 49 w(132.4)p 1459 636 V 48 w(117.6)p 1604 636 V
377 638 1228 2 v 917 730 a Fn(T)l(able)k(2)400 805 y
Fs(Sp)n(arse)f(Jac)n(obian)h(Matrix)e(Sp)n(e)n(ci\014c)n(ations)i(fr)n
(om)e(Seismic)h(T)m(omo)n(gr)n(aphy)g(.)135 979 y Fv(As)d(discussed)i
(in)d([41)o(],)g(the)i(linear)e(least)h(squares)h(solution)e(for)g
(\(4\))h(is)g(usually)f(determined)g(using)h(the)g(pseudo-)75
1054 y(in)o(v)o(erse)842 1170 y Fp(D)877 1153 y Fu(y)906
1170 y Fv(=)g Fp(V)974 1176 y Fo(k)994 1170 y Fv(\006)1024
1152 y Fu(\000)p Fq(1)1024 1183 y Fo(k)1069 1170 y Fp(U)1102
1153 y Fo(T)1097 1180 y(k)1142 1170 y Fp(;)75 1286 y
Fv(where)j Fp(k)g Fv(=)f(rank\()p Fp(D)q Fv(\),)g(\006)483
1292 y Fo(k)515 1286 y Fv(=)e(diag\()p Fp(\033)676 1292
y Fq(1)694 1286 y Fp(;)7 b(\033)737 1292 y Fq(2)755 1286
y Fp(;)g(:::;)g(\033)853 1292 y Fo(k)870 1286 y Fv(\),)14
b(and)g Fp(U)1026 1271 y Fo(T)1021 1298 y(k)1052 1286
y Fp(U)1080 1292 y Fo(k)1112 1286 y Fv(=)e Fp(V)1189
1271 y Fo(T)1180 1298 y(k)1215 1286 y Fp(V)1239 1292
y Fo(k)1272 1286 y Fv(=)f Fp(I)1333 1292 y Fo(k)1368
1286 y Fv(so)j(that)875 1403 y Fp(U)908 1385 y Fo(T)903
1413 y(k)934 1403 y Fp(D)q(V)993 1409 y Fo(k)1026 1403
y Fv(=)e(\006)1100 1409 y Fo(k)75 1519 y Fv(is)j(the)h(SVD)f(of)f(the)i
(matrix)e Fp(D)q Fv(.)22 b(It)15 b(has)h(b)q(een)g(observ)o(ed)g(\([41)
o(]\),)f(that)g(p)q(erturbations)i(or)e(errors)h(comparable)e(to)75
1593 y(the)e(smallest)f(singular)g(v)n(alues)h(ma)o(y)e(in)o(tro)q
(duce)i Fs(lar)n(ge)f Fv(c)o(hanges)i(in)e(the)i(least)f(squares)h
(solution,)e(\001)p Fp(s)1675 1599 y Fo(ls)1703 1593
y Fv(,)h(whic)o(h)g(ma)o(y)75 1668 y(b)q(ecome)k(quite)h(rough)f
(\(non-smo)q(oth\))f(for)h Fs(noisy)h Fv(singular)e(in)o(v)o(erse)i
(problems.)25 b(F)m(urther,)17 b(the)g(singular)f(v)o(ectors)75
1743 y(corresp)q(onding)d(to)f(the)h(the)g(smallest)e(singular)h(v)n
(alues)g(ma)o(y)e(con)o(trol)i(the)h(high-spatial-frequency)f(asp)q
(ects)i(of)d(the)75 1818 y(solution,)865 1934 y(\001)p
Fp(s)919 1940 y Fo(ls)959 1934 y Fv(=)h Fp(D)1038 1917
y Fu(y)1055 1934 y Fv(\001)p Fp(t)i(:)135 2050 y Fv(The)g(p)q(o)q(orly)
g(resolv)o(ed)g(features)h(of)e(the)h(in)o(v)o(erse)h(problem)d(are)i
(con)o(trolled)g(b)o(y)g(the)g(smallest)e(singular)i(triplets)75
2125 y(since)20 b(these)h(features)f(are)g(in)f(the)h(appro)o(ximate)d
(n)o(ull)h(space)i(of)f(the)h(Jacobian)f(matrix,)f(N\()p
Fp(D)q Fv(\).)35 b(Since)20 b(long-)75 2200 y(w)o(a)o(v)o(elength)13
b(rather)i(than)e(short-w)o(a)o(v)o(elength)h(trends)h(are)f(usually)f
(observ)o(ed)i(from)d(seismic)h(tra)o(v)o(el)g(times,)f(in)o(v)o(er-)75
2274 y(sion)17 b(for)g(v)o(elo)q(cit)o(y)f(trends)j(alone)d(using)h
(tra)o(v)o(el)g(times,)g Fp(t)p Fv(\()p Fp(r)q Fv(\),)g(will)f(force)i
(the)f(v)o(ectors)i(of)d(the)i(smallest)e(singular)75
2349 y(triplets)f(to)g(b)q(e)g(high)f(frequency)m(.)21
b(Ho)o(w)o(ev)o(er,)15 b(as)g(discussed)h(in)e([41)o(])g(and)h([42)o
(],)f(in)o(v)o(ersion)g(for)g(subsurface)i(v)o(elo)q(cit)o(y)75
2424 y(\()p Fp(\026)p Fv(\()p Fp(x;)7 b(y)q(;)g(z)r Fv(\)\))15
b(and)f(depths-to-re\015ectors)j(from)c(tra)o(v)o(el)h(times)f(in)o(v)o
(olv)o(es)h(a)g(fundamen)o(tal)e(trade-o\013)j(b)q(et)o(w)o(een)h(v)o
(elo)q(c-)75 2498 y(it)o(y)f(and)h(re\015ector)h(p)q(osition:)k
(increasing)16 b(\(decreasing\))h(the)f(v)o(elo)q(cit)o(y)g(ab)q(o)o(v)
o(e)f(a)g(re\015ector)j(while)d(sim)o(ultaneously)75
2573 y(increasing)k(\(decreasing\))h(p)q(osition)e(do)q(es)h(not)g
(a\013ect)g(the)g(tra)o(v)o(el)g(times.)31 b(In)19 b(this)f(case,)j
(the)e(singular)f(v)o(ectors)75 2648 y(corresp)q(onding)g(to)g(the)g
(smallest)e(singular)h(v)n(alues)g(con)o(trol)g(the)i(v)o(elo)q(cit)o
(y-re\015ector)f(depth)g(trade)h(o\013.)28 b(If)18 b(these)987
2762 y(6)p eop
%%Page: 7 7
7 6 bop 75 43 a Fv(singular)12 b(v)n(alues)g(are)h(at)f(or)g(b)q(elo)o
(w)g(the)h(data)f Fs(noise)h Fv(lev)o(el,)f(the)h(long-w)o(a)o(v)o
(elength)e(v)o(elo)q(cit)o(y-re\015ector)i(depth)g(trade-)75
118 y(o\013)h(is)g(unresolv)n(able.)k(Consequen)o(tly)m(,)13
b(researc)o(hers)k(in)d(seismic)f(re\015ection)i(tomograph)o(y)d(can)i
(assess)i(trade-o\013s)e(in)75 193 y(mo)q(del)i(parameters)i(using)f
(sparse)i(SVD)e(metho)q(ds)g(whic)o(h)h(appro)o(ximate)d(large)j(n)o
(um)o(b)q(ers)f(of)g(singular)g(triplets)75 267 y(ab)q(o)o(v)o(e)d(sp)q
(eci\014ed)h(quan)o(tities)f(\(noise)g(lev)o(el\).)135
342 y(Figure)h(1)f(depicts)h(t)o(ypical)f(nonzero)h(patterns)h(of)d
(the)j(sparse)f(matrices)f(arising)g(from)e(information)g(retriev)n(al)
75 417 y(and)18 b(seismic)g(tomograph)o(y)e(applications)i(in)g(Figure)
h(1,)g(where)g(eac)o(h)g(nonzero)g(elemen)o(t)f(is)h(giv)o(en)f(b)o(y)g
(a)g(single)75 492 y(dot.)24 b(The)17 b(matrix)d(in)i(1\(a\))f(is)h
(the)h Fk(ADI)e Fv(database)i(matrix)d(\(374)c Fr(\002)h
Fv(82\))k(listed)h(in)g(T)m(able)f(1.)25 b(The)16 b Fs(ne)n(arly)33
b Fv(dense)75 566 y(ro)o(ws)13 b(re\015ect)i(w)o(ords)e(suc)o(h)g(as)g
Fs(c)n(omputer)g Fv(whic)o(h)g(commonly)c(o)q(ccur)14
b(in)f(eac)o(h)g(do)q(cumen)o(t)f(found)h(in)f(that)h(particular)75
641 y(database.)32 b(The)19 b(submatrix)e(in)h(1\(b\))h(comprises)f
(the)i(\014rst)f(718)f(ro)o(ws)g(of)g(the)h(1436)12 b
Fr(\002)g Fv(330)18 b(Jacobian)g(matrix,)75 716 y Fk(AMOCO1)p
Fv(,)12 b(in)i(T)m(able)f(2.)k(This)d(particular)g(matrix)e(w)o(as)i
(supplied)g(b)o(y)f(Amo)q(co)g(Researc)o(h)i(Cen)o(ter)1603
701 y Fq(3)1623 716 y Fv(.)165 819 y Ft(3.)24 b(Singular)10
b(V)l(alue)i(Decomp)q(osition)d(of)k(Sparse)f(Matrices.)20
b Fv(Before)12 b(presen)o(ting)g(metho)q(ds)f(for)g(com-)75
894 y(puting)17 b(the)h(sparse)g(singular)f(v)n(alue)g(decomp)q
(osition,)f(w)o(e)h(note)h(that)f(classical)g(metho)q(ds)g(for)g
(determining)f(the)75 969 y(SVD)g(of)f(dense)i(matrices:)22
b(the)16 b(Golub-Kahan-Reinsc)o(h)f(metho)q(d)g(\([19)o(],)h([21)o(]\))
f(and)h(Jacobi-lik)o(e)f(SVD)g(metho)q(ds)75 1043 y(\([5)o(],)i([6],)g
(and)g([25)o(]\))f(are)i(not)f(optimal)e(for)h(large)h(sparse)i
(matrices.)27 b(Since)17 b(these)i(metho)q(ds)e(apply)f(orthogonal)75
1118 y(transformations)9 b(\(Householder)i(or)f(Giv)o(ens\))g(directly)
h(to)f(the)h(sparse)g(matrix)e Fp(A)p Fv(,)h(they)h(incur)f(excessiv)o
(e)i(\014ll-in)d(and)75 1193 y(thereb)o(y)16 b(require)g(tremendous)g
(amoun)o(ts)d(of)i(memory)m(.)j(Moreo)o(v)o(er,)e(it)f(w)o(ould)f(b)q
(e)i(necessary)h(to)e(pro)o(vide)g(enough)75 1267 y(computer)j(storage)
h(for)f(a)g(full)f Fp(m)c Fr(\002)g Fp(n)18 b Fv(matrix)f
Fp(A)h Fv(\(30)g(megab)o(ytes)g(for)g Fk(CISI)f Fv(matrix)g(in)h(T)m
(able)g(1\).)31 b(Another)75 1342 y(dra)o(wbac)o(k)17
b(to)g(these)i(metho)q(ds)d(for)h(computing)f(the)h(SVD)g(of)g(dense)h
(matrices)f(is)g(that)g(they)h(will)e(compute)g(all)75
1417 y(the)f(singular)f(triplets)h(of)e Fp(A)p Fv(,)i(and)f(hence)i(ma)
o(y)c(b)q(e)j(computationally)d(w)o(asteful)i(when)h(only)e(a)h(few)h
(of)f(the)h(largest)75 1492 y(singular)e(triplets)h(are)h(desired.)135
1566 y(W)m(e)i(no)o(w)f(demonstrate)h(ho)o(w)g(canonical)f(sparse)i
(symmetric)d(eigen)o(v)n(alue)i(problems)e(can)j(b)q(e)f(used)h(to)f
(\(indi-)75 1641 y(rectly\))g(compute)e(the)i(sparse)g(singular)e(v)n
(alue)g(decomp)q(osition.)23 b(W)m(e)16 b(then)g(presen)o(t)i(sev)o
(eral)e(iterativ)o(e)g(metho)q(ds)75 1716 y(whic)o(h)e(can)g(b)q(e)g
(applied)g(to)f(these)j(sparse)f(symmetric)d(eigen)o(v)n(alue)h
(problems.)165 1819 y Ft(3.1.)24 b(Equiv)m(alen)o(t)16
b(Eigen)o(v)m(alue)f(Problems.)j Fv(Asso)q(ciated)f(with)e(an)g
Fp(m)c Fr(\002)f Fp(n)15 b Fv(\()p Fp(m)g Fr(\025)g Fp(n)p
Fv(\))g(matrix)f Fp(A)h Fv(is)g(the)75 1894 y(symmetric)d(\()p
Fp(m)e Fv(+)f Fp(n)p Fv(\))h Fr(\002)f Fv(\()p Fp(m)h
Fv(+)g Fp(n)p Fv(\))j(matrix)814 2035 y Fp(B)h Fv(=)903
1951 y Fm(0)903 2026 y(@)972 2002 y Fp(O)56 b(A)960 2077
y(A)991 2062 y Fo(T)1059 2077 y Fp(O)1112 1951 y Fm(1)1112
2026 y(A)1169 2035 y Fp(:)-1106 b Fv(\(5\))75 2176 y(If)15
b(rank\()p Fp(A)p Fv(\))h(=)f Fp(n)p Fv(,)h(it)f(can)h(b)q(e)g(easily)g
(sho)o(wn)f(that)h(the)h(eigen)o(v)n(alues)e(of)g Fp(B)j
Fv(are)f(the)f Fp(n)f Fv(pairs,)h Fr(\006)p Fp(\033)1639
2182 y Fo(i)1653 2176 y Fv(,)g(where)g Fp(\033)1826 2182
y Fo(i)1856 2176 y Fv(is)f(a)75 2251 y(singular)g(v)n(alue)g(of)g
Fp(A)p Fv(,)h(with)f(\()p Fp(m)c Fr(\000)g Fp(n)p Fv(\))16
b(additional)e(zero)i(eigen)o(v)n(alues)g(if)f Fp(m)g(>)g(n)p
Fv(.)23 b(The)16 b(m)o(ultiplicit)o(y)d(of)i(the)h(zero)75
2326 y(eigen)o(v)n(alue)10 b(of)g Fp(B)j Fv(is)e Fp(m)s
Fv(+)s Fp(n)s Fr(\000)s Fv(2)p Fp(r)q Fv(,)f(where)i
Fp(r)q Fv(=rank\()p Fp(A)p Fv(\).)17 b(The)11 b(follo)o(wing)e(Lemma)e
(\(see)12 b([11])e(for)g(pro)q(of)s(\))h(demonstrates)75
2400 y(ho)o(w)i(the)i(SVD)f(of)f Fp(A)h Fv(is)g(generated)h(from)d(the)
j(eigen)o(v)n(alues)e(and)h(eigen)o(v)o(ectors)h(of)e(the)i(the)f
(matrix)e Fp(B)17 b Fv(in)c(\(5\).)p 75 2577 150 2 v
119 2606 a Fq(3)150 2621 y Fv(Sp)q(ecial)j(thanks)g(to)f(John)h(A.)f
(Scales)h(from)e(Amo)q(co)h(Researc)o(h)i(Cen)o(ter,)f(T)m(ulsa,)f(OK)i
(for)e(pro)o(viding)f(sample)75 2696 y(re\015ection)h(data)f(matrices.)
987 2762 y(7)p eop
%%Page: 8 8
8 7 bop 100 399 a
14208860 18945146 8880537 17300602 27891466 41113600 startTexFig
100 399 a
%%BeginDocument: adifig.ps
/picstr 169 string def
306 396 translate 0 rotate -53 -216 translate
107 432 scale
169 681 8 [169 0 0 -681 0 681]
{currentfile picstr readhexstring pop}
image
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b00000b0b0b00000b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b000000000b0b00000b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b00000b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b00000b0b00000b0b0b0b0b00000b0b0b00000b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b00000b00000b0b000
00b0b0b000000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b000000000b0b00000b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b00000b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b00000b0b00000b0b0b0b0b00000b0b0b00000b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b00000b00000b0b000
00b0b0b000000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b00000
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b00000
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000
00b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b00000000000
00b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b00000b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
0000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b00000b0b0
00000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b00000b0b0
0000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b00000b0b000000000b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b00000b0b000000000b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b00000b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b00000b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b00000b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000000000000000b0b0b0b0000000b0b0000000
00b0b0b0b0b00000b00000000000000000000000b00000b0b0b0b0b00000b0b0b0b00000
b0b0b000000000b0000000000000b0000000000000000000b00000b0b0b0b0000000b0b0
00000000b0b0b000000000b00000b0b0b00000b0b0b0b0b0b0b00000b0b00000b0b0b0b0
b00000b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000000000000000b0b0b0b0000000b0b0000000
00b0b0b0b0b00000b00000000000000000000000b00000b0b0b0b0b00000b0b0b0b00000
b0b0b000000000b0000000000000b0000000000000000000b00000b0b0b0b0000000b0b0
00000000b0b0b000000000b00000b0b0b00000b0b0b0b0b000000000b0b00000b0b0b0b0
b00000b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0
b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b000
00b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b000
00b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b000
00b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b000
00b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b00000b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b00000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b00000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b00000000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b00000b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b00000b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b00000b000000000b0
b0b0b0b0b0b00000b00000b0b0000000b0b0b0b0b000000000b0b0b00000b0b0b0b0b0b0
b0b0b00000b000000000b0b0b0b0b00000b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0
0000b0b0b00000b0b0b0b0b00000b0b00000b0b0b0b0b0b00000b0b00000b00000b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b00000b000000000b0
b0b0b0b000000000b00000b0b0000000b0b0b0b0b000000000b0b0b00000b0b0b0b0b0b0
b0b0b00000b000000000b0b0b0b0b00000b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0
0000b0b0b00000b0b0b0b0b00000b0b00000b0b0b0b0b0b00000b0b00000b00000b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
0000b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b000000000b0b0
b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b00000b0b0b0b0b0b0b0b0b00000b00000b0b000
00b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b000000000b0b0b0b0b00000b0b0b0
0000b0b000000000b0b0b00000b0b0b00000b0b00000b00000b0b0b0b0b000000000b0b0
b0b0b0b0b00000b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b000000000b0b0b0b0b000000000b00000b0b000
00b00000b0b00000b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b00000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
showpage
%%EndDocument
endTexFig
1050 399 a
14208860 18945146 8880537 17300602 27891466 41113600 startTexFig
1050 399 a
%%BeginDocument: amo.ps
/picstr 191 string def
306 396 translate 0 rotate -61 -216 translate
122 432 scale
191 674 8 [191 0 0 -674 0 674]
{currentfile picstr readhexstring pop}
image
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b00000
00b0b0b0b0b0000000b0b0b0b0b0b0b00000b00000000000b0b0b000000000b0b0b0b0b0
b0b00000b00000b00000b0b0b0000000b0b0b0b0b0b00000b00000b0000000b0000000b0
b0b0b0b0b0b00000000000b0b00000000000b0b0b0b0b0b0b0b0b0000000b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0000000b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b00000b0b0b0b0b0b0b00000b00000000000b0b0b0b0000000b0b0b0b0b0
b0b00000b00000b00000b0b0b0000000b0b0b0b0b0b00000000000b0000000b0000000b0
b0b0b0b0b0b00000000000b0b00000000000b0b0b0b0b0b0b0b0b0000000b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000000000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b000
0000b0b0b0b0b0b00000b0b0b0b0b0b00000b0b00000000000b0b0b0b0000000b0b0b0b0
b0b00000b0b00000b00000b0b0b0000000b0b0b0b0b0000000000000b0000000b0000000
b0b0b0b0b0b0b000000000b0b0b00000000000b0b0b0b0b0b0b0b000000000b0b0b0b000
000000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0
000000b0b0b0b0b0b00000b0b0b0b0b00000b0b0b00000000000b0b0b0b0000000b0b0b0
b0b00000b0b0b00000b00000b0b0b0000000b0b0b0b0b00000b00000b0b0000000b00000
00b0b0b0b0b0b00000b00000b0b0b00000b00000b0b0b0b0b0b0b0b0000000b0b0b0b000
00000000b0b0b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0
00000000b0b0b0b0b0b00000b0b0b0b00000b0b0b0b00000000000b0b0b0b0000000b0b0
b0b0000000b0b0000000b00000b0b0b0000000b0b0b0b00000b0b00000b0b00000b0b000
0000b0b0b0b0b0000000000000b0b0000000b00000b0b0b0b0b0b0b000000000b0b0b0b0
0000000000b0b0b0b0b0b0b000000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0000000b0b0b0
b000000000b0b0b0b0b0000000b0b0b00000b0b0b0b0b00000000000b0b0b000000000b0
b0b0000000b0b0b00000000000b0b0b0b0000000b0b0b0000000b0000000b0000000b0b0
000000b0b0b0b0b00000b00000b0b0b0000000000000b0b0b0b0b0b00000000000b0b0b0
b00000000000b0b0b0b0b0b0b0000000b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0000000b0b0b0
b000000000b0b0b0b0b0b00000b0b0b0000000b0b0b0b00000000000b0b0b0b0000000b0
b0b0000000b0b0b00000000000b0b0b0b0000000b0b0b0000000b0000000b0000000b0b0
000000b0b0b0b0b0000000000000b0b0000000b00000b0b0b0b0b0b00000000000b0b0b0
b00000000000b0b0b0b0b0b0b0000000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0000000b0b0b0
b0b000000000b0b0b0b0b0000000b0b0000000b0b0b0b00000000000b0b0b0b000000000
b0b0b00000b0b0b0b00000b00000b0b0b0b0000000b0b0000000b0b0000000b0000000b0
b0000000b0b0b0b0000000000000b0b0b0000000000000b0b0b0b0b0b000000000b0b0b0
b0b00000000000b0b0b0b0b0b000000000b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0000000b0b0b0
b0b000000000b0b0b0b0b0b00000b0b0000000b0b0b0b00000000000b0b0b0b0b0000000
b0b0b0000000b0b0b00000000000b0b0b0b0000000b0b0000000b0b0000000b0000000b0
b0000000b0b0b0b0000000000000b0b0b0000000b00000b0b0b0b0b0b00000000000b0b0
b0b00000000000b0b0b0b0b0b000000000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0000000b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0000000
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000000000b0b0b0
b0b0b000000000b0b0b0b0b0000000b0000000b0b0b0b0b00000000000b0b0b0b0000000
00b0b00000b0b0b0b0b00000b00000b0b0b0b0000000b0b00000b0b0b00000b0b0000000
b0b0000000b0b0b0000000b0000000b0b0b0000000000000b0b0b0b0b00000000000b0b0
b0b0b00000000000b0b0b0b0b0b0000000b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b000000000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b00000
00b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0000000000000b0b0
b0b0b0b000000000b0b0b0b0b0b00000b0000000b0b0b0b0b00000000000b0b0b0b0b000
0000b0b00000b0b0b0b0b00000b00000b0b0b0b0000000b0b00000b0b0b00000b0b00000
00b0b0000000b0b0b0000000b0000000b0b0b0000000b00000b0b0b0b0b00000000000b0
b0b0b0b00000000000b0b0b0b0b0b0000000b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b000000000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b00000b0b0
b0b0b0b0b0000000b0b0b0b0b0b0000000b0000000b0b0b0b0b00000000000b0b0b0b000
0000b0b0b00000b0b0b0b00000b0b00000b0b0b0b00000b0b0b00000b0b0b00000b0b000
0000b0b0000000b0b0b0000000b0000000b0b0b0000000000000b0b0b0b0b00000000000
b0b0b0b0b000000000b0b0b0b0b0b0b0000000b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b000000000b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000000000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000000000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0000000b0
b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0000000b0b0b0b00000000000b0b0b0b0b0
0000b0b0b0b00000b0b0b0b00000b0000000b0b0b00000b0b0b0b00000b0b00000b0b0b0
000000b0000000b0b0b0b0000000b00000b0b0b0b00000b00000b0b0b0b0b0b000000000
00b0b0b0b00000000000b0b0b0b0b0b0b0000000b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000000000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0000000
b0b0b0b0b0b000000000b0b0b0b0000000b0b0b0000000b0b0b0b00000000000b0b0b0b0
0000b0b0b0b0b00000b0b0b0b00000b0000000b0b00000b0b0b0b0b00000b0b00000b0b0
b00000b0b00000b0b0b0b0b0000000000000b0b0b0000000000000b0b0b0b0b0b0000000
00b0b0b0b0b000000000b0b0b0b0b0b0b0b0000000b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0b0b00000
00b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0000000b0b0b0b00000000000b0b0b0
0000b0b0b0b0b0b00000b0b0b0b00000b00000b0b00000b0b0b0b0b0b00000b0b00000b0
b0b00000b00000b0b0b0b0b0b0000000000000b0b0b00000b00000b0b0b0b0b0b0b00000
0000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b000
0000b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0000000b0b0b0b00000000000b0b0
000000b0b0b0b0b0b00000b0b0b0b00000b00000b00000b0b0b0b0b0b0b00000b0b00000
b0b00000000000b0b0b0b0b0b0b0000000000000b0b0b000000000b0b0b0b0b0b0b0b000
000000b0b0b0b000000000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0
000000b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0000000b0b0b0b00000000000b0
000000b0b0b0b0b0b0b00000b0b0b0b00000b000000000b0b0b0b0b0b0b0b00000b0b000
00b0b000000000b0b0b0b0b0b0b0b00000b0000000b0b000000000b0b0b0b0b0b0b0b000
00000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0
000000b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0000000b0b0b0b00000000000b0
000000b0b0b0b0b0b0b0000000b0b0b00000b000000000b0b0b0b0b0b0b0b00000b0b000
0000b000000000b0b0b0b0b0b0b0b00000b0000000b0b000000000b0b0b0b0b0b0b0b000
00000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0
b0000000b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0000000b0b0b0b000000000b0
b00000b0b0b0b0b0b0b0b00000b0b0b0b000000000000000b0b0b0b0b0b0b00000b0b0b0
0000b0b0000000b0b0b0b0b0b0b0b0000000b0000000b0b0000000b0b0b0b0b0b0b0b0b0
0000000000b0b0b000000000b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0000000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
00000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0
b0b0000000b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0000000b0b0b0b000000000
b00000b0b0b0b0b0b0b0b00000b0b0b0b0b0000000000000b0b0b0b0b0b0b0b00000b0b0
b00000b0b00000b0b0b0b0b0b0b0b0b0000000b0000000b0b00000b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0000000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0000000b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000
b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b000000000b0b0b0b0b0
b0b0b0000000b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b00000b0b0b0b0b0000000
000000b0b0b0b0b0b0b0b0b0000000b0b0b0b00000000000b0b0b0b0b0b0b0b0b0000000
b0b0000000000000b0b0b0b0b0b0b0b0b0000000b0000000b0000000b0b0b0b0b0b0b0b0
b0b00000000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000000000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0000000
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000
b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b000000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b0b0b0b0000000b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000
000000b0b0b0b0b0b0b0b0b0b00000b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b00000
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0000000b0000000000000b0b0b0b0b0b0b0b0
b0b0b00000000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b00000b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0000000b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b000000000b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b00000
00b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0000000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000
00b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b00000
00b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b00000b0b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b000000000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b000
0000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0000000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b000000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b00000b0b0b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b000
00b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0
000000b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b0b00000b0b0b0b0b0b0
b0b0b0b0b0b0b0000000b0b0b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000b0b0b000
0000b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b00000b0b0b0b0b0b0b0b0b0b0b0b0b0
b00000b0000000b0b0b0b0b0b0b0b0b0b0b0b0b0b00000000000b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b000000000b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0000000b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0
b0b0b0b0b0b0b0b0b0b0b0
showpage
%%EndDocument
endTexFig
523 2048 a Fv(\(a\))896 b(\(b\))75 2147 y Fn(Fig.)17
b(1)p Fv(.)23 b Fs(\(a\))17 b(Non-zer)n(o)f(p)n(attern)g(of)h(the)g
Fv(374)9 b Fr(\002)i Fv(82)16 b Fs(datab)n(ase)h(matrix)f(\()p
Fk(ADI)g Fs(in)h(T)m(able)f(1\))g(fr)n(om)g(an)h(information)75
2222 y(r)n(etrieval)d(applic)n(ation.)19 b(\(b\))c(Non-zer)n(o)g(p)n
(attern)g(of)g(the)g(\014rst)g Fv(718)f Fs(r)n(ows)g(of)h(a)g
Fv(1436)9 b Fr(\002)g Fv(330)15 b Fs(Jac)n(obian)g(matrix)g(fr)n(om)75
2296 y(a)g(sample)g(seismic)f(tr)n(avel)g(tomo)n(gr)n(aphy)i(applic)n
(ation)f(in)g(which)f(subsurfac)n(e)h(velo)n(cities)f(ar)n(e)h(ne)n(e)n
(de)n(d.)987 2762 y Fv(8)p eop
%%Page: 9 9
9 8 bop 135 43 a Fn(Lemma)17 b(3.1.)k Fs(L)n(et)14 b
Fp(A)h Fs(b)n(e)g(an)h Fp(m)9 b Fr(\002)h Fp(n)15 b Fs(\()p
Fp(m)c Fr(\025)h Fp(n)p Fs(\))j(matrix)f(and)i Fp(B)h
Fs(de\014ne)n(d)f(by)f(\(5\).)197 118 y(1.)24 b(F)m(or)12
b(any)i(p)n(ositive)e(eigenvalue,)h Fp(\033)790 124 y
Fo(i)804 118 y Fs(,)g(of)f Fp(B)k Fs(let)c Fv(\()p Fp(u)1019
124 y Fo(i)1032 118 y Fp(;)7 b(v)1071 124 y Fo(i)1085
118 y Fv(\))1101 97 y Fo(T)1140 118 y Fs(denote)13 b(a)g(c)n(orr)n(esp)
n(onding)g(eigenve)n(ctor)f(of)h(norm)255 158 y Fr(p)p
290 158 21 2 v 35 x Fv(2)o Fs(.)18 b(Then)12 b Fp(\033)470
199 y Fo(i)495 193 y Fs(is)g(a)g(singular)f(value)h(of)g
Fp(A)g Fs(and)g Fp(u)1019 199 y Fo(i)1033 193 y Fs(,)g
Fp(v)1078 199 y Fo(i)1104 193 y Fs(ar)n(e)f(r)n(esp)n(e)n(ctively,)g
(left)g(and)i(right)e(singular)g(ve)n(ctors)255 267 y(of)k
Fp(A)g Fs(c)n(orr)n(esp)n(onding)g(to)g Fp(\033)686 273
y Fo(i)699 267 y Fs(.)197 342 y(2.)24 b(F)m(or)14 b Fp(\033)356
348 y Fo(i)381 342 y Fv(=)e(0)p Fs(,)i(if)h Fp(B)i Fs(has)e(c)n(orr)n
(esp)n(onding)g(ortho)n(gonal)g(eigenve)n(ctors)f Fv(\()q
Fp(u)1374 348 y Fo(j)1391 342 y Fp(;)7 b(v)1430 348 y
Fo(j)1447 342 y Fv(\))1463 321 y Fo(T)1504 342 y Fs(with)14
b Fp(v)1614 348 y Fo(j)1643 342 y Fr(6)p Fv(=)e(0)i Fs(and)i
Fp(u)1827 348 y Fo(j)1855 342 y Fr(6)p Fv(=)c(0)255 417
y Fs(for)f Fp(j)j Fv(=)e(1)p Fp(;)7 b(:::t)j Fs(for)h(some)h
Fp(t)f Fr(\025)h Fv(1)p Fs(,)g(then)g Fv(0)g Fs(is)f(a)h(singular)f
(value)i(of)e(the)h(matrix)f Fp(A)p Fs(,)h(and)h(the)f(c)n(orr)n(esp)n
(onding)255 492 y(left)f(and)i(right)e(singular)h(ve)n(ctors)g(c)n(an)g
(b)n(e)g(obtaine)n(d)h(by)f(ortho)n(gonalizing)g(these)g
Fp(u)1535 498 y Fo(j)1565 492 y Fs(and)g Fp(v)1662 498
y Fo(j)1680 492 y Fs(,)g(r)n(esp)n(e)n(ctively.)255 566
y(Otherwise,)h Fp(A)i Fs(has)h(ful)r(l)e(r)n(ank,)g(i.e.,)g(r)n(ank\()p
Fp(A)p Fs(\))h Fv(=)d Fp(n)p Fs(.)135 641 y Fv(The)k(n)o(umerical)f
(accuracy)i(of)e(the)i Fp(i)p Fv(-th)f(appro)o(ximate)e(singular)i
(triplet)g(\()s(~)-24 b Fp(u)1366 647 y Fo(i)1380 641
y Fp(;)8 b Fv(~)-22 b Fp(\033)1423 647 y Fo(i)1436 641
y Fp(;)8 b Fv(~)-22 b Fp(v)1475 647 y Fo(i)1488 641 y
Fv(\))16 b(as)g(determined)g(via)f(the)75 716 y(eigensystem)c(of)f(the)
h Fs(2-cyclic)551 701 y Fq(4)580 716 y Fv(matrix)d Fp(B)14
b Fv(\(pro)o(vided)c Fp(A)i Fr(\025)g Fv(0\))e(is)g(then)i(determined)e
(b)o(y)h(the)g(norm)e(of)h(the)h(eigenpair)75 791 y(residual)j(v)o
(ector)h Fp(r)374 797 y Fo(i)401 791 y Fv(de\014ned)g(as)433
907 y Fr(k)p Fp(r)473 913 y Fo(i)486 907 y Fr(k)507 913
y Fq(2)537 907 y Fv(=)581 873 y Fm(\002)598 907 y Fr(k)p
Fp(B)r Fv(\()s(~)-24 b Fp(u)692 913 y Fo(i)706 907 y
Fp(;)8 b Fv(~)-22 b Fp(v)745 913 y Fo(i)759 907 y Fv(\))775
890 y Fo(T)810 907 y Fr(\000)12 b Fv(~)-23 b Fp(\033)876
913 y Fo(i)889 907 y Fv(\()14 b Fp(til)q(deu)1026 913
y Fo(i)1040 907 y Fp(;)8 b Fv(~)-22 b Fp(v)1079 913 y
Fo(i)1093 907 y Fv(\))1109 890 y Fo(T)1135 907 y Fr(k)1156
913 y Fq(2)1174 873 y Fm(\003)1199 907 y Fp(=)1227 873
y Fm(\002)1244 907 y Fr(k)s Fv(~)e Fp(u)1289 913 y Fo(i)1302
907 y Fr(k)1323 890 y Fq(2)1323 917 y(2)1351 907 y Fv(+)9
b Fr(k)r Fv(~)-23 b Fp(v)1433 913 y Fo(i)1447 907 y Fr(k)1468
890 y Fq(2)1468 917 y(2)1486 873 y Fm(\003)1508 870 y
Fj(1)p 1508 875 15 2 v 1508 891 a(2)1550 907 y Fp(;)75
1023 y Fv(whic)o(h)14 b(can)g(also)f(b)q(e)i(written)f(as)400
1139 y Fr(k)p Fp(r)440 1145 y Fo(i)453 1139 y Fr(k)474
1145 y Fq(2)504 1139 y Fv(=)548 1093 y Fm(h)568 1139
y Fv(\()p Fr(k)p Fp(A)r Fv(~)-23 b Fp(v)656 1145 y Fo(i)679
1139 y Fr(\000)12 b Fv(~)-24 b Fp(\033)744 1145 y Fo(i)761
1139 y Fv(~)g Fp(u)782 1145 y Fo(i)796 1139 y Fr(k)817
1122 y Fq(2)817 1149 y(2)844 1139 y Fv(+)10 b Fr(k)p
Fp(A)938 1122 y Fo(T)966 1139 y Fv(~)-23 b Fp(u)988 1145
y Fo(i)1010 1139 y Fr(\000)12 b Fv(~)-23 b Fp(\033)1076
1145 y Fo(i)1091 1139 y Fv(~)h Fp(v)1110 1145 y Fo(i)1123
1139 y Fr(k)1144 1122 y Fq(2)1144 1149 y(2)1163 1139
y Fv(\))1184 1111 y Fj(1)p 1184 1116 V 1184 1132 a(2)1205
1093 y Fm(i)1232 1139 y Fp(=)1260 1106 y Fm(\002)1277
1139 y Fr(k)s Fv(~)e Fp(u)1322 1145 y Fo(i)1335 1139
y Fr(k)1356 1122 y Fq(2)1356 1149 y(2)1384 1139 y Fv(+)9
b Fr(k)r Fv(~)-23 b Fp(v)1466 1145 y Fo(i)1480 1139 y
Fr(k)1501 1122 y Fq(2)1501 1149 y(2)1519 1106 y Fm(\003)1541
1102 y Fj(1)p 1541 1107 V 1541 1124 a(2)1583 1139 y Fp(:)-1520
b Fv(\(6\))75 1255 y(W)m(e)13 b(note)i(that)f(the)g(in)o(terv)n(al)849
1372 y Fr(j)p Fp(\033)885 1378 y Fo(i)907 1372 y Fr(\000)e
Fv(~)-23 b Fp(\033)973 1378 y Fo(i)986 1372 y Fr(j)11
b(\024)h(k)p Fp(r)1093 1378 y Fo(i)1107 1372 y Fr(k)1128
1378 y Fq(2)75 1488 y Fv(con)o(tains)i(at)g(least)g(one)g(singular)f(v)
n(alue)g Fp(\033)750 1494 y Fo(i)764 1488 y Fv(.)135
1563 y(Alternativ)o(ely)m(,)e(w)o(e)h(ma)o(y)e(compute)i(the)g(SVD)g
(of)f Fp(A)h Fv(indirectly)g(b)o(y)g(the)g(eigenpairs)g(of)g(either)h
(the)f Fp(n)5 b Fr(\002)g Fp(n)13 b Fv(matrix)75 1637
y Fp(A)106 1622 y Fo(T)132 1637 y Fp(A)h Fv(or)g(the)h
Fp(m)10 b Fr(\002)f Fp(m)15 b Fv(matrix)d Fp(AA)635 1622
y Fo(T)661 1637 y Fv(.)19 b(The)14 b(follo)o(wing)e(Lemma)f
(illustrates)j(the)h(fundamen)o(tal)d(relations)i(b)q(et)o(w)o(een)75
1712 y(these)h(symmetric)d(eigen)o(v)n(alue)i(problems)f(and)g(the)i
(SVD.)135 1787 y Fn(Lemma)i(3.2.)k Fs(L)n(et)14 b Fp(A)h
Fs(b)n(e)g(an)h Fp(m)9 b Fr(\002)h Fp(n)15 b Fs(\()p
Fp(m)c Fr(\025)h Fp(n)p Fs(\))j(matrix)f(with)g(r)n(ank\()p
Fp(A)p Fs(\))h Fv(=)d Fp(r)q Fs(.)197 1862 y(1.)24 b(If)13
b Fp(V)21 b Fv(=)12 b Fr(f)p Fp(v)427 1868 y Fq(1)445
1862 y Fp(;)7 b(v)484 1868 y Fq(2)502 1862 y Fp(;)g(:::;)g(v)596
1868 y Fo(r)612 1862 y Fr(g)13 b Fs(ar)n(e)g(line)n(arly)f(indep)n
(endent)j Fp(n)6 b Fr(\002)g Fv(1)12 b Fs(eigenve)n(ctors)h(of)g
Fp(A)1501 1846 y Fo(T)1527 1862 y Fp(A)h Fs(so)f(that)g
Fp(V)1740 1846 y Fo(T)1766 1862 y Fv(\()p Fp(A)1813 1846
y Fo(T)1839 1862 y Fp(A)p Fv(\))p Fp(V)255 1936 y Fs(=)g(diag)p
Fv(\()p Fp(\033)415 1921 y Fq(2)414 1947 y(1)434 1936
y Fp(;)7 b(\033)478 1921 y Fq(2)477 1947 y(2)497 1936
y Fp(;)g(:::;)g(\033)596 1921 y Fq(2)595 1946 y Fo(r)612
1936 y Fp(;)g Fv(0)p Fp(;)g(:::;)g Fv(0)631 1962 y Fm(|)p
650 1962 20 5 v 20 w({z)p 708 1962 V 20 w(})656 1999
y Fo(n)p Fu(\000)p Fo(r)743 1936 y Fv(\))p Fs(,)14 b(then)g
Fp(\033)901 1942 y Fo(i)928 1936 y Fs(is)f(the)g Fp(i)p
Fs(-th)h(nonzer)n(o)g(singular)f(value)h(of)f Fp(A)g
Fs(c)n(orr)n(esp)n(onding)h(to)255 2040 y(the)j(right)f(singular)h(ve)n
(ctor)f Fp(v)732 2046 y Fo(i)746 2040 y Fs(.)25 b(The)17
b(c)n(orr)n(esp)n(onding)g(left)f(singular)h(ve)n(ctor,)g
Fp(u)1531 2046 y Fo(i)1544 2040 y Fs(,)g(is)g(then)g(obtaine)n(d)h(as)
255 2114 y Fp(u)279 2120 y Fo(i)304 2114 y Fv(=)361 2098
y Fq(1)p 353 2105 33 2 v 353 2129 a Fo(\033)372 2133
y Fi(i)390 2114 y Fp(Av)441 2120 y Fo(i)455 2114 y Fs(.)197
2189 y(2.)24 b(If)12 b Fp(U)k Fv(=)c Fr(f)p Fp(u)429
2195 y Fq(1)447 2189 y Fp(;)7 b(u)490 2195 y Fq(2)508
2189 y Fp(;)g(:::;)g(u)606 2195 y Fo(r)621 2189 y Fr(g)12
b Fs(ar)n(e)f(line)n(arly)g(indep)n(endent)i Fp(m)s Fr(\002)s
Fv(1)f Fs(eigenve)n(ctors)g(of)f Fp(AA)1537 2174 y Fo(T)1576
2189 y Fs(so)h(that)f Fp(U)1740 2174 y Fo(T)1766 2189
y Fv(\()p Fp(AA)1844 2174 y Fo(T)1871 2189 y Fv(\))p
Fp(U)255 2264 y Fs(=)i(diag)p Fv(\()p Fp(\033)415 2249
y Fq(2)414 2274 y(1)434 2264 y Fp(;)7 b(\033)478 2249
y Fq(2)477 2274 y(2)497 2264 y Fp(;)g(:::;)g(\033)596
2249 y Fq(2)595 2274 y Fo(r)612 2264 y Fp(;)g Fv(0)p
Fp(;)g(:::;)g Fv(0)631 2289 y Fm(|)p 650 2289 20 5 v
20 w({z)p 708 2289 V 20 w(})651 2327 y Fo(m)p Fu(\000)p
Fo(r)743 2264 y Fv(\))p Fs(,)14 b(then)g Fp(\033)901
2270 y Fo(i)928 2264 y Fs(is)f(the)g Fp(i)p Fs(-th)h(nonzer)n(o)g
(singular)f(value)h(of)f Fp(A)g Fs(c)n(orr)n(esp)n(onding)h(to)255
2367 y(the)j(left)f(singular)h(ve)n(ctor)f Fp(u)708 2373
y Fo(i)722 2367 y Fs(.)25 b(The)17 b(c)n(orr)n(esp)n(onding)g(right)f
(singular)h(ve)n(ctor,)f Fp(v)1530 2373 y Fo(i)1544 2367
y Fs(,)h(is)g(then)g(obtaine)n(d)h(as)255 2442 y Fp(v)275
2448 y Fo(i)300 2442 y Fv(=)357 2426 y Fq(1)p 349 2433
33 2 v 349 2456 a Fo(\033)368 2460 y Fi(i)387 2442 y
Fp(A)418 2427 y Fo(T)444 2442 y Fp(u)468 2448 y Fo(i)482
2442 y Fs(.)p 75 2516 150 2 v 119 2546 a Fq(4)150 2561
y Fv(A)e(non-negativ)o(e)f(irreducible)h(matrix)e Fp(B)19
b Fv(whic)o(h)c(is)h(2-cyclic)f(has)h(2)g(eigen)o(v)n(alues)f(of)h(mo)q
(dulus)e Fp(\032)p Fv(\()p Fp(B)r Fv(\),)j(where)75 2635
y Fp(\032)p Fv(\()p Fp(B)r Fv(\))e(is)f(the)g(sp)q(ectral)h(radius)f
(of)g Fp(B)r Fv(.)k(See)d(De\014nition)e(2.2)g(on)h(page)f(35)h(in)f
([46)o(].)987 2762 y(9)p eop
%%Page: 10 10
10 9 bop 135 43 a Fv(Computing)15 b(the)j(SVD)f(of)g
Fp(A)g Fv(via)f(the)i(eigensystems)g(of)e(either)j Fp(A)1231
28 y Fo(T)1257 43 y Fp(A)e Fv(or)g Fp(AA)1421 28 y Fo(T)1465
43 y Fv(ma)o(y)e(b)q(e)j(adequate)g(for)f(de-)75 118
y(termining)f(the)i(largest)g(singular)f(triplets)h(of)f
Fp(A)p Fv(,)h(but)g(the)g(loss)g(of)f(accuracy)h(can)g(b)q(e)g(sev)o
(ere)i(for)d(the)h(smallest)75 193 y(singular)f(triplets)h(\(see)g([11)
o(]\).)29 b(Whereas)18 b(the)g(smallest)e(and)i(largest)f(singular)g(v)
n(alues)g(of)g Fp(A)g Fv(are)h(the)g(extremes)75 267
y(of)d(the)i(sp)q(ectrum)f(of)g Fp(A)462 252 y Fo(T)488
267 y Fp(A)g Fv(or)g Fp(AA)650 252 y Fo(T)676 267 y Fv(,)g(the)h
(smallest)d(singular)h(v)n(alues)h(of)f Fp(A)h Fv(lie)g(at)g(the)g(cen)
o(ter)i(of)d(the)h(sp)q(ectrum)75 342 y(of)i Fp(B)i Fv(in)e(\(5\).)31
b(F)m(or)18 b(computed)g(eigenpairs)g(of)g Fp(A)883 327
y Fo(T)909 342 y Fp(A)g Fv(and)g Fp(AA)1105 327 y Fo(T)1132
342 y Fv(,)h(the)f(norms)g(of)f(the)i Fp(i)p Fv(-th)g(eigenpair)f
(residuals)75 417 y(\(corresp)q(onding)d(to)f(\(6\)\))g(are)g(giv)o(en)
f(b)o(y)697 530 y Fr(k)p Fp(r)737 536 y Fo(i)750 530
y Fr(k)771 536 y Fq(2)801 530 y Fv(=)f Fr(k)p Fp(A)897
513 y Fo(T)923 530 y Fp(A)r Fv(~)-23 b Fp(v)974 536 y
Fo(i)997 530 y Fr(\000)12 b Fv(~)-23 b Fp(\033)1064 513
y Fq(2)1063 540 y Fo(i)1084 530 y Fv(~)g Fp(v)1102 536
y Fo(i)1116 530 y Fr(k)1137 536 y Fq(2)1170 530 y Fp(=)13
b Fr(k)r Fv(~)-23 b Fp(v)1245 536 y Fo(i)1259 530 y Fr(k)1280
536 y Fq(2)75 643 y Fv(and)679 756 y Fr(k)p Fp(r)719
762 y Fo(i)732 756 y Fr(k)753 762 y Fq(2)783 756 y Fv(=)12
b Fr(k)p Fp(AA)910 739 y Fo(T)938 756 y Fv(~)-23 b Fp(u)960
762 y Fo(i)983 756 y Fr(\000)11 b Fv(~)-23 b Fp(\033)1049
739 y Fq(2)1048 767 y Fo(i)1071 756 y Fv(~)f Fp(u)1092
762 y Fo(i)1106 756 y Fr(k)1127 762 y Fq(2)1159 756 y
Fp(=)13 b Fr(k)s Fv(~)-24 b Fp(u)1238 762 y Fo(i)1252
756 y Fr(k)1273 762 y Fq(2)1305 756 y Fp(;)75 870 y Fv(resp)q(ectiv)o
(ely)m(.)19 b(Th)o(us,)13 b(extremely)g(high)f(precision)i(in)f
(computed)f(eigenpairs)i(ma)o(y)d(b)q(e)j(necessary)h(to)e(compute)f
(the)75 944 y(smallest)g(singular)h(triplets)g(of)g Fp(A)p
Fv(.)18 b(Di\016culties)12 b(in)h(appro)o(ximating)d(the)k(smallest)e
(singular)h(v)n(alues)g(b)o(y)g(an)o(y)g(of)f(the)75
1019 y(three)j(equiv)n(alen)o(t)e(symmetric)g(eigen)o(v)n(alue)g
(problems)g(are)h(discussed)i(in)d([4)o(].)165 1122 y
Ft(3.2.)24 b(Subspace)13 b(Iteration.)19 b Fv(Subspace)14
b(iteration)f(is)g(p)q(erhaps)h(one)g(of)e(the)i(simplest)e(algorithms)
f(used)j(to)75 1197 y(solv)o(e)f(large)g(sparse)h(eigen)o(v)n(alue)e
(problems.)17 b(As)d(discussed)g(in)f([33)o(],)f(it)h(can)g(b)q(e)h
(view)o(ed)f(as)g(a)g(blo)q(c)o(k)g(generalization)75
1271 y(of)j(the)i(classical)e(p)q(o)o(w)o(er)h(metho)q(d.)27
b(The)17 b(simplest)f(v)o(ersion)h(of)f(subspace)j(iteration)d(w)o(as)h
(in)o(tro)q(duced)g(b)o(y)g(Bauer)75 1346 y(\([3)o(]\))d(and)g(if)f
(adapted)h(to)g(the)g(matrix)e Fp(B)k Fv(in)e(\(5\))g(w)o(ould)f(in)o
(v)o(olv)o(e)f(forming)g(the)i(sequence)882 1459 y Fp(Z)910
1465 y Fo(k)943 1459 y Fv(=)d Fp(B)1019 1442 y Fo(k)1040
1459 y Fp(Z)1068 1465 y Fq(0)1101 1459 y Fp(;)75 1572
y Fv(where)16 b Fp(Z)224 1578 y Fq(0)256 1572 y Fv(=)d([)p
Fp(z)332 1578 y Fq(1)350 1572 y Fp(;)7 b(z)388 1578 y
Fq(2)407 1572 y Fp(;)g Fr(\001)g(\001)g(\001)t Fp(;)g(z)518
1578 y Fo(s)536 1572 y Fv(])14 b(is)g(an)h(\()p Fp(m)10
b Fv(+)g Fp(n)p Fv(\))g Fr(\002)g Fp(s)p Fv(.)21 b(If)14
b(the)h(column)e(v)o(ectors,)j Fp(z)1345 1578 y Fo(i)1359
1572 y Fv(,)e(are)h(normalized)e(separately)j(\(as)75
1647 y(done)e(in)f(the)i(p)q(o)o(w)o(er)f(metho)q(d\),)f(then)h(these)h
(v)o(ectors)g(will)e(con)o(v)o(erge)h(to)g(the)g(dominan)o(t)e(eigen)o
(v)o(ector)i(of)g Fp(B)r Fv(.)k(Th)o(us,)75 1722 y(the)d(matrix)d
Fp(Z)310 1728 y Fo(k)345 1722 y Fv(will)h(progressiv)o(ely)i(lose)f
(the)h(linear)e(indep)q(endence)k(of)d(its)g(columns.)k(In)c(order)h
(to)f(appro)o(ximate)75 1797 y(the)i Fp(p)p Fv(-largest)g(eigenpairs)g
(of)f Fp(B)r Fv(,)h(Bauer)h(demonstrated)e(that)h(linear)f(indep)q
(endence)j(among)c(the)i Fp(z)1707 1803 y Fo(i)1721 1797
y Fv('s)g(could)f(b)q(e)75 1871 y(main)o(tained)i(if)i(they)h(w)o(ere)g
(orthogonalized)f(at)h(eac)o(h)g(step,)h(sa)o(y)f(b)o(y)f(a)g(mo)q
(di\014ed)f(Gram-Sc)o(hmidt)f(pro)q(cedure.)75 1946 y(Ho)o(w)o(ev)o
(er,)i(the)f(con)o(v)o(ergence)i(rate)e(of)g(the)g Fp(z)803
1952 y Fo(i)817 1946 y Fv('s)g(to)g(eigen)o(v)o(ectors)h(of)e
Fp(B)k Fv(w)o(ould)c(only)g(b)q(e)i(linear.)29 b(F)m(or)18
b(example,)75 2021 y(supp)q(ose)d(w)o(e)f(de\014ne)h
Fp(E)443 2027 y Fo(k)477 2021 y Fv(as)f(the)h(linear)e(space)i(spanned)
g(b)o(y)e(the)i Fp(k)f Fv(columns)f(of)g Fp(Z)1390 2027
y Fo(k)1425 2021 y Fv(so)h(that)734 2134 y Fp(E)765 2140
y Fo(k)797 2134 y Fv(=)e Fr(f)p Fp(z)r Fr(j)p Fp(z)h
Fv(=)981 2123 y(~)971 2134 y Fp(B)r(x;)20 b(x)12 b Fr(2)f
Fp(E)1166 2140 y Fo(k)q Fu(\000)p Fq(1)1228 2134 y Fr(g)p
Fp(;)75 2247 y Fv(where)207 2237 y(~)197 2247 y Fp(B)18
b Fv(=)e Fp(B)d Fv(+)e Fp(\015)r(I)422 2253 y Fo(m)p
Fq(+)p Fo(n)517 2247 y Fv(and)16 b Fp(\015)j Fv(is)d(c)o(hosen)h(so)f
(that)974 2237 y(~)964 2247 y Fp(B)j Fv(is)d(\(symmetric\))e(p)q
(ositiv)o(e)i(de\014nite.)26 b(As)16 b(illustrated)g(in)75
2322 y([36)o(],)d(the)h(existence)i(of)878 2435 y(\026)-24
b Fp(z)14 b Fv(=)25 b(lim)952 2462 y Fo(k)q Fu(!1)1043
2435 y Fp(E)1074 2441 y Fo(k)1108 2435 y Fp(;)75 2548
y Fv(is)14 b(assured)h(and)f(the)g(angle,)f(\010)567
2527 y Fq(\()p Fo(k)q Fq(\))567 2560 y Fo(j)613 2548
y Fv(,)h(b)q(et)o(w)o(een)h(the)g Fp(j)r Fv(-th)f(eigen)o(v)o(ector)h
(of)1230 2538 y(~)1220 2548 y Fp(B)h Fv(and)e Fp(E)1379
2554 y Fo(k)1413 2548 y Fv(w)o(ould)f(b)q(e)857 2678
y Fr(O)898 2620 y Fm(\022)934 2650 y Fp(\033)958 2656
y Fo(s)984 2650 y Fv(+)d Fp(\015)p 934 2669 116 2 v 934
2707 a(\033)958 2713 y Fo(j)984 2707 y Fv(+)g Fp(\015)1055
2620 y Fm(\023)1085 2628 y Fo(k)1126 2678 y Fp(;)-1063
b Fv(\(7\))977 2762 y(10)p eop
%%Page: 11 11
11 10 bop 75 43 a Fv(where)16 b Fp(\033)220 49 y Fo(j)252
43 y Fv(is)f(the)h Fp(j)r Fv(-th)f(largest)h(singular)e(v)n(alue)g(of)h
(the)g Fp(m)c Fr(\002)f Fp(n)15 b Fv(matrix)e Fp(A)p
Fv(.)22 b(Hence,)16 b(one)f(should)g(c)o(ho)q(ose)h Fp(\015)h
Fv(to)e(b)q(e)75 118 y(as)f(small)e(as)i(p)q(ossible.)135
193 y(The)e(most)e(sophisticated)j(implemen)o(tati)o(on)c(of)i
(subspace)i(iteration)e(is)h(that)f(of)g(Rutishauser's)h
Fs(ritzit)f Fv(program)75 267 y(\(see)j([37)o(]\).)k(This)12
b(particular)h(algorithm)d(incorp)q(orates)k(b)q(oth)f(a)f(Ra)o
(yleigh-Ritz)f(pro)q(cedure)k(and)d(acceleration)i(via)75
342 y(Cheb)o(yshev)k(p)q(olynomials.)26 b(The)17 b(iteration)g(whic)o
(h)g(em)o(b)q(o)q(dies)g(the)h Fs(ritzit)e Fv(program)f(is)i(giv)o(en)g
(in)g(T)m(able)g(3.)28 b(The)75 417 y(Ra)o(yleigh)10
b(Quotien)o(t)j(matrix,)d Fp(H)597 423 y Fo(k)617 417
y Fv(,)i(in)g(step)h(\(3\))f(is)g(essen)o(tially)g(the)h(pro)r(jection)
f(of)1397 406 y(~)1387 417 y Fp(B)1420 402 y Fq(2)1451
417 y Fv(on)o(to)g(the)g(span\()p Fp(Z)1739 423 y Fo(k)q
Fu(\000)p Fq(1)1803 417 y Fv(\).)18 b(The)75 492 y(three-term)e
(recurrence)i(in)c(step)i(\(6\))f(follo)o(ws)e(from)g(the)j(adaptation)
e(of)g(the)i(Cheb)o(yshev)g(p)q(olynomial)11 b(of)k(degree)75
566 y Fp(q)q Fv(,)g(sa)o(y)g Fp(T)219 572 y Fo(q)238
566 y Fv(\()p Fp(x)p Fv(\),)g(to)g(the)h(in)o(terv)n(al)e([)p
Fr(\000)p Fp(e;)7 b(e)p Fv(],)14 b(where)j Fp(e)e Fv(is)g(c)o(hosen)h
(to)g(b)q(e)f(the)h(smallest)e(eigen)o(v)n(alue)h(of)f
Fp(H)1696 572 y Fo(k)1716 566 y Fv(.)22 b(W)m(e)15 b(recall)75
641 y(that)f(the)g(Cheb)o(yshev)h(p)q(olynomial)c Fp(T)684
647 y Fo(q)702 641 y Fv(\()p Fp(x)p Fv(\),)j(of)f(the)i(\014rst)f
(kind,)f(can)h(b)q(e)h(de\014ned)g(as)581 780 y Fp(T)605
786 y Fo(q)624 780 y Fv(\()p Fp(x)p Fv(\))c(=)735 695
y Fm(8)735 733 y(<)735 807 y(:)793 748 y Fp(cos)p Fv(\()p
Fp(q)k(ar)q(ccos)p Fv(\()p Fp(x)p Fv(\)\))p Fp(;)89 b
Fv(if)14 b Fr(j)p Fp(x)p Fr(j)c(\024)i Fv(1)o Fp(;)793
822 y(cosh)p Fv(\()p Fp(q)j(ar)q(ccosh)p Fv(\()p Fp(x)p
Fv(\)\))p Fp(;)41 b Fv(otherwise)1398 780 y Fp(:)-1335
b Fv(\(8\))135 925 y(This)15 b(use)h(of)f(Cheb)o(yshev)h(p)q(olynomial)
o(s)d(has)i(the)h(desired)g(e\013ects)h(of)e(damping)e(un)o(w)o(an)o
(ted)i(eigen)o(v)n(alues)g(of)1896 915 y(~)1886 925 y
Fp(B)75 1000 y Fv(\(or)f Fp(B)r Fv(\))h(and)e(pro)q(ducing)h(an)g
(impro)o(v)o(ed)e(rate)i(of)g(con)o(v)o(ergence)885 1113
y Fr(O)926 1054 y Fm(\022)962 1085 y Fp(T)986 1091 y
Fo(q)1005 1085 y Fv(\()p Fp(\022)1040 1091 y Fo(s)1058
1085 y Fv(\))p 962 1103 113 2 v 962 1141 a Fp(T)986 1147
y Fo(q)1004 1141 y Fv(\()p Fp(\022)1039 1147 y Fq(1)1058
1141 y Fv(\))1080 1054 y Fm(\023)75 1226 y Fv(whic)o(h)j(is)h
(considerably)g(smaller)e(in)h(magnitude)f(than)h(the)h(original)e
(rate)i(of)f(con)o(v)o(ergence)i Fp(\022)1615 1232 y
Fo(s)1634 1226 y Fp(=\022)1674 1232 y Fq(1)1710 1226
y Fv(\()p Fp(\022)1745 1232 y Fq(1)1782 1226 y Fr(\025)f
Fp(\022)1851 1232 y Fq(2)1888 1226 y Fr(\025)75 1301
y(\001)7 b(\001)g(\001)12 b(\025)i Fp(\022)202 1307 y
Fo(s)220 1301 y Fv(\),)h(where)i Fp(\022)404 1307 y Fo(i)433
1301 y Fv(are)e(the)h(eigen)o(v)n(alues)f(of)g Fp(H)876
1307 y Fo(k)911 1301 y Fv(giv)o(en)f(b)o(y)h(the)h(square)g(ro)q(ots)f
(of)g(the)h(diagonal)d(matrix)g(\001)1850 1286 y Fq(2)1850
1312 y Fo(k)1885 1301 y Fv(in)75 1375 y(step)k(\(4\))g(of)f(T)m(able)f
(3.)25 b(W)m(e)16 b(note)h(that)g(if)e(the)i(matrix)e
Fp(B)k Fv(is)d(used)h(to)f(compute)g(indirectly)h(the)g(singular)e(v)n
(alues)75 1450 y(of)e Fp(A)p Fv(,)g(w)o(e)g(certainly)h(forfeit)f(the)h
(p)q(ositiv)o(e)f(de\014niteness)i(in)e(the)h(equiv)n(alen)o(t)f
(symmetric)e(eigen)o(v)n(alue)i(problem)f(and)75 1525
y(m)o(ust)k(c)o(ho)q(ose)i(an)f(initial)e(subspace)j(of)f(dimension)e
Fp(s)i Fr(\025)g Fv(2)p Fp(p)g Fv(in)f(order)i(to)f(appro)o(ximate)e
(the)j Fp(p)p Fv(-largest)f(singular)75 1599 y(v)n(alues)f(of)f
Fp(A)p Fv(,)h Fp(\033)333 1605 y Fo(i)346 1599 y Fv(,)g(whic)o(h)g(o)q
(ccur)h(as)f Fr(\006)p Fp(\033)718 1605 y Fo(i)747 1599
y Fv(within)g(the)g(in)o(terv)n(al)f([)p Fr(\000)p Fp(\022)1167
1605 y Fo(s)1185 1599 y Fp(;)7 b(\022)1223 1605 y Fo(s)1241
1599 y Fv(].)23 b(T)m(o)15 b(circum)o(v)o(en)o(t)h(this)f(problem)g(in)
g(the)75 1674 y Fs(ritzit)d Fv(program,)g(one)i(instead)g(ma)o(y)e
(compute)i(the)g(eigen)o(v)o(ectors)h(of)f(the)g(2-cyclic)g(matrix)818
1799 y(~)808 1810 y Fp(B)g Fv(=)897 1726 y Fm(0)897 1801
y(@)960 1777 y Fp(\015)r(I)59 b(A)954 1852 y(A)985 1837
y Fo(T)1053 1852 y Fp(\015)r(I)1119 1726 y Fm(1)1119
1801 y(A)1176 1810 y Fp(;)-1113 b Fv(\(9\))75 1955 y(where)14
b Fp(\015)h Fv(is)d(an)g(estimate)g(for)g(the)h(largest)g(singular)e(v)
n(alue)h(of)g Fp(A)p Fv(,)g(or)g(c)o(ho)q(ose)1307 1944
y(~)1298 1955 y Fp(B)i Fv(=)d Fp(A)1417 1940 y Fo(T)1444
1955 y Fp(A)h Fv(and)g(solv)o(e)h(the)g(equiv)n(alen)o(t)75
2029 y Fp(n)p Fv(-th)19 b(order)g(symmetric)e(p)q(ositiv)o(e)h
(de\014nite)h(eigen)o(v)n(alue)f(problem)g(\(see)i(Section)f(3.1\).)31
b(In)19 b(practice,)h Fp(\015)h Fv(can)e(b)q(e)75 2104
y(c)o(hosen)e(as)f(either)h Fr(k)p Fp(A)p Fr(k)456 2110
y Fq(1)490 2104 y Fv(or)f Fr(k)p Fp(A)p Fr(k)616 2110
y Fu(1)666 2104 y Fv(dep)q(ending)h(up)q(on)f(the)g(sparse)i(data)d
(structure)j(used)f(to)f(store)h(the)f(nonzero)75 2179
y(elemen)o(ts)i(\(ro)o(w)g(or)g(column-wise\).)30 b(Once,)20
b(the)e(eigen)o(v)o(ectors)i(of)1181 2168 y(~)1171 2179
y Fp(B)h Fv(ha)o(v)o(e)d(b)q(een)h(determined,)g(one)f(can)g(easily)75
2253 y(reco)o(v)o(er)c(the)f(eigen)o(v)n(alues)f(of)g
Fp(B)j Fv(via)d(Ra)o(yleigh)f(quotien)o(ts.)18 b(T)m(able)12
b(4)g(lists)g(three)i(p)q(ossible)f(Cheb)o(yshev)h(in)o(terv)n(als)e
(of)75 2328 y(the)h(form)e([)p Fr(\000)p Fp(e;)c(e)p
Fv(])12 b(asso)q(ciated)h(with)g(op)q(erators)g(of)f(equiv)n(alen)o(t)g
(symmetric)f(eigen)o(v)n(alue)h(problems)g(for)g(the)h(SVD)g(of)75
2403 y(the)j(matrix)e Fp(A)p Fv(.)23 b(Although,)14 b(an)o(y)h(of)g
(these)i(three)g(in)o(terv)n(als)e(can)h(b)q(e)g(used)g(for)f(damping)f
(un)o(w)o(an)o(ted)h(eigen)o(v)n(alues)75 2478 y(of)f
Fp(B)j Fv(or)232 2467 y(~)222 2478 y Fp(B)r Fv(,)d(the)h(smallest)e(in)
o(terv)n(al)h(asso)q(ciated)h(with)f(the)h(2-cyclic)f(matrix)e
Fp(B)17 b Fv(will)c(certainly)h(pro)o(vide)g(the)h(most)75
2552 y(e\016cien)o(t)c(damping)d(\(lo)o(w)h(degree)j(Cheb)o(yshev)g(p)q
(olynomial)o(s)c Fp(T)1062 2558 y Fo(q)1080 2552 y Fv(\()p
Fp(x)p Fv(\)\).)17 b(T)m(o)10 b(compute)g(the)h Fp(p)p
Fv(-largest)f(singular)g(triplets)75 2627 y(of)j Fp(A)g
Fv(via)f(the)i(eigensystem)f(of)g Fp(B)r Fv(,)g(one)h(m)o(ust)e(then)i
(select)g Fp(s)e Fr(\025)g Fv(2)p Fp(p)p Fv(,)g(and)h(th)o(us)h
(iterate)g(within)e(a)h(subspace)i(ha)o(ving)75 2702
y(t)o(wice)f(the)h(dimension)d(of)h(the)i(eigenspace)g(sough)o(t.)977
2762 y(11)p eop
%%Page: 12 12
12 11 bop 135 43 a Fv(The)18 b(primary)e(cost)i(of)g(this)f(iterativ)o
(e)h(metho)q(d)f(lies)g(in)g(the)i(total)e(n)o(um)o(b)q(er)g(of)g
(sparse)i(matrix-v)o(ector)d(m)o(ul-)75 118 y(tiplications)g(required.)
27 b(If)17 b Fp(s)f Fr(\025)h Fp(p)g Fv(v)o(ectors,)h
Fp(z)822 124 y Fo(i)836 118 y Fv(,)f(are)g(used)h(to)e(appro)o(ximate)f
(the)i Fp(p)p Fv(-largest)g(eigen)o(v)o(ectors)h(of)e(the)75
193 y(\()p Fp(m)10 b Fv(+)f Fp(n)p Fv(\))h Fr(\002)f
Fv(\()p Fp(m)h Fv(+)f Fp(n)p Fv(\))14 b(matrix)573 182
y(~)563 193 y Fp(B)s Fv(,)f(the)i(cost)f(in)g(\015oating-p)q(oin)o(t)e
(op)q(erations)i(p)q(er)h(iteration)e(w)o(ould)h(b)q(e)701
308 y Fp(s)c Fr(\002)f Fv([2\(1)g(+)g Fp(\026)916 314
y Fo(r)935 308 y Fv(\))p Fp(m)23 b Fv(+)h(2\(1)8 b(+)i
Fp(\026)1199 314 y Fo(c)1216 308 y Fv(\))p Fp(n)p Fv(])j
Fp(;)-1219 b Fv(\(10\))75 424 y(where)13 b Fp(\026)218
430 y Fo(r)249 424 y Fv(and)f Fp(\026)353 430 y Fo(c)382
424 y Fv(are)h(the)g(a)o(v)o(erage)f(n)o(um)o(b)q(er)f(of)h(nonzeros)h
(p)q(er)g(ro)o(w)f(and)g(column,)f(resp)q(ectiv)o(ely)m(.)18
b(The)13 b(n)o(um)o(b)q(er)f(of)75 499 y(sparse)i(matrix-v)o(ector)e(m)
o(ultiplications)e(is)j(one)h(p)q(erformance)f(metric)f(that)h(w)o(e)h
(shall)e(use)i(in)f(Section)g(5)g(to)g(assess)75 573
y(the)19 b(complexit)o(y)f(of)g(our)h(candidate)g(iterativ)o(e)g(metho)
q(ds)f(for)h(computing)e(the)i(sparse)i(SVD.)d(The)h(orthogonal)p
546 641 904 2 v 545 715 2 75 v 1448 715 V 545 790 V 571
768 a(\(1\))50 b(Compute)12 b Fp(C)883 774 y Fo(k)953
768 y Fv(=)1045 757 y(~)1035 768 y Fp(B)s(Z)1097 774
y Fo(k)q Fu(\000)p Fq(1)p 1448 790 V 545 865 V 571 842
a Fv(\(2\))50 b(F)m(actor)13 b Fp(C)833 848 y Fo(k)953
842 y Fv(=)50 b Fp(Q)1068 848 y Fo(k)1089 842 y Fp(R)1121
848 y Fo(k)p 1448 865 V 545 939 V 571 917 a Fv(\(3\))g(F)m(orm)12
b Fp(H)818 923 y Fo(k)953 917 y Fv(=)50 b Fp(R)1067 923
y Fo(k)1087 917 y Fp(R)1119 902 y Fo(T)1119 929 y(k)p
1448 939 V 545 1014 V 571 992 a Fv(\(4\))g(F)m(actor)13
b Fp(H)838 998 y Fo(k)953 992 y Fv(=)50 b Fp(P)1062 998
y Fo(k)1082 992 y Fv(\001)1117 977 y Fq(2)1117 1004 y
Fo(k)1137 992 y Fp(P)1170 977 y Fo(T)1164 1004 y(k)p
1448 1014 V 545 1089 V 571 1066 a Fv(\(5\))g(F)m(orm)12
b Fp(Z)811 1072 y Fo(k)953 1066 y Fv(=)50 b Fp(Q)1068
1072 y Fo(k)1089 1066 y Fp(P)1116 1072 y Fo(k)p 1448
1089 V 545 1164 V 571 1141 a Fv(\(6\))g(Iterate)15 b
Fp(Z)837 1147 y Fo(k)q Fq(+)p Fo(j)953 1141 y Fv(=)1040
1125 y Fq(2)p 1040 1132 17 2 v 1040 1156 a Fo(e)1086
1131 y Fv(~)1076 1141 y Fp(B)r(Z)1137 1147 y Fo(k)q Fq(+)p
Fo(j)r Fu(\000)p Fq(1)1251 1141 y Fr(\000)9 b Fp(Z)1320
1147 y Fo(k)q Fq(+)p Fo(j)r Fu(\000)p Fq(2)p 1448 1164
2 75 v 545 1238 V 1035 1216 a Fv(\()p Fp(j)15 b Fv(=)c(2)p
Fp(;)c(:::;)g(q)q Fv(\))p 1448 1238 V 546 1240 904 2
v 917 1333 a Fn(T)l(able)16 b(3)458 1407 y Fs(Subsp)n(ac)n(e)g(Iter)n
(ation)e(as)h(implemente)n(d)g(in)g(R)o(utishauser's)g
Ft(ritzit)d Fs(.)75 1581 y Fv(factorization)17 b(in)f(step\(2\))j(of)d
(T)m(able)h(3)g(ma)o(y)e(b)q(e)j(computed)f(b)o(y)g(a)g(mo)q(di\014ed)f
(Gram-Sc)o(hmi)o(dt)f(pro)q(cedure)k(or)e(b)o(y)75 1656
y(Householder)i(transformations)e(pro)o(vided)h(that)h(the)g
(orthogonal)e(matrix)f Fp(Q)1350 1662 y Fo(k)1389 1656
y Fv(is)i(explicitly)f(a)o(v)n(ailable)f(for)i(the)75
1730 y(computation)c(of)i Fp(Z)397 1736 y Fo(k)434 1730
y Fv(in)f(step)i(\(5\).)25 b(On)16 b(m)o(ultipro)q(cessor)g(arc)o
(hitectures,)i(esp)q(ecially)e(those)h(ha)o(ving)e(hierarc)o(hical)75
1805 y(memories)f(suc)o(h)j(as)g(the)g(Allian)o(t)d(FX/80)i(and)g(Cra)o
(y-2S,)f(one)i(ma)o(y)d(ac)o(hiev)o(e)j(high)e(p)q(erformance)i(\(with)
f(a)g(sligh)o(t)75 1880 y(increase)f(in)e(the)h(total)f(n)o(um)o(b)q
(er)g(of)g(arithmetic)g(op)q(erations\))h(b)o(y)f(using)g(either)i(a)e
(blo)q(c)o(k)g(Gram-Sc)o(hmidt)e(or)i(blo)q(c)o(k)75
1955 y(Householder)f(orthogonalization)e(metho)q(d)g(in)h(step\(2\).)18
b(As)12 b(discussed)h(in)e([18)o(],)g(signi\014can)o(t)g(impro)o(v)o
(emen)o(ts)e(in)i(the)75 2029 y(algorithmic)j(p)q(erformance)i(of)f
(fundamen)o(tal)f(linear)i(algebra)g(k)o(ernels)h(ma)o(y)d(b)q(e)j
(gained)f(through)g(the)h(impro)o(v)o(ed)75 2104 y(data)e(lo)q(calit)o
(y)f(asso)q(ciated)h(with)g(blo)q(c)o(k-based)h(metho)q(ds.)21
b(T)m(o)14 b(impro)o(v)o(e)g(up)q(on)h(the)h(t)o(w)o(o-sided)f(Jacobi)g
(algorithm)75 2179 y(originally)d(suggested)k(b)o(y)f(Rutishauser)g
(\([36)o(]\))g(for)f(the)h(sp)q(ectral)h(decomp)q(osition)d(\(step)j
(\(4\)\))f(in)f Fs(ritzit)p Fv(,)f(one)i(ma)o(y)75 2253
y(emplo)o(y)h(a)i(parallel)f(t)o(w)o(o-)h(or)g(one-sided)g(Jacobi)g
(metho)q(d)g(\(see)h([6)o(]\))f(on)g(a)g(m)o(ultipro)q(cessor.)30
b(In)18 b(fact,)h(the)g(one-)75 2328 y(sided)f(Jacobi)f(sc)o(heme,)h
(when)g(appropriately)f(adapted)g(for)g(symmetric)f(p)q(ositiv)o(e)h
(de\014nite)h(matrices)f(\(see)i([6)o(]\),)75 2403 y(is)f(quite)f
(appropriate)h(for)f(step\(4\))i(pro)o(vided)f(the)g(dimension)e(of)h
(the)h(curren)o(t)h(subspace,)h Fp(s)p Fv(,)f(is)e(not)h(to)q(o)f
(large)75 2478 y(\(e.g.,)f Fp(s)g Fr(\024)h Fv(100\).)25
b(F)m(or)16 b(larger)g(subspaces,)j(an)d(optimized)f(implemen)o(tation)
e(of)j(the)h(classical)f(EISP)m(A)o(CK)h(\([44)o(]\))75
2552 y(pair,)11 b(TRED2)g(and)h(TQL2,)f(or)h(Cupp)q(en's)g(algorithm)d
(as)j(parallelized)f(b)o(y)h(Dongarra)f(and)g(Sorensen)i(\([15)o(]\))f
(w)o(ould)75 2627 y(su\016ce)j(for)e(step)i(\(4\).)135
2702 y(In)i(the)h(next)g(section,)h(w)o(e)e(discuss)i(an)e(alternativ)o
(e)g(subspace)i(metho)q(d)e(whic)o(h)g(w)o(ould)g(app)q(ear)h(to)f(b)q
(e)h(more)977 2762 y(12)p eop
%%Page: 13 13
13 12 bop 763 3 470 2 v 762 78 2 75 v 870 56 a Fp(B)r
Fv(,)939 45 y(~)929 56 y Fp(B)182 b(e)p 1231 78 V 763
80 470 2 v 762 155 2 75 v 1231 155 V 762 304 2 150 v
794 156 a Fm(0)794 231 y(@)863 207 y Fp(O)56 b(A)851
282 y(A)882 267 y Fo(T)950 282 y Fp(O)1003 156 y Fm(1)1003
231 y(A)1133 240 y Fp(\022)1152 246 y Fo(s)p 1231 304
V 762 379 2 75 v 1231 379 V 762 528 2 150 v 788 380 a
Fm(0)788 455 y(@)851 431 y Fp(\015)r(I)j(A)845 506 y(A)876
491 y Fo(T)943 506 y Fp(\015)r(I)1010 380 y Fm(1)1010
455 y(A)1096 464 y Fp(\022)1115 470 y Fo(s)1142 464 y
Fv(+)10 b Fp(\015)p 1231 528 V 762 603 2 75 v 1231 603
V 762 678 V 873 655 a(A)904 640 y Fo(T)930 655 y Fp(A)171
b(\022)1152 640 y Fq(2)1151 665 y Fo(s)p 1231 678 V 762
752 V 1231 752 V 763 754 470 2 v 917 847 a Fn(T)l(able)16
b(4)335 921 y Fs(Intervals)f(for)f(Polynomial)h(A)n(c)n(c)n(eler)n
(ation)f(within)g(Subsp)n(ac)n(e)i(Iter)n(ation)e(Metho)n(d.)75
1094 y Fv(suitable)i(for)g(m)o(ultipro)q(cessors)h(than)f(subspace)i
(iteration)e(in)g(that)g(the)h(desired)h(singular)e(triplets)g(are)h
(iterated)75 1169 y(up)q(on)d(\(for)g(the)g(most)f(part\))h(in)f
(parallel.)165 1272 y Ft(3.3.)24 b(T)l(race)12 b(Minimization)c(Metho)q
(d.)20 b Fv(Another)11 b(candidate)g(subspace)h(metho)q(d)e(for)g(the)h
(SVD)f(of)g(sparse)75 1347 y(matrices)j(is)h(based)g(up)q(on)g(the)g
(trace)h(minimi)o(zation)10 b(algorithm)i(discussed)j(in)e([40)o(])h
(and)f([49)o(])g(for)h(the)g(generalized)75 1422 y(eigen)o(v)n(alue)f
(problem)886 1537 y Fp(H)s(x)e Fv(=)h Fp(\025Gx)h(;)-1034
b Fv(\(11\))75 1652 y(where)12 b Fp(H)i Fv(and)d Fp(G)g
Fv(are)h(symmetric)d(and)i Fp(G)g Fv(is)g(also)g(p)q(ositiv)o(e)g
(de\014nite.)17 b(In)12 b(order)g(to)f(compute)f(the)i(SVD)f(of)g(an)g
Fp(m)t Fr(\002)t Fp(n)75 1726 y Fv(matrix)f(A,)h(w)o(e)i(initially)c
(replace)k Fp(H)h Fv(with)764 1716 y(~)754 1726 y Fp(B)g
Fv(as)e(de\014ned)h(in)e(\(9\))h(or)g(set)h Fp(H)h Fv(=)e
Fp(A)1336 1711 y Fo(T)1362 1726 y Fp(A)p Fv(.)18 b(Since)12
b(w)o(e)g(need)h(only)e(consider)75 1801 y(equiv)n(alen)o(t)j(standard)
h(symmetric)d(eigen)o(v)n(alue)i(problems)g(\(see)h(Section)g(3)p
Fp(:)p Fv(1\),)e(w)o(e)i(simply)d(de\014ne)k Fp(G)c Fv(=)h
Fp(I)1775 1807 y Fo(m)p Fq(+)p Fo(n)1867 1801 y Fv(\(or)75
1876 y Fp(I)93 1882 y Fo(n)135 1876 y Fv(if)18 b Fp(H)k
Fv(=)e Fp(A)318 1861 y Fo(T)344 1876 y Fp(A)p Fv(\).)33
b(Accordingly)m(,)19 b(our)g(appropriate)g(trace)h(minim)o(izatio)o(n)c
(SVD)j(sc)o(heme)g(\()p Fl(TRSVD)p Fv(\))g(is)f(then)75
1951 y(based)d(up)q(on)g(the)h(follo)o(wing)c(theorem)i(whic)o(h)h(is)g
(a)f(direct)i(consequence)h(of)d(the)i(Couran)o(t-Fisc)o(her)f(theorem)
g(\(see)75 2025 y([47)o(]\).)24 b(Without)15 b(loss)h(of)f(generalit)o
(y)m(,)g(let)h(us)h(assume)e(that)h Fp(H)i Fv(=)1158
2015 y(~)1148 2025 y Fp(B)s Fv(,)e Fp(G)e Fv(=)h Fp(I)1322
2031 y Fo(m)p Fq(+)p Fo(n)1416 2025 y Fv(and)h(consider)h(the)f(asso)q
(ciated)75 2100 y(symmetric)c(eigensystem)i(of)f(order)i
Fp(m)10 b Fv(+)f Fp(n)p Fv(.)135 2175 y Fn(Theorem)19
b(3.3.)30 b Fs(L)n(et)526 2164 y Fv(~)516 2175 y Fp(B)20
b Fs(b)n(e)d(as)h(given)f(in)h Fv(\()p Fs(9)p Fv(\))g
Fs(and)g(let)e(Y)i(b)n(e)f(the)g(set)h(of)f(al)r(l)g
Fv(\()p Fp(m)11 b Fv(+)h Fp(n)p Fv(\))f Fr(\002)g Fp(p)17
b Fs(matric)n(es)g Fp(Y)27 b Fs(for)75 2249 y(which)15
b Fp(Y)225 2234 y Fo(T)251 2249 y Fp(Y)21 b Fv(=)12 b
Fp(I)358 2255 y Fo(p)377 2249 y Fs(.)19 b(Then)694 2376
y Fv(min)692 2403 y Fo(Y)7 b Fu(2Y)773 2376 y Fv(trace)q(\()p
Fp(Y)912 2359 y Fo(T)948 2366 y Fv(~)938 2376 y Fp(B)s(Y)i
Fv(\))j(=)g Fp(p\015)g Fr(\000)1194 2322 y Fo(p)1172
2337 y Fm(X)1175 2425 y Fo(i)p Fq(=1)1239 2376 y Fp(\033)1263
2382 y Fo(i)1291 2376 y Fp(;)75 2512 y Fs(wher)n(e)i
Fp(\033)216 2518 y Fo(i)245 2512 y Fs(is)g(a)h(singular)g(value)g(of)g
Fp(A)p Fs(,)f Fp(\025)722 2518 y Fo(i)748 2512 y Fv(=)e
Fp(\015)g Fr(\006)d Fp(\033)890 2518 y Fo(i)919 2512
y Fs(is)14 b(an)i(eigenvalue)f(of)1282 2502 y Fv(~)1272
2512 y Fp(B)s Fs(,)f(and)75 2587 y Fp(\033)99 2593 y
Fq(1)129 2587 y Fr(\025)e Fp(\033)197 2593 y Fq(2)227
2587 y Fr(\025)f Fp(:)c(:)g(:)j Fr(\025)i Fp(\033)398
2593 y Fo(p)417 2587 y Fs(.)37 b Fv(Giv)o(en)13 b(an)g(\()p
Fp(m)c Fv(+)g Fp(n)p Fv(\))g Fr(\002)f Fp(p)14 b Fv(matrix)d
Fp(Y)23 b Fv(whic)o(h)13 b(forms)g(a)g Fs(se)n(ction)g
Fv(of)g(the)h(eigen)o(v)n(alue)f(problem)917 2691 y(~)907
2702 y Fp(B)s(z)g Fv(=)f Fp(\025z)k(;)-1013 b Fv(\(12\))977
2762 y(13)p eop
%%Page: 14 14
14 13 bop 75 43 a Fv(i.e.,)770 153 y Fp(Y)803 136 y Fo(T)839
142 y Fv(~)830 153 y Fp(B)r(Y)21 b Fv(=)956 142 y(~)952
153 y(\006)14 b Fp(;)7 b(Y)1047 136 y Fo(T)1073 153 y
Fp(Y)21 b Fv(=)12 b Fp(I)1180 159 y Fo(p)1213 153 y Fp(;)-1150
b Fv(\(13\))773 287 y(~)769 297 y(\006)11 b(=)h(diag\()r(~)-24
b Fp(\033)970 303 y Fq(1)989 297 y Fp(;)8 b Fv(~)-22
b Fp(\033)1032 303 y Fq(2)1050 297 y Fp(;)7 b Fr(\001)g(\001)g(\001)t
Fp(;)i Fv(~)-23 b Fp(\033)1166 303 y Fo(p)1185 297 y
Fv(\))14 b Fp(;)75 407 y Fv(the)g Fl(TRSVD)f Fv(sc)o(heme)g(\014nds)h
(a)f(sequence)i(of)e(iterates)h Fp(Y)958 413 y Fo(k)q
Fq(+1)1032 407 y Fv(=)e Fp(F)6 b Fv(\()p Fp(Y)1149 413
y Fo(k)1169 407 y Fv(\),)13 b(where)h(b)q(oth)g Fp(Y)1451
413 y Fo(k)1484 407 y Fv(and)f Fp(Y)1588 413 y Fo(k)q
Fq(+1)1664 407 y Fv(form)e(a)i(section)75 482 y(of)g(\(12\),)g(and)h
(ha)o(v)o(e)g(the)g(prop)q(ert)o(y)h(trace\()p Fp(Y)778
467 y Fo(T)768 494 y(k)q Fq(+1)841 471 y Fv(~)832 482
y Fp(B)r(Y)889 488 y Fo(k)q Fq(+1)952 482 y Fv(\))f Fp(<)g
Fv(trace\()p Fp(Y)1167 467 y Fo(T)1157 494 y(k)1203 471
y Fv(~)1193 482 y Fp(B)s(Y)1251 488 y Fo(k)1271 482 y
Fv(\).)19 b(F)m(rom)12 b(Theorem)h(3.3,)f(the)j(matrix)d
Fp(Y)75 557 y Fv(in)j(\(13\))f(whic)o(h)h(minim)o(izes)e(trace\()p
Fp(Y)668 541 y Fo(T)704 546 y Fv(~)694 557 y Fp(B)r(Y)d
Fv(\))15 b(is)g(the)g(matrix)e(of)1102 546 y(~)1092 557
y Fp(B)r Fv(-eigen)o(v)o(ectors)k(asso)q(ciated)e(with)g(the)h
Fp(p)p Fv(-smallest)75 631 y(eigen)o(v)n(alues)i(of)f(the)i(problem)e
(\(12\).)30 b(As)18 b(discussed)i(in)e([40)o(])f(and)h([49)o(],)g
Fp(F)6 b Fv(\()p Fp(Y)j Fv(\))18 b(can)h(b)q(e)f(c)o(hosen)h(so)g(that)
f(global)75 706 y(con)o(v)o(ergence)e(is)d(assured.)20
b(Moreo)o(v)o(er,)14 b(\(12\))f(can)h(b)q(e)h(regarded)g(as)f(the)g
(quadratic)g(minim)o(izatio)o(n)d(problem)784 816 y(minimi)o(ze)h
(trace\()q Fp(Y)1101 798 y Fo(T)1137 805 y Fv(~)1128
816 y Fp(B)r(Y)d Fv(\))-1135 b(\(14\))75 925 y(sub)r(ject)15
b(to)f(the)h(constrain)o(ts)892 1035 y Fp(Y)925 1018
y Fo(T)951 1035 y Fp(Y)21 b Fv(=)12 b Fp(I)1058 1041
y Fo(p)1091 1035 y Fp(:)-1028 b Fv(\(15\))75 1144 y(Using)15
b(Lagrange)h(m)o(ultipliers,)d(this)j(quadratic)g(minim)o(izati)o(on)d
(problem)h(leads)i(to)g(solving)e(the)i(\()p Fp(m)11
b Fv(+)g Fp(n)g Fv(+)f Fp(p)p Fv(\))h Fr(\002)75 1219
y Fv(\()p Fp(m)f Fv(+)f Fp(n)g Fv(+)h Fp(p)p Fv(\))k(system)g(of)f
(linear)g(equations)643 1270 y Fm(0)643 1345 y(@)723
1310 y Fv(~)713 1321 y Fp(B)57 b(Y)825 1327 y Fo(k)700
1396 y Fp(Y)734 1381 y Fo(T)724 1407 y(k)813 1396 y Fv(0)866
1270 y Fm(1)866 1345 y(A)910 1270 y(0)910 1345 y(@)967
1321 y Fv(\001)1002 1327 y Fo(k)980 1396 y Fp(L)1043
1270 y Fm(1)1043 1345 y(A)1090 1354 y Fv(=)1134 1270
y Fm(0)1134 1345 y(@)1201 1310 y Fv(~)1191 1321 y Fp(B)s(Y)1249
1327 y Fo(k)1220 1396 y Fv(0)1290 1270 y Fm(1)1290 1345
y(A)1347 1354 y Fp(;)-1284 b Fv(\(16\))75 1488 y(so)13
b(that)g Fp(Y)238 1494 y Fo(k)q Fq(+1)312 1488 y Fr(\021)e
Fp(Y)379 1494 y Fo(k)407 1488 y Fr(\000)c Fv(\001)481
1494 y Fo(k)514 1488 y Fv(will)k(b)q(e)i(an)g(optimal)d(subspace)k
(iterate.)k(W)m(e)12 b(note)h(that)g(P)o(eters)i(and)d(Wilkinson)f
(\([35)o(]\))75 1563 y(also)i(considered)j(equations)d(of)h(this)g
(form)e(in)h(comparing)f(Newton)j(and)e(in)o(v)o(erse)i(iterations.)135
1638 y(Since)h(the)g(matrix)465 1627 y(~)455 1638 y Fp(B)i
Fv(is)d(p)q(ositiv)o(e)h(de\014nite)g(\(b)o(y)f(construction\),)i(one)f
(can)g(alternativ)o(ely)e(consider)j(the)f(inde-)75 1712
y(p)q(enden)o(t)f(\(parallel\))e(subproblems)585 1822
y(minim)o(i)o(ze)f(trace\()j(\()p Fp(y)919 1800 y Fq(\()p
Fo(k)q Fq(\))918 1834 y Fo(j)976 1822 y Fr(\000)9 b Fp(d)1039
1800 y Fq(\()p Fo(k)q Fq(\))1039 1834 y Fo(j)1085 1822
y Fv(\))1101 1805 y Fo(T)1137 1812 y Fv(~)1128 1822 y
Fp(B)r Fv(\()p Fp(y)1198 1800 y Fq(\()p Fo(k)q Fq(\))1197
1834 y Fo(j)1255 1822 y Fr(\000)g Fp(d)1318 1800 y Fq(\()p
Fo(k)q Fq(\))1318 1834 y Fo(j)1364 1822 y Fv(\))14 b(\))-1335
b(\(17\))75 1932 y(sub)r(ject)15 b(to)f(the)h(constrain)o(ts)743
2041 y Fp(Y)776 2024 y Fo(T)802 2041 y Fp(d)824 2020
y Fq(\()p Fo(k)q Fq(\))824 2053 y Fo(j)882 2041 y Fv(=)d(0)h
Fp(;)21 b(j)14 b Fv(=)d(1)p Fp(;)c Fv(2)p Fp(;)g(:)g(:)g(:)t(;)g(p;)75
2151 y Fv(where)15 b Fp(d)217 2129 y Fq(\()p Fo(k)q Fq(\))217
2162 y Fo(j)276 2151 y Fv(=)d(\001)355 2157 y Fo(k)375
2151 y Fp(e)394 2157 y Fo(j)412 2151 y Fv(,)i Fp(e)457
2157 y Fo(j)489 2151 y Fv(is)g(a)h(v)o(ector)g(comp)q(osed)f(of)f(all)g
(zeros)j(except)g(for)e(the)h(v)n(alue)e(1)h(in)g(the)h
Fp(j)r Fv(-th)g(comp)q(onen)o(t,)75 2226 y(and)i Fp(Y)183
2232 y Fo(k)221 2226 y Fv(=)h([)p Fp(y)304 2204 y Fq(\()p
Fo(k)q Fq(\))303 2237 y(1)350 2226 y Fp(;)7 b(y)390 2204
y Fq(\()p Fo(k)q Fq(\))389 2237 y(2)437 2226 y Fp(;)g(:)g(:)g(:)e(;)i
(y)551 2204 y Fq(\()p Fo(k)q Fq(\))550 2230 y Fo(p)597
2226 y Fv(].)28 b(The)18 b(corrections)h(\001)987 2232
y Fo(k)1024 2226 y Fv(in)e(this)h(case)g(are)g(selected)h(to)e(b)q(e)h
(orthogonal)e(to)h(the)75 2300 y(previous)d(estimates)g
Fp(Y)447 2306 y Fo(k)481 2300 y Fv(\(15\),)f(i.e.,)g(so)h(that)g(\(see)
h([28)o(]\))901 2410 y(\001)936 2393 y Fo(T)936 2420
y(k)962 2410 y Fp(Y)986 2416 y Fo(k)1018 2410 y Fv(=)d(0)p
Fp(:)75 2520 y Fv(W)m(e)h(then)i(recast)g(\(16\))f(as)492
2571 y Fm(0)492 2645 y(@)572 2611 y Fv(~)562 2621 y Fp(B)57
b(Y)674 2627 y Fo(k)549 2696 y Fp(Y)582 2681 y Fo(T)573
2708 y(k)662 2696 y Fv(0)715 2571 y Fm(1)715 2645 y(A)758
2571 y(0)758 2645 y(@)815 2621 y Fp(d)837 2600 y Fq(\()p
Fo(k)q Fq(\))837 2633 y Fo(j)843 2696 y Fp(l)904 2571
y Fm(1)904 2645 y(A)952 2654 y Fv(=)996 2571 y Fm(0)996
2645 y(@)1063 2611 y Fv(~)1053 2621 y Fp(B)r(y)1107 2600
y Fq(\()p Fo(k)q Fq(\))1106 2633 y Fo(j)1093 2696 y Fv(0)1175
2571 y Fm(1)1175 2645 y(A)1232 2654 y Fp(;)7 b(j)14 b
Fv(=)e(1)p Fp(;)7 b Fv(2)p Fp(;)g(:)g(:)g(:)s(;)g(p;)-1436
b Fv(\(18\))977 2762 y(14)p eop
%%Page: 15 15
15 14 bop 75 43 a Fv(where)15 b(2)p Fp(l)g Fv(is)f(a)f(v)o(ector)i(of)e
(order)i Fp(p)e Fv(re\015ecting)i(the)g(Lagrange)e(m)o(ultipliers.)135
118 y(The)f(solution)f(of)g(the)i Fp(p)e Fv(systems)h(of)f(linear)h
(equations)g(in)f(\(18\))g(can)h(b)q(e)h(done)f(in)f(parallel)g(b)o(y)g
(either)i(a)e(direct)i(or)75 193 y(iterativ)o(e)g(solv)o(er.)k(Since)c
(the)g(original)e(matrix)g Fp(A)i Fv(is)f(assumed)g(to)h(b)q(e)g
(large,)f(sparse,)h(and)g(without)f(an)o(y)g(particular)75
267 y(sparsit)o(y)k(structure)h(\(pattern)f(of)f(nonzeros\))i(w)o(e)e
(ha)o(v)o(e)g(c)o(hosen)i(an)e(iterativ)o(e)g(metho)q(d)f(\(conjugate)i
(gradien)o(t\))f(for)75 342 y(the)f(systems)h(in)e(\(18\).)18
b(F)m(ollo)o(wing)11 b([40)o(])i(and)h(dropping)f(the)i(subscripts)h
(in)d(\(18\),)g(let)777 456 y Fp(Y)801 462 y Fo(k)833
456 y Fv(=)e Fp(Q)909 462 y Fo(k)930 456 y Fp(R)g Fv(=)h([)p
Fp(Q)1062 462 y Fq(1)1080 456 y Fp(;)7 b(Q)1132 462 y
Fq(2)1150 456 y Fv(])p Fp(R)13 b(;)-1144 b Fv(\(19\))75
569 y(b)q(e)15 b(the)g(orthogonal)e(factorization)g(of)h
Fp(Y)725 575 y Fo(k)760 569 y Fv(so)g(that)g Fp(R)933
554 y Fo(T)971 569 y Fv(=)f([)1036 558 y(~)1028 569 y
Fp(R)1060 554 y Fo(T)1085 569 y Fp(;)7 b Fv(0],)1171
558 y(~)1162 569 y Fp(R)14 b Fv(is)g Fp(p)9 b Fr(\002)h
Fp(p)k Fv(and)g(upp)q(er)h(triangular,)e Fp(Q)1796 554
y Fo(T)1796 581 y(k)1822 569 y Fp(Q)1855 575 y Fo(k)1888
569 y Fv(=)75 644 y Fp(I)93 650 y Fo(m)p Fq(+)p Fo(n)171
644 y Fv(,)g(and)h Fp(Q)310 650 y Fq(1)342 644 y Fv(is)g(\()p
Fp(m)c Fv(+)f Fp(n)p Fv(\))g Fr(\002)h Fp(p)p Fv(.)18
b(W)m(e)13 b(ma)o(y)f(then)j(rewrite)g(\(18\))e(as)415
698 y Fm(0)415 773 y(@)472 749 y Fp(Q)505 734 y Fo(T)505
761 y(k)541 739 y Fv(~)531 749 y Fp(B)s(Q)598 755 y Fo(k)660
749 y Fp(R)692 755 y Fo(k)516 824 y Fp(R)548 809 y Fo(T)548
835 y(k)675 824 y Fv(0)732 698 y Fm(1)732 773 y(A)776
698 y(0)776 773 y(@)840 738 y Fv(~)833 749 y Fp(d)855
727 y Fq(\()p Fo(k)q Fq(\))855 761 y Fo(j)860 824 y Fp(l)921
698 y Fm(1)921 773 y(A)969 782 y Fv(=)1013 698 y Fm(0)1013
773 y(@)1070 749 y Fp(Q)1103 734 y Fo(T)1103 761 y(k)1139
739 y Fv(~)1129 749 y Fp(B)s(y)1184 727 y Fq(\()p Fo(k)q
Fq(\))1183 761 y Fo(j)1140 824 y Fv(0)1252 698 y Fm(1)1252
773 y(A)1309 782 y Fp(;)7 b(j)13 b Fv(=)f(1)p Fp(;)7
b Fv(2)p Fp(;)g(:)g(:)g(:)t(;)g(p;)-1513 b Fv(\(20\))75
932 y(where)201 921 y(~)194 932 y Fp(d)216 911 y Fq(\()p
Fo(k)q Fq(\))216 944 y Fo(j)273 932 y Fv(=)12 b Fp(Q)350
917 y Fo(T)350 944 y(k)376 932 y Fp(d)398 911 y Fq(\()p
Fo(k)q Fq(\))398 944 y Fo(j)444 932 y Fv(.)18 b(If)12
b(w)o(e)h(partition)754 921 y(~)746 932 y Fp(d)768 911
y Fq(\()p Fo(k)q Fq(\))768 944 y Fo(j)826 932 y Fv(=)f([)p
Fp(g)903 911 y Fq(\()p Fo(k)q Fq(\))902 944 y Fo(j)949
932 y Fp(;)7 b(h)992 911 y Fq(\()p Fo(k)q Fq(\))992 944
y Fo(j)1037 932 y Fv(])13 b(so)g(that)f Fp(g)1221 911
y Fq(\()p Fo(k)q Fq(\))1220 944 y Fo(j)1281 932 y Fv(is)g(a)h(v)o
(ector)g(of)g(order)g Fp(p)p Fv(,)g(then)g(w)o(e)g(m)o(ust)75
1007 y(ha)o(v)o(e)h Fp(g)192 985 y Fq(\()p Fo(k)q Fq(\))191
1019 y Fo(j)250 1007 y Fv(=)e(0)h(since)i Fp(R)462 992
y Fo(T)495 996 y Fv(~)488 1007 y Fp(d)510 985 y Fq(\()p
Fo(k)q Fq(\))510 1019 y Fo(j)568 1007 y Fv(=)c(0)j(and)736
996 y(~)727 1007 y Fp(R)f Fv(is)h(nonsingular.)j(F)m(ollo)o(wing)11
b([40)o(],)i(w)o(e)i(ma)o(y)c(solv)o(e)j(for)g Fp(h)1671
985 y Fq(\()p Fo(k)q Fq(\))1671 1019 y Fo(j)1731 1007
y Fv(in)770 1120 y Fp(Q)803 1103 y Fo(T)803 1131 y Fq(2)838
1110 y Fv(~)829 1120 y Fp(B)r(Q)895 1126 y Fq(2)914 1120
y Fp(h)938 1099 y Fq(\()p Fo(k)q Fq(\))938 1132 y Fo(j)995
1120 y Fv(=)e Fp(Q)1072 1103 y Fo(T)1072 1131 y Fq(2)1108
1110 y Fv(~)1098 1120 y Fp(B)s(y)1153 1099 y Fq(\()p
Fo(k)q Fq(\))1152 1132 y Fo(j)1214 1120 y Fp(;)-1151
b Fv(\(21\))75 1234 y(via)13 b(the)i(conjugate)e(gradien)o(t)h(metho)q
(d,)f([23)o(],)g(and)g(reco)o(v)o(er)i Fp(d)1062 1212
y Fq(\()p Fo(k)q Fq(\))1062 1245 y Fo(j)1122 1234 y Fv(via)781
1347 y Fp(d)803 1325 y Fq(\()p Fo(k)q Fq(\))803 1359
y Fo(j)860 1347 y Fv(=)d Fp(Q)937 1353 y Fo(k)965 1336
y Fv(~)957 1347 y Fp(d)979 1325 y Fq(\()p Fo(k)q Fq(\))979
1359 y Fo(j)1037 1347 y Fv(=)g Fp(Q)1114 1353 y Fq(2)1132
1347 y Fp(h)1156 1325 y Fq(\()p Fo(k)q Fq(\))1156 1359
y Fo(j)1203 1347 y Fp(:)-1140 b Fv(\(22\))75 1460 y(Using)14
b(the)h(fact)f(that)g Fp(I)f Fr(\000)d Fp(Q)542 1466
y Fq(1)561 1460 y Fp(Q)594 1445 y Fo(T)594 1471 y Fq(1)632
1460 y Fv(=)i Fp(Q)709 1466 y Fq(2)728 1460 y Fp(Q)761
1445 y Fo(T)761 1471 y Fq(2)801 1460 y Fv(is)i(the)h(orthogonal)e(pro)r
(jector)i(on)o(to)f(the)h(n)o(ullspace)f(of)g Fp(Y)1719
1466 y Fo(k)1754 1460 y Fv(and)g(\(22\),)75 1535 y(the)g(conjugate)g
(gradien)o(t)g(metho)q(d)f(for)g(solving)g(the)h(systems)g(in)f(\(21\))
h(is)f(simpli\014ed)f(as)i(sho)o(wn)g(in)f(T)m(able)g(5)h(where)75
1610 y Fp(P)j Fv(=)12 b Fp(I)c Fr(\000)d Fp(Q)259 1616
y Fq(1)277 1610 y Fp(Q)310 1595 y Fo(T)310 1620 y Fq(1)336
1610 y Fv(.)17 b(W)m(e)12 b(note)f(that)h(although)f(the)h(orthogonal)e
(factorization)h(\(19\))g(is)h(necessary)h(in)f(early)f(iterations)75
1684 y(of)i Fl(TRSVD)p Fv(,)g(it)h(ma)o(y)e(b)q(e)i(a)o(v)o(oided)f(in)
h(the)g(\014nal)g(iterations)f(\(ultimate)g(con)o(v)o(ergence)i(to)f
(eigen)o(v)o(ectors)h(of)1771 1674 y(~)1761 1684 y Fp(B)s
Fv(\).)135 1759 y(Rather)f(than)g(iterating)f(for)h(the)g(corrections,)
h Fp(d)918 1738 y Fq(\()p Fo(k)q Fq(\))918 1771 y Fo(j)964
1759 y Fv(,)e(the)i(conjugate)f(gradien)o(t)f(metho)q(d)g(in)h(T)m
(able)f(5)g(pro)q(duces)75 1834 y(iterates)i(of)e(the)i(form)d
Fp(y)461 1812 y Fq(\()p Fo(k)q Fq(\))460 1845 y Fo(j)517
1834 y Fr(\000)e Fp(d)581 1812 y Fq(\()p Fo(k)q Fq(\))581
1845 y Fo(j)641 1834 y Fv(so)k(that)854 1947 y(lim)844
1974 y Fo(l)p Fu(!1)928 1947 y Fp(z)947 1953 y Fo(l)971
1947 y Fv(=)e Fp(y)1036 1926 y Fq(\()p Fo(k)q Fq(+1\))1035
1959 y Fo(j)1139 1947 y Fp(:)75 2060 y Fv(The)i(termination)e(criteria)
j(in)e(Step)i(\(3d\))f(ac)o(hiev)o(e)g(t)o(w)o(o)f(purp)q(oses.)20
b(The)14 b(requiremen)o(t)878 2174 y Fp(\013)905 2180
y Fo(l)917 2174 y Fr(k)p Fp(p)959 2180 y Fo(l)972 2174
y Fr(k)993 2180 y Fq(2)1023 2174 y Fr(\024)e Fp(\026)h(;)75
2287 y Fv(assures)i(that)f(incremen)o(ts)g(to)f Fp(y)586
2266 y Fq(\()p Fo(k)q Fq(\))585 2299 y Fo(j)647 2287
y Fv(are)h(within)f(the)h(mac)o(hine-unit)e(roundo\013)i(error,)g
Fp(\026)p Fv(.)k(On)c(the)g(other)g(hand,)f(the)75 2362
y(criterion)708 2475 y(\()p Fp(\013)751 2481 y Fo(l)763
2475 y Fr(k)p Fp(r)803 2481 y Fo(l)p Fq(+1)857 2475 y
Fr(k)878 2458 y Fq(2)878 2485 y(2)897 2475 y Fv(\))p
Fp(=)p Fv(\()p Fp(\013)977 2481 y Fq(0)995 2475 y Fr(k)p
Fp(r)1035 2481 y Fq(0)1053 2475 y Fr(k)1074 2458 y Fq(2)1074
2485 y(2)1092 2475 y Fv(\))f Fr(\024)g Fp(\034)5 b Fv(\()p
Fp(y)1224 2454 y Fq(\()p Fo(k)q Fq(\))1223 2487 y Fo(j)1271
2475 y Fv(\))75 2588 y(is)14 b(used)h(to)e(estimate)h(an)f(upp)q(er)i
(b)q(ound)f(for)g(the)g(required)h(CG)e(error)673 2702
y(\()p Fp(z)708 2708 y Fo(l)p Fq(+1)772 2702 y Fr(\000)d
Fp(z)833 2708 y Fo(l)846 2702 y Fv(\))862 2685 y Fo(T)898
2691 y Fv(~)888 2702 y Fp(B)s Fv(\()p Fp(z)957 2708 y
Fo(l)p Fq(+1)1021 2702 y Fr(\000)g Fp(z)1082 2708 y Fo(l)1095
2702 y Fv(\))h Fr(\031)h Fp(\013)1193 2708 y Fo(l)1205
2702 y Fr(k)p Fp(r)1245 2708 y Fo(l)1258 2702 y Fr(k)1279
2685 y Fq(2)1279 2712 y(2)1311 2702 y Fp(:)977 2762 y
Fv(15)p eop
%%Page: 16 16
16 15 bop 555 3 871 2 v 554 78 2 75 v 1425 78 V 554 153
V 592 131 a Fv(\(1\))61 b Fp(r)725 137 y Fq(0)755 131
y Fv(=)12 b Fp(P)841 120 y Fv(~)832 131 y Fp(B)r(z)884
137 y Fq(0)903 131 y Fv(,)h Fp(z)947 137 y Fq(0)977 131
y Fv(=)f Fp(y)1042 109 y Fq(\()p Fo(k)q Fq(\))1041 142
y Fo(j)1090 131 y Fv(,)p 1425 153 V 554 228 V 592 205
a(\(2\))61 b Fp(p)727 211 y Fq(0)757 205 y Fv(=)12 b
Fp(r)820 211 y Fq(0)838 205 y Fv(,)p 1425 228 V 554 302
V 1425 302 V 554 377 V 592 355 a(\(3\))61 b(F)m(or)14
b Fp(l)e Fv(=)g(0)p Fp(;)7 b Fv(1)p Fp(;)g Fv(2)p Fp(;)g(:)g(:)g(:)s(;)
13 b Fv(do:)p 1425 377 V 554 452 V 1425 452 V 554 527
V 581 504 a(\(3a\))125 b Fp(\013)807 510 y Fo(l)831 504
y Fv(=)12 b Fp(r)895 489 y Fo(T)894 516 y(l)921 504 y
Fp(r)940 510 y Fo(l)952 504 y Fp(=p)994 489 y Fo(T)994
516 y(l)1030 494 y Fv(~)1020 504 y Fp(B)r(p)1074 510
y Fo(l)1087 504 y Fv(,)p 1425 527 V 554 601 V 580 579
a(\(3b\))124 b Fp(z)799 585 y Fo(l)p Fq(+1)866 579 y
Fv(=)11 b Fp(z)928 585 y Fo(l)951 579 y Fr(\000)e Fp(\013)1019
585 y Fo(l)1031 579 y Fp(p)1052 585 y Fo(l)1065 579 y
Fv(,)p 1425 601 V 554 676 V 582 654 a(\(3c\))127 b Fp(r)799
660 y Fo(l)p Fq(+1)865 654 y Fv(=)12 b Fp(r)928 660 y
Fo(l)949 654 y Fr(\000)e Fp(\013)1018 660 y Fo(l)1030
654 y Fp(P)1073 643 y Fv(~)1063 654 y Fp(B)r(p)1117 660
y Fo(l)1130 654 y Fv(,)p 1425 676 V 554 751 V 1425 751
V 554 825 V 580 803 a(\(3d\))124 b(If)13 b(\()p Fp(\013)864
809 y Fo(l)877 803 y Fr(k)p Fp(r)917 809 y Fo(l)p Fq(+1)971
803 y Fr(k)992 788 y Fq(2)992 813 y(2)1010 803 y Fv(\))p
Fp(=)p Fv(\()p Fp(\013)1090 809 y Fq(0)1109 803 y Fr(k)p
Fp(r)1149 809 y Fq(0)1167 803 y Fr(k)1188 788 y Fq(2)1188
813 y(2)1206 803 y Fv(\))f Fr(\024)g Fp(\034)5 b Fv(\()p
Fp(y)1338 781 y Fq(\()p Fo(k)q Fq(\))1337 815 y Fo(j)1385
803 y Fv(\))p 1425 825 V 554 900 V 1425 900 V 554 975
V 840 952 a(or)14 b Fp(\013)918 958 y Fo(l)930 952 y
Fr(k)p Fp(p)972 958 y Fo(l)984 952 y Fr(k)1005 958 y
Fq(2)1035 952 y Fr(\024)e Fp(\026)p Fv(,)i(stop,)p 1425
975 V 554 1050 V 1425 1050 V 554 1124 V 582 1102 a(\(3e\))127
b Fp(\014)803 1108 y Fo(l)828 1102 y Fv(=)11 b Fp(r)891
1087 y Fo(T)890 1114 y(l)p Fq(+1)945 1102 y Fp(r)964
1108 y Fo(l)p Fq(+1)1018 1102 y Fp(=r)1059 1087 y Fo(T)1058
1114 y(l)1085 1102 y Fp(r)1104 1108 y Fo(l)1117 1102
y Fv(,)p 1425 1124 V 554 1199 V 584 1177 a(\(3f)s(\))127
b Fp(p)801 1183 y Fo(l)p Fq(+1)867 1177 y Fv(=)12 b Fp(r)930
1183 y Fo(l)p Fq(+1)994 1177 y Fv(+)d Fp(\014)1058 1183
y Fo(l)1071 1177 y Fp(p)1092 1183 y Fo(l)1105 1177 y
Fv(.)p 1425 1199 V 554 1274 V 1425 1274 V 555 1275 871
2 v 917 1368 a Fn(T)l(able)16 b(5)320 1443 y Fs(Conjugate)g(gr)n
(adient)e(metho)n(d)i(for)e(the)h(quadr)n(atic)g(minimization)f(step)h
(of)g Fl(TRSVD)p Fs(.)75 1619 y Fv(In)d(other)i(w)o(ords,)e(w)o(e)h
(need)g(not)g(iterate)g(in)f(the)h(CG)f(algorithm)e(b)q(ey)o(ond)i(a)g
(certain)h(factor)g(\()p Fp(\034)5 b Fv(\()p Fp(y)1606
1597 y Fq(\()p Fo(k)q Fq(\))1605 1630 y Fo(j)1653 1619
y Fv(\)\))13 b(of)f(the)h(initial)75 1693 y(CG)e(error,)h
Fp(\013)287 1699 y Fq(0)305 1693 y Fr(k)p Fp(r)345 1699
y Fq(0)363 1693 y Fr(k)384 1678 y Fq(2)384 1704 y(2)403
1693 y Fv(.)17 b(Here)12 b Fp(\034)5 b Fv(\()p Fp(y)587
1672 y Fq(\()p Fo(k)q Fq(\))586 1705 y Fo(j)634 1693
y Fv(\))12 b(is)f(the)h(con)o(v)o(ergence)h(rate)e(of)g
Fp(y)1145 1672 y Fq(\()p Fo(k)q Fq(\))1144 1705 y Fo(j)1203
1693 y Fv(to)g(the)h Fp(k)q Fv(-th)f(smallest)f(eigen)o(v)o(ector)i(of)
1832 1683 y(~)1822 1693 y Fp(B)i Fv(\(or)75 1768 y(the)g
Fp(k)q Fv(-th)g(largest)g(left)g(and)g(righ)o(t)f(singular)g(v)o
(ectors)i(of)e Fp(A)p Fv(\).)18 b(W)m(e)c(note)g(that)g(the)g(\014rst)h
Fp(m)f Fv(and)g(last)g Fp(n)f Fv(comp)q(onen)o(ts)75
1843 y(of)19 b Fp(y)149 1821 y Fq(\()p Fo(k)q Fq(\))148
1854 y Fo(j)216 1843 y Fv(appro)o(ximate)f(left)h(and)h(righ)o(t)f
(singular)g(v)o(ectors)i(of)e Fp(A)p Fv(,)i(resp)q(ectiv)o(ely)m(.)37
b(F)m(ollo)o(wing)17 b(the)j(discussion)h(of)75 1917
y(con)o(v)o(ergence)16 b(rates)e(for)g(trace)h(minim)o(izatio)o(n)c(in)
j([40)o(])f(when)h(applied)g(to)f(\(11\),)h(w)o(e)g(ha)o(v)o(e)818
2034 y Fp(\034)5 b Fv(\()p Fp(y)878 2012 y Fq(\()p Fo(k)q
Fq(\))877 2045 y Fo(j)925 2034 y Fv(\))11 b(=)h(\()p
Fp(\033)1036 2040 y Fo(j)1054 2034 y Fp(=\033)1099 2040
y Fo(p)1117 2034 y Fv(\))1133 2017 y Fq(2)1166 2034 y
Fp(;)75 2150 y Fv(whic)o(h)18 b(corresp)q(onds)i(to)e(the)g(con)o(v)o
(ergence)i(rate)e(of)g(subspace)h(iteration)f(in)f(\(7\).)31
b(Hence,)20 b(a)d(ma)r(jor)g(reason)h(for)75 2225 y(our)e(c)o(hoice)h
(of)f(the)h(conjugate)f(gradien)o(t)g(\(CG\))g(metho)q(d)f(for)h(the)h
(solution)e(of)h(\(18\))g(stems)g(from)f(the)i(abilit)o(y)d(to)75
2299 y(terminate)d(CG)g(iterations)h(early)f(without)g(obtaining)g
(fully-)f(accurate)j(corrections)g Fp(d)1454 2278 y Fq(\()p
Fo(k)q Fq(\))1454 2311 y Fo(j)1511 2299 y Fv(that)f(are)g(more)f
(accurate)75 2374 y(than)j(w)o(arran)o(ted.)20 b(In)15
b(later)f(stages,)h(ho)o(w)o(ev)o(er,)g(as)f Fp(Y)918
2380 y Fo(k)953 2374 y Fv(con)o(v)o(erges)i(to)e(the)h(desired)g(set)h
(of)e(eigen)o(v)o(ectors)h(of)1808 2364 y(~)1798 2374
y Fp(B)s Fv(,)f(one)75 2449 y(needs)h(full)e(accuracy)i(in)e(computing)
f(the)j(correction)g(matrix)d(\001)1122 2455 y Fo(k)1142
2449 y Fv(.)165 2552 y Ft(3.3.1.)24 b(P)o(olynomial)13
b(Acceleration)h(T)l(ec)o(hnique)g(for)h Fl(TRSVD)p Ft(.)20
b Fv(The)15 b(Cheb)o(yshev)g(acceleration)f(strat-)75
2627 y(egy)d(used)g(within)f(subspace)i(iteration)e(\(see)h(Section)g
(3)p Fp(:)p Fv(2\))f(can)h(also)e(b)q(e)j(applied)d(to)i
Fl(TRSVD)p Fv(.)e(Ho)o(w)o(ev)o(er,)j(to)e(damp)q(en)75
2702 y(un)o(w)o(an)o(ted)17 b(singular)f(v)n(alues)g(of)g
Fp(A)h Fv(in)f(this)h(con)o(text)g(w)o(e)g(m)o(ust)f(solv)o(e)h(the)g
(generalized)g(eigen)o(v)n(alue)f(problem)g(\(as)977
2762 y(16)p eop
%%Page: 17 17
17 16 bop 75 43 a Fv(opp)q(osed)15 b(to)e(\(12\)\))822
159 y Fp(x)f Fv(=)947 131 y(1)p 906 150 102 2 v 906 188
a Fp(P)933 194 y Fo(q)951 188 y Fv(\()p Fp(\025)p Fv(\))1013
159 y Fp(P)1040 165 y Fo(q)1058 159 y Fv(\()1084 149
y(~)1074 159 y Fp(B)r Fv(\))p Fp(x)i(;)-1098 b Fv(\(23\))75
275 y(where)19 b Fp(P)226 281 y Fo(q)244 275 y Fv(\()p
Fp(x)p Fv(\))g(=)f Fp(T)393 281 y Fo(q)412 275 y Fv(\()p
Fp(x)p Fv(\))12 b(+)g Fp(\017I)559 281 y Fo(m)p Fq(+)p
Fo(n)637 275 y Fv(,)19 b Fp(T)692 281 y Fo(q)710 275
y Fv(\()p Fp(x)p Fv(\))f(is)g(the)h(Cheb)o(yshev)g(p)q(olynomial)c(of)i
(degree)i Fp(q)g Fv(de\014ned)h(b)o(y)d(\(8\),)i(and)75
350 y Fp(\017)e Fv(is)g(c)o(hosen)h(so)f(that)g Fp(P)464
356 y Fo(q)482 350 y Fv(\()508 340 y(~)498 350 y Fp(B)s
Fv(\))g(is)g(\(symmetric\))f(p)q(ositiv)o(e)g(de\014nite.)29
b(The)17 b(appropriate)g(quadratic)g(minimi)o(zation)75
425 y(problem)c(similia)o(r)e(to)j(\(17\))g(for)f(\(23\))h(can)g(b)q(e)
h(expressed)h(as)601 541 y(minimi)o(ze)c(trace\()j(\()p
Fp(y)936 519 y Fq(\()p Fo(k)q Fq(\))935 553 y Fo(j)993
541 y Fr(\000)9 b Fp(d)1056 519 y Fq(\()p Fo(k)q Fq(\))1056
553 y Fo(j)1102 541 y Fv(\))1118 524 y Fo(T)1144 541
y Fv(\()p Fp(y)1181 519 y Fq(\()p Fo(k)q Fq(\))1180 553
y Fo(j)1238 541 y Fr(\000)g Fp(d)1301 519 y Fq(\()p Fo(k)q
Fq(\))1301 553 y Fo(j)1347 541 y Fv(\))14 b(\))-1318
b(\(24\))75 657 y(sub)r(ject)15 b(to)f(the)h(constrain)o(ts)688
773 y Fp(Y)721 756 y Fo(T)747 773 y Fp(P)774 779 y Fo(q)792
773 y Fv(\()818 763 y(~)808 773 y Fp(B)s Fv(\))p Fp(d)880
752 y Fq(\()p Fo(k)q Fq(\))880 785 y Fo(j)937 773 y Fv(=)d(0)i
Fp(;)20 b(j)14 b Fv(=)e(1)p Fp(;)7 b Fv(2)p Fp(;)g(:)g(:)g(:)t(;)g(p:)
75 889 y Fv(In)16 b(e\013ect,)i(w)o(e)f(then)g(appro)o(ximate)d(the)j
(smallest)e(singular)h(v)n(alues)g(of)f Fp(A)i Fv(\(or)f(eigen)o(v)n
(alues)g(of)1621 879 y(~)1611 889 y Fp(B)r Fv(\))h(as)f(the)h
Fs(lar)n(gest)75 964 y Fv(eigen)o(v)n(alues)12 b(of)g(the)h(matrix)e
Fp(P)565 970 y Fo(q)583 964 y Fv(\()609 953 y(~)599 964
y Fp(B)r Fv(\))i(whose)g(gaps)f(are)h(considerably)g(larger)f(than)h
(those)g(of)f(the)h(eigen)o(v)n(alues)f(of)1885 953 y(~)1875
964 y Fp(B)r Fv(.)135 1039 y(Although)h(the)h(additional)d(n)o(um)o(b)q
(er)i(of)g(sparse)i(matrix-v)o(ector)d(m)o(ultiplicatio)o(ns)f(asso)q
(ciated)j(with)f(the)h(m)o(ulti-)75 1113 y(plication)8
b(b)o(y)h Fp(P)321 1119 y Fo(q)339 1113 y Fv(\()365 1103
y(~)355 1113 y Fp(B)s Fv(\))h(will)d(b)q(e)j(signi\014can)o(t)f(for)g
(high)g(degrees)i Fp(q)q Fv(,)f(the)g(system)f(of)g(equations)g(via)g
(Lagrange)g(m)o(ultipliers)75 1188 y(in)k(\(18\))h(b)q(ecomes)g(m)o(uc)
o(h)f(easier)i(to)e(solv)o(e,)h(i.e.,)398 1246 y Fm(0)398
1320 y(@)529 1296 y Fp(I)119 b(P)693 1302 y Fo(q)711
1296 y Fv(\()737 1286 y(~)727 1296 y Fp(B)s Fv(\))p Fp(Y)801
1302 y Fo(k)455 1371 y Fp(Y)488 1356 y Fo(T)479 1383
y(k)514 1371 y Fp(P)541 1377 y Fo(q)559 1371 y Fv(\()585
1361 y(~)575 1371 y Fp(B)s Fv(\))109 b(0)843 1246 y Fm(1)843
1320 y(A)886 1246 y(0)886 1320 y(@)943 1296 y Fp(d)965
1275 y Fq(\()p Fo(k)q Fq(\))965 1308 y Fo(j)970 1371
y Fp(l)1032 1246 y Fm(1)1032 1320 y(A)1080 1329 y Fv(=)1123
1246 y Fm(0)1123 1320 y(@)1180 1296 y Fp(y)1201 1275
y Fq(\()p Fo(k)q Fq(\))1200 1308 y Fo(j)1204 1371 y Fv(0)1269
1246 y Fm(1)1269 1320 y(A)1326 1329 y Fp(;)7 b(j)14 b
Fv(=)e(1)p Fp(;)7 b Fv(2)p Fp(;)g(:)g(:)g(:)s(;)g(p:)-1530
b Fv(\(25\))75 1482 y(It)14 b(is)g(easy)g(to)g(sho)o(w)g(that)g(the)g
(up)q(dated)h(eigen)o(v)o(ector)f(appro)o(ximation,)d
Fp(y)1256 1461 y Fq(\()p Fo(k)q Fq(+1\))1255 1494 y Fo(j)1345
1482 y Fv(,)i(is)h(determined)g(b)o(y)425 1598 y Fp(y)446
1577 y Fq(\()p Fo(k)q Fq(+1\))445 1610 y Fo(j)546 1598
y Fv(=)e Fp(y)611 1577 y Fq(\()p Fo(k)q Fq(\))610 1610
y Fo(j)668 1598 y Fr(\000)d Fp(d)731 1577 y Fq(\()p Fo(k)q
Fq(\))731 1610 y Fo(j)789 1598 y Fv(=)j Fp(P)860 1604
y Fo(q)878 1598 y Fv(\()904 1588 y(~)894 1598 y Fp(B)r
Fv(\))p Fp(Y)967 1604 y Fo(k)995 1552 y Fm(h)1014 1598
y Fp(Y)1048 1581 y Fo(T)1038 1609 y(k)1074 1598 y Fp(P)1107
1581 y Fq(2)1101 1609 y Fo(q)1125 1598 y Fv(\()1151 1588
y(~)1141 1598 y Fp(B)s Fv(\))p Fp(Y)1215 1604 y Fo(k)1235
1552 y Fm(i)1255 1561 y Fu(\000)p Fq(1)1306 1598 y Fp(Y)1340
1581 y Fo(T)1330 1609 y(k)1366 1598 y Fp(P)1393 1604
y Fo(q)1411 1598 y Fv(\()1437 1588 y(~)1427 1598 y Fp(B)s
Fv(\))p Fp(y)1498 1577 y Fq(\()p Fo(k)q Fq(\))1497 1610
y Fo(j)1559 1598 y Fp(:)75 1714 y Fv(Th)o(us,)24 b(w)o(e)e(need)i(not)e
(emplo)o(y)e(the)j(use)g(of)e(an)h(iterativ)o(e)g(solv)o(er)h(for)e
(determining)g Fp(Y)1524 1720 y Fo(k)q Fq(+1)1609 1714
y Fv(since)i(the)g(matrix)75 1743 y Fm(h)95 1789 y Fp(Y)128
1774 y Fo(T)119 1801 y(k)154 1789 y Fp(P)187 1774 y Fq(2)181
1799 y Fo(q)205 1789 y Fv(\()231 1779 y(~)221 1789 y
Fp(B)s Fv(\))p Fp(Y)295 1795 y Fo(k)315 1743 y Fm(i)335
1752 y Fu(\000)p Fq(1)394 1789 y Fv(is)13 b(of)h(order)g
Fp(p)g Fv(and)g(using)f(the)i(orthogonal)d(factorization)847
1905 y Fp(P)874 1911 y Fo(q)892 1905 y Fv(\()918 1895
y(~)908 1905 y Fp(B)s Fv(\))p Fp(Y)982 1911 y Fo(k)1014
1905 y Fv(=)1067 1895 y(^)1058 1905 y Fp(Q)1100 1895
y Fv(^)1091 1905 y Fp(R)h(;)75 2021 y Fv(w)o(e)h(ha)o(v)o(e)725
2091 y Fm(h)744 2137 y Fp(Y)778 2120 y Fo(T)768 2148
y(k)804 2137 y Fp(P)837 2120 y Fq(2)831 2148 y Fo(q)855
2137 y Fv(\()881 2127 y(~)871 2137 y Fp(B)r Fv(\))p Fp(Y)944
2143 y Fo(k)965 2091 y Fm(i)985 2100 y Fu(\000)p Fq(1)1041
2137 y Fv(=)1094 2127 y(^)1085 2137 y Fp(R)1117 2120
y Fu(\000)p Fo(T)1178 2127 y Fv(^)1169 2137 y Fp(R)1201
2120 y Fu(\000)p Fq(1)1259 2137 y Fp(:)135 2253 y Fv(The)j(con)o(trol)g
(of)f(the)i(p)q(olynomial)13 b(degree,)18 b Fp(q)q Fv(,)g(is)e
(determined)h(b)o(y)g(the)g(strategy)h(discussed)g(in)f([37)o(])f(and)h
([4)o(].)75 2328 y(T)m(able)c(6)h(lists)f(three)i(p)q(ossible)f(in)o
(terv)n(als)g(for)f(damping)f(the)i(un)o(w)o(an)o(ted)g(singular)f(v)n
(alues)h(of)f Fp(A)h Fv(whic)o(h)f(corresp)q(ond)75 2403
y(to)e(the)h(c)o(hoice)g(of)e Fp(H)k Fv(in)d(\(11\).)17
b(If)11 b(w)o(e)h(c)o(ho)q(ose)g Fp(H)i Fv(=)885 2392
y(~)875 2403 y Fp(B)r Fv(,)e(then)g(for)f(the)g Fl(TRSVD)g
Fv(iteration)g(in)g(p)q(olynomial)d(aceleration)75 2478
y(starts,)14 b(w)o(e)h(apply)e Fp(P)405 2484 y Fo(q)423
2478 y Fv(\()p Fp(B)r Fv(\),)h(where)h Fp(B)i Fv(is)c(the)i(2-cyclic)f
(matrix)e(in)h(\(5\).)18 b(This)c(second)h(shift)f(b)o(y)f
Fp(\015)k Fv(\(to)d(the)h(left\))e(will)75 2552 y(allo)o(w)f(us)j(to)f
(use)h(the)g(same)e(in)o(terv)n(al)g(suggested)i(b)o(y)f(Rutishauser)h
(for)f(the)g Fs(ritzit)f Fv(program)g(\(see)i(Section)g(3)p
Fp(:)p Fv(2\).)i(If)75 2627 y(w)o(e)g(desire)g(the)g
Fp(p)p Fv(-smallest)d(singular)i(v)n(alues)g(of)g Fp(A)g
Fv(and)g(select)i Fp(H)g Fv(=)e Fp(A)1243 2612 y Fo(T)1269
2627 y Fp(A)p Fv(,)h(then)g(w)o(e)f(m)o(ust)g(\014x)g(the)h(righ)o
(t-hand)75 2702 y(endp)q(oin)o(t)h(to)f(b)q(e)h Fp(\015)389
2687 y Fq(2)409 2702 y Fv(,)g(where)h Fp(\015)h Fv(=)e
Fr(k)p Fp(A)p Fr(k)727 2708 y Fq(1)763 2702 y Fv(or)g
Fr(k)p Fp(A)p Fr(k)891 2708 y Fu(1)925 2702 y Fv(.)30
b(Of)17 b(course,)j(if)c(some)h(kno)o(wledge)g(of)h(the)g(sp)q(ectrum)g
(of)f Fp(A)977 2762 y Fv(17)p eop
%%Page: 18 18
18 17 bop 75 43 a Fv(is)18 b(a)o(v)n(ailable,)g(sa)o(y)g(an)g(estimate)
g(for)h(the)g(largest)g(singular)f(v)n(alue,)g Fp(\033)1213
49 y Fo(max)1281 43 y Fv(,)i(then)f Fp(\015)i Fv(should)e(b)q(e)g
(de\014ned)h(as)e(an)o(y)75 118 y(a)o(v)n(ailable)13
b Fs(le)n(ast)i Fv(upp)q(er)h(b)q(ound)g(for)e Fp(\033)680
124 y Fo(max)749 118 y Fv(.)22 b(T)m(o)14 b(appro)o(ximate)g(the)h
Fp(p)p Fv(-largest)h(singular)e(v)n(alues)h(of)g Fp(A)g
Fv(w)o(e)h(ma)o(y)d(use)75 193 y(the)i(same)e(in)o(terv)n(al)h(but)g(m)
o(ust)g(c)o(ho)q(ose)h Fp(H)g Fv(=)e Fp(\015)832 178
y Fq(2)851 193 y Fp(I)g Fr(\000)d Fp(A)955 178 y Fo(T)981
193 y Fp(A)15 b Fv(so)f(that)g Fp(\015)1191 178 y Fq(2)1220
193 y Fr(\000)c Fp(\033)1287 178 y Fq(2)1286 204 y Fo(i)1306
193 y Fv(,)k(is)g(the)h Fp(i)p Fv(-th)g(smallest)e(eigen)o(v)n(alue)h
(of)75 267 y Fp(H)j Fv(corresp)q(onding)e(to)e(the)i
Fp(i)p Fv(-th)f(largest)g(singular)f(v)n(alue)g(of)h
Fp(A)p Fv(.)p 758 326 465 2 v 757 400 2 75 v 866 378
a Fp(H)209 b Fv(I)p 1222 400 V 758 402 465 2 v 757 477
2 75 v 1222 477 V 757 551 V 868 529 a Fp(B)140 b Fv([)p
Fr(\000)p Fp(\033)1107 535 y Fo(s)1124 529 y Fp(;)7 b(\033)1167
535 y Fo(s)1184 529 y Fv(])p 1222 551 V 757 626 V 1222
626 V 757 701 V 841 678 a Fp(A)872 663 y Fo(T)898 678
y Fp(A)124 b Fv([)p Fp(\033)1090 663 y Fq(2)1089 689
y Fo(s)1109 678 y Fp(;)7 b(\015)1151 663 y Fq(2)1169
678 y Fv(])p 1222 701 V 757 776 V 1222 776 V 757 850
V 783 828 a Fp(\015)806 813 y Fq(2)826 828 y Fp(I)13
b Fr(\000)c Fp(A)929 813 y Fo(T)955 828 y Fp(A)50 b Fv([)p
Fr(\000)p Fp(\033)1105 813 y Fq(2)1104 838 y Fo(s)1124
828 y Fp(;)7 b(\033)1168 813 y Fq(2)1167 838 y Fo(s)1186
828 y Fv(])p 1222 850 V 757 925 V 1222 925 V 758 927
465 2 v 917 1019 a Fn(T)l(able)16 b(6)507 1094 y Fs(Intervals)f(for)f
(Polynomial)h(A)n(c)n(c)n(eler)n(ation)f(within)g Fl(TRSVD)p
Fs(.)165 1285 y Ft(3.3.2.)24 b(F)l(orming)16 b(a)i(Section.)g
Fv(As)e(with)f(subspace)i(iteration,)e(our)h(trace)g(minimi)o
(zation-ba)o(sed)e(metho)q(d)75 1360 y(\()p Fl(TRSVD)p
Fv(\))h(will)e(b)q(est)j(appro)o(ximate)d(the)i Fp(p)p
Fv(-largest)g(singular)f(triplets)h(of)f(the)i(sparse)g(matrix)d
Fp(A)i Fv(if)e Fp(s)h(>)f(p)i Fv(v)o(ectors)75 1434 y(\(i.e.,)c
Fp(Y)192 1440 y Fo(k)225 1434 y Fv(is)h(\()p Fp(m)6 b
Fv(+)g Fp(n)p Fv(\))g Fr(\002)g Fp(s)12 b Fv(for)g Fp(H)i
Fv(=)642 1424 y(~)632 1434 y Fp(B)s Fv(\))e(are)h(carried)f(in)g(the)h
(early)f(iterations)g(\(prior)g(to)g(de\015ation\).)17
b(Let)c(us)f(assume)75 1509 y(that)17 b(the)g Fl(TRSVD)f
Fv(iterate)i Fp(Y)553 1515 y Fo(k)590 1509 y Fv(is)e(\()p
Fp(m)c Fv(+)f Fp(n)p Fv(\))g Fr(\002)h Fp(s)17 b Fv(and)f(that)h(w)o(e)
g(ha)o(v)o(e)f(y)o(et)h(to)f(emplo)o(y)f(Cheb)o(yshev)j(acceleration.)
75 1584 y(T)m(o)g(form)e(a)i(section)h(of)f(\(12\))g(as)g(sp)q
(eci\014ed)i(b)o(y)e(\(13\),)h(w)o(e)f(m)o(ust)g(\014rst)h
(orthogonalize)e(the)i(columns)e(of)h Fp(Y)1804 1590
y Fo(k)1825 1584 y Fv(,)g(i.e.,)75 1659 y Fp(y)96 1637
y Fq(\()p Fo(k)q Fq(\))95 1670 y Fo(j)143 1659 y Fv(,)i
Fp(j)h Fv(=)f(1)p Fp(;)7 b Fv(2)p Fp(;)g(:)g(:)g(:)t(;)g(s)18
b Fv(as)h(in)f(\(19\).)32 b(W)m(e)19 b(can)f(apply)g(a)h(\(blo)q(c)o
(k\))f(mo)q(di\014ed)g(Gram-Sc)o(hmi)o(dt)e(orthogonalization)75
1733 y(pro)q(cedure)21 b(\(see)f([18)o(]\))f(to)g(orthogonalize)f(the)i
(columns)e(of)g Fp(Y)1098 1739 y Fo(k)1119 1733 y Fv(,)i(and)f(then)g
(obtain)g(\(13\))g(b)o(y)f(determining)g(the)75 1808
y(sp)q(ectral)d(decomp)q(osition)e(of)g Fp(F)579 1814
y Fo(k)610 1808 y Fv(=)f Fp(Y)688 1793 y Fo(T)678 1820
y(k)724 1798 y Fv(~)714 1808 y Fp(B)r(Y)771 1814 y Fo(k)792
1808 y Fv(,)861 1912 y Fp(W)906 1895 y Fo(T)932 1912
y Fp(F)959 1918 y Fo(k)979 1912 y Fp(W)17 b Fv(=)1084
1902 y(~)1079 1912 y(\006)d Fp(;)-1060 b Fv(\(26\))75
2016 y(where)15 b Fp(W)20 b Fv(is)14 b(an)f(orthogonal)g(matrix)f(of)h
(order)i Fp(s)p Fv(.)j(If)c(w)o(e)g(then)g(de\014ne)h
Fp(Y)1242 2022 y Fo(k)1274 2016 y Fr(\021)d Fp(Y)1342
2022 y Fo(k)1363 2016 y Fp(W)6 b Fv(,)13 b(then)759 2120
y Fp(Y)792 2103 y Fo(T)783 2130 y(k)828 2110 y Fv(~)818
2120 y Fp(B)s(Y)876 2126 y Fo(k)908 2120 y Fv(=)956 2110
y(~)952 2120 y(\006)p Fp(;)20 b(Y)1047 2103 y Fo(T)1038
2130 y(k)1073 2120 y Fp(Y)1097 2126 y Fo(k)1130 2120
y Fv(=)11 b Fp(I)1191 2126 y Fo(p)1225 2120 y Fp(;)75
2224 y Fv(where)201 2214 y(~)196 2224 y(\006)k(is)f(giv)o(en)h(in)f
(\(13\).)21 b(As)15 b(with)g(step)h(\(4\))e(in)h(T)m(able)f(3)h(for)f
(subspace)i(iteration,)f(w)o(e)g(ma)o(y)e(emplo)o(y)g(either)i(a)75
2299 y(Jacobi)10 b(metho)q(d)g(\(one-)h(or)f(t)o(w)o(o-sided\))g(or)h
(the)g(classical)f(tridiagonalization)e(strategy)j(in)f(EISP)m(A)o(CK)h
(to)f(determine)75 2374 y(\(26\).)30 b(Our)19 b(curren)o(t)h(implem)o
(en)o(tation)15 b(of)j Fl(TRSVD)g Fv(emplo)o(ys)e(an)i(adaptation)f(of)
h(a)g(parallel)e(one-sided)j(Jacobi)75 2448 y(metho)q(d)13
b(\(see)i([5],)d([6]\))h(for)h(symmetric)e(p)q(ositiv)o(e)i(de\014nite)
g(eigensystems.)135 2523 y(If)k(Cheb)o(yshev)i(acceleration)f(\(23\))f
(is)h(used)g(in)f(iteration)h Fp(k)g Fv(of)f Fl(TRSVD)p
Fv(,)g(then)h(w)o(e)g(m)o(ust)e(generate)j Fp(P)1822
2529 y Fo(q)1840 2523 y Fv(\()1866 2513 y(~)1856 2523
y Fp(B)s Fv(\)-)75 2598 y(orthogonal)13 b(v)o(ectors)i
Fp(y)445 2576 y Fq(\()p Fo(k)q Fq(\))444 2609 y Fo(j)492
2598 y Fv(,)e(i.e.,)g(w)o(e)h(m)o(ust)f(ha)o(v)o(e)720
2702 y Fp(Y)754 2685 y Fo(T)744 2712 y(k)780 2702 y Fp(P)807
2708 y Fo(q)825 2702 y Fv(\()851 2691 y(~)841 2702 y
Fp(B)r Fv(\))p Fp(Y)914 2708 y Fo(k)947 2702 y Fv(=)e
Fp(I)1008 2708 y Fo(p)1042 2702 y Fp(;)c(Y)1093 2685
y Fo(T)1085 2712 y(k)1120 2702 y Fp(Y)1144 2708 y Fo(k)1176
2702 y Fv(=)1224 2691 y(~)1219 2702 y(\006)14 b Fp(;)-1200
b Fv(\(27\))977 2762 y(18)p eop
%%Page: 19 19
19 18 bop 75 45 a Fv(where)15 b(the)g(pro)q(ducts)g Fp(P)466
51 y Fo(q)484 45 y Fv(\()510 35 y(~)500 45 y Fp(B)r Fv(\))p
Fp(y)570 24 y Fq(\()p Fo(k)q Fq(\))569 57 y Fo(i)618
45 y Fp(;)20 b(i)12 b Fv(=)g Fp(l)e Fv(+)g(1)p Fp(;)d(l)i
Fv(+)h(2)p Fp(;)d(:)g(:)g(:)t(;)g(s)14 b Fv(can)g(b)q(e)h(formed)d(in)i
(parallel.)165 148 y Ft(3.3.3.)24 b(Shiftin)o(g)14 b(Strategy)h(for)h
Fl(TRSVD)p Ft(.)21 b Fv(As)15 b(discussed)h(in)e([40)o(],)g(w)o(e)h
(can)g(also)f(accelerate)i(the)g(con)o(v)o(er-)75 222
y(gence)e(of)d(the)i Fp(Y)326 228 y Fo(k)359 222 y Fv(to)g(eigen)o(v)o
(ectors)g(of)695 212 y(~)685 222 y Fp(B)i Fv(\(and)d(hence)i(singular)e
(v)o(ectors)h(of)f Fp(A)p Fv(\))h(b)o(y)f(incorp)q(orating)g(Ritz)g
(shifts)h(\(see)75 297 y([33)o(]\))h(in)o(to)f Fl(TRSVD)p
Fv(.)g(Sp)q(eci\014cally)m(,)g(w)o(e)h(mo)q(dify)d(the)k(symmetric)d
(eigen)o(v)n(alue)h(problem)g(in)g(\(12\))h(as)580 409
y(\()606 399 y(~)596 409 y Fp(B)e Fr(\000)d Fp(\027)704
387 y Fq(\()p Fo(k)q Fq(\))701 421 y Fo(j)750 409 y Fp(I)s
Fv(\))p Fp(z)806 415 y Fo(j)836 409 y Fv(=)j(\()p Fp(\025)920
415 y Fo(j)947 409 y Fr(\000)d Fp(\027)1012 387 y Fq(\()p
Fo(k)q Fq(\))1009 421 y Fo(j)1058 409 y Fv(\))p Fp(z)1093
415 y Fo(j)1125 409 y Fp(;)e(j)13 b Fv(=)f(1)p Fp(;)7
b Fv(2)p Fp(;)g(:)g(:)g(:)t(;)g(s)13 b(;)-1340 b Fv(\(28\))75
521 y(where)16 b Fp(\027)220 499 y Fq(\()p Fo(k)q Fq(\))217
533 y Fo(j)279 521 y Fv(=)h(~)-24 b Fp(\033)350 499 y
Fq(\()p Fo(k)q Fq(\))349 533 y Fo(j)412 521 y Fv(is)15
b(the)h Fp(j)r Fv(-th)g(appro)o(ximate)d(eigen)o(v)n(alue)h(\(13\))h
(from)f(the)h Fp(k)q Fv(-th)h Fl(TRSVD)e Fv(iteration,)h(and)g
Fp(\025)1847 527 y Fo(j)1865 521 y Fp(;)7 b(z)1903 527
y Fo(j)75 596 y Fv(are)18 b(an)e(exact)i(eigenpair)f(of)563
585 y(~)553 596 y Fp(B)r Fv(.)28 b(In)17 b(other)h(w)o(ords,)g(w)o(e)f
(simply)e(use)j(our)f(most)f(recen)o(t)j(appro)o(ximations)14
b(to)j(the)75 670 y(eigen)o(v)n(alues)e(of)350 660 y(~)340
670 y Fp(B)k Fv(from)14 b(our)h Fp(k)q Fv(-th)h(section)g(within)f
Fl(TRSVD)g Fv(as)h(Ritz)f(shifts.)24 b(As)16 b(w)o(as)f(sho)o(wn)h(b)o
(y)f(Wilkinson)f(in)75 745 y([48)o(],)f(the)i(Ra)o(yleigh)e(quotien)o
(t)g(iteration)h(asso)q(ciated)h(with)f(\(28\))g(will)e(ultimately)g
(ac)o(hiev)o(e)j(cubic)f(con)o(v)o(ergence)i(to)75 820
y Fp(\015)11 b Fr(\000)d Fp(\033)171 826 y Fo(j)189 820
y Fv(,)13 b(where)h Fp(\033)357 826 y Fo(j)388 820 y
Fv(is)f(an)g(exact)h(singular)f(v)n(alue)f(of)h Fp(A)p
Fv(,)g(pro)o(vided)g Fp(\027)1155 798 y Fq(\()p Fo(k)q
Fq(\))1152 831 y Fo(j)1214 820 y Fv(is)g(su\016cien)o(tly)h(close)f(to)
h Fp(\015)d Fr(\000)d Fp(\033)1708 826 y Fo(j)1725 820
y Fv(.)18 b(Ho)o(w)o(ev)o(er,)75 895 y(since)f(w)o(e)g(ha)o(v)o(e)f
Fp(\027)365 873 y Fq(\()p Fo(k)q Fq(+1\))362 906 y Fo(j)469
895 y Fp(<)g(\027)541 873 y Fq(\()p Fo(k)q Fq(\))538
906 y Fo(j)603 895 y Fv(for)g(all)f Fp(k)j Fv(\(see)g(Theorem)e(3.3\),)
f(i.e.,)h(w)o(e)h(appro)o(ximate)d(eigen)o(v)n(alues)j(of)1796
884 y(~)1786 895 y Fp(B)i Fv(from)75 969 y(ab)q(o)o(v)o(e,)217
959 y(~)207 969 y Fp(B)14 b Fr(\000)d Fp(\027)319 948
y Fq(\()p Fo(k)q Fq(\))316 981 y Fo(j)364 969 y Fp(I)20
b Fv(will)15 b(not)i(b)q(e)g(p)q(ositiv)o(e)f(de\014nite)h(and)f(th)o
(us)h(w)o(e)g(cannot)f(guaran)o(tee)h(the)g(con)o(v)o(ergence)h(of)e
(this)75 1044 y(shifted)e Fl(TRSVD)g Fv(metho)q(d)f(for)h(an)o(y)g
(particular)g(singular)f(triplet)h Fp(j)r Fv(.)19 b(Ho)o(w)o(ev)o(er,)
14 b(the)h(strategy)g(outlined)e(in)h([4)o(])g(has)75
1119 y(b)q(een)h(quite)f(successful)i(in)d(main)o(taining)d(global)j
(con)o(v)o(ergence)i(with)f(shifting.)135 1193 y(The)g(logic)e(of)h
(the)i Fl(TRSVD)e Fv(metho)q(d)f(whic)o(h)i(appropriately)f(utilizes)g
(p)q(olynomial)e(\(Cheb)o(yshev\))j(acceleration)75 1268
y(prior)e(to)g(Ritz)g(shifting)f(is)h(outlined)g(in)f(T)m(able)h(7.)17
b(It)12 b(is)g(imp)q(ortan)o(t)f(to)g(note)i(that)f(once)h(shifting)e
(has)i(b)q(een)g(in)o(v)o(ok)o(ed)75 1343 y(\(Step)g(\(4\)\))g(w)o(e)g
(abandon)f(the)i(use)f(of)f(Cheb)o(yshev)i(p)q(olynomial)o(s)c
Fp(P)1144 1349 y Fo(q)1162 1343 y Fv(\()1188 1332 y(~)1178
1343 y Fp(B)s Fv(\))j(and)f(solv)o(e)h(shifted)g(systems)g(\()1734
1332 y(~)1724 1343 y Fp(B)i Fv(replaced)75 1418 y(b)o(y)145
1407 y(~)135 1418 y Fp(B)f Fr(\000)d Fp(\027)247 1396
y Fq(\()p Fo(k)q Fq(\))244 1429 y Fo(j)292 1418 y Fp(I)s
Fv(\))17 b(of)f(the)h(form)e(\(16\))h(via)g(\(21\))g(and)g(the)h(CG)f
(algorithm)e(in)i(T)m(able)f(5.)25 b(The)17 b Fs(c)n(ontext)h(switch)e
Fv(from)75 1492 y(either)h(non-accelerated)g(or)f(p)q
(olynomial-accelerated)f(trace)i(minim)o(izatio)o(n)c(iterations)j(to)g
(trace)h(minimi)o(zation)75 1567 y(iterations)10 b(with)g(Ritz)g
(shifting)f(is)h(accomplished)g(b)o(y)g(monitoring)d(the)k(reduction)g
(of)f(the)h(residuals)f(\(6\))h(for)e(isolated)75 1642
y(eigen)o(v)n(alues)k(\()p Fp(r)325 1620 y Fq(\()p Fo(k)q
Fq(\))324 1653 y Fo(j)371 1642 y Fv(\))g(or)g(clusters)h(of)e(eigen)o
(v)n(alues)h(\()p Fp(R)907 1620 y Fq(\()p Fo(k)q Fq(\))907
1653 y Fo(j)953 1642 y Fv(\).)18 b(Measuring)13 b(the)h(reduction)f(is)
g(facilitated)f(b)o(y)g(the)i(use)g(of)75 1716 y(Gershgorin)g(disks)h
(in)f(m)o(uc)o(h)f(the)i(same)f(w)o(a)o(y)f(the)i(blo)q(c)o(k)f(size)i
(for)e(the)h(blo)q(c)o(k)f(Lanczos)h(metho)q(d)e(will)g(b)q(e)i
(adjusted)75 1791 y(in)d(Section)g(3)p Fp(:)p Fv(5.)k(W)m(e)c(simply)e
(compute)h(Gershgorin)h(b)q(ounds)h(via)e Fp(F)1161 1797
y Fo(k)1193 1791 y Fv(during)h(the)h(sp)q(ectral)g(decomp)q(osition)d
(phase)75 1866 y(\(26\))k(of)f(forming)e(a)j(section.)19
b(If)13 b Fp(D)628 1872 y Fo(j)660 1866 y Fv(is)h(a)f(Gershgorin)h
(disk)g(de\014ned)h(b)o(y)570 1992 y Fp(D)604 1998 y
Fo(j)633 1992 y Fv(=)677 1921 y Fm(\()711 1992 y Fp(z)e
Fr(2)f(<)25 b Fv(:)g Fr(j)p Fp(z)11 b Fr(\000)e Fp(F)985
1998 y Fo(k)1005 1992 y Fv([)p Fp(j;)e(j)r Fv(])p Fr(j)j(\024)1172
1940 y Fo(s)1150 1952 y Fm(X)1154 2042 y Fo(l)p Fq(=1)1217
1992 y Fr(j)p Fp(F)1256 1998 y Fo(k)1276 1992 y Fv([)p
Fp(j;)d(l)q Fv(])p Fr(j)1361 1921 y Fm(\))1413 1992 y
Fp(;)-1350 b Fv(\(29\))75 2130 y(then)17 b(~)-23 b Fp(\033)195
2109 y Fq(\()p Fo(k)q Fq(\))194 2142 y Fo(j)255 2130
y Fv(is)14 b(an)f(isolated)h(eigen)o(v)n(alue)f(appro)o(ximation)e(pro)
o(vided)796 2242 y Fp(D)830 2248 y Fo(j)854 2203 y Fm(\\)907
2242 y Fp(D)941 2248 y Fo(l)966 2242 y Fv(=)h Fr(;)p
Fp(;)20 b Fr(8)p Fp(l)13 b Fr(6)p Fv(=)f Fp(j)k(:)75
2354 y Fv(Similarly)l(,)11 b Fr(f)r Fv(~)-23 b Fp(\033)306
2333 y Fq(\()p Fo(k)q Fq(\))305 2367 y Fo(l)352 2354
y Fp(;)9 b Fv(~)-23 b Fp(\033)396 2333 y Fq(\()p Fo(k)q
Fq(\))395 2367 y Fo(l)p Fq(+1)449 2354 y Fp(;)7 b(:)g(:)g(:)e(;)j
Fv(~)-22 b Fp(\033)567 2333 y Fq(\()p Fo(k)q Fq(\))566
2367 y Fo(l)p Fq(+)p Fo(c)618 2354 y Fr(g)14 b Fv(form)e(a)h(cluster)i
(of)f(size)g Fp(c)g Fv(pro)o(vided)894 2436 y Fo(l)p
Fq(+)p Fo(c)896 2448 y Fm(\\)895 2538 y Fo(i)p Fq(=)p
Fo(l)952 2488 y Fp(D)986 2494 y Fo(i)1011 2488 y Fr(6)p
Fv(=)e Fr(;)i Fp(:)135 2626 y Fv(F)m(or)e(an)h(isolated)f(eigen)o(v)n
(alue)g(appro)o(ximation)g(~)-23 b Fp(\033)914 2605 y
Fq(\()p Fo(k)q Fq(\))913 2638 y Fo(j)961 2626 y Fv(,)12
b(whic)o(h)h(is)f(detected)j(sa)o(y)e(after)g Fp(k)1498
2632 y Fq(0)1529 2626 y Fl(TRSVD)f Fv(iterations,)h(w)o(e)75
2701 y(monitor)i(succeeding)k(iterations)e(\()p Fp(k)h(>)f(k)759
2707 y Fq(0)777 2701 y Fv(\),)g(and)g(determine)g(if)f(the)i(norm)e(of)
g(the)i(curren)o(t)g(residual)f(\()p Fr(k)p Fp(r)1818
2680 y Fq(\()p Fo(k)q Fq(\))1817 2713 y Fo(j)1864 2701
y Fr(k)1885 2707 y Fq(2)1904 2701 y Fv(\))977 2762 y(19)p
eop
%%Page: 20 20
20 19 bop 75 45 a Fv(is)19 b(less)h(than)f(a)f(c)o(hosen)i(order)g(of)f
(magnitude)e(\()p Fp(\021)k Fv(=)g(10)1013 30 y Fu(\000)p
Fo(t)1053 45 y Fv(,)f(for)e(a)h(small)e(in)o(teger)i
Fp(t)p Fv(\))g(of)g Fr(k)p Fp(r)1593 24 y Fq(\()p Fo(k)1624
28 y Fj(0)1639 24 y Fq(\))1592 57 y Fo(j)1654 45 y Fr(k)1675
51 y Fq(2)1694 45 y Fv(.)33 b(Th)o(us,)20 b(the)75 120
y(parameter)15 b Fp(\021)g Fv(serv)o(es)i(as)e(our)g(con)o(trol)f(for)h
(the)g(con)o(text)h(switc)o(h)f(from)e(p)q(olynomial-based)f
(acceleration)k(to)e(shift-)75 195 y(based)j(acceleraton)f(in)g
Fl(TRSVD)p Fv(.)f(The)h(v)n(alue)f(of)h Fp(\021)h Fv(will)d(naturally)h
(dep)q(end)i(up)q(on)f(the)g(desired)h(accuracy)g(of)e(the)75
269 y(singular)f(triplets)i(sough)o(t,)f(since)h(w)o(e)f(w)o(ould)f
(lik)o(e)g(to)h(pro)q(duce)i(suitable)e(shifts)g(\()p
Fp(\027)1407 249 y Fo(j)1404 282 y(k)1437 269 y Fr(\021)h
Fv(~)-23 b Fp(\033)1508 249 y Fo(j)1507 282 y(k)1527
269 y Fv(\))16 b(for)e(fast)h(con)o(v)o(ergence)75 344
y(of)e Fp(y)143 324 y Fo(j)142 357 y(k)177 344 y Fv(to)g(an)h(eigen)o
(v)o(ector)g(of)557 334 y(~)548 344 y Fp(B)r Fv(.)k(Ho)o(w)o(ev)o(er,)c
(for)f(most)g(problems)g(w)o(e)h(ha)o(v)o(e)f(considered)i(\(including)
e(T)m(ables)h(1)f(and)75 419 y(2\))h(w)o(e)g(can)g(obtain)f(optimal)e
(con)o(v)o(ergence)16 b(rates)f(for)e Fp(\021)g Fv(=)f(10)1059
404 y Fu(\000)p Fq(1)1103 419 y Fp(;)7 b Fv(10)1164 404
y Fq(0)1181 419 y Fv(.)p 161 478 1673 2 v 160 553 2 75
v 1833 553 V 160 627 V 186 605 a(\(0\))50 b(Set)14 b
Fp(k)f Fv(=)f(0,)h(c)o(ho)q(ose)i(an)e(initial)f Fp(n)d
Fr(\002)h Fp(s)k Fv(subspace)h(iterate)g Fp(Y)1232 611
y Fq(0)1262 605 y Fv(=)d([)p Fp(y)1339 583 y Fq(\(0\))1338
616 y(1)1384 605 y Fp(;)7 b(y)1424 583 y Fq(\(0\))1423
616 y(2)1469 605 y Fp(;)g Fr(\001)g(\001)g(\001)e Fp(;)i(y)1583
583 y Fq(\(0\))1582 610 y Fo(s)1628 605 y Fv(].)p 1833
627 V 160 702 V 289 680 a(and)14 b(select)h(p)q(olynomial)10
b(acceleration)15 b(\(if)e(desired\).)p 1833 702 V 160
777 V 186 754 a(\(1\))50 b(F)m(orm)12 b(a)i(section)g(as)g(in)g(\(13\))
f(or)h(\(27\))g(if)f(Cheb)o(yshev)i(acceleration)f(is)g(used.)p
1833 777 V 160 851 V 186 829 a(\(2\))50 b(Compute)13
b(residuals:)18 b Fp(r)676 807 y Fq(\()p Fo(k)q Fq(\))675
841 y Fo(j)734 829 y Fv(=)788 818 y(~)778 829 y Fp(B)r(y)832
807 y Fq(\()p Fo(k)q Fq(\))831 841 y Fo(j)889 829 y Fr(\000)12
b Fv(~)-24 b Fp(\033)955 807 y Fq(\()p Fo(k)q Fq(\))954
841 y Fo(j)1002 829 y Fp(y)1023 807 y Fq(\()p Fo(k)q
Fq(\))1022 841 y Fo(j)1070 829 y Fv(,)13 b(where)j(\()r(~)-23
b Fp(\033)1257 807 y Fq(\()p Fo(k)q Fq(\))1256 841 y
Fo(j)1303 829 y Fv(,)14 b Fp(y)1350 807 y Fq(\()p Fo(k)q
Fq(\))1349 841 y Fo(j)1397 829 y Fv(\))g(is)g(the)g Fp(j)r
Fv(-th)g(eigenpair)p 1833 851 V 160 926 V 289 904 a(appro)o(ximation)d
(from)h Fl(TRSVD)i Fv(iteration)f Fp(k)q Fv(,)g(and)h(access)i
(accuracy)f(of)e(eigenpairs)p 1833 926 V 160 1001 V 289
978 a(of)346 968 y(~)336 978 y Fp(B)k Fv(\(singular)c(triplets)h(of)g
Fp(A)p Fv(\).)p 1833 1001 V 160 1076 V 186 1053 a(\(3\))50
b(Analyze)14 b(the)h(curren)o(t)g(appro)o(ximate)d(sp)q(ectrum)i(using)
g(Gershgorin)g(disks)g(in)p 1833 1076 V 160 1150 V 289
1128 a(\(29\))g(with)f Fp(H)506 1134 y Fo(k)538 1128
y Fr(\021)e Fp(F)608 1134 y Fo(k)629 1128 y Fv(,)i(where)i
Fp(F)801 1134 y Fo(k)835 1128 y Fv(is)f(de\014ned)h(in)e(\(26\),)g(and)
h Fp(bk)e Fr(\021)g Fp(s)p Fv(.)p 1833 1150 V 160 1225
V 289 1203 a(\(Monitor)h(isolated)h(and)g(clustered)h(eigen)o(v)n
(alues.\))p 1833 1225 V 160 1300 V 186 1277 a(\(4\))50
b(In)o(v)o(ok)o(e)13 b(Ritz)h(shifting)f(strategy)i(\([4)o(]\):)p
1833 1300 V 160 1374 V 289 1352 a(F)m(or)e(isolated)h(eigen)o(v)n
(alues:)p 1833 1374 V 160 1449 V 333 1427 a(if)f Fr(k)p
Fp(r)412 1405 y Fq(\()p Fo(k)q Fq(\))411 1438 y Fo(j)458
1427 y Fr(k)479 1433 y Fq(2)509 1427 y Fr(\024)f Fp(\021)q
Fr(k)p Fp(r)616 1405 y Fq(\()p Fo(k)647 1409 y Fj(0)662
1405 y Fq(\))615 1438 y Fo(j)677 1427 y Fr(k)698 1433
y Fq(2)717 1427 y Fv(,)h(where)i Fp(\021)e Fr(2)e Fv([10)989
1412 y Fu(\000)p Fq(3)1032 1427 y Fp(;)c Fv(10)1093 1412
y Fq(0)1111 1427 y Fv(])13 b(and)h Fp(k)1239 1433 y Fq(0)1269
1427 y Fp(<)e(k)i Fv(for)g(some)f Fp(j)j Fv(.)p 1833
1449 V 160 1524 V 289 1501 a(F)m(or)d(a)h(cluster)h(of)e(eigen)o(v)n
(alues)h(\(size)h Fp(c)p Fv(\):)p 1833 1524 V 160 1599
V 333 1576 a(if)e Fr(k)p Fp(R)424 1555 y Fq(\()p Fo(k)q
Fq(\))424 1588 y Fo(j)470 1576 y Fr(k)491 1582 y Fo(F)530
1576 y Fr(\024)f Fp(\021)q Fr(k)p Fp(R)649 1555 y Fq(\()p
Fo(k)680 1559 y Fj(0)695 1555 y Fq(\))649 1588 y Fo(j)710
1576 y Fr(k)731 1582 y Fo(F)758 1576 y Fv(,)i(where)h
Fp(R)936 1555 y Fq(\()p Fo(k)q Fq(\))936 1588 y Fo(j)994
1576 y Fr(\021)c(f)p Fp(r)1078 1555 y Fq(\()p Fo(k)q
Fq(\))1077 1588 y Fo(j)1124 1576 y Fp(;)c Fr(\001)g(\001)g(\001)e
Fp(;)i(r)1237 1555 y Fq(\()p Fo(k)q Fq(\))1236 1588 y
Fo(j)r Fq(+)p Fo(c)1293 1576 y Fr(g)14 b Fv(and)f Fp(k)1430
1582 y Fq(0)1460 1576 y Fp(<)f(k)j Fv(for)e(some)g Fp(j)r
Fv(.)p 1833 1599 V 160 1673 V 289 1651 a(\(Disable)g(p)q(olynomial)e
(acceleration)j(if)f(shifting)g(is)h(selected.\))p 1833
1673 V 160 1748 V 186 1726 a(\(5\))50 b(De\015ation:)17
b(reduce)f(subspace)f(dimension,)d Fp(s)p Fv(,)i(b)o(y)g(n)o(um)o(b)q
(er)f(of)g(appro)o(ximate)p 1833 1748 V 160 1823 V 299
1790 a(~)289 1800 y Fp(B)s Fv(-eigenpairs)g(accepted)j(for)e(singular)f
(triplets)h(of)f Fp(A)p Fv(.)p 1833 1823 V 160 1897 V
186 1875 a(\(6\))50 b(Adjust)14 b(p)q(olynomial)d(degree)k
Fp(q)g Fv(\(see)g([37)o(])f(or)f([4]\))g(for)h Fp(P)1180
1881 y Fo(q)1198 1875 y Fv(\()1224 1865 y(~)1214 1875
y Fp(B)r Fv(\))g(in)g(iteration)f Fp(k)d Fv(+)g(1)k(\(if)f(needed\).)p
1833 1897 V 160 1972 V 186 1950 a(\(7\))50 b(Up)q(date)15
b(subspace)g(iterate)g Fp(Y)766 1956 y Fo(k)q Fq(+1)840
1950 y Fr(\021)c Fp(Y)907 1956 y Fo(k)937 1950 y Fr(\000)f
Fv(\001)1014 1956 y Fo(k)1048 1950 y Fv(via)j(\(16\))g(or)h(\(25\).)p
1833 1972 V 160 2047 V 186 2025 a(\(8\))50 b(Set)14 b
Fp(k)f Fv(=)f Fp(k)e Fv(+)f(1)14 b(and)g(go)f(to)h(Step)g(\(1\).)p
1833 2047 V 160 2122 V 1833 2122 V 161 2123 1673 2 v
917 2216 a Fn(T)l(able)i(7)417 2291 y Fl(TRSVD)f Fs(A)o(lgorithm)f
(with)g(Chebyshev)h(A)n(c)n(c)n(eler)n(ation)f(and)i(R)o(itz)f(shifts)f
(.)165 2478 y Ft(3.4.)24 b(Single-V)l(ector)13 b(Lanczos)j(Metho)q(d.)k
Fv(Other)15 b(p)q(opular)f(metho)q(ds)g(for)g(solving)f(large,)h
(sparse,)h(sym-)75 2552 y(metric)e(eigenproblems)g(originated)g(from)f
(a)i(metho)q(d)f(attributed)h(to)g(Lanczos)g(\(1950\).)k(This)13
b(metho)q(d)g(generates)75 2627 y(a)18 b(sequence)i(of)d(tridiagonal)f
(matrices)i Fp(T)750 2633 y Fo(j)785 2627 y Fv(with)g(the)h(prop)q(ert)
o(y)f(that)h(the)f(extremal)f(eigen)o(v)n(alues)h(of)f(the)i
Fp(j)14 b Fr(\002)f Fp(j)75 2702 y Fv(matrix)f Fp(T)234
2708 y Fo(j)266 2702 y Fv(are)i(progressiv)o(ely)h(b)q(etter)g
(estimates)f(of)f(the)i(original)d(matrix)g Fp(B)r Fv('s)j(extremal)e
(eigen)o(v)n(alues.)18 b(Supp)q(ose)977 2762 y(20)p eop
%%Page: 21 21
21 20 bop 75 43 a Fv(w)o(e)14 b(consider)g(the)g(\()p
Fp(m)9 b Fv(+)f Fp(n)p Fv(\))g Fr(\002)h Fv(\()p Fp(m)f
Fv(+)h Fp(n)p Fv(\))k(2-cyclic)g(matrix)f Fp(B)k Fv(giv)o(en)d(in)g
(\(5\),)g(where)h Fp(A)f Fv(is)h(the)g Fp(m)8 b Fr(\002)h
Fp(n)k Fv(matrix)e(whose)75 118 y(singular)i(triplets)h(are)g(sough)o
(t,)f(and)g(let)h Fp(v)748 124 y Fq(1)780 118 y Fv(b)q(e)g(a)g
(randomly)d(generated)k(starting)e(\()p Fp(m)d Fv(+)f
Fp(n)p Fv(\))f Fr(\002)h Fv(1)k(v)o(ector)i(suc)o(h)f(that)75
193 y Fr(k)p Fp(v)116 199 y Fq(1)134 193 y Fr(k)155 199
y Fq(2)185 193 y Fv(=)e(1.)17 b(F)m(or)11 b Fp(j)j Fv(=)e(1)p
Fp(;)7 b Fv(2)p Fp(;)g(:::;)g(l)j Fv(de\014ne)i(the)h(corresp)q(onding)
f(Lanczos)h(matrices)e Fp(T)1378 199 y Fo(j)1407 193
y Fv(using)g(the)i(follo)o(wing)c(recursion)75 267 y(\([32)o(]\).)19
b(De\014ne)c Fp(\014)355 273 y Fq(1)386 267 y Fr(\021)d
Fv(0,)h(and)h Fp(v)577 273 y Fq(0)608 267 y Fr(\021)e
Fv(0.)19 b(Then)c(for)f Fp(i)e Fv(=)g(1)p Fp(;)7 b Fv(2)p
Fp(;)g(:::;)g(l)12 b Fv(de\014ne)j(Lanczos)g(v)o(ectors)g
Fp(w)1555 273 y Fo(i)1583 267 y Fv(and)f(scalars)h Fp(\013)1826
273 y Fo(i)1853 267 y Fv(and)75 342 y Fp(\014)98 348
y Fo(i)p Fq(+1)168 342 y Fv(where)638 458 y Fp(\014)661
464 y Fo(i)p Fq(+1)717 458 y Fp(w)747 464 y Fo(i)p Fq(+1)814
458 y Fv(=)d Fp(B)r(w)921 464 y Fo(i)945 458 y Fr(\000)d
Fp(\013)1013 464 y Fo(i)1026 458 y Fp(w)1056 464 y Fo(i)1079
458 y Fr(\000)h Fp(\014)1144 464 y Fo(i)1158 458 y Fp(w)1188
464 y Fo(i)p Fu(\000)p Fq(1)1258 458 y Fp(;)20 b Fv(and)-1282
b(\(30\))779 616 y Fp(\013)806 622 y Fo(i)831 616 y Fv(=)12
b Fp(w)906 599 y Fo(T)905 626 y(i)932 616 y Fv(\()p Fp(B)r(w)1011
622 y Fo(i)1035 616 y Fr(\000)d Fp(\014)1099 622 y Fo(i)1113
616 y Fp(w)1143 622 y Fo(i)p Fu(\000)p Fq(1)1199 616
y Fv(\))683 774 y Fr(j)p Fp(\014)718 780 y Fo(i)p Fq(+1)774
774 y Fr(j)i Fv(=)h Fr(k)p Fp(B)r(w)925 780 y Fo(i)948
774 y Fr(\000)d Fp(\013)1016 780 y Fo(i)1030 774 y Fp(w)1060
780 y Fo(i)1082 774 y Fr(\000)h Fp(\014)1147 780 y Fo(i)1161
774 y Fp(w)1191 780 y Fo(i)p Fu(\000)p Fq(1)1247 774
y Fr(k)1268 780 y Fq(2)1300 774 y Fp(:)75 900 y Fv(F)m(or)17
b(eac)o(h)g Fp(j)r Fv(,)h(the)g(corresp)q(onding)g(Lanczos)g(matrix)d
Fp(T)966 906 y Fo(j)1001 900 y Fv(is)i(de\014ned)h(as)f(a)g(real)g
(symmetric,)f(tridiagonal)f(matrix)75 985 y(ha)o(ving)d(diagonal)f(en)o
(tries)j Fp(\013)532 991 y Fo(i)559 985 y Fv(\(1)d Fr(\024)h
Fp(i)g Fr(\024)g Fp(j)r Fv(\),)h(and)g(sub)q(diagonal)f(\(sup)q
(erdiagonal\))h(en)o(tries)h Fp(\014)1541 991 y Fo(i)p
Fq(+1)1610 985 y Fv(\(1)e Fr(\024)g Fp(i)f Fr(\024)h
Fv(\()p Fp(j)e Fr(\000)e Fv(1\)\),)75 1069 y(i.e.,)665
1316 y Fh(T)692 1323 y Fg(j)723 1316 y Ff(\021)771 1132
y Fm(0)771 1205 y(B)771 1230 y(B)771 1255 y(B)771 1280
y(B)771 1305 y(B)771 1330 y(B)771 1355 y(B)771 1380 y(B)771
1406 y(@)828 1169 y Fg(\013)851 1174 y Fe(1)911 1169
y Fg(\014)931 1174 y Fe(2)829 1228 y Fg(\014)849 1233
y Fe(2)909 1228 y Fg(\013)932 1233 y Fe(2)991 1228 y
Fg(\014)1011 1233 y Fe(3)911 1287 y Fg(\014)931 1292
y Fe(3)1004 1287 y Fd(\001)55 b(\001)1004 1346 y(\001)g(\001)g(\001)
1069 1405 y(\001)g(\001)h Fg(\014)1220 1410 y Fc(j)1121
1465 y Fg(\014)1141 1470 y Fc(j)1198 1465 y Fg(\013)1221
1470 y Fc(j)1258 1132 y Fm(1)1258 1205 y(C)1258 1230
y(C)1258 1255 y(C)1258 1280 y(C)1258 1305 y(C)1258 1330
y(C)1258 1355 y(C)1258 1380 y(C)1258 1406 y(A)1317 1316
y Fh(:)-1255 b Fb(\(31\))88 1563 y Fv(By)13 b(de\014nition,)f(the)i(v)o
(ectors)g Fp(\013)585 1569 y Fo(i)598 1563 y Fp(w)628
1569 y Fo(i)655 1563 y Fv(and)e Fp(\014)757 1569 y Fo(i)772
1563 y Fp(w)802 1569 y Fo(i)p Fu(\000)p Fq(1)871 1563
y Fv(in)g(\(30\))h(are)g(resp)q(ectiv)o(ely)m(,)h(the)f(orthogonal)f
(pro)r(jections)i(of)e Fp(B)r(w)1906 1569 y Fo(i)75 1638
y Fv(on)o(to)17 b(the)i(most)d(recen)o(t)k Fp(w)511 1644
y Fo(i)542 1638 y Fv(and)d Fp(w)656 1644 y Fo(i)p Fu(\000)p
Fq(1)712 1638 y Fv(.)30 b(Hence)19 b(for)e(eac)o(h)i
Fp(i)p Fv(,)f(the)h(next)f(Lanczos)g(v)o(ector)h Fp(w)1583
1644 y Fo(i)p Fq(+1)1656 1638 y Fv(is)f(obtained)f(b)o(y)75
1713 y(orthogonalizing)d Fp(B)r(w)433 1719 y Fo(i)462
1713 y Fv(with)h(resp)q(ect)j(to)d Fp(w)784 1719 y Fo(i)813
1713 y Fv(and)g Fp(w)925 1719 y Fo(i)p Fu(\000)p Fq(1)981
1713 y Fv(.)23 b(The)16 b(resulting)f Fp(\013)1302 1719
y Fo(i)1316 1713 y Fv(,)g Fp(\014)1366 1719 y Fo(i)p
Fq(+1)1438 1713 y Fv(obtained)g(in)g(these)i(orthogo-)75
1787 y(nalizations)11 b(de\014ne)i(the)g(corresp)q(onding)g(Lanczos)g
(matrices.)k(If)12 b(w)o(e)h(rewrite)g(\(30\))f(in)g(matrix)e(form,)h
(then)i(for)e(eac)o(h)75 1862 y Fp(j)16 b Fv(w)o(e)e(ha)o(v)o(e)729
1978 y Fp(B)r(W)801 1984 y Fo(j)830 1978 y Fv(=)e Fp(W)913
1984 y Fo(j)931 1978 y Fp(T)955 1984 y Fo(j)982 1978
y Fv(+)d Fp(\014)1046 1984 y Fo(j)r Fq(+1)1106 1978 y
Fp(w)1136 1984 y Fo(j)r Fq(+1)1196 1978 y Fp(e)1215 1961
y Fo(T)1215 1989 y(j)1255 1978 y Fp(;)-1192 b Fv(\(32\))75
2095 y(where)15 b Fp(W)234 2101 y Fo(j)264 2095 y Fr(\021)d
Fv([)p Fp(w)350 2101 y Fq(1)368 2095 y Fp(;)7 b(w)417
2101 y Fq(2)435 2095 y Fp(;)g(:::;)g(w)539 2101 y Fo(j)553
2095 y Fv(])14 b(is)g(the)h Fp(n)9 b Fr(\002)h Fp(j)16
b Fv(matrix)c(whose)j Fp(k)q Fv(-th)f(column)f(is)h(the)g
Fp(k)q Fv(-th)g(Lanczos)h(v)o(ector,)g(and)f Fp(e)1894
2080 y Fo(T)1894 2105 y(j)75 2169 y Fv(is)h(the)g Fp(j)r
Fv(-th)h(column)d(of)h(the)i Fp(n)10 b Fr(\002)g Fp(n)15
b Fv(iden)o(tit)o(y)f(matrix.)20 b(Th)o(us,)15 b(the)g(Lanczos)h
(recursion)g(\(32\))f(generates)h(a)f(family)75 2244
y(of)f(real)i(symmetric)d(tridiagonal)g(matrices)i(related)g(to)g(b)q
(oth)h Fp(B)h Fv(and)e Fp(w)1239 2250 y Fq(1)1257 2244
y Fv(.)22 b(T)m(able)14 b(8)h(outlines)g(the)h(basic)f(Lanczos)75
2319 y(pro)q(cedure)h(for)d(computing)g(the)h(eigen)o(v)n(alues)g(and)f
(eigen)o(v)o(ectors)j(of)d(the)h(symmetric)f(2-cyclic)g(matrix)f
Fp(B)r Fv(.)135 2393 y(As)g(with)g(subspace)h(iteration,)f(the)g
(matrix)e Fp(B)k Fv(is)e(only)f(referenced)k(through)c(matrix-v)o
(ector)g(m)o(ultiplication)d(in)75 2468 y(T)m(able)13
b(8.)19 b(A)o(t)14 b(eac)o(h)h(iteration,)e(the)i(basic)f(Lanczos)h
(recursion)g(requires)h(only)d(the)i(t)o(w)o(o)f(most)f(recen)o
(tly-generated)75 2543 y(v)o(ectors,)21 b(although)d(for)h
(\014nite-precision)h(arithmetic)e(mo)q(di\014cations)f(suggested)k(b)o
(y)e(Grcar)g([24)o(],)h(P)o(arlett)f(and)75 2618 y(Scott)f([34)o(],)f
(and)g(Simon)e([43)o(])i(require)h(additional)d(Lanczos)j(v)o(ectors)g
(to)g(b)q(e)f(readily)g(accessible)i(via)d(secondary)75
2692 y(storage.)31 b(W)m(e)18 b(note)h(that)f(on)g(a)g(m)o(ultipro)q
(cessor)g(arc)o(hitecture,)j(step)e(\(2\))f(in)g(T)m(able)f(8)h(ma)o(y)
e(b)q(ene\014t)k(from)c(an)o(y)977 2762 y(21)p eop
%%Page: 22 22
22 21 bop 319 3 1358 2 v 318 78 2 75 v 1676 78 V 318
153 V 343 131 a Fv(\(1\))50 b(Use)15 b(an)o(y)e(v)n(arian)o(t)g(of)h
(the)g(Lanczos)h(recursion)g(\(30\))e(to)h(generate)p
1676 153 V 318 228 V 446 205 a(a)g(family)d(of)i(real)h(symmetric)e
(tridiagonal)g(matrices,)h Fp(T)1350 211 y Fo(j)1381
205 y Fv(\()p Fp(j)i Fv(=)c(1)p Fp(;)c Fv(2)p Fp(;)g(:::;)g(q)p
Fv(\).)p 1676 228 V 318 302 V 343 280 a(\(2\))50 b(F)m(or)14
b(some)f Fp(k)f Fr(\024)g Fp(q)q Fv(,)h(compute)h(relev)n(an)o(t)g
(eigen)o(v)n(alues)f(of)h Fp(T)1360 286 y Fo(k)1380 280
y Fv(.)p 1676 302 V 318 377 V 343 355 a(\(3\))50 b(Select)15
b(some)e(or)h(all)f(of)g(these)i(eigen)o(v)n(alues)f(as)g(appro)o
(ximations)d(to)j(the)p 1676 377 V 318 452 V 446 429
a(eigen)o(v)n(alues)g(of)f(the)i(matrix)d Fp(B)r Fv(,)i(and)f(hence)j
(singular)d(v)n(alues)h(of)f Fp(A)p Fv(.)p 1676 452 V
318 527 V 343 504 a(\(4\))50 b(F)m(or)14 b(eac)o(h)g(eigen)o(v)n(alue)g
Fp(\025)g Fv(compute)f(a)h(corresp)q(onding)g(unit)g(eigen)o(v)o(ector)
p 1676 527 V 318 601 V 446 579 a Fp(z)i Fv(suc)o(h)f(that)f
Fp(T)689 585 y Fo(k)710 579 y Fp(z)f Fv(=)f Fp(\025z)r
Fv(.)18 b(Map)c(suc)o(h)h(v)o(ectors)g(in)o(to)e(corresp)q(onding)p
1676 601 V 318 676 V 446 654 a(Ritz)h(v)o(ectors)h Fp(y)e
Fr(\021)f Fp(W)794 660 y Fo(q)813 654 y Fp(z)r Fv(,)h(whic)o(h)h(are)g
(then)h(used)f(as)g(appro)o(ximations)p 1676 676 V 318
751 V 446 728 a(to)g(the)h(desired)g(eigen)o(v)o(ectors)g(\(singular)e
(v)o(ectors\))i(of)e(the)i(matrix)d Fp(B)k Fv(\()p Fp(A)p
Fv(\).)p 1676 751 V 318 825 V 1676 825 V 319 827 1358
2 v 917 920 a Fn(T)l(able)g(8)696 994 y Fs(Single-V)m(e)n(ctor)e(L)n
(anczos)i(R)n(e)n(cursion.)75 1168 y Fv(a)o(v)n(ailable)i(optimized)i
(library)g(routine)h(that)f(solv)o(es)h(the)g(symmetric)e(tridiagonal)g
(eigen)o(v)n(alue)h(problem)g(\(eg.,)75 1243 y(m)o(ultisectioning)12
b(in)h([29)o(])g(or)h(divide)g(and)f(conquer)i(in)f([15)o(]\).)135
1318 y(Theoretically)m(,)h(it)g(is)g(easy)h(to)f(pro)o(v)o(e)h(that)f
(for)g(the)h(basic)g(Lanczos)g(recursion)g(that)g(orthogonalization)d
(with)75 1393 y(resp)q(ect)19 b(to)d(only)g(the)h(t)o(w)o(o)f(most)g
(recen)o(tly-generated)j(Lanczos)e(v)o(ectors)h(is)e(su\016cien)o(t)h
(to)g(guaran)o(tee)g(that)f(eac)o(h)75 1467 y(succeeding)g(Lanczos)f(v)
o(ector)g(is)g(orthogonal)e(with)h(resp)q(ect)j(to)d(all)f(previously)h
(generated)i(Lanczos)f(v)o(ectors)h(\(see)75 1542 y([11)o(])10
b(or)g([33)o(]\).)17 b(In)10 b(one)g(sense,)j(the)e(Lanczos)g(pro)q
(cedure)h(can)e(b)q(e)h(view)o(ed)g(as)f(the)h(Gram-Sc)o(hmi)o(dt)d
(orthogonalization)75 1617 y(of)15 b(the)i(set)g(of)f(Krylo)o(v)f(v)o
(ectors)i Fp(w)627 1623 y Fq(1)646 1617 y Fp(;)7 b(B)r(w)728
1623 y Fq(1)746 1617 y Fp(;)g(:::;)g(B)853 1602 y Fo(k)q
Fu(\000)p Fq(1)914 1617 y Fp(w)944 1623 y Fq(1)962 1617
y Fv(.)25 b(Alternativ)o(ely)m(,)15 b(span)h Fr(f)p Fp(W)1420
1623 y Fo(j)1438 1617 y Fr(g)g Fv(is)f(a)h(Krylo)o(v)g(subspace)h(for)
75 1691 y(the)f(matrix)d Fp(B)r Fv(,)i(and)g(the)h(Lanczos)g(pro)q
(cedure)h(is)d(a)h(mec)o(hanism)e(for)i(generating)g(orthonormal)e
(bases)j(for)f(these)75 1766 y(Krylo)o(v)d(subspaces)j(and)e(for)g
(computing)e(the)j(orthogonal)d(pro)r(jection)j(of)e
Fp(B)k Fv(on)o(to)c(these)i(subspaces.)20 b(Computing)75
1841 y(the)15 b(eigen)o(v)n(alues)f(of)f(the)i Fp(T)505
1847 y Fo(j)523 1841 y Fv('s)f(is)g(equiv)n(alen)o(t)f(to)h(computing)f
(the)i(b)q(est)g(appro)o(ximations)c(to)j(the)h(eigen)o(v)n(alues)f
(and)75 1916 y(eigen)o(v)o(ectors)g(of)e Fp(B)j Fv(restricted)g(to)d
(the)i(corresp)q(onding)f(Krylo)o(v)f(subspaces.)20 b(The)13
b(accuracy)h(of)e(these)i(appro)o(xima-)75 1990 y(tions)i(ha)o(v)o(e)g
(b)q(een)i(studied)f(in)f(detail)f(b)o(y)i(Kaniel)e(\([26]\))h(and)g
(more)f(recen)o(tly)j(b)o(y)e(Saad)g(\([38)o(]\).)25
b(Saad)16 b(impro)o(v)o(ed)75 2065 y(the)f(original)e(error)j(b)q
(ounds)f(of)f(Kaniel,)g(ho)o(w)o(ev)o(er,)h(but)g(these)h(results)g
(still)d(indicate)i(deterioration)g(of)f(accuracy)75
2140 y(of)h(the)h(computed)f(eigen)o(v)n(alues)h(and)f(of)g(the)h
(corresp)q(onding)h(Ritz)e(v)o(ectors)i(as)f(w)o(e)f(mo)o(v)o(e)f(to)i
(the)g(in)o(terior)f(of)g(the)75 2214 y(sp)q(ectrum)f(of)g
Fp(B)r Fv(.)135 2289 y(In)j(using)g(\014nite-precision)h(arithmetic,)e
(an)o(y)h(practical)g(Lanczos)h(pro)q(cedure)h(m)o(ust)d(address)j
(problems)d(cre-)75 2364 y(ated)f(b)o(y)g(losses)h(in)e(the)i
(orthogonalit)o(y)d(of)h(the)h(Lanczos)h(v)o(ectors,)g
Fp(w)1184 2370 y Fo(i)1197 2364 y Fv(.)21 b(Suc)o(h)16
b(problems)e(include)h(the)g(o)q(ccurrence)75 2439 y(of)e(n)o
(umerically-m)n(ulti)o(ple)e(eigen)o(v)n(alues)i(of)g
Fp(T)793 2445 y Fo(j)824 2439 y Fv(\(for)g(large)g Fp(j)r
Fv(\))h(for)f(simple)f(eigen)o(v)n(alues)h(of)g Fp(B)r
Fv(,)h(and)f(the)h(app)q(earance)75 2513 y(of)g(spurious)i(eigen)o(v)n
(alues)f(among)e(the)i(computed)g(eigen)o(v)n(alues)g(for)g(some)f
Fp(T)1315 2519 y Fo(j)1332 2513 y Fv(.)22 b(Approac)o(hes)16
b(to)f(deal)g(with)g(these)75 2588 y(problems)h(range)i(from)e(t)o(w)o
(o)g(di\013eren)o(t)j(extremes.)29 b(The)18 b(total)e
(reorthogonalization)g(of)h(ev)o(ery)h(Lanczos)g(v)o(ector)75
2663 y(with)d(resp)q(ect)i(to)e(ev)o(ery)g(previously-generated)h
(Lanczos)g(v)o(ector)g(is)f(one)g(extreme)g(\([23)o(]\).)21
b(The)15 b(other)h(approac)o(h)977 2762 y(22)p eop
%%Page: 23 23
23 22 bop 75 43 a Fv(accepts)12 b(the)g(loss)f(in)f(orthogonalit)o(y)f
(and)i(then)g(deals)g(with)g(these)h(problems)e(directly)m(.)17
b(T)m(otal)9 b(reorthogonalization)75 118 y(is)16 b(certainly)g(one)g
(w)o(a)o(y)f(of)g(main)o(taining)e(orthogonalit)o(y)m(,)g(ho)o(w)o(ev)o
(er,)k(it)e(ma)o(y)f(complicate)h(the)h(Lanczos)h(recursion)75
193 y(with)d(regard)i(to)e(storage)h(requiremen)o(ts)h(and)e
(arithmetic)g(op)q(erations.)21 b(It)14 b(requires)i(that)f(all)f(of)g
(the)h(previously-)75 267 y(generated)g(Lanczos)f(v)o(ectors)h(b)q(e)g
(a)o(v)n(ailable)c(for)i(the)i(reorthogonalization)d(of)h(eac)o(h)h
(Lanczos)h(v)o(ector)f(as)g(it)f(is)h(gen-)75 342 y(erated,)20
b(and)d(therefore,)j(the)f(n)o(um)o(b)q(er)e(of)h(eigen)o(v)n(alues)g
(whic)o(h)f(can)i(b)q(e)f(computed)g(is)g(limited)d(b)o(y)j(the)h
(amoun)o(t)75 417 y(of)d(secondary)i(storage.)26 b(On)17
b(the)g(Cra)o(y-2S/4-128)e(sup)q(ercomputer,)j(ho)o(w)o(ev)o(er,)f(128)
f(mega)o(w)o(ords)f(\(1024)g(million)75 492 y(b)o(ytes\))d(of)e(core)i
(memory)c(ma)o(y)h(b)q(e)i(su\016cien)o(t)h(for)e(most)g(Lanczos)h
(recursions)i(requiring)d(total)g(reorthogonalization)75
566 y(\(for)k Fp(m)c Fr(\002)f Fp(n)14 b Fv(matrices)g(in)g(whic)o(h)g
Fp(mn)e Fr(\034)g Fv(10)785 551 y Fq(7)803 566 y Fv(\).)19
b(On)14 b(the)h(other)g(hand,)e(a)h(Lanczos)h(pro)q(cedure)h(with)e(no)
g(reorthog-)75 641 y(onalization)f(needs)j(only)e(the)i(t)o(w)o(o)e
(most)g(recen)o(tly-generated)j(Lanczos)f(v)o(ectors)g(at)e(eac)o(h)i
(stage,)f(and)g(hence)h(has)75 716 y(minim)o(al)8 b(computer)j(storage)
h(requiremen)o(ts.)18 b(One)12 b(disadv)n(an)o(tage)f(of)g(suc)o(h)h(a)
g(pro)q(cedure)h(is)f(in)f(the)h(trac)o(king)f(\([11)o(]\))75
791 y(of)17 b(spurious)i(eigen)o(v)n(alues)f(of)f Fp(B)k
Fv(\(singular)c(v)n(alues)h(of)g Fp(A)p Fv(\))g(asso)q(ciated)h(with)e
(the)i(loss)f(of)f(orthogonalit)o(y)g(in)g(the)75 865
y(Lanczos)e(v)o(ectors,)f Fp(w)415 871 y Fo(i)429 865
y Fv(.)135 940 y(W)m(e)19 b(emplo)o(y)f(the)j(most)d(recen)o(t)k(v)o
(ersion)e(of)f(a)h(single-v)o(ector)g(Lanczos)g(algorithm)e(\(30\))h
(equipp)q(ed)i(with)e(a)75 1015 y(selectiv)o(e)h(reorthogonalization)d
(strategy)m(,)j Fl(LANSO)e Fv(\(V)m(ersion)h(1,)g(April)f(1989\),)h
(designed)g(b)o(y)g(P)o(arlett)g(and)f(his)75 1089 y(colleagues)13
b(at)g(The)h(Univ)o(ersit)o(y)f(of)g(California)e(at)i(Berk)o(eley)i
(\([34)o(],)d([43)o(]\).)18 b(This)13 b(particular)g(metho)q(d)f(is)i
(primarily)75 1164 y(designed)f(for)f(the)h(standard)g(and)f
(generalized)h(symmetric)e(eigen)o(v)n(alue)h(problem.)k(W)m(e)c
(simply)e(apply)i(it)g(to)g(either)75 1239 y Fp(B)i Fv(=)e
Fp(A)195 1224 y Fo(T)221 1239 y Fp(A)i Fv(or)g(the)h(2-cyclic)e(matrix)
f Fp(B)17 b Fv(de\014ned)e(in)e(\(5\).)165 1341 y Ft(3.5.)24
b(Blo)q(c)o(k)15 b(Lanczos)f(Metho)q(d.)20 b Fv(As)13
b(subspace)i(iteration)e(is)f(the)i(blo)q(c)o(k)f(generalization)f(of)h
(the)g(classical)75 1416 y(p)q(o)o(w)o(er)f(metho)q(d)f(for)h
(computing)e(eigenpairs,)i(w)o(e)g(no)o(w)f(consider)i(a)e(blo)q(c)o(k)
h(analogue)f(of)g(the)h(single)g(v)o(ector)g(Lanczos)75
1491 y(recursion)i(giv)o(en)f(in)g(\(30\).)k(Exploiting)12
b(the)h(structure)j(of)c(the)i(matrix)d(B)j(in)e(\(5\),)h(the)h(follo)o
(wing)d(Lemma)f(presen)o(ts)75 1566 y(an)k(alternativ)o(e)f(form)f(for)
i(the)g(Lanczos)h(recursion)g(\(30\).)135 1640 y Fn(Lemma)g(3.4.)20
b Fs(L)n(et)13 b Fp(A)g Fs(b)n(e)h(an)f Fp(m)6 b Fr(\002)g
Fp(n)13 b Fv(\()p Fp(m)f Fr(\025)g Fp(n)p Fv(\))h Fs(matrix)g(and)h
Fp(B)i Fs(de\014ne)n(d)e(by)f Fv(\()p Fs(5)p Fv(\))p
Fs(.)19 b(Apply)13 b(the)h(L)n(anczos)g(r)n(e)n(cursion)75
1715 y(sp)n(e)n(ci\014e)n(d)g(by)h Fv(\()p Fs(30)p Fv(\))g
Fs(to)f Fp(B)i Fs(with)e(a)g(starting)g(ve)n(ctor)i Fv(~)-24
b Fp(u)12 b Fv(=)f(\()p Fp(u;)c Fv(0\))1048 1700 y Fo(T)1088
1715 y Fs(such)14 b(that)h Fr(k)s Fv(~)-24 b Fp(u)o Fr(k)1331
1721 y Fq(2)1361 1715 y Fv(=)12 b(1)p Fs(.)18 b(Then)d(the)f(diagonal)g
(entries)75 1790 y(of)i(the)f(r)n(e)n(al)g(symmetric)g(tridiagonal)g(L)
n(anzc)n(os)h(matric)n(es)f(gener)n(ate)n(d)h(ar)n(e)f(al)r(l)g
(identic)n(al)r(ly)g(zer)n(o,)g(and)i(the)e(L)n(anzc)n(os)75
1865 y(r)n(e)n(cursion)h(in)g Fv(\()p Fs(30)p Fv(\))i
Fs(r)n(e)n(duc)n(es)e(to)g(the)h(fol)r(lowing.)23 b(De\014ne)17
b Fp(u)1022 1871 y Fq(1)1055 1865 y Fr(\021)e Fp(u)p
Fs(,)h Fp(v)1175 1871 y Fq(0)1208 1865 y Fr(\021)f Fv(0)p
Fs(,)h(and)i Fp(\014)1411 1871 y Fq(1)1444 1865 y Fr(\021)d
Fv(0)p Fs(.)23 b(F)m(or)16 b Fp(i)f Fv(=)g(1)p Fp(;)7
b Fv(2)p Fp(;)g(:::;)f(k)14 b Fs(we)75 1939 y(then)h(obtain)h(the)e(L)n
(anczos)i(r)n(e)n(cursions)754 2033 y Fp(\014)777 2039
y Fq(2)p Fo(i)807 2033 y Fp(v)827 2039 y Fo(i)853 2033
y Fv(=)c Fp(A)928 2018 y Fo(T)954 2033 y Fp(u)978 2039
y Fo(i)1001 2033 y Fr(\000)d Fp(\014)1065 2039 y Fq(2)p
Fo(i)p Fu(\000)p Fq(1)1139 2033 y Fp(v)1159 2039 y Fo(i)p
Fu(\000)p Fq(1)1230 2033 y Fp(;)765 2108 y(\014)788 2114
y Fq(2)p Fo(i)p Fq(+1)861 2108 y Fp(u)885 2114 y Fo(i)p
Fq(+1)952 2108 y Fv(=)j Fp(Av)1047 2114 y Fo(i)1070 2108
y Fr(\000)e Fp(\014)1135 2114 y Fq(2)p Fo(i)1166 2108
y Fp(u)1190 2114 y Fo(i)1218 2108 y Fp(:)75 2066 y Fv(\(33\))86
2203 y(The)i(Lanczos)g(recursion)h(\(33\),)e(ho)o(w)o(ev)o(er,)h(can)f
(only)g(compute)f(the)i(distinct)g(singular)f(v)n(alues)g(of)f(an)i
Fp(m)t Fr(\002)t Fp(n)g Fv(matrix)75 2278 y Fp(A)j Fv(and)g(not)g
(their)h(m)o(ultipliciti)o(es.)k(As)15 b(sho)o(wn)h(in)e([11)o(],)h
(these)h(m)o(ultiplicities)d(can)i(b)q(e)h(reco)o(v)o(ered)h(along)d
(with)g(the)75 2353 y(suppression)h(of)e(zero)i(eigen)o(v)n(alues)f(of)
f(the)i(matrix)d Fp(B)k Fv(caused)f(b)o(y)f Fp(m)e Fr(6)p
Fv(=)g Fp(n)p Fv(.)135 2428 y(F)m(ollo)o(wing)d(the)k(blo)q(c)o(k)e
(Lanczos)i(recursion)g(for)e(the)h(sparse)i(symmetric)c(eigen)o(v)n
(alue)h(problem)f(\([45],)h([22)o(]\),)g(\(33\))75 2502
y(ma)o(y)h(b)q(e)i(represen)o(ted)j(in)d(matrix)e(form)g(as)772
2615 y Fp(A)803 2598 y Fo(T)837 2604 y Fv(^)829 2615
y Fp(U)857 2621 y Fo(k)920 2615 y Fv(=)1000 2604 y(^)993
2615 y Fp(V)1017 2621 y Fo(k)1038 2615 y Fp(J)1065 2598
y Fo(T)1061 2625 y(k)1100 2615 y Fv(+)e Fp(Z)1170 2621
y Fo(k)1205 2615 y Fp(;)802 2702 y(A)839 2691 y Fv(^)833
2702 y Fp(V)857 2708 y Fo(k)920 2702 y Fv(=)1001 2691
y(^)993 2702 y Fp(U)1021 2708 y Fo(k)1042 2702 y Fp(J)1065
2708 y Fo(k)1109 2702 y Fv(+)1159 2691 y(~)1150 2702
y Fp(Z)1178 2708 y Fo(k)1199 2702 y Fp(;)-1136 b Fv(\(34\))977
2762 y(23)p eop
%%Page: 24 24
24 23 bop 75 43 a Fv(where)206 33 y(^)199 43 y Fp(U)227
49 y Fo(k)265 43 y Fv(=)18 b([)p Fp(u)351 49 y Fq(1)369
43 y Fp(;)7 b Fr(\001)g(\001)g(\001)e Fp(;)i(u)486 49
y Fo(k)505 43 y Fv(],)553 33 y(^)547 43 y Fp(V)571 49
y Fo(k)609 43 y Fv(=)18 b([)p Fp(v)691 49 y Fq(1)710
43 y Fp(;)7 b Fr(\001)g(\001)g(\001)t Fp(;)g(v)822 49
y Fo(k)842 43 y Fv(],)18 b Fp(J)907 49 y Fo(k)945 43
y Fv(is)f(a)h Fp(k)12 b Fr(\002)g Fp(k)19 b Fv(bidiagonal)c(matrix)h
(with)h Fp(J)1612 49 y Fo(k)1632 43 y Fv([)p Fp(j;)7
b(j)r Fv(])17 b(=)h Fp(\014)1801 49 y Fq(2)p Fo(j)1853
43 y Fv(and)75 118 y Fp(J)98 124 y Fo(k)118 118 y Fv([)p
Fp(j;)7 b(j)j Fv(+)e(1])j(=)h Fp(\014)344 124 y Fq(2)p
Fo(j)r Fq(+1)420 118 y Fv(,)h(and)g Fp(Z)553 124 y Fo(k)574
118 y Fv(,)608 108 y(~)599 118 y Fp(Z)627 124 y Fo(k)661
118 y Fv(con)o(tain)g(remainder)f(terms.)18 b(It)13 b(is)g(easy)h(to)f
(sho)o(w)g(that)h(the)g(nonzero)g(singular)75 193 y(v)n(alues)g(of)f
Fp(J)269 199 y Fo(k)303 193 y Fv(are)h(the)h(same)e(as)h(the)g(p)q
(ositiv)o(e)g(eigen)o(v)n(alues)g(of)800 332 y Fp(K)835
338 y Fo(k)867 332 y Fr(\021)911 248 y Fm(0)911 323 y(@)978
299 y Fp(O)52 b(J)1085 305 y Fo(k)968 374 y Fp(J)995
358 y Fo(T)991 385 y(k)1068 374 y Fp(O)1127 248 y Fm(1)1127
323 y(A)1184 332 y Fp(:)-1121 b Fv(\(35\))75 473 y(F)m(or)13
b(the)i(blo)q(c)o(k)f(analogue)e(of)i(\(34\),)f(w)o(e)h(mak)o(e)e(the)j
(simple)d(substitutions)821 589 y Fp(u)845 595 y Fo(i)870
589 y Fr($)f Fp(U)951 595 y Fo(i)979 589 y Fp(;)21 b(v)1032
595 y Fo(i)1057 589 y Fr($)11 b Fp(V)1134 595 y Fo(i)1162
589 y Fp(;)75 715 y Fv(where)17 b Fp(U)225 721 y Fo(i)255
715 y Fv(is)f Fp(m)11 b Fr(\002)g Fp(b)p Fv(,)16 b Fp(V)459
721 y Fo(i)489 715 y Fv(is)g Fp(n)10 b Fr(\002)h Fp(b)p
Fv(,)16 b(and)g Fp(b)g Fv(is)f(the)i(curren)o(t)g(blo)q(c)o(k)f(size.)
25 b(The)17 b(matrix)d Fp(J)1498 721 y Fo(k)1534 715
y Fv(is)i(no)o(w)g(a)f(blo)q(c)o(k)h(upp)q(er)75 800
y(bidiagonal)c(matrix)g(of)h(order)i Fp(bk)643 1047 y
Fh(J)668 1054 y Fg(k)702 1047 y Ff(\021)750 863 y Fm(0)750
936 y(B)750 960 y(B)750 985 y(B)750 1010 y(B)750 1035
y(B)750 1060 y(B)750 1085 y(B)750 1110 y(B)750 1136 y(@)807
899 y Fg(S)828 904 y Fe(1)887 899 y Fg(R)914 887 y Fc(T)914
910 y Fe(1)893 958 y Fg(S)914 963 y Fe(2)980 958 y Fg(R)1007
947 y Fc(T)1007 969 y Fe(2)1000 1017 y Fd(\001)62 b(\001)1072
1077 y(\001)42 b(\001)1124 1136 y(\001)f Fg(R)1202 1124
y Fc(T)1202 1148 y(k)q Fa(\000)p Fe(1)1197 1195 y Fg(S)1218
1201 y Fc(k)1281 863 y Fm(1)1281 936 y(C)1281 960 y(C)1281
985 y(C)1281 1010 y(C)1281 1035 y(C)1281 1060 y(C)1281
1085 y(C)1281 1110 y(C)1281 1136 y(A)1340 1047 y Fh(;)-1278
b Fb(\(36\))87 1291 y Fv(where)14 b(the)f Fp(S)301 1297
y Fo(i)315 1291 y Fv('s)g(and)f Fp(R)467 1297 y Fo(i)480
1291 y Fv('s)h(are)g Fp(b)6 b Fr(\002)g Fp(b)13 b Fv(upp)q
(er-triangular)f(matrices.)17 b(If)12 b Fp(U)1243 1297
y Fo(i)1258 1291 y Fv('s)g(and)g Fp(V)1401 1297 y Fo(i)1415
1291 y Fv('s)h(form)d(m)o(utually)g(orthogonal)75 1366
y(sets)16 b(of)d Fp(bk)i Fv(v)o(ectors)g(so)g(that)549
1356 y(^)542 1366 y Fp(U)570 1372 y Fo(k)605 1366 y Fv(and)692
1356 y(^)686 1366 y Fp(V)710 1372 y Fo(k)745 1366 y Fv(are)g
(orthonormal)d(matrices,)h(then)i(the)g(singular)e(v)n(alues)h(of)g
(the)h(matrix)75 1441 y Fp(J)98 1447 y Fo(k)132 1441
y Fv(will)c(b)q(e)j(iden)o(tical)f(to)g(those)h(of)f(the)h(original)d
Fp(m)e Fr(\002)f Fp(n)13 b Fv(matrix)e(A.)i(In)h(essence,)h(the)f
(2-cyclic)f(matrix)e Fp(K)1764 1447 y Fo(k)1798 1441
y Fv(in)i(\(35\))75 1515 y(is)h(the)g(pro)r(jection)h(of)e(the)h(v)o
(ectors)h(de\014ned)g(b)o(y)873 1571 y Fm(0)873 1646
y(@)937 1611 y Fv(^)930 1621 y Fp(U)958 1627 y Fo(k)1026
1621 y Fp(O)938 1696 y(O)1027 1686 y Fv(^)1020 1696 y
Fp(V)1044 1702 y Fo(k)1086 1571 y Fm(1)1086 1646 y(A)75
1795 y Fv(on)o(to)d(the)h(Krylo)o(v)g(subspace)h(generated)g(b)o(y)e
(the)i(2-cyclic)e(matrix)f Fp(B)k Fv(in)d(\(5\).)18 b(Giv)o(en)12
b(the)h(upp)q(er)h(blo)q(c)o(k)e(bidiagonal)75 1880 y(matrix)f
Fp(J)232 1886 y Fo(k)253 1880 y Fv(,)h(w)o(e)i(appro)o(ximate)d(the)j
(singular)e(triplets)i(of)e Fp(A)h Fv(b)o(y)g(\014rst)h(computing)d
(the)j(singular)f(triplets)g(of)g Fp(J)1823 1886 y Fo(k)1843
1880 y Fv(.)18 b(T)m(o)75 1965 y(determine)12 b(the)h(left)f(and)g
(righ)o(t)g(singular)g(v)o(ectors)h(of)f Fp(A)h Fv(from)d(those)j(of)f
Fp(J)1243 1971 y Fo(k)1263 1965 y Fv(,)g(w)o(e)h(m)o(ust)e(retain)i
(the)g(Lanczos)g(v)o(ectors)75 2049 y(in)130 2039 y(^)123
2049 y Fp(U)151 2055 y Fo(k)185 2049 y Fv(and)272 2039
y(^)265 2049 y Fp(V)289 2055 y Fo(k)310 2049 y Fv(.)18
b(Sp)q(eci\014cally)m(,)12 b(if)h Fr(f)p Fp(\033)648
2028 y Fq(\()p Fo(k)q Fq(\))647 2061 y Fo(i)694 2049
y Fp(;)7 b(y)734 2028 y Fq(\()p Fo(k)q Fq(\))733 2061
y Fo(i)781 2049 y Fp(;)g(z)821 2028 y Fq(\()p Fo(k)q
Fq(\))819 2061 y Fo(i)867 2049 y Fr(g)13 b Fv(is)g(the)h
Fp(i)p Fv(-th)g(singular)e(triplet)i(of)f Fp(J)1447 2055
y Fo(k)1467 2049 y Fv(,)g(then)h(the)g(appro)o(ximation)75
2134 y(to)f(the)g Fp(i)p Fv(-th)h(singular)e(triplet)h(of)f
Fp(A)h Fv(is)g(giv)o(en)f(b)o(y)h Fr(f)p Fp(\033)899
2113 y Fq(\()p Fo(k)q Fq(\))898 2146 y Fo(i)945 2134
y Fp(;)971 2124 y Fv(^)964 2134 y Fp(U)992 2140 y Fo(k)1013
2134 y Fp(y)1034 2113 y Fq(\()p Fo(k)q Fq(\))1033 2146
y Fo(i)1081 2134 y Fp(;)1106 2124 y Fv(^)1100 2134 y
Fp(V)1124 2140 y Fo(k)1144 2134 y Fp(z)1165 2113 y Fq(\()p
Fo(k)q Fq(\))1163 2146 y Fo(i)1211 2134 y Fr(g)p Fv(,)g(where)1383
2124 y(^)1376 2134 y Fp(U)1404 2140 y Fo(k)1425 2134
y Fp(y)1446 2113 y Fq(\()p Fo(k)q Fq(\))1445 2146 y Fo(i)1493
2134 y Fv(,)1524 2124 y(^)1517 2134 y Fp(V)1541 2140
y Fo(k)1562 2134 y Fp(z)1583 2113 y Fq(\()p Fo(k)q Fq(\))1581
2146 y Fo(i)1643 2134 y Fv(are)g(the)g(left)g(and)75
2219 y(righ)o(t)i(appro)o(ximate)e(singular)h(v)o(ectors,)i(resp)q
(ectiv)o(ely)m(.)23 b(The)16 b(computation)d(of)h(singular)h(triplets)g
(for)g Fp(J)1742 2225 y Fo(k)1778 2219 y Fv(requires)75
2304 y(t)o(w)o(o)e(phases.)19 b(The)c(\014rst)f(phase)h(reduces)h
Fp(J)759 2310 y Fo(k)793 2304 y Fv(to)e(bidiagonal)e(form,)f(sa)o(y)j
Fp(B)1257 2310 y Fo(k)1278 2304 y Fv(,)f(where)647 2550
y Fh(B)681 2557 y Fg(k)715 2550 y Ff(\021)763 2366 y
Fm(0)763 2439 y(B)763 2464 y(B)763 2489 y(B)763 2514
y(B)763 2539 y(B)763 2564 y(B)763 2589 y(B)763 2614 y(B)763
2640 y(@)820 2403 y Fg(\013)843 2408 y Fe(1)903 2403
y Fg(\014)923 2408 y Fe(1)902 2462 y Fg(\013)925 2467
y Fe(2)983 2462 y Fg(\014)1003 2467 y Fe(2)997 2521 y
Fd(\001)55 b(\001)1062 2580 y(\001)41 b(\001)1113 2639
y(\001)g Fg(\014)1184 2645 y Fc(bk)q Fa(\000)p Fe(1)1182
2699 y Fg(\013)1205 2705 y Fc(bk)1277 2366 y Fm(1)1277
2439 y(C)1277 2464 y(C)1277 2489 y(C)1277 2514 y(C)1277
2539 y(C)1277 2564 y(C)1277 2589 y(C)1277 2614 y(C)1277
2640 y(A)1336 2550 y Fh(;)-1274 b Fb(\(37\))977 2762
y Fv(24)p eop
%%Page: 25 25
25 24 bop 90 43 a Fv(via)15 b(a)g(\014nite)h(sequence)i(of)d
(orthogonal)f(transformations)g(\(th)o(us)i(preserving)h(the)f
(singular)f(v)n(alues)g(of)g Fp(J)1777 49 y Fo(k)1797
43 y Fv(\).)24 b(The)75 118 y(second)12 b(phase)g(reduces)h
Fp(B)495 124 y Fo(k)527 118 y Fv(to)d(diagonal)f(form)h(b)o(y)g(a)h(mo)
q(di\014ed)f(QR)g(algorithm.)15 b(This)c(diagonalization)d(pro)q
(cedure)75 193 y(is)14 b(discussed)h(in)f(detail)f(in)g([21)o(].)18
b(The)c(resulting)g(diagonalized)e Fp(B)1128 199 y Fo(k)1163
193 y Fv(will)h(yield)g(the)h(appro)o(ximate)e(singular)h(v)n(alues)75
267 y(of)i Fp(A)h Fv(and)f(the)i(corresp)q(onding)f(left)g(and)f(righ)o
(t)g(singular)g(v)o(ectors)i(are)f(determined)g(b)o(y)f(pro)q(ducts)i
(of)e(all)g(the)h(left)75 342 y(and)e(righ)o(t)f(transformations)f
(\(resp)q(ectiv)o(ely\))k(used)f(in)e(b)q(oth)h(phases)h(of)f(the)g
(SVD)g(of)f Fp(J)1476 348 y Fo(k)1496 342 y Fv(.)135
417 y(There)18 b(are)g(a)f(few)g(options)g(for)g(the)h(reduction)g(of)e
Fp(J)999 423 y Fo(k)1037 417 y Fv(to)h(the)h(bidiagonal)d(matrix,)g
Fp(B)1551 423 y Fo(k)1572 417 y Fv(.)28 b(Golub,)17 b(Luk,)g(and)75
492 y(Ov)o(erton)d(in)f([20)o(])f(adv)o(o)q(cated)i(the)g(use)g(of)e
(either)i(band)f(Householder)i(or)e(band)g(Giv)o(ens)g(metho)q(ds)f
(whic)o(h)i(in)e(e\013ect)75 566 y Fs(chase)19 b(o\013)g
Fv(\(or)f(zero\))i(elemen)o(ts)e(on)f(the)i(diagonals)e(ab)q(o)o(v)o(e)
h(the)g(\014rst)h(sup)q(er-diagonal)f(of)f Fp(J)1578
572 y Fo(k)1599 566 y Fv(.)31 b(The)18 b(metho)q(d)g(of)75
641 y(c)o(hoice)d(in)g(this)f(case)i(pro)o(v)o(ed)f(to)g(b)q(e)g(a)f
(band)h(Giv)o(ens)f(algorithm)e(using)j(fast)g(Giv)o(ens)f(rotations)h
(\(see)h([23)o(]\))e(whic)o(h)75 716 y(required)21 b(appro)o(ximately)d
(8\()p Fp(bk)q Fv(\))618 701 y Fq(3)637 716 y Fp(=)p
Fv(3)i(m)o(ultiplicatio)o(ns)e(to)j(determine)f(the)h(bidiagonal)d
(matrix,)i Fp(B)1717 722 y Fo(k)1738 716 y Fv(,)i(from)d
Fp(J)1900 722 y Fo(k)75 791 y Fv(with)e(accum)o(ulation)e(of)h
(orthogonal)g(transformations.)26 b(W)m(e)16 b(note)i(that)f(the)h
(algorithm)c(for)j(diagonalizing)d Fp(B)1899 797 y Fo(k)75
865 y Fv(t)o(ypically)h(requires)i(in)f(excess)i(of)e(8\()p
Fp(bk)q Fv(\))726 850 y Fq(3)760 865 y Fv(m)o(ultiplications)d(\(with)k
(standard)f(Giv)o(ens)g(rotations\))g(and)g(th)o(us)h(ma)o(y)75
940 y(dominate)d(an)o(y)h(sa)o(vings)g(in)h(the)g(reduction)g(to)g
(bidiagonal)d(form.)22 b(In)15 b(either)i(reduction)f
(\(bi-diagonalization)d(or)75 1015 y(diagonalization\),)8
b(the)i(computations)e(are)j(primarily)c(sequen)o(tial)j(and)f(o\013er)
i(limited)c(data)j(lo)q(calit)o(y)e(or)i(parallelism)75
1089 y(for)i(p)q(ossible)h(exploitation)e(on)h(a)h(m)o(ultipro)q
(cessor)f(arc)o(hitecture)i(suc)o(h)f(as)g(the)g(Cra)o(y-2S/4-128)d(or)
j(Allian)o(t)e(FX/80.)75 1164 y(F)m(or)16 b(this)g(reason,)h(w)o(e)f
(adopt)g(the)h(single)f(v)o(ector)h(Lanczos)g(bi-diagonalization)c
(recursion)k(b)o(y)f(\(33\))g(and)g(\(34\))g(as)75 1239
y(our)e(strategy)h(for)e(reducing)i(the)f(upp)q(er)h(blo)q(c)o(k)e
(bidiagonal)f(matrix)g Fp(J)1200 1245 y Fo(k)1234 1239
y Fv(to)i(bidiagonal)e(form)g(\()p Fp(B)1631 1245 y Fo(k)1652
1239 y Fv(\),)h(i.e.,)835 1355 y Fp(J)862 1338 y Fo(T)858
1365 y(k)897 1345 y Fv(^)888 1355 y Fp(Q)41 b Fv(=)1045
1345 y(^)1036 1355 y Fp(P)5 b(B)1101 1338 y Fo(T)1099
1365 y(k)1142 1355 y Fp(;)845 1442 y(J)868 1448 y Fo(k)897
1432 y Fv(^)888 1442 y Fp(P)47 b Fv(=)1045 1432 y(^)1036
1442 y Fp(QB)1100 1448 y Fo(k)1134 1442 y Fp(;)-1071
b Fv(\(38\))75 1558 y(or)740 1675 y Fp(J)763 1681 y Fo(k)784
1675 y Fp(p)805 1681 y Fo(j)863 1675 y Fv(=)42 b Fp(\013)964
1681 y Fo(j)981 1675 y Fp(q)1000 1681 y Fo(j)1027 1675
y Fv(+)9 b Fp(\014)1091 1681 y Fo(j)r Fu(\000)p Fq(1)1151
1675 y Fp(q)1170 1681 y Fo(j)r Fu(\000)p Fq(1)1244 1675
y Fp(;)733 1762 y(J)760 1745 y Fo(T)756 1772 y(k)786
1762 y Fp(q)805 1768 y Fo(j)863 1762 y Fv(=)42 b Fp(\013)964
1768 y Fo(j)981 1762 y Fp(p)1002 1768 y Fo(j)1029 1762
y Fv(+)9 b Fp(\014)1093 1768 y Fo(j)1111 1762 y Fp(p)1132
1768 y Fo(j)r Fq(+1)1206 1762 y Fp(;)-1143 b Fv(\(39\))75
1878 y(where)206 1868 y(^)197 1878 y Fp(P)19 b Fr(\021)14
b(f)p Fp(p)331 1884 y Fq(1)350 1878 y Fp(;)7 b(p)390
1884 y Fq(2)408 1878 y Fp(;)g(:)g(:)g(:)t(;)g(p)521 1884
y Fo(bk)556 1878 y Fr(g)15 b Fv(and)684 1868 y(^)674
1878 y Fp(Q)f Fr(\021)g(f)p Fp(q)807 1884 y Fq(1)825
1878 y Fp(;)7 b(q)863 1884 y Fq(2)881 1878 y Fp(;)g(:)g(:)g(:)e(;)i(q)
993 1884 y Fo(bk)1027 1878 y Fr(g)15 b Fv(are)h(orthonormal)d(matrices)
i(or)g(order)i Fp(bk)10 b Fr(\002)h Fp(bk)16 b Fv(and)75
1953 y(the)c Fp(\013)171 1959 y Fo(i)185 1953 y Fv('s)f(and)h
Fp(\014)326 1959 y Fo(i)340 1953 y Fv('s)g(are)g(de\014ned)h(b)o(y)f
(\(37\).)17 b(The)12 b(recursions)h(in)f(\(39\))f(require)i(band)f
(matrix-v)o(ector)e(m)o(ultiplications)75 2028 y(whic)o(h)18
b(can)g(b)q(e)h(easily)f(exploited)g(b)o(y)g(optimized)f(lev)o(el-2)g
(BLAS)i(routines)g(\([14)o(]\))f(no)o(w)f(residen)o(t)j(in)d(optimized)
75 2102 y(mathematical)c(libraries)j(on)g(most)f(high-p)q(eformance)g
(computers.)26 b(F)m(or)16 b(orthogonalization)e(of)i(the)g(outermost)
75 2177 y(Lanczos)j(v)o(ectors,)h Fr(f)p Fp(U)444 2183
y Fo(i)458 2177 y Fr(g)e Fv(and)h Fr(f)p Fp(V)628 2183
y Fo(i)641 2177 y Fr(g)p Fv(,)g(as)g(w)o(ell)e(as)i(the)g(innermost)e
(Lanczos)j(v)o(ectors,)g Fr(f)p Fp(p)1530 2183 y Fo(i)1543
2177 y Fr(g)e Fv(and)h Fr(f)p Fp(q)1708 2183 y Fo(i)1721
2177 y Fr(g)p Fv(,)f(w)o(e)h(ha)o(v)o(e)75 2252 y(c)o(hosen)h(to)e
(apply)g(a)g(complete)g(or)h(total)f(reorthogonalization)f(\([23)o(]\))
h(strategy)i(to)e(insure)h(robustness)i(in)d(our)75 2326
y(triplet)c(appro)o(ximations)e(for)i(the)g(matrix)f
Fp(A)p Fv(.)19 b(W)m(e)13 b(note)i(that)f(while)g(the)g
(Golub-Kahan-Reinsc)o(h)f(metho)q(d)h(\([19)o(],)75 2401
y([21)o(]\))j(and)g(the)h(blo)q(c)o(k-analogue)d(of)i(the)h(Lanczos)f
(recursion)i(\(with)e(or)g(without)g(reorthogonalization\))f(in)g
(\(33\))75 2476 y(b)o(y)f(Golub,)f(Luk,)g(and)h(Ov)o(erton)h(\([20)o
(]\))f(compute)f(the)i(singular)e(v)n(alues)h(of)g Fp(J)1323
2482 y Fo(k)1343 2476 y Fv(,)g(Cullum)e(and)i(Willough)o(b)o(y)d(\([11)
o(]\))75 2551 y(m)o(ust)17 b(compute)g(the)h(eigen)o(v)n(alues)g(of)f
(the)i(order)f(2)p Fp(k)h Fv(Lanczos)f(matrix)e(\(whic)o(h)i(b)o(y)f(p)
q(erm)o(utation)g(is)h(equiv)n(alen)o(t)75 2625 y(to)i
Fp(K)167 2631 y Fo(k)187 2625 y Fv(\))g(to)g Fs(we)n(e)n(d)g(out)f
Fv(spurious)i(eigen)o(v)n(alues)e(due)h(to)g(the)g(lac)o(k)f(of)g
(reorthogonalization)g(in)g(their)h(particular)75 2700
y(Lanczos)d(pro)q(cedure.)29 b(The)17 b(Cullum-Wil)o(lo)o(ugh)o(b)o(y)d
(algorithm,)g(ho)o(w)o(ev)o(er,)j(do)q(es)g(not)g(require)g(the)h
(memory)c(that)977 2762 y(25)p eop
%%Page: 26 26
26 25 bop 75 43 a Fv(re-orthogonalization)12 b(sc)o(hemes)h(do,)f(and)h
(hence)i(ma)o(y)c(b)q(e)i(more)f(e\016cien)o(t)h(on)g(small-m)o(em)o
(ory)d(mac)o(hines)i(or)h(those)75 118 y(for)i(whic)o(h)h(memory)d
(references)19 b(are)d(exp)q(ensiv)o(e)h(compared)e(to)h(arithmetic)e
(op)q(erations.)24 b(This)16 b(h)o(ybrid)f(Lanczos)75
193 y(approac)o(h)10 b(whic)o(h)g(incorp)q(orates)h(inner)f(iterations)
g(of)f(single-v)o(ector)h(Lanczos)h(bidiagonalization)c(within)i(the)h
(outer)75 267 y(iterations)k(of)f(a)h(blo)q(c)o(k)f(Lanczos)i(SVD)f
(recursion)h(is)e(outlined)h(in)f(T)m(ables)h(9)f(and)h(10.)135
342 y(As)c(an)g(alternativ)o(e)g(to)g(the)h(outer)f(recursion)h(in)f(T)
m(able)f(9,)h(whic)o(h)g(is)g(deriv)o(ed)h(from)d(the)j(equiv)n(alen)o
(t)e(eigen)o(v)n(alue)g(in)75 417 y(the)k(2-cyclic)g(matrix)d
Fp(B)r Fv(,)j(T)m(able)f(11)g(depicts)i(the)f(simpli\014ed)d(outer)k
(blo)q(c)o(k)e(Lanczos)h(recursion)h(for)e(appro)o(ximating)75
492 y(the)i(eigensystem)g(of)g Fp(A)455 477 y Fo(T)481
492 y Fp(A)p Fv(.)k(Com)o(bining)11 b(the)k(equations)e(in)h(\(34\),)f
(w)o(e)h(obtain)841 608 y Fp(A)872 591 y Fo(T)898 608
y Fp(A)935 597 y Fv(^)929 608 y Fp(V)953 614 y Fo(k)985
608 y Fv(=)1036 597 y(^)1029 608 y Fp(V)1053 614 y Fo(k)1074
608 y Fp(H)1109 614 y Fo(k)1143 608 y Fp(;)75 734 y Fv(where)h
Fp(H)230 740 y Fo(k)261 734 y Fv(=)d Fp(J)332 719 y Fo(T)328
746 y(k)358 734 y Fp(J)381 740 y Fo(k)416 734 y Fv(is)h(the)i
Fp(k)10 b Fr(\002)g Fp(k)k Fv(symmetric)f(blo)q(c)o(k)g(tridiagonal)f
(matrix)596 984 y Fh(H)634 991 y Fg(k)668 984 y Ff(\021)716
800 y Fm(0)716 873 y(B)716 898 y(B)716 923 y(B)716 948
y(B)716 973 y(B)716 998 y(B)716 1023 y(B)716 1048 y(B)716
1074 y(@)776 837 y Fg(S)797 842 y Fe(1)859 837 y Fg(R)886
825 y Fc(T)886 848 y Fe(1)773 896 y Fg(R)800 901 y Fe(1)865
896 y Fg(S)886 901 y Fe(2)951 896 y Fg(R)978 884 y Fc(T)978
907 y Fe(2)862 955 y Fg(R)889 960 y Fe(2)972 955 y Fd(\001)62
b(\001)972 1015 y(\001)g(\001)79 b(\001)1044 1074 y(\001)g(\001)f
Fg(R)1248 1062 y Fc(T)1248 1086 y(k)q Fa(\000)p Fe(1)1095
1133 y Fg(R)1122 1139 y Fc(k)q Fa(\000)p Fe(1)1244 1133
y Fg(S)1265 1139 y Fc(k)1327 800 y Fm(1)1327 873 y(C)1327
898 y(C)1327 923 y(C)1327 948 y(C)1327 973 y(C)1327 998
y(C)1327 1023 y(C)1327 1048 y(C)1327 1074 y(A)1386 984
y Fh(;)-1324 b Fb(\(40\))89 1232 y Fv(ha)o(ving)14 b(blo)q(c)o(k)g
(size)h Fp(b)p Fv(.)k(W)m(e)14 b(then)h(apply)f(the)g(blo)q(c)o(k)g
(Lanczos)i(recursion)f(\([23)o(]\))f(in)g(T)m(able)g(11)g(for)g
(computing)e(the)75 1306 y(eigenpairs)j(of)f(the)i Fp(n)9
b Fr(\002)h Fp(n)15 b Fv(symmetric)e(p)q(ositiv)o(e)i(de\014nite)g
(matrix)e Fp(A)1180 1291 y Fo(T)1206 1306 y Fp(A)p Fv(.)21
b(The)15 b(tridiagonalization)d(of)j Fp(H)1773 1312 y
Fo(k)1807 1306 y Fv(via)f(an)75 1381 y(inner)c(Lanczos)h(recursion)g
(follo)o(ws)d(from)g(simple)g(mo)q(di\014cations)g(to)i(T)m(able)f(10.)
16 b(Analogous)9 b(to)g(the)i(diagonalization)75 1456
y(of)17 b Fp(B)157 1462 y Fo(k)195 1456 y Fv(in)g(\(36\),)g(the)h
(computation)d(of)i(eigenpairs)h(of)e(the)i(resulting)g(tridiagonal)d
(matrix)g(in)i(this)h(case)g(can)f(b)q(e)75 1530 y(p)q(erformed)d(via)f
(a)g(Jacobi)h(or)g(QR-based)g(symmetric)e(eigensolv)o(er.)135
1605 y(The)19 b(conserv)n(ation)f(of)g(computer)g(memory)e(for)i(our)g
(iterativ)o(e)g(blo)q(c)o(k)g(Lanczos)h(iterativ)o(e)f(SVD)h(metho)q(d)
e(is)75 1680 y(insured)f(b)o(y)e(enforcing)h(an)g(upp)q(er)h(b)q(ound,)
f Fp(c)p Fv(,)f(for)h(the)g(order)h(\()p Fp(bk)q Fv(\))f(of)f(an)o(y)g
Fp(J)1309 1686 y Fo(k)1345 1680 y Fv(constructed)j(\(see)f(T)m(able)e
(9\).)21 b(This)75 1755 y(tec)o(hnique)12 b(w)o(as)f(suggested)i(b)o(y)
e(Golub,)f(Luk,)h(and)g(Ov)o(erton)h(in)e([20)o(].)17
b(Giv)o(en)11 b(a)f(blo)q(c)o(k)h(size)h Fp(b)f Fv(\(usually)g
Fp(b)g Fr(\024)h Fp(p)p Fv(,)f(where)75 1829 y Fp(p)h
Fv(is)g(the)h(desired)h(n)o(um)o(b)q(er)e(of)f(triplets\),)i(the)g(n)o
(um)o(b)q(er)f(of)g(diagonal)e(blo)q(c)o(ks,)j Fp(d)p
Fv(,)e(for)h Fp(J)1420 1835 y Fo(k)1441 1829 y Fv(,)g(is)g(de\014ned)i
(as)e Fr(b)p Fp(c=b)p Fr(c)p Fv(,)h(where)75 1904 y Fr(b\001c)h
Fv(denotes)h(truncation)e(of)g(the)h(man)o(tissa.)j(If)c
Fp(d)e(<)h Fv(2,)h(one)g(ma)o(y)f(reset)j Fp(b)c Fv(=)h
Fp(c=)p Fv(2)h(and)h(then)g(rede\014ne)h Fp(d)c Fv(=)h
Fr(b)p Fp(c=b)p Fr(c)i Fv(so)75 1979 y(that)g Fp(J)188
1985 y Fo(k)222 1979 y Fv(main)o(tains)e(the)i(blo)q(c)o(k)g(upp)q(er)h
(bidiagonal)c(form)h(in)i(\(36\).)135 2053 y(As)k(men)o(tioned)e(ab)q
(o)o(v)o(e,)i(w)o(e)f(ma)o(y)f(compute)h(the)h(SVD)f(of)g(the)h
(bidiagonal)d(matrix)h Fp(B)1547 2059 y Fo(k)1585 2053
y Fv(b)o(y)h(a)g(mo)q(di\014ed)f(QR)75 2128 y(algorithm.)f(Using)f
(\(38\))g(w)o(e)g(ma)o(y)e(write)871 2244 y Fp(B)902
2250 y Fo(k)934 2244 y Fv(=)987 2234 y(\026)978 2244
y Fp(Q)p Fv(\006)1050 2234 y(\026)1041 2244 y Fp(P)1074
2227 y Fo(T)1113 2244 y Fp(;)75 2361 y Fv(so)i(that)829
2477 y Fp(J)852 2483 y Fo(k)884 2477 y Fv(=)937 2466
y(^)928 2477 y Fp(Q)970 2466 y Fv(\026)961 2477 y Fp(Q)o
Fv(\006)1033 2466 y(\026)1023 2477 y Fp(P)1056 2460 y
Fo(T)1091 2466 y Fv(^)1082 2477 y Fp(P)1115 2460 y Fo(T)1154
2477 y Fp(;)75 2593 y Fv(where)h(\006)c(=)h(diag)h Fr(f)p
Fp(\033)415 2599 y Fq(1)433 2593 y Fp(;)7 b(\033)476
2599 y Fq(2)494 2593 y Fp(;)g(:)g(:)g(:)e(;)i(\033)611
2599 y Fo(n)633 2593 y Fr(g)p Fv(,)12 b(and)i Fp(\033)783
2599 y Fo(i)810 2593 y Fv(is)f(an)h(appro)o(ximation)c(to)k(an)f(exact)
h(singular)f(v)n(alue)g(of)g(the)h(original)75 2668 y
Fp(m)e Fr(\002)g Fp(n)18 b Fv(sparse)h(matrix)d Fp(A)p
Fv(.)30 b(Hence,)20 b(via)c(\(34\))i(appro)o(ximations)d(to)j(the)g
Fp(i)p Fv(-th)g(left)g(and)f(righ)o(t)h(singular)f(v)o(ectors)977
2762 y(26)p eop
%%Page: 27 27
27 26 bop 386 3 1223 2 v 385 78 2 75 v 1608 78 V 385
153 V 423 131 a Fv(\(1\))61 b([F)m(ormation)11 b(of)i
Fp(J)820 137 y Fo(k)841 131 y Fv(])p 1608 153 V 385 228
V 1608 228 V 385 302 V 537 280 a(Cho)q(ose)h Fp(V)705
286 y Fq(1)738 280 y Fv(\()p Fp(n)9 b Fr(\002)h Fp(b)j
Fv(and)h(orthonormal\))e(and)i Fp(c)d Fv(=)h Fp(max)i
Fr(f)p Fp(bk)q Fr(g)p Fv(.)p 1608 302 V 385 377 V 537
355 a(Compute)f Fp(W)756 361 y Fq(1)786 355 y Fv(=)f
Fp(AV)885 361 y Fq(1)904 355 y Fv(.)18 b(\()p Fp(P)977
361 y Fq(0)1007 355 y Fv(=)12 b Fp(U)1079 361 y Fq(0)1109
355 y Fv(=)g(0)i(initially\))p 1608 377 V 385 452 V 537
429 a(Orthogonalize)g Fp(W)844 435 y Fq(1)876 429 y Fv(against)f
Fp(U)1047 435 y Fq(0)1080 429 y Fv(\(i.e.,)g Fp(W)1214
435 y Fq(1)1244 429 y Fv(=)f(\()p Fp(I)h Fr(\000)c Fp(U)1404
435 y Fq(0)1423 429 y Fp(U)1456 414 y Fo(T)1451 440 y
Fq(0)1482 429 y Fv(\))p Fp(W)1537 435 y Fq(1)1556 429
y Fv(\).)p 1608 452 V 385 527 V 1608 527 V 385 601 V
537 579 a(F)m(or)k Fp(i)f Fv(=)g(2)p Fp(;)7 b Fv(3)p
Fp(;)g(:)g(:)g(:)t(;)g(k)14 b Fv(do:)k(\()p Fp(k)12 b
Fv(=)g Fr(b)p Fp(c=b)p Fr(c)p Fv(\))p 1608 601 V 385
676 V 1608 676 V 385 751 V 412 728 a(\(1a\))125 b(Compute)13
b Fp(Y)815 734 y Fo(i)840 728 y Fv(=)f Fp(A)915 713 y
Fo(T)941 728 y Fp(U)969 734 y Fo(i)p Fu(\000)p Fq(1)1035
728 y Fr(\000)e Fp(V)1101 734 y Fo(i)p Fu(\000)p Fq(1)1157
728 y Fp(S)1182 734 y Fo(i)p Fu(\000)p Fq(1)1239 728
y Fv(,)p 1608 751 V 385 825 V 411 803 a(\(1b\))124 b(Orthogonalize)13
b Fp(Y)902 809 y Fo(i)930 803 y Fv(against)g Fr(f)p Fp(V)1118
809 y Fo(l)1131 803 y Fr(g)1152 785 y Fo(i)p Fu(\000)p
Fq(1)1152 816 y Fo(l)p Fq(=0)1208 803 y Fv(,)p 1608 825
V 385 900 V 413 878 a(\(1c\))127 b(F)m(actor)14 b Fp(Y)765
884 y Fo(i)790 878 y Fv(=)e Fp(V)858 884 y Fo(i)872 878
y Fp(R)904 884 y Fo(i)p Fu(\000)p Fq(1)960 878 y Fv(,)p
1608 900 V 385 975 V 411 952 a(\(1d\))124 b(Compute)13
b Fp(W)830 958 y Fo(i)855 952 y Fv(=)f Fp(AV)954 958
y Fo(i)977 952 y Fr(\000)e Fp(U)1047 958 y Fo(i)p Fu(\000)p
Fq(1)1104 952 y Fp(R)1136 937 y Fo(T)1136 963 y(i)p Fu(\000)p
Fq(1)1191 952 y Fv(,)p 1608 975 V 385 1050 V 413 1027
a(\(1e\))127 b(Orthogonalize)13 b Fp(W)917 1033 y Fo(i)945
1027 y Fv(against)g Fr(f)p Fp(U)1137 1033 y Fo(l)1150
1027 y Fr(g)1171 1009 y Fo(i)p Fu(\000)p Fq(1)1171 1040
y Fo(l)p Fq(=0)1227 1027 y Fv(,)p 1608 1050 V 385 1124
V 415 1102 a(\(1f)s(\))127 b(F)m(actor)14 b Fp(W)780
1108 y Fo(i)805 1102 y Fv(=)e Fp(U)877 1108 y Fo(i)891
1102 y Fp(S)916 1108 y Fo(i)930 1102 y Fv(.)p 1608 1124
V 385 1199 V 1608 1199 V 386 1201 1223 2 v 917 1293 a
Fn(T)l(able)k(9)706 1368 y Fs(Hybrid)f(L)n(anczos)g(Outer)g(Iter)n
(ation.)75 1535 y Fv(corresp)q(onding)g(to)f Fp(\033)417
1541 y Fo(i)444 1535 y Fv(are)g(giv)o(en)g(b)o(y)851
1643 y(\026)-24 b Fp(u)872 1649 y Fo(i)927 1643 y Fv(=)1008
1633 y(^)1001 1643 y Fp(U)1029 1649 y Fo(k)1059 1633
y Fv(^)1050 1643 y Fp(Q)s Fv(\026)f Fp(q)1101 1649 y
Fo(i)1129 1643 y Fp(;)853 1730 y Fv(\026)j Fp(v)872 1736
y Fo(i)927 1730 y Fv(=)1007 1720 y(^)1001 1730 y Fp(V)1025
1736 y Fo(k)1055 1720 y Fv(^)1045 1730 y Fp(P)9 b Fv(\026)-24
b Fp(p)1099 1736 y Fo(i)1126 1730 y Fp(;)-1063 b Fv(\(41\))75
1838 y(where)24 b(\026)-25 b Fp(p)221 1844 y Fo(i)235
1838 y Fv(,)23 b(\026)-24 b Fp(q)286 1844 y Fo(i)319
1838 y Fv(are)19 b(the)h Fp(i)p Fv(-th)f(columns)f(of)785
1828 y(\026)776 1838 y Fp(P)5 b Fv(,)850 1828 y(\026)840
1838 y Fp(Q)p Fv(,)20 b(resp)q(ectiv)o(ely)m(.)35 b(Supp)q(ose)20
b(that)g(b)q(efore)g(restarting)g(the)f(outer)75 1913
y(iteration)f(in)g(T)m(able)f(9)h(w)o(e)h(ha)o(v)o(e)f(determined)g
(that)h Fp(p)961 1919 y Fq(0)997 1913 y Fv(singular)f(triplets)h(are)f
(acceptable)i(to)e(a)g(user-supplied)75 1988 y(tolerance)f(for)f(the)g
(residual)g(error)h(de\014ned)h(in)d(\(6\).)25 b(Then,)17
b(w)o(e)f(up)q(date)h(the)f(v)n(alues)g(of)g(the)g(blo)q(c)o(k)g(size)h
(\()p Fp(b)p Fv(\),)f(the)75 2063 y(maxim)n(um)e(allo)o(w)o(able)h
(order)k(for)e Fp(J)659 2069 y Fo(k)697 2063 y Fv(\()p
Fp(c)p Fv(\),)i(the)f(n)o(um)o(b)q(er)f(of)g(diagonal)f(blo)q(c)o(ks)i
(for)f Fp(J)1449 2069 y Fo(k)1488 2063 y Fv(\()p Fp(d)p
Fv(\),)h(and)f(the)i(n)o(um)o(b)q(er)e(of)75 2137 y(triplets)d(y)o(et)h
(to)e(b)q(e)i(found)e(\()p Fp(p)p Fv(\))h(as)g(follo)o(ws:)597
2245 y Fp(b)615 2251 y Fo(new)719 2245 y Fv(=)42 b Fp(b)811
2251 y Fo(old)866 2245 y Fr(\000)10 b Fp(p)929 2251 y
Fq(0)961 2245 y Fp(;)21 b Fv(if)13 b Fp(b)e Fr(\025)h
Fp(p)1126 2251 y Fo(old)1172 2245 y Fv(,)-1109 b(\(42\))719
2332 y(=)42 b Fp(min)14 b Fr(f)p Fp(b)921 2338 y Fo(old)981
2332 y Fp(;)21 b(p)1035 2338 y Fo(old)1090 2332 y Fr(\000)10
b Fp(p)1153 2338 y Fq(0)1171 2332 y Fr(g)28 b Fv(otherwise,)597
2420 y Fp(c)615 2426 y Fo(new)719 2420 y Fv(=)42 b Fp(c)811
2426 y Fo(old)867 2420 y Fr(\000)9 b Fp(p)929 2426 y
Fq(0)961 2420 y Fp(;)594 2507 y(p)615 2513 y Fo(new)719
2507 y Fv(=)42 b Fp(p)814 2513 y Fo(old)869 2507 y Fr(\000)10
b Fp(p)932 2513 y Fq(0)964 2507 y Fp(;)593 2594 y(d)615
2600 y Fo(new)719 2594 y Fv(=)42 b Fr(b)p Fp(c)829 2600
y Fo(new)893 2594 y Fp(=b)932 2600 y Fo(new)994 2594
y Fr(c)15 b Fp(:)75 2702 y Fv(All)d(con)o(v)o(erged)j(left)e(and)g
(righ)o(t)g(singular)f(v)o(ector)j(appro)o(ximatio)o(ns)c(are)j(resp)q
(ectiv)o(ely)h(stored)f(in)f(matrices)g Fp(U)1821 2708
y Fq(0)1853 2702 y Fv(and)977 2762 y(27)p eop
%%Page: 28 28
28 27 bop 524 3 948 2 v 523 78 2 75 v 1471 78 V 523 153
V 560 131 a Fv(\(2\))61 b([Bidiagonalization)11 b(of)i
Fp(J)1085 137 y Fo(k)1106 131 y Fv(,)g(F)m(ormation)f(of)h
Fp(B)1411 137 y Fo(k)1432 131 y Fv(])p 1471 153 V 523
228 V 1471 228 V 523 302 V 674 280 a(Cho)q(ose)i Fp(p)840
286 y Fq(1)872 280 y Fv(\()p Fr(k)p Fp(p)930 286 y Fq(1)949
280 y Fr(k)970 286 y Fq(2)999 280 y Fv(=)d(1\),)p 1471
302 V 523 377 V 674 355 a(Compute)h Fp(t)869 361 y Fq(1)899
355 y Fv(=)f Fp(J)966 361 y Fo(k)987 355 y Fp(p)1008
361 y Fq(1)1026 355 y Fv(,)i Fp(\013)1079 361 y Fq(1)1108
355 y Fv(=)e Fr(k)p Fp(t)1188 361 y Fq(1)1206 355 y Fr(k)1227
361 y Fq(2)1246 355 y Fv(,)p 1471 377 V 523 452 V 1471
452 V 523 527 V 674 504 a(F)m(or)i Fp(i)e Fv(=)g(1)p
Fp(;)7 b Fv(2)p Fp(;)g(:)g(:)g(:)s(;)i Fv(~)-23 b Fp(n)13
b Fv(do:)18 b(\()r(~)-23 b Fp(n)12 b Fv(=)g Fp(b)d Fr(\002)g
Fp(k)q Fv(\))p 1471 527 V 523 601 V 1471 601 V 523 676
V 748 654 a(\(while)14 b Fp(\013)900 660 y Fo(j)928 654
y Fr(6)p Fv(=)e(0\))i(do:)p 1471 676 V 523 751 V 1471
751 V 523 825 V 808 803 a Fp(q)827 809 y Fo(j)856 803
y Fv(=)e Fp(t)915 809 y Fo(j)932 803 y Fp(=\013)980 809
y Fo(j)997 803 y Fv(,)p 1471 825 V 523 900 V 550 878
a(\(2a\))184 b(Compute)13 b Fp(z)1007 884 y Fo(j)1036
878 y Fv(=)f Fp(J)1107 863 y Fo(T)1103 889 y(k)1133 878
y Fp(q)1152 884 y Fo(j)1179 878 y Fr(\000)d Fp(\013)1247
884 y Fo(j)1264 878 y Fp(p)1285 884 y Fo(j)1303 878 y
Fv(,)p 1471 900 V 523 975 V 548 952 a(\(2b\))184 b(Orthogonalize)14
b Fp(z)1095 958 y Fo(j)1126 952 y Fv(against)g Fr(f)p
Fp(p)1312 958 y Fo(l)1324 952 y Fr(g)1345 932 y Fo(j)1345
965 y(l)p Fq(=1)1400 952 y Fv(,)p 1471 975 V 523 1050
V 808 1027 a Fp(\014)831 1033 y Fo(j)861 1027 y Fv(=)e
Fr(k)p Fp(z)945 1033 y Fo(j)962 1027 y Fr(k)983 1033
y Fq(2)1001 1027 y Fv(,)p 1471 1050 V 523 1124 V 1471
1124 V 523 1199 V 748 1177 a(\(while)i Fp(\014)896 1183
y Fo(j)925 1177 y Fr(6)p Fv(=)e(0\))i(do:)p 1471 1199
V 523 1274 V 1471 1274 V 523 1348 V 808 1326 a Fp(p)829
1332 y Fo(j)r Fq(+1)900 1326 y Fv(=)e Fp(z)963 1332 y
Fo(j)981 1326 y Fp(=\014)1025 1332 y Fo(j)1043 1326 y
Fv(,)p 1471 1348 V 523 1423 V 551 1401 a(\(2c\))186 b(Compute)13
b Fp(t)1003 1407 y Fo(j)r Fq(+1)1074 1401 y Fv(=)f Fp(J)1141
1407 y Fo(k)1161 1401 y Fp(p)1182 1407 y Fo(j)r Fq(+1)1251
1401 y Fr(\000)e Fp(\014)1316 1407 y Fo(j)1334 1401 y
Fp(q)1353 1407 y Fo(j)1370 1401 y Fv(,)p 1471 1423 V
523 1498 V 548 1475 a(\(2d\))184 b(Orthogonalize)14 b
Fp(t)1091 1481 y Fo(j)r Fq(+1)1164 1475 y Fv(against)f
Fr(f)p Fp(q)1347 1481 y Fo(l)1359 1475 y Fr(g)1380 1456
y Fo(j)1380 1488 y(l)p Fq(=1)1435 1475 y Fv(,)p 1471
1498 V 523 1573 V 808 1550 a Fp(\013)835 1556 y Fo(j)r
Fq(+1)906 1550 y Fv(=)f Fr(k)p Fp(t)986 1556 y Fo(j)r
Fq(+1)1045 1550 y Fr(k)1066 1556 y Fq(2)1084 1550 y Fv(.)p
1471 1573 V 523 1647 V 1471 1647 V 524 1649 948 2 v 905
1741 a Fn(T)l(able)17 b(10)709 1816 y Fs(Hybrid)d(L)n(anczos)i(Inner)f
(Iter)n(ation.)75 1980 y Fp(V)99 1986 y Fq(0)132 1980
y Fv(so)f(that)724 2082 y Fp(U)752 2088 y Fq(0)813 2082
y Fr(\021)41 b Fv(\()p Fp(U)930 2088 y Fq(0)949 2082
y Fr(j)s Fv(\026)-24 b Fp(u)985 2088 y Fq(1)1003 2082
y Fp(;)9 b Fv(\026)-23 b Fp(u)1046 2088 y Fq(2)1064 2082
y Fp(;)7 b(:)g(:)g(:)e(;)k Fv(\026)-23 b Fp(u)1181 2088
y Fo(p)1198 2092 y Fj(0)1216 2082 y Fv(\))20 b Fp(;)728
2169 y(V)752 2175 y Fq(0)813 2169 y Fr(\021)41 b Fv(\()p
Fp(V)926 2175 y Fq(0)945 2169 y Fr(j)r Fv(\026)-23 b
Fp(v)977 2175 y Fq(1)996 2169 y Fp(;)8 b Fv(\026)-22
b Fp(v)1035 2175 y Fq(2)1053 2169 y Fp(;)7 b(:)g(:)g(:)e(;)j
Fv(\026)-22 b Fp(v)1166 2175 y Fo(p)1183 2179 y Fj(0)1201
2169 y Fv(\))20 b Fp(;)75 2272 y Fv(where)15 b Fp(U)223
2278 y Fq(0)255 2272 y Fv(=)d Fp(V)323 2278 y Fq(0)354
2272 y Fv(=)g(0)i(initially)e(\(prior)i(to)h(an)o(y)e(restart\).)21
b(F)m(or)14 b(restarting)h(the)g(blo)q(c)o(k)f(Lanczos)h(outer)g
(iteration)e(in)75 2347 y(T)m(able)i(9,)h(w)o(e)g(simply)e(rede\014ne)j
Fp(V)618 2353 y Fq(1)653 2347 y Fv(to)f(b)q(e)g(the)h(uncon)o(v)o
(erged)g(righ)o(t)e(singular)g(v)o(ector)i(appro)o(ximations)c(from)h
(the)75 2422 y(previous)g(iteration,)f(i.e.,)759 2524
y Fp(V)783 2530 y Fq(1)813 2524 y Fv(=)f(\()r(\026)-23
b Fp(v)893 2530 y Fo(i)905 2534 y Fj(1)924 2524 y Fp(;)8
b Fv(\026)-22 b Fp(v)963 2530 y Fo(i)975 2534 y Fj(2)992
2524 y Fp(;)7 b(:)g(:)g(:)e(;)j Fv(\026)-22 b Fp(v)1105
2530 y Fo(i)1117 2534 y Fi(bnew)1187 2524 y Fv(\))21
b Fp(;)75 2627 y Fv(where)f Fp(i)214 2633 y Fo(j)252
2627 y Fr(2)f(f)p Fv(1)p Fp(;)7 b Fv(2)p Fp(;)g(:)g(:)g(:)t(;)g(b)491
2633 y Fo(old)536 2627 y Fr(g)19 b Fv(is)g(an)f(index)h(of)g(an)o(y)f
(unco)o(v)o(erged)i(triplet.)33 b(T)m(o)18 b(estimate)g(the)i(accuracy)
g(of)e(our)75 2702 y(appro)o(ximate)d(singular)h(triplets)h(in)f(sa)o
(y)h(iteration)f Fp(l)i Fv(of)e(our)h(h)o(ybrid)f(Lanczos)h(metho)q(d,)
f(w)o(e)h(ma)o(y)e(con)o(v)o(enien)o(tly)977 2762 y(28)p
eop
%%Page: 29 29
29 28 bop 408 3 1179 2 v 407 78 2 75 v 1586 78 V 407
153 V 445 131 a Fv(\(1\))61 b([F)m(ormation)11 b(of)i(symmetric)f(blo)q
(c)o(k)i(tridiagonal)e(matrix)g Fp(H)1511 137 y Fo(k)1531
131 y Fv(])p 1586 153 V 407 228 V 1586 228 V 407 302
V 559 280 a(Cho)q(ose)i Fp(V)727 286 y Fq(1)760 280 y
Fv(\()p Fp(n)9 b Fr(\002)h Fp(b)k Fv(and)f(orthonormal\))f(and)i
Fp(c)d Fv(=)h Fp(max)i Fr(f)p Fp(bk)q Fr(g)p Fv(.)p 1586
302 V 407 377 V 559 355 a(Compute)f Fp(S)764 361 y Fq(1)795
355 y Fv(=)e Fp(V)872 340 y Fo(T)862 365 y Fq(1)898 355
y Fp(A)929 340 y Fo(T)955 355 y Fp(AV)1010 361 y Fq(1)1029
355 y Fv(.)18 b(\()p Fp(V)1099 361 y Fq(0)1118 355 y
Fp(;)7 b(R)1169 340 y Fo(T)1169 365 y Fq(0)1206 355 y
Fv(=)12 b(0)i(initially\))p 1586 377 V 407 452 V 1586
452 V 407 527 V 559 504 a(F)m(or)g Fp(i)d Fv(=)h(2)p
Fp(;)7 b Fv(3)g Fp(:)g(:)g(:)t(;)g(k)15 b Fv(do:)i(\()p
Fp(k)c Fv(=)f Fr(b)p Fp(c=b)p Fr(c)p Fv(\))p 1586 527
V 407 601 V 1586 601 V 407 676 V 434 654 a(\(1a\))125
b(Compute)13 b Fp(Y)837 660 y Fo(i)p Fu(\000)p Fq(1)905
654 y Fv(=)f Fp(A)980 638 y Fo(T)1006 654 y Fp(AV)1061
660 y Fo(i)p Fu(\000)p Fq(1)1127 654 y Fr(\000)d Fp(V)1192
660 y Fo(i)p Fu(\000)p Fq(1)1249 654 y Fp(S)1274 660
y Fo(i)p Fu(\000)p Fq(1)1340 654 y Fr(\000)g Fp(V)1405
660 y Fo(i)p Fu(\000)p Fq(1)1462 654 y Fp(R)1494 638
y Fo(T)1494 664 y(i)p Fu(\000)p Fq(2)1550 654 y Fv(,)p
1586 676 V 407 751 V 433 728 a(\(1b\))124 b(Orthogonalize)13
b Fp(Y)924 734 y Fo(i)p Fu(\000)p Fq(1)995 728 y Fv(against)g
Fr(f)p Fp(V)1183 734 y Fo(l)1196 728 y Fr(g)1217 711
y Fo(i)p Fu(\000)p Fq(1)1217 741 y Fo(l)p Fq(=0)1273
728 y Fv(,)p 1586 751 V 407 825 V 435 803 a(\(1c\))127
b(F)m(actor)14 b Fp(Y)787 809 y Fo(i)p Fu(\000)p Fq(1)855
803 y Fv(=)d Fp(V)922 809 y Fo(i)936 803 y Fp(R)968 809
y Fo(i)p Fu(\000)p Fq(1)1024 803 y Fv(,)p 1586 825 V
407 900 V 433 878 a(\(1d\))124 b(Compute)13 b Fp(S)838
884 y Fo(i)864 878 y Fv(=)e Fp(V)941 863 y Fo(T)931 889
y(i)967 878 y Fp(A)998 863 y Fo(T)1024 878 y Fp(AV)1079
884 y Fo(i)1093 878 y Fv(.)p 1586 900 V 407 975 V 1586
975 V 408 976 1179 2 v 905 1069 a Fn(T)l(able)17 b(11)237
1144 y Fs(Hybrid)d(L)n(anczos)i(Outer)e(Iter)n(ation)h(for)f(the)h
(Equivalent)g(Symmetric)g(Eigensystem)g(of)g Fp(A)1688
1129 y Fo(T)1714 1144 y Fp(A)p Fs(.)75 1318 y Fv(estimate)e(the)h
(residual)f(for)h(some)e Fp(\033)657 1324 y Fo(k)691
1318 y Fv(\(see)j(6\))e(b)o(y)g Fr(k)p Fp(y)922 1324
y Fo(k)943 1318 y Fr(k)964 1324 y Fq(2)996 1318 y Fv(of)g(Step)h
(\(1a\))f(in)g(T)m(able)g(9)g(for)g(iteration)g Fp(l)d
Fv(+)f(1,)k(where)h Fp(y)1899 1324 y Fo(k)75 1393 y Fv(is)g(the)h
Fp(k)q Fv(-th)f(column)f(of)g(the)i Fp(n)9 b Fr(\002)h
Fp(b)k Fv(matrix)f Fp(Y)812 1399 y Fo(i)825 1393 y Fv(.)19
b(Hence,)d(at)e(the)h(start)g(of)e(iteration)h Fp(l)d
Fv(+)e(1)14 b(w)o(e)h(can)f(determine)g(the)75 1467 y(accuracy)h(of)e
(our)h(appro)o(ximations)d(from)h(iteration)i Fp(l)q
Fv(.)135 1542 y(As)19 b(with)f(the)h(previous)g(iterativ)o(e)g(SVD)f
(metho)q(ds,)h(w)o(e)g(access)h(the)f(sparse)h(matrices)e
Fp(A)h Fv(and)f Fp(A)1740 1527 y Fo(T)1785 1542 y Fv(for)g(this)75
1617 y(h)o(ybrid)d(Lanczos)h(metho)q(d)f(only)f(through)i(sparse)h
(matrix-v)o(ector)d(m)o(ultiplicati)o(ons.)20 b(Some)14
b(e\016ciency)m(,)i(ho)o(w)o(ev)o(er,)75 1691 y(is)g(gained)g(in)g(the)
h(outer)g(\(blo)q(c)o(k\))g(Lanczos)g(iterations)f(b)o(y)g(the)h(m)o
(ultiplication)c(of)j Fp(b)g Fv(v)o(ectors)i(\(Steps)g(\(1a\),)e
(\(1b\))75 1766 y(in)e(T)m(able)f(9\))i(rather)g(than)f(b)o(y)g(a)g
(single)g(v)o(ector.)20 b(These)15 b(dense)h(v)o(ectors)g(ma)o(y)c(b)q
(e)j(stored)g(in)f(a)g(fast)g(lo)q(cal)f(memory)75 1841
y(\(cac)o(he\))18 b(of)f(a)f(hierarc)o(hical)h(memory-based)e(arc)o(h)o
(titecture)k(\(Allian)o(t)c(FX/80,)i(Cra)o(y-2S\))f(and)h(th)o(us)h
(yield)e(more)75 1916 y(e\013ectiv)o(e)f(data)f(reuse.)19
b(The)14 b(total)f(reorthogonalization)g(strategy)h(and)g(de\015ation)f
(of)h(con)o(v)o(erged)g(singular)f(v)o(ector)75 1990
y(appro)o(ximations)i(is)i(accomplished)f(in)h(Steps)h(\(1b\),)f
(\(1e\))h(in)f(T)m(able)f(9)h(and)g(Steps)h(\(2b\),)g(\(2d\))f(in)g(T)m
(able)f(10.)28 b(A)75 2065 y(stable)16 b(v)n(arian)o(t)e(of)h(Gram-Sc)o
(hmidt)d(orthogonalization)i(\([37)o(]\),)h(whic)o(h)h(requires)g
(e\016cien)o(t)g(dense)h(matrix-v)o(ector)75 2140 y(m)o(uliplicatio)o
(n)12 b(\(lev)o(el-2)i(BLAS\))h(routines)g(\([14]\),)f(is)g(used)i(to)e
(pro)q(duce)i(the)f(orthogonal)e(pro)r(jections)j(of)e
Fp(Y)1811 2146 y Fo(i)1839 2140 y Fv(\(i.e.,)75 2214
y Fp(R)107 2220 y Fo(i)p Fu(\000)p Fq(1)163 2214 y Fv(\))g(and)g
Fp(W)313 2220 y Fo(i)340 2214 y Fv(\(i.e.,)f Fp(S)460
2220 y Fo(i)474 2214 y Fv(\))h(on)o(to)604 2204 y(~)598
2214 y Fp(V)631 2199 y Fu(?)673 2214 y Fv(and)761 2204
y(~)754 2214 y Fp(U)787 2199 y Fu(?)814 2214 y Fv(,)g(resp)q(ectiv)o
(ely)m(,)g(where)533 2320 y(~)527 2331 y Fp(V)21 b Fv(=)12
b(\()p Fp(V)656 2337 y Fq(0)675 2331 y Fp(;)7 b(V)718
2337 y Fq(1)736 2331 y Fp(;)g(:)g(:)g(:)e(;)i(V)853 2337
y Fo(i)p Fu(\000)p Fq(1)909 2331 y Fv(\))20 b(and)1033
2320 y(~)1026 2331 y Fp(U)d Fv(=)11 b(\()q Fp(U)1159
2337 y Fq(0)1178 2331 y Fp(;)c(U)1225 2337 y Fq(1)1243
2331 y Fp(;)g(:)g(:)g(:)e(;)i(U)1364 2337 y Fo(i)p Fu(\000)p
Fq(1)1420 2331 y Fv(\))21 b Fp(:)135 2447 y Fv(The)14
b(con)o(v)o(ergence)h(of)e(the)h(blo)q(c)o(k)f(Lanczos)h(recursion)h
(\(34\))e(in)g(the)h(appro)o(ximation)c(of)j(the)h Fp(b)p
Fv(-largest)g(singular)75 2522 y(v)n(alues)i(of)g(the)i(matrix)c
Fp(A)j Fv(is)f(analyzed)h(in)f([4)o(].)26 b(Although)16
b(the)h(b)q(ound)g(in)f([4)o(])g(is)h(somewhat)f(tigh)o(ter)g(than)h
(that)75 2596 y(whic)o(h)12 b(w)o(as)h(considered)g(b)o(y)g(Underw)o(o)
q(o)q(d)g(in)f([45)o(])g(for)g(the)h(symmetric)d(eigen)o(v)n(alue)i
(problem,)f(b)q(oth)i(results)g(clearly)75 2671 y(indicate)i(the)g
(desire)h(for)e Fp(b)g Fv(\(blo)q(c)o(k)h(size\))g(to)g(b)q(e)g(c)o
(hosen)h(so)f(that)f Fp(\033)1151 2677 y Fo(i)1175 2671
y Fr(\000)c Fp(\033)1241 2677 y Fo(i)p Fq(+)p Fo(b)1309
2671 y Fv(is)k(as)h(large)g(as)f(p)q(ossible.)21 b(Giv)o(en)14
b(this)977 2762 y(29)p eop
%%Page: 30 30
30 29 bop 75 43 a Fv(criterion,)11 b(Underw)o(o)q(o)q(d)f(alluded)f(to)
h(a)g(blo)q(c)o(k)f(size)i(con)o(trol)f(strategy)g(in)g(whic)o(h)f(the)
i(blo)q(c)o(k)e(size,)i Fp(b)p Fv(,)f(is)g(c)o(hosen)h(to)f(b)q(e)g(at)
75 118 y(least)g(as)g(large)g(as)g(the)h(n)o(um)o(b)q(er)e(of)h(eigen)o
(v)n(alues)f(\(singular)h(v)n(alues)g(in)f(our)h(case\))h(in)f(a)g(giv)
o(en)f(cluster.)18 b(Ob)o(viously)m(,)9 b(the)75 193
y(success)15 b(of)c(suc)o(h)i(a)f(heuristic)h(strategy)g(for)f(con)o
(trolling)f(the)i(blo)q(c)o(k)f(size)h(\(irresp)q(ectiv)o(e)h(of)d
(de\015ation\))i(is)f(sp)q(ectrum-)75 267 y(dep)q(enden)o(t)21
b(and)f(ma)o(y)e(not)h(guaran)o(tee)h(optimal)d(con)o(v)o(ergence)22
b(rates)e(for)f(a)h(giv)o(en)f(matrix)f Fp(A)p Fv(.)35
b(Nev)o(ertheless,)75 342 y(conducting)13 b(sev)o(eral)h(exp)q(erimen)o
(ts)f(with)f(v)n(arious)g(initial)f(blo)q(c)o(k)i(sizes,)g(sa)o(y)g
Fp(b)1309 348 y Fq(0)1327 342 y Fv(,)g(and)g(detecting)h(the)f(most)f
(optimal)75 417 y(de\015ation)k(rate)h(at)f(a)g(nominal)e(n)o(um)o(b)q
(er)h(of)h(sparse)h(matrix-v)o(ector)e(m)o(ultiplications)f(\(with)i
Fp(A)g Fv(and)g Fp(A)1740 402 y Fo(T)1766 417 y Fv(\))h(can)f(b)q(e)75
492 y(v)o(ery)g(exp)q(ensiv)o(e)h(in)f(computer)g(access)h(time)e(and)h
(is)g(not)f(generally)h(recommended)f(when)i(the)f(SVD)g(of)f(sev)o
(eral)75 566 y(large)f(sparse)h(matrices)e Fp(A)h Fv(is)g(required.)135
641 y(One)20 b(plausible)f(blo)q(c)o(k)g(size)h(readjustmen)o(t)g
(strategy)g(that)f(can)h(b)q(e)g(incorp)q(orated)g(in)o(to)f(our)g(h)o
(ybrid)g(blo)q(c)o(k)75 716 y(Lanczos)d(pro)q(cedure)g(\(T)m(ables)f(9)
f(and)h(10\))g(is)f(to)h(obtain)f(sp)q(ectral)i(information)c(for)i
(eac)o(h)i(pro)r(jection)f(matrix)e Fp(J)1888 722 y Fo(k)1908
716 y Fv(.)75 791 y(That)g(is,)f(iden)o(tify)g(clusters)i(of)f(appro)o
(ximate)d(singular)j(v)n(alues)f(of)g Fp(J)1162 797 y
Fo(k)1195 791 y Fv(or)h(eigen)o(v)n(alues)g(of)f Fp(J)1532
775 y Fo(T)1528 802 y(k)1558 791 y Fp(J)1581 797 y Fo(k)1614
791 y Fv(with)h(an)f(in)o(ten)o(t)h(to)75 865 y(increase)f(the)g(up)q
(dated)g(blo)q(c)o(k)f(size)h(\()p Fp(b)675 871 y Fo(new)738
865 y Fv(\))f(so)h(as)f(to)g(encompass)g(the)h(appro)o(ximated)d
(cluster\(s\).)19 b(T)m(o)11 b(estimate)f(the)75 940
y(eigen)o(v)n(alue)i(sp)q(ectrum)h(of)e Fp(J)524 925
y Fo(T)520 952 y(k)551 940 y Fp(J)574 946 y Fo(k)606
940 y Fv(w)o(e)i(can)f(emplo)o(y)f(Gershgorin's)h(theorem)g(\(see)i
([23)o(],)e(p.341\))f(after)i(the)f(formation)75 1015
y(of)k(eac)o(h)h(upp)q(er)h(blo)q(c)o(k)f(bidiagonal)d(matrix,)h
Fp(J)832 1021 y Fo(k)853 1015 y Fv(.)27 b(Note)17 b(that)g(although)e
Fp(H)1298 1021 y Fo(k)1335 1015 y Fv(=)h Fp(J)1410 1000
y Fo(T)1406 1026 y(k)1437 1015 y Fp(J)1460 1021 y Fo(k)1497
1015 y Fv(is)g(a)h Fp(bk)12 b Fr(\002)f Fp(bk)18 b Fv(symmetric)75
1089 y(blo)q(c)o(k)c(tridiagonal)e(matrix)g(ha)o(ving)g(blo)q(c)o(k)i
(size)g Fp(b)p Fv(,)g(w)o(e)g(only)f(need)i(to)e(store)i(the)g
Fp(bk)f Fv(inner)h(pro)q(ducts)742 1206 y(\()p Fp(J)785
1188 y Fo(i)781 1216 y(k)802 1206 y Fv(\))818 1188 y
Fo(T)844 1206 y Fp(J)871 1188 y Fo(l)867 1216 y(k)901
1206 y Fp(;)34 b(i;)7 b(l)13 b Fv(=)f(1)p Fp(;)7 b Fv(2)p
Fp(;)g(:)g(:)g(:)s(;)g(bk)q(;)75 1322 y Fv(where)17 b
Fp(J)224 1307 y Fo(i)220 1334 y(k)256 1322 y Fv(denotes)g(the)f
Fp(i)p Fv(-th)g(column)e(of)h Fp(J)783 1328 y Fo(k)804
1322 y Fv(,)g(and)h(thereb)o(y)g(a)o(v)o(oid)f(explicit)g(formation)e
(of)i Fp(H)1601 1328 y Fo(k)1621 1322 y Fv(.)23 b(The)16
b(success)j(of)75 1397 y(one)c(candidate)g(blo)q(c)o(k)g(size)g
(readjustmen)o(t)g(strategy)g(whic)o(h)g(relies)h(up)q(on)e(the)i
(appro)o(ximate)d(sp)q(ectrum)i(of)f Fp(J)1850 1382 y
Fo(T)1846 1408 y(k)1877 1397 y Fp(J)1900 1403 y Fo(k)75
1471 y Fv(is)g(discussed)h(in)f([4)o(].)165 1575 y Ft(4.)24
b(Comparison)11 b(Of)i(Metho)q(ds.)19 b Fv(In)12 b(this)f(section,)h(w)
o(e)g(compare)f(the)h(complexit)o(y)m(,)d(parallelism,)f(memory)75
1649 y(requiremen)o(ts,)k(and)f(parameter)g(selection)h(of)f(the)h
(four)f(metho)q(ds)g(presen)o(ted)j(in)d(the)h(previous)g(section.)17
b(Although)75 1724 y(not)f(discussed)i(here,)f(a)f(comparison)e(of)i
(the)g(con)o(v)o(ergence)i(prop)q(erties)g(of)d(the)i(four)e(metho)q
(ds)h(can)g(b)q(e)h(found)e(in)75 1799 y([4)o(].)25 b(W)m(e)16
b(will)f(use)i(the)g(follo)o(wing)c(naming)h(con)o(v)o(en)o(tions)i
(for)g(our)h(four)f(sparse)h(SVD)f(metho)q(ds)g(throughout)g(the)75
1874 y(remainder)d(of)h(the)g(pap)q(er.)p 624 1947 733
2 v 623 2022 2 75 v 649 2000 a(Metho)q(d)p 1171 2022
V 407 w(Name)p 1356 2022 V 624 2024 733 2 v 623 2098
2 75 v 649 2076 a(Single-V)m(ector)g(Lanczos)h(SVD)p
1171 2098 V 49 w Fl(LASVD)p 1356 2098 V 623 2173 V 649
2151 a Fv(Blo)q(c)o(k)f(Lanczos)h(SVD)p 1171 2173 V 187
w Fl(BLSVD)p 1356 2173 V 623 2248 V 649 2226 a Fv(Subspace)g(Iteration)
f(SVD)p 1171 2248 V 109 w Fl(SISVD)p 1356 2248 V 623
2323 V 649 2300 a Fv(T)m(race)g(Minimization)d(SVD)p
1171 2323 V 92 w Fl(TRSVD)p 1356 2323 V 624 2324 733
2 v 165 2448 a Ft(4.1.)24 b(Complexit)o(y)l(.)17 b Fv(P)o(erhaps)h(the)
g(b)q(est)g(w)o(a)o(y)e(to)h(assess)h(the)g(v)n(arious)e(computational)
e(tasks)k(\(or)f(b)q(ottle-)75 2523 y(nec)o(ks\))11 b(asso)q(ciated)g
(with)f(the)h(four)f(SVD)g(metho)q(ds)f(presen)o(ted)k(in)c(the)i
(previous)g(section)f(is)g(to)g(decomp)q(ose)h(\(pro\014le\))75
2598 y(them)f(in)o(to)g(their)i(most)d(time-consuming)f(sub-algorithms)
h(as)i(observ)o(ed)h(from)e(actual)g(runs)i(on)e(b)q(oth)h(a)g(sup)q
(ercom-)977 2762 y(30)p eop
%%Page: 31 31
31 30 bop 75 43 a Fv(puter,)17 b(Cra)o(y-2S/4-128)465
28 y Fq(5)497 43 y Fv(and)e(mini-sup)q(ercomputer,)g(Allian)o(t)f
(FX/80)1232 28 y Fq(6)1250 43 y Fv(.)23 b(The)16 b(Cra)o(y-2S/4-128)e
(sup)q(ercomputer)75 118 y(used)h(in)e(the)i(exp)q(erimen)o(ts)f
(presen)o(ted)i(in)d(Section)i(4)e(and)h(5)g(has)g(4)f(CPU's,)h(where)h
(eac)o(h)g(CPU)f(has)g(a)g(p)q(eak)g(theo-)75 193 y(retical)f
(computational)d(rate)k(of)e(488)g(mega\015ops)g(\(millio)o(ns)f(of)h
(\015oating-p)q(oin)o(t)f(op)q(erations)i(p)q(er)h(second\),)g(and)f
(128)75 267 y(mega)o(w)o(ords)i(\(64-bit)g(w)o(ords\))h(of)g(core)h
(memory)m(.)k(This)16 b(particular)g(Cra)o(y-2S)f(uses)j(the)e(UNICOS)h
(5)p Fp(:)p Fv(1)e(op)q(erating)75 342 y(system,)i(and)g(supp)q(orts)h
Fs(autotasking)g Fv(\(see)h([8)o(]\).)27 b(Using)17 b(autotasking,)g(w)
o(e)g(allo)o(w)e(the)j(Cra)o(y-2S/4-128)d(F)m(ortran)75
417 y(pre-pro)q(cessor)h(to)e(generate)h(m)o(ultiple-CPU)d(programs)h
(for)g(eac)o(h)i(of)e(our)h(four)f(SVD)h(metho)q(ds.)135
492 y(In)h(con)o(trast,)i(the)f(Allian)o(t)e(FX/80)g(used)j(in)e(our)g
(exp)q(erimen)o(ts)h(is)f(a)g(m)o(ulti-v)o(ector)f(pro)q(cessor)j
(computer)f(sys-)75 566 y(tem)g(ha)o(ving)g(8)g(v)o(ector)i(pro)q
(cessors)h(\(computational)c(elemen)o(ts)i(or)f(CE's\),)i(where)g(eac)o
(h)f(pro)q(cessor)i(has)e(a)g(p)q(eak)75 641 y(computational)11
b(rate)j(in)f(64-bit)g(arithmetic)f(of)h(23)p Fp(:)p
Fv(5)f(mega\015ops,)g(and)h(up)h(to)f(10)g(mega)o(w)o(ords)f(of)h
(shared)h(ph)o(ysical)75 716 y(memory)m(.)i(A)e(mo)q(di\014ed)f(v)o
(ersion)h(of)f(the)i(Concen)o(trix)g(3)p Fp(:)p Fv(0)e(op)q(erating)h
(system)g(is)g(used)h(on)e(this)i(particular)e(Allian)o(t)75
791 y(FX/80.)135 865 y(In)g(T)m(able)g(12,)f(w)o(e)h(illustrate)g(the)h
(dominan)o(t)d(sub-algorithms)g(or)i(tasks)h(asso)q(ciated)g(with)f
(eac)o(h)g(of)g(four)g(sparse)75 940 y(SVD)k(metho)q(ds)f(when)i(w)o(e)
f(determine)g(the)h(100-largest)e(singular)g(triplets)i(of)e(the)h
(medical)f(abstract)i(database)75 1015 y(matrix,)c Fk(MED)p
Fv(,)h(from)g(the)h(Bellcore)h(collection)f(in)f(T)m(able)h(1)g(on)f
(the)i(Cra)o(y-2S/4-128.)23 b(T)m(o)15 b(obtain)g(these)j(pro\014les,)
75 1089 y(w)o(e)13 b(in)o(v)o(ok)o(e)e(the)i Fs(\015owtr)n(ac)n(e)f
Fv(compiler)f(option)h(\(see)i([9)o(]\))e(on)h(only)e(1)i(CPU)f
(\(pro\014ling)g(is)g(not)h(curren)o(tly)g(a)o(v)n(ailable)d(for)75
1164 y(m)o(ultiple-CPU)k(programs\).)25 b(W)m(e)16 b(terminate)g(eac)o
(h)h(metho)q(d)f(when)h(residuals)g(\(6\))f(less)h(than)g(or)f(equal)h
(to)f(10)1876 1149 y Fu(\000)p Fq(3)75 1239 y Fv(are)e(ac)o(hiev)o(ed)g
(\(no)g(loss)g(of)f(accuracy)i(asso)q(ciated)g(with)f(the)g(use)h(of)e
(the)i Fp(A)1269 1224 y Fo(T)1295 1239 y Fp(A)f Fv(op)q(erator)g
(observ)o(ed)h(in)f(this)g(case\).)135 1314 y(T)m(o)d(compute)h(the)h
(100-largest)e(singular)h(triplets)h(\(singular)e(v)n(alues)h(giv)o(en)
g(b)o(y)g(Figure)g(4\))g(of)g Fk(MED)p Fv(,)f(w)o(e)h(compute)75
1388 y(eigensystems)h(of)f(b)q(oth)g Fp(B)j Fv(\(de\014ned)f(in)d
(\(5\)\))i(and)f Fp(A)904 1373 y Fo(T)930 1388 y Fp(A)h
Fv(for)f(the)h(Lanczos-based)g(metho)q(ds,)f Fl(LASVD)g
Fv(and)h Fl(BLSVD)p Fv(.)75 1463 y(F)m(or)f Fl(SISVD)g
Fv(and)g Fl(TRSVD)p Fv(,)g(w)o(e)h(determine)f(eigensystems)h(of)f
Fp(A)1089 1448 y Fo(T)1116 1463 y Fp(A)g Fv(and)h(the)g(shifted)f
(cyclic)h(matrix,)1711 1453 y(~)1701 1463 y Fp(B)r Fv(,)g(from)d
(\(9\).)75 1538 y(T)m(able)j(12)g(illustrates)h(the)h(t)o(ypical)e
(dominance)f(\(in)i(p)q(ercen)o(tage)h(of)e(total)h(CPU)g(time)1455
1523 y Fq(7)1472 1538 y Fv(\))g(of)f(sparse)i(matrix-v)o(ector)75
1612 y(m)o(ultiplicatio)o(ns)e(\(SPMXV\))j(in)f(eac)o(h)h(of)e(the)i
(four)f(iterativ)o(e)g(metho)q(ds)g(under)h(consideration.)22
b(The)16 b(p)q(ercen)o(tage)75 1687 y(of)e(CPU)h(time)f(required)h(for)
g(these)h(m)o(ultiplications)c(ranges)j(from)e(42\045)h(for)g
Fl(BLSVD)h Fv(with)f(the)i(cyclic)f(op)q(erator,)75 1762
y Fp(B)r Fv(,)j(to)f(88\045)g(for)g(either)h Fl(SISVD)e
Fv(with)h(the)h Fp(A)810 1747 y Fo(T)836 1762 y Fp(A)g
Fv(op)q(erator)g(or)f Fl(TRSVD)g Fv(with)g(the)h(shifted)f(cyclic)h(op)
q(erator,)1885 1751 y(~)1875 1762 y Fp(B)r Fv(.)75 1837
y(W)m(e)f(note)h(that)g(the)g(SPMXV)g(includes)g(the)g(n)o(um)o(b)q(er)
f(of)g(m)o(ultiplicatio)o(ns)e(b)o(y)i(b)q(oth)h Fp(A)g
Fv(and)f Fp(A)1641 1822 y Fo(T)1667 1837 y Fv(.)29 b(The)18
b(cost)h(of)75 1911 y(these)c(m)o(ultiplicatio)o(ns)c(\(10\))i
(certainly)h(dep)q(ends)h(up)q(on)e(the)h(sparsit)o(y)g(of)f
Fp(A)p Fv(,)g(i.e.,)f Fp(\026)1418 1917 y Fo(r)1450 1911
y Fv(and)h Fp(\026)1555 1917 y Fo(c)1586 1911 y Fv(from)e(\(10\),)i
(and)g(the)75 1986 y(storage)f(sc)o(heme)h(used)g(for)e(the)i(nonzero)g
(elemen)o(ts)e(of)h(matrix)e Fp(A)p Fv(.)18 b(In)12 b(our)g(exp)q
(erimen)o(ts,)g(w)o(e)g(emplo)o(y)e(the)j(column-)75
2061 y(wise)k(storage)f(format)f(asso)q(ciated)i(with)f(the)h(Harw)o
(ell/Bo)q(eing)e(Sparse)i(Matrix)f(Collection)g(\([16)o(]\).)25
b(A)16 b(detailed)75 2135 y(discussion)i(of)g(e\016cien)o(t)g(k)o
(ernels)h(for)e(sparse)i(matrix-v)o(ector)e(m)o(ultiplicati)o(on)e(on)j
(Cra)o(y)f(and)h(Allian)o(t)e(computer)75 2210 y(systems)e(can)g(b)q(e)
h(found)e(in)h([39)o(].)135 2285 y(T)m(able)k(12)h(rev)o(eals)g(that)g
(the)h(selectiv)o(e)g(re-orthogonalization)d(\(OR)m(THG\))h(strategy)i
(has)f(minim)o(al)c(impact)p 75 2351 150 2 v 119 2380
a Fq(5)150 2396 y Fv(Cra)o(y-2S/4-128)10 b(supp)q(orted)j(b)o(y)f(the)h
(National)d(Cen)o(ter)j(for)f(Sup)q(ercomputing)g(Applications)f
(\(NCSA\))h(at)g(the)75 2470 y(Univ)o(ersit)o(y)i(of)f(Illinois)f(at)i
(Urbana-Champaign.)119 2511 y Fq(6)150 2526 y Fv(Allian)o(t)g(FX/80)h
(lo)q(cated)g(at)h(the)g(Cen)o(ter)g(for)f(Sup)q(ercomputing)g(Researc)
o(h)i(and)e(Dev)o(elopmen)o(t)f(\(CSRD\))h(at)75 2601
y(the)f(Univ)o(ersit)o(y)g(of)g(Illinois)e(at)h(Urbana-Champaign.)119
2661 y Fq(7)150 2676 y Fv(W)m(e)g(rep)q(ort)i(only)f(those)g
(sub-algorithms)e(or)i(k)o(ernels)h(requiring)e(more)g(than)h(1\045)f
(of)g(the)i(total)e(CPU)h(time.)977 2762 y(31)p eop
%%Page: 32 32
32 31 bop 75 43 a Fv(\(2-4\045)14 b(of)g(the)i(total)e(CPU)i(time\))d
(on)i(the)h(execution)f(of)g Fl(LASVD)g Fv(on)f(1)h(CPU)g(of)g(the)g
(Cra)o(y-2S/4-128.)20 b(It)15 b(is)g(also)75 118 y(in)o(teresting)c(to)
f(note)g(that)h(the)g(computation)d(of)i(eigen)o(v)n(alues)g(and)g
(accum)o(ulation)e(of)h(orthogonal)g(transformations)75
193 y(\(for)19 b(reco)o(v)o(ering)h(eigen)o(v)o(ectors\))h(of)e(the)h
(symmetric)e(tridiagonal)g(matrix)f Fp(T)1335 199 y Fo(j)1373
193 y Fv(in)i(\(31\))g(as)h(determined)f(b)o(y)g(the)75
267 y(implicit)c Fp(QL)j Fv(metho)q(d)g(\(see)h([30)o(]\))f(and)g
(implem)o(en)o(ted)e(b)o(y)i(an)g(optimized)f(v)o(ersion)h(of)f(the)i
(EISP)m(A)o(CK)f(routine,)75 342 y(IMTQL2,)c(requires)h(appro)o
(ximately)c(12\045)i(of)h(the)h(total)e(CPU)h(time)f(when)h(the)h
(eigensystem)f(of)g(the)g(order)h(1033)75 417 y(matrix)k
Fp(A)248 402 y Fo(T)274 417 y Fp(A)i Fv(is)g(determined)f(but)h(as)g(m)
o(uc)o(h)f(as)g(34\045)g(of)g(the)i(total)e(CPU)h(time)e(if)h(w)o(e)h
(are)g(computing)e(the)75 492 y(eigensystem)13 b(of)f(the)h(order)h
(6864)e(matrix)f Fp(B)r Fv(.)18 b(Since)13 b(the)h(singular)e(v)n
(alues)g(of)h Fp(A)p Fv(,)f Fp(\033)q Fv(,)h(o)q(ccur)h(as)f
Fr(\006)g Fv(eigen)o(v)n(alue)f(pairs)75 566 y(of)k Fp(B)r
Fv(,)h(w)o(e)g(m)o(ust)f(obtain)g(for)g Fp(p)g Fv(=)h(200)e(eigenpairs)
i(\(largest\))g(of)f Fp(B)k Fv(with)c Fl(LASVD)g Fv(and)h(hence)h
(require,)g(for)e(this)75 641 y(particular)f(matrix)e
Fp(A)p Fv(,)i(as)g(man)o(y)f(as)h(590)f(steps)j(\(maxim)n(um)11
b(dimension)i(of)i(Krylo)o(v)f(subspace\))j(b)q(efore)f(w)o(e)f(ha)o(v)
o(e)75 716 y(acceptable)g(residuals)g(for)f(the)h(100-largest)f
(singular)f(triplets)i(of)f Fp(A)p Fv(.)19 b(In)c(con)o(trast,)g(only)e
(292)h(Lanczos)h(steps)h(are)75 791 y(required)f(for)e(the)i
(eigensystem)f(of)f Fp(A)681 775 y Fo(T)707 791 y Fp(A)h
Fv(and)g(th)o(us)g(the)h(discrepancy)g(in)e(the)i(impact)d(of)i
(IMTQL2.)135 865 y(The)j(di\013erence)h(in)d(the)i(pro\014les)f(of)g
Fl(BLSVD)g Fv(in)f(T)m(able)h(12)f(can)i(b)q(e)f(attributed)h(to)f(the)
h(simpler)e(outer)h(blo)q(c)o(k)75 940 y(Lanczos)g(recursion)h(for)f
(the)g(eigensystem)g(of)f Fp(A)865 925 y Fo(T)891 940
y Fp(A)h Fv(\(see)h(T)m(able)e(11\).)23 b(The)16 b(reduction)g(in)f
(the)i(amoun)o(t)d(of)h(CPU)75 1015 y(time)c(sp)q(en)o(t)i(in)e(total)g
(re-orthogonalization)g(\(OR)m(THG\))g(b)o(y)h(an)f(optimized)g(mo)q
(di\014ed)f(Gram-Sc)o(hmidt)f(pro)q(cedure)75 1089 y(\([37)o(]\))14
b(from)f(43\045)h(to)g(12\045)g(for)g(the)h(recursion)h(on)e
Fp(A)922 1074 y Fo(T)948 1089 y Fp(A)h Fv(follo)o(ws)e(from)g
(iterating)h(with)g(only)g(one)h(set)g(of)f(Lanczos)75
1164 y(v)o(ectors)h Fp(V)240 1170 y Fo(l)267 1164 y Fv(in)e(T)m(able)g
(11.)135 1239 y(The)g(1-CPU)g(Cra)o(y-2S/4-128)e(pro\014les)j(of)e
Fl(SISVD)g Fv(and)h Fl(TRSVD)g Fv(depicted)h(in)e(T)m(able)g(12)h(are)g
(the)h(most)d(similar)75 1314 y(among)j(the)i(four)g(metho)q(ds.)24
b(The)17 b(usage)f(of)f(p)q(olynomial)e(acceleration)j(in)g(b)q(oth)g
(metho)q(ds)g(and)g(the)g(use)h(of)e(the)75 1388 y(conjugate)h(gradien)
o(t)f(\(CG\))h(metho)q(d)e(b)o(y)i Fl(TRSVD)f Fv(for)h(solving)e(the)i
(reduced)i(system)d(of)g(equations)h(in)f(\(21\))g(will)75
1463 y(insure)20 b(the)g(dominance)e(of)g(sparse)j(matrix-v)o(ector)d
(m)o(ultipli)o(cations)f(\(SPMXV\))j(o)o(v)o(er)f(other)h(k)o(ernels)g
(suc)o(h)g(as)75 1538 y(orthogonalization)12 b(\(OR)m(THG\))h(b)o(y)g
(a)g(mo)q(di\014ed)g(Gram-Sc)o(hmi)o(dt)e(pro)q(cedure.)20
b(F)m(or)13 b(these)i(pro\014les)f(of)f Fl(SISVD)g Fv(and)75
1612 y Fl(TRSVD)j Fv(on)f(the)i(Cra)o(y-2S/4-128,)c(subspaces)18
b(of)d(order)i Fp(s)e Fv(=)g(120)g(w)o(ere)i(used)g(to)e(appro)o
(ximate)f(the)j(100-largest)75 1687 y(singular)e(triplets)g(of)g(the)h
Fk(MED)f Fv(matrix.)20 b(Eigensystems)c(of)e(b)q(oth)i
Fp(A)1173 1672 y Fo(T)1199 1687 y Fp(A)f Fv(and)h(the)g(shifted)f
(cyclic)h(matrix)1799 1677 y(~)1789 1687 y Fp(B)i Fv(w)o(ere)75
1762 y(successfully)h(used)g(to)f(obtain)f(the)h(desired)h(residuals)g
(\(6\))f(in)f(b)q(oth)h(metho)q(ds.)30 b(Whereas)18 b(the)h(con)o(text)
g(switc)o(h)75 1837 y(parameter,)c Fp(\021)f Fv(=)g(10)410
1822 y Fu(\000)p Fq(1)454 1837 y Fv(,)h(for)g Fl(TRSVD)g
Fv(limits)e(the)i(exten)o(t)h(of)f(p)q(olynomial)d(acceleration)j
(\(maxim)o(um)10 b(p)q(olynomial)75 1911 y(degree)i(of)e(2)h(for)f
(this)h(test)h(case\),)g(Cheb)o(yshev)f(p)q(olynomials)d(of)i(degrees)j
(up)e(to)f(10)g(and)h(28,)f(are)i(required)f(b)o(y)g
Fl(SISVD)75 1986 y Fv(for)16 b(eigensystems)g(of)f Fp(A)469
1971 y Fo(T)495 1986 y Fp(A)h Fv(and)635 1976 y(~)625
1986 y Fp(B)s Fv(,)g(resp)q(ectiv)o(ely)m(.)25 b(If)15
b(one)h(c)o(ho)q(oses)h(to)f(emplo)o(y)e Fl(SISVD)h Fv(with)h(the)g
(unshifted)g(2-)75 2061 y(cyclic)e(op)q(erator,)f Fp(B)r
Fv(,)h(in)f(\(5\),)g(then)h(as)g(with)f Fl(LASVD)g Fv(the)h(subspace)h
(necessary)h(to)d(appro)o(ximate)f(the)i(100-largest)75
2135 y(singular)f(triplets)h(of)g Fk(MED)f Fv(should)h(con)o(tain)f(at)
h(least)g(200)f(\(6864)8 b Fr(\002)i Fv(1\))k(v)o(ectors.)135
2210 y(T)m(able)h(13)g(indicates)i(the)f(pro\014les)g(of)g(our)g(four)f
(metho)q(ds)g(on)h(8)g(pro)q(cessors)i(of)d(the)h(Allian)o(t)f(FX/80.)
23 b(Again,)75 2285 y(w)o(e)13 b(seek)h(the)g(100-largest)e(singular)h
(triplets)g(of)g(the)g(5831)7 b Fr(\002)h Fv(1033)k Fk(MED)g
Fv(matrix)f(from)h(T)m(able)g(1)h(with)g(residuals)g(\(6\))75
2360 y(less)k(than)g(or)g(equal)f(to)g(10)515 2345 y
Fu(\000)p Fq(3)559 2360 y Fv(.)27 b(F)m(or)16 b(eac)o(h)h(of)f(the)h
(metho)q(ds,)g(w)o(e)g(compute)f(singular)g(triplets)h(via)f
(eigenpairs)h(of)75 2434 y Fp(A)106 2419 y Fo(T)132 2434
y Fp(A)g Fv(only)m(.)24 b(Memory)16 b(limitatio)o(ns)e(on)i(the)h
(Allian)o(t)e(FX/80)h(prev)o(en)o(ted)i(us)f(from)e(computing)g
(eigensystems)i(of)75 2509 y(the)12 b(shifted)g(and)g(unshifted)g
(2-cyclic)f(matrices,)867 2499 y(~)857 2509 y Fp(B)k
Fv(and)c Fp(B)r Fv(,)h(asso)q(ciated)h(with)e(the)h(larger)g(matrices)f
(from)f(T)m(ables)h(1)75 2584 y(and)i(2.)18 b(Comparisons)12
b(in)h(memory)e(requiremen)o(ts)j(for)f(eac)o(h)h(of)f(the)i(metho)q
(ds)e(is)g(discussed)i(in)e(the)i(next)f(section.)135
2659 y(F)m(or)19 b Fl(LASVD)h Fv(on)f(the)i(Allian)o(t)d(FX/80,)i(the)g
(p)q(ercen)o(tage)i(of)d(CPU)h(time)e(sp)q(en)o(t)j(for)e(sparse)i
(matrix-v)o(ector)977 2762 y(32)p eop
%%Page: 33 33
33 32 bop 394 3 1208 2 v 393 78 2 75 v 682 78 V 682 78
V 859 56 a Fv(P)o(ercen)o(tage)16 b(of)d(T)m(otal)g(CPU)h(Time)p
1600 78 V 683 80 919 2 v 393 153 2 75 v 446 131 a(Algorithm)p
682 153 V 682 153 V 98 w Fl(LASVD)p 912 153 V 912 153
V 99 w(BLSVD)p 1141 153 V 1141 153 V 106 w(SISVD)p 1371
153 V 1371 153 V 103 w(TRSVD)p 1600 153 V 683 155 919
2 v 393 228 2 75 v 682 228 V 712 205 a Fp(B)p 773 228
V 56 w(A)830 190 y Fo(T)856 205 y Fp(A)p 912 228 V 54
w(B)p 1003 228 V 57 w(A)1060 190 y Fo(T)1086 205 y Fp(A)p
1141 228 V 1181 195 a Fv(~)1171 205 y Fp(B)p 1232 228
V 56 w(A)1289 190 y Fo(T)1315 205 y Fp(A)p 1371 228 V
1410 195 a Fv(~)1400 205 y Fp(B)p 1462 228 V 57 w(A)1519
190 y Fo(T)1545 205 y Fp(A)p 1600 228 V 394 229 1208
2 v 393 304 2 75 v 419 282 a Fv(SPMXV)p 682 304 V 138
w(54)p 773 304 V 72 w(72)p 912 304 V 73 w(42)p 1003 304
V 73 w(77)p 1141 304 V 73 w(86)p 1232 304 V 73 w(88)p
1371 304 V 72 w(88)p 1462 304 V 73 w(85)p 1600 304 V
393 379 V 419 356 a(OR)m(THG)p 682 379 V 145 w(4)p 773
379 V 94 w(2)p 912 379 V 83 w(43)p 1003 379 V 73 w(12)p
1141 379 V 73 w(11)p 1232 379 V 83 w(7)p 1371 379 V 94
w(1)p 1462 379 V 94 w(2)p 1600 379 V 393 453 V 419 431
a(\(IM\)TQL2)p 682 453 V 95 w(34)p 773 453 V 72 w(12)p
912 453 V 84 w({)p 1003 453 V 93 w({)p 1141 453 V 94
w({)p 1232 453 V 94 w({)p 1371 453 V 94 w({)p 1462 453
V 94 w({)p 1600 453 V 393 528 V 419 506 a(QR)p 682 528
V 236 w({)p 773 528 V 94 w({)p 912 528 V 94 w(5)p 1003
528 V 93 w({)p 1141 528 V 94 w({)p 1232 528 V 94 w({)p
1371 528 V 94 w({)p 1462 528 V 94 w({)p 1600 528 V 393
603 V 419 580 a(CG)f(\(BLAS1\))p 682 603 V 61 w({)p 773
603 V 94 w({)p 912 603 V 94 w({)p 1003 603 V 93 w({)p
1141 603 V 94 w({)p 1232 603 V 94 w({)p 1371 603 V 94
w(4)p 1462 603 V 94 w(3)p 1600 603 V 394 605 1208 2 v
905 697 a Fn(T)l(able)k(12)75 772 y Fs(Pr)n(o\014le)12
b(of)h(the)g(four)f(metho)n(ds)h(for)f(c)n(omputing)h(the)g
Fv(100)p Fs(-lar)n(gest)d(singular)j(triplets)e(of)i(the)f
Fv(5831)t Fr(\002)t Fv(1033)g Fk(MED)g Fs(matrix)75 847
y(in)i(T)m(able)f(1)h(on)g(the)g(Cr)n(ay-2S/4-128.)19
b(Eigensystems)14 b(of)g(the)g(original)f(or)g(mo)n(di\014e)n(d)i(\()
1457 836 y Fv(~)1448 847 y Fp(B)r Fs(\))f Fv(2)p Fs(-cyclic)f(matrix)g
Fp(B)r Fs(,)h(and)75 921 y(the)h(matrix)f Fp(A)308 906
y Fo(T)335 921 y Fp(A)h Fs(ar)n(e)f(appr)n(oximate)n(d)h(by)g(e)n(ach)h
(metho)n(d.)75 1095 y Fv(m)o(ultiplicatio)o(ns)d(\(SPMXV\))j(is)e(a)h
(fraction)g(of)f(that)h(consumed)g(b)o(y)g Fl(LASVD)f
Fv(on)h(the)h(Cra)o(y-2S/4-128.)j(Ho)o(w)o(ev)o(er,)75
1170 y(the)f(amoun)o(t)d(of)i(time)f(sp)q(en)o(t)i(in)f(lev)o(el-1)f
(BLAS)i(k)o(ernels)g(\(DCOPY,)f(D)o(AXPY,)g(DDOT\))g(totals)g(to)g
(just)g(under)75 1245 y(40\045)12 b(of)g(the)h(CPU)g(time.)j(On)d(the)g
(Cra)o(y-2S/4-128,)d(the)k(lev)o(el-1)d(BLAS)i(op)q(erations)g(\(used)h
(within)e(the)h(conjugate)75 1320 y(gradien)o(t)h(\(CG\))g(algorithm\))
d(consumed)j(no)g(more)f(than)h(5\045)g(of)f(the)i(total)e(CPU)i(time.)
i(Suc)o(h)e(v)o(ector)g(op)q(erations)75 1394 y(\(see)j([13)o(]\))f(m)o
(ust)e(b)q(e)j(sync)o(hronized)g(across)g(the)f(8)g(pro)q(cessors)i(of)
d(the)h(Allian)o(t)e(FX/80,)i(and)g(large)f(n)o(um)o(b)q(ers)h(of)75
1469 y(memory)e(fetc)o(hes)k(for)e(v)o(ectors)i(of)d(length)i(1033)e
(easily)h(stress)j(the)e(memory)d(hierarc)o(h)o(y)j(of)e(the)j(Allian)o
(t)d(FX/80)75 1544 y(whic)o(h)c(supp)q(orts)h(a)e(4-w)o(a)o(y)g(in)o
(terlea)o(v)o(ed)h(128)f(kilob)o(yte)f(cac)o(he)j(b)q(et)o(w)o(een)g
(main)d(memory)f(and)j(the)g(8)g(pro)q(cessors)i(\(see)75
1618 y([1)o(]\).)k(The)13 b(assem)o(bly)f(language)f(lev)o(el-1)i(BLAS)
g(k)o(ernels)h(used)f(b)o(y)g Fl(LASVD)f Fv(on)h(the)h(Allian)o(t)d
(FX/80)h(w)o(ere)i(supplied)75 1693 y(b)o(y)j(the)i(Allian)o(t)d
(FX/Series)j(Scien)o(ti\014c)f(Library)f(\([2]\).)29
b(On)18 b(the)g(Cra)o(y-2S/4-128,)e(optimized)g(Cra)o(y)i(Assem)o(bly)
75 1768 y(Language)c(\(CAL\))h(implemen)o(tations)d(of)i(the)i(lev)o
(el-1)e(BLAS)h(k)o(ernels)h(\(see)g([10)o(]\))e(required)i(less)f(than)
g(1\045)f(of)g(the)75 1843 y(total)f(CPU)h(time)f(for)g(eac)o(h)i
(metho)q(d,)d(and)i(hence)h(do)f(not)g(app)q(ear)g(in)g(the)g
(pro\014les)g(presen)o(ted)i(in)e(T)m(able)f(12.)135
1917 y(T)m(able)e(13)g(also)h(indicates)g(that)g(a)f(signi\014can)o(t)h
(prop)q(ortion)f(of)h(time)e(\(24\045)h(of)g(total)g(CPU)i(time\))d(is)
i(sp)q(en)o(t)h(in)e(the)75 1992 y(lev)o(el-2)j(\(matrix-v)o(ector\))f
(and)i(lev)o(el-3)f(\(matrix-m)o(atrix\))d(BLAS)k(k)o(ernels.)21
b(The)15 b(outer)g(blo)q(c)o(k)g(Lanczos)g(recursion)75
2067 y(for)j Fp(A)174 2052 y Fo(T)200 2067 y Fp(A)g Fv(\(see)h(T)m
(able)f(11\),)g(as)g(with)f(the)i(outer)g(recursion)g(in)e(T)m(able)h
(9,)g(primarily)d(consists)k(of)f(these)h(higher-)75
2141 y(lev)o(el)14 b(BLAS)i(k)o(ernels)f(\(also)f(supplied)h(b)o(y)g
(the)g(Allian)o(t)e(FX/Series)j(Scien)o(ti\014c)g(Library\))e(whic)o(h)
h(are)g(designed)g(for)75 2216 y(execution)f(on)e(all)g(8)g(pro)q
(cessors)j(of)d(the)i(Allian)o(t)d(FX/80.)17 b(The)c(mo)q(di\014ed)f
(Gram-Sc)o(hmi)o(dt)e(pro)q(cedure)15 b(w)o(e)e(emplo)o(y)75
2291 y(for)f(re-orthogonalization)f(is)i(also)e(driv)o(en)i(b)o(y)f
(the)h(higher-lev)o(el)f(BLAS)h(k)o(ernels.)19 b(Although)12
b(it)g(did)g(not)g(app)q(ear)h(in)75 2366 y(the)g(pro\014le)g(of)g
Fl(BLSVD)f Fv(on)h(the)h(Cra)o(y-2S/4-128,)c(m)o(ultiplication)g(b)o(y)
i(the)i(Krylo)o(v)e(pro)r(jection)h(matrix,)e Fp(J)1770
2372 y Fo(k)1790 2366 y Fv(,)i(whic)o(h)75 2440 y(is)g(a)f(symmetric)f
(blo)q(c)o(k)i(tridiagonal)e(matrix)g(\(see)j(Section)f(3)p
Fp(:)p Fv(5\))f(for)g(the)i(recursion)g(in)e Fp(A)1498
2425 y Fo(T)1524 2440 y Fp(A)p Fv(,)h(requires)h(just)f(under)75
2515 y(10\045)g(of)h(the)h(total)e(CPU)h(time)f(on)h(the)h(Allian)o(t)e
(FX/80.)18 b(The)c(computation)f(of)g(the)i(eigenpairs)g(of)e(the)i
(resulting)75 2590 y(symmetric)c(tridiagonal)g(matrix)g(\()p
Fp(B)666 2596 y Fo(k)700 2590 y Fv(in)h(inner)h(Lanczos)g(iteration)g
(from)e(T)m(able)h(10\))g(b)o(y)h(the)g(EISP)m(A)o(CK)g(routine,)75
2664 y(TQL2,)f(is)h(not)f(as)g(demanding)f(in)h Fl(BLSVD)h
Fv(\(8\045\))f(as)g(opp)q(osed)h(to)g Fl(LASVD)f Fv(\(14\045\))g(since)
h(w)o(e)g(incorp)q(orate)g(a)f(b)q(ound)977 2762 y(33)p
eop
%%Page: 34 34
34 33 bop 75 43 a Fv(on)12 b(the)g(dimension)e(of)h(the)h(Krylo)o(v)g
(subspace)h(generated)g(b)o(y)e(eac)o(h)i(outer)f(iteration)f(in)h(our)
f(h)o(ybrid)h(blo)q(c)o(k)f(Lanczos)75 118 y(strategy)m(.)25
b(In)16 b(this)g(particular)g(exp)q(erimen)o(t,)g(w)o(e)g(selected)i
(an)e(initial)e(blo)q(c)o(k)i(size)h(of)e Fp(b)g Fv(=)h(30)f(and)h
(main)o(tained)e(a)75 193 y(maxim)n(um)e(dimension)i(of)h
Fp(c)f Fv(=)h(150)g(for)g(the)i(Krylo)o(v)e(subspace)i(in)e(eac)o(h)i
(outer)f(iteration.)23 b(As)16 b(in)g(T)m(able)f(12,)g(w)o(e)75
267 y(again)h(note)h(the)h(similarit)o(y)c(in)j(pro\014les)h(of)e
Fl(SISVD)h Fv(and)g Fl(TRSVD)f Fv(on)h(the)h(Allian)o(t)e(FX/80)g(in)h
(T)m(able)f(13.)28 b(Both)75 342 y(metho)q(ds)13 b(are)i(clearly)e
(dominated)g(b)o(y)g(sparse)i(matrix-v)o(ector)e(m)o(ultiplications)e
(\(SPMXV\).)135 417 y(Another)j(imp)q(ortan)o(t)d(algorithmic)g
(pro\014le)i(w)o(e)h(can)f(use)h(to)f(discern)h(di\013erences)i(among)
11 b(the)i(four)g(metho)q(ds)g(is)75 492 y(the)g(e\013ectiv)o(e)g(use)g
(of)e(m)o(ultiple)f(pro)q(cessors)k(during)e(execution)h(time.)j(In)c
(the)h(next)f(section,)h(w)o(e)f(assess)i(the)f(degree)75
566 y(of)k(parallelism)e(exhibited)j(b)o(y)f(eac)o(h)h(of)f(the)i(four)
e(sparse)i(iterativ)o(e)e(metho)q(ds)h(on)f(8)g(pro)q(cessors)j(of)d
(the)h(Allian)o(t)75 641 y(FX/80.)p 519 711 957 2 v 518
786 2 75 v 763 786 V 763 786 V 837 764 a(P)o(ercen)o(tage)e(of)d(T)m
(otal)f(CPU)j(Time)p 1475 786 V 764 788 713 2 v 518 861
2 75 v 549 838 a(Algorithm)p 763 861 V 51 w Fl(LASVD)p
943 861 V 50 w(BLSVD)p 1124 861 V 50 w(SISVD)p 1289 861
V 49 w(TRSVD)p 1475 861 V 519 862 957 2 v 518 937 2 75
v 544 915 a Fv(SPMXV)p 763 937 V 138 w(27)p 943 937 V
139 w(46)p 1124 937 V 131 w(63)p 1289 937 V 133 w(69)p
1475 937 V 518 1012 V 544 989 a(OR)m(THG)p 763 1012 V
145 w({)p 943 1012 V 160 w({)p 1124 1012 V 152 w({)p
1289 1012 V 154 w(1)p 1475 1012 V 518 1086 V 544 1064
a(BLAS2\(3\))p 763 1086 V 116 w({)p 943 1086 V 150 w(24)p
1124 1086 V 141 w(8)p 1289 1086 V 144 w(14)p 1475 1086
V 518 1161 V 544 1139 a(DSBMV)p 763 1161 V 146 w({)p
943 1161 V 160 w(9)p 1124 1161 V 152 w({)p 1289 1161
V 154 w({)p 1475 1161 V 518 1236 V 544 1214 a(\(IM\)TQL2)p
763 1236 V 95 w(14)p 943 1236 V 149 w(8)p 1124 1236 V
152 w(3)p 1289 1236 V 154 w({)p 1475 1236 V 518 1311
V 544 1288 a(TRED2)p 763 1311 V 157 w({)p 943 1311 V
160 w({)p 1124 1311 V 152 w(3)p 1289 1311 V 154 w({)p
1475 1311 V 518 1385 V 544 1363 a(D)o(AXPY)p 763 1385
V 137 w(17)p 943 1385 V 149 w({)p 1124 1385 V 142 w(14)p
1289 1385 V 143 w({)p 1475 1385 V 518 1460 V 544 1438
a(DCOPY)p 763 1460 V 136 w(20)p 943 1460 V 149 w({)p
1124 1460 V 152 w({)p 1289 1460 V 154 w({)p 1475 1460
V 518 1535 V 544 1512 a(DDOT)p 763 1535 V 173 w(2)p 943
1535 V 160 w({)p 1124 1535 V 152 w({)p 1289 1535 V 154
w({)p 1475 1535 V 518 1610 V 544 1587 a(DNRM2)p 763 1610
V 146 w({)p 943 1610 V 160 w({)p 1124 1610 V 152 w({)p
1289 1610 V 154 w(1)p 1475 1610 V 519 1611 957 2 v 905
1704 a Fn(T)l(able)i(13)75 1778 y Fs(Pr)n(o\014le)12
b(of)h(the)g(four)f(metho)n(ds)h(for)f(c)n(omputing)h(the)g
Fv(100)p Fs(-lar)n(gest)d(singular)j(triplets)e(of)i(the)f
Fv(5831)t Fr(\002)t Fv(1033)g Fk(MED)g Fs(matrix)75 1853
y(in)j(T)m(able)f(1)h(on)h(the)f(A)o(l)r(liant)f(FX/80.)19
b(Only)c(eigensystems)g(of)g Fp(A)1121 1838 y Fo(T)1147
1853 y Fp(A)g Fs(ar)n(e)g(appr)n(oximate)n(d.)165 2056
y Ft(4.2.)24 b(P)o(aralleli)o(sm.)14 b Fv(In)20 b(order)h(to)f(assess)i
(the)f(degree)h(of)d(e\013ectiv)o(e)j(parallelism)17
b(ac)o(hiev)o(ed)k(b)o(y)f(our)g(four)75 2131 y(metho)q(ds)d(for)g(the)
g(sparse)i(SVD)e(on)g(the)h(Allian)o(t)d(FX/80,)i(w)o(e)h(record)g(the)
g(actual)f(CPU)h(time)d(when)j Fs(exactly)g Fp(j)75 2206
y Fv(pro)q(cessors)c(are)e(activ)o(e,)g(where)h Fp(j)h
Fv(=)e(1)p Fp(;)7 b Fv(2)p Fp(;)g(:)g(:)g(:)t(;)g Fv(8.)17
b(Supp)q(ose)12 b(that)g Fp(t)1127 2212 y Fo(j)1157 2206
y Fv(is)g(the)g(total)f(user)i(CPU)g(time)d(\(in)i(seconds\))h(for)75
2280 y(whic)o(h)j Fp(j)j Fv(pro)q(cessors)f(w)o(ere)f(activ)o(e)f
(during)g(our)h(exp)q(erimen)o(t.)24 b(Then)17 b(the)g(a)o(v)o(erage)f
(concurrency)m(,)i Fp(\026)1705 2286 y Fo(co)1738 2280
y Fv(,)f(ac)o(hiev)o(ed)75 2355 y(for)d(our)f(sparse)j(SVD)d(metho)q(d)
g(w)o(ould)g(b)q(e)i(giv)o(en)e(b)o(y)813 2483 y Fp(\026)838
2489 y Fo(co)883 2483 y Fv(=)e(\()964 2432 y Fq(8)942
2444 y Fm(X)943 2532 y Fo(j)r Fq(=1)1009 2483 y Fp(j)r(t)1043
2489 y Fo(j)1061 2483 y Fv(\))p Fp(=t)1113 2489 y Fo(tot)1171
2483 y Fp(;)75 2617 y Fv(where)17 b Fp(t)212 2623 y Fo(tot)272
2617 y Fv(is)f(the)g(total)g(user)h(CPU)f(time)f(sp)q(en)o(t.)26
b(F)m(or)16 b Fp(t)1009 2623 y Fo(k)1044 2617 y Fv(=)g(0)p
Fp(;)22 b(k)16 b Fv(=)g(1)p Fp(;)7 b Fv(2)p Fp(;)g(:)g(:)g(:)s(;)g
Fv(7,)16 b(w)o(e)g(w)o(ould)f(naturally)g(ha)o(v)o(e)h(a)75
2691 y(completely)d(parallel)g(metho)q(d)g(and)i Fp(\026)690
2697 y Fo(co)735 2691 y Fv(=)d(8.)19 b(This)14 b(situation,)f(ho)o(w)o
(ev)o(er,)h(is)g(di\016cult)g(to)g(obtain)g(since)h(o)o(v)o(erhead)977
2762 y(34)p eop
%%Page: 35 35
35 34 bop 75 43 a Fv(in)11 b(sc)o(heduling,)g(start-up,)h(and)e(sync)o
(hronization)h(for)g(ev)o(en)h(the)f(most)f(parallelized)h(instruction)
g(will)f(ha)o(v)o(e)g(some)h(of)75 118 y(the)f(8)g(pro)q(cessors)i
(inactiv)o(e)e(b)q(efore,)h(during,)e(or)h(after)g(its)g(execution.)18
b(Giv)o(en)9 b Fp(\026)1327 124 y Fo(co)1360 118 y Fv(,)h(w)o(e)g(also)
f(de\014ne)i(the)g(concurrency)75 193 y(e\016ciency)m(,)j
Fp(E)293 199 y Fo(c)309 193 y Fv(,)g(of)f(a)h(particular)f(metho)q(d)g
(b)o(y)899 297 y Fp(E)930 303 y Fo(c)958 297 y Fv(=)1007
269 y Fp(\026)1032 275 y Fo(co)p 1007 287 59 2 v 1026
325 a Fv(8)1084 297 y Fp(:)135 401 y Fv(In)i(T)m(able)e(14,)h(w)o(e)h
(indicate)g(the)g Fs(br)n(e)n(akdown)f Fv(in)h(p)q(ercen)o(tage)h(of)e
(total)g(\(user\))i(CPU)f(time)e(sp)q(en)o(t)i(on)g(exactly)g
Fp(j)75 476 y Fv(pro)q(cessors)h(b)o(y)d(eac)o(h)i(of)e(the)h(four)g
(sparse)g(SVD)g(metho)q(ds)f(when)i(the)f(100-largest)f(triplets)h(of)f
(the)h Fk(MED)g Fv(matrix)d(in)75 551 y(T)m(able)g(1)g(are)h(appro)o
(ximated)d(via)i(eigenpairs)h(of)f Fp(A)880 536 y Fo(T)906
551 y Fp(A)p Fv(.)17 b(Essen)o(tially)m(,)11 b(this)g(data)h(rev)o
(eals)g(the)g(e\013ectiv)o(e)h Fs(distribution)75 625
y Fv(of)f(parallelism)e(\(or)i(utilization)f(of)h(m)o(ultiple)e(pro)q
(cessors\))15 b(among)10 b(the)j(four)f(metho)q(ds)g(across)i(the)f(8)f
(pro)q(cessors)j(of)75 700 y(the)10 b(Allian)o(t)e(FX/80.)17
b(By)10 b(insp)q(ection,)g(w)o(e)g(can)g(see)h(that)f
Fl(TRSVD)f Fv(is)h(b)o(y)f(far)g(the)i(most)d(parallel)h(of)g(the)h
(four)f(metho)q(ds)75 775 y(since)j(as)g(m)o(uc)o(h)e(as)h(64\045)g(of)
g(the)h(total)e(CPU)i(time)e(is)h(sp)q(en)o(t)i(when)e(all)g(8)g(pro)q
(cessors)i(are)f(activ)o(e.)17 b(This)12 b(is)f(somewhat)75
850 y(exp)q(ected,)i(since)f Fl(TRSVD)f Fv(ultimately)e(determines)j
(eac)o(h)f Fp(h)1022 828 y Fq(\()p Fo(k)q Fq(\))1022
861 y Fo(j)1080 850 y Fv(in)g(\(21\))g(concurren)o(tly)h(via)e(indep)q
(enden)o(t)j(conjugate)75 924 y(gradien)o(t)e(\(CG\)iterations.)17
b(The)12 b(second-most)f(parallel)g(metho)q(d)f(w)o(ould)h(b)q(e)h
Fl(SISVD)f Fv(in)f(that)i(appro)o(ximately)d(58\045)75
999 y(of)14 b(the)i(total)e(CPU)i(time)d(is)i(sp)q(en)o(t)h(on)f(8)g
(pro)q(cessors.)23 b Fl(BLSVD)15 b Fv(is)g(a)g(close)g(third)g(with)g
(56\045,)f(and)h Fl(LASVD)f Fv(is)h(the)75 1074 y(least)g(parallel)f
(with)h(only)f(37\045.)21 b(This)15 b(ranking)f(is)h(not)g(to)q(o)g
(surprising)h(since)f(the)h(subspace)h(metho)q(ds,)d
Fl(TRSVD)75 1148 y Fv(and)h Fl(SISVD)p Fv(,)f(ha)o(v)o(e)i(only)e(a)h
(few)h(dominan)o(t)d(sub-algorithms)g(\(SPMXV)j(and)f(BLAS2[3])g(from)e
(T)m(able)i(13\))g(whic)o(h)75 1223 y(can)c(b)q(e)h(easily)f
(parallelized)f(on)h(the)h(Allian)o(t)d(FX/80.)17 b(It)11
b(is)g(imp)q(ortan)o(t)f(to)h(note,)g(ho)o(w)o(ev)o(er,)h(that)f
(although)f Fl(LASVD)75 1298 y Fv(with)15 b(the)h Fp(A)275
1283 y Fo(T)302 1298 y Fp(A)f Fv(op)q(erator)h(ma)o(y)e(b)q(e)i(the)g
(least)f(parallel)g(of)g(the)h(four)f(metho)q(ds)g(in)g(this)h(case,)g
(it)f(can)h(still)e(b)q(e)i(the)75 1373 y(fastest)g(metho)q(d)f(on)g
(the)h(Allian)o(t)d(FX/80)i(\(see)i([4)o(]\).)22 b(Extensiv)o(e)16
b(comparisons)e(of)h(the)h(CPU)g(times)e(required)i(b)o(y)75
1447 y(eac)o(h)d(of)f(the)h(four)f(metho)q(ds)h(in)f(computing)f(the)i
(100-largest)f(singular)f(triplets)i(of)f(the)i(matrices)e(in)g(T)m
(ables)g(1)g(and)75 1522 y(2)i(are)g(presen)o(ted)i(in)d(Section)i(5.)
135 1597 y(The)e(a)o(v)o(erage)f(concurrency)m(,)i Fp(\026)630
1603 y Fo(co)663 1597 y Fv(,)e(and)h(concurrency)h(e\016ciency)m(,)f
Fp(E)1214 1603 y Fo(c)1230 1597 y Fv(,)f(for)g(eac)o(h)h(metho)q(d)f
(is)g(listed)g(in)g(T)m(able)g(15.)75 1671 y Fl(BLSVD)j
Fv(ac)o(hiev)o(es)g(a)g(higher)g(concurrency)i(e\016ciency)e(than)g
Fl(LASVD)g Fv(giv)o(en)f(its)h(greater)h(dep)q(endence)h(\(see)g(T)m
(able)75 1746 y(13\))f(on)g(highly)f(optimized)g(BLAS2[3])g(k)o(ernels)
i(whic)o(h)f(are)h(sp)q(eci\014cally-designed)g(for)f(the)g(8)g(pro)q
(cessors)j(of)c(the)75 1821 y(Allian)o(t)f(FX/80.)23
b(These)17 b(concurrency)h(pro\014les)e(exemplify)e(the)i(parallelism)d
(\(pro)q(cessor)18 b(utilization\))c(observ)o(ed)75 1896
y(for)e(our)g(four)g(metho)q(ds)g(when)g(w)o(e)h(appro)o(ximate)d(as)i
(man)o(y)f(as)h(100)f(of)h(the)h(largest)f(singular)g(triplets)g(of)g
(the)h(sparse)75 1970 y(matrices)g(in)h(T)m(ables)f(1)h(and)g(2)f(on)h
(the)g(Allian)o(t)f(FX/80.)135 2045 y(Finally)m(,)k(in)h(T)m(able)g(16)
g(w)o(e)h(rep)q(ort)h(the)f(o)o(v)o(erall)e(sp)q(eedups)k(for)d(our)h
(four)f(metho)q(ds)g(along)g(with)g(individual)75 2120
y(sp)q(eedups)e(for)d(the)i(sub-algorithms)d(in)h(T)m(able)g(13.)18
b(Here,)d(w)o(e)f(de\014ne)h(sp)q(eedup)g(as)948 2224
y Fp(t)963 2230 y Fq(1)981 2224 y Fp(=t)1017 2230 y Fq(8)1036
2224 y Fp(;)75 2328 y Fv(where)c Fp(t)206 2334 y Fq(1)235
2328 y Fv(and)f Fp(t)327 2334 y Fq(8)356 2328 y Fv(are)h(the)g
(\(user\))g(CPU)g(times)e(consumed)h(b)o(y)g(a)g(program)f(\(or)h(co)q
(de)h(section\))g(executing)g(on)f(1)g(and)g(8)75 2403
y(pro)q(cessors)j(of)e(the)h(Allian)o(t)e(FX/80,)h(resp)q(ectiv)o(ely)m
(.)18 b(The)11 b(sp)q(eedup)i(for)e(sparse-matrix)g(m)o(ultiplicatio)o
(n)e(\(SPMXV\),)75 2478 y(as)14 b(w)o(ould)f(b)q(e)i(somewhat)e(exp)q
(ected,)i(essen)o(tially)f(determines)h(the)f(o)o(v)o(erall)f(sp)q
(eedup)j(for)d(all)g(four)h(metho)q(ds.)k(The)75 2552
y(e\016ciency)f(of)e(the)i(lev)o(el-2)e(and)g(lev)o(el-3)h(BLAS)g(mo)q
(dules)f(is)h(evidenced)h(b)o(y)f(the)g(sp)q(eedups)i(ranging)d(from)f
(5)p Fp(:)p Fv(0)h(to)75 2627 y(5)p Fp(:)p Fv(5)h(on)h
Fl(BLSVD)p Fv(,)f Fl(SISVD)p Fv(,)g(and)h Fl(TRSVD)p
Fv(.)f(The)h(lev)o(el-1)g(BLAS)g(op)q(erations)g(\(e.g.,)g(D)o(AXPY,)g
(DDOT,)f(DNRM2\))75 2702 y(as)h(w)o(ell)f(as)h(the)g(\(blo)q(c)o(k\))g
(mo)q(di\014ed)f(Gram-Sc)o(hmi)o(dt)e(orthogonalization)h(\(OR)m(THG\))
h(also)g(ac)o(hiev)o(ed)h(signi\014can)o(t)977 2762 y(35)p
eop
%%Page: 36 36
36 35 bop 606 3 783 2 v 605 78 2 75 v 676 78 V 676 78
V 750 56 a Fv(P)o(ercen)o(tage)16 b(of)d(T)m(otal)g(CPU)h(Time)p
1388 78 V 605 153 V 676 153 V 676 153 V 800 131 a(\(on)g(Exactly)g
Fp(j)i Fv(Pro)q(cessors\))p 1388 153 V 677 155 713 2
v 605 228 2 75 v 632 205 a Fp(j)p 676 228 V 676 228 V
53 w Fl(LASVD)p 857 228 V 857 228 V 49 w(BLSVD)p 1037
228 V 1037 228 V 50 w(SISVD)p 1202 228 V 1202 228 V 49
w(TRSVD)p 1388 228 V 606 229 783 2 v 605 304 2 75 v 631
282 a Fv(1)p 676 304 V 86 w(57.82)p 857 304 V 85 w(33.35)p
1037 304 V 69 w(32.47)p 1202 304 V 89 w(18.43)p 1388
304 V 605 379 V 631 356 a(2)p 676 379 V 107 w(1.43)p
857 379 V 105 w(1.69)p 1037 379 V 91 w(1.80)p 1202 379
V 110 w(1.83)p 1388 379 V 605 453 V 631 431 a(3)p 676
453 V 107 w(0.74)p 857 453 V 105 w(1.10)p 1037 453 V
91 w(1.09)p 1202 453 V 110 w(1.61)p 1388 453 V 605 528
V 631 506 a(4)p 676 528 V 107 w(0.69)p 857 528 V 105
w(1.02)p 1037 528 V 91 w(1.04)p 1202 528 V 110 w(1.88)p
1388 528 V 605 603 V 631 580 a(5)p 676 603 V 107 w(0.50)p
857 603 V 105 w(1.07)p 1037 603 V 91 w(1.18)p 1202 603
V 110 w(1.80)p 1388 603 V 605 678 V 631 655 a(6)p 676
678 V 107 w(0.67)p 857 678 V 105 w(1.49)p 1037 678 V
91 w(1.09)p 1202 678 V 110 w(1.93)p 1388 678 V 605 752
V 631 730 a(7)p 676 752 V 107 w(1.21)p 857 752 V 105
w(4.65)p 1037 752 V 91 w(3.77)p 1202 752 V 110 w(8.21)p
1388 752 V 605 827 V 631 805 a(8)p 676 827 V 86 w(36.95)p
857 827 V 85 w(55.62)p 1037 827 V 69 w(57.57)p 1202 827
V 89 w(64.31)p 1388 827 V 606 829 783 2 v 905 921 a Fn(T)l(able)h(14)75
996 y Fs(Per)n(c)n(entage)c(of)g(CPU)f(time)h(use)n(d)g(by)g(the)g
(four)g(metho)n(ds)g(on)g Fv(1)g Fs(thr)n(ough)g Fv(8)f
Fs(pr)n(o)n(c)n(essors)h(of)f(the)h(A)o(l)r(liant)f(FX/80)i(when)75
1071 y(c)n(omputing)h(the)g Fv(100)p Fs(-lar)n(gest)f(singular)g
(triplets)g(of)g(the)h Fv(5831)9 b Fr(\002)g Fv(1033)14
b Fk(MED)g Fs(matrix)h(in)g(T)m(able)f(1.)75 1238 y Fv(sp)q(eedups.)31
b(W)m(e)17 b(note)h(that)g(the)g(rank-ordering)f(of)g(a)o(v)o(erage)h
(concurrency)i(\()p Fp(\026)1363 1244 y Fo(co)1396 1238
y Fv(\))e(in)f(T)m(able)g(15)g(correlates)i(w)o(ell)75
1313 y(with)14 b(the)g(rank-ordering)g(of)f(sp)q(eedups)j(in)d(T)m
(able)h(16.)p 797 1373 402 2 v 796 1448 2 75 v 822 1426
a(Metho)q(d)p 992 1448 V 56 w Fp(\026)1043 1432 y Fo(co)p
1100 1448 V 1126 1426 a Fp(E)1157 1432 y Fo(c)p 1198
1448 V 797 1450 402 2 v 796 1525 2 75 v 822 1502 a Fv(TRSVD)p
992 1525 V 51 w(6.3)p 1100 1525 V 55 w(78)p 1198 1525
V 796 1599 V 822 1577 a(SISVD)p 992 1599 V 74 w(5.4)p
1100 1599 V 55 w(68)p 1198 1599 V 796 1674 V 822 1652
a(BLSVD)p 992 1674 V 57 w(5.4)p 1100 1674 V 55 w(67)p
1198 1674 V 796 1749 V 822 1726 a(LASVD)p 992 1749 V
55 w(3.7)p 1100 1749 V 55 w(47)p 1198 1749 V 797 1750
402 2 v 905 1843 a Fn(T)l(able)j(15)75 1918 y Fs(A)o(ver)n(age)f(c)n
(oncurr)n(ency)h(\()p Fp(\026)510 1924 y Fo(co)544 1918
y Fs(\))f(and)h(e\016ciency)g(\()p Fp(E)893 1924 y Fo(c)910
1918 y Fs(\))f(of)h(sp)n(arse)f(SVD)h(metho)n(ds)g(on)g(A)o(l)r(liant)f
(FX/80)h(when)g(c)n(om-)75 1992 y(puting)g(the)f Fv(100)p
Fs(-lar)n(gest)e(triplets)h(of)h(the)h Fv(5831)9 b Fr(\002)h
Fv(1033)15 b Fk(MED)h Fs(matrix)g(in)g(T)m(able)f(1)i(via)f(the)g
(eigensystem)h(of)f Fp(A)1850 1977 y Fo(T)1876 1992 y
Fp(A)p Fs(.)165 2253 y Ft(4.3.)24 b(Memory)l(.)d Fv(Although)13
b(the)i(e\013ectiv)o(e)h(CPU)f(time)e(required)i(b)o(y)f(our)g(metho)q
(ds)g(for)g(the)h(spare)g(SVD)f(is)75 2328 y(certainly)i(an)f(essen)o
(tial)h(metric)f(in)g(measuring)g(their)h(p)q(erformance)f(within)g
(applications)g(suc)o(h)h(as)g(information)75 2403 y(retriev)n(al)e
(and)f(seismic)g(tomograph)o(y)m(,)e(it)j(is)f(also)g(imp)q(ortan)o(t)f
(to)i(assess)i(the)e(amoun)o(t)e(of)h(computer)h(memory)d(that)75
2478 y(is)h(required.)18 b(W)m(e)12 b(estimate)f(the)i(amoun)o(t)d(of)i
(memory)d(in)j(64-bit)f(w)o(ords)h(\(8)g(b)o(ytes\))h(whic)o(h)f(is)g
(required)h(b)o(y)f(the)g(four)75 2552 y(metho)q(ds)e(when)h(equiv)n
(alen)o(t)e(eigensystems)i(of)e(the)i(unshifted/shifted)g(2-cyclic)f
(matrices,)g Fp(B)j Fv(and)1662 2542 y(~)1652 2552 y
Fp(B)s Fv(,)d(giv)o(en)g(b)o(y)g(\(5\))75 2627 y(and)j(\(9\),)f(resp)q
(ectiv)o(ely)m(,)h(and)g Fp(A)576 2612 y Fo(T)602 2627
y Fp(A)g Fv(are)g(used)h(to)e(determine)h(the)g Fp(p)p
Fv(-largest)g(singular)f(triplets)h(of)f(an)h Fp(m)7
b Fr(\002)g Fp(n)13 b Fv(sparse)75 2702 y(matrix)d Fp(A)p
Fv(.)17 b(The)c(estimates)e(are)h(based)h(on)e(our)h(implemen)o
(tations)d(of)i(eac)o(h)h(metho)q(d)f(on)h(b)q(oth)g(the)g(Cra)o
(y-2S/4-128)977 2762 y(36)p eop
%%Page: 37 37
37 36 bop 467 3 1061 2 v 466 78 2 75 v 549 56 a Fv(Algorithm)p
815 78 V 104 w Fl(LASVD)p 996 78 V 49 w(BLSVD)p 1176
78 V 50 w(SISVD)p 1341 78 V 49 w(TRSVD)p 1527 78 V 467
80 1061 2 v 466 155 2 75 v 492 132 a Fv(SPMXV)p 815 155
V 237 w(3)p Fp(:)p Fv(0)p 996 155 V 126 w(3)p Fp(:)p
Fv(0)p 1176 155 V 119 w(3)p Fp(:)p Fv(1)p 1341 155 V
122 w(3)p Fp(:)p Fv(6)p 1527 155 V 466 229 V 492 207
a(OR)m(THG)p 815 229 V 239 w(|)p 996 229 V 139 w(|)p
1176 229 V 131 w(|)p 1341 229 V 128 w(4)p Fp(:)p Fv(8)p
1527 229 V 466 304 V 492 282 a(BLAS2\(3\))p 815 304 V
210 w(|)p 996 304 V 133 w(5)p Fp(:)p Fv(0)p 1176 304
V 119 w(5)p Fp(:)p Fv(3)p 1341 304 V 122 w(5)p Fp(:)p
Fv(5)p 1527 304 V 466 379 V 492 356 a(DSBMV)p 815 379
V 240 w(|)p 996 379 V 133 w(2)p Fp(:)p Fv(0)p 1176 379
V 125 w(|)p 1341 379 V 133 w(|)p 1527 379 V 466 453 V
492 431 a(TQL2)p 815 453 V 284 w(|)p 996 453 V 133 w(2)p
Fp(:)p Fv(8)p 1176 453 V 119 w(3)p Fp(:)p Fv(5)p 1341
453 V 127 w(|)p 1527 453 V 466 528 V 492 506 a(IMTQL2)p
815 528 V 226 w(4)p Fp(:)p Fv(3)p 996 528 V 132 w(|)p
1176 528 V 131 w(|)p 1341 528 V 133 w(|)p 1527 528 V
466 603 V 492 580 a(TRED2)p 815 603 V 246 w(3)p Fp(:)p
Fv(3)p 996 603 V 132 w(|)p 1176 603 V 131 w(|)p 1341
603 V 133 w(|)p 1527 603 V 466 678 V 492 655 a(D)o(AXPY)p
815 678 V 236 w(5)p Fp(:)p Fv(0)p 996 678 V 132 w(|)p
1176 678 V 125 w(4)p Fp(:)p Fv(4)p 1341 678 V 127 w(|)p
1527 678 V 466 752 V 492 730 a(DCOPY)p 815 752 V 235
w(3)p Fp(:)p Fv(6)p 996 752 V 132 w(|)p 1176 752 V 131
w(|)p 1341 752 V 133 w(|)p 1527 752 V 466 827 V 492 805
a(DDOT)p 815 827 V 262 w(7)p Fp(:)p Fv(7)p 996 827 V
132 w(|)p 1176 827 V 131 w(|)p 1341 827 V 133 w(|)p 1527
827 V 466 902 V 492 879 a(DNRM2)p 815 902 V 240 w(|)p
996 902 V 139 w(|)p 1176 902 V 131 w(|)p 1341 902 V 128
w(5)p Fp(:)p Fv(5)p 1527 902 V 467 903 1061 2 v 466 978
2 75 v 492 956 a(Ov)o(erall)13 b(Sp)q(eedup)p 815 978
V 91 w(3)p Fp(:)p Fv(0)p 996 978 V 126 w(3)p Fp(:)p Fv(2)p
1176 978 V 119 w(3)p Fp(:)p Fv(4)p 1341 978 V 122 w(4)p
Fp(:)p Fv(0)p 1527 978 V 467 980 1061 2 v 905 1072 a
Fn(T)l(able)k(16)75 1147 y Fs(Sp)n(e)n(e)n(dups)e(of)f(the)g(four)g
(metho)n(ds)g(\(and)h(their)e(sub-algorithms\))g(for)h(c)n(omputing)g
(the)g Fv(100)p Fs(-lar)n(gest)f(singular)g(triplets)75
1222 y(of)k(the)g Fv(5831)10 b Fr(\002)h Fv(1033)16 b
Fk(MED)g Fs(matrix)g(in)h(T)m(able)g(1)g(on)g(the)g(A)o(l)r(liant)f
(FX/80.)26 b(Sp)n(e)n(e)n(dups)18 b(indic)n(ate)n(d)f(ar)n(e)g(the)g(r)
n(atio)f(of)75 1296 y(\(user\))f(CPU)f(time)h(on)g Fv(1)g
Fs(pr)n(o)n(c)n(essor)f(to)h(CPU)f(time)h(on)g Fv(8)g
Fs(pr)n(o)n(c)n(essors.)75 1473 y Fv(\(static)g(memory)e(allo)q(cation)
g(only\))h(and)h(the)g(Allian)o(t)f(FX/80)g(\(static)i(and)e(dynamic)f
(memory)g(allo)q(cation\).)19 b(W)m(e)75 1548 y(exclude)13
b(the)f(memory)e(needed)j(to)f(store)g(the)h(matrix)d
Fp(A)i Fv(in)f(the)i(Harw)o(ell/Bo)q(eing)e(sparse)i(matrix)d(format)g
(in)i(these)75 1622 y(coun)o(ts.)26 b(Also,)16 b(w)o(e)g(exclude)i(the)
e(memory)e(\()p Fp(mp)j Fv(w)o(ords\))g(needed)g(to)f(compute)g(the)h
(left)f(singular)g(v)o(ectors)h(as)f(in)75 1697 y(Lemma)f(3.2)h(from)f
(the)j(eigensystem)g(of)e Fp(A)788 1682 y Fo(T)815 1697
y Fp(A)p Fv(.)28 b(The)18 b(parameters)f(for)g Fl(BLSVD)g
Fv(\(see)i(T)m(able)d(9)h(in)g(Section)h(3)p Fp(:)p Fv(5\))75
1772 y(include)g(the)h(initial)e(blo)q(c)o(k)h(size,)i
Fp(b)p Fv(,)e(an)g(upp)q(er)i(b)q(ound)e(on)g(the)h(dimension)e(of)h
(the)h(Krylo)o(v)e(subspace,)k Fp(c)p Fv(.)31 b(F)m(or)75
1847 y Fl(LASVD)p Fv(,)12 b(w)o(e)g(also)g(include)h(a)f(similar)e(upp)
q(er)j(b)q(ound,)f Fp(q)q Fv(,)h(for)f(the)h(order)g(of)f(the)h
(symmetric)d(tridiagonal)h(matrix)f Fp(T)1902 1853 y
Fo(j)75 1921 y Fv(in)k(\(31\).)21 b(The)16 b(parameter)e
Fp(s)h Fv(for)g Fl(SISVD)f Fv(and)h Fl(TRSVD)f Fv(de\014nes)j(the)e(n)o
(um)o(b)q(er)f(of)h(v)o(ectors)h(\()p Fp(s)e Fr(\025)f
Fp(p)p Fv(\))i(for)f(the)i(initial)75 1996 y(subspace.)135
2071 y(T)m(able)h(17)g(lists)g(the)h(required)g(megab)o(ytes)f(\(8)12
b Fr(\002)f Fv(10)983 2056 y Fu(\000)p Fq(6)1039 2071
y Fr(\002)29 b Fv(\(n)o(um)o(b)q(er)14 b(of)i(w)o(ords\)\))i(for)f(the)
h(four)f(sparse)i(SVD)75 2145 y(metho)q(ds)12 b(when)h(w)o(e)f(require)
h Fp(p)e Fv(=)h(100)g(of)f(the)i(largest)g(singular)e(triplets)i(of)e
(the)i(sparse)h(matrices)e(in)f(T)m(ables)h(1)g(and)75
2220 y(2)i(\(excluding)f Fk(ADI)p Fv(\).)g(The)i(other)f(parameters)g
(used)h(for)e(these)j(memory)11 b(coun)o(ts)k(are)597
2336 y Fp(b)c Fv(=)h(30)p Fp(;)20 b(c)11 b Fv(=)h(150)p
Fp(;)20 b(s)12 b Fv(=)g(120)p Fp(;)19 b(q)13 b Fv(=)e(min)o
Fr(f)r Fv(~)-23 b Fp(n)o(;)7 b Fv(600)p Fr(g)13 b Fp(;)75
2453 y Fv(where)j(~)-23 b Fp(n)11 b Fv(=)h Fp(n)g Fv(when)h(appro)o
(ximating)d(eigensystems)j(of)f Fp(A)1016 2438 y Fo(T)1042
2453 y Fp(A)p Fv(,)h(and)h(~)-23 b Fp(n)12 b Fv(=)f Fp(m)c
Fv(+)g Fp(n)13 b Fv(when)g(appro)o(ximating)c(eigensys-)75
2527 y(tems)i(of)h Fp(B)i Fv(or)322 2517 y(~)312 2527
y Fp(B)r Fv(.)k(If)11 b(w)o(e)h(compute)g(eigensystems)g(of)f
Fp(B)k Fv(or)1033 2517 y(~)1024 2527 y Fp(B)r Fv(,)d(the)g(Bellcore)h
(matrix)d Fk(TECH)h Fv(will)g(p)q(ose)h(the)h(greatest)75
2602 y(memory)f(constrain)o(t,)j(while)f(the)h(Amo)q(co)e(matrix)g
Fk(AMOCO2)g Fv(will)g(require)i(the)h(largest)e(amoun)o(t)f(of)h
(memory)e(if)i(w)o(e)75 2677 y(appro)o(ximate)h(the)i(eigensystem)f(of)
g Fp(A)705 2662 y Fo(T)732 2677 y Fp(A)p Fv(.)26 b(In)16
b(T)m(able)g(17,)g(w)o(e)h(include)f(the)i(memory)c(requiremen)o(ts)j
(for)f Fl(SISVD)977 2762 y Fv(37)p eop
%%Page: 38 38
38 37 bop 75 43 a Fv(when)17 b(the)f(eigensystem)g(of)g(the)g
(inde\014nite)h(2-cyclic)f(matrix)e Fp(B)k Fv(is)e(determined.)25
b(Since)16 b(w)o(e)h(m)o(ust)e(ha)o(v)o(e)g Fp(s)h Fr(\025)f
Fv(2)p Fp(p)75 118 y Fv(for)g Fl(SISVD)f Fv(and)h Fl(LASVD)g
Fv(when)h(appro)o(ximating)c(eigenpairs)k(of)e Fp(B)k
Fv(\(see)e(Section)g(3)p Fp(:)p Fv(2\),)e(the)i(en)o(tries)g(in)f(T)m
(able)f(17)75 193 y(re\015ect)i(the)e(selection)h(of)e
Fp(s)f Fv(=)g(200)h(for)g Fl(SISVD)h Fv(and)f Fp(p)f
Fv(=)g(200)h(for)g Fl(LASVD)h Fv(for)f(this)h(case.)135
267 y(With)f(regard)i(to)f(memory)d(consumption,)i(T)m(able)g(17)h(rev)
o(eals)g(that)g Fl(SISVD)f Fv(is)h(the)h(most)e Fs(c)n(onservative)h
Fv(of)f(the)75 342 y(four)h(metho)q(ds)g(while)g Fl(LASVD)h
Fv(can)g(b)q(e)g(considered)h(the)f(most)e Fs(lib)n(er)n(al)p
Fv(.)19 b(Whereas)d Fl(BLSVD)e Fv(incorp)q(orates)h(b)q(ounds)75
417 y(\()p Fp(c)p Fv(\))f(on)h(the)f(order)h(of)f Fp(J)449
423 y Fo(k)484 417 y Fv(in)g(\(36\),)f Fl(LASVD)h Fv(m)o(ust)g(simply)e
(ha)o(v)o(e)i(an)g(upp)q(er)h(b)q(ound)g(\()p Fp(q)q
Fv(\))f(for)g(the)h(dimension)e(of)g(the)75 492 y(Krylo)o(v)e(subspace)
i(that)f(will)e(b)q(e)j(required)f(to)g(appro)o(ximate)e(all)g(of)h
(the)i(100-largest)e(singular)g(triplets.)17 b(Of)12
b(course,)75 566 y(the)f(order)h(of)e(the)h(equiv)n(alen)o(t)f
(eigensystem)h(used)h(\()p Fp(m)s Fv(+)s Fp(n)f Fv(for)f
Fp(B)k Fv(or)1162 556 y(~)1152 566 y Fp(B)g Fv(and)c
Fp(n)h Fv(for)f Fp(A)1401 551 y Fo(T)1428 566 y Fp(A)p
Fv(\))h(is)f(one)h(p)q(ossible)g(c)o(hoice)g(for)75 641
y Fp(q)j Fv(but)f(the)h(asso)q(ciated)g(memory)c(requiremen)o(t)j(ma)o
(y)f(pro)o(v)o(e)h(to)g(b)q(e)g(to)q(o)g(stringen)o(t)h(for)f(v)n
(arious)f(computer)h(systems)75 716 y(\(e.g.,)f(Allian)o(t)e(FX/80\).)
18 b(The)12 b(memory)e(requiremen)o(t)j(of)f Fl(LASVD)g
Fv(is)g(nearly)g(5)g(times)g(that)g(of)g Fl(SISVD)g Fv(across)h(most)75
791 y(of)j(the)h(Bellcore)h(and)f(Amo)q(co)e(matrices.)26
b(When)17 b(the)g(eigensystem)g(of)f Fp(A)1291 775 y
Fo(T)1318 791 y Fp(A)g Fv(is)h(appro)o(ximated,)e(ho)o(w)o(ev)o(er,)i
(the)75 865 y(factor)f(is)f(appro)o(ximately)f(3.)23
b(F)m(or)15 b(most)g(of)g(the)h(matrices)f(in)h(T)m(ables)f(1)h(and)f
(2)h(the)g(sa)o(vings)f(in)h(memory)d(for)i(all)75 940
y(four)i(metho)q(ds)f(ranges)h(from)e(a)i(factor)g(of)f(1)p
Fp(:)p Fv(5)g(to)g(5)h(when)g(w)o(e)g(appro)o(ximate)e(eigenpairs)i(of)
f Fp(A)1635 925 y Fo(T)1661 940 y Fp(A)h Fv(rather)h(than)75
1015 y(eigenpairs)c(of)f(the)h(order)g Fp(m)9 b Fv(+)g
Fp(n)14 b Fv(matrices)f Fp(B)j Fv(and)923 1004 y(~)913
1015 y Fp(B)s Fv(.)i(Ho)o(w)o(ev)o(er,)13 b(for)h(suitably)f
(rectangular)h(matrices)f(\()p Fp(m)f Fr(\035)f Fp(n)p
Fv(\))75 1089 y(suc)o(h)k(as)f(the)h(10337)8 b Fr(\002)i
Fv(425)j(Bellcore)i(matrix)d Fk(TIME)p Fv(,)h(the)i(sa)o(vings)f(can)g
(b)q(e)h(enormous.)j(Sp)q(eci\014cally)m(,)13 b Fl(LASVD)h
Fv(and)75 1164 y Fl(TRSVD)j Fv(eac)o(h)g(require)h(a)f(factor)g(22)f
(few)o(er)h(megab)o(ytes)g(whereas)h(the)f(factors)h(for)e
Fl(SISVD)h Fv(and)f Fl(BLSVD)h Fv(are)g(17)75 1239 y(and)d(19,)g(resp)q
(ectiv)o(ely)m(.)20 b(Hence,)15 b(w)o(e)g(can)g(ha)o(v)o(e)f(an)g(imp)q
(ortan)o(t)e(trade-o\013)j(in)f(memory)e(v)o(ersus)k(accuracy)f(when)g
(w)o(e)75 1314 y(c)o(ho)q(ose)h(to)f(determine)g(singular)f(triplets)h
(of)g(the)h(matrix)d Fp(A)i Fv(via)f(the)i(eigensystem)f(of)f
Fp(A)1513 1299 y Fo(T)1539 1314 y Fp(A)p Fv(.)22 b(In)15
b(appro)o(ximating)75 1388 y(the)e Fp(p)p Fv(-largest)f(triplets)h(of)f
Fp(A)p Fv(,)g(the)h(e\013ect)h(of)d(scaling)h(for)g(the)h(left)f
(singular)f(v)o(ector)i(in)f(Lemma)e(3.2)h(on)h(the)h(residual)75
1463 y(in)h(\(6\))g(will)e(determine)i(whether)i(or)e(not)g(the)g
(less-stringen)o(t)i(memory)11 b(requiremen)o(t)j(asso)q(ciated)h(with)
f Fp(A)1786 1448 y Fo(T)1812 1463 y Fp(A)g Fv(is)g(a)75
1538 y(mixed)e(blessing.)165 1641 y Ft(4.4.)24 b(P)o(arameter)12
b(Estimation.)18 b Fv(In)13 b(the)f(preceding)h(sections)h(w)o(e)e(ha)o
(v)o(e)g(rev)o(ealed)h(a)f(few)g(issues)h(regarding)75
1716 y(the)19 b(c)o(hoices)g(of)e(parameters)i(for)e(the)i(metho)q(ds)f
(for)g(sparse)h(SVD)f(under)h(consideration.)31 b(It)19
b(is)f(imp)q(ortan)o(t)e(to)75 1790 y(note)f(the)g(di\016culties)f
(\(if)g(an)o(y\))g(in)g(selecting)h Fs(go)n(o)n(d)g Fv(parameters)f
(for)g(these)i(iterativ)o(e)f(metho)q(ds.)k(In)14 b(the)h(subspace)75
1865 y(metho)q(ds,)i Fl(SISVD)g Fv(and)g Fl(TRSVD)p Fv(,)g(w)o(e)g
(seek)i(the)f(smallest)e(initial)f(subspace)k(dimension)c
Fp(s)p Fv(,)k(where)f Fp(s)g Fr(\025)f Fp(p)p Fv(,)h(that)75
1940 y(can)i(appro)o(ximate)d(the)j(desired)g Fp(p)p
Fv(-largest)f(singular)g(triplets)h(of)e Fp(A)p Fv(.)35
b(F)m(or)19 b Fl(TRSVD)g Fv(w)o(e)g(m)o(ust)f(also)h(c)o(ho)q(ose)h(an)
75 2015 y(appropriate)c(con)o(text)i(switc)o(h)e(parameter,)g
Fp(\021)q Fv(,)h(to)f(switc)o(h)h(from)e(p)q(olynomial)e(acceleration)j
(to)h(shifting)e(b)o(y)h(Ritz)75 2089 y(v)n(alues.)27
b(W)m(e)17 b(ha)o(v)o(e)g(b)q(een)h(fairly)e(successful)i(with)f(the)h
(c)o(hoices)g Fp(\021)g Fv(=)f(10)1248 2074 y Fq(0)1266
2089 y Fp(;)7 b Fv(10)1327 2074 y Fu(\000)p Fq(1)1370
2089 y Fv(,)18 b(ho)o(w)o(ev)o(er,)f(for)g(the)h(matrices)e(in)75
2164 y(T)m(ables)e(1)f(and)h(2.)135 2239 y(As)g(men)o(tioned)f(in)g
(Section)h(3)p Fp(:)p Fv(2,)f(applying)f Fl(SISVD)h Fv(with)g(the)i
(inde\014nite)f(2-cyclic)f(op)q(erator,)h Fp(B)r Fv(,)g(will)e(force)j
(us)75 2314 y(to)i(c)o(ho)q(ose)h Fp(s)g Fv(to)f(b)q(e)h(at)f(least)g
(t)o(wice)h(the)g(size)g(\(2)p Fp(p)p Fv(\))f(of)f(desired)j(singular)d
(triplets.)29 b(The)17 b(same)g(situation)f(holds)75
2388 y(for)g Fl(LASVD)g Fv(when)h(w)o(e)g(appro)o(ximate)d(the)j
(eigensystem)g(of)f Fp(B)r Fv(.)26 b(The)16 b(consequence)j(of)d
(doubling)f Fp(p)h Fv(in)g(terms)h(of)75 2463 y(memory)11
b(is)j(discussed)i(in)d(Section)h(4)p Fp(:)p Fv(3.)135
2538 y(As)j(men)o(tioned)e(in)h(the)h(preceding)h(section,)f
Fl(BLSVD)f Fv(requires)i(an)e(initial)f(blo)q(c)o(k)h(size)h
Fp(b)p Fv(,)f(where)i Fp(b)e Fr(\024)g Fp(p)p Fv(,)g(and)75
2612 y(the)k(b)q(ound)g Fp(c)g Fv(on)f(the)i(Krylo)o(v)e(subspace)i
(generated)g(within)e(the)h(outer)h(blo)q(c)o(k)e(Lanczos)h(recursion)h
(giv)o(en)e(in)75 2687 y(T)m(able)c(9.)23 b(The)16 b(c)o(hoice)g(of)f
Fp(b)h Fv(can)g(b)q(e)g(di\016cult,)f(and)h(as)f(men)o(tioned)g(in)g
(Section)h(3)p Fp(:)p Fv(5)f(w)o(e)h(ha)o(v)o(e)f(made)g(some)g(gains)
977 2762 y(38)p eop
%%Page: 39 39
39 38 bop 382 3 1232 2 v 381 78 2 75 v 561 78 V 561 78
V 885 56 a Fv(Memory)13 b(in)h(Megab)o(ytes)p 1612 78
V 562 80 1052 2 v 381 153 2 75 v 410 131 a(Matrix)p 561
153 V 561 153 V 87 w Fl(LASVD)p 812 153 V 812 153 V 119
w(BLSVD)p 1062 153 V 1062 153 V 163 w(SISVD)p 1383 153
V 1383 153 V 149 w(TRSVD)p 1612 153 V 562 155 1052 2
v 381 228 2 75 v 561 228 V 616 205 a Fp(B)p 674 228 V
52 w(A)730 190 y Fo(T)757 205 y Fp(A)p 812 228 V 78 w(B)p
924 228 V 53 w(A)981 190 y Fo(T)1007 205 y Fp(A)p 1062
228 V 58 w(B)p 1153 228 V 1197 195 a Fv(~)1187 205 y
Fp(B)p 1245 228 V 52 w(A)1301 190 y Fo(T)1328 205 y Fp(A)p
1383 228 V 1426 195 a Fv(~)1417 205 y Fp(B)p 1474 228
V 52 w(A)1531 190 y Fo(T)1557 205 y Fp(A)p 1612 228 V
382 229 1232 2 v 381 304 2 75 v 407 282 a Fk(AMOCO1)p
561 304 V 69 w Fv(17)p 674 304 V 117 w(2)p 812 304 V
91 w(9)p 924 304 V 117 w(2)p 1062 304 V 71 w(6)p 1153
304 V 70 w(3)p 1245 304 V 117 w(1)p 1383 304 V 70 w(8)p
1474 304 V 118 w(2)p 1612 304 V 381 379 V 407 356 a Fk(TIME)p
561 379 V 113 w Fv(55)p 674 379 V 117 w(4)p 812 379 V
70 w(31)p 924 379 V 117 w(3)p 1062 379 V 50 w(21)p 1153
379 V 49 w(10)p 1245 379 V 117 w(1)p 1383 379 V 50 w(27)p
1474 379 V 117 w(2)p 1612 379 V 381 453 V 407 431 a Fk(MED)p
561 453 V 135 w Fv(56)p 674 453 V 96 w(10)p 812 453 V
70 w(32)p 924 453 V 117 w(6)p 1062 453 V 50 w(22)p 1153
453 V 49 w(11)p 1245 453 V 117 w(2)p 1383 453 V 50 w(28)p
1474 453 V 117 w(4)p 1612 453 V 381 528 V 407 506 a Fk(CISI)p
561 528 V 113 w Fv(58)p 674 528 V 96 w(12)p 812 528 V
70 w(35)p 924 528 V 117 w(8)p 1062 528 V 50 w(22)p 1153
528 V 49 w(11)p 1245 528 V 117 w(3)p 1383 528 V 50 w(29)p
1474 528 V 117 w(6)p 1612 528 V 381 603 V 407 580 a Fk(CRAN)p
561 603 V 113 w Fv(90)p 674 603 V 96 w(12)p 812 603 V
70 w(57)p 924 603 V 117 w(8)p 1062 603 V 50 w(35)p 1153
603 V 49 w(17)p 1245 603 V 117 w(3)p 1383 603 V 50 w(45)p
1474 603 V 117 w(6)p 1612 603 V 381 678 V 407 655 a Fk(TECH)p
561 678 V 92 w Fv(153)p 674 678 V 96 w(45)p 812 678 V
70 w(79)p 924 678 V 96 w(37)p 1062 678 V 50 w(60)p 1153
678 V 49 w(30)p 1245 678 V 96 w(14)p 1383 678 V 50 w(79)p
1474 678 V 96 w(28)p 1612 678 V 381 752 V 407 730 a Fk(AMOCO2)p
561 752 V 48 w Fv(190)p 674 752 V 96 w(60)p 812 752 V
49 w(109)p 924 752 V 96 w(49)p 1062 752 V 50 w(75)p 1153
752 V 49 w(37)p 1245 752 V 96 w(19)p 1383 752 V 50 w(98)p
1474 752 V 96 w(37)p 1612 752 V 382 754 1232 2 v 905
847 a Fn(T)l(able)j(17)75 921 y Fs(Memory)i(\(in)f(me)n(gabytes\))h(r)n
(e)n(quir)n(e)n(d)f(by)h(sp)n(arse)f(SVD)h(metho)n(ds)g(when)g(c)n
(omputing)g(the)g Fv(100)p Fs(-lar)n(gest)e(triplets)g(of)75
996 y(matric)n(es)f(in)g(T)m(ables)g(1)g(and)i(2)e(via)h(shifte)n(d)f
(or)g(unshifte)n(d)g Fv(2)p Fs(-cyclic)g(eigensystems)h(\()p
Fp(B)i Fs(or)1550 985 y Fv(~)1540 996 y Fp(B)r Fs(\))e(and)g
(eigensystems)75 1071 y(of)e Fp(A)155 1056 y Fo(T)181
1071 y Fp(A)p Fs(.)75 1245 y Fv(in)g(remo)o(ving)f(this)i(am)o(biguit)o
(y)d(b)o(y)i(incorp)q(orating)h(sp)q(ectral)h(estimation)d(via)h
(Gershgorin)g(disks)h(\(see)h([4]\).)23 b(This)75 1320
y(blo)q(c)o(k)13 b(size)g(adjustmen)o(t)f(strategy)m(,)h(ho)o(w)o(ev)o
(er,)g(is)g(not)g(necessarily)h Fs(r)n(obust)f Fv(and)f(ma)o(y)f(w)o
(arran)o(t)i(further)h(re\014nemen)o(t.)75 1394 y(The)k(c)o(hoice)g(of)
g Fp(c)p Fv(,)g(ho)o(w)o(ev)o(er,)g(is)g(p)q(erhaps)h(one)f(parameter)f
(whose)h(v)n(alue)g(is)f(more)g(or)h(less)g(determined)g(b)o(y)f(the)75
1469 y(computer)f(system)f(rather)i(than)f(the)g(programmer.)22
b(As)16 b(with)f(the)i(Krylo)o(v)e(b)q(ound,)h Fp(q)q
Fv(,)g(for)f Fl(LASVD)h Fv(men)o(tioned)75 1544 y(in)f(Section)g(3)p
Fp(:)p Fv(4,)f(w)o(e)h(can)g(certainly)g(c)o(ho)q(ose)h
Fp(c)f Fv(to)g(b)q(e)h(the)f(order)h(of)f(the)g(eigensystem)g(used)h
(to)f(appro)o(ximate)e(the)75 1618 y(desired)h(singular)f(triplets)g
(\()p Fp(m)8 b Fv(+)g Fp(n)13 b Fv(for)g Fp(B)i Fv(or)821
1608 y(~)811 1618 y Fp(B)s Fv(,)e Fp(n)g Fv(for)f Fp(A)1001
1603 y Fo(T)1027 1618 y Fp(A)p Fv(\),)h(but)h(the)f(a)o(v)n(ailable)e
(memory)g(\(in)i(64-bit)f(w)o(ords\))h(is)75 1693 y(p)q(erhaps)i(the)g
(b)q(est)g(c)o(hoice)f(for)f Fp(c)p Fv(.)165 1796 y Ft(5.)24
b(P)o(erformance)c(Of)j(Metho)q(ds.)16 b Fv(In)k(this)g(section,)i(w)o
(e)e(discuss)h(the)g(p)q(erformance)e(of)h(the)g(metho)q(ds)75
1871 y(for)f(the)h(sparse)h(SVD)f(presen)o(ted)h(in)e(Section)h(3)g(on)
f(b)q(oth)g(a)h(sup)q(ercomputer,)h(Cra)o(y-2S/4-128,)e(and)g(a)g
(mini-)75 1946 y(sup)q(ercomputer,)11 b(Allian)o(t)e(FX/80.)16
b(Mo)q(del)10 b(SVD)g(problems)g(using)f(matrices)h(from)e(T)m(ables)i
(1)g(and)g(2)g(are)g(presen)o(ted,)75 2021 y(and)15 b(a)g(brief)g
(summary)d(of)j(our)g(\014ndings)g(is)f(giv)o(en)h(in)g(Section)g(6.)21
b(In)15 b(order)h(to)f(clarify)f(whic)o(h)h(eigensystems)h(are)75
2095 y(used)h(on)e(the)h(Allian)o(t)e(FX/80)h(and)h(the)g(Cra)o
(y-2S/4-128)e(b)o(y)h(all)f(four)i(metho)q(ds,)f(T)m(able)g(18)g(lists)
g(the)i(equiv)n(alen)o(t)75 2170 y(eigensystems)12 b(considered)h(for)f
(our)g(mo)q(del)e(problems.)16 b(F)m(or)11 b(clari\014cation)g(purp)q
(oses,)j Fl(SISVD)d Fv(and)g Fl(SISVD2)g Fv(denote)75
2245 y(subspace)k(iterati)f(on)f(using)g(eigensystems)i(of)841
2234 y(~)832 2245 y Fp(B)h Fv(and)d Fp(B)r Fv(,)h(resp)q(ectiv)o(ely)m
(,)g(where)1382 2234 y(~)1372 2245 y Fp(B)i Fv(is)e(giv)o(en)f(b)o(y)g
(\(9\))h(and)g Fp(B)i Fv(is)d(the)75 2319 y(2-cyclic)h(matrix)e
(de\014ned)i(b)o(y)g(\(5\).)k(Due)c(to)g(memory)d(limitatio)o(ns)h(in)h
(w)o(orking)g(with)g Fp(B)k Fv(or)1555 2309 y(~)1545
2319 y Fp(B)g Fv(\(see)e(T)m(able)e(17\),)g(w)o(e)75
2394 y(only)g(consider)i(eigensystems)f(of)f(either)i
Fp(A)770 2379 y Fo(T)796 2394 y Fp(A)f Fv(or)g Fp(\015)915
2379 y Fq(2)935 2394 y Fp(I)953 2400 y Fo(n)985 2394
y Fr(\000)9 b Fp(A)1057 2379 y Fo(T)1084 2394 y Fp(A)14
b Fv(for)f(eac)o(h)h(metho)q(d)g(on)f(the)i(Allian)o(t)d(FX/80.)165
2497 y Ft(5.1.)24 b(Mo)q(del)13 b(Problems.)18 b Fv(In)12
b(the)h(follo)o(wing)c(exp)q(erimen)o(ts,)j(w)o(e)g(determine)g(the)g
Fp(p)g Fv(=)g(100)f(largest)h(singular)75 2572 y(triplets)i(of)f(the)h
(matrices)f(\()p Fp(A)p Fv(\))h(in)f(T)m(ables)h(1)f(and)g(2)h
(\(excluding)f Fk(ADI)p Fv(\).)g(W)m(e)g(determine)g(these)j(triplets)e
(to)f(residual)75 2647 y(norms)f(\(6\))g(of)g(order)i(10)460
2632 y Fu(\000)p Fq(3)517 2647 y Fv(or)e(less)i(via)d(eigensystems)j
(of)e(either)h Fp(A)1147 2632 y Fo(T)1173 2647 y Fp(A)g
Fv(or)g(the)g(2-cyclic)g(matrix)e Fp(B)k Fv(\(see)f(5\))e(and)h(its)977
2762 y(39)p eop
%%Page: 40 40
40 39 bop 350 3 1295 2 v 349 78 2 75 v 771 56 a Fv(Largest)15
b(Singular)e(T)m(riplets)p 1644 78 V 350 80 1295 2 v
349 155 2 75 v 431 132 a(Mac)o(hine)p 662 155 V 113 w
Fl(LASVD)p 859 155 V 66 w(BLSVD)p 1057 155 V 104 w(SISVD)p
1313 155 V 167 w(TRSVD)p 1644 155 V 350 156 1295 2 v
349 231 2 75 v 375 209 a Fv(Cra)o(y-2S/4-128)p 662 231
V 48 w Fp(B)r Fv(,)h Fp(A)778 193 y Fo(T)804 209 y Fp(A)p
859 231 V 50 w(B)r Fv(,)g Fp(A)975 193 y Fo(T)1001 209
y Fp(A)p 1057 231 V 50 w(B)r Fv(,)1151 198 y(~)1141 209
y Fp(B)s Fv(,)f Fp(A)1231 193 y Fo(T)1258 209 y Fp(A)p
1313 231 V 1348 198 a Fv(~)1338 209 y Fp(B)s Fv(,)g Fp(\015)1420
193 y Fq(2)1440 209 y Fp(I)1458 215 y Fo(n)1490 209 y
Fr(\000)c Fp(A)1562 193 y Fo(T)1589 209 y Fp(A)p 1644
231 V 349 306 V 377 283 a Fv(Allian)o(t)k(FX/80)p 662
306 V 80 w Fp(A)748 268 y Fo(T)775 283 y Fp(A)p 859 306
V 109 w(A)946 268 y Fo(T)972 283 y Fp(A)p 1057 306 V
138 w(A)1172 268 y Fo(T)1199 283 y Fp(A)p 1313 306 V
138 w(\015)1391 268 y Fq(2)1410 283 y Fp(I)1428 289 y
Fo(n)1460 283 y Fr(\000)d Fp(A)1533 268 y Fo(T)1559 283
y Fp(A)p 1644 306 V 350 307 1295 2 v 905 400 a Fn(T)l(able)17
b(18)75 475 y Fs(Eigensystems)d(c)n(ompute)n(d)h(by)f(the)g(four)g
(metho)n(ds)g(for)f(the)i(sp)n(arse)e(SVD)i(on)f(the)g(A)o(l)r(liant)g
(FX/80)g(and)h(Cr)n(ay-2S/4-)75 549 y(128.)k Fp(B)f Fs(and)309
539 y Fv(~)300 549 y Fp(B)f Fs(ar)n(e)d(the)h(appr)n(opriate)g
(unshifte)n(d)g(and)h(shifte)n(d)e(cyclic)h(matric)n(es,)f(r)n(esp)n(e)
n(ctively.)75 721 y Fv(p)q(ositiv)o(e)f(de\014nite)g(coun)o(terpart)609
710 y(~)599 721 y Fp(B)i Fv(\(see)g(9\).)i(F)m(or)c(singular)f(triplet)
h(appro)o(ximations)e(via)h(eigenpairs)h(of)f Fp(A)1780
706 y Fo(T)1807 721 y Fp(A)p Fv(,)g(the)75 796 y(left)k(singular)g(v)o
(ectors,)h Fp(u)489 802 y Fo(i)503 796 y Fv(,)f(w)o(ere)i(obtained)e
(according)g(to)g(Lemma)e(3)p Fp(:)p Fv(2.)24 b(F)m(or)16
b(reference)j(purp)q(oses,)f(w)o(e)f(include)75 870 y(plots)d(of)f(the)
h(desired)h(singular)f(v)n(alues)f(of)h(the)g(matrices)f(in)h(Figures)g
(2)g(through)g(5.)135 945 y(As)d(discussed)i(in)d(Section)h(4)p
Fp(:)p Fv(3,)f(with)g Fl(LASVD)h Fv(w)o(e)g(m)o(ust)e(request)k
Fp(k)f Fv(=)g(2)p Fp(p)f Fv(=)h(200)e(singular)g(triplets)h(of)f(the)i
Fp(m)s Fr(\002)s Fp(n)75 1020 y Fv(sparse)17 b(matrix)c
Fp(A)j Fv(if)e(w)o(e)i(are)f(to)h(determine)f(the)h(largest)g
Fp(p)f Fv(singular)f(triplets)i(b)o(y)f(considering)h(the)g
(eigensystem)75 1095 y(of)j(the)i(matrix)d Fp(B)r Fv(.)38
b(The)20 b(same)f(situation)h(is)g(certainly)g(true)h(for)e
Fl(SISVD)p Fv(,)g(although)g(w)o(e)i(can)f(also)f(compute)75
1169 y(eigensystems)13 b(of)f(the)h(p)q(ositiv)o(e)f(de\014nite)h
(matrix)878 1159 y(~)868 1169 y Fp(B)s Fv(,)f(where)i
Fp(\015)g Fv(=)e Fr(k)p Fp(A)p Fr(k)1197 1175 y Fq(1)1215
1169 y Fv(.)17 b(As)c(discussed)i(in)d(Section)h(3)p
Fp(:)p Fv(3)p Fp(:)p Fv(1,)d Fl(TRSVD)75 1244 y Fv(requires)15
b(either)f(eigensystems)f(of)650 1234 y(~)640 1244 y
Fp(B)j Fv(or)d Fp(\015)760 1229 y Fq(2)780 1244 y Fp(I)798
1250 y Fo(n)828 1244 y Fr(\000)c Fp(A)900 1229 y Fo(T)926
1244 y Fp(A)k Fv(for)g(this)h(problem.)i(The)e(v)n(alues)f(of)g
Fp(\015)h Fv(=)e Fr(k)p Fp(A)p Fr(k)1698 1250 y Fq(1)1729
1244 y Fv(along)g(with)75 1319 y(the)i(largest)h(singular)e(v)n(alue)g
(\()p Fp(\033)585 1325 y Fo(max)653 1319 y Fv(\))h(in)g(our)g(suite)g
(of)f(matrices)h(is)f(giv)o(en)h(in)f(T)m(able)g(19.)p
295 1386 1405 2 v 294 1461 2 75 v 515 1461 V 515 1461
V 545 1439 a Fk(ADI)p 638 1461 V 638 1461 V 53 w(AMOCO1)p
819 1461 V 819 1461 V 48 w(AMOCO2)p 999 1461 V 999 1461
V 49 w(CISI)p 1136 1461 V 1136 1461 V 63 w(CRAN)p 1301
1461 V 1301 1461 V 67 w(MED)p 1425 1461 V 1425 1461 V
54 w(TECH)p 1562 1461 V 1562 1461 V 49 w(TIME)p 1699
1461 V 295 1463 1405 2 v 294 1538 2 75 v 320 1515 a Fp(\015)h
Fv(=)e Fr(k)p Fp(A)p Fr(k)472 1521 y Fq(1)p 515 1538
V 556 1515 a Fv(78)p 638 1538 V 111 w(51)p 819 1538 V
117 w(1401)p 999 1538 V 86 w(230)p 1136 1538 V 77 w(5700)p
1301 1538 V 71 w(160)p 1425 1538 V 67 w(640)p 1562 1538
V 74 w(110)p 1699 1538 V 295 1539 1405 2 v 294 1614 2
75 v 359 1592 a Fp(\033)383 1598 y Fo(max)p 515 1614
V 540 1592 a Fv(20)p Fp(:)p Fv(7)p 638 1614 V 77 w(23)p
Fp(:)p Fv(8)p 819 1614 V 96 w(553)p Fp(:)p Fv(9)p 999
1614 V 73 w(33)p Fp(:)p Fv(8)p 1136 1614 V 55 w(1693)p
Fp(:)p Fv(3)p 1301 1614 V 48 w(35)p Fp(:)p Fv(9)p 1425
1614 V 55 w(54)p Fp(:)p Fv(2)p 1562 1614 V 62 w(58)p
Fp(:)p Fv(1)p 1699 1614 V 295 1616 1405 2 v 905 1708
a Fn(T)l(able)17 b(19)539 1783 y Fs(Matrix)d Fv(1)p Fs(-Norms)g(for)g
(Bel)r(lc)n(or)n(e)h(and)g(A)o(mo)n(c)n(o)g(Matric)n(es.)135
1952 y Fv(F)m(or)g(our)g(Lanczos-based)h(metho)q(ds,)e
Fl(LASVD)h Fv(and)g Fl(BLSVD)p Fv(,)f(w)o(e)h(limit)d(the)k(dimension)d
(of)i(Krylo)o(v)f(subspaces)75 2027 y(b)o(y)g(selecting)715
2140 y Fp(c)d Fv(=)h(150)p Fp(;)20 b Fv(and)13 b Fp(q)g
Fv(=)f(min)n Fr(f)p Fp(n;)7 b Fv(600)p Fr(g)12 b Fp(;)75
2253 y Fv(where)h Fp(c)e Fv(is)h(the)g(maxim)o(um)7 b(order)12
b(of)f(the)i(matrices)e Fp(J)931 2259 y Fo(k)963 2253
y Fv(in)g(\(36\))h(and)f Fp(H)1208 2259 y Fo(k)1240 2253
y Fv(in)g(\(40\))g(for)h Fl(BLSVD)p Fv(,)f(and)g Fp(q)i
Fv(is)f(the)g(b)q(ound)75 2328 y(on)j(the)h(n)o(um)o(b)q(er)e(of)h
(Lanczos)h(steps,)g Fp(j)r Fv(,)g(in)e Fl(LASVD)h Fv(\(or)h(dimension)d
(of)i Fp(T)1265 2334 y Fo(j)1298 2328 y Fv(in)g(\(31\)\).)21
b(Our)16 b(initial)d(blo)q(c)o(k)i(size)h(for)75 2403
y Fl(BLSVD)c Fv(is)g Fp(b)f Fv(=)h(30)g(and)g(the)h(initial)d(subspace)
j(dimension)e(for)h Fl(SISVD)f Fv(and)h Fl(TRSVD)g Fv(is)g
Fp(s)g Fv(=)g(120.)17 b(F)m(or)11 b Fl(TRSVD)p Fv(,)h(w)o(e)75
2478 y(c)o(ho)q(ose)k Fp(\021)e Fv(=)f(10)330 2463 y
Fu(\000)p Fq(1)389 2478 y Fv(as)i(our)g(residual)f(reduction)i(factor)f
(for)f(the)h(con)o(text)h(switc)o(h)f(from)e(p)q(olynomial)e
(acceleration)75 2552 y(to)j(shifting)f(b)o(y)g(Ritz)h(v)n(alues.)135
2627 y(In)e(presen)o(ting)i(the)f(p)q(erformance)f(of)g(our)h
(candidate)g(metho)q(ds)f(for)g(this)g(problem,)f(w)o(e)i(tra)o(v)o
(erse)h(the)f(t)o(w)o(o)f(ro)o(ws)75 2702 y(of)k(T)m(able)g(18)g(as)g
(our)h(guide)f(for)g(comparisons.)25 b(W)m(e)16 b(b)q(egin)h(b)o(y)f
(comparing)f(the)i(t)o(w)o(o)f(Lanczos-based)i(metho)q(ds,)977
2762 y(40)p eop
%%Page: 41 41
41 40 bop 259 284 a
23308497 13985098 2105016 32890880 35522150 49731010 startTexFig
259 284 a
%%BeginDocument: amoco1.ps
% Xgraph postscript output
% Rick Spickelmier and David Harrison
% University of California, Berkeley
%
% Scaling information
%
% Change these if you would like to change the centering
% of the plot in either dimension
/X-CENTER-PLOT 1 def
/Y-CENTER-PLOT 1 def
%
% Page size computation
clippath pathbbox
/page-height exch def
/page-width exch def
pop pop
% Determine whether rotation is required
538.583 page-width gt
{ % Rotation required
90 rotate
0 page-width neg translate
% Handle centering
Y-CENTER-PLOT 1 eq { % Center in y
page-height 538.583 sub 2 div
} { % Don't center in y
0
} ifelse
X-CENTER-PLOT 1 eq { % Center in x
page-width 538.583 sub 2 div
} { % Don't center in x
0
} ifelse
translate
} { % No rotation - just handle centering
X-CENTER-PLOT 1 eq { % Center in x
page-width 538.583 sub 2 div
} { % Don't center in x
0
} ifelse
Y-CENTER-PLOT 1 eq { % Center in y
page-height 538.583 sub 2 div
} { % Don't center in y
0
} ifelse
translate
} ifelse
% Set the scale
0.06 0.06 scale
% Font Handling Functions
%
% Function giving y-offset to center of font
% Assumes font is set and uses numbers to gauge center
%
/choose-font % stack: fontsize fontname => ---
{
findfont
exch scalefont
setfont
newpath
0 0 moveto (0) true charpath flattenpath pathbbox
/top exch def pop
/bottom exch def pop
bottom top bottom top add 2 div
/center-font-val exch def
/upper-font-val exch def
/lower-font-val exch def
} def
%
% Justfication offset routines
%
/center-x-just % stack: (string) x y => (string) newx y
{
exch 2 index stringwidth pop 2 div sub exch
} def
%
/left-x-just % stack: (string) x y => (string) newx y
{
} def
%
/right-x-just % stack: (string) x y => (string) newx y
{
exch 2 index stringwidth pop sub exch
} def
%
/center-y-just % stack: (string) x y => (string) x newy
{
center-font-val sub
} def
%
/lower-y-just % stack: (string) x y => (string) x newy
{
lower-font-val sub
} def
%
/upper-y-just % stack: (string) x y => (string) x newy
{
upper-font-val sub
} def
%
% Shows a string on the page subject to justification
%
/just-string % stack: (string) x y just => ---
{
dup 0 eq { pop center-x-just center-y-just } if
dup 1 eq { pop left-x-just center-y-just } if
dup 2 eq { pop left-x-just upper-y-just } if
dup 3 eq { pop center-x-just upper-y-just } if
dup 4 eq { pop right-x-just upper-y-just } if
dup 5 eq { pop right-x-just center-y-just } if
dup 6 eq { pop right-x-just lower-y-just } if
dup 7 eq { pop center-x-just lower-y-just } if
dup 8 eq { pop left-x-just lower-y-just } if
moveto show
} def
%
% Marker definitions
/mark0 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto
size size add 0 rlineto 0 size size add rlineto
0 size size add sub 0 rlineto closepath fill} def
/mark1 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto
size size add 0 rlineto 0 size size add rlineto
0 size size add sub 0 rlineto closepath stroke} def
/mark2 {/size exch def /y exch def /x exch def
newpath x y moveto x y size 0 360 arc stroke} def
/mark3 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto x size add y size add lineto
x size sub y size add moveto x size add y size sub lineto stroke} def
/mark4 {/size exch def /y exch def /x exch def
newpath x size sub y moveto x y size add lineto
x size add y lineto x y size sub lineto
closepath stroke} def
/mark5 {/size exch def /y exch def /x exch def
x y size mark1
newpath x size sub y moveto size size add 0 rlineto stroke} def
/mark6 {/size exch def /y exch def /x exch def
newpath x y moveto x y size 0 360 arc fill} def
/mark7 {/size exch def /y exch def /x exch def
newpath x y moveto x size sub y size sub lineto
x size add y size sub lineto closepath fill
newpath x y moveto x size add y size add lineto
x size sub y size add lineto closepath fill} def
%
% Main body begins here
%
300 /Times-Bold choose-font
( ) 4488 8856 3 just-string
200 /Times-Roman choose-font
(AMOCO1(1436 X 330)) 6686 8104 2 just-string
14 setlinewidth
[] 0 setdash
newpath
6686 8136 moveto
8886 8136 lineto
stroke
[] 0 setdash 8 setlinewidth 6686 8136 24 mark0
(Magnitude) 90 8496 2 just-string
(S-Value) 8886 380 5 just-string
(0.00) 860 729 5 just-string
(2.00) 860 1321 5 just-string
(4.00) 860 1912 5 just-string
(6.00) 860 2503 5 just-string
(8.00) 860 3095 5 just-string
(10.00) 860 3686 5 just-string
(12.00) 860 4277 5 just-string
(14.00) 860 4868 5 just-string
(16.00) 860 5460 5 just-string
(18.00) 860 6051 5 just-string
(20.00) 860 6642 5 just-string
(22.00) 860 7234 5 just-string
(24.00) 860 7825 5 just-string
(0.00) 1191 90 7 just-string
(100.00) 2751 90 7 just-string
(200.00) 4311 90 7 just-string
(300.00) 5871 90 7 just-string
[] 0 setdash
8 setlinewidth
newpath
950 729 moveto
1100 729 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
6446 729 moveto
6596 729 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 1321 moveto
1100 1321 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 1321 moveto
6596 1321 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 1912 moveto
1100 1912 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 1912 moveto
6596 1912 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 2503 moveto
1100 2503 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 2503 moveto
6596 2503 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 3095 moveto
1100 3095 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 3095 moveto
6596 3095 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 3686 moveto
1100 3686 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 3686 moveto
6596 3686 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 4277 moveto
1100 4277 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 4277 moveto
6596 4277 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 4868 moveto
1100 4868 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 4868 moveto
6596 4868 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 5460 moveto
1100 5460 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 5460 moveto
6596 5460 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 6051 moveto
1100 6051 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 6051 moveto
6596 6051 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 6642 moveto
1100 6642 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 6642 moveto
6596 6642 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 7234 moveto
1100 7234 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 7234 moveto
6596 7234 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 7825 moveto
1100 7825 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 7825 moveto
6596 7825 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
1191 8106 moveto
1191 7956 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
1191 530 moveto
1191 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
2751 8106 moveto
2751 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
2751 530 moveto
2751 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
4311 8106 moveto
4311 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
4311 530 moveto
4311 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
5871 8106 moveto
5871 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
5871 530 moveto
5871 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 8106 moveto
950 380 lineto
6596 380 lineto
6596 8106 lineto
950 8106 lineto
stroke
8 setlinewidth 1207 7755 24 mark0
1222 6574 24 mark0
1238 5632 24 mark0
1253 4972 24 mark0
1269 4576 24 mark0
1285 4363 24 mark0
1300 4164 24 mark0
1316 3949 24 mark0
1331 3885 24 mark0
1347 3784 24 mark0
1363 3723 24 mark0
1378 3672 24 mark0
1394 3583 24 mark0
1409 3555 24 mark0
1425 3516 24 mark0
1441 3490 24 mark0
1456 3464 24 mark0
1472 3450 24 mark0
1487 3431 24 mark0
1503 3423 24 mark0
1519 3378 24 mark0
1534 3359 24 mark0
1550 3297 24 mark0
1565 3280 24 mark0
1581 3197 24 mark0
1597 3169 24 mark0
1612 3145 24 mark0
1628 3097 24 mark0
1643 3076 24 mark0
1659 3039 24 mark0
1675 2996 24 mark0
1690 2966 24 mark0
1706 2905 24 mark0
1721 2859 24 mark0
1737 2831 24 mark0
1753 2792 24 mark0
1768 2778 24 mark0
1784 2744 24 mark0
1799 2724 24 mark0
1815 2714 24 mark0
1831 2688 24 mark0
1846 2670 24 mark0
1862 2639 24 mark0
1877 2607 24 mark0
1893 2593 24 mark0
1909 2563 24 mark0
1924 2550 24 mark0
1940 2538 24 mark0
1955 2510 24 mark0
1971 2490 24 mark0
1987 2481 24 mark0
2002 2463 24 mark0
2018 2449 24 mark0
2033 2434 24 mark0
2049 2391 24 mark0
2065 2368 24 mark0
2080 2358 24 mark0
2096 2324 24 mark0
2111 2321 24 mark0
2127 2311 24 mark0
2143 2304 24 mark0
2158 2283 24 mark0
2174 2269 24 mark0
2189 2239 24 mark0
2205 2234 24 mark0
2221 2210 24 mark0
2236 2199 24 mark0
2252 2181 24 mark0
2268 2146 24 mark0
2283 2132 24 mark0
2299 2121 24 mark0
2314 2112 24 mark0
2330 2092 24 mark0
2346 2068 24 mark0
2361 2066 24 mark0
2377 2054 24 mark0
2392 2020 24 mark0
2408 2008 24 mark0
2424 1994 24 mark0
2439 1982 24 mark0
2455 1953 24 mark0
2470 1930 24 mark0
2486 1908 24 mark0
2502 1897 24 mark0
2517 1875 24 mark0
2533 1857 24 mark0
2548 1828 24 mark0
2564 1811 24 mark0
2580 1802 24 mark0
2595 1792 24 mark0
2611 1766 24 mark0
2626 1761 24 mark0
2642 1751 24 mark0
2658 1706 24 mark0
2673 1689 24 mark0
2689 1678 24 mark0
2704 1663 24 mark0
2720 1651 24 mark0
2736 1623 24 mark0
2751 1593 24 mark0
2767 1569 24 mark0
2782 1562 24 mark0
2798 1544 24 mark0
2814 1528 24 mark0
2829 1515 24 mark0
2845 1512 24 mark0
2860 1497 24 mark0
2876 1481 24 mark0
2892 1470 24 mark0
2907 1452 24 mark0
2923 1437 24 mark0
2938 1431 24 mark0
2954 1416 24 mark0
2970 1394 24 mark0
2985 1392 24 mark0
3001 1380 24 mark0
3016 1368 24 mark0
3032 1357 24 mark0
3048 1340 24 mark0
3063 1337 24 mark0
3079 1331 24 mark0
3094 1323 24 mark0
3110 1316 24 mark0
3126 1305 24 mark0
3141 1301 24 mark0
3157 1299 24 mark0
3172 1287 24 mark0
3188 1286 24 mark0
3204 1274 24 mark0
3219 1267 24 mark0
3235 1259 24 mark0
3250 1242 24 mark0
3266 1232 24 mark0
3282 1226 24 mark0
3297 1224 24 mark0
3313 1221 24 mark0
3328 1214 24 mark0
3344 1211 24 mark0
3360 1203 24 mark0
3375 1194 24 mark0
3391 1177 24 mark0
3406 1172 24 mark0
3422 1168 24 mark0
3438 1165 24 mark0
3453 1161 24 mark0
3469 1158 24 mark0
3484 1151 24 mark0
3500 1147 24 mark0
3516 1135 24 mark0
3531 1133 24 mark0
3547 1130 24 mark0
3562 1122 24 mark0
3578 1120 24 mark0
3594 1115 24 mark0
3609 1112 24 mark0
3625 1104 24 mark0
3640 1101 24 mark0
3656 1099 24 mark0
3672 1094 24 mark0
3687 1087 24 mark0
3703 1084 24 mark0
3718 1080 24 mark0
3734 1077 24 mark0
3750 1076 24 mark0
3765 1074 24 mark0
3781 1071 24 mark0
3796 1066 24 mark0
3812 1064 24 mark0
3828 1057 24 mark0
3843 1057 24 mark0
3859 1053 24 mark0
3874 1050 24 mark0
3890 1047 24 mark0
3906 1045 24 mark0
3921 1042 24 mark0
3937 1037 24 mark0
3952 1036 24 mark0
3968 1031 24 mark0
3984 1029 24 mark0
3999 1027 24 mark0
4015 1025 24 mark0
4030 1022 24 mark0
4046 1020 24 mark0
4062 1017 24 mark0
4077 1016 24 mark0
4093 1011 24 mark0
4108 1008 24 mark0
4124 1006 24 mark0
4140 1003 24 mark0
4155 1000 24 mark0
4171 998 24 mark0
4186 996 24 mark0
4202 994 24 mark0
4218 990 24 mark0
4233 988 24 mark0
4249 988 24 mark0
4264 984 24 mark0
4280 982 24 mark0
4296 981 24 mark0
4311 978 24 mark0
4327 977 24 mark0
4342 975 24 mark0
4358 974 24 mark0
4374 973 24 mark0
4389 971 24 mark0
4405 969 24 mark0
4420 965 24 mark0
4436 964 24 mark0
4452 959 24 mark0
4467 958 24 mark0
4483 957 24 mark0
4498 956 24 mark0
4514 954 24 mark0
4530 952 24 mark0
4545 948 24 mark0
4561 947 24 mark0
4576 945 24 mark0
4592 943 24 mark0
4608 942 24 mark0
4623 939 24 mark0
4639 937 24 mark0
4654 935 24 mark0
4670 934 24 mark0
4686 933 24 mark0
4701 930 24 mark0
4717 928 24 mark0
4732 925 24 mark0
4748 923 24 mark0
4764 920 24 mark0
4779 919 24 mark0
4795 918 24 mark0
4810 913 24 mark0
4826 912 24 mark0
4842 910 24 mark0
4857 909 24 mark0
4873 906 24 mark0
4888 905 24 mark0
4904 903 24 mark0
4920 900 24 mark0
4935 897 24 mark0
4951 896 24 mark0
4966 895 24 mark0
4982 892 24 mark0
4998 891 24 mark0
5013 888 24 mark0
5029 888 24 mark0
5044 887 24 mark0
5060 883 24 mark0
5076 882 24 mark0
5091 880 24 mark0
5107 878 24 mark0
5122 876 24 mark0
5138 874 24 mark0
5154 873 24 mark0
5169 869 24 mark0
5185 867 24 mark0
5200 865 24 mark0
5216 862 24 mark0
5232 861 24 mark0
5247 858 24 mark0
5263 856 24 mark0
5278 853 24 mark0
5294 853 24 mark0
5310 851 24 mark0
5325 847 24 mark0
5341 845 24 mark0
5357 843 24 mark0
5372 842 24 mark0
5388 839 24 mark0
5403 838 24 mark0
5419 836 24 mark0
5435 833 24 mark0
5450 833 24 mark0
5466 829 24 mark0
5481 827 24 mark0
5497 826 24 mark0
5513 823 24 mark0
5528 822 24 mark0
5544 820 24 mark0
5559 819 24 mark0
5575 817 24 mark0
5591 815 24 mark0
5606 812 24 mark0
5622 812 24 mark0
5637 811 24 mark0
5653 807 24 mark0
5669 806 24 mark0
5684 804 24 mark0
5700 802 24 mark0
5715 799 24 mark0
5731 799 24 mark0
5747 794 24 mark0
5762 794 24 mark0
5778 793 24 mark0
5793 790 24 mark0
5809 789 24 mark0
5825 786 24 mark0
5840 783 24 mark0
5856 783 24 mark0
5871 780 24 mark0
5887 777 24 mark0
5903 777 24 mark0
5918 776 24 mark0
5934 774 24 mark0
5949 771 24 mark0
5965 770 24 mark0
5981 769 24 mark0
5996 766 24 mark0
6012 766 24 mark0
6027 761 24 mark0
6043 758 24 mark0
6059 758 24 mark0
6074 756 24 mark0
6090 755 24 mark0
6105 753 24 mark0
6121 752 24 mark0
6137 750 24 mark0
6152 746 24 mark0
6168 743 24 mark0
6183 742 24 mark0
6199 738 24 mark0
6215 737 24 mark0
6230 734 24 mark0
6246 733 24 mark0
6261 733 24 mark0
6277 732 24 mark0
6293 732 24 mark0
6308 732 24 mark0
6324 732 24 mark0
6339 731 24 mark0
showpage
%%EndDocument
endTexFig
382 2411 a Fn(Fig.)14 b(2)p Fv(.)k Fs(F)m(ul)r(l)d(sp)n(e)n(ctrum)f
(of)h(the)g Fv(1436)8 b Fr(\002)i Fv(330)k Fk(AMOCO1)f
Fs(matrix)i(in)f(T)m(able)h Fv(2)p Fs(.)977 2762 y Fv(41)p
eop
%%Page: 42 42
42 41 bop 259 284 a
23308497 13985098 2105016 32890880 35522150 49731010 startTexFig
259 284 a
%%BeginDocument: amoco2.ps
% Xgraph postscript output
% Rick Spickelmier and David Harrison
% University of California, Berkeley
%
% Scaling information
%
% Change these if you would like to change the centering
% of the plot in either dimension
/X-CENTER-PLOT 1 def
/Y-CENTER-PLOT 1 def
%
% Page size computation
clippath pathbbox
/page-height exch def
/page-width exch def
pop pop
% Determine whether rotation is required
538.583 page-width gt
{ % Rotation required
90 rotate
0 page-width neg translate
% Handle centering
Y-CENTER-PLOT 1 eq { % Center in y
page-height 538.583 sub 2 div
} { % Don't center in y
0
} ifelse
X-CENTER-PLOT 1 eq { % Center in x
page-width 538.583 sub 2 div
} { % Don't center in x
0
} ifelse
translate
} { % No rotation - just handle centering
X-CENTER-PLOT 1 eq { % Center in x
page-width 538.583 sub 2 div
} { % Don't center in x
0
} ifelse
Y-CENTER-PLOT 1 eq { % Center in y
page-height 538.583 sub 2 div
} { % Don't center in y
0
} ifelse
translate
} ifelse
% Set the scale
0.06 0.06 scale
% Font Handling Functions
%
% Function giving y-offset to center of font
% Assumes font is set and uses numbers to gauge center
%
/choose-font % stack: fontsize fontname => ---
{
findfont
exch scalefont
setfont
newpath
0 0 moveto (0) true charpath flattenpath pathbbox
/top exch def pop
/bottom exch def pop
bottom top bottom top add 2 div
/center-font-val exch def
/upper-font-val exch def
/lower-font-val exch def
} def
%
% Justfication offset routines
%
/center-x-just % stack: (string) x y => (string) newx y
{
exch 2 index stringwidth pop 2 div sub exch
} def
%
/left-x-just % stack: (string) x y => (string) newx y
{
} def
%
/right-x-just % stack: (string) x y => (string) newx y
{
exch 2 index stringwidth pop sub exch
} def
%
/center-y-just % stack: (string) x y => (string) x newy
{
center-font-val sub
} def
%
/lower-y-just % stack: (string) x y => (string) x newy
{
lower-font-val sub
} def
%
/upper-y-just % stack: (string) x y => (string) x newy
{
upper-font-val sub
} def
%
% Shows a string on the page subject to justification
%
/just-string % stack: (string) x y just => ---
{
dup 0 eq { pop center-x-just center-y-just } if
dup 1 eq { pop left-x-just center-y-just } if
dup 2 eq { pop left-x-just upper-y-just } if
dup 3 eq { pop center-x-just upper-y-just } if
dup 4 eq { pop right-x-just upper-y-just } if
dup 5 eq { pop right-x-just center-y-just } if
dup 6 eq { pop right-x-just lower-y-just } if
dup 7 eq { pop center-x-just lower-y-just } if
dup 8 eq { pop left-x-just lower-y-just } if
moveto show
} def
%
% Marker definitions
/mark0 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto
size size add 0 rlineto 0 size size add rlineto
0 size size add sub 0 rlineto closepath fill} def
/mark1 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto
size size add 0 rlineto 0 size size add rlineto
0 size size add sub 0 rlineto closepath stroke} def
/mark2 {/size exch def /y exch def /x exch def
newpath x y moveto x y size 0 360 arc stroke} def
/mark3 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto x size add y size add lineto
x size sub y size add moveto x size add y size sub lineto stroke} def
/mark4 {/size exch def /y exch def /x exch def
newpath x size sub y moveto x y size add lineto
x size add y lineto x y size sub lineto
closepath stroke} def
/mark5 {/size exch def /y exch def /x exch def
x y size mark1
newpath x size sub y moveto size size add 0 rlineto stroke} def
/mark6 {/size exch def /y exch def /x exch def
newpath x y moveto x y size 0 360 arc fill} def
/mark7 {/size exch def /y exch def /x exch def
newpath x y moveto x size sub y size sub lineto
x size add y size sub lineto closepath fill
newpath x y moveto x size add y size add lineto
x size sub y size add lineto closepath fill} def
%
% Main body begins here
%
300 /Times-Bold choose-font
( ) 4488 8856 3 just-string
200 /Times-Roman choose-font
(AMOCO2 (9855 X 8754)) 6686 8104 2 just-string
14 setlinewidth
[] 0 setdash
newpath
6686 8136 moveto
8886 8136 lineto
stroke
[] 0 setdash 8 setlinewidth 6686 8136 24 mark0
(Magnitude) 90 8496 2 just-string
(S-Value) 8886 380 5 just-string
(300.00) 860 565 5 just-string
(320.00) 860 1132 5 just-string
(340.00) 860 1698 5 just-string
(360.00) 860 2264 5 just-string
(380.00) 860 2831 5 just-string
(400.00) 860 3397 5 just-string
(420.00) 860 3963 5 just-string
(440.00) 860 4530 5 just-string
(460.00) 860 5096 5 just-string
(480.00) 860 5662 5 just-string
(500.00) 860 6229 5 just-string
(520.00) 860 6795 5 just-string
(540.00) 860 7362 5 just-string
(560.00) 860 7928 5 just-string
(0.00) 1155 90 7 just-string
(20.00) 2192 90 7 just-string
(40.00) 3229 90 7 just-string
(60.00) 4266 90 7 just-string
(80.00) 5302 90 7 just-string
(100.00) 6339 90 7 just-string
[] 0 setdash
2 setlinewidth
newpath
950 565 moveto
1100 565 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 565 moveto
6596 565 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 1132 moveto
1100 1132 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 1132 moveto
6596 1132 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 1698 moveto
1100 1698 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 1698 moveto
6596 1698 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 2264 moveto
1100 2264 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 2264 moveto
6596 2264 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 2831 moveto
1100 2831 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 2831 moveto
6596 2831 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 3397 moveto
1100 3397 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 3397 moveto
6596 3397 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 3963 moveto
1100 3963 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 3963 moveto
6596 3963 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 4530 moveto
1100 4530 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 4530 moveto
6596 4530 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 5096 moveto
1100 5096 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 5096 moveto
6596 5096 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 5662 moveto
1100 5662 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 5662 moveto
6596 5662 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 6229 moveto
1100 6229 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 6229 moveto
6596 6229 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 6795 moveto
1100 6795 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 6795 moveto
6596 6795 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 7362 moveto
1100 7362 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 7362 moveto
6596 7362 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 7928 moveto
1100 7928 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6446 7928 moveto
6596 7928 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
1155 8106 moveto
1155 7956 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
1155 530 moveto
1155 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
2192 8106 moveto
2192 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
2192 530 moveto
2192 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
3229 8106 moveto
3229 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
3229 530 moveto
3229 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
4266 8106 moveto
4266 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
4266 530 moveto
4266 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
5302 8106 moveto
5302 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
5302 530 moveto
5302 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6339 8106 moveto
6339 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6339 530 moveto
6339 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 8106 moveto
950 380 lineto
6596 380 lineto
6596 8106 lineto
950 8106 lineto
stroke
8 setlinewidth 6339 731 24 mark0
6288 773 24 mark0
6236 804 24 mark0
6184 813 24 mark0
6132 848 24 mark0
6080 862 24 mark0
6028 877 24 mark0
5976 904 24 mark0
5925 940 24 mark0
5873 948 24 mark0
5821 953 24 mark0
5769 992 24 mark0
5717 999 24 mark0
5665 1012 24 mark0
5614 1028 24 mark0
5562 1047 24 mark0
5510 1110 24 mark0
5458 1178 24 mark0
5406 1182 24 mark0
5354 1212 24 mark0
5302 1228 24 mark0
5251 1260 24 mark0
5199 1282 24 mark0
5147 1299 24 mark0
5095 1342 24 mark0
5043 1364 24 mark0
4991 1378 24 mark0
4940 1418 24 mark0
4888 1438 24 mark0
4836 1470 24 mark0
4784 1489 24 mark0
4732 1497 24 mark0
4680 1510 24 mark0
4628 1547 24 mark0
4577 1574 24 mark0
4525 1631 24 mark0
4473 1655 24 mark0
4421 1695 24 mark0
4369 1712 24 mark0
4317 1776 24 mark0
4266 1810 24 mark0
4214 1849 24 mark0
4162 1880 24 mark0
4110 1922 24 mark0
4058 1927 24 mark0
4006 1999 24 mark0
3954 2031 24 mark0
3903 2053 24 mark0
3851 2100 24 mark0
3799 2132 24 mark0
3747 2178 24 mark0
3695 2203 24 mark0
3643 2312 24 mark0
3592 2361 24 mark0
3540 2402 24 mark0
3488 2457 24 mark0
3436 2470 24 mark0
3384 2522 24 mark0
3332 2568 24 mark0
3280 2586 24 mark0
3229 2637 24 mark0
3177 2657 24 mark0
3125 2736 24 mark0
3073 2814 24 mark0
3021 2857 24 mark0
2969 3000 24 mark0
2918 3096 24 mark0
2866 3131 24 mark0
2814 3138 24 mark0
2762 3204 24 mark0
2710 3230 24 mark0
2658 3261 24 mark0
2606 3346 24 mark0
2555 3434 24 mark0
2503 3608 24 mark0
2451 3659 24 mark0
2399 3772 24 mark0
2347 3796 24 mark0
2295 3903 24 mark0
2244 4053 24 mark0
2192 4095 24 mark0
2140 4235 24 mark0
2088 4258 24 mark0
2036 4324 24 mark0
1984 4427 24 mark0
1932 4801 24 mark0
1881 4942 24 mark0
1829 4956 24 mark0
1777 4978 24 mark0
1725 5290 24 mark0
1673 5339 24 mark0
1621 5424 24 mark0
1570 5498 24 mark0
1518 6058 24 mark0
1466 6331 24 mark0
1414 6496 24 mark0
1362 6546 24 mark0
1310 6756 24 mark0
1258 6861 24 mark0
1207 7755 24 mark0
showpage
%%EndDocument
endTexFig
213 2411 a Fn(Fig.)14 b(3)p Fv(.)k Fs(The)d Fv(100)p
Fs(-lar)n(gest)e(singular)i(values)g(of)g(the)g Fv(9855)8
b Fr(\002)i Fv(8754)j Fk(AMOCO2)h Fs(matrix)g(in)h(T)m(able)g
Fv(2)p Fs(.)977 2762 y Fv(42)p eop
%%Page: 43 43
43 42 bop 259 322 a
23308497 13985098 2105016 32890880 35522150 49731010 startTexFig
259 322 a
%%BeginDocument: bell.ps
% Xgraph postscript output
% Rick Spickelmier and David Harrison
% University of California, Berkeley
%
% Scaling information
%
% Change these if you would like to change the centering
% of the plot in either dimension
/X-CENTER-PLOT 1 def
/Y-CENTER-PLOT 1 def
%
% Page size computation
clippath pathbbox
/page-height exch def
/page-width exch def
pop pop
% Determine whether rotation is required
538.583 page-width gt
{ % Rotation required
90 rotate
0 page-width neg translate
% Handle centering
Y-CENTER-PLOT 1 eq { % Center in y
page-height 538.583 sub 2 div
} { % Don't center in y
0
} ifelse
X-CENTER-PLOT 1 eq { % Center in x
page-width 538.583 sub 2 div
} { % Don't center in x
0
} ifelse
translate
} { % No rotation - just handle centering
X-CENTER-PLOT 1 eq { % Center in x
page-width 538.583 sub 2 div
} { % Don't center in x
0
} ifelse
Y-CENTER-PLOT 1 eq { % Center in y
page-height 538.583 sub 2 div
} { % Don't center in y
0
} ifelse
translate
} ifelse
% Set the scale
0.06 0.06 scale
% Font Handling Functions
%
% Function giving y-offset to center of font
% Assumes font is set and uses numbers to gauge center
%
/choose-font % stack: fontsize fontname => ---
{
findfont
exch scalefont
setfont
newpath
0 0 moveto (0) true charpath flattenpath pathbbox
/top exch def pop
/bottom exch def pop
bottom top bottom top add 2 div
/center-font-val exch def
/upper-font-val exch def
/lower-font-val exch def
} def
%
% Justfication offset routines
%
/center-x-just % stack: (string) x y => (string) newx y
{
exch 2 index stringwidth pop 2 div sub exch
} def
%
/left-x-just % stack: (string) x y => (string) newx y
{
} def
%
/right-x-just % stack: (string) x y => (string) newx y
{
exch 2 index stringwidth pop sub exch
} def
%
/center-y-just % stack: (string) x y => (string) x newy
{
center-font-val sub
} def
%
/lower-y-just % stack: (string) x y => (string) x newy
{
lower-font-val sub
} def
%
/upper-y-just % stack: (string) x y => (string) x newy
{
upper-font-val sub
} def
%
% Shows a string on the page subject to justification
%
/just-string % stack: (string) x y just => ---
{
dup 0 eq { pop center-x-just center-y-just } if
dup 1 eq { pop left-x-just center-y-just } if
dup 2 eq { pop left-x-just upper-y-just } if
dup 3 eq { pop center-x-just upper-y-just } if
dup 4 eq { pop right-x-just upper-y-just } if
dup 5 eq { pop right-x-just center-y-just } if
dup 6 eq { pop right-x-just lower-y-just } if
dup 7 eq { pop center-x-just lower-y-just } if
dup 8 eq { pop left-x-just lower-y-just } if
moveto show
} def
%
% Marker definitions
/mark0 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto
size size add 0 rlineto 0 size size add rlineto
0 size size add sub 0 rlineto closepath fill} def
/mark1 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto
size size add 0 rlineto 0 size size add rlineto
0 size size add sub 0 rlineto closepath stroke} def
/mark2 {/size exch def /y exch def /x exch def
newpath x y moveto x y size 0 360 arc stroke} def
/mark3 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto x size add y size add lineto
x size sub y size add moveto x size add y size sub lineto stroke} def
/mark4 {/size exch def /y exch def /x exch def
newpath x size sub y moveto x y size add lineto
x size add y lineto x y size sub lineto
closepath stroke} def
/mark5 {/size exch def /y exch def /x exch def
x y size mark1
newpath x size sub y moveto size size add 0 rlineto stroke} def
/mark6 {/size exch def /y exch def /x exch def
newpath x y moveto x y size 0 360 arc fill} def
/mark7 {/size exch def /y exch def /x exch def
newpath x y moveto x size sub y size sub lineto
x size add y size sub lineto closepath fill
newpath x y moveto x size add y size add lineto
x size sub y size add lineto closepath fill} def
%
% Main body begins here
%
300 /Times-Bold choose-font
( ) 4488 8856 3 just-string
200 /Times-Roman choose-font
(CISI(5143 X 1460)) 6906 8104 2 just-string
(MED(5831 X 1033)) 6906 7812 2 just-string
(TIME(10337 X 425)) 6906 7520 2 just-string
(TECH(16637 X 6535)) 6906 7228 2 just-string
14 setlinewidth
[] 0 setdash
newpath
6906 8136 moveto
8886 8136 lineto
stroke
[] 0 setdash 8 setlinewidth 6906 8136 24 mark0
14 setlinewidth
[25] 0 setdash
newpath
6906 7844 moveto
8886 7844 lineto
stroke
[] 0 setdash 8 setlinewidth 6906 7844 24 mark1
14 setlinewidth
[50] 0 setdash
newpath
6906 7552 moveto
8886 7552 lineto
stroke
[] 0 setdash 8 setlinewidth 6906 7552 24 mark2
14 setlinewidth
[75] 0 setdash
newpath
6906 7260 moveto
8886 7260 lineto
stroke
[] 0 setdash 8 setlinewidth 6906 7260 24 mark3
(Magnitude) 90 8496 2 just-string
(S-Value) 8886 380 5 just-string
(10.00) 860 865 5 just-string
(15.00) 860 1581 5 just-string
(20.00) 860 2298 5 just-string
(25.00) 860 3014 5 just-string
(30.00) 860 3731 5 just-string
(35.00) 860 4447 5 just-string
(40.00) 860 5164 5 just-string
(45.00) 860 5881 5 just-string
(50.00) 860 6597 5 just-string
(55.00) 860 7314 5 just-string
(60.00) 860 8030 5 just-string
(0.00) 1163 90 7 just-string
(20.00) 2240 90 7 just-string
(40.00) 3317 90 7 just-string
(60.00) 4395 90 7 just-string
(80.00) 5472 90 7 just-string
(100.00) 6549 90 7 just-string
[] 0 setdash
2 setlinewidth
newpath
950 865 moveto
1100 865 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 865 moveto
6816 865 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 1581 moveto
1100 1581 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 1581 moveto
6816 1581 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 2298 moveto
1100 2298 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 2298 moveto
6816 2298 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 3014 moveto
1100 3014 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 3014 moveto
6816 3014 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 3731 moveto
1100 3731 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 3731 moveto
6816 3731 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 4447 moveto
1100 4447 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 4447 moveto
6816 4447 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 5164 moveto
1100 5164 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 5164 moveto
6816 5164 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 5881 moveto
1100 5881 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 5881 moveto
6816 5881 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 6597 moveto
1100 6597 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 6597 moveto
6816 6597 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 7314 moveto
1100 7314 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 7314 moveto
6816 7314 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 8030 moveto
1100 8030 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6666 8030 moveto
6816 8030 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
1163 8106 moveto
1163 7956 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
1163 530 moveto
1163 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
2240 8106 moveto
2240 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
2240 530 moveto
2240 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
3317 8106 moveto
3317 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
3317 530 moveto
3317 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
4395 8106 moveto
4395 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
4395 530 moveto
4395 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
5472 8106 moveto
5472 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
5472 530 moveto
5472 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6549 8106 moveto
6549 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6549 530 moveto
6549 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 8106 moveto
950 380 lineto
6816 380 lineto
6816 8106 lineto
950 8106 lineto
stroke
8 setlinewidth 1217 4276 24 mark0
1271 2450 24 mark0
1324 2066 24 mark0
1378 1994 24 mark0
1432 1931 24 mark0
1486 1813 24 mark0
1540 1769 24 mark0
1594 1719 24 mark0
1648 1694 24 mark0
1701 1648 24 mark0
1755 1580 24 mark0
1809 1540 24 mark0
1863 1514 24 mark0
1917 1499 24 mark0
1971 1449 24 mark0
2025 1421 24 mark0
2078 1391 24 mark0
2132 1374 24 mark0
2186 1354 24 mark0
2240 1315 24 mark0
2294 1308 24 mark0
2348 1295 24 mark0
2402 1265 24 mark0
2456 1262 24 mark0
2509 1225 24 mark0
2563 1223 24 mark0
2617 1211 24 mark0
2671 1186 24 mark0
2725 1174 24 mark0
2779 1148 24 mark0
2833 1133 24 mark0
2886 1124 24 mark0
2940 1100 24 mark0
2994 1096 24 mark0
3048 1089 24 mark0
3102 1076 24 mark0
3156 1070 24 mark0
3210 1062 24 mark0
3264 1052 24 mark0
3317 1043 24 mark0
3371 1036 24 mark0
3425 1027 24 mark0
3479 1015 24 mark0
3533 1008 24 mark0
3587 997 24 mark0
3641 987 24 mark0
3694 980 24 mark0
3748 971 24 mark0
3802 969 24 mark0
3856 962 24 mark0
3910 952 24 mark0
3964 947 24 mark0
4018 936 24 mark0
4072 932 24 mark0
4125 926 24 mark0
4179 925 24 mark0
4233 920 24 mark0
4287 907 24 mark0
4341 902 24 mark0
4395 898 24 mark0
4449 892 24 mark0
4502 885 24 mark0
4556 881 24 mark0
4610 875 24 mark0
4664 874 24 mark0
4718 868 24 mark0
4772 862 24 mark0
4826 857 24 mark0
4880 851 24 mark0
4933 847 24 mark0
4987 845 24 mark0
5041 838 24 mark0
5095 835 24 mark0
5149 826 24 mark0
5203 826 24 mark0
5257 822 24 mark0
5310 815 24 mark0
5364 813 24 mark0
5418 806 24 mark0
5472 804 24 mark0
5526 800 24 mark0
5580 797 24 mark0
5634 791 24 mark0
5688 788 24 mark0
5741 781 24 mark0
5795 775 24 mark0
5849 773 24 mark0
5903 770 24 mark0
5957 769 24 mark0
6011 765 24 mark0
6065 764 24 mark0
6118 761 24 mark0
6172 750 24 mark0
6226 750 24 mark0
6280 743 24 mark0
6334 741 24 mark0
6388 739 24 mark0
6442 737 24 mark0
6495 735 24 mark0
6549 731 24 mark0
1217 4586 24 mark1
1271 3599 24 mark1
1324 3185 24 mark1
1378 3099 24 mark1
1432 2793 24 mark1
1486 2681 24 mark1
1540 2595 24 mark1
1594 2564 24 mark1
1648 2490 24 mark1
1701 2394 24 mark1
1755 2372 24 mark1
1809 2312 24 mark1
1863 2274 24 mark1
1917 2233 24 mark1
1971 2102 24 mark1
2025 2090 24 mark1
2078 2053 24 mark1
2132 2027 24 mark1
2186 2018 24 mark1
2240 1991 24 mark1
2294 1973 24 mark1
2348 1916 24 mark1
2402 1904 24 mark1
2456 1869 24 mark1
2509 1843 24 mark1
2563 1823 24 mark1
2617 1813 24 mark1
2671 1807 24 mark1
2725 1784 24 mark1
2779 1774 24 mark1
2833 1752 24 mark1
2886 1737 24 mark1
2940 1717 24 mark1
2994 1698 24 mark1
3048 1684 24 mark1
3102 1667 24 mark1
3156 1662 24 mark1
3210 1632 24 mark1
3264 1609 24 mark1
3317 1600 24 mark1
3371 1591 24 mark1
3425 1578 24 mark1
3479 1564 24 mark1
3533 1561 24 mark1
3587 1544 24 mark1
3641 1542 24 mark1
3694 1536 24 mark1
3748 1510 24 mark1
3802 1501 24 mark1
3856 1494 24 mark1
3910 1492 24 mark1
3964 1485 24 mark1
4018 1477 24 mark1
4072 1465 24 mark1
4125 1461 24 mark1
4179 1452 24 mark1
4233 1439 24 mark1
4287 1420 24 mark1
4341 1410 24 mark1
4395 1397 24 mark1
4449 1389 24 mark1
4502 1383 24 mark1
4556 1374 24 mark1
4610 1362 24 mark1
4664 1356 24 mark1
4718 1351 24 mark1
4772 1339 24 mark1
4826 1331 24 mark1
4880 1322 24 mark1
4933 1315 24 mark1
4987 1302 24 mark1
5041 1299 24 mark1
5095 1289 24 mark1
5149 1286 24 mark1
5203 1277 24 mark1
5257 1271 24 mark1
5310 1269 24 mark1
5364 1264 24 mark1
5418 1246 24 mark1
5472 1240 24 mark1
5526 1237 24 mark1
5580 1231 24 mark1
5634 1223 24 mark1
5688 1216 24 mark1
5741 1208 24 mark1
5795 1206 24 mark1
5849 1202 24 mark1
5903 1190 24 mark1
5957 1187 24 mark1
6011 1181 24 mark1
6065 1170 24 mark1
6118 1165 24 mark1
6172 1154 24 mark1
6226 1151 24 mark1
6280 1150 24 mark1
6334 1147 24 mark1
6388 1130 24 mark1
6442 1125 24 mark1
6495 1122 24 mark1
6549 1116 24 mark1
1217 7755 24 mark2
1271 6137 24 mark2
1324 5551 24 mark2
1378 5036 24 mark2
1432 4389 24 mark2
1486 4231 24 mark2
1540 4092 24 mark2
1594 3997 24 mark2
1648 3856 24 mark2
1701 3680 24 mark2
1755 3643 24 mark2
1809 3545 24 mark2
1863 3511 24 mark2
1917 3472 24 mark2
1971 3438 24 mark2
2025 3329 24 mark2
2078 3284 24 mark2
2132 3209 24 mark2
2186 3062 24 mark2
2240 2990 24 mark2
2294 2955 24 mark2
2348 2850 24 mark2
2402 2826 24 mark2
2456 2753 24 mark2
2509 2730 24 mark2
2563 2701 24 mark2
2617 2670 24 mark2
2671 2637 24 mark2
2725 2583 24 mark2
2779 2551 24 mark2
2833 2498 24 mark2
2886 2475 24 mark2
2940 2449 24 mark2
2994 2430 24 mark2
3048 2401 24 mark2
3102 2391 24 mark2
3156 2378 24 mark2
3210 2350 24 mark2
3264 2318 24 mark2
3317 2262 24 mark2
3371 2238 24 mark2
3425 2233 24 mark2
3479 2226 24 mark2
3533 2216 24 mark2
3587 2164 24 mark2
3641 2139 24 mark2
3694 2134 24 mark2
3748 2110 24 mark2
3802 2105 24 mark2
3856 2080 24 mark2
3910 2071 24 mark2
3964 2044 24 mark2
4018 2027 24 mark2
4072 2024 24 mark2
4125 2010 24 mark2
4179 1993 24 mark2
4233 1983 24 mark2
4287 1969 24 mark2
4341 1956 24 mark2
4395 1950 24 mark2
4449 1935 24 mark2
4502 1903 24 mark2
4556 1890 24 mark2
4610 1878 24 mark2
4664 1870 24 mark2
4718 1854 24 mark2
4772 1842 24 mark2
4826 1833 24 mark2
4880 1808 24 mark2
4933 1797 24 mark2
4987 1794 24 mark2
5041 1779 24 mark2
5095 1760 24 mark2
5149 1736 24 mark2
5203 1723 24 mark2
5257 1716 24 mark2
5310 1704 24 mark2
5364 1677 24 mark2
5418 1666 24 mark2
5472 1655 24 mark2
5526 1646 24 mark2
5580 1638 24 mark2
5634 1634 24 mark2
5688 1613 24 mark2
5741 1603 24 mark2
5795 1586 24 mark2
5849 1582 24 mark2
5903 1578 24 mark2
5957 1563 24 mark2
6011 1557 24 mark2
6065 1545 24 mark2
6118 1543 24 mark2
6172 1538 24 mark2
6226 1530 24 mark2
6280 1524 24 mark2
6334 1513 24 mark2
6388 1504 24 mark2
6442 1495 24 mark2
6495 1481 24 mark2
6549 1477 24 mark2
1217 7209 24 mark3
1271 4872 24 mark3
1324 4717 24 mark3
1378 3991 24 mark3
1432 3753 24 mark3
1486 3689 24 mark3
1540 3636 24 mark3
1594 3464 24 mark3
1648 3339 24 mark3
1701 3258 24 mark3
1755 3146 24 mark3
1809 3067 24 mark3
1863 3041 24 mark3
1917 2981 24 mark3
1971 2958 24 mark3
2025 2889 24 mark3
2078 2877 24 mark3
2132 2871 24 mark3
2186 2807 24 mark3
2240 2756 24 mark3
2294 2729 24 mark3
2348 2702 24 mark3
2402 2694 24 mark3
2456 2673 24 mark3
2509 2645 24 mark3
2563 2597 24 mark3
2617 2586 24 mark3
2671 2563 24 mark3
2725 2523 24 mark3
2779 2492 24 mark3
2833 2469 24 mark3
2886 2429 24 mark3
2940 2418 24 mark3
2994 2392 24 mark3
3048 2383 24 mark3
3102 2373 24 mark3
3156 2340 24 mark3
3210 2338 24 mark3
3264 2316 24 mark3
3317 2297 24 mark3
3371 2274 24 mark3
3425 2261 24 mark3
3479 2251 24 mark3
3533 2216 24 mark3
3587 2209 24 mark3
3641 2203 24 mark3
3694 2188 24 mark3
3748 2187 24 mark3
3802 2184 24 mark3
3856 2169 24 mark3
3910 2151 24 mark3
3964 2143 24 mark3
4018 2129 24 mark3
4072 2121 24 mark3
4125 2111 24 mark3
4179 2105 24 mark3
4233 2098 24 mark3
4287 2090 24 mark3
4341 2074 24 mark3
4395 2060 24 mark3
4449 2046 24 mark3
4502 2042 24 mark3
4556 2036 24 mark3
4610 2024 24 mark3
4664 2015 24 mark3
4718 2002 24 mark3
4772 1997 24 mark3
4826 1985 24 mark3
4880 1978 24 mark3
4933 1964 24 mark3
4987 1960 24 mark3
5041 1942 24 mark3
5095 1930 24 mark3
5149 1920 24 mark3
5203 1911 24 mark3
5257 1904 24 mark3
5310 1900 24 mark3
5364 1891 24 mark3
5418 1888 24 mark3
5472 1880 24 mark3
5526 1876 24 mark3
5580 1874 24 mark3
5634 1862 24 mark3
5688 1855 24 mark3
5741 1848 24 mark3
5795 1848 24 mark3
5849 1833 24 mark3
5903 1829 24 mark3
5957 1823 24 mark3
6011 1821 24 mark3
6065 1819 24 mark3
6118 1809 24 mark3
6172 1799 24 mark3
6226 1793 24 mark3
6280 1780 24 mark3
6334 1777 24 mark3
6388 1771 24 mark3
6442 1763 24 mark3
6495 1757 24 mark3
6549 1754 24 mark3
showpage
%%EndDocument
endTexFig
123 2374 a Fn(Fig.)15 b(4)p Fv(.)j Fs(The)d Fv(100)p
Fs(-lar)n(gest)e(singular)i(values)g(of)g(the)g(matric)n(es:)j
Fk(CISI)p Fs(,)13 b Fk(MED)p Fs(,)h Fk(TECH)p Fs(,)g(and)i
Fk(TIME)e Fs(in)h(T)m(able)f Fv(1)p Fs(.)977 2762 y Fv(43)p
eop
%%Page: 44 44
44 43 bop 259 322 a
23308497 13985098 2105016 32890880 35522150 49731010 startTexFig
259 322 a
%%BeginDocument: cran.ps
% Xgraph postscript output
% Rick Spickelmier and David Harrison
% University of California, Berkeley
%
% Scaling information
%
% Change these if you would like to change the centering
% of the plot in either dimension
/X-CENTER-PLOT 1 def
/Y-CENTER-PLOT 1 def
%
% Page size computation
clippath pathbbox
/page-height exch def
/page-width exch def
pop pop
% Determine whether rotation is required
538.583 page-width gt
{ % Rotation required
90 rotate
0 page-width neg translate
% Handle centering
Y-CENTER-PLOT 1 eq { % Center in y
page-height 538.583 sub 2 div
} { % Don't center in y
0
} ifelse
X-CENTER-PLOT 1 eq { % Center in x
page-width 538.583 sub 2 div
} { % Don't center in x
0
} ifelse
translate
} { % No rotation - just handle centering
X-CENTER-PLOT 1 eq { % Center in x
page-width 538.583 sub 2 div
} { % Don't center in x
0
} ifelse
Y-CENTER-PLOT 1 eq { % Center in y
page-height 538.583 sub 2 div
} { % Don't center in y
0
} ifelse
translate
} ifelse
% Set the scale
0.06 0.06 scale
% Font Handling Functions
%
% Function giving y-offset to center of font
% Assumes font is set and uses numbers to gauge center
%
/choose-font % stack: fontsize fontname => ---
{
findfont
exch scalefont
setfont
newpath
0 0 moveto (0) true charpath flattenpath pathbbox
/top exch def pop
/bottom exch def pop
bottom top bottom top add 2 div
/center-font-val exch def
/upper-font-val exch def
/lower-font-val exch def
} def
%
% Justfication offset routines
%
/center-x-just % stack: (string) x y => (string) newx y
{
exch 2 index stringwidth pop 2 div sub exch
} def
%
/left-x-just % stack: (string) x y => (string) newx y
{
} def
%
/right-x-just % stack: (string) x y => (string) newx y
{
exch 2 index stringwidth pop sub exch
} def
%
/center-y-just % stack: (string) x y => (string) x newy
{
center-font-val sub
} def
%
/lower-y-just % stack: (string) x y => (string) x newy
{
lower-font-val sub
} def
%
/upper-y-just % stack: (string) x y => (string) x newy
{
upper-font-val sub
} def
%
% Shows a string on the page subject to justification
%
/just-string % stack: (string) x y just => ---
{
dup 0 eq { pop center-x-just center-y-just } if
dup 1 eq { pop left-x-just center-y-just } if
dup 2 eq { pop left-x-just upper-y-just } if
dup 3 eq { pop center-x-just upper-y-just } if
dup 4 eq { pop right-x-just upper-y-just } if
dup 5 eq { pop right-x-just center-y-just } if
dup 6 eq { pop right-x-just lower-y-just } if
dup 7 eq { pop center-x-just lower-y-just } if
dup 8 eq { pop left-x-just lower-y-just } if
moveto show
} def
%
% Marker definitions
/mark0 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto
size size add 0 rlineto 0 size size add rlineto
0 size size add sub 0 rlineto closepath fill} def
/mark1 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto
size size add 0 rlineto 0 size size add rlineto
0 size size add sub 0 rlineto closepath stroke} def
/mark2 {/size exch def /y exch def /x exch def
newpath x y moveto x y size 0 360 arc stroke} def
/mark3 {/size exch def /y exch def /x exch def
newpath x size sub y size sub moveto x size add y size add lineto
x size sub y size add moveto x size add y size sub lineto stroke} def
/mark4 {/size exch def /y exch def /x exch def
newpath x size sub y moveto x y size add lineto
x size add y lineto x y size sub lineto
closepath stroke} def
/mark5 {/size exch def /y exch def /x exch def
x y size mark1
newpath x size sub y moveto size size add 0 rlineto stroke} def
/mark6 {/size exch def /y exch def /x exch def
newpath x y moveto x y size 0 360 arc fill} def
/mark7 {/size exch def /y exch def /x exch def
newpath x y moveto x size sub y size sub lineto
x size add y size sub lineto closepath fill
newpath x y moveto x size add y size add lineto
x size sub y size add lineto closepath fill} def
%
% Main body begins here
%
300 /Times-Bold choose-font
( ) 4488 8856 3 just-string
200 /Times-Roman choose-font
(CRAN(4997 X 1400)) 7016 8104 2 just-string
14 setlinewidth
[] 0 setdash
newpath
7016 8136 moveto
8886 8136 lineto
stroke
[] 0 setdash 8 setlinewidth 7016 8136 24 mark0
(Magnitude (Log Scale)) 90 8496 2 just-string
(S-Value) 8886 380 5 just-string
(7) 860 629 5 just-string
(1E+01) 860 1092 5 just-string
(1.5) 860 1619 5 just-string
(2) 860 1992 5 just-string
(3) 860 2519 5 just-string
(5) 860 3182 5 just-string
(7) 860 3619 5 just-string
(1E+02) 860 4082 5 just-string
(1.5) 860 4608 5 just-string
(2) 860 4982 5 just-string
(3) 860 5508 5 just-string
(5) 860 6171 5 just-string
(7) 860 6608 5 just-string
(1E+03) 860 7071 5 just-string
(1.5) 860 7597 5 just-string
(2) 860 7971 5 just-string
(0.00) 1167 90 7 just-string
(20.00) 2264 90 7 just-string
(40.00) 3362 90 7 just-string
(60.00) 4459 90 7 just-string
(80.00) 5557 90 7 just-string
(100.00) 6654 90 7 just-string
[] 0 setdash
2 setlinewidth
newpath
950 629 moveto
1100 629 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 629 moveto
6926 629 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 1092 moveto
1100 1092 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 1092 moveto
6926 1092 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 1619 moveto
1100 1619 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 1619 moveto
6926 1619 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 1992 moveto
1100 1992 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 1992 moveto
6926 1992 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 2519 moveto
1100 2519 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 2519 moveto
6926 2519 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 3182 moveto
1100 3182 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 3182 moveto
6926 3182 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 3619 moveto
1100 3619 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 3619 moveto
6926 3619 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 4082 moveto
1100 4082 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 4082 moveto
6926 4082 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 4608 moveto
1100 4608 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 4608 moveto
6926 4608 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 4982 moveto
1100 4982 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 4982 moveto
6926 4982 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 5508 moveto
1100 5508 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 5508 moveto
6926 5508 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 6171 moveto
1100 6171 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 6171 moveto
6926 6171 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 6608 moveto
1100 6608 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 6608 moveto
6926 6608 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 7071 moveto
1100 7071 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 7071 moveto
6926 7071 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 7597 moveto
1100 7597 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 7597 moveto
6926 7597 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 7971 moveto
1100 7971 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6776 7971 moveto
6926 7971 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
1167 8106 moveto
1167 7956 lineto
stroke
[] 0 setdash
8 setlinewidth
newpath
1167 530 moveto
1167 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
2264 8106 moveto
2264 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
2264 530 moveto
2264 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
3362 8106 moveto
3362 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
3362 530 moveto
3362 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
4459 8106 moveto
4459 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
4459 530 moveto
4459 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
5557 8106 moveto
5557 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
5557 530 moveto
5557 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6654 8106 moveto
6654 7956 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
6654 530 moveto
6654 380 lineto
stroke
[] 0 setdash
2 setlinewidth
newpath
950 8106 moveto
950 380 lineto
6926 380 lineto
6926 8106 lineto
950 8106 lineto
stroke
8 setlinewidth 1222 7755 24 mark0
1277 2630 24 mark0
1331 2565 24 mark0
1386 2435 24 mark0
1441 2358 24 mark0
1496 2277 24 mark0
1551 2235 24 mark0
1606 2207 24 mark0
1661 2181 24 mark0
1716 2087 24 mark0
1770 2039 24 mark0
1825 2028 24 mark0
1880 1986 24 mark0
1935 1942 24 mark0
1990 1937 24 mark0
2045 1871 24 mark0
2100 1843 24 mark0
2155 1837 24 mark0
2209 1826 24 mark0
2264 1803 24 mark0
2319 1776 24 mark0
2374 1766 24 mark0
2429 1735 24 mark0
2484 1730 24 mark0
2539 1708 24 mark0
2594 1659 24 mark0
2648 1642 24 mark0
2703 1621 24 mark0
2758 1611 24 mark0
2813 1577 24 mark0
2868 1576 24 mark0
2923 1562 24 mark0
2978 1537 24 mark0
3033 1525 24 mark0
3087 1491 24 mark0
3142 1483 24 mark0
3197 1466 24 mark0
3252 1458 24 mark0
3307 1435 24 mark0
3362 1426 24 mark0
3417 1422 24 mark0
3472 1409 24 mark0
3526 1374 24 mark0
3581 1361 24 mark0
3636 1349 24 mark0
3691 1345 24 mark0
3746 1340 24 mark0
3801 1324 24 mark0
3856 1313 24 mark0
3911 1303 24 mark0
3965 1298 24 mark0
4020 1279 24 mark0
4075 1267 24 mark0
4130 1246 24 mark0
4185 1231 24 mark0
4240 1217 24 mark0
4295 1197 24 mark0
4350 1187 24 mark0
4404 1176 24 mark0
4459 1166 24 mark0
4514 1152 24 mark0
4569 1144 24 mark0
4624 1118 24 mark0
4679 1113 24 mark0
4734 1091 24 mark0
4789 1083 24 mark0
4843 1078 24 mark0
4898 1057 24 mark0
4953 1053 24 mark0
5008 1036 24 mark0
5063 1035 24 mark0
5118 1019 24 mark0
5173 1009 24 mark0
5228 985 24 mark0
5282 970 24 mark0
5337 964 24 mark0
5392 963 24 mark0
5447 950 24 mark0
5502 936 24 mark0
5557 922 24 mark0
5612 914 24 mark0
5667 913 24 mark0
5721 902 24 mark0
5776 900 24 mark0
5831 891 24 mark0
5886 882 24 mark0
5941 869 24 mark0
5996 858 24 mark0
6051 845 24 mark0
6106 837 24 mark0
6160 834 24 mark0
6215 822 24 mark0
6270 806 24 mark0
6325 788 24 mark0
6380 780 24 mark0
6435 778 24 mark0
6490 773 24 mark0
6545 757 24 mark0
6599 747 24 mark0
6654 731 24 mark0
showpage
%%EndDocument
endTexFig
235 2374 a Fn(Fig.)14 b(5)p Fv(.)k Fs(The)d Fv(100)p
Fs(-lar)n(gest)e(singular)i(values)g(of)g(the)g Fv(4997)8
b Fr(\002)h Fv(1400)14 b Fs(matrix)h Fk(CRAN)f Fs(in)g(T)m(able)h
Fv(1)p Fs(.)977 2762 y Fv(44)p eop
%%Page: 45 45
45 44 bop 75 43 a Fl(LASVD)11 b Fv(and)g Fl(BLSVD)p Fv(,)f(when)i
(eigensystems)f(of)g(the)g(2-cyclic)g(matrix)f Fp(B)j
Fv(are)f(appro)o(ximated.)j(T)m(able)10 b(20)h(illustrates)75
118 y(the)k(CPU)g(time)e(on)h(the)h(4-CPU)f(Cra)o(y-2/4-128.)k(W)m(e)c
(observ)o(e)i(that)e Fl(BLSVD)g Fv(can)h(b)q(e)g(b)q(et)o(w)o(een)h(1)p
Fp(:)p Fv(2)d(to)h(1)p Fp(:)p Fv(8)g(times)75 193 y(faster)j(than)g
Fl(LASVD)f Fv(for)g(most)g(problems)f(\(the)j(exceptions)g(b)q(eing)e
Fk(AMOCO1)f Fv(and)i Fk(TECH)e Fv(for)i(whic)o(h)f(b)q(oth)h(times)75
267 y(are)e(comparable\).)k(Requiring)14 b Fp(k)g Fv(=)f(2)p
Fp(p)g Fv(=)g(200)h(singular)g(triplets)h(to)f(b)q(e)i(appro)o(ximated)
d(b)o(y)h Fl(LASVD)h Fv(practically)75 342 y Fs(doubles)k
Fv(the)f(n)o(um)o(b)q(er)g(of)g(Lanczos)h(steps)g(normally)d(required)j
(to)f(appro)o(ximate)e Fp(k)k Fv(=)f(100)e(eigen)o(v)n(alues.)31
b(This)75 417 y(requiremen)o(t,)19 b(of)f(course,)j(is)d(not)h
(necessary)h(if)e(eigensystems)h(of)f Fp(A)1210 402 y
Fo(T)1236 417 y Fp(A)h Fv(can)g(b)q(e)g(used)g(to)g(appro)o(ximate)e
(these)75 492 y(triplets.)32 b(W)m(e)18 b(esp)q(ecially)g(note)h(the)g
(sup)q(eriorit)o(y)g(of)e Fl(LASVD)i Fv(o)o(v)o(er)f
Fl(BLSVD)g Fv(when)h(w)o(e)g(appro)o(ximate)d(the)j(100-)75
566 y(largest)f(eigenpairs)g(of)e Fp(A)492 551 y Fo(T)519
566 y Fp(A)h Fv(as)h(opp)q(osed)g(to)g(those)g(of)f Fp(B)r
Fv(.)30 b(Sp)q(ec\014cally)m(,)17 b Fl(LASVD)h Fv(ranges)g(b)q(et)o(w)o
(een)h(2)p Fp(:)p Fv(6)e(to)g(6)p Fp(:)p Fv(7)75 641
y(times)c(faster)i(than)f Fl(BLSVD)g Fv(across)h(our)f(suite)h(of)f
(matrices.)k(Hence,)d(when)g(appro)o(ximating)c(eigensystems)k(of)e
Fp(B)75 716 y Fv(and)e Fp(A)184 701 y Fo(T)210 716 y
Fp(A)g Fv(\(see)h(T)m(able)f(20\),)f(w)o(e)h(see)h(that)f(using)g
Fl(LASVD)g Fv(to)g(appro)o(ximate)e(the)i(eigenpairs)g(of)g
Fp(A)1601 701 y Fo(T)1627 716 y Fp(A)g Fv(is)g(the)g(Lanczos)75
791 y(sc)o(heme)i(of)g(c)o(hoice)g(for)g(obtaining)f(the)h(largest)g
(singular)g(triplets.)18 b(T)m(o)12 b(assess)j(the)f(sp)q(eci\014c)g
(gains)e(in)h(p)q(erformance)75 865 y(\(time)e(reduction\))i(asso)q
(ciated)f(with)g(the)h(eigen)o(v)n(alue)e(problem)g(of)g(order)i
Fp(n)p Fv(,)f(w)o(e)g(list)g(the)g(sp)q(eed)i(impro)o(v)o(em)o(en)o(ts)
c(for)75 940 y Fl(LASVD)k Fv(and)g Fl(BLSVD)g Fv(\(and)g(the)g(other)h
(candidate)g(metho)q(ds\))e(when)i(eigensystems)f(of)g
Fp(A)1530 925 y Fo(T)1556 940 y Fp(A)g Fv(are)h(appro)o(ximated)75
1015 y(in)e(T)m(able)h(21.)j(The)d(limited)e(impro)o(v)o(emen)o(t)f
(for)j Fl(BLSVD)p Fv(,)f(in)g(this)h(case,)g(stems)g(from)e(the)j(fact)
f(that)f(although)g(the)75 1089 y(less)18 b(time)e(is)h(sp)q(en)o(t)h
(in)f(re-orthogonalization)f(\(see)i(T)m(able)f(12\))f(the)i(n)o(um)o
(b)q(er)f(of)f(outer)i(iteration)f(steps)h(for)f(the)75
1164 y Fp(A)106 1149 y Fo(T)132 1164 y Fp(A)p Fv(-based)h(recursion)g
(\(see)h(T)m(able)d(11\))h(can)g(b)q(e)h(as)f(m)o(uc)o(h)f(as)h(1)p
Fp(:)p Fv(5)f(times)g(greater)j(than)e(the)g(n)o(um)o(b)q(er)g(of)f
(outer)75 1239 y(iterations)c(for)g(the)h(cyclic-based)h(h)o(ybrid)e
(recursion)h(\(T)m(ables)g(9)f(and)g(10\).)17 b(Hence,)d(the)f
(de\015ation)f(asso)q(ciated)h(with)75 1314 y Fs(lar)n(ger)f
Fv(gaps)h(among)d(the)k Fp(p)d Fv(=)h(100)g(eigen)o(v)n(alues)h(of)f
Fp(A)930 1299 y Fo(T)957 1314 y Fp(A)h Fv(is)f(not)h(quite)g(as)g
(e\016cien)o(t.)18 b(Also,)13 b(the)g(n)o(um)o(b)q(er)f(of)h(sparse)75
1388 y(matrix-v)o(ector)h(m)o(ultipli)o(cations)e(p)q(er)k(outer)f
(iteration)g(step)g(is)g(4)g(for)f(the)h Fp(A)1306 1373
y Fo(T)1333 1388 y Fp(A)g Fv(implem)o(en)o(tation)d(rather)j(than)g(2)
75 1463 y(for)f(the)g(cyclic-based)h(recursion.)135 1538
y(Next,)g(w)o(e)f(compare)g(the)h(p)q(erformance)f(of)g(the)h(t)o(w)o
(o)f(v)o(ersions)h(of)f Fl(SISVD)f Fv(with)i(that)f(of)g
Fl(TRSVD)g Fv(when)h(eigen-)75 1612 y(systems)k(of)f
Fp(B)k Fv(and)434 1602 y(~)424 1612 y Fp(B)g Fv(are)d(appro)o(ximated.)
31 b(As)19 b(men)o(tioned)f(ab)q(o)o(v)o(e,)h Fl(SISVD2)f
Fv(denotes)i(the)f(computation)f(of)75 1687 y(eigenpairs)12
b(of)g Fp(B)j Fv(rather)e(than)f(those)h(of)740 1677
y(~)730 1687 y Fp(B)r Fv(.)18 b(The)13 b(e\013ectiv)o(e)g(sp)q(eed)h
(impro)o(v)o(emen)o(t)c(of)h Fl(SISVD2)h Fv(o)o(v)o(er)g
Fl(SISVD)f Fv(ranges)75 1762 y(from)k(1)p Fp(:)p Fv(08)h(to)g(3)p
Fp(:)p Fv(98.)26 b(This,)17 b(in)f(e\013ect,)j(is)d(due)i(to)e(the)i
(length)e(of)h(the)g(Cheb)o(yshev)h(in)o(terv)n(als)e(giv)o(en)g(in)h
(T)m(able)f(4,)75 1837 y(whic)o(h)g(certainly)f(determines)h(the)g(p)q
(olynomial)d(of)i(minim)o(ia)o(l)d(degree)17 b(needed)h(to)d
(accelerate)i(con)o(v)o(ergence.)25 b(W)m(e)75 1911 y(note)16
b(that)f(Cheb)o(yshev)i(p)q(olynomial)o(s)c(of)i(degrees)i(as)f(high)f
(as)g(44)g(are)h(required)g(b)o(y)g Fl(SISVD)p Fv(,)e(while)h
Fl(TRSVD)g Fv(and)75 1986 y Fl(SISVD2)c Fv(require)i(p)q(olynomials)c
(of)i(maxim)o(um)c(degree)14 b(2)d(and)h(22,)g(resp)q(ectiv)o(ely)m(.)
18 b(As)13 b(a)e(result,)i Fl(TRSVD)f Fv(ranges)g(b)q(e-)75
2061 y(t)o(w)o(een)i(2)p Fp(:)p Fv(2)d(to)i(4)p Fp(:)p
Fv(96)f(times)g(faster)h(than)g Fl(SISVD2)f Fv(for)g(our)h(test)h
(suite.)k(Since,)13 b(compiler-generated)g(\()p Fs(auto-tasking)p
Fv(\))75 2135 y(parallelism)f(for)j Fl(TRSVD)p Fv(,)f(yielded)g(an)h(a)
o(v)o(erage)g(of)f(1)p Fp(:)p Fv(68)g(activ)o(e)g(CPU's)h(in)g(a)f
Fs(non-de)n(dic)n(ate)n(d)i Fv(en)o(vironmen)o(t,)e(it)g(is)75
2210 y(reasonable)h(to)f(exp)q(ect)j(ev)o(en)e(higher)g(sp)q(eed)h
(impro)o(v)o(emen)o(ts)c(for)i(a)h(dedicated)g(mac)o(hine.)k(When)c
(appro)o(ximating)75 2285 y(eigenpairs)i(of)f Fp(A)353
2270 y Fo(T)379 2285 y Fp(A)h Fv(on)f(the)i(Cra)o(y-2S/4-128,)c(w)o(e)j
(\014nd)g Fl(SISVD)f Fv(to)h(b)q(e)g(a)f(bit)h(more)e(comp)q(etitiv)o
(e)h(with)g Fl(TRSVD)75 2360 y Fv(b)q(eing)f(appro)o(ximately)d(1)p
Fp(:)p Fv(5)i(times)g(faster)h(across)h(the)f(suite)g(of)g(matrices.)20
b(As)15 b(indicated)g(in)f(T)m(able)g(21,)g Fl(SISVD)g
Fv(is)75 2434 y(m)o(uc)o(h)e(more)g(e\013ectiv)o(e)i(in)e(appro)o
(ximating)e(singular)i(triplets)i(of)e Fp(A)h Fv(via)f(eigenpairs)h(of)
f Fp(A)1496 2419 y Fo(T)1522 2434 y Fp(A)p Fv(.)18 b(Excluding)13
b Fk(AMOCO1)p Fv(,)75 2509 y Fl(SISVD)f Fv(only)f(required)j(Cheb)o
(yshev)f(p)q(olynomials)d(of)i(degree)i(10)d(for)i(eac)o(h)g(matrix)d
(in)i(our)h(test)g(suite)g(\(p)q(olynomial)75 2584 y(of)i(degree)i(4)f
(w)o(as)f(su\016cien)o(t)i(for)e Fk(AMOCO1)p Fv(\).)23
b Fl(TRSVD)p Fv(,)15 b(on)g(the)h(other)h(hand,)f(required)g(p)q
(olynomials)d(of)i(degree)i(2)75 2659 y(for)d(eac)o(h)g(matrix.)977
2762 y(45)p eop
%%Page: 46 46
46 45 bop 135 43 a Fv(With)16 b(the)i(exception)g(of)e
Fl(BLSVD)p Fv(,)g(w)o(e)h(note)h(that)f(the)g(b)q(est)h(p)q(erformance)
f(on)g(the)g(Cra)o(y-2S/4-128)e(for)i(our)75 118 y(candidate)c(metho)q
(ds)g(is)f(obtained)h(when)g(eigensystems)h(of)e Fp(A)1070
103 y Fo(T)1096 118 y Fp(A)h Fv(or)g Fp(\015)1213 103
y Fq(2)1233 118 y Fp(I)1251 124 y Fo(n)1281 118 y Fr(\000)7
b Fp(A)1351 103 y Fo(T)1378 118 y Fp(A)13 b Fv(are)g(appro)o(ximated.)j
(In)d(T)m(able)75 193 y(20,)g(w)o(e)i(compare)e(the)i(Cra)o(y-2S/4-128)
d(CPU)j(times)e(of)h(the)h(b)q(est)g(Lanczos)g(metho)q(d)e(\()p
Fl(LASVD)p Fv(\))i(with)e(that)i(of)e(the)75 267 y(b)q(est)j(subspace)h
(metho)q(d)d(\()p Fl(TRSVD)p Fv(\))i(across)g(the)g(7)f(matrices)f(in)h
(our)g(suite.)23 b(Although)15 b(more)f(comp)q(etitiv)o(e)g(than)75
342 y Fl(BLSVD)p Fv(,)h Fl(TRSVD)g Fv(cannot)h(matc)o(h)e(the)i(p)q
(erformance)g(of)f Fl(LASVD)p Fv(.)g(W)m(e)g(note)h(that)f
Fl(LASVD)h Fv(ranges)g(b)q(et)o(w)o(een)h(2)p Fp(:)p
Fv(6)75 417 y(to)d(6)p Fp(:)p Fv(7)f(times)g(faster)h(than)g
Fl(BLSVD)p Fv(,)f(and)h(1)p Fp(:)p Fv(9)f(to)g(4)p Fp(:)p
Fv(3)g(times)g(faster)i(than)f Fl(TRSVD)p Fv(.)p 458
485 1079 2 v 457 559 2 75 v 721 537 a(SVD)f(via)g(eigensystems)i(of)e
Fp(B)r Fv(,)1251 527 y(~)1241 537 y Fp(B)p 1536 559 V
458 561 1079 2 v 457 636 2 75 v 486 613 a Fv(Matrix)p
638 636 V 53 w Fl(LASVD)p 819 636 V 49 w(BLSVD)p 999
636 V 50 w(SISVD)p 1164 636 V 49 w(SISVD2)p 1350 636
V 49 w(TRSVD)p 1536 636 V 458 638 1079 2 v 457 712 2
75 v 483 690 a Fk(AMOCO1)p 638 712 V 93 w Fv(27)p 819
712 V 139 w(32)p 999 712 V 121 w(102)p 1164 712 V 122
w(94)p 1350 712 V 144 w(43)p 1536 712 V 457 787 V 483
765 a Fk(MED)p 638 787 V 149 w Fv(139)p 819 787 V 118
w(103)p 999 787 V 99 w(1269)p 1164 787 V 102 w(333)p
1350 787 V 123 w(136)p 1536 787 V 457 862 V 483 839 a
Fk(CISI)p 638 862 V 127 w Fv(143)p 819 862 V 118 w(120)p
999 862 V 99 w(1276)p 1164 862 V 102 w(515)p 1350 862
V 123 w(187)p 1536 862 V 457 936 V 483 914 a Fk(TIME)p
638 936 V 127 w Fv(147)p 819 936 V 118 w(127)p 999 936
V 99 w(1616)p 1164 936 V 102 w(634)p 1350 936 V 123 w(300)p
1536 936 V 457 1011 V 483 989 a Fk(CRAN)p 638 1011 V
127 w Fv(167)p 819 1011 V 118 w(117)p 999 1011 V 99 w(1105)p
1164 1011 V 102 w(874)p 1350 1011 V 123 w(176)p 1536
1011 V 457 1086 V 483 1063 a Fk(TECH)p 638 1086 V 127
w Fv(479)p 819 1086 V 118 w(486)p 999 1086 V 99 w(5598)p
1164 1086 V 92 w(1405)p 1350 1086 V 112 w(636)p 1536
1086 V 457 1161 V 483 1138 a Fk(AMOCO2)p 638 1161 V 83
w Fv(654)p 819 1161 V 118 w(360)p 999 1161 V 99 w(4250)p
1164 1161 V 92 w(1160)p 1350 1161 V 112 w(508)p 1536
1161 V 458 1162 1079 2 v 457 1237 2 75 v 723 1215 a(SVD)g(via)g
(eigensystems)i(of)e Fp(A)1215 1199 y Fo(T)1241 1215
y Fp(A)p 1536 1237 V 458 1239 1079 2 v 457 1313 2 75
v 486 1291 a Fv(Matrix)p 638 1313 V 53 w Fl(LASVD)p 819
1313 V 49 w(BLSVD)p 999 1313 V 50 w(SISVD)p 1164 1313
V 1350 1313 V 235 w(TRSVD)p 1536 1313 V 458 1315 1079
2 v 457 1390 2 75 v 483 1367 a Fk(AMOCO1)p 638 1390 V
93 w Fv(10)p 819 1390 V 139 w(26)p 999 1390 V 131 w(23)p
1164 1390 V 1350 1390 V 319 w(19)p 1536 1390 V 457 1464
V 483 1442 a Fk(MED)p 638 1464 V 159 w Fv(16)p 819 1464
V 139 w(86)p 999 1464 V 131 w(88)p 1164 1464 V 1350 1464
V 319 w(52)p 1536 1464 V 457 1539 V 483 1517 a Fk(CISI)p
638 1539 V 137 w Fv(23)p 819 1539 V 129 w(120)p 999 1539
V 110 w(137)p 1164 1539 V 1350 1539 V 308 w(76)p 1536
1539 V 457 1614 V 483 1591 a Fk(TIME)p 638 1614 V 137
w Fv(13)p 819 1614 V 139 w(87)p 999 1614 V 131 w(93)p
1164 1614 V 1350 1614 V 319 w(56)p 1536 1614 V 457 1689
V 483 1666 a Fk(CRAN)p 638 1689 V 137 w Fv(22)p 819 1689
V 129 w(117)p 999 1689 V 110 w(120)p 1164 1689 V 1350
1689 V 308 w(77)p 1536 1689 V 457 1763 V 483 1741 a Fk(TECH)p
638 1763 V 137 w Fv(89)p 819 1763 V 129 w(490)p 999 1763
V 110 w(605)p 1164 1763 V 1350 1763 V 298 w(292)p 1536
1763 V 457 1838 V 483 1816 a Fk(AMOCO2)p 638 1838 V 93
w Fv(48)p 819 1838 V 129 w(360)p 999 1838 V 110 w(801)p
1164 1838 V 1350 1838 V 298 w(384)p 1536 1838 V 458 1840
1079 2 v 905 1932 a Fn(T)l(able)k(20)75 2007 y Fs(Cr)n(ay-2S/4-128)e
(CPU)f(times)f(\(in)h(se)n(c)n(onds\))h(for)f(determining)g(the)g
Fv(100)p Fs(-lar)n(gest)e(singular)i(triplets)f(of)h(matric)n(es)f(in)
75 2082 y(T)m(ables)h(1)h(and)h(2.)135 2248 y Fv(Ha)o(ving)e(completed)
g(our)g(comparisons)g(for)g(the)h(\014rst)g(ro)o(w)g(of)f(T)m(able)f
(18,)h(w)o(e)h(pro)q(ceed)h(do)o(wn)e(the)h(second)h(ro)o(w)75
2323 y(and)10 b(compare)g(the)h(p)q(erformance)f(of)g(our)h(metho)q(ds)
f(on)g(the)h(Allian)o(t)e(FX/80)h(\(matrices)g Fk(TECH)g
Fv(and)g Fk(AMOCO2)f Fv(omitted)75 2397 y(due)15 b(to)g(memory)d
(limitations\).)18 b(The)d Fp(A)727 2382 y Fo(T)754 2397
y Fp(A)g Fv(implem)o(en)o(tation)d(of)i Fl(LASVD)h Fv(is)f(on)h(a)o(v)o
(erage)g(2)p Fp(:)p Fv(7)f(times)g(faster)h(than)75 2472
y Fl(BLSVD)p Fv(,)10 b(and)h(2)p Fp(:)p Fv(4)g(times)f(faster)i(than)f
Fl(TRSVD)g Fv(\(via)f(eigensystems)h(of)g Fp(\015)1224
2457 y Fq(2)1243 2472 y Fp(I)1261 2478 y Fo(n)1288 2472
y Fr(\000)t Fp(A)1355 2457 y Fo(T)1381 2472 y Fp(A)p
Fv(\))h(on)f(the)g(Allian)o(t)f(FX/80.)17 b(The)75 2547
y(e\013ectiv)o(e)h(parallelization)d(of)g Fl(TRSVD)i
Fv(and)f Fl(SISVD)g Fv(\(see)i(T)m(able)e(15\))g(tends)h(to)g(pro)q
(duce)h(comparable)d(times)g(for)75 2622 y(b)q(oth)g(metho)q(ds)g
(\(see)i(T)m(able)e(22\))f(for)h(the)h(mo)q(derate-order)g(matrices.)22
b(The)15 b(concurrency)j(e\016ciency)e(\(see)h(T)m(able)75
2696 y(15\))11 b(is)h(consisten)o(tly)g(high)f(for)h
Fl(TRSVD)p Fv(,)f(and)g(the)h(parallel)f(conjugate)h(gradien)o(t)f
(\(CG\))h(iterations)f(for)h(solving)e(\(21\))977 2762
y(46)p eop
%%Page: 47 47
47 46 bop 551 3 893 2 v 550 78 2 75 v 576 56 a Fv(Matrix)p
731 78 V 56 w Fl(LASVD)49 b(BLSVD)h(SISVD)f(TRSVD)p 1443
78 V 551 80 893 2 v 550 155 2 75 v 576 132 a Fk(AMOCO1)p
731 155 V 88 w Fv(2)p Fp(:)p Fv(7)126 b(1)p Fp(:)p Fv(2)119
b(4)p Fp(:)p Fv(4)j(2)p Fp(:)p Fv(3)p 1443 155 V 550
229 V 576 207 a Fk(AMOCO2)p 731 229 V 88 w Fv(8)p Fp(:)p
Fv(6)k(1)p Fp(:)p Fv(2)109 b(14)p Fp(:)p Fv(4)i(2)p Fp(:)p
Fv(6)p 1443 229 V 550 304 V 576 282 a Fk(CISI)p 731 304
V 132 w Fv(6)p Fp(:)p Fv(2)126 b(1)p Fp(:)p Fv(1)119
b(9)p Fp(:)p Fv(3)j(2)p Fp(:)p Fv(5)p 1443 304 V 550
379 V 576 356 a Fk(CRAN)p 731 379 V 121 w Fv(11)p Fp(:)p
Fv(3)116 b(1)p Fp(:)p Fv(5)109 b(17)p Fp(:)p Fv(3)i(5)p
Fp(:)p Fv(4)p 1443 379 V 550 453 V 576 431 a Fk(MED)p
731 453 V 154 w Fv(7)p Fp(:)p Fv(5)126 b(1)p Fp(:)p Fv(1)119
b(9)p Fp(:)p Fv(2)j(2)p Fp(:)p Fv(3)p 1443 453 V 550
528 V 576 506 a Fk(TECH)p 731 528 V 132 w Fv(5)p Fp(:)p
Fv(3)k(1)p Fp(:)p Fv(0)119 b(9)p Fp(:)p Fv(2)j(2)p Fp(:)p
Fv(2)p 1443 528 V 550 603 V 576 580 a Fk(TIME)p 731 603
V 121 w Fv(13)p Fp(:)p Fv(6)116 b(1)p Fp(:)p Fv(0)j(5)p
Fp(:)p Fv(3)j(1)p Fp(:)p Fv(3)p 1443 603 V 551 605 893
2 v 905 697 a Fn(T)l(able)17 b(21)75 772 y Fs(Sp)n(e)n(e)n(d)g(impr)n
(ovements)g(for)f(appr)n(oximating)g(the)h(lar)n(gest)f
Fp(p)e Fv(=)h(100)h Fs(singular)g(triplets)g(via)g(eigensystems)h(of)g
Fp(A)1863 757 y Fo(T)1889 772 y Fp(A)75 847 y Fs(or)e
Fp(\015)152 831 y Fq(2)171 847 y Fp(I)189 853 y Fo(n)221
847 y Fr(\000)10 b Fp(A)294 831 y Fo(T)320 847 y Fp(A)15
b Fs(as)g(opp)n(ose)n(d)h(to)e(those)i(of)e Fp(B)k Fs(or)889
836 y Fv(~)879 847 y Fp(B)g Fs(\(cyclic)c(matric)n(es\))h(on)g(the)g
(Cr)n(ay-2S/4-128.)75 1014 y Fv(can)d(sustain)g(an)g(optimal)d(p)q
(erformance)j(rate)g(\(lo)o(w)o(er)g(total)f(execution)i(time\))d(with)
i(eac)o(h)g(pro)q(cessor)i(handling)d(one)75 1089 y(indep)q(enden)o(t)k
(system.)p 551 1147 V 550 1222 2 75 v 723 1200 a(SVD)e(via)g
(eigensystems)i(of)e Fp(A)1215 1184 y Fo(T)1241 1200
y Fp(A)p 1443 1222 V 551 1224 893 2 v 550 1298 2 75 v
579 1276 a Fv(Matrix)p 731 1298 V 53 w Fl(LASVD)p 912
1298 V 49 w(BLSVD)p 1092 1298 V 50 w(SISVD)p 1257 1298
V 49 w(TRSVD)p 1443 1298 V 551 1300 893 2 v 550 1375
2 75 v 576 1352 a Fk(AMOCO1)p 731 1375 V 83 w Fv(110)p
912 1375 V 128 w(66)p 1092 1375 V 131 w(49)p 1257 1375
V 133 w(63)p 1443 1375 V 550 1449 V 576 1427 a Fk(MED)p
731 1449 V 159 w Fv(71)p 912 1449 V 129 w(247)p 1092
1449 V 110 w(197)p 1257 1449 V 112 w(189)p 1443 1449
V 550 1524 V 576 1502 a Fk(CISI)p 731 1524 V 127 w Fv(110)p
912 1524 V 118 w(319)p 1092 1524 V 110 w(364)p 1257 1524
V 112 w(266)p 1443 1524 V 550 1599 V 576 1576 a Fk(TIME)p
731 1599 V 137 w Fv(43)p 912 1599 V 129 w(194)p 1092
1599 V 110 w(172)p 1257 1599 V 112 w(165)p 1443 1599
V 550 1674 V 576 1651 a Fk(CRAN)p 731 1674 V 137 w Fv(95)p
912 1674 V 129 w(250)p 1092 1674 V 110 w(315)p 1257 1674
V 112 w(277)p 1443 1674 V 551 1675 893 2 v 905 1768 a
Fn(T)l(able)k(22)75 1842 y Fs(A)o(l)r(liant)d(FX/80)h(CPU)f(times)g
(\(in)h(se)n(c)n(onds\))g(for)f(determining)h(the)f Fv(100)p
Fs(-lar)n(gest)f(singular)h(triplets)g(of)g(matric)n(es)g(in)75
1917 y(T)m(ables)g(1)h(and)h(2.)135 2074 y Fv(Another)e(in)o(teresting)
h(p)q(erformance)e(comparison)g(that)g(w)o(e)h(can)g(dra)o(w)g(from)e
(T)m(ables)h(20)g(and)g(22)h(is)f(the)h(sp)q(eed)75 2149
y(impro)o(v)o(emen)o(t)c(for)i(eac)o(h)h(metho)q(d)f(\(with)g
Fp(A)767 2134 y Fo(T)794 2149 y Fp(A)g Fv(eigensystem)h(op)q(erators\))
g(on)g(the)g(Cra)o(y-2S/4-128)e(relativ)o(e)h(to)g(the)75
2224 y(Allian)o(t)h(FX/80.)19 b(Across)d(the)f(test)h(suite,)f(w)o(e)f
(\014nd)h(that)f(the)i(a)o(v)o(erage)e(ratios,)g Fp(\026)1376
2230 y Fo(t)1403 2224 y Fv(=)h(\(CPU)g(time)e(on)h(the)h(Allian)o(t)75
2299 y(FX/80\))e Fp(=)h Fv(\(CPU)g(time)f(on)h(the)g(Cra)o
(y-2S/4-128\))e(are:)p 546 2379 903 2 v 545 2454 2 75
v 571 2431 a(Metho)q(d)p 736 2454 V 51 w Fl(LASVD)p 917
2454 V 49 w(BLSVD)p 1097 2454 V 50 w(SISVD)p 1262 2454
V 49 w(TRSVD)p 1448 2454 V 546 2455 903 2 v 545 2530
2 75 v 622 2508 a Fp(\026)647 2514 y Fo(t)p 736 2530
V 801 2508 a Fv(4)p Fp(:)p Fv(2)p 917 2530 V 126 w(2)p
Fp(:)p Fv(5)p 1097 2530 V 119 w(2)p Fp(:)p Fv(3)p 1262
2530 V 121 w(3)p Fp(:)p Fv(4)p 1448 2530 V 546 2532 903
2 v 75 2627 a(Giv)o(en,)h(the)h(fact)g(that)g(the)h(Cra)o(y-2S/4-128)c
(is)j(\(theoretically\))g(capable)g(of)f(p)q(eak)i(computational)c
(rate)k(10)e(times)75 2702 y(that)d(of)g(an)g(Allian)o(t)f(FX/80,)h
(one)g(can)h(argue)f(from)f(a)h(purely)g(cost-p)q(erformance)h(p)q
(ersp)q(ectiv)o(e)h(that)f(our)f(implemen-)977 2762 y(47)p
eop
%%Page: 48 48
48 47 bop 75 43 a Fv(tations)9 b(on)h(an)g(Allian)o(t)e(FX/80)h
(mini-sup)q(ercomputer)f(are)j(quite)e(comp)q(etitiv)o(e)g(with)h
(those)g(on)g(the)g(Cra)o(y-2S/4-128)75 118 y(sup)q(ercomputer)15
b(\(assuming)d(no)i(memory)e(limitati)o(ons,)f(of)i(course\).)165
221 y Ft(6.)24 b(Summary)l(.)c Fv(Certainly)11 b(one)i(imp)q(ortan)o(t)
d(b)o(y-pro)q(duct)j(of)e(this)h(researc)o(h)i(e\013ort)f(is)f(the)h(p)
q(ortable)f(F)m(ortran)75 296 y(soft)o(w)o(are)g(library)f(of)h(metho)q
(ds)g(for)f(the)i(sparse)g(SVD.)f(The)g(e\013ectiv)o(e)i(use)f(of)e
(this)h(library)g(certainly)g(dep)q(ends)h(on)f(a)75
371 y(go)q(o)q(d)i(understanding)g(of)g(the)g(merits)g(of)f(eac)o(h)i
(algorithm)c(comp)q(osing)i(the)i(library)e(as)h(w)o(ell)f(as)i(the)f
(applicabilit)o(y)75 446 y(of)i(the)i(library)e(itself.)27
b(Essen)o(tially)m(,)17 b(w)o(e)g(ha)o(v)o(e)g(constructed)i(a)d
Fs(libr)n(ary)g Fv(of)g(sparse)i(SVD)f(algorithms)e(whic)o(h)i(can)75
520 y(b)q(e)f(used)h(for)f(solving)e(sparse)j(linear)f(least)g(squares)
h(problems)e(and)g(for)h(sp)q(ectral)h(estimation,)d(in)h(general.)25
b(The)75 595 y(p)q(erformance)16 b(of)g(the)h(metho)q(ds)f(comprising)e
(our)j(library)e(are)i(further)g(analyzed)f(according)h(to)f(the)h
(criteria)f(in)75 670 y(Section)g(4)f(in)h([4)o(].)23
b(Our)16 b(e\013orts)h(in)e(solving)g(relev)n(an)o(t)h(sparse)h(SVD)e
(problems)g(from)f(information)e(retriev)n(al)k(and)75
744 y(seismic)11 b(re\015ection)i(tomograph)o(y)c(ha)o(v)o(e)j(rev)o
(ealed)g(that)g Fl(LASVD)f Fv(\(via)g Fp(A)1216 729 y
Fo(T)1242 744 y Fp(A)h Fv(eigensystems\))g(is)g(the)g(fastest)h(metho)q
(d)75 819 y(for)i(appro)o(ximating)d(sev)o(eral)k(of)e(the)i(largest)g
(singular)e(triplets)i(on)f(the)h(Cra)o(y-2S/4-128)d(and)i(Allian)o(t)e
(FX/80)i(to)75 894 y(lo)o(w)h(to)g(mo)q(derate)g(accuracies.)28
b(The)17 b(most)e(conserv)n(ativ)o(e)i(metho)q(d)f(with)h(regard)g(to)f
(memory)e(requiremen)o(ts)j(is)75 969 y Fl(SISVD)p Fv(,)f(and)g
Fl(TRSVD)h Fv(w)o(ould)f(b)q(e)h(highly)f(recommended)g(for)g(mac)o
(hines)g(whic)o(h)h(can)g(exploit)f(a)g(high)g(degree)j(of)75
1043 y(coarse-grain)c(parallelism.)j(F)m(or)d(problems)e(in)i(whic)o(h)
f(equiv)n(alen)o(t)g(eigensystems)i(of)e Fp(A)1484 1028
y Fo(T)1510 1043 y Fp(A)h Fv(ma)o(y)e(not)i(b)q(e)g(suitable)75
1118 y(\(ill-conditioned\),)d Fl(BLSVD)i Fv(for)f(cyclic-based)i
(eigensystems)f(is)g(recommended.)165 1221 y Ft(7.)24
b(Ac)o(kno)o(wledgemen)o(ts)o(.)18 b Fv(The)11 b(author)g(w)o(ould)f
(lik)o(e)f(to)i(thank)f(Susan)h(Dumais)e(at)h(Bell)h(Comm)n(unications)
75 1296 y(Researc)o(h)k(\(Bellcore\))h(in)d(Morristo)o(wn,)h(NJ,)g(and)
g(John)h(Scales)f(at)g(the)h(Amo)q(co)e(Researc)o(h)i(Cen)o(ter)h(in)d
(T)m(ulsa,)g(OK)75 1371 y(for)i(their)h(help)f(in)g(constructing)h(the)
g(test)g(suite)g(of)f(sparse)i(matrices)d(from)g(information)e(retriev)
n(al)k(and)f(seismic)75 1445 y(tomograph)o(y)i(applications.)32
b(Also,)19 b(the)h(commen)o(ts)d(and)h(suggestions)i(supplied)f(b)o(y)g
(the)g(referees)i(w)o(ere)f(most)75 1520 y(helpful.)841
1680 y Fb(REFERENCES)98 1800 y Fv([1])26 b(FX/Series)13
b(Arc)o(hitecture)h(Man)o(ual.)f(Allian)o(t)d(Computer)h(Systems)h
(Corp)q(oration,)f(Littleton,)g(MA,)g(Septem-)233 1874
y(b)q(er)j(1987.)98 1949 y([2])28 b(FX/Series)15 b(Scien)o(ti\014c)g
(Library)m(.)i(Allian)o(t)c(Computer)g(Systems)h(Corp)q(oration,)f
(Littleton,)g(MA,)g(Septem)o(b)q(er)233 2024 y(1987.)98
2098 y([3])23 b(F.)13 b(L.)f(Bauer.)17 b(Das)c(V)m(erfahren)g(der)h(T)m
(repp)q(eniteration)f(und)g(v)o(erw)o(andte)h(V)m(erfahren)f(zur)h
(L\177)-21 b(osung)13 b(algebrais-)233 2173 y(c)o(her)i(Eigen)o(w)o
(ertprobleme.)i Fs(ZAMP)p Fv(,)d(8:214{235,)d(1957.)98
2248 y([4])23 b(M.)10 b(W.)g(Berry)m(.)k(Multipro)q(cessor)e(sparse)f
(SVD)g(algorithms)d(and)j(applications.)h(PhD)e(thesis,)i(The)f(Univ)o
(ersit)o(y)233 2323 y(of)i(Illinois)f(at)i(Urbana-Champaign,)d(Urbana,)
i(IL,)g(Octob)q(er)j(1990.)98 2397 y([5])23 b(M.)c(Berry)h(and)f(A.)g
(Sameh.)32 b(Multipro)q(cessor)20 b(Jacobi)f(sc)o(hemes)h(for)f(dense)h
(symmetric)e(eigen)o(v)n(alue)g(and)233 2472 y(singular)13
b(v)n(alue)g(decomp)q(ositions.)k Fs(Pr)n(o)n(c)n(e)n(e)n(dings)e(of)g
(ICPP)g(86)p Fv(,)e(St.)h(Charles,)g(IL,)f(433{440,)f(1986.)98
2547 y([6])23 b(M.)18 b(Berry)h(and)f(A.)f(Sameh.)29
b(An)18 b(o)o(v)o(erview)g(of)f(parallel)g(algorithms)e(for)j(the)g
(singular)g(v)n(alue)f(and)h(dense)233 2622 y(symmetric)11
b(eigen)o(v)n(alue)h(problems.)i Fs(Journal)g(of)g(Computational)f(and)
i(Applie)n(d)e(Mathematics)p Fv(,)g(27:191{)233 2696
y(213,)f(1989.)977 2762 y(48)p eop
%%Page: 49 49
49 48 bop 98 43 a Fv([7])23 b(R.)14 b(Bording,)g(A.)g(Gertsztenk)o
(orn,)i(L.)e(Lines,)h(J.)f(Scales,)h(and)g(S.)f(T)m(reitel.)20
b(Applications)14 b(of)g(seismic)f(tra)o(v)o(el-)233
118 y(time)f(tomograph)o(y)m(.)k Fs(Ge)n(ophys.)f(J.)f(R.)h(astr.)f(So)
n(c.)p Fv(,)g(90\(2\):285{304,)d(1987.)98 193 y([8])26
b(Cra)o(y-2)11 b(Multitasking)f(Programmers')f(Man)o(ual.)k
(Publication)e(SN-2026C,)f(Cra)o(y)h(Researc)o(h)h(Inc.,)g(Mendota)233
267 y(Heigh)o(ts,)h(MN,)h(Marc)o(h)g(1989.)98 342 y([9])41
b(UNICOS)22 b(F)m(ortran)e(Library)g(Reference)j(Man)o(ual.)37
b(Publication)20 b(SR-2079)f(5.0,)i(Cra)o(y)g(Researc)o(h)g(Inc.,)233
417 y(Mendota)14 b(Heigh)o(ts,)f(MN,)h(F)m(ebruary)g(1989.)77
492 y([10])26 b(UNICOS)12 b(Math)g(and)f(Scien)o(ti\014c)i(Library)e
(Reference)i(Man)o(ual.)g(Publication)e(SR-2081)f(5.0,)h(Cra)o(y)g
(Researc)o(h)233 566 y(Inc.,)i(Mendota)h(Heigh)o(ts,)g(MN,)f(Marc)o(h)i
(1989.)77 641 y([11])23 b(J.)16 b(K.)f(Cullum)e(and)j(R.)e(A.)i
(Willough)o(b)o(y)m(.)k Fs(L)n(anczos)d(A)o(lgorithm)e(for)h(L)n(ar)n
(ge)g(Symmetric)g(Eigenvalue)h(Com-)233 716 y(putations)p
Fv(.)h(V)m(olume)12 b(1)i(Theory)m(,)f(Birkh\177)-21
b(auser,)14 b(Boston,)g(1985.)77 791 y([12])23 b(S.)10
b(Deerw)o(ester,)j(S.)d(T.)g(Dumais,)e(G.)i(W.)f(F)m(urnas,)i(T.)e(K.)h
(Landauer,)h(and)f(R.)g(Harshman.)h(Indexing)f(b)o(y)g(laten)o(t)233
865 y(seman)o(tic)15 b(analysis.)22 b Fs(Journal)16 b(of)h(the)g(A)o
(meric)n(an)f(So)n(ciety)g(for)g(Information)h(Scienc)n(e)p
Fv(,)f(41\(6\):391{407,)233 940 y(1990.)77 1015 y([13])23
b(J.)14 b(Dongarra,)e(J.)i(Bunc)o(h,)g(C.)f(Moler,)g(and)g(G.)g(W.)g
(Stew)o(art.)18 b Fs(LINP)m(A)o(CK)c(Users')g(Guide)p
Fv(.)k(SIAM,)13 b(Philadel-)233 1089 y(phia,)f(1979.)77
1164 y([14])23 b(J.)12 b(Dongarra,)f(J.)h(Du)g(Croz,)h(S.)e(Hammarling)
o(,)e(and)j(R.)f(Hanson.)16 b(An)c(extended)i(set)f(of)e(F)m(ortran)h
(basic)g(linear)233 1239 y(algebra)h(subprograms.)k Fs(A)o(CM)e(T)m(r)n
(ans.)f(on)h(Math.)g(Softwar)n(e)p Fv(,)e(14\(1\):1{17,)f(1988.)77
1314 y([15])23 b(J.)15 b(Dongarra)e(and)i(D.)f(Sorensen.)21
b(A)15 b(fast)f(algorithm)e(for)i(the)h(symmetric)e(eigen)o(v)n(alue)h
(problem.)19 b Fs(SIAM)c(J.)233 1388 y(Sci.)f(Stat.)h(Comput.)p
Fv(,)e(8\(2\):s139{s154,)f(1987.)77 1463 y([16])23 b(I.)18
b(S.)f(Du\013,)i(R.)e(G.)g(Grimes,)g(and)h(J.)g(G.)f(Lewis.)30
b(Sparse)19 b(matrix)d(test)j(problems.)30 b Fs(A)o(CM)18
b(T)m(r)n(ans.)g(Math.)233 1538 y(Softwar)n(e)p Fv(,)12
b(15:1{14,)g(1989.)77 1612 y([17])23 b(S.)17 b(T.)g(Dumais,)e(G.)i(W.)f
(F)m(urnas,)i(and)f(T.)f(K.)h(Landauer.)29 b(Using)17
b(laten)o(t)g(seman)o(tic)f(analysis)h(to)g(impro)o(v)o(e)233
1687 y(access)e(to)f(textual)g(information.)h(In)f Fs(Pr)n(o)n(c)n(e)n
(e)n(dings)h(of)f(Computer)h(Human)h(Inter)n(action)e('88)p
Fv(,)g(1988.)77 1762 y([18])23 b(K.)14 b(Galliv)n(an,)c(W.)j(Jalb)o(y)m
(,)f(and)i(U.)f(Meier.)18 b(The)d(use)f(of)f(BLAS3)h(in)f(linear)h
(algebra)f(on)g(a)h(parallel)e(pro)q(cessor)233 1837
y(with)h(a)h(hierarc)o(hical)g(memory)m(.)h Fs(SIAM)g(J.)f(Sci.)h
(Stat.)g(Comput.)p Fv(,)e(18\(6\):1079{1084,)d(1987.)77
1911 y([19])23 b(G.)14 b(Golub)g(and)g(W.)g(Kahan.)21
b(Calculating)13 b(the)i(singular)f(v)n(alues)h(and)f(pseudoin)o(v)o
(erse)i(of)e(a)h(matrix.)k Fs(SIAM)233 1986 y(J.)14 b(Numer.)g(A)o
(nal.)p Fv(,)f(2\(3\):205{224,)e(1965.)77 2061 y([20])23
b(G.)12 b(H.)g(Golub,)g(F.)g(T.)g(Luk,)g(and)h(M.)f(L.)g(Ov)o(erton.)17
b(A)c(blo)q(c)o(k)f(Lanczos)h(metho)q(d)f(for)g(computing)f(the)j
(singular)233 2135 y(v)n(alues)h(and)h(corresp)q(onding)h(singular)e(v)
o(ectors)i(of)e(a)g(matrix.)22 b Fs(A)o(CM)16 b(T)m(r)n(ansactions)h
(on)g(Mathematic)n(al)233 2210 y(Softwar)n(e)p Fv(,)12
b(7\(2\):149{169,)f(1981.)77 2285 y([21])23 b(G.)12 b(Golub)f(and)i(C.)
f(Reinsc)o(h.)k(Singular)11 b(v)n(alue)h(decomp)q(osition)f(and)i
(least)f(squares)i(solutions.)h(In)e Fs(Handb)n(o)n(ok)233
2360 y(for)h(A)o(utomatic)h(Computation)g(II,)g(Line)n(ar)f(A)o(lgebr)n
(a)p Fv(,)f(Springer-V)m(erlag,)g(New)h(Y)m(ork,)f(1971.)77
2434 y([22])23 b(G.)15 b(H.)g(Golub,)g(and)g(R.)g(R.)f(Underw)o(o)q(o)q
(d.)24 b(The)16 b(blo)q(c)o(k)g(Lanczos)g(metho)q(d)f(for)g(computing)f
(eigen)o(v)n(alues.)23 b(In)233 2509 y Fs(Mathematic)n(al)15
b(Softwar)n(e)f(III)p Fv(,)f(Academic)g(Press,)i(New)g(Y)m(ork,)e
(361{377,)e(1977.)77 2584 y([23])23 b(G.)15 b(Golub)h(and)f(C.)h(V)m
(an)g(Loan.)24 b Fs(Matrix)16 b(Computations)p Fv(,)h(Second)g
(Edition,)e(Johns)i(Hopkins,)f(Baltimore,)233 2659 y(1989.)977
2762 y(49)p eop
%%Page: 50 50
50 49 bop 77 43 a Fv([24])23 b(J.)14 b(Grcar.)k(PhD)c(thesis,)g(Univ)o
(ersit)o(y)g(of)f(Illinois)g(at)g(Urbana-Champaign,)e(Urbana,)j(IL,)f
(1981.)77 118 y([25])23 b(M.)14 b(R.)f(Hestenes.)20 b(In)o(v)o(ersion)
14 b(of)f(matrices)h(b)o(y)f(biorthogonalization)f(and)i(related)g
(results.)19 b Fs(J.)c(So)n(c.)g(Indust.)233 193 y(Appl.)f(Math.)p
Fv(,)g(6:51{90,)d(1958.)77 267 y([26])23 b(S.)13 b(Kaniel.)k(Estimates)
c(for)g(some)f(computational)f(tec)o(hniques)k(in)e(linear)g(algebra.)k
Fs(Math.)d(Comp.)p Fv(,)f(20:369{)233 342 y(378,)f(1966.)77
417 y([27])23 b(C.)14 b(Lanczos.)k Fs(Line)n(ar)d(Di\013er)n(ential)g
(Op)n(er)n(ators)p Fv(.)i(V)m(an)c(Nostrand,)h(New)g(Y)m(ork,)f(1961.)
77 492 y([28])23 b(D.)12 b(G.)h(Luen)o(b)q(erger.)18
b Fs(Intr)n(o)n(duction)c(to)g(Line)n(ar)g(and)h(Nonliner)e(Pr)n(o)n
(gr)n(amming)p Fv(.)j(Addison-W)m(esley)m(,)c(Reading,)233
566 y(MA,)h(1973.)77 641 y([29])23 b(S.)c(Lo,)h(B.)f(Phillip)q(e,)g
(and)f(A.)h(Sameh.)33 b(A)19 b(m)o(ultipro)q(cessor)g(algorithm)d(for)j
(the)g(symmetric)f(tridiagonal)233 716 y(eigen)o(v)n(alue)13
b(problem.)k Fs(SIAM)e(J.)f(Sci.)h(Stat.)g(Comput.)p
Fv(,)e(8\(2\):s155{s165,)f(1987.)77 791 y([30])23 b(R.)13
b(S.)h(Martin)f(and)h(J.)g(H.)f(Wilkinson.)k(The)d(implicit)d(QL)j
(Algorithm.)i Fs(Num.)e(Math.)p Fv(,)g(12:377{383,)d(1968.)77
865 y([31])23 b(L.)16 b(Mirsky)m(.)24 b(Symmetric)14
b(gage)i(functions)g(and)g(unitarilly)f(in)o(v)n(arian)o(t)f(norms.)24
b Fs(Quart.J.)16 b(Math)p Fv(,)h(11:50{59,)233 940 y(1960.)77
1015 y([32])23 b(C.)13 b(C.)f(P)o(aige.)k(Error)d(analysis)f(of)g(the)i
(Lanczos)f(algorithms)e(for)h(tridiagonalizing)f(a)h(symmetric)f
(matrix.)j Fs(J.)233 1089 y(Inst.)g(Math.)h(Appl.)p Fv(,)e(18:341{349,)
e(1976.)77 1164 y([33])23 b(B.)14 b(N.)g(P)o(arlett.)k
Fs(The)d(Symmetric)f(Eigenvalue)i(Pr)n(oblem)p Fv(.)h(Pren)o(tice)e
(Hall,)e(Englew)o(o)q(o)q(d)g(Cli\013s,)g(NJ,)h(1980.)77
1239 y([34])23 b(B.)15 b(N.)f(P)o(arlett)h(and)g(D.)f(S.)g(Scott.)21
b(The)15 b(Lanczos)g(algorithm)d(with)j(selectiv)o(e)h
(reorthogonalization.)j Fs(Math.)233 1314 y(Comp.)p Fv(,)13
b(33:217{238,)e(1979.)77 1388 y([35])23 b(G.)12 b(P)o(eters)i(and)e(J.)
h(H.)f(Wilkinson.)i(In)o(v)o(erse)g(iteration,)e(ill-conditioned)e
(equations)j(and)f(Newton's)h(metho)q(d.)233 1463 y Fs(SIAM)i(R)n
(eview)p Fv(,)e(21\(3\):339{360,)e(1979.)77 1538 y([36])23
b(H.)13 b(Rutishauser.)k(Computational)10 b(Asp)q(ects)15
b(of)d(F.L.)h(Bauer's)g(Sim)o(ultaneous)e(Iteration)i(Metho)q(d.)18
b Fs(Numer.)233 1612 y(Math.)p Fv(,)13 b(13:4{13,)f(1969.)77
1687 y([37])23 b(H.)14 b(Rutishauser.)21 b(Sim)o(ultaneous)13
b(iteration)h(metho)q(d)g(for)g(symmetric)f(matrices.)20
b Fs(Numer.)15 b(Math.)p Fv(,)f(16:205{)233 1762 y(223,)e(1970.)77
1837 y([38])23 b(Y.)15 b(Saad.)21 b(On)16 b(the)g(rates)g(of)e(con)o(v)
o(ergence)j(of)e(the)h(Lanczos)f(and)g(the)h(blo)q(c)o(k-Lanczos)g
(metho)q(ds.)21 b Fs(SIAM)16 b(J.)233 1911 y(Numer.)e(A)o(nal.)p
Fv(,)f(17:687{706,)e(1980.)77 1986 y([39])23 b(Y.)13
b(Saad.)i(Krylo)o(v)d(subspace)i(metho)q(ds)f(on)f(sup)q(ercomputers.)
17 b Fs(SIAM)d(J.)g(Sci.)f(Stat.)h(Comput.)p Fv(,)e(10\(6\):1200{)233
2061 y(1232,)g(1989.)77 2135 y([40])23 b(A.)11 b(H.)h(Sameh)e(and)h(J.)
h(A.)f(Wisniewski.)j(A)d(trace)i(minim)o(izatio)o(n)c(algorithm)g(for)i
(the)h(generalized)h(eigen)o(v)n(alue)233 2210 y(problem.)j
Fs(SIAM)g(J.)e(Numer.)g(A)o(nal.)p Fv(,)f(19\(6\):1243{1259,)e(1982.)77
2285 y([41])23 b(J.)17 b(A.)g(Scales,)i(P)m(.)d(Do)q(c)o(hery)m(,)i
(and)f(A.)g(Gerszternk)o(orn.)30 b(Regularization)16
b(of)h(nonlinear)f(in)o(v)o(erse)i(problems:)233 2360
y(imaging)11 b(the)j(near-surface)h(w)o(eathering)f(la)o(y)o(er.)k
Fs(Inverse)d(Pr)n(oblems)p Fv(,)e(6\(1\):115{131,)e(1990.)77
2434 y([42])23 b(J.)13 b(A.)g(Scales)h(and)f(A.)g(Gerszternk)o(orn.)19
b(Robust)13 b(metho)q(ds)g(in)g(in)o(v)o(erse)h(theory)m(.)j
Fs(Inverse)e(Pr)n(oblems)p Fv(,)d(4:1071{)233 2509 y(1091,)g(1988.)77
2584 y([43])23 b(H.)14 b(Simon.)i(Analysis)e(of)f(the)i(symmetric)d
(Lanczos)j(algorithm)d(with)h(reorthogonalization)g(metho)q(ds.)18
b Fs(Lin.)233 2659 y(A)o(lg.)c(and)h(Its)g(Appl.)p Fv(,)e(61:101{131,)e
(1984.)977 2762 y(50)p eop
%%Page: 51 51
51 50 bop 77 43 a Fv([44])23 b(B.)15 b(Smith,)e(J.)h(Bo)o(yce,)h(J.)g
(Dongarra,)f(B.)g(Garb)q(o)o(w,)g(Y.)g(Ik)o(eb)q(e,)i(V.)e(Klema,)f
(and)i(C.)f(Moler.)20 b Fs(Matrix)c(Eigen-)233 118 y(system)e(R)n
(outines)i(-)f(EISP)m(A)o(CK)f(Guide)p Fv(.)19 b(Springer,)14
b(Berlin,)f(2nd)h(ed.,)f(1976.)77 193 y([45])23 b(R.)13
b(R.)g(Underw)o(o)q(o)q(d.)19 b(An)14 b(iterativ)o(e)g(blo)q(c)o(k)f
(Lanczos)i(metho)q(d)e(for)g(the)i(solution)e(of)g(large)h(sparse)h
(symmetric)233 267 y(eigenproblems.)i(PhD)d(thesis,)g(Stanford)g(Univ)o
(ersit)o(y)m(,)f(Ma)o(y)g(1975.)77 342 y([46])23 b(R.)13
b(S.)h(V)m(arga.)j Fs(Matrix)d(Iter)n(ative)g(A)o(nalysis)p
Fv(.)k(Pren)o(tice)d(Hall,)e(Englew)o(o)q(o)q(d)g(Cli\013s,)g(NJ,)h
(1962.)77 417 y([47])23 b(J.)14 b(H.)f(Wilkinson.)k Fs(The)e(A)o(lgebr)
n(aic)f(Eigenvalue)h(Pr)n(oblem)p Fv(.)j(Clarendon)13
b(Press,)i(Oxford,)f(1965.)77 492 y([48])23 b(J.)15 b(H.)g(Wilkinson.)k
Fs(Inverse)d(iter)n(ation)f(in)h(the)n(ory)f(and)i(in)f(pr)n(actic)n(e)
p Fv(.)k(in)15 b(Symp)q(osia)e(Mathematica)g(X,)i(Aca-)233
566 y(demic)e(Press,)i(London,)e(361{379,)e(1972.)77
641 y([49])23 b(J.)15 b(A.)g(Wisniewski.)22 b(On)15 b(solving)f(the)i
(large)f(sparse)i(generalized)f(eigen)o(v)n(alue)e(problem.)21
b(PhD)15 b(thesis,)i(The)233 716 y(Univ)o(ersit)o(y)d(of)f(Illinois)f
(at)i(Urbana-Champaign,)c(Urbana,)k(IL,)f(F)m(ebruary)h(1981.)977
2762 y(51)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF