%!PS-Adobe-2.0 %%Creator: dvips by Radical Eye Software %%Pages: 6 1 %%BoundingBox: 0 0 612 792 %%EndComments %%BeginDocument: tex.pro /TeXDict 200 dict def TeXDict begin /bdf{bind def}def /bop-aux{}bdf /@rigin{ /@page-height exch def /@page-width exch def 72 Resolution div dup neg scale translate}bdf /@letter{Resolution dup -10 mul 8.5 11 @rigin}bdf /@landscape{[ 0 1 -1 0 0 0]concat Resolution dup 8.5 11 @rigin}bdf /@a4{Resolution dup -10.6929133858 mul 21 2.54 div 29.7 2.54 div @rigin}bdf /@legal{Resolution dup -13 mul 8.5 14 @rigin}bdf /@11x17{statusdict /11x17tray known{statusdict begin 11x17tray end}if Resolution dup -16 mul 11 17 @rigin}bdf /@manualfeed{ statusdict /manualfeed true put}bdf /@copies{/#copies exch def}bdf /@draft{ /bop-aux{gsave initmatrix 72 dup scale @page-width 2 div @page-height 2 div translate @page-height @page-width atan rotate /Helvetica-Bold findfont 2 scalefont setfont(DRAFT)dup stringwidth pop 2 div neg -1 moveto .95 setgray show grestore}bdf}bdf /@FontMatrix[1 0 0 -1 0 0]def /@FontBBox[0 0 0 0]def /dmystr(ZZf@@@)def /newname{dmystr cvn}bdf /df{/fontname exch def dmystr 2 fontname cvx(@@@@)cvs putinterval newname 7 dict def newname load begin /FontType 3 def /FontMatrix @FontMatrix def /FontBBox @FontBBox def /BitMaps 256 array def /BuildChar{CharBuilder}def /Encoding IdentityEncoding def end fontname{/foo setfont}2 array copy cvx def fontname load 0 dmystr 6 string copy cvn cvx put}bdf /dfe{newname dup load definefont setfont}bdf /ch-image{ ch-data 0 get}bdf /ch-width{ch-data 1 get}bdf /ch-height{ch-data 2 get}bdf /ch-xoff{ch-data 3 get}bdf /ch-yoff{ch-data 4 get}bdf /ch-dx{ch-data 5 get} bdf /CharBuilder{save 3 1 roll exch /BitMaps get exch get /ch-data exch def ch-data null ne{ch-dx 0 ch-xoff ch-yoff neg ch-xoff ch-width add ch-height ch-yoff sub setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-height ch-yoff sub .1 add]{ch-image}imagemask}if restore}bdf /dc{/ch-code exch def /ch-data exch def newname load /BitMaps get ch-code ch-data put}bdf /bop{gsave /SaveImage save def /bop-aux load exec 0 0 moveto}bdf /eop{clear SaveImage restore showpage grestore}bdf /@start{/Resolution exch def /IdentityEncoding 256 array def 0 1 255{IdentityEncoding exch 1 string dup 0 3 index put cvn put}for}bdf /p{show}bdf /RuleMatrix[1 0 0 -1 -.1 -.1]def /BlackDots 8 string def /v{gsave currentpoint translate false RuleMatrix{ BlackDots}imagemask grestore}bdf /a{moveto}bdf /delta 0 def /tail{dup /delta exch def 0 rmoveto}bdf /b{exch show tail}bdf /c{show delta 4 sub tail}bdf /d{ show delta 3 sub tail}bdf /e{show delta 2 sub tail}bdf /f{show delta 1 sub tail}bdf /g{show delta 0 rmoveto}bdf /h{show delta 1 add tail}bdf /i{show delta 2 add tail}bdf /j{show delta 3 add tail}bdf /k{show delta 4 add tail} bdf /l{show -4 0 rmoveto}bdf /m{show -3 0 rmoveto}bdf /n{show -2 0 rmoveto} bdf /o{show -1 0 rmoveto}bdf /q{show 1 0 rmoveto}bdf /r{show 2 0 rmoveto}bdf /s{show 3 0 rmoveto}bdf /t{show 4 0 rmoveto}bdf /w{0 rmoveto}bdf /x{0 exch rmoveto}bdf /y{3 2 roll show moveto}bdf /bos{/section save def}bdf /eos{clear section restore}bdf end %%EndDocument TeXDict begin 300 @start /fa df[<000200020006000E003C00DC031C001C003800380038 0038007000700070007000E000E000E000E001C001C001C001C003800380038003800780FFF8> 15 30 5 0 23]49 dc[<001F800060E00080700100300200380420380420380410380420700460 700380600000E00001C000030000FE00001C000006000007000007800007800007803007807807 80780780F00F00800F00401E00401C0040380020E0001F8000>21 31 4 1 23]51 dc[<000002 00000006000000060000000E0000001E0000001E0000003F0000002F0000004F0000004F000000 8F0000010F0000010F0000020F0000020F0000040F00000C0F0000080F0000100F0000100F0000 200F80003FFF800040078000C00780008007800100078001000780020007800200078006000780 1E000F80FF807FF8>29 32 2 0 34]65 dc[<0000FE0200078186001C004C0038003C0060003C 00C0001C01C0001803800018070000180F0000181E0000101E0000103C0000003C000000780000 00780000007800000078000000F0000000F0000000F0000000F0000000F0000080700000807000 0080700001003800010038000200180004000C001800060020000381C00000FE0000>31 33 6 1 33]67 dc[<01FE00007FC0001E0000FC00001E0000F80000170001780000170001780000270002 F00000270004F00000270004F00000270008F00000470009E00000470011E00000470021E00000 470021E00000870043C00000838043C00000838083C00000838083C00001038107800001038207 80000103820780000103840780000203840F00000203880F00000203900F00000203900F000004 01E01E00000401E01E00000401C01E00000C01801E00001C01803E0000FF8103FFC000>42 31 3 0 41]77 dc[<0001FC0000070700001C01C0003000E000E0006001C00070038000700780003807 0000380E0000381E0000381C0000383C0000383C00003878000078780000787800007878000078 F00000F0F00000F0F00000E0F00001E0F00001C0F00003C0700003807000070078000F0038001E 0038003C001C0070000E00E0000783800001FC0000>29 33 6 1 35]79 dc[<01FFFF80001E00 E0001E0070001E0038001E003C003C003C003C003C003C003C003C003C00780078007800780078 00F0007800E000F003C000F00F0000FFFC0000F0000001E0000001E0000001E0000001E0000003 C0000003C0000003C0000003C00000078000000780000007800000078000000F800000FFF00000 >30 31 3 0 31]80 dc[<0007E040001C18C0003005800060038000C0038001C0018001800100 0380010003800100038001000380000003C0000003C0000003F8000001FF800001FFE000007FF0 00001FF0000001F800000078000000780000003800000038002000380020003800200030006000 7000600060006000E0007000C000E8038000C606000081F80000>26 33 3 1 26]83 dc[<00F1 800389C00707800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E 20F01C40F01C40703C40705C40308C800F0700>19 20 4 0 23]97 dc[<007E0001C100030080 0E07801E07801C07003C0200780000780000780000F00000F00000F00000F00000F00000700100 70020030040018380007C000>17 20 4 0 21]99 dc[<0000780003F800007000007000007000 00700000E00000E00000E00000E00001C00001C000F1C00389C00707800E03801C03803C038038 0700780700780700780700F00E00F00E00F00E00F00E20F01C40F01C40703C40705C40308C800F 0700>21 32 4 0 23]100 dc[<007C01C207010E011C013C013802780C7BF07C00F000F000F000 F0007000700170023804183807C0>16 20 4 0 21]101 dc[<00007800019C00033C00033C0007 18000700000700000E00000E00000E00000E00000E0001FFE0001C00001C00001C00001C000038 0000380000380000380000380000700000700000700000700000700000700000E00000E00000E0 0000E00000C00001C00001C0000180003180007B0000F300006600003C0000>22 41 -2 9 14] 102 dc[<003C6000E27001C1E00380E00700E00F00E00E01C01E01C01E01C01E01C03C03803C03 803C03803C03803C07003C07001C0F001C17000C2E0003CE00000E00000E00001C00001C00301C 00783800F0700060E0003F8000>20 29 2 9 21]103 dc[<01E0000FE00001C00001C00001C000 01C000038000038000038000038000070000070000071E000763000E81800F01C00E01C00E01C0 1C03801C03801C03801C0380380700380700380700380E10700E20700C20701C20700C40E00CC0 600700>20 32 3 0 23]104 dc[<00C001E001E001C000000000000000000000000000000E0033 00230043804300470087000E000E000E001C001C001C003840388030807080310033001C00>11 31 4 0 14]105 dc[<03C01FC0038003800380038007000700070007000E000E000E000E001C00 1C001C001C0038003800380038007000700070007100E200E200E200E20064003800>10 32 4 0 12]108 dc[<1C0F80F0002630C318004740640C004780680E004700700E004700700E008E00E0 1C000E00E01C000E00E01C000E00E01C001C01C038001C01C038001C01C038001C01C070803803 8071003803806100380380E100380380620070070066003003003800>33 20 4 0 37]109 dc[< 1C0F802630C04740604780604700704700708E00E00E00E00E00E00E00E01C01C01C01C01C01C0 1C03843803883803083807083803107003303001C0>22 20 4 0 26]110 dc[<007C0001C30003 01800E01C01E01C01C01E03C01E07801E07801E07801E0F003C0F003C0F003C0F00780F0070070 0F00700E0030180018700007C000>19 20 4 0 23]111 dc[<01C1E002621804741C04781C0470 1E04701E08E01E00E01E00E01E00E01E01C03C01C03C01C03C01C0380380780380700380E003C1 C0072380071E000700000700000E00000E00000E00000E00001C00001C0000FFC000>23 29 0 9 23]112 dc[<1C1E002661004783804787804707804703008E00000E00000E00000E00001C0000 1C00001C00001C0000380000380000380000380000700000300000>17 20 4 0 19]114 dc[<00 FC030206010C030C070C060C000F800FF007F803FC003E000E700EF00CF00CE008401020601F80 >16 20 3 0 19]115 dc[<018001C0038003800380038007000700FFF007000E000E000E000E00 1C001C001C001C003800380038003820704070407080708031001E00>12 28 4 0 15]116 dc[< 0E00C03300E02301C04381C04301C04701C08703800E03800E03800E03801C07001C07001C0700 1C07101C0E20180E20180E201C1E200C264007C380>20 20 4 0 24]117 dc[<0E00C03300E023 01C04381C04301C04701C08703800E03800E03800E03801C07001C07001C07001C07001C0E0018 0E00180E001C1E000C3C0007DC00001C00001C00003800F03800F07000E06000C0C0004380003E 0000>19 29 4 9 22]121 dc dfe /fb df[<007000F001E003C007800F001E001C0038003800 7000700070007000E000E000E000E000E000E000E000E0007000700070007000380038001C001E 000F00078003C001F000F00070>12 36 7 4 24]40 dc[<6000F00078003C001E000F00078003 8001C001C000E000E000E000E00070007000700070007000700070007000E000E000E000E001C0 01C0038007800F001E003C007800F0006000>12 36 4 4 24]41 dc[<01C00001C00001C00001 C000C1C180F1C780F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C18001 C00001C00001C00001C000>17 20 3 -4 24]42 dc[<00600000F00000F00000F00000F00000F0 0000F00000F0007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F0 00006000>19 20 2 -4 24]43 dc[<000300000780000780000F80000F00001F00001E00001E00 003E00003C00007C0000780000780000F80000F00001F00001E00003E00003C00003C00007C000 0780000F80000F00000F00001F00001E00003E00003C00003C00007C0000780000F80000F00000 F00000600000>17 36 3 4 24]47 dc[<01F00007FC000FFE001F1F001C07003803807803C070 01C07001C0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C070 01C07803C03803801C07001F1F000FFE0007FC0001F000>19 28 2 0 24]48 dc[<183C7E7E3C 180000000000000000183C7E7E3E1E0E1C3C78F060>7 26 8 6 24]59 dc[<000300000780001F 80003F00007E0001FC0003F00007E0001FC0003F00007E0000FC0000FC00007E00003F00001FC0 0007E00003F00001FC00007E00003F00001F80000780000300>17 24 3 -2 24]60 dc[<7FFFC0 FFFFE0FFFFE0FFFFE0000000000000000000000000FFFFE0FFFFE0FFFFE07FFFC0>19 12 2 -8 24]61 dc[<00F8E003FEE007FFE00F07E01E03E03C01E03800E07000E07000E0700000E00000E0 0000E00000E00000E00000E00000E00000E000007000007000E07000E03800E03C00E01E01C00F 07C007FF8003FE0000F800>19 28 2 0 24]67 dc[<01F1C003FDC00FFFC01F0FC01C03C03803 C03801C07001C07001C0700000E00000E00000E00000E00000E00000E00FF0E01FF0E00FF07001 C07001C07003C03803C03803C01C07C01F0FC00FFFC003FDC001F1C0>20 28 2 0 24]71 dc[< 7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007FFF00 FFFF807FFF00>17 28 3 0 24]73 dc[<7F07F0FF87F87F07F01C03C01C07801C07001C0E001C 1E001C3C001C38001C70001CF0001DF0001DF0001FB8001FB8001F1C001E1C001C0E001C0E001C 07001C07001C03801C03801C01C07F03F0FF87F87F03F0>21 28 1 0 24]75 dc[<7FE000FFE0 007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 000E00000E00000E00000E00000E00000E00700E00700E00700E00700E00707FFFF0FFFFF07FFF F0>20 28 1 0 24]76 dc[<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CC1C0 1CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C01C19C01C1DC0 1C0DC01C0DC01C0DC07F07C0FF87C07F03C0>21 28 1 0 24]78 dc[<0FF8003FFE007FFF0078 0F00700700F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0 0380E00380E00380E00380E00380E00380F00780700700780F007FFF003FFE000FF800>17 28 3 0 24]79 dc[20 28 1 0 24]80 dc[<03F3801FFF803FFF807C0F80700780E0 0380E00380E00380E000007000007800003F00001FF00007FE0000FF00000F800003C00001C000 00E00000E06000E0E000E0E001E0F001C0F80780FFFF80FFFE00E7F800>19 28 2 0 24]83 dc[ 23 28 0 0 24]85 dc[<3FFFE07FFFE07FFFE07001C07003C0700780700700 000F00001E00001C00003C0000780000700000F00001E00001C00003C0000780000700000F0000 1E00E01C00E03C00E07800E07000E0FFFFE0FFFFE0FFFFE0>19 28 2 0 24]90 dc[<7FFF00FF FF80FFFF807FFF00>17 4 3 4 24]95 dc[<1FE0003FF8007FFC00781E00300E00000700000700 00FF0007FF001FFF007F0700780700E00700E00700E00700F00F00781F003FFFF01FFBF007E1F0 >20 20 3 0 24]97 dc[<01FE0007FF001FFF803E0780380300700000700000E00000E00000E0 0000E00000E00000E000007000007001C03801C03E03C01FFF8007FF0001FC00>18 20 3 0 24] 99 dc[<001F80003F80001F8000038000038000038000038000038003E3800FFB801FFF803C1F 80380F80700780700380E00380E00380E00380E00380E00380E00380700780700780380F803C1F 801FFFF00FFBF803E3F0>21 28 2 0 24]100 dc[<01F00007FC001FFE003E0F00380780700380 700380E001C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E03C01FFF8007FF00 01FC00>18 20 3 0 24]101 dc[<001F80007FC000FFE000E1E001C0C001C00001C00001C0007F FFC0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001 C00001C00001C00001C0007FFF007FFF007FFF00>19 28 1 0 24]102 dc[<01E1F007FFF80FFF F81E1E301C0E003807003807003807003807003807001C0E001E1E001FFC001FF80039E0003800 001C00001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E000387800F07E03F01FFF C00FFF8001FC00>21 31 1 11 24]103 dc[<03800007C00007C00007C0000380000000000000 000000000000007FC000FFC0007FC00001C00001C00001C00001C00001C00001C00001C00001C0 0001C00001C00001C00001C00001C00001C000FFFF00FFFF80FFFF00>17 29 4 0 24]105 dc[< FE0000FE0000FE00000E00000E00000E00000E00000E00000E3FF00E7FF00E3FF00E07800E0F00 0E1E000E3C000E78000EF0000FF8000FFC000F9C000F0E000E0F000E07000E03800E03C0FFC7F8 FFC7F8FFC7F8>21 28 1 0 24]107 dc[<7FE000FFE0007FE00000E00000E00000E00000E00000 E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000 E00000E00000E00000E00000E0007FFFC0FFFFE07FFFC0>19 28 2 0 24]108 dc[<7CE0E000FF FBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00 1C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF807F1F1F00>25 20 -1 0 24]109 dc[<7E3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E 00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC>23 20 0 0 24]110 dc [<01F0000FFE001FFF003E0F803803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001 E07001C07803C03C07803E0F801FFF000FFE0001F000>19 20 2 0 24]111 dc[<7E3E00FEFF80 7FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F0070 0F80E00FC1E00FFFC00EFF800E3E000E00000E00000E00000E00000E00000E00000E00007FC000 FFE0007FC000>21 30 0 10 24]112 dc[<7F87E0FF9FF07FBFF803F87803F03003E00003C000 03C0000380000380000380000380000380000380000380000380000380007FFE00FFFF007FFE00 >21 20 1 0 24]114 dc[<07F7003FFF007FFF00780F00E00700E00700E007007C00007FE0001F FC0003FE00001F00600780E00380E00380F00380F80F00FFFF00FFFC00E7F000>17 20 3 0 24] 115 dc[<0180000380000380000380000380007FFFC0FFFFC0FFFFC00380000380000380000380 000380000380000380000380000380000380400380E00380E00380E001C1C001FFC000FF80003E 00>19 25 1 0 24]116 dc[<0007E0001FE0007FE000780000E00000E00000E00000E00000E000 00E00000E00000E00000E00000E00000E00001E0007FC000FF8000FF80007FC00001E00000E000 00E00000E00000E00000E00000E00000E00000E00000E00000E00000E000007800007FE0001FE0 0007E0>19 36 2 4 24]123 dc[<7C0000FF0000FFC00003C00000E00000E00000E00000E00000 E00000E00000E00000E00000E00000E00000E00000F000007FC0003FE0003FE0007FC000F00000 E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00003C000FFC000FF 00007C0000>19 36 2 4 24]125 dc dfe /fc df[<01801801C01C0380380380380380380380 380700700700700700700700700E00E00E00E00E00E00E00E11E01C21E01C21E03C21E05C43F08 C439F078380000380000700000700000700000700000E00000E00000E00000C00000>24 30 1 10 27]22 dc dfe /fd df[<000FF83F00007FFDFFC001F81FE3E003E03F87E007C03F87E00F80 3F07E00F803F03C00F801F00000F801F00000F801F00000F801F00000F801F00000F801F0000FF FFFFFC00FFFFFFFC000F801F00000F801F00000F801F00000F801F00000F801F00000F801F0000 0F801F00000F801F00000F801F00000F801F00000F801F00000F801F00000F801F00000F801F00 000F801F00000F801F00000F801F00000F801F00007FF0FFF0007FF0FFF000>35 35 1 0 33] 11 dc[<387CFEFEFE7C38>7 7 4 0 16]46 dc[<00180000780001F800FFF800FFF80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001 F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8007FFFE07FFFE0> 19 32 4 0 28]49 dc[<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01 F83803F80003F80003F00003F00007E00007C0000F80001F00003E0000380000700000E01801C0 180380180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF0>21 32 3 0 28]50 dc[< 00FE0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E00007C0 001F8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FEFF00FE FF00FC7E01FC7801F81E07F00FFFC001FE00>23 32 2 0 28]51 dc[34 34 2 0 40]66 dc[<0003FE0080001FFF818000FF01E38001F8003F8003E0001F 8007C0000F800F800007801F800007803F000003803F000003807F000001807E000001807E0000 0180FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 0000007E000000007E000001807F000001803F000001803F000003801F800003000F8000030007 C000060003F0000C0001F800380000FF00F000001FFFC0000003FE0000>33 34 3 0 40]67 dc[ 32 34 2 0 37]69 dc[30 34 2 0 35]70 dc[19 34 1 0 21]73 dc[38 34 2 0 44] 75 dc[39 34 2 0 44]78 dc[32 34 2 0 38]80 dc[39 34 2 0 42]82 dc[<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF 0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F00003FC0 001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF80>24 34 3 0 31]83 dc[ <7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180E003F801C0E003F8 01C0C003F800C0C003F800C0C003F800C0C003F800C00003F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 0003F8000003FFFFF80003FFFFF800>34 34 2 0 39]84 dc[55 34 1 0 58]87 dc[<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0003FF003FDF01FC1F03F 01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F>24 22 2 0 27]97 dc[ <00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC0000FC00 00FC00007C00007E00007E00003E00301F00600FC0E007FF8000FE00>20 22 2 0 25]99 dc[< 00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000 FC00007C00007C00007E00003E00181F00300FC07003FFC000FF00>21 22 2 0 26]101 dc[<00 3F8000FFC001E3E003C7E007C7E00F87E00F83C00F80000F80000F80000F80000F80000F8000FF FC00FFFC000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F 80000F80000F80000F80000F80000F80000F80007FF8007FF800>19 35 1 0 17]102 dc[<03FC 1E0FFF7F1F0F8F3E07CF3C03C07C03E07C03E07C03E07C03E07C03E03C03C03E07C01F0F801FFF 0013FC003000003000003800003FFF801FFFF00FFFF81FFFFC3800FC70003EF0001EF0001EF000 1EF0001E78003C7C007C3F01F80FFFE001FF00>24 33 2 11 28]103 dc[26 35 2 0 31]104 dc[<1C003F007F007F007F003F001C 000000000000000000000000000000FF00FF001F001F001F001F001F001F001F001F001F001F00 1F001F001F001F001F001F001F001F00FFE0FFE0>11 36 2 0 16]105 dc[26 35 2 0 30]107 dc[11 35 2 0 16]108 dc[43 22 2 0 48]109 dc[26 22 2 0 31]110 dc[<00FE 0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC007EFC007EFC00 7EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE00>23 22 2 0 28]111 dc[26 32 2 10 31]112 dc[19 22 2 0 23]114 dc[<0FF3003FFF00781F00600700E00300E00300F003 00FC00007FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F00700FC0E 00EFFC00C7F000>17 22 2 0 22]115 dc[<018000018000018000018000038000038000078000 0780000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F80000F80000F8000 0F80000F80000F80000F81800F81800F81800F81800F81800F830007C30003FE0000F800>17 32 1 0 22]116 dc[26 22 2 0 31]117 dc[27 2 0 -13 28]123 dc dfe /fe df[<007E1F8001C170400703C060060380E00E0380400E038000 0E0380000E0380000E0380000E038000FFFFFFE00E0380E00E0380E00E0380E00E0380E00E0380 E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E00E0380E07F8F E3FC>30 26 0 0 32]14 dc[<60C0F1E0F9F068D0081008100810102010202040C180>12 11 1 -15 19]34 dc[<00800100020004000C00080018003000300030006000600060006000E000E000 E000E000E000E000E000E000E000E0006000600060006000300030003000180008000C00040002 0001000080>9 38 3 10 15]40 dc[<8000400020001000180008000C00060006000600030003 000300030003800380038003800380038003800380038003800300030003000300060006000600 0C00080018001000200040008000>9 38 2 10 15]41 dc[<60F0F07010101020204080>4 11 3 7 11]44 dc[10 2 0 -7 13]45 dc[<60F0F060>4 4 3 0 11]46 dc[<0004000C00 180018001800300030003000600060006000C000C000C001800180018003000300030006000600 06000C000C000C00180018001800300030003000600060006000C000C000>14 37 2 9 19]47 dc[<078018603030303060186018E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C60 1860187038303018600780>14 24 2 0 19]48 dc[<0F80106020304038803CC01CE01C401C00 3C003800380070006000C001800100020004040804100430083FF87FF8FFF8>14 24 2 0 19] 50 dc[<0F8010E02070607870382038007800700070006000C00F8000E000700038003C003CE0 3CE03CC03C4038407030E00F80>14 24 2 0 19]51 dc[<30183FF03FE03FC020002000200020 00200027C03860203000380018001C001C401CE01CE01C80184038403030E00F80>14 24 2 0 19]53 dc[<40007FFE7FFC7FFC4008801080108020004000400080018001800100030003000300 03000700070007000700070007000200>15 25 2 0 19]55 dc[<07801860303070306018E018 E018E01CE01CE01C601C603C303C185C0F9C001C00180018003870307060604021801F00>14 24 2 0 19]57 dc[<000C0000000C0000000C0000001E0000001E0000003F00000027000000270000 0043800000438000004380000081C0000081C0000081C0000100E0000100E00001FFE000020070 000200700006007800040038000400380008001C0008001C001C001E00FF00FFC0>26 26 1 0 29]65 dc[22 26 2 0 27]66 dc[<003F0201C0C603002E0E001E1C000E1C00063800067800 02700002700002F00000F00000F00000F00000F00000F000007000027000027800023800041C00 041C00080E000803003001C0C0003F00>23 26 2 0 28]67 dc[24 26 2 0 29]68 dc[ 20 26 2 0 25]70 dc[24 26 2 0 29]72 dc[11 26 1 0 14]73 dc[<1FFC00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 00E000E000E040E0E0E0E0E041C061801E00>14 26 3 0 20]74 dc[30 26 2 0 35]77 dc[24 26 2 0 29]78 dc[<00 7F000001C1C000070070000E0038001C001C003C001E0038000E0078000F0070000700F0000780 F0000780F0000780F0000780F0000780F0000780F0000780F000078078000F0078000F0038000E 003C001E001C001C000E0038000700700001C1C000007F0000>25 26 2 0 30]79 dc[21 26 2 0 26]80 dc[25 26 2 0 28]82 dc[<0FC21836200E6006C006C002C002C002E00070007E003FE01FF807FC003E000E0007 0003800380038003C002C006E004D81887E0>16 26 2 0 21]83 dc[<7FFFFF00701C0700401C 0100401C0100C01C0180801C0080801C0080801C0080001C0000001C0000001C0000001C000000 1C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000 001C0000001C0000001C000003FFE000>25 26 1 0 28]84 dc[24 26 2 0 29]85 dc[27 26 1 0 29]89 dc[<183020 4040804080810081008100B160F9F078F03060>12 11 5 -15 19]92 dc[<3F8070C070E02070 0070007007F01C7030707070E070E071E071E0F171FB1E3C>16 16 2 0 19]97 dc[18 26 1 0 21]98 dc[<07F80C1C381C30087000E000E000E000E000E000E0007000300438080C1807E0> 14 16 1 0 17]99 dc[<007E00000E00000E00000E00000E00000E00000E00000E00000E00000E 0003CE000C3E00380E00300E00700E00E00E00E00E00E00E00E00E00E00E00E00E00600E00700E 00381E001C2E0007CFC0>18 26 1 0 21]100 dc[<07C01C3030187018600CE00CFFFCE000E000 E000E0006000300438080C1807E0>14 16 1 0 17]101 dc[<01F0031807380E100E000E000E00 0E000E000E00FFC00E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE0> 13 26 0 0 12]102 dc[<0FCE187330307038703870387038303018602FC02000600070003FF0 3FFC1FFE600FC003C003C003C0036006381C07E0>16 24 1 8 19]103 dc[18 26 1 0 21] 104 dc[<18003C003C001800000000000000000000000000FC001C001C001C001C001C001C001C 001C001C001C001C001C001C001C00FF80>9 26 0 0 10]105 dc[<018003C003C00180000000 0000000000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C0 01C001C001C001C041C0E180E3007E00>10 33 -2 7 12]106 dc[9 26 0 0 10]108 dc[ 29 16 1 0 32]109 dc[18 16 1 0 21]110 dc[<07E01C38300C700E 6006E007E007E007E007E007E0076006700E381C1C3807E0>16 16 1 0 19]111 dc[18 23 1 7 21]112 dc[12 16 1 0 15]114 dc[<1F2060E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F80>12 16 1 0 15]115 dc[<0400040004000C000C001C003C00FFC01C001C001C001C001C001C001C001C001C 201C201C201C201C200E400380>11 23 1 0 15]116 dc[18 16 1 0 21]117 dc[17 16 1 0 20]118 dc[25 16 1 0 28]119 dc[18 16 1 0 20] 120 dc[17 23 1 7 20]121 dc[<7FF86070407040E041C041C00380070007000E081C081C08381070107030FFF0> 13 16 1 0 17]122 dc dfe /ff df[<1F00318060C04040C060C060C060C060C060C060C060C0 60404060C031801F00>11 16 1 0 15]48 dc dfe /fg df[<001F83E000F06E3001C078780380 F8780300F03007007000070070000700700007007000070070000700700007007000FFFFFF8007 007000070070000700700007007000070070000700700007007000070070000700700007007000 07007000070070000700700007007000070070000700700007007000070070007FE3FF00>29 32 0 0 27]11 dc[<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700 00070000FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 E00700E00700E00700E00700E00700E00700E00700E07FC3FE>23 32 0 0 25]12 dc[<003FE0 00E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE00700E0 0700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0 0700E00700E00700E00700E07FE7FE>23 32 0 0 25]13 dc[<001F81F80000F04F040001C07C 06000380F80F000300F00F000700F00F0007007000000700700000070070000007007000000700 7000000700700000FFFFFFFF000700700700070070070007007007000700700700070070070007 007007000700700700070070070007007007000700700700070070070007007007000700700700 070070070007007007000700700700070070070007007007007FE3FE3FF0>36 32 0 0 38]14 dc[<7038F87CFC7EFC7E743A040204020402080408041008100820104020>15 14 2 -18 23] 34 dc[<70F8FCFC74040404080810102040>6 14 4 -18 13]39 dc[<00200040008001000200 06000C000C00180018003000300030007000600060006000E000E000E000E000E000E000E000E0 00E000E000E000E0006000600060007000300030003000180018000C000C000600020001000080 00400020>11 46 3 12 18]40 dc[<800040002000100008000C00060006000300030001800180 018001C000C000C000C000E000E000E000E000E000E000E000E000E000E000E000E000C000C000 C001C001800180018003000300060006000C0008001000200040008000>11 46 3 12 18]41 dc [<70F8FCFC74040404080810102040>6 14 4 9 13]44 dc[10 2 1 -9 15]45 dc[ <70F8F8F870>5 5 4 0 13]46 dc[<03F0000E1C001C0E00180600380700700380700380700380 700380F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0 F003C07003807003807003807807803807001806001C0E000E1C0003F000>18 31 2 1 23]48 dc[<018003800F80F3800380038003800380038003800380038003800380038003800380038003 8003800380038003800380038003800380038007C0FFFE>15 30 4 0 23]49 dc[<03F0000C1C 00100E00200700400780800780F007C0F803C0F803C0F803C02007C00007C0000780000780000F 00000E00001C0000380000700000600000C0000180000300000600400C00401800401000803FFF 807FFF80FFFF80>18 30 2 0 23]50 dc[<03F0000C1C00100E00200F00780F80780780780780 380F80000F80000F00000F00000E00001C0000380003F000003C00000E00000F00000780000780 0007C02007C0F807C0F807C0F807C0F00780400780400F00200E001C3C0003F000>18 31 2 1 23]51 dc[<000600000600000E00000E00001E00002E00002E00004E00008E00008E00010E0002 0E00020E00040E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00000E0000 0E00000E00000E00000E00000E0000FFE0>20 30 1 0 23]52 dc[<1803001FFE001FFC001FF8 001FE00010000010000010000010000010000010000011F000161C00180E001007001007800003 800003800003C00003C00003C07003C0F003C0F003C0E00380400380400700200600100E000C38 0003E000>18 31 2 1 23]53 dc[<007C000182000701000E03800C07801C0780380300380000 780000700000700000F1F000F21C00F40600F80700F80380F80380F003C0F003C0F003C0F003C0 F003C07003C07003C07003803803803807001807000C0E00061C0001F000>18 31 2 1 23]54 dc[<4000007FFFC07FFF807FFF8040010080020080020080040000080000080000100000200000 200000400000400000C00000C00001C00001800003800003800003800003800007800007800007 8000078000078000078000078000030000>18 31 3 1 23]55 dc[<03F0000C0C001006003003 002001806001806001806001807001807803003E03003F06001FC8000FF00003F80007FC000C7E 00103F00300F806003804001C0C001C0C000C0C000C0C000C0C000806001802001001002000C0C 0003F000>18 31 2 1 23]56 dc[<03F0000E18001C0C00380600380700700700700380F00380 F00380F003C0F003C0F003C0F003C0F003C07007C07007C03807C0180BC00E13C003E3C0000380 000380000380000700300700780600780E00700C002018001070000FC000>18 31 2 1 23]57 dc[<70F8F8F8700000000000000000000070F8F8F870>5 20 4 0 13]58 dc[<00010000000380 0000038000000380000007C0000007C0000007C0000009E0000009E0000009E0000010F0000010 F0000010F00000207800002078000020780000403C0000403C0000403C0000801E0000801E0000 FFFE0001000F0001000F0001000F00020007800200078002000780040003C00E0003C01F0007E0 FFC03FFE>31 32 1 0 34]65 dc[26 31 2 0 32]66 dc[<000FC0400070 30C001C009C0038005C0070003C00E0001C01E0000C01C0000C03C0000C07C0000407C00004078 000040F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000 780000007C0000407C0000403C0000401C0000401E0000800E000080070001000380020001C004 0000703800000FC000>26 33 3 1 33]67 dc[29 31 2 0 35]68 dc[27 31 2 0 31]69 dc[25 31 2 0 30]70 dc[29 31 2 0 34]72 dc[14 31 1 0 16]73 dc[30 31 2 0 35]75 dc[37 31 2 0 42]77 dc[29 31 2 0 34]78 dc[<001F800000F0F00001C0380007801E000F000F000E0007 001E0007803C0003C03C0003C07C0003E0780001E0780001E0F80001F0F80001F0F80001F0F800 01F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E07C0003E03C0003C03C 0003C01E0007800E0007000F000F0007801E0001C0380000F0F000001F8000>28 33 3 1 35] 79 dc[25 31 2 0 31]80 dc[30 32 2 1 33]82 dc[<07E0800C1980100780300380600180600180E00180E00080E00080E00080F00000F0 00007800007F00003FF0001FFC000FFE0003FF00001F800007800003C00003C00001C08001C080 01C08001C08001C0C00180C00380E00300F00600CE0C0081F800>18 33 3 1 25]83 dc[<7FFF FFE0780F01E0600F0060400F0020400F0020C00F0030800F0010800F0010800F0010800F001000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F80 0007FFFE00>28 31 2 0 33]84 dc[29 32 2 1 34]85 dc[44 32 1 1 47]87 dc[7 45 4 11 13]91 dc[<08041008201020104020402080408040 8040B85CFC7EFC7E7C3E381C>15 14 5 -18 23]92 dc[7 45 1 11 13]93 dc[<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E00380E0078 0E00F00E10F00E10F00E10F01E10781E103867200F83C0>20 20 2 0 23]97 dc[<0E0000FE00 000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E000EC3800F01 C00F00E00E00E00E00700E00700E00780E00780E00780E00780E00780E00780E00700E00700E00 E00F00E00D01C00CC300083E00>21 32 1 0 25]98 dc[<03F80E0C1C1E381E380C70007000F0 00F000F000F000F000F00070007000380138011C020E0C03F0>16 20 2 0 20]99 dc[<000380 003F8000038000038000038000038000038000038000038000038000038000038003E380061B80 1C0780380380380380700380700380F00380F00380F00380F00380F00380F00380700380700380 3803803807801C07800E1B8003E3F8>21 32 2 0 25]100 dc[<03F0000E1C001C0E0038070038 0700700700700380F00380F00380FFFF80F00000F00000F000007000007000003800801800800C 010007060001F800>17 20 1 0 20]101 dc[<007C00C6018F038F070607000700070007000700 07000700FFF0070007000700070007000700070007000700070007000700070007000700070007 0007007FF0>16 32 0 0 14]102 dc[<0000E003E3300E3C301C1C30380E00780F00780F00780F 00780F00780F00380E001C1C001E380033E0002000002000003000003000003FFE001FFF800FFF C03001E0600070C00030C00030C00030C000306000603000C01C038003FC00>20 31 1 10 23] 103 dc[<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 000E3E000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC>22 32 1 0 25]104 dc[<1C001E003E00 1E001C000000000000000000000000000E007E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E00FFC0>10 31 0 0 12]105 dc[<00E001F001F001F000E000 0000000000000000000000007007F000F000700070007000700070007000700070007000700070 00700070007000700070007000700070007000706070F060F0C061803F00>12 40 -2 9 14] 106 dc[<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 000E0FF00E03C00E03000E02000E04000E08000E10000E30000E70000EF8000F38000E1C000E1E 000E0E000E07000E07800E03800E03C00E03E0FFCFF8>21 32 1 0 24]107 dc[<0E00FE000E00 0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E00FFE0>11 32 0 0 12]108 dc[<0E1F01F000FE618618 000E81C81C000F00F00E000F00F00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E0 0E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00 E00E000E00E00E00FFE7FE7FE0>35 20 1 0 38]109 dc[<0E3E00FE43000E81800F01C00F01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 0E01C0FFE7FC>22 20 1 0 25]110 dc[<01F800070E001C03803801C03801C07000E07000E0F0 00F0F000F0F000F0F000F0F000F0F000F07000E07000E03801C03801C01C0380070E0001F800> 20 20 1 0 23]111 dc[<0E3E00FEC3800F01C00F00E00E00E00E00F00E00700E00780E00780E 00780E00780E00780E00780E00700E00F00E00E00F01E00F01C00EC3000E3E000E00000E00000E 00000E00000E00000E00000E00000E0000FFE000>21 29 1 9 25]112 dc[<03E0800619801C05 803C0780380380780380700380F00380F00380F00380F00380F00380F003807003807803803803 803807801C0B800E138003E380000380000380000380000380000380000380000380000380003F F8>21 29 2 9 24]113 dc[<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E 000E000E000E000E000E00FFE0>15 20 1 0 18]114 dc[<1F9030704030C010C010C010E00078 007F803FE00FF00070803880188018C018C018E030D0608F80>13 20 2 0 18]115 dc[<020002 000200060006000E000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E08 0E080E080E080E080610031001E0>13 28 1 0 18]116 dc[<0E01C0FE1FC00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603 C0030DC001F1FC>22 20 1 0 25]117 dc[21 20 1 0 24]118 dc[30 20 1 0 33]119 dc[<7FC3FC0F01E00701C0070180038100 01C20000E40000EC00007800003800003C00007C00004E000087000107000303800201C00601E0 1E01E0FF07FE>23 20 0 0 24]120 dc[21 29 1 9 24]121 dc[<3FFF 380E200E201C40384078407000E001E001C00380078007010E011E011C0338027006700EFFFE> 16 20 1 0 20]122 dc[22 1 0 -12 23]123 dc[44 1 0 -12 45] 124 dc dfe /fh df[<70F8F8F870>5 5 4 0 14]46 dc[<0001800000018000000180000003C0 000003C0000003C0000005E0000005E000000DF0000008F0000008F0000010F800001078000010 780000203C0000203C0000203C0000401E0000401E0000401E0000800F0000800F0000FFFF0001 00078001000780030007C0020003C0020003C0040003E0040001E0040001E00C0000F00C0000F0 3E0001F8FF800FFF>32 35 2 0 37]65 dc[ 29 34 2 0 35]66 dc[31 34 2 0 37]68 dc[ 27 34 2 0 32]70 dc[32 34 2 0 37]78 dc[27 34 2 0 33]80 dc[33 35 2 1 36] 82 dc[<0FE0001838003C0C003C0E0018070000070000070000070000FF0007C7001E07003C07 00780700700700F00708F00708F00708F00F087817083C23900FC1E0>21 21 2 0 24]97 dc[< 01FE000703000C07801C0780380300780000700000F00000F00000F00000F00000F00000F00000 F000007000007800403800401C00800C010007060001F800>18 21 2 0 22]99 dc[<0000E000 0FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001 F8E00704E00C02E01C01E03800E07800E07000E0F000E0F000E0F000E0F000E0F000E0F000E0F0 00E07000E07800E03800E01801E00C02E0070CF001F0FE>23 35 2 0 27]100 dc[<01FC000707 000C03801C01C03801C07801E07000E0F000E0FFFFE0F00000F00000F00000F00000F000007000 007800203800201C00400E008007030000FC00>19 21 1 0 22]101 dc[<0E0000FE00001E0000 0E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E1F800E60C0 0E80E00F00700F00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070 0E00700E00700E00700E00700E0070FFE7FF>24 35 1 0 27]104 dc[<1C001E003E001E001C00 000000000000000000000000000000000E00FE001E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E00FFC0>10 34 1 0 14]105 dc[<0E00FE001E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E00FFE0>11 35 1 0 14]108 dc[<0E1F80FE60C0 1E80E00F00700F00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070 0E00700E00700E00700E00700E0070FFE7FF>24 21 1 0 27]110 dc[<01FC000707000C018018 00C03800E0700070700070F00078F00078F00078F00078F00078F00078F000787000707800F038 00E01C01C00E038007070001FC00>21 21 1 0 24]111 dc[<0E3CFE461E8F0F0F0F060F000E00 0E000E000E000E000E000E000E000E000E000E000E000E000F00FFF0>16 21 1 0 19]114 dc[< 0F8830786018C018C008C008E008F0007F803FE00FF001F8003C801C800C800CC00CC008E018D0 308FC0>14 21 2 0 19]115 dc[ 23 21 1 0 26]118 dc dfe /fi df[<000E00001E00007E0007FE00FFFE00FFFE00F8FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE007FFFFE7FFFFE7FFFFE>23 39 5 0 34]49 dc[<00FF800003FFF0000FFFFC00 1F03FE003800FF007C007F80FE003FC0FF003FC0FF003FE0FF001FE0FF001FE07E001FE03C003F E000003FE000003FC000003FC000007F8000007F000000FE000000FC000001F8000003F0000003 E00000078000000F0000001E0000003C00E0007000E000E000E001C001C0038001C0070001C00F FFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF80>27 39 3 0 34]50 dc[<00 7F800003FFF00007FFFC000F81FE001F00FF003F80FF003F807F803F807F803F807F801F807F80 0F007F800000FF000000FF000000FE000001FC000001F8000007F00000FFC00000FFF0000001FC 0000007E0000007F0000007F8000003FC000003FC000003FE000003FE03C003FE07E003FE0FF00 3FE0FF003FE0FF003FC0FF007FC07E007F807C007F003F01FE001FFFFC0007FFF00000FF8000> 27 39 3 0 34]51 dc[<00000E0000001E0000003E0000007E000000FE000000FE000001FE0000 03FE0000077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E00 03807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FFFFFF F8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00007F FFF8007FFFF8007FFFF8>29 39 2 0 34]52 dc[<00003FF001800003FFFE0380000FFFFF8780 003FF007DF8000FF8001FF8001FE00007F8003FC00003F8007F000001F800FF000000F801FE000 0007801FE0000007803FC0000007803FC0000003807FC0000003807F80000003807F8000000000 FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000 000000FF8000000000FF80000000007F80000000007F80000000007FC0000003803FC000000380 3FC0000003801FE0000003801FE0000007000FF00000070007F000000E0003FC00001E0001FE00 003C0000FF8000F800003FF007E000000FFFFFC0000003FFFF000000003FF80000>41 41 4 0 50]67 dc[39 41 3 0 45]69 dc[22 41 2 0 26] 73 dc[58 41 3 0 65]77 dc[39 41 3 0 47]80 dc[48 41 3 0 52]82 dc[<007F80 6003FFF0E007FFF9E00F807FE01F001FE03E0007E07C0003E07C0001E0FC0001E0FC0001E0FC00 00E0FE0000E0FE0000E0FF000000FFC000007FFE00007FFFE0003FFFFC001FFFFE000FFFFF8007 FFFFC003FFFFE000FFFFE00007FFF000007FF000000FF8000007F8000003F8600001F8E00001F8 E00001F8E00001F8F00001F0F00001F0F80003F0FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE 00C01FF000>29 41 4 0 38]83 dc[<7FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03F C07E003FC007C078003FC003C078003FC003C070003FC001C0F0003FC001E0F0003FC001E0E000 3FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E000003FC0000000003FC000 0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 3FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 3FC00000007FFFFFE000007FFFFFE000007FFFFFE000>43 40 2 0 48]84 dc[46 41 3 0 53]85 dc[<01FF800007FFF0000F81F8001FC07E001FC07E001FC0 3F000F803F8007003F8000003F8000003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F 803F803F003F807F003F80FE003F80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC 0FFF0FFC01FC03FC>30 27 2 0 33]97 dc[33 42 2 0 38]98 dc[<001FF80000FFFE0003F01F0007E03F800FC03F801F803F803F801F007F800E007F00 00007F000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000007F0000007F 0000007F8000003F8001C01F8001C00FC0038007E0070003F01E0000FFFC00001FE000>26 27 2 0 31]99 dc[<00003FF80000003FF80000003FF800000003F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8000000 03F800001FE3F80000FFFBF80003F03FF80007E00FF8000FC007F8001F8003F8003F8003F8007F 0003F8007F0003F8007F0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800 FF0003F800FF0003F8007F0003F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F8 0007C00FF80003F03BFF8000FFF3FF80003FC3FF80>33 42 2 0 38]100 dc[<003FE00001FFF8 0003F07E0007C01F000F801F801F800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF00 07E0FFFFFFE0FFFFFFE0FF000000FF000000FF0000007F0000007F0000007F0000003F8000E01F 8000E00FC001C007E0038003F81F0000FFFE00001FF000>27 27 2 0 32]101 dc[<0007F0003F FC00FE3E01F87F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007F0 00FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807FFF 807FFF80>24 42 2 0 21]102 dc[<00FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F007E10 7F007F007F007F007F007F007F007F007F007F007F007F003F007E001F007C001F80FC000FC1F8 001FFFE00018FF800038000000380000003C0000003E0000003FFFF8001FFFFF001FFFFF800FFF FFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C0001F03C 0001E01F0007C00FC01F8003FFFE00007FF000>30 40 2 13 34]103 dc[33 42 3 0 38]104 dc[<07000FC01FE03FE03FE03FE01FE00FC00700000000 0000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE>15 43 3 0 20]105 dc[31 42 2 0 36]107 dc[15 42 3 0 20]108 dc[53 27 3 0 58] 109 dc[33 27 3 0 38]110 dc[<003FE00001FF FC0003F07E000FC01F801F800FC03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF 0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE0 3F800FE01F800FC00FC01F8007F07F0001FFFC00003FE000>29 27 2 0 34]111 dc[33 39 2 12 38]112 dc[24 27 2 0 28]114 dc[<03FE300FFFF01E03F03800F0700070F00070 F00070F80070FC0000FFE0007FFE007FFF803FFFE01FFFF007FFF800FFF80003FC0000FC60007C E0003CF0003CF00038F80038FC0070FF01E0F7FFC0C1FF00>22 27 2 0 27]115 dc[<00700000 700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF007 F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007 F03807F03807F03807F03807F03807F03803F03803F87001F86000FFC0001F80>21 38 1 0 27] 116 dc[33 27 3 0 38]117 dc[33 27 1 0 36]118 dc[33 27 1 0 36]120 dc[33 39 1 12 36]121 dc dfe end TeXDict begin @letter %%EndProlog %%Page: 1 1 bop 422 307 a fi(Using)23 b(Microb)r(enc)n(hmarks)f(to)h(Ev)l(aluate)662 364 y(System)f(P)n(erformance)784 480 y fh(Brian)16 b(N.)f(Bershad)778 539 y(Ric) n(hard)h(P)m(.)f(Drav)n(es)791 595 y(Alessandro)i(F)-5 b(orin)694 730 y fg (Sc)o(ho)r(ol)15 b(of)g(Computer)g(Science)700 786 y(Carnegie)g(Mellon)h(Univ\ ersit)o(y)772 843 y(5000)e(F)l(orb)q(es)h(Av)o(en)o(ue)756 899 y(Pittsburgh,) g(P)l(A)g(15213)224 1092 y fi(1)69 b(In)n(tro)s(duction)224 1194 y fg(It)18 b (has)f(b)r(ecome)h(nearly)g(imp)r(ossible)h(to)e(write)h(a)f(pap)r(er)g(ab)q (out)h(an)n(ything)h(in)f(op)q(er-)224 1250 y(ating)g(systems)g(without)g(inc\ luding)j(some)c(discussion)j(of)e(p)q(erformance.)28 b(Usually)n(,)224 1307 y (the)20 b(p)q(erformance)g(section)g(concentrates)e(on)i(a)f(few)h(\\microb)q (enchmarks")f(whic)o(h)224 1363 y(demonstrate)d(that)f(whatev)n(er)h(it)h(is) f(which)g(is)h(b)q(eing)g(describ)s(ed)f(in)h(the)f(pap)r(er)g(can,)224 1419 y (has)j(b)q(een,)h(or)e(migh)o(t)h(b)q(e,)g(e\016cien)q(tly)f(implemen)q(ted.) 30 b(F)l(or)18 b(example,)i(the)f(time)g(to)224 1476 y(execute)e(a)g(n)o(ull) h(remote)e(pro)q(cedure)h(call,)h(a)e(system)g(trap,)g(or)g(to)g(access)g(a)h (page)f(of)224 1532 y(a)h(mapp)r(ed)h(\014le)h(ha)n(v)o(e)f(all)g(b)r(een)g (used)g(at)f(one)h(time)g(or)f(another)g(to)g(sho)o(w)h(that)e(the)224 1589 y (system)i(implementing)h(the)f(function)h(is)f(either)h(e\016cient)f(\(if)g (it)g(w)n(as)g(built)h(b)o(y)f(the)224 1645 y(authors\))c(or)h(ine\016cien)q (t)g(\(if)g(it)h(w)n(as)f(built)i(b)o(y)e(an)n(yb)r(o)q(dy)g(else\).)224 1687 y 598 2 v 276 1714 a ff(0)293 1730 y fe(This)20 b(research)f(w)o(as)h(sp)q (onsored)h(in)f(part)f(by)g(the)g(Defense)h(Adv)o(anced)g(Research)f(Pro)s (jects)224 1776 y(Agency)n(,)11 b(Information)j(Science)f(and)g(T)m(ec)o(hnol\ ogy)h(O\016ce,)e(under)h(the)f(title)h(\\Research)g(on)f(P)o(arallel)224 1821 y(Computing",)i(ARP)m(A)e(Order)g(No.)17 b(7330,)c(issued)g(by)f(D)o(ARP)m (A/CMO)g(under)h(Contract)f(MD)o(A972-)224 1867 y(90-C-0035)e(and)f(in)h(part) g(b)o(y)f(the)g(Op)r(en)g(Soft)o(w)o(are)g(F)m(oundation)i(\(OSF\).)e(Bershad) h(w)o(as)f(partially)j(sup-)224 1913 y(p)r(orted)h(b)o(y)g(a)f(National)j(Sci\ ence)f(F)m(oundation)h(Presiden)q(tial)f(Y)l(oung)g(In)o(v)o(estigator)g(Aw)n (ard.)k(Dra)o(v)o(es)224 1958 y(w)o(as)13 b(supp)r(orted)h(b)o(y)f(a)g(fellow\ ship)h(from)f(the)g(F)m(annie)h(and)g(John)f(Hertz)g(F)m(oundation.)263 2004 y (The)j(views)i(and)g(conclusions)i(con)o(tained)f(in)e(this)h(do)r(cument)e (are)h(those)h(of)f(the)g(authors)h(and)224 2050 y(should)c(not)f(b)r(e)f(int\ erpreted)h(as)g(representing)g(the)g(o\016cial)h(p)q(olicies,)h(either)e(expr\ essed)h(or)e(implied,)224 2095 y(of)d(D)o(ARP)m(A,)f(OSF,)h(the)g(F)m(annie)h (and)g(John)f(Hertz)g(F)m(oundation,)j(the)d(NSF,)f(or)h(the)g(U.S.)g(go)o (v)o(ernment.)p eop %%Page: 2 2 bop 295 307 a fg(Tw)n(o)17 b(implicit)k(assumptions)c(underlie)j(the)e(use)g (of)f(microb)r(enc)o(hmarks.)27 b(First,)224 364 y(it)14 b(is)g(assumed)g(tha\ t)f(the)h(time)g(required)h(for)e(the)h(microb)r(enc)o(hmark)f(to)h(exercise) g(the)224 420 y(co)q(de)20 b(path)e(in)i(question)g(is)f(the)g(same)g(as)f (it)h(is)h(when)f(the)g(co)r(de)g(path)g(is)g(used)h(b)o(y)224 477 y(real)e (programs.)26 b(Second,)18 b(there)g(is)g(the)g(assumption)g(that)e(a)i(micro\ b)q(enchmark)f(is)224 533 y(actually)k(represen)o(tativ)n(e)f(of)f(something) h(which)g(is)g(either)g(imp)r(ortan)n(t)g(in)g(its)g(o)n(wn)224 589 y(righ)o (t,)15 b(or)f(which)h(has)g(a)g(measurable)h(impact)f(on)g(o)n(v)o(erall)h (system)f(p)q(erformance.)20 b(In)224 646 y(this)14 b(pap)r(er)f(w)o(e)h(p)q (oint)f(out)g(the)h(vulnerabilit)q(y)g(of)f(the)h(\014rst)f(assumption)h(b)o (y)f(sho)o(wing)224 702 y(the)i(signi\014cant)g(v)m(ariation)g(that)f(can)h (o)q(ccur)g(with)g(ev)o(en)g(simple)h(microb)r(enc)o(hmarks.)224 759 y(Identi\ fying)g(w)n(eaknesses)f(in)h(the)f(second)g(assumption)g(is)g(something)g(b)r (est)f(done)i(on)224 815 y(a)f(case)g(b)o(y)g(case)h(basis.)224 958 y fi(2)69 b(The)23 b(Ro)r(ot)g(of)g(the)f(Problem)224 1060 y fg(As)16 b(Shak)o(esp)q (eare)g(once)g(probably)g(said,)g(\\the)f(fault,)h(dear)g(Brutus,)f(lies)i (not)e(in)i(our)224 1116 y(stars,)22 b(but)g(in)h(our)f(memory)f(systems.")39 b(High)23 b(p)q(erformance)f(RISC)h(pro)q(cessors)224 1173 y(live)17 b(or)g (die)h(as)f(a)f(result)i(of)f(their)g(memory)g(system.)25 b(Therefore,)17 b (so)f(do)h(man)o(y)g(mi-)224 1229 y(crob)q(enchmarks.)i(In)14 b(particular,)h (\(at)d(least\))i(t)n(w)o(o)f(comp)r(onen)o(ts)g(of)h(memory)f(system)224 1286 y(design,)18 b(the)e(cac)o(he)h(and)f(the)h(write)g(bu\013er,)f(m)n(ust)h(b)q (e)g(considered)h(when)f(using)g(mi-)224 1342 y(crob)q(enchmarks.)224 1464 y fd(2.1)56 b(Cac)o(he)18 b(E\013ects)224 1550 y fg(The)12 b(b)r(eha)o(vior)g (of)f(cac)o(he)i(memory)e(can)h(distort)g(the)g(p)q(erformance)g(of)f(a)h(mic\ rob)r(enc)o(h-)224 1606 y(mark.)33 b(Cac)o(hes)20 b(p)r(ermit)g(rapid)g(acces\ s)g(to)f(memory)h(lo)q(cations)g(which)g(ha)o(v)n(e)g(b)r(een)224 1663 y(rece\ ntly)f(referenced.)34 b(Cac)o(he)20 b(collisions)i(o)q(ccur)e(when)g(a)f(sequ\ ence)i(of)e(references)224 1719 y(resolv)o(e)j(to)g(the)g(same)g(cac)o(he)g (line.)43 b(The)22 b(RISCier)i(the)e(pro)q(cessor,)h(the)f(simpler)224 1776 y (the)d(cac)o(he)g(structure,)g(and)g(the)g(more)f(vulnerable)j(it)e(is)g(to)f (collisions.)33 b(The)19 b(sim-)224 1832 y(plest)h(cac)n(hes,)g(which)f(are)f (small)h(\(less)g(than)g(64K\))f(and)h(direct)g(mapp)r(ed,)g(present)224 1888 y(the)d(greatest)f(problem)h(for)f(microb)r(enchmarks)g(since)i(they)f(ha)o (v)n(e)g(little)h(protection)224 1945 y(against)e(collisions.)295 2001 y(Cac) n(he)i(collisions)i(can)d(o)q(ccur)h(b)r(et)n(w)o(een)g(memory)f(in)h(the)g (same)f(address)h(space,)224 2058 y(or)d(b)q(et)o(w)n(een)h(memory)e(in)i(di\ \013eren)o(t)f(address)g(spaces.)20 b(In)14 b(the)g(\014rst)g(case,)f(the)h (p)r(erfor-)224 2114 y(mance)h(of)g(a)g(particular)g(instance)h(\(that)e(is,) h(a)g(linked)g(binary\))g(of)g(the)g(microb)r(enc)o(h-)224 2171 y(mark)i(can) h(b)r(e)g(stable,)h(but)f(the)g(p)q(erformance)g(of)f(di\013erent)g(v)o(ersio\ ns)h(of)g(the)g(same)224 2227 y(program)d(can)g(actually)i(b)q(e)f(quite)g (v)m(ariable.)22 b(In)16 b(the)g(second)g(case,)f(when)h(collisions)224 2284 y (o)q(ccur)21 b(b)q(et)o(w)n(een)g(memories)f(in)h(separate)f(address)g(spaces\ ,)h(suc)o(h)f(as)g(b)r(et)n(w)o(een)g(the)224 2340 y(k)o(ernel)15 b(and)f(an) g(application,)i(then)e(p)r(erformance)f(ma)o(y)h(b)q(e)g(v)n(ariable)h(ev)o (en)f(from)f(run)224 2397 y(to)i(run,)g(dep)r(ending)h(on)f(ho)o(w)g(the)g (system)g(has)g(allo)r(cated)g(memory)l(.)p eop %%Page: 3 3 bop 295 307 a fg(When)13 b(microb)r(enc)o(hmark)g(p)r(erformance)g(is)g(used) h(to)f(tune)g(pieces)i(of)e(the)g(system)224 364 y(b)o(y)e(c)o(hanging)g(co)r (de)g(and)g(rerunning)h(the)f(microb)r(enc)o(hmark)g(to)f(ev)n(aluate)h(the)g (c)o(hange,)224 420 y(the)i(v)m(ariabilit)q(y)g(caused)g(b)o(y)f(cac)o(he)h (e\013ects)g(can)g(cause)g(the)f(wrong)g(conclusions)j(to)d(b)q(e)224 477 y (reac)o(hed.)19 b(It)12 b(b)q(ecomes)g(di\016cult)h(to)e(sa)n(y)g(whether)h (p)r(erformance)f(c)o(hanged)g(b)r(ecause)h(of)224 533 y(the)j(tuning,)g(or,) f(sa)n(y)l(,)h(b)q(ecause)g(the)g(linker)f(assigned)i(di\013eren)o(t)e(addres\ ses)h(to)f(ob)s(ject)224 589 y(\014les.)224 711 y fd(2.2)56 b(W)-5 b(rite)18 b (Bu\013ers)224 797 y fg(Man)o(y)10 b(RISC)i(pro)q(cessors)f(ha)n(v)o(e)g(writ\ e)g(bu\013ers)g(whic)o(h)g(are)g(sev)o(eral)g(en)o(tries)g(deep.)19 b(The)224 853 y(write)d(bu\013er)g(allo)o(ws)g(the)g(pro)q(cessor)f(to)g(pro)q(ceed)i (while)g(previous)g(stores)e(complete)224 910 y(async)o(hronously)m(.)k(Once) c(the)g(write)f(bu\013er)g(\014lls,)h(ho)o(w)o(ev)o(er,)f(subsequent)f(stores) h(slo)o(w)224 966 y(the)i(pro)q(cessor)f(to)g(memory)g(sp)q(eed.)22 b(Often,) 15 b(microb)r(enc)o(hmarks)g(are)h(structured)f(to)224 1023 y(eliminate)20 b (side)e(e\013ects)g(whic)o(h)g(w)o(ould)g(normally)g(o)q(ccur)g(during)h(real) f(applications)224 1079 y(of)f(the)g(co)r(de)g(b)r(eing)h(tested.)26 b(F)l (or)16 b(example,)j(a)e(test)f(to)h(ev)n(aluate)g(the)g(p)r(erformance)224 1136 y(of)g(spinlo)s(c)o(ks)h(migh)o(t)f(only)i(acquire)f(and)g(release)g(a)g (lo)q(c)o(k)g(in)h(succession)f(through)g(a)224 1192 y(lo)r(op,)k(rather)e (than)g(doing)i(an)n(y)f(real)g(w)o(ork)f(\(suc)o(h)h(as)f(mo)q(difying)i(a)f (shared)g(v)m(ari-)224 1249 y(able\))d(inside)h(the)e(lo)r(op.)25 b(Dep)r(end\ ing)18 b(on)f(the)g(depth)h(of)f(the)g(write)g(bu\013er,)h(a)e(write)224 1305 y(stall)k(could)g(b)q(e)f(a)o(v)n(oided)h(b)r(ecause)f(nothing)h(w)n(as)f(com\ puted)g(inside)i(the)e(lo)r(op.)31 b(In)224 1362 y(this)16 b(case,)g(the)f (b)r(enc)o(hmark)h(do)q(esn't)f(measure)h(the)f(true)h(cost)f(of)g(the)h(stor\ es)f(in)h(the)224 1418 y(spinlo)s(c)o(k)i(primitiv)q(es.)30 b(Consequently)l (,)19 b(the)g(microb)r(enc)o(hmark)g(o)n(v)o(erestimates)f(the)224 1474 y(act\ ual)d(p)q(erformance)g(of)f(the)h(primitives,)f(since)i(they)f(w)n(ould)h(nev) o(er)e(b)r(e)h(used)g(in)g(the)224 1531 y(w)o(a)n(y)g(they)h(w)n(ere)g(b)q (eing)g(tested.)224 1674 y fi(3)69 b(Some)23 b(Real)e(Examples)224 1776 y fg (A)g(p)r(oten)n(tial)h(problem)f(is)h(di\013eren)o(t)f(than)f(one)h(which)g (o)q(ccurs)g(in)h(real)f(life.)38 b(Our)224 1832 y(exp)r(eriences)23 b(with)e (measuring)h(op)q(erating)g(system)f(p)q(erformance)g(at)g(CMU)g(ha)o(v)n(e) 224 1888 y(sho)o(wn)13 b(that,)g(in)i(real)f(life,)g(microb)r(enchmarks)f(can) g(b)r(e)h(misleading.)21 b(In)14 b(this)g(section)224 1945 y(w)o(e)19 b(brie\ \015y)i(describ)r(e)f(t)n(w)o(o)f(situations)h(where)f(microb)r(enc)o(hmark)g (results)h(w)o(ere,)g(or)224 2001 y(could)c(ha)o(v)o(e)f(b)r(een,)g(a\013ecte\ d)g(b)o(y)g(interactions)g(with)g(the)h(memory)e(system.)224 2123 y fd(3.1)56 b(The)18 b(Null)g(RPC)h({)g(Cac)o(he)f(In)o(terference)e(Within)i(the)g(Kerne\ l)224 2209 y fg(Mac)n(h)f(is)g(a)f(\\small)i(k)n(ernel")g(op)q(erating)e(syst\ em)g(which)h(pro)n(vides)h(supp)r(ort)d(for)h(fast)224 2265 y(cross-address)i (space)g(comm)n(unication)h([Dra)n(v)o(es)f(et)f(al.)28 b(91].)f(On)19 b(the) e(DecStation)224 2322 y(3100,)10 b(which)g(is)h(a)f(MIPS)h(R2000-based)f(syst\ em)g(running)h(at)f(16.67)f(MHz,)i(n)o(ull)g(RPCs)224 2378 y(b)r(et)n(w)o(een) 19 b(t)o(w)n(o)g(address)f(spaces)h(on)g(the)g(same)f(mac)n(hine)i(t)o(ypical\ ly)h(tak)n(e)e(ab)q(out)f(95)224 2435 y fc(\026)p fg(secs,)e(or)e(ab)r(out)g (1600)g(cycles.)p eop %%Page: 4 4 bop 295 307 a fg(After)20 b(one)h(build)h(of)e(the)h(system)f(in)i(whic)o (h)f(there)g(w)o(ere)f(no)h(c)o(hanges)f(to)g(the)224 364 y(k)o(ernel's)15 b (RPC)f(path,)g(RPC)h(times)g(increased)g(to)f(ab)q(out)g(160)g fc(\026)p fg (secs,)h(or)e(ab)r(out)h(2650)224 420 y(cycles.)35 b(The)20 b(problem)g(w)o (as)f(that)g(the)h(mac)o(hine-indep)t(endent)f(IPC)h(co)r(de)g(in)g(one)224 477 y(ob)s(ject)d(\014le)i(w)o(as)e(colliding)j(in)f(the)f(cac)o(he)g(with)g (mac)n(hine-dep)t(endent)f(functions)i(in)224 533 y(another)e(ob)s(ject)h(\ \014le.)28 b(The)18 b(collision)i(o)q(ccurred)e(b)r(ecause)g(of)f(a)h(c)n(han\ ge)g(in)h(the)f(size)224 589 y(of)f(an)g(unrelated)h(ob)r(ject)f(\014le.)27 b (Since)18 b(cac)o(he)f(misses)h(on)f(the)g(DecStation)g(3100)f(are)224 646 y (resolv)o(ed)j(in)g(5)f(cycles,)h(w)o(e)f(concluded)i(that)e(ab)q(out)g(215)f (additional)j(cac)n(he)f(misses)224 702 y(o)q(ccurred)c(on)g(the)g(new)o(er)f (system's)g(RPC)h(path.)k(By)c(rearranging)f(the)h(order)f(of)g(the)224 759 y (ob)s(ject)h(\014les)h(for)f(the)g(k)o(ernel)h(build,)h(RPC)e(times)g(fell)i (bac)o(k)e(to)g(95)f fc(\026)p fg(secs.)295 815 y(If)f(w)o(e)g(had)g(used)h (the)g(b)q(enc)o(hmark)f(to)g(tune)g(the)h(RPC)f(path,)g(to)g(the)g(exclusion) i(of)224 872 y(all)f(other)e(measuremen)o(ts,)g(suc)o(h)h(as)f(n)o(um)o(b)q (er)h(of)f(instructions)i(executed,)f(or)f(n)o(um)o(b)r(er)224 928 y(of)21 b (memory)g(accesses,)i(then)f(the)g(v)m(ariabilit)q(y)f(could)i(ha)o(v)n(e)f (lead)g(to)f(p)r(o)q(or)g(tuning)224 985 y(decisions.)g(If)13 b(the)g(applica\ tion)i(co)q(de)e(itself)h(had)f(interfered)g(with)g(k)o(ernel)h(co)q(de,)f (then)224 1041 y(v)n(ariability)i(w)o(ould)h(ha)n(v)o(e)g(o)q(ccurred)f(from) g(run)g(to)g(run.)295 1098 y(The)e(b)q(est)g(w)o(a)n(y)g(to)f(deal)i(with)f (the)g(v)m(ariabilit)q(y)g(problem)g(for)f(tuning)i(is)f(to)g(explic-)224 1154 y(itly)g(\015ush)h(the)e(cac)o(he)h(during)g(eac)o(h)g(iteration)f(of)g(the)h (trial)g(b)q(enchmark,)f(and)g(to)g(then)224 1210 y(subtract)18 b(o\013)f(the) h(cac)o(he)g(\015ush)g(o)o(v)o(erhead)g(from)f(the)h(measured)g(b)r(enc)o(hma\ rk)g(time.)224 1267 y(Although)12 b(this)g(tec)o(hnique)h(will)g(rev)o(eal)f (w)o(orst)e(case)i(p)q(erformance,)g(the)f(p)r(erformance)224 1323 y(will)17 b (at)e(least)g(b)q(e)h(repro)q(ducible.)295 1380 y(Moreo)n(v)n(er,)g(for)g(tun\ ing,)h(it)g(is)f(imp)r(ortan)n(t)g(to)g(coun)o(t)g(the)g(n)o(um)o(b)r(er)g (of)g(loads)g(and)224 1436 y(stores,)11 b(rather)g(than)g(just)g(instructions) h(executed)h(or)e(microseconds)h(measured)f(dur-)224 1493 y(ing)21 b(a)f(run.) 35 b(As)20 b(pro)q(cessor)g(cycle)h(times)f(decreases,)i(the)e(ma)r(jor)g(det\ erminan)o(t)g(of)224 1549 y(p)r(erformance)d(is)h(the)g(n)o(um)o(b)r(er)g(of) f(memory)g(accesses)h(which)g(can)g(not)f(b)r(e)h(satis\014ed)224 1606 y(b)o (y)h(the)g(cac)o(he.)32 b(Man)n(y)19 b(of)g(the)g(kinds)h(of)f(b)q(enchmarks) f(which)h(arise)g(in)h(op)r(erating)224 1662 y(system)e(p)q(erformance)f(are) h(stressing)g(comp)q(onen)o(ts)g(of)f(the)h(system)f(which)h(are)f(ex-)224 1719 y(ecuted)i(infrequently)f(enough)h(to)e(mak)n(e)h(their)h(long)f(term)f (presence)i(in)g(the)f(cac)o(he)224 1775 y(unlik)q(ely)m(.)25 b(Therefore,)18 b(p)q(erformance)f(pro\014les)h(which)f(re\015ect)g(memory)g(interaction)224 1831 y(are)e(more)g(likely)h(to)e(b)r(e)h(go)q(o)q(d)g(predictors)h(of)f(actu\ al)g(p)r(erformance.)224 1953 y fd(3.2)56 b(The)18 b(Simple)f(Spinlo)q(c)n (k)h({)h(F)-5 b(ailing)18 b(to)h(Fill)e(the)i(W)-5 b(rite)17 b(Bu\013er)224 2039 y fg(Mac)n(h)j(supp)r(orts)f(m)o(ultiple)j(threads)d(of)g(con)o(trol)h (p)q(er)g(address)g(space.)33 b(Ev)o(en)20 b(on)g(a)224 2095 y(unipro)r(cesso\ r,)j(these)e(threads)g(use)h(simple)h(spinlo)s(c)o(ks)e(to)g(ensure)h(m)n(utu\ al)g(exclu-)224 2152 y(sion)e(in)g(the)f(presence)i(of)d(interlea)o(v)o(ed)h (execution.)34 b(Some)19 b(recen)o(t)g(w)o(ork)f(at)h(CMU)224 2208 y(fo)q(cus\ ed)f(on)g(impro)o(ving)g(the)g(p)q(erformance)g(of)f(test-and-set)g(primitive\ s)h(for)f(arc)o(hi-)224 2265 y(tectures)f(whic)o(h)g(do)f(not)h(ha)n(v)o(e)g (hardw)n(are)g(supp)r(ort)e(for)h(atomic)h(read-mo)q(dify-write)224 2321 y (sequences)f([Bershad)f(91].)k(A)c(simple)h(microb)r(enc)o(hmark)e(ev)n(aluat\ ing)h(the)g(new)g(lo)q(c)o(k-)224 2378 y(ing)i(primitives)f(had)h(the)f(follo) o(wing)h(form:)p eop %%Page: 5 5 bop 371 293 a fb(int)24 b(i;)371 350 y(spinlock)f(lock;)371 463 y(for)h(\(i) f(=)h(0;)g(i)f(<)h(GZILLION;)f(i++\))47 b({)562 519 y(SPIN_LOCK\(lock\);)562 576 y(/*)24 b(locked)f(code)g(fragment)g(*/)562 632 y(SPIN_UNLOCK\(lock\);) 371 689 y(})295 778 y fg(On)11 b(the)f(DecStation)h(3100,)e(the)i(compiler)g (generated)g(a)f(co)q(de)h(sequence)g(in)h(whic)o(h)224 834 y(8)17 b(instruct\ ions)h(w)n(ere)g(executed)g(during)f(eac)o(h)h(pass)e(of)h(the)g(lo)r(op.)25 b (Within)18 b(those)f(8)224 891 y(instructions)22 b(w)n(ere)f(t)n(w)o(o)f(memo\ ry)g(stores)g(|)g(one)h(to)f(acquire)h(the)g(lo)q(c)o(k)g(and)f(one)224 947 y (to)e(release)g(it.)29 b(The)18 b(DecStation)g(3100)f(can)h(complete)h(one)f (store)f(ev)o(ery)h(6)g(cycles,)224 1004 y(but)d(uses)f(a)g(four)g(entry)f (write)i(bu\013er)f(to)g(allo)o(w)h(the)f(CPU)g(to)g(a)n(v)o(oid)h(stalling)h (during)224 1060 y(writes.)j(Multiple)14 b(writes)f(to)e(the)i(same)e(address) i(are)f(coalesced)h(in)g(the)g(write)f(bu\013er,)224 1117 y(so)k(the)h(ab)q (o)n(v)o(e)g(lo)q(op)g(can)f(pro)q(ceed)h(at)f(full)i(sp)q(eed)f({)g(the)f (e\013ectiv)o(e)h(rate)f(of)g(writes)g(is)224 1173 y(one)f(p)r(er)g(eight)g (cycles.)295 1230 y(Unfortunately)l(,)h(the)h(ab)q(o)n(v)o(e)g(lo)q(op)f(will) i(o)o(v)o(erestimate)e(the)g(p)r(erformance)g(of)f(the)224 1286 y(lo)r(c)o (king)d(primitives)h(b)q(ecause,)g(in)g(realit)o(y)l(,)f(suc)o(h)h(primitives) f(are)g(alw)o(a)n(ys)g(used)g(in)h(con-)224 1343 y(junction)18 b(with)f(write\ s)f(to)g(memory)g(which)h(is)g(shared)g(b)q(et)o(w)n(een)h(m)n(ultiple)h(thre\ ads.)224 1399 y(Consequently)l(,)e(the)h(ab)q(o)o(v)n(e)g(test)f(is)g(optimis\ tic)i(b)q(ecause)f(it)g(includes)i(no)d(writes)g(to)224 1455 y(memory)11 b (except)h(the)g(lo)q(c)o(k)g(itself.)20 b(If)11 b(w)o(e)h(include)i(a)d(store) g(to)g(shared)g(memory)g(within)224 1512 y(the)19 b(lo)r(op,)g(w)o(e)g(add)g (one)g(instruction)h(to)e(the)h(co)r(de)g(path,)g(for)g(a)f(total)h(of)f(nine) j(in-)224 1568 y(structions)16 b(and)g(t)n(w)o(o)f(e\013ectiv)o(e)h(stores.)k (Because)d(the)e(DecStation)h(3100)e(can)i(retire)224 1625 y(only)h(one)g(sto\ re)f(p)q(er)h(six)f(cycles,)i(the)f(augmen)n(ted)g(microb)r(enc)o(hmark)f(tak) n(es)h(t)n(w)o(elv)o(e)224 1681 y(cycles,)f(not)f(nine.)295 1738 y(This)e(exa\ mple)h(motiv)n(ates)e(t)o(w)n(o)h(conclusions.)21 b(First,)13 b(one)g(can)h (use)f(microb)r(enc)o(h-)224 1794 y(marks)h(to)g(predict)i(baseline)g(p)r(erf\ ormance)e(only)h(if)g(the)g(measured)g(b)q(eha)o(vior)g(migh)o(t)224 1851 y (really)j(o)q(ccur.)26 b(In)18 b(realit)o(y)l(,)f(no)g(m)o(ultithreaded)h(pro\ gram)e(w)o(ould)i(ev)o(er)f(acquire)g(and)224 1907 y(then)f(immediately)g(rel\ ease)g(a)f(spinlo)r(c)o(k.)20 b(There)15 b(w)o(ould)h(alw)n(a)o(ys)f(b)q(e)h (an)e(interv)n(ening)224 1964 y(memory)h(access,)g(and)g(this)h(should)g(b)q (e)g(included)i(in)e(the)f(measuremen)o(ts.)295 2020 y(Second,)i(understandin\ g)i(the)d(b)r(eha)o(vior)h(and)g(p)q(erformance)g(of)f(a)h(microb)r(enc)o(h-) 224 2076 y(mark)c(ma)o(y)g(often)h(require)h(understanding)g(subtleties)g(in) g(the)f(arc)n(hitectural)h(imple-)224 2133 y(men)o(tation)e(\(e.g.,)g(depth)h (of)f(write)g(bu\013er,)h(ability)g(to)f(coalesce\).)19 b(It)14 b(can)g(somet\ imes)224 2189 y(b)r(e)i(di\016cult)i(to)d(ev)o(en)i(discov)n(er)f(these)h(det\ ails,)g(as)f(they)g(ma)o(y)g(b)q(e)h(considered)g(\\con-)224 2246 y(\014denti\ al)f(and)f(proprietary")g(b)o(y)g(industry)m(.)p eop %%Page: 6 6 bop 224 307 a fi(4)69 b(Conclusions)224 409 y fg(W)l(riting)19 b(and)g(in)o (terpreting)g(microb)q(enchmarks)f(correctly)g(can)h(b)q(e)g(di\016cult.)30 b (The)224 465 y(situation)21 b(is)f(only)g(going)g(to)g(get)f(w)o(orse)g(as)h (the)g(gap)f(b)r(et)o(w)n(een)i(pro)q(cessing)f(sp)r(eed)224 522 y(and)f(memo\ ry)f(sp)q(eed)h(widens.)30 b(Microb)r(enc)o(hmark)18 b(p)r(erformance)g(ma)n (y)g(not)g(b)r(e)g(re-)224 578 y(\015ective)f(of)f(actual)h(b)q(eha)o(vior,)g (and)g(ev)n(en)g(run-to-run)g(results)g(can)g(ha)o(v)o(e)f(high)i(v)m(ari-) 224 634 y(ance.)36 b(Flushing)21 b(the)g(cac)o(he)f(while)i(running)g(a)e(mic\ rob)q(enchmark)g(and)g(coun)o(ting)224 691 y(memory)c(accesses,)g(rather)f (than)h(instructions,)g(are)g(t)n(w)o(o)g(tec)o(hniques)h(for)e(reducing)224 747 y(the)i(v)n(ariability)g(of)g(results.)26 b(Finally)n(,)17 b(it)h(will)g (b)r(ecome)f(increasingly)i(imp)r(ortan)n(t)e(to)224 804 y(understand)c(lo)o (w-level)g(details)g(ab)q(out)f(arc)o(hitectural)h(implementation)f(when)h (inter-)224 860 y(preting)j(microb)r(enc)o(hmarks.)224 1004 y fi(References) 224 1087 y fg([Bershad)f(91])22 b(Bershad,)13 b(B.)f(N.)k(Mutual)d(Exclusion) h(for)e(Unipro)r(cessors.)j(T)l(ec)o(hnical)422 1134 y(Rep)r(ort)20 b(CMU-CS-\ 91-116,)g(Sc)o(ho)q(ol)h(of)e(Computer)h(Science,)j(Carnegie)422 1178 y(Mello\ n)16 b(Universit)o(y)l(,)f(April)i(1991.)224 1263 y([Dra)n(v)o(es)e(et)g(al.) g(91])22 b(Dra)n(v)n(es,)c(R.)e(P)m(.,)g(Bershad,)h(B.)g(N.,)g(Rashid,)h(R.)f (F.,)f(and)h(Dean,)422 1310 y(R.)j(W.)32 b(Using)20 b(Con)n(tin)o(uations)g (to)f(Implement)g(Thread)h(Managemen)n(t)422 1354 y(and)c(Comm)n(unication)h (in)f(Op)r(erating)g(Systems.)k(In)c fa(Pr)n(o)n(c)n(e)m(e)n(dings)g(of)g(the) 422 1399 y(13th)24 b(A)o(CM)e(Symp)n(osium)h(on)g(Op)n(er)n(ating)g(Systems)f (Principles)p fg(,)h(pages)422 1444 y(122{136,)13 b(Octob)q(er)j(1991.)p eop %%Trailer end %%EOF