%!PS-Adobe-2.0 %%Creator: dvips 5.528 Copyright 1986, 1994 Radical Eye Software %%Title: temp.dvi %%CreationDate: Tue May 30 10:24:46 1995 %%Pages: 18 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSCommandLine: dvips -o temp.ps temp %DVIPSParameters: dpi=300, comments removed %DVIPSSource: TeX output 1995.05.30:1024 %%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 TeXDict begin 40258431 52099146 1000 300 300 (/tmp_mnt/Net/charlotte/ftp/pub/mpi/mpi-1.jun95/temp.dvi) @start /Fa 2 63 df<0000038000000F0000003C000000F0000003C000000F0000003C 000000F0000003C000000F0000003C000000F0000000F00000003C0000000F00000003C0 000000F00000003C0000000F00000003C0000000F00000003C0000000F00000003801918 7D9520>60 D 62 D E /Fb 2 55 df0 D<0003000300060006000C000C00 180018003000300060006000C000C00180018003000300060006000C000C001800180030 00300060006000C0004000101E7B9600>54 D E /Fc 6 94 df<07C018303018701C600C 600CE00EE00EE00EE00EE00EE00EE00EE00EE00E600C600C701C30181C7007C00F157F94 12>48 D<03000700FF000700070007000700070007000700070007000700070007000700 07000700070007007FF00C157E9412>I<0F8030E040708030C038E03840380038007000 70006000C00180030006000C08080810183FF07FF0FFF00D157E9412>I61 D91 D93 D E /Fd 6 116 df<60F0F070101020204040040A7D830A>59 D<003E000C000C000C000C0018001800180018073018F0307060706060C060C060C06080 C080C480C4C1C446C838700F177E9612>100 D<03000380030000000000000000000000 00001C002400460046008C000C0018001800180031003100320032001C0009177F960C> 105 D<383C1E0044C6630047028100460301008E0703000C0603000C0603000C06060018 0C0600180C0620180C0C20180C0C4030180440301807801B0E7F8D1F>109 D<383C0044C6004702004602008E06000C06000C06000C0C00180C00180C401818401818 80300880300F00120E7F8D15>I<07C00C201870187038001E000FC003E000606060E060 C0C0C1803F000C0E7E8D10>115 D E /Fe 1 90 df89 D E /Ff 16 118 df<387C7E7E3E0E1E1C78F0 60070B798416>44 D<1FE0003FF0007FF800783C00300E00000E00000E0003FE001FFE00 3E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E9116>97 D<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F000700778073E0E1FFC0FF803 F010127D9116>99 D<003F00007F00003F0000070000070000070000070003C7000FF700 1FFF003C1F00780F00700700E00700E00700E00700E00700E00700E00700700F00700F00 3C1F001FFFE00FE7F007C7E014197F9816>I<03E00FF81FFC3C1E780E7007E007FFFFFF FFFFFFE000E000700778073C0F1FFE0FFC03F010127D9116>I<001F00007F8000FF8001 E78001C30001C00001C0007FFF00FFFF00FFFF0001C00001C00001C00001C00001C00001 C00001C00001C00001C00001C00001C00001C0003FFE007FFF003FFE0011197F9816>I< 018003C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C001C0 01C001C001C001C001C07FFFFFFF7FFF101A7D9916>105 D108 DI<7E3C00FEFE007FFF000F 87800F03800E03800E03800E03800E03800E03800E03800E03800E03800E03800E03807F C7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C1E00780F00700700E00380 E00380E00380E00380E00380F00780700700780F003C1E001FFC000FF80003E00011127E 9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E00700E00700E00700E00 700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E00000E00000E00000E00 000E00007FC000FFE0007FC000141B809116>I114 D<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE0 0EF00EF81EFFFCFFF8C7E00F127D9116>I<0300000700000700000700000700007FFF00 FFFF00FFFF00070000070000070000070000070000070000070000070100070380070380 07038007870003FE0001FC0000F80011177F9616>I<7E1F80FE3F807E1F800E03800E03 800E03800E03800E03800E03800E03800E03800E03800E03800E03800E0F800FFFF007FB F803E3F01512809116>I E /Fg 43 121 df<00E001C0038007000E000E001C001C0038 00380038007000700070007000E000E000E000E000E000E000E000E000E000E000E000E0 0070007000700070003800380038001C001C000E000E000700038001C000E00B2A7E9E10 >40 DI<0006000000060000000600000006 000000060000000600000006000000060000000600000006000000060000000600000006 0000FFFFFFE0FFFFFFE00006000000060000000600000006000000060000000600000006 00000006000000060000000600000006000000060000000600001B1C7E9720>43 D<010007003F00FF00C70007000700070007000700070007000700070007000700070007 0007000700070007000700070007000700FFF8FFF80D1C7C9B15>49 D<7FFFFFC0FFFFFFE0000000000000000000000000000000000000000000000000000000 0000000000FFFFFFE07FFFFFC01B0C7E8F20>61 D<001C0000003E0000003E0000002E00 00006700000067000000E7800000C7800000C3800001C3C0000183C0000181C0000381E0 000381E0000700F0000700F0000600F0000E0078000FFFF8000FFFF8001C003C001C003C 0018003C0038001E0038001E0070001F0070000F0070000F00E0000780191D7F9C1C>65 D<003FC000FFF003C0F00780300F00001E00003C00003C0000780000780000780000F000 00F00000F00000F00000F00000F00000F00000F00000F000007800007800007800003C00 003C00001E00000F000807801803C07800FFF0003F80151F7D9D1B>67 DIII<003F8001FF F003C0F80780380F00181E00003C00003C0000780000780000780000F00000F00000F000 00F00000F00000F00000F007F8F007F8F000387800387800387800383C00383C00381E00 380F003807803803C0F801FFF0003F80151F7D9D1C>III76 DII<003F000001FFE00003FFF00007C0F8000F807C001E001E003E001F003C000F00 780007807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0 F00003C0F00003C0F80007C078000780780007807C000F803C000F003E001F001F003E00 0F807C0007C0F80003FFF00001FFE000003F00001A1F7E9D1F>II82 D<03F8000FFE001C0F00380700700300600000E00000E00000E00000E00000F000007800 007F00003FE0001FFC0007FE0001FF00001F800007800003C00003C00001C00001C00001 C00001C0C00180E00380F007007C0E001FFC0007F000121F7E9D17>III87 D91 D93 D<0FC03FF07FF87038401C001C001C00FC0FFC3FFC781CE01CE01CE01CF07C7FFC7FDC3F 1C0E127E9114>97 DI<07E00FF81FFC3C1C70047000E000E000E000E000E000E000700070043C1C1FFC0FF8 07E00E127E9112>I<000E000E000E000E000E000E000E000E000E000E000E0F8E1FEE3F FE7C3E700E700EE00EE00EE00EE00EE00EE00EF00E701E7C3E3FFE1FEE0F8E0F1D7E9C15 >I<07C01FE03FF078787018601CFFFCFFFCFFFCE000E000E000700070043C1C3FFC1FF8 07E00E127E9112>I<00FC01FC03FC07000E000E000E000E000E000E000E00FFE0FFE00E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E1D809C0D >I<03C3C00FFFC01FFFC01C3800381C00381C00381C00381C00381C001C38001FF8001F F0003BC0003800003800001FFC001FFF003FFF80700780E001C0E001C0E001C0F003C07C 0F803FFF001FFE0007F800121B7F9115>III108 DII<03F0000FFC001FFE00 3C0F00780780700380E001C0E001C0E001C0E001C0E001C0F003C07003807807803C0F00 1FFE000FFC0003F00012127F9115>I114 D<1FC03FF07FF0F030E000E0 00F0007F003FC01FE000F0003800388038F078FFF07FE01FC00D127F9110>I<1C001C00 1C001C001C001C00FFE0FFE01C001C001C001C001C001C001C001C001C001C001C001C00 1C201FF00FF007C00C187F970F>II<7003807807003C0E001C1C000E1C 0007380003F00001E00001C00001E00003F0000738000E18000E1C001C0E003807007003 80F003C01212809113>120 D E /Fh 37 123 df<007E0001C1800301800703C00E03C0 0E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8 151D809C17>12 D<004000800100020006000C000C001800180030003000700060006000 6000E000E000E000E000E000E000E000E000E000E000E000E00060006000600070003000 3000180018000C000C00060002000100008000400A2A7D9E10>40 D<800040002000100018000C000C000600060003000300038001800180018001C001C001 C001C001C001C001C001C001C001C001C001C0018001800180038003000300060006000C 000C00180010002000400080000A2A7E9E10>I<60F0F0701010101020204080040C7C83 0C>44 DI<00010003000600060006000C000C000C0018001800 180030003000300060006000C000C000C0018001800180030003000300060006000C000C 000C00180018001800300030003000600060006000C000C00010297E9E15>47 D<03C00C301818300C300C700E60066006E007E007E007E007E007E007E007E007E007E0 07E007E007E00760066006700E300C300C18180C3007E0101D7E9B15>I<60F0F0600000 000000000000000060F0F06004127C910C>58 D<60F0F0600000000000000000000060F0 F0701010101020204080041A7C910C>I73 D78 D<003F800000E0E0000380380007001C 000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001 E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003 C0380003803C0007801C0007000E000E0007001C000380380000E0E000003F80001B1E7E 9C20>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020 800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 001F800003FFFC001B1C7F9B1E>84 DI<1FC0003070 00783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C00E01C40E01C 40E01C40603C40304E801F870012127E9115>97 DI<07E00C301878307870306000E000E000E000E000E000E0006000700430 0418080C3007C00E127E9112>I<003F0000070000070000070000070000070000070000 070000070000070000070003E7000C1700180F00300700700700600700E00700E00700E0 0700E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>I< 03E00C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E0 0F127F9112>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I< 00038003C4C00C38C01C3880181800381C00381C00381C00381C001818001C38000C3000 13C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0C000C0C000C0 6001803003001C0E0007F800121C7F9215>II<18003C003C0018000000000000000000000000000000FC001C001C001C001C 001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I107 DIII<03F0000E1C0018 0600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C060018070038030 03001806000E1C0003F00012127F9115>II114 D<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010 D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C 001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>IIII121 D<7FFC70386038407040F040E041C003C0038007000F040E041C043C0C380870087038FF F80E127F9112>I E /Fi 45 122 df<007000E001C003C0078007000F000E001E001C00 3C003C00380078007800780078007000F000F000F000F000F000F000F000F000F000F000 F000F000F000F0007000780078007800780038003C003C001C001E000E000F0007000780 03C001C000E000700C327DA413>40 DI45 DI<00C001C007C0FFC0FFC0FBC003C003C003C003C003C003C0 03C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0 03C0FFFFFFFFFFFF10227CA118>49 D<03F0000FFC001FFE003C1F003007807007C06003 C0E003E0C001E04001E04001E00001E00001E00001E00003C00003C0000780000780000F 00001E00003C0000780000F00001E00001C0000380000700000E00001C00003800007000 00FFFFE0FFFFE0FFFFE013227EA118>I<01F00007FC001FFF003E0F003807807003C020 03C02003C00003C00003C00003C0000780000780000F00001E0003FC0003F80003FE0000 0F000007800003C00003C00001E00001E00001E00001E00001E08001E0C003C0E003C070 07803C0F801FFF000FFC0003F00013237EA118>I<001F00001F00002F00002F00006F00 00EF0000CF0001CF0001CF00038F00038F00078F00070F000F0F000E0F001E0F003C0F00 3C0F00780F00780F00F00F00FFFFF8FFFFF8FFFFF8000F00000F00000F00000F00000F00 000F00000F00000F00000F0015217FA018>I<3FFF803FFF803FFF803C00003C00003C00 003C00003C00003C00003C00003C00003C00003CF8003FFE003FFF003F0F803E07803C03 C03803C00001E00001E00001E00001E00001E00001E00001E04003C04003C0E003C07007 807C1F003FFE000FFC0003F00013227EA018>I<007E0001FF0003FF0007C1000F00001E 00001E00003C00003C000078000078000078F800F1FE00F7FF00FF0F80FC0780F803C0F8 03C0F801C0F001E0F001E0F001E0F001E0F001E07001E07001E07801E07803C03803C03C 03801C07801F0F000FFE0007FC0001F00013237EA118>II58 D<001F0000001F0000003F8000003F8000003B8000 007BC0000073C0000071C00000F1E00000F1E00000E0E00001E0F00001E0F00001C0F000 03C0780003C078000380780007803C0007803C0007003C000F001E000F001E000FFFFE00 1FFFFF001FFFFF001C000F003C0007803C00078038000780780003C0780003C0700003C0 F00001E0F00001E0E00001E01B237EA220>65 D<000FF000007FFC0000FFFF0001F01F00 03C00700078000000F0000001E0000003E0000003C0000003C0000007800000078000000 78000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000 F00000007800000078000000780000003C0000003C0000003E0000001E0000000F000000 0780008003C0038001F00F8000FFFF00007FFC00000FF00019257DA31F>67 DIII<000FF000003FFE0000FFFF8001F80F8003E0038007800000 0F0000001E0000001E0000003C0000003C000000780000007800000078000000F0000000 F0000000F0000000F0000000F0000000F0000000F000FFC0F000FFC0F000FFC0780003C0 780003C0780003C03C0003C03C0003C01E0003C01E0003C00F0003C0078003C003E003C0 01F807C000FFFFC0003FFF00000FF8001A257DA321>I73 D76 DI80 D82 D<00FE0003FFC007FFE00F81E01E00603C00 003C00007800007800007800007800007800007C00003C00003F00001FC0000FFC0007FF 0001FF80003FC00007E00001F00000F00000F80000780000780000780000780000780000 78C000F0E000F0F801E07E07C03FFF800FFF0001FC0015257EA31B>II<07E01FF8 3FFC381E201E000F000F000F000F00FF07FF1FFF3E0F780FF00FF00FF00FF00FF83F7FFF 3FEF1F8F10167E9517>97 D<01FC0007FF000FFF801F03803C0180780000780000700000 F00000F00000F00000F00000F00000F000007800007800007800003C00401F03C00FFFC0 07FF8001FC0012167E9516>99 D<0003C00003C00003C00003C00003C00003C00003C000 03C00003C00003C00003C00003C00003C003E3C00FFBC01FFFC03F0FC03C07C07803C078 03C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07803C07803C03C07C03E 0FC01FFFC00FFBC003E3C012237EA219>I<03F00007FC001FFE003E0F003C0780780380 780380F001C0FFFFC0FFFFC0FFFFC0F00000F00000F000007000007800007800003C0080 1F07800FFF8007FF0001F80012167E9516>I<003F00FF01FF03C0038007800780078007 800780078007800780FFF8FFF8FFF8078007800780078007800780078007800780078007 8007800780078007800780078007800780102380A20F>I<01F07807FFF80FFFF81F1F00 1E0F003C07803C07803C07803C07803C07801E0F001F1F000FFE001FFC0019F000380000 3800003C00001FFE001FFFC01FFFE03FFFF07801F07800F8F00078F00078F00078F00078 7800F03E03E01FFFC00FFF8001FC0015217F9518>III108 D110 D<01FC0007FF000FFF801F07C03C01 E07800F07800F0700070F00078F00078F00078F00078F00078F000787800F07800F07C01 F03E03E01F07C00FFF8007FF0001FC0015167F9518>II<03E3C007FBC00FFFC01F0FC03C07C07C03C0 7803C0F803C0F003C0F003C0F003C0F003C0F003C0F003C0F803C07803C07803C03C07C0 3F0FC01FFFC00FFBC003E3C00003C00003C00003C00003C00003C00003C00003C00003C0 0003C00003C012207E9519>II<07F01FFC3FFE3C0E 7806780078007C003F003FF01FF80FFC01FE001F000F000F000FC00FF81EFFFE3FFC0FF0 10167F9513>I<0F000F000F000F000F000F00FFF8FFF8FFF80F000F000F000F000F000F 000F000F000F000F000F000F000F000F000F080F1C07FC07F803E00E1C7F9B12>III I121 D E /Fj 10 116 df<70F8F8F87005057C840D>58 D<70F8FCFC74040404080810102040 060E7C840D>I<000001C00000078000001E00000078000001E00000078000000E000000 38000000F0000003C000000F0000003C000000F0000000F00000003C0000000F00000003 C0000000F0000000380000000E0000000780000001E0000000780000001E000000078000 0001C01A1A7C9723>I62 D<00F1800389C00707800E03801C03803C038038070078 0700780700780700F00E00F00E00F00E00F00E10F01C20F01C20703C20705C40308C400F 078014147E9318>97 D<0000780003F80000700000700000700000700000E00000E00000 E00000E00001C00001C000F1C00389C00707800E03801C03803C03803807007807007807 00780700F00E00F00E00F00E00F00E10F01C20F01C20703C20705C40308C400F07801520 7E9F18>100 D<00E001E001E000C000000000000000000000000000000E001300238043 80438043808700070007000E000E001C001C001C20384038403840388019000E000B1F7E 9E10>105 D<1E07C07C00231861860023A032030043C034030043803803804380380380 87007007000700700700070070070007007007000E00E00E000E00E00E000E00E00E000E 00E01C101C01C01C201C01C038201C01C038401C01C0184038038018801801800F002414 7E9328>109 D<1E07802318C023A06043C0704380704380708700E00700E00700E00700 E00E01C00E01C00E01C00E03821C03841C07041C07081C03083803101801E017147E931B >I<007C018203010603060706060E00078007F803FC01FE001F00077007F006F006E004 400820301FC010147E9315>115 D E /Fk 12 104 df 0 D<400004C0000C6000183000301800600C00C006018003030001860000CC0000780000 300000300000780000CC000186000303000601800C00C0180060300030600018C0000C40 000416187A9623>2 D<01800180018001800180C183F18F399C0FF003C003C00FF0399C F18FC1830180018001800180018010147D9417>I<03C00FF01FF83FFC7FFE7FFEFFFFFF FFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010127D9317>15 D<000000C0000003C000000F0000003C000000F0000003C00000070000001C0000007800 0001E00000078000001E00000078000000E0000000780000001E0000000780000001E000 0000780000001C0000000700000003C0000000F00000003C0000000F00000003C0000000 C0000000000000000000000000000000000000000000000000000000007FFFFF80FFFFFF C01A247C9C23>20 DI<003FF800FFF803C0000700000C00001800003000 00300000600000600000C00000C00000C00000FFFFF8FFFFF8C00000C00000C000006000 006000003000003000001800000C000007000003C00000FFF8003FF8151C7C981E>50 D<00000C00000C0000180000180000300000300000600000600000C00000C00001800001 80000180000300000300000600000600000C00000C000018000018000030000030000060 0000600000C00000C0000180000180000300000300000600000600000600000C00000C00 00180000180000300000300000600000600000C00000400000162C7AA000>54 D62 D<00040000000C0000000C0000000C0000000C0000000C00 00000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C00 00000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C0000000C00 00000C0000000C0000FFFFFFE0FFFFFFE01B1C7C9B23>I<000F0038006000E001C001C0 01C001C001C001C001C001C001C001C001C001C001C001C001C0038007001E00F8001E00 0700038001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C000E0 00600038000F102D7DA117>102 DI E /Fl 25 90 df<3078F8787005057C840D>46 D<000C001C00FC0F3800380038 00380038003800700070007000700070007000E000E000E000E000E000E001C001C001C0 01C001C001C0038003C0FFFE0F1E7C9D17>49 D<0000600000600000E00001C00003C000 05C0000DC00009C00011C000238000438000C38000838001038002038004070008070018 0700100700200700400700FFFFF0000E00000E00000E00000E00000E00001C00001E0001 FFE0141E7E9D17>52 D<01803001FFE003FFC003FF0003FC000200000200000200000400 00040000040000047C000587000603800C01800801C00001C00001E00001E00001E00001 E07003C0F803C0F003C0E00380800780400700400E00201C0018700007C000141F7D9D17 >I<000F8000704000C0200180E00301E00701E00E00C01E00001C00003C000038000078 F800790E007A07007C0300F80380F80380F003C0F003C0F003C0F003C0F00780E00780E0 0780E00700E00F00600E00701C0030180018700007C000131F7C9D17>I<000010000000 1800000038000000380000007800000078000000FC000001BC0000013C0000033C000002 3C0000063C0000043E0000081E0000081E0000101E0000101E0000201E0000200F000040 0F0000400F0000FFFF0000800F0001000F80010007800200078002000780040007800400 07800C0007C03E0007C0FF807FFC1E207E9F22>65 D<0001F808000E0618003801380070 00F801E0007803C0007007800030078000300F0000301F0000301E0000303E0000203C00 00007C0000007C0000007C0000007C000000F8000000F8000000F8000000F8000000F800 00007800004078000080780000803C0000803C0001001C0002000E00020006000C000300 100001C0E000003F00001D217B9F21>67 D<07FFFFF8007C0078003C0038003C00180078 0018007800080078000800780008007800080078080800F0100000F0100000F0100000F0 300000FFF00000F0700001E0200001E0200001E0200001E0200001E0000801E0001003C0 001003C0001003C0002003C0002003C0006003C000C0078001C0078007C0FFFFFF801D1F 7E9E1F>69 D<07FFFFF8007C0078003C0038003C00180078001800780008007800080078 0008007800080078000800F0100000F0100000F0100000F0300000F0700000FFF00001E0 600001E0200001E0200001E0200001E0200001E0000003C0000003C0000003C0000003C0 000003C0000003C000000780000007C00000FFFE00001D1F7E9E1E>I<0001FC04000F03 0C003C009C0070007C00E0003C01C0003803800018078000180F0000181F0000181E0000 183E0000103C0000007C0000007C0000007C0000007C000000F8000000F8000000F8007F FCF80003E0780001E0780001E0780003C0780003C03C0003C03C0003C01C0003C00E0007 C007000B800380118001E06080003F80001E217B9F24>I<07FFC7FFC0007C00F800003C 007800003C007800007800F000007800F000007800F000007800F000007800F000007800 F00000F001E00000F001E00000F001E00000F001E00000FFFFE00000F001E00001E003C0 0001E003C00001E003C00001E003C00001E003C00001E003C00003C007800003C0078000 03C007800003C007800003C007800003C007800007800F000007C00F8000FFF8FFF80022 1F7E9E22>I<07FFE0007C00003C00003C00007800007800007800007800007800007800 00F00000F00000F00000F00000F00000F00001E00001E00001E00001E00001E00001E000 03C00003C00003C00003C00003C00003C00007800007C000FFFC00131F7F9E10>I<07FF F000007E0000003C0000003C000000780000007800000078000000780000007800000078 000000F0000000F0000000F0000000F0000000F0000000F0000001E0000001E0000001E0 000001E0000001E0008001E0010003C0010003C0010003C0030003C0020003C0060003C0 060007801E0007807C00FFFFFC00191F7E9E1C>76 D<07FC0000FFC0007C0000F800003C 00017800003C00017800004E0002F000004E0002F000004E0004F000004E0004F000004E 0008F000004E0008F00000870011E00000870011E00000870021E00000870021E0000087 0041E00000838041E00001038083C00001038083C00001038103C00001038203C0000101 C203C0000101C403C0000201C40780000201C80780000201C80780000201D00780000200 F00780000600E00780000600E00F00000F00C00F8000FFE0C1FFF8002A1F7E9E2A>I<07 FC01FFC0003E003E00003E001800003E001800004F001000004F00100000478010000047 8010000043C010000043C010000083C020000081E020000081E020000080F020000080F0 20000080782000010078400001007C400001003C400001003C400001001E400001001E40 0002000F800002000F800002000F80000200078000020007800006000380000600030000 0F00010000FFE0010000221F7E9E22>I<0003F800001E0E000038070000E0038001C001 C003C001E0078000E00F0000F00F0000F01E0000F01E0000F83E0000F83C0000F87C0000 F87C0000F87C0000F87C0000F8F80001F0F80001F0F80001F0F80001F0F80003E0780003 E0780003C0780007C07C0007803C000F003C001E001E001C000E0038000700F00003C3C0 0000FE00001D217B9F23>I<07FFFF00007C03C0003C01E0003C00F0007800F0007800F8 007800F8007800F8007800F8007800F000F001F000F001E000F003C000F0078000F00F00 00FFF80001E0000001E0000001E0000001E0000001E0000001E0000003C0000003C00000 03C0000003C0000003C0000003C000000780000007C00000FFFC00001D1F7E9E1F>I<07 FFFC00007C0700003C03C0003C01E0007801E0007801F0007801F0007801F0007801F000 7801E000F003E000F003C000F0078000F00F0000F03C0000FFF00001E0300001E0380001 E01C0001E01C0001E01C0001E01E0003C03E0003C03E0003C03E0003C03E0003C03E0003 C03E0207803E0407C01F04FFFC0F18000003E01F207E9E21>82 D<003F040060CC01803C 03801C03001C0700180600080E00080E00080E00080E00000F00000F80000FE00007FE00 03FF8001FFC0007FE00007E00001E00000E00000F00000F04000E04000E04000E04000E0 6000C0600180E00380F80300C60C0081F80016217D9F19>I<3FFFFFF03C0780F0300780 3060078030400F0010400F0010C00F0010800F0010800F0010800F0010001E0000001E00 00001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000003C00 00003C000000780000007800000078000000780000007800000078000000F0000001F800 007FFFE0001C1F7A9E21>IIII<03FFC0FFC0007F007E00003E003800001E003000001E00 2000000F004000000F008000000F81000000078200000007C600000003C400000003E800 000001F000000001F000000000F000000000F800000000F8000000017C000000023C0000 00043C0000000C1E000000081E000000101F000000200F000000400F800000C007800000 8007C000010003C000070003E0001F8007E000FFE01FFE00221F7F9E22>II E /Fm 10 58 df<1F00318060C04040C060C0 60C060C060C060C060C060C060404060C031801F000B107F8F0F>48 D<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C000C00FF8009107E 8F0F>I<1F00618040C08060C0600060006000C00180030006000C00102020207FC0FFC0 0B107F8F0F>I<1F00218060C060C000C0008001800F00008000400060C060C060804060 801F000B107F8F0F>I<0300030007000F000B001300330023004300C300FFE003000300 030003001FE00B107F8F0F>I<20803F002C002000200020002F00308020400060006000 60C06080C061801F000B107F8F0F>I<0780184030C060C06000C000CF00F080E040C060 C060C060406060C030801F000B107F8F0F>I<40007FE07FC08080808001000200040004 000C0008000800180018001800180018000B117E900F>I<1F00318060C060C060C07180 3F000F00338061C0C060C060C060404060801F000B107F8F0F>I<1F00318060C0C040C0 60C060C06040E021E01E600060004060C0608043003E000B107F8F0F>I E /Fn 39 124 df<0E1F3F3F1D0102020404081020C0080E779F0E>39 D<000100020004000800100020006000C0018001800300070006000E000C001C00180038 00380030007000700060006000E000E000C000C000C000C000C000C000C000C000C000C0 00C000C000C0004000600060002000100010000800102E79A113>I<0010000008000004 000006000002000003000003000003000001000001800001800001800001800001800001 80000180000380000380000380000300000300000300000700000700000600000600000E 00000C00000C00001C0000180000380000300000700000600000E00000C0000180000100 000300000600000C0000180000300000600000800000112E80A113>I<1C3C3C3C3C0404 08081020204080060E7D840E>44 D<7FF0FFE07FE00C037D8A10>I<70F8F8F0E005057B 840E>I<000F800030E000E07001C0700380300380380700380F00780F00780E00781E00 781E00703C00F03C00F03C00F03C00F07801E07801E07801E07801C07003C0F003C0F003 80F00780F00700700700700E00701C003038001870000FC000151F7C9D17>48 D<000200020006000E003C00DC031C001C0038003800380038007000700070007000E000 E000E000E001C001C001C001C003800380038003800780FFF80F1E7B9D17>I<001F0000 718000C0C00180C00380E00700E00F00E00F01E01E01E01E01E01E01E01E01C01C03C01C 03C01C03C01C07C01C0F800C0F8006378003C700000F00000E00000E00001C00601C00F0 3800F07000E0600080C0004380003E0000131F7B9D17>57 D<0000020000000600000006 0000000E0000001E0000001E0000003F0000002F0000004F0000004F0000008F0000010F 0000010F0000020F0000020F0000040F00000C0F0000080F0000100F0000100F0000200F 80003FFF800040078000C007800080078001000780010007800200078002000780060007 801E000F80FF807FF81D207E9F22>65 D<0000FE0200078186001C004C0038003C006000 3C00C0001C01C0001803800018070000180F0000181E0000101E0000103C0000003C0000 0078000000780000007800000078000000F0000000F0000000F0000000F0000000F00000 807000008070000080700001003800010038000200180004000C001800060020000381C0 0000FE00001F217A9F21>67 D<01FFFFFE001E001C001E000C001E0004001E0004003C00 04003C0004003C0004003C00040078080800780800007808000078180000F0300000FFF0 0000F0300000F0300001E0200001E0200001E0200001E0001003C0002003C0002003C000 4003C00040078000800780018007800100078007000F001F00FFFFFE001F1F7D9E1F>69 D<0000FC040007030C001C00980030007800E0007801C000380380003003800030070000 300E0000301E0000201E0000203C0000003C000000780000007800000078000000780000 00F0000000F000FFF0F0000780F0000780F0000F0070000F0070000F0070000F0070001E 0038001E0018003E001C002E000E00CC000383040000FC00001E217A9F23>71 D<01FFF0001F00001E00001E00001E00003C00003C00003C00003C000078000078000078 0000780000F00000F00000F00000F00001E00001E00001E00001E00003C00003C00003C0 0003C0000780000780000780000780000F8000FFF800141F7D9E12>73 D<01FFFF80001E00E0001E0070001E0038001E003C003C003C003C003C003C003C003C00 3C0078007800780078007800F0007800E000F003C000F00F0000FFFC0000F0000001E000 0001E0000001E0000001E0000003C0000003C0000003C0000003C0000007800000078000 0007800000078000000F800000FFF000001E1F7D9E1F>80 D<01FFFF00001E03C0001E00 E0001E0070001E0078003C0078003C0078003C0078003C0078007800F0007800F0007801 E0007801C000F0070000F01E0000FFF00000F0380001E01C0001E01E0001E00E0001E00F 0003C01E0003C01E0003C01E0003C01E0007803C0007803C0807803C0807803C100F801C 10FFF00C20000007C01D207D9E21>82 D<0007E040001C18C0003005800060038000C003 8001C00180018001000380010003800100038001000380000003C0000003C0000003F800 0001FF800001FFE000007FF000001FF0000001F800000078000000780000003800000038 0020003800200038002000300060007000600060006000E0007000C000E8038000C60600 0081F800001A217D9F1A>I<7FFC1FF807C003C00780010007800100078001000F000200 0F0002000F0002000F0002001E0004001E0004001E0004001E0004003C0008003C000800 3C0008003C00080078001000780010007800100078001000F0002000F0002000F0002000 F0004000F0004000700080007001000030020000380400000C18000007E000001D20779E 22>85 D<00F1800389C00707800E03801C03803C0380380700780700780700780700F00E 00F00E00F00E00F00E20F01C40F01C40703C40705C40308C800F070013147C9317>97 D<007E0001C1000300800E07801E07801C07003C0200780000780000780000F00000F000 00F00000F00000F0000070010070020030040018380007C00011147C9315>99 D<0000780003F80000700000700000700000700000E00000E00000E00000E00001C00001 C000F1C00389C00707800E03801C03803C0380380700780700780700780700F00E00F00E 00F00E00F00E20F01C40F01C40703C40705C40308C800F070015207C9F17>I<007C01C2 07010E011C013C013802780C7BF07C00F000F000F000F0007000700170023804183807C0 10147C9315>I<00007800019C00033C00033C000718000700000700000E00000E00000E 00000E00000E0001FFE0001C00001C00001C00001C000038000038000038000038000038 0000700000700000700000700000700000700000E00000E00000E00000E00000C00001C0 0001C0000180003180007B0000F300006600003C00001629829F0E>I<003C6000E27001 C1E00380E00700E00F00E00E01C01E01C01E01C01E01C03C03803C03803C03803C03803C 07003C07001C0F001C17000C2E0003CE00000E00000E00001C00001C00301C00783800F0 700060E0003F8000141D7E9315>I<01E0000FE00001C00001C00001C00001C000038000 038000038000038000070000070000071E000763000E81800F01C00E01C00E01C01C0380 1C03801C03801C0380380700380700380700380E10700E20700C20701C20700C40E00CC0 60070014207D9F17>I<00C001E001E001C000000000000000000000000000000E003300 230043804300470087000E000E000E001C001C001C003840388030807080310033001C00 0B1F7C9E0E>I<03C01FC0038003800380038007000700070007000E000E000E000E001C 001C001C001C0038003800380038007000700070007100E200E200E200E200640038000A 207C9F0C>108 D<1C0F80F0002630C318004740640C004780680E004700700E00470070 0E008E00E01C000E00E01C000E00E01C000E00E01C001C01C038001C01C038001C01C038 001C01C0708038038071003803806100380380E100380380620070070066003003003800 21147C9325>I<1C0F802630C04740604780604700704700708E00E00E00E00E00E00E00 E01C01C01C01C01C01C01C03843803883803083807083803107003303001C016147C931A >I<007C0001C3000301800E01C01E01C01C01E03C01E07801E07801E07801E0F003C0F0 03C0F003C0F00780F00700700F00700E0030180018700007C00013147C9317>I<01C1E0 02621804741C04781C04701E04701E08E01E00E01E00E01E00E01E01C03C01C03C01C03C 01C0380380780380700380E003C1C0072380071E000700000700000E00000E00000E0000 0E00001C00001C0000FFC000171D809317>I<1C1E002661004783804787804707804703 008E00000E00000E00000E00001C00001C00001C00001C00003800003800003800003800 0070000030000011147C9313>114 D<00FC030206010C030C070C060C000F800FF007F8 03FC003E000E700EF00CF00CE008401020601F8010147D9313>I<018001C00380038003 80038007000700FFF007000E000E000E000E001C001C001C001C00380038003800382070 4070407080708031001E000C1C7C9B0F>I<0E00C03300E02301C04381C04301C04701C0 8703800E03800E03800E03801C07001C07001C07001C07101C0E20180E20180E201C1E20 0C264007C38014147C9318>I<0E03803307802307C04383C04301C04700C08700800E00 800E00800E00801C01001C01001C01001C02001C02001C04001C04001C08000E300003C0 0012147C9315>I<0E00C1C03300E3C02301C3E04381C1E04301C0E04701C06087038040 0E0380400E0380400E0380401C0700801C0700801C0700801C0701001C0701001C060200 1C0F02000C0F04000E13080003E1F0001B147C931E>I<0383800CC4401068E01071E020 71E02070C040E00000E00000E00000E00001C00001C00001C00001C040638080F38080F3 8100E5810084C60078780013147D9315>I123 D E /Fo 66 123 df<007000F001E003C007800F001E001C003800380070007000700070 00E000E000E000E000E000E000E000E0007000700070007000380038001C001E000F0007 8003C001F000F000700C24799F18>40 D<6000F00078003C001E000F000780038001C001 C000E000E000E000E00070007000700070007000700070007000E000E000E000E001C001 C0038007800F001E003C007800F00060000C247C9F18>I<01C00001C00001C00001C000 C1C180F1C780F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C180 01C00001C00001C00001C00011147D9718>I<00600000F00000F00000F00000F00000F0 0000F00000F0007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F0 0000F00000600013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF00FF FF80FFFF807FFF0011047D8F18>I<3078FCFC78300606778518>I<000300000780000780 000F80000F00001F00001E00001E00003E00003C00007C0000780000780000F80000F000 01F00001E00003E00003C00003C00007C0000780000F80000F00000F00001F00001E0000 3E00003C00003C00007C0000780000F80000F00000F0000060000011247D9F18>I<01F0 0007FC000FFE001F1F001C07003803807803C07001C07001C0E000E0E000E0E000E0E000 E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C07001F1F 000FFE0007FC0001F000131C7E9B18>I<01800380038007800F803F80FF80FB80438003 800380038003800380038003800380038003800380038003800380038003807FFCFFFE7F FC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000E000 00E00000E00001C00001C00003C0000780000F00001E00003C0000780000F00001E00007 C0000F80001E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<07F8001FFE003FFF00 7807807803C07801C03001C00001C00003C0000380000F0003FF0003FE0003FF00000780 0003C00001C00000E00000E00000E0F000E0F000E0F001C0F003C07C07803FFF001FFE00 03F800131C7E9B18>I<001F00003F0000770000770000E70001E70001C7000387000787 000707000E07001E07003C0700380700780700F00700FFFFF8FFFFF8FFFFF80007000007 00000700000700000700000700007FF000FFF8007FF0151C7F9B18>I<03F8000FFE001F FF003E0F803803807001C07001C07001C07001C03803803C07801FFF0007FC000FFE001F 1F003C07807001C0F001E0E000E0E000E0E000E0E000E07001C07803C03E0F801FFF000F FE0003F800131C7E9B18>56 D<3078FCFC783000000000000000003078FCFC7830061477 9318>58 D<7FFFC0FFFFE0FFFFE0FFFFE0000000000000000000000000FFFFE0FFFFE0FF FFE07FFFC0130C7E9318>61 D<00700000F80000F80000D80000D80001DC0001DC0001DC 00018C00038E00038E00038E00038E000306000707000707000707000707000FFF800FFF 800FFF800E03800E03801C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>65 DI<00F8E003FEE007FFE00F07E01E03E03C 01E03800E07000E07000E0700000E00000E00000E00000E00000E00000E00000E00000E0 00007000007000E07000E03800E03C00E01E01C00F07C007FF8003FE0000F800131C7E9B 18>I<7FF800FFFE007FFF001C0F801C03C01C03C01C01E01C00E01C00E01C00F01C0070 1C00701C00701C00701C00701C00701C00701C00701C00F01C00E01C00E01C01E01C01C0 1C03C01C0F807FFF00FFFE007FF800141C7F9B18>III<01F1C003FDC00FFFC01F0FC0 1C03C03803C03801C07001C07001C0700000E00000E00000E00000E00000E00000E00FF0 E01FF0E00FF07001C07001C07003C03803C03803C01C07C01F0FC00FFFC003FDC001F1C0 141C7E9B18>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01 C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C01C01C01C01C01C01C01C01C01C01 C01C01C01C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>I<7FFF00FFFF807FFF0001 C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001 C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007FFF00FFFF807F FF00111C7D9B18>I<7F07F0FF87F87F07F01C03C01C07801C07001C0E001C1E001C3C00 1C38001C70001CF0001DF0001DF0001FB8001FB8001F1C001E1C001C0E001C0E001C0700 1C07001C03801C03801C01C07F03F0FF87F87F03F0151C7F9B18>75 D<7FE000FFE0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00 000E00000E00000E00000E00000E00000E00000E00000E00000E00700E00700E00700E00 700E00707FFFF0FFFFF07FFFF0141C7F9B18>II<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C0 1CE1C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C01C19C01C1DC01C0DC0 1C0DC01C0DC07F07C0FF87C07F03C0151C7F9B18>I<0FF8003FFE007FFF00780F007007 00F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E003 80E00380E00380E00380E00380E00380F00780700700780F007FFF003FFE000FF800111C 7D9B18>II<7FF800FFFE007FFF001C0F80 1C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C0F00 1C07001C03801C03801C03801C03801C03801C039C1C039C1C039C7F01F8FF81F87F00F0 161C7F9B18>82 D<03F3801FFF803FFF807C0F80700780E00380E00380E00380E0000070 00007800003F00001FF00007FE0000FF00000F800003C00001C00000E00000E06000E0E0 00E0E001E0F001C0F80780FFFF80FFFE00E7F800131C7E9B18>I<7FFFF8FFFFF8FFFFF8 E07038E07038E07038E07038007000007000007000007000007000007000007000007000 00700000700000700000700000700000700000700000700000700000700007FF0007FF00 07FF00151C7F9B18>IIII<7F8FE07F9F E07F8FE00E07000F0700070E00078E00039C0003DC0001F80001F80000F00000F0000070 0000F00000F80001F80001DC00039E00038E00070F000707000E07800E03801E03C07F07 F0FF8FF87F07F0151C7F9B18>I91 D93 D<7FFF00FFFF80FFFF807FFF0011047D7F18>95 D<1FE0003FF8007FFC00781E00300E00 00070000070000FF0007FF001FFF007F0700780700E00700E00700E00700F00F00781F00 3FFFF01FFBF007E1F014147D9318>97 D<7E0000FE00007E00000E00000E00000E00000E 00000E00000E3E000EFF800FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E 00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF80063E00151C809B18>I< 01FE0007FF001FFF803E0780380300700000700000E00000E00000E00000E00000E00000 E000007000007001C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F80003F 80001F8000038000038000038000038000038003E3800FFB801FFF803C1F80380F807007 80700380E00380E00380E00380E00380E00380E00380700780700780380F803C1F801FFF F00FFBF803E3F0151C7E9B18>I<01F00007FC001FFE003E0F00380780700380700380E0 01C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E03C01FFF8007FF0001 FC0012147D9318>I<001F80007FC000FFE000E1E001C0C001C00001C00001C0007FFFC0 FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 01C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F007FFF80FFF F81E1E301C0E003807003807003807003807003807001C0E001E1E001FFC001FF80039E0 003800001C00001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E000387800 F07E03F01FFFC00FFF8001FC00151F7F9318>I<7E0000FE00007E00000E00000E00000E 00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E 00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B 18>I<03800007C00007C00007C0000380000000000000000000000000007FC000FFC000 7FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 01C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18>I<0038007C007C007C003800 000000000000000FFC1FFC0FFC001C001C001C001C001C001C001C001C001C001C001C00 1C001C001C001C001C001C001C001C001C001C001C6038F078FFF07FE03F800E277E9C18 >II<7FE000FFE0007FE00000E00000E000 00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000 00E00000E00000E00000E00000E00000E00000E00000E0007FFFC0FFFFE07FFFC0131C7E 9B18>I<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C00 1C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00 7F1F1F00FFBFBF807F1F1F001914819318>I<7E3E00FEFF807FFFC00FC1C00F80E00F00 E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3 FCFFE7FE7FC3FC1714809318>I<01F0000FFE001FFF003E0F803803807001C07001C0E0 00E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F801FFF000FFE0001 F00013147E9318>I<7E3E00FEFF807FFFC00FC1E00F80E00F00700E00700E00380E0038 0E00380E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF800E3E000E0000 0E00000E00000E00000E00000E00000E00007FC000FFE0007FC000151E809318>I<01E3 8007FB801FFF803E1F80380F80700780700780E00380E00380E00380E00380E00380E003 80700780700780380F803C1F801FFF800FFB8003E3800003800003800003800003800003 80000380000380003FF8003FF8003FF8151E7E9318>I<7F87E0FF9FF07FBFF803F87803 F03003E00003C00003C00003800003800003800003800003800003800003800003800003 80007FFE00FFFF007FFE0015147F9318>I<07F7003FFF007FFF00780F00E00700E00700 E007007C00007FE0001FFC0003FE00001F00600780E00380E00380F00380F80F00FFFF00 FFFC00E7F00011147D9318>I<0180000380000380000380000380007FFFC0FFFFC0FFFF C00380000380000380000380000380000380000380000380000380000380400380E00380 E00380E001C1C001FFC000FF80003E0013197F9818>I<7E07E0FE0FE07E07E00E00E00E 00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01E00F 03E007FFFC03FFFE01FCFC1714809318>I119 D<7F8FF07F9FF07F8FF0070700078E00039E0001DC00 01F80000F80000700000F00000F80001DC00039E00038E000707000F07807F8FF0FF8FF8 7F8FF015147F9318>I<7F8FF0FF8FF87F8FF00E01C00E03800E03800703800707000707 00038700038600038E0001CE0001CE0000CC0000CC0000DC000078000078000078000070 0000700000700000F00000E00079E0007BC0007F80003F00001E0000151E7F9318>I<3F FFF07FFFF07FFFF07001E07003C0700780000F00001E00003C0000F80001F00003C00007 80000F00701E00703C0070780070FFFFF0FFFFF0FFFFF014147F9318>I E /Fp 24 121 df<000FF03FFC00007FFDFFFC0000F83FE0FC0001E03F81FC0003E07F81 FC0007C07F00FC0007C03F00FC0007C01F007C0007C01F007C0007C01F007C0007C01F00 7C0007C01F007C00FFFFFFFFFC00FFFFFFFFFC0007C01F007C0007C01F007C0007C01F00 7C0007C01F007C0007C01F007C0007C01F007C0007C01F007C0007C01F007C0007C01F00 7C0007C01F007C0007C01F007C0007C01F007C0007C01F007C0007C01F007C0007C01F00 7C0007C01F007C003FF8FFE3FF803FF8FFE3FF802920809F2C>15 D<387CFEFEFE7C3807077C860F>46 D<00E00001E0000FE000FFE000F3E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E000FFFF80FFFF80111D7C9C1A >49 D<07F0001FFE00383F007C1F80FE0FC0FE0FC0FE0FE0FE07E07C07E03807E0000FE0 000FC0000FC0001F80001F00003E0000780000F00000E00001C0000380600700600E0060 1C00E01FFFC03FFFC07FFFC0FFFFC0FFFFC0131D7D9C1A>I<01FC0007FF000E0F801E0F C03F07E03F07E03F07E03F07E01E0FC0000FC0000F80001F0001FC0001FC00000F800007 C00003E00003F00003F83803F87C03F8FE03F8FE03F8FE03F0FC03F07807E03C0FC01FFF 8003FC00151D7E9C1A>I<0001C00003C00007C00007C0000FC0001FC0003BC00073C000 63C000C3C00183C00383C00703C00E03C00C03C01803C03803C07003C0E003C0FFFFFEFF FFFE0007C00007C00007C00007C00007C00007C000FFFE00FFFE171D7F9C1A>I<380380 3FFF803FFF003FFE003FFC003FF0003F800030000030000030000030000033F80037FE00 3C1F00380F801007C00007C00007E00007E07807E0FC07E0FC07E0FC07E0FC07C0780FC0 600F80381F001FFC0007F000131D7D9C1A>I<003F0001FFC007E0E00F81E01F03F01E03 F03E03F07C03F07C01E07C0000FC1000FCFF00FDFFC0FD03E0FE01F0FE01F0FC01F8FC01 F8FC01F8FC01F87C01F87C01F87C01F83C01F03E01F01E03E00F07C007FF8001FE00151D 7E9C1A>I<07F8001FFE00381F80780F80FC0FC0FC0FC0FC0FC0780FC0301F80001F0000 3E00007C0000700000E00000E00000C00000C00000C00000C00000C00000C00000000000 000000000000000001C00003E00007F00007F00007F00003E00001C00012207D9F19>63 D69 D<07FC001FFF003F0F803F07 C03F03E03F03E00C03E00003E0007FE007FBE01F03E03C03E07C03E0F803E0F803E0F803 E0FC05E07E0DE03FF8FE0FE07E17147F9319>97 D<01FE0007FF801F0FC03E0FC03E0FC0 7C0FC07C0300FC0000FC0000FC0000FC0000FC0000FC00007C00007E00003E00603F00C0 1F81C007FF0001FC0013147E9317>99 D<0007F80007F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F801F8F80FFEF81F83F83E01F87E00F87C00F87C 00F8FC00F8FC00F8FC00F8FC00F8FC00F8FC00F87C00F87C00F87E00F83E01F81F07F80F FEFF03F8FF18207E9F1D>I<01FE0007FF800F83C01E01E03E00F07C00F07C00F8FC00F8 FFFFF8FFFFF8FC0000FC0000FC00007C00007C00003E00181E00180F807007FFE000FF80 15147F9318>I<01FC3C07FFFE0F079E1E03DE3E03E03E03E03E03E03E03E03E03E01E03 C00F07800FFF0009FC001800001800001C00001FFF800FFFF007FFF81FFFFC3C007C7000 3EF0001EF0001EF0001E78003C78003C3F01F80FFFE001FF00171E7F931A>103 DI108 DI< FE0FC0FE3FE01E61F01EC0F81E80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8 1F00F81F00F81F00F81F00F81F00F81F00F8FFE3FFFFE3FF18147D931D>I<01FF0007FF C01F83F03E00F83E00F87C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007E7C00 7C7C007C3E00F83E00F81F83F007FFC001FF0017147F931A>II<0FE63FFE701E600EE006E006F800FFC07FF83FFC1FFE03FE 001FC007C007E007F006F81EFFFCC7F010147E9315>115 D117 D 120 D E /Fq 53 122 df<007000E001C00380078007000E001E001E003C003C003C0078 007800780078007000F000F000F000F000F000F000F000F000F000F000F000F000700078 007800780078003C003C003C001E001E000E0007000780038001C000E000700C2E7EA112 >40 DI<787878781830 306060E0050A7D830D>44 DII<00 C001C00FC0FFC0FFC0F3C003C003C003C003C003C003C003C003C003C003C003C003C003 C003C003C003C003C003C003C003C003C003C0FFFEFFFEFFFE0F1F7C9E17>49 D<07F0000FFC001FFE00383F00700F00600780E00780E003C04003C04003C00003C00003 C00003C0000780000780000F00000E00001C00003C0000780000E00001C0000380000700 000E00001C0000380000700000FFFFC0FFFFC0FFFFC0121F7E9E17>I<03F0000FFC001F FE003C1F00780F00300780200780000780000780000780000F00000F00003E0003FC0003 F80003FC00001E00000F000007800003800003C00003C00003C00003C08003C0C003C0C0 0780700F807C1F003FFE000FFC0003F00012207E9E17>I<007C0001FE0003FE00078200 0F00001E00003C00003C000078000078000078F800F3FC00F7FE00FE1F00FC0F80F80780 F80780F003C0F003C0F003C0F003C0F003C07003C07803C07803C07807803807803C0F00 1E1E000FFE0007F80001F00012207E9E17>54 DI61 D<001F0000001F0000003F8000003B8000003B8000007BC0000073C0000071C00000F1E0 0000E1E00000E0E00001E0F00001E0F00001C0F00003C0780003C078000380780007803C 0007803C0007003C000FFFFE000FFFFE000FFFFE001E000F001E000F003C000F803C0007 803C000780780007C0780003C0780003C0F00003E01B207F9F1E>65 DI<001FC000 FFF801FFFC03E03C07800C0F00001E00003E00003C00007C0000780000780000780000F0 0000F00000F00000F00000F00000F00000F00000F000007800007800007800007C00003C 00003E00001E00000F000207800E03E03E01FFFC00FFF0001FC017227DA01D>IIII<001FE000FFF801FFFE03E03E07800E0F0000 1E00003E00003C00007C0000780000780000780000F00000F00000F00000F00000F00000 F00000F003FEF003FE7803FE78001E78001E7C001E3C001E3E001E1E001E0F001E07801E 03E03E01FFFE00FFF8001FC017227DA01E>III75 DIII<003F000000FF C00003FFF00007E1F8000F807C001F003E001E001E003C000F003C000F00780007807800 078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000 03C0F00003C0F80007C07800078078000780780007803C000F003C000F001E001E001F00 3E000F807C0007E1F80003FFF00000FFC000003F00001A227DA021>II82 D<01FC0007FF800FFFC01F03C03C00C03C 00007800007800007800007800007800007C00003C00003F00001FE0000FFC0007FE0001 FF00003F800007C00003C00003E00001E00001E00001E00001E00001E00001C0C003C0F0 07C0FC0F807FFF001FFE0003F80013227EA019>III I<07E03FF87FFC701E401F000F000F000F003F07FF1FFF7E0FF80FF00FF00FF00FF83F7F FF3FEF1F8F10147E9316>97 DI<03F00FFC1FFE3E0E3C0278007800F000F000F000F000F000F0007800 78003C013E0F1FFF0FFE03F010147E9314>I<0007800007800007800007800007800007 8000078000078000078000078000078000078007C7800FF7801FFF803E1F807C07807807 80F80780F00780F00780F00780F00780F00780F00780F00780780780780F803E1F801FFF 800FF78007C78011207E9F17>I<03F0000FFC001FFE003E1F003C0700780700700380FF FF80FFFF80FFFF80F00000F00000F000007000007800003C01003E07001FFF0007FE0001 F80011147F9314>I<007E01FE03FE078007000F000F000F000F000F000F000F00FFF0FF F0FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F 000F20809F0E>I<03E0F00FFFF01FFFF03E3E003C1E00780F00780F00780F00780F0078 0F003C1E003E3E001FFC003FF80033E0003000003800003FFE003FFF801FFFC03FFFE078 03F0F000F0F000F0F000F0F801F07E07E03FFFC00FFF0003FC00141E7F9317>III107 DIII<01F80007FE00 1FFF803F0FC03C03C07801E07801E0F000F0F000F0F000F0F000F0F000F0F000F07801E0 7801E03C03C03F0FC01FFF8007FE0001F80014147F9317>II114 D<07F01FFC3FFC780C78007800 78007C003FC01FF00FF803F8007C003C003CC03CF07CFFF87FF00FC00E147F9311>I<1E 001E001E001E001E001E00FFF0FFF0FFF01E001E001E001E001E001E001E001E001E001E 001E001E001E001E201FF00FF007C00C1A7F9910>II119 D<7801E07C03C03E07801E0F000F0F00079E0003FC0003 F80001F80000F00001F00001F80003FC00079E000F0F000E0F001E07803C03C07801E0F8 01F01414809315>II E /Fr 39 122 df46 D<00180000380000F80007F800FFF800 FFF800F8F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000F8007FFFF07FFFF07FFFF014287B A71E>49 D<00FE0003FFC007FFE00FFFF01F03F83C00FC38007E78003E70003EF0001FF0 001F60001F20001F00001F00001F00001F00003E00003E00007C00007C0000F80001F000 01E00003C0000780000F00001E00003C0000780000F00001E00003C0000780000F00001E 00003C00007FFFFF7FFFFF7FFFFF7FFFFF18287EA71E>I<007F000001FFC00007FFF000 0FFFF8001FC1F8003E007C003C003E0078003E0038003E0010003E0000003E0000003E00 00003C0000007C000000FC000001F8000007F00000FFE00000FFC00000FFE00000FFF000 0001FC0000007C0000003E0000001F0000001F0000000F8000000F8000000F8000000F80 00000F8040000F8060001F00F0001F00F8003F007E007E003F81FC001FFFF8000FFFF000 03FFE000007F000019297EA71E>I<0003F0000007F0000005F000000DF000000DF00000 1DF0000039F0000039F0000079F0000079F00000F1F00000F1F00001E1F00003E1F00003 E1F00007C1F00007C1F0000F81F0000F81F0001F01F0001F01F0003E01F0007C01F0007C 01F000F801F000FFFFFF80FFFFFF80FFFFFF80FFFFFF800001F0000001F0000001F00000 01F0000001F0000001F0000001F0000001F0000001F0000001F00019277EA61E>I<3FFF FC3FFFFC3FFFFC3FFFFC3E00003E00003E00003E00003E00003E00003E00003E00003E00 003E00003E3F003EFFC03FFFE03FFFF03FE1F83F807C3F003E3E003E00003E00001F0000 1F00001F00001F00001F00001F00001F20001F60003E70003EF8007C7C00FC3F03F81FFF F00FFFE007FF8000FE0018287EA61E>I<000FF000003FFC0000FFFC0001FFFC0003F80C 0007E000000FC000000F8000001F0000001E0000003E0000003C0000007C0000007C0000 007C3FE000F8FFF000F9FFF800FBFFFC00FF807E00FF003E00FE003F00FC001F00FC001F 00FC000F80F8000F80F8000F80F8000F80F8000F8078000F807C000F807C000F807C000F 003E001F003E001F001F003E001F807C000FC1FC0007FFF80003FFF00001FFC000007F00 0019297EA71E>I<0001F000000003F800000003F800000007FC00000007BC00000007BC 0000000F3E0000000F1E0000000F1E0000001F1F0000001E1F0000001E0F0000003E0F80 00003C0F8000003C078000007C07C000007807C00000F803E00000F803E00000F003E000 01F001F00001F001F00001E001F00003E000F80003E000F80003C000F80007FFFFFC0007 FFFFFC000FFFFFFE000F80003E000F80003E001F00003F001F00001F001E00001F003E00 000F803E00000F803C00000F807C000007C07C000007C078000007C0F8000003E0F80000 03E0232A7EA928>65 D<0001FF00000FFFE0003FFFF8007FFFF800FE01F801F8003003F0 001007C000000F8000001F8000001F0000003E0000003E0000007E0000007C0000007C00 00007C000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800 0000F8000000F80000007C0000007C0000007C0000007E0000003E0000003E0000001F00 00001F8000000F80000007C0000003F0000401F8001C00FE00FC007FFFFC003FFFF8000F FFE00001FF001E2C7CAA26>67 D69 DI73 D77 D<0001FC0000000FFF80 00003FFFE000007FFFF00001FE03FC0003F800FE0007E0003F0007C0001F000F80000F80 1F000007C01F000007C03E000003E03E000003E07C000001F07C000001F07C000001F078 000000F0F8000000F8F8000000F8F8000000F8F8000000F8F8000000F8F8000000F8F800 0000F8F8000000F8F8000000F8F8000000F87C000001F07C000001F07C000001F07E0000 03F03E000003E03F000007E01F000007C01F80000FC00FC0001F8007E0003F0007F0007F 0003F800FE0001FE03FC0000FFFFF800003FFFE000000FFF80000001FC0000252C7DAA2C >79 DI84 D86 D<01FE000FFF803FFFC03FFFE03C03F03001F00001F80000F80000F80000F80000F8 0000F8007FF807FFF81FFFF83FE0F87F00F8FC00F8F800F8F800F8F800F8FC01F87E07F8 7FFFF83FFFF81FFCF80FE0F8151B7E9A1D>97 DI<007FC001FFF007FFFC0FFFFC1FC07C1F00083E00007C00007C0000 7C0000F80000F80000F80000F80000F80000F80000F800007C00007C00007E00003E0000 1F000C1FC07C0FFFFC07FFFC01FFF0007F80161B7E9A1B>I<00003E00003E00003E0000 3E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00FC 3E03FF3E07FFFE0FFFFE1FC1FE3F007E3E003E7C003E7C003EFC003EF8003EF8003EF800 3EF8003EF8003EF8003EF8003EFC003E7C003E7C003E3E007E3F00FE1FC1FE0FFFFE07FF BE03FF3E00FC3E172A7EA91F>I<007E0003FF8007FFC00FFFE01F83F03F00F03E00787C 00787C003878003CFFFFFCFFFFFCFFFFFCFFFFFCF80000F80000F800007800007C00007C 00003E00003F000C1FC07C0FFFFC07FFFC01FFF0007F80161B7E9A1B>I<001FC0007FC0 00FFC001FFC003F00003E00007C00007C00007C00007C00007C00007C00007C00007C000 07C000FFFE00FFFE00FFFE0007C00007C00007C00007C00007C00007C00007C00007C000 07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C000 07C00007C00007C00007C000122A7FA912>I<00F8078003FE7FC00FFFFFC01FFFFFC01F 07C0003E03E0003E03E0007C01F0007C01F0007C01F0007C01F0007C01F0007C01F0003E 03E0003E03E0001F07C0001FFFC0003FFF80003BFE000038F8000078000000780000003C 0000003FFFC0003FFFF8001FFFFC001FFFFE003FFFFF007C007F00F8001F80F8000F80F8 000F80F8000F80FC001F807E003F003F80FE003FFFFE000FFFF80007FFF00000FF80001A 287E9A1E>III108 DI I<007F000001FFC00007FFF0000FFFF8001FC1FC003F007E003E003E007C001F007C001F 0078000F00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F807C001F 007C001F007E003F003E003E003F007E001FC1FC000FFFF80007FFF00001FFC000007F00 00191B7E9A1E>II114 D<03FC001FFF803FFFC07FFFC07C07C0F80080F80000 F80000F80000FC00007F80007FF8003FFE001FFF0007FF8000FFC0000FE00007E00003E0 0003E04003E0E007E0FC0FC0FFFFC07FFF801FFE0003F800131B7E9A17>I<07C00007C0 0007C00007C00007C00007C00007C000FFFFC0FFFFC0FFFFC007C00007C00007C00007C0 0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0 0007C00007C00007C04007E1C003FFE003FFE001FF8000FC0013227FA116>IIII<7C000FC03E001F803F001F001F803E000F807C 0007C0FC0003E0F80001F1F00001FBE00000FFC000007FC000003F8000001F0000001F00 00003F8000007FC00000FBC00000F3E00001F1F00003E0F80007C07C000F807C000F803E 001F001F003E000F807E000FC0FC0007E01B1B809A1C>II E /Fs 16 122 df66 D80 D<3FFFFFFFFFFFFFFFFF003FFFFFFFFFFFFFFFFF003FFFFF FFFFFFFFFFFF003FFFFFFFFFFFFFFFFF003FFFFFFFFFFFFFFFFF003FFF0003FFF8003FFF 007FF80003FFF80007FF807FE00003FFF80001FF807FC00003FFF80000FF807F800003FF F800007F807F000003FFF800003F807F000003FFF800003F807E000003FFF800001F807E 000003FFF800001F807E000003FFF800000F807C000003FFF800000F807C000003FFF800 000F807C000003FFF800000F807C000003FFF800000F80FC000003FFF800000FC0F80000 03FFF8000007C0F8000003FFF8000007C0F8000003FFF8000007C0F8000003FFF8000007 C0F8000003FFF8000007C000000003FFF80000000000000003FFF80000000000000003FF F80000000000000003FFF80000000000000003FFF80000000000000003FFF80000000000 000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF800 00000000000003FFF80000000000000003FFF80000000000000003FFF800000000000000 03FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF8000000 0000000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FF F80000000000000003FFF80000000000000003FFF80000000000000003FFF80000000000 000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF800 00000000000003FFF80000000000000003FFF80000000000000003FFF800000000000000 03FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF8000000 0000000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FF F80000000000000003FFF8000000000003FFFFFFFFFFF800000003FFFFFFFFFFF8000000 03FFFFFFFFFFF800000003FFFFFFFFFFF800000003FFFFFFFFFFF800004A467CC553>84 D<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007FE001FFF0000 07FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007FF0000FFF80007FF8000F FF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F800003FFC000000 00003FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC000000FF FFFFFC000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007FFC000 3FFC000FFF00003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF800003F FC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC 00FFF000007FFC007FF80000FFFC007FF80001EFFC003FFC0003EFFC003FFF0007CFFF00 0FFFC03F8FFFF807FFFFFF07FFFC01FFFFFC03FFFC007FFFF001FFFC0003FF80007FF836 2E7DAD3A>97 D<007FC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000 000000FFFFC00000000000FFFFC0000000000003FFC0000000000001FFC0000000000001 FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000 00000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001 FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000 00000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001 FFC00FFC00000001FFC07FFFC0000001FFC3FFFFF0000001FFCFFFFFFC000001FFDFF00F FF000001FFFF8003FF800001FFFE0001FFC00001FFF800007FE00001FFF000007FF00001 FFE000003FF80001FFE000001FFC0001FFE000001FFC0001FFE000001FFE0001FFE00000 1FFE0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001 FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE00000 0FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001 FFE000000FFF8001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE00000 1FFE0001FFE000001FFE0001FFE000001FFC0001FFE000001FFC0001FFE000003FF80001 FFF000003FF80001FFF800007FF00001FFFC0000FFE00001FFFE0001FFC00001FFBF0007 FF800001FF1FE01FFE000001FE0FFFFFFC000001FC03FFFFF0000001F800FFFF80000001 F0001FF800000039487CC742>I<00001FFFC0000000FFFFF8000007FFFFFE00001FFFFF FF80007FFC00FFC000FFE001FFC001FFC003FFE003FF8003FFE007FF0003FFE00FFE0003 FFE00FFE0003FFE01FFC0001FFC01FFC0001FFC03FFC0000FF803FFC00003E007FF80000 00007FF8000000007FF800000000FFF800000000FFF800000000FFF800000000FFF80000 0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF80000 00007FF8000000007FF8000000007FFC000000003FFC000000003FFC000000001FFC0000 00F81FFE000000F80FFE000000F80FFF000001F007FF800003F003FFC00007E001FFE000 0FC000FFF0001F80007FFE00FF00001FFFFFFE000007FFFFF8000000FFFFE00000001FFE 00002D2E7CAD35>I<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE00007FFC 07FF0000FFE001FF8001FFC0007FC003FF80003FE007FF00003FF00FFE00001FF01FFE00 000FF81FFC00000FF83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007FC7FF800 0007FE7FF8000007FEFFF8000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFF FFFFFEFFFFFFFFFFFCFFF800000000FFF800000000FFF800000000FFF8000000007FF800 0000007FF8000000007FFC000000003FFC000000003FFC000000003FFC0000001C1FFE00 00003E0FFE0000003E07FF0000007E07FF000000FC03FF800001F801FFC00003F0007FF0 001FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF80002F2E7D AD36>101 D<00000000001F8000007FF000FFE00007FFFF03FFF0001FFFFFC7FFF0007F FFFFFFC7F800FFE03FFE0FF801FF800FFC0FF803FF0007FE0FF807FE0003FF07F007FE00 03FF07F00FFC0001FF81C00FFC0001FF80000FFC0001FF80001FFC0001FFC0001FFC0001 FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0000FFC0001FF 80000FFC0001FF80000FFC0001FF800007FE0003FF000007FE0003FF000003FF0007FE00 0001FF800FFC000000FFE03FF8000001FFFFFFF0000001DFFFFFC0000003C7FFFF000000 03C07FF000000007C0000000000007C0000000000007C0000000000007C0000000000007 E0000000000007F0000000000007F8000000000007FFFFFFF0000007FFFFFFFF000003FF FFFFFFE00003FFFFFFFFF80001FFFFFFFFFE0001FFFFFFFFFF0000FFFFFFFFFF80007FFF FFFFFF8003FFFFFFFFFFC00FFFFFFFFFFFC01FF800001FFFE03FE0000001FFE07FC00000 007FF07FC00000003FF0FF800000001FF0FF800000001FF0FF800000001FF0FF80000000 1FF0FF800000001FF07FC00000003FE07FC00000003FE03FE00000007FC03FF0000000FF C01FFC000003FF800FFF00000FFF0003FFF000FFFC0000FFFFFFFFF000003FFFFFFFC000 0007FFFFFE000000003FFFC0000035447DAE3B>103 D<007FC00000000000FFFFC00000 000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000000003 FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000 00000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001 FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000 00000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001 FFC0000000000001FFC0000000000001FFC001FFC0000001FFC00FFFF8000001FFC03FFF FE000001FFC0FFFFFF000001FFC1FC07FF800001FFC3E003FFC00001FFC7C001FFC00001 FFCF0001FFE00001FFDE0000FFE00001FFDC0000FFE00001FFFC0000FFF00001FFF80000 FFF00001FFF00000FFF00001FFF00000FFF00001FFF00000FFF00001FFE00000FFF00001 FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000 FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001 FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000 FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001 FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000 FFF00001FFE00000FFF00001FFE00000FFF000FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FF FFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE03B487CC742>I<00FC0001FE00 03FF0007FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01FFFE00FFFC007FF8003FF00 01FE0000FC00000000000000000000000000000000000000000000000000000000000000 000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001FFC001FFC0 01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0 01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0 01FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18497C C820>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 01FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FFFFFF80 FFFFFF8019487CC720>108 D<00000FFF0000000000FFFFF000000007FFFFFE0000001F FFFFFF8000003FFC03FFC00000FFE0007FF00001FF80001FF80003FF00000FFC0007FE00 0007FE000FFE000007FF000FFC000003FF001FFC000003FF803FFC000003FFC03FF80000 01FFC03FF8000001FFC07FF8000001FFE07FF8000001FFE07FF8000001FFE0FFF8000001 FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FF F0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF07FF8000001FFE0 7FF8000001FFE07FF8000001FFE07FF8000001FFE03FFC000003FFC03FFC000003FFC01F FC000003FF801FFE000007FF800FFE000007FF0007FF00000FFE0003FF80001FFC0001FF C0003FF80000FFE0007FF000007FFC03FFE000001FFFFFFF80000007FFFFFE00000000FF FFF0000000000FFF000000342E7DAD3B>111 D<007FC00FFC000000FFFFC07FFFC00000 FFFFC3FFFFF00000FFFFCFFFFFFC0000FFFFDFF01FFF0000FFFFFF8007FF800003FFFE00 01FFC00001FFF80000FFE00001FFF00000FFF00001FFE000007FF80001FFE000003FFC00 01FFE000003FFC0001FFE000003FFE0001FFE000001FFE0001FFE000001FFF0001FFE000 001FFF0001FFE000001FFF0001FFE000000FFF0001FFE000000FFF8001FFE000000FFF80 01FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000 000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF00 01FFE000001FFF0001FFE000001FFF0001FFE000001FFE0001FFE000001FFE0001FFE000 003FFC0001FFE000003FFC0001FFE000007FF80001FFF000007FF80001FFF80000FFF000 01FFFC0001FFE00001FFFE0003FFC00001FFFF0007FF800001FFFFE03FFE000001FFEFFF FFFC000001FFE3FFFFF0000001FFE0FFFF80000001FFE01FF800000001FFE00000000000 01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000 0000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000 01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000 00000000FFFFFFC000000000FFFFFFC000000000FFFFFFC000000000FFFFFFC000000000 FFFFFFC00000000039427CAD42>I<00FF803F8000FFFF80FFF000FFFF83FFFC00FFFF87 FFFE00FFFF8FC3FF00FFFF8F07FF0003FF9E0FFF8001FFBC0FFF8001FFB80FFF8001FFF8 0FFF8001FFF00FFF8001FFF007FF0001FFF007FF0001FFE003FE0001FFE000F80001FFE0 00000001FFE000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0 00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0 00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0 00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0 00000001FFC0000000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFF E00000292E7CAD31>114 D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FF E01FC0001FE03F80000FE03F000007E07F000003E07F000003E0FF000003E0FF000003E0 FF800003E0FFC0000000FFF0000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003F FFFFFC001FFFFFFF000FFFFFFF8007FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003 FFFFF800001FFFF8000000FFFC0000001FFC7800000FFCF8000007FCF8000003FCFC0000 03FCFC000003FCFE000003F8FE000003F8FF000003F8FF800007F0FFC0000FF0FFF0001F E0FFFC00FFC0FFFFFFFF80FC7FFFFE00F81FFFF800E003FF8000262E7CAD2F>I<7FFFFF C000FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF 8000FFF000000FE00000FFF800000FC00000FFF800000FC000007FFC00000F8000007FFC 00001F8000003FFC00001F0000003FFE00003F0000001FFE00003E0000001FFF00007E00 00000FFF00007C0000000FFF8000FC00000007FF8000F800000007FFC001F800000003FF C001F000000003FFE003F000000003FFE003F000000001FFF003E000000001FFF007E000 000000FFF007C000000000FFF80FC0000000007FF80F80000000007FFC1F80000000003F FC1F00000000003FFE3F00000000001FFE3E00000000001FFF7E00000000000FFF7C0000 0000000FFFFC00000000000FFFFC000000000007FFF8000000000007FFF8000000000003 FFF0000000000003FFF0000000000001FFE0000000000001FFE0000000000000FFC00000 00000000FFC00000000000007F800000000000007F800000000000003F00000000000000 3F000000000000003F000000000000003E000000000000007E000000000000007C000000 00000000FC000000001F8000F8000000003FC001F8000000007FE001F000000000FFF003 F000000000FFF003E000000000FFF007E000000000FFF00FC000000000FFF01F80000000 00FFF03F80000000007FE07F00000000007F43FE00000000003FFFF800000000001FFFF0 000000000007FFC0000000000001FE00000000000039427EAD3F>121 D E /Ft 8 117 df<00001E000000003E00000000FE00000003FE0000003FFE0000FFFF FE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE0000000FFE 0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00 00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000 000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000 0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE 0000000FFE0000000FFE0000000FFE00007FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFF C0223879B731>49 D<0000001FFF000030000001FFFFE000F000000FFFFFFC01F000007F FFFFFE03F00001FFFE007F87F00003FFE0000FCFF0000FFF000003FFF0001FFC000001FF F0003FF80000007FF0007FF00000003FF000FFC00000003FF001FFC00000001FF003FF80 0000000FF007FF000000000FF00FFF0000000007F00FFE0000000007F01FFE0000000003 F01FFE0000000003F03FFC0000000003F03FFC0000000001F03FFC0000000001F07FFC00 00000001F07FF80000000001F07FF80000000000007FF8000000000000FFF80000000000 00FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800 0000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000 00FFF80000000000007FF80000000000007FF80000000000007FF80000000000007FFC00 00000000F03FFC0000000000F03FFC0000000000F03FFC0000000000F01FFE0000000000 F01FFE0000000001E00FFE0000000001E00FFF0000000001E007FF0000000003C003FF80 00000003C001FFC0000000078000FFE00000000F00007FF00000001F00003FF80000003E 00001FFC0000007C00000FFF000001F8000003FFE00007F0000001FFFE003FC00000007F FFFFFF000000000FFFFFFC0000000001FFFFF000000000001FFF0000003C3D7BBB47>67 D<001FFF00000001FFFFF0000003FFFFFC000007F007FE00000FF801FF00001FFC00FF80 001FFC007FC0001FFC007FE0001FFC003FE0000FF8003FF0000FF8003FF00007F0003FF0 0001C0003FF0000000003FF0000000003FF0000000003FF0000000FFFFF000000FFFFFF0 00007FF83FF00001FF803FF00007FE003FF0000FF8003FF0001FF0003FF0003FE0003FF0 007FE0003FF0007FE0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FFC0003FF0 00FFC0007FF0007FE0007FF0007FE000DFF0003FF0039FF8001FFC0F0FFFF007FFFE0FFF F001FFFC07FFF0003FE000FFF02C267DA530>97 D<0001FFC000000FFFF800003FFFFE00 00FF80FF0001FE003F8007FC001FC00FF8000FE00FF8000FF01FF00007F03FF00007F83F F00007F87FE00007F87FE00003FC7FE00003FC7FE00003FCFFE00003FCFFFFFFFFFCFFFF FFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0000000FFE00000007FE00000007FE000 00007FE00000003FE00000003FF000003C1FF000003C1FF000003C0FF800007807FC0000 F803FE0001F001FF0007E000FFC03FC0003FFFFF000007FFFC000000FFE00026267DA52D >101 D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF 0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF 0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF 0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF007FC00003FF 01FFF80003FF07FFFC0003FF0F03FE0003FF1C01FF0003FF3001FF8003FF6000FF8003FF E000FFC003FFC000FFC003FF8000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF 0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFF FC3FFFFF303C7CBB37>104 D<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFFFE03FF 00FFFFF000FF8003FFC0007FC003FF80003FE003FF00003FF003FF00001FF803FF00001F FC03FF00000FFC03FF00000FFE03FF00000FFE03FF000007FE03FF000007FF03FF000007 FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007 FF03FF000007FF03FF000007FE03FF000007FE03FF00000FFE03FF00000FFC03FF00000F FC03FF00001FF803FF00001FF803FF00003FF003FF80003FE003FFC0007FC003FFF001FF 8003FFFC07FF0003FF3FFFFC0003FF0FFFF00003FF01FF000003FF0000000003FF000000 0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000 0003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000FFFFFC0000 00FFFFFC000000FFFFFC000000FFFFFC00000030377DA537>112 D<00FE03F000FFFE0FFE00FFFE1FFF00FFFE3C3F80FFFE707FC007FE60FFE003FEE0FFE0 03FEC0FFE003FFC0FFE003FF807FC003FF807FC003FF803F8003FF800E0003FF00000003 FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF 00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00 000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE00 00FFFFFE0000FFFFFE000023267DA529>114 D<00078000000780000007800000078000 00078000000F8000000F8000000F8000000F8000001F8000001F8000003F8000003F8000 007F800000FF800001FF800007FF80001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF8000 01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000 01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000 01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C00FF8078 00FFC078007FC070003FE0E0001FFFC00007FF800001FF001E377EB626>116 D E /Fu 80 128 df<001F83E000F06E3001C078780380F8780300F03007007000070070 000700700007007000070070000700700007007000FFFFFF800700700007007000070070 000700700007007000070070000700700007007000070070000700700007007000070070 000700700007007000070070000700700007007000070070007FE3FF001D20809F1B>11 D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700 00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 E00700E00700E00700E00700E00700E00700E00700E07FC3FE1720809F19>I<003FE000 E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE007 00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 00E00700E00700E00700E00700E00700E07FE7FE1720809F19>I<001F81F80000F04F04 0001C07C06000380F80F000300F00F000700F00F00070070000007007000000700700000 070070000007007000000700700000FFFFFFFF0007007007000700700700070070070007 007007000700700700070070070007007007000700700700070070070007007007000700 700700070070070007007007000700700700070070070007007007000700700700070070 07007FE3FE3FF02420809F26>I<001F81FF0000F06F070001C07C0F000380F80F000300 F00700070070070007007007000700700700070070070007007007000700700700070070 0700FFFFFFFF000700700700070070070007007007000700700700070070070007007007 000700700700070070070007007007000700700700070070070007007007000700700700 070070070007007007000700700700070070070007007007007FE3FE3FF02420809F26> I22 D<7038F87CFC7EFC7E743A040204020402080408041008100820 1040200F0E7E9F17>34 D<70F8FCFC74040404080810102040060E7C9F0D>39 D<0020004000800100020006000C000C00180018003000300030007000600060006000E0 00E000E000E000E000E000E000E000E000E000E000E00060006000600070003000300030 00180018000C000C000600020001000080004000200B2E7DA112>I<8000400020001000 08000C00060006000300030001800180018001C000C000C000C000E000E000E000E000E0 00E000E000E000E000E000E000E000C000C000C001C00180018001800300030006000600 0C00080010002000400080000B2E7DA112>I<0006000000060000000600000006000000 060000000600000006000000060000000600000006000000060000000600000006000000 06000000060000FFFFFFF0FFFFFFF0000600000006000000060000000600000006000000 060000000600000006000000060000000600000006000000060000000600000006000000 0600001C207D9A23>43 D<70F8FCFC74040404080810102040060E7C840D>II<70F8F8F87005057C840D>I<000100030003000600060006000C000C000C 00180018001800300030003000600060006000C000C000C0018001800180030003000300 0600060006000C000C000C00180018001800300030003000600060006000C000C000C000 102D7DA117>I<03F0000E1C001C0E00180600380700700380700380700380700380F003 C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003 C07003807003807003807807803807001806001C0E000E1C0003F000121F7E9D17>I<01 8003800F80F3800380038003800380038003800380038003800380038003800380038003 8003800380038003800380038003800380038007C0FFFE0F1E7C9D17>I<03F0000C1C00 100E00200700400780800780F007C0F803C0F803C0F803C02007C00007C0000780000780 000F00000E00001C0000380000700000600000C0000180000300000600400C0040180040 1000803FFF807FFF80FFFF80121E7E9D17>I<03F0000C1C00100E00200F00780F807807 80780780380F80000F80000F00000F00000E00001C0000380003F000003C00000E00000F 000007800007800007C02007C0F807C0F807C0F807C0F00780400780400F00200E001C3C 0003F000121F7E9D17>I<000600000600000E00000E00001E00002E00002E00004E0000 8E00008E00010E00020E00020E00040E00080E00080E00100E00200E00200E00400E00C0 0E00FFFFF0000E00000E00000E00000E00000E00000E00000E0000FFE0141E7F9D17>I< 1803001FFE001FFC001FF8001FE00010000010000010000010000010000010000011F000 161C00180E001007001007800003800003800003C00003C00003C07003C0F003C0F003C0 E00380400380400700200600100E000C380003E000121F7E9D17>I<007C000182000701 000E03800C07801C0780380300380000780000700000700000F1F000F21C00F40600F807 00F80380F80380F003C0F003C0F003C0F003C0F003C07003C07003C07003803803803807 001807000C0E00061C0001F000121F7E9D17>I<4000007FFFC07FFF807FFF8040010080 020080020080040000080000080000100000200000200000400000400000C00000C00001 C00001800003800003800003800003800007800007800007800007800007800007800007 8000030000121F7D9D17>I<03F0000C0C00100600300300200180600180600180600180 7001807803003E03003F06001FC8000FF00003F80007FC000C7E00103F00300F80600380 4001C0C001C0C000C0C000C0C000C0C000806001802001001002000C0C0003F000121F7E 9D17>I<03F0000E18001C0C00380600380700700700700380F00380F00380F003C0F003 C0F003C0F003C0F003C07007C07007C03807C0180BC00E13C003E3C00003800003800003 80000700300700780600780E00700C002018001070000FC000121F7E9D17>I<70F8F8F8 700000000000000000000070F8F8F87005147C930D>I<70F8F8F8700000000000000000 000070F0F8F878080808101010202040051D7C930D>I<7FFFFFE0FFFFFFF00000000000 000000000000000000000000000000000000000000000000000000FFFFFFF07FFFFFE01C 0C7D9023>61 D<000100000003800000038000000380000007C0000007C0000007C00000 09E0000009E0000009E0000010F0000010F0000010F00000207800002078000020780000 403C0000403C0000403C0000801E0000801E0000FFFE0001000F0001000F0001000F0002 0007800200078002000780040003C00E0003C01F0007E0FFC03FFE1F207F9F22>65 DI<000FC040007030C001C009C0 038005C0070003C00E0001C01E0000C01C0000C03C0000C07C0000407C00004078000040 F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000 780000007C0000407C0000403C0000401C0000401E0000800E0000800700010003800200 01C0040000703800000FC0001A217D9F21>IIII<000FE0200078186000E004E0038002E0070001E0 0F0000E01E0000601E0000603C0000603C0000207C00002078000020F8000000F8000000 F8000000F8000000F8000000F8000000F8000000F8007FFCF80003E0780001E07C0001E0 3C0001E03C0001E01E0001E01E0001E00F0001E0070001E0038002E000E0046000781820 000FE0001E217D9F24>III<0FFFC0007C 00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C 00003C00003C00003C00003C00003C00003C00003C00003C00003C00203C00F83C00F83C 00F83C00F0380040780040700030E0000F800012207E9E17>IIIII<001F800000F0F00001C0380007801E000F000F000E0007001E00 07803C0003C03C0003C07C0003E0780001E0780001E0F80001F0F80001F0F80001F0F800 01F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E07C0003E03C00 03C03C0003C01E0007800E0007000F000F0007801E0001C0380000F0F000001F80001C21 7D9F23>II82 D<07E0800C198010078030038060018060 0180E00180E00080E00080E00080F00000F000007800007F00003FF0001FFC000FFE0003 FF00001F800007800003C00003C00001C08001C08001C08001C08001C0C00180C00380E0 0300F00600CE0C0081F80012217D9F19>I<7FFFFFE0780F01E0600F0060400F0020400F 0020C00F0030800F0010800F0010800F0010800F0010000F0000000F0000000F0000000F 0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F 0000000F0000000F0000000F0000000F0000000F0000000F0000001F800007FFFE001C1F 7E9E21>I87 D<7FF83FF80FE00FC007C007 0003C0020001E0040001F00C0000F0080000781000007C1000003C2000003E4000001E40 00000F8000000F8000000780000003C0000007E0000005E0000009F0000018F800001078 0000207C0000603C0000401E0000801F0001800F0001000780020007C0070003C01F8007 E0FFE01FFE1F1F7F9E22>I91 D<080410082010201040204020804080408040B85CFC7EFC7E7C3E381C0F0E7B9F17>I< FEFE06060606060606060606060606060606060606060606060606060606060606060606 06060606060606FEFE072D7FA10D>I<1FE000303000781800781C00300E00000E00000E 00000E0000FE00078E001E0E00380E00780E00F00E10F00E10F00E10F01E10781E103867 200F83C014147E9317>97 D<0E0000FE00000E00000E00000E00000E00000E00000E0000 0E00000E00000E00000E00000E3E000EC3800F01C00F00E00E00E00E00700E00700E0078 0E00780E00780E00780E00780E00780E00700E00700E00E00F00E00D01C00CC300083E00 15207F9F19>I<03F80E0C1C1E381E380C70007000F000F000F000F000F000F000700070 00380138011C020E0C03F010147E9314>I<000380003F80000380000380000380000380 00038000038000038000038000038000038003E380061B801C0780380380380380700380 700380F00380F00380F00380F00380F00380F003807003807003803803803807801C0780 0E1B8003E3F815207E9F19>I<03F0000E1C001C0E00380700380700700700700380F003 80F00380FFFF80F00000F00000F000007000007000003800801800800C010007060001F8 0011147F9314>I<007C00C6018F038F07060700070007000700070007000700FFF00700 070007000700070007000700070007000700070007000700070007000700070007007FF0 1020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F 00380E001C1C001E380033E0002000002000003000003000003FFE001FFF800FFFC03001 E0600070C00030C00030C00030C000306000603000C01C038003FC00141F7F9417>I<0E 0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E 3E000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16207F9F19>I<1C001E003E00 1E001C000000000000000000000000000E007E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E00FFC00A1F809E0C>I<00E001F001F001F000 E0000000000000000000000000007007F000F00070007000700070007000700070007000 700070007000700070007000700070007000700070007000706070F060F0C061803F000C 28829E0E>I<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E0000 0E00000E00000E0FF00E03C00E03000E02000E04000E08000E10000E30000E70000EF800 0F38000E1C000E1E000E0E000E07000E07800E03800E03C00E03E0FFCFF815207F9F18> I<0E00FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B20809F0C>I< 0E1F01F000FE618618000E81C81C000F00F00E000F00F00E000E00E00E000E00E00E000E 00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00 E00E000E00E00E000E00E00E000E00E00E000E00E00E00FFE7FE7FE023147F9326>I<0E 3E00FE43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E 01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16147F9319>I<01F800070E00 1C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E0 7000E03801C03801C01C0380070E0001F80014147F9317>I<0E3E00FEC3800F01C00F00 E00E00E00E00F00E00700E00780E00780E00780E00780E00780E00780E00700E00F00E00 E00F01E00F01C00EC3000E3E000E00000E00000E00000E00000E00000E00000E00000E00 00FFE000151D7F9319>I<03E0800619801C05803C0780380380780380700380F00380F0 0380F00380F00380F00380F003807003807803803803803807801C0B800E138003E38000 0380000380000380000380000380000380000380000380003FF8151D7E9318>I<0E78FE 8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FF E00F147F9312>I<1F9030704030C010C010C010E00078007F803FE00FF0007080388018 8018C018C018E030D0608F800D147E9312>I<020002000200060006000E000E003E00FF F80E000E000E000E000E000E000E000E000E000E000E000E080E080E080E080E08061003 1001E00D1C7F9B12>I<0E01C0FE1FC00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603C0030DC001F1FC1614 7F9319>II< FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E03C0400707C0800704C080 0704E080038861000388710003C8730001D0320001D03A0000F03C0000E01C0000E01C00 00601800004008001E147F9321>I<7FC3FC0F01E00701C007018003810001C20000E400 00EC00007800003800003C00007C00004E000087000107000303800201C00601E01E01E0 FF07FE1714809318>II<3FFF380E 200E201C40384078407000E001E001C00380078007010E011E011C0338027006700EFFFE 10147F9314>II<30307878F87C787830300E057C9E17>127 D E /Fv 45 122 df<70F8FCFC7404040404080810102040060F7C840E>44 DI<70F8F8F87005057C840E>I<01F000071C000C060018030038 03803803807001C07001C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001E0F0 01E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001C07001C07001C07803C038 03803803801C07000C0600071C0001F00013227EA018>48 D<008003800F80F380038003 800380038003800380038003800380038003800380038003800380038003800380038003 80038003800380038003800380038007C0FFFE0F217CA018>I<03F8000C1E0010070020 07804007C07807C07803C07807C03807C0000780000780000700000F00000E0000380003 F000001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F803E0F0 03C04003C0400780200780100F000C1C0003F00013227EA018>51 D<000200000600000E00000E00001E00001E00002E00004E00004E00008E00008E00010E 00020E00020E00040E00040E00080E00100E00100E00200E00200E00400E00800E00FFFF F8000E00000E00000E00000E00000E00000E00000E00001F0001FFF015217FA018>I<10 00801E07001FFF001FFE001FF80013E00010000010000010000010000010000010000010 F800130E001407001803801003800001C00001C00001E00001E00001E00001E07001E0F0 01E0F001E0E001C08001C04003C04003802007001006000C1C0003F00013227EA018>I< 007E0001C1000300800601C00E03C01C03C0180180380000380000780000700000700000 F0F800F30C00F40600F40300F80380F801C0F001C0F001E0F001E0F001E0F001E0F001E0 7001E07001E07001E03801C03801C01803801C03000C0600070C0001F00013227EA018> I<01F800060E000803001001802001802000C06000C06000C06000C07000C07801803E01 003F02001FC4000FF80003F80003FC00067F00083F80100F803007C06001C06000E0C000 E0C00060C00060C00060C000606000406000C03000801803000E0E0003F00013227EA018 >56 D<01F000060C000C0600180700380380700380700380F001C0F001C0F001C0F001E0 F001E0F001E0F001E0F001E07001E07003E03803E01805E00C05E00619E003E1E00001C0 0001C00001C0000380000380300300780700780600700C002018001030000FC00013227E A018>I<0001800000018000000180000003C0000003C0000003C0000005E0000005E000 000DF0000008F0000008F0000010F800001078000010780000203C0000203C0000203C00 00401E0000401E0000401E0000800F0000800F0000FFFF000100078001000780030007C0 020003C0020003C0040003E0040001E0040001E00C0000F00C0000F03E0001F8FF800FFF 20237EA225>65 D<0007E0100038183000E0063001C00170038000F0070000F00E000070 1E0000701C0000303C0000303C0000307C0000107800001078000010F8000000F8000000 F8000000F8000000F8000000F8000000F8000000F800000078000000780000107C000010 3C0000103C0000101C0000201E0000200E000040070000400380008001C0010000E00200 00381C000007E0001C247DA223>67 D69 DI73 D77 DI80 D82 D<03F0200C0C601802603001E07000E06000 60E00060E00060E00020E00020E00020F00000F000007800007F00003FF0001FFE000FFF 0003FF80003FC00007E00001E00000F00000F0000070800070800070800070800070C000 60C00060E000C0F000C0C80180C6070081FC0014247DA21B>I<7FFFFFF8780780786007 8018400780084007800840078008C007800C800780048007800480078004800780040007 800000078000000780000007800000078000000780000007800000078000000780000007 800000078000000780000007800000078000000780000007800000078000000780000007 80000007800000078000000FC00003FFFF001E227EA123>I<0FE0001838003C0C003C0E 0018070000070000070000070000FF0007C7001E07003C0700780700700700F00708F007 08F00708F00F087817083C23900FC1E015157E9418>97 D<0E0000FE00001E00000E0000 0E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E1F000E61C0 0E80600F00300E00380E003C0E001C0E001E0E001E0E001E0E001E0E001E0E001E0E001E 0E001C0E003C0E00380F00700C80600C41C0083F0017237FA21B>I<01FE000703000C07 801C0780380300780000700000F00000F00000F00000F00000F00000F00000F000007000 007800403800401C00800C010007060001F80012157E9416>I<0000E0000FE00001E000 00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001F8E007 04E00C02E01C01E03800E07800E07000E0F000E0F000E0F000E0F000E0F000E0F000E0F0 00E07000E07800E03800E01801E00C02E0070CF001F0FE17237EA21B>I<01FC00070700 0C03801C01C03801C07801E07000E0F000E0FFFFE0F00000F00000F00000F00000F00000 7000007800203800201C00400E008007030000FC0013157F9416>I<003C00C6018F038F 030F070007000700070007000700070007000700FFF80700070007000700070007000700 0700070007000700070007000700070007000700070007807FF8102380A20F>I<000070 01F198071E180E0E181C07001C07003C07803C07803C07803C07801C07001C07000E0E00 0F1C0019F0001000001000001800001800001FFE000FFFC00FFFE03800F0600030400018 C00018C00018C000186000306000303800E00E038003FE0015217F9518>I<0E0000FE00 001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 000E1F800E60C00E80E00F00700F00700E00700E00700E00700E00700E00700E00700E00 700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18237FA21B>I<1C 001E003E001E001C00000000000000000000000000000000000E00FE001E000E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00A227FA10E >I<01C003E003E003E001C00000000000000000000000000000000001E00FE001E000E0 00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 00E000E000E000E060E0F0C0F18061803E000B2C82A10F>I<0E0000FE00001E00000E00 000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E03FC0E01 F00E01C00E01800E02000E04000E08000E10000E38000EF8000F1C000E1E000E0E000E07 000E07800E03C00E01C00E01E00E00F00E00F8FFE3FE17237FA21A>I<0E00FE001E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B237FA20E>I<0E1F C07F00FE60E183801E807201C00F003C00E00F003C00E00E003800E00E003800E00E0038 00E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800 E00E003800E00E003800E00E003800E00E003800E00E003800E0FFE3FF8FFE27157F942A >I<0E1F80FE60C01E80E00F00700F00700E00700E00700E00700E00700E00700E00700E 00700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18157F941B>I< 01FC000707000C01801800C03800E0700070700070F00078F00078F00078F00078F00078 F00078F000787000707800F03800E01C01C00E038007070001FC0015157F9418>I<0E1F 00FE61C00E80600F00700E00380E003C0E001C0E001E0E001E0E001E0E001E0E001E0E00 1E0E001E0E003C0E003C0E00380F00700E80E00E41C00E3F000E00000E00000E00000E00 000E00000E00000E00000E00000E0000FFE000171F7F941B>I<0E3CFE461E8F0F0F0F06 0F000E000E000E000E000E000E000E000E000E000E000E000E000E000F00FFF010157F94 13>114 D<0F8830786018C018C008C008E008F0007F803FE00FF001F8003C801C800C80 0CC00CC008E018D0308FC00E157E9413>I<02000200020002000600060006000E001E00 3E00FFF80E000E000E000E000E000E000E000E000E000E000E000E040E040E040E040E04 0E040708030801F00E1F7F9E13>I<0E0070FE07F01E00F00E00700E00700E00700E0070 0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00F00E00F0060170 03827800FC7F18157F941B>III121 D E /Fw 20 118 df45 D68 D73 D77 D80 D<007F802001FFE02007C078600F001C601E0006E03C0003E0380001E0780000E0 700000E070000060F0000060F0000060F0000020F0000020F0000020F8000020F8000000 7C0000007E0000003F0000003FC000001FF800000FFF800007FFF80003FFFC0000FFFF00 000FFF800000FFC000001FE0000007E0000003F0000001F0000000F0000000F8000000F8 8000007880000078800000788000007880000078C0000078C0000070E00000F0E00000E0 F00000E0F80001C0EC000380C7000700C1F01E00807FFC00800FF0001D337CB125>83 D<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E001E 0008001E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F001E 003E001E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478003E 047C005E043E008F080F0307F003FC03E01E1F7D9E21>97 D<003F8000E0600380180700 040F00041E001E1C003E3C003E7C003E7C0008780000F80000F80000F80000F80000F800 00F80000F80000F80000F800007800007C00007C00003C00011E00011E00020F00020700 0403801800E060003F80181F7D9E1D>99 D<000001E000003FE000003FE0000003E00000 01E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00000 01E0000001E0000001E0000001E0000001E0000001E0001F81E000F061E001C019E00780 05E00F0003E00E0003E01E0001E03C0001E03C0001E07C0001E0780001E0F80001E0F800 01E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0780001E07800 01E03C0001E03C0001E01C0001E01E0003E00E0005E0070009E0038011F000E061FF003F 81FF20327DB125>I<003F800000E0E0000380380007003C000E001E001E001E001C000F 003C000F007C000F0078000F8078000780F8000780F8000780FFFFFF80F8000000F80000 00F8000000F8000000F8000000F8000000780000007C0000003C0000003C0000801E0000 800E0001000F0002000780020001C00C0000F03000001FC000191F7E9E1D>I<0007E000 1C1000383800707C00E07C01E07C01C03803C00003C00003C00003C00003C00003C00003 C00003C00003C00003C00003C00003C000FFFFC0FFFFC003C00003C00003C00003C00003 C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003 C00003C00003C00003C00003C00003C00003C00003C00003C00003C00007E0007FFF007F FF0016327FB114>I<000000F0007F030801C1C41C0380E81C070070080F0078001E003C 001E003C003E003E003E003E003E003E003E003E003E003E003E003E001E003C001E003C 000F007800070070000780E00009C1C000087F0000180000001800000018000000180000 00180000001C0000000E0000000FFFF80007FFFF0003FFFF800E000FC0180001E0300000 F070000070E0000038E0000038E0000038E0000038E00000387000007070000070380000 E01C0001C00700070001C01C00003FE0001E2F7E9F21>I<07000F801F801F800F800700 000000000000000000000000000000000000000000000780FF80FF800F80078007800780 078007800780078007800780078007800780078007800780078007800780078007800780 0780078007800FC0FFF8FFF80D307EAF12>105 D<0780FE001FC000FF83078060F000FF 8C03C18078000F9001E2003C0007A001E4003C0007A000F4001E0007C000F8001E0007C0 00F8001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000 F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0 001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F000 1E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E 000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>109 D<0780FE0000FF83078000FF8C03C0000F9001E00007A001E00007A000F00007C000F000 07C000F000078000F000078000F000078000F000078000F000078000F000078000F00007 8000F000078000F000078000F000078000F000078000F000078000F000078000F0000780 00F000078000F000078000F000078000F000078000F000078000F000078000F0000FC001 F800FFFC1FFF80FFFC1FFF80211F7E9E25>I<001FC00000F0780001C01C00070007000F 0007801E0003C01C0001C03C0001E03C0001E0780000F0780000F0780000F0F80000F8F8 0000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8780000F07C0001F03C 0001E03C0001E01E0003C01E0003C00F00078007800F0001C01C0000F07800001FC0001D 1F7E9E21>I<0783E0FF8C18FF907C0F907C07A07C07C03807C00007C00007C000078000 078000078000078000078000078000078000078000078000078000078000078000078000 0780000780000780000780000780000780000FC000FFFE00FFFE00161F7E9E19>114 D<01FC100E03301800F0300070600030E00030E00010E00010E00010F00010F800007E00 003FF0001FFF000FFFC003FFE0003FF00001F80000F880003C80003C80001CC0001CC000 1CE0001CE00018F00038F00030CC0060C301C080FE00161F7E9E1A>I<00400000400000 400000400000400000C00000C00000C00001C00001C00003C00007C0000FC0001FFFE0FF FFE003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003 C00003C00003C00003C00003C00003C01003C01003C01003C01003C01003C01003C01003 C01001C02001E02000E0400078C0001F00142C7FAB19>I<078000F000FF801FF000FF80 1FF0000F8001F000078000F000078000F000078000F000078000F000078000F000078000 F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0 00078000F000078000F000078000F000078000F000078000F000078000F000078001F000 078001F000078001F000038002F00003C004F00001C008F800007030FF80001FC0FF8021 1F7E9E25>I E /Fx 5 85 df<00000000C00000000000E00000000001E00000000003E0 0000000003E00000000007E00000000007E0000000000FE0000000000FE0000000001FE0 000000001FE00000000037E00000000067E00000000067E000000000C7E000000000C7F0 0000000183F00000000183F00000000303F00000000703F00000000603F00000000C03F0 0000000C03F00000001803F00000001803F00000003003F00000003003F00000006003F0 000000C003F0000000C003F00000018003F00000018003F8000003FFFFF8000003FFFFF8 0000060001F800000E0001F800000C0001F80000180001F80000180001F80000300001F8 0000300001F80000600001F80000E00001F80000C00001F80001C00001F80001C00001F8 0007C00001FC001FC00003FC00FFF8007FFFE0FFF8007FFFE02B327BB135>65 D<000FFFFFFE0000000FFFFFFF800000007F000FE00000007E0003F00000007E0000F800 00007E0000FC0000007E00007C000000FC00003E000000FC00003E000000FC00003F0000 00FC00001F000001F800001F000001F800001F800001F800001F800001F800001F800003 F000001F800003F000001F800003F000001F800003F000001F800007E000003F800007E0 00003F800007E000003F800007E000003F80000FC000003F00000FC000007F00000FC000 007F00000FC000007F00001F8000007E00001F800000FE00001F800000FE00001F800000 FC00003F000001FC00003F000001F800003F000001F800003F000003F000007E000003E0 00007E000007E000007E00000FC000007E00000F800000FC00001F800000FC00003F0000 00FC00007E000000FC0000FC000001F80001F0000001F80003E0000001F8000FC0000003 F8007F000000FFFFFFFC000000FFFFFFE000000031317BB036>68 D<000FFFFFFFFC000FFFFFFFFC00007F0001FC00007E00007C00007E00003C00007E0000 3C00007E0000180000FC0000180000FC0000180000FC0000180000FC0000180001F80000 180001F80000180001F80000180001F80000180003F00080100003F00180000003F00180 000003F00180000007E00300000007E00300000007E00700000007E01F0000000FFFFE00 00000FFFFE0000000FC01E0000000FC00E0000001F800C0000001F800C0000001F800C00 00001F800C0000003F00180000003F00080000003F00000000003F00000000007E000000 00007E00000000007E00000000007E0000000000FC0000000000FC0000000000FC000000 0000FC0000000001F80000000001F80000000001F80000000003F800000000FFFFF00000 00FFFFF00000002E317BB02F>70 D<000FFFFFF000000FFFFFFE0000007F003F8000007E 000FC000007E0007E000007E0003F000007E0001F80000FC0001F80000FC0001F80000FC 0001F80000FC0001F80001F80003F80001F80003F80001F80003F80001F80003F00003F0 0007F00003F00007E00003F0000FC00003F0000FC00007E0001F000007E0007E000007E0 00FC000007E007F000000FFFFFC000000FFFFF0000000FC00F8000000FC003C000001F80 03E000001F8001F000001F8001F000001F8001F800003F0001F800003F0001F800003F00 01F800003F0001F800007E0003F800007E0003F800007E0003F000007E0003F00000FC00 07F00000FC0007F00000FC0007F00800FC0007F00C01F80007F01801F80007F01801F800 03F03003F80003F030FFFFE001F0E0FFFFE000FFC0000000003F002E327BB034>82 D<07FFFFFFFFF00FFFFFFFFFF00FC00FE003F01E000FC000F01C000FC000E018000FC000 E038000FC0006030001F8000E030001F8000E060001F8000C060001F8000C060003F0000 C0C0003F0000C0C0003F0000C0C0003F0000C080007E00008000007E00000000007E0000 0000007E0000000000FC0000000000FC0000000000FC0000000000FC0000000001F80000 000001F80000000001F80000000001F80000000003F00000000003F00000000003F00000 000003F00000000007E00000000007E00000000007E00000000007E0000000000FC00000 00000FC0000000000FC0000000000FC0000000001F80000000001F80000000001F800000 00001F80000000003F00000000003F00000000003F0000000000FF00000000FFFFFF0000 00FFFFFF0000002C3173B033>84 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 0 1 0 0 bop 795 908 a Fx(D)26 b(R)g(A)f(F)h(T)225 999 y Fw(Do)r(cumen)n(t) 20 b(for)i(a)f(Standard)g(Message-P)n(assing)f(In)n(terface)621 1194 y Fv(Message)c(P)o(assing)h(In)o(terface)e(F)l(orum)832 1320 y(Ma)o(y)h(30,)g(1995)77 1378 y(This)h(w)o(ork)f(w)o(as)h(supp)q (orted)g(in)f(part)h(b)o(y)e(ARP)l(A)h(and)h(NSF)e(under)h(gran)o(t)h (ASC-9310330,)i(the)192 1436 y(National)d(Science)f(F)l(oundation)i (Science)e(and)i(T)l(ec)o(hnology)f(Cen)o(ter)f(Co)q(op)q(erativ)o(e)76 1494 y(Agreemen)o(t)e(No.)22 b(CCR-8809615,)d(and)e(b)o(y)e(the)h (Commission)e(of)j(the)f(Europ)q(ean)i(Comm)o(unit)n(y)654 1552 y(through)f(Esprit)f(pro)s(ject)g(P6643.)p eop %%Page: 1 2 1 1 bop 166 45 a Fu(This)20 b(is)h(the)f(result)g(of)f(a)h(LaT)l(eX)g (run)g(of)g(a)f(draft)g(of)h(a)f(single)j(c)o(hapter)d(of)h(the)g(MPIF) f(Final)75 102 y(Rep)q(ort)d(do)q(cumen)o(t.)969 2828 y(i)p eop %%Page: 1 3 1 2 bop 75 356 a Ft(Chapter)34 b(1)75 564 y Fs(Pro)s(cess)40 b(T)-10 b(op)s(ologi)q(es)75 805 y Fr(1.1)59 b(Intro)r(duction)75 906 y Fu(This)22 b(c)o(hapter)g(discusses)h(the)f Fq(MPI)f Fu(top)q(ology)g(mec)o(hanism.)40 b(A)22 b(top)q(ology)f(is)h(an)g (extra,)g(optional)75 963 y(attribute)14 b(that)g(one)g(can)h(giv)o(e)g (to)e(an)i(in)o(tra-comm)o(unicator;)f(top)q(ologies)g(cannot)h(b)q(e)g (added)g(to)f(in)o(ter-)75 1019 y(comm)o(unicators.)19 b(A)d(top)q(ology)e(can)i(pro)o(vide)f(a)g(con)o(v)o(enien)o(t)h (naming)f(mec)o(hanism)h(for)e(the)i(pro)q(cesses)75 1076 y(of)j(a)f(group)h(\(within)h(a)e(comm)o(unicator\),)h(and)g (additionally)l(,)j(ma)o(y)c(assist)h(the)g(run)o(time)h(system)e(in)75 1132 y(mapping)e(the)f(pro)q(cesses)h(on)o(to)e(hardw)o(are.)166 1188 y(As)k(stated)f(in)i(c)o(hapter)e Fp(??)p Fu(,)h(a)f(pro)q(cess)i (group)e(in)i Fq(MPI)e Fu(is)i(a)e(collection)j(of)d Fo(n)h Fu(pro)q(cesses.)28 b(Eac)o(h)75 1245 y(pro)q(cess)17 b(in)h(the)e(group)h(is)g(assigned)g(a)g(rank)f(b)q(et)o(w)o(een)h Fo(0)g Fu(and)g Fo(n-1)p Fu(.)24 b(In)17 b(man)o(y)f(parallel)i (applications)75 1301 y(a)c(linear)h(ranking)g(of)f(pro)q(cesses)h(do)q (es)f(not)g(adequately)h(re\015ect)g(the)f(logical)h(comm)o(unication)g (pattern)75 1358 y(of)21 b(the)g(pro)q(cesses)g(\(whic)o(h)h(is)g (usually)g(determined)g(b)o(y)f(the)h(underlying)h(problem)f(geometry)e (and)75 1414 y(the)f(n)o(umerical)h(algorithm)g(used\).)31 b(Often)20 b(the)f(pro)q(cesses)g(are)g(arranged)g(in)h(top)q(ological) f(patterns)75 1471 y(suc)o(h)c(as)g(t)o(w)o(o-)e(or)i (three-dimensional)i(grids.)j(More)14 b(generally)l(,)i(the)f(logical)h (pro)q(cess)g(arrangemen)o(t)d(is)75 1527 y(describ)q(ed)19 b(b)o(y)f(a)f(graph.)25 b(In)18 b(this)g(c)o(hapter)f(w)o(e)g(will)i (refer)f(to)e(this)i(logical)g(pro)q(cess)g(arrangemen)o(t)e(as)75 1584 y(the)f(\\virtual)h(top)q(ology)l(.")166 1640 y(A)11 b(clear)g(distinction)i(m)o(ust)e(b)q(e)g(made)g(b)q(et)o(w)o(een)g (the)h(virtual)f(pro)q(cess)g(top)q(ology)g(and)g(the)g(top)q(ology)75 1697 y(of)j(the)h(underlying,)i(ph)o(ysical)f(hardw)o(are.)j(The)c (virtual)g(top)q(ology)f(can)h(b)q(e)h(exploited)g(b)o(y)f(the)f (system)75 1753 y(in)j(the)f(assignmen)o(t)h(of)e(pro)q(cesses)i(to)f (ph)o(ysical)h(pro)q(cessors,)f(if)h(this)g(helps)g(to)f(impro)o(v)o(e) g(the)g(comm)o(u-)75 1810 y(nication)i(p)q(erformance)f(on)g(a)g(giv)o (en)h(mac)o(hine.)26 b(Ho)o(w)17 b(this)g(mapping)h(is)g(done,)f(ho)o (w)o(ev)o(er,)g(is)g(outside)75 1866 y(the)e(scop)q(e)g(of)f Fq(MPI)p Fu(.)g(The)g(description)j(of)d(the)g(virtual)i(top)q(ology)l (,)e(on)h(the)f(other)g(hand,)h(dep)q(ends)h(only)75 1922 y(on)i(the)g(application,)i(and)e(is)h(mac)o(hine-indep)q(endent.) 30 b(The)19 b(functions)f(that)g(are)f(prop)q(osed)i(in)g(this)75 1979 y(c)o(hapter)c(deal)h(only)g(with)f(mac)o(hine-indep)q(en)q(den)o (t)j(mapping.)189 2067 y Fn(R)n(ationale.)55 b Fu(Though)18 b(ph)o(ysical)h(mapping)g(is)f(not)f(discussed,)j(the)e(existence)h(of) e(the)h(virtual)189 2123 y(top)q(ology)d(information)i(ma)o(y)e(b)q(e)i (used)f(as)g(advice)h(b)o(y)f(the)g(run)o(time)h(system.)22 b(There)16 b(are)g(w)o(ell-)189 2179 y(kno)o(wn)h(tec)o(hniques)h(for)f (mapping)h(grid/torus)f(structures)g(to)g(hardw)o(are)g(top)q(ologies)h (suc)o(h)f(as)189 2236 y(h)o(yp)q(ercub)q(es)k(or)f(grids.)35 b(F)l(or)20 b(more)g(complicated)h(graph)f(structures)g(go)q(o)q(d)h (heuristics)g(often)189 2292 y(yield)c(nearly)f(optimal)g(results)f ([5].)20 b(On)c(the)f(other)g(hand,)h(if)g(there)f(is)h(no)f(w)o(a)o(y) g(for)g(the)g(user)h(to)189 2349 y(sp)q(ecify)j(the)g(logical)g(pro)q (cess)g(arrangemen)o(t)e(as)h(a)g(\\virtual)g(top)q(ology)l(,")g(a)g (random)g(mapping)189 2405 y(is)f(most)f(lik)o(ely)j(to)d(result.)26 b(On)17 b(some)g(mac)o(hines,)g(this)h(will)g(lead)g(to)e(unnecessary)i (con)o(ten)o(tion)189 2462 y(in)g(the)f(in)o(terconnection)i(net)o(w)o (ork.)25 b(Some)17 b(details)h(ab)q(out)f(predicted)i(and)e(measured)h (p)q(erfor-)189 2518 y(mance)d(impro)o(v)o(emen)o(ts)f(that)g(result)i (from)e(go)q(o)q(d)h(pro)q(cess-to-pro)q(cessor)f(mapping)i(on)f(mo)q (dern)189 2575 y(w)o(ormhole-routing)g(arc)o(hitectures)g(can)h(b)q(e)f (found)h(in)g([4)o(,)f(3].)189 2647 y(Besides)22 b(p)q(ossible)g(p)q (erformance)f(b)q(ene\014ts,)h(the)f(virtual)g(top)q(ology)g(can)g (function)g(as)f(a)h(con-)189 2704 y(v)o(enien)o(t,)16 b(pro)q(cess-naming)h(structure,)f(with)g(tremendous)g(b)q(ene\014ts)h (for)f(program)f(readabilit)o(y)-32 46 y Fm(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 2 4 2 3 bop 75 -100 a Fu(2)928 b Fl(CHAPTER)15 b(1.)35 b(PR)o(OCESS)15 b(TOPOLOGIES)189 45 y Fu(and)g(notational)g(p)q(o)o(w)o(er)g(in)h (message-passing)f(programming.)20 b(\()p Fn(End)15 b(of)h(r)n (ationale.)p Fu(\))75 188 y Fr(1.2)59 b(Virtual)20 b(T)-5 b(op)r(ologies)75 290 y Fu(The)22 b(comm)o(unication)h(pattern)e(of)g (a)h(set)g(of)f(pro)q(cesses)h(can)g(b)q(e)h(represen)o(ted)f(b)o(y)g (a)f(graph.)40 b(The)75 346 y(no)q(des)14 b(stand)f(for)f(the)i(pro)q (cesses,)f(and)g(the)h(edges)f(connect)h(pro)q(cesses)f(that)g(comm)o (unicate)g(with)h(eac)o(h)75 403 y(other.)37 b Fq(MPI)21 b Fu(pro)o(vides)h(message-passing)f(b)q(et)o(w)o(een)h(an)o(y)e(pair)i (of)f(pro)q(cesses)g(in)h(a)f(group.)38 b(There)75 459 y(is)23 b(no)g(requiremen)o(t)g(for)f(op)q(ening)i(a)e(c)o(hannel)i (explicitly)l(.)46 b(Therefore,)24 b(a)e(\\missing)h(link")h(in)g(the) 75 516 y(user-de\014ned)19 b(pro)q(cess)e(graph)g(do)q(es)g(not)g(prev) o(en)o(t)g(the)g(corresp)q(onding)h(pro)q(cesses)g(from)e(exc)o (hanging)75 572 y(messages.)26 b(It)17 b(means)g(rather)g(that)g(this)h (connection)g(is)g(neglected)h(in)f(the)f(virtual)h(top)q(ology)l(.)26 b(This)75 629 y(strategy)21 b(implies)k(that)c(the)i(top)q(ology)f(giv) o(es)h(no)f(con)o(v)o(enien)o(t)h(w)o(a)o(y)f(of)g(naming)g(this)h (path)o(w)o(a)o(y)e(of)75 685 y(comm)o(unication.)28 b(Another)17 b(p)q(ossible)j(consequence)f(is)f(that)f(an)g(automatic)g (mapping)i(to)q(ol)e(\(if)h(one)75 741 y(exists)12 b(for)g(the)g(run)o (time)h(en)o(vironmen)o(t\))f(will)i(not)e(tak)o(e)f(accoun)o(t)h(of)g (this)g(edge)h(when)f(mapping.)20 b(Edges)75 798 y(in)13 b(the)g(comm)o(unication)g(graph)g(are)f(not)g(w)o(eigh)o(ted,)h(so)f (that)g(pro)q(cesses)h(are)f(either)h(simply)h(connected)75 854 y(or)h(not)f(connected)j(at)d(all.)189 961 y Fn(R)n(ationale.)55 b Fu(Exp)q(erience)20 b(with)e(similar)h(tec)o(hniques)g(in)g(P)l(ARMA) o(CS)f([1,)f(2])g(sho)o(w)g(that)h(this)189 1017 y(information)i(is)h (usually)h(su\016cien)o(t)f(for)e(a)h(go)q(o)q(d)g(mapping.)36 b(Additionally)l(,)24 b(a)c(more)g(precise)189 1074 y(sp)q (eci\014cation)e(is)f(more)f(di\016cult)i(for)e(the)g(user)h(to)f(set)g (up,)h(and)g(it)f(w)o(ould)h(mak)o(e)f(the)h(in)o(terface)189 1130 y(functions)f(substan)o(tially)g(more)f(complicated.)21 b(\()p Fn(End)15 b(of)i(r)n(ationale.)p Fu(\))166 1236 y(Sp)q(ecifying)22 b(the)e(virtual)g(top)q(ology)g(in)g(terms)g(of)f(a) g(graph)h(is)g(su\016cien)o(t)h(for)e(all)i(applications.)75 1293 y(Ho)o(w)o(ev)o(er,)12 b(in)i(man)o(y)e(applications)j(the)e (graph)g(structure)g(is)g(regular,)g(and)g(the)g(detailed)i(set-up)e (of)g(the)75 1349 y(graph)d(w)o(ould)i(b)q(e)f(incon)o(v)o(enien)o(t)h (for)e(the)h(user)g(and)g(migh)o(t)g(b)q(e)g(less)g(e\016cien)o(t)h(at) e(run)h(time.)19 b(A)10 b(large)h(frac-)75 1406 y(tion)j(of)g(all)h (parallel)h(applications)g(use)e(pro)q(cess)h(top)q(ologies)g(lik)o(e)g (rings,)f(t)o(w)o(o-)f(or)h(higher-dimensional)75 1462 y(grids,)19 b(or)f(tori.)28 b(These)19 b(structures)f(are)g(completely) h(de\014ned)h(b)o(y)e(the)h(n)o(um)o(b)q(er)f(of)g(dimensions)i(and)75 1519 y(the)15 b(n)o(um)o(b)q(ers)h(of)f(pro)q(cesses)g(in)h(eac)o(h)g (co)q(ordinate)f(direction.)22 b(Also,)15 b(the)g(mapping)h(of)f(grids) h(and)f(tori)75 1575 y(is)h(generally)h(an)f(easier)g(problem)g(then)g (that)f(of)g(general)h(graphs.)21 b(Th)o(us,)16 b(it)f(is)i(desirable)g (to)e(address)75 1631 y(these)g(cases)h(explicitly)l(.)166 1688 y(Pro)q(cess)i(co)q(ordinates)g(in)h(a)f(cartesian)g(structure)g (b)q(egin)h(their)f(n)o(um)o(b)q(ering)h(at)f(0.)28 b(Ro)o(w-ma)s(jor) 75 1744 y(n)o(um)o(b)q(ering)18 b(is)g(alw)o(a)o(ys)e(used)i(for)e(the) h(pro)q(cesses)h(in)f(a)g(cartesian)g(structure.)26 b(This)17 b(means)g(that,)g(for)75 1801 y(example,)i(the)f(relation)g(b)q(et)o(w) o(een)g(group)f(rank)h(and)g(co)q(ordinates)g(for)f(four)g(pro)q (cesses)h(in)h(a)e(\(2)11 b Fk(\002)i Fu(2\))75 1857 y(grid)j(is)f(as)g(follo)o(ws.)206 1949 y(co)q(ord)g(\(0,0\):)48 b(rank)15 b(0)206 2005 y(co)q(ord)g(\(0,1\):)48 b(rank)15 b(1)206 2062 y(co)q(ord)g(\(1,0\):)48 b(rank)15 b(2)206 2118 y(co)q(ord)g(\(1,1\):)48 b(rank)15 b(3)75 2249 y Fr(1.3)59 b(Emb)r(edding)18 b(in)i(MPI)75 2351 y Fu(The)13 b(supp)q(ort)f(for)g(virtual)h(top)q(ologies)g(as)f(de\014ned)h(in)h (this)e(c)o(hapter)h(is)f(consisten)o(t)h(with)g(other)f(parts)f(of)75 2407 y Fq(MPI)p Fu(,)k(and,)h(whenev)o(er)g(p)q(ossible,)h(mak)o(es)f (use)g(of)f(functions)i(that)e(are)h(de\014ned)h(elsewhere.)23 b(T)l(op)q(ology)75 2464 y(information)e(is)g(asso)q(ciated)h(with)f (comm)o(unicators.)36 b(It)21 b(is)h(added)f(to)g(comm)o(unicators)f (using)i(the)75 2520 y(cac)o(hing)16 b(mec)o(hanism)g(describ)q(ed)h (in)f(Chapter)f Fp(??)p Fu(.)1967 46 y Fm(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 3 5 3 4 bop 75 -100 a Fl(1.4.)34 b(O)o(VER)-5 b(VIEW)16 b(OF)f(THE)g (FUNCTIONS)933 b Fu(3)75 45 y Fr(1.4)59 b(Overview)19 b(of)h(the)f(F)n(unctions)75 147 y Fu(The)h(functions)h Fq(MPI)p 459 147 14 2 v 15 w(GRAPH)p 624 147 V 18 w(CREA)l(TE)g Fu(and)f Fq(MPI)p 1007 147 V 16 w(CART)p 1142 147 V 17 w(CREA)l(TE)h Fu(are)e(used)i(to)e(create)g(general)75 203 y(\(graph\))e(virtual)h(top)q(ologies)g(and)g(cartesian)g(top)q (ologies,)g(resp)q(ectiv)o(ely)l(.)29 b(These)18 b(top)q(ology)g (creation)75 259 y(functions)13 b(are)g(collectiv)o(e.)21 b(As)12 b(with)h(other)g(collectiv)o(e)h(calls,)g(the)f(program)f(m)o (ust)g(b)q(e)h(written)g(to)f(w)o(ork)75 316 y(correctly)l(,)j(whether) h(the)f(call)h(sync)o(hronizes)g(or)f(not.)166 372 y(The)21 b(top)q(ology)f(creation)h(functions)g(tak)o(e)f(as)g(input)i(an)e (existing)i(comm)o(unicator)e Fq(comm)p 1794 372 V 14 w(old)p Fu(,)75 429 y(whic)o(h)d(de\014nes)f(the)g(set)g(of)f(pro)q (cesses)h(on)g(whic)o(h)h(the)f(top)q(ology)f(is)h(to)f(b)q(e)i(mapp)q (ed.)22 b(A)16 b(new)g(comm)o(u-)75 485 y(nicator)h Fq(comm)p 351 485 V 14 w(top)q(ol)g Fu(is)g(created)g(that)e(carries)i(the)g(top) q(ological)g(structure)g(as)f(cac)o(hed)h(information)75 542 y(\(see)22 b(Chapter)f Fp(??)p Fu(\).)38 b(In)23 b(analogy)e(to)g(function)h Fq(MPI)p 1044 542 V 16 w(COMM)p 1202 542 V 17 w(CREA)l(TE)p Fu(,)g(no)g(cac)o(hed)g(information)75 598 y(propagates)14 b(from)h Fq(comm)p 533 598 V 14 w(old)g Fu(to)g Fq(comm)p 792 598 V 14 w(top)q(ol)p Fu(.)166 655 y Fq(MPI)p 251 655 V 16 w(CART)p 386 655 V 17 w(CREA)l(TE)j Fu(can)g(b)q(e)g(used)g(to)f(describ)q(e)i(cartesian)f(structures)f(of) g(arbitrary)g(dimen-)75 711 y(sion.)i(F)l(or)12 b(eac)o(h)h(co)q (ordinate)g(direction)g(one)g(sp)q(eci\014es)h(whether)f(the)f(pro)q (cess)h(structure)f(is)h(p)q(erio)q(dic)h(or)75 768 y(not.)19 b(Note)c(that)f(an)h Fj(n)p Fu(-dimensional)j(h)o(yp)q(ercub)q(e)e(is)g (an)e Fj(n)p Fu(-dimensional)k(torus)c(with)i(2)e(pro)q(cesses)h(p)q (er)75 824 y(co)q(ordinate)h(direction.)22 b(Th)o(us,)15 b(sp)q(ecial)i(supp)q(ort)e(for)g(h)o(yp)q(ercub)q(e)i(structures)e(is) h(not)f(necessary)l(.)21 b(The)75 880 y(lo)q(cal)13 b(auxiliary)h (function)f Fq(MPI)p 626 880 V 15 w(DIMS)p 752 880 V 16 w(CREA)l(TE)h Fu(can)e(b)q(e)h(used)f(to)g(compute)g(a)g(balanced)h (distribution)75 937 y(of)i(pro)q(cesses)g(among)g(a)g(giv)o(en)g(n)o (um)o(b)q(er)h(of)f(dimensions.)189 1043 y Fn(R)n(ationale.)k Fu(Similar)d(functions)g(are)e(con)o(tained)h(in)h(EXPRESS)f([6)o(])g (and)f(P)l(ARMA)o(CS.)h(\()p Fn(End)g(of)189 1100 y(r)n(ationale.)p Fu(\))166 1206 y(The)i(function)g Fq(MPI)p 525 1206 V 16 w(TOPO)p 667 1206 V 17 w(TEST)f Fu(can)h(b)q(e)g(used)g(to)f (inquire)i(ab)q(out)e(the)h(top)q(ology)f(asso)q(ciated)75 1262 y(with)g(a)f(comm)o(unicator.)20 b(The)c(top)q(ological)g (information)f(can)h(b)q(e)g(extracted)f(from)g(the)g(comm)o(unica-)75 1319 y(tor)h(using)h(the)g(functions)h Fq(MPI)p 633 1319 V 15 w(GRAPHDIMS)p 909 1319 V 17 w(GET)f Fu(and)g Fq(MPI)p 1203 1319 V 16 w(GRAPH)p 1369 1319 V 18 w(GET)p Fu(,)f(for)g(general)i (graphs,)75 1375 y(and)e Fq(MPI)p 249 1375 V 15 w(CARTDIM)p 469 1375 V 17 w(GET)f Fu(and)h Fq(MPI)p 760 1375 V 16 w(CART)p 895 1375 V 17 w(GET)p Fu(,)f(for)g(cartesian)g(top)q(ologies.) 21 b(Sev)o(eral)16 b(additional)75 1432 y(functions)f(are)f(pro)o (vided)h(to)f(manipulate)i(cartesian)e(top)q(ologies:)20 b(the)15 b(functions)g Fq(MPI)p 1603 1432 V 16 w(CART)p 1738 1432 V 17 w(RANK)75 1488 y Fu(and)f Fq(MPI)p 247 1488 V 16 w(CART)p 382 1488 V 17 w(COORDS)h Fu(translate)e(cartesian)h (co)q(ordinates)f(in)o(to)h(a)f(group)h(rank,)f(and)h(vice-v)o(ersa;)75 1545 y(the)20 b(function)h Fq(MPI)p 426 1545 V 16 w(CART)p 561 1545 V 17 w(SUB)g Fu(can)f(b)q(e)h(used)g(to)f(extract)f(a)h (cartesian)g(subspace)h(\(analogous)f(to)75 1601 y Fq(MPI)p 160 1601 V 16 w(COMM)p 318 1601 V 16 w(SPLIT)p Fu(\).)e(The)i(function) g Fq(MPI)p 868 1601 V 16 w(CART)p 1003 1601 V 17 w(SHIFT)f Fu(pro)o(vides)g(the)h(information)f(needed)i(to)75 1658 y(comm)o(unicate)46 b(with)h(neigh)o(b)q(ors)f(in)h(a)f(cartesian)g (dimension.)114 b(The)47 b(t)o(w)o(o)d(functions)75 1714 y Fq(MPI)p 160 1714 V 16 w(GRAPH)p 326 1714 V 17 w(NEIGHBORS)p 594 1714 V 19 w(COUNT)19 b Fu(and)h Fq(MPI)p 963 1714 V 15 w(GRAPH)p 1128 1714 V 18 w(NEIGHBORS)h Fu(can)e(b)q(e)h(used)f(to) g(extract)75 1770 y(the)h(neigh)o(b)q(ors)g(of)f(a)g(no)q(de)h(in)h(a)e (graph.)33 b(The)19 b(function)i Fq(MPI)p 1204 1770 V 16 w(CART)p 1339 1770 V 17 w(SUB)f Fu(is)g(collectiv)o(e)h(o)o(v)o(er)e (the)75 1827 y(input)d(comm)o(unicator's)f(group;)f(all)i(other)f (functions)h(are)f(lo)q(cal.)166 1883 y(Tw)o(o)c(additional)i (functions,)g Fq(MPI)p 767 1883 V 16 w(GRAPH)p 933 1883 V 18 w(MAP)f Fu(and)g Fq(MPI)p 1229 1883 V 16 w(CART)p 1364 1883 V 17 w(MAP)g Fu(are)g(presen)o(ted)g(in)h(the)75 1940 y(last)f(section.)19 b(In)12 b(general)g(these)g(functions)h(are)e (not)g(called)i(b)o(y)f(the)g(user)f(directly)l(.)21 b(Ho)o(w)o(ev)o(er,)11 b(together)75 1996 y(with)j(the)g(comm)o (unicator)f(manipulation)i(functions)g(presen)o(ted)f(in)g(Chapter)f Fp(??)p Fu(,)g(they)h(are)f(su\016cien)o(t)75 2053 y(to)i(implemen)o(t) h(all)g(other)f(top)q(ology)g(functions.)20 b(Section)d(1.5.7)c (outlines)k(suc)o(h)e(an)g(implemen)o(tation.)-32 46 y Fm(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 4 6 4 5 bop 75 -100 a Fu(4)928 b Fl(CHAPTER)15 b(1.)35 b(PR)o(OCESS)15 b(TOPOLOGIES)75 45 y Fr(1.5)59 b(T)-5 b(op)r(ology)19 b(Constructo)n(rs)75 148 y Fi(1.5.1)49 b(Ca)o(rtesian)16 b(Constructo)o(r)75 329 y Fq(MPI)p 160 329 14 2 v 16 w(CART)p 295 329 V 17 w(CREA)l(TE\(comm)p 616 329 V 15 w(old,)f(ndims,)g(dims,)g(p)q(erio)q(ds,)h(reo)o(rder,)e(comm)p 1412 329 V 14 w(ca)o(rt\))117 406 y Fh(IN)171 b Fq(comm)p 454 406 V 14 w(old)383 b Fh(input)14 b(comm)o(unicator)d(\(handle\))117 481 y(IN)171 b Fq(ndims)460 b Fh(n)o(um)o(b)q(er)13 b(of)h(dimensions)e (of)i(cartesian)g(grid)g(\(in)o(teger\))117 556 y(IN)171 b Fq(dims)483 b Fh(in)o(teger)19 b(arra)o(y)f(of)f(size)i Fg(ndims)f Fh(sp)q(ecifying)g(the)g(n)o(um)o(b)q(er)g(of)905 612 y(pro)q(cesses)f(in)c(eac)o(h)i(dimension)117 688 y(IN)171 b Fq(p)q(erio)q(ds)436 b Fh(logical)12 b(arra)o(y)h(of)g(size) h Fg(ndims)f Fh(sp)q(ecifying)g(whether)h(the)g(grid)905 744 y(is)g(p)q(erio)q(dic)g(\()p Fg(true)p Fh(\))h(or)f(not)g(\()p Fg(false)p Fh(\))g(in)g(eac)o(h)g(dimension)117 819 y(IN)171 b Fq(reo)o(rder)438 b Fh(ranking)10 b(ma)o(y)g(b)q(e)h(reordered)i(\()p Fg(true)p Fh(\))f(or)f(not)g(\()p Fg(false)p Fh(\))g(\(logical\))117 894 y(OUT)124 b Fq(comm)p 454 894 V 14 w(ca)o(rt)367 b Fh(comm)o(unicator)11 b(with)j(new)g(cartesian)h(top)q(ology)d (\(handle\))75 1019 y Fo(int)23 b(MPI)p 245 1019 15 2 v 17 w(Cart)p 358 1019 V 17 w(create\(MPI)p 615 1019 V 16 w(Comm)g(comm)p 846 1019 V 17 w(old,)g(int)g(ndims,)g(int)h (*dims,)f(int)g(*periods,)393 1075 y(int)h(reorder,)e(MPI)p 778 1075 V 17 w(Comm)h(*comm)p 1034 1075 V 17 w(cart\))75 1162 y(MPI)p 150 1162 V 17 w(CART)p 263 1162 V 16 w(CREATE\(COMM)p 543 1162 V 16 w(OLD,)g(NDIMS,)g(DIMS,)h(PERIODS,)e(REORDER,)h(COMM)p 1514 1162 V 17 w(CART,)g(IERROR\))170 1218 y(INTEGER)g(COMM)p 460 1218 V 17 w(OLD,)g(NDIMS,)g(DIMS\(*\),)g(COMM)p 1074 1218 V 17 w(CART,)g(IERROR)170 1275 y(LOGICAL)g(PERIODS\(*\),)g (REORDER)166 1361 y Fq(MPI)p 251 1361 14 2 v 16 w(CART)p 386 1361 V 17 w(CREA)l(TE)18 b Fu(returns)f(a)g(handle)i(to)e(a)g(new)g (comm)o(unicator)g(to)g(whic)o(h)h(the)g(cartesian)75 1418 y(top)q(ology)13 b(information)g(is)g(attac)o(hed.)19 b(If)13 b Fq(reo)o(rder)f(=)h(false)h Fu(then)f(the)g(rank)g(of)f(eac)o (h)h(pro)q(cess)h(in)g(the)f(new)75 1474 y(group)g(is)g(iden)o(tical)i (to)d(its)h(rank)g(in)h(the)f(old)h(group.)k(Otherwise,)c(the)f (function)h(ma)o(y)e(reorder)h(the)g(pro-)75 1530 y(cesses)h(\(p)q (ossibly)i(so)d(as)h(to)g(c)o(ho)q(ose)g(a)f(go)q(o)q(d)h(em)o(b)q (edding)i(of)e(the)g(virtual)h(top)q(ology)e(on)o(to)g(the)i(ph)o (ysical)75 1587 y(mac)o(hine\).)k(If)12 b(the)g(total)f(size)i(of)e (the)h(cartesian)g(grid)g(is)g(smaller)h(than)f(the)f(size)i(of)f(the)f (group)h(of)f Fq(comm)p Fu(,)75 1643 y(then)k(some)g(pro)q(cesses)h (are)f(returned)g Fg(MPI)p 826 1643 13 2 v 15 w(COMM)p 971 1643 V 14 w(NULL)p Fu(,)h(in)g(analogy)f(to)f Fq(MPI)p 1475 1643 14 2 v 16 w(COMM)p 1633 1643 V 17 w(SPLIT)p Fu(.)g(The)75 1700 y(call)i(is)g(erroneous)f(if)h(it)f(sp)q(eci\014es)i (a)e(grid)h(that)e(is)i(larger)f(than)g(the)g(group)g(size.)75 1822 y Fi(1.5.2)49 b(Ca)o(rtesian)16 b(Convenience)g(F)o(unction:)21 b(MPI)p 996 1822 15 2 v 18 w(DIMS)p 1131 1822 V 18 w(CREA)l(TE)75 1907 y Fu(F)l(or)15 b(cartesian)h(top)q(ologies,)g(the)g(function)g Fq(MPI)p 919 1907 14 2 v 16 w(DIMS)p 1046 1907 V 16 w(CREA)l(TE)h Fu(helps)g(the)f(user)g(select)g(a)g(balanced)75 1964 y(distribution)k(of)f(pro)q(cesses)g(p)q(er)g(co)q(ordinate)g (direction,)i(dep)q(ending)g(on)d(the)h(n)o(um)o(b)q(er)g(of)g(pro)q (cesses)75 2020 y(in)i(the)f(group)g(to)f(b)q(e)i(balanced)h(and)e (optional)h(constrain)o(ts)e(that)h(can)g(b)q(e)h(sp)q(eci\014ed)h(b)o (y)e(the)g(user.)75 2077 y(One)f(use)g(is)h(to)e(partition)h(all)g(the) g(pro)q(cesses)g(\(the)f(size)i(of)e Fg(MPI)p 1227 2077 13 2 v 15 w(COMM)p 1372 2077 V 14 w(W)o(ORLD)p Fu('s)g(group\))g(in)o (to)h(an)75 2133 y Fj(n)p Fu(-dimensional)f(top)q(ology)l(.)75 2284 y Fq(MPI)p 160 2284 14 2 v 16 w(DIMS)p 287 2284 V 16 w(CREA)l(TE\(nno)q(des,)f(ndims,)e(dims\))117 2361 y Fh(IN)171 b Fq(nno)q(des)441 b Fh(n)o(um)o(b)q(er)13 b(of)h(no)q(des)g(in)g(a)f(grid)h(\(in)o(teger\))117 2436 y(IN)171 b Fq(ndims)460 b Fh(n)o(um)o(b)q(er)13 b(of)h(cartesian)g(dimensions)f(\(in)o(teger\))117 2512 y(INOUT)78 b Fq(dims)483 b Fh(in)o(teger)18 b(arra)o(y)f(of)f(size)i Ff(ndims)e Fh(sp)q(ecifying)h(the)h(n)o(um)o(b)q(er)f(of)905 2568 y(no)q(des)e(in)e(eac)o(h)i(dimension)75 2692 y Fo(int)23 b(MPI)p 245 2692 15 2 v 17 w(Dims)p 358 2692 V 17 w(create\(int)f(nnodes,)h(int)h(ndims,)f(int)g(*dims\))1967 46 y Fm(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 5 7 5 6 bop 75 -100 a Fl(1.5.)34 b(TOPOLOGY)16 b(CONSTR)o(UCTORS)1003 b Fu(5)75 45 y Fo(MPI)p 150 45 15 2 v 17 w(DIMS)p 263 45 V 16 w(CREATE\(NNODES,)22 b(NDIMS,)h(DIMS,)h(IERROR\))170 102 y(INTEGER)f(NNODES,)g(NDIMS,)g(DIMS\(*\),)g(IERROR)166 188 y Fu(The)13 b(en)o(tries)h(in)f(the)g(arra)o(y)f Fq(dims)h Fu(are)g(set)f(to)h(describ)q(e)i(a)d(cartesian)h(grid)h (with)f Fq(ndims)g Fu(dimensions)75 244 y(and)g(a)g(total)g(of)f Fq(nno)q(des)k Fu(no)q(des.)j(The)14 b(dimensions)h(are)d(set)h(to)g(b) q(e)h(as)e(close)i(to)f(eac)o(h)g(other)g(as)g(p)q(ossible,)75 301 y(using)i(an)g(appropriate)g(divisibili)q(t)o(y)i(algorithm.)i(The) c(caller)h(ma)o(y)e(further)g(constrain)h(the)g(op)q(eration)75 357 y(of)e(this)h(routine)g(b)o(y)g(sp)q(ecifying)h(elemen)o(ts)f(of)f (arra)o(y)g Fo(dims)p Fu(.)19 b(If)13 b Fo(dims[i])g Fu(is)h(set)f(to)g(a)g(p)q(ositiv)o(e)i(n)o(um)o(b)q(er,)75 414 y(the)i(routine)g(will)h(not)e(mo)q(dify)i(the)e(n)o(um)o(b)q(er)h (of)f(no)q(des)i(in)f(dimension)h Fo(i)p Fu(;)f(only)g(those)g(en)o (tries)g(where)75 470 y Fo(dims[i])23 b(=)h(0)15 b Fu(are)g(mo)q (di\014ed)h(b)o(y)f(the)h(call.)166 527 y(Negativ)o(e)e(input)i(v)m (alues)f(of)f Fo(dims[i])f Fu(are)h(erroneous.)20 b(An)15 b(error)e(will)j(o)q(ccur)f(if)g Fo(nnodes)e Fu(is)i(not)f(a)75 583 y(m)o(ultiple)j(of)366 543 y Fe(Y)305 637 y Fd(i;dims)p Fc([)p Fd(i)p Fc(])p Fb(6)p Fc(=0)489 583 y Fj(dims)p Fu([)p Fj(i)p Fu(].)166 685 y(F)l(or)g Fo(dims[i])g Fu(set)g(b)o(y)g (the)h(call,)h Fo(dims[i])e Fu(will)i(b)q(e)f(ordered)g(in)h (non-increasing)g(order.)27 b(Arra)o(y)75 741 y Fo(dims)20 b Fu(is)i(suitable)g(for)f(use)g(as)g(input)h(to)e(routine)i Fq(MPI)p 1076 741 14 2 v 16 w(CART)p 1211 741 V 17 w(CREA)l(TE)p Fu(.)g Fq(MPI)p 1514 741 V 15 w(DIMS)p 1640 741 V 16 w(CREA)l(TE)g Fu(is)75 798 y(lo)q(cal.)75 1055 y Fp(Example)c(1.1)p 380 873 1247 2 v 379 930 2 57 v 405 913 a Fo(dims)p 634 930 V 159 w Fu(function)e(call)p 1303 930 V 424 w Fo(dims)p 1626 930 V 379 986 V 405 969 a Fu(b)q(efore)g(call)p 634 986 V 1303 986 V 720 w(on)f(return)p 1626 986 V 380 988 1247 2 v 379 1044 2 57 v 405 1027 a(\(0,0\))p 634 1044 V 160 w Fq(MPI)p 745 1027 14 2 v 16 w(DIMS)p 872 1027 V 15 w(CREA)l(TE\(6,)h(2,)e(dims\))p 1303 1044 2 57 v 50 w Fu(\(3,2\))p 1626 1044 V 379 1101 V 405 1084 a(\(0,0\))p 634 1101 V 160 w Fq(MPI)p 745 1084 14 2 v 16 w(DIMS)p 872 1084 V 15 w(CREA)l(TE\(7,)i(2,)e(dims\))p 1303 1101 2 57 v 50 w Fu(\(7,1\))p 1626 1101 V 379 1157 V 405 1140 a(\(0,3,0\))p 634 1157 V 124 w Fq(MPI)p 745 1140 14 2 v 16 w(DIMS)p 872 1140 V 15 w(CREA)l(TE\(6,)i(3,)e(dims\))p 1303 1157 2 57 v 50 w Fu(\(2,3,1\))p 1626 1157 V 379 1214 V 405 1197 a(\(0,3,0\))p 634 1214 V 124 w Fq(MPI)p 745 1197 14 2 v 16 w(DIMS)p 872 1197 V 15 w(CREA)l(TE\(7,)i(3,)e (dims\))p 1303 1214 2 57 v 50 w Fu(erroneous)h(call)p 1626 1214 V 380 1215 1247 2 v 75 1399 a Fi(1.5.3)49 b(General)16 b(\(Graph\))f(Constructo)o(r)75 1579 y Fq(MPI)p 160 1579 14 2 v 16 w(GRAPH)p 326 1579 V 17 w(CREA)l(TE\(comm)p 647 1579 V 16 w(old,)g(nno)q(des,)h(index,)g(edges,)g(reo)o(rder,)e (comm)p 1443 1579 V 14 w(graph\))358 b Fk(>)117 1656 y Fh(IN)171 b Fq(comm)p 454 1656 V 14 w(old)383 b Fh(input)14 b(comm)o(unicator)d(top)q(ology)i(\(handle\))327 b Fk(?)117 1731 y Fh(IN)171 b Fq(nno)q(des)441 b Fh(n)o(um)o(b)q(er)13 b(of)h(no)q(des)g(in)g(graph)g(\(in)o(teger\))117 1806 y(IN)171 b Fq(index)473 b Fh(arra)o(y)14 b(of)f(in)o(tegers)i (describing)f(no)q(de)h(degrees)g(\(see)g(b)q(elo)o(w\))117 1882 y(IN)171 b Fq(edges)468 b Fh(arra)o(y)14 b(of)f(in)o(tegers)i (describing)f(graph)g(edges)h(\(see)g(b)q(elo)o(w\))117 1957 y(IN)171 b Fq(reo)o(rder)438 b Fh(ranking)10 b(ma)o(y)g(b)q(e)h (reordered)i(\()p Fg(true)p Fh(\))f(or)f(not)g(\()p Fg(false)p Fh(\))g(\(logical\))117 2032 y(OUT)124 b Fq(comm)p 454 2032 V 14 w(graph)333 b Fh(comm)o(unicator)11 b(with)j(graph)g(top)q (ology)e(added)i(\(handle\))75 2156 y Fo(int)23 b(MPI)p 245 2156 15 2 v 17 w(Graph)p 382 2156 V 17 w(create\(MPI)p 639 2156 V 16 w(Comm)g(comm)p 870 2156 V 16 w(old,)h(int)f(nnodes,)g (int)h(*index,)f(int)g(*edges,)393 2213 y(int)h(reorder,)e(MPI)p 778 2213 V 17 w(Comm)h(*comm)p 1034 2213 V 17 w(graph\))75 2299 y(MPI)p 150 2299 V 17 w(GRAPH)p 287 2299 V 16 w(CREATE\(COMM)p 567 2299 V 16 w(OLD,)g(NNODES,)g(INDEX,)g(EDGES,)g(REORDER,)g(COMM)p 1538 2299 V 17 w(GRAPH,)393 2356 y(IERROR\))170 2412 y(INTEGER)g(COMM)p 460 2412 V 17 w(OLD,)g(NNODES,)g(INDEX\(*\),)g (EDGES\(*\),)f(COMM)p 1360 2412 V 17 w(GRAPH,)h(IERROR)170 2469 y(LOGICAL)g(REORDER)166 2555 y Fq(MPI)p 251 2555 14 2 v 16 w(GRAPH)p 417 2555 V 17 w(CREA)l(TE)f Fu(returns)e(a)g (handle)h(to)f(a)g(new)g(comm)o(unicator)g(to)g(whic)o(h)h(the)f(graph) 75 2611 y(top)q(ology)e(information)h(is)g(attac)o(hed.)30 b(If)19 b Fq(reo)o(rder)f(=)h(false)g Fu(then)g(the)g(rank)f(of)h(eac)o (h)f(pro)q(cess)h(in)h(the)75 2668 y(new)13 b(group)g(is)h(iden)o (tical)h(to)d(its)i(rank)f(in)h(the)f(old)g(group.)19 b(Otherwise,)14 b(the)g(function)g(ma)o(y)e(reorder)h(the)-32 46 y Fm(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 6 8 6 7 bop 75 -100 a Fu(6)928 b Fl(CHAPTER)15 b(1.)35 b(PR)o(OCESS)15 b(TOPOLOGIES)75 45 y Fu(pro)q(cesses.)25 b(If)17 b(the)g(size,)h Fq(nno)q(des)p Fu(,)h(of)e(the)g(graph)f(is)i(smaller)f(than)g(the)g (size)h(of)e(the)h(group)g(of)f Fq(comm)p Fu(,)75 102 y(then)f(some)f(pro)q(cesses)h(are)f(returned)g Fg(MPI)p 822 102 13 2 v 15 w(COMM)p 967 102 V 14 w(NULL)p Fu(,)h(in)h(analogy)e (to)f Fq(MPI)p 1468 102 14 2 v 16 w(CART)p 1603 102 V 17 w(CREA)l(TE)j Fu(and)75 158 y Fq(MPI)p 160 158 V 16 w(COMM)p 318 158 V 16 w(SPLIT)p Fu(.)c(The)h(call)h(is)g(erroneous)e (if)i(it)f(sp)q(eci\014es)h(a)f(graph)f(that)h(is)g(larger)g(than)f (the)h(group)75 214 y(size)j(of)f(the)g(input)h(comm)o(unicator.)166 271 y(The)d(three)h(parameters)e Fq(nno)q(des,)j(index)f Fu(and)g Fq(edges)g Fu(de\014ne)g(the)f(graph)g(structure.)19 b Fq(nno)q(des)c Fu(is)f(the)75 327 y(n)o(um)o(b)q(er)f(of)g(no)q(des)g (of)f(the)h(graph.)19 b(The)13 b(no)q(des)h(are)e(n)o(um)o(b)q(ered)i (from)e Fo(0)h Fu(to)f Fo(nnodes-1)p Fu(.)18 b(The)13 b Fo(i)p Fu(th)f(en)o(try)75 384 y(of)k(arra)o(y)e Fq(index)j Fu(stores)f(the)g(total)f(n)o(um)o(b)q(er)h(of)g(neigh)o(b)q(ors)h(of)e (the)h(\014rst)g Fo(i)g Fu(graph)g(no)q(des.)22 b(The)17 b(lists)f(of)75 440 y(neigh)o(b)q(ors)d(of)g(no)q(des)g Fo(0,)24 b(1,)f Fj(:)8 b(:)g(:)e Fo(,)24 b(nnodes-1)11 b Fu(are)h(stored)h(in)g(consecutiv)o(e)h(lo)q(cations)f(in)h(arra)o(y) d Fq(edges)p Fu(.)75 497 y(The)16 b(arra)o(y)e Fq(edges)i Fu(is)g(a)f(\015attened)h(represen)o(tation)f(of)g(the)h(edge)f(lists.) 21 b(The)16 b(total)f(n)o(um)o(b)q(er)h(of)f(en)o(tries)75 553 y(in)h Fq(index)g Fu(is)g Fq(nno)q(des)h Fu(and)e(the)g(total)g(n)o (um)o(b)q(er)g(of)g(en)o(tries)h(in)g Fq(edges)g Fu(is)f(equal)h(to)f (the)g(n)o(um)o(b)q(er)h(of)e(graph)75 610 y(edges.)166 666 y(The)19 b(de\014nitions)h(of)e(the)h(argumen)o(ts)f Fo(nnodes)p Fu(,)g Fo(index)p Fu(,)h(and)g Fo(edges)f Fu(are)g(illustrated)i(with)f(the)75 723 y(follo)o(wing)d(simple)h (example.)75 827 y Fp(Example)h(1.2)k Fu(Assume)g(there)g(are)g(four)f (pro)q(cesses)i(0,)g(1,)f(2,)h(3)f(with)g(the)g(follo)o(wing)h (adjacency)75 884 y(matrix:)p 181 929 433 2 v 180 985 2 57 v 206 968 a(pro)q(cess)p 373 985 V 50 w(neigh)o(b)q(ors)p 613 985 V 181 987 433 2 v 180 1043 2 57 v 266 1026 a(0)p 373 1043 V 110 w(1,)15 b(3)p 613 1043 V 180 1100 V 266 1083 a(1)p 373 1100 V 110 w(0)p 613 1100 V 180 1156 V 266 1139 a(2)p 373 1156 V 110 w(3)p 613 1156 V 180 1213 V 266 1196 a(3)p 373 1213 V 110 w(0,)g(2)p 613 1213 V 181 1214 433 2 v 166 1289 a(Then,)g(the)h(input)g(argumen)o(ts)e(are:) 206 1381 y(nno)q(des)i(=)50 b(4)206 1437 y(index)16 b(=)81 b(2,)15 b(3,)f(4,)h(6)206 1494 y(edges)g(=)82 b(1,)15 b(3,)f(0,)h(3,)f(0,)h(2)166 1586 y(Th)o(us,)h(in)h(C,)e Fo(index[0])g Fu(is)i(the)f(degree)g(of)g(no)q(de)h(zero,)f(and)g Fo(index[i])23 b(-)h(index[i-1])14 b Fu(is)j(the)75 1642 y(degree)22 b(of)g(no)q(de)g Fo(i,)i(i=1,)f Fj(:)8 b(:)g(:)e Fo(,)23 b(nnodes-1)p Fu(;)h(the)e(list)h(of)e(neigh)o(b)q(ors)i(of)e (no)q(de)i(zero)e(is)i(stored)e(in)75 1699 y Fo(edges[j])p Fu(,)14 b(for)h Fo(0)e Fk(\024)h Fo(j)f Fk(\024)h Fo(index)p Fu([)p Fo(0)p Fu(])9 b Fk(\000)h Fo(1)16 b Fu(and)g(the)f(list)i(of)e (neigh)o(b)q(ors)h(of)f(no)q(de)i Fo(i)p Fu(,)e Fo(i)e Fj(>)h Fo(0)p Fu(,)h(is)h(stored)f(in)75 1755 y Fo(edges[j])p Fu(,)f Fo(index)p Fu([)p Fo(i)9 b Fk(\000)h Fo(1)p Fu(])i Fk(\024)h Fo(j)g Fk(\024)g Fo(index)p Fu([)p Fo(i)p Fu(])8 b Fk(\000)j Fo(1)p Fu(.)166 1811 y(In)17 b(F)l(ortran,)f Fo(index\(1\))f Fu(is)j(the)e(degree)i(of)e(no)q(de)h(zero,)g(and)g Fo(index\(i+1\))22 b(-)i(index\(i\))16 b Fu(is)h(the)75 1868 y(degree)22 b(of)g(no)q(de)g Fo(i,)i(i=1,)f Fj(:)8 b(:)g(:)e Fo(,)23 b(nnodes-1)p Fu(;)h(the)e(list)h(of)e(neigh)o(b)q (ors)i(of)e(no)q(de)i(zero)e(is)i(stored)e(in)75 1924 y Fo(edges\(j\))p Fu(,)d(for)g Fo(1)f Fk(\024)i Fo(j)f Fk(\024)g Fo(index)p Fu(\()p Fo(1)p Fu(\))f(and)i(the)f(list)h(of)f (neigh)o(b)q(ors)h(of)f(no)q(de)i Fo(i)p Fu(,)e Fo(i)g Fj(>)h Fo(0)p Fu(,)f(is)h(stored)f(in)75 1981 y Fo(edges\(j\))p Fu(,)c Fo(index)p Fu(\()p Fo(i)p Fu(\))8 b(+)j Fo(1)h Fk(\024)h Fo(j)g Fk(\024)g Fo(index)p Fu(\()p Fo(i)c Fu(+)h Fo(1)p Fu(\).)189 2086 y Fn(A)n(dvic)n(e)17 b(to)i (implementors.)56 b Fu(The)19 b(follo)o(wing)f(top)q(ology)g (information)g(is)g(lik)o(ely)i(to)d(b)q(e)h(stored)189 2142 y(with)d(a)g(comm)o(unicator:)243 2236 y Fk(\017)23 b Fu(T)o(yp)q(e)15 b(of)g(top)q(ology)g(\(cartesian/graph\),)243 2308 y Fk(\017)23 b Fu(F)l(or)14 b(a)h(cartesian)g(top)q(ology:)316 2381 y(1.)22 b Fo(ndims)14 b Fu(\(n)o(um)o(b)q(er)h(of)g(dimensions\),) 316 2445 y(2.)22 b Fo(dims)14 b Fu(\(n)o(um)o(b)q(ers)h(of)g(pro)q (cesses)h(p)q(er)f(co)q(ordinate)h(direction\),)316 2510 y(3.)22 b Fo(periods)14 b Fu(\(p)q(erio)q(dicit)o(y)j(information\),) 316 2574 y(4.)22 b Fo(own_position)12 b Fu(\(o)o(wn)h(p)q(osition)i(in) f(grid,)h(could)f(also)g(b)q(e)h(computed)f(from)f(rank)h(and)374 2631 y(dims\))243 2704 y Fk(\017)23 b Fu(F)l(or)14 b(a)h(graph)g(top)q (ology:)1967 46 y Fm(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 7 9 7 8 bop 75 -100 a Fl(1.5.)34 b(TOPOLOGY)16 b(CONSTR)o(UCTORS)1003 b Fu(7)316 45 y(1.)22 b Fo(index)p Fu(,)316 110 y(2.)g Fo(edges)p Fu(,)289 183 y(whic)o(h)16 b(are)f(the)g(v)o(ectors)f (de\014ning)j(the)e(graph)g(structure.)189 277 y(F)l(or)k(a)g(graph)h (structure)f(the)h(n)o(um)o(b)q(er)g(of)f(no)q(des)i(is)f(equal)h(to)e (the)h(n)o(um)o(b)q(er)g(of)f(pro)q(cesses)h(in)189 333 y(the)h(group.)36 b(Therefore,)22 b(the)f(n)o(um)o(b)q(er)g(of)g(no)q (des)g(do)q(es)g(not)g(ha)o(v)o(e)f(to)g(b)q(e)i(stored)e(explicitly)l (.)189 390 y(An)c(additional)i(zero)f(en)o(try)f(at)f(the)i(start)e(of) h(arra)o(y)f Fq(index)j Fu(simpli\014es)g(access)f(to)f(the)g(top)q (ology)189 446 y(information.)k(\()p Fn(End)15 b(of)i(advic)n(e)f(to)g (implementors.)p Fu(\))75 568 y Fi(1.5.4)49 b(T)l(op)q(ology)19 b(inquiry)e(functions)75 654 y Fu(If)11 b(a)f(top)q(ology)g(has)h(b)q (een)g(de\014ned)h(with)f(one)g(of)f(the)g(ab)q(o)o(v)o(e)g(functions,) i(then)f(the)g(top)q(ology)f(information)75 710 y(can)15 b(b)q(e)h(lo)q(ok)o(ed)g(up)g(using)f(inquiry)i(functions.)k(They)15 b(all)h(are)f(lo)q(cal)i(calls.)75 861 y Fq(MPI)p 160 861 14 2 v 16 w(TOPO)p 302 861 V 17 w(TEST\(comm,)c(status\))117 938 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(\(handle\))117 1013 y(OUT)124 b Fq(status)460 b Fh(top)q(ology)13 b(t)o(yp)q(e)h(of)g(comm)o(uni)o(cator)e Ff(comm)h Fh(\(c)o(hoice\))75 1138 y Fo(int)23 b(MPI)p 245 1138 15 2 v 17 w(Topo)p 358 1138 V 17 w(test\(MPI)p 567 1138 V 16 w(Comm)g(comm,)g(int)h (*status\))75 1224 y(MPI)p 150 1224 V 17 w(TOPO)p 263 1224 V 16 w(TEST\(COMM,)f(STATUS,)g(IERROR\))170 1281 y(INTEGER)g(COMM,)h(STATUS,)e(IERROR)166 1367 y Fu(The)h(function)g Fq(MPI)p 537 1367 14 2 v 16 w(TOPO)p 679 1367 V 17 w(TEST)g Fu(returns)f(the)h(t)o(yp)q(e)g(of)f(top)q(ology)g(that)g(is)h (assigned)g(to)f(a)75 1424 y(comm)o(unicator.)166 1480 y(The)15 b(output)g(v)m(alue)i Fo(status)d Fu(is)i(one)f(of)g(the)g (follo)o(wing:)117 1584 y Fg(MPI)p 194 1584 13 2 v 14 w(GRAPH)602 b Fu(graph)15 b(top)q(ology)117 1638 y Fg(MPI)p 194 1638 V 14 w(CART)631 b Fu(cartesian)15 b(top)q(ology)117 1693 y Fg(MPI)p 194 1693 V 14 w(UNDEFINED)508 b Fu(no)15 b(top)q(ology)75 1870 y Fq(MPI)p 160 1870 14 2 v 16 w(GRAPHDIMS)p 437 1870 V 17 w(GET\(comm,)e(nno)q(des,)k(nedges\))117 1947 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)7 b(for)i(group)h(with)f(graph)h(structure)i(\(handle\))117 2022 y(OUT)124 b Fq(nno)q(des)441 b Fh(n)o(um)o(b)q(er)15 b(of)f(no)q(des)i(in)f(graph)g(\(in)o(teger\))h(\(same)e(as)i(n)o(um)o (b)q(er)905 2079 y(of)d(pro)q(cesses)k(in)c(the)i(group\))117 2154 y(OUT)124 b Fq(nedges)445 b Fh(n)o(um)o(b)q(er)13 b(of)h(edges)h(in)e(graph)h(\(in)o(teger\))75 2278 y Fo(int)23 b(MPI)p 245 2278 15 2 v 17 w(Graphdims)p 478 2278 V 16 w(get\(MPI)p 662 2278 V 16 w(Comm)h(comm,)f(int)g(*nnodes,)g (int)h(*nedges\))75 2365 y(MPI)p 150 2365 V 17 w(GRAPHDIMS)p 383 2365 V 16 w(GET\(COMM,)e(NNODES,)h(NEDGES,)g(IERROR\))170 2421 y(INTEGER)g(COMM,)h(NNODES,)e(NEDGES,)h(IERROR)166 2508 y Fu(F)l(unctions)c Fq(MPI)p 462 2508 14 2 v 16 w(GRAPHDIMS)p 739 2508 V 17 w(GET)g Fu(and)g Fq(MPI)p 1037 2508 V 16 w(GRAPH)p 1203 2508 V 18 w(GET)g Fu(retriev)o(e)g(the)f (graph-top)q(ology)75 2564 y(information)d(that)g(w)o(as)f(asso)q (ciated)i(with)f(a)g(comm)o(unicator)g(b)o(y)g Fq(MPI)p 1310 2564 V 16 w(GRAPH)p 1476 2564 V 17 w(CREA)l(TE)p Fu(.)166 2621 y(The)21 b(information)g(pro)o(vided)h(b)o(y)f Fq(MPI)p 864 2621 V 16 w(GRAPHDIMS)p 1141 2621 V 17 w(GET)g Fu(can)g(b)q(e)g(used)h(to)e(dimension)j(the)75 2677 y(v)o(ectors)14 b Fo(index)h Fu(and)g Fo(edges)g Fu(correctly)g(for)g (the)g(follo)o(wing)h(call)g(to)f Fq(MPI)p 1339 2677 V 16 w(GRAPH)p 1505 2677 V 17 w(GET)p Fu(.)-32 46 y Fm(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 8 10 8 9 bop 75 -100 a Fu(8)928 b Fl(CHAPTER)15 b(1.)35 b(PR)o(OCESS)15 b(TOPOLOGIES)75 45 y Fq(MPI)p 160 45 14 2 v 16 w(GRAPH)p 326 45 V 17 w(GET\(comm,)e(maxindex,)i(maxedges,)g(index,)h(edges\))117 122 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(graph)g(structure)i(\(handle\))117 197 y(IN)171 b Fq(maxindex)393 b Fh(length)14 b(of)f(v)o(ector)i Fg(index)g Fh(in)f(the)g(calling)f(program)905 254 y(\(in)o(teger\))117 329 y(IN)171 b Fq(maxedges)388 b Fh(length)14 b(of)f(v)o(ector)i Fg(edges)g Fh(in)e(the)i(calling)d(program)905 385 y(\(in)o(teger\))117 461 y(OUT)124 b Fq(index)473 b Fh(arra)o(y)17 b(of)g(in)o(tegers)i(con) o(taining)d(the)i(graph)g(structure)h(\(for)905 517 y(details)14 b(see)h(the)g(de\014nition)e(of)g Fg(MPI)p 1484 517 13 2 v 15 w(GRAPH)p 1638 517 V 14 w(CREA)m(TE)p Fh(\))117 592 y(OUT)124 b Fq(edges)468 b Fh(arra)o(y)14 b(of)f(in)o(tegers)i(con) o(taining)e(the)h(graph)g(structure)75 717 y Fo(int)23 b(MPI)p 245 717 15 2 v 17 w(Graph)p 382 717 V 17 w(get\(MPI)p 567 717 V 16 w(Comm)g(comm,)g(int)h(maxindex,)f(int)g(maxedges,)g(int)g (*index,)393 773 y(int)h(*edges\))75 860 y(MPI)p 150 860 V 17 w(GRAPH)p 287 860 V 16 w(GET\(COMM,)f(MAXINDEX,)g(MAXEDGES,)f (INDEX,)h(EDGES,)g(IERROR\))170 916 y(INTEGER)g(COMM,)h(MAXINDEX,)e (MAXEDGES,)h(INDEX\(*\),)f(EDGES\(*\),)h(IERROR)75 1097 y Fq(MPI)p 160 1097 14 2 v 16 w(CARTDIM)p 381 1097 V 16 w(GET\(comm,)13 b(ndims\))117 1174 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(cartesian)g(structure)j(\(handle\))117 1249 y(OUT)124 b Fq(ndims)460 b Fh(n)o(um)o(b)q(er)12 b(of)f(dimensions)g(of)h(the)h(cartesian)g(structure)h(\(in)o(te-)905 1306 y(ger\))75 1430 y Fo(int)23 b(MPI)p 245 1430 15 2 v 17 w(Cartdim)p 430 1430 V 16 w(get\(MPI)p 614 1430 V 17 w(Comm)g(comm,)g(int)h(*ndims\))75 1517 y(MPI)p 150 1517 V 17 w(CARTDIM)p 335 1517 V 16 w(GET\(COMM,)f(NDIMS,)g (IERROR\))170 1573 y(INTEGER)g(COMM,)h(NDIMS,)f(IERROR)166 1660 y Fu(The)14 b(functions)h Fq(MPI)p 538 1660 14 2 v 16 w(CARTDIM)p 759 1660 V 16 w(GET)f Fu(and)g Fq(MPI)p 1046 1660 V 16 w(CART)p 1181 1660 V 17 w(GET)g Fu(return)g(the)g (cartesian)g(top)q(ology)75 1716 y(information)h(that)g(w)o(as)f(asso)q (ciated)i(with)f(a)g(comm)o(unicator)g(b)o(y)g Fq(MPI)p 1310 1716 V 16 w(CART)p 1445 1716 V 17 w(CREA)l(TE)p Fu(.)75 1867 y Fq(MPI)p 160 1867 V 16 w(CART)p 295 1867 V 17 w(GET\(comm,)e(maxdims,)g(dims,)i(p)q(erio)q(ds,)h(co)q(o)o(rds\)) 117 1944 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(cartesian)g(structure)j(\(handle\))117 2019 y(IN)171 b Fq(maxdims)403 b Fh(length)16 b(of)f(v)o(ectors)i Ff(dims,)k(periods)p Fh(,)15 b(and)g Ff(coords)g Fh(in)g(the)905 2076 y(calling)e(program)f(\(in)o(teger\))117 2151 y(OUT)124 b Fq(dims)483 b Fh(n)o(um)o(b)q(er)13 b(of)g(pro)q(cesses)i(for)e(eac)o (h)h(cartesian)g(dimension)e(\(ar-)905 2207 y(ra)o(y)i(of)f(in)o (teger\))117 2283 y(OUT)124 b Fq(p)q(erio)q(ds)436 b Fh(p)q(erio)q(dicit)o(y)21 b(\()p Fg(true)p Fh(/)p Fg(false)p Fh(\))g(for)g(eac)o(h)g(cartesian)h(dimension)905 2339 y(\(arra)o(y)14 b(of)f(logical\))117 2414 y(OUT)124 b Fq(co)q(o)o(rds)449 b Fh(co)q(ordinates)21 b(of)f(calling)e(pro)q(cess) k(in)e(cartesian)h(structure)905 2471 y(\(arra)o(y)14 b(of)f(in)o(teger\))75 2595 y Fo(int)23 b(MPI)p 245 2595 15 2 v 17 w(Cart)p 358 2595 V 17 w(get\(MPI)p 543 2595 V 16 w(Comm)g(comm,)h(int)f(maxdims,)g(int)g(*dims,)g(int)h(*periods,) 393 2651 y(int)g(*coords\))1967 46 y Fm(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 9 11 9 10 bop 75 -100 a Fl(1.5.)34 b(TOPOLOGY)16 b(CONSTR)o(UCTORS)1003 b Fu(9)75 45 y Fo(MPI)p 150 45 15 2 v 17 w(CART)p 263 45 V 16 w(GET\(COMM,)23 b(MAXDIMS,)g(DIMS,)g(PERIODS,)g(COORDS,)g (IERROR\))170 102 y(INTEGER)g(COMM,)h(MAXDIMS,)e(DIMS\(*\),)h (COORDS\(*\),)g(IERROR)170 158 y(LOGICAL)g(PERIODS\(*\))75 339 y Fq(MPI)p 160 339 14 2 v 16 w(CART)p 295 339 V 17 w(RANK\(comm,)13 b(co)q(o)o(rds,)i(rank\))117 416 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(cartesian)g(structure)j (\(handle\))117 491 y(IN)171 b Fq(co)q(o)o(rds)449 b Fh(in)o(teger)17 b(arra)o(y)f(\(of)g(size)h Ff(ndims)p Fh(\))e(sp)q(ecifying)h(the)h(cartesian)905 548 y(co)q(ordinates)e(of)e (a)h(pro)q(cess)117 623 y(OUT)124 b Fq(rank)488 b Fh(rank)14 b(of)f(sp)q(eci\014ed)j(pro)q(cess)f(\(in)o(teger\))75 747 y Fo(int)23 b(MPI)p 245 747 15 2 v 17 w(Cart)p 358 747 V 17 w(rank\(MPI)p 567 747 V 16 w(Comm)g(comm,)g(int)h(*coords,)f (int)g(*rank\))75 834 y(MPI)p 150 834 V 17 w(CART)p 263 834 V 16 w(RANK\(COMM,)g(COORDS,)g(RANK,)g(IERROR\))170 890 y(INTEGER)g(COMM,)h(COORDS\(*\),)e(RANK,)h(IERROR)166 977 y Fu(F)l(or)12 b(a)h(pro)q(cess)g(group)g(with)g(cartesian)g (structure,)g(the)g(function)g Fq(MPI)p 1397 977 14 2 v 16 w(CART)p 1532 977 V 17 w(RANK)g Fu(translates)75 1033 y(the)22 b(logical)h(pro)q(cess)f(co)q(ordinates)g(to)g(pro)q (cess)g(ranks)f(as)h(they)g(are)f(used)i(b)o(y)e(the)h(p)q(oin)o (t-to-p)q(oin)o(t)75 1090 y(routines.)166 1146 y(F)l(or)f(dimension)i Fo(i)e Fu(with)h Fo(periods\(i\))h(=)h(true)p Fu(,)e(if)g(the)f(co)q (ordinate,)j Fo(coords\(i\))p Fu(,)d(is)h(out)f(of)75 1203 y(range,)14 b(that)g(is,)h Fo(coords\(i\))22 b Fj(<)j Fo(0)14 b Fu(or)g Fo(coords\(i\))23 b Fk(\025)h Fo(dims\(i\))p Fu(,)13 b(it)i(is)g(shifted)h(bac)o(k)e(to)g(the)h(in)o(terv)m(al)75 1259 y Fo(0)24 b Fk(\024)g Fo(coords\(i\))f Fj(<)h Fo(dims\(i\))e Fu(automatically)l(.)46 b(Out-of-range)23 b(co)q(ordinates)h(are)f (erroneous)h(for)75 1315 y(non-p)q(erio)q(dic)18 b(dimensions.)75 1466 y Fq(MPI)p 160 1466 V 16 w(CART)p 295 1466 V 17 w(COORDS\(comm,)c(rank,)h(maxdims,)e(co)q(o)o(rds\))117 1544 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(cartesian)g(structure)j(\(handle\))117 1619 y(IN)171 b Fq(rank)488 b Fh(rank)14 b(of)f(a)h(pro)q(cess)i(within)d (group)g(of)h Fg(comm)e Fh(\(in)o(teger\))117 1694 y(IN)171 b Fq(maxdims)403 b Fh(length)11 b(of)f(v)o(ector)i Ff(coord)d Fh(in)h(the)i(calling)d(program)g(\(in)o(teger\))117 1769 y(OUT)124 b Fq(co)q(o)o(rds)449 b Fh(in)o(teger)16 b(arra)o(y)e(\(of)h(size)h Ff(ndims)p Fh(\))e(con)o(taining)g(the)h (cartesian)905 1825 y(co)q(ordinates)g(of)e(sp)q(eci\014ed)j(pro)q (cess)f(\(in)o(teger\))75 1950 y Fo(int)23 b(MPI)p 245 1950 15 2 v 17 w(Cart)p 358 1950 V 17 w(coords\(MPI)p 615 1950 V 16 w(Comm)g(comm,)g(int)h(rank,)f(int)g(maxdims,)g(int)g (*coords\))75 2036 y(MPI)p 150 2036 V 17 w(CART)p 263 2036 V 16 w(COORDS\(COMM,)g(RANK,)g(MAXDIMS,)g(COORDS,)f(IERROR\))170 2093 y(INTEGER)h(COMM,)h(RANK,)f(MAXDIMS,)f(COORDS\(*\),)h(IERROR)166 2179 y Fu(The)28 b(in)o(v)o(erse)g(mapping,)k(rank-to-co)q(ordinates)c (translation)f(is)i(pro)o(vided)g(b)o(y)e Fq(MPI)p 1727 2179 14 2 v 16 w(CART-)p 75 2236 V 89 2236 a(COORDS)p Fu(.)-32 46 y Fm(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 10 12 10 11 bop 75 -100 a Fu(10)910 b Fl(CHAPTER)15 b(1.)30 b(PR)o(OCESS)15 b(TOPOLOGIES)75 45 y Fq(MPI)p 160 45 14 2 v 16 w(GRAPH)p 326 45 V 17 w(NEIGHBORS)p 594 45 V 19 w(COUNT\(comm,)e(rank,)i(nneighb)q(o)o(rs\))117 122 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(graph)g(top)q(ology)e(\(handle\))117 196 y(IN)171 b Fq(rank)488 b Fh(rank)14 b(of)f(pro)q(cess)j(in)d(group)h(of)f Fg(comm)f Fh(\(in)o(teger\))117 270 y(OUT)124 b Fq(nneighb)q(o)o(rs)369 b Fh(n)o(um)o(b)q(er)13 b(of)h(neigh)o(b)q(ors)g(of)f(sp)q(eci\014ed)j (pro)q(cess)f(\(in)o(teger\))75 394 y Fo(int)23 b(MPI)p 245 394 15 2 v 17 w(Graph)p 382 394 V 17 w(neighbors)p 615 394 V 16 w(count\(MPI)p 847 394 V 16 w(Comm)g(comm,)g(int)h(rank,)f (int)g(*nneighbors\))75 481 y(MPI)p 150 481 V 17 w(GRAPH)p 287 481 V 16 w(NEIGHBORS)p 519 481 V 16 w(COUNT\(COMM,)g(RANK,)g (NNEIGHBORS,)f(IERROR\))170 537 y(INTEGER)h(COMM,)h(RANK,)f (NNEIGHBORS,)f(IERROR)166 624 y Fq(MPI)p 251 624 14 2 v 16 w(GRAPH)p 417 624 V 17 w(NEIGHBORS)p 685 624 V 18 w(COUNT)h Fu(and)e Fq(MPI)p 1058 624 V 16 w(GRAPH)p 1224 624 V 18 w(NEIGHBORS)i Fu(pro)o(vide)f(adjacency)75 680 y(information)15 b(for)g(a)g(general,)g(graph)g(top)q(ology)l(.)75 831 y Fq(MPI)p 160 831 V 16 w(GRAPH)p 326 831 V 17 w(NEIGHBORS\(comm,)g (rank,)g(maxneighb)q(o)o(rs,)f(neighb)q(o)o(rs\))117 908 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(graph)g(top)q(ology)e(\(handle\))117 982 y(IN)171 b Fq(rank)488 b Fh(rank)14 b(of)f(pro)q(cess)j(in)d(group)h(of)f Fg(comm)f Fh(\(in)o(teger\))117 1056 y(IN)171 b Fq(maxneighb)q(o)o(rs) 312 b Fh(size)15 b(of)e(arra)o(y)h Fg(neighb)q(o)o(rs)h Fh(\(in)o(teger\))117 1130 y(OUT)124 b Fq(neighb)q(o)o(rs)392 b Fh(ranks)13 b(of)g(pro)q(cesses)i(that)e(are)h(neigh)o(b)q(ors)f(to)g (sp)q(eci\014ed)h(pro-)905 1187 y(cess)i(\(arra)o(y)d(of)h(in)o (teger\))75 1311 y Fo(int)23 b(MPI)p 245 1311 15 2 v 17 w(Graph)p 382 1311 V 17 w(neighbors\(MPI)p 711 1311 V 15 w(Comm)g(comm,)h(int)f(rank,)g(int)h(maxneighbors,)393 1367 y(int)g(*neighbors\))75 1454 y(MPI)p 150 1454 V 17 w(GRAPH)p 287 1454 V 16 w(NEIGHBORS\(COMM,)e(RANK,)h(MAXNEIGHBORS,)f (NEIGHBORS,)h(IERROR\))170 1510 y(INTEGER)g(COMM,)h(RANK,)f (MAXNEIGHBORS,)f(NEIGHBORS\(*\),)g(IERROR)75 1638 y Fp(Example)c(1.3)k Fu(Supp)q(ose)14 b(that)d Fo(comm)h Fu(is)g(a)g(comm)o(unicator)g(with) g(a)g(sh)o(u\017e-exc)o(hange)h(top)q(ology)l(.)19 b(The)75 1694 y(group)h(has)f(2)317 1678 y Fd(n)360 1694 y Fu(mem)o(b)q(ers.)34 b(Eac)o(h)19 b(pro)q(cess)h(is)h(lab)q(eled)h(b)o(y)d Fj(a)1166 1701 y Fc(1)1186 1694 y Fj(;)8 b(:)g(:)g(:)d(;)j(a)1312 1701 y Fd(n)1354 1694 y Fu(with)21 b Fj(a)1487 1701 y Fd(i)1521 1694 y Fk(2)f(f)p Fu(0)p Fj(;)8 b Fu(1)p Fk(g)p Fu(,)19 b(and)h(has)75 1751 y(three)d(neigh)o(b)q(ors:)23 b(exc)o(hange\()p Fj(a)639 1758 y Fc(1)659 1751 y Fj(;)8 b(:)g(:)g(:)d(;)j(a)785 1758 y Fd(n)808 1751 y Fu(\))14 b(=)i Fj(a)915 1758 y Fc(1)935 1751 y Fj(;)8 b(:)g(:)g(:)t(;)g(a)1060 1758 y Fd(n)p Fb(\000)p Fc(1)1128 1751 y Fj(;)g Fu(\026)-23 b Fj(a)1173 1758 y Fd(n)1213 1751 y Fu(\()q(\026)f Fj(a)14 b Fu(=)i(1)11 b Fk(\000)g Fj(a)p Fu(\),)17 b(sh)o(u\017e\()p Fj(a)1639 1758 y Fc(1)1658 1751 y Fj(;)8 b(:)g(:)g(:)d(;)j(a)1784 1758 y Fd(n)1807 1751 y Fu(\))15 b(=)75 1807 y Fj(a)99 1814 y Fc(2)119 1807 y Fj(;)8 b(:)g(:)g(:)d(;)j(a)245 1814 y Fd(n)267 1807 y Fj(;)g(a)312 1814 y Fc(1)331 1807 y Fu(,)24 b(and)e(unsh)o(u\017e\()p Fj(a)680 1814 y Fc(1)700 1807 y Fj(;)8 b(:)g(:)g(:)d(;)j(a)826 1814 y Fd(n)849 1807 y Fu(\))24 b(=)g Fj(a)974 1814 y Fd(n)998 1807 y Fj(;)8 b(a)1043 1814 y Fc(1)1062 1807 y Fj(;)g(:)g(:)g(:)t(;)g(a)1187 1814 y Fd(n)p Fb(\000)p Fc(1)1255 1807 y Fu(.)41 b(The)22 b(graph)g(adjacency)h(list)f(is)75 1864 y(illustrated)17 b(b)q(elo)o(w)e(for)g Fj(n)e Fu(=)g(3.)p 75 1928 1119 2 v 74 1984 2 57 v 133 1968 a Fp(no)q(de)p 300 1984 V 104 w(exc)o(hange)122 b(sh)o(u\017e)h(unsh)o(u\017e)p 1193 1984 V 74 2041 V 300 2041 V 326 2024 a Fu(neigh)o(b)q(ors\(1\))49 b(neigh)o(b)q(ors\(2\))h(neigh)o(b)q(ors\(3\))p 1193 2041 V 75 2043 1119 2 v 74 2099 2 57 v 100 2082 a(0)f(\(000\))p 300 2099 V 161 w(1)275 b(0)g(0)p 1193 2099 V 74 2156 V 100 2139 a(1)49 b(\(001\))p 300 2156 V 161 w(0)275 b(2)g(4)p 1193 2156 V 74 2212 V 100 2195 a(2)49 b(\(010\))p 300 2212 V 161 w(3)275 b(4)g(1)p 1193 2212 V 74 2268 V 100 2251 a(3)49 b(\(011\))p 300 2268 V 161 w(2)275 b(6)g(5)p 1193 2268 V 74 2325 V 100 2308 a(4)49 b(\(100\))p 300 2325 V 161 w(5)275 b(1)g(2)p 1193 2325 V 74 2381 V 100 2364 a(5)49 b(\(101\))p 300 2381 V 161 w(4)275 b(3)g(6)p 1193 2381 V 74 2438 V 100 2421 a(6)49 b(\(110\))p 300 2438 V 161 w(7)275 b(5)g(3)p 1193 2438 V 74 2494 V 100 2477 a(7)49 b(\(111\))p 300 2494 V 161 w(6)275 b(7)g(7)p 1193 2494 V 75 2496 1119 2 v 166 2591 a(Supp)q(ose)15 b(that)e(the)g(comm)o(unicator)h Fo(comm)f Fu(has)g(this)h(top)q(ology) f(asso)q(ciated)h(with)g(it.)20 b(The)14 b(follo)o(w-)75 2647 y(ing)g(co)q(de)h(fragmen)o(t)e(cycles)h(through)g(the)g(three)g (t)o(yp)q(es)g(of)f(neigh)o(b)q(ors)i(and)f(p)q(erforms)f(an)h (appropriate)75 2704 y(p)q(erm)o(utation)h(for)g(eac)o(h.)1967 46 y Fm(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 11 13 11 12 bop 75 -100 a Fl(1.5.)34 b(TOPOLOGY)16 b(CONSTR)o(UCTORS)981 b Fu(11)75 45 y Fo(C)48 b(assume:)22 b(each)i(process)f(has)g(stored)g (a)h(real)f(number)g(A.)75 102 y(C)48 b(extract)22 b(neighborhood)h (information)218 158 y(CALL)g(MPI_COMM_RANK\(comm,)f(myrank,)h(ierr\)) 218 214 y(CALL)g(MPI_GRAPH_NEIGHBORS\(comm,)e(myrank,)i(3,)g (neighbors,)g(ierr\))75 271 y(C)48 b(perform)22 b(exchange)h (permutation)218 327 y(CALL)g(MPI_SENDRECV_REPLACE\(A,)e(1,)j (MPI_REAL,)e(neighbors\(1\),)h(0,)194 384 y(+)119 b(neighbors\(1\),)23 b(0,)g(comm,)g(status,)g(ierr\))75 440 y(C)48 b(perform)22 b(shuffle)h(permutation)218 497 y(CALL)g(MPI_SENDRECV_REPLACE\(A,)e(1,) j(MPI_REAL,)e(neighbors\(2\),)h(0,)194 553 y(+)119 b(neighbors\(3\),)23 b(0,)g(comm,)g(status,)g(ierr\))75 610 y(C)48 b(perform)22 b(unshuffle)h(permutation)218 666 y(CALL)g(MPI_SENDRECV_REPLACE\(A,)e (1,)j(MPI_REAL,)e(neighbors\(3\),)h(0,)194 723 y(+)119 b(neighbors\(2\),)23 b(0,)g(comm,)g(status,)g(ierr\))75 844 y Fi(1.5.5)49 b(Ca)o(rtesian)16 b(Shift)g(Co)q(o)o(rdinates)75 930 y Fu(If)f(the)g(pro)q(cess)f(top)q(ology)h(is)g(a)f(cartesian)h (structure,)f(a)g Fq(MPI)p 1145 930 14 2 v 16 w(SENDRECV)i Fu(op)q(eration)f(is)g(lik)o(ely)h(to)e(b)q(e)75 987 y(used)19 b(along)g(a)f(co)q(ordinate)h(direction)h(to)e(p)q(erform)g (a)g(shift)h(of)f(data.)29 b(As)19 b(input,)h Fq(MPI)p 1629 987 V 16 w(SENDRECV)75 1043 y Fu(tak)o(es)14 b(the)h(rank)g(of)f (a)h(source)f(pro)q(cess)i(for)e(the)h(receiv)o(e,)g(and)g(the)g(rank)g (of)f(a)h(destination)g(pro)q(cess)h(for)75 1099 y(the)11 b(send.)18 b(If)11 b(the)g(function)g Fq(MPI)p 641 1099 V 16 w(CART)p 776 1099 V 17 w(SHIFT)f Fu(is)h(called)h(for)e(a)h (cartesian)f(pro)q(cess)h(group,)g(it)f(pro)o(vides)75 1156 y(the)j(calling)h(pro)q(cess)e(with)h(the)g(ab)q(o)o(v)o(e)f(iden) o(ti\014ers,)i(whic)o(h)f(then)g(can)g(b)q(e)g(passed)f(to)g Fq(MPI)p 1616 1156 V 16 w(SENDRECV)p Fu(.)75 1212 y(The)17 b(user)h(sp)q(eci\014es)h(the)e(co)q(ordinate)h(direction)g(and)f(the)h (size)g(of)f(the)g(step)g(\(p)q(ositiv)o(e)h(or)f(negativ)o(e\).)75 1269 y(The)e(function)h(is)g(lo)q(cal.)75 1420 y Fq(MPI)p 160 1420 V 16 w(CART)p 295 1420 V 17 w(SHIFT\(comm,)c(direction,)k (disp,)g(rank)p 977 1420 V 16 w(source,)g(rank)p 1224 1420 V 16 w(dest\))117 1497 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(cartesian)g(structure)j(\(handle\))117 1572 y(IN)171 b Fq(direction)408 b Fh(co)q(ordinate)14 b(dimension)f(of)g(shift)h(\(in)o(teger\))117 1647 y(IN)171 b Fq(disp)497 b Fh(displacemen)o(t)18 b(\()p Fa(>)h Fh(0:)27 b(up)o(w)o(ards)18 b(shift,)h Fa(<)g Fh(0:)27 b(do)o(wn)o(w)o(ards)905 1704 y(shift\))14 b(\(in)o(teger\))117 1779 y(OUT)124 b Fq(rank)p 420 1779 V 16 w(source)353 b Fh(rank)14 b(of)f(source)j (pro)q(cess)f(\(in)o(teger\))117 1854 y(OUT)124 b Fq(rank)p 420 1854 V 16 w(dest)396 b Fh(rank)14 b(of)f(destination)h(pro)q(cess)i (\(in)o(teger\))75 1978 y Fo(int)23 b(MPI)p 245 1978 15 2 v 17 w(Cart)p 358 1978 V 17 w(shift\(MPI)p 591 1978 V 16 w(Comm)g(comm,)g(int)h(direction,)e(int)i(disp,)f(int)g(*rank)p 1681 1978 V 17 w(source,)393 2035 y(int)h(*rank)p 612 2035 V 16 w(dest\))75 2121 y(MPI)p 150 2121 V 17 w(CART)p 263 2121 V 16 w(SHIFT\(COMM,)f(DIRECTION,)f(DISP,)h(RANK)p 1067 2121 V 17 w(SOURCE,)g(RANK)p 1371 2121 V 17 w(DEST,)g(IERROR\))170 2178 y(INTEGER)g(COMM,)h(DIRECTION,)e(DISP,)h(RANK)p 1009 2178 V 17 w(SOURCE,)g(RANK)p 1313 2178 V 16 w(DEST,)h(IERROR)1937 2214 y Fk(>)166 2264 y Fu(The)16 b Fq(direction)g Fu(argumen)o(t)e (indicates)j(the)f(dimension)h(of)e(the)g(shift,)h(i.e.,)f(the)g(co)q (ordinate)h(whic)o(h)75 2321 y(v)m(alue)21 b(is)f(mo)q(di\014ed)g(b)o (y)g(the)f(shift.)33 b(The)20 b(co)q(ordinates)g(are)f(n)o(um)o(b)q (ered)h(from)e(0)i(to)e Fo(ndims-1)p Fu(,)h(when)75 2377 y Fo(ndims)14 b Fu(is)i(the)f(n)o(um)o(b)q(er)h(of)f(dimensions.)1157 b Fk(?)166 2434 y Fu(Dep)q(ending)18 b(on)e(the)g(p)q(erio)q(dicit)o(y) i(of)e(the)g(cartesian)h(group)f(in)h(the)f(sp)q(eci\014ed)i(co)q (ordinate)f(direc-)75 2490 y(tion,)c Fq(MPI)p 264 2490 14 2 v 16 w(CART)p 399 2490 V 17 w(SHIFT)g Fu(pro)o(vides)h(the)f(iden) o(ti\014ers)i(for)e(a)g(circular)h(or)f(an)g(end-o\013)g(shift.)20 b(In)14 b(the)f(case)75 2547 y(of)j(an)g(end-o\013)g(shift,)h(the)f(v)m (alue)i Fg(MPI)p 735 2547 13 2 v 14 w(PROC)p 861 2547 V 13 w(NULL)f Fu(ma)o(y)f(b)q(e)h(returned)f(in)h Fq(rank)p 1479 2547 14 2 v 17 w(source)g Fu(or)e Fq(rank)p 1771 2547 V 17 w(dest)p Fu(,)75 2603 y(indicating)i(that)e(the)g(source)g (or)g(the)g(destination)h(for)f(the)g(shift)h(is)f(out)g(of)g(range.) -32 46 y Fm(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 12 14 12 13 bop 75 -100 a Fu(12)905 b Fl(CHAPTER)15 b(1.)35 b(PR)o(OCESS)15 b(TOPOLOGIES)75 45 y Fp(Example)j(1.4)k Fu(The)14 b(comm)o(unicator,)e Fq(comm)p Fu(,)g(has)g(a)h(t)o(w)o (o-dimensional,)h(p)q(erio)q(dic,)h(cartesian)f(top)q(ol-)75 102 y(ogy)f(asso)q(ciated)h(with)g(it.)19 b(A)14 b(t)o(w)o (o-dimensional)g(arra)o(y)f(of)g Fo(REAL)p Fu(s)g(is)h(stored)f(one)h (elemen)o(t)g(p)q(er)g(pro)q(cess,)75 158 y(in)h(v)m(ariable)h Fo(A)p Fu(.)e(One)h(wishes)g(to)e(sk)o(ew)h(this)h(arra)o(y)l(,)e(b)o (y)i(shifting)g(column)g Fo(i)f Fu(\(v)o(ertically)l(,)h(i.e.,)g(along) f(the)75 214 y(column\))i(b)o(y)f Fo(i)g Fu(steps.)75 305 y Fo(....)75 362 y(C)24 b(find)f(process)g(rank)218 418 y(CALL)g(MPI_COMM_RANK\(comm,)f(rank,)h(ierr\)\))75 475 y(C)h(find)f(cartesian)g(coordinates)218 531 y(CALL)g (MPI_CART_COORDS\(comm,)e(rank,)j(maxdims,)e(coords,)h(ierr\))75 588 y(C)h(compute)f(shift)g(source)g(and)g(destination)218 644 y(CALL)g(MPI_CART_SHIFT\(comm,)f(0,)h(coords\(2\),)g(source,)g (dest,)g(ierr\))75 701 y(C)h(skew)f(array)218 757 y(CALL)g (MPI_SENDRECV_REPLACE\(A,)e(1,)j(MPI_REAL,)e(dest,)i(0,)f(source,)g(0,) h(comm,)194 814 y(+)621 b(status,)23 b(ierr\))-160 866 y Fk(>)189 962 y Fn(A)n(dvic)n(e)12 b(to)i(users.)37 b Fu(In)13 b(F)l(ortran,)e(the)h(dimension)i(indicated)g(b)o(y)e Fg(DIRECTION)d(=)i(i)h Fu(has)g Fg(DIMS\(i+1\))189 1018 y Fu(no)q(des,)j(where)f Fg(DIMS)h Fu(is)g(the)g(arra)o(y)e(that)h(w)o (as)g(used)h(to)f(create)g(the)h(grid.)20 b(In)15 b(C,)g(the)f (dimension)189 1075 y(indicated)g(b)o(y)f Fg(direction)g(=)f(i)h Fu(is)g(the)g(dimension)i(sp)q(eci\014ed)g(b)o(y)e Fg(dims[i])p Fu(.)18 b(\()p Fn(End)13 b(of)h(advic)n(e)g(to)h(users.)p Fu(\))-160 1132 y Fk(?)75 1242 y Fi(1.5.6)49 b(P)o(a)o(rtitioning)17 b(of)g(Ca)o(rtesian)e(structures)75 1422 y Fq(MPI)p 160 1422 14 2 v 16 w(CART)p 295 1422 V 17 w(SUB\(comm,)e(remain)p 688 1422 V 16 w(dims,)h(new)o(comm\))117 1499 y Fh(IN)171 b Fq(comm)454 b Fh(comm)o(unicator)11 b(with)j(cartesian)g(structure)j (\(handle\))117 1574 y(IN)171 b Fq(remain)p 466 1574 V 15 w(dims)339 b Fh(the)24 b Ff(i)p Fh(th)f(en)o(try)h(of)e Fg(remain)p 1363 1574 13 2 v 15 w(dims)g Fh(sp)q(eci\014es)j(whether)f (the)905 1630 y Ff(i)p Fh(th)11 b(dimension)f(is)h(k)o(ept)h(in)f(the)h (subgrid)f(\()p Ff(true)p Fh(\))g(or)g(is)g(drop-)905 1687 y(p)q(ed)k(\()p Ff(false)p Fh(\))e(\(logical)f(v)o(ector\))117 1761 y(OUT)124 b Fq(new)o(comm)381 b Fh(comm)o(unicator)20 b(con)o(taining)h(the)i(subgrid)f(that)g(includes)905 1818 y(the)15 b(calling)d(pro)q(cess)k(\(handle\))75 1942 y Fo(int)23 b(MPI)p 245 1942 15 2 v 17 w(Cart)p 358 1942 V 17 w(sub\(MPI)p 543 1942 V 16 w(Comm)g(comm,)h(int)f (*remain)p 1085 1942 V 16 w(dims,)g(MPI)p 1316 1942 V 17 w(Comm)h(*newcomm\))75 2029 y(MPI)p 150 2029 V 17 w(CART)p 263 2029 V 16 w(SUB\(COMM,)f(REMAIN)p 662 2029 V 16 w(DIMS,)h(NEWCOMM,)e(IERROR\))170 2085 y(INTEGER)h(COMM,)h (NEWCOMM,)e(IERROR)170 2142 y(LOGICAL)h(REMAIN)p 508 2142 V 17 w(DIMS\(*\))166 2228 y Fu(If)28 b(a)f(cartesian)g(top)q (ology)g(has)h(b)q(een)g(created)g(with)g Fq(MPI)p 1263 2228 14 2 v 15 w(CART)p 1397 2228 V 17 w(CREA)l(TE)p Fu(,)h(the)e(function)75 2284 y Fq(MPI)p 160 2284 V 16 w(CART)p 295 2284 V 17 w(SUB)c Fu(can)f(b)q(e)h(used)f(to)g(partition)g (the)g(comm)o(unicator)g(group)g(in)o(to)g(subgroups)g(that)75 2341 y(form)17 b(lo)o(w)o(er-dimensional)j(cartesian)f(subgrids,)g(and) f(to)g(build)i(for)d(eac)o(h)h(subgroup)h(a)e(comm)o(unica-)75 2397 y(tor)k(with)h(the)g(asso)q(ciated)f(subgrid)i(cartesian)f(top)q (ology)l(.)39 b(\(This)22 b(function)g(is)h(closely)f(related)h(to)75 2454 y Fq(MPI)p 160 2454 V 16 w(COMM)p 318 2454 V 16 w(SPLIT)p Fu(.\))75 2556 y Fp(Example)18 b(1.5)k Fu(Assume)12 b(that)g Fq(MPI)p 726 2556 V 15 w(CART)p 860 2556 V 17 w(CREA)l(TE)p Fo(\(...,)25 b(comm\))11 b Fu(has)h(de\014ned)h(a)e(\(2)s Fk(\002)s Fu(3)s Fk(\002)s Fu(4\))i(grid.)75 2613 y(Let)i Fo(remain)p 303 2613 15 2 v 17 w(dims)23 b(=)h(\(true,)f(false,)g (true\))p Fu(.)c(Then)d(a)f(call)h(to,)194 2704 y Fo (MPI_CART_SUB\(comm,)22 b(remain_dims,)g(comm_new\),)1967 46 y Fm(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 13 15 13 14 bop 75 -100 a Fl(1.5.)34 b(TOPOLOGY)16 b(CONSTR)o(UCTORS)981 b Fu(13)75 45 y(will)26 b(create)d(three)i(comm)o(unicators)e(eac)o(h)h (with)h(eigh)o(t)f(pro)q(cesses)g(in)h(a)f(2)15 b Fk(\002)i Fu(4)23 b(cartesian)i(top)q(ol-)75 102 y(ogy)l(.)36 b(If)21 b Fo(remain)p 388 102 15 2 v 16 w(dims)j(=)f(\(false,)g(false,)g (true\))d Fu(then)h(the)g(call)h(to)e Fq(MPI)p 1494 102 14 2 v 16 w(CART)p 1629 102 V 17 w(SUB\(comm,)75 158 y(remain)p 207 158 V 15 w(dims,)k(comm)p 464 158 V 14 w(new\))f Fu(will)h(create)e(six)g(non-o)o(v)o(erlapping)h(comm)o (unicators,)h(eac)o(h)e(with)g(four)75 214 y(pro)q(cesses,)15 b(in)h(a)f(one-dimensional)j(cartesian)d(top)q(ology)l(.)75 336 y Fi(1.5.7)49 b(Lo)o(w-level)18 b(top)q(ology)g(functions)75 422 y Fu(The)d(t)o(w)o(o)e(additional)k(functions)e(in)o(tro)q(duced)h (in)g(this)f(section)h(can)e(b)q(e)i(used)f(to)g(implemen)o(t)h(all)f (other)75 478 y(top)q(ology)g(functions.)21 b(In)15 b(general)h(they)f (will)i(not)e(b)q(e)h(called)h(b)o(y)e(the)g(user)h(directly)l(,)g (unless)g(he)g(or)f(she)75 535 y(is)h(creating)f(additional)i(virtual)f (top)q(ology)e(capabilit)o(y)j(other)e(than)g(that)f(pro)o(vided)i(b)o (y)g Fq(MPI)p Fu(.)75 686 y Fq(MPI)p 160 686 V 16 w(CART)p 295 686 V 17 w(MAP\(comm,)d(ndims,)i(dims,)f(p)q(erio)q(ds,)i (newrank\))117 763 y Fh(IN)171 b Fq(comm)454 b Fh(input)14 b(comm)o(unicator)d(\(handle\))117 838 y(IN)171 b Fq(ndims)460 b Fh(n)o(um)o(b)q(er)13 b(of)h(dimensions)e(of)i(cartesian)g(structure) i(\(in)o(teger\))117 913 y(IN)171 b Fq(dims)483 b Fh(in)o(teger)18 b(arra)o(y)f(of)f(size)i Ff(ndims)e Fh(sp)q(ecifying)h(the)h(n)o(um)o (b)q(er)f(of)905 970 y(pro)q(cesses)g(in)c(eac)o(h)i(co)q(ordinate)f (direction)117 1045 y(IN)171 b Fq(p)q(erio)q(ds)436 b Fh(logical)16 b(arra)o(y)h(of)g(size)h Ff(ndims)f Fh(sp)q(ecifying)g (the)h(p)q(erio)q(dicit)o(y)905 1101 y(sp)q(eci\014cation)d(in)e(eac)o (h)i(co)q(ordinate)f(direction)117 1177 y(OUT)124 b Fq(newrank)414 b Fh(reordered)11 b(rank)f(of)e(the)i(calling)e(pro)q(cess;)k Fg(MPI)p 1643 1177 13 2 v 15 w(UNDEFINED)905 1233 y Fh(if)h(calling)g (pro)q(cess)i(do)q(es)g(not)f(b)q(elong)f(to)h(grid)g(\(in)o(teger\))75 1357 y Fo(int)23 b(MPI)p 245 1357 15 2 v 17 w(Cart)p 358 1357 V 17 w(map\(MPI)p 543 1357 V 16 w(Comm)g(comm,)h(int)f(ndims,) g(int)h(*dims,)f(int)g(*periods,)393 1414 y(int)h(*newrank\))75 1500 y(MPI)p 150 1500 V 17 w(CART)p 263 1500 V 16 w(MAP\(COMM,)f (NDIMS,)g(DIMS,)g(PERIODS,)g(NEWRANK,)g(IERROR\))170 1557 y(INTEGER)g(COMM,)h(NDIMS,)f(DIMS\(*\),)f(NEWRANK,)h(IERROR)170 1613 y(LOGICAL)g(PERIODS\(*\))166 1700 y Fq(MPI)p 251 1700 14 2 v 16 w(CART)p 386 1700 V 17 w(MAP)12 b Fu(computes)h(an)f (\\optimal")g(placemen)o(t)i(for)d(the)i(calling)h(pro)q(cess)f(on)f (the)h(ph)o(ys-)75 1756 y(ical)i(mac)o(hine.)20 b(A)13 b(p)q(ossible)i(implemen)o(tation)g(of)e(this)h(function)g(is)g(to)e (alw)o(a)o(ys)h(return)g(the)h(rank)f(of)g(the)75 1813 y(calling)k(pro)q(cess,)e(that)g(is,)g(not)g(to)f(p)q(erform)h(an)o(y)g (reordering.)189 1919 y Fn(A)n(dvic)n(e)22 b(to)h(implementors.)84 b Fu(The)22 b(function)i Fq(MPI)p 1138 1919 V 15 w(CART)p 1272 1919 V 17 w(CREA)l(TE\(comm,)f(ndims,)h(dims,)189 1975 y(p)q(erio)q(ds,)f(reo)o(rder,)d(comm)p 646 1975 V 15 w(ca)o(rt\))p Fu(,)h(with)g Fo(reorder)i(=)h(true)c Fu(can)h(b)q(e)g(implemen)o(ted)i(b)o(y)d(calling)189 2032 y Fq(MPI)p 274 2032 V 15 w(CART)p 408 2032 V 17 w(MAP\(comm,)72 b(ndims,)h(dims,)g(p)q(erio)q(ds,)h(newrank\))p Fu(,)g(then)62 b(calling)189 2088 y Fq(MPI)p 274 2088 V 15 w(COMM)p 431 2088 V 17 w(SPLIT\(comm,)26 b(colo)o(r,)i(k)o(ey)l(,) h(comm)p 1095 2088 V 15 w(ca)o(rt\))p Fu(,)f(with)f Fo(color)d(=)f(0)k Fu(if)g Fo(newrank)c Fk(6)p Fu(=)189 2145 y Fo(MPI)p 264 2145 15 2 v 16 w(UNDEFINED)p Fu(,)14 b Fo(color)23 b(=)h(MPI)p 786 2145 V 17 w(UNDEFINED)14 b Fu(otherwise,)h(and)g Fo(key)23 b(=)h(newrank)p Fu(.)189 2220 y(The)c(function)h Fq(MPI)p 555 2220 14 2 v 15 w(CART)p 689 2220 V 17 w(SUB\(comm,)f (remain)p 1089 2220 V 15 w(dims,)h(comm)p 1343 2220 V 14 w(new\))g Fu(can)f(b)q(e)g(implemen)o(ted)189 2276 y(b)o(y)c(a)g(call)i(to)e Fq(MPI)p 519 2276 V 16 w(COMM)p 677 2276 V 16 w(SPLIT\(comm,)e(colo)o(r,)i(k)o(ey)l(,)h(comm)p 1304 2276 V 14 w(new\))p Fu(,)g(using)g(a)g(single)h(n)o(um)o(b)q(er) 189 2333 y(enco)q(ding)11 b(of)f(the)g(lost)g(dimensions)i(as)e Fo(color)g Fu(and)g(a)g(single)h(n)o(um)o(b)q(er)g(enco)q(ding)h(of)d (the)i(preserv)o(ed)189 2389 y(dimensions)16 b(as)f Fo(key)p Fu(.)189 2464 y(All)f(other)g(cartesian)f(top)q(ology)g(functions)i (can)e(b)q(e)i(implemen)o(ted)g(lo)q(cally)l(,)g(using)g(the)e(top)q (ology)189 2521 y(information)h(that)g(is)i(cac)o(hed)f(with)g(the)g (comm)o(unicator.)k(\()p Fn(End)c(of)h(advic)n(e)g(to)g(implementors.)p Fu(\))166 2627 y(The)f(corresp)q(onding)i(new)e(function)h(for)f (general)g(graph)g(structures)g(is)h(as)f(follo)o(ws.)-32 46 y Fm(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 14 16 14 15 bop 75 -100 a Fu(14)905 b Fl(CHAPTER)15 b(1.)35 b(PR)o(OCESS)15 b(TOPOLOGIES)75 45 y Fq(MPI)p 160 45 14 2 v 16 w(GRAPH)p 326 45 V 17 w(MAP\(comm,)e(nno)q(des,)k(index,)f (edges,)g(newrank\))117 122 y Fh(IN)171 b Fq(comm)454 b Fh(input)14 b(comm)o(unicator)d(\(handle\))117 197 y(IN)171 b Fq(nno)q(des)441 b Fh(n)o(um)o(b)q(er)13 b(of)h(graph)f(no)q (des)i(\(in)o(teger\))117 273 y(IN)171 b Fq(index)473 b Fh(in)o(teger)30 b(arra)o(y)g(sp)q(ecifying)f(the)i(graph)e (structure,)36 b(see)905 329 y Fg(MPI)p 982 329 13 2 v 15 w(GRAPH)p 1136 329 V 14 w(CREA)m(TE)117 404 y Fh(IN)171 b Fq(edges)468 b Fh(in)o(teger)15 b(arra)o(y)e(sp)q(ecifying)h(the)g (graph)g(structure)117 479 y(OUT)124 b Fq(newrank)414 b Fh(reordered)11 b(rank)f(of)e(the)i(calling)e(pro)q(cess;)k Fg(MPI)p 1643 479 V 15 w(UNDEFINED)905 536 y Fh(if)j(the)i(calling)d (pro)q(cess)k(do)q(es)e(not)g(b)q(elong)g(to)f(graph)h(\(in)o(te-)905 592 y(ger\))75 717 y Fo(int)23 b(MPI)p 245 717 15 2 v 17 w(Graph)p 382 717 V 17 w(map\(MPI)p 567 717 V 16 w(Comm)g(comm,)g (int)h(nnodes,)f(int)g(*index,)g(int)h(*edges,)393 773 y(int)g(*newrank\))75 860 y(MPI)p 150 860 V 17 w(GRAPH)p 287 860 V 16 w(MAP\(COMM,)f(NNODES,)g(INDEX,)g(EDGES,)g(NEWRANK,)g (IERROR\))170 916 y(INTEGER)g(COMM,)h(NNODES,)e(INDEX\(*\),)h (EDGES\(*\),)g(NEWRANK,)f(IERROR)189 1052 y Fn(A)n(dvic)n(e)17 b(to)h(implementors.)53 b Fu(The)18 b(function)g Fq(MPI)p 1087 1052 14 2 v 16 w(GRAPH)p 1253 1052 V 17 w(CREA)l(TE\(comm,)f(nno)q (des,)i(index,)189 1109 y(edges,)j(reo)o(rder,)e(comm)p 613 1109 V 15 w(graph\))p Fu(,)h(with)g Fo(reorder)i(=)h(true)c Fu(can)g(b)q(e)h(implemen)o(ted)i(b)o(y)d(calling)189 1165 y Fq(MPI)p 274 1165 V 15 w(GRAPH)p 439 1165 V 18 w(MAP\(comm,)66 b(nno)q(des,)k(index,)e(edges,)h(newrank\))p Fu(,)f(then)58 b(calling)189 1222 y Fq(MPI)p 274 1222 V 15 w(COMM)p 431 1222 V 17 w(SPLIT\(comm,)21 b(colo)o(r,)h(k)o(ey)l(,) i(comm)p 1079 1222 V 15 w(graph\))p Fu(,)f(with)g Fo(color)g(=)h(0)e Fu(if)h Fo(newrank)g Fk(6)p Fu(=)189 1278 y Fo(MPI)p 264 1278 15 2 v 16 w(UNDEFINED)p Fu(,)14 b Fo(color)23 b(=)h(MPI)p 786 1278 V 17 w(UNDEFINED)14 b Fu(otherwise,)h(and)g Fo(key)23 b(=)h(newrank)p Fu(.)189 1353 y(All)c(other)f(graph)g(top)q (ology)g(functions)h(can)f(b)q(e)h(implemen)o(ted)h(lo)q(cally)l(,)h (using)e(the)f(top)q(ology)189 1410 y(information)14 b(that)g(is)i(cac)o(hed)f(with)g(the)g(comm)o(unicator.)k(\()p Fn(End)c(of)h(advic)n(e)g(to)g(implementors.)p Fu(\))75 1553 y Fr(1.6)59 b(An)20 b(Application)f(Example)75 1654 y Fp(Example)f(1.6)k Fu(The)11 b(example)h(in)f(\014gure)g(1.1)f(sho)o (ws)g(ho)o(w)g(the)h(grid)g(de\014nition)h(and)f(inquiry)h(functions)75 1711 y(can)20 b(b)q(e)g(used)h(in)f(an)g(application)h(program.)33 b(A)19 b(partial)h(di\013eren)o(tial)h(equation,)g(for)e(instance)i (the)75 1767 y(P)o(oisson)e(equation,)g(is)g(to)g(b)q(e)g(solv)o(ed)g (on)g(a)f(rectangular)h(domain.)31 b(First,)19 b(the)g(pro)q(cesses)g (organize)75 1824 y(themselv)o(es)e(in)h(a)e(t)o(w)o(o-dimensional)h (structure.)24 b(Eac)o(h)16 b(pro)q(cess)h(then)g(inquires)h(ab)q(out)f (the)f(ranks)g(of)75 1880 y(its)e(neigh)o(b)q(ors)h(in)g(the)f(four)g (directions)h(\(up,)f(do)o(wn,)g(righ)o(t,)g(left\).)19 b(The)c(n)o(umerical)g(problem)g(is)g(solv)o(ed)75 1937 y(b)o(y)g(an)g(iterativ)o(e)h(metho)q(d,)f(the)g(details)h(of)f(whic)o (h)h(are)f(hidden)i(in)f(the)f(subroutine)h Fo(relax)p Fu(.)166 1993 y(In)e(eac)o(h)f(relaxation)g(step)g(eac)o(h)g(pro)q (cess)h(computes)f(new)g(v)m(alues)h(for)f(the)g(solution)h(grid)f (function)75 2050 y(at)h(all)i(p)q(oin)o(ts)f(o)o(wned)g(b)o(y)g(the)g (pro)q(cess.)20 b(Then)15 b(the)g(v)m(alues)h(at)e(in)o(ter-pro)q(cess) i(b)q(oundaries)g(ha)o(v)o(e)e(to)g(b)q(e)75 2106 y(exc)o(hanged)e (with)h(neigh)o(b)q(oring)g(pro)q(cesses.)19 b(F)l(or)11 b(example,)i(the)f(exc)o(hange)g(subroutine)h(migh)o(t)f(con)o(tain)75 2162 y(a)i(call)i(lik)o(e)g Fq(MPI)p 363 2162 14 2 v 16 w(SEND\(...,neigh)p 666 2162 V 15 w(rank\(1\),...\))i Fu(to)c(send)h(up)q(dated)g(v)m(alues)h(to)e(the)h(left-hand)g(neigh)o (b)q(or)75 2219 y Fo(\(i-1,j\))p Fu(.)1967 46 y Fm(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Page: 15 17 15 16 bop 75 -100 a Fl(1.6.)34 b(AN)15 b(APPLICA)l(TION)i(EXAMPLE)997 b Fu(15)194 163 y Fo(integer)23 b(ndims,)g(num)p 627 163 15 2 v 17 w(neigh)194 219 y(logical)g(reorder)194 276 y(parameter)g(\(ndims=2,)g(num)p 747 276 V 16 w(neigh=4,)g (reorder=.true.\))194 332 y(integer)g(comm,)g(comm)p 627 332 V 17 w(cart,)g(dims\(ndims\),)f(neigh)p 1217 332 V 17 w(def\(ndims\),)g(ierr)194 388 y(integer)h(neigh)p 508 388 V 17 w(rank\(num)p 717 388 V 16 w(neigh\),)g(own)p 996 388 V 16 w(position\(ndims\),)f(i,)i(j)194 445 y(logical)f (periods\(ndims\))194 501 y(real)p Fk(\003)p Fo(8)g(u\(0:101,0:101\),)f (f\(0:101,0:101\))194 558 y(data)i(dims)f(/)h(ndims)f Fk(\003)g Fo(0)h(/)194 614 y(comm)g(=)f(MPI)p 436 614 V 17 w(COMM)p 549 614 V 17 w(WORLD)75 671 y(C)107 b(Set)23 b(process)g(grid)g(size)h(and)f(periodicity)194 727 y(call)h(MPI)p 389 727 V 16 w(DIMS)p 501 727 V 17 w(CREATE\(comm,)e(ndims,)h (dims,ierr\))194 784 y(periods\(1\))g(=)h(.TRUE.)194 840 y(periods\(2\))f(=)h(.TRUE.)75 897 y(C)107 b(Create)23 b(a)g(grid)h(structure)e(in)i(WORLD)f(group)g(and)h(inquire)f(about)g (own)g(position)194 953 y(call)h(MPI)p 389 953 V 16 w(CART)p 501 953 V 17 w(CREATE)f(\(comm,)g(ndims,)g(dims,)g(periods,)g(reorder,) g(comm)p 1688 953 V 17 w(cart,ierr\))194 1009 y(call)h(MPI)p 389 1009 V 16 w(CART)p 501 1009 V 17 w(GET)f(\(comm)p 733 1009 V 17 w(cart,)g(ndims,)g(dims,)g(periods,)g(own)p 1490 1009 V 17 w(position,ierr\))75 1066 y(C)107 b(Look)23 b(up)h(the)f(ranks)g(for)h(the)f(neighbors.)46 b(Own)24 b(process)f(coordinates)f(are)i(\(i,j\).)75 1122 y(C)107 b(Neighbors)22 b(are)i(\(i-1,j\),)f(\(i+1,j\),)f(\(i,j-1\),)h (\(i,j+1\))194 1179 y(i)h(=)g(own)p 365 1179 V 17 w(position\(1\))194 1235 y(j)g(=)g(own)p 365 1235 V 17 w(position\(2\))194 1292 y(neigh)p 317 1292 V 17 w(def\(1\))f(=)h(i-1)194 1348 y(neigh)p 317 1348 V 17 w(def\(2\))f(=)h(j)194 1405 y(call)g(MPI)p 389 1405 V 16 w(CART)p 501 1405 V 17 w(RANK)f(\(comm)p 757 1405 V 17 w(cart,)g(neigh)p 1037 1405 V 17 w(def,)g(neigh)p 1293 1405 V 16 w(rank\(1\),ierr\))194 1461 y(neigh)p 317 1461 V 17 w(def\(1\))g(=)h(i+1)194 1518 y(neigh)p 317 1518 V 17 w(def\(2\))f(=)h(j)194 1574 y(call)g(MPI)p 389 1574 V 16 w(CART)p 501 1574 V 17 w(RANK)f(\(comm)p 757 1574 V 17 w(cart,)g(neigh)p 1037 1574 V 17 w(def,)g(neigh)p 1293 1574 V 16 w(rank\(2\),ierr\))194 1630 y(neigh)p 317 1630 V 17 w(def\(1\))g(=)h(i)194 1687 y(neigh)p 317 1687 V 17 w(def\(2\))f(=)h(j-1)194 1743 y(call)g(MPI)p 389 1743 V 16 w(CART)p 501 1743 V 17 w(RANK)f(\(comm)p 757 1743 V 17 w(cart,)g(neigh)p 1037 1743 V 17 w(def,)g(neigh)p 1293 1743 V 16 w(rank\(3\),ierr\))194 1800 y(neigh)p 317 1800 V 17 w(def\(1\))g(=)h(i)194 1856 y(neigh)p 317 1856 V 17 w(def\(2\))f(=)h(j+1)194 1913 y(call)g(MPI)p 389 1913 V 16 w(CART)p 501 1913 V 17 w(RANK)f(\(comm)p 757 1913 V 17 w(cart,)g(neigh)p 1037 1913 V 17 w(def,)g(neigh)p 1293 1913 V 16 w(rank\(4\),ierr\))75 1969 y(C)107 b(Initialize)22 b(the)i(grid)f(functions)g(and)g(start)g(the)h(iteration)194 2026 y(call)g(init)f(\(u,)g(f\))194 2082 y(do)h(10)f(it=1,100)242 2139 y(call)g(relax)h(\(u,)f(f\))75 2195 y(C)107 b(Exchange)22 b(data)i(with)f(neighbor)g(processes)242 2251 y(call)g(exchange)g(\(u,) h(comm)p 771 2251 V 16 w(cart,)f(neigh)p 1050 2251 V 17 w(rank,)g(num)p 1282 2251 V 17 w(neigh\))75 2308 y(10)71 b(continue)194 2364 y(call)24 b(output)f(\(u\))194 2421 y(end)154 2625 y Fu(Figure)16 b(1.1:)j(Set-up)d(of)e(pro)q(cess)i (structure)f(for)f(t)o(w)o(o-dimensional)i(parallel)h(P)o(oisson)e (solv)o(er.)-32 46 y Fm(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop %%Page: 16 18 16 17 bop 75 377 a Fs(Biblio)q(graph)m(y)75 600 y Fu([1])22 b(Luc)16 b(Bomans)e(and)i(Rolf)f(Hemp)q(el.)22 b(The)15 b(Argonne/GMD)f(macros)g(in)i(F)o(OR)l(TRAN)g(for)e(p)q(ortable)146 656 y(parallel)i(programming)f(and)g(their)g(implemen)o(tation)h(on)f (the)g(In)o(tel)h(iPSC/2.)k Fn(Par)n(al)r(lel)15 b(Comput-)146 713 y(ing)p Fu(,)f(15:119{132,)e(1990.)75 806 y([2])22 b(Robin)d(Calkin,)g(Rolf)f(Hemp)q(el,)i(Hans-Christian)e(Hopp)q(e,)h (and)f(P)o(eter)f(Wypior.)28 b(P)o(ortable)17 b(pro-)146 863 y(gramming)c(with)h(the)g(parmacs)f(message{passing)h(library)l(.)k Fn(Par)n(al)r(lel)d(Computing,)g(Sp)n(e)n(cial)f(issue)146 919 y(on)i(message{p)n(assing)e(interfac)n(es)p Fu(,)g(to)h(app)q(ear.) 75 1013 y([3])22 b(S.)d(Chittor)f(and)i(R.)f(J.)g(En)o(b)q(o)q(dy)l(.) 32 b(P)o(erformance)18 b(ev)m(aluation)j(of)d(mesh{connected)i(w)o (ormhole{)146 1070 y(routed)13 b(net)o(w)o(orks)f(for)h(in)o(terpro)q (cessor)h(comm)o(unication)g(in)h(m)o(ulticomputers.)i(In)e Fn(Pr)n(o)n(c)n(e)n(e)n(dings)d(of)146 1126 y(the)k(1990)h(Sup)n(er)n (c)n(omputing)f(Confer)n(enc)n(e)p Fu(,)d(pages)i(647{656,)e(1990.)75 1220 y([4])22 b(S.)17 b(Chittor)f(and)i(R.)f(J.)g(En)o(b)q(o)q(dy)l(.) 27 b(Predicting)18 b(the)f(e\013ect)g(of)g(mapping)h(on)f(the)g(comm)o (unication)146 1276 y(p)q(erformance)e(of)f(large)i(m)o(ulticomputers.) k(In)15 b Fn(Pr)n(o)n(c)n(e)n(e)n(dings)f(of)i(the)h(1991)g (International)d(Confer-)146 1333 y(enc)n(e)h(on)h(Par)n(al)r(lel)f(Pr) n(o)n(c)n(essing,)f(vol.)i(II)g(\(Softwar)n(e\))p Fu(,)e(pages)h(I)q (I{1)g({)g(I)q(I{4,)g(1991.)75 1427 y([5])22 b(O.)c(Kr\177)-23 b(amer)19 b(and)g(H.)f(M)q(\177)-24 b(uhlen)o(b)q(ein.)33 b(Mapping)19 b(strategies)f(in)i(message{based)e(m)o(ultipro)q(cessor) 146 1483 y(systems.)h Fn(Par)n(al)r(lel)d(Computing)p Fu(,)e(9:213{225,)f(1989.)75 1577 y([6])22 b(P)o(arasoft)11 b(Corp)q(oration,)i(P)o(asadena,)g(CA.)j Fn(Expr)n(ess)e(User's)g (Guide)p Fu(,)f(v)o(ersion)h(3.2.5)e(edition,)i(1992.)1967 46 y Fm(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF .