docs: oxTutor.ps
authorBernhard Urban <lewurm@gmail.com>
Tue, 30 Mar 2010 10:57:57 +0000 (12:57 +0200)
committerBernhard Urban <lewurm@gmail.com>
Tue, 30 Mar 2010 10:57:57 +0000 (12:57 +0200)
doc/ox/oxTutor.ps [new file with mode: 0755]

diff --git a/doc/ox/oxTutor.ps b/doc/ox/oxTutor.ps
new file mode 100755 (executable)
index 0000000..cf20dbe
--- /dev/null
@@ -0,0 +1,2158 @@
+%!PS-Adobe-2.0
+%%Creator: dvips 5.519 Copyright 1986, 1993 Radical Eye Software
+%%Title: gs.dvi
+%%CreationDate: Fri Nov  5 17:57:05 1993
+%%Pages: 19
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSCommandLine: dvips -o gs.ps gs.dvi
+%DVIPSSource:  TeX output 1993.11.05:1756
+%%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
+(/home/grad2/bischoff/oxDevelop/getstart/gs.dvi) @start
+/Fa 3 112 df<007FFFE0000007803C000007800E000007800700000F000780000F0003
+80000F0003C0000F0003C0001E000780001E000780001E000780001E000F00003C001E00
+003C003C00003C007000003C01C000007FFE00000078078000007801C000007801E00000
+F000F00000F000F00000F000F00000F000F00001E001E00001E001E00001E001E00001E0
+01E00003C003C00003C003C04003C003C04003C001C08007C001C080FFFC00E300000000
+3C0022237EA125>82 D<3C07C04618604720308740388780388700388700380E00700E00
+700E00700E00701C00E01C00E01C01C01C01C13801C23803823803823801847001883000
+F018157E941D>110 D<003E0000C1800380C00700E00E00E01C00F03C00F03C00F07800
+F07800F07800F0F001E0F001E0F001C0F003C0700380700700700600381C001C380007E0
+0014157E9417>I E /Fb 3 104 df<03F0000FFC001FFE003FFF007FFF807FFF80FFFFC0
+FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC00
+03F00012147D9519>15 D<000F0038007000E001C001C001C001C001C001C001C001C001
+C001C001C001C001C001C001C001C001C0038007001E00F0001E000700038001C001C001
+C001C001C001C001C001C001C001C001C001C001C001C001C001C001C000E00070003800
+0F10317CA419>102 D<F0001E000700038001C001C001C001C001C001C001C001C001C0
+01C001C001C001C001C001C001C001C000E000700038000F0038007000E001C001C001C0
+01C001C001C001C001C001C001C001C001C001C001C001C001C001C0038007001E00F000
+10317CA419>I E /Fc 66 126 df<6030F078F078F078F078F078F078F078F078E038E0
+38E0380D0C7C9916>34 D<0387000387000387000387000387000387007FFFC0FFFFE0FF
+FFE0070E00070E00070E000F1E000E1C000E1C000E1C00FFFFE0FFFFE07FFFC01C38001C
+38001C38001C38001C38001C380013197F9816>I<3801807C0380FE0780FE0700EE0700
+EE0F00EE0E00EE1E00FE1C00FE3C007C380038380000780000700000F00000E00000E000
+01E00001C00003C0000380000383800787C0070FE00F0EE00E0EE01E0EE01C0EE01C0EE0
+3C0FE03807C018038013207F9C16>37 D<183C3E1E0E0E0E1E1C3C78F060070D799816>
+39 D<00E001E007C007000F001E003C0038007800700070007000F000E000E000E000E0
+00E000E000E000F000700070007000780038003C001E000F00070007C001E000E00B217A
+9C16>I<E000F0007C001C001E000F000780038003C001C001C001C001E000E000E000E0
+00E000E000E000E001E001C001C001C003C0038007800F001E001C007C00F000E0000B21
+7C9C16>I<01C00001C00001C00001C00071C700F9CF807FFF001FFC0007F00007F0001F
+FC007FFF00F9CF8071C70001C00001C00001C00001C00011127E9516>I<01C00001C000
+01C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF8001C00001C00001C000
+01C00001C00001C00001C00001C00011137E9516>I<387C7E7E3E0E1E3C7CF860070B79
+8416>I<FFFF80FFFF80FFFF8011037E8D16>I<70F8F8F8700505788416>I<0001800003
+80000780000700000F00000E00001E00001C00003C0000380000780000700000F00000E0
+0001E00001C00001C00003C0000380000780000700000F00000E00001E00001C00003C00
+00380000780000700000F00000E00000E0000011207E9C16>I<03E0000FF8001FFC001E
+3C00380E00780F00700700700700E00380E00380E00380E00380E00380E00380E00380E0
+0380F00780700700700700780F003C1E001E3C001FFC000FF80003E00011197E9816>I<
+01800380078007801F807F80FF8073800380038003800380038003800380038003800380
+03800380038003807FF87FFC7FF80E197C9816>I<07E0001FF8007FFE00783F00F00F00
+F00780F00380F00380000380000380000780000700000F00001E00003C0000780000F000
+03E0000780000F00001E03803C03807FFF80FFFF807FFF8011197E9816>I<03E0000FF8
+003FFC007C1E00780F00F00700E00700E00780E00780E00380F00780F00780780F803FFF
+803FFB800FE380000780000700300F00780E00781E00787C007FF8003FE0000F80001119
+7E9816>57 D<70F8F8F870000000000000000070F8F8F8700512789116>I<387C7C7C38
+0000000000000000387C7C7C3C1C3C38F8F0600618799116>I<000380000780001F8000
+3E0000FC0003F00007E0001F80003E0000FC0000F00000FC00003E00001F800007E00003
+F00000FC00003E00001F8000078000038011157E9616>I<7FFF00FFFF80FFFF80000000
+000000000000000000000000FFFF80FFFF807FFF00110B7E9116>I<E00000F00000FC00
+003E00001F800007E00003F00000FC00003E00001F80000780001F80003E0000FC0003F0
+0007E0001F80003E0000FC0000F00000E0000011157E9616>I<00F80003FE000FFF001F
+0F803E3F803C7F8078FFC071E7C0F1C3C0E3C3C0E381C0E381C0E381C0E381C0E381C0E3
+C3C0F1C38071E78078FF003C7E003E3C001F03C00FFFC003FF0000FC0012197E9816>64
+D<00E00001F00001F00001B00001B00003B80003B80003B800031800071C00071C00071C
+00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007F1FC0FF1F
+E07F1FC013197F9816>I<7FF800FFFE007FFF001C0F001C07801C03801C03801C03801C
+07801C07001FFF001FFE001FFE001C1F001C03801C03C01C01C01C01C01C01C01C01C01C
+03C01C07807FFF80FFFF007FFC0012197F9816>I<01F18007FF800FFF801F0F803C0780
+780780780380700380F00000E00000E00000E00000E00000E00000E00000E00000F00000
+7003807803807803803C07801F0F000FFE0007FC0001F00011197E9816>I<7FF800FFFE
+007FFF001C0F001C07801C03C01C01C01C01C01C01E01C00E01C00E01C00E01C00E01C00
+E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C0F807FFF00FFFE007FF8001319
+809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C01C01C01C00001C00001C1C001C
+1C001FFC001FFC001FFC001C1C001C1C001C00001C00E01C00E01C00E01C00E01C00E07F
+FFE0FFFFE07FFFE013197F9816>I<FFFEFFFEFFFE038003800380038003800380038003
+8003800380038003800380038003800380038003800380FFFEFFFEFFFE0F197D9816>73
+D<FFC000FFC000FFC0001C00001C00001C00001C00001C00001C00001C00001C00001C00
+001C00001C00001C00001C00001C00001C00401C00E01C00E01C00E01C00E0FFFFE0FFFF
+E0FFFFE013197F9816>76 D<FC07E0FE0FE0FE0FE03A0B803B1B803B1B803B1B803B1B80
+3B1B803BBB8039B38039B38039B38039B38039F38038E38038E380380380380380380380
+380380380380FE0FE0FE0FE0FE0FE013197F9816>I<7E1FC0FF3FE07F1FC01D07001D87
+001D87001D87001DC7001DC7001CC7001CC7001CE7001CE7001CE7001C67001C67001C77
+001C77001C37001C37001C37001C17007F1F00FF9F007F0F0013197F9816>I<1FFC003F
+FE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380E00380E00380E0
+0380E00380E00380E00380E00380E00380F00780F00780780F007FFF003FFE001FFC0011
+197E9816>I<7FE000FFF8007FFC001C1E001C0F001C07001C07001C07001C07001C0F00
+1C1E001FFC001FF8001FFC001C3E001C0E001C0E001C0E001C0E001C0E201C0E701C0E70
+7F0FF0FF87E07F03C014197F9816>82 D<07E3001FFF007FFF00781F00F00F00E00700E0
+0700E00000F000007800007F80001FF00007FC0000FE00000F00000780000380000380E0
+0380E00380F00780F80F00FFFE00FFFC00C7F00011197E9816>I<7FFFE0FFFFE0FFFFE0
+E0E0E0E0E0E0E0E0E0E0E0E000E00000E00000E00000E00000E00000E00000E00000E000
+00E00000E00000E00000E00000E00000E00000E00007FC000FFE0007FC0013197F9816>
+I<FE0FE0FF1FE0FE0FE03803801C07001C07001C07001C07000E0E000E0E000E0E000E0E
+00060C00071C00071C00071C00071C0003180003B80003B80003B80001B00001F00001F0
+0000E00013197F9816>86 D<7FFF80FFFF80FFFF80E00700E00F00E01E00E01C00003C00
+00780000700000F00001E00001C00003C0000780000700000F00001E03801C03803C0380
+780380700380FFFF80FFFF80FFFF8011197E9816>90 D<FFF0FFF0FFF0E000E000E000E0
+00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
+00E000E000E000E000FFF0FFF0FFF00C20789C16>I<E00000E00000F000007000007800
+003800003C00001C00001E00000E00000F000007000007800003800003C00001C00001C0
+0001E00000E00000F000007000007800003800003C00001C00001E00000E00000F000007
+0000078000038000018011207E9C16>I<FFF0FFF0FFF000700070007000700070007000
+700070007000700070007000700070007000700070007000700070007000700070007000
+700070FFF0FFF0FFF00C207F9C16>I<1FE0007FF8007FFC00783C00301E00000E00000E
+0003FE001FFE007E0E00F00E00E00E00E00E00F01E00F83E007FFFE03FE7E00F83E01312
+7E9116>97 D<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF800FFFC0
+0F83E00F01E00E00F00E00F00E00700E00700E00700E00700E00F00F00E00F01E00F83C0
+0FFFC00EFF00063C001419809816>I<03F80FFE1FFE3C1E780C7000F000E000E000E000
+E000F000700778073E0F1FFE0FFC03F010127D9116>I<003F00007F00003F0000070000
+070000070000070003C7000FF7003FFF003C1F00780F00F00700F00700E00700E00700E0
+0700E00700F00700F00F00781F007C3F003FFFE01FF7F007C7E014197F9816>I<07E00F
+F81FFC3C3E780E700FF007FFFFFFFFFFFFE000F000700778073E1F1FFE0FFC03F010127D
+9116>I<001F00007F8000FF8001E78001C30001C00001C0007FFF00FFFF00FFFF0001C0
+0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0003FFE
+007FFF003FFE0011197F9816>I<03E3C00FFFE01FFFE01E3CC03C1E00380E00380E0038
+0E003C1E001E3C001FFC001FF8003BE0003800003800001FFC001FFF003FFFC07803C0F0
+01E0E000E0E000E0E000E0F001E07C07C03FFF800FFE0003F800131C7F9116>I<7E0000
+FE00007E00000E00000E00000E00000E00000E3C000EFF000FFF800F87800F03800F0380
+0E03800E03800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F0
+1519809816>I<018003C003C0018000000000000000007FC07FC07FC001C001C001C001
+C001C001C001C001C001C001C001C001C07FFFFFFF7FFF101A7D9916>I<7E0000FE0000
+7E00000E00000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E7800
+0EF0000FF8000FF8000FBC000F1E000E0E000E0F000E07807F87F0FFCFF07F87F0141980
+9816>107 D<FFC000FFC000FFC00001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+FFFF80FFFF80FFFF8011197E9816>I<F9C380FFEFC0FFFFE03E7CE03C78E03870E03870
+E03870E03870E03870E03870E03870E03870E03870E03870E0FE7CF8FE7CF8FE7CF81512
+809116>I<7E3C00FEFF007FFF800F87800F03800F03800E03800E03800E03800E03800E
+03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF800
+1FFC003C1E00780F00700700E00380E00380E00380E00380E00380F00780700700780F00
+3C1E001FFC000FF80003E00011127E9116>I<7E3E00FEFF807FFFC00F83E00F01E00E00
+F00E00F00E00700E00700E00700E00700E00F00F00E00F01E00F83C00FFFC00EFF000E3C
+000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000141B809116>I<FF
+0FC0FF3FE0FF7FE007F04007E00007C00007800007800007000007000007000007000007
+0000070000070000FFFC00FFFC00FFFC0013127F9116>114 D<0FEC3FFC7FFCF03CE01C
+E01CF0007F801FF007FC003EE00EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<030000
+0700000700000700000700007FFF00FFFF00FFFF00070000070000070000070000070000
+07000007000007010007038007038007078007878003FF0003FE0000F80011177F9616>
+I<7E1F80FE3F807E1F800E03800E03800E03800E03800E03800E03800E03800E03800E03
+800E03800E07800F0F800FFFF007FFF803E3F01512809116>I<7F1FC0FF1FE07F1FC01C
+07001E0F000E0E000E0E000E0E00071C00071C00071C00071C0003B80003B80003B80001
+F00001F00000E00013127F9116>I<7F1FC07F3FC07F1FC00F1C00073C0003B80003F000
+01F00000E00001E00001F00003B800073C00071C000E0E007F1FC0FF3FE07F1FC013127F
+9116>120 D<7F1FC0FF9FE07F1FC01C07000E07000E0E000E0E00070E00071C00071C00
+039C00039C0003980001B80001B80000F00000F00000F00000E00000E00000E00001C000
+79C0007BC0007F80003F00003C0000131B7F9116>I<3FFFC07FFFC07FFFC0700780700F
+00701E00003C0000F80001F00003E00007C0000F00001E01C03C01C07801C0FFFFC0FFFF
+C0FFFFC012127F9116>I<001F80007F8001FF8001E00001C00001C00001C00001C00001
+C00001C00001C00001C00001C00003C0007F8000FF0000FF00007F800003C00001C00001
+C00001C00001C00001C00001C00001C00001C00001C00001E00001FF80007F80001F8011
+207E9C16>I<E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
+E0E00320779C16>I<FC0000FF0000FFC00003C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001E00000FF00007F80007F8000FF0001E00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00003C000FFC000FF0000FC000011207E
+9C16>I E /Fd 50 122 df<0001FF0000001FFFC000007F80F00000FE00F80003FC01FC
+0003F803FC0007F003FC0007F003FC0007F003FC0007F001F80007F000F00007F0000000
+07F000000007F000000007F0000000FFFFFFFC00FFFFFFFC00FFFFFFFC0007F001FC0007
+F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F0
+01FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001
+FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC007FFF1FFFC07FFF1FFF
+C07FFF1FFFC0222A7FA926>12 D<00000600000000000F00000000000F00000000000F00
+000000000F00000000000F00000000000F00000000000F00000000000F00000000000F00
+000000000F00000000000F00000000000F00000000000F00000000000F00000000000F00
+000000000F00000000000F00000000000F00000000000F00000000000F0000007FFFFFFF
+FFE0FFFFFFFFFFF0FFFFFFFFFFF07FFFFFFFFFE000000F00000000000F00000000000F00
+000000000F00000000000F00000000000F00000000000F00000000000F00000000000F00
+000000000F00000000000F00000000000F00000000000F00000000000F00000000000F00
+000000000F00000000000F00000000000F00000000000F00000000000F00000000000600
+00002C2E7CA535>43 D<FFFF80FFFF80FFFF80FFFF80FFFF80FFFF8011067F9017>45
+D<1C007F00FF80FF80FF80FF80FF807F001C0009097B8813>I<00000300000007800000
+0F8000000F8000000F0000001F0000001F0000001E0000003E0000003E0000007C000000
+7C00000078000000F8000000F8000000F0000001F0000001F0000003E0000003E0000003
+C0000007C0000007C00000078000000F8000000F8000001F0000001F0000001E0000003E
+0000003E0000003C0000007C0000007C000000F8000000F8000000F0000001F0000001F0
+000001E0000003E0000003E0000007C0000007C00000078000000F8000000F8000000F00
+00001F0000001F0000003E0000003E0000003C0000007C0000007C00000078000000F800
+0000F8000000F000000060000000193C7CAC22>I<000E00001E00007E0007FE00FFFE00
+FFFE00F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
+00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
+00FE0000FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>
+49 D<00FF800003FFF0000FFFFC003F03FF007C00FF807C007FC0FE007FC0FF003FE0FF
+003FE0FF003FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F8000
+007F800000FF000001FE000001FC000003F0000007E000000FC000001F0000003E000000
+7C00E0007800E000F000E001E001C0038001C0070001C00FFFFFC01FFFFFC03FFFFFC07F
+FFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC001F81
+FE001F00FF003F80FF003F807F803FC07F803F807F803F807F801F007F800000FF800000
+FF000000FF000001FE000003F8000007F00000FFC00000FFF0000001FC000000FF000000
+7F8000007FC000003FC000003FE000003FE000003FE03C003FE07E003FE0FF003FE0FF00
+3FE0FF003FC0FF007FC0FE007F807C00FF803F01FF001FFFFC0007FFF00000FF80001B27
+7DA622>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE
+0000077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E
+0003807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFF
+F8FFFFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE
+000000FE00007FFFF8007FFFF8007FFFF81D277EA622>I<0C0003000F803F000FFFFE00
+0FFFFE000FFFFC000FFFF8000FFFE0000FFFC0000FFE00000E0000000E0000000E000000
+0E0000000E0000000E0000000E7FC0000FFFF8000F80FE000E007F000C003F8000003F80
+00001FC000001FC000001FE000001FE018001FE07E001FE0FE001FE0FE001FE0FE001FE0
+FE001FE0FE001FC078003FC078003F803C007F001F01FE000FFFFC0003FFF00000FF8000
+1B277DA622>I<0007F000003FFC0000FFFF0001FC0F0007F01F800FE03F800FC03F801F
+C03F803F803F803F801F007F8000007F0000007F0000007F000000FF000000FF0FC000FF
+3FF800FF70FE00FFE03F00FFC03F80FF801FC0FF801FC0FF801FC0FF001FE0FF001FE0FF
+001FE0FF001FE07F001FE07F001FE07F001FE07F001FE03F801FC03F801FC01F803F800F
+C03F8007E0FF0003FFFC0000FFF000003FC0001B277DA622>I<380000003E0000003FFF
+FFF03FFFFFF03FFFFFF07FFFFFE07FFFFFC07FFFFFC07FFFFF8070000F0070001E007000
+3C00E0003800E0007800E000F0000001E0000003C0000003C0000007800000078000000F
+0000001F0000001F0000001F0000003F0000003F0000003E0000007E0000007E0000007E
+0000007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE
+000000FE0000003800001C297CA822>I<003FC00001FFF00003FFFC000FC07E000F003F
+001F001F001E001F803E000F803E000F803F000F803F800F803FC01F803FF01F003FFC3F
+001FFE7E001FFFF8000FFFE00007FFF80001FFFC0001FFFF0007FFFF801F8FFF803F03FF
+C07E01FFC07C007FE0FC001FE0F8000FE0F80007E0F80003E0F80003E0F80003E0FC0003
+C07C0007C07E0007803F000F801FC03F000FFFFC0003FFF800007FC0001B277DA622>I<
+007F800001FFF00007FFF8000FE0FE001FC07E003F803F007F003F807F003F80FF001FC0
+FF001FC0FF001FC0FF001FC0FF001FE0FF001FE0FF001FE0FF001FE07F003FE07F003FE0
+7F003FE03F807FE01F80FFE00FE1DFE003FF9FE0007E1FE000001FE000001FC000001FC0
+00001FC000003FC01F003F803F803F803F807F003F807F003F80FE003F01FC001E03F800
+0FFFE00007FF800001FE00001B277DA622>I<1C007F00FF80FF80FF80FF80FF807F001C
+000000000000000000000000000000000000001C007F00FF80FF80FF80FF80FF807F001C
+00091B7B9A13>I<000003800000000007C00000000007C0000000000FE0000000000FE0
+000000000FE0000000001FF0000000001FF0000000003FF8000000003FF8000000003FF8
+0000000073FC0000000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF
+00000001C0FF00000003C0FF80000003807F80000007807FC0000007003FC0000007003F
+C000000E003FE000000E001FE000001E001FF000001C000FF000001FFFFFF000003FFFFF
+F800003FFFFFF80000780007FC0000700003FC0000700003FC0000E00001FE0000E00001
+FE0001E00001FF0001C00000FF0001C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001F
+FFFE2F297EA834>65 D<00003FF001800003FFFE0780000FFFFF8F80003FF007FF8000FF
+8001FF8001FE00007F8007FC00003F8007F800001F800FF000000F801FE000000F803FE0
+000007803FC0000007807FC0000003807FC0000003807FC000000380FF8000000000FF80
+00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80
+00000000FF8000000000FF8000000000FF80000000007FC0000000007FC0000003807FC0
+000003803FC0000003803FE0000003801FE0000007800FF00000070007F800000F0007FC
+00001E0001FE00003C0000FF8000F800003FF007F000000FFFFFC0000003FFFF00000000
+3FF8000029297CA832>67 D<FFFFFFF80000FFFFFFFF8000FFFFFFFFE00003FC001FF800
+03FC0007FC0003FC0001FE0003FC0000FF0003FC00007F8003FC00003FC003FC00001FC0
+03FC00001FE003FC00001FE003FC00000FF003FC00000FF003FC00000FF003FC00000FF0
+03FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF8
+03FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF003FC00000FF0
+03FC00000FF003FC00001FE003FC00001FE003FC00001FC003FC00003FC003FC00007F80
+03FC00007F0003FC0001FE0003FC0003FC0003FC001FF800FFFFFFFFE000FFFFFFFF8000
+FFFFFFFC00002D297DA835>I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC001FE003FC00
+07F003FC0001F003FC0001F003FC0000F003FC00007003FC00007003FC00007003FC01C0
+7803FC01C03803FC01C03803FC01C03803FC03C00003FC03C00003FC0FC00003FFFFC000
+03FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00E03FC01C00E03
+FC01C00E03FC01C01C03FC00001C03FC00001C03FC00001C03FC00003C03FC00003803FC
+00007803FC0000F803FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFFFFFFF0FFFFFF
+FFF027297DA82D>I<00007FE003000003FFFC0F00001FFFFF1F00007FF00FFF0000FF80
+01FF0003FE0000FF0007FC00007F000FF800003F000FF000001F001FE000001F003FE000
+000F003FC000000F007FC0000007007FC0000007007FC000000700FF8000000000FF8000
+000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000
+000000FF8000000000FF8001FFFFF8FF8001FFFFF87FC001FFFFF87FC00000FF007FC000
+00FF003FC00000FF003FE00000FF001FE00000FF000FF00000FF000FF80000FF0007FC00
+00FF0003FE0001FF0000FF8001FF00007FF007FF00001FFFFFBF000003FFFE0F0000007F
+F003002D297CA836>71 D<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE0001
+FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001
+FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001
+FE0001FE0001FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297EA81A>73
+D<FFFFFC0000FFFFFC0000FFFFFC000003FC00000003FC00000003FC00000003FC000000
+03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003
+FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
+00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC0001C003FC00
+03C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003FC001F
+8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297DA829>76
+D<FFFE0000001FFFC0FFFE0000001FFFC0FFFF0000003FFFC003FF0000003FF00003FF00
+00003FF00003BF80000077F00003BF80000077F000039FC00000E7F000039FC00000E7F0
+00038FE00001C7F000038FE00001C7F0000387F0000387F0000387F0000387F0000387F0
+000387F0000383F8000707F0000383F8000707F0000381FC000E07F0000381FC000E07F0
+000380FE001C07F0000380FE001C07F0000380FF003807F00003807F003807F00003807F
+003807F00003803F807007F00003803F807007F00003801FC0E007F00003801FC0E007F0
+0003800FE1C007F00003800FE1C007F00003800FE1C007F000038007F38007F000038007
+F38007F000038003FF0007F000038003FF0007F000038001FE0007F000038001FE0007F0
+00038000FC0007F000038000FC0007F000FFFE00FC01FFFFC0FFFE007801FFFFC0FFFE00
+7801FFFFC03A297DA841>I<FFFC0000FFFEFFFE0000FFFEFFFF0000FFFE03FF80000380
+03FFC000038003FFE000038003BFE0000380039FF0000380038FF80003800387FC000380
+0387FE0003800383FE0003800381FF0003800380FF80038003807FC0038003807FE00380
+03803FF0038003801FF0038003800FF80380038007FC0380038003FE0380038003FF0380
+038001FF8380038000FF83800380007FC3800380003FE3800380001FF3800380001FFB80
+0380000FFB8003800007FF8003800003FF8003800001FF8003800001FF8003800000FF80
+038000007F80038000003F80038000001F80038000000F80FFFE00000F80FFFE00000780
+FFFE000003802F297DA836>I<0000FFE000000007FFFC0000003FC07F8000007F001FC0
+0001FC0007F00003F80003F80007F00001FC000FF00001FE001FE00000FF001FE00000FF
+003FC000007F803FC000007F807FC000007FC07F8000003FC07F8000003FC07F8000003F
+C0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003F
+E0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE07F8000003FC07FC000007F
+C07FC000007FC03FC000007F803FC000007F801FE00000FF001FE00000FF000FF00001FE
+0007F00001FC0003F80003F80001FC0007F00000FF001FE000003FC07F8000000FFFFE00
+000000FFE000002B297CA834>I<007F806003FFF0E00FFFFFE01F807FE03F001FE07E00
+07E07E0003E07C0003E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC0
+00007FFE00007FFFE0003FFFFC003FFFFF001FFFFF8007FFFFC003FFFFE000FFFFF00007
+FFF000007FF000000FF8000007F8000003F8E00003F8E00001F8E00001F8E00001F8F000
+01F8F00001F0F80003F0FC0003E0FF0007E0FFE01FC0FFFFFF00E0FFFE00C01FF0001D29
+7CA826>83 D<FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC03FC0000070003FC00000700
+03FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC00000700
+03FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC00000700
+03FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC00000700
+03FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC00000700
+03FC0000070003FC00000F0001FC00000E0001FE00000E0000FE00001E0000FF00003C00
+007F80007800003FC000F800001FF007E0000007FFFFC0000001FFFF000000001FF80000
+2E297DA835>85 D<FFFFF0003FFF80FFFFF0003FFF80FFFFF0003FFF8003FF000001E000
+01FF000003C00000FF8000038000007FC000078000007FE0000F0000003FE0000E000000
+1FF0001E0000001FF8003C0000000FF8003800000007FC007800000007FE00F000000003
+FE00E000000001FF01E000000001FF83C000000000FF8380000000007FC780000000007F
+EF00000000003FEE00000000001FFE00000000000FFC00000000000FF8000000000007F8
+000000000007F8000000000007F8000000000007F8000000000007F8000000000007F800
+0000000007F8000000000007F8000000000007F8000000000007F8000000000007F80000
+00000007F8000000000007F8000000000007F80000000001FFFFE000000001FFFFE00000
+0001FFFFE0000031297FA834>89 D<01FF800007FFF0000F81FC001FC0FE001FC07F001F
+C07F001FC03F800F803F8000003F8000003F8000003F80000FFF8000FFFF8007FC3F801F
+E03F803F803F807F803F807F003F80FE003F80FE003F80FE003F80FE007F80FF007F807F
+00FFC03F83DFFC0FFF0FFC01FC03FC1E1B7E9A21>97 D<FFE0000000FFE0000000FFE000
+00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000
+000FE00000000FE00000000FE00000000FE00000000FE00000000FE1FE00000FE7FF8000
+0FFE07E0000FF803F8000FF001FC000FE000FE000FE000FE000FE0007F000FE0007F000F
+E0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0
+007F800FE0007F800FE0007F000FE000FF000FE000FE000FF000FE000FF001FC000FF803
+F8000F9E07E0000F0FFF80000E01FC0000212A7EA926>I<001FF80000FFFE0003F01F00
+0FE03F801FC03F803F803F803F803F807F801F007F000000FF000000FF000000FF000000
+FF000000FF000000FF000000FF000000FF000000FF0000007F0000007F8000003F8001C0
+3FC001C01FC003C00FE0078003F01F0000FFFC00001FE0001A1B7E9A1F>I<00003FF800
+00003FF80000003FF800000003F800000003F800000003F800000003F800000003F80000
+0003F800000003F800000003F800000003F800000003F800000003F800000003F800001F
+E3F80000FFFBF80003F03FF8000FE00FF8001FC007F8003F8003F8003F8003F8007F8003
+F8007F0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8
+00FF0003F800FF0003F800FF0003F8007F0003F8007F0003F8003F8003F8003F8007F800
+1FC00FF8000FE01FF80003F03FFF8000FFF3FF80003FC3FF80212A7EA926>I<003FE000
+01FFF80003F07E000FE03F001FC01F803F800FC03F800FC07F000FC07F0007E0FF0007E0
+FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF000000FF000000FF0000007F000000
+7F8000003F8000E03F8001E01FC001C00FE003C003F81F8000FFFE00001FF0001B1B7E9A
+20>I<0007F0003FFC00FE3E01FC7F03F87F03F87F07F07F07F03E07F00007F00007F000
+07F00007F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F000
+07F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000
+07F00007F00007F00007F0007FFF807FFF807FFF80182A7EA915>I<00FF81F003FFE7FC
+0FC1FE7C1F80FC7C3F80FE7C3F007E107F007F007F007F007F007F007F007F007F007F00
+7F007F003F007E003F80FE001F80FC000FC1F8001FFFE00018FF8000380000003C000000
+3C0000003E0000003FFFF8003FFFFF001FFFFFC00FFFFFE007FFFFF01FFFFFF07E0007F8
+7C0001F8F80001F8F80000F8F80000F8F80000F8FC0001F87E0003F03F0007E00FC01F80
+03FFFE00007FF0001E287E9A22>I<FFE0000000FFE0000000FFE00000000FE00000000F
+E00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0
+0000000FE00000000FE00000000FE00000000FE07F00000FE1FFC0000FE787E0000FEE07
+F0000FFC03F8000FF803F8000FF003F8000FF003F8000FF003F8000FE003F8000FE003F8
+000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800
+0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FF
+FE3FFF80FFFE3FFF80212A7DA926>I<07001FC01FE03FE03FE03FE01FE01FC007000000
+000000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>
+I<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
+E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
+E00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>108 D<FFC07F800FF000FFC1FFE03FFC00
+FFC783F0F07E000FCE03F9C07F000FDC01FB803F000FF801FF003F800FF001FE003F800F
+F001FE003F800FF001FE003F800FE001FC003F800FE001FC003F800FE001FC003F800FE0
+01FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001
+FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC
+003F800FE001FC003F80FFFE1FFFC3FFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF8351B7D9A3A
+>I<FFC07F0000FFC1FFC000FFC787E0000FCE07F0000FDC03F8000FF803F8000FF003F8
+000FF003F8000FF003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800
+0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
+E003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80211B7D9A26>I<
+003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007E07F0007F07F0007F0
+7F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8
+7F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F0001FFFC00003FE000
+1D1B7E9A22>I<FFE1FE0000FFE7FF8000FFFE07E0000FF803F8000FF001FC000FE001FE
+000FE000FE000FE000FF000FE000FF000FE0007F800FE0007F800FE0007F800FE0007F80
+0FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE000FF000FE000FF000F
+E000FE000FF001FE000FF003FC000FF803F8000FFE0FE0000FEFFF80000FE1FC00000FE0
+0000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000
+00000FE0000000FFFE000000FFFE000000FFFE00000021277E9A26>I<FFC1F0FFC7FCFF
+CE3E0FDC7F0FD87F0FF87F0FF07F0FF03E0FF0000FE0000FE0000FE0000FE0000FE0000F
+E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000FFFF00FFFF00FF
+FF00181B7E9A1C>114 D<03FE300FFFF03E03F07800F07000F0F00070F00070F80070FC
+0000FFE000FFFE007FFFC03FFFE01FFFF007FFF800FFFC0003FC0000FCE0007CE0003CF0
+003CF0003CF80078FC0078FF01F0F7FFC0C1FF00161B7E9A1B>I<007000007000007000
+00700000F00000F00000F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF007F000
+07F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000
+07F03807F03807F03807F03807F03807F03807F03803F87001F8F000FFE0001F8015267F
+A51B>I<FFE03FF800FFE03FF800FFE03FF8000FE003F8000FE003F8000FE003F8000FE0
+03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
+F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE007F8
+000FE007F8000FE00FF80007E01FF80003F03BFF8001FFF3FF80003FC3FF80211B7D9A26
+>I<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007F000700007F800F00003F800E0
+0003FC01E00001FC01C00001FC01C00000FE03800000FE038000007F070000007F070000
+007F8F0000003F8E0000003FDE0000001FDC0000001FDC0000000FF80000000FF8000000
+0FF800000007F000000007F000000003E000000003E000000001C00000211B7F9A24>I<
+FFFE7FFC0FFEFFFE7FFC0FFEFFFE7FFC0FFE0FE007E000E007F003F001C007F003F001C0
+07F807F803C003F807F8038003F807F8038001FC0EFC070001FC0EFC070001FE1EFC0F00
+00FE1C7E0E0000FE1C7E0E0000FF383F1E00007F383F1C00007F783F3C00003FF01FB800
+003FF01FB800003FF01FF800001FE00FF000001FE00FF000000FC007E000000FC007E000
+000FC007E00000078003C00000078003C0002F1B7F9A32>I<FFFC0FFF00FFFC0FFF00FF
+FC0FFF0007F003C00003F807800001FC07800000FE0F000000FF1E0000007F3C0000003F
+F80000001FF00000000FF00000000FF000000007F000000007F80000000FFC0000001FFE
+0000001EFE0000003C7F000000783F800000F01FC00001E01FE00001C00FE00003C007F0
+00FFF01FFF80FFF01FFF80FFF01FFF80211B7F9A24>I<FFFE03FF80FFFE03FF80FFFE03
+FF8007F000700007F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C0
+0000FE03800000FE038000007F070000007F070000007F8F0000003F8E0000003FDE0000
+001FDC0000001FDC0000000FF80000000FF80000000FF800000007F000000007F0000000
+03E000000003E000000001C000000001C000000003800000000380000038078000007C07
+000000FE0F000000FE0E000000FE1E000000FE3C0000007C780000003FE00000000FC000
+000021277F9A24>I E /Fe 40 122 df<6060F0F0F8F868680808080808081010101020
+20404080800D0C7F9C15>34 D<0006000000060000000600000006000000060000000600
+0000060000000600000006000000060000000600000006000000060000FFFFFFE0FFFFFF
+E00006000000060000000600000006000000060000000600000006000000060000000600
+00000600000006000000060000000600001B1C7E9720>43 D<60F0F07010101010202040
+80040C7C830C>I<FFE0FFE00B0280890E>I<60F0F06004047C830C>I<03E00C30100820
+0C20066006600660067006780C3E083FB01FE007F007F818FC307E601E600FC007C003C0
+03C003C00360026004300C1C1007E0101D7E9B15>56 D<00060000000600000006000000
+0F0000000F0000000F00000017800000178000001780000023C0000023C0000023C00000
+41E0000041E0000041E0000080F0000080F0000180F8000100780001FFF80003007C0002
+003C0002003C0006003E0004001E0004001E000C001F001E001F00FF80FFF01C1D7F9C1F
+>65 D<FFFFC00F00F00F00380F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C
+0F00780F01F00FFFE00F00780F003C0F001E0F000E0F000F0F000F0F000F0F000F0F000F
+0F001E0F001E0F003C0F0078FFFFE0181C7E9B1D>I<001F808000E06180018019800700
+07800E0003801C0003801C00018038000180780000807800008070000080F0000000F000
+0000F0000000F0000000F0000000F0000000F0000000F000000070000080780000807800
+0080380000801C0001001C0001000E000200070004000180080000E03000001FC000191E
+7E9C1E>I<FFFFF80F00780F00180F00080F00080F000C0F00040F00040F02040F02000F
+02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F00000F00000F
+00000F00000F00000F00000F8000FFF800161C7E9B1B>70 D<001F808000E06180018019
+80070007800E0003801C0003801C00018038000180780000807800008070000080F00000
+00F0000000F0000000F0000000F0000000F0000000F000FFF0F0000F8070000780780007
+8078000780380007801C0007801C0007800E00078007000B800180118000E06080001F80
+001C1E7E9C21>I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F
+00000F00000F00000F00000F00000F00000F00000F00000F00000F00080F00080F00080F
+00180F00180F00100F00300F00700F01F0FFFFF0151C7E9B1A>76
+D<003F800000E0E0000380380007001C000E000E001C0007003C00078038000380780003
+C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001
+E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C
+000380380000E0E000003F80001B1E7E9C20>79 D<07E0801C1980300580700380600180
+E00180E00080E00080E00080F00000F800007C00007FC0003FF8001FFE0007FF0000FF80
+000F800007C00003C00001C08001C08001C08001C0C00180C00180E00300D00200CC0C00
+83F800121E7E9C17>83 D<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F002080
+0F0020800F0020800F0020000F0000000F0000000F0000000F0000000F0000000F000000
+0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
+0F0000000F0000001F800003FFFC001B1C7F9B1E>I<FFF007FC0F8001E00780008007C0
+018003C0010003E0020001F0020000F0040000F8040000780800007C1800003C1000001E
+2000001F2000000F4000000FC00000078000000780000007800000078000000780000007
+80000007800000078000000780000007800000078000007FF8001E1C809B1F>89
+D<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>92
+D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C
+00E01C40E01C40E01C40603C40304E801F870012127E9115>97 D<FC00001C00001C0000
+1C00001C00001C00001C00001C00001C00001C00001C00001C7C001D86001E03001C0180
+1C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E0300
+19060010F800131D7F9C17>I<07E00C301878307870306000E000E000E000E000E000E0
+0060007004300418080C3007C00E127E9112>I<003F0000070000070000070000070000
+070000070000070000070000070000070003E7000C1700180F00300700700700600700E0
+0700E00700E00700E00700E00700E00700600700700700300700180F000C370007C7E013
+1D7E9C17>I<03E00C301818300C700E6006E006FFFEE000E000E000E000600070023002
+18040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FF
+E00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE00F
+1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C00381C00381C00181800
+1C38000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0
+C000C0C000C06001803003001C0E0007F800121C7F9215>I<FC00001C00001C00001C00
+001C00001C00001C00001C00001C00001C00001C00001C7C001C87001D03001E03801C03
+801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03
+80FF9FF0141D7F9C17>I<18003C003C0018000000000000000000000000000000FC001C
+001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F
+9C0C>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00
+001C3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38
+001C3C001C1C001C0E001C0F001C0F80FF9FE0131D7F9C16>107
+D<FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
+001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<FC7E07E0001C
+838838001D019018001E01E01C001C01C01C001C01C01C001C01C01C001C01C01C001C01
+C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C0
+1C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D03001E03801C03801C03
+801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9F
+F014127F9117>I<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E0
+01C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C00
+1D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C0
+1C01C01C01801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000
+FF8000131A7F9117>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C00
+1C001C001C001C00FFC00D127F9110>114 D<1F9030704030C010C010E010F8007F803F
+E00FF000F880388018C018C018E010D0608FC00D127F9110>I<04000400040004000C00
+0C001C003C00FFE01C001C001C001C001C001C001C001C001C001C101C101C101C101C10
+0C100E2003C00C1A7F9910>I<FC1F801C03801C03801C03801C03801C03801C03801C03
+801C03801C03801C03801C03801C03801C03801C07800C07800E1B8003E3F014127F9117
+>I<FF07E03C03801C01001C01000E02000E020007040007040007040003880003880003
+D80001D00001D00000E00000E00000E00000400013127F9116>I<FF3FCFE03C0F03801C
+0701801C0701001C0B01000E0B82000E0B82000E1182000711C4000711C4000720C40003
+A0E80003A0E80003C0680001C0700001C0700001803000008020001B127F911E>I<7F8F
+F00F03800F030007020003840001C80001D80000F00000700000780000F800009C00010E
+00020E000607000403801E07C0FF0FF81512809116>I<FF07E03C03801C01001C01000E
+02000E020007040007040007040003880003880003D80001D00001D00000E00000E00000
+E000004000004000008000008000F08000F10000F300006600003C0000131A7F9116>I
+E /Ff 3 52 df<0C001C00EC000C000C000C000C000C000C000C000C000C000C000C000C
+000C000C000C00FFC00A137D9211>49 D<1F0060C06060F070F030603000700070006000
+C001C00180020004000810101020207FE0FFE00C137E9211>I<0FC03070703870387038
+0038003000E00FC0007000380018001C601CF01CF018E03860701FC00E137F9211>I
+E /Fg 61 126 df<2008F01EF01EF01EF01EF01EF01EF01EF01E701C701C701C701C701C
+600C0F0F7B9E1A>34 D<00600000E00000E00000E00000E00003FC000FFF001FFF803EE7
+C078E1C0F0E1E0E0E0E0E0E1E0E0E1E0E0E0C0F0E00078E0003FE0001FF8000FFE0001FF
+0000EF8000E3C000E1C060E1E0F0E0E0F0E0E0F0E0E0E0E1E0F0E1C078E3C03EEF801FFF
+000FFE0003F80000E00000E00000E00000600013277DA21A>36 D<3C00C07E01E07E03E0
+FF03E0E703C0E707C0E707C0E70780E70F80E70F80E71F00FF1F007E1E007E3E003C3E00
+003C00007C00007C0000F80000F80000F00001F00001F00001E00003E00003E00003C1E0
+07C3F007C3F00F87F80F87380F07381F07381F07381E07383E07F83E03F03C03F01801E0
+15277EA21A>I<01E00003F00007F8000F3C000E1C000E1C000E1C000E1C000E3C000E39
+FC0E79FC0FF1FC07E1E007C1C00781C00783C00F83801FC7803DC70079E700F0EF00E0FE
+00E07E00E03C08E03C1CF07E1C78FF3C7FE7F83FC3F80F81F0161E7F9D1A>I<1C3C3E1E
+0E0E0E0E1E1C3C38F8F0E0070F779D1A>I<0038007800F801E003C007800F001E001C00
+3C0038007800700070007000F000E000E000E000E000E000E000E000E000F00070007000
+7000780038003C001C001E000F00078003C001E000F8007800380D2878A21A>I<6000F0
+0078003C001E000F00078003C001C001E000E000F0007000700070007800380038003800
+380038003800380038007800700070007000F000E001E001C003C007800F001E003C0078
+00F00060000D287CA21A>I<00E00000E00000E00000E00040E040F0E1E0F8E3E07EEFC0
+1FFF0007FC0003F80007FC001FFF007EEFC0F8E3E0F0E1E040E04000E00000E00000E000
+00E00013157D991A>I<0030000078000078000078000078000078000078000078000078
+007FFFF0FFFFF8FFFFF87FFFF00078000078000078000078000078000078000078000078
+0000300015167E991A>I<3C7E7F7F7F3F070F0E3EFCF8E0080D77851A>I<7FFFC0FFFFE0
+FFFFE07FFFC013047D901A>I<78FCFCFCFC78060676851A>I<0000C00001E00003E00003
+E00003C00007C00007C0000F80000F80001F00001F00001E00003E00003E00007C00007C
+0000F80000F80001F00001F00001E00003E00003E00007C00007C0000F80000F80000F00
+001F00001F00003E00003E00007C00007C0000780000F80000F80000F000006000001327
+7DA21A>I<01F00007FC000FFE001F1F001C07003803803803807001C07001C07001C0E0
+00E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C078
+03C03803803C07801C07001F1F000FFE0007FC0001F000131E7D9D1A>I<00C001C003C0
+03C007C00FC07FC0FDC079C001C001C001C001C001C001C001C001C001C001C001C001C0
+01C001C001C001C001C001C07FFF7FFF7FFF101E7B9D1A>I<07F8000FFE001FFF003C0F
+807803C0F001C0E001E0F000E0F000E06000E00000E00000E00001E00001C00003C00007
+80000F00000E00003E00007C0000F80001E00003C0000780000F00001E00E03C00E07FFF
+E0FFFFE07FFFE0131E7D9D1A>I<78FCFCFCFC7800000000000000000078FCFCFCFC7806
+1576941A>58 D<3C7E7E7E7E3C0000000000000000003C7C7E7E7E3E0E1E1C3CF8F0E007
+1C77941A>I<7FFFF0FFFFF8FFFFF87FFFF00000000000000000000000007FFFF0FFFFF8
+FFFFF87FFFF0150C7E941A>61 D<007E0001FF8003FFC007C3E00F00E01E0FF03C3FF038
+7FF07879F870F0F8F0E078E1E078E1C038E1C038E1C038E1C038E1C038E1C038E1E078F0
+E07070F0F07879E0387FE03C3FC01E0F000F003807C1F803FFF801FFE0007F80151E7E9D
+1A>64 D<003800007C00007C00006C0000EE0000EE0000EE0000C60000C60001C70001C7
+0001C70001C7000383800383800383800383800701C00701C007FFC007FFC00FFFE00E00
+E00E00E00E00E00E00E01C00707F01FCFF83FE7F01FC171E7F9D1A>I<00FE3803FFB807
+FFF80F83F81E00F81C00783C0078780038700038700038F00000E00000E00000E00000E0
+0000E00000E00000E00000E00000F000007000387000387800383C00781C00701E00F00F
+83E007FFC003FF8000FE00151E7E9D1A>67 D<7FFE00FFFF007FFF801C07C01C01E01C00
+F01C00701C00781C00381C00381C003C1C001C1C001C1C001C1C001C1C001C1C001C1C00
+1C1C001C1C003C1C00381C00381C00781C00701C00F01C01E01C07C07FFFC0FFFF007FFE
+00161E7F9D1A>I<FFFFF8FFFFF8FFFFF81C00381C00381C00381C00381C00001C00001C
+00001C0E001C0E001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C
+00001C001C1C001C1C001C1C001C1C001CFFFFFCFFFFFCFFFFFC161E7E9D1A>I<FFFF80
+FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01C00001C000FFFF80FFFF80FFFF80111E7C9D1A>73 D<7FE000FFF0007FE0000E00000E
+00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E
+00000E00000E00000E00000E00000E00000E001C0E001C0E001C0E001C0E001C7FFFFCFF
+FFFC7FFFFC161E7F9D1A>76 D<7E003F00FF007F807F007F001D80DC001D80DC001D80DC
+001DC1DC001DC1DC001CC19C001CC19C001CE39C001CE39C001C631C001C771C001C771C
+001C361C001C361C001C3E1C001C1C1C001C1C1C001C001C001C001C001C001C001C001C
+001C001C001C001C001C001C007F007F00FF80FF807F007F00191E809D1A>I<FE03FEFF
+03FEFF03FE1D80701D80701DC0701CC0701CC0701CE0701CE0701C60701C70701C70701C
+30701C38701C38701C18701C1C701C1C701C0C701C0E701C0E701C06701C06701C07701C
+03701C0370FF81F0FF81F0FF80F0171E7F9D1A>I<0FFE003FFF807FFFC07C07C07001C0
+F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0
+E000E0E000E0E000E0E000E0E000E0E000E0F001E0F001E07001C07C07C07FFFC03FFF80
+0FFE00131E7D9D1A>I<07F1C01FFDC03FFFC07C1FC07007C0F003C0E001C0E001C0E001
+C0E00000F000007800003F00001FF8000FFE0001FF00000F800003C00001C00001E00000
+E06000E0E000E0E000E0F001E0F003C0FE0780FFFF80FFFE00E3FC00131E7D9D1A>83
+D<7FFFFEFFFFFEFFFFFEE0380EE0380EE0380EE0380E0038000038000038000038000038
+000038000038000038000038000038000038000038000038000038000038000038000038
+0000380000380000380003FF8003FF8003FF80171E7F9D1A>I<FF83FEFF83FEFF83FE1C
+00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C
+00701C00701C00701C00701C00701C00701C00701C00701E00F00E00E00F01E007C7C003
+FF8001FF00007C00171E7F9D1A>I<FF01FEFF01FEFF01FE1C00701C00701C00701E00F0
+0E00E00E00E00E00E00701C00701C00701C00701C003838003838003838003838001C700
+01C70001C70001C70000C60000EE0000EE0000EE00006C00007C00007C00003800171E7F
+9D1A>I<FFF8FFF8FFF8E000E000E000E000E000E000E000E000E000E000E000E000E000
+E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000
+E000E000FFF8FFF8FFF80D2776A21A>91 D<600000F00000F80000F800007800007C0000
+7C00003E00003E00001F00001F00000F00000F80000F800007C00007C00003E00003E000
+01E00001F00001F00000F80000F800007C00007C00003E00003E00001E00001F00001F00
+000F80000F800007C00007C00003C00003E00003E00001E00000C013277DA21A>I<FFF8
+FFF8FFF80038003800380038003800380038003800380038003800380038003800380038
+00380038003800380038003800380038003800380038003800380038003800380038FFF8
+FFF8FFF80D277EA21A>I<1FF0003FFC007FFE00781F0030078000038000038000FF8007
+FF801FFF803F83807C0380F00380E00380E00380E00380F007807C1F803FFFFC1FFDFC07
+F0FC16157D941A>97 D<FE0000FE0000FE00000E00000E00000E00000E00000E00000E00
+000E3F000EFFC00FFFE00FE1F00F80700F00780F00380E003C0E001C0E001C0E001C0E00
+1C0E001C0F003C0F00380F00780F80F00FC3E00FFFC00EFF80067E00161E7F9D1A>I<01
+FF8007FFC00FFFE01F01E03C00C0780000700000F00000E00000E00000E00000E00000E0
+0000F000007000007800703C00701F01F00FFFE007FFC001FF0014157D941A>I<001FC0
+001FC0001FC00001C00001C00001C00001C00001C00001C001F9C007FDC00FFFC01F0FC0
+3C07C07803C07003C0F001C0E001C0E001C0E001C0E001C0E001C0F003C07003C07807C0
+3807C03E1FC01FFFFC0FFDFC03F1FC161E7E9D1A>I<01FC0007FF000FFF801F07C03C01
+E07800E07000F0F00070E00070FFFFF0FFFFF0FFFFF0E00000F000007000007800703C00
+701F01F00FFFE007FFC001FF0014157D941A>I<000FF0001FF8003FF800787800F03000
+E00000E00000E00000E0007FFFF0FFFFF0FFFFF000E00000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E0003FFF807FFFC03F
+FF80151E7F9D1A>I<01F8FC07FFFE0FFFFE1F0F8C1C03803C03C03801C03801C03801C0
+3C03C01C03801F0F801FFF003FFE0039F8003800003C00001C00001FFF801FFFF03FFFF8
+7C00FC70001CF0001EE0000EE0000EE0000EF0001E78003C3F01F81FFFF00FFFE001FF00
+17217F941A>I<FE0000FE0000FE00000E00000E00000E00000E00000E00000E00000E3F
+000EFF800FFFC00FE1E00F80E00F00E00F00E00E00E00E00E00E00E00E00E00E00E00E00
+E00E00E00E00E00E00E00E00E00E00E0FFE3FEFFE7FEFFE3FE171E7F9D1A>I<00C00001
+E00001E00000C0000000000000000000000000000000000000007FE0007FE0007FE00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
+E00000E00000E0007FFF80FFFFC07FFF80121F7C9E1A>I<FE0000FE0000FE00000E0000
+0E00000E00000E00000E00000E00000E0FFC0E1FFE0E0FFC0E03C00E07800E0F000E1E00
+0E3C000E78000EFC000FFC000FDE000F8F000E07800E03C00E03C00E01E00E00F0FFE3FE
+FFE3FFFFE3FE181E7F9D1A>107 D<FFE000FFE000FFE00000E00000E00000E00000E000
+00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000
+00E00000E00000E00000E00000E00000E00000E00000E000FFFFE0FFFFE0FFFFE0131E7D
+9D1A>I<7DF1F000FFFBF8007FFFFC001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C00
+1C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00
+1C1C1C007F1F1F00FF9F9F807F1F1F00191580941A>I<FE3F00FEFF80FFFFC00FE1E00F
+80E00F00E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E
+00E00E00E0FFE3FEFFE7FEFFE3FE17157F941A>I<01F00007FC001FFF003E0F803C0780
+7803C07001C0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C0780
+3E0F801FFF0007FC0001F00013157D941A>I<FE3F00FEFFC0FFFFE00FE1F00F80700F00
+780F00380E003C0E001C0E001C0E001C0E001C0E001C0F003C0F00380F00780F80F00FC3
+E00FFFC00EFF800E7E000E00000E00000E00000E00000E00000E00000E00000E0000FFE0
+00FFE000FFE00016207F941A>I<01F8E007FEE00FFFE01F0FE03C03E07801E07001E0F0
+00E0E000E0E000E0E000E0E000E0E000E0F001E07001E07803E03C07E01E0FE00FFFE007
+FCE003F8E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE000FFE00
+0FFE17207E941A>I<7F87F0FF9FFC7FBFFC03FC3C03F01803E00003E00003C00003C000
+0380000380000380000380000380000380000380000380000380007FFF00FFFF007FFF00
+16157E941A>I<0FFB803FFF807FFF80F80F80E00380E00380E00380F800007FC0003FFC
+000FFF00007F800007C06001C0E001C0F001C0F003C0FC0F80FFFF00FFFE00E7F8001215
+7C941A>I<00C00001C00001C00001C00001C00001C00001C0007FFFE0FFFFE0FFFFE001
+C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C07001C07001
+C07001C0F001E1E000FFE0007FC0003F00141C7F9B1A>I<FE0FE0FE0FE0FE0FE00E00E0
+0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01E0
+0E01E00F07E007FFFE03FFFE01FCFE17157F941A>I<7F83FCFFC7FE7F83FC0E00E00E00
+E00E00E00701C00701C00701C003838003838003838001C70001C70001C70000EE0000EE
+0000EE00007C00007C0000380017157F941A>I<7FC7F87FCFFC7FC7F80703C003838003
+C70001EF0000FE00007C00007800003800007C0000EE0001EE0001C7000383800783C00F
+01C07FC7FCFFC7FE7FC7FC17157F941A>120 D<7FC3FCFFC7FE7FC3FC0E00E00E00E007
+00E00701C00781C00381C003838003C38001C38001C70000E70000E70000E60000660000
+6E00003C00003C00003C0000380000380000380000700000700030700078E00071E0007F
+C0003F80001E000017207F941A>I<0007E0001FE0003FE0007C0000F00000E00000E000
+00E00000E00000E00000E00000E00000E00000E00000E00000E00001E00007C000FF8000
+FF0000FF800007C00001E00000E00000E00000E00000E00000E00000E00000E00000E000
+00E00000E00000E00000F000007C00003FE0001FE00007E013277DA21A>123
+D<7C0000FF0000FF800007C00001E00000E00000E00000E00000E00000E00000E00000E0
+0000E00000E00000E00000E00000F000007C00003FE0001FE0003FE0007C0000F00000E0
+0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00001E00007C0
+00FF8000FF00007C000013277DA21A>125 D E /Fh 31 123 df<00000FE00000301800
+00E01C0001C03C0001803C00038038000380000003800000070000000700000007000000
+07000000070000000E000000FFFFE0000E00E0000E00E0000E01C0001C01C0001C01C000
+1C01C0001C0380001C038000380380003803800038070000380700003807000070070800
+700E1000700E1000700E1000700E2000E0062000E003C000E0000000E0000000C0000001
+C0000001C0000071800000F1800000F3000000620000003C0000001E2D82A21B>12
+D<FFF0FFF0FFE00C037C8B11>45 D<0000030000000300000007000000070000000F0000
+000F0000001F0000002F0000002F0000004F0000004F8000008780000087800001078000
+020780000207800004078000040780000807800008078000100780003007800020078000
+7FFF80004007C0008007C0008003C0010003C0030003C0020003C0040003C0040003C00C
+0003C03C0007C0FF003FFC1E237DA224>65 D<00FFFC00000F8000000F0000000F000000
+1E0000001E0000001E0000001E0000003C0000003C0000003C0000003C00000078000000
+780000007800000078000000F0000000F0000000F0000000F0000001E0000001E0000001
+E0002001E0002003C0004003C0004003C0008003C0008007800180078001000780030007
+800F000F803E00FFFFFE001B227DA11F>76 D<00FF800007FC000F80000F80000F800017
+80000F80001780001780002F000013C0002F000013C0004F000013C0008F000023C0009E
+000023C0011E000023C0011E000023C0021E000043C0043C000043C0043C000043C0083C
+000041E0083C000081E01078000081E02078000081E02078000081E04078000101E040F0
+000101E080F0000101E100F0000101E100F0000200F201E0000200F201E0000200F401E0
+000200F801E0000400F803C0000400F003C0000400F003C0000C00E003C0001E00C007C0
+00FFC0C07FFC002E227DA12C>I<0000FE0000078380000C00E0003800700070003800E0
+003801C0001C0380001C0700001C0F00001E1E00001E1C00001E3C00001E3C00001E7800
+001E7800001E7800001EF000003CF000003CF000003CF0000078F0000078E0000078E000
+00F0E00000F0E00001E0E00001C0F00003C0F00007807000070078000E0038001C001C00
+38000E00E0000703800001FC00001F2479A225>79 D<00FFFFC0000F0070000F003C000F
+001C001E000E001E000E001E000F001E000F003C001E003C001E003C001E003C003C0078
+003800780070007801E00078078000FFFC0000F00E0000F0070000F0038001E003C001E0
+03C001E003C001E003C003C0078003C0078003C0078003C0078007800F0007800F010780
+0F01078007020F800702FFF8038C000000F020237DA124>82 D<3FFE03FF03C0007803C0
+006003C00020078000400780004007800040078000400F0000800F0000800F0000800F00
+00801E0001001E0001001E0001001E0001003C0002003C0002003C0002003C0002007800
+040078000400780004007800040070000800F0000800F000100070001000700020007000
+40003000400038018000180200000E0C000003F00000202377A124>85
+D<FFF001FF1F8000780F0000600F0000400F8000C0078000800780010007C0020003C006
+0003C0040003E0080001E0100001E0200001F0600000F0400000F0800000F9000000FB00
+00007A0000007C00000078000000780000007800000078000000F0000000F0000000F000
+0000F0000001E0000001E0000001E0000001E0000003E000003FFC0000202276A124>89
+D<00F8C00185C00705C00E03800E03801C03803C0380380700780700780700780700F00E
+00F00E00F00E00F00E10F01C20701C20703C20305C40308C400F078014157B9419>97
+D<03C03F8003800380038007000700070007000E000E000E000E001C001CF81D0C1E0E3C
+0638073807380F700F700F700F700FE01EE01EE01EE03CE038E038607060E031C01F0010
+237BA216>I<007E0001C1000301800703800E07801C07803C0000380000780000780000
+780000F00000F00000F00000F00000F00100700100700200300C001830000FC00011157B
+9416>I<00003C0003F80000380000380000380000700000700000700000700000E00000
+E00000E00000E00001C000F9C00185C00705C00E03800E03801C03803C03803807007807
+00780700780700F00E00F00E00F00E00F00E10F01C20701C20703C20305C40308C400F07
+8016237BA219>I<00F803840E021C023C0238027804F018FFE0F000F000E000E000E000
+E000E002E0026004701830600F800F157A9416>I<00003E0000470000CF00018F000186
+000380000380000380000700000700000700000700000700000E0000FFF0000E00000E00
+000E00001C00001C00001C00001C00001C00003800003800003800003800003800007000
+00700000700000700000700000E00000E00000E00000E00000C00001C00001C000718000
+F18000F300006200003C0000182D82A20F>I<001F180030B800E0B801C07001C0700380
+700780700700E00F00E00F00E00F00E01E01C01E01C01E01C01E01C01E03800E03800E07
+80060B8006170001E700000700000700000E00000E00000E00701C00F01800F0300060E0
+003F8000151F7E9416>I<00F0000FE00000E00000E00000E00001C00001C00001C00001
+C000038000038000038000038000070000071F0007218007C0C00F00E00F00E00E00E00E
+00E01C01C01C01C01C01C01C01C0380380380380380380380704700708700E08700E1070
+0610E006206003C016237DA219>I<00C001E001C001C000000000000000000000000000
+0000001C002300430043008700870087000E000E001C001C001C00380038003840708070
+807080710032001C000B217BA00F>I<01E01FC001C001C001C003800380038003800700
+0700070007000E000E000E000E001C001C001C001C003800380038003800700070007000
+7100E200E200E200E200640038000B237CA20C>108 D<1C0F80F8002610C10C00476066
+060087807807008780780700870070070087007007000E00E00E000E00E00E000E00E00E
+000E00E00E001C01C01C001C01C01C001C01C01C001C01C0382038038038403803807040
+3803807080380380308070070031003003001E0023157B9428>I<1C0F002631C04740C0
+8780E08780E08700E08700E00E01C00E01C00E01C00E01C01C03801C03801C03801C0704
+380708380E08380E103806107006203003C016157B941B>I<007E0001C3000381800701
+C00E01C01C01E03C01E03801E07801E07801E07801E0F003C0F003C0F00380F007807007
+00700E00700C0030180018700007C00013157B9419>I<01C1F002621804741C08780C08
+700E08700E08701E00E01E00E01E00E01E00E01E01C03C01C03C01C03C01C07803807003
+807003C0E003C1C0072380071E000700000700000E00000E00000E00000E00001C00001C
+00001C0000FFC000171F7F9419>I<1C1F002620804741C08783C08703C0870180870000
+0E00000E00000E00000E00001C00001C00001C00001C0000380000380000380000380000
+70000030000012157B9415>114 D<00FC000183000200800401800C03800C03000C0000
+0F00000FF00007FC0003FE00003E00000F00000700700700F00600F00600E00400400800
+2030001FC00011157D9414>I<00C001C001C001C001C003800380038003800700FFF807
+0007000E000E000E000E001C001C001C001C003800380038003810702070207040708031
+001E000D1F7C9E10>I<1E00602300E04380E04381C08381C08701C08701C00703800E03
+800E03800E03801C07001C07001C07001C07081C0E10180E101C0E101C1E200C262007C3
+C015157B941A>I<1E03802307C04387C04383C08381C08700C08700C00700800E00800E
+00800E00801C01001C01001C01001C02001C02001C04001C08001C08000C300003C00012
+157B9416>I<03C1E0046210083470103CF02038F0203860203800007000007000007000
+00700000E00000E00000E00000E02061C040F1C040F1C080E2C100446200383C0014157D
+9416>120 D<1E00302300704380704380E08380E08700E08700E00701C00E01C00E01C0
+0E01C01C03801C03801C03801C03801C07001C07001C07001C0F000C3E0003CE00000E00
+000E00001C00601C00F03800F03000E0600080C0004380003E0000141F7B9418>I<01E0
+2003F06007F8C0041F800801000802000004000008000010000020000040000080000100
+000200000400800801001003003F060061FC0040F80080700013157D9414>I
+E /Fi 3 52 df<03000700FF000700070007000700070007000700070007000700070007
+00070007000700070007007FF00C157E9412>49 D<0F8030E040708030C038E038403800
+3800700070006000C00180030006000C08080810183FF07FF0FFF00D157E9412>I<0FE0
+30306018701C701C001C00180038006007E000300018000C000E000EE00EE00EC00C4018
+30300FE00F157F9412>I E /Fj 2 121 df<0007FC0000003FFF800000FC07E00003F001
+F80007E000FC000FC0007E001F80003F001F80003F003F00001F803F00001F807F00001F
+C07E00000FC07E00000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0
+FE00000FE0FE00000FE0FE00000FE0FE00000FE07E00000FC07F00001FC07F00001FC03F
+00001F803F80003F801F80003F000FC0007E0007E000FC0003F001F80000FC07E000003F
+FF80000007FC000023227DA12A>79 D<FFE07FC0FFE07FC00F801C0007C0380003E07000
+03F0600001F8C00000F98000007F8000003F0000001F0000001F8000003FC0000037C000
+0063E00000C1F00001C0F8000380FC0007007E000E003E00FF80FFE0FF80FFE01B167F95
+1E>120 D E /Fk 14 118 df<78FCFCFCFC780606778518>46 D<00FC0003FE0007FF00
+0F87801E03C03C3FC0387FC078FFE071E3E071C1E0F3C1E0E380E0E380E0E380E0E380E0
+E380E0E380E0F3C1E071C1C071E3C078FF80387F003C3E001E00E00F83E007FFE003FF80
+00FE00131C7E9B18>64 D<1FE0003FF8007FFC00783E00300F0000070000070001FF000F
+FF003FFF007F0700780700F00700E00700E00700F00F00783F007FFFF03FFBF00FE1F014
+147D9318>97 D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF
+800FFFC00FE3E00F80F00F00700F00780E00380E00380E00380E00380E00380F00380F00
+780F00700F80F00FC3E00FFFC00EFF80067E00151C809B18>I<01FE0007FF001FFF803F
+07803C0300780000700000F00000E00000E00000E00000E00000F000007000007801C03C
+01C03F07C01FFF8007FF0001FC0012147D9318>I<001F80003F80001F80000380000380
+00038000038000038003F3800FFB801FFF803E1F80780F80700780F00780E00380E00380
+E00380E00380E00380E00780F00780700780780F803E3F801FFFF00FFBF803E3F0151C7E
+9B18>I<03F0000FFC001FFE003E1F00780780700380F003C0E001C0E001C0FFFFC0FFFF
+C0FFFFC0F000007000007801C03C01C03F07C01FFF8007FF0001FC0012147D9318>I<00
+1FC0007FE000FFE001F1E001C0C001C00001C00001C0007FFFC0FFFFC0FFFFC001C00001
+C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
+C0007FFF007FFF007FFF00131C7F9B18>I<7E0000FE00007E00000E00000E00000E0000
+0E00000E00000E3F000EFF800FFFC00FE1E00F80E00F00E00F00E00E00E00E00E00E00E0
+0E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B18>
+104 D<03800007C00007C00007C0000380000000000000000000000000007FC000FFC000
+7FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18>I<01F0000FFE001FFF003E0F
+803803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07
+803E0F801FFF000FFE0001F00013147E9318>111 D<0FF7003FFF007FFF00F81F00E007
+00E00700F007007C00007FF0001FFC0007FE00001F00600780E00380F00380F00780FC0F
+00FFFF00FFFE00E7F80011147D9318>115 D<0180000380000380000380000380007FFF
+C0FFFFC0FFFFC00380000380000380000380000380000380000380000380000380000380
+400380E00380E00381E003C3C001FFC000FF80007E0013197F9818>I<7E07E0FE0FE07E
+07E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E
+00E00E01E00F07E007FFFC03FFFE01FCFC1714809318>I E /Fl
+1 14 df<0001FE0000000FFFC000003E01F00000F0003C0001C0000E0003800007000700
+0003800E000001C00C000000C01C000000E0380000007030000000303000000030700000
+003860000000186000000018E00000001CC00000000CC00000000CC00000000CC0000000
+0CC00000000CC00000000CC00000000CC00000000CC00000000CE00000001C6000000018
+600000001870000000383000000030300000003038000000701C000000E00C000000C00E
+000001C00700000380038000070001C0000E0000F0003C00003E01F000000FFFC0000001
+FE0000262B7DA02D>13 D E /Fm 24 119 df<001F83E000F06E3001C078780380F87803
+00F03007007000070070000700700007007000070070000700700007007000FFFFFF8007
+007000070070000700700007007000070070000700700007007000070070000700700007
+00700007007000070070000700700007007000070070000700700007007000070070007F
+E3FF001D20809F1B>11 D<70F8FCFC74040404080810102040060E7C840D>44
+D<70F8F8F87005057C840D>46 D<018003800F80F3800380038003800380038003800380
+0380038003800380038003800380038003800380038003800380038003800380038007C0
+FFFE0F1E7C9D17>49 D<03F0000C1C00100E00200700400780800780F007C0F803C0F803
+C0F803C02007C00007C0000780000780000F00000E00001C0000380000700000600000C0
+000180000300000600400C00401800401000803FFF807FFF80FFFF80121E7E9D17>I<03
+F0000C1C00100E00200F00780F80780780780780380F80000F80000F00000F00000E0000
+1C0000380003F000003C00000E00000F000007800007800007C02007C0F807C0F807C0F8
+07C0F00780400780400F00200E001C3C0003F000121F7E9D17>I<1803001FFE001FFC00
+1FF8001FE00010000010000010000010000010000010000011F000161C00180E00100700
+1007800003800003800003C00003C00003C07003C0F003C0F003C0E00380400380400700
+200600100E000C380003E000121F7E9D17>53 D<03F0000E18001C0C0038060038070070
+0700700380F00380F00380F003C0F003C0F003C0F003C0F003C07007C07007C03807C018
+0BC00E13C003E3C0000380000380000380000700300700780600780E00700C0020180010
+70000FC000121F7E9D17>57 D<FFFFE0000F80380007801E0007801F0007800F0007800F
+8007800F8007800F8007800F8007800F8007800F0007801F0007801E0007803C0007FFF0
+0007803C0007801E0007800F0007800F8007800780078007C0078007C0078007C0078007
+C0078007C00780078007800F8007800F0007801F000F803C00FFFFF0001A1F7E9E20>66
+D<FFFC0FFC0FC003E0078001800780010007800200078004000780080007801000078020
+000780400007808000078100000783000007878000078F80000793C0000791E00007A1E0
+0007C0F0000780F0000780780007803C0007803C0007801E0007801E0007800F00078007
+8007800780078007C00FC007E0FFFC3FFC1E1F7E9E23>75 D<FF80001FF80F80001F8007
+80001F0005C0002F0005C0002F0005C0002F0004E0004F0004E0004F000470008F000470
+008F000470008F000438010F000438010F000438010F00041C020F00041C020F00041C02
+0F00040E040F00040E040F00040E040F000407080F000407080F000407080F000403900F
+000403900F000401E00F000401E00F000401E00F000E00C00F001F00C01F80FFE0C1FFF8
+251F7E9E2A>77 D<FF803FF807C007C007C0038005E0010005E0010004F0010004780100
+04780100043C0100043C0100041E0100040F0100040F010004078100040781000403C100
+0401E1000401E1000400F1000400F1000400790004003D0004003D0004001F0004001F00
+04000F0004000700040007000E0003001F000300FFE001001D1F7E9E22>I<0E0000FE00
+000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E000EC3
+800F01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E00780E00780E00
+700E00700E00E00F00E00D01C00CC300083E0015207F9F19>98 D<03F80E0C1C1E381E38
+0C70007000F000F000F000F000F000F00070007000380138011C020E0C03F010147E9314
+>I<03F0000E1C001C0E00380700380700700700700380F00380F00380FFFF80F00000F0
+0000F000007000007000003800801800800C010007060001F80011147F9314>101
+D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
+000E3E000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
+C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16207F9F19>104
+D<1C001E003E001E001C000000000000000000000000000E007E000E000E000E000E000E
+000E000E000E000E000E000E000E000E000E000E000E000E00FFC00A1F809E0C>I<0E1F
+01F000FE618618000E81C81C000F00F00E000F00F00E000E00E00E000E00E00E000E00E0
+0E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E
+000E00E00E000E00E00E000E00E00E000E00E00E00FFE7FE7FE023147F9326>109
+D<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000
+F0F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>111
+D<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E000E000E000E
+000E00FFE00F147F9312>114 D<1F9030704030C010C010C010E00078007F803FE00FF0
+0070803880188018C018C018E030D0608F800D147E9312>I<020002000200060006000E
+000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E080E080E080E
+080E080610031001E00D1C7F9B12>I<0E01C0FE1FC00E01C00E01C00E01C00E01C00E01
+C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603C0030D
+C001F1FC16147F9319>I<FF83F81E01E01C00C00E00800E00800E008007010007010003
+820003820003820001C40001C40001EC0000E80000E80000700000700000700000200015
+147F9318>I E /Fn 76 123 df<001F83E000706E3000C07C780180F8780380F0780700
+70000700700007007000070070000700700007007000070070000700700007007000FFFF
+FFC007007000070070000700700007007000070070000700700007007000070070000700
+700007007000070070000700700007007000070070000700700007007000070070000700
+7000070078007FE3FF801D2380A21C>11 D<001FC0000070200000C01000018038000380
+780007007800070030000700000007000000070000000700000007000000070000000700
+0000FFFFF800070078000700380007003800070038000700380007003800070038000700
+380007003800070038000700380007003800070038000700380007003800070038000700
+380007003800070038007FE1FF80192380A21B>I<001FD8000070380000C07800018078
+000380780007003800070038000700380007003800070038000700380007003800070038
+0007003800FFFFF800070038000700380007003800070038000700380007003800070038
+000700380007003800070038000700380007003800070038000700380007003800070038
+000700380007003800070038007FF3FF80192380A21B>I<000FC07F00007031C08000E0
+0B004001801E00E003803E01E007003C01E007001C00C007001C000007001C000007001C
+000007001C000007001C000007001C000007001C0000FFFFFFFFE007001C01E007001C00
+E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00E0
+07001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007001C00E007
+001C00E007001C00E007001C00E07FF1FFCFFE272380A229>I<7038F87CFC7EFC7E743A
+04020402040204020804080410081008201040200F0F7EA218>34
+D<70F8FCFC7404040404080810102040060F7CA20E>39 D<002000400080010003000600
+04000C000C00180018003000300030007000600060006000E000E000E000E000E000E000
+E000E000E000E000E000E000E000E0006000600060007000300030003000180018000C00
+0C0004000600030001000080004000200B327CA413>I<800040002000100018000C0004
+00060006000300030001800180018001C000C000C000C000E000E000E000E000E000E000
+E000E000E000E000E000E000E000E000C000C000C001C001800180018003000300060006
+0004000C00180010002000400080000B327DA413>I<0001800000018000000180000001
+800000018000000180000001800000018000000180000001800000018000000180000001
+8000000180000001800000018000FFFFFFFEFFFFFFFE0001800000018000000180000001
+800000018000000180000001800000018000000180000001800000018000000180000001
+80000001800000018000000180001F227D9C26>43 D<70F8FCFC74040404040808101020
+40060F7C840E>I<FFE0FFE00B027F8B10>I<70F8F8F87005057C840E>I<000180000180
+000380000300000300000700000600000600000E00000C00000C00001C00001800001800
+00180000380000300000300000700000600000600000E00000C00000C00001C000018000
+0180000380000300000300000700000600000600000E00000C00000C00000C00001C0000
+180000180000380000300000300000700000600000600000E00000C00000C0000011317D
+A418>I<01F000071C000C06001803003803803803807001C07001C07001C07001C0F001
+E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001
+E0F001E07001C07001C07001C07803C03803803803801C07000C0600071C0001F0001322
+7EA018>I<008003800F80F3800380038003800380038003800380038003800380038003
+8003800380038003800380038003800380038003800380038003800380038007C0FFFE0F
+217CA018>I<03F0000C1C001007002007804003C04003C08003E0F003E0F801E0F801E0
+F801E02003E00003E00003C00003C0000780000700000E00001C00001800003000006000
+00C0000180000100000200200400200800201800603000403FFFC07FFFC0FFFFC013217E
+A018>I<03F8000C1E001007002007804007C07807C07803C07807C03807C00007800007
+80000700000F00000E0000380003F000001C00000F000007800007800003C00003C00003
+E02003E07003E0F803E0F803E0F003C04003C0400780200780100F000C1C0003F0001322
+7EA018>I<000200000600000E00000E00001E00001E00002E00004E00004E00008E0000
+8E00010E00020E00020E00040E00040E00080E00100E00100E00200E00200E00400E0080
+0E00FFFFF8000E00000E00000E00000E00000E00000E00000E00001F0001FFF015217FA0
+18>I<1000801E07001FFF001FFE001FF80013E000100000100000100000100000100000
+10000010F800130E001407001803801003800001C00001C00001E00001E00001E00001E0
+7001E0F001E0F001E0E001C08001C04003C04003802007001006000C1C0003F00013227E
+A018>I<007E0001C1000300800601C00E03C01C03C01801803800003800007800007000
+00700000F0F800F30C00F40600F40300F80380F801C0F001C0F001E0F001E0F001E0F001
+E0F001E07001E07001E07001E03801C03801C01803801C03000C0600070C0001F0001322
+7EA018>I<4000006000007FFFE07FFFC07FFFC0400080C0010080010080020080020000
+040000080000080000100000300000200000600000600000600000E00000C00000C00001
+C00001C00001C00001C00003C00003C00003C00003C00003C00003C00003C00003C00001
+800013237DA118>I<01F800060E000803001001802001802000C06000C06000C06000C0
+7000C07801803E01003F02001FC4000FF80003F80003FC00067F00083F80100F803007C0
+6001C06000E0C000E0C00060C00060C00060C000606000406000C03000801803000E0E00
+03F00013227EA018>I<01F000060C000C0600180700380380700380700380F001C0F001
+C0F001C0F001E0F001E0F001E0F001E0F001E07001E07003E03803E01805E00C05E00619
+E003E1E00001C00001C00001C0000380000380300300780700780600700C002018001030
+000FC00013227EA018>I<70F8F8F870000000000000000000000070F8F8F87005157C94
+0E>I<70F8F8F870000000000000000000000070F8F8F87808080808101010204040051F
+7C940E>I<0001800000018000000180000003C0000003C0000003C0000005E0000005E0
+00000DF0000008F0000008F0000010F800001078000010780000203C0000203C0000203C
+0000401E0000401E0000401E0000800F0000800F0000FFFF000100078001000780030007
+C0020003C0020003C0040003E0040001E0040001E00C0000F00C0000F03E0001F8FF800F
+FF20237EA225>65 D<FFFFF8000F800E0007800780078003C0078003E0078001E0078001
+F0078001F0078001F0078001F0078001F0078001E0078003E0078007C007800F8007803E
+0007FFFE0007800780078003C0078001E0078001F0078000F0078000F8078000F8078000
+F8078000F8078000F8078000F8078001F0078001F0078003E0078007C00F800F00FFFFFC
+001D227EA123>I<0007E0100038183000E0063001C00170038000F0070000F00E000070
+1E0000701C0000303C0000303C0000307C0000107800001078000010F8000000F8000000
+F8000000F8000000F8000000F8000000F8000000F800000078000000780000107C000010
+3C0000103C0000101C0000201E0000200E000040070000400380008001C0010000E00200
+00381C000007E0001C247DA223>I<FFFFF0000F801E0007800700078003C0078001C007
+8000E0078000F007800078078000780780007C0780003C0780003C0780003C0780003E07
+80003E0780003E0780003E0780003E0780003E0780003E0780003E0780003E0780003C07
+80003C0780007C0780007807800078078000F0078000E0078001E0078003C0078007000F
+801E00FFFFF8001F227EA125>I<FFFFFFC00F8007C0078001C0078000C0078000400780
+004007800060078000200780002007800020078020200780200007802000078020000780
+60000780E00007FFE0000780E00007806000078020000780200007802000078020080780
+000807800008078000100780001007800010078000300780003007800070078000E00F80
+03E0FFFFFFE01D227EA121>I<FFFFFFC00F8007C0078001C0078000C007800040078000
+400780006007800020078000200780002007802020078020000780200007802000078060
+000780E00007FFE0000780E0000780600007802000078020000780200007802000078000
+0007800000078000000780000007800000078000000780000007800000078000000FC000
+00FFFE00001B227EA120>I<0007F008003C0C1800E0021801C001B8038000F807000078
+0F0000381E0000381E0000183C0000183C0000187C0000087800000878000008F8000000
+F8000000F8000000F8000000F8000000F8000000F8000000F8001FFF780000F878000078
+7C0000783C0000783C0000781E0000781E0000780F00007807000078038000B801C000B8
+00E00318003C0C080007F00020247DA226>I<FFFC3FFF0FC003F0078001E0078001E007
+8001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E007
+8001E0078001E0078001E007FFFFE0078001E0078001E0078001E0078001E0078001E007
+8001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E0078001E007
+8001E00FC003F0FFFC3FFF20227EA125>I<FFFC0FC00780078007800780078007800780
+078007800780078007800780078007800780078007800780078007800780078007800780
+078007800780078007800FC0FFFC0E227EA112>I<03FFF0001F00000F00000F00000F00
+000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
+000F00000F00000F00000F00000F00000F00000F00000F00000F00700F00F80F00F80F00
+F80E00F01E00401C0020380018700007C00014237EA119>I<FFFC03FF000FC000F80007
+800060000780004000078000800007800100000780020000078004000007800800000780
+10000007802000000780400000078080000007818000000783C000000787E000000789E0
+00000788F000000790F0000007A078000007C03C000007803C000007801E000007800F00
+0007800F00000780078000078007C000078003C000078001E000078001E000078000F000
+078000F8000FC000FC00FFFC07FF8021227EA126>I<FFFE00000FC00000078000000780
+000007800000078000000780000007800000078000000780000007800000078000000780
+000007800000078000000780000007800000078000000780000007800000078000000780
+000007800080078000800780008007800080078001800780018007800100078003000780
+030007800F000F803F00FFFFFF0019227EA11E>I<FFC00003FF0FC00003F007C00003E0
+05E00005E005E00005E004F00009E004F00009E004F00009E004780011E004780011E004
+780011E0043C0021E0043C0021E0043C0021E0041E0041E0041E0041E0040F0081E0040F
+0081E0040F0081E004078101E004078101E004078101E00403C201E00403C201E00401E4
+01E00401E401E00401E401E00400F801E00400F801E00400F801E004007001E00E007001
+E01F007003F0FFE0203FFF28227EA12D>I<FF8007FF07C000F807C0007005E0002004F0
+002004F0002004780020047C0020043C0020041E0020041F0020040F0020040780200407
+80200403C0200401E0200401E0200400F0200400F8200400782004003C2004003E200400
+1E2004000F2004000F20040007A0040003E0040003E0040001E0040001E0040000E00E00
+00601F000060FFE0002020227EA125>I<000FE00000783C0000E00E0003C00780078003
+C00F0001E00E0000E01E0000F03C0000783C0000787C00007C7C00007C7800003C780000
+3CF800003EF800003EF800003EF800003EF800003EF800003EF800003EF800003EF80000
+3E7800003C7C00007C7C00007C3C0000783E0000F81E0000F00F0001E00F0001E0078003
+C003C0078000E00E0000783C00000FE0001F247DA226>I<FFFFF0000F803C0007800F00
+07800780078007C0078003C0078003E0078003E0078003E0078003E0078003E0078003E0
+078003C0078007C00780078007800F0007803C0007FFF000078000000780000007800000
+078000000780000007800000078000000780000007800000078000000780000007800000
+07800000078000000FC00000FFFC00001B227EA121>I<FFFFE000000F803C000007800E
+00000780078000078007C000078003C000078003E000078003E000078003E000078003E0
+00078003E000078003C000078007C000078007800007800E000007803C000007FFE00000
+0780700000078038000007801C000007801E000007800E000007800F000007800F000007
+800F000007800F000007800F800007800F800007800F800007800F808007800FC0800780
+07C0800FC003C100FFFC01E2000000007C0021237EA124>82 D<03F0200C0C6018026030
+01E07000E0600060E00060E00060E00020E00020E00020F00000F000007800007F00003F
+F0001FFE000FFF0003FF80003FC00007E00001E00000F00000F000007080007080007080
+0070800070C00060C00060E000C0F000C0C80180C6070081FC0014247DA21B>I<7FFFFF
+F87807807860078018400780084007800840078008C007800C8007800480078004800780
+048007800400078000000780000007800000078000000780000007800000078000000780
+000007800000078000000780000007800000078000000780000007800000078000000780
+0000078000000780000007800000078000000FC00003FFFF001E227EA123>I<FFFC07FF
+0FC000F80780007007800020078000200780002007800020078000200780002007800020
+078000200780002007800020078000200780002007800020078000200780002007800020
+078000200780002007800020078000200780002007800020078000200380004003C00040
+03C0004001C0008000E000800060010000300600001C08000003F00020237EA125>I<FF
+F03FFC03FE1F8007E000F80F0003C000700F0003C000200F0003C00020078001E0004007
+8001E00040078001E0004003C002F0008003C002F0008003C002F0008001E00478010001
+E00478010001E00478010000F0083C020000F0083C020000F0083C020000F8183E060000
+78101E04000078101E0400007C101E0400003C200F0800003C200F0800003C200F080000
+1E40079000001E40079000001E40079000000F8003E000000F8003E000000F8003E00000
+070001C00000070001C00000070001C0000003000180000002000080002F237FA132>87
+D<FFF0007FC01F80001F000F80000C00078000080007C000180003E000100001E0002000
+01F000200000F000400000F800C000007C008000003C010000003E010000001E02000000
+1F040000000F84000000078800000007D800000003D000000003E000000001E000000001
+E000000001E000000001E000000001E000000001E000000001E000000001E000000001E0
+00000001E000000001E000000001E000000003E00000003FFF000022227FA125>89
+D<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0FEFE07317BA40E>91 D<0804100820102010402040208040
+804080408040B85CFC7EFC7E7C3E381C0F0F7AA218>I<FEFE0606060606060606060606
+06060606060606060606060606060606060606060606060606060606060606060606FEFE
+07317FA40E>I<0FE0001838003C0C003C0E0018070000070000070000070000FF0007C7
+001E07003C0700780700700700F00708F00708F00708F00F087817083C23900FC1E01515
+7E9418>97 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E0000
+0E00000E00000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E
+0E001E0E001E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0
+083F0017237FA21B>I<01FE000703000C07801C0780380300780000700000F00000F000
+00F00000F00000F00000F00000F000007000007800403800401C00800C010007060001F8
+0012157E9416>I<0000E0000FE00001E00000E00000E00000E00000E00000E00000E000
+00E00000E00000E00000E00000E001F8E00704E00C02E01C01E03800E07800E07000E0F0
+00E0F000E0F000E0F000E0F000E0F000E0F000E07000E07800E03800E01801E00C02E007
+0CF001F0FE17237EA21B>I<01FC000707000C03801C01C03801C07801E07000E0F000E0
+FFFFE0F00000F00000F00000F00000F000007000007800203800201C00400E0080070300
+00FC0013157F9416>I<003C00C6018F038F030F07000700070007000700070007000700
+0700FFF80700070007000700070007000700070007000700070007000700070007000700
+0700070007807FF8102380A20F>I<00007001F198071E180E0E181C07001C07003C0780
+3C07803C07803C07801C07001C07000E0E000F1C0019F000100000100000180000180000
+1FFE000FFFC00FFFE03800F0600030400018C00018C00018C000186000306000303800E0
+0E038003FE0015217F9518>I<0E0000FE00001E00000E00000E00000E00000E00000E00
+000E00000E00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00
+700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00
+700E00700E0070FFE7FF18237FA21B>I<1C001E003E001E001C00000000000000000000
+000000000000000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E
+000E000E000E000E000E00FFC00A227FA10E>I<01C003E003E003E001C0000000000000
+0000000000000000000001E00FE001E000E000E000E000E000E000E000E000E000E000E0
+00E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F18061803E00
+0B2C82A10F>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00
+000E00000E00000E00000E00000E03FC0E01F00E01C00E01800E02000E04000E08000E10
+000E38000EF8000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00F00E00
+F8FFE3FE17237FA21A>I<0E00FE001E000E000E000E000E000E000E000E000E000E000E
+000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
+000E000E000E00FFE00B237FA20E>I<0E1FC07F00FE60E183801E807201C00F003C00E0
+0F003C00E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E
+003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E00
+3800E00E003800E0FFE3FF8FFE27157F942A>I<0E1F80FE60C01E80E00F00700F00700E
+00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E
+00700E00700E0070FFE7FF18157F941B>I<01FC000707000C01801800C03800E0700070
+700070F00078F00078F00078F00078F00078F00078F000787000707800F03800E01C01C0
+0E038007070001FC0015157F9418>I<0E1F00FE61C00E80600F00700E00380E003C0E00
+1C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00380F00700E80
+E00E41C00E3F000E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE0
+00171F7F941B>I<01F8200704600E02601C01603801E07800E07800E0F000E0F000E0F0
+00E0F000E0F000E0F000E0F000E07000E07800E03801E01C01E00C02E0070CE001F0E000
+00E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE171F7E941A>I<
+0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E000E00
+0E000F00FFF010157F9413>I<0F8830786018C018C008C008E008F0007F803FE00FF001
+F8003C801C800C800CC00CC008E018D0308FC00E157E9413>I<02000200020002000600
+060006000E001E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E04
+0E040E040E040E040E040708030801F00E1F7F9E13>I<0E0070FE07F01E00F00E00700E
+00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E
+00F00E00F006017003827800FC7F18157F941B>I<FFC1FE1E00780E00300E00200E0020
+07004007004003808003808003808001C10001C10000E20000E20000E200007400007400
+00380000380000380000100017157F941A>I<FF8FF8FF1E01E03C1C01C0180E01C0180E
+01E0100E01E01007026020070270200702702003843040038438400384384001C8188001
+C81C8001C81C8000F00D0000F00F0000F00F0000600600006006000060060020157F9423
+>I<FF83FE1F01F00E00C007008003810003830001C20000E40000780000780000380000
+3C00004E00008E000187000103800201C00401E00C00E03E01F0FF03FE17157F941A>I<
+FFC1FE1E00780E00300E00200E002007004007004003808003808003808001C10001C100
+00E20000E20000E200007400007400003800003800003800001000001000002000002000
+002000004000F04000F08000F180004300003C0000171F7F941A>I<3FFFC03803803007
+80200700600E00401C00403C0040380000700000E00001E00001C0000380400700400F00
+400E00C01C0080380080780180700780FFFF8012157F9416>I E
+/Fo 49 123 df<FFFFF0FFFFF0FFFFF0FFFFF0FFFFF0FFFFF0FFFFF014077F921B>45
+D<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B0B7A8A17>I<000000380000
+007C0000007C000000FC000000F8000000F8000001F8000001F0000001F0000003F00000
+03E0000007E0000007C0000007C000000FC000000F8000000F8000001F8000001F000000
+3F0000003E0000003E0000007E0000007C0000007C000000FC000000F8000001F8000001
+F0000001F0000003F0000003E0000003E0000007E0000007C000000FC000000F8000000F
+8000001F8000001F0000001F0000003F0000003E0000003E0000007E0000007C000000FC
+000000F8000000F8000001F8000001F0000001F0000003F0000003E0000007E0000007C0
+000007C000000FC000000F8000000F8000001F8000001F0000003F0000003E0000003E00
+00007E0000007C0000007C000000FC000000F8000000F8000000700000001E487BB529>
+I<000FFC0000007FFF800001FFFFE00003FC0FF00007F003F8000FE001FC000FE001FC00
+1FC000FE003FC000FF003FC000FF003F80007F007F80007F807F80007F807F80007F807F
+80007F80FF80007FC0FF80007FC0FF80007FC0FF80007FC0FF80007FC0FF80007FC0FF80
+007FC0FF80007FC0FF80007FC0FF80007FC0FF80007FC0FF80007FC0FF80007FC0FF8000
+7FC0FF80007FC0FF80007FC07F80007F807F80007F807F80007F807F80007F803F80007F
+003FC000FF003FC000FF001FC000FE001FE001FE000FE001FC0007F807F80003FC0FF000
+01FFFFE000007FFF8000000FFC0000222E7DAD29>I<0001E0000003E000000FE000007F
+E0001FFFE000FFFFE000FFBFE000E03FE000003FE000003FE000003FE000003FE000003F
+E000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003F
+E000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003F
+E000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003FE000003F
+E000003FE000003FE000003FE0007FFFFFF07FFFFFF07FFFFFF01C2E7AAD29>I<003FF0
+0001FFFE0007FFFF801FC07FE03F003FF07C001FF87F000FFCFF8007FEFFC007FEFFC003
+FFFFC003FFFFC003FFFFC003FF7F8003FF3F0003FF000003FF000003FF000007FE000007
+FE000007FC00000FF800001FF800001FF000003FE000007F8000007F000000FE000001FC
+000003F0000007E000000FC007001F8007003E0007007C000F00F8000E01F0000E01E000
+1E03FFFFFE07FFFFFE0FFFFFFE1FFFFFFE3FFFFFFE7FFFFFFCFFFFFFFCFFFFFFFCFFFFFF
+FC202E7CAD29>I<000FFC0000007FFF800001F01FE00003C00FF00007800FF8000FE007
+FC001FF007FE001FF807FE001FF807FE001FF807FE001FF807FE001FF807FE000FF007FE
+0007E007FC0001800FFC0000000FF80000000FF80000001FF00000003FE00000007F8000
+001FFE0000001FFC0000001FFF800000001FF00000000FF800000007FE00000003FF0000
+0003FF00000001FF80000001FF800E0001FFC03F8001FFC07FC001FFC0FFE001FFC0FFE0
+01FFC0FFE001FFC0FFE001FFC0FFE001FF80FFE003FF807FC003FF007F0007FE003F000F
+FC001FE01FF80007FFFFE00001FFFF8000001FFC0000222E7DAD29>I<00000078000000
+00F800000001F800000003F800000007F800000007F80000000FF80000001FF80000003F
+F80000007FF800000077F8000000F7F8000001E7F8000003C7F800000787F800000707F8
+00000F07F800001E07F800003C07F800007807F800007007F80000F007F80001E007F800
+03C007F800078007F8000F0007F8000F0007F8001E0007F8003C0007F800780007F800F0
+0007F800FFFFFFFFF0FFFFFFFFF0FFFFFFFFF000000FF80000000FF80000000FF8000000
+0FF80000000FF80000000FF80000000FF80000000FF80000000FF800000FFFFFF0000FFF
+FFF0000FFFFFF0242E7EAD29>I<0C0000380FC003F80FFFFFF80FFFFFF00FFFFFE00FFF
+FFC00FFFFF800FFFFF000FFFFC000FFFF0000FFF00000F0000000F0000000F0000000F00
+00000F0000000F0000000F0000000F1FF8000FFFFF000FFFFFC00FF01FE00F800FF00F00
+07F80E0007FC000003FE000003FE000003FE000003FF000003FF1E0003FF7F8003FFFF80
+03FFFFC003FFFFC003FFFFC003FFFF8003FEFF8003FE7F0007FC7C0007FC3C000FF81E00
+1FF00FC07FE007FFFF8001FFFE00003FE000202E7CAD29>I<00007F80000007FFF00000
+1FC07800007F001C0000FE001E0001FC007E0003F800FF0007F001FF000FF001FF001FE0
+01FF001FE001FF003FE000FE003FE0007C007FC00000007FC00000007FC00000007FC000
+0000FFC3FF8000FFC7FFE000FFCFBFF000FFDC03FC00FFF803FE00FFF001FF00FFF000FF
+00FFE000FF80FFE000FF80FFE000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0
+7FC000FFC07FC000FFC07FC000FFC07FC000FFC03FC000FFC03FC000FF801FE000FF801F
+E000FF000FE001FF000FF001FE0007F803FC0001FC0FF80000FFFFE000003FFF80000007
+FC0000222E7DAD29>I<38000000003E000000003FFFFFFFC03FFFFFFFC03FFFFFFFC03F
+FFFFFF807FFFFFFF007FFFFFFE007FFFFFFC007FFFFFF8007FFFFFF800780001F0007000
+03E000700007C000F0000F8000E0000F0000E0001F0000E0003E000000007C00000000F8
+00000000F800000001F000000003F000000003F000000007E000000007E00000000FE000
+00000FE00000000FE00000001FE00000001FC00000001FC00000003FC00000003FC00000
+003FC00000003FC00000003FC00000007FC00000007FC00000007FC00000007FC0000000
+7FC00000007FC00000007FC00000007FC00000007FC00000003F800000001F0000002230
+7BAF29>I<0007FC0000003FFF800000F80FE00001E003F00003C001F80007C000FC000F
+8000FC000F80007E001F80007E001F80007E001FC0007E001FE0007E001FF0007E001FF8
+00FE001FFE00FC001FFF81FC000FFFE3F8000FFFFFF00007FFFFC00003FFFF800003FFFF
+C00000FFFFF000007FFFF80001FFFFFC0007F7FFFE000FE1FFFF001FC0FFFF803F803FFF
+807F000FFF807E0003FFC0FE0000FFC0FC00007FC0FC00003FC0FC00001FC0FC00000FC0
+FC00000FC0FC00000F80FE00000F807E00001F807F00001F003F80003E001FC0007C000F
+F803F80003FFFFE00000FFFF8000001FFC0000222E7DAD29>I<000FFC0000007FFF0000
+01FC0FC00007F807F0000FF003F8001FE001FC003FE001FC003FC001FE007FC000FF007F
+C000FF00FFC000FF00FFC000FF80FFC000FF80FFC000FF80FFC000FF80FFC000FFC0FFC0
+00FFC0FFC000FFC0FFC000FFC07FC001FFC07FC001FFC07FC001FFC03FE003FFC01FE003
+FFC01FF007FFC00FF80EFFC003FF7CFFC001FFF8FFC0007FF0FFC0000000FF80000000FF
+80000000FF80000000FF800F8001FF001FC001FF003FE001FE003FE001FE003FE003FC00
+3FE003F8003FC007F8001F800FF0001E001FE0000F807F800007FFFE000001FFF8000000
+7FC00000222E7DAD29>I<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F00000000
+00000000000000000000000000000000001F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F
+801F000B207A9F17>I<0000007C0000000000007C000000000000FE000000000000FE00
+0000000000FE000000000001FF000000000001FF000000000003FF800000000003FF8000
+00000007FFC00000000007FFC00000000007FFC0000000000FFFE0000000000F7FE00000
+00001F7FF0000000001E3FF0000000001E3FF0000000003E3FF8000000003C1FF8000000
+007C1FFC00000000780FFC00000000780FFC00000000F80FFE00000000F007FE00000001
+F007FF00000001E003FF00000001E003FF00000003E003FF80000003C001FF80000007C0
+01FFC00000078000FFC00000078000FFC000000FFFFFFFE000000FFFFFFFE000001FFFFF
+FFF000001E00003FF000001E00003FF000003C00003FF800003C00001FF800007C00001F
+FC00007800000FFC00007800000FFC0000F0000007FE0000F0000007FE0001F0000007FF
+0003F8000003FF00FFFFC001FFFFFEFFFFC001FFFFFEFFFFC001FFFFFE37317DB03E>65
+D<000003FF80038000003FFFF007800001FFFFFC0F800007FF007F1F80001FF8000FFF80
+007FE00003FF8000FFC00001FF8001FF000000FF8003FE0000007F8007FE0000003F800F
+FC0000001F801FF80000001F801FF80000000F803FF80000000F803FF00000000F803FF0
+00000007807FF000000007807FF000000007807FE00000000000FFE00000000000FFE000
+00000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000
+000000FFE00000000000FFE00000000000FFE00000000000FFE000000000007FE0000000
+00007FF000000000007FF000000003803FF000000003803FF000000003803FF800000003
+801FF800000007801FF800000007000FFC0000000F0007FE0000000E0003FF0000001E00
+01FF0000003C0000FFC000007800007FE00001F000001FF80003E0000007FF003F800000
+01FFFFFE000000003FFFF80000000003FF80000031317BB03C>67
+D<FFFFFFFFFFF000FFFFFFFFFFF000FFFFFFFFFFF00000FFC0003FF00000FFC00007F800
+00FFC00003F80000FFC00000F80000FFC00000F80000FFC00000780000FFC00000780000
+FFC00000380000FFC00000380000FFC00000380000FFC000001C0000FFC007001C0000FF
+C007001C0000FFC007001C0000FFC00700000000FFC00700000000FFC00F00000000FFC0
+1F00000000FFC03F00000000FFFFFF00000000FFFFFF00000000FFFFFF00000000FFC03F
+00000000FFC01F00000000FFC00F00000000FFC00700000000FFC00700000000FFC00700
+038000FFC00700038000FFC00700038000FFC00000070000FFC00000070000FFC0000007
+0000FFC00000070000FFC000000F0000FFC000000F0000FFC000001E0000FFC000001E00
+00FFC000003E0000FFC000007E0000FFC00000FE0000FFC00003FE0000FFC0001FFE00FF
+FFFFFFFFFC00FFFFFFFFFFFC00FFFFFFFFFFFC0031317EB036>69
+D<FFFFFFC0FFFFFFC0FFFFFFC000FFC00000FFC00000FFC00000FFC00000FFC00000FFC0
+0000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC0
+0000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC0
+0000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC0
+0000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC0
+0000FFC000FFFFFFC0FFFFFFC0FFFFFFC01A317EB01F>73 D<FFFFFFF00000FFFFFFF000
+00FFFFFFF0000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000
+0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000
+0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000
+0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000
+0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000007000FFC00000
+7000FFC000007000FFC00000F000FFC00000F000FFC00000E000FFC00000E000FFC00001
+E000FFC00001E000FFC00003E000FFC00003E000FFC00007E000FFC0000FE000FFC0001F
+E000FFC0007FC000FFC003FFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC02C317EB032
+>76 D<00000FFE0000000000FFFFE000000007FFFFFC0000001FFC07FF0000003FE000FF
+800000FF80003FE00001FF00001FF00003FE00000FF80007FC000007FC0007FC000007FC
+000FF8000003FE001FF8000003FF001FF0000001FF003FF0000001FF803FF0000001FF80
+3FF0000001FF807FE0000000FFC07FE0000000FFC07FE0000000FFC0FFE0000000FFE0FF
+E0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0
+000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE0FFE0000000FFE07FE000
+0000FFC07FE0000000FFC07FF0000001FFC07FF0000001FFC03FF0000001FF803FF00000
+01FF801FF8000003FF001FF8000003FF000FFC000007FE000FFC000007FE0007FE00000F
+FC0003FF00001FF80001FF80003FF00000FFC0007FE000003FE000FF8000001FFC07FF00
+000007FFFFFC00000000FFFFE0000000000FFE00000033317BB03E>79
+D<FFFFFFFFE000FFFFFFFFFE00FFFFFFFFFF8000FFC001FFE000FFC0003FF000FFC0001F
+F800FFC0000FFC00FFC0000FFC00FFC00007FE00FFC00007FE00FFC00007FF00FFC00007
+FF00FFC00007FF00FFC00007FF00FFC00007FF00FFC00007FF00FFC00007FF00FFC00007
+FE00FFC00007FE00FFC0000FFC00FFC0000FFC00FFC0001FF800FFC0003FF000FFC001FF
+E000FFFFFFFF8000FFFFFFFE0000FFFFFFE00000FFC000000000FFC000000000FFC00000
+0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000
+0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000
+0000FFC000000000FFC000000000FFC000000000FFC0000000FFFFFFC00000FFFFFFC000
+00FFFFFFC0000030317EB038>I<001FF0038000FFFF078003FFFFCF8007F00FFF801FC0
+01FF801F80007F803F00003F807F00001F807E00000F807E00000F80FE00000780FE0000
+0780FF00000380FF00000380FF80000380FFC0000000FFE0000000FFFC0000007FFFE000
+007FFFFE00003FFFFFC0003FFFFFF0001FFFFFFC000FFFFFFE0007FFFFFF0001FFFFFF00
+007FFFFF80001FFFFFC00000FFFFC0000007FFC0000000FFE00000007FE00000003FE000
+00001FE0E000001FE0E000000FE0E000000FE0E000000FE0F000000FE0F000000FC0F800
+000FC0F800001F80FC00001F80FF00003F00FFC0007E00FFFC01FC00F9FFFFF800F03FFF
+E000E007FF000023317BB02E>83 D<3FFFFFFFFFFF003FFFFFFFFFFF003FFFFFFFFFFF00
+3FE00FFC01FF007F000FFC003F807E000FFC001F807C000FFC000F8078000FFC00078078
+000FFC00078070000FFC00038070000FFC00038070000FFC00038070000FFC000380E000
+0FFC0001C0E0000FFC0001C0E0000FFC0001C0E0000FFC0001C000000FFC00000000000F
+FC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC
+00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00
+000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000
+0000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC000000
+00000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000
+000FFC000000007FFFFFFF8000007FFFFFFF8000007FFFFFFF800032307DAF39>I<FFFF
+FFC003FFFFC0FFFFFFC003FFFFC0FFFFFFC003FFFFC000FFC0000007E00000FFC0000003
+C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FF
+C0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003
+C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FF
+C0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003
+C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FF
+C0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003
+C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FF
+C0000007C000007FC00000078000007FE00000078000003FE000000F8000003FE000000F
+0000001FF000001E0000000FF800003E00000007FC0000FC00000003FF0003F800000000
+FFE01FE0000000007FFFFFC0000000000FFFFF000000000000FFF00000003A317EB03F>
+I<FFFFFF0000FFFF80FFFFFF0000FFFF80FFFFFF0000FFFF8003FFC000000FF00001FFE0
+000007C00000FFE000000F800000FFF000000F8000007FF800001F0000003FF800001E00
+00001FFC00003E0000001FFE00007C0000000FFE00007800000007FF0000F800000007FF
+8001F000000003FF8001E000000001FFC003E000000001FFE007C000000000FFF0078000
+0000007FF00F80000000007FF81F00000000003FFC1E00000000001FFC3E00000000001F
+FE7C00000000000FFF78000000000007FFF8000000000007FFF0000000000003FFF00000
+00000001FFE0000000000001FFC0000000000000FFC0000000000000FFC0000000000000
+FFC0000000000000FFC0000000000000FFC0000000000000FFC0000000000000FFC00000
+00000000FFC0000000000000FFC0000000000000FFC0000000000000FFC0000000000000
+FFC0000000000000FFC0000000000000FFC0000000000000FFC0000000000000FFC00000
+00000000FFC00000000000FFFFFF8000000000FFFFFF8000000000FFFFFF80000039317E
+B03E>89 D<007FF8000003FFFF00000FFFFFC0001FE01FF0001FF007F8001FF007FC001F
+F003FC001FF001FE000FE001FE0007C001FE00010001FE00000001FE00000001FE000001
+FFFE00003FFFFE0001FFF1FE0007FE01FE001FF001FE003FE001FE007FC001FE007F8001
+FE00FF8001FE00FF0001FE00FF0001FE00FF0001FE00FF8003FE00FF8007FE007FC00FFE
+003FF03EFF001FFFF87FF807FFF03FF800FF801FF825207E9F28>97
+D<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800000007F8000000
+07F800000007F800000007F800000007F800000007F800000007F800000007F800000007
+F800000007F800000007F800000007F800000007F80FF00007F87FFE0007F9FFFF8007FF
+E03FE007FF000FF007FE0007F807FC0007F807F80003FC07F80003FE07F80003FE07F800
+01FE07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001
+FF07F80001FF07F80001FF07F80001FF07F80001FE07F80003FE07F80003FC07FC0003FC
+07FC0007F807FE000FF007FF801FE007E7E07FC007C1FFFF8007807FFE0007001FE00028
+327EB12E>I<0007FF00007FFFE001FFFFF803FC03FC07F807FC0FF007FC1FE007FC3FC0
+07FC3FC003F87FC001F07F800040FF800000FF800000FF800000FF800000FF800000FF80
+0000FF800000FF800000FF800000FF8000007FC000007FC000003FC0000E3FE0000E1FE0
+001E0FF0003C07F8007803FF01F001FFFFE0007FFF800007FC001F207D9F25>I<000000
+07E0000003FFE0000003FFE0000003FFE00000003FE00000001FE00000001FE00000001F
+E00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE00000001FE0
+0000001FE00000001FE00000001FE0000FF81FE0007FFF1FE001FFFFDFE003FE03FFE00F
+F800FFE01FF0007FE01FE0003FE03FC0001FE03FC0001FE07FC0001FE07F80001FE0FF80
+001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF80001FE0FF8000
+1FE0FF80001FE0FF80001FE07F80001FE07FC0001FE07FC0001FE03FC0003FE01FE0007F
+E01FE000FFE00FF001FFE007FC07DFF001FFFF9FFF007FFE1FFF000FF01FFF28327DB12E
+>I<000FFE0000007FFFC00001FFFFE00003FE0FF00007F801F8000FF000FC001FE000FE
+003FC0007F003FC0007F007FC0003F007F80003F807F80003F80FF80003F80FF80003F80
+FFFFFFFF80FFFFFFFF80FFFFFFFF80FF80000000FF80000000FF800000007F800000007F
+800000007FC00000003FC00003803FE00003801FE00007800FF0000F0007F8003E0003FF
+01FC0000FFFFF800003FFFE0000007FF000021207E9F26>I<0000FF000007FFC0001FFF
+F0007FC7F000FF0FF801FF0FF801FE0FF803FE0FF803FC0FF803FC07F003FC01C003FC00
+0003FC000003FC000003FC000003FC000003FC000003FC0000FFFFF800FFFFF800FFFFF8
+0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00
+0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00
+0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00007FFFF0
+007FFFF0007FFFF0001D327EB119>I<001FF007E000FFFE3FF003FFFFFFF807F83FF1F8
+0FE00FE1F81FE00FF1F81FC007F0603FC007F8003FC007F8003FC007F8003FC007F8003F
+C007F8003FC007F8003FC007F8001FC007F0001FE00FF0000FE00FE00007F83FC00007FF
+FF80000EFFFE00000E1FF000000E000000001E000000001E000000001F000000001F8000
+00001FFFFFC0000FFFFFF8000FFFFFFE0007FFFFFF8007FFFFFFC007FFFFFFE01FFFFFFF
+E03F00007FE07E00000FF0FE000007F0FC000003F0FC000003F0FC000003F0FE000007F0
+7E000007E07F00000FE03FC0003FC01FF801FF8007FFFFFE0000FFFFF000001FFF800025
+2F7E9F29>I<01F800000000FFF800000000FFF800000000FFF8000000000FF800000000
+07F80000000007F80000000007F80000000007F80000000007F80000000007F800000000
+07F80000000007F80000000007F80000000007F80000000007F80000000007F800000000
+07F80000000007F807F8000007F83FFF000007F87FFF800007F9F03FC00007FBC01FE000
+07FF801FE00007FF000FF00007FE000FF00007FC000FF00007FC000FF00007F8000FF000
+07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
+07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
+07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
+FFFFC1FFFF80FFFFC1FFFF80FFFFC1FFFF8029327DB12E>I<03C0000FF0001FF8001FF8
+001FF8001FFC001FF8001FF8001FF8000FF00003C0000000000000000000000000000000
+0000000000000000000001F800FFF800FFF800FFF8000FF80007F80007F80007F80007F8
+0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8
+0007F80007F80007F80007F80007F80007F80007F80007F800FFFF80FFFF80FFFF801133
+7DB217>I<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800000007
+F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8
+00000007F800000007F800000007F800000007F800000007F8007FFC07F8007FFC07F800
+7FFC07F8001FC007F8001F0007F8003E0007F800F80007F801F00007F803E00007F80780
+0007F81F000007F83E000007F87E000007F9FE000007FBFF000007FFFF800007FF7FC000
+07FE3FE00007FC1FF00007F01FF00007F00FF80007F007FC0007F003FE0007F001FF0007
+F001FF0007F000FF8007F0007FC007F0003FE007F0003FF0FFFF80FFFFFFFF80FFFFFFFF
+80FFFF28327EB12C>107 D<01F800FFF800FFF800FFF8000FF80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F800
+07F80007F80007F800FFFFC0FFFFC0FFFFC012327DB117>I<03F007F8000FF000FFF03F
+FF007FFE00FFF07FFF80FFFF00FFF1F03FC3E07F800FF3C01FE7803FC007F7801FEF003F
+C007F7000FFE001FE007FE000FFC001FE007FC000FF8001FE007FC000FF8001FE007F800
+0FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001F
+E007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F800
+0FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001F
+E007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F8000FF0001FE007F800
+0FF0001FE0FFFFC1FFFF83FFFFFFFFC1FFFF83FFFFFFFFC1FFFF83FFFF40207D9F45>I<
+03F007F80000FFF03FFF0000FFF07FFF8000FFF1F03FC0000FF3C01FE00007F7801FE000
+07F7000FF00007FE000FF00007FC000FF00007FC000FF00007F8000FF00007F8000FF000
+07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
+07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
+07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000FFFFC1FFFF80
+FFFFC1FFFF80FFFFC1FFFF8029207D9F2E>I<0007FE0000003FFFC00000FFFFF00003FC
+03FC0007F000FE000FE0007F001FC0003F803FC0003FC03FC0003FC07F80001FE07F8000
+1FE07F80001FE0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001F
+F0FF80001FF0FF80001FF07F80001FE07F80001FE07F80001FE03FC0003FC03FC0003FC0
+1FE0007F800FE0007F0007F801FE0003FE07FC0001FFFFF800003FFFC0000007FE000024
+207E9F29>I<01F80FF000FFF87FFE00FFF9FFFF80FFFFE07FE00FFF001FF007FE000FF8
+07FC0007F807F80007FC07F80003FE07F80003FE07F80003FE07F80001FF07F80001FF07
+F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F80001FF07F8
+0003FF07F80003FE07F80003FE07F80003FC07FC0007FC07FC000FF807FE000FF007FF80
+1FE007FFE07FC007F9FFFF8007F87FFE0007F81FE00007F800000007F800000007F80000
+0007F800000007F800000007F800000007F800000007F800000007F800000007F8000000
+07F8000000FFFFC00000FFFFC00000FFFFC00000282E7E9F2E>I<03F03F00FFF0FFC0FF
+F1FFF0FFF3C7F00FF78FF807F70FF807FE0FF807FE0FF807FC07F007FC03E007FC008007
+FC000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007
+F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80000FF
+FFE000FFFFE000FFFFE0001D207E9F22>114 D<00FF870007FFEF001FFFFF003F007F00
+7C001F007C000F00F8000F00F8000700FC000700FC000700FF000000FFF800007FFFC000
+7FFFF0003FFFFC001FFFFE0007FFFF0001FFFF80001FFF800000FFC000001FC0E0000FC0
+E0000FC0F00007C0F00007C0F80007C0FC000F80FE001F80FF803F00FFFFFE00F3FFF800
+E07FC0001A207D9F21>I<00380000380000380000380000380000780000780000780000
+F80000F80001F80003F80007F8001FF800FFFFFEFFFFFEFFFFFE07F80007F80007F80007
+F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007
+F80007F80707F80707F80707F80707F80707F80707F80707FC0F03FC0E03FE1E01FFFC00
+7FF8000FE0182E7EAD20>I<01F80003F000FFF801FFF000FFF801FFF000FFF801FFF000
+0FF8001FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
+07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
+07F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000
+07F8000FF00007F8001FF00007F8001FF00007F8003FF00007F8007FF00003FC00FFF000
+03FE03EFF80001FFFFCFFF80007FFF0FFF80000FFC0FFF8029207D9F2E>I<FFFF801FFE
+FFFF801FFEFFFF801FFE07F80003E007F80001C007FC0003C003FC00038003FE00078001
+FE00070001FF000F0000FF000E0000FF801E00007F801C00007FC03C00003FC03800003F
+E03800001FE07000001FE07000000FF0E000000FF0E000000FF9E0000007F9C0000007FF
+C0000003FF80000003FF80000001FF00000001FF00000000FE00000000FE000000007C00
+0000007C0000000038000027207E9F2C>I<FFFF0FFFF01FFEFFFF0FFFF01FFEFFFF0FFF
+F01FFE0FF0007E0003F00FF8007F0001E007F8007F0001C007F8003F8003C003FC003F80
+038003FC007FC0038003FE007FC0078001FE00FFC0070001FF00EFE00F0000FF00EFE00E
+0000FF01C7F00E00007F81C7F01C00007F83C7F01C00007FC383F83C00003FC383F83800
+003FC701FC3800001FE701FC7000001FEF01FC7000001FFE00FEF000000FFE00FEE00000
+0FFC007FE0000007FC007FC0000007FC007FC0000007F8003FC0000003F8003F80000003
+F0001F80000001F0001F00000001E0000F00000000E0000E000037207E9F3C>I<FFFF00
+FFFCFFFF00FFFCFFFF00FFFC07F8001F8003FC001E0001FE003C0000FF00780000FF80F0
+00007FC1E000003FC1E000001FE3C000000FF780000007FF00000007FE00000003FE0000
+0001FE00000000FF00000001FF80000001FFC0000003FFE00000079FF000000F0FF00000
+1E07F800003C03FC00007801FE0000F001FF0001E000FF8001E0007FC007E0003FC0FFF8
+01FFFEFFF801FFFEFFF801FFFE27207E9F2C>I<FFFF801FFEFFFF801FFEFFFF801FFE07
+F80003E007F80001C007FC0003C003FC00038003FE00078001FE00070001FF000F0000FF
+000E0000FF801E00007F801C00007FC03C00003FC03800003FE03800001FE07000001FE0
+7000000FF0E000000FF0E000000FF9E0000007F9C0000007FFC0000003FF80000003FF80
+000001FF00000001FF00000000FE00000000FE000000007C000000007C00000000380000
+0000380000000070000000007000000000F000003C00E000007E01E00000FF01C00000FF
+03800000FF07800000FF0F0000007A3E0000007FFC0000003FF80000000FC0000000272E
+7E9F2C>I<3FFFFFFC3FFFFFFC3FFFFFFC3FC00FF83E001FF03C003FF038003FE078007F
+C07800FF807001FF807003FF007003FE007007FC00000FFC00001FF800001FF000003FE0
+00007FE00E00FFC00E00FF800E01FF000E03FF000E07FE001E07FC001E0FF8001C1FF000
+3C3FF0007C3FE000FC7FC007FCFFFFFFFCFFFFFFFCFFFFFFFC1F207E9F25>I
+E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 909 315 a Fo(Ox:)519 375 y Fn(An)16 b(A)o(ttribute-Grammar)d
+(Compiling)i(System)681 435 y(based)i(on)f(Y)l(acc,)g(Lex,)f(and)i(C:)
+588 549 y Fo(T)-7 b(utorial)28 b(In)n(tro)r(duction)795
+660 y Fm(No)o(v)o(em)o(b)q(er)15 b(5,)g(1993)683 715
+y(c)670 716 y Fl(\015)p Fm(1992,)f(1993)g(Kurt)h(M.)g(Bisc)o(ho\013)699
+773 y Fk(bischoff@cs.iastate.edu)164 939 y Fo(1)83 b(In)n(tro)r
+(duction)164 1049 y Fj(Ox)19 b Fn(is)f(an)i(attribute-grammar)d
+(compiling)g(system)g(based)j(on)f(Y)l(acc,)g(Lex,)g(and)g(C.)164
+1109 y(Ox)248 1091 y Fi(1)288 1109 y Fn(generalizes)g(the)h(function)g
+(of)h(Y)l(acc)f(in)g(the)g(w)o(a)o(y)g(that)g(attribute)g(grammars)164
+1169 y(generalize)14 b(con)o(text-free)g(grammars.)20
+b(Ordinary)15 b(Y)l(acc)g(and)h(Lex)f(sp)q(eci\014cations)h(can)164
+1229 y(b)q(e)c(augmen)o(ted)f(with)h(de\014nitions)g(of)h(syn)o
+(thesized)e(and)h(inherited)f(attributes)h(written)164
+1289 y(in)17 b(C/C++)i(syn)o(tax.)25 b(F)l(rom)16 b(these)h(sp)q
+(eci\014cations,)h(Ox)f(generates)h(a)g(program)f(that)164
+1350 y(builds)e(and)h(decorates)g(attributed)f(parse)h(trees.)k(Ox)c
+(accepts)f(a)h(most)f(general)g(class)164 1410 y(of)20
+b(attribute)g(grammars.)32 b(The)20 b(user)g(can)g(sp)q(ecify)g
+(parse-tree)g(tra)o(v)o(ersals)f(for)i(easy)164 1470
+y(ordering)j(of)f(side)g(e\013ects)g(suc)o(h)g(as)i(co)q(de)e
+(generation.)43 b(Ox)23 b(handles)h(the)f(tedious)164
+1530 y(and)15 b(error-prone)g(details)g(of)g(writing)f(co)q(de)h(for)g
+(parse-tree)g(managemen)o(t,)d(so)j(its)g(use)164 1590
+y(eases)f(problems)f(of)h(securit)o(y)e(and)j(main)o(tainabilit)o(y)10
+b(asso)q(ciated)15 b(with)f(that)g(asp)q(ect)h(of)164
+1651 y(translator)i(dev)o(elopmen)o(t.)237 1711 y(Ox)11
+b(is)g(a)g(Y)l(acc/Lex/C/C++)h(prepro)q(cessor,)g(and)g(is)f(designed)g
+(to)g(bring)g(attribute)164 1771 y(grammars)17 b(to)j(the)e(mainstream)
+f(of)i(Unix-based)g(language)g(dev)o(elopmen)o(t.)26
+b(Ox)19 b(in-)164 1831 y(herits)h(all)g(of)g(the)g(familiar)f(syn)o
+(tax)h(and)h(seman)o(tics)d(of)j(Y)l(acc,)f(Lex,)h(and)g(C/C++.)164
+1891 y(This)e(mak)o(es)f(Ox)h(easily)f(accessible)g(to)i(language)g
+(designers,)g(dev)o(elop)q(ers,)e(and)i(ex-)164 1952
+y(p)q(erimen)o(ters)14 b(who)k(use)e(those)h(to)q(ols.)24
+b(It)16 b(also)h(pro)o(vides)f(a)i(ready)e(\\escap)q(e)h(hatc)o(h")g
+(in)164 2012 y(case)f(it)g(is)g(desired)g(to)g(return)g(to)h(an)g
+(ordinary)f(Y)l(acc)g(implem)o(e)o(n)o(tation.)237 2072
+y(This)g(pap)q(er)h(giv)o(es)e(an)h(o)o(v)o(erview)e(of)i(Ox)g(b)o(y)f
+(emphasizing)g(examples.)k(It)c(quic)o(kly)164 2132 y(familiarizes)22
+b(y)o(ou)k(with)f(the)g(Ox)g(features)g(that)h(are)f(most)g(imme)o
+(diately)d(useful.)164 2192 y(A)g(more)g(complete)f(reference,)h(the)h
+Fh(Ox)h(User)g(R)n(efer)n(enc)n(e)f(Manual)5 b Fn(,)25
+b(accompanies)164 2252 y(the)f(Ox)f(electronic)g(distribution,)i(whic)o
+(h)e(can)h(b)q(e)h(obtained)f(free)f(b)o(y)h(writing)g(to)164
+2313 y Fg(ox-request)o(@cs)o(.i)o(ast)o(ate)o(.ed)o(u)p
+Fn(.)p 164 2358 648 2 v 220 2388 a Ff(1)239 2403 y Fe(The)13
+b(name)f(\\Ox")g(comes)h(from)e(an)h(attempt)g(to)h(pronounce)h(an)f
+(acron)o(ym)e(for)i(\\An)f(A)o(ttribute-)164 2453 y(Gramma)o(r)g
+(Compiling)e(System")961 2599 y Fn(1)p eop
+%%Page: 2 2
+2 1 bop 237 307 a Fn(F)l(amiliarit)o(y)12 b(with)i(the)g(use)h(of)g(Y)l
+(acc,)f(Lex,)g(C,)h(and)g(Mak)o(e)f(is)g(su\016cien)o(t)g(to)h(under-)
+164 367 y(stand)i(this)f(tutorial)g(and)h(to)g(b)q(egin)f(using)h(Ox.)k
+(Some)15 b(prior)h(exp)q(osure)h(to)f(attribute)164 428
+y(grammars)g(is)g(helpful.)23 b(Readers)17 b(with)g(an)g(urge)g(for)h
+(details)e(and)i(hands-on)h(exp)q(eri-)164 488 y(ence)c(should)h(use)f
+(the)g(index)g(of)h(the)f(reference)f(man)o(ual)g(and)i(should)g(ha)o
+(v)o(e)f(access)h(to)164 548 y(a)d(system)e(on)i(whic)o(h)f(Ox)h(is)f
+(installed.)20 b(The)12 b(examples)f(herein)h(\(in)g(mac)o
+(hine-readable)164 608 y(form\))j(are)h(included)f(with)i(the)f(Ox)g
+(distribution.)164 775 y Fo(2)83 b(Con)n(v)n(erting)37
+b(a)h(Y)-7 b(acc/Lex)38 b(program)h(for)g(use)288 866
+y(with)27 b(Ox)164 975 y Fn(Probably)21 b(the)g(easiest)g(w)o(a)o(y)f
+(to)h(get)g(started)g(with)g(Ox)g(is)f(to)i(con)o(v)o(ert)d(an)j
+(existing)164 1036 y(Y)l(acc/Lex)382 1017 y Fi(2)417
+1036 y Fn(parser)16 b(or)g(translator.)22 b(This)16 b(can)g(usually)f
+(b)q(e)h(done)g(without)g(c)o(hanging)164 1096 y(the)f(Y)l(acc)f(and)i
+(Lex)e(co)q(de.)21 b(Ox)15 b(can)g(also)h(b)q(e)f(used)g(with)g(Y)l
+(acc-only)f(translators,)i(i.e.,)164 1156 y(those)h(with)f(lexical)e
+(analyzers)i(hand-co)q(ded)i(in)d(C)i(\(see)f(section)g(9.3\).)164
+1300 y Fd(2.1)70 b(A)22 b(parser)i(of)f(arithmetic)d(expressions)164
+1393 y Fn(As)13 b(a)g(running)g(example,)e(w)o(e)h(start)h(with)g(a)g
+(Y)l(acc/Lex)f(parser)i(for)f(in)o(teger)e(arithmetic)164
+1453 y(expressions.)237 1513 y(The)k(Lex)f(\014le)g(is)g(named)f
+Fg(scan.l)p Fn(,)f(and)j(sp)q(eci\014es)g(the)f(tok)o(ens)g(of)h(the)f
+(language)h(as)164 1573 y(digit)h(strings,)g(paren)o(theses,)g(and)g
+(four)h(binary)f(op)q(erators:)164 1677 y Fc(\045{)164
+1727 y(#include)k("y.tab.h")164 1777 y(\045})164 1876
+y(\045\045)164 1926 y([)i(\\n\\t\\f]+)172 b(;)164 1976
+y([0-9]+)260 b(return\(ICONST\);)164 2026 y([\(\)*/+\\-])194
+b(return\(yytext[0]\);)164 2076 y(\045\045)237 2190 y
+Fn(The)24 b(Y)l(acc)g(\014le)f(\(named)g Fg(gram.y)p
+Fn(\))f(sp)q(eci\014es)i(the)g(syn)o(tax.)45 b(The)24
+b(grammar)f(is)164 2250 y(disam)o(biguated)15 b(b)o(y)h(use)g(of)h(the)
+f Fg(\045left)e Fn(reserv)o(ed)h(w)o(ord:)p 164 2329
+648 2 v 220 2359 a Ff(2)239 2374 y Fe(Ox)d(is)g(designed)g(to)g(w)o
+(ork)g(also)f(with)g(Y)m(acc)i(and)e(Lex)i(w)o(ork)n(alik)o(es)d(and)i
+(C++.)18 b(Throughout)12 b(this)164 2424 y(pap)q(er,)i(\\Y)m(acc",)f
+(\\Lex",)g(and)h(\\C")f(can)i(generally)e(b)q(e)i(tak)o(en)f(to)f(mean)
+g(\\Y)m(acc)h(or)g(Bison",)f(\\Lex)h(or)164 2474 y(Flex",)f(and)h(\\C)f
+(or)h(C++",)g(resp)q(ectiv)o(ely)m(.)961 2599 y Fn(2)p
+eop
+%%Page: 3 3
+3 2 bop 164 307 a Fc(\045token)21 b(ICONST)164 357 y(\045left)g('+')g
+('-')164 407 y(\045left)g('*')g('/')164 506 y(\045\045)164
+556 y(expr)86 b(:)153 b(expr)86 b('*')108 b(expr)338
+606 y(|)153 b(expr)86 b('/')108 b(expr)338 656 y(|)153
+b(expr)86 b('+')108 b(expr)338 706 y(|)153 b(expr)86
+b('-')108 b(expr)338 756 y(|)153 b('\(')108 b(expr)86
+b('\)')338 805 y(|)153 b(ICONST)338 855 y(;)164 905 y(\045\045)164
+955 y(main\(\))208 1005 y({return\(yyparse)o(\(\)\);)208
+1054 y(})237 1169 y Fn(The)18 b(follo)o(wing)f(Mak)o(e)g(\014le)g(is)h
+(used)g(to)g(build)f(and)h(main)o(tain)e(the)i(parser,)g(whic)o(h)164
+1229 y(is)e(named)f Fg(gc)p Fn(:)164 1333 y Fc(gc:)21
+b(y.tab.o)f(lex.yy.o)338 1382 y(cc)i(-o)f(gc)g(y.tab.o)g(lex.yy.o)f
+(-ly)h(-ll)164 1482 y(y.tab.c)f(y.tab.h:)g(gram.y)338
+1532 y(yacc)h(-d)h(gram.y)164 1631 y(lex.yy.c:)e(scan.l)338
+1681 y(lex)h(scan.l)164 1781 y(y.tab.o:)f(y.tab.c)338
+1831 y(cc)i(-c)f(y.tab.c)164 1930 y(lex.yy.o:)f(lex.yy.c)g(y.tab.h)338
+1980 y(cc)i(-c)f(lex.yy.c)164 2124 y Fd(2.2)70 b(A)22
+b(parser)i(that)f(builds)f(a)h(parse)h(tree)164 2217
+y Fn(The)15 b(ab)q(o)o(v)o(e)g(parser)h(do)q(es)g(no)f(seman)o(tic)e
+(analysis.)21 b(T)l(o)16 b(get)f(ready)g(for)h(Ox)f(implem)o(en-)164
+2277 y(tation)j(of)g(seman)o(tics,)e(w)o(e)h(need)g(merely)e(replace)i
+(the)h(follo)o(wing)f(lines)g(in)g(the)h(Mak)o(e)164
+2337 y(\014le:)961 2599 y(3)p eop
+%%Page: 4 4
+4 3 bop 273 307 a Fc(y.tab.c)20 b(y.tab.h:)g(gram.y)447
+357 y(yacc)h(-d)h(gram.y)273 457 y(lex.yy.c:)e(scan.l)447
+506 y(lex)h(scan.l)164 596 y Fn(with)16 b(these:)273
+676 y Fc(oxout.y)k(oxout.l:)g(gram.y)h(scan.l)447 726
+y(ox)h(gram.y)e(scan.l)273 826 y(y.tab.c)g(y.tab.h:)g(oxout.y)447
+875 y(yacc)h(-d)h(oxout.y)273 975 y(lex.yy.c:)e(oxout.l)447
+1025 y(lex)h(oxout.l)164 1116 y Fn(The)16 b(command:)292
+1206 y Fg(ox)25 b(gram.y)e(scan.l)164 1297 y Fn(transforms)17
+b Fg(gram.y)e Fn(\(called)h(the)i Fh(Y-\014le)t Fn(\))g(in)o(to)f
+Fg(oxout.y)p Fn(,)e(and)j(transforms)f Fg(scan.l)164
+1357 y Fn(\(called)24 b(the)g Fh(L-\014le)t Fn(\))i(in)o(to)e
+Fg(oxout.l)p Fn(.)44 b(These)24 b(Ox)h(outputs)g(replace)f
+Fg(gram.y)e Fn(and)164 1418 y Fg(scan.l)14 b Fn(in)i(the)g(remaining)f
+(steps)h(of)h(parser)f(construction.)237 1478 y(The)f(user-observ)o(ed)
+g(b)q(eha)o(viors)h(of)f(the)g(original)g(program)g(and)h(the)f(one)g
+(prepro-)164 1538 y(cessed)f(b)o(y)g(Ox)g(are)g(the)g(same.)20
+b(The)14 b(di\013erence)f(is)h(that)h(the)f(v)o(ersion)f(made)h(using)g
+(Ox)164 1598 y(and)j(the)f(new)g(Mak)o(e)g(\014le)g(builds)g(a)g(dumm)o
+(y)e(\(attribute-less\))i(parse)g(tree,)g(while)f(the)164
+1658 y(original)k(builds)h(no)g(parse)g(tree.)30 b(The)20
+b(original)f(co)q(de)h(in)f(the)g(example)f(lac)o(ks)h(Y)l(acc)164
+1718 y(actions,)25 b(but)e(had)h(it)e(con)o(tained)h(suc)o(h)g
+(actions,)h(their)f(e\013ects)g(w)o(ould)g(ha)o(v)o(e)f(b)q(een)164
+1779 y(undisturb)q(ed)17 b(b)o(y)e(the)h(Ox)g(prepro)q(cessing.)237
+1839 y(Ha)o(ving)i(mo)q(di\014ed)g(our)h(Mak)o(e)f(\014le,)g(w)o(e)g
+(are)h(ready)f(to)h(augmen)o(t)f(the)g(Y-\014le)g(and)164
+1899 y(L-\014le)e(with)g(Ox)g(constructs.)164 2064 y
+Fo(3)83 b(Adding)27 b(Ox-generated)g(seman)n(tics)164
+2173 y Fn(This)18 b(section)f(in)o(tro)q(duces)h(the)f(form)g(and)h
+(meaning)f(of)h(Ox-sp)q(eci\014c)f(constructs,)h(b)o(y)164
+2233 y(w)o(a)o(y)e(of)g(con)o(v)o(erting)g(our)g(parse-tree-building)g
+(parser)h(in)o(to)f(a)g(calculator.)237 2293 y(Eac)o(h)d(parse)f(tree)g
+(has)h(lea)o(v)o(es)e(lab)q(eled)h(b)o(y)g(the)g Fg(ICONST)f
+Fn(tok)o(en.)19 b(Let)13 b(us)f(endo)o(w)h(this)164 2354
+y(tok)o(en)20 b(with)g(an)g(attribute)g Fg(string)p Fn(:)27
+b(a)21 b(c)o(haracter)e(p)q(oin)o(ter)h(that)h(for)f(eac)o(h)g
+Fg(ICONST)164 2414 y Fn(no)q(de)e(is)e(to)i(p)q(oin)o(t)f(to)g(a)g(cop)
+o(y)g(of)g(the)g(lexeme)d(corresp)q(onding)k(to)f(the)g(no)q(de.)24
+b(This)17 b(is)164 2474 y(done)f(b)o(y)g(placing)g(the)g
+Fh(attribute)j(de)n(clar)n(ation)t Fn(:)961 2599 y(4)p
+eop
+%%Page: 5 5
+5 4 bop 292 307 a Fg(@attribute)o(s)23 b({char)h(*string;})e(ICONST)164
+409 y Fn(b)q(efore)15 b(the)g(\014rst)h Fg(\045\045)f
+Fn(mark)f(in)g(the)i(Y-\014le.)k(The)15 b(ab)q(o)o(v)o(e-men)o(tioned)e
+(storage)k(lo)q(cation)164 469 y(created)i(for)g(eac)o(h)g
+Fg(ICONST)e Fn(no)q(de)j(is)f(called)f(an)i Fh(attribute)h(instanc)n(e)
+k Fn(\(concisely:)g(an)164 529 y Fh(instanc)n(e)t Fn(\).)d(It)16
+b(is)g(an)h(instance)f(of)g(the)g Fg(string)e Fn(attribute)i(of)h
+Fg(ICONST)p Fn(.)237 589 y(W)l(e)23 b(supply)g(a)h(C)g(macro)e(\(named)
+g Fg(lexeme)p Fn(\))f(that)j(constructs)g(a)g(cop)o(y)f(of)g(the)164
+650 y(lexeme.)29 b(F)l(or)20 b(brevit)o(y)e(of)i(the)f(example,)f
+Fg(lexeme)g Fn(unsafely)h(neglects)h(to)g(c)o(hec)o(k)e(for)164
+710 y(return)e(of)h Fg(NULL)d Fn(b)o(y)i Fg(malloc)p
+Fn(.)j(Here)c(is)h(the)g(mo)q(di\014ed)f(L-\014le:)164
+814 y Fc(\045{)164 863 y(#include)20 b("y.tab.h")164
+913 y(#include)g(<string.h>)164 1013 y(#define)g(lexeme)h
+(strcpy\(\(char)e(*\)malloc\(yyleng+1\))o(,yyte)o(xt\))164
+1063 y(\045})164 1162 y(\045\045)164 1212 y([)j(\\n\\t\\f]+)172
+b(;)164 1262 y([0-9]+)260 b(return\(ICONST\);)19 b(@{)i
+(@ICONST.string@)e(=)j(lexeme;)e(@})164 1312 y("\(")326
+b(return\('\('\);)164 1362 y("\)")g(return\('\)'\);)164
+1411 y("*")g(return\('*'\);)164 1461 y("/")g(return\('/'\);)164
+1511 y("+")g(return\('+'\);)164 1561 y("-")g(return\('-'\);)164
+1611 y(\045\045)237 1725 y Fn(T)l(o)16 b(the)f(righ)o(t)g(of)g(the)g
+(lexical)f(rule)g(for)i Fg(ICONST)p Fn(,)c(there)j(is)g(b)q(et)o(w)o
+(een)f Fg(@)p Fb(f)h Fn(and)h Fg(@)p Fb(g)e Fn(an)164
+1785 y Fh(attribute)i(de\014nition)j Fn(that)14 b(causes)g(the)g
+Fg(string)d Fn(attribute)j(instance)f(in)h(eac)o(h)f
+Fg(ICONST)164 1845 y Fn(no)q(de)k(to)f(get)h(a)f(p)q(oin)o(ter)g(to)h
+(a)g(cop)o(y)e(of)i(the)f(constan)o(t's)h(lexeme)o(.)237
+1905 y(Notice)e(that)i(w)o(e)f(ha)o(v)o(e)f(replaced)h(the)g(single)f
+(lexical)g(rule:)292 2007 y Fg([\(\)*/+\\-])228 b(return\(yy)o(te)o
+(xt[)o(0]\))o(;)164 2109 y Fn(with)14 b(six)f(rules)g(that)h(are)g
+(together)g(equiv)m(alen)o(t)e(to)i(that)h(single)e(rule.)19
+b(Ox)14 b(w)o(ould)g(ha)o(v)o(e)164 2169 y(b)q(een)21
+b(unable)h(to)f(determine)e(from)i(the)g(ob)s(ject)g(of)g(the)g(single)
+g Fg(return)f Fn(statemen)o(t)164 2229 y(\(namely)10
+b Fg(yytext[0])o Fn(\))f(the)i(sp)q(eci\014c)h(tok)o(en)f(that)h(w)o
+(ould)f(b)q(e)h Fg(return)p Fn(ed.)18 b(By)11 b(replacing)164
+2289 y(the)19 b(rule,)f(w)o(e)h(mak)o(e)e(the)i Fg(return)p
+Fn(ed)e(tok)o(ens)i(explicit,)e(and)j(a)o(v)o(oid)e(a)i(w)o(arning)f
+(from)164 2350 y(Ox.)237 2410 y(Eac)o(h)14 b(parse-tree)g(no)q(de)h
+(lab)q(eled)f(b)o(y)g Fg(expr)e Fn(is)i(the)g(ro)q(ot)i(of)e(a)h
+(subtree)f(corresp)q(ond-)164 2470 y(ing)i(to)h(a)g(sub)q(expression.)k
+(Placing)16 b(the)g(attribute)g(declaration:)961 2599
+y(5)p eop
+%%Page: 6 6
+6 5 bop 292 307 a Fg(@attribute)o(s)23 b({long)h(val;})f(expr)164
+409 y Fn(in)f(the)g(Y-\014le)g(causes)h(the)f(Ox-generated)h
+(translator)g(to)g(allo)q(cate)g(space)f(\(an)h(at-)164
+469 y(tribute)17 b(instance\))h(for)g(a)g Fg(long)f Fn(named)g
+Fg(val)f Fn(eac)o(h)i(time)e(it)h(creates)h(a)g(no)q(de)h(lab)q(eled)
+164 529 y(b)o(y)d Fg(expr)p Fn(.)237 589 y(The)24 b Fh(b)n(o)n(dy)k
+Fn(\(the)c(part)h(b)q(et)o(w)o(een)e(curly)g(braces\))i(of)f(an)h
+(attribute)f(declaration)164 650 y(resem)o(bles)13 b(that)k(of)f(a)h(C)
+f(structure)f(declaration,)h(except)f(that)h(curly)f(braces)h(cannot)
+164 710 y(b)q(e)g(nested.)380 692 y Fi(3)237 770 y Fn(The)22
+b(de\014nitions)g(for)g(the)g Fg(val)f Fn(attribute)h(of)g
+Fg(expr)f Fn(are)h(seen)f(in)h(the)g Fh(attribute)164
+830 y(r)n(efer)n(enc)n(e)d(se)n(ctions)k Fn(\(co)q(de)18
+b(fragmen)o(ts)e(delimited)f(b)o(y)j Fg(@)p Fb(f)f Fn(and)h
+Fg(@)p Fb(g)p Fn(\))g(in)f(the)h(mo)q(di\014ed)164 890
+y(Y-\014le.)i(Eac)o(h)14 b(of)g(the)g(attribute)f(de\014nitions)h
+(starts)h(with)e(the)h Fh(implicit-mo)n(de)i(annun-)164
+951 y(ciator)23 b Fg(@i)p Fn(,)16 b(whose)i(meaning)e(is)h(explained)f
+(in)h(section)g(4.1.)24 b(In)17 b(this)h(example,)c(eac)o(h)164
+1011 y(attribute)i(reference)e(section)i(con)o(tains)h(exactly)e(one)h
+(attribute)g(de\014nition.)p 164 2378 648 2 v 220 2409
+a Ff(3)239 2424 y Fe(A)o(ttributes)h(can)f(b)q(e)h(of)f(an)o(y)f(C)h
+(fundamen)o(tal)f(or)h(deriv)o(ed)g(t)o(yp)q(e.)26 b(The)16
+b(Ox)h(co)q(de)g(in)e(section)i(8)164 2474 y(uses)e(an)f(attribute)g
+(that)g(is)g(a)f(C)h(structure.)961 2599 y Fn(6)p eop
+%%Page: 7 7
+7 6 bop 164 307 a Fc(\045token)21 b(ICONST)164 357 y(\045left)g('+')g
+('-')164 407 y(\045left)g('*')g('/')164 506 y(@attributes)e({char)i
+(*string;)f(})i(ICONST)164 556 y(@attributes)d({long)i(val;})130
+b(expr)164 656 y(\045\045)164 706 y(expr)86 b(:)153 b(expr)86
+b('*')108 b(expr)513 756 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@)f(*)h(@expr.2.val@;)41 b(@})338 855 y(|)153
+b(expr)86 b('/')108 b(expr)513 905 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@)f(/)h(@expr.2.val@;)41 b(@})338 1005 y(|)153
+b(expr)86 b('+')108 b(expr)513 1054 y(@{)21 b(@i)g(@expr.val@)f(=)i
+(@expr.1.val@)d(+)j(@expr.2.val@;)84 b(@})338 1154 y(|)153
+b(expr)86 b('-')108 b(expr)513 1204 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@)f(-)h(@expr.2.val@;)41 b(@})338 1303 y(|)153
+b('\(')108 b(expr)86 b('\)')513 1353 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@;)368 b(@})338 1453 y(|)153 b(ICONST)513
+1503 y(@{)21 b(@i)g(@expr.val@)f(=)i(atoi\(@ICONST.str)o(ing@\))o(;)215
+b(@})338 1553 y(;)164 1602 y(\045\045)164 1652 y(main\(\))208
+1702 y({return\(yyparse)o(\(\)\);)208 1752 y(})237 1859
+y Fn(The)11 b(grammar)e(sym)o(b)q(ol)h Fg(expr)f Fn(has)j(three)e
+Fh(gr)n(ammar-symb)n(ol)h(o)n(c)n(curr)n(enc)n(es)k Fn(\(namely)164
+1919 y Fg(expr.0)p Fn(,)f Fg(expr.1)p Fn(,)f(and)k Fg(expr.2)p
+Fn(\))d(in)i(the)g(grammar)f(rule:)292 2016 y Fg(expr)101
+b(:)179 b(expr)101 b('*')127 b(expr)164 2113 y Fn(An)16
+b Fh(attribute)i(o)n(c)n(curr)n(enc)n(e)i Fn(\(concisely:)g(an)c
+Fh(o)n(c)n(curr)n(enc)n(e)t Fn(\))g(is)g(a)h(grammar-sym)o(b)q(ol)c(o)q
+(c-)164 2173 y(currence)20 b(together)h(with)g(an)g(attribute)g(of)g
+(the)g(sym)o(b)q(ol.)34 b(An)20 b Fh(attribute)j(r)n(efer)n(enc)n(e)164
+2233 y Fn(tak)o(es)16 b(the)g(form:)237 2354 y Fg(@)p
+Fh(gr)n(ammarsymb)n(ol)p Fg(.)p Fn([)p Fh(inte)n(ger)p
+Fg(.)p Fn(])p Fh(attributename)p Fg(@)164 2474 y Fn(where)21
+b Fh(attributename)27 b Fn(app)q(ears)c(as)f(an)g(iden)o(ti\014er)d(in)
+i(the)h(b)q(o)q(dy)g(of)g(the)f(attribute)961 2599 y(7)p
+eop
+%%Page: 8 8
+8 7 bop 164 307 a Fn(declaration)20 b(for)g Fh(gr)n(ammarsymb)n(ol)p
+Fn(.)31 b(If)20 b(in)o(teger)f(is)h Fh(n)p Fn(,)h(the)f(reference)e(is)
+i(to)h(the)e Fh(n)p Fn(th)164 367 y(o)q(ccurrence)13
+b(of)h Fh(gr)n(ammarsymb)n(ol)j Fn(coun)o(ting)d(from)e(the)i(left)f
+(of)h(the)f(rule)g(\(the)h(leftmost)164 428 y(o)q(ccurrence)19
+b(b)q(eing)i(the)f(0th\).)33 b(The)20 b(square)g(brac)o(k)o(ets)f(ab)q
+(o)o(v)o(e)h(denote)h(that)f Fh(inte)n(ger)164 488 y
+Fn(and)d(the)f(second)g Fg(.)22 b Fn(are)16 b(optional)h(\(the)e
+(default)h(v)m(alue)g(for)h Fh(inte)n(ger)22 b Fn(b)q(eing)17
+b(0\).)237 548 y Fh(A)o(ttribute)i(de\014nitions)j Fn(are)16
+b(basically)g(C)g(co)q(de)h(fragmen)o(ts)e(con)o(taining)h(attribute)
+164 608 y(references.)22 b(In)17 b(general,)g(an)g(attribute)g
+(de\014nition)f(section)h(con)o(tains)g(zero)g(to)g(man)o(y)164
+668 y(attribute)g(de\014nitions.)24 b(Eac)o(h)18 b(attribute)f
+(de\014nition)g(is)g(announced)h(b)o(y)f(a)h(mo)q(de)e(an-)164
+729 y(n)o(unciator,)g(and)g(terminated)f(b)o(y)h Fg(@)p
+Fb(g)f Fn(or)i(b)o(y)f(the)g(next)f(mo)q(de)h(ann)o(unciator.)164
+895 y Fo(4)83 b(Order)27 b(of)h(A)n(ttribute-Instance)e(Ev)-5
+b(aluation)164 1004 y Fn(A)o(ttribute)16 b(grammars)g(sp)q(ecify)g
+(seman)o(tics)f(in)i(a)h Fh(de)n(clar)n(ative)j Fn(or)d
+Fh(functional)24 b Fn(\(rather)164 1064 y(than)15 b(sequen)o(tial)f(or)
+h(imp)q(erativ)o(e\))d(st)o(yle.)19 b(When)c(a)g(parse)h(tree)e(is)g
+(created,)g(the)h(tree's)164 1125 y(attribute)d(instances)h(are)g(ev)m
+(aluated)f(in)h(an)g(order)g(constrained)g(\(but)g(not)g(fully)e
+(deter-)164 1185 y(mined\))g(b)o(y)h(the)h(attribute)g(grammar.)18
+b(It)13 b(is)g(clear)f(that)h(in)g(the)f(example)f(of)i(section)g(3,)
+164 1245 y(all)h Fg(val)f Fn(instances)i(in)f(the)g(leaf)g(no)q(des)i
+(m)o(ust)d(b)q(e)i(ev)m(aluated)f(b)q(efore)h(the)f Fg(val)f
+Fn(instance)164 1305 y(of)k(the)f(ro)q(ot)h(no)q(de.)237
+1365 y(Ox)22 b(\(rather)g(than)g(the)g(compiler)e(designer\))h
+(generates)h(co)q(de)g(that)h(causes)f(in-)164 1426 y(stances)17
+b(to)f(b)q(e)h(ev)m(aluated)f(in)g(a)g(correct)g(order.)164
+1570 y Fd(4.1)70 b(Dep)r(endency)21 b(relations)h(in)g(the)g(Y-\014le)
+164 1652 y Fn(There)h(is)h(a)g(constrain)o(t)f(for)h(eac)o(h)g(grammar)
+e(rule)h(in)g(the)g(Y-\014le:)35 b(a)25 b Fh(dep)n(endency)164
+1702 y(r)n(elation)20 b Fn(on)d(the)f(attribute)g(o)q(ccurrences)g(in)g
+(that)g(rule.)21 b(F)l(or)16 b(the)g(rule:)164 1792 y
+Fc(expr)86 b(:)153 b(expr)86 b('*')108 b(expr)513 1842
+y(@{)21 b(@i)g(@expr.0.val@)f(=)h(@expr.1.val@)f(*)h(@expr.2.val@;)513
+1892 y(@})164 1993 y Fn(there)16 b(is)g(the)g(constrain)o(t)g(that)h
+(instances)f(corresp)q(onding)h(to)g Fg(expr.1.va)o(l)c
+Fn(and)164 2053 y Fg(expr.2.val)19 b Fn(in)j(sibling)g(parse-tree)h(no)
+q(des)g(m)o(ust)e(b)q(e)i(ev)m(aluated)g(b)q(efore)f(the)h(one)164
+2113 y(corresp)q(onding)17 b(to)g Fg(expr.0.val)12 b
+Fn(in)k(their)g(paren)o(t)g(no)q(de.)237 2173 y(Eac)o(h)f(rule's)g(dep)
+q(endency)f(relation)h(is)h(determined)c(b)o(y)j(its)g(individual)f
+(attribute)164 2233 y(de\014nitions.)32 b(There)19 b(are)h(sev)o(eral)f
+(mo)q(des)g(for)h(comm)o(unic)o(ating)e(dep)q(endency)h(infor-)164
+2293 y(mation)d(to)h(Ox.)22 b(The)17 b Fh(implicit)i(mo)n(de)h
+Fn(is,)c(for)h(most)f(Ox)g(translators,)i(the)f(only)f(suc)o(h)164
+2354 y(mo)q(de)f(needed.)21 b(The)16 b Fh(explicit)j(mo)n(de)h
+Fn(is)c(describ)q(ed)g(brie\015y)f(in)h(section)g(9.7.)237
+2414 y(The)h(implici)o(t-m)o(o)q(de)e(ann)o(unciator)i
+Fg(@i)f Fn(\(see)g(the)g(example)f(in)h(section)g(3\))h(signals)164
+2474 y(to)h(Ox)g(the)f(b)q(eginning)i(of)f(an)g(attribute)g
+(de\014nition.)25 b(F)l(urther,)18 b(it)f(informs)g(Ox)g(that)961
+2599 y(8)p eop
+%%Page: 9 9
+9 8 bop 164 307 a Fn(an)19 b(instance)g(corresp)q(onding)h(to)f(the)g
+(de\014nition's)f Fh(leftmost)24 b Fn(attribute)19 b(reference)e(is)164
+367 y(to)d(b)q(e)g(ev)m(aluated)f Fh(after)20 b Fn(those)14
+b(corresp)q(onding)g(to)g(other)g(attribute)g(references)e(in)h(the)164
+428 y(de\014nition.)25 b(This)17 b(is)h(to)g(sa)o(y)f(that)h(the)g(o)q
+(ccurrence)f(corresp)q(onding)h(to)g(the)g(leftmost)164
+488 y(reference)f Fh(dep)n(ends)j(on)j Fn(the)c(o)q(ccurrences)f
+(corresp)q(onding)i(to)f(the)f(other)h(references)164
+548 y(in)d(the)g(de\014nition.)164 692 y Fd(4.2)70 b(Dep)r(endency)21
+b(relations)h(in)g(the)g(L-\014le)164 785 y Fn(Note)h(that)h(the)g(mo)q
+(de)e(ann)o(unciator)i Fg(@i)f Fn(do)q(es)h(not)g(app)q(ear)h(in)e(the)
+h(L-\014le)f(of)h(the)164 845 y(example)19 b(in)j(section)f(3.)37
+b(Mo)q(de)22 b(ann)o(unciators)g(are)g(not)g(used)f(in)h(L-\014les.)37
+b(An)21 b(at-)164 905 y(tribute)g(reference)f(section)i(in)f(an)i
+(L-\014le)f(is)f(executed)g(as)h(a)h(whole)e(whenev)o(er)g(the)164
+965 y(corresp)q(onding)16 b(lexical)d(rule)h(is)g(matc)o(hed.)19
+b(In)c(the)f(example,)f(this)h(is)h(done)g(whenev)o(er)164
+1025 y(the)21 b(Lex-generated)g(scanner)h(matc)o(hes)d(a)j(digit)f
+(string.)36 b(Executing)21 b(an)g(attribute)164 1086
+y(reference)d(section)i(ma)o(y)f(in)o(v)o(olv)o(e)f(the)i(ev)m
+(aluation)g(of)g(sev)o(eral)g(attribute)f(instances.)164
+1146 y(An)12 b(attribute)g(reference)f(section)h(in)h(the)f(L-\014le)h
+(m)o(ust)e(con)o(tain)h(exactly)f(one)i(attribute)164
+1206 y(reference)i(for)i(eac)o(h)g(attribute)f(o)q(ccurrence)g
+(de\014ned)h(there)f(\(in)h(the)g(previous)f(exam-)164
+1266 y(ple,)f(that)i(for)f Fg(ICONST.stri)o(ng)p Fn(\))o(.)164
+1433 y Fo(5)83 b(Using)27 b(global)h(v)-5 b(ariables)164
+1542 y Fn(A)o(ttribute)15 b(reference)g(sections)i(can)g(con)o(tain)g
+(an)o(y)f(C)i(co)q(de,)e(including)g(references)g(to)164
+1602 y(global)h(v)m(ariables.)237 1663 y(In)11 b(our)g(running)g
+(example,)f(w)o(e)g(ha)o(v)o(en't)g(y)o(et)g(sho)o(wn)h(ho)o(w)h(to)f
+(prin)o(t)f(the)h(main)e(result)164 1723 y(of)18 b(the)f(seman)o(tic)e
+(analysis)j(\(i.e.,)e(the)h(v)m(alue)g(of)h(the)f(expression\).)24
+b(The)18 b(approac)o(h)g(is)164 1783 y(to)i(cop)o(y)g(the)f
+Fg(val)g Fn(attribute)h(instance)f(of)h(the)g(ro)q(ot)h(no)q(de)g(in)o
+(to)e(a)h(global)h(v)m(ariable,)164 1843 y(then)e(prin)o(t)f(it)h
+(after)g(termination)e(of)i Fg(yyparse\(\))p Fn(.)26
+b(W)l(e)19 b(in)o(tro)q(duce)g(a)g(unique)f(start)164
+1903 y(pro)q(duction)f(for)g(this)f(purp)q(ose.)23 b(The)16
+b(L-\014le)h(need)f(not)h(b)q(e)g(c)o(hanged.)22 b(Here)15
+b(is)h(sho)o(wn)164 1964 y(the)g(new)g(Y-\014le,)f(with)h(c)o(hanged)h
+(or)f(added)h(lines)e(mark)o(ed)g(b)o(y)g(empt)o(y)f(C)j(commen)o(ts:)
+961 2599 y(9)p eop
+%%Page: 10 10
+10 9 bop 164 307 a Fc(\045token)21 b(ICONST)164 357 y(\045left)g('+')g
+('-')164 407 y(\045left)g('*')g('/')164 506 y(\045{)1351
+b(/*)21 b(*/)164 556 y(long)g(globVal;)1110 b(/*)21 b(*/)164
+606 y(\045})1351 b(/*)21 b(*/)164 706 y(@attributes)e({char)i
+(*string;})f(ICONST)164 756 y(@attributes)f({long)i(val;})108
+b(s)22 b(expr)653 b(/*)21 b(*/)164 805 y(\045\045)164
+855 y(s)152 b(:)h(expr)958 b(/*)21 b(*/)513 905 y(@{)g(@i)g(globVal)g
+(=)g(@s.val@)g(=)g(@expr.val@;)129 b(@})65 b(/*)21 b(*/)338
+955 y(;)1199 b(/*)21 b(*/)164 1054 y(expr)86 b(:)153
+b(expr)86 b('*')108 b(expr)513 1104 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@)f(*)h(@expr.2.val@;)41 b(@})338 1204 y(|)153
+b(expr)86 b('/')108 b(expr)513 1254 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@)f(/)h(@expr.2.val@;)41 b(@})338 1353 y(|)153
+b(expr)86 b('+')108 b(expr)513 1403 y(@{)21 b(@i)g(@expr.val@)f(=)i
+(@expr.1.val@)d(+)j(@expr.2.val@;)84 b(@})338 1503 y(|)153
+b(expr)86 b('-')108 b(expr)513 1553 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@)f(-)h(@expr.2.val@;)41 b(@})338 1652 y(|)153
+b('\(')108 b(expr)86 b('\)')513 1702 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@;)368 b(@})338 1802 y(|)153 b(ICONST)513
+1851 y(@{)21 b(@i)g(@expr.val@)f(=)i(atoi\(@ICONST.str)o(ing@\))o(;)215
+b(@})338 1901 y(;)164 1951 y(\045\045)164 2001 y(main\(\))208
+2051 y({yyparse\(\);)1109 b(/*)21 b(*/)229 2100 y
+(printf\("\045d\\n",globV)o(al\);)825 b(/*)21 b(*/)208
+2150 y(})237 2264 y Fn(Up)q(on)h(completion)d(of)j(the)f(call)g(to)h
+Fg(yyparse)p Fn(,)d(the)i(tree's)g(attribute)g(instances)164
+2325 y(ha)o(v)o(e)14 b(all)g(b)q(een)h(ev)m(aluated.)21
+b(The)14 b(ev)m(aluation)h(of)g Fg(@s.val@)e Fn(en)o(tails)h(an)h
+(assignmen)o(t)f(to)164 2385 y Fg(globVal)p Fn(.)19 b(The)d(prin)o
+(ting)g(of)g Fg(globVal)e Fn(is)i(the)g(last)g(thing)h(done)f(b)o(y)g
+(the)g(calculator.)949 2599 y(10)p eop
+%%Page: 11 11
+11 10 bop 164 315 a Fo(6)83 b(P)n(arse-tree)27 b(tra)n(v)n(ersals)164
+425 y Fn(A)18 b(parse)g(tree)g(is)g(m)o(uc)o(h)e(more)h(useful)g(if)h
+(it)g(can)g(b)q(e)h(tra)o(v)o(ersed,)e(and)i(if)e(its)h(attribute)164
+485 y(instances)e(can)h(b)q(e)g(accessed)f(during)h(tra)o(v)o(ersals.)k
+(Suc)o(h)16 b(tra)o(v)o(ersals)g(are)h(particularly)164
+545 y(useful)k(for)g(co)q(de)h(generation.)36 b(Ox)21
+b(can)g(b)q(e)g(instructed)g(to)g(generate)g(a)h(translator)164
+606 y(that)c(p)q(erforms)e(v)m(arious)i(kinds)f(of)h(tra)o(v)o(ersals)f
+(after)g(ev)m(aluation)h(of)f(all)g(of)h(the)f(tree's)164
+666 y(attribute)f(instances.)164 810 y Fd(6.1)70 b(Application:)28
+b(translation)23 b(to)g(pre\014x)164 903 y Fn(The)18
+b(follo)o(wing)f(Y-\014le)g(sp)q(eci\014es)h(an)g(expression)f(parser)h
+(that)h(translates)f(its)f(\(in\014x\))164 963 y(input)e(to)h(pre\014x)
+f(form.)20 b(The)c(L-\014le)f(is)g(the)h(same)e(as)i(that)g(of)g(the)f
+(previous)h(example.)949 2599 y(11)p eop
+%%Page: 12 12
+12 11 bop 164 307 a Fc(\045token)21 b(ICONST)164 357
+y(\045left)g('+')g('-')164 407 y(\045left)g('*')g('/')164
+506 y(@traversal)f(@preorder)g(yourTrav)164 556 y(@traversal)g
+(@preorder)g(yoursToo)164 656 y(@attributes)f({char)i(*string;})f
+(ICONST)164 706 y(@attributes)f({long)i(val;})108 b(s)22
+b(expr)164 756 y(\045\045)164 805 y(s)152 b(:)h(expr)513
+855 y(@{)21 b(@i)g(@s.val@)g(=)g(@expr.val@;)578 905
+y(@yoursToo)f(printf\("\\n\045d\\n",@)o(s.val)o(@\);)513
+955 y(@})338 1005 y(;)164 1054 y(expr)86 b(:)153 b(expr)86
+b('*')108 b(expr)513 1104 y(@{)21 b(@i)g(@expr.0.val@)f(=)h
+(@expr.1.val@)f(*)h(@expr.2.val@;)578 1154 y(@yourTrav)f(printf\(")g(*)
+i("\);)513 1204 y(@})338 1254 y(|)153 b(expr)86 b('/')108
+b(expr)513 1303 y(@{)21 b(@i)g(@expr.0.val@)f(=)h(@expr.1.val@)f(/)h
+(@expr.2.val@;)578 1353 y(@yourTrav)f(printf\(")g(/)i("\);)513
+1403 y(@})338 1453 y(|)153 b(expr)86 b('+')108 b(expr)513
+1503 y(@{)21 b(@i)g(@expr.val@)f(=)i(@expr.1.val@)d(+)j(@expr.2.val@;)
+578 1553 y(@yourTrav)e(printf\(")g(+)i("\);)513 1602
+y(@})338 1652 y(|)153 b(expr)86 b('-')108 b(expr)513
+1702 y(@{)21 b(@i)g(@expr.0.val@)f(=)h(@expr.1.val@)f(-)h
+(@expr.2.val@;)578 1752 y(@yourTrav)f(printf\(")g(-)i("\);)513
+1802 y(@})338 1851 y(|)153 b('\(')108 b(expr)86 b('\)')513
+1901 y(@{)21 b(@i)g(@expr.0.val@)f(=)h(@expr.1.val@;)513
+1951 y(@})338 2001 y(|)153 b(ICONST)513 2051 y(@{)21
+b(@i)g(@expr.val@)f(=)i(atoi\(@ICONST.str)o(ing@\))o(;)578
+2100 y(@yourTrav)e(printf\(")g(\045s)h(",@ICONST.string@\);)513
+2150 y(@})338 2200 y(;)164 2250 y(\045\045)164 2300 y(main\(\))208
+2350 y({return\(yyparse)o(\(\)\);)208 2399 y(})949 2599
+y Fn(12)p eop
+%%Page: 13 13
+13 12 bop 164 307 a Fn(The)16 b(line)292 409 y Fg(@traversal)22
+b(@preorder)g(yourTrav)164 511 y Fn(declares)16 b(a)g(left-to-righ)o(t)
+g(preorder)h(tra)o(v)o(ersal)e(named)g Fg(yourTrav)p
+Fn(.)k(Supp)q(ose)e(that)g(in)164 571 y(our)d(example,)d(the)j
+Fg(yourTrav)c Fn(tra)o(v)o(ersal)j(has)h(reac)o(hed)f(a)h(no)q(de)g(at)
+g(whic)o(h)f(a)h(grammar)164 631 y(rule)d Fa(R)g Fn(is)g(applied.)20
+b(If)10 b(the)h(attribute)g(reference)f(section)h(of)g
+Fa(R)h Fn(con)o(tains)g(the)f Fh(tr)n(aversal-)164 691
+y(mo)n(de)17 b(annunciator)h Fg(@yourTrav)c Fn(\(whic)o(h)i(w)o(as)h
+(giv)o(en)f(meaning)g(b)o(y)g(its)h Fg(@traversa)o(l)164
+751 y Fn(declaration\),)c(then)f(the)g Fg(printf)f Fn(statmen)o(t)g
+(follo)o(wing)h Fg(@yourTrav)d Fn(is)k(executed,)e(and)164
+812 y(the)j(tra)o(v)o(ersal)g(is)g(con)o(tin)o(ued)g(for)g(the)h
+(subtree)f(ro)q(oted)h(at)g(the)f(no)q(de)h(in)f(question.)21
+b(Us-)164 872 y(ing)16 b Fg(@postorder)c Fn(instead)17
+b(of)f Fg(@preorder)d Fn(w)o(ould)j(cause)g(a)g(tra)o(v)o(ersal)g(that)
+g(executes)164 932 y(the)23 b Fg(printf)f Fh(after)29
+b Fn(completing)22 b(the)h(tra)o(v)o(ersal)g(of)h(that)g(subtree,)h
+(resulting)e(in)h(a)164 992 y(p)q(ost\014x)17 b(translation.)237
+1052 y(A)e(tra)o(v)o(ersal)g(that)h(accesses)f(the)g
+Fg(val)g Fn(instance)g(in)g(the)h(ro)q(ot)g(no)q(de)g(is)g(an)g
+(alterna-)164 1112 y(tiv)o(e)f(to)h(using)h(the)f(global)h(v)m(ariable)
+f Fg(globVal)d Fn(of)k(section)f(5.)21 b(Placing)16 b(the)g(line:)292
+1214 y Fg(@traversal)22 b(@preorder)g(yoursToo)164 1316
+y Fn(in)16 b(the)g(declarations)g(section,)g(and)g(the)g(line:)292
+1418 y Fg(@yoursToo)22 b(printf\("\045d\\)o(n",)o(@s.)o(va)o(l@\))o(;)
+164 1519 y Fn(in)c(the)h(attribute)f(reference)f(section)h(for)h(the)f
+(start)h(pro)q(duction)g(accomplishes)e(the)164 1579
+y(same)e(thing)i(as)f(the)g(use)h(of)f Fg(globVal)p Fn(.)237
+1640 y(One)h(tra)o(v)o(ersal)g(is)g(done)g(for)h(eac)o(h)f(tra)o(v)o
+(ersal)f(declaration,)h(the)g(tra)o(v)o(ersals)g(b)q(eing)164
+1700 y(done)e(one)f(after)g(another,)h(in)f(the)g(order)h(in)f(whic)o
+(h)f(the)h(declarations)h(app)q(ear.)21 b(In)14 b(the)164
+1760 y(example,)e(the)j(declaration)f(of)h Fg(yoursToo)c
+Fn(app)q(ears)16 b(after)f(that)g(of)f Fg(yourTrav)p
+Fn(,)e(so)j(the)164 1820 y(v)m(alue)h(of)h(the)f(expression)f(is)h
+(prin)o(ted)g(after)g(the)g(preorder)g(translation)h(is)f(prin)o(ted.)
+164 1987 y Fo(7)83 b(Inherited)27 b(vs.)35 b(Syn)n(thesized)25
+b(A)n(ttributes)164 2096 y Fn(It)15 b(is)g(useful)f(to)i(think)f(of)g
+(the)g(lexical)e(rules)i(\(i.e.,)e(the)i(rules)g(in)g(the)g(L-\014le\))
+g(as)h(virtual)164 2156 y(grammar)10 b(rules)i(\(pro)q(ductions\))g
+(whose)h(righ)o(t-hand)f(sides)g(are)g(the)g(empt)o(y)d(string)j(and)
+164 2217 y(whose)22 b(left-hand)g(sides,)h(while)e(actual)h(Y)l(acc)f
+(tok)o(ens,)h(are)g(virtual)f(non)o(terminals.)164 2277
+y(This)h(generic)e(concept)h(of)h Fh(rule)k Fn(is)21
+b(consisten)o(t)g(with)h(usual)g(concepts)f(of)h Fh(attribute)164
+2337 y(gr)n(ammar)5 b Fn(,)15 b(and)i(leads)f(to)g(the)g(follo)o(wing)g
+(de\014nitions:)237 2397 y(An)g(attribute)g(o)q(ccurrence)g
+Fa(o)g Fn(in)g(a)h(rule)e Fa(R)i Fn(is)f Fh(synthesize)n(d)22
+b Fn(if)15 b(and)i(only)f(if)949 2599 y(13)p eop
+%%Page: 14 14
+14 13 bop 237 307 a Fb(\017)24 b Fa(o)17 b Fn(is)f(on)g(the)g(LHS)h(of)
+f Fa(R)h Fn(and)g(the)f(attribute)g(reference)f(section)g(of)i
+Fa(R)g Fn(con)o(tains)286 367 y(a)g(de\014nition)e(of)i
+Fa(o)p Fn(,)f(or)237 469 y Fb(\017)24 b Fa(o)16 b Fn(is)g(on)g(the)g
+(RHS)f(of)i Fa(R)f Fn(and)g(the)g(attribute)g(reference)e(section)h(of)
+h Fa(R)h Fn(con)o(tains)286 529 y(no)g(de\014nition)e(of)i
+Fa(o)p Fn(.)237 631 y(An)f(attribute)g(o)q(ccurrence)g
+Fa(o)g Fn(in)g(a)h(rule)e Fa(R)i Fn(is)f Fh(inherite)n(d)22
+b Fn(if)15 b(and)i(only)f(if)237 733 y Fb(\017)24 b Fa(o)13
+b Fn(is)g(on)h(the)e(left-hand)h(side)g(\(LHS\))g(of)g
+Fa(R)h Fn(and)g(the)e(attribute)h(reference)e(section)286
+793 y(of)16 b Fa(R)h Fn(con)o(tains)g(no)f(de\014nition)g(of)h
+Fa(o)p Fn(,)f(or)237 895 y Fb(\017)24 b Fa(o)g Fn(is)e(on)i(the)f(righ)
+o(t-hand)h(side)e(\(RHS\))h(of)g Fa(R)h Fn(and)g(the)f(attribute)g
+(reference)286 955 y(section)16 b(of)g Fa(R)h Fn(con)o(tains)f(a)h
+(de\014nition)f(of)g Fa(o)p Fn(.)237 1056 y(Ox)h(issues)g(an)g(error)g
+(message)f(if)h(it)f(\014nds)h(an)h(attribute)e(that)i(has)f(b)q(oth)h
+(syn)o(the-)164 1117 y(sized)d(and)i(inherited)e(o)q(ccurrences)h(in)g
+(the)f(grammar.)20 b(An)c(attribute)g(is)g Fh(synthesize)n(d)164
+1177 y Fn(if)11 b(and)i(only)e(if)h(it)f(has)i(at)f(least)f(one)i(o)q
+(ccurrence,)e(and)h(its)g(ev)o(ery)e(o)q(ccurrence)i(is)f(syn)o(the-)
+164 1237 y(sized.)22 b(An)16 b(attribute)h(is)f Fh(inherite)n(d)22
+b Fn(if)17 b(and)g(only)g(if)f(it)g(has)h(at)h(least)e(one)h(o)q
+(ccurrence,)164 1297 y(and)23 b(its)f(ev)o(ery)f(o)q(ccurrence)h(is)g
+(inherited.)39 b(It)22 b(follo)o(ws)g(from)g(the)g(ab)q(o)o(v)o(e)g
+(that)h(the)164 1357 y(grammar's)17 b(start)i(sym)o(b)q(ol)e(can)i(ha)o
+(v)o(e)f(only)g(syn)o(thesized)g(attributes.)28 b(Referring)18
+b(to)164 1418 y(returned)g(tok)o(ens)h(as)g(rules)f(emphasizes)g(the)g
+(equal)g(status)i(of)f(tok)o(ens)f(and)i(non)o(ter-)164
+1478 y(minals,)14 b(inasm)o(uc)o(h)f(as)j(eac)o(h)f(kind)g(of)h(sym)o
+(b)q(ol)e(\(except)g(the)h(start)h(sym)o(b)q(ol\))e(can)i(ha)o(v)o(e)
+164 1538 y(b)q(oth)h(syn)o(thesized)d(and)i(inherited)f(attributes.)21
+b(Eac)o(h)15 b(sym)o(b)q(ol)g(has)h(a)g(distinct)f(name)164
+1598 y(space,)h(so)g(same-named)e(attributes)i(of)g(di\013eren)o(t)f
+(sym)o(b)q(ols)g(are)g(distinct)g(attributes,)164 1658
+y(and)i(can)f(di\013er)g(as)h(to)g(whether)f(they)f(are)i(inherited)e
+(or)h(syn)o(thesized.)237 1719 y(F)l(or)g(eac)o(h)f(parse-tree)g(no)q
+(de)h(except)f(the)g(ro)q(ot)i(no)q(de,)e(t)o(w)o(o)h(rules)f(of)h(the)
+f(Ox)g(input)164 1779 y(sp)q(eci\014cation)21 b(are)h(of)g(particular)f
+(in)o(terest.)36 b(The)22 b Fh(home)g(rule)k Fn(is)21
+b(the)h(rule)e(applied)164 1839 y(at)i(the)g(no)q(de,)h(i.e.,)e(the)h
+(rule)f(whose)i(LHS)f(is)f(the)h(lab)q(el)f(of)h(the)g(giv)o(en)f(no)q
+(de,)i(and)164 1899 y(whose)c(RHS)g(sym)o(b)q(ols)e(are)i(the)g(lab)q
+(els)f(of)h(the)g(c)o(hildren)e(of)i(the)f(no)q(de.)30
+b(The)19 b Fh(p)n(ar)n(ent)164 1959 y(rule)24 b Fn(is)19
+b(the)g(rule)g(applied)f(at)i(the)f(no)q(de's)h(paren)o(t.)31
+b(The)19 b(attribute)g(de\014nition)g(of)h(a)164 2020
+y(syn)o(thesized)c(attribute)h(instance)g(of)h(a)g(giv)o(en)e(no)q(de)i
+(is)g(asso)q(ciated)g(with)f(the)g(no)q(de's)164 2080
+y(home)i(rule)g(\(i.e.,)f(it)h(app)q(ears)i(in)f(the)f(attribute)h
+(reference)e(section)h(for)h(that)g(rule\),)164 2140
+y(and)d(de\014nitions)g(of)g(inherited)e(attribute)h(instances)h(are)g
+(similarly)c(asso)q(ciated)18 b(with)164 2200 y(the)e(paren)o(t)g
+(rule.)237 2260 y(In)i(a)g(legal)g(input)g(sp)q(eci\014cation,)g(eac)o
+(h)f(attribute)h(of)g(a)h(sym)o(b)q(ol)e(app)q(earing)i(in)f(a)164
+2320 y(rule)e(is)g(either)g(syn)o(thesized)f(or)i(inherited,)e(but)i
+(not)g(b)q(oth,)g(so)h(the)e(de\014nitions)g(of)h(all)164
+2381 y(attributes)f(\\\014t)h(together")g(completely)c(and)k(without)f
+(con)o(tradiction.)949 2599 y(14)p eop
+%%Page: 15 15
+15 14 bop 164 315 a Fo(8)83 b(Using)27 b(inherited)g(attributes)164
+425 y Fn(This)19 b(section)f(giv)o(es)g(an)h(example)d(indicating)i
+(the)g(use)h(of)g(inherited)e(attributes)i(for)164 485
+y(seman)o(tic)e(analysis)j(in)o(v)o(olving)d(righ)o(t)i(con)o(text.)30
+b(The)19 b(example)e(also)j(giv)o(es)f(a)g(b)q(etter)164
+545 y(idea)d(of)g(ho)o(w)h(Ox)f(co)q(de)g(is)h(used)f(together)g(with)g
+(C)h(co)q(de.)237 606 y(In)c(man)o(y)e(languages,)j(for)g(instance)e(P)
+o(ascal,)h(eac)o(h)g(v)m(ariable)f(declaration)h(is)g(essen-)164
+666 y(tially)h(a)j(list)e(of)h(iden)o(ti\014ers)e(follo)o(w)o(ed)h(b)o
+(y)g(a)h(t)o(yp)q(e)f(sp)q(eci\014er.)21 b(Here)14 b(w)o(e)i(sho)o(w)g
+(a)g(simple)164 726 y(language)j(whose)g(ev)o(ery)e(sen)o(tence)g
+(consists)i(of)g(suc)o(h)f(a)h(v)m(ariable)f(declaration.)27
+b(Our)164 786 y(translator)19 b(parses)h(the)e(input,)g(recording)h(in)
+f(a)h(sym)o(b)q(ol)e(ob)s(ject)h(the)g(iden)o(ti\014er)f(and)164
+846 y(t)o(yp)q(e)g(of)h(eac)o(h)f(v)m(ariable)g(declared.)24
+b(Then)17 b(the)g(sym)o(b)q(ol)g(ob)s(jects)g(are)g(prin)o(ted)g
+(during)164 907 y(a)g(p)q(ostorder)g(tra)o(v)o(ersal.)237
+956 y(Here)e(is)h(the)g(L-\014le:)164 1048 y Fc(\045{)164
+1097 y(#include)k("y.tab.h")164 1147 y(#include)g(<string.h>)164
+1247 y(#define)g(lexeme)h(strcpy\(\(char)e(*\)malloc\(yyleng+1\))o
+(,yyte)o(xt\))164 1297 y(\045})164 1396 y(\045\045)164
+1446 y([)j(\\n\\t\\f]+)172 b(;)164 1496 y(real)304 b(return\(REAL\);)
+164 1546 y(integer)238 b(return\(INT\);)164 1596 y(boolean)g
+(return\(BOOL\);)164 1645 y([a-zA-Z]+)194 b(return\(IDENT\);)41
+b(@{)21 b(@IDENT.string@)e(=)j(lexeme;)e(@})164 1695
+y(",")326 b(return\(','\);)164 1745 y(";")g(return\(';'\);)164
+1795 y(":")g(return\(':'\);)164 1845 y(.)370 b({fprintf\(stderr,"il)o
+(lega)o(l)19 b(character\\n"\);)g(exit\(-1\);})164 1894
+y(\045\045)237 1996 y Fn(The)c(de\014nitions)g(in)f(section)h(7)g
+(together)g(with)f(the)h(follo)o(wing)g(Y-\014le)f(imply)e(that:)237
+2098 y Fb(\017)24 b Fg(string)14 b Fn(is)i(a)h(syn)o(thesized)e
+(attribute)h(of)g Fg(IDENT)p Fn(.)237 2200 y Fb(\017)24
+b Fg(sym)15 b Fn(is)h(an)h(inherited)e(attribute)h(of)g
+Fg(IDENT)p Fn(.)237 2301 y Fb(\017)24 b Fg(tMark)14 b
+Fn(is)i(an)h(inherited)e(attribute)h(of)h Fg(varList)p
+Fn(.)237 2403 y Fb(\017)24 b Fg(varDecl)14 b Fn(has)j(no)f(attributes.)
+949 2599 y(15)p eop
+%%Page: 16 16
+16 15 bop 164 307 a Fc(\045token)21 b(REAL)f(INT)i(BOOL)f(IDENT)164
+407 y(\045{)164 457 y(#include)f(<stdlib.h>)164 506 y(struct)h(sym)g
+({char)f(*str,*typeMark;};)164 606 y(struct)h(sym)g(*allocSym\(cp,t\))
+208 656 y(char)g(*cp,*t;)208 706 y({struct)f(sym)h(*pSym;)229
+756 y(pSym)g(=)h(\(struct)e(sym)h(*\))h(malloc\(sizeof)d(\(struct)h
+(sym\)\);)229 805 y(pSym->str)g(=)i(cp;)f(pSym->typeMark)e(=)j(t;)229
+855 y(return)f(pSym;)208 905 y(})164 955 y(\045})164
+1054 y(@attributes)e({char)i(*string;)f(struct)h(sym)g(*sym;)g(})g
+(IDENT)164 1104 y(@attributes)e({char)i(*tMark;)413 b(})21
+b(varList)164 1154 y(@traversal)f(@postorder)f(myT)j(/*)f(my)g
+(Traversal)f(*/)164 1254 y(\045\045)164 1303 y(varDecl)86
+b(:)174 b(varList)20 b(':')h(REAL)g(';')600 1353 y(@{)g(@i)h
+(@varList.tMark@)c(=)k("real";)86 b(@})404 1453 y(|)174
+b(varList)20 b(':')h(INT)h(';')600 1503 y(@{)f(@i)h(@varList.tMark@)c
+(=)k("integer";)e(@})404 1602 y(|)174 b(varList)20 b(':')h(BOOL)g(';')
+600 1652 y(@{)g(@i)h(@varList.tMark@)c(=)k("boolean";)e(@})404
+1702 y(;)164 1802 y(varList)86 b(:)174 b(IDENT)600 1851
+y(@{)21 b(@i)h(@IDENT.sym@)d(=)774 1901 y(allocSym\(@IDENT.st)o(ring@)o
+(,@var)o(List.)o(tMark)o(@\);)665 1951 y(@myT)i(printf\("\045s:)f
+(\045s;\\n",@IDENT.sy)o(m@->t)o(ypeMa)o(rk,)1188 2001
+y(@IDENT.sym@->str\);)600 2051 y(@})404 2100 y(|)174
+b(varList)20 b(',')h(IDENT)600 2150 y(@{)g(@i)h(@varList.1.tMar)o(k@)d
+(=)i(@varList.tMark@;)665 2200 y(@i)h(@IDENT.sym@)d(=)774
+2250 y(allocSym\(@IDENT.st)o(ring@)o(,@var)o(List.)o(tMark)o(@\);)665
+2300 y(@myT)i(printf\("\045s:)f(\045s;\\n",@IDENT.sy)o(m@->t)o(ypeMa)o
+(rk,)1188 2350 y(@IDENT.sym@->str\);)600 2399 y(@})404
+2449 y(;)949 2599 y Fn(16)p eop
+%%Page: 17 17
+17 16 bop 164 307 a Fc(\045\045)164 357 y(main\(\))208
+407 y({return\(yyparse)o(\(\)\);)18 b(})164 573 y Fo(9)83
+b(Ov)n(erview)25 b(of)j(other)f(features)164 683 y Fn(This)21
+b(section)f(brie\015y)g(describ)q(es)h(some)e(Ox)i(features)f(that)i
+(are)e(pro)o(vided)g(for)h(con-)164 743 y(v)o(enience)d(or)i(for)g(adv)
+m(anced)h(or)f(sp)q(ecialized)e(use.)32 b(Detailed)20
+b(descriptions)f(of)h(these)164 803 y(features)c(app)q(ear)h(in)f(the)g
+Fh(Ox)i(User)g(R)n(efer)n(enc)n(e)f(Manual)5 b Fn(.)164
+948 y Fd(9.1)70 b(Macro)23 b(facilit)n(y)164 1040 y Fn(Ox's)17
+b(input)h(sp)q(eci\014cation)f(ma)o(y)g(b)q(e)h(suc)o(h)f(that)h(the)g
+(same)f(or)h(similar)e(text)h(app)q(ears)164 1100 y(in)23
+b(more)g(than)h(one)g(place)g(in)f(attribute)h(reference)e(sections.)44
+b(Ox)23 b(has)i(a)f(macro)164 1160 y(substitution)16
+b(feature)g(that)h(can)g(b)q(e)f(used)g(to)h(decrease)f(v)o(erb)q(osit)
+o(y)f(in)h(suc)o(h)g(cases.)164 1305 y Fd(9.2)70 b(Automatic)21
+b(generation)h(of)i(cop)n(y)f(rules)164 1397 y Fn(Often)13
+b(a)g(Y-\014le)f(has)i(attribute)f(de\014nitions)g(that)h(function)f
+(only)f(to)i(cop)o(y)f(an)g(instance)164 1457 y(b)q(elonging)j(to)g
+(one)g(no)q(de)g(to)g(a)g(lik)o(e-named)d(instance)j(b)q(elonging)g(to)
+g(the)f(no)q(de's)h(par-)164 1517 y(en)o(t)g(or)i(c)o(hild.)k(Large)c
+(attribute)f(grammars)f(tend)g(to)i(ha)o(v)o(e)e(man)o(y)g(suc)o(h)h
+(de\014nitions,)164 1578 y(whic)o(h)i(are)g(sometimes)e(called)h
+Fh(c)n(opy)i(rules)t Fn(.)32 b(The)20 b(situation)f(is)h(conspicuous)g
+(when)164 1638 y(con)o(textual)12 b(information)f(is)i(mo)o(v)o(ed)d
+(leafw)o(ard)i(via)h(inherited)e(attributes.)20 b(Ox)12
+b(syn)o(tax)164 1698 y(pro)o(vides)k(w)o(a)o(ys)g(of)h(sp)q(ecifying)e
+(that)i(a)g(cop)o(y)f(rule)f(is)i(global)f(to)h(the)f(attribute)g
+(gram-)164 1758 y(mar,)f(ob)o(viating)h(rep)q(etition)f(of)i(attribute)
+f(de\014nitions)g(in)g(man)o(y)f(grammar)f(rules.)164
+1903 y Fd(9.3)70 b(Using)22 b(Ox)h(with)f(scanners)h(not)g(based)g(on)h
+(Lex)164 1995 y Fn(By)15 b(default,)g(Ox)h(pro)o(vides)f(prepro)q
+(cessing)h(for)g(Lex)g(\014les)f(augmen)o(ted)f(with)i(Ox)f(con-)164
+2055 y(structs.)21 b(By)13 b(using)i(a)g(command)d(line)h(option,)i(Ox)
+f(can)g(b)q(e)g(informed)f(that)i(the)f(L-\014le)164
+2115 y(con)o(tains)23 b(Ox-augmen)o(ted)e(C)i(co)q(de)g(rather)g(than)g
+(the)g(usual)g(Ox-augmen)o(ted)e(Lex)164 2176 y(co)q(de.)164
+2320 y Fd(9.4)70 b(Use)22 b(of)h(m)n(ultiple)c(scanners)164
+2412 y Fn(Some)e(translators)i(con)o(tain)f(sev)o(eral)f(scanners.)28
+b(Suc)o(h)18 b(a)g(translator)h(is)f(designed)g(so)164
+2473 y(that)i(at)g(an)o(y)f(momen)o(t,)e(it)i(is)g(using)h(one)f
+(scanner)h(or)g(another,)g(and)g(switc)o(hes)f(to)h(a)949
+2599 y(17)p eop
+%%Page: 18 18
+18 17 bop 164 307 a Fn(di\013eren)o(t)16 b(one)h(when)g(there)f(is)g(a)
+h(c)o(hange)g(in)f(con)o(text.)22 b(An)16 b(Ox)h(translator)h(that)f
+(uses)164 367 y(more)g(than)i(one)f(scanner)h(can)f(b)q(e)h
+(constructed)f(b)o(y)g(submitting)f(to)h(Ox)g(more)f(than)164
+428 y(one)f(L-\014le.)164 572 y Fd(9.5)70 b(Stripping)22
+b(Ox)h(constructs)164 664 y Fn(Occasionally)l(,)11 b(the)h(Ox)f(user)h
+(ma)o(y)e(desire)h(copies)h(of)g(the)f(Y-\014le)g(and)i(L-\014le\(s\))f
+(stripp)q(ed)164 725 y(of)17 b(Ox-sp)q(eci\014c)f(constructs.)23
+b(By)17 b(a)g(command-line)d(option,)j(the)f(Ox)h(user)g(can)g
+(\014lter)164 785 y(all)f(Ox-sp)q(eci\014c)f(constructs)h(from)f(the)h
+(inputs,)g(to)h(obtain)f(\014les)g(acceptable)f(to)i(Y)l(acc)164
+845 y(and)i(Lex.)28 b(The)18 b(original)h(copies)f(of)h(the)f(Y-\014le)
+g(and)h(L-\014le\(s\))f(are)h(unc)o(hanged,)g(but)164
+905 y(Ox's)d(outputs)i(on)g Fg(oxout*.*)c Fn(con)o(tain)j(neither)f(Ox)
+h(constructs)g(nor)h(the)f(usual)g(Ox-)164 965 y(generated)f
+(parse-tree-managemen)o(t)e(co)q(de.)164 1110 y Fd(9.6)70
+b(Accessing)21 b(Y)-6 b(acc)23 b(pseudo)n(v)l(ariables)164
+1202 y Fn(A)o(ttribute)17 b(de\014nitions)g(that)i(refer)e(to)i(the)e
+(Y)l(acc)h(pseudo)o(v)m(ariables)g Fg($$)p Fn(,)f Fg($1)p
+Fn(,)h Fg($2)p Fn(,)f(etc.)164 1262 y(are)f(p)q(ermitted)f(in)g(v)m
+(arious)i(forms,)e(including:)237 1383 y Fg(@i)25 b(@)p
+Fh(gr)n(ammarsymb)n(ol)p Fg(.)p Fn([)p Fh(inte)n(ger)p
+Fg(.)p Fn(])p Fh(attributename)p Fg(@)15 b(=)25 b($)p
+Fa(n)p Fn(;)164 1503 y(where)14 b Fg($)p Fa(n)g Fn(denotes)h(a)g(Y)l
+(acc)f(pseudo)o(v)m(ariable.)20 b(It)14 b(is)h(also)g(p)q(ossible)f(to)
+h(cop)o(y)f(attribute)164 1563 y(instances)i(in)o(to)g(pseudo)o(v)m
+(ariables.)164 1708 y Fd(9.7)70 b(Expressing)23 b(dep)r(endencies)d
+(explicitl)o(y)164 1800 y Fn(Supp)q(ose)13 b(that)g(y)o(ou)f(ha)o(v)o
+(e)f(a)i(C)f(function)g Fg(fun)f Fn(in)h(a)h(library)l(,)f(and)g(that)h
+(y)o(ou)f(w)o(an)o(t)g(to)h(use)164 1860 y(it)k(to)h(de\014ne)f(an)g
+(attribute)g(o)q(ccurrence,)g(sa)o(y)g Fg(sym.attrb)p
+Fn(,)d(in)j(terms)f(of)i(some)e(other)164 1920 y(o)q(ccurrence)23
+b Fg(othersym.o)o(the)o(rA)o(ttr)o(b)p Fn(.)40 b(F)l(urther)24
+b(supp)q(ose)h(that)f(the)f(\014rst)h(formal)164 1981
+y(parameter)c(of)h Fg(fun)g Fn(is)g(of)g(the)g(same)f(t)o(yp)q(e)h(as)h
+Fg(othersym.)o(oth)o(erA)o(tt)o(rb)p Fn(,)d(and)i(that)164
+2041 y Fg(fun)p Fn('s)14 b(second)h(formal)f(parameter)f(is)i(a)h(p)q
+(oin)o(ter)e(to)i(something)e(of)h(the)g(same)f(t)o(yp)q(e)g(as)164
+2101 y Fg(sym.attrb)p Fn(.)21 b(A)16 b(call)h(to)g Fg(fun)f
+Fn(c)o(hanges)i(the)f(con)o(ten)o(ts)f(of)i(the)f(lo)q(cation)g
+(indicated)f(b)o(y)164 2161 y(its)g(second)g(argumen)o(t.)237
+2221 y(It)g(w)o(ouldn't)g(w)o(ork)g(to)h(write:)292 2323
+y Fg(@i)25 b(fun\(@other)o(Sym)o(.ot)o(he)o(rAt)o(trb)o(@,)d
+(&@sym.attr)o(b@\))o(;)949 2599 y Fn(18)p eop
+%%Page: 19 19
+19 18 bop 164 307 a Fn(since)19 b(the)g(mo)q(de)f(ann)o(uciator)i
+Fg(@i)e Fn(\(see)h(section)g(4.1\))h(implies)d(that)j(the)f(o)q
+(ccurrence)164 367 y(app)q(earing)c(\014rst)g(\()p Fg(otherSym.)o(oth)o
+(er)o(Att)o(rb)p Fn(\))c(is)j(the)g(o)q(ccurrence)f(b)q(eing)h
+(de\014ned,)g(and)164 428 y(that)j(it)e(dep)q(ends)i(on)g
+Fg(sym.attrb)o Fn(.)i(Actually)14 b(y)o(ou)j(in)o(tend)e(the)h(opp)q
+(osite.)237 488 y(One)c(solution)h(w)o(ould)g(b)q(e)g(to)g(mo)q(dify)e
+(the)h(de\014nition)g(of)h Fg(fun)f Fn(\(rev)o(ersing)f(the)i(order)164
+548 y(of)e(its)g(formal)f(parameter)g(list\).)19 b(If)11
+b(y)o(ou)g(don't)g(w)o(an)o(t)g(to)h(disturb)f(the)g(library)l(,)g(ho)o
+(w)o(ev)o(er,)164 608 y(it)16 b(w)o(ould)g(b)q(e)g(b)q(est)h(to)g(use)f
+(Ox's)g Fh(explicit)j(mo)n(de)e(annunciator)23 b Fg(@e)15
+b Fn(as)i(follo)o(ws:)292 710 y Fg(@e)25 b(sym.attrb)d(:)k(otherSym.)o
+(oth)o(er)o(Att)o(rb)c(;)369 770 y(fun\(@other)o(Sym)o(.ot)o(he)o(rAt)o
+(trb)o(@,)g(&@sym.attr)o(b@\))o(;)164 872 y Fn(In)c(the)g(\014rst)g
+(line)f(ab)q(o)o(v)o(e,)h(Ox)g(is)g(explicitly)d(giv)o(en)i(dep)q
+(endency)g(information)h(using)164 932 y(a)f(Mak)o(e-lik)o(e)c(syn)o
+(tax:)21 b(it)16 b(is)g(declared)g(that)g Fg(sym.attrb)d
+Fn(dep)q(ends)k(on)164 992 y Fg(otherSym.o)o(the)o(rA)o(ttr)o(b)p
+Fn(.)38 b(Use)22 b(of)h(the)g(explicit)d(mo)q(de)i(mak)o(es)g(the)g
+(order)h(of)g(the)164 1052 y(o)q(ccurrences)16 b(in)f(the)h(second)h
+(line's)d(call)i(to)g Fg(fun)f Fn(irrelev)m(an)o(t)g(to)i(Ox's)e
+(understanding)164 1112 y(of)i(the)f(dep)q(endencies.)164
+1257 y Fd(9.8)70 b(Generating)22 b(ANSI/ISO/C++)i(output)164
+1349 y Fn(By)15 b(default,)g(the)h(C)g(co)q(de)g(generated)f(b)o(y)h
+(Ox)f(follo)o(ws)h(traditional)f(C)h(syn)o(tax.)21 b(There)164
+1409 y(is,)16 b(ho)o(w)o(ev)o(er,)e(a)j(command-line)c(option)k(to)f
+(pro)q(duce)h(co)q(de)f(compatible)f(with)164 1470 y(ANSI/ISO/C++)g
+(syn)o(tax.)21 b(Th)o(us)c(it)e(is)h(easy)h(to)f(mak)o(e)e(Ox's)i(co)q
+(de)g(generation)g(con-)164 1530 y(form)f(to)i(the)f(exp)q(ectations)g
+(of)g(practically)f(an)o(y)h(C)h(or)f(C++)h(compiler.)164
+1696 y Fo(10)83 b(Ac)n(kno)n(wledgemen)n(ts)164 1806
+y Fn(This)19 b(is)f(to)h(thank)f(T)l(erry)g(Dineen,)g(Carolyn)h(Gib)q
+(erson,)h(Markus)e(Klingsp)q(or,)h(John)164 1866 y(Levine,)14
+b(Carla)i(Marceau,)f(and)g(Mic)o(hael)f(Seager)h(for)g(their)g(helpful)
+f(reviews)g(of)i(early)164 1926 y(v)o(ersions)g(of)g(this)g(pap)q(er.)
+949 2599 y(19)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF