summaryrefslogtreecommitdiff
path: root/web/funnelAC/hackman/h_manual.ps
diff options
context:
space:
mode:
Diffstat (limited to 'web/funnelAC/hackman/h_manual.ps')
-rw-r--r--web/funnelAC/hackman/h_manual.ps5210
1 files changed, 5210 insertions, 0 deletions
diff --git a/web/funnelAC/hackman/h_manual.ps b/web/funnelAC/hackman/h_manual.ps
new file mode 100644
index 0000000000..3fa3273717
--- /dev/null
+++ b/web/funnelAC/hackman/h_manual.ps
@@ -0,0 +1,5210 @@
+%!PS-Adobe-2.0
+%%Creator: dvips 5.493 Copyright 1986, 1992 Radical Eye Software
+%%Title: h_manual.dvi
+%%CreationDate: Sat Aug 14 17:07:29 1993
+%%Pages: 62
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSCommandLine: dvips h_manual
+%DVIPSSource: TeX output 1993.08.14:1707
+%%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 /@rigin{isls{[0 -1 1 0 0 0]
+concat}if 72 Resolution div 72 VResolution div neg scale isls{Resolution hsize
+-72 div mul 0 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{/FV}{/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 /FV{
+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 40258437 52099154 1000 300 300
+(/users/onl2/coates/startup/tmp/funnelweb/hackman/h_manual.dvi)
+@start /Fa 37 123 df<000FF000007FFC0001F80E0003E01F0007C03F000F803F000F803F00
+0F801E000F800C000F8000000F8000000F8000000F800000FFFFFF00FFFFFF000F801F000F801F
+000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F80
+1F000F801F000F801F000F801F000F801F000F801F000F801F007FF0FFE07FF0FFE01B237FA21F
+>12 D<387CFEFEFE7C3807077C8610>46 D<00180000780001F800FFF800FFF80001F80001F800
+01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800
+01F80001F80001F80001F80001F80001F80001F80001F80001F80001F8007FFFE07FFFE013207C
+9F1C>49 D<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01F83803F800
+03F80003F00003F00007E00007C0000F80001F00003E0000380000700000E01801C01803801807
+00180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D9F1C>I<00FE0007FFC00F07E0
+1E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E00007C0001F8001FE0001FF00
+0007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FEFF00FEFF00FC7E01FC7801F8
+1E07F00FFFC001FE0017207E9F1C>I<00FE0003FFC00703E00E00F01C00F01C00783C00783E00
+783F00783F80783FE0F01FF9E01FFFC00FFF8007FFC003FFE007FFF01E7FF83C1FFC7807FC7801
+FEF000FEF0003EF0001EF0001EF0001CF8001C7800383C00381F01F00FFFC001FF0017207E9F1C
+>56 D<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F800F800007801F
+800007803F000003803F000003807F000001807E000001807E00000180FE00000000FE00000000
+FE00000000FE00000000FE00000000FE00000000FE00000000FE000000007E000000007E000001
+807F000001803F000001803F000003801F800003000F8000030007C000060003F0000C0001F800
+380000FF00F000001FFFC0000003FE000021227DA128>67 D<FFFFFF8000FFFFFFF00007F003FC
+0007F0007E0007F0003F0007F0001F8007F0000FC007F00007E007F00007E007F00007F007F000
+03F007F00003F007F00003F007F00003F807F00003F807F00003F807F00003F807F00003F807F0
+0003F807F00003F807F00003F807F00003F807F00003F007F00003F007F00003F007F00007E007
+F00007E007F0000FC007F0001F8007F0003F0007F0007E0007F003FC00FFFFFFF000FFFFFF8000
+25227EA12B>I<FFFFFFFCFFFFFFFC07F000FC07F0003C07F0001C07F0000C07F0000E07F0000E
+07F0000607F0180607F0180607F0180607F0180007F0380007F0780007FFF80007FFF80007F078
+0007F0380007F0180007F0180007F0180307F0180307F0000307F0000607F0000607F0000607F0
+000E07F0000E07F0001E07F0003E07F001FCFFFFFFFCFFFFFFFC20227EA125>I<FFFFFFF8FFFF
+FFF807F001F807F0007807F0003807F0001807F0001C07F0001C07F0000C07F0000C07F0180C07
+F0180C07F0180007F0180007F0380007F0780007FFF80007FFF80007F0780007F0380007F01800
+07F0180007F0180007F0180007F0000007F0000007F0000007F0000007F0000007F0000007F000
+0007F00000FFFFE000FFFFE0001E227EA123>I<FFFFE0FFFFE003F80003F80003F80003F80003
+F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003
+F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FF
+FFE0FFFFE013227FA115>73 D<FFF000000FFFFFF800001FFF07F800001FE006FC000037E006FC
+000037E006FC000037E0067E000067E0067E000067E0063F0000C7E0063F0000C7E0061F800187
+E0061F800187E0060FC00307E0060FC00307E0060FC00307E00607E00607E00607E00607E00603
+F00C07E00603F00C07E00601F81807E00601F81807E00601F81807E00600FC3007E00600FC3007
+E006007E6007E006007E6007E006003FC007E006003FC007E006001F8007E006001F8007E00600
+1F8007E006000F0007E0FFF00F00FFFFFFF00600FFFF30227EA135>77 D<FFF8001FFEFFFC001F
+FE07FC0000C007FE0000C006FF0000C0067F8000C0063FC000C0061FE000C0060FE000C0060FF0
+00C00607F800C00603FC00C00601FE00C00600FE00C00600FF00C006007F80C006003FC0C00600
+1FE0C006000FF0C0060007F0C0060007F8C0060003FCC0060001FEC0060000FFC00600007FC006
+00007FC00600003FC00600001FC00600000FC006000007C006000003C006000003C0FFF00001C0
+FFF00000C027227EA12C>I<FFFFFF00FFFFFFE007F007F007F001FC07F000FC07F0007E07F000
+7E07F0007F07F0007F07F0007F07F0007F07F0007F07F0007E07F0007E07F000FC07F001FC07F0
+07F007FFFFE007FFFF0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007
+F0000007F0000007F0000007F0000007F0000007F00000FFFF8000FFFF800020227EA126>80
+D<FFFFFE0000FFFFFFC00007F007F00007F001F80007F000FC0007F0007E0007F0007F0007F000
+7F0007F0007F0007F0007F0007F0007F0007F0007F0007F0007E0007F000FC0007F001F80007F0
+07F00007FFFFC00007FFFF800007F00FE00007F007F00007F003F80007F001FC0007F001FC0007
+F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0607F000FE06
+07F000FF0CFFFF803FF8FFFF800FF027227EA12A>82 D<01FC0407FF8C1F03FC3C007C7C003C78
+001C78001CF8000CF8000CFC000CFC0000FF0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03
+FFFE003FFE0003FF00007F00003F00003FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF
+00F8C7FFE080FF8018227DA11F>I<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F0
+0001F0003FF003FDF01FC1F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F
+07E03F18167E951B>97 D<FF000000FF0000001F0000001F0000001F0000001F0000001F000000
+1F0000001F0000001F0000001F0000001F0000001F0000001F0FE0001F3FF8001FF07C001F801E
+001F001F001F000F801F000F801F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F00
+0FC01F000FC01F000F801F001F801F801F001FC03E001EE07C001C3FF800180FC0001A237EA21F
+>I<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC0000FC
+0000FC00007C00007E00007E00003E00301F00600FC0E007FF8000FE0014167E9519>I<0001FE
+000001FE0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E000000
+3E0000003E0000003E0001FC3E0007FFBE000F81FE001F007E003E003E007E003E007C003E00FC
+003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E007C003E007C003E00
+3E007E001E00FE000F83BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87C01E01E0
+3E01F07C00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E0000
+3E00181F00300FC07003FFC000FF0015167E951A>I<003F8000FFC001E3E003C7E007C7E00F87
+E00F83C00F80000F80000F80000F80000F80000F8000FFFC00FFFC000F80000F80000F80000F80
+000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80
+000F80007FF8007FF80013237FA211>I<FF000000FF0000001F0000001F0000001F0000001F00
+00001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F07E0001F1FF8001F
+307C001F403C001F803E001F803E001F003E001F003E001F003E001F003E001F003E001F003E00
+1F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00FFE1FFC0FFE1FF
+C01A237EA21F>104 D<1C003E007F007F007F003E001C000000000000000000000000000000FF
+00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
+FFE0FFE00B247EA310>I<FF00FF001F001F001F001F001F001F001F001F001F001F001F001F00
+1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FF
+E0FFE00B237EA210>108 D<FF07F007F000FF1FFC1FFC001F303E303E001F403E403E001F801F
+801F001F801F801F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
+1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
+001F001F001F001F001F001F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530>I<FF07E000FF
+1FF8001F307C001F403C001F803E001F803E001F003E001F003E001F003E001F003E001F003E00
+1F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00FFE1FF
+C0FFE1FFC01A167E951F>I<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007E
+FC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE00
+17167E951C>I<FE1F00FE3FC01E67E01EC7E01E87E01E87E01F83C01F00001F00001F00001F00
+001F00001F00001F00001F00001F00001F00001F00001F00001F0000FFF000FFF00013167E9517
+>114 D<0FF3003FFF00781F00600700E00300E00300F00300FC00007FE0007FF8003FFE000FFF
+0001FF00000F80C00780C00380E00380E00380F00700FC0E00EFFC00C7F00011167E9516>I<01
+80000180000180000180000380000380000780000780000F80003F8000FFFF00FFFF000F80000F
+80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F81800F81800F81800F
+81800F81800F830007C30003FE0000F80011207F9F16>I<FF01FE00FF01FE001F003E001F003E
+001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F00
+3E001F003E001F003E001F003E001F007E001F00FE000F81BE0007FF3FC001FC3FC01A167E951F
+>I<FFE01FE0FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0180003E0180001
+F0300001F0300000F8600000F86000007CC000007CC000007FC000003F8000003F8000001F0000
+001F0000000E0000000E00001B167F951E>I<FFE7FF07F8FFE7FF07F81F007800C00F80780180
+0F807C01800F807C018007C07E030007C0DE030007E0DE070003E0DF060003E18F060001F18F0C
+0001F38F8C0001FB079C0000FB07D80000FE03D800007E03F000007E03F000007C01F000003C01
+E000003800E000001800C00025167F9528>I<FFE07FC0FFE07FC00F801C0007C0380003E07000
+03F0600001F8C00000F98000007F8000003F0000001F0000001F8000003FC0000037C0000063E0
+0000C1F00001C0F8000380FC0007007E000E003E00FF80FFE0FF80FFE01B167F951E>I<FFE01F
+E0FFE01FE00F8006000F8006000FC00E0007C00C0007E01C0003E0180003E0180001F0300001F0
+300000F8600000F86000007CC000007CC000007FC000003F8000003F8000001F0000001F000000
+0E0000000E0000000C0000000C00000018000078180000FC380000FC300000FC60000069C00000
+7F8000001F0000001B207F951E>I<7FFFF07FFFF07C03E07007C0600FC0E01F80C01F00C03E00
+C07E0000FC0000F80001F00003F03007E03007C0300F80701F80703F00603E00E07C03E0FFFFE0
+FFFFE014167E9519>I E /Fb 44 122 df<00FCF807839C0E079C1C07081C07001C07001C0700
+1C07001C0700FFFFE01C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700
+1C07001C0700FF1FE01617809615>11 D<00FC000782000E07001C07001C02001C00001C00001C
+00001C0000FFFF001C07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C
+07001C0700FF1FE01317809614>I<60F0F070101020204040040A7D830A>44
+D<60F0F06004047D830A>46 D<03000700FF000700070007000700070007000700070007000700
+07000700070007000700070007007FF00C157E9412>49 D<01F00608080C181C301C70006000E0
+00E3E0EC30F018F00CE00EE00EE00E600E600E300C3018183007C00F157F9412>54
+D<07E018302018600C600C700C78183E101F600FC00FF018F8607C601EC00EC006C006C004600C
+38300FE00F157F9412>56 D<07C0183030186018E00CE00CE00EE00EE00E601E301E186E0F8E00
+0E000C001C70187018603020C01F800F157F9412>I<001000003800003800003800005C00005C
+00005C00008E00008E00008E0001070001070003078002038002038007FFC00401C00401C00800
+E00800E01800E03800F0FE03FE17177F961A>65 D<00FC100383300E00B01C0070380030300030
+700010600010E00010E00000E00000E00000E00000E00000E00010600010700010300020380020
+1C00400E008003830000FC0014177E9619>67 D<FFFFE01C00E01C00601C00201C00101C00101C
+00101C04001C04001C04001C0C001FFC001C0C001C04001C04001C04001C00001C00001C00001C
+00001C00001C0000FFC00014177F9617>70 D<007E080381980600580C00381800183000187000
+08700008E00008E00000E00000E00000E00000E003FEE000387000387000383000381800380C00
+380600380380D8007F0817177E961C>I<FF83FE1C00701C00701C00701C00701C00701C00701C
+00701C00701C00701C00701FFFF01C00701C00701C00701C00701C00701C00701C00701C00701C
+00701C0070FF83FE17177F961A>I<FFE00E000E000E000E000E000E000E000E000E000E000E00
+0E000E000E000E000E000E000E000E000E000E00FFE00B177F960D>I<FE0003F81E0003C01700
+05C0170005C0170005C0138009C0138009C011C011C011C011C011C011C010E021C010E021C010
+7041C0107041C0107041C0103881C0103881C0101D01C0101D01C0100E01C0100E01C0380E01C0
+FE040FF81D177F9620>77 D<FC00FE1E00381F001017001013801011C01011C01010E010107010
+103810103810101C10100E10100F101007101003901001D01001D01000F0100070100030380030
+FE001017177F961A>I<00FC000303000E01C01C00E0380070300030700038600018E0001CE000
+1CE0001CE0001CE0001CE0001CE0001C7000387000383000303800701C00E00E01C003030000FC
+0016177E961B>I<7FFFF860381840380840380880380480380480380400380000380000380000
+380000380000380000380000380000380000380000380000380000380000380000380007FFC016
+177F9619>84 D<FF80FE1C00381C00101C00101C00101C00101C00101C00101C00101C00101C00
+101C00101C00101C00101C00101C00101C00101C00100E0020060020030040018180007E001717
+7F961A>I<FF07FC3F803C01E00E001C00E004001C00E004001C017004000E017008000E017008
+000E023808000702381000070238100007041C100003841C200003841C200003880E200001C80E
+400001C80E400001D80F400000F007800000F007800000F0078000006003000000600300000060
+03000021177F9624>87 D<1FC0386038301038003803F81E3830387038E039E039E07970FF1F1E
+100E7F8D12>97 D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001CF8001F
+06001C03001C03801C01801C01C01C01C01C01C01C01C01C01801C03801C03001B0E0010F80012
+17809614>I<07F01838303870106000E000E000E000E000600070083008183007C00D0E7F8D10>
+I<007E00000E00000E00000E00000E00000E00000E00000E00000E0007CE001C3E00300E00700E
+00600E00E00E00E00E00E00E00E00E00600E00700E00301E00182E0007CFC012177F9614>I<0F
+C0186030307038E018FFF8E000E000E000600070083010183007C00D0E7F8D10>I<03E006700E
+701C201C001C001C001C001C00FF801C001C001C001C001C001C001C001C001C001C001C001C00
+FF800C1780960B>I<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC600E
+C006C006C006600C38380FE010157F8D12>I<FC00001C00001C00001C00001C00001C00001C00
+001C00001C00001C7C001D8E001E07001C07001C07001C07001C07001C07001C07001C07001C07
+001C07001C0700FF9FE01317809614>I<183C3C1800000000007C1C1C1C1C1C1C1C1C1C1C1C1C
+FF081780960A>I<0300078007800300000000000000000000001F800380038003800380038003
+800380038003800380038003800380038003804380E300E7007C00091D82960B>I<FC00001C00
+001C00001C00001C00001C00001C00001C00001C00001C3F801C1C001C18001C20001C40001CC0
+001FE0001CF0001C70001C78001C3C001C1E001C1E00FF3FC01217809613>I<FC001C001C001C
+001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80
+091780960A>I<FC7C1F001D8E63801E0781C01C0701C01C0701C01C0701C01C0701C01C0701C0
+1C0701C01C0701C01C0701C01C0701C01C0701C0FF9FE7F81D0E808D1E>I<FC7C001D8E001E07
+001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700FF9FE0130E808D14
+>I<07C018303018600C600CE00EE00EE00EE00EE00E701C3018183007C00F0E7F8D12>I<FCF800
+1F0E001C03001C03801C01801C01C01C01C01C01C01C01C01C01801C03801C07001F0E001CF800
+1C00001C00001C00001C00001C0000FF80001214808D14>I<07C2001C2600381E00700E00600E
+00E00E00E00E00E00E00E00E00600E00700E00301E001C2E0007CE00000E00000E00000E00000E
+00000E00007FC012147F8D13>I<FCF01D381E381C101C001C001C001C001C001C001C001C001C
+00FF800D0E808D0E>I<1F4060C0C040C040E000FF007F801FC001E080608060C060E0C09F000B
+0E7F8D0E>I<080008000800180018003800FF8038003800380038003800380038003840384038
+4038401C800F000A147F930E>I<FC3F001C07001C07001C07001C07001C07001C07001C07001C
+07001C07001C07001C0F000E170003E7E0130E808D14>I<FE1F3C0E3C0C1C081C080E100E1007
+20072003C003C003C001800180100E7F8D13>I<FCFE7C3838383838101C3C201C3C201C4C200E
+4E400E4E400E8640078780078780070380030300030300160E7F8D19>I<FE1F3C0E3C0C1C081C
+080E100E100720072003C003C003C00180018001000100E200E200A400780010147F8D13>121
+D E /Fc 1 50 df<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C000C00FF
+8009107E8F0F>49 D E /Fd 1 50 df<0C001C00EC000C000C000C000C000C000C000C000C000C
+000C000C000C000C000C000C00FFC00A137D9211>49 D E /Fe 59 122
+df<0001FF0000001FFFC000007F80F00000FC00F80001F801F80003F803FC0007F003FC0007F0
+03FC0007F003FC0007F001F80007F000F00007F000000007F000000007F000000007F0000000FF
+FFFFFC00FFFFFFFC00FFFFFFFC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC00
+07F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC
+0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001
+FC007FFF1FFFC07FFF1FFFC07FFF1FFFC0222A7FA926>12 D<0001FF803FE000001FFFE3FFF800
+007F80FFF01E0000FE007F801F0001F800FF003F0003F801FF007F8007F001FE007F8007F001FE
+007F8007F001FE007F8007F000FE003F0007F000FE001E0007F000FE00000007F000FE00000007
+F000FE00000007F000FE000000FFFFFFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF8007F000FE00
+3F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F0
+00FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F
+8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000
+FE003F8007F000FE003F8007F000FE003F8007F000FE003F807FFF0FFFE3FFF87FFF0FFFE3FFF8
+7FFF0FFFE3FFF8352A7FA939>14 D<1C007F007F00FF80FFC0FFC07FC07FC01CC000C000C00180
+018001800300030006000C001800300020000A157BA913>39 D<FFFF80FFFF80FFFF80FFFF80FF
+FF80FFFF8011067F9017>45 D<1C003E007F00FF80FF80FF807F003E001C0009097B8813>I<00
+000300000007800000078000000F8000000F0000000F0000001F0000001E0000003E0000003C00
+00003C0000007C0000007800000078000000F8000000F0000001F0000001E0000001E0000003E0
+000003C0000003C0000007C00000078000000F8000000F0000000F0000001F0000001E0000003E
+0000003C0000003C0000007C0000007800000078000000F8000000F0000001F0000001E0000001
+E0000003E0000003C0000003C0000007C00000078000000F8000000F0000000F0000001F000000
+1E0000001E0000003E0000003C0000007C0000007800000078000000F8000000F0000000F00000
+0060000000193C7CAC22>I<003F800001FFF00007E0FC000FC07E001F803F001F803F003F001F
+803F001F807F001FC07F001FC07F001FC07F001FC0FF001FE0FF001FE0FF001FE0FF001FE0FF00
+1FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF
+001FE07F001FC07F001FC07F001FC07F001FC03F001F803F001F801F803F001F803F000FC07E00
+07E0FC0001FFF000003F80001B277DA622>I<000E00001E00007E0007FE00FFFE00FFFE00F8FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>I<00FF800003FFF0000FFFFC001F
+03FE003800FF007C007F80FE003FC0FF003FC0FF003FE0FF001FE0FF001FE07E001FE03C003FE0
+00003FE000003FC000003FC000007F8000007F000000FE000000FC000001F8000003F0000003E0
+0000078000000F0000001E0000003C00E0007000E000E000E001C001C0038001C0070001C00FFF
+FFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FF
+F00007FFFC000F81FE001F00FF003F80FF003F807F803F807F803F807F801F807F800F007F8000
+00FF000000FF000000FE000001FC000001F8000007F00000FFC00000FFF0000001FC0000007E00
+00007F0000007F8000003FC000003FC000003FE000003FE03C003FE07E003FE0FF003FE0FF003F
+E0FF003FC0FF007FC07E007F807C007F003F01FE001FFFFC0007FFF00000FF80001B277DA622>
+I<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE0000077E00000E
+7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E0003807E0007007E000E
+007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE00
+0000FE000000FE000000FE000000FE000000FE000000FE000000FE00007FFFF8007FFFF8007FFF
+F81D277EA622>I<0C0003000F803F000FFFFE000FFFFC000FFFF8000FFFF0000FFFE0000FFFC0
+000FFE00000E0000000E0000000E0000000E0000000E0000000E0000000E7FC0000FFFF8000F80
+FC000E003E000C003F0000001F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE
+001FE0FE001FE0FE001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFF800
+03FFF00000FF80001B277DA622>I<0007F000003FFC0000FFFE0001FC0F0003F01F8007E03F80
+0FC03F801FC03F801F803F803F801F003F8000007F0000007F0000007F000000FF000000FF0FC0
+00FF3FF800FF707C00FFC03E00FFC03F00FF801F80FF801FC0FF001FC0FF001FE0FF001FE0FF00
+1FE07F001FE07F001FE07F001FE07F001FE03F001FE03F001FC01F801FC01F803F800FC03F0007
+E07E0003FFFC0000FFF000003FC0001B277DA622>I<380000003E0000003FFFFFF03FFFFFF03F
+FFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C00E0003800E0007000
+E000E0000000E0000001C000000380000007800000078000000F0000000F0000001F0000001F00
+00003F0000003E0000003E0000007E0000007E0000007E0000007E000000FE000000FE000000FE
+000000FE000000FE000000FE000000FE000000FE0000007C0000003800001C297CA822>I<003F
+C00001FFF00003FFFC0007C07E000F003F001E001F001E000F803E000F803E000F803F000F803F
+000F803FC00F003FF01F001FFC1E001FFE3C000FFFF80007FFE00003FFF80001FFFC0001FFFE00
+07FFFF000F0FFF801E03FFC03C01FFC07C007FE078001FE0F80007E0F80007E0F80003E0F80003
+E0F80003E0F80003C07C0003C07C0007803F000F001FC03E000FFFFC0003FFF800007FC0001B27
+7DA622>I<007F800001FFF00007FFF8000FE0FC001F807E003F803F007F003F007F001F80FF00
+1F80FF001FC0FF001FC0FF001FC0FF001FE0FF001FE0FF001FE0FF001FE07F001FE07F003FE03F
+003FE01F807FE00F807FE007C1DFE003FF9FE0007E1FE000001FE000001FC000001FC000001FC0
+00003F801F003F803F803F003F803F003F807E003F807C001F01F8001E03F0000FFFE00007FF80
+0001FE00001B277DA622>I<01FF000FFFE01E03F03801F87801FCFC01FEFE01FEFE01FEFE01FE
+7C01FE3801FC0003F80007F00007C0000F80001F00001E00003C00003800003800007800007000
+00700000700000700000700000700000000000000000000000000000000000000000700000F800
+01FC0003FE0003FE0003FE0001FC0000F800007000172A7CA920>63 D<000003800000000007C0
+0000000007C0000000000FE0000000000FE0000000000FE0000000001FF0000000001FF0000000
+003FF8000000003FF8000000003FF80000000073FC0000000073FC00000000F3FE00000000E1FE
+00000000E1FE00000001C0FF00000001C0FF00000003C0FF80000003807F80000007807FC00000
+07003FC0000007003FC000000E003FE000000E001FE000001E001FF000001C000FF000001FFFFF
+F000003FFFFFF800003FFFFFF80000780007FC0000700003FC0000700003FC0000E00001FE0000
+E00001FE0001E00001FF0001C00000FF0001C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001F
+FFFE2F297EA834>65 D<FFFFFFF80000FFFFFFFF8000FFFFFFFFC00003F8001FF00003F8000FF8
+0003F80007FC0003F80003FC0003F80003FC0003F80003FE0003F80001FE0003F80001FE0003F8
+0001FE0003F80003FE0003F80003FC0003F80003FC0003F80007F80003F8000FF00003F8001FE0
+0003F800FFC00003FFFFFE000003FFFFFFE00003F80007F00003F80003FC0003F80001FE0003F8
+0001FE0003F80000FF0003F80000FF0003F80000FF8003F80000FF8003F80000FF8003F80000FF
+8003F80000FF8003F80000FF8003F80000FF0003F80001FF0003F80003FE0003F80007FC0003F8
+001FF800FFFFFFFFF000FFFFFFFFC000FFFFFFFE000029297DA831>I<00003FF001800003FFFE
+0380000FFFFF8780003FF007DF8000FF8001FF8001FE00007F8003FC00003F8007F000001F800F
+F000000F801FE0000007801FE0000007803FC0000007803FC0000003807FC0000003807F800000
+03807F8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF
+8000000000FF8000000000FF8000000000FF80000000007F80000000007F80000000007FC00000
+03803FC0000003803FC0000003801FE0000003801FE0000007000FF00000070007F000000E0003
+FC00001E0001FE00003C0000FF8000F800003FF007E000000FFFFFC0000003FFFF000000003FF8
+000029297CA832>I<FFFFFFF80000FFFFFFFF8000FFFFFFFFE00003FC001FF80003FC0007FC00
+03FC0001FE0003FC0000FF0003FC00007F8003FC00003FC003FC00001FC003FC00001FE003FC00
+001FE003FC00000FF003FC00000FF003FC00000FF003FC00000FF003FC00000FF803FC00000FF8
+03FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00
+000FF803FC00000FF803FC00000FF003FC00000FF003FC00000FF003FC00001FE003FC00001FE0
+03FC00001FC003FC00003FC003FC00007F8003FC00007F0003FC0001FE0003FC0003FC0003FC00
+1FF800FFFFFFFFE000FFFFFFFF8000FFFFFFFC00002D297DA835>I<FFFFFFFFC0FFFFFFFFC0FF
+FFFFFFC003FC003FC003FC000FE003FC0003E003FC0001E003FC0001E003FC0000E003FC0000E0
+03FC0000E003FC0000F003FC03807003FC03807003FC03807003FC03800003FC07800003FC0780
+0003FC1F800003FFFF800003FFFF800003FFFF800003FC1F800003FC07800003FC07800003FC03
+800003FC03800003FC03800003FC03800003FC00000003FC00000003FC00000003FC00000003FC
+00000003FC00000003FC00000003FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024
+297DA82B>70 D<00007FE003000003FFFC0700001FFFFF0F00003FF00FFF0000FF8001FF0001FE
+0000FF0003F800003F0007F000003F000FF000001F001FE000000F001FE000000F003FC000000F
+003FC0000007007FC0000007007F80000007007F8000000000FF8000000000FF8000000000FF80
+00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8001FFFF
+F87F8001FFFFF87F8001FFFFF87FC00000FF003FC00000FF003FC00000FF001FE00000FF001FE0
+0000FF000FF00000FF0007F00000FF0003F80000FF0001FE0000FF0000FF8001FF00003FF007BF
+00001FFFFF1F000003FFFE0F0000007FF003002D297CA836>I<FFFFF01FFFFEFFFFF01FFFFEFF
+FFF01FFFFE03FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000
+7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003
+FC00007F8003FC00007F8003FC00007F8003FFFFFFFF8003FFFFFFFF8003FFFFFFFF8003FC0000
+7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003
+FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000
+7F8003FC00007F8003FC00007F8003FC00007F80FFFFF01FFFFEFFFFF01FFFFEFFFFF01FFFFE2F
+297DA836>I<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
+01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
+01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00
+01FE00FFFFFCFFFFFCFFFFFC16297EA81A>I<FFFFFC0000FFFFFC0000FFFFFC000003FC000000
+03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000
+0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00
+000003FC00000003FC00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC
+0001C003FC0003C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003
+FC001F8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297DA829>76
+D<FFFE0000001FFFC0FFFE0000001FFFC0FFFF0000003FFFC003FF0000003FF00003FF0000003F
+F00003BF80000077F00003BF80000077F000039FC00000E7F000039FC00000E7F000038FE00001
+C7F000038FE00001C7F0000387F0000387F0000387F0000387F0000387F0000387F0000383F800
+0707F0000383F8000707F0000381FC000E07F0000381FC000E07F0000380FE001C07F0000380FE
+001C07F0000380FF003807F00003807F003807F00003807F003807F00003803F807007F0000380
+3F807007F00003801FC0E007F00003801FC0E007F00003800FE1C007F00003800FE1C007F00003
+800FE1C007F000038007F38007F000038007F38007F000038003FF0007F000038003FF0007F000
+038001FE0007F000038001FE0007F000038000FC0007F000038000FC0007F000FFFE00FC01FFFF
+C0FFFE007801FFFFC0FFFE007801FFFFC03A297DA841>I<FFFC0000FFFEFFFE0000FFFEFFFF00
+00FFFE03FF8000038003FF8000038003BFC0000380039FE0000380039FF0000380038FF8000380
+0387F80003800383FC0003800381FE0003800381FF0003800380FF80038003807FC0038003803F
+C0038003801FE0038003800FF0038003800FF80380038007FC0380038003FC0380038001FE0380
+038000FF0380038000FF83800380007FC3800380003FE3800380001FE3800380000FF380038000
+07FB8003800007FF8003800003FF8003800001FF8003800000FF80038000007F80038000007F80
+038000003F80038000001F80038000000F80FFFE00000780FFFE00000380FFFE000003802F297D
+A836>I<0000FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007F00003F80003F8
+0007F00001FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803FC000007F807FC0
+00007FC07F8000003FC07F8000003FC07F8000003FC0FF8000003FE0FF8000003FE0FF8000003F
+E0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF80
+00003FE07F8000003FC07FC000007FC07FC000007FC03FC000007F803FC000007F801FE00000FF
+001FE00000FF000FF00001FE0007F00001FC0003F80003F80001FC0007F00000FF001FE000003F
+C07F8000000FFFFE00000000FFE000002B297CA834>I<FFFFFFF800FFFFFFFF00FFFFFFFFC003
+FC003FE003FC000FF003FC0007F803FC0007FC03FC0003FC03FC0003FE03FC0003FE03FC0003FE
+03FC0003FE03FC0003FE03FC0003FE03FC0003FE03FC0003FC03FC0007FC03FC0007F803FC000F
+F003FC003FE003FFFFFF8003FFFFFE0003FC00000003FC00000003FC00000003FC00000003FC00
+000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
+00000003FC00000003FC00000003FC000000FFFFF00000FFFFF00000FFFFF0000027297DA82F>
+I<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC007FE00003FC000FF00003FC0007F80003FC
+0007FC0003FC0003FC0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE0003FC0003FE
+0003FC0003FE0003FC0003FC0003FC0007F80003FC0007F80003FC001FE00003FC007FC00003FF
+FFFE000003FFFFF0000003FC00FC000003FC007F000003FC003F800003FC003F800003FC001FC0
+0003FC001FE00003FC001FE00003FC001FE00003FC001FE00003FC001FE00003FC001FF00003FC
+001FF00003FC001FF00003FC001FF00703FC001FF80703FC000FF80703FC0007F80EFFFFF003FE
+1CFFFFF001FFF8FFFFF0003FF030297DA834>82 D<007F806003FFF0E007FFF9E00F807FE01F00
+1FE03E0007E07C0003E07C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FF
+C000007FFE00007FFFE0003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000FFFFE00007FFF0
+00007FF000000FF8000007F8000003F8600001F8E00001F8E00001F8E00001F8F00001F0F00001
+F0F80003F0FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE00C01FF0001D297CA826>I<7FFFFF
+FFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03FC07E003FC007C078003FC003C078003FC003C0
+70003FC001C0F0003FC001E0F0003FC001E0E0003FC000E0E0003FC000E0E0003FC000E0E0003F
+C000E0E0003FC000E000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
+00003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003F
+C0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
+00003FC0000000003FC0000000003FC0000000003FC00000007FFFFFE000007FFFFFE000007FFF
+FFE0002B287EA730>I<FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC03FC0000070003FC000007
+0003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC
+0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC000007
+0003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC
+0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC000007
+0001FC00000E0001FE00000E0000FE00001C00007E00001C00007F00003800003FC000F000000F
+F007E0000007FFFFC0000001FFFF000000001FF800002E297DA835>I<FFFFF0003FFF80FFFFF0
+003FFF80FFFFF0003FFF8003FE000001E00001FE000001C00001FF000003C00000FF0000038000
+00FF0000038000007F8000070000007F8000070000007FC0000F0000003FC0000E0000003FE000
+1E0000001FE0001C0000001FF0001C0000000FF000380000000FF0003800000007F80070000000
+07F8007000000007FC00F000000003FC00E000000003FE01E000000001FE01C000000001FF01C0
+00000000FF038000000000FF038000000000FF8780000000007F8700000000007FCF0000000000
+3FCE00000000003FFE00000000001FFC00000000001FFC00000000000FF800000000000FF80000
+0000000FF8000000000007F0000000000007F0000000000003E0000000000003E0000000000001
+C000000031297FA834>I<FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF003
+FC0001FE00001C0003FC0001FE00001C0001FE0001FF0000380001FE0000FF0000380001FF0000
+FF0000780000FF0000FF8000700000FF0000FF8000700000FF8000FF8000F000007F8001FFC000
+E000007F8001FFC000E000003FC003FFE001C000003FC0039FE001C000003FE0039FE003C00000
+1FE0070FF0038000001FE0070FF0038000001FF00F0FF0078000000FF00E07F8070000000FF00E
+07F80700000007F81E07FC0E00000007F81C03FC0E00000007FC1C03FC1E00000003FC3801FE1C
+00000003FC3801FE1C00000001FE7801FF3800000001FE7000FF3800000001FE7000FF38000000
+00FFF000FFF000000000FFE0007FF000000000FFE0007FF0000000007FC0003FE0000000007FC0
+003FE0000000003FC0003FC0000000003F80001FC0000000003F80001FC0000000001F80001F80
+000000001F00000F80000000001F00000F80000000000E00000700000044297FA847>I<01FF80
+0007FFF0000F81F8001FC07E001FC07E001FC03F000F803F8007003F8000003F8000003F800000
+3F80000FFF8000FFFF8007FC3F800FE03F803F803F803F003F807F003F80FE003F80FE003F80FE
+003F80FE003F807E007F807F00DF803F839FFC0FFF0FFC01FC03FC1E1B7E9A21>97
+D<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000000FE00000000FE000
+00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE1
+FE00000FE7FF80000FFE07E0000FF801F0000FF000F8000FE000FC000FE000FE000FE0007F000F
+E0007F000FE0007F000FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F80
+0FE0007F800FE0007F000FE0007F000FE0007F000FE000FE000FE000FC000FF001F8000FF803F0
+000F9E07E0000F07FF80000E01FC0000212A7EA926>I<001FF80000FFFE0003F01F0007E03F80
+0FC03F801F803F803F801F007F800E007F0000007F000000FF000000FF000000FF000000FF0000
+00FF000000FF000000FF0000007F0000007F0000007F8000003F8001C01F8001C00FC0038007E0
+070003F01E0000FFFC00001FE0001A1B7E9A1F>I<00003FF80000003FF80000003FF800000003
+F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8000000
+03F800000003F800000003F800000003F800001FE3F80000FFFBF80003F03FF80007E00FF8000F
+C007F8001F8003F8003F8003F8007F0003F8007F0003F8007F0003F800FF0003F800FF0003F800
+FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F0003F8007F0003F8
+003F8003F8001F8003F8000F8007F80007C00FF80003F03BFF8000FFF3FF80003FC3FF80212A7E
+A926>I<003FE00001FFF80003F07E0007C01F000F801F801F800F803F800FC07F000FC07F0007
+C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF000000FF0000007F0000007F00
+00007F0000003F8000E01F8000E00FC001C007E0038003F81F0000FFFE00001FF0001B1B7E9A20
+>I<0007F0003FFC00FE3E01F87F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007
+F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007
+F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
+F0007FFF807FFF807FFF80182A7EA915>I<00FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F
+007E107F007F007F007F007F007F007F007F007F007F007F007F003F007E001F007C001F80FC00
+0FC1F8001FFFE00018FF800038000000380000003C0000003E0000003FFFF8001FFFFF001FFFFF
+800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C00
+01F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22>I<FFE0000000FFE0000000
+FFE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000
+000FE00000000FE00000000FE00000000FE00000000FE00000000FE07F00000FE1FFC0000FE787
+E0000FEE03F0000FF803F0000FF803F8000FF003F8000FF003F8000FE003F8000FE003F8000FE0
+03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
+E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80
+FFFE3FFF80212A7DA926>I<07000F801FC03FE03FE03FE01FC00F800700000000000000000000
+0000000000FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2B7DAA14>I<FFE00000FFE00000FFE00000
+0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000
+000FE000000FE000000FE01FFC0FE01FFC0FE01FFC0FE007800FE00F000FE01E000FE03C000FE0
+78000FE0E0000FE3C0000FE7C0000FEFE0000FFFE0000FFFF0000FF3F8000FE3F8000FC1FC000F
+C0FE000FC07F000FC07F000FC03F800FC01FC00FC00FC00FC00FE0FFFC3FFEFFFC3FFEFFFC3FFE
+1F2A7EA924>107 D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
+E00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>I<FFC07F800FF000FFC1FFE03FFC00FFC383
+F0707E000FC603F8C07F000FCC01F9803F000FD801FF003F800FF001FE003F800FF001FE003F80
+0FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC
+003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800F
+E001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F80FFFE1FFFC3
+FFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF8351B7D9A3A>I<FFC07F0000FFC1FFC000FFC787E0000F
+CE03F0000FD803F0000FD803F8000FF003F8000FF003F8000FE003F8000FE003F8000FE003F800
+0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
+000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3F
+FF80211B7D9A26>I<003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007E07F00
+07F07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF
+0007F87F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F0001FFFC00003FE000
+1D1B7E9A22>I<FFE1FE0000FFE7FF8000FFFE07E0000FF803F0000FF001F8000FE000FC000FE0
+00FE000FE000FF000FE0007F000FE0007F000FE0007F800FE0007F800FE0007F800FE0007F800F
+E0007F800FE0007F800FE0007F800FE0007F000FE000FF000FE000FF000FE000FE000FE001FC00
+0FF001F8000FF803F0000FFE0FE0000FE7FF80000FE1FC00000FE00000000FE00000000FE00000
+000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000000FFFE000000FFFE00
+0000FFFE00000021277E9A26>I<FFC1F0FFC7FCFFCE3E0FD87F0FD87F0FF07F0FF03E0FF01C0F
+E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F
+E0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A1C>114 D<03FE300FFFF01E03F03800F070
+0070F00070F00070F80070FC0000FFE0007FFE007FFF803FFFE01FFFF007FFF800FFF80003FC00
+00FC60007CE0003CF0003CF00038F80038FC0070FF01E0F7FFC0C1FF00161B7E9A1B>I<007000
+00700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFF0FFFFF0FFFFF0
+07F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F000
+07F03807F03807F03807F03807F03807F03803F03803F87001F86000FFC0001F8015267FA51B>
+I<FFE03FF800FFE03FF800FFE03FF8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
+F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
+03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE007F80007E007F80007
+E00FF80003F03BFF8001FFF3FF80003FC3FF80211B7D9A26>I<FFFE03FF80FFFE03FF80FFFE03
+FF8007F000700007F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE
+03800000FE038000007F070000007F070000007F8F0000003F8E0000003FDE0000001FDC000000
+1FDC0000000FF80000000FF80000000FF800000007F000000007F000000003E000000003E00000
+0001C00000211B7F9A24>I<FFFE7FFC0FFEFFFE7FFC0FFEFFFE7FFC0FFE0FE007E000E007F003
+F001C007F003F001C007F807F803C003F807F8038003F807F8038001FC0EFC070001FC0EFC0700
+01FE1EFC0F0000FE1C7E0E0000FE1C7E0E0000FF383F1E00007F383F1C00007F783F3C00003FF0
+1FB800003FF01FB800003FF01FF800001FE00FF000001FE00FF000000FC007E000000FC007E000
+000FC007E00000078003C00000078003C0002F1B7F9A32>I<FFFC0FFF00FFFC0FFF00FFFC0FFF
+0007F003C00003F807800001FC07800000FE0F000000FF1E0000007F3C0000003FF80000001FF0
+0000000FF00000000FF000000007F000000007F80000000FFC0000001FFE0000001EFE0000003C
+7F000000783F800000F01FC00001E01FE00001C00FE00003C007F000FFF01FFF80FFF01FFF80FF
+F01FFF80211B7F9A24>I<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007F000700007F800
+F00003F800E00003FC01E00001FC01C00001FC01C00000FE03800000FE038000007F070000007F
+070000007F8F0000003F8E0000003FDE0000001FDC0000001FDC0000000FF80000000FF8000000
+0FF800000007F000000007F000000003E000000003E000000001C000000001C000000003800000
+000380000038078000007C07000000FE0F000000FE0E000000FE1E000000FE3C0000007C780000
+003FE00000000FC000000021277F9A24>I E /Ff 17 121 df<00001E000000003E00000000FE
+00000003FE0000003FFE0000FFFFFE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000F
+FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000
+0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000
+000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00
+00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
+0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F
+FE0000000FFE0000000FFE00007FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC0223879B731>
+49 D<0007FE0000007FFFE00001FFFFF80003FFFFFE0007F01FFF000F8007FF801F0001FFC03E
+0000FFE07F8000FFF07FC0007FF0FFE0007FF8FFF0003FF8FFF0003FFCFFF0003FFCFFF0003FFC
+FFF0003FFC7FE0003FFC3FC0003FFC1F80003FFC0000003FFC0000003FF80000007FF80000007F
+F00000007FF0000000FFE0000000FFC0000001FF80000001FF00000003FE00000007FC00000007
+F80000000FF00000001FC00000003F800000007F00000000FC00000001F800000001F0003C0003
+E0003C0007C0003C000F000078001E000078003C00007800780000F800F00000F801FFFFFFF803
+FFFFFFF007FFFFFFF00FFFFFFFF01FFFFFFFF03FFFFFFFF07FFFFFFFF0FFFFFFFFF0FFFFFFFFE0
+FFFFFFFFE0FFFFFFFFE026387BB731>I<0003FF8000001FFFF000007FFFFE0000FE03FF0001F0
+00FF8003C000FFC00780007FE00FF0007FF00FF8007FF01FFC007FF81FFE007FF81FFE007FF81F
+FE007FF81FFE007FF81FFE007FF80FFC007FF007F8007FF003F0007FF0000000FFE0000000FFC0
+000001FF80000001FF00000003FE00000007FC0000001FF000000FFFC000000FFF8000000FFFF8
+00000003FE00000000FF800000007FE00000003FF00000003FF80000003FFC0000001FFC000000
+1FFE0000001FFE0200001FFF1FC0001FFF3FE0001FFF7FF0001FFF7FF0001FFFFFF8001FFFFFF8
+001FFFFFF8001FFEFFF8001FFEFFF0001FFE7FF0003FFC7FE0003FFC3FC0003FF81F80007FF01F
+E000FFE007FC03FFC003FFFFFF0001FFFFFE00003FFFF0000007FF800028397CB731>I<000000
+07C0000000000FC0000000000FC0000000001FC0000000003FC0000000007FC000000000FFC000
+000000FFC000000001FFC000000003FFC000000007FFC00000000FFFC00000000FFFC00000001E
+FFC00000003CFFC00000007CFFC0000000F8FFC0000000F0FFC0000001E0FFC0000003C0FFC000
+0007C0FFC000000F80FFC000000F00FFC000001E00FFC000003C00FFC000007C00FFC00000F800
+FFC00000F000FFC00001E000FFC00003C000FFC00007C000FFC0000F8000FFC0000F0000FFC000
+1E0000FFC0003C0000FFC0007C0000FFC000F80000FFC000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFF
+FFFFC0FFFFFFFFFFC0000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000
+000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000007FFFFFFC00007FF
+FFFFC00007FFFFFFC00007FFFFFFC02A377DB631>I<00000001F80000000000000001F8000000
+0000000003FC0000000000000003FC0000000000000007FE0000000000000007FE000000000000
+0007FE000000000000000FFF000000000000000FFF000000000000001FFF800000000000001FFF
+800000000000001FFF800000000000003FFFC00000000000003FFFC00000000000007FFFE00000
+000000007DFFE00000000000007DFFE0000000000000FDFFF0000000000000F8FFF00000000000
+01F8FFF8000000000001F07FF8000000000001F07FF8000000000003F07FFC000000000003E03F
+FC000000000007E03FFE000000000007C01FFE00000000000FC01FFF00000000000F801FFF0000
+0000000F800FFF00000000001F800FFF80000000001F0007FF80000000003F0007FFC000000000
+3E0003FFC0000000003E0003FFC0000000007E0003FFE0000000007C0001FFE000000000FC0001
+FFF000000000F80000FFF000000000F80000FFF000000001FFFFFFFFF800000001FFFFFFFFF800
+000003FFFFFFFFFC00000003FFFFFFFFFC00000003E000003FFC00000007E000003FFE00000007
+C000001FFE0000000FC000001FFF0000000F8000000FFF0000001F8000000FFF8000001F000000
+0FFF8000001F00000007FF8000003F00000007FFC000003E00000003FFC000007E00000003FFE0
+0000FF00000001FFE000FFFFFC0001FFFFFFF0FFFFFC0001FFFFFFF0FFFFFC0001FFFFFFF0FFFF
+FC0001FFFFFFF0443B7DBA4B>65 D<FFFFFFFFFFC00000FFFFFFFFFFFC0000FFFFFFFFFFFF0000
+FFFFFFFFFFFFC000007FF00001FFF000007FF000007FF800007FF000003FFC00007FF000001FFE
+00007FF000001FFE00007FF000000FFF00007FF000000FFF00007FF0000007FF80007FF0000007
+FF80007FF0000007FF80007FF0000007FF80007FF0000007FF80007FF0000007FF80007FF00000
+07FF80007FF0000007FF00007FF000000FFF00007FF000000FFF00007FF000001FFE00007FF000
+001FFC00007FF000003FF800007FF000007FF000007FF00001FFE000007FF0000FFF8000007FFF
+FFFFFE0000007FFFFFFFFE0000007FFFFFFFFFC000007FF000007FF000007FF000001FFC00007F
+F000000FFE00007FF0000007FF00007FF0000007FF80007FF0000003FFC0007FF0000003FFC000
+7FF0000001FFE0007FF0000001FFE0007FF0000001FFF0007FF0000001FFF0007FF0000001FFF0
+007FF0000001FFF0007FF0000001FFF0007FF0000001FFF0007FF0000001FFF0007FF0000001FF
+F0007FF0000001FFE0007FF0000003FFE0007FF0000003FFC0007FF0000007FFC0007FF000000F
+FF80007FF000001FFF00007FF000003FFE00007FF00001FFFC00FFFFFFFFFFFFF800FFFFFFFFFF
+FFE000FFFFFFFFFFFF8000FFFFFFFFFFF800003C3B7CBA46>I<0000001FFF000030000001FFFF
+E000F000000FFFFFFC01F000007FFFFFFE03F00001FFFE007F87F00003FFE0000FCFF0000FFF00
+0003FFF0001FFC000001FFF0003FF80000007FF0007FF00000003FF000FFC00000003FF001FFC0
+0000001FF003FF800000000FF007FF000000000FF00FFF0000000007F00FFE0000000007F01FFE
+0000000003F01FFE0000000003F03FFC0000000003F03FFC0000000001F03FFC0000000001F07F
+FC0000000001F07FF80000000001F07FF80000000000007FF8000000000000FFF8000000000000
+FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000
+00FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800000000
+00007FF80000000000007FF80000000000007FF80000000000007FFC0000000000F03FFC000000
+0000F03FFC0000000000F03FFC0000000000F01FFE0000000000F01FFE0000000001E00FFE0000
+000001E00FFF0000000001E007FF0000000003C003FF8000000003C001FFC0000000078000FFE0
+0000000F00007FF00000001F00003FF80000003E00001FFC0000007C00000FFF000001F8000003
+FFE00007F0000001FFFE003FC00000007FFFFFFF000000000FFFFFFC0000000001FFFFF0000000
+00001FFF0000003C3D7BBB47>I<001FFF00000001FFFFF0000003FFFFFC000007F007FE00000F
+F801FF00001FFC00FF80001FFC007FC0001FFC007FE0001FFC003FE0000FF8003FF0000FF8003F
+F00007F0003FF00001C0003FF0000000003FF0000000003FF0000000003FF0000000FFFFF00000
+0FFFFFF000007FF83FF00001FF803FF00007FE003FF0000FF8003FF0001FF0003FF0003FE0003F
+F0007FE0003FF0007FE0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FF
+C0007FF0007FE0007FF0007FE000DFF0003FF0039FF8001FFC0F0FFFF007FFFE0FFFF001FFFC07
+FFF0003FE000FFF02C267DA530>97 D<000000003FC00000003FFFC00000003FFFC00000003FFF
+C00000003FFFC000000001FFC000000000FFC000000000FFC000000000FFC000000000FFC00000
+0000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FF
+C000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC00000FFC0FFC0000F
+FFF8FFC0003FFFFEFFC000FFE03FFFC001FF000FFFC003FE0003FFC007FC0001FFC00FF80000FF
+C01FF00000FFC01FF00000FFC03FF00000FFC03FE00000FFC07FE00000FFC07FE00000FFC07FE0
+0000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FF
+C0FFE00000FFC0FFE00000FFC0FFE00000FFC07FE00000FFC07FE00000FFC07FE00000FFC03FF0
+0000FFC03FF00000FFC01FF00000FFC00FF80001FFC007F80003FFC003FC0007FFC001FE000FFF
+E000FFC07EFFFF003FFFFCFFFF000FFFF0FFFF0001FF80FFFF303C7DBB37>100
+D<0001FFC000000FFFF800003FFFFE0000FF80FF0001FE003F8007FC001FC00FF8000FE00FF800
+0FF01FF00007F03FF00007F83FF00007F87FE00007F87FE00003FC7FE00003FC7FE00003FCFFE0
+0003FCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0000000FFE00000007F
+E00000007FE00000007FE00000003FE00000003FF000003C1FF000003C1FF000003C0FF8000078
+07FC0000F803FE0001F001FF0007E000FFC03FC0003FFFFF000007FFFC000000FFE00026267DA5
+2D>I<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF00000000
+03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
+00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000
+03FF0000000003FF0000000003FF0000000003FF007FC00003FF01FFF80003FF07FFFC0003FF0F
+03FE0003FF1C01FF0003FF3001FF8003FF6000FF8003FFE000FFC003FFC000FFC003FF8000FFC0
+03FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0
+03FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
+00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFF
+FFFFFC3FFFFFFFFFFC3FFFFF303C7CBB37>104 D<01F00007FC000FFE000FFE001FFF001FFF00
+1FFF001FFF001FFF000FFE000FFE0007FC0001F000000000000000000000000000000000000000
+00000000000000000000000000FF00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF00
+03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00
+03FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFF8
+FFFFF8FFFFF8FFFFF8153D7DBC1B>I<00FE007FC000FFFE01FFF800FFFE07FFFC00FFFE0F03FE
+00FFFE1C01FF0007FE3001FF8003FE6000FF8003FEE000FFC003FEC000FFC003FF8000FFC003FF
+8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF
+0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
+C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFF
+FC3FFFFFFFFFFC3FFFFF30267CA537>110 D<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFF
+FE03FF00FFFFF000FF8003FFC0007FC003FF80003FE003FF00003FF003FF00001FF803FF00001F
+FC03FF00000FFC03FF00000FFE03FF00000FFE03FF000007FE03FF000007FF03FF000007FF03FF
+000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007
+FF03FF000007FE03FF000007FE03FF00000FFE03FF00000FFC03FF00000FFC03FF00001FF803FF
+00001FF803FF00003FF003FF80003FE003FFC0007FC003FFF001FF8003FFFC07FF0003FF3FFFFC
+0003FF0FFFF00003FF01FF000003FF0000000003FF0000000003FF0000000003FF0000000003FF
+0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
+0003FF0000000003FF00000000FFFFFC000000FFFFFC000000FFFFFC000000FFFFFC0000003037
+7DA537>112 D<00FE03F000FFFE0FFE00FFFE1FFF00FFFE3C3F80FFFE707FC007FE60FFE003FE
+E0FFE003FEC0FFE003FFC0FFE003FF807FC003FF807FC003FF803F8003FF800E0003FF00000003
+FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000
+03FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF0000
+0003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE
+000023267DA529>114 D<0007800000078000000780000007800000078000000F8000000F8000
+000F8000000F8000001F8000001F8000003F8000003F8000007F800000FF800001FF800007FF80
+001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF800001FF800001FF800001FF800001FF800001FF
+800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001
+FF800001FF800001FF800001FF800001FF803C01FF803C01FF803C01FF803C01FF803C01FF803C
+01FF803C01FF803C00FF807800FFC078007FC070003FE0E0001FFFC00007FF800001FF001E377E
+B626>116 D<FFFFF007FFFCFFFFF007FFFCFFFFF007FFFCFFFFF007FFFC01FF8000FC0000FFC0
+00F80000FFE001F000007FF003E000003FF007C000001FF80FC000000FFC1F8000000FFE1F0000
+0007FF3E00000003FFFC00000001FFF800000000FFF0000000007FE0000000007FF0000000003F
+F8000000001FF8000000001FFC000000003FFE000000007FFF00000000FBFF80000001F9FF8000
+0003F0FFC0000003E07FE0000007C07FF000000F803FF800001F001FFC00003E000FFC00007C00
+07FE0000FC0003FF0001FC0003FF80FFFF801FFFFEFFFF801FFFFEFFFF801FFFFEFFFF801FFFFE
+2F267EA534>120 D E /Fg 1 98 df<00200000700000700000700000B80000B80000B800011C
+00011C00011C00020E00020E0004070004070007FF000803800803800803801801C03803C0FE0F
+F815157F9419>97 D E /Fh 36 122 df<0001FC000703000C03001C07001C0300180000380000
+380000380000380000700007FFFC00701C00701C00701C00E03800E03800E03800E03800E07001
+C07001C07001C07001C0E201C0E201C0E20380E4038064038038038000030000070000060000C6
+0000E40000CC00007000001825819C17>12 D<183C3C3C0404080810204080060C779C0D>39
+D<0000180000001800000038000000380000007800000078000000B8000001B800000138000002
+380000023C0000041C0000041C0000081C0000181C0000101C0000201C0000201C00007FFC0000
+401C0000801C0001801C0001001C0002001C0002001C0004000E000C000E001C001E00FF00FFC0
+1A1D7E9C1F>65 D<0003F020001E0C60003002E000E003C001C001C0038001C0070000C00E0000
+801E0000801C0000803C0000803C000000780000007800000078000000F0000000F0000000F000
+0000F0000000F0000400F0000400F0000400F0000800700008007000100038002000180040000C
+0180000706000001F800001B1E7A9C1E>67 D<01FFFFC0003C01C0003800C00038008000380080
+003800800070008000700080007020800070200000E0400000E0400000E0C00000FFC00001C080
+0001C0800001C0800001C080000381000003800000038000000380000007000000070000000700
+0000070000000F000000FFF000001A1C7D9B1B>70 D<01FFCFFE003C01E0003801C0003801C000
+3801C0003801C00070038000700380007003800070038000E0070000E0070000E0070000FFFF00
+01C00E0001C00E0001C00E0001C00E0003801C0003801C0003801C0003801C0007003800070038
+0007003800070038000F007800FFE7FF001F1C7D9B1F>72 D<01FFC0003C000038000038000038
+0000380000700000700000700000700000E00000E00000E00000E00001C00001C00001C00001C0
+000380000380000380000380000700000700000700000700000F0000FFE000121C7E9B10>I<00
+7FF0000780000700000700000700000700000E00000E00000E00000E00001C00001C00001C0000
+1C0000380000380000380000380000700000700000700000700060E000E0E000C0C00081C00083
+80004700003C0000141D7B9B16>I<01FE0007F8003E000780002E000F00002E001700002E0017
+00002E002700004E002E00004E004E00004E004E00004E008E00008E011C00008E011C00008E02
+1C00008E021C000107043800010704380001070838000107103800020710700002072070000207
+2070000207407000040740E000040780E000040700E0000C0700E0001C0601E000FF861FFC0025
+1C7D9B25>77 D<01FFFC00003C070000380380003801C0003801C0003801C0007003C0007003C0
+007003C00070038000E0078000E0070000E00E0000E0380001FFE00001C0000001C0000001C000
+0003800000038000000380000003800000070000000700000007000000070000000F000000FFE0
+00001A1C7D9B1C>80 D<000F8400304C00403C0080180100180300180300180600100600100600
+0007000007000003E00003FC0001FF00007F800007C00001C00001C00000C00000C02000C02000
+C0600180600180600300600200F00400CC180083E000161E7D9C17>83 D<1FFFFFC01C0701C030
+0E00C0200E0080600E0080400E0080401C0080801C0080801C0080001C00000038000000380000
+00380000003800000070000000700000007000000070000000E0000000E0000000E0000000E000
+0001C0000001C0000001C0000001C0000003C000007FFE00001A1C799B1E>I<7FF0FF800F001C
+000E0018000E0010000E0010000E0010001C0020001C0020001C0020001C002000380040003800
+4000380040003800400070008000700080007000800070008000E0010000E0010000E0010000E0
+020000E0020000E0040000E00400006008000030300000104000000F800000191D779B1F>I<FF
+83FF0FF03C007001C038007001803800F001003800F00200380170020038017004003802700400
+38027008001C047008001C047010001C087010001C087020001C107020001C107040001C207040
+001C207080001C407180001C407100001C807200001D807200001D007400001E007400001E0078
+00001C007800001C00700000180070000018006000001000600000241D779B29>87
+D<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0E2C0E261E462643C380F12
+7B9115>97 D<3F00070007000E000E000E000E001C001C001C001C0039C03E6038303830703870
+3870387038E070E070E070E060E0E0C0C0C1C0618063003C000D1D7B9C13>I<01F007080C0818
+1C3838300070007000E000E000E000E000E000E008E010602030C01F000E127B9113>I<001F80
+000380000380000700000700000700000700000E00000E00000E00000E0003DC00063C000C3C00
+181C00383800303800703800703800E07000E07000E07000E07000E0E200C0E200C0E20061E400
+6264003C3800111D7B9C15>I<01E007100C1018083810701070607F80E000E000E000E000E000
+E0086010602030C01F000D127B9113>I<0003C0000670000C70001C60001C00001C0000380000
+380000380000380000380003FF8000700000700000700000700000700000E00000E00000E00000
+E00000E00001C00001C00001C00001C00001C000038000038000038000030000030000070000C6
+0000E60000CC00007800001425819C0D>I<00F3018F030F06070E0E0C0E1C0E1C0E381C381C38
+1C381C383830383038187818F00F700070007000E000E0C0C0E1C0C3007E00101A7D9113>I<0F
+C00001C00001C0000380000380000380000380000700000700000700000700000E78000E8C000F
+0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C0038380070388070388070708070
+7100E03200601C00111D7D9C15>I<01800380010000000000000000000000000000001C002600
+470047008E008E000E001C001C001C0038003800710071007100720072003C00091C7C9B0D>I<
+0FC00001C00001C0000380000380000380000380000700000700000700000700000E0F000E1100
+0E23800E43801C83001C80001D00001E00003F800039C00038E00038E00070E20070E20070E200
+70E400E06400603800111D7D9C13>107 D<1F800380038007000700070007000E000E000E000E
+001C001C001C001C0038003800380038007000700070007000E400E400E400E40068003800091D
+7C9C0B>I<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E01C07
+01C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C0320300C01C01D
+127C9122>I<3C3C002646004687004707008E07008E07000E07000E07001C0E001C0E001C0E00
+1C1C00381C40381C40383840383880701900300E0012127C9117>I<01E007180C0C180C380C30
+0E700E700EE01CE01CE01CE018E038E030E06060C031801E000F127B9115>I<07870004D98008
+E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C003818007038007030007070007
+06000E8C000E70000E00000E00001C00001C00001C00001C00003C0000FF8000131A7F9115>I<
+3C3C26C2468747078E068E000E000E001C001C001C001C0038003800380038007000300010127C
+9112>114 D<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C030806060
+C01F000E127D9111>I<00C001C001C001C00380038003800380FFE00700070007000E000E000E
+000E001C001C001C001C00384038403840388019000E000B1A7D990E>I<1E0300270700470700
+470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C00383880383880183880183900
+1C5900078E0011127C9116>I<1E01832703874703874703838707018707010E07010E07011C0E
+021C0E021C0E021C0E04180C04181C04181C081C1C100C263007C3C018127C911C>119
+D<070E0019910010E38020E38041C30041C00001C00001C0000380000380000380000380000702
+00670200E70400CB04008B080070F00011127D9113>I<1E03270747074707870E870E0E0E0E0E
+1C1C1C1C1C1C1C1C38383838183818381C7007F00070007000E0E0C0E1C0818047003C00101A7C
+9114>I E /Fi 91 127 df<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600000000060F0F0600419
+779816>33 D<E038F078F078F078F078F078F078F078E038E03860300D0B7C9816>I<00C00001
+C00001C00001C00007F0001FFC003FFE007DCF0071C780E1C380E1C780E1C780F1C30079C0003F
+C0001FF00007FC0001FE0001CF0001C70061C380F1C380F1C380E1C38071C70079DF003FFE001F
+F80007E00001C00001C00000C00011207E9C16>36 D<03800007E0000FE0001E70001C70001C70
+001C70001C77E01CE7E01DE7E00FC7000F8E000F0E001E0E003F1C007F1C00739C00E3F800E1F8
+00E0F1C0E0F1C071F9C07FFFC03F9F801E070013197F9816>38 D<30787C3C1C1C1C1C3878F0E0
+40060D789816>I<00E001E0038007000E001C001C0038003800700070007000E000E000E000E0
+00E000E000E000E000E000700070007000380038001C001C000E000700038001E000E00B217A9C
+16>I<C000E000700038001C000E000E000700070003800380038001C001C001C001C001C001C0
+01C001C001C0038003800380070007000E000E001C0038007000E000C0000A217B9C16>I<01C0
+0001C00001C00001C00071C700F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF8071C7
+0001C00001C00001C00001C00011127E9516>I<01C00001C00001C00001C00001C00001C00001
+C00001C000FFFF80FFFF80FFFF8001C00001C00001C00001C00001C00001C00001C00001C00011
+137E9516>I<387C7E7E3E0E1E1C78F060070B798416>I<FFFF80FFFF80FFFF8011037E8D16>I<
+70F8F8F8700505788416>I<000180000380000380000700000700000E00000E00001C00001C00
+00380000380000700000700000E00000E00001C00001C0000380000380000700000700000E0000
+0E00001C00001C0000380000380000700000700000E00000E00000C0000011207E9C16>I<03E0
+000FF8001FFC001E3C00380E00780F00700700700700E00380E00380E00380E00380E00380E003
+80E00380E00380F00780700700700700780F003C1E001E3C001FFC000FF80003E00011197E9816
+>I<01800380038007800F807F80FF807380038003800380038003800380038003800380038003
+800380038003807FF87FFC7FF80E197C9816>I<07E0001FF8003FFC00783E00E00700F00780F0
+0380600380000380000380000700000700000E00001C0000380000700000E00001C0000380000F
+00001E03803803807FFF80FFFF807FFF8011197E9816>I<07E0001FF8003FFC00781E00780700
+300700000700000700000E00003E0007FC0007F00007FC00001E00000700000300000380000380
+600380F00380E00700781E003FFC001FF80007E00011197E9816>I<007C0000FC0000DC0001DC
+00039C00039C00071C000F1C000E1C001E1C003C1C00381C00781C00F01C00FFFFE0FFFFE0FFFF
+E0001C00001C00001C00001C00001C0001FFC001FFC001FFC013197F9816>I<3FFE003FFE003F
+FE003800003800003800003800003800003800003800003BF0003FFC003FFE003C0F0030070000
+0380000380600380F00380F00380E00700781E003FFC001FF80007E00011197E9816>I<00F800
+03FC0007FE000F07001C0F00380F00780600700000700000E3F800EFFC00FFFE00F80F00F00700
+F00380E00380E003807003807003807007803807003C1E001FFC000FF80003E00011197E9816>
+I<E00000FFFF80FFFF80FFFF80E00F00E01E00001C0000380000780000700000E00000E00001C0
+0001C00001C0000380000380000380000380000700000700000700000700000700000700000700
+00111A7E9916>I<07F0001FFC003FFE007C1F00F00780E00380E00380E003807007007C1F001F
+FC0007F0001FFC003C1E00700700F00780E00380E00380E00380F007807007007C1F003FFE001F
+FC0007F00011197E9816>I<03E0000FF8001FFC003C1E00700E00700700E00700E00780E00380
+E00380E00780700780780F803FFF801FFB800FE380000700000700300700780E00781C00707800
+3FF0001FE0000F800011197E9816>I<70F8F8F870000000000000000070F8F8F8700512789116>
+I<387C7C7C38000000000000000038787C7C3C1C1C3870E0400618799116>I<00018000078000
+1F80003E0000F80001F00007C0000F80003E0000FC0000F00000FC00003E00000F800007C00001
+F00000F800003E00001F8000078000018011157E9616>I<7FFF00FFFF80FFFF80000000000000
+000000000000000000FFFF80FFFF807FFF00110B7E9116>I<C00000F00000FC00003E00000F80
+0007C00001F00000F800003E00001F80000780001F80003E0000F80001F00007C0000F80003E00
+00FC0000F00000C0000011157E9616>I<0FE03FF87FFCF01EF00EF00E601E003C007800F001C0
+038003800380038003800300000000000000000003000780078003000F197D9816>I<00F80003
+FC0007FE000F07001C3F80387F8078FF8071C3C071C3C0E381C0E381C0E381C0E381C0E381C0E3
+81C0E381C071C38071C38078FF00387E001C3C000F03C007FFC003FF0000FC0012197E9816>I<
+00E00001F00001F00001B00001B00003B80003B80003B800031800071C00071C00071C00071C00
+071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007F1FC0FF1FE07F1FC013197F
+9816>I<7FF800FFFE007FFF001C0F001C07801C03801C03801C03801C07801C07001FFF001FFE
+001FFE001C1F001C03801C03C01C01C01C01C01C01C01C01C01C03C01C07807FFF80FFFF007FFC
+0012197F9816>I<01F18007FB800FFF801F0F803C0780380380700380700380F00000E00000E0
+0000E00000E00000E00000E00000E00000F000007003807003803803803C07001F0F000FFE0007
+FC0001F00011197E9816>I<7FF800FFFE007FFF001C0F001C07801C03C01C01C01C01C01C01E0
+1C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C0F80
+7FFF00FFFE007FF8001319809816>I<7FFFC0FFFFC07FFFC01C01C01C01C01C01C01C01C01C00
+001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00E01C00E01C00E01C00
+E01C00E07FFFE0FFFFE07FFFE013197F9816>I<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C
+00E01C00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00001C00001C
+00001C00001C0000FF8000FFC000FF800013197F9816>I<03E30007FF000FFF001E1F003C0F00
+380700700700700700F00000E00000E00000E00000E00000E03F80E07FC0E03F80F00700700700
+700700380F003C0F001E1F000FFF0007F70003E70012197E9816>I<7F1FC0FFBFE07F1FC01C07
+001C07001C07001C07001C07001C07001C07001FFF001FFF001FFF001C07001C07001C07001C07
+001C07001C07001C07001C07001C07007F1FC0FFBFE07F1FC013197F9816>I<FFFEFFFEFFFE03
+80038003800380038003800380038003800380038003800380038003800380038003800380FFFE
+FFFEFFFE0F197D9816>I<07FE07FF07FE00380038003800380038003800380038003800380038
+003800380038003800386038F038F0707FF07FE01F8010197D9816>I<7F0FE0FF8FF07F0FE01C
+07801C0F001C0E001C1C001C3C001C78001CF0001CE0001DF0001FF0001FF8001F38001E1C001C
+1C001C0E001C0E001C07001C07001C03807F07E0FF8FF07F07E01419809816>I<FFC000FFC000
+FFC0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000
+1C00001C00001C00401C00E01C00E01C00E01C00E0FFFFE0FFFFE0FFFFE013197F9816>I<FC07
+E0FE0FE0FE0FE03A0B803B1B803B1B803B1B803B1B803B1B803BBB8039B38039B38039B38039B3
+8039F38038E38038E380380380380380380380380380380380FE0FE0FE0FE0FE0FE013197F9816
+>I<7E1FC0FF3FE07F1FC01D07001D87001D87001D87001DC7001DC7001CC7001CC7001CE7001C
+E7001CE7001C67001C67001C77001C77001C37001C37001C37001C17007F1F00FF9F007F0F0013
+197F9816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380
+E00380E00380E00380E00380E00380E00380E00380E00380F00780F00780780F007FFF003FFE00
+1FFC0011197E9816>I<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03
+C01C03801C0F801FFF001FFE001FF8001C00001C00001C00001C00001C00001C00001C00007F00
+00FF80007F000012197F9816>I<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E0
+0380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0E380E1E380F0F78078
+7F007FFF003FFE001FFC00001C00001E00000E00000F00000700000700111F7E9816>I<7FE000
+FFF8007FFC001C1E001C0F001C07001C07001C07001C07001C0F001C1E001FFC001FF8001FFC00
+1C1C001C0E001C0E001C0E001C0E001C0E201C0E701C0E707F07E0FF87E07F03C014197F9816>
+I<07E3001FFF003FFF00781F00F00700E00700E00700E00000F000007800003F80001FF00007FC
+0000FE00000F00000700000380000380600380E00380E00700F80F00FFFE00FFFC00C7F0001119
+7E9816>I<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000E00000E00000E00000
+E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007
+FC0013197F9816>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C0
+1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C00E03800E038007070007FF00
+03FE0000F8001519809816>I<FE0FE0FF1FE0FE0FE03803801C07001C07001C07001C07000E0E
+000E0E000E0E000E0E00060C00071C00071C00071C00071C0003180003B80003B80003B80001B0
+0001F00001F00000E00013197F9816>I<FC07E0FE0FE0FC07E07001C07001C07001C030018038
+038038038038038038E38039F38039F38039B38019B30019B30019B30019B30019B30019B30019
+13001B1B000F1E000F1E000E0E0013197F9816>I<7F1F807F3F807F1F800E1E000E1C00073C00
+07380003B80003F00001F00001E00000E00001E00001F00003F00003B80007B800071C00071C00
+0E0E000E0E001C07007F1FC0FF1FE07F1FC013197F9816>I<FE0FE0FF1FE0FE0FE01C07001C07
+000E0E000E0E00071C00071C00071C0003B80003B80001F00001F00000E00000E00000E00000E0
+0000E00000E00000E00000E00003F80007FC0003F80013197F9816>I<7FFF80FFFF80FFFF80E0
+0700E00F00E01E00E01C00003C0000780000700000F00001E00001C00003C0000780000700000F
+00001E03801C03803C0380780380700380FFFF80FFFF80FFFF8011197E9816>I<FFF0FFF0FFF0
+E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
+00E000E000E000E000E000E000FFF0FFF0FFF00C20789C16>I<C00000E00000E0000070000070
+00003800003800001C00001C00000E00000E000007000007000003800003800001C00001C00000
+E00000E000007000007000003800003800001C00001C00000E00000E0000070000070000038000
+038000018011207E9C16>I<FFF0FFF0FFF0007000700070007000700070007000700070007000
+70007000700070007000700070007000700070007000700070007000700070FFF0FFF0FFF00C20
+7F9C16>I<03000F803FE0FDF8F07840100D067C9816>I<FFFF80FFFF80FFFF8011037E7E16>I<
+081C3C7870E0E0E0E0F0F87830060D789B16>I<1FE0003FF0007FF800783C00300E00000E0000
+0E0003FE001FFE003E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E91
+16>I<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF000FFF800F83C00F00E0
+0E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF00063C00
+1419809816>I<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F000700778073E0E1FFC
+0FF803F010127D9116>I<003F00007F00003F0000070000070000070000070003C7000FF7001F
+FF003C1F00780F00700700E00700E00700E00700E00700E00700E00700700F00700F003C1F001F
+FFE00FE7F007C7E014197F9816>I<03E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E000
+700778073C0F1FFE0FFC03F010127D9116>I<001F00007F8000FF8001E78001C30001C00001C0
+007FFF00FFFF00FFFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
+0001C00001C0003FFE007FFF003FFE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E0038
+0E00380E00380E00380E001C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF8078
+03C0E000E0E000E0E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000
+FE00007E00000E00000E00000E00000E00000E3C000EFE000FFF000F87800F03800E03800E0380
+0E03800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816>
+I<018003C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C001C001C0
+01C001C001C001C07FFFFFFF7FFF101A7D9916>I<003000780078003000000000000000001FF8
+1FF81FF80038003800380038003800380038003800380038003800380038003800380038003800
+3800386070F0F0FFE07FC03F800D237E9916>I<7E0000FE00007E00000E00000E00000E00000E
+00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0000FF0000FF8000FBC000F1E000E
+0E000E07000E07807F87F0FFCFF07F87F01419809816>I<FFC000FFC000FFC00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C000FFFF80FFFF80FFFF8011197E9816>I<F9C380FFEFC0FFFFE03C78
+E03C78E03870E03870E03870E03870E03870E03870E03870E03870E03870E03870E0FE7CF8FE7C
+F8FE3C781512809116>I<7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E
+03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF800
+1FFC003C1E00780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E00
+1FFC000FF80003E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E00
+700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E00000E00
+000E00000E00000E00007FC000FFE0007FC000141B809116>I<07C7000FE7001FF7003C1F0070
+0F00700F00E00700E00700E00700E00700E00700E00700700F00700F003C3F003FF7001FE70007
+C700000700000700000700000700000700000700003FE0007FF0003FE0141B7E9116>I<FF0FC0
+FF3FE0FF7FE007F04007C000078000078000070000070000070000070000070000070000070000
+070000FFFC00FFFC00FFFC0013127F9116>I<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8
+003C600EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<0300000700000700000700000700007F
+FF00FFFF00FFFF0007000007000007000007000007000007000007000007010007038007038007
+038007870003FE0001FC0000F80011177F9616>I<7E1F80FE3F807E1F800E03800E03800E0380
+0E03800E03800E03800E03800E03800E03800E03800E03800E0F800FFFF007FBF803E3F0151280
+9116>I<7F1FC0FF1FE07F1FC01C07001E0F000E0E000E0E000E0E00071C00071C00071C00071C
+0003B80003B80003B80001F00001F00000E00013127F9116>I<FF1FE0FFBFE0FF1FE038038038
+038038038038038038E38019F30019F30019B3001DB7001DB7001DB7001DB7000F1E000F1E000F
+1E0013127F9116>I<7F1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E00001E000
+01F00003B800073C00071C000E0E007F1FC0FF3FE07F1FC013127F9116>I<7F1FC0FF9FE07F1F
+C01C07000E07000E0E000E0E00070E00071C00071C00039C00039C0003980001B80001B80000F0
+0000F00000F00000E00000E00000E00001C00079C0007BC0007F80003F00003C0000131B7F9116
+>I<001F80007F8000FF8001E00001C00001C00001C00001C00001C00001C00001C00001C00001
+C00003C0007F8000FF0000FF00007F800003C00001C00001C00001C00001C00001C00001C00001
+C00001C00001C00001E00000FF80007F80001F8011207E9C16>123 D<E0E0E0E0E0E0E0E0E0E0
+E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E00320779C16>I<7C0000FF0000FF800003
+C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001E00000FF00007F8000
+7F8000FF0001E00001C00001C00001C00001C00001C00001C00001C00001C00001C00003C000FF
+8000FF00007C000011207E9C16>I<1C303F78FFF8F7E061C00D057C9816>I
+E /Fj 8 111 df<60F0F06004047C830C>58 D<0000038000000F0000003C000000F0000003C0
+00000F0000003C000000F0000003C000000F0000003C000000F0000000F00000003C0000000F00
+000003C0000000F00000003C0000000F00000003C0000000F00000003C0000000F000000038019
+187D9520>60 D<E0000000780000001E0000000780000001E0000000780000001E000000078000
+0001E0000000780000001E00000007800000078000001E00000078000001E00000078000001E00
+000078000001E00000078000001E00000078000000E000000019187D9520>62
+D<00000C0000000C0000001C0000001C0000003C0000007C0000005C0000009C0000008E000001
+0E0000010E0000020E0000040E0000040E0000080E0000080E0000100E0000200E00003FFE0000
+400700004007000080070001000700010007000200070002000700060007001E000700FF807FF0
+1C1D7F9C1F>65 D<01FFFF00003C01C0003800E0003800F0003800700038007000700070007000
+F0007000F0007001E000E003C000E0078000E01F0000FFFC0001C00F0001C0078001C003C001C0
+03C0038003C0038003C0038003C0038003C0070007800700070007000E0007001C000E007800FF
+FFC0001C1C7E9B1F>I<01FFC0FF80001E003C00001E003000000E002000000F00400000070080
+000007010000000782000000038400000003C800000001D000000001F000000000E000000000E0
+00000000F00000000170000000027000000004380000000838000000103C000000201C00000040
+1E000000800E000001800E000003000F000006000700001E000F8000FF803FF000211C7F9B22>
+88 D<FFE007F80F0001E00F0001800700010007000200078004000380080003C0100001C03000
+01C0200001E0400000E0800000F100000072000000760000007C00000038000000380000007000
+0000700000007000000070000000E0000000E0000000E0000000E0000001C000001FFC00001D1C
+7F9B18>I<381F004E61804681C04701C08F01C08E01C00E01C00E01C01C03801C03801C03801C
+0700380710380710380E10380E2070064030038014127E9119>110 D E
+/Fk 71 123 df<003FE3F801F03F1C03C03E3E07C07C3E0F807C3E0F807C1C0F807C000F807C00
+0F807C000F807C000F807C00FFFFFFC0FFFFFFC00F807C000F807C000F807C000F807C000F807C
+000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C007FE1
+FFC07FE1FFC01F1D809C1C>11 D<003FC00001F0300003C0380007C07C000F807C000F807C000F
+8038000F8000000F8000000F8000000F800000FFFFFC00FFFFFC000F807C000F807C000F807C00
+0F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C
+000F807C007FE1FF807FE1FF80191D809C1B>I<003FC1FE0001F03F818003C03E01C007C07E03
+E00F807C03E00F807C03E00F807C01C00F807C00000F807C00000F807C00000F807C0000FFFFFF
+FFE0FFFFFFFFE00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F80
+7C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E00F807C03E07F
+E1FF0FFC7FE1FF0FFC261D809C28>14 D<00038000000380000003800000038000000380000003
+80000003800000038000000380000003800000038000000380000003800000038000FFFFFFFCFF
+FFFFFCFFFFFFFC0003800000038000000380000003800000038000000380000003800000038000
+0003800000038000000380000003800000038000000380001E1F7D9925>43
+D<78FCFCFEFE7A0202040408083040070E7D850D>I<FFE0FFE0FFE0FFE00B047F8A10>I<78FCFC
+FCFC7806067D850D>I<03F8000F1E001C07003C07803803807803C07803C07803C0F803E0F803
+E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E07803C07803C03803
+803C07801C07000F1E0003F800131B7E9A18>48 D<00600001E0000FE000FFE000F3E00003E000
+03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
+03E00003E00003E00003E00003E00003E0007FFF807FFF80111B7D9A18>I<07F8001FFE00383F
+80780FC0FC07C0FC07E0FC03E0FC03E07803E00007E00007C00007C0000F80001F00001E000038
+0000700000E0000180600300600600600800E01FFFC03FFFC07FFFC0FFFFC0FFFFC0131B7E9A18
+>I<03F8001FFE003C1F003C0F807C07C07E07C07C07C03807C0000F80000F80001E00003C0003
+F800001E00000F800007C00007C00007E03007E07807E0FC07E0FC07E0FC07C0780F80781F001F
+FE0007F800131B7E9A18>I<000180000380000780000F80001F80003F80006F8000CF80008F80
+018F80030F80060F800C0F80180F80300F80600F80C00F80FFFFF8FFFFF8000F80000F80000F80
+000F80000F80000F8001FFF801FFF8151B7F9A18>I<1801801FFF001FFE001FFC001FF8001FC0
+0018000018000018000018000019F8001E0E00180F801007800007C00007E00007E00007E07807
+E0F807E0F807E0F807C0F007C0600F80381F001FFE0007F000131B7E9A18>I<007E0003FF0007
+81800F03C01E07C03C07C03C0380780000780000F80000F8F800FB0E00FA0780FC0380FC03C0F8
+03E0F803E0F803E0F803E07803E07803E07803C03C03C03C07801E0F0007FE0003F800131B7E9A
+18>I<6000007FFFE07FFFE07FFFC07FFF807FFF80E00300C00600C00C00C01800003000003000
+00600000E00000E00001E00001C00003C00003C00003C00003C00007C00007C00007C00007C000
+07C00007C000038000131C7D9B18>I<03F8000FFE001E0F803807803803C07803C07803C07E03
+C07F83807FC7003FFE001FFC000FFE0007FF801DFF80387FC0781FE0F007E0F003E0F001E0F001
+E0F001E07801C07803803E07801FFE0003F800131B7E9A18>I<03F8000FFE001E0F003C078078
+07807803C0F803C0F803C0F803E0F803E0F803E0F803E07807E03807E03C0BE00E1BE003E3E000
+03E00003C00003C03807C07C07807C0700780F00383C001FF8000FE000131B7E9A18>I<78FCFC
+FCFC7800000000000078FCFCFCFC7806127D910D>I<0FF0303C601EF01FF81FF81F701F003E00
+3C007000E001C00180018003000300030003000300000000000000000007800FC00FC00FC00FC0
+0780101D7D9C17>63 D<001FE00000E01C0003000300060001800C0000C018000060300FC03020
+38601060F0101860F01F18C1E01F0CC1E01F0CC3E01F0CC3E01F0CC3E01F0CC3E01F0CC3E01F0C
+C1E01F0CC1E01F0C60F01F0860F01F1820386F10300FC7E0180000000C00000006000000030000
+3C00E007F0001FFC001E1D7D9C25>I<00038000000380000007C0000007C0000007C000000FE0
+00000FE000001FF000001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C0
+7E0000C07E0001803F0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C
+0007E0FFC07FFEFFC07FFE1F1C7E9B24>I<FFFFF800FFFFFF000FC01F800FC00FC00FC007C00F
+C007E00FC007E00FC007E00FC007E00FC007E00FC007C00FC00F800FC03F000FFFFE000FC00F80
+0FC007C00FC007E00FC003E00FC003F00FC003F00FC003F00FC003F00FC003F00FC007E00FC007
+E00FC01FC0FFFFFF00FFFFFC001C1C7E9B22>I<001FE02000FFF8E003F80FE007C003E00F8001
+E01F0000E03E0000E03E0000607E0000607C000060FC000000FC000000FC000000FC000000FC00
+0000FC000000FC000000FC0000007C0000607E0000603E0000603E0000C01F0000C00F80018007
+C0030003F80E0000FFFC00001FE0001B1C7D9B22>I<FFFFF800FFFFFF000FC01FC00FC007E00F
+C001F00FC001F80FC000F80FC000FC0FC0007C0FC0007C0FC0007E0FC0007E0FC0007E0FC0007E
+0FC0007E0FC0007E0FC0007E0FC0007E0FC0007C0FC0007C0FC0007C0FC000F80FC000F80FC001
+F00FC007E00FC01FC0FFFFFF00FFFFF8001F1C7E9B25>I<FFFFFF00FFFFFF000FC01F000FC007
+000FC003000FC003800FC003800FC181800FC181800FC181800FC180000FC380000FFF80000FFF
+80000FC380000FC180000FC180000FC180600FC180600FC000E00FC000C00FC000C00FC001C00F
+C001C00FC003C00FC00F80FFFFFF80FFFFFF801B1C7E9B1F>I<FFFFFF00FFFFFF000FC01F000F
+C007000FC003000FC003800FC003800FC001800FC181800FC181800FC180000FC180000FC38000
+0FFF80000FFF80000FC380000FC180000FC180000FC180000FC180000FC000000FC000000FC000
+000FC000000FC000000FC00000FFFF0000FFFF0000191C7E9B1E>I<000FF008007FFE3801FC07
+F807E001F80F8000781F0000783F0000383E0000387E0000187C000018FC000000FC000000FC00
+0000FC000000FC000000FC000000FC007FFFFC007FFF7C0001F87E0001F83E0001F83F0001F81F
+0001F80F8001F807E001F801FC07F8007FFE78000FF818201C7D9B26>I<FFFC3FFFFFFC3FFF0F
+C003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F0
+0FFFFFF00FFFFFF00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003
+F00FC003F00FC003F00FC003F00FC003F0FFFC3FFFFFFC3FFF201C7E9B25>I<FFFFFFFF07E007
+E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0
+07E007E007E0FFFFFFFF101C7F9B12>I<07FFF007FFF0001F80001F80001F80001F80001F8000
+1F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8030
+1F80781F80FC1F80FC1F80FC1F00783E00387C000FF000141C7F9B19>I<FFFC07FFFFFC07FF0F
+C000E00FC001C00FC003800FC006000FC00C000FC038000FC070000FC0E0000FC1C0000FC3C000
+0FC7E0000FCFE0000FFBF0000FF3F8000FE1F8000FC0FC000FC0FE000FC07E000FC03F000FC01F
+800FC01FC00FC00FC00FC007E00FC007F0FFFC3FFFFFFC3FFF201C7E9B25>I<FFFF00FFFF000F
+C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F
+C0000FC0000FC0030FC0030FC0030FC0070FC0070FC0060FC00E0FC01E0FC07EFFFFFEFFFFFE18
+1C7E9B1D>I<FFC00003FFFFE00007FF0FE00007F00DF0000DF00DF0000DF00DF0000DF00CF800
+19F00CF80019F00C7C0031F00C7C0031F00C3E0061F00C3E0061F00C1F00C1F00C1F00C1F00C1F
+00C1F00C0F8181F00C0F8181F00C07C301F00C07C301F00C03E601F00C03E601F00C01FC01F00C
+01FC01F00C01FC01F00C00F801F00C00F801F0FFC0701FFFFFC0701FFF281C7E9B2D>I<FFE003
+FFFFE003FF0FF000300FF800300DFC00300CFE00300C7E00300C3F00300C1F80300C1FC0300C0F
+E0300C07F0300C03F0300C01F8300C01FC300C00FE300C007F300C003F300C001FB00C001FF00C
+000FF00C0007F00C0003F00C0001F00C0000F00C0000F0FFC00070FFC00030201C7E9B25>I<00
+3FE00001F07C0003C01E000F800F801F0007C01E0003C03E0003E07E0003F07C0001F07C0001F0
+FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F87C0001F07E0003
+F07E0003F03E0003E03F0007E01F0007C00F800F8003C01E0001F07C00003FE0001D1C7D9B24>
+I<FFFFF800FFFFFE000FC03F800FC00F800FC007C00FC007E00FC007E00FC007E00FC007E00FC0
+07E00FC007C00FC007C00FC00F800FC03F000FFFFC000FC000000FC000000FC000000FC000000F
+C000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC0000FFFC00001B1C7E9B
+21>I<FFFFF00000FFFFFE00000FC03F00000FC00F80000FC007C0000FC007E0000FC007E0000F
+C007E0000FC007E0000FC007E0000FC007C0000FC00F80000FC03E00000FFFF000000FC07C0000
+0FC03E00000FC03F00000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80
+000FC01F81800FC01F81800FC00FC180FFFC07C300FFFC01FE00211C7E9B24>82
+D<07F8201FFEE03C07E07801E07000E0F000E0F00060F00060F80000FE0000FFE0007FFE003FFF
+003FFF800FFFC007FFE0007FE00003F00001F00000F0C000F0C000F0C000E0E000E0F001C0FC03
+C0EFFF0083FC00141C7D9B1B>I<7FFFFFE07FFFFFE0781F81E0701F80E0601F8060E01F8070C0
+1F8030C01F8030C01F8030C01F8030001F8000001F8000001F8000001F8000001F8000001F8000
+001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
+0007FFFE0007FFFE001C1C7E9B21>I<FFFC03FFFFFC03FF0FC000300FC000300FC000300FC000
+300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC0
+00300FC000300FC000300FC000300FC000300FC0003007C0003007C0006003E000E001F001C000
+FC0780007FFE00000FF800201C7E9B25>I<FFFC01FF80FFFC01FF800FC000180007E000300007
+E000300007F000700003F000600003F800E00001F800C00001FC00C00000FC01800000FC018000
+007E030000007E030000007F070000003F060000003F8E0000001F8C0000001FCC0000000FD800
+00000FD800000007F000000007F000000007F000000003E000000003E000000001C000000001C0
+0000211C7F9B24>I<FFFC7FFE0FFCFFFC7FFE0FFC0FC007E000C00FC007F000C00FE003F001C0
+07E003F0018007E007F8018003F007F8030003F007F8030003F80CFC070001F80CFC060001F81C
+FE060001FC187E0E0000FC187E0C0000FC387F0C00007E303F1800007E303F1800007F601FB800
+003F601FB000003FE01FF000003FC00FF000001FC00FE000001FC00FE000000F8007C000000F80
+07C000000F0003C0000007000380000007000380002E1C7F9B31>I<7FFE1FFE007FFE1FFE0007
+F001800003F803800001FC07000000FC06000000FE0C0000007F1C0000003F380000003FB00000
+001FE00000000FE00000000FE000000007F000000003F800000007F80000000FFC0000000CFE00
+0000187E000000387F000000703F800000601F800000C01FC00001C00FE000018007F000030007
+F000FFF03FFF80FFF03FFF80211C7F9B24>I<FEFEFEE0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
+E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0FEFEFE07297C9E0D>91 D<FEFEFE0E0E0E0E0E0E0E
+0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0EFEFEFE07297F9E0D>93
+D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07C0F807
+C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 D<FF0000FF00001F00001F00001F0000
+1F00001F00001F00001F00001F00001F00001F3F801FE1E01F80701F00781F003C1F003C1F003E
+1F003E1F003E1F003E1F003E1F003E1F003C1F003C1F00781F80701EC1E01C3F00171D7F9C1B>
+I<03FC000E0E001C1F003C1F00781F00780E00F80000F80000F80000F80000F80000F800007800
+007801803C01801C03000E0E0003F80011127E9115>I<000FF0000FF00001F00001F00001F000
+01F00001F00001F00001F00001F00001F001F9F00F07F01C03F03C01F07801F07801F0F801F0F8
+01F0F801F0F801F0F801F0F801F07801F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<
+01FC000F07001C03803C01C07801C07801E0F801E0F801E0FFFFE0F80000F80000F80000780000
+7C00603C00601E00C00F038001FC0013127F9116>I<007F0001E38003C7C00787C00F87C00F83
+800F80000F80000F80000F80000F8000FFF800FFF8000F80000F80000F80000F80000F80000F80
+000F80000F80000F80000F80000F80000F80000F80000F80007FF8007FF800121D809C0F>I<03
+F8F00E0F381E0F381C07303C07803C07803C07803C07801C07001E0F000E0E001BF80010000018
+00001800001FFF001FFFC00FFFE01FFFF07801F8F00078F00078F000787000707800F01E03C007
+FF00151B7F9118>I<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F0000
+1F00001F0FC01F31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8
+1F00F81F00F81F00F81F00F8FFE7FFFFE7FF181D7F9C1B>I<1E003F003F003F003F001E000000
+00000000000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F
+001F00FFE0FFE00B1E7F9D0E>I<007800FC00FC00FC00FC007800000000000000000000000003
+FC03FC007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C
+707CF87CF878F8F070E01F800E26839D0F>I<FF0000FF00001F00001F00001F00001F00001F00
+001F00001F00001F00001F00001F0FF81F0FF81F03801F07001F0C001F18001F70001FF8001FFC
+001FBC001F3E001F1F001F0F001F0F801F07C01F03E0FFC7FCFFC7FC161D7F9C19>I<FF00FF00
+1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
+001F001F001F001F001F00FFE0FFE00B1D7F9C0E>I<FF0FC07E00FF31E18F001F40F207801F80
+FC07C01F80FC07C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F
+00F807C01F00F807C01F00F807C01F00F807C01F00F807C0FFE7FF3FF8FFE7FF3FF825127F9128
+>I<FF0FC0FF31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F
+00F81F00F81F00F81F00F8FFE7FFFFE7FF18127F911B>I<01FC000F07801C01C03C01E07800F0
+7800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01E03C00F078001FC00
+15127F9118>I<FF3F80FFE1E01F80F01F00781F007C1F003C1F003E1F003E1F003E1F003E1F00
+3E1F003E1F003C1F007C1F00781F80F01FC1E01F3F001F00001F00001F00001F00001F00001F00
+00FFE000FFE000171A7F911B>I<03F0600F0CE01E07E03C03E07C03E07803E0F803E0F803E0F8
+03E0F803E0F803E0F803E07803E07C03E03C03E01C07E00E0FE003F3E00003E00003E00003E000
+03E00003E00003E0001FFC001FFC161A7E9119>I<FE3E00FE47001E8F801E8F801E8F801F0700
+1F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FFF000FFF00011127F
+9114>I<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CF
+C00E127E9113>I<0300030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F
+001F001F001F001F0C1F0C1F0C1F0C0F08079803F00E1A7F9913>I<FF07F8FF07F81F00F81F00
+F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F80F01F80786
+FF01F8FF18127F911B>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003E30003
+E30001F60001F60001FE0000FC0000FC0000780000780000300016127F9119>I<FF8FF8FEFF8F
+F8FE1F03E0301F03E0301F83E0700F83F0600F86F06007C6F0C007CEF8C007EC79C003EC7D8003
+F83D8001F83F0001F83F0001F01F0000F01E0000E00E0000E00E001F127F9122>I<FFC7FCFFC7
+FC1F81800F838007C70003EE0001FC0001F80000F800007C0000FE0001DF00039F00070F800607
+C00C03E0FF07FCFF07FC16127F9119>I<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007
+C18003E30003E30001F70001F60000FE0000FC0000FC0000780000780000300000300000700070
+6000F86000F8C000F980007300003E0000161A7F9119>I<3FFF803C1F00303F00303E00607C00
+60FC0060F80001F00003F00007E00007C1800F81801F81801F03803E03007E07007C0F00FFFF00
+11127F9115>I E /Fl 36 121 df<00000007FF800000000001FFFFF0000000000FFFFFFC0000
+00003FFFFFFE00000000FFFC00FF00000001FFC0003F80000007FF00007FC000000FFE0001FFC0
+00001FFC0001FFE000001FF80003FFE000003FF00003FFE000003FF00003FFE000007FE00003FF
+E000007FE00003FFE000007FE00003FFE000007FE00003FFE000007FE00001FFC000007FE00000
+FF8000007FE000003E0000007FE00000000000007FE00000000000007FE00000000000007FE000
+00000000007FE00000000000007FE00000000000007FE0003FFFF000FFFFFFFFFFFFF000FFFFFF
+FFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000007FF00000FFF000007F
+F000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00000
+7FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000
+007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
+00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007F
+F000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF00000
+7FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000
+007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0
+00007FF0003FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFF
+FFE03FFFFFE03B487EC742>12 D<0000FFE00000000FFFFE0000003FFFFFC00000FFFFFFF00003
+FFFFFFFC0007FC01FFFE000FE0007FFF001FC0001FFF803F80000FFFC03FE00007FFE07FF80007
+FFE07FFC0003FFF0FFFC0003FFF0FFFE0001FFF8FFFE0001FFF8FFFE0001FFF8FFFE0000FFFCFF
+FE0000FFFC7FFC0000FFFC7FFC0000FFFC3FF80000FFFC1FF00000FFFC0FE00000FFFC00000001
+FFFC00000001FFF800000001FFF800000001FFF000000003FFF000000003FFE000000003FFE000
+000007FFC000000007FF800000000FFF800000001FFF000000001FFE000000003FFC000000007F
+F8000000007FE000000000FFC000000001FF8000000003FF0000000007FC000000000FF8000000
+001FF0000000003FC0000000007F80007C0000FF00007C0000FE00007C0001FC00007C0003F000
+00F80007E00000F8000FC00000F8001F800000F8003F000001F8007C000003F800FFFFFFFFF801
+FFFFFFFFF003FFFFFFFFF007FFFFFFFFF00FFFFFFFFFF01FFFFFFFFFF03FFFFFFFFFF07FFFFFFF
+FFF07FFFFFFFFFF0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE02E447AC33B>50
+D<0000000003E000000000000000000007F000000000000000000007F00000000000000000000F
+F80000000000000000000FF80000000000000000000FF80000000000000000001FFC0000000000
+000000001FFC0000000000000000003FFE0000000000000000003FFE0000000000000000007FFF
+0000000000000000007FFF0000000000000000007FFF000000000000000000FFFF800000000000
+000000FFFF800000000000000001FFFFC00000000000000001FFFFC00000000000000001FFFFC0
+0000000000000003FFFFE00000000000000003EFFFE00000000000000007EFFFF0000000000000
+0007CFFFF00000000000000007C7FFF0000000000000000FC7FFF8000000000000000F83FFF800
+0000000000001F83FFFC000000000000001F03FFFC000000000000001F01FFFC00000000000000
+3F01FFFE000000000000003E00FFFE000000000000007E00FFFF000000000000007C007FFF0000
+0000000000FC007FFF80000000000000F8007FFF80000000000000F8003FFF80000000000001F8
+003FFFC0000000000001F0001FFFC0000000000003F0001FFFE0000000000003E0001FFFE00000
+00000003E0000FFFE0000000000007E0000FFFF0000000000007C00007FFF000000000000FC000
+07FFF800000000000F800007FFF800000000000F800003FFF800000000001F800003FFFC000000
+00001F000001FFFC00000000003FFFFFFFFFFE00000000003FFFFFFFFFFE00000000007FFFFFFF
+FFFF00000000007FFFFFFFFFFF00000000007FFFFFFFFFFF0000000000FC0000007FFF80000000
+00F80000003FFF8000000001F80000003FFFC000000001F00000003FFFC000000001F00000001F
+FFC000000003F00000001FFFE000000003E00000000FFFE000000007E00000000FFFF000000007
+C00000000FFFF000000007C000000007FFF00000000FC000000007FFF80000000F8000000003FF
+F80000001F8000000003FFFC0000001F0000000003FFFC0000007FC000000001FFFC0000FFFFFF
+C00007FFFFFFFF80FFFFFFC00007FFFFFFFF80FFFFFFC00007FFFFFFFF80FFFFFFC00007FFFFFF
+FF80FFFFFFC00007FFFFFFFF8051487CC75A>65 D<000000003FFE00000E0000000FFFFFC0001E
+0000007FFFFFF8003E000003FFFFFFFE00FE00000FFFFFFFFF81FE00003FFFF800FFC3FE0000FF
+FF80000FF7FE0001FFFC000003FFFE0007FFF0000001FFFE000FFFC00000007FFE001FFF800000
+003FFE003FFF000000001FFE007FFE000000000FFE00FFFC0000000007FE01FFF80000000007FE
+03FFF00000000003FE03FFF00000000001FE07FFE00000000001FE07FFE00000000000FE0FFFC0
+0000000000FE0FFFC000000000007E1FFFC000000000007E1FFF8000000000007E3FFF80000000
+00007E3FFF8000000000003E3FFF8000000000003E7FFF8000000000003E7FFF0000000000003E
+7FFF000000000000007FFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00
+000000000000FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00000000
+000000FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF00000000000000
+FFFF00000000000000FFFF000000000000007FFF000000000000007FFF000000000000007FFF00
+0000000000007FFF8000000000003E3FFF8000000000003E3FFF8000000000003E3FFF80000000
+00003E1FFF8000000000003E1FFFC000000000003E0FFFC000000000007C0FFFC000000000007C
+07FFE000000000007C07FFE00000000000F803FFF00000000000F803FFF00000000001F801FFF8
+0000000001F000FFFC0000000003E0007FFE0000000007E0003FFF000000000FC0001FFF800000
+001F80000FFFC00000003F000007FFF0000000FE000001FFFC000001FC000000FFFF80000FF800
+00003FFFF8007FF00000000FFFFFFFFFC000000003FFFFFFFF00000000007FFFFFFC0000000000
+0FFFFFE00000000000003FFE000000474979C756>67 D<FFFFFFFFFFFFC0000000FFFFFFFFFFFF
+FE000000FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFFC0000001FFF8000
+07FFFF0000001FFF8000007FFF8000001FFF8000000FFFE000001FFF80000007FFF000001FFF80
+000001FFF800001FFF80000000FFFC00001FFF800000007FFE00001FFF800000003FFF00001FFF
+800000001FFF00001FFF800000000FFF80001FFF800000000FFFC0001FFF8000000007FFC0001F
+FF8000000007FFE0001FFF8000000003FFE0001FFF8000000003FFF0001FFF8000000003FFF000
+1FFF8000000003FFF8001FFF8000000001FFF8001FFF8000000001FFF8001FFF8000000001FFFC
+001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FF
+FC001FFF8000000001FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000
+FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF80000000
+00FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF800000
+0000FFFE001FFF8000000000FFFE001FFF8000000001FFFE001FFF8000000001FFFC001FFF8000
+000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFF8001FFF80
+00000001FFF8001FFF8000000001FFF8001FFF8000000003FFF0001FFF8000000003FFF0001FFF
+8000000003FFF0001FFF8000000007FFE0001FFF8000000007FFE0001FFF800000000FFFC0001F
+FF800000000FFF80001FFF800000001FFF80001FFF800000003FFF00001FFF800000003FFE0000
+1FFF800000007FFC00001FFF80000001FFF800001FFF80000003FFF000001FFF8000000FFFE000
+001FFF8000007FFFC000001FFF800003FFFF0000FFFFFFFFFFFFFFFE0000FFFFFFFFFFFFFFF800
+00FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFE000000FFFFFFFFFFFFC00000004F477CC65B>I<FF
+FFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFC00FFFFFFFF
+FFFFFFFE00001FFFC00003FFFE00001FFFC000003FFE00001FFFC000000FFE00001FFFC0000003
+FE00001FFFC0000001FE00001FFFC0000000FE00001FFFC0000000FE00001FFFC00000007E0000
+1FFFC00000007F00001FFFC00000003F00001FFFC00000003F00001FFFC00000001F00001FFFC0
+0000001F00001FFFC00000001F00001FFFC00000001F00001FFFC0007C001F00001FFFC0007C00
+0F80001FFFC0007C000F80001FFFC0007C000F80001FFFC0007C000F80001FFFC0007C00000000
+1FFFC000FC000000001FFFC000FC000000001FFFC000FC000000001FFFC001FC000000001FFFC0
+03FC000000001FFFC01FFC000000001FFFFFFFFC000000001FFFFFFFFC000000001FFFFFFFFC00
+0000001FFFFFFFFC000000001FFFFFFFFC000000001FFFC01FFC000000001FFFC003FC00000000
+1FFFC001FC000000001FFFC000FC000000001FFFC000FC000000001FFFC000FC000000001FFFC0
+007C000000001FFFC0007C000000001FFFC0007C000000001FFFC0007C000000001FFFC0007C00
+0000001FFFC0007C000000001FFFC00000000000001FFFC00000000000001FFFC0000000000000
+1FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
+0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000
+0000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000FF
+FFFFFFFF00000000FFFFFFFFFF00000000FFFFFFFFFF00000000FFFFFFFFFF00000000FFFFFFFF
+FF0000000041467CC54B>70 D<000000003FFE00000E000000000FFFFFC0001E000000007FFFFF
+F8003E00000003FFFFFFFE00FE0000000FFFFFFFFF81FE0000003FFFF800FFC3FE000000FFFF80
+000FF7FE000001FFFC000003FFFE000007FFF0000001FFFE00000FFFC00000007FFE00001FFF80
+0000003FFE00003FFF000000001FFE00007FFE000000000FFE0000FFFC0000000007FE0001FFF8
+0000000007FE0003FFF00000000003FE0003FFF00000000001FE0007FFE00000000001FE0007FF
+E00000000000FE000FFFC00000000000FE000FFFC000000000007E001FFFC000000000007E001F
+FF8000000000007E003FFF8000000000007E003FFF8000000000003E003FFF8000000000003E00
+7FFF8000000000003E007FFF0000000000003E007FFF00000000000000007FFF00000000000000
+00FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF000000000000
+0000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000
+000000FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF00000000
+00000000FFFF0000007FFFFFFFFE7FFF0000007FFFFFFFFE7FFF0000007FFFFFFFFE7FFF800000
+7FFFFFFFFE7FFF8000007FFFFFFFFE3FFF8000000000FFFE003FFF8000000000FFFE003FFF8000
+000000FFFE001FFF8000000000FFFE001FFFC000000000FFFE000FFFC000000000FFFE000FFFC0
+00000000FFFE0007FFE000000000FFFE0007FFE000000000FFFE0003FFF000000000FFFE0003FF
+F800000000FFFE0001FFF800000000FFFE0000FFFC00000000FFFE00007FFE00000000FFFE0000
+3FFF00000000FFFE00001FFF80000000FFFE00000FFFE0000001FFFE000007FFF0000003FFFE00
+0001FFFC000007FFFE000000FFFF80001FFFFE0000003FFFFC00FFC7FE0000000FFFFFFFFF83FE
+00000003FFFFFFFE00FE000000007FFFFFF8003E000000000FFFFFE0000E00000000003FFE0000
+00004F4979C75D>I<FFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE000FFFE000
+000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE0
+00000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFF
+E000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000F
+FFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE00000
+0FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000
+000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE0
+00000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000000FFF
+E000000FFFE000000FFFE000000FFFE000000FFFE000000FFFE000FFFFFFFFFEFFFFFFFFFEFFFF
+FFFFFEFFFFFFFFFEFFFFFFFFFE27477DC62D>73 D<FFFFFFFFFF000000FFFFFFFFFF000000FFFF
+FFFFFF000000FFFFFFFFFF000000FFFFFFFFFF000000001FFFC000000000001FFFC00000000000
+1FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000
+001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC0000000
+00001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC00000
+0000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000
+000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC0
+00000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFF
+C000000000001FFFC000000000001FFFC000000000001FFFC000000000001FFFC000000000001F
+FFC000000000001FFFC000000000001FFFC0000000F8001FFFC0000000F8001FFFC0000000F800
+1FFFC0000000F8001FFFC0000001F0001FFFC0000001F0001FFFC0000001F0001FFFC0000001F0
+001FFFC0000001F0001FFFC0000003F0001FFFC0000003F0001FFFC0000003F0001FFFC0000007
+F0001FFFC0000007F0001FFFC000000FE0001FFFC000001FE0001FFFC000001FE0001FFFC00000
+3FE0001FFFC000007FE0001FFFC00000FFE0001FFFC00003FFE0001FFFC0000FFFE0001FFFC000
+7FFFE0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFFFFFFFFC0FFFFFFFF
+FFFFFFC03D477CC647>76 D<FFFFFFE0000000000003FFFFFFFFFFFFF0000000000007FFFFFFFF
+FFFFF0000000000007FFFFFFFFFFFFF800000000000FFFFFFFFFFFFFF800000000000FFFFFFF00
+1FFFF800000000000FFFF800001FFFFC00000000001EFFF800001FFFFC00000000001EFFF80000
+1FBFFE00000000003CFFF800001FBFFE00000000003CFFF800001F9FFF000000000078FFF80000
+1F9FFF000000000078FFF800001F8FFF8000000000F0FFF800001F8FFF8000000000F0FFF80000
+1F87FFC000000001E0FFF800001F87FFC000000001E0FFF800001F87FFC000000001E0FFF80000
+1F83FFE000000003C0FFF800001F83FFE000000003C0FFF800001F81FFF00000000780FFF80000
+1F81FFF00000000780FFF800001F80FFF80000000F00FFF800001F80FFF80000000F00FFF80000
+1F807FFC0000001E00FFF800001F807FFC0000001E00FFF800001F807FFC0000001E00FFF80000
+1F803FFE0000003C00FFF800001F803FFE0000003C00FFF800001F801FFF0000007800FFF80000
+1F801FFF0000007800FFF800001F800FFF800000F000FFF800001F800FFF800000F000FFF80000
+1F8007FFC00001E000FFF800001F8007FFC00001E000FFF800001F8003FFE00003C000FFF80000
+1F8003FFE00003C000FFF800001F8003FFE00003C000FFF800001F8001FFF000078000FFF80000
+1F8001FFF000078000FFF800001F8000FFF8000F0000FFF800001F8000FFF8000F0000FFF80000
+1F80007FFC001E0000FFF800001F80007FFC001E0000FFF800001F80003FFE003C0000FFF80000
+1F80003FFE003C0000FFF800001F80001FFF00780000FFF800001F80001FFF00780000FFF80000
+1F80001FFF00780000FFF800001F80000FFF80F00000FFF800001F80000FFF80F00000FFF80000
+1F800007FFC1E00000FFF800001F800007FFC1E00000FFF800001F800003FFE3C00000FFF80000
+1F800003FFE3C00000FFF800001F800001FFF7800000FFF800001F800001FFF7800000FFF80000
+1F800001FFF7800000FFF800001F800000FFFF000000FFF800001F800000FFFF000000FFF80000
+1F8000007FFE000000FFF800001F8000007FFE000000FFF800001F8000003FFC000000FFF80000
+1F8000003FFC000000FFF800001F8000001FF8000000FFF800001F8000001FF8000000FFF80000
+7FE000000FF0000000FFF800FFFFFFF0000FF00007FFFFFFFFFFFFFFF0000FF00007FFFFFFFFFF
+FFFFF00007E00007FFFFFFFFFFFFFFF00007E00007FFFFFFFFFFFFFFF00003C00007FFFFFFFF68
+477CC671>I<FFFFFFC0000000FFFFFFF0FFFFFFE0000000FFFFFFF0FFFFFFF0000000FFFFFFF0
+FFFFFFF8000000FFFFFFF0FFFFFFFC000000FFFFFFF0001FFFFC000000007FE000001FFFFE0000
+00001F8000001FFFFF000000001F8000001FFFFF800000001F8000001FFFFFC00000001F800000
+1FBFFFE00000001F8000001F9FFFE00000001F8000001F9FFFF00000001F8000001F8FFFF80000
+001F8000001F87FFFC0000001F8000001F83FFFE0000001F8000001F81FFFF0000001F8000001F
+80FFFF0000001F8000001F80FFFF8000001F8000001F807FFFC000001F8000001F803FFFE00000
+1F8000001F801FFFF000001F8000001F800FFFF800001F8000001F8007FFF800001F8000001F80
+07FFFC00001F8000001F8003FFFE00001F8000001F8001FFFF00001F8000001F8000FFFF80001F
+8000001F80007FFFC0001F8000001F80003FFFC0001F8000001F80003FFFE0001F8000001F8000
+1FFFF0001F8000001F80000FFFF8001F8000001F800007FFFC001F8000001F800003FFFE001F80
+00001F800001FFFF001F8000001F800001FFFF001F8000001F800000FFFF801F8000001F800000
+7FFFC01F8000001F8000003FFFE01F8000001F8000001FFFF01F8000001F8000000FFFF81F8000
+001F8000000FFFF81F8000001F80000007FFFC1F8000001F80000003FFFE1F8000001F80000001
+FFFF1F8000001F80000000FFFF9F8000001F800000007FFFDF8000001F800000007FFFDF800000
+1F800000003FFFFF8000001F800000001FFFFF8000001F800000000FFFFF8000001F8000000007
+FFFF8000001F8000000003FFFF8000001F8000000003FFFF8000001F8000000001FFFF8000001F
+8000000000FFFF8000001F80000000007FFF8000001F80000000003FFF8000001F80000000001F
+FF8000001F80000000001FFF8000001F80000000000FFF8000001F800000000007FF8000001F80
+0000000003FF8000001F800000000001FF8000007FE00000000000FF8000FFFFFFF000000000FF
+8000FFFFFFF0000000007F8000FFFFFFF0000000003F8000FFFFFFF0000000001F8000FFFFFFF0
+000000000F000054477CC65D>I<FFFFFFFFFFFF800000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF
+0000FFFFFFFFFFFFFFC000FFFFFFFFFFFFFFF000001FFF80000FFFFC00001FFF800001FFFE0000
+1FFF8000007FFF00001FFF8000003FFF80001FFF8000001FFFC0001FFF8000000FFFC0001FFF80
+00000FFFE0001FFF8000000FFFE0001FFF80000007FFF0001FFF80000007FFF0001FFF80000007
+FFF0001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF800
+1FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80
+000007FFF0001FFF80000007FFF0001FFF80000007FFF0001FFF8000000FFFE0001FFF8000000F
+FFE0001FFF8000000FFFC0001FFF8000001FFF80001FFF8000003FFF80001FFF8000007FFF0000
+1FFF800001FFFE00001FFF80000FFFF800001FFFFFFFFFFFF000001FFFFFFFFFFFC000001FFFFF
+FFFFFE0000001FFFFFFFFFF00000001FFFC00000000000001FFFC00000000000001FFFC0000000
+0000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000000000
+1FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
+0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000
+0000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0000000000000
+1FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
+0000000000001FFFC00000000000001FFFC00000000000FFFFFFFFF800000000FFFFFFFFF80000
+0000FFFFFFFFF800000000FFFFFFFFF800000000FFFFFFFFF80000000045477CC651>80
+D<FFFFFFFFFFFC0000000000FFFFFFFFFFFFF000000000FFFFFFFFFFFFFE00000000FFFFFFFFFF
+FFFF80000000FFFFFFFFFFFFFFE0000000001FFF80001FFFF8000000001FFF800001FFFC000000
+001FFF8000007FFF000000001FFF8000003FFF800000001FFF8000001FFF800000001FFF800000
+0FFFC00000001FFF8000000FFFE00000001FFF8000000FFFE00000001FFF80000007FFF0000000
+1FFF80000007FFF00000001FFF80000007FFF80000001FFF80000007FFF80000001FFF80000007
+FFF80000001FFF80000007FFF80000001FFF80000007FFF80000001FFF80000007FFF80000001F
+FF80000007FFF80000001FFF80000007FFF80000001FFF80000007FFF00000001FFF80000007FF
+F00000001FFF8000000FFFE00000001FFF8000000FFFE00000001FFF8000000FFFC00000001FFF
+8000001FFF800000001FFF8000003FFF000000001FFF800000FFFE000000001FFF800003FFF800
+0000001FFF80001FFFF0000000001FFFFFFFFFFFC0000000001FFFFFFFFFFE00000000001FFFFF
+FFFFF800000000001FFFFFFFFFFE00000000001FFF80007FFF80000000001FFF80001FFFC00000
+00001FFF800007FFE0000000001FFF800003FFF0000000001FFF800001FFF8000000001FFF8000
+01FFFC000000001FFF800000FFFE000000001FFF800000FFFE000000001FFF8000007FFE000000
+001FFF8000007FFF000000001FFF8000007FFF000000001FFF8000007FFF000000001FFF800000
+7FFF000000001FFF8000007FFF000000001FFF8000007FFF000000001FFF8000007FFF00000000
+1FFF8000007FFF800000001FFF8000007FFF800000001FFF8000007FFF800000001FFF8000007F
+FF800000001FFF8000007FFF800000001FFF8000007FFF8000E0001FFF8000007FFF8001F0001F
+FF8000007FFFC001F0001FFF8000007FFFC001F0001FFF8000003FFFC001F0001FFF8000003FFF
+C003F0001FFF8000001FFFE003E0001FFF8000000FFFE007E0FFFFFFFFF00007FFF007C0FFFFFF
+FFF00003FFFC1F80FFFFFFFFF00001FFFFFF00FFFFFFFFF000007FFFFE00FFFFFFFFF000001FFF
+FC000000000000000000FFF00054487CC659>82 D<FFFFFFFFF80001FFFFFFC0FFFFFFFFF80001
+FFFFFFC0FFFFFFFFF80001FFFFFFC0FFFFFFFFF80001FFFFFFC0FFFFFFFFF80001FFFFFFC0001F
+FFC000000000FF8000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC000000000
+3E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFF
+C0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E
+0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0
+000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E00
+00001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC000
+0000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000
+001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC00000
+00003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E000000
+1FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000
+003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001F
+FFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC000000000
+3E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFFC0000000003E0000001FFF
+C0000000003E0000000FFFC0000000007E0000000FFFC0000000007C0000000FFFE0000000007C
+0000000FFFE000000000FC00000007FFE000000000F800000007FFE000000001F800000003FFF0
+00000001F800000001FFF000000003F000000001FFF800000007E000000000FFF800000007E000
+0000007FFC0000001FC0000000003FFE0000003F80000000001FFF800000FF00000000000FFFE0
+0007FE000000000003FFFE007FFC000000000001FFFFFFFFF00000000000007FFFFFFFE0000000
+0000000FFFFFFF8000000000000001FFFFFC00000000000000000FFFC00000000052487CC65B>
+85 D<FFFFFFFFE000001FFFFFE0FFFFFFFFE000001FFFFFE0FFFFFFFFE000001FFFFFE0FFFFFF
+FFE000001FFFFFE0FFFFFFFFE000001FFFFFE0007FFF80000000003FE000003FFFC0000000000F
+8000003FFFC0000000001F8000001FFFE0000000001F0000001FFFE0000000003F0000000FFFE0
+000000003E0000000FFFF0000000007E00000007FFF0000000007C00000007FFF8000000007C00
+000007FFF800000000FC00000003FFFC00000000F800000003FFFC00000001F800000001FFFE00
+000001F000000001FFFE00000003F000000000FFFE00000003E000000000FFFF00000007E00000
+00007FFF00000007C0000000007FFF80000007C0000000007FFF8000000FC0000000003FFFC000
+000F80000000003FFFC000001F80000000001FFFC000001F00000000001FFFE000003F00000000
+000FFFE000003E00000000000FFFF000007E00000000000FFFF000007E000000000007FFF80000
+7C000000000007FFF80000FC000000000003FFFC0000F8000000000003FFFC0001F80000000000
+01FFFC0001F0000000000001FFFE0003F0000000000000FFFE0003E0000000000000FFFF0003E0
+000000000000FFFF0007E00000000000007FFF8007C00000000000007FFF800FC0000000000000
+3FFFC00F800000000000003FFFC01F800000000000001FFFC01F000000000000001FFFE03F0000
+00000000000FFFE03E000000000000000FFFF03E000000000000000FFFF07E0000000000000007
+FFF87C0000000000000007FFF8FC0000000000000003FFF8F80000000000000003FFFDF8000000
+0000000001FFFDF00000000000000001FFFFF00000000000000001FFFFF00000000000000000FF
+FFE00000000000000000FFFFE000000000000000007FFFC000000000000000007FFFC000000000
+000000003FFF8000000000000000003FFF8000000000000000001FFF0000000000000000001FFF
+0000000000000000001FFF0000000000000000000FFE0000000000000000000FFE000000000000
+00000007FC00000000000000000007FC00000000000000000003F800000000000000000003F800
+000000000000000001F0000000000053487DC65A>I<FFFFFFFFC03FFFFFFFF0001FFFFFF0FFFF
+FFFFC03FFFFFFFF0001FFFFFF0FFFFFFFFC03FFFFFFFF0001FFFFFF0FFFFFFFFC03FFFFFFFF000
+1FFFFFF0FFFFFFFFC03FFFFFFFF0001FFFFFF0007FFF0000001FFFE00000000FF800007FFF0000
+000FFFE000000003E000007FFF8000000FFFE000000007E000003FFF8000000FFFF000000007C0
+00003FFFC0000007FFF000000007C000003FFFC0000007FFF80000000FC000001FFFC0000003FF
+F80000000F8000001FFFE0000003FFF80000001F8000000FFFE0000003FFFC0000001F0000000F
+FFE0000001FFFC0000001F0000000FFFF0000001FFFE0000003F00000007FFF0000001FFFE0000
+003E00000007FFF8000001FFFE0000007E00000003FFF8000003FFFF0000007C00000003FFF800
+0003FFFF0000007C00000003FFFC000003FFFF000000FC00000001FFFC000007FFFF800000F800
+000001FFFE000007FFFF800000F800000001FFFE000007FFFFC00001F800000000FFFE00000F9F
+FFC00001F000000000FFFF00000F9FFFC00003F0000000007FFF00001F9FFFE00003E000000000
+7FFF00001F0FFFE00003E0000000007FFF80001F0FFFE00007E0000000003FFF80003F0FFFF000
+07C0000000003FFFC0003E07FFF00007C0000000001FFFC0007E07FFF8000F80000000001FFFC0
+007C03FFF8000F80000000001FFFE0007C03FFF8001F80000000000FFFE000FC03FFFC001F0000
+0000000FFFE000F801FFFC001F00000000000FFFF000F801FFFE003F000000000007FFF001F801
+FFFE003E000000000007FFF801F000FFFE007E000000000003FFF803F000FFFF007C0000000000
+03FFF803E0007FFF007C000000000003FFFC03E0007FFF00FC000000000001FFFC07E0007FFF80
+F8000000000001FFFE07C0003FFF80F8000000000001FFFE0FC0003FFFC1F8000000000000FFFE
+0F80001FFFC1F0000000000000FFFF0F80001FFFC3F00000000000007FFF1F80001FFFE3E00000
+000000007FFF1F00000FFFE3E00000000000007FFF9F00000FFFF7E00000000000003FFFBF0000
+0FFFF7C00000000000003FFFFE000007FFFFC00000000000001FFFFE000007FFFF800000000000
+001FFFFC000003FFFF800000000000001FFFFC000003FFFF800000000000000FFFFC000003FFFF
+000000000000000FFFF8000001FFFF000000000000000FFFF8000001FFFF0000000000000007FF
+F0000000FFFE0000000000000007FFF0000000FFFE0000000000000003FFF0000000FFFC000000
+0000000003FFE00000007FFC0000000000000003FFE00000007FFC0000000000000001FFE00000
+007FF80000000000000001FFC00000003FF80000000000000001FFC00000003FF8000000000000
+0000FF800000001FF00000000000000000FF800000001FF000000000000000007F800000001FE0
+00000000000000007F000000000FE000000000000000007F000000000FE000000000000000003E
+0000000007C00000000074487DC67B>I<0007FFFC000000007FFFFFC0000001FFFFFFF8000003
+FFFFFFFE000007FE001FFF000007FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007F
+F0000FFF80007FF8000FFF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F8
+00003FFC00000000003FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC
+000000FFFFFFFC000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007FFC0
+003FFC000FFF00003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF800003FFC00
+FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF00000
+7FFC007FF80000FFFC007FF80001EFFC003FFC0003EFFC003FFF0007CFFF000FFFC03F8FFFF807
+FFFFFF07FFFC01FFFFFC03FFFC007FFFF001FFFC0003FF80007FF8362E7DAD3A>97
+D<007FC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000
+0000FFFFC0000000000003FFC0000000000001FFC0000000000001FFC0000000000001FFC00000
+00000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000
+0000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0
+000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FF
+C0000000000001FFC0000000000001FFC00FFC00000001FFC07FFFC0000001FFC3FFFFF0000001
+FFCFFFFFFC000001FFDFF00FFF000001FFFF8003FF800001FFFE0001FFC00001FFF800007FE000
+01FFF000007FF00001FFE000003FF80001FFE000001FFC0001FFE000001FFC0001FFE000001FFE
+0001FFE000001FFE0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000F
+FF0001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE00000
+0FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000
+000FFF8001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000001FFE0001FFE0
+00001FFE0001FFE000001FFC0001FFE000001FFC0001FFE000003FF80001FFF000003FF80001FF
+F800007FF00001FFFC0000FFE00001FFFE0001FFC00001FFBF0007FF800001FF1FE01FFE000001
+FE0FFFFFFC000001FC03FFFFF0000001F800FFFF80000001F0001FF800000039487CC742>I<00
+001FFFC0000000FFFFF8000007FFFFFE00001FFFFFFF80007FFC00FFC000FFE001FFC001FFC003
+FFE003FF8003FFE007FF0003FFE00FFE0003FFE00FFE0003FFE01FFC0001FFC01FFC0001FFC03F
+FC0000FF803FFC00003E007FF8000000007FF8000000007FF800000000FFF800000000FFF80000
+0000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FF
+F800000000FFF8000000007FF8000000007FF8000000007FFC000000003FFC000000003FFC0000
+00001FFC000000F81FFE000000F80FFE000000F80FFF000001F007FF800003F003FFC00007E001
+FFE0000FC000FFF0001F80007FFE00FF00001FFFFFFE000007FFFFF8000000FFFFE00000001FFE
+00002D2E7CAD35>I<00000000007FC00000000000FFFFC00000000000FFFFC00000000000FFFF
+C00000000000FFFFC00000000000FFFFC0000000000003FFC0000000000001FFC0000000000001
+FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000000000
+01FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000
+0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000
+000001FFC0000000000001FFC0000000000001FFC00000000FFC01FFC0000000FFFF81FFC00000
+07FFFFE1FFC000001FFFFFF9FFC000007FFC03FFFFC00000FFF0007FFFC00001FFC0001FFFC000
+03FF80000FFFC00007FF000007FFC0000FFE000003FFC0000FFE000003FFC0001FFC000003FFC0
+001FFC000003FFC0003FFC000003FFC0003FFC000003FFC0007FF8000003FFC0007FF8000003FF
+C0007FF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003
+FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF80000
+03FFC000FFF8000003FFC0007FF8000003FFC0007FF8000003FFC0007FF8000003FFC0003FF800
+0003FFC0003FFC000003FFC0003FFC000003FFC0001FFC000003FFC0001FFC000003FFC0000FFE
+000007FFC00007FF00000FFFC00003FF00001FFFC00001FFC0003FFFC00000FFE000FFFFE00000
+7FF807FBFFFF80001FFFFFF3FFFF800007FFFFC3FFFF800001FFFF03FFFF8000001FF803FFFF80
+39487CC742>I<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE00007FFC07FF0000FF
+E001FF8001FFC0007FC003FF80003FE007FF00003FF00FFE00001FF01FFE00000FF81FFC00000F
+F83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007FC7FF8000007FE7FF8000007FEFFF8
+000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFCFFF8000000
+00FFF800000000FFF800000000FFF8000000007FF8000000007FF8000000007FFC000000003FFC
+000000003FFC000000003FFC0000001C1FFE0000003E0FFE0000003E07FF0000007E07FF000000
+FC03FF800001F801FFC00003F0007FF0001FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000
+FFFFF80000000FFF80002F2E7DAD36>I<000000FFC000000007FFF80000003FFFFC000000FFFF
+FF000001FFC1FF000007FF03FF80000FFC03FF80000FF807FFC0001FF807FFC0003FF007FFC000
+3FF007FFC0003FE003FF80007FE003FF80007FE001FF00007FE000FE00007FE0003800007FE000
+0000007FE0000000007FE0000000007FE0000000007FE0000000007FE0000000007FE000000000
+7FE0000000007FE0000000007FE0000000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE
+0000FFFFFFFE0000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
+7FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000
+0000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
+7FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000
+0000007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF000000000
+7FF0000000007FF0000000007FF0000000007FF0000000007FF00000003FFFFFF800003FFFFFF8
+00003FFFFFF800003FFFFFF800003FFFFFF800002A487DC724>I<00000000001F8000007FF000
+FFE00007FFFF03FFF0001FFFFFC7FFF0007FFFFFFFC7F800FFE03FFE0FF801FF800FFC0FF803FF
+0007FE0FF807FE0003FF07F007FE0003FF07F00FFC0001FF81C00FFC0001FF80000FFC0001FF80
+001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC00
+01FFC0000FFC0001FF80000FFC0001FF80000FFC0001FF800007FE0003FF000007FE0003FF0000
+03FF0007FE000001FF800FFC000000FFE03FF8000001FFFFFFF0000001DFFFFFC0000003C7FFFF
+00000003C07FF000000007C0000000000007C0000000000007C0000000000007C0000000000007
+E0000000000007F0000000000007F8000000000007FFFFFFF0000007FFFFFFFF000003FFFFFFFF
+E00003FFFFFFFFF80001FFFFFFFFFE0001FFFFFFFFFF0000FFFFFFFFFF80007FFFFFFFFF8003FF
+FFFFFFFFC00FFFFFFFFFFFC01FF800001FFFE03FE0000001FFE07FC00000007FF07FC00000003F
+F0FF800000001FF0FF800000001FF0FF800000001FF0FF800000001FF0FF800000001FF07FC000
+00003FE07FC00000003FE03FE00000007FC03FF0000000FFC01FFC000003FF800FFF00000FFF00
+03FFF000FFFC0000FFFFFFFFF000003FFFFFFFC0000007FFFFFE000000003FFFC0000035447DAE
+3B>I<00FC0001FE0003FF0007FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01FFFE00FFFC0
+07FF8003FF0001FE0000FC00000000000000000000000000000000000000000000000000000000
+000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001FFC001FFC0
+01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
+01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
+01FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18497CC820>105
+D<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC0
+0000000003FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000
+01FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000
+00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001
+FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0007FFFF801FFC0007F
+FFF801FFC0007FFFF801FFC0007FFFF801FFC0007FFFF801FFC0000FFE0001FFC00007F00001FF
+C0000FE00001FFC0003FC00001FFC0007F800001FFC000FE000001FFC001FC000001FFC007F800
+0001FFC00FF0000001FFC01FC0000001FFC03F80000001FFC0FF00000001FFC1FE00000001FFC3
+FF00000001FFCFFF80000001FFDFFFC0000001FFFFFFC0000001FFFFFFE0000001FFFFFFF00000
+01FFFCFFF8000001FFF87FFC000001FFE03FFC000001FFC01FFE000001FFC01FFF000001FFC00F
+FF800001FFC007FFC00001FFC003FFC00001FFC001FFE00001FFC001FFF00001FFC000FFF80001
+FFC0007FFC0001FFC0003FFC0001FFC0001FFE0001FFC0000FFF0001FFC0000FFF8001FFC0000F
+FFC0FFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFF3848
+7CC73F>107 D<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
+0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
+C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
+FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
+01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
+0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
+C000FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF8019487CC720>I<007FC001FFC00000FFE0
+0000FFFFC00FFFF80007FFFC0000FFFFC03FFFFE001FFFFF0000FFFFC0FFFFFF007FFFFF8000FF
+FFC1FC07FF80FE03FFC000FFFFC3E003FFC1F001FFE00003FFC7C001FFC3E000FFE00001FFCF00
+01FFE78000FFF00001FFDE0000FFEF00007FF00001FFDC0000FFEE00007FF00001FFFC0000FFFE
+00007FF80001FFF80000FFFC00007FF80001FFF00000FFF800007FF80001FFF00000FFF800007F
+F80001FFF00000FFF800007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001
+FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE000
+00FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF0
+00007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007F
+F80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001
+FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE000
+00FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF0
+00007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007F
+F80001FFE00000FFF000007FF800FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FF
+FFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF05C2E7CAD
+63>I<007FC001FFC00000FFFFC00FFFF80000FFFFC03FFFFE0000FFFFC0FFFFFF0000FFFFC1FC
+07FF8000FFFFC3E003FFC00003FFC7C001FFC00001FFCF0001FFE00001FFDE0000FFE00001FFDC
+0000FFE00001FFFC0000FFF00001FFF80000FFF00001FFF00000FFF00001FFF00000FFF00001FF
+F00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
+FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000
+01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0
+0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
+F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
+FFF00001FFE00000FFF00001FFE00000FFF000FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC0
+7FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE03B2E7CAD42>I<00000FFF0000000000FFFFF0
+00000007FFFFFE0000001FFFFFFF8000003FFC03FFC00000FFE0007FF00001FF80001FF80003FF
+00000FFC0007FE000007FE000FFE000007FF000FFC000003FF001FFC000003FF803FFC000003FF
+C03FF8000001FFC03FF8000001FFC07FF8000001FFE07FF8000001FFE07FF8000001FFE0FFF800
+0001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0
+FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF07FF8000001FFE07FF80000
+01FFE07FF8000001FFE07FF8000001FFE03FFC000003FFC03FFC000003FFC01FFC000003FF801F
+FE000007FF800FFE000007FF0007FF00000FFE0003FF80001FFC0001FFC0003FF80000FFE0007F
+F000007FFC03FFE000001FFFFFFF80000007FFFFFE00000000FFFFF0000000000FFF000000342E
+7DAD3B>I<007FC00FFC000000FFFFC07FFFC00000FFFFC3FFFFF00000FFFFCFFFFFFC0000FFFF
+DFF01FFF0000FFFFFF8007FF800003FFFE0001FFC00001FFF80000FFE00001FFF00000FFF00001
+FFE000007FF80001FFE000003FFC0001FFE000003FFC0001FFE000003FFE0001FFE000001FFE00
+01FFE000001FFF0001FFE000001FFF0001FFE000001FFF0001FFE000000FFF0001FFE000000FFF
+8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000F
+FF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE00000
+0FFF0001FFE000001FFF0001FFE000001FFF0001FFE000001FFE0001FFE000001FFE0001FFE000
+003FFC0001FFE000003FFC0001FFE000007FF80001FFF000007FF80001FFF80000FFF00001FFFC
+0001FFE00001FFFE0003FFC00001FFFF0007FF800001FFFFE03FFE000001FFEFFFFFFC000001FF
+E3FFFFF0000001FFE0FFFF80000001FFE01FF800000001FFE0000000000001FFE0000000000001
+FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000000000
+01FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE000000000
+0001FFE0000000000001FFE0000000000001FFE00000000000FFFFFFC000000000FFFFFFC00000
+0000FFFFFFC000000000FFFFFFC000000000FFFFFFC00000000039427CAD42>I<00FF803F8000
+FFFF80FFF000FFFF83FFFC00FFFF87FFFE00FFFF8FC3FF00FFFF8F07FF0003FF9E0FFF8001FFBC
+0FFF8001FFB80FFF8001FFF80FFF8001FFF00FFF8001FFF007FF0001FFF007FF0001FFE003FE00
+01FFE000F80001FFE000000001FFE000000001FFC000000001FFC000000001FFC000000001FFC0
+00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000000
+01FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0
+00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000000
+01FFC0000000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000292E7C
+AD31>114 D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FFE01FC0001FE03F8000
+0FE03F000007E07F000003E07F000003E0FF000003E0FF000003E0FF800003E0FFC0000000FFF0
+000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003FFFFFFC001FFFFFFF000FFFFFFF8007
+FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003FFFFF800001FFFF8000000FFFC0000001FFC
+7800000FFCF8000007FCF8000003FCFC000003FCFC000003FCFE000003F8FE000003F8FF000003
+F8FF800007F0FFC0000FF0FFF0001FE0FFFC00FFC0FFFFFFFF80FC7FFFFE00F81FFFF800E003FF
+8000262E7CAD2F>I<0001F000000001F000000001F000000001F000000001F000000001F00000
+0003F000000003F000000003F000000007F000000007F000000007F00000000FF00000000FF000
+00001FF00000003FF00000003FF00000007FF0000001FFF0000003FFF000000FFFFFFFC0FFFFFF
+FFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC000FFF0000000FFF0000000FFF0000000FFF0000000FF
+F0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000
+FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF00000
+00FFF0000000FFF0000000FFF0000000FFF001F000FFF001F000FFF001F000FFF001F000FFF001
+F000FFF001F000FFF001F000FFF001F000FFF001F0007FF001E0007FF803E0003FF803E0003FFC
+07C0001FFE0F80000FFFFF800007FFFE000001FFFC0000001FF00024427EC12E>I<007FE00000
+3FF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE000
+7FFFF00003FFE00001FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0
+0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF
+E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
+FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF000
+01FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0
+0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00001FFF00001FFE00001FF
+F00001FFE00001FFF00001FFE00003FFF00000FFE00007FFF00000FFE0000F7FF000007FE0001F
+7FF000007FF0003E7FF800003FFC00FC7FFFE0001FFFFFF87FFFE00007FFFFE07FFFE00001FFFF
+807FFFE000003FFE007FFFE03B2E7CAD42>I<FFFFFF07FFFFE007FFFEFFFFFF07FFFFE007FFFE
+FFFFFF07FFFFE007FFFEFFFFFF07FFFFE007FFFEFFFFFF07FFFFE007FFFE03FFC0001FFC00003F
+C003FFE0000FFC00001F8001FFE0000FFC00001F0001FFE0000FFE00001F0001FFF00007FE0000
+3F0000FFF0000FFF00003E0000FFF8000FFF00007E00007FF8000FFF00007C00007FF8001FFF80
+007C00003FFC001FFF8000F800003FFC003FFFC000F800003FFE003EFFC001F800001FFE003EFF
+C001F000001FFE007EFFE003F000000FFF007C7FE003E000000FFF00FC7FF003E000000FFF80F8
+3FF007E0000007FF80F83FF007C0000007FF81F83FF80FC0000003FFC1F01FF80F80000003FFC3
+F01FFC0F80000003FFE3E00FFC1F80000001FFE3E00FFC1F00000001FFE7E00FFE3F00000000FF
+F7C007FE3E00000000FFFFC007FF3E00000000FFFF8003FF7E000000007FFF8003FF7C00000000
+7FFF8003FFFC000000003FFF0001FFF8000000003FFF0001FFF8000000003FFE0000FFF8000000
+001FFE0000FFF0000000001FFE0000FFF0000000000FFC00007FE0000000000FFC00007FE00000
+00000FF800003FE00000000007F800003FC00000000007F800003FC00000000003F000001F8000
+00000001E000000F0000004F2E7DAD56>119 D<7FFFFF801FFFFF007FFFFF801FFFFF007FFFFF
+801FFFFF007FFFFF801FFFFF007FFFFF801FFFFF00007FF80001FF0000007FFC0001FC0000003F
+FE0003F80000001FFF0007F00000000FFF0007E000000007FF800FC000000003FFC01F80000000
+03FFE03F8000000001FFF07F0000000000FFF8FE00000000007FF9FC00000000003FFFF8000000
+00003FFFF000000000001FFFE000000000000FFFC0000000000007FFC0000000000003FFC00000
+00000001FFE0000000000001FFF0000000000001FFF8000000000003FFFC000000000003FFFE00
+0000000007FFFE00000000000FEFFF00000000001FCFFF80000000003F87FFC0000000007F03FF
+E000000000FE01FFE000000001FC00FFF000000001F8007FF800000003F0007FFC00000007F000
+3FFE0000000FE0001FFF0000001FC0000FFF0000003F800007FF800000FF800007FFC000FFFFF8
+003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC03A2E
+7EAD3F>I E /Fm 5 121 df<0003FE0000000FFF8000003C01E00000F000780001C0001C000300
+00060006000003000C0000018018000000C018000000C030000000603000000060600000003060
+000000306000000030C000000018C000000018C000000018C000000018C000000018C000000018
+C000000018C000000018C000000018600000003060000000306000000030300000006030000000
+6018000000C018000000C00C000001800600000300030000060001C0001C0000F0007800003C01
+E000000FFF80000003FE000025277E9D2A>13 D<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFF
+FF7FFE7FFE3FFC1FF80FF003C010107E9115>15 D<003C00E001C0018003800380038003800380
+03800380038003800380038003800380030007001C00F0001C0007000300038003800380038003
+8003800380038003800380038003800380018001C000E0003C0E297D9E15>102
+D<F0001C00070003000380038003800380038003800380038003800380038003800380018001C0
+00E0003C00E001C001800380038003800380038003800380038003800380038003800380030007
+001C00F0000E297D9E15>I<1F00308070406060E0E0E0E0E040E00060007000300018001C0033
+00718061C0E0C0E0E0E0E0E0E060E070C031C0198007000300018001C000C000E040E0E0E0E0E0
+C0C041C021801F000B257D9C12>120 D E /Fn 84 125 df<007E1F0001C1B1800303E3C00703
+C3C00E03C1800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E
+01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C000
+0E01C0000E01C0000E01C0000E01C0000E01C0007F87FC001A1D809C18>11
+D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01
+C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
+C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C00703C00E01C00E01C00E01C00E
+01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
+01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D809C17>I<003F07E00001
+C09C18000380F018000701F03C000E01E03C000E00E018000E00E000000E00E000000E00E00000
+0E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C
+000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0
+1C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<60F0F0F0F0F0F0F06060
+6060606060606060606060000000000060F0F060041E7C9D0C>33 D<6060F0F0F8F86868080808
+080808101010102020404080800D0C7F9C15>I<0080008007E01898308460824081C087C08FC0
+8FC086E080F0807E803FC01FF00FF803FC00BE008E00876087F083F083E0838082408240842088
+189007E00080008010217E9E15>36 D<00E0000001900000030800000308000007080000070800
+0007080000070800000710000007100000072000000740000003C03FE003800F00038006000380
+040005C0040009C0080010E0100030E010006070200060702000E0384000E03C4000E01C8000E0
+0F0020E0070020700780403009C0401830E18007C03E001B1F7E9D20>38
+D<60F0F8680808081010204080050C7C9C0C>I<004000800100020006000C000C001800180030
+0030007000600060006000E000E000E000E000E000E000E000E000E000E000E000E00060006000
+6000700030003000180018000C000C00060002000100008000400A2A7D9E10>I<800040002000
+100018000C000C000600060003000300038001800180018001C001C001C001C001C001C001C001
+C001C001C001C001C0018001800180038003000300060006000C000C0018001000200040008000
+0A2A7E9E10>I<60F0F0701010101020204080040C7C830C>44 D<FFE0FFE00B0280890E>I<60F0
+F06004047C830C>I<00010003000600060006000C000C000C0018001800180030003000300060
+006000C000C000C0018001800180030003000300060006000C000C000C00180018001800300030
+003000600060006000C000C00010297E9E15>I<03C00C301818300C300C700E60066006E007E0
+07E007E007E007E007E007E007E007E007E007E007E00760066006700E300C300C18180C3007E0
+101D7E9B15>I<030007003F00C700070007000700070007000700070007000700070007000700
+07000700070007000700070007000700070007000F80FFF80D1C7C9B15>I<07C01830201C400C
+400EF00FF80FF807F8077007000F000E000E001C001C00380070006000C00180030006010C0118
+0110023FFE7FFEFFFE101C7E9B15>I<07E01830201C201C781E780E781E381E001C001C001800
+30006007E00030001C001C000E000F000F700FF80FF80FF80FF00E401C201C183007E0101D7E9B
+15>I<000C00000C00001C00003C00003C00005C0000DC00009C00011C00031C00021C00041C00
+0C1C00081C00101C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00
+001C00001C0001FFC0121C7F9B15>I<300C3FF83FF03FC020002000200020002000200023E024
+302818301C200E000E000F000F000F600FF00FF00FF00F800E401E401C2038187007C0101D7E9B
+15>I<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007E007
+E007E007E007600760077006300E300C18180C3003E0101D7E9B15>I<4000007FFF807FFF007F
+FF0040020080040080040080080000100000100000200000600000400000C00000C00001C00001
+800001800003800003800003800003800007800007800007800007800007800007800003000011
+1D7E9B15>I<03E00C301008200C20066006600660067006780C3E083FB01FE007F007F818FC30
+7E601E600FC007C003C003C003C00360026004300C1C1007E0101D7E9B15>I<03C00C30181830
+0C700C600EE006E006E007E007E007E007E0076007700F300F18170C2707C700060006000E300C
+780C78187010203030C00F80101D7E9B15>I<60F0F0600000000000000000000060F0F0600412
+7C910C>I<60F0F0600000000000000000000060F0F0701010101020204080041A7C910C>I<7FFF
+FFC0FFFFFFE00000000000000000000000000000000000000000000000000000000000000000FF
+FFFFE07FFFFFC01B0C7E8F20>61 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000C0
+008001800100010001000100010001000000000000000000000003000780078003000F1D7E9C14
+>63 D<003F800000C0600003001800040004000800020010000100201F00802070808040E04040
+40C0384041C038408180382083803820838038208380382083803820838038208180382041C038
+2040C0384040E0784020709880201F0F00100000000800000004000000030001E000C01F80003F
+F0001B1D7E9C20>I<000600000006000000060000000F0000000F0000000F0000001780000017
+8000001780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F00001
+80F8000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C001F00
+1E001F00FF80FFF01C1D7F9C1F>I<FFFFC00F00F00F00380F003C0F001C0F001E0F001E0F001E
+0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C0F001E0F000E0F000F0F000F0F000F
+0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C7E9B1D>I<001F808000E06180018019
+80070007800E0003801C0003801C00018038000180780000807800008070000080F0000000F000
+0000F0000000F0000000F0000000F0000000F0000000F000000070000080780000807800008038
+0000801C0001001C0001000E000200070004000180080000E03000001FC000191E7E9C1E>I<FF
+FFC0000F00F0000F003C000F000E000F0007000F0007000F0003800F0003C00F0001C00F0001C0
+0F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001
+C00F0003C00F0003800F0007800F0007000F000E000F001C000F007000FFFFC0001B1C7E9B20>
+I<FFFFFC0F003C0F000C0F00040F00040F00060F00020F00020F02020F02000F02000F02000F06
+000FFE000F06000F02000F02000F02000F02010F00010F00020F00020F00020F00060F00060F00
+0C0F003CFFFFFC181C7E9B1C>I<FFFFF80F00780F00180F00080F00080F000C0F00040F00040F
+02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F00000F
+00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>I<001F808000E0618001801980
+070007800E0003801C0003801C00018038000180780000807800008070000080F0000000F00000
+00F0000000F0000000F0000000F0000000F000FFF0F0000F807000078078000780780007803800
+07801C0007801C0007800E00078007000B800180118000E06080001F80001C1E7E9C21>I<FFF3
+FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F
+003C000F003C000F003C000FFFFC000F003C000F003C000F003C000F003C000F003C000F003C00
+0F003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B1F>I<
+FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
+000F000F000F000F000F000F000F00FFF00C1C7F9B0F>I<1FFF00F80078007800780078007800
+7800780078007800780078007800780078007800780078007800787078F878F878F878F0F040E0
+21C01F00101D7F9B15>I<FFF03FE00F000F000F000C000F0008000F0010000F0020000F004000
+0F0080000F0100000F0200000F0400000F0E00000F1F00000F2F00000F2780000F4780000F83C0
+000F01E0000F01E0000F00F0000F00F8000F0078000F003C000F003C000F001E000F001F000F00
+1F80FFF07FF01C1C7E9B20>I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00
+000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00080F00080F00080F00
+180F00180F00100F00300F00700F01F0FFFFF0151C7E9B1A>I<FF8000FF800F8000F8000F8000
+F8000BC00178000BC00178000BC001780009E002780009E002780008F004780008F004780008F0
+047800087808780008780878000878087800083C107800083C107800083C107800081E20780008
+1E207800081E207800080F407800080F4078000807807800080780780008078078000803007800
+1C03007800FF8307FF80211C7E9B26>I<FF007FC00F800E000F8004000BC0040009E0040009E0
+040008F0040008F8040008780400083C0400083C0400081E0400080F0400080F04000807840008
+07C4000803C4000801E4000801E4000800F40008007C0008007C0008003C0008003C0008001C00
+08000C001C000C00FF8004001A1C7E9B1F>I<003F800000E0E0000380380007001C000E000E00
+1C0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001
+E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C0007801C00
+07000E000E0007001C000380380000E0E000003F80001B1E7E9C20>I<FFFF800F00E00F00780F
+003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F
+00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF000171C7E9B
+1C>I<FFFF00000F01E0000F0078000F003C000F001C000F001E000F001E000F001E000F001E00
+0F001C000F003C000F0078000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078
+000F0078000F0078000F0078000F0078000F0078100F0078100F0038100F003C20FFF01C200000
+07C01C1D7E9B1F>82 D<07E0801C1980300580700380600180E00180E00080E00080E00080F000
+00F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001
+C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F
+00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F000000
+0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
+000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B1E>I<FFF07FC00F000E00
+0F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004
+000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F00
+04000700080007800800038010000180100000C020000070C000001F00001A1D7E9B1F>I<FFE0
+0FF01F0003C00F0001800F0001000F800300078002000780020003C0040003C0040003C0040001
+E0080001E0080001F0080000F0100000F0100000F830000078200000782000003C4000003C4000
+003C4000001E8000001E8000001F8000000F0000000F00000006000000060000000600001C1D7F
+9B1F>I<FFE0FFE0FF1F001F003C1E001E00180F001F00100F001F00100F001F001007801F0020
+0780278020078027802003C027804003C043C04003C043C04003E043C04001E081E08001E081E0
+8001E081E08000F100F10000F100F10000F100F100007900FA00007A007A00007A007A00003E00
+7C00003C003C00003C003C00003C003C00001800180000180018000018001800281D7F9B2B>I<
+7FF0FFC00FC03E000780180003C0180003E0100001E0200001F0600000F0400000788000007D80
+00003D0000001E0000001F0000000F0000000F8000000F80000013C0000023E0000021E0000041
+F00000C0F8000080780001007C0003003C0002001E0006001F001F003F80FFC0FFF01C1C7F9B1F
+>I<FFF007FC0F8001E00780008007C0018003C0010003E0020001F0020000F0040000F8040000
+780800007C1800003C1000001E2000001F2000000F4000000FC000000780000007800000078000
+0007800000078000000780000007800000078000000780000007800000078000007FF8001E1C80
+9B1F>I<7FFFF07C01F07001E06003C06003C0400780400F80400F00401E00001E00003C00007C
+0000780000F00000F00001E00003E00003C0100780100780100F00101F00301E00203C00203C00
+607800E0F803E0FFFFE0141C7E9B19>I<08081010202040404040808080808080B0B0F8F87878
+30300D0C7A9C15>92 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C
+00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97
+D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001D86
+001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01
+801E030019060010F800131D7F9C17>I<07E00C301878307870306000E000E000E000E000E000
+E00060007004300418080C3007C00E127E9112>I<003F00000700000700000700000700000700
+00070000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700
+E00700E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>I<03E0
+0C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112
+>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E
+000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C38
+80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800001FF8
+001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215
+>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001C
+87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
+03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00180000000000000000000000000000
+00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D
+7F9C0C>I<00C001E001E000C000000000000000000000000000000FE000E000E000E000E000E0
+00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F1C061803E
+000B25839C0D>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C
+00001C3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C
+3C001C1C001C0E001C0F001C0F80FF9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C
+001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
+1C00FF80091D7F9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C01C0
+1C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01
+C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D0300
+1E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380
+1C0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180E001C0E001C0E001
+C0E001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C001D
+86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C
+01801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000FF8000131A7F91
+17>I<03C1000C3300180B00300F00700700700700E00700E00700E00700E00700E00700E00700
+600700700700300F00180F000C370007C700000700000700000700000700000700000700000700
+003FE0131A7E9116>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C001C001C
+001C001C00FFC00D127F9110>I<1F9030704030C010C010E010F8007F803FE00FF000F8803880
+18C018C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C
+001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC
+1F801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
+03801C07800C07800E1B8003E3F014127F9117>I<FF07E03C03801C01001C01000E02000E0200
+07040007040007040003880003880003D80001D00001D00000E00000E00000E00000400013127F
+9116>I<FF3FCFE03C0F03801C0701801C0701001C0B01000E0B82000E0B82000E1182000711C4
+000711C4000720C40003A0E80003A0E80003C0680001C0700001C0700001803000008020001B12
+7F911E>I<7F8FF00F03800F030007020003840001C80001D80000F00000700000780000F80000
+9C00010E00020E000607000403801E07C0FF0FF81512809116>I<FF07E03C03801C01001C0100
+0E02000E020007040007040007040003880003880003D80001D00001D00000E00000E00000E000
+004000004000008000008000F08000F10000F300006600003C0000131A7F9116>I<7FFC703860
+38407040F040E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>I<FF
+FFF01401808B15>I<FFFFFFFFFF802901808B2A>I E /Fo 20 122 df<78FCFCFCFC7806067B85
+11>46 D<007F000001C1C0000780F0000F0078000E0038001C001C003C001E003C001E003C001E
+0078000F0078000F0078000F0078000F00F8000F80F8000F80F8000F80F8000F80F8000F80F800
+0F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F8078
+000F0078000F0078000F0078000F003C001E003C001E003C001E001C001C000E0038000F007800
+0780F00001C1C000007F000019297EA71E>48 D<00100000700001F0000FF000FEF000F0F00000
+F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
+F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
+F00000F00000F00000F00000F00001F8007FFFE07FFFE013287BA71E>I<00FE0007FF800E07E0
+1803F02001F82000F840007C40007CF8007EFC007EFC003EFC003EFC003E78007E00007E00007C
+00007C0000F80000F80001F00001E00003C0000780000700000E00001C00003800007000006000
+00C0000180020300020600040C000418000410000C3FFFFC7FFFF8FFFFF8FFFFF817287DA71E>
+I<007F000003FFC0000701F0000C00F80010007C001C007C003E007E003E003E003E003E001E00
+3E000C007E0000007C0000007C00000078000000F0000000E0000001C0000007000000FF000000
+01E0000000F0000000780000003C0000003E0000001F0000001F0000001F8000001F8030001F80
+78001F80FC001F80FC001F80FC001F00F8001F0040003F0040003E0030007C001800F8000F01F0
+0003FFC000007F000019297EA71E>I<007F000001FFC00007C1E0000F0070001E0038001C003C
+003C001C0078001E0078001E00F8000F00F8000F00F8000F00F8000F00F8000F80F8000F80F800
+0F80F8000F8078000F8078001F803C001F803C001F801C002F800E004F800700CF8003810F8000
+7E0F8000000F0000000F0000000F0000001E0000001E0000001E0000003C001C003C003E007800
+3E0070003C00E0001801C0001C0780000FFE000003F8000019297EA71E>57
+D<FFFFFFFF00FFFFFFFF0007E0003F0003E000070003E000038003E000018003E000018003E000
+008003E000008003E000008003E000008003E000004003E002004003E002004003E002000003E0
+02000003E002000003E006000003E00E000003FFFE000003FFFE000003E00E000003E006000003
+E002000003E002000003E002000003E002000003E002000003E000000003E000000003E0000000
+03E000000003E000000003E000000003E000000003E000000003E000000003E000000007F00000
+00FFFFE00000FFFFE0000022297EA827>70 D<FFE0000003FFC0FFE0000003FFC007E0000003F8
+0002F0000005F00002F0000005F0000278000009F0000278000009F0000278000009F000023C00
+0011F000023C000011F000021E000021F000021E000021F000021E000021F000020F000041F000
+020F000041F0000207800081F0000207800081F0000207800081F0000203C00101F0000203C001
+01F0000203E00201F0000201E00201F0000201E00201F0000200F00401F0000200F00401F00002
+00F00401F0000200780801F0000200780801F00002003C1001F00002003C1001F00002003C1001
+F00002001E2001F00002001E2001F00002000F4001F00002000F4001F00002000F4001F0000200
+078001F0000700078001F0000F80030003F800FFF803007FFFC0FFF803007FFFC032297EA837>
+77 D<FFFF0003FFC0FFFF0003FFC007F000007E0003E00000380003E00000100001F000002000
+01F00000200001F00000200000F80000400000F80000400000FC0000C000007C00008000007C00
+008000003E00010000003E00010000003F00010000001F00020000001F00020000001F80060000
+000F80040000000F800400000007C00800000007C00800000007E00800000003E01000000003E0
+1000000001F02000000001F02000000001F02000000000F84000000000F84000000000FCC00000
+00007C80000000007C80000000003F00000000003F00000000003F00000000001E00000000001E
+00000000000C00000000000C00000000000C0000002A2A7FA82D>86 D<FFFE03FFF803FFC0FFFE
+03FFF803FFC00FE0003F80007E0007C0001F0000180003E0001F0000180003E0000F8000100003
+E0000F8000100001F0000F8000200001F0000FC000200001F0000FC000200000F8000FC0004000
+00F80013E000400000F80013E000400000FC0013E000C000007C0033F0008000007C0021F00080
+00007E0021F0008000003E0021F8010000003E0040F8010000003E0040F8010000001F0040F802
+0000001F00807C020000001F00807C020000000F80807C040000000F81003E040000000F81003E
+0400000007C1003E0800000007C2001F0800000007C2001F0800000003E2001F1000000003E400
+0F9000000003E4000F9000000001F4000FA000000001F80007E000000001F80007E000000000F8
+0007C000000000F00003C000000000F00003C00000000070000380000000006000018000000000
+60000180000000006000018000003A2A7FA83D>I<01FC00000E0780001001C0003C00E0003E00
+F0003E0078001C00780008007800000078000000780000007800007FF80003E078000F8078001F
+0078003E0078007C00780078007820F8007820F8007820F8007820F800F8207C00F8203C013C40
+1F063FC007F80F001B1A7E991E>97 D<07800000FF800000FF8000000F80000007800000078000
+000780000007800000078000000780000007800000078000000780000007800000078000000780
+00000783F000078C1C0007B0070007A0038007C003C0078001E0078001E0078000F0078000F007
+8000F8078000F8078000F8078000F8078000F8078000F8078000F8078000F0078000F0078001F0
+078001E0078001C007C003C00740078007200E0006181C000407E0001D2A7FA921>I<007E0003
+C3800700E00E00F01C00703C00783C003878003C78003CF8003CF8003CFFFFFCF80000F80000F8
+0000F80000F800007800007C00003C00043C00041E00080E001007002001C0C0007F00161A7E99
+1B>101 D<001F000070C000E1E001C3E003C3E00381C007808007800007800007800007800007
+8000078000078000078000078000FFFE00FFFE0007800007800007800007800007800007800007
+800007800007800007800007800007800007800007800007800007800007800007800007800007
+800007800007C000FFFE00FFFE00132A7FA912>I<0780FF80FF800F8007800780078007800780
+078007800780078007800780078007800780078007800780078007800780078007800780078007
+8007800780078007800780078007800780078007800780FFFCFFFC0E2A7FA911>108
+D<0783F800FF8C1C00FF900E000FA0070007A0078007C0078007C0078007800780078007800780
+078007800780078007800780078007800780078007800780078007800780078007800780078007
+80078007800780078007800780078007800780FFFCFFFCFFFCFFFC1E1A7F9921>110
+D<007F000001C1C000070070000E0038001C001C003C001E003C001E0078000F0078000F00F800
+0F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F8078000F0078000F003C
+001E003C001E001E003C000E0038000700700001C1C000007F0000191A7E991E>I<0787C0FF98
+E0FF91F00FA1F007C1F007C0E007C0000780000780000780000780000780000780000780000780
+0007800007800007800007800007800007800007800007800007C000FFFE00FFFE00141A7F9917
+>114 D<07800780FF80FF80FF80FF800F800F8007800780078007800780078007800780078007
+800780078007800780078007800780078007800780078007800780078007800780078007800780
+07800780078007800F8007800F800380178001C027C000E047FC003F87FC1E1A7F9921>117
+D<FFF00FF8FFF00FF80F8003C0078003800780010003C0020003C0020003E0020001E0040001E0
+040000F0080000F0080000F818000078100000781000003C2000003C2000003E6000001E400000
+1E4000000F8000000F800000070000000700000007000000020000000200000004000000040000
+000400000008000070080000F8100000F8100000F8200000F0400000608000001F0000001D267F
+9920>121 D E /Fp 10 116 df<78FCFCFCFC7806067A8512>46 D<FFE00007FFC0FFF00007FF
+C003F000007C0002F80000380002FC00001000027C00001000023E00001000023E00001000021F
+00001000021F80001000020F800010000207C00010000207E00010000203E00010000203F00010
+000201F00010000200F80010000200FC00100002007C00100002007E00100002003E0010000200
+1F00100002001F80100002000F80100002000FC01000020007C01000020003E01000020003F010
+00020001F01000020000F81000020000F810000200007C10000200007E10000200003E10000200
+001F10000200001F10000200000F90000200000FD00002000007D00002000003F00002000003F0
+0002000001F00002000001F00002000000F0000200000070000700000070000F8000003000FFF8
+00003000FFF8000010002A317CB032>78 D<FFFFFF000000FFFFFFF0000007E001FC000003E000
+3E000003E0000F800003E00007C00003E00003E00003E00001E00003E00001F00003E00000F000
+03E00000F80003E00000F80003E00000F80003E00000F80003E00000F80003E00000F80003E000
+00F00003E00001F00003E00001E00003E00003C00003E00007800003E0000F000003E0003C0000
+03E001F0000003FFFF00000003E001F0000003E0007C000003E0001E000003E0000F800003E000
+07800003E00007C00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
+03E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E000
+03E00803E00003E00803E00001E00803E00001E00807F00000F010FFFF80007010FFFF80003860
+000000000F802D327CB031>82 D<FFFE003FFF8001FFC0FFFE003FFF8001FFC00FE00003F80000
+7E0007C00001F000003C0007C00001F00000180003E00000F80000100003E00000F80000100003
+E00000F80000100001F00000FC0000200001F00000FC0000200001F00000FC0000200000F80001
+3E0000400000F800013E0000400000F800013E0000400000FC00033F0000C000007C00021F0000
+8000007C00021F00008000007E00021F80008000003E00040F80010000003E00040F8001000000
+3E00040F80010000001F000807C0020000001F000807C0020000001F000807C0020000000F8010
+03E0040000000F801003E0040000000F801003E0040000000FC02001F00C00000007C02001F008
+00000007C02001F00800000007E02001F80800000003E04000F81000000003E04000F810000000
+03E04000F81000000001F080007C2000000001F080007C2000000001F080007C2000000000F900
+003E4000000000F900003E4000000000F900003E40000000007E00001F80000000007E00001F80
+000000007E00001F80000000007E00001F80000000003C00000F00000000003C00000F00000000
+003C00000F00000000001800000600000000001800000600000000001800000600000042327FB0
+44>87 D<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E001E
+0008001E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F001E003E00
+1E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478003E047C005E043E
+008F080F0307F003FC03E01E1F7D9E21>97 D<0F001F801F801F801F800F000000000000000000
+00000000000000000000000000000780FF80FF800F800780078007800780078007800780078007
+800780078007800780078007800780078007800780078007800780078007800FC0FFF8FFF80D30
+7EAF12>105 D<0780FF80FF800F80078007800780078007800780078007800780078007800780
+078007800780078007800780078007800780078007800780078007800780078007800780078007
+80078007800780078007800780078007800780078007800FC0FFFCFFFC0E327EB112>108
+D<0780FE001FC000FF83078060F000FF8C03C18078000F9001E2003C0007A001E4003C0007A000
+F4001E0007C000F8001E0007C000F8001E00078000F0001E00078000F0001E00078000F0001E00
+078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0
+001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007
+8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F000
+1E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>I<001FC00000F0780001
+C01C00070007000F0007801E0003C01C0001C03C0001E03C0001E0780000F0780000F0780000F0
+F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8780000F07C0001
+F03C0001E03C0001E01E0003C01E0003C00F00078007800F0001C01C0000F07800001FC0001D1F
+7E9E21>111 D<01FC100E03301800F0300070600030E00030E00010E00010E00010F00010F800
+007E00003FF0001FFF000FFFC003FFE0003FF00001F80000F880003C80003C80001CC0001CC000
+1CE0001CE00018F00038F00030CC0060C301C080FE00161F7E9E1A>115
+D E /Fq 15 118 df<1F003F807FC0FFC0FFE0FFE0FFF0FFF07FF03FB01F300030003000300030
+003000600060006000C000C000C0018001800300060006000C001800300020000C1F77C71D>39
+D<FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00007FF800001FFF00003FF0000001
+FF80001FF00000007F80001FF00000003F80001FF00000001F80001FF00000000F80001FF00000
+000780001FF00000000780001FF00000000380001FF000000003C0001FF000000003C0001FF000
+000001C0001FF000000001C0001FF000000001C0001FF000000001C0001FF000000001C0001FF0
+00000000E0001FF000000000E0001FF000000000E0001FF00001C000E0001FF00001C00000001F
+F00001C00000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001C0000000
+1FF00003C00000001FF00003C00000001FF00007C00000001FF0000FC00000001FF0003FC00000
+001FFFFFFFC00000001FFFFFFFC00000001FFFFFFFC00000001FF0003FC00000001FF0000FC000
+00001FF00007C00000001FF00003C00000001FF00003C00000001FF00001C00000001FF00001C0
+0000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001C00000001FF00001
+C00000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001FF000
+00000000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001FF0
+0000000000001FF00000000000001FF00000000000001FF00000000000001FF00000000000001F
+F00000000000001FF00000000000001FF00000000000003FF80000000000007FFE0000000000FF
+FFFFFF80000000FFFFFFFF80000000FFFFFFFF800000003B477DC643>70
+D<FFFFFFFE01FFFFFFFCFFFFFFFE01FFFFFFFCFFFFFFFE01FFFFFFFC007FFC000000FFF800003F
+F80000007FF000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000
+003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
+00001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001F
+F00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000
+003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
+00001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001F
+F00000003FE000001FF00000003FE000001FF00000003FE000001FFFFFFFFFFFE000001FFFFFFF
+FFFFE000001FFFFFFFFFFFE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
+00001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001F
+F00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000
+003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
+00001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001F
+F00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000
+003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE000001FF00000003FE0
+00001FF00000003FE000003FF80000007FF000007FFC000000FFF800FFFFFFFE01FFFFFFFCFFFF
+FFFE01FFFFFFFCFFFFFFFE01FFFFFFFC46477DC64D>72 D<FFFFF800000000001FFFFFFFFFF800
+000000001FFFFFFFFFF800000000001FFFFF007FFC00000000003FFE00003FFC00000000003FFC
+00001DFE000000000077F800001DFE000000000077F800001DFE000000000077F800001CFF0000
+000000E7F800001CFF0000000000E7F800001C7F8000000001C7F800001C7F8000000001C7F800
+001C7F8000000001C7F800001C3FC00000000387F800001C3FC00000000387F800001C1FE00000
+000707F800001C1FE00000000707F800001C1FE00000000707F800001C0FF00000000E07F80000
+1C0FF00000000E07F800001C0FF00000000E07F800001C07F80000001C07F800001C07F8000000
+1C07F800001C03FC0000003807F800001C03FC0000003807F800001C03FC0000003807F800001C
+01FE0000007007F800001C01FE0000007007F800001C00FF000000E007F800001C00FF000000E0
+07F800001C00FF000000E007F800001C007F800001C007F800001C007F800001C007F800001C00
+7F800001C007F800001C003FC000038007F800001C003FC000038007F800001C001FE000070007
+F800001C001FE000070007F800001C001FE000070007F800001C000FF0000E0007F800001C000F
+F0000E0007F800001C0007F8001C0007F800001C0007F8001C0007F800001C0007F8001C0007F8
+00001C0003FC00380007F800001C0003FC00380007F800001C0001FE00700007F800001C0001FE
+00700007F800001C0001FE00700007F800001C0000FF00E00007F800001C0000FF00E00007F800
+001C0000FF00E00007F800001C00007F81C00007F800001C00007F81C00007F800001C00003FC3
+800007F800001C00003FC3800007F800001C00003FC3800007F800001C00001FE7000007F80000
+1C00001FE7000007F800001C00000FFE000007F800001C00000FFE000007F800001C00000FFE00
+0007F800001C000007FC000007F800001C000007FC000007F800003E000007FC000007F800007F
+000003F8000007F80000FF800003F800000FFC0003FFE00001F000001FFE00FFFFFF8001F0003F
+FFFFFFFFFFFF8001F0003FFFFFFFFFFFFF8000E0003FFFFFFF58477DC65F>77
+D<FFFFFFE003FFFFFF8001FFFFF8FFFFFFE003FFFFFF8001FFFFF8FFFFFFE003FFFFFF8001FFFF
+F803FFF800000FFFE000001FFF8000FFE0000003FF80000007FE00007FC0000001FF00000001FC
+00007FC0000001FF00000000F800007FC0000001FF80000000F000003FE0000000FF80000000E0
+00003FE0000000FF80000000E000003FE0000000FF80000000E000001FF00000007FC0000001C0
+00001FF00000007FC0000001C000001FF00000007FC0000001C000001FF8000000FFE0000003C0
+00000FF8000000FFE00000038000000FF8000000FFE00000038000000FFC000001DFF000000780
+000007FC000001DFF000000700000007FC000001DFF000000700000007FE0000038FF800000F00
+000003FE0000038FF800000E00000003FE0000038FF800000E00000003FF0000078FFC00001E00
+000001FF00000707FC00001C00000001FF00000707FC00001C00000001FF00000F07FE00001C00
+000000FF80000E03FE00003800000000FF80000E03FE00003800000000FF80001E03FF00003800
+0000007FC0001C01FF000070000000007FC0001C01FF000070000000007FC0003C01FF80007000
+0000003FE0003800FF8000E0000000003FE0003800FF8000E0000000003FE0003800FF8000E000
+0000001FF00070007FC001C0000000001FF00070007FC001C0000000001FF00070007FC001C000
+0000001FF800E0003FE003C0000000000FF800E0003FE00380000000000FF800E0003FE0038000
+0000000FFC01C0001FF007800000000007FC01C0001FF007000000000007FC01C0001FF0070000
+00000007FE0380000FF80F000000000003FE0380000FF80E000000000003FE0380000FF80E0000
+00000003FF0780000FFC1E000000000001FF07000007FC1C000000000001FF07000007FC1C0000
+00000001FF0F000007FE1C000000000000FF8E000003FE38000000000000FF8E000003FE380000
+00000000FF9E000003FF380000000000007FDC000001FF700000000000007FDC000001FF700000
+000000007FFC000001FFF00000000000003FF8000000FFE00000000000003FF8000000FFE00000
+000000003FF8000000FFE00000000000001FF00000007FC00000000000001FF00000007FC00000
+000000001FF00000007FC00000000000001FE00000003FC00000000000000FE00000003F800000
+000000000FE00000003F800000000000000FC00000001F8000000000000007C00000001F000000
+0000000007C00000001F0000000000000007800000000F0000000000000003800000000E000000
+0065487EC66A>87 D<0003FE000000001FFFC00000007E03F0000000F000FC000001C0007E0000
+0380003F000007C0001F800007F0001FC0000FF0000FC0000FF8000FE0000FF8000FE0000FF800
+07F00007F00007F00007F00007F00001C00007F00000000007F00000000007F00000000007F000
+00000007F000000001FFF00000007FFFF0000003FF87F000001FF007F000007F8007F00001FE00
+07F00003F80007F00007F00007F0000FE00007F0001FC00007F0003FC00007F0003F800007F000
+7F800007F01C7F800007F01CFF000007F01CFF000007F01CFF000007F01CFF00000FF01CFF0000
+0FF01CFF00000FF01C7F80001BF01C7F800033F01C3FC00031F8381FC00061F8380FF001C0FC70
+03FC0780FFE000FFFE003FC0001FF8001F802E2F7CAD34>97 D<01FE0000000000FFFE00000000
+00FFFE0000000000FFFE000000000003FE000000000001FE000000000000FE000000000000FE00
+0000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000000000
+00FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000
+00000000FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000
+FE000000000000FE000000000000FE000000000000FE00FF00000000FE07FFF0000000FE1F01FC
+000000FE38003E000000FE70001F800000FEC0000FC00000FF800007E00000FF800003F00000FF
+000003F80000FE000001FC0000FE000001FC0000FE000000FE0000FE000000FE0000FE000000FF
+0000FE000000FF0000FE0000007F8000FE0000007F8000FE0000007F8000FE0000007FC000FE00
+00007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC0
+00FE0000007FC000FE0000007FC000FE0000007FC000FE0000007F8000FE0000007F8000FE0000
+00FF8000FE000000FF0000FE000000FF0000FE000000FE0000FE000001FE0000FE000001FC0000
+FE000001F80000FF000003F00000FF800007F00000FD800007E00000F9C0000F800000F8E0003F
+000000F078007E000000F01E03F8000000E00FFFE00000000001FE00000032497DC739>I<0000
+3FE0000001FFFE000007E01F80001F8003C0003E0000E0007C00007001F80000F803F80003F803
+F00003FC07F00007FC0FE00007FC1FE00007FC1FC00003F83FC00003F83FC00000E03FC0000000
+7FC00000007F800000007F80000000FF80000000FF80000000FF80000000FF80000000FF800000
+00FF80000000FF80000000FF80000000FF80000000FF800000007F800000007F800000007FC000
+00003FC00000003FC000000E1FC000000E1FE000000E0FE000001C0FF000001C07F000003803F8
+00003801F800007000FC0000E0007E0001C0001F800780000FE03E000001FFFC0000003FE00027
+2F7DAD2E>I<00007F80000003FFF000000FC0FC00003F003F00007C001F8000F8000FC001F800
+07E003F00007E007E00003F00FE00003F80FE00003F81FC00001FC1FC00001FC3FC00001FC3FC0
+0001FC7F800001FE7F800000FE7F800000FEFF800000FEFF800000FEFFFFFFFFFEFFFFFFFFFEFF
+80000000FF80000000FF80000000FF80000000FF80000000FF800000007F800000007F80000000
+7F800000007FC00000003FC00000003FC000000E1FC000000E1FE000000E0FE000001C07E00000
+1C07F000003803F000007001F800007000FC0000E0003E0003C0001F8007000007E03E000001FF
+F80000003FC000272F7DAD2E>101 D<01FE0000000000FFFE0000000000FFFE0000000000FFFE
+000000000003FE000000000001FE000000000000FE000000000000FE000000000000FE00000000
+0000FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE00
+0000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000000000
+00FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000
+00000000FE000000000000FE000000000000FE001FFFFE0000FE001FFFFE0000FE001FFFFE0000
+FE0007FFE00000FE0003FF000000FE0001FC000000FE0001F0000000FE0003E0000000FE0003C0
+000000FE000780000000FE000E00000000FE001C00000000FE007800000000FE00F000000000FE
+01E000000000FE03C000000000FE07C000000000FE0FC000000000FE1FE000000000FE3FF00000
+0000FEF3F000000000FFE3F800000000FFC1FC00000000FF80FE00000000FF00FE00000000FE00
+7F00000000FC003F80000000FC003F80000000FC001FC0000000FC000FE0000000FC000FE00000
+00FC0007F0000000FC0003F8000000FC0001F8000000FC0001FC000000FC0000FE000000FC0000
+FF000000FC00007F000000FC00007F800000FC00007FC00003FF0000FFF000FFFFFC07FFFF80FF
+FFFC07FFFF80FFFFFC07FFFF8031487DC737>107 D<01FE00FFFE00FFFE00FFFE0003FE0001FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE
+0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0003FF80FFFFFEFFFF
+FEFFFFFE17487DC71C>I<01FC007F800000FFFC03FFF00000FFFC0781F80000FFFC0C007C0000
+03FC18007E000001FC30003F000000FC60003F800000FCC0001F800000FD80001F800000FD8000
+1FC00000FF00001FC00000FF00001FC00000FF00001FC00000FE00001FC00000FE00001FC00000
+FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001F
+C00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE
+00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC0
+0000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00
+001FC00000FE00001FC00000FE00001FC00000FE00001FC00003FF80007FF000FFFFFE1FFFFFC0
+FFFFFE1FFFFFC0FFFFFE1FFFFFC0322D7CAC39>110 D<01FC01F800FFFC07FE00FFFC1E1F00FF
+FC383F8003FC607FC001FC607FC000FCC07FC000FCC07FC000FD803F8000FD801F0000FF000E00
+00FF00000000FF00000000FF00000000FE00000000FE00000000FE00000000FE00000000FE0000
+0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
+000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE
+00000000FE00000000FE00000000FE00000000FE00000000FE00000000FF00000003FF800000FF
+FFFF8000FFFFFF8000FFFFFF8000222D7DAC28>114 D<001FF8060000FFFF0E0003F0079E0007
+8001FE000E00007E001C00003E003C00003E007800001E007800001E00F800001E00F800000E00
+F800000E00FC00000E00FC00000E00FE00000E00FF000000007FC00000007FF80000003FFFE000
+001FFFFE00000FFFFF800007FFFFE00003FFFFF00000FFFFFC00001FFFFE000001FFFE0000000F
+FF00000001FF800000007F806000001FC0E000001FC0E000000FC0F000000FC0F0000007C0F000
+0007C0F0000007C0F8000007C0F800000780FC00000780FC00000F00FE00000F00FF00001E00FF
+80003C00F9E0007800F0F803E000E03FFFC000C007FC0000222F7DAD29>I<01FE00003FC000FF
+FE001FFFC000FFFE001FFFC000FFFE001FFFC00003FE00007FC00001FE00003FC00000FE00001F
+C00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE
+00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC0
+0000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00
+001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC000
+00FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00003FC00000FE0000
+3FC00000FE00003FC00000FE00007FC000007E00007FC000007E00007FC000003F0000DFC00000
+3F00019FE000001F00031FF000000F80061FFFC00007F01C1FFFC00001FFF81FFFC000003FE01F
+E000322E7CAC39>117 D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+
+%%EndSetup
+%%Page: 0 1
+0 0 bop 206 823 a Fq(F)-9 b(unnelW)g(eb)37 b(Hac)m(k)m(er's)d(Man)m(ual)603
+1151 y Fp(Ross)21 b(N.)g(Williams)519 1343 y Fo(V1.0)e(for)h(F)-5
+b(unnelW)g(eb)20 b(V3.0)725 1536 y(Ma)n(y)g(1992)p eop
+%%Page: 1 2
+1 1 bop 177 2597 1772 2 v 177 2675 a Fn(Cop)o(yrigh)o(t)384
+2674 y(c)372 2675 y Fm(\015)14 b Fn(1992)e(Ross)i(N.)g(William)o(s.)177
+2750 y(P)o(ermission)j(is)g(gran)o(ted)g(to)h(mak)o(e)d(and)j(distribute)g(v)
+o(erbatim)d(copies)j(of)f(this)h(man)o(ual)c(pro)o(vided)k(that)f(the)177
+2800 y(cop)o(yrigh)o(t)d(notice)g(and)g(this)g(p)q(ermission)e(notice)j(are)f
+(preserv)o(ed)i(on)e(all)e(copies.)p 177 2835 V 1053 2940 a(1)p
+eop
+%%Page: 2 3
+2 2 bop 1053 2940 a Fn(2)p eop
+%%Page: 3 4
+3 3 bop 177 397 a Fl(Con)m(ten)m(ts)177 679 y Fk(Preface)1592
+b(5)177 794 y(Ac)o(kno)o(wledgemen)o(ts)1348 b(7)177 909 y(Presen)o(tation)12
+b(Notes)1347 b(9)177 1024 y(1)38 b(F)l(unnelW)l(eb)14 b(Design)1268
+b(11)239 1098 y Fn(1.1)42 b(Motiv)n(ation)12 b(for)i(F)m(unnelW)m(eb)k
+Fj(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
+h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(11)239
+1172 y(1.2)42 b(Inden)o(tation)30 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(12)239
+1245 y(1.3)42 b(Review)14 b(of)f(F)m(unnelW)m(eb)g(Syn)o(tax)28
+b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(14)335
+1319 y(1.3.1)46 b(Review)13 b(of)h(Macro)g(De\014nition)f(Syn)o(tax)k
+Fj(:)j(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)
+g(:)h(:)f(:)g(:)61 b Fn(14)335 1393 y(1.3.2)46 b(Review)13
+b(of)h(Macro)g(Call)e(Syn)o(tax)26 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
+h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(16)335 1467 y(1.3.3)46 b(Review)13 b(of)h(P)o(arameterized)g(Macro)g
+(Call)f(Syn)o(tax)42 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)61 b Fn(16)239 1540 y(1.4)42 b(Do)q(cumen)o(t)13
+b(Structuring)27 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)61 b Fn(16)239 1614 y(1.5)42 b(Discussion)14 b(of)f(Some)g
+(Miscellaneous)h(Issues)30 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)
+h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(18)239
+1688 y(1.6)42 b(Automated)13 b(Regression)h(T)m(esting)38 b
+Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(18)239 1761
+y(1.7)42 b(Command)11 b(Line)i(In)o(terface)j Fj(:)k(:)h(:)f(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(18)239 1835 y(1.8)42 b(File)13
+b(Name)g(Managemen)o(t)31 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)61 b Fn(19)335 1909 y(1.8.1)46 b(Filename)12 b(Extensions)24
+b Fj(:)c(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(20)335
+1982 y(1.8.2)46 b(Filename)12 b(Inheritance)k Fj(:)k(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)61 b Fn(20)335 2056 y(1.8.3)46 b(P)o(ortable)14
+b(Structure)h(of)f(File)f(Names)20 b Fj(:)g(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(21)239 2130 y(1.9)42 b(Sp)q(ecifying)13 b(Constrain)o(ts)i(on)e(the)i
+(Num)o(b)q(er)e(of)g(Instan)o(tiations)38 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(22)239 2204 y(1.10)21
+b(The)14 b(Relationship)f(Bet)o(w)o(een)i(Do)q(cumen)o(t)e(Structure)j(and)e
+(Macro)g(Structure)19 b Fj(:)h(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(23)239 2277 y(1.11)21 b(Diagnostic)13 b(Messages)32 b
+Fj(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(25)239 2351 y(1.12)21 b(Summary)31 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(25)177 2466 y Fk(2)38 b(F)l(unnelW)l(eb)14 b(Implemen)o(tati)o(on)1077
+b(27)239 2540 y Fn(2.1)42 b(In)o(tro)q(duction)13 b Fj(:)20
+b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)61 b Fn(27)239 2614 y(2.2)42 b(History)14 b(of)f(F)m(unnelW)m(eb)g
+(Implemen)o(tations)40 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)
+f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(27)239
+2687 y(2.3)42 b(Wh)o(y)13 b(F)m(unnelW)m(eb)h(W)m(asn't)e(Used)j(to)f(W)m
+(rite)g(Itself)35 b Fj(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(28)239 2761 y(2.4)42
+b(Co)q(ding)13 b(St)o(yle)38 b Fj(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(28)239 2835
+y(2.5)42 b(Use)15 b(of)e(Memory)27 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
+g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(29)1053 2940
+y(3)p eop
+%%Page: 4 5
+4 4 bop 239 42 a Fn(2.6)42 b(The)14 b(Heap)30 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(29)239 116 y(2.7)42 b(The)14 b(Stac)o(k)24 b Fj(:)c(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(30)239 191 y(2.8)42 b(Static)14 b(V)m(ariables)k Fj(:)i(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b
+Fn(30)239 266 y(2.9)42 b(Implemen)o(ting)11 b(T)m(ext)j(Inden)o(tation)25
+b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(30)177
+382 y Fk(3)38 b(F)l(unnelW)l(eb)14 b(Mo)q(di\014cation)1145
+b(35)239 457 y Fn(3.1)42 b(In)o(tro)q(duction)13 b Fj(:)20
+b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)61 b Fn(35)239 531 y(3.2)42 b(The)14 b(Danger)g(of)f(Mo)q(difying)g
+(Languages)26 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(35)239
+606 y(3.3)42 b(Authorit)o(y)14 b(vs)g(User)h(Securit)o(y)43
+b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b
+Fn(36)239 681 y(3.4)42 b(What)13 b(I)h(W)m(an)o(t)f(to)h(Protect)25
+b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(37)239 756 y(3.5)42 b(Mo)q(difying)12 b(the)j(Man)o(uals)c
+Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(38)239 830 y(3.6)42 b(Ho)o(w)13 b(Cop)o(yrigh)o(t)g(La)o(w)h(W)m(orks)37
+b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b
+Fn(38)239 905 y(3.7)42 b(Managemen)o(t)13 b(of)g(the)h(O\016cial)f(F)m
+(unnelW)m(eb)f Fj(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(39)239 980
+y(3.8)42 b(A)14 b(GNU)g(V)m(ersion?)29 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)
+g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(41)239 1054
+y(3.9)42 b(Summary)31 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(41)177 1171
+y Fk(4)38 b(F)l(unnelW)l(eb)14 b(F)l(uture)1270 b(43)239 1245
+y Fn(4.1)42 b(Do)q(cumen)o(tation)25 b Fj(:)20 b(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(43)239 1320
+y(4.2)42 b(Command)11 b(Line)i(In)o(terface)j Fj(:)k(:)h(:)f(:)g(:)g(:)h(:)f
+(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(43)239 1395 y(4.3)42 b(Shell)13
+b(In)o(terpreter)42 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)61 b Fn(43)239 1469 y(4.4)42 b(Language)13
+b(Design)28 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)61 b Fn(44)239 1544 y(4.5)42 b(Scanner/Mapp)q(er)34
+b Fj(:)20 b(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)61 b Fn(44)239 1619 y(4.6)42 b(P)o(arser)29 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)
+f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(45)239 1694 y(4.7)42 b(Analyser)16 b Fj(:)21 b(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(45)239 1768 y(4.8)42 b(T)m(angle)21 b Fj(:)f(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(45)239 1843 y(4.9)42 b(W)m(ea)o(v)o(e)26 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(45)239 1918 y(4.10)21 b(Lister)39 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g(:)
+g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(46)239 1993 y(4.11)21 b(Diagnostics)32 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(47)239 2067 y(4.12)21 b(Sp)q(eed)37 b Fj(:)20 b(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h
+(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(47)239 2142 y(4.13)21 b(Correctness)32 b Fj(:)20 b(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(47)239 2217 y(4.14)21 b(T)m(est)14 b(Suite)25 b Fj(:)20
+b(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g
+(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f
+(:)g(:)61 b Fn(47)239 2291 y(4.15)21 b(Mac)o(hine-Sp)q(eci\014c)15
+b(Changes)29 b Fj(:)21 b(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(48)239 2366 y(4.16)21 b(Summary)31 b Fj(:)20 b(:)g(:)h(:)f(:)g(:)g(:)h
+(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g
+(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)g(:)61
+b Fn(48)177 2482 y Fk(A)26 b(GNU)16 b(General)e(Public)f(License)h(V)l
+(ersion)g(2)841 b(49)177 2599 y(B)28 b(References)1436 b(57)177
+2715 y(Index)1605 b(57)1053 2940 y Fn(4)p eop
+%%Page: 5 6
+5 5 bop 177 399 a Fl(Preface)177 639 y Fn(This)15 b(man)o(ual)d(is)j(for)f
+(hac)o(k)o(ers!)22 b(An)o(y)o(one)15 b(who)g(w)o(an)o(ts)f(to)h(bash,)g
+(diddle,)f(frob,)g(grind,)h(mangle,)d(patc)o(h,)j(p)q(ok)o(e,)177
+689 y(toggle,)e(t)o(widdle,)g(zap,)h(or)f(generally)h(hac)o(k)g(F)m(unnelW)m
+(eb)f(should)h(at)g(least)g(tak)o(e)g(a)f(lo)q(ok)g(at)h(this)g(man)o(ual.)
+177 764 y(This)g(do)q(cumen)o(t)f(has)h(b)q(een)h(created)h(to)e(serv)o(e)h
+(t)o(w)o(o)e(purp)q(oses:)228 880 y(1.)20 b(T)m(o)12 b(act)h(as)f(a)h(rep)q
+(ository)g(for)f(sp)q(eci\014c)j(design)d(and)h(implemen)o(tatio)o(n)d
+(information)g(not)i(appropriate)h(to)281 930 y(b)q(e)h(included)g(in)g
+(program)e(commen)o(ts.)228 1013 y(2.)20 b(T)m(o)13 b(guide)h(those)g(in)o
+(terested)i(in)d(mo)q(difying)e(the)k(program.)177 1129 y(As)e(a)g(result,)g
+(this)g(do)q(cumen)o(t)f(has)h(gro)o(wn)g(in)f(\014ts)i(and)e(starts.)19
+b(This)13 b(man)o(ual)d(is)j(not)f(a)h(particularly)f(p)q(olished)177
+1179 y(or)h(w)o(ell-balanced)e(do)q(cumen)o(t)h(but)h(it)f(should)h(b)q(e)g
+(of)f(assistance)h(to)g(those)g(\(including)f(m)o(yself)s(\))f(in)o(v)o(olv)o
+(ed)g(with)177 1229 y(mo)q(difying)g(F)m(unnelW)m(eb.)177 1328
+y Fk(Ross)k(N.)i(Williams)177 1378 y(Adelaide,)d(Australia)177
+1428 y(Ma)o(y)i(1992)1053 2940 y Fn(5)p eop
+%%Page: 6 7
+6 6 bop 1053 2940 a Fn(6)p eop
+%%Page: 7 8
+7 7 bop 177 399 a Fl(Ac)m(kno)m(wledgemen)m(ts)177 645 y Fn(Man)o(y)16
+b(thanks)h(to)g Fk(Da)o(vid)h(Hulse)d Fn(\()p Fi(dave@cs.adelaide.e)o(du.au)o
+Fn(\))f(for)j(translating)f(the)h(original)e(v)o(ersion)177
+695 y(of)g(F)m(unnelW)m(eb)g(\(F)m(unnelW)m(eb)h(V1\))f(from)f(Ada)i(in)o(to)
+f(C)g(and)h(getting)f(it)h(to)f(w)o(ork)g(on)h(Unix)f(and)h(a)f(PC.)g(The)177
+744 y(C)i(co)q(de)h(written)f(b)o(y)g(Da)o(vid)e(\(F)m(unnelW)m(eb)i(V2\))f
+(formed)g(the)h(basis)g(of)g(F)m(unnelW)m(eb)f(V3,)h(but)g(w)o(as)g(en)o
+(tirely)177 794 y(rewritten)h(during)f(the)h(in)o(tensiv)o(e)f(re\014nemen)o
+(t)h(and)e(feature-injection)i(p)q(erio)q(d)f(leading)f(up)h(to)g(this)h
+(release)177 844 y(\(F)m(unnelW)m(eb)12 b(V3)g(is)f(ab)q(out)h(three)h(times)
+e(the)i(size)g(of)e(F)m(unnelW)m(eb)g(V2\).)18 b(Nev)o(ertheless,)c(without)e
+(this)g(imp)q(or-)177 894 y(tan)o(t)h(\014rst)i(translation)d(step,)i(I)g(w)o
+(ould)e(probably)h(not)g(ha)o(v)o(e)g(found)g(the)h(motiv)n(ation)d(to)i(dev)
+o(elop)g(F)m(unnelW)m(eb)177 944 y(to)h(its)g(presen)o(t)h(state.)177
+1018 y(Thanks)f(go)e(to)h Fk(Simon)h(Hac)o(k)o(ett)e Fn(\()p
+Fi(simon@internode.com)o(.au)p Fn(\))e(of)j(In)o(terno)q(de)h(Systems)f(Pt)o
+(y)h(Ltd)f(for)g(the)177 1068 y(use)18 b(of)e(his)h(Sun,)h(Mac,)g(and)e(PC,)h
+(for)g(assistance)h(in)f(p)q(orting)f(F)m(unnelW)m(eb)h(to)g(the)g(Sun)h(and)
+e(PC,)h(and)g(for)177 1118 y(helpful)c(discussions.)177 1193
+y(Thanks)j(go)g(to)f Fk(Jerem)o(y)i(Begg)f Fn(\()p Fi(jeremy@vsm.com.au)o
+Fn(\))d(of)j(VSM)g(Soft)o(w)o(are)f(Services)j(for)d(the)i(use)g(of)e(his)177
+1243 y(V)-5 b(AX,)14 b(and)g(for)g(assistance)h(with)e(the)i(VMS-sp)q
+(eci\014c)g(co)q(de.)177 1317 y(Thanks)50 b(to)h Fk(Barry)57
+b(Dwy)o(er)50 b Fn(\()p Fi(dwyer@cs.adelaid)o(e.edu)o(.au)p
+Fn(\))d(and)j Fk(Roger)57 b(Brissenden)177 1367 y Fn(\()p Fi
+(rjb@koala.harvard.e)o(du)p Fn(\))15 b(for)j(trying)g(out)g(F)m(unnelW)m(eb)g
+(V)m(ersion)g(1)g(in)g(1987)f(and)h(pro)o(viding)f(v)n(aluable)177
+1417 y(feedbac)o(k.)177 1492 y(Thanks)d(to)g(Donald)f(Kn)o(uth)h(for)f
+(establishing)h(the)g(idea)g(of)f(literate)h(programming)d(in)i(the)i
+(\014rst)f(place.)177 1591 y Fk(Ross)h(N.)i(Williams)177 1641
+y(Adelaide,)d(Australia)177 1691 y(Ma)o(y)i(1992)1053 2940
+y Fn(7)p eop
+%%Page: 8 9
+8 8 bop 1053 2940 a Fn(8)p eop
+%%Page: 9 10
+9 9 bop 177 399 a Fl(Presen)m(tation)42 b(Notes)177 639 y Fk(References:)e
+Fn(All)24 b(references)29 b(are)c(set)i(in)e(b)q(old)f(and)i(are)f(cited)h
+(in)f(square)h(brac)o(k)o(ets)h(in)e(the)h(form)177 689 y Fk([)p
+Fj(<)p Fh(\014rstauthor)p Fj(><)p Fh(ye)n(ar)p Fj(>)p Fk(])p
+Fn(.)19 b(All)13 b(references)j(cited)e(in)f(the)g(text)h(app)q(ear)g(in)f
+(the)h(reference)h(list)e(and)g(the)h(index.)177 764 y Fk(Sp)q(ecial)d
+(terms:)17 b Fn(New)12 b(or)f(imp)q(ortan)o(t)f(terminology)f(has)i(b)q(een)i
+(set)f(in)f(b)q(old)g(face)h(and)f(app)q(ears)h(in)f(the)h(index.)177
+839 y Fk(T)o(yp)q(esetting:)69 b Fn(This)41 b(do)q(cumen)o(t)f(w)o(as)g
+(prepared)i(b)o(y)e(the)h(author)f(using)h(Andrew)g(T)m(rev)o(or-)177
+888 y(ro)o(w's)29 b(\()p Fi(akt150@cscgpo.anu.e)o(du.au)o Fn(\))e(implemen)o
+(tatio)o(n)g(\(OzT)m(eX\))j(of)f(the)h(T)1558 897 y(E)1581
+888 y(X/L)1644 883 y Fg(a)1663 888 y Fn(T)1686 901 y(E)1709
+888 y(X)p Fk([Kn)o(uth84])177 938 y([Lamp)q(ort86])13 b Fn(t)o(yp)q(esetting)
+i(system)e(running)h(on)g(a)f(Macin)o(tosh-SE.)177 1013 y Fk(Graphics:)i
+Fn(All)c(diagrams)e(ha)o(v)o(e)i(b)q(een)i(constructed)g(out)e(of)g(text)h
+(using)f(the)h(L)1431 1008 y Fg(a)1450 1013 y Fn(T)1473 1025
+y(E)1496 1013 y(X)f Fi(verbatim)f Fn(en)o(vironmen)o(t)177
+1063 y(so)17 b(as)f(to)h(allo)o(w)e(this)h(do)q(cumen)o(t)g(to)h(b)q(e)g
+(disseminated)e(electronically)i(and)f(prin)o(ted)h(using)f(L)1695
+1058 y Fg(a)1714 1063 y Fn(T)1737 1075 y(E)1761 1063 y(X)g(without)177
+1112 y(access)g(to)e(the)g(author's)g(dra)o(wing)f(to)q(ols.)177
+1187 y Fk(Kno)o(wn)g(t)o(yp)q(esetting)d(problems:)k Fn(While)d(ev)o(ery)h
+(attempt)f(has)h(b)q(een)g(made)e(to)i(giv)o(e)f(a)g(go)q(o)q(d)g(presen)o
+(tation)177 1237 y(within)h(the)h(time)e(a)o(v)n(ailable,)f(some)i(shortcuts)
+i(ha)o(v)o(e)e(had)g(to)g(b)q(e)h(tak)o(en.)18 b(In)13 b(particular,)f(the)h
+(author)f(has)h(b)q(een)177 1287 y(unable)h(to)g(w)o(ork)f(out)h(ho)o(w)g(to)
+f(get)h(L)754 1282 y Fg(a)773 1287 y Fn(T)796 1299 y(E)820
+1287 y(X)g(to)g(suppress)h(blank)f(pages)g(at)f(the)i(start)f(of)g(c)o
+(hapters.)1053 2940 y(9)p eop
+%%Page: 10 11
+10 10 bop 1042 2940 a Fn(10)p eop
+%%Page: 11 12
+11 11 bop 177 381 a Ff(Chapter)34 b(1)177 617 y Fl(F)-10 b(unnelW)g(eb)41
+b(Design)177 861 y Fn(This)18 b(c)o(hapter)i(con)o(tains)e(notes)h(on)f(the)h
+(design)f(of)g(F)m(unnelW)m(eb.)31 b(These)19 b(notes)g(w)o(ere)h(not)e
+(created)i(\\from)177 911 y(scratc)o(h",)d(as)f(the)g(original)e(v)o(ersion)i
+(of)f(F)m(unnelW)m(eb)g(\()p Fk(F)l(unnelW)l(eb)h(V1)p Fn(\))g(w)o(as)g
+(designed)g(and)g(constructed)177 961 y(in)d(a)h(h)o(urry)f(late)h(in)f
+(1986,)f(and)h(no)h(design)f(notes)i(w)o(ere)f(ev)o(er)h(recorded.)k(These)c
+(notes)f(are)g(in)f(fact)h(the)g(result)177 1011 y(of)g(a)h(complete)f
+(review)h(of)f(the)h(F)m(unnelW)m(eb)f(design)h(that)g(to)q(ok)f(place)h(in)f
+(late)h(1991)e(as)i(part)g(of)f(the)h(pro)q(cess)177 1061 y(of)e(upgrading)h
+(it)f(for)h(public)f(release.)177 1139 y(Throughout)f(the)h(design)g(pro)q
+(cess)h(I)f(tried)g(to)f(stic)o(k)g(to)h(the)g(principles)g(of)e(simplicit)o
+(y)f(and)i(clarit)o(y)m(.)17 b(As)c(a)f(rule,)177 1188 y(it)17
+b(w)o(as)h(considered)h(more)e(imp)q(ortan)o(t)f(that)i(a)f(feature)h(b)q(e)h
+(simple)d(and)h(not)h(allo)o(w)e(the)i(user)h(to)f(outsmart)177
+1238 y(himself)d(than)h(it)g(w)o(as)g(for)g(the)h(feature)f(to)h(b)q(e)f
+(particularly)g(crisp.)26 b(F)m(or)15 b(example,)g(the)i(F)m(unnelW)m(eb)f
+(macro)177 1288 y(calling)d(syn)o(tax)g(is)h(not)g(as)g(crisp)g(as)g(the)h(C)
+f(syn)o(tax,)f(but)h(is)g(more)f(visible.)177 1366 y(T)m(o)i(some)f(exten)o
+(t)i(the)g(design)f(review)h(w)o(as)f(in\015uenced)i(b)o(y)e(the)h
+(requiremen)o(ts)f(of)g(bac)o(kw)o(ard)g(compatibilit)o(y)l(.)177
+1416 y(During)d(the)h(review)g(it)g(w)o(as)f(hard)h(not)f(to)h(think)f(ab)q
+(out)g(all)g(the)h(source)h(\014les)e(in)h(F)m(unnelW)m(eb)f(V1)g(format)f
+(that)177 1466 y(I)j(ha)o(v)o(e)f(written)i(o)o(v)o(er)f(the)g(y)o(ears)g
+(that)g(w)o(ould)f(ha)o(v)o(e)h(to)f(b)q(e)i(con)o(v)o(erted)g(w)o(ere)f(I)g
+(to)g(signi\014can)o(tly)e(deviate)j(from)177 1516 y(the)h(old)f(input)g
+(language.)22 b(Luc)o(kily)14 b(it)h(turned)i(out)e(that)h(there)g(w)o(as)g
+(little)e(clash)i(b)q(et)o(w)o(een)h(these)g(in)o(terests,)177
+1565 y(and)g(the)h(resulting)f(design)g(is)g(b)q(oth)g(clean)g(and)g(do)q(es)
+h(not)f(require)h(m)o(uc)o(h)e(con)o(v)o(ersion)h(of)f(old)h(source)h
+(\014les.)177 1615 y(The)f(main)d(revision)i(is)h(in)f(the)h(do)q(cumen)o(t)e
+(structuring)j(facilit)o(y)m(.)23 b(F)m(unnelW)m(eb)16 b(V1)g(had)g(just)h(t)
+o(w)o(o)f(lev)o(els)g(of)177 1665 y(heading)d(indicated)g(b)o(y)g
+Fi(@*@*)g Fn(\(for)g(ma)r(jor)e(headings\))j(and)f Fi(@*)g
+Fn(\(for)g(minor)e(headings\).)18 b(This)13 b(sc)o(heme)h(\(whic)o(h)177
+1715 y(w)o(as)i(copied)g(from)e(Kn)o(uth's)i(W)m(eb\))f(has)h(b)q(een)h
+(replaced)g(b)o(y)e(a)h(hierarc)o(hical)f(sc)o(heme)h(of)f(\014v)o(e)h
+(heading)g(lev)o(els)177 1765 y(lev)o(els)e(\()p Fi(@A)p Fj(:)7
+b(:)g(:)n Fi(@E)p Fn(\).)177 1843 y(This)18 b(c)o(hapter)h(is)e(rather)i
+(unstructured,)i(acting)c(as)h(it)g(has,)g(mainly)e(as)i(a)f(dumping)f
+(ground)i(for)f(random)177 1893 y(ideas)d(ab)q(out)g(F)m(unnelW)m(eb.)177
+2066 y Fe(1.1)70 b(Motiv)l(ation)22 b(for)i(F)-6 b(unnelW)g(eb)177
+2186 y Fn(During)16 b(1986,)f(I)h(w)o(as)g(exp)q(osed)i(to)e(Donald)f(Kn)o
+(uth's)i Fi(WEB)e Fn(literate)i(programmi)o(ng)c(system)j(in)g(the)h(form)d
+(of)177 2236 y(Jon)j(Ben)o(tley's)h Fh(Pr)n(o)n(gr)n(amming)f(Pe)n(arls)f
+Fn(column)f(in)h Fh(Communic)n(ations)i(of)g(the)g(A)o(CM)7
+b Fk([Ben)o(tley86])p Fn(.)1825 2221 y Fd(1)1868 2236 y Fn(This)177
+2286 y(prompted)17 b(me)f(to)h(obtain)g(a)g(cop)o(y)g(of)g(the)h(rep)q(ort)g
+(on)f(the)h(W)m(eb)f(system)p Fk([Kn)o(uth83])f Fn(and)h(to)g(try)h(out)f
+(the)177 2336 y(program)12 b(whic)o(h)i(had)g(b)q(een)h(installed)e(on)h(the)
+g(lo)q(cal)f(V)m(axen.)177 2414 y(W)m(eb)h(w)o(as)f(the)i(b)q(est)f(system)g
+(that)g(I)f(had)h(seen)h(for)e(pro)q(ducing)h(prin)o(ted)g(and)g(online,)f
+(inline)f(do)q(cumen)o(tation.)177 2464 y(T)m(o)k(me)g(the)i(most)e
+(extraordinary)h(asp)q(ect)h(of)f(the)g(system)g(w)o(as)g(its)g(success)j
+(despite)e(the)f(fact)g(that)g(it)g(had)177 2514 y(b)q(een)h(built)e(in)o(to)
+h(the)g(horribly)g(an)o(tiquated)f(\014le/batc)o(h)h(pro)q(cessing)h(systems)
+f(that)g(w)o(e)h(all)d(kno)o(w)i(and)f(lo)o(v)o(e)177 2563
+y(\(and)f(use\).)20 b(I)15 b(had)f(imagined)e(sophisticated)j(do)q(cumen)o
+(tation)f(systems)g(b)q(efore)h(this)g(time,)e(but)i(had)f(alw)o(a)o(ys)177
+2613 y(assumed)i(that)h(they)g(w)o(ould)f(b)q(e)i(parts)f(of)f(complex)f
+(programming)e(en)o(vironmen)o(ts.)26 b(Kn)o(uth)17 b(sho)o(w)o(ed)g(that,)
+177 2663 y(to)f(some)e(exten)o(t,)j(it)e(can)h(b)q(e)g(done)g(using)f(1960s)g
+(soft)o(w)o(are)h(tec)o(hnology)f(\(excluding)h(the)g(1980s)f(t)o(yp)q
+(esetting)177 2713 y(tec)o(hnology\).)j(This)c(w)o(as)g(exciting.)p
+177 2757 709 2 v 223 2783 a Fc(1)241 2795 y Fb(As)g(it)g(happ)q(ens,)e(this)h
+(w)o(as)h(somewhat)f(of)g(a)h(luc)o(ky)e(encoun)o(ter.)20 b(I)14
+b(had)f(only)g(just)g(joined)f(the)h(A)o(CM)i(and)e(the)h(Ma)o(y)f(1986)177
+2835 y(issue)e(of)g(CA)o(CM)j(in)d(whic)o(h)g(the)f(column)g(app)q(eared)f(w)
+o(as)j(the)e(\014rst)h(issue)g(I)g(receiv)o(ed.)1042 2940 y
+Fn(11)p eop
+%%Page: 12 13
+12 12 bop 177 42 a Fn(The)16 b(W)m(eb)g(system)f(w)o(as)h(en)o(ticing)f(and)h
+(promising)d(but)j(to)g(me)e(su\013ered)k(from)c(man)o(y)g(dra)o(wbac)o(ks,)i
+(man)o(y)d(of)177 91 y(whic)o(h)j(Kn)o(uth)g(had)g(promoted)f(as)h(adv)n(an)o
+(tages.)23 b(The)17 b(follo)o(wing)c(highly)i(sub)r(jectiv)o(e)i(list)e(of)g
+(disadv)n(an)o(tages)177 141 y(formed)e(a)g(springb)q(oard)h(for)g(the)g
+(construction)h(of)f(F)m(unnelW)m(eb.)239 247 y Fm(\017)21
+b Fn(W)m(eb)13 b(can)i(only)e(pro)q(cess)i(P)o(ascal)f(programs.)239
+327 y Fm(\017)21 b Fn(W)m(eb)16 b(can)h(pro)q(duce)h(only)e(one)h(output)f
+(\014le.)27 b(In)16 b(man)o(y)f(instances)j(it)e(is)g(desirable)h(to)g
+(generate)h(more)281 377 y(than)g(one)h(output)g(\014le.)31
+b(F)m(or)18 b(example,)g(when)h(programming)c(in)j(Ada,)h(it)f(is)g
+(desirable)h(to)f(write)h(a)281 427 y(pac)o(k)n(age)13 b(sp)q(eci\014cation)i
+(and)f(a)f(pac)o(k)n(age)h(b)q(o)q(dy)g(together)h(in)e(the)i(same)e(\014le.)
+239 507 y Fm(\017)21 b Fn(W)m(eb)15 b(enforces)h(Kn)o(uth's)f(individual)e
+(st)o(yle)j(of)e(inden)o(tation.)21 b(W)m(eb)15 b(supplies)g(commands)e(to)i
+(o)o(v)o(er-ride)281 557 y(the)h(automatic)e(inden)o(tation)h(but)g(it)g(is)h
+(an)f(uphill)f(battle)i(and)f(the)h(co)q(de)h(b)q(ecomes)e(clogged)h(up)f
+(with)281 606 y(format)d(directiv)o(es.)239 686 y Fm(\017)21
+b Fn(W)m(eb)f(do)q(es)i(not)f(cater)g(for)g(non-standard)g(P)o(ascal)f
+(programs.)38 b(In)21 b(particular,)g(all)f(iden)o(ti\014ers)h(are)281
+736 y(truncated)15 b(to)f(ab)q(out)g(eigh)o(t)f(c)o(haracters.)239
+816 y Fm(\017)21 b Fn(W)m(eb)13 b(formats)g(the)h(program)f(output)h(\014le)g
+(in)o(to)f(a)g(form)g(that)g(is)h(unreadable)g(to)g(h)o(umans.)239
+896 y Fm(\017)21 b Fn(W)m(eb)11 b(do)q(es)i(not)f(pro)o(vide)g(an)f(include)h
+(facilit)o(y)m(.)j(This)d(w)o(as)g(considered)h(a)f(feature)g(essen)o(tial)h
+(for)e(supp)q(ort-)281 946 y(ing)i(macro)g(libraries.)239 1026
+y Fm(\017)21 b Fn(W)m(eb)13 b(pro)o(vides)h(macros)f(with)g(at)h(most)e(one)i
+(parameter.)k(Kn)o(uth)c(describ)q(es)i(a)d(hac)o(k)h(that)g(can)g(extract)
+281 1076 y(a)d(m)o(ultiple)f(parameter)h(macro)g(facilit)o(y)f(from)g(a)h
+(single)g(parameter)h(one,)g(but)g(it)f(is)g(hardly)h(satisfactory)m(.)239
+1156 y Fm(\017)21 b Fn(W)m(eb)13 b(do)q(es)i(not)f(pro)o(vide)g
+(conditionals.)177 1262 y(Most)19 b(of)e(these)j(ob)r(jections)f(b)q(oiled)e
+(do)o(wn)h(to)g(t)o(w)o(o)g(p)q(oin)o(ts:)27 b(that)18 b(W)m(eb)g(is)g(far)g
+(to)q(o)g(sp)q(ecialized,)i(and)e(that)177 1312 y(Kn)o(uth's)h(\\Occam's)f
+(Razor")h(had)g(cut)g(to)q(o)g(far.)33 b(What)18 b(I)h(w)o(an)o(ted)g(w)o(as)
+g(a)f(do)q(cumen)o(tation)g(system)h(that)177 1362 y(emplo)o(y)o(ed)11
+b(all)g(the)i(same)f(principles)h(as)f(W)m(eb)g(but)h(w)o(as)g(far)f(more)f
+(general.)18 b(The)13 b(result)g(w)o(as)f(F)m(unnelW)m(eb)g(V1,)177
+1412 y(whic)o(h)i(can)g(pro)q(cess)i(programs)c(in)h(an)o(y)h(language)f(or)h
+(an)o(y)f(com)o(bination)e(of)i(languages)h(at)f(the)i(cost)f(of)f(t)o(yp)q
+(e-)177 1461 y(setting)h(the)h(text)f(in)g Fi(tt)21 b(font)p
+Fn(.)177 1533 y(Originally)m(,)13 b(it)i(w)o(as)g(in)o(tended)h(that)f(F)m
+(unnelW)m(eb)f(w)o(ould)h(b)q(e)h(t)o(yp)q(esetter)h(indep)q(enden)o(t)g(as)e
+(w)o(ell)f(as)i(language)177 1583 y(indep)q(enden)o(t.)23 b(It)15
+b(w)o(as)f(in)o(tended)i(that)f(a)f(format)f(\014le)i(consisting)g(of)g(a)f
+(set)i(of)e(pro)q(ductions)i(describing)f(ho)o(w)177 1633 y(the)h(do)q(cumen)
+o(t)e(\014le)i(w)o(as)f(to)f(b)q(e)i(formatted)e(w)o(ould)g(b)q(e)i(handed)g
+(to)e(F)m(unnelW)m(eb)h(along)f(with)h(the)g(input)g(\014le.)177
+1683 y(In)k(the)g(end,)g(time)e(pressures)k(forced)e(me)f(to)g(tak)o(e)g(the)
+h(bac)o(k)g(do)q(or)f(and)g(hac)o(k)h(up)f(a)g(T)1627 1691
+y(E)1650 1683 y(X)h(do)q(cumen)o(t)f(\014le)177 1732 y(generator.)h(This)14
+b(compromise)d(has)j(found)f(its)h(w)o(a)o(y)f(in)o(to)g(F)m(unnelW)m(eb)g
+(V3.0)g(whic)o(h)g(is)h(still)e(relian)o(t)i(on)f(T)1883 1741
+y(E)1906 1732 y(X,)177 1782 y(although)f(V3.0)g(at)h(least)g(encourages)h
+(input)f(\014les)g(to)g(b)q(e)g(t)o(yp)q(esetter)i(indep)q(enden)o(t.)k(It)13
+b(is)g(hop)q(ed)g(that)g(future)177 1832 y(v)o(ersions)i(of)e(F)m(unnelW)m
+(eb)g(will)g(include)h(more)e(sophisticated)j(t)o(yp)q(esetting)g
+(facilities.)177 1990 y Fe(1.2)70 b(Inden)n(tation)177 2103
+y Fn(A)12 b(macro)f(call)h(that)g(do)q(es)h(not)f(app)q(ear)h(at)f(the)h
+(left)e(margin)g(is)h(called)g(an)f Fk(inden)o(ted)g(macro)i(call)f
+Fn(and)g(seems)177 2153 y(to)f(lead)h(to)f(three)h(di\013eren)o(t)h
+(alternativ)o(es)e(for)g(its)h(expansion:)k Fk(no)d(inden)o(tat)o(ion)o
+Fn(,)8 b Fk(blank)k(inden)o(tati)o(on)p Fn(,)c(and)177 2202
+y Fk(text)15 b(inden)o(tati)o(on)p Fn(.)g(Here)g(are)f(examples)f(of)g(eac)o
+(h)i(kind)e(of)g(inden)o(tation.)18 b(First)c(the)g(example)f(problem.)177
+2308 y Fi(@$@<Sloth@>==@{@-)177 2358 y(Aardvark)177 2408 y(Walrus@})177
+2508 y(@O@<Output@>==@{@-)177 2557 y(Zebra@<Sloth@>)177 2607
+y(Giraffe)177 2657 y(@})177 2763 y Fn(There)i(are)g(three)g(w)o(a)o(ys)e
+(that)h(the)h(second)g(line)e(of)g(the)i Fi(Sloth)e Fn(macro)f(can)i(b)q(e)h
+(inden)o(ted.)177 2835 y Fk(No)h(inden)o(tati)o(on:)1042 2940
+y Fn(12)p eop
+%%Page: 13 14
+13 13 bop 286 42 a Fi(ZebraAardvark)286 91 y(Walrus)286 141
+y(Giraffe)177 252 y Fk(Blank)15 b(inden)o(tati)o(on:)286 362
+y Fi(ZebraAardvark)395 412 y(Walrus)286 462 y(Giraffe)177 572
+y Fk(T)l(ext)h(inden)o(tati)o(on)o(:)286 683 y Fi(ZebraAardvark)286
+733 y(ZebraWalrus)286 783 y(Giraffe)177 893 y Fn(No)g(inden)o(tation)f(is)h
+(useful)g(where)i(the)e(user)h(wishes)g(to)f(deal)g(with)g(the)g(output)g
+(stream)g(as)g(a)g(pure)h(output)177 943 y(stream.)g(Blank)11
+b(inden)o(tation)g(is)g(useful)g(when)h(the)g(user)h(wishes)f(to)f(generate)h
+(inden)o(ted)g(computer)f(programs.)177 993 y(T)m(ext)k(inden)o(tation)f(is)g
+(useful)h(where)h(the)f(user)h(wishes)f(to)g(pre\014x)g(eac)o(h)h(line)e(of)g
+(an)g(en)o(tire)i(macro)d(in)o(v)o(o)q(cation)177 1043 y(with)c(a)h(string.)
+16 b(This)10 b(can)f(b)q(e)i(useful)e(for)g(commen)o(ting)e(out)j(co)q(de)g
+(\(e.g.)f(in)g(Ada)g(using)h Fi(--)p Fn(\),)f(and)h(for)f(prep)q(ending)177
+1092 y(things)14 b(lik)o(e)f(a)h(dollar)e(sign)i(at)g(the)g(start)h(of)e(eac)
+o(h)h(line)g(an)f(a)h(V)-5 b(AX)15 b(VMS)f(DCL)f(script)i(command)c(\014le.)
+177 1168 y(F)m(unnelW)m(eb)i(V1)h(pro)o(vided)g(a)f(c)o(hoice)i(of)e(no)h
+(inden)o(tation)f(or)h(blank)f(inden)o(tation.)k(The)d(c)o(hoice)h(w)o(as)f
+(made)e(in)177 1218 y(the)j(command)c(line)i(and)h(could)g(not)f(b)q(e)i(o)o
+(v)o(erridden.)177 1294 y(The)f(design)h(questions)f(are)g(as)g(follo)o(ws:)
+228 1414 y(1.)20 b(Whic)o(h)13 b(of)h(the)g(three)h(kinds)f(of)f(inden)o
+(tation)h(should)f(F)m(unnelW)m(eb)h(supp)q(ort?)228 1499 y(2.)20
+b(What)13 b(should)h(b)q(e)h(the)f(gran)o(ularit)o(y)f(of)g(sw)o(apping)g(b)q
+(et)o(w)o(een)i(inden)o(tation)f(mo)q(des?)228 1585 y(3.)20
+b(Are)15 b(particular)e(inden)o(tation)h(mo)q(des)f(dangerous?)228
+1671 y(4.)20 b(Is)14 b(the)h(presence)h(of)d(particular)h(com)o(binations)e
+(of)h(inden)o(tation)g(mo)q(des)g(confusing)h(to)g(the)g(user?)228
+1756 y(5.)20 b(Ho)o(w)13 b(and)h(when)h(should)e(the)i(c)o(hoice)f(of)f
+(inden)o(tation)h(b)q(e)g(sp)q(eci\014ed?)177 1876 y(All)j(sorts)h(of)f(sc)o
+(hemes)g(w)o(ere)i(considered,)g(including)d(a)h(\014nely)g(grained)g(system)
+h(in)e(whic)o(h)i(the)g(user)g(could)177 1926 y(sp)q(ecify)13
+b(at)g(the)g(p)q(oin)o(t)f(of)g(call)g(whic)o(h)g(inden)o(tation)g(mo)q(de)f
+(should)i(b)q(e)g(used)g(for)g(the)g(called)f(macro)f(expansion.)177
+2002 y(After)f(a)f(lot)g(of)g(though)o(t,)g(the)i(dominan)o(t)c(factor)i
+(that)h(should)f(a\013ect)h(the)g(design)g(w)o(as)f(decided)h(to)g(b)q(e)g
+(the)g Fh(clarity)177 2051 y Fn(in)k(the)g(user's)h(mind)d(of)h(the)i(inden)o
+(tation)e(facilit)o(y)f(and)i(the)g Fh(danger)h Fn(asso)q(ciated)f(with)g
+(misunderstanding)f(it.)177 2101 y(Here)f(are)f(t)o(w)o(o)f(examples)f(that)i
+(sho)o(w)f(ho)o(w)g(easily)g(a)h(confusion)f(or)g(misunderstanding)g(of)g
+(the)h(inden)o(ting)f(b)q(eing)177 2151 y(used)15 b(can)f(cause)h(danger.)j
+(The)d(\014rst)f(example)f(sho)o(ws)h(ho)o(w)g(blank)f(or)h(no)f(inden)o
+(tation)g(migh)o(t)f(b)q(e)j(misused.)177 2271 y Fi(--Misuse)20
+b(of)i(blank)e(\(and)h(no\))h(indentation.)177 2320 y(--@<Sloth@>)177
+2440 y Fn(Here)d(the)g(user)g(has)g(assumed)e(that)h(text)h(inden)o(tation)e
+(is)h(in)g(action)g(and)g(has)g(placed)g(an)g(Ada)g(commen)o(t)177
+2490 y(sym)o(b)q(ol)12 b(\\)p Fi(--)p Fn(")g(b)q(efore)i(the)g(in)o(v)o(o)q
+(cation)e(of)h(the)h(macro)e Fi(@<Sloth@>)f Fn(in)i(the)h(hop)q(e)g(that)f
+(the)h(en)o(tire)g(text)g(of)f(the)177 2539 y(macro)d(w)o(ould)h(b)q(e)g
+(pre\014xed)i(b)o(y)e(\\)p Fi(--)p Fn(".)16 b(The)c(result)g(could)f(b)q(e)h
+(passed)g(b)o(y)f(the)h(compiler)d(whic)o(h)j(w)o(ould)e(activ)n(ate)177
+2589 y(all)j(but)h(the)g(\014rst)h(statemen)o(t)f(in)f(the)i(expansion)f(of)f
+(macro)g Fi(@<Sloth@>)p Fn(.)177 2665 y(The)h(next)h(example)d(demonstrates)j
+(ho)o(w)e(text)i(inden)o(tation)e(could)h(b)q(e)g(misused.)177
+2785 y Fi(--Misuse)20 b(of)i(text)f(indentation:)177 2835 y(a++;)g(@<Sloth@>)
+1042 2940 y Fn(13)p eop
+%%Page: 14 15
+14 14 bop 177 42 a Fn(Here)15 b(the)g(user)g(has)f(placed)g(the)h(call)e(to)h
+Fi(@<Sloth@>)e Fn(after)i(the)h(incremen)o(ting)e(of)g(v)n(ariable)g
+Fi(a)p Fn(.)18 b(The)c(result)h(is)177 91 y(that)e(there)h(is)e(a)h(go)q(o)q
+(d)f(c)o(hance)i(that)e(the)i(\\)p Fi(a++;)p Fn(")d(prep)q(ended)k(to)d(eac)o
+(h)i(line)e(of)g(the)h(expansion)g(of)f Fi(@<Sloth@>)177 141
+y Fn(will)h(b)q(e)h(passed)h(b)o(y)f(the)g(compiler)f(and)g(will)g(cause)i
+Fi(a)e Fn(to)h(b)q(e)h(o)o(v)o(erincremen)o(ted.)177 216 y(These)h(examples)e
+(are)h(not)g(to)f(b)q(e)i(laughed)e(at.)20 b(It)15 b(is)g(p)q(ossible)f(that)
+h(F)m(unnelW)m(eb)f(will)g(b)q(e)h(used)h(widely)m(,)d(and)177
+266 y(the)i(problems)e(ab)q(o)o(v)o(e)h(ma)o(y)f(cause)i(problems)e(in)h
+(critical)g(systems.)20 b(The)14 b(examples)g(ab)q(o)o(v)o(e)g(are)h
+(particularly)177 316 y(scary)h(b)q(ecause)g(they)g(are)f(re\015exiv)o(e.)22
+b(One)15 b(cannot)g(simply)e(pin)h(the)i(blame)d(on)i(one)g(particular)f
+(inden)o(tation)177 366 y(form.)j(A)d(little)g(though)o(t)f(rev)o(eals)i
+(that)f(the)h(greatest)g(danger)g(lies)f(in)f Fh(c)n(onfusion)i
+Fn(in)f(the)g(user's)i(mind.)g(If)e(the)177 416 y(user)h(is)f(confused)h(b)q
+(et)o(w)o(een)g(text)f(or)g(blank)f(inden)o(ting,)g(problems)g(will)g(arise.)
+177 491 y(There)20 b(seem)e(to)h(b)q(e)g(t)o(w)o(o)f(w)o(a)o(ys)g(to)g(solv)o
+(e)h(the)g(problem.)31 b(The)19 b(\014rst)g(is)f(to)h(ban)f(all)f(macro)h
+(calls)g(that)g(are)177 541 y(preceded)f(b)o(y)e(non-blank)f(text.)23
+b(This)15 b(is)g(not)g(a)f(go)q(o)q(d)h(option)f(b)q(ecause)j(there)g(are)e
+(so)g(man)o(y)e(cases)k(where)f(it)177 591 y(is)g(desirable)g(to)f(expand)h
+(more)f(than)g(one)h(single)g(line)f(macros)g(on)g(the)h(same)f(line.)23
+b(A)16 b(second)g(option)f(is)h(to)177 640 y(eliminate)e(one)i(of)g(the)g(t)o
+(w)o(o)g(forms)e(so)i(as)g(to)g(reduce)i(the)e(p)q(oten)o(tial)g(for)f(am)o
+(biguit)o(y)e(in)j(the)g(user's)h(mind.)23 b(I)177 690 y(c)o(ho)q(ose)17
+b(the)g(latter)f(option.)24 b(Of)16 b(the)g(t)o(w)o(o)g(forms,)f(the)h(clear)
+h(c)o(hoice)f(for)g(elimination)d(is)j(text)h(inden)o(ting)e(for)177
+740 y(the)g(follo)o(wing)c(reasons:)228 858 y(1.)20 b(It)14
+b(actually)f(in)o(tro)q(duces)i(extra)f(text)h(whic)o(h)e(giv)o(es)h(it)g(an)
+f(a)h(priori)f(p)q(oten)o(tial)g(for)h(problems.)228 942 y(2.)20
+b(It)14 b(is)g(harder)g(to)g(implemen)o(t)d(and)j(w)o(ould)f(slo)o(w)g(do)o
+(wn)h(T)m(angle.)228 1026 y(3.)20 b(It)14 b(w)o(ould)f(not)h(b)q(e)g
+(compatible)e(with)i(F)m(unnelW)m(eb)f(V1)h(whic)o(h)g(uses)h(blank)e(inden)o
+(tation.)177 1144 y(The)18 b(only)f(other)h(decision)g(is)f(the)i(lev)o(el)e
+(of)g(gran)o(ularit)o(y)f(of)h(c)o(hoice)h(b)q(et)o(w)o(een)h(the)f
+(remaining)e(options:)25 b(no)177 1194 y(inden)o(tation)11
+b(and)h(blank)f(inden)o(tation.)17 b(F)m(unnelW)m(eb)11 b(V1)h(allo)o(w)o(ed)
+e(this)i(c)o(hoice)g(to)g(b)q(e)g(made)f(in)g(the)i(command)177
+1243 y(line.)27 b(In)17 b(retrosp)q(ect,)j(this)d(w)o(as)g(bad)g(design)g(b)q
+(ecause)i(the)f(user)g(migh)o(t)d(un)o(wittingly)g(co)q(de)j(certain)g(macro)
+177 1293 y(calls)12 b(relying)h(on)f(one)h(or)g(the)g(other)h(mo)q(de.)i(A)d
+(b)q(etter)h(system)f(is)f(to)h(allo)o(w)e(the)i(user)h(to)f(sp)q(ecify)g
+(whic)o(h)g(mo)q(de)177 1343 y(in)h(the)g(input)g(\014le)g(itself.)j(This)d
+(has)g(b)q(een)h(done)f(in)g(F)m(unnelW)m(eb)f(V3.)177 1418
+y(Again,)20 b(to)g(a)o(v)o(oid)f(confusion,)i(it)f(seems)g(sensible)h(to)f
+(allo)o(w)e(the)j(user)g(only)e(one)h(inden)o(tation)g(mo)q(de)f(p)q(er)177
+1468 y(F)m(unnelW)m(eb)14 b(input)h(\014le.)20 b(In)15 b(most)e(cases,)j(the)
+g(user)f(will)f(b)q(e)h(happ)o(y)f(with)h(blank)f(inden)o(tation)g(\(the)h
+(default\))177 1518 y(and)f(there)h(will)d(b)q(e)j(no)f(need)h(for)e(c)o
+(hange)h(an)o(yw)o(a)o(y)m(.)177 1593 y Fk(Decision:)j Fn(Implemen)o(t)12
+b(only)i(\\no)g(inden)o(tation")f(and)h(\\blank)g(inden)o(tation".)k(Mak)o(e)
+c(the)h(c)o(hoice)g(of)f(inden-)177 1643 y(tation)j(a)g(static)h(attribute)g
+(of)f(a)g(particular)h(F)m(unnelW)m(eb)f(run)g(that)h(is)f(sp)q(eci\014ed)i
+(in)e(the)i(input)e(\014le.)29 b(This)177 1693 y(solution)13
+b(is)h(the)h(same)e(as)h(F)m(unnelW)m(eb)f(V1)h(except)h(that)f(the)h(c)o
+(hoice)f(has)g(b)q(een)h(mo)o(v)o(ed)e(from)f(the)j(command)177
+1743 y(line)f(to)f(the)i(input)e(\014le.)177 1907 y Fe(1.3)70
+b(Review)20 b(of)k(F)-6 b(unnelW)g(eb)22 b(Syn)n(tax)177 2023
+y Fn(One)12 b(of)e(the)i(distressing)g(asp)q(ects)h(of)d(F)m(unnelW)m(eb)h
+(V1)f(w)o(as)h(its)g(clumsy)f(macro)g(de\014nition)h(and)g(calling)e(syn)o
+(tax.)177 2073 y(Compared)14 b(to)h(\(sa)o(y\))g(the)g(C)g(prepro)q(cessor,)i
+(F)m(unnelW)m(eb's)d(macro)g(call)g(syn)o(tax)h(is)g(lik)o(e)f(a)g(freigh)o
+(t)h(train)g(in)f(a)177 2123 y(c)o(hina)i(sho)o(w.)24 b(During)15
+b(the)h(F)m(unnelW)m(eb)f(redesign,)i(a)f(complete)f(review)h(of)g(this)f
+(syn)o(tax)h(to)q(ok)g(place)g(to)g(try)177 2173 y(to)f(neaten)h(it)f(up.)22
+b(Surprisingly)m(,)14 b(the)i(V1)f(syn)o(tax)g(surviv)o(ed)h(unscathed)g
+(with)f(the)h(exception)g(that)f(\\)p Fi(==)p Fn(")f(in)177
+2223 y(macro)i(de\014nitions)i(w)o(as)f(made)g(optional.)27
+b(The)18 b(surviv)n(al)f(of)g(this)g(clumsy)g(syn)o(tax)g(w)o(as)h(a)f(pro)q
+(duct)h(of)f(the)177 2272 y(design)d(goal)f(of)g(making)f(ev)o(erything)i
+(simple,)e(explicit,)h(and)g(not)h(sub)r(ject)i(to)d(subtle)i(errors.)177
+2415 y Fa(1.3.1)55 b(Review)18 b(of)g(Macro)h(De\014nition)f(Syn)n(tax)177
+2518 y Fn(F)m(unnelW)m(eb)i(V1)h(used)g(a)f(macro)g(de\014nition)g(syn)o(tax)
+h(that)f(resulted)i(in)e(macro)g(de\014nitions)g(suc)o(h)h(as)g(the)177
+2568 y(follo)o(wing.)177 2685 y Fi(@$@<Put)g(out)g(the)g(cat@>==@{@-)177
+2735 y(Open)g(the)g(door)177 2785 y(Say)g(out)177 2835 y(Close)g(the)g
+(door@})1042 2940 y Fn(14)p eop
+%%Page: 15 16
+15 15 bop 177 42 a Fn(This)16 b(is)f(messy)m(,)g(but)h(I)g(couldn't)f(think)h
+(of)f(an)o(ything)g(b)q(etter)i(at)e(the)i(time.)22 b(The)16
+b Fi(@$)f Fn(is)h(necessary)i(to)d(cue)i(a)177 91 y(de\014nition.)k(Without)
+14 b(it,)h(the)g(de\014nition)g(migh)o(t)e(someho)o(w)g(b)q(e)j(mistak)o(en)e
+(for)g(an)h(in)o(v)o(o)q(cation.)20 b(The)15 b Fi(@<)g Fn(and)177
+141 y Fi(@>)e Fn(delimit)d(the)k(name.)j(The)c Fi(@)p Fm(f)g
+Fn(and)f Fi(@)p Fm(g)h Fn(delimit)e(the)i(text.)19 b(The)13
+b Fi(@-)g Fn(is)f(a)h(pro)q(duct)h(of)e(the)i(rule)f(\\exactly)g(the)177
+191 y(text)i(b)q(et)o(w)o(een)g(the)f Fi(@)p Fm(f)g Fn(and)g
+Fi(@)p Fm(g)p Fn(".)177 260 y(The)g(only)f(real)h(target)g(is)g(the)g(\\)p
+Fi(+=)p Fn(")f(and)g(\\)p Fi(==)p Fn(")g(whic)o(h)h(really)f(break)h(all)f
+(the)h(rules)g(and)g(should)f(b)q(e)i(c)o(hanged.)177 310 y(Unfortunately)f
+(I)h(couldn't)e(think)h(of)g(an)o(ything)f(to)h(c)o(hange)h(them)e(to.)19
+b(If)14 b(there)i(w)o(as)e(no)g Fi(+=)g Fn(mec)o(hanism,)e(w)o(e)177
+360 y(could)i(use:)177 458 y Fi(@$@<Put)21 b(out)g(the)g(cat@>@{)177
+507 y(Open)g(the)g(door)177 557 y(Say)g(out)177 607 y(Close)g(the)g(door@})
+177 705 y Fn(In)14 b(fact,)f(eliminating)d Fi(+=)j Fn(is)h(think)n(able)e(b)q
+(ecause)k(it)d(do)q(es)h(not)g(app)q(ear)g(in)f(man)o(y)e(of)i(m)o(y)f
+(existing)h(F)m(unnelW)m(eb)177 754 y(source)i(\014les.)k(This)14
+b(indicates)g(at)f(least)i(that)e(it)h(w)o(as)g(not)g(needed)h(m)o(uc)o(h)e
+(b)o(y)g(m)o(yself.)177 824 y(A)h(minim)o(ali)o(st)e(construct)j(could)f(b)q
+(e)177 921 y Fi(@<Put)21 b(out)g(the)g(cat@>)177 971 y(Open)g(the)g(door)177
+1021 y(Say)g(out)177 1071 y(Close)g(the)g(door@})177 1168 y
+Fn(but)14 b(this)g(is)g(to)q(o)g(dangerous)g(for)g(m)o(y)e(tastes.)177
+1238 y Fk(Decision:)j Fn(F)m(or)c(compatibili)o(t)o(y)d(reasons,)k(retain)g
+(the)f(old)g Fi(+=)f Fn(and)h Fi(==)g Fn(constructs,)i(but)e(mak)o(e)e(them)i
+(optional.)177 1287 y(The)j(new)h(syn)o(tax)f(for)f(de\014ning)h(macros)f
+(is:)177 1385 y Fi(@$@<Put)21 b(out)g(the)g(cat@>@{)177 1435
+y(Open)g(the)g(door)177 1485 y(Say)g(out)177 1534 y(Close)g(the)g(door@})177
+1632 y Fn(Next)12 b(w)o(e)f(turn)h(to)f(parameterized)g(macro)f
+(de\014nitions.)17 b(A)11 b(con)o(v)o(en)o(tional)f(F)m(unnelW)m(eb)h
+(parameterized)g(macro)177 1682 y(de\014nition)j(lo)q(oks)f(lik)o(e)g(this:)
+177 1779 y Fi(@$@<Put)21 b(out)g(the)g(cat@>@\(@3@\)==@{@-)177
+1829 y(Open)g(the)g(door)177 1879 y(Say)g(out)177 1929 y(Close)g(the)g
+(door@})177 2026 y Fn(whic)o(h)14 b(is)g(a)f(bit)h(messy)m(.)j(The)d(natural)
+g(alternativ)o(e)f(is)h(ev)o(en)h(w)o(orse:)177 2124 y Fi(@$@<Put)21
+b(out)g(the)g(cat@>@\(@1@,@2@,@3)o(@\)==@)o({@-)177 2174 y(Open)g(the)g(door)
+177 2224 y(Say)g(out)177 2273 y(Close)g(the)g(door@})177 2371
+y Fn(Th)o(us,)12 b(just)g(sp)q(ecifying)f(the)h(n)o(um)o(b)q(er)f(of)g
+(parameters)h(seems)g(sensible.)18 b(Ho)o(w)o(ev)o(er,)12 b(p)q(erhaps)g(the)
+g(syn)o(tax)g(could)177 2421 y(b)q(e)j(trimmed)c(to)177 2518
+y Fi(@$@<Put)21 b(out)g(the)g(cat@>@3==@{@-)177 2568 y(Open)g(the)g(door)177
+2618 y(Say)g(out)177 2668 y(Close)g(the)g(door@})177 2765 y
+Fn(I)14 b(decided)h(to)f(reject)h(this)f(in)f(fa)o(v)o(our)g(of)h(the)g(old)f
+(syn)o(tax.)177 2835 y Fk(Decision:)j Fn(Retain)e(the)g(old)f(syn)o(tax)h(of)
+f Fj(:)7 b(:)g(:)o Fi(@\(@3@\))p Fj(:)g(:)g(:)1042 2940 y Fn(15)p
+eop
+%%Page: 16 17
+16 16 bop 177 42 a Fa(1.3.2)55 b(Review)18 b(of)g(Macro)h(Call)g(Syn)n(tax)
+177 147 y Fn(Here)c(are)g(some)e(ideas)h(for)f(alternativ)o(es)h(to)g(the)g
+(F)m(unnelW)m(eb)g(V1)f(macro)g(call)g(syn)o(tax.)177 270 y
+Fi(Open)21 b(the)g(door)177 320 y(@<Say)g(Out@>)195 b(@!)21
+b(FunnelWeb~V1)f(style.)177 370 y(Close)h(the)g(door)177 470
+y(Open)g(the)g(door)177 520 y(@<Say)g(out>@)177 569 y(Close)g(the)g(door)177
+669 y(Open)g(the)g(door)177 719 y(@"Say)g(out@")177 769 y(Close)g(the)g(door)
+177 868 y(Open)g(the)g(door)177 918 y(@\(Say)g(out@\))177 968
+y(Close)g(the)g(door)177 1068 y(Open)g(the)g(door)177 1117
+y(@<Say)g(out>)177 1167 y(Close)g(the)g(door)177 1291 y Fk(Decision:)29
+b Fn(Con)o(tin)o(ue)20 b(with)g(the)g(old)g(notation.)36 b(It)20
+b(ma)o(y)e(not)i(b)q(e)h(neat,)h(but)e(at)g(least)h(it)e(is)h(clear)h(and)177
+1340 y(consisten)o(t.)j(The)16 b(main)d(temptation)h(is)h(the)h(format)e
+Fi(@<say)21 b(out>@)14 b Fn(whic)o(h)h(lo)q(oks)g(rather)i(go)q(o)q(d.)22
+b(Ho)o(w)o(ev)o(er,)177 1390 y(it)14 b(breaks)g(the)h(sp)q(ecial)f(sequence)i
+(rational)d(and)g(hence)j(is)d(to)q(o)h(confusing.)177 1540
+y Fa(1.3.3)55 b(Review)18 b(of)g(P)n(arameterized)f(Macro)i(Call)f(Syn)n(tax)
+177 1646 y Fn(F)m(unnelW)m(eb)c(V1)f(pro)o(vided)h(a)g(messy)f(parameterized)
+h(macro)f(call)g(syn)o(tax:)177 1769 y Fi(@<Say)21 b(Out@>@\(@"firstpar)o
+(am@")d(@,)k(@"Secondparam@")c(@,)k(@"thirdparam@")d(@\))177
+1893 y Fn(This)d(syn)o(tax)g(can)g(b)q(e)g(cleaned)h(up)f(considerably)g(b)o
+(y)g(making)d(the)k Fi(@")e Fn(sym)o(b)q(ols)g(optional.)22
+b(This)16 b(results)h(in)177 1942 y(calls)d(suc)o(h)g(as)g(the)h(follo)o
+(wing:)177 2066 y Fi(@<Say)21 b(Out@>@\(firstparam)o(@,Sec)o(ondpa)o(ram@,)o
+(thir)o(dpara)o(m@\))177 2189 y Fn(As)c(the)g(\014rst)g(form)e(allo)o(ws)g
+(the)i(alignmen)o(t)d(of)h(complicated)h(parameters)g(b)o(y)g(allo)o(wing)e
+(white)j(space)g(to)f(b)q(e)177 2239 y(inserted)h(outside)f(the)g
+Fi(@")p Fn(,)f(and)h(the)g(second)h(form)d(is)h(cleaner,)i(b)q(oth)f(are)g
+(retained)g(simply)e(b)o(y)h(making)e(the)177 2289 y(quotes)i(optional.)177
+2366 y Fk(Decision:)h Fn(Mak)o(e)e(the)h(double)e(quotes)i(optional.)177
+2538 y Fe(1.4)70 b(Do)r(cumen)n(t)21 b(Structuring)177 2657
+y Fn(Exp)q(erience)e(with)e(F)m(unnelW)m(eb)f(V1,)h(whic)o(h)g(pro)o(vided)g
+(only)f(t)o(w)o(o)h(lev)o(els)g(of)f(headings)h(\(ma)r(jor)f(and)g(minor\))
+177 2707 y(pro)o(v)o(ed)10 b(that)h(there)g(w)o(as)f(a)g(strong)g(need)h(for)
+f(fully)f(hierarc)o(hical)h(m)o(ultiple-lev)o(el)d(headings.)17
+b(The)10 b(only)g(question)177 2757 y(w)o(as)k(ho)o(w)f(it)h(should)g(b)q(e)g
+(done.)177 2835 y(Here)h(are)g(some)e(ideas)h(that)g(w)o(ere)g(considered.)
+1042 2940 y(16)p eop
+%%Page: 17 18
+17 17 bop 177 42 a Fi(@*@<Main)20 b(Program@>)177 91 y(@**@<Read)g(the)h
+(Message@>)177 141 y(@***@<Encrypt)e(the)i(Buffer@>)177 241
+y(@*@<Main)f(Program@>)177 291 y(@*@*@<Read)g(the)h(Message@>)177
+340 y(@*@*@*@<Encrypt)e(the)i(Buffer@>)177 440 y(@s@<Main)f(Program@>)177
+490 y(@ss@<Read)g(the)h(Message@>)177 540 y(@sss@<Encrypt)e(the)i(Buffer@>)
+177 639 y(@s@<Main)f(Program@>)177 689 y(@s@s@<Read)g(the)h(Message@>)177
+739 y(@s@s@s@<Encrypt)e(the)i(Buffer@>)177 839 y(@S@<Main)f(Program@>)177
+888 y(@SS@<Read)g(the)h(Message@>)177 938 y(@SSS@<Encrypt)e(the)i(Buffer@>)
+177 1038 y(@S@<Main)f(Program@>)177 1088 y(@S@S@<Read)g(the)h(Message@>)177
+1137 y(@S@S@S@<Encrypt)e(the)i(Buffer@>)177 1237 y(@A@<Main)f(Program@>)238
+b(--)22 b(The)f(syntax)f(finally)h(chosen.)177 1287 y(@B@<Read)f(the)h
+(Message@>)177 1337 y(@C@<Encrypt)f(the)h(Buffer@>)177 1436
+y(@A)h(Main)f(Program)177 1486 y(@B)h(Read)f(the)g(Message)177
+1536 y(@C)h(Encrypt)e(the)h(Buffer)177 1636 y(@*A)g(Main)g(Program)177
+1685 y(@*B)g(Read)g(the)g(Message)177 1735 y(@*C)g(Encrypt)g(the)g(Buffer)177
+1835 y(@1@<Main)f(Program@>)177 1885 y(@2@<Read)g(the)h(Message@>)177
+1934 y(@3@<Encrypt)f(the)h(Buffer@>)177 1984 y(\(using)g(@A..@I@)f(as)h
+(macro)g(parameters)f(or)h(overload)f(@1..@9\))177 2084 y(@*@1@<Main)g
+(Program@>)177 2134 y(@*@2@<Read)g(the)h(Message@>)177 2183
+y(@*@3@<Encrypt)e(the)i(Buffer@>)177 2233 y(\(using)g(@A..@I@)f(as)h(macro)g
+(parameters)f(or)h(overload)f(@1..@9\))177 2351 y Fn(Cho)q(osing)f(b)q(et)o
+(w)o(een)i(these)g(alternativ)o(es)e(w)o(as)h(not)f(easy)m(.)35
+b(The)20 b(follo)o(wing)d(though)o(ts)j(con)o(tributed)g(to)f(the)177
+2400 y(decision.)239 2518 y Fm(\017)i Fn(Syn)o(taxes)14 b(that)g(require)h
+(visual)e(coun)o(ting)g(are)i(probably)e(not)h(a)f(go)q(o)q(d)h(idea.)239
+2601 y Fm(\017)21 b Fn(Syn)o(taxes)14 b(that)f(do)g(not)h(delimit)d(the)j
+(heading)f(name)f(someho)o(w)h(are)g(lik)o(ely)f(to)i(cause)g(problems)f
+(where)281 2651 y(heading)18 b(names)f(are)h(omitted.)30 b(Users)19
+b(will)e(b)q(e)i(tempted)f(to)g(start)g(paragraphs)h(after)f(the)h(start)f
+(of)281 2701 y(heading)c(sym)o(b)q(ol)f(and)h(the)h(result)g(is)f(that)h(the)
+g(\014rst)g(line)f(of)g(the)h(paragraph)f(will)f(b)q(e)i(suc)o(k)o(ed)g(in)o
+(to)f(the)281 2751 y(heading.)239 2835 y Fm(\017)21 b Fn(Ov)o(erloading)13
+b(the)h Fi(@1)p Fn(,)f Fj(:)7 b(:)g(:)o Fn(,)13 b Fi(@9)h Fn(sequences)i(is)e
+(undesirable.)1042 2940 y(17)p eop
+%%Page: 18 19
+18 18 bop 177 42 a Fk(Decision:)21 b Fn(Use)c Fi(@A)p Fj(:)7
+b(:)g(:)n Fi(@E)16 b Fn(with)g(optional)f(follo)o(wing)e(macro)i(name)g(syn)o
+(tax)h(for)g(the)h(section)g(name.)24 b(Note:)177 91 y(W)m(e)15
+b(stop)g(at)g Fi(@E)f Fn(b)q(ecause)j(\014v)o(e)e(lev)o(els)g(is)g(probably)f
+(su\016cien)o(t,)i(and)e(w)o(e)i(ma)o(y)d(wish)h(later)i(to)e(use)i
+Fi(@F)f Fn(for)f Fk(F)p Fn(ile)177 141 y(\(to)g(augmen)o(t)f(or)g(replace)i
+Fi(@O)p Fn(\).)177 321 y Fe(1.5)70 b(Discussion)21 b(of)j(Some)e(Miscell)o
+(aneous)f(Issues)177 445 y Fk(Commen)o(t)d(duplication)o(:)k
+Fn(If)17 b(the)h(F)m(unnelW)m(eb)f(user)h(inserts)g(commen)o(ts)d(in)o(to)i
+(the)h(target)f(co)q(de)h(\(in)f(the)177 495 y Fi(.fw)12 b
+Fn(\014le\))g(as)g(w)o(ell)f(as)h(in)o(to)g(the)g(do)q(cumen)o(tation)f
+(\(free)i(text\))g(part)f(of)g(the)g Fi(.fw)g Fn(\014le,)g(then)h(it)e(is)h
+(p)q(ossible)g(for)g(the)177 544 y(situation)h(to)h(get)g(a)g(bit)f(silly)m
+(.)k Fk(Decision:)f Fn(This)e(is)g(a)f(problem)g(for)g(the)i(programmer,)c
+(not)j(for)f(F)m(unnelW)m(eb.)177 625 y Fk(Out-of-date)k(do)q(cumen)o(tation)
+o(:)22 b Fn(Sometimes)14 b(it)j(is)f(all)g(to)q(o)h(easy)g(for)f(the)i
+(programmer)c(to)j(mo)q(dify)d(the)177 674 y(co)q(de)k(without)e(up)q(dating)
+g(the)h(surrounding)g(do)q(cumen)o(tation.)24 b Fk(Decision:)e
+Fn(This)16 b(is)h(a)f(serious)h(and)f(ma)r(jor)177 724 y(problem.)27
+b(In)17 b(an)g(automated)f(en)o(vironmen)o(t,)g(it)h(ma)o(y)e(b)q(e)j(p)q
+(ossible)f(to)g(create)i(a)e(system)g(of)f(dep)q(endencies)177
+774 y(b)q(et)o(w)o(een)h(scraps)g(of)d(co)q(de)i(and)g(scraps)g(of)f(do)q
+(cumen)o(tation.)21 b(Ho)o(w)o(ev)o(er,)16 b(it)f(is)g(hard)h(to)f(see)h(ho)o
+(w)f(a)g(to)q(ol)g(suc)o(h)177 824 y(as)f(F)m(unnelW)m(eb)f(could)h(pro)o
+(vide)g(supp)q(ort)h(for)e(prev)o(en)o(tion)h(of)g(this)g(sort)g(of)f(error.)
+177 904 y Fk(Meta-macro-lev)o(el)j(parameterization:)k Fn(Sometimes,)14
+b(when)j(using)f(F)m(unnelW)m(eb,)g(the)g(facilit)o(y)f(to)h(use)177
+954 y(one)11 b(macro)f(to)h(construct)i(the)e(name)f(of)h(another)g(has)g(b)q
+(een)h(needed.)19 b Fk(Decision:)c Fn(Allo)o(wing)9 b(macro)h(names)g(to)177
+1004 y(b)q(e)k(constructed)h(w)o(ould)e(lose)g(the)h(simple)d(nature)j(of)f
+(the)h(prepro)q(cessor)h(and)e(so)h(this)f(suggestion)g(is)g(rejected.)177
+1084 y Fk(Clumsy)j(notation:)h Fn(The)e Fi(@)f Fn(notation)f(can)i(b)q(e)g
+(clumsy)m(.)j Fk(Decision:)f Fn(This)e(is)f(necessary)i(to)f(main)o(tain)c
+(the)177 1134 y(simplicit)o(y)h(of)h(the)h(translation.)177
+1314 y Fe(1.6)70 b(Automated)22 b(Regression)g(T)-6 b(esting)177
+1438 y Fn(Automated)13 b(regression)i(testing)f(is)g(extremely)g(imp)q(ortan)
+o(t)e(for)h(t)o(w)o(o)h(reasons:)228 1568 y(1.)20 b(It)14 b(pro)o(vides)g
+(con\014dence)i(that)e(c)o(hanges)g(made)f(to)h(the)g(program)e(ha)o(v)o(e)i
+(not)g(in)o(tro)q(duced)h(bugs.)228 1662 y(2.)20 b(It)11 b(allo)o(ws)e(p)q
+(ortabilit)o(y)g(problems)h(to)g(b)q(e)i(pinp)q(oin)o(ted)e(when)h(the)g
+(program)e(is)i(mo)o(v)o(ed)e(to)h(a)g(new)i(mac)o(hine.)177
+1792 y(The)j(simplest)e(w)o(a)o(y)g(to)h(set)h(up)g(automated)d(regression)k
+(testing)e(is)g(to)g(construct)i(a)e(suite)h(of)e(test)i(cases)h(\(and)177
+1842 y(their)e(solutions\))e(and)h(then)h(write)f(a)g(script)g(in)g(the)g
+(target)h(mac)o(hine's)d(command)g(language)h(to)g(run)i(through)177
+1892 y(the)k(suite.)29 b(Unfortunately)m(,)17 b(there)i(is)e(no)g(command)d
+(language)j(that)g(is)g(shared)h(among)e(the)i(mac)o(hines)e(to)177
+1941 y(whic)o(h)f(F)m(unnelW)m(eb)f(m)o(ust)g(b)q(e)h(p)q(orted.)22
+b(These)16 b(mac)o(hines)e(are)i(at)e(least:)20 b(Macin)o(tosh,)15
+b(IBM-PC,)g(Sun,)g(VMS)177 1991 y(V)m(ax.)177 2072 y(One)h(option)e(is)h
+(simply)e(to)i(rewrite)h(the)g(script)g(in)e(eac)o(h)i(mac)o(hine's)d
+(particular)i(command)d(language.)21 b(This)177 2121 y(w)o(ould)15
+b(b)q(e)i(a)e(feasible)h(option)f(w)o(ere)i(it)e(not)h(for)f(the)i(fact)f
+(that)g(the)g(Macin)o(tosh)g(\(the)g(mac)o(hine)f(up)q(on)h(whic)o(h)177
+2171 y(F)m(unnelW)m(eb)e(w)o(as)f(dev)o(elop)q(ed\))i(do)q(es)g(not)e(ha)o(v)
+o(e)h(a)g(command)d(language!)177 2252 y(After)i(some)f(though)o(t,)g(I)g
+(decided)i(that)e(the)h(b)q(est)h(solution)e(to)g(the)h(problem)e(w)o(as)i
+(to)f(create)i(a)e(command)e(lan-)177 2301 y(guage)i Fh(within)h(F)m
+(unnelWeb)p Fn(.)18 b(F)m(unnelW)m(eb)12 b(could)g(then)h(b)q(e)f(in)o(v)o
+(ok)o(ed)g(in)f(t)o(w)o(o)h(mo)q(des,)f(one-shot)i(command)c(line)177
+2351 y(or)15 b(in)o(teractiv)o(e/script.)20 b(This)15 b(approac)o(h)f(had)g
+(the)h(b)q(ene\014t)h(of)e(pro)o(viding)f(total)h(con)o(trol)g(o)o(v)o(er)g
+(the)i(command)177 2401 y(language)d(and)h(its)g(complete)f(p)q(ortabilit)o
+(y)m(.)177 2481 y(The)h(result)h(is)f(describ)q(ed)i(in)d(the)h
+Fh(F)m(unnelWeb)j(User's)d(Manual)p Fn(.)177 2661 y Fe(1.7)70
+b(Command)22 b(Line)g(In)n(terface)177 2785 y Fn(F)m(unnelW)m(eb)12
+b(V1)g(w)o(as)g(implemen)o(ted)e(in)i(Ada)g(and)g(runs)h(on)f(a)g(VMS)g(V)-5
+b(AX.)13 b(As)g(suc)o(h)g(it)e(has)i(a)f(full)f(VMS)h(DCL)177
+2835 y(command)f(line)j(in)o(terface.)k(Here)d(is)f(the)h(\\)p
+Fi(.CLD)p Fn(")d(\014le)i(for)g(the)g(DCL)g(command)d(line)i(in)o(terface.)
+1042 2940 y(18)p eop
+%%Page: 19 20
+19 19 bop 177 42 a Fi(!)22 b(FUNNELWEB)e(Command)g(Definition)177
+91 y(!)i(================)o(=====)o(=====)o(==)177 141 y(!)g(Ross)f
+(Williams.)f(28)h(April)g(1987.)177 241 y(module)g(command_table)243
+291 y(define)f(verb)h(dummy_command)243 340 y(parameter)e(p1)240
+b(,)21 b(label=input_file)62 b(,value\(required,type)o(=$fi)o(le\))243
+390 y(qualifier)19 b(include_files,)g(label=include_files)o(,valu)o(e\(typ)o
+(e=$fi)o(le\))g(,default)243 440 y(qualifier)g(output_files)h(,)h
+(label=output_files)d(,value\(type=$file\))h(,default)243 490
+y(qualifier)g(delete)152 b(,)21 b(label=delete)565 b(,default)243
+540 y(qualifier)19 b(tex_file)108 b(,)21 b(label=tex_file)106
+b(,value\(type=$file\))19 b(,default)243 589 y(qualifier)g(listing_file)h(,)h
+(label=listing_file)d(,value\(type=$file\))h(,default)243 639
+y(qualifier)g(brief)174 b(,)21 b(label=brief,value\(t)o(ype=$)o(numbe)o
+(r,def)o(ault=)o(5\),d)o(efaul)o(t)243 689 y(qualifier)e(screen)152
+b(,)21 b(label=screen)150 b(,value\(type=$number,)o(defa)o(ult=0)o(\))243
+739 y(qualifier)19 b(trace)174 b(,)21 b(label=trace)243 789
+y(qualifier)e(file_spec)86 b(,)21 b(label=file_spec)243 839
+y(qualifier)e(compare)177 981 y Fn(As)d(p)q(ortabilit)o(y)f(w)o(as)g(a)h(k)o
+(ey)g(goal)e(of)h(F)m(unnelW)m(eb)g(V3,)h(it)f(w)o(as)h(ob)o(vious)f(that)h
+(the)g(command)d(line)i(in)o(terface)177 1031 y(w)o(ould)e(ha)o(v)o(e)h(to)g
+(b)q(e)g(redesigned.)20 b(The)14 b(design)g(goals)f(for)h(the)g(new)g
+(command)d(line)j(in)o(terface)g(w)o(ere:)228 1174 y(1.)20
+b(The)15 b(in)o(terface)g(should)f(not)g Fh(dep)n(end)i Fn(on)e(case.)21
+b(Ho)o(w)o(ev)o(er,)14 b(it)g(m)o(ust)g(allo)o(w)e(case-sensitiv)o(e)k
+(\014lenames)e(to)281 1224 y(b)q(e)g(transmitted)g(on)f(systems)i(that)e(ha)o
+(v)o(e)h(case-sensitiv)o(e)i(\014lenames.)228 1328 y(2.)k(Eac)o(h)13
+b(option)f(m)o(ust)g(ha)o(v)o(e)h(a)f(symmetric)f(p)q(ositiv)o(e)i(and)g
+(negativ)o(e)f(form.)k(F)m(or)d(example,)e(it)h(is)h(confusing)281
+1378 y(for)g Fi(-X)h Fn(to)g(turn)g(on)g(a)f(feature)i(and)f
+Fi(-Q)f Fn(to)h(turn)g(it)g(o\013.)228 1482 y(3.)20 b(The)14
+b(in)o(terface)h(m)o(ust)e(b)q(e)h(extensible)h(to)f(allo)o(w)e(inclusion)h
+(of)g(more)g(features)i(at)f(a)g(later)g(date.)228 1586 y(4.)20
+b(Options)14 b(should)g(b)q(e)g(consisten)o(t)h(and)f(memorable.)177
+1729 y(The)g(result)h(is)f(describ)q(ed)i(in)d(the)h Fh(F)m(unnelWeb)j
+(User's)d(Manual)p Fn(.)177 1925 y Fe(1.8)70 b(File)21 b(Name)h(Managemen)n
+(t)177 2056 y Fn(File)e(names)f(presen)o(t)j(a)e(host)g(of)g(problems)f(for)h
+(a)f(program)g(lik)o(e)g(F)m(unnelW)m(eb.)36 b(First,)22 b(F)m(unnelW)m(eb)e
+(can)177 2106 y(generate)c(so)f(man)o(y)e(di\013eren)o(t)j(kinds)f(of)f
+(\014les)h(that)g(con)o(v)o(en)o(tions)g(m)o(ust)f(b)q(e)i(adopted)f(to)g
+(prev)o(en)o(t)g(them)g(from)177 2156 y(b)q(ecoming)9 b(unmanageable.)15
+b(Second,)c(the)f(constrain)o(ts)g(on)g(\014le)g(names,)f(and)h(ev)o(en)g
+(the)h(structure)h(of)d(\014le)h(names)177 2205 y(themselv)o(es)16
+b(v)n(aries)f(considerably)h(from)e(mac)o(hine)g(to)h(mac)o(hine.)22
+b(These)17 b(t)o(w)o(o)e(problems)f(ha)o(v)o(e)i(com)o(bined)e(to)177
+2255 y(result)g(in)e(the)i(sophisticated)g(and)e(rather)i(complicated)e(w)o
+(a)o(y)g(in)h(whic)o(h)g(F)m(unnelW)m(eb)f(V3)h(handles)g(\014lenames.)177
+2340 y(T)m(o)g(summarize,)f(the)i(three)h(problems)e(are:)228
+2483 y(1.)20 b(What)13 b(\014lename)g(extensions)i(should)f(b)q(e)g(c)o
+(hosen)h(for)f(v)n(arious)f(kinds)h(of)f(\014le?)228 2588 y(2.)20
+b(What)13 b(\014lename)g(inheritance)i(should)e(tak)o(e)h(place?)228
+2692 y(3.)20 b(Ho)o(w)13 b(should)h(F)m(unnelW)m(eb)g(cop)q(e)g(with)g(the)g
+(v)n(ariations)f(in)g(\014lename)g(structure)j(b)q(et)o(w)o(een)f(mac)o
+(hines?)177 2835 y(The)f(follo)o(wing)e(three)j(sections)g(address)g(these)g
+(questions.)1042 2940 y(19)p eop
+%%Page: 20 21
+20 20 bop 177 42 a Fa(1.8.1)55 b(Filename)17 b(Extensions)177
+147 y Fn(F)m(unnelW)m(eb)11 b(is)h(capable)f(of)g(reading)h(and)f(writing)g
+(a)g(v)n(ariet)o(y)g(of)g(di\013eren)o(t)i(kinds)f(of)f(\014les.)17
+b(In)12 b(particular,)f(F)m(un-)177 197 y(nelW)m(eb)g(m)o(ust)f(often)h(op)q
+(erates)h(in)f(an)g(en)o(vironmen)o(t)f(where)i(the)f(same)f(information)f
+(is)h(stored)i(in)f(man)o(y)e(forms)177 247 y(\(e.g.)16 b(prog.fw,)f(prog.c,)
+i(pro)q(c.exe\).)26 b(File)16 b(extensions)i(are)e(an)h(essen)o(tial)f(to)q
+(ol)g(in)g(managing)e(this)i(situation.)177 297 y(The)e(\014lename)f
+(extensions)i(c)o(hosen)g(for)f(F)m(unnelW)m(eb)f(are:)177
+421 y Fi(FunnelWeb)107 b(:)22 b(.fw)177 471 y(Product)151 b(:)22
+b(None.)177 521 y(Documentation)d(:)j(.tex)177 570 y(Listing)151
+b(:)22 b(.lis)177 620 y(Journal)151 b(:)22 b(.jrn)177 744 y
+Fn(Lo)o(w)o(ercase)15 b(will)e(b)q(e)h(used)h(in)e(systems)h(that)g(are)h
+(case)f(sensitiv)o(e.)177 822 y(Readers)g(who)f(are)h(w)o(ondering)e(ho)o(w)h
+(F)m(unnelW)m(eb)g(cop)q(es)h(in)f(en)o(vironmen)o(ts)f(suc)o(h)i(as)f(UNIX)h
+(where)g(there)g(are)177 872 y(no)g(\014le)g(extensions)h(should)e(refer)i
+(to)f(Section)g(1.8.3.)177 1023 y Fa(1.8.2)55 b(Filename)17
+b(Inheritance)177 1129 y Fn(Inheritance)d(in)d(\014lenames)h(refers)i(to)e
+(ho)o(w)g(input)g(and)g(output)g(\014les)h(inherit)f(parts)h(of)f(their)h
+(name)e(from)f(other)177 1178 y(\014lenames)j(and)h(their)g(en)o(vironmen)o
+(t.)j(F)m(or)d(example)e(if)h(the)i(command)243 1302 y Fi(fw)21
+b(sloth)g(+J)g(+L)g(+T)177 1426 y Fn(w)o(as)d(issued,)i(y)o(ou)e(w)o(ould)f
+(exp)q(ect)j(to)e(see)h(output)g(\014les)f Fi(sloth.jrn)p Fn(,)f
+Fi(sloth.lis)p Fn(,)g(and)h Fi(sloth.tex)p Fn(.)29 b(The)177
+1476 y(output)14 b(\014le)h(names)e(ha)o(v)o(e)h(inherited)g(the)h(\\)p
+Fi(sloth)p Fn(".)i(The)e(follo)o(wing)c(table)j(giv)o(es)g(the)h(hierarc)o(h)
+o(y)f(devised)h(for)177 1526 y(F)m(unnelW)m(eb.)p 366 1606
+1394 2 v 365 1656 2 50 v 436 1656 V 462 1641 a(Script)p 615
+1656 V 70 w(Input)p 778 1656 V 64 w(Include)p 961 1656 V 50
+w(Journal)p 1147 1656 V 50 w(List)p 1326 1656 V 108 w(Do)q(cumen)o(t)p
+1562 1656 V 49 w(Pro)q(duct)p 1759 1656 V 366 1658 1394 2 v
+365 1707 2 50 v 391 1692 a(1)p 436 1707 V 615 1707 V 778 1707
+V 392 w Fi(@i)p 961 1707 V 1147 1707 V 1326 1707 V 1562 1707
+V 739 w(@o)p 1759 1707 V 365 1757 V 391 1742 a Fn(2)p 436 1757
+V 50 w Fi(+x)p 615 1757 V 134 w(+f)p 778 1757 V 120 w(+i)p
+961 1757 V 138 w(+j)p 1147 1757 V 143 w(+l)p 1326 1757 V 134
+w(+t)p 1562 1757 V 192 w(+o)p 1759 1757 V 365 1807 V 391 1792
+a Fn(3)p 436 1807 V 50 w(\\)p Fi(.fws)p Fn(")p 615 1807 V 48
+w(\\)p Fi(.fw)p Fn(")p 778 1807 V 56 w(\\)p Fi(.fwi)p Fn(")p
+961 1807 V 52 w(\\)p Fi(.jrn)p Fn(")p 1147 1807 V 57 w(\\)p
+Fi(.lis)p Fn(")p 1326 1807 V 48 w(\\)p Fi(.tex)p Fn(")p 1562
+1807 V 1759 1807 V 365 1857 V 391 1842 a(4)p 436 1857 V 615
+1857 V 778 1857 V 392 w Fi(+f)p 961 1857 V 138 w(+f)p 1147
+1857 V 143 w(+f)p 1326 1857 V 134 w(+f)p 1562 1857 V 1759 1857
+V 365 1907 V 391 1892 a Fn(5)p 436 1907 V 50 w(DefDir)p 615
+1907 V 55 w(Defdir)p 778 1907 V 50 w(Defdir)p 961 1907 V 68
+w(Defdir)p 1147 1907 V 73 w(Defdir)p 1326 1907 V 64 w(Defdir)p
+1562 1907 V 122 w(Defdir)p 1759 1907 V 366 1908 1394 2 v 177
+2015 a(The)f(follo)o(wing)e(notes)i(explain)g(the)g(table.)228
+2139 y(1.)20 b(This)14 b(sc)o(heme)g(is)g(similar)d(to)j(that)g(used)g(in)g
+(F)m(unnelW)m(eb)f(V1.)228 2229 y(2.)20 b(The)14 b(journal,)f(list,)f(and)i
+(do)q(cumen)o(tation)e(\014les)j(all)d(fall)g(in)i(the)g(same)f(pattern)h
+(and)g(can)g(b)q(e)g(considered)281 2278 y(as)g(a)g(single)f(case.)228
+2368 y(3.)20 b(Lev)o(el)15 b(1)h(has)f(the)h(highest)g(priorit)o(y)e(b)q
+(ecause)k(it)d(is)g(a)g(direct)h(sp)q(eci\014cation)g(b)o(y)g(the)g(user)g
+(in)f(the)h(input)281 2418 y(\014le.)228 2507 y(4.)k(Lev)o(el)14
+b(2)f(comes)h(next)g(b)q(ecause)h(this)f(is)g(also)f(a)g(direct)i(sp)q
+(eci\014cation)f(from)e(the)j(user)g(on)e(the)i(command)281
+2557 y(line.)228 2646 y(5.)20 b(Lev)o(el)13 b(3)f(pro)o(vides)h(the)h
+(default)e(\014le)h(extensions.)19 b(Pro)q(duct)14 b(\014les)f(do)g(not)f
+(inherit)h(an)g(extension)g(as)g(they)281 2696 y(could)h(b)q(e)g(of)f(an)o(y)
+h(t)o(yp)q(e.)228 2785 y(6.)20 b(Lev)o(el)12 b(5)h(is)f(built)g(in)o(to)f
+(most)h(op)q(erating)g(systems')g(\014le)h(sp)q(eci\014cation)g(systems.)k
+(If)c(I)f(sp)q(ecify)h(\014le)f(\\)p Fi(x.y)p Fn(",)281 2835
+y(it)h(is)h(tak)o(en)g(to)g(mean)f(on)g(the)i(default)e(disk)h(in)f(the)i
+(default)e(directory)m(.)1042 2940 y(20)p eop
+%%Page: 21 22
+21 21 bop 228 42 a Fn(7.)20 b(Lev)o(el)15 b(4)g(lo)q(oks)g(straigh)o(tforw)o
+(ard,)f(but)i(secretly)h(conceals)f(a)f(di\016cult)f(design)i(decision.)22
+b(By)15 b(the)h(time)281 91 y(w)o(e)j(get)g(do)o(wn)f(to)g(this)h(lev)o(el)f
+(of)g(inheritance,)i(w)o(e)e(kno)o(w)h(for)f(sure)h(that)g(the)g(\014lename)e
+(has)i(already)281 141 y(pic)o(k)o(ed)c(up)g(a)f(\014le)h(extension.)21
+b(So)15 b(all)e(that)i(is)g(left)f(to)h(inherit)g(is)g(the)g(path)g(and)f
+(the)i(\014lename)d(prop)q(er.)281 191 y(Ob)o(viously)g(w)o(e)h(ha)o(v)o(e)g
+(to)g(inherit)g(the)h(\014lename)e(prop)q(er)i(\(e.g.)j Fi(sloth)13
+b Fn(in)h Fi(sloth.tex)p Fn(\),)d(but)k(should)f(w)o(e)281
+241 y(inherit)j(the)g(input)g(\014le)g(path?)26 b(If)17 b(w)o(e)g(do)f
+(inherit)h(the)g(input)g(\014le)g(path,)g(\014les)g(will)e(b)q(e)j(placed)f
+(in)f(the)281 291 y(same)f(directory)h(as)g(the)g(input)g(\014le.)23
+b(If)16 b(w)o(e)g(don't)f(inherit)h(the)g(input)f(\014le)h(path,)g(\014les)g
+(will)e(b)q(e)j(placed)281 340 y(in)c(the)h(curren)o(t)h(directory)m(.)j(The)
+c(c)o(hoice)g(I)f(ha)o(v)o(e)h(made)e(is)h(to)g(send)i(all)d(the)i(logging)e
+(t)o(yp)q(e)i(\014les)f(in)o(to)g(the)281 390 y(same)h(directory)j(as)e(the)h
+(input)f(\014le.)23 b(This)15 b(means,)g(for)g(example,)f(that)h
+Fi(sloth.lis)e Fn(and)j Fi(sloth.tex)281 440 y Fn(will)c(generally)i(land)f
+(in)g(the)i(same)e(directory)h(as)g Fi(sloth.fw)p Fn(.)j(Ho)o(w)o(ev)o(er,)c
+(I)h(ha)o(v)o(e)g(decided)h(that)f(output)281 490 y(\014les)e(should)f(b)q(e)
+h(sen)o(t)g(to)f(the)h(default)f(directory)h(\(if)f(not)g(earlier)h(sp)q
+(eci\014ed\))h(as)e(this)g(is)h(where)g(the)g(action)281 540
+y(is.)19 b(In)c(normal)d(use,)j(the)g(main)d(pro)q(duct)j(of)f(F)m(unnelW)m
+(eb)g(will)e(b)q(e)j(pro)q(duct)h(\014les)e(and)g(so)h(the)g(user)g(will)281
+589 y(exp)q(ect)g(them)e(to)h(app)q(ear)h(in)e(the)h(curren)o(t)i(directory)e
+(b)o(y)g(default.)177 757 y Fa(1.8.3)55 b(P)n(ortable)19 b(Structure)f(of)h
+(File)e(Names)177 871 y Fn(Another)g(problem)e(with)g(\014le)h(names)f(is)h
+(the)h(v)n(ariation)d(of)h(their)i(structure)h(b)q(et)o(w)o(een)f(en)o
+(vironmen)o(ts.)24 b(Here)177 921 y(are)14 b(examples)f(of)h(some)f(of)g(the)
+h(formats)f(that)h(prev)n(ail:)243 1059 y Fi(UNIX)64 b(/device/dir1/dir2/)o
+(name)243 1108 y(VMS)86 b(node::device:[dir1)o(.dir2)o(]name)o(.ext)o(;vn)243
+1158 y(MSDOS)42 b(device:\\dir1\\dir2\\)o(name.)o(ext)243 1208
+y(MAC)86 b(device:dir1:dir2:n)o(ame)177 1345 y Fn(Isn't)14
+b(it)g(amazing)d(that)j(none)g(of)g(these)h(p)q(opular)f(systems)g(use)g(the)
+h(same)e(format?)177 1429 y(The)j(solution)f(to)g(dealing)g(with)g(these)i
+(di\013eren)o(t)f(formats)e(is)h(to)h(classify)f(them)g(as)g(non-p)q(ortable)
+g(and)h(hide)177 1479 y(the)g(functions)f(that)g(manipulate)e(them)h(in)g
+(the)i(mac)o(hine-sp)q(eci\014c)f(mo)q(dule)e(of)i(F)m(unnelW)m(eb.)20
+b(Luc)o(kily)14 b(there)177 1528 y(are)g(not)g(man)o(y)e(suc)o(h)j
+(functions.)177 1612 y(The)g(main)c(problem)i(is)h(coping)f(with)h(\014le)g
+(systems)g(that)g(do)g(not)g(explicitly)e(supp)q(ort)j(\014le)f(extensions.)
+19 b(With)177 1661 y(so)14 b(man)o(y)e(p)q(ossible)i(input)f(and)g(output)h
+(\014les,)g(F)m(unnelW)m(eb)f(all)f(but)i(needs)h(suc)o(h)g(extensions.)k
+(Mac)o(hines)14 b(that)177 1711 y(do)h(not)g(supp)q(ort)h(them)e(p)q(ose)h
+(di\016cult)g(design)g(decisions.)22 b(If)14 b(the)i(user)g(sp)q(eci\014es)h
+(\\)p Fi(sloth)p Fn(")c(as)i(an)g(input)g(\014le)177 1761 y(on)d(suc)o(h)g(a)
+g(non-extension-supp)q(orting)g(system,)g(should)g(F)m(unnelW)m(eb)f(lo)q(ok)
+g(for)g Fi(sloth)g Fn(or)h Fi(sloth.fw)p Fn(?)k(If)11 b(the)177
+1811 y(user)k(sp)q(eci\014es)h Fi(walrus)c Fn(as)i(a)g(listing)f(\014le,)g
+(should)h(it)f(generate)j Fi(walrus)c Fn(or)i Fi(walrus.lis)p
+Fn(?)177 1894 y(Some)f(p)q(ossible)h(solutions)f(are:)228 2032
+y(1.)20 b(Regard)14 b(the)g(\014lename)f Fi(sloth)g Fn(as)h(ha)o(ving)e(an)i
+(empt)o(y)f(extension.)19 b(It)14 b(will)e(then)j(default)e(to)h
+Fi(sloth.fw)p Fn(.)228 2132 y(2.)20 b(Regard)g(the)h(\014lename)d
+Fi(sloth)h Fn(as)i(ha)o(ving)e(a)g(blank)h(but)g(full)f(extension.)37
+b(That)20 b(is,)h(it)f(cannot)g(b)q(e)281 2181 y(o)o(v)o(erwritten)14
+b(b)o(y)g(inheritance,)g(but)g(it)g(remains)f(blank.)228 2282
+y(3.)20 b(Pro)o(vide)c(an)g(extra)h(syn)o(tactic)f(mec)o(hanism)e(to)i(allo)o
+(w)f(the)i(user)g(to)f(sp)q(ecify)h(one)f(or)g(other)h(of)e(the)i(t)o(w)o(o)
+281 2331 y(options)c(ab)q(o)o(v)o(e.)177 2469 y(My)i(solution)e(w)o(as)i(to)f
+(c)o(ho)q(ose)i(the)f(\014rst)g(option.)k(Use)d(of)e(F)m(unnelW)m(eb)g
+(results)h(in)f(lots)h(of)f(\014les)h(lying)e(around)177 2519
+y(\(e.g.)h Fi(sloth.lis)p Fn(\))f(and)h(it)g(is)g(hard)h(to)f(see)i(ho)o(w)e
+(the)h(user)h(will)c(cop)q(e)k(with)e(them)g(all)f(without)h(some)f(kind)h
+(of)177 2569 y(naming)e(discipline.)17 b(If)d(a)f(naming)f(discipline)h(has)h
+(to)g(b)q(e)h(used,)f(it)g(migh)o(t)d(as)j(w)o(ell)f(b)q(e)i(the)f(F)m
+(unnelW)m(eb)g(one.)177 2652 y(Th)o(us)h(the)g(names)e(of)h(all)f(\014les)i
+(read)f(and)h(written)f(b)o(y)h(F)m(unnelW)m(eb)e(will)g(ha)o(v)o(e)h(a)g
+(\014le)h(extension)g(of)e(from)g(zero)177 2702 y(to)h(three)h(letters)g
+(separated)g(from)e(the)h(rest)h(of)e(the)i(\014lename)e(b)o(y)g(a)h(\\)p
+Fi(.)p Fn(".)177 2785 y(The)d(only)f(exception)i(is)f(pro)q(duct)g(\014les)g
+(whose)h(extension)f(is)g(left)f(unde\014ned.)19 b(Pro)q(duct)12
+b(\014les)f(need)h(not)e(con)o(tain)177 2835 y(a)k(\\)p Fi(.)p
+Fn(")k(and)13 b(a)h(\014le)g(extension,)g(although)f(they)h(can)g(inherit)g
+(one)g(if)f(the)i(user)g(wishes.)1042 2940 y(21)p eop
+%%Page: 22 23
+22 22 bop 177 42 a Fe(1.9)70 b(Sp)r(ecifying)31 b(Constrain)n(ts)i(on)h(the)e
+(Num)n(b)r(er)g(of)i(Instan)n(tia-)334 116 y(tions)177 232
+y Fn(Exp)q(erience)17 b(with)d(F)m(unnelW)m(eb)g(V1)g(demonstrated)h(the)g
+(need)g(to)g(b)q(e)g(able)f(to)g(sp)q(ecify)h(in)g(macro)e(de\014nitions)177
+281 y(ho)o(w)f(man)o(y)f(times)h(it)g(w)o(as)h(exp)q(ected)h(that)f(the)g
+(macro)f(w)o(ould)g(b)q(e)h(used.)18 b(F)m(unnelW)m(eb)13 b(V1)f(generates)i
+(an)f(error)177 331 y(if)g(a)g(macro)f(is)h(not)g(used,)h(but)g(p)q(ermits)f
+(macros)f(to)i(b)q(e)g(called)f(more)f(than)h(once.)19 b(This)13
+b(caused)i(problems)d(for)177 381 y(macro)h(libraries,)g(whic)o(h)h(w)o(ould)
+f(b)q(e)h(included,)g(but)g(whose)g(macros)f(w)o(ere)i(often)f(not)g(called.)
+177 455 y(By)g(default,)e(F)m(unnelW)m(eb)h(V3)h(requires)g(that)g(eac)o(h)f
+(macro)g(\(except)i(for)e(the)h(ones)f(attac)o(hed)h(to)g(output)f(\014les\))
+177 505 y(b)q(e)19 b(called)e(exactly)h(once.)30 b(Ho)o(w)o(ev)o(er,)19
+b(it)f(also)f(pro)o(vides)h(syn)o(tax)g(that)f(allo)o(ws)g(the)h(user)h(to)f
+(sp)q(ecify)g(that)g(a)177 555 y(macro)13 b(b)q(e)h(allo)o(w)o(ed)e(to)i(b)q
+(e)g(called)f(zero)i(times)d(or)i(man)o(y)e(times.)17 b(This)c(allo)o(ws)g(a)
+g(macro)f(to)i(b)q(e)g(sp)q(eci\014ed)h(with)177 605 y(the)f(follo)o(wing)d
+(p)q(ermissible)i(ranges)h(of)f(n)o(um)o(b)q(ers)g(of)g(calls)g(dep)q(ending)
+h(on)f(the)h(presence)i(or)e(absence)h(of)e(\\)p Fi(@Z)p Fn(")177
+655 y(and)h(\\)p Fi(@M)p Fn(":)243 770 y Fi(0..1)217 b(@$@<Sloth@>@Z==.)o(..)
+308 819 y(1)h(@$@<Sloth@>==...)308 869 y(1..n)152 b(@$@<Sloth@>@M==.)o(..)243
+919 y(0.....n)f(@$@<Sloth@>@Z@M=)o(=...)177 1034 y Fn(The)14
+b(only)g(t)o(w)o(o)f(problems)g(with)g(this)h(sc)o(heme)g(are:)228
+1149 y(1.)20 b(It)11 b(is)g(incompatible)f(with)h(F)m(unnelW)m(eb)f(V1)i
+(\014les,)f(as)h(the)f(default)g(in)g(F)m(unnelW)m(eb)g(V1)g(is)g(1)c
+Fj(:)g(:)g(:)e(n)11 b Fn(whereas)281 1198 y(the)16 b(default)g(in)f(new)h(F)m
+(unnelW)m(eb)f(is)h(1.)23 b(This)16 b(is)f(not)h(a)g(big)f(problem)f(b)q
+(ecause)j(most)e(macros)g(in)g(the)281 1248 y(old)e(\014les)h(w)o(ere)h(used)
+g(exactly)f(once.)19 b(Only)13 b(a)h(few)g(macros)f(will)f(ha)o(v)o(e)i(to)g
+(b)q(e)g(c)o(hanged.)228 1331 y(2.)20 b(What)13 b(should)h(the)h(syn)o(tax)e
+(b)q(e?)19 b(\(ab)q(o)o(v)o(e)14 b(is)g(a)f(sneak)i(preview)f(only!\))177
+1446 y(The)g(initial)d(prop)q(osal)i(for)g(syn)o(tax)g(w)o(as)g(to)g(allo)o
+(w)f(the)i(user)g(to)f(insert)h(zero,)g(one,)f(or)g(b)q(oth)g(of)g
+Fi(@?)18 b Fn(and)13 b Fi(@M)g Fn(just)177 1496 y(after)h(the)h
+Fi(@$)e Fn(of)g(a)h(macro)f(de\014nition.)k(Ho)o(w)o(ev)o(er,)d(this)g(has)g
+(the)h(follo)o(wing)c(dra)o(wbac)o(ks:)228 1610 y(1.)20 b(It)14
+b(uses)h(t)o(w)o(o)e(sequences)k(that)d(are)g(desirable)g(to)g(reserv)o(e)i
+(\()p Fi(@?)i Fn(for)c(conditionals)f(and)g Fi(@M)h Fn(for)f(macro\).)228
+1693 y(2.)20 b(It)14 b(stops)g(the)h(user)g(from)d(searc)o(hing)i(for)g(the)g
+(string)g Fi(@$@<name)f Fn(to)g(\014nd)h(the)h(de\014nition)e(of)h(a)f
+(macro.)177 1808 y(These)h(are)e(signi\014can)o(t)g(problems.)17
+b(Here)c(are)g(some)e(alternativ)o(e)h(ideas)h(for)f(where)h(to)f(p)q
+(osition)g(the)h(mo)q(di\014ers)177 1858 y(in)h(the)g(macro)f(de\014nition:)
+177 1973 y Fi(@?@M@$@<Slothy)19 b(dogs@>@\(@5@\)==@{@-)177
+2022 y(This)i(is)h(a)f(short)g(macro.)177 2072 y(With)g(only)g(a)h(line)f(or)
+g(two@})177 2172 y(@$@<Slothy)f(dogs@>@?@M@\(@5@\)=)o(=@{@-)177
+2222 y(This)h(is)h(a)f(short)g(macro.)177 2271 y(With)g(only)g(a)h(line)f(or)
+g(two@})177 2371 y(@$@<Slothy)f(dogs@>@\(@5@\)@?@M=)o(=@{@-)177
+2421 y(This)h(is)h(a)f(short)g(macro.)177 2471 y(With)g(only)g(a)h(line)f(or)
+g(two@)177 2586 y Fn(The)14 b(\014rst)f(form)e(puts)j(me)e(o\013)h(b)q
+(ecause)h(I)f(think)g(that)g(it)f(is)h(a)g(go)q(o)q(d)f(visual)g(rule)h(to)g
+(start)h(all)e(the)h(macros)f(with)177 2635 y Fi(@$)p Fn(.)17
+b(The)12 b(second)h(form)d(puts)j(me)d(o\013)i(b)q(ecause)i(it)d(detac)o(hes)
+i(the)g(macro)d(name)h(from)f(the)j(parameter)e(list,)g(th)o(us)177
+2685 y(making)g(it)i(lo)q(ok)f(less)i(lik)o(e)f(a)g(call,)f(whic)o(h)h(is)h
+(desirable)f(syn)o(tactic)h(resonance.)20 b(The)13 b(third)h(form)d(is)j
+(messy)f(but)177 2735 y(probably)i(w)o(ork)n(able.)23 b(Because)17
+b(w)o(e)f(are)g(righ)o(t)g(next)g(to)f(the)h(tested)i(constan)o(t)e(string)g
+(\(either)g Fi(==)g Fn(or)f Fi(+=)p Fn(\))h(w)o(e)177 2785
+y(could)f(augmen)o(t)e(it)h(further.)21 b(F)m(or)15 b(example,)e
+Fi(01==)h Fn(could)g(allo)o(w)f(a)h(macro)g(to)g(b)q(e)i(called)e(from)f(0)h
+(to)h(1)f(times.)177 2835 y(The)g(main)e(problem)h(with)g(this)h(is)g(that)g
+(w)o(e)g(are)g(trying)g(to)g(phase)g(out)g Fi(==)f Fn(an)o(yw)o(a)o(y!)1042
+2940 y(22)p eop
+%%Page: 23 24
+23 23 bop 177 42 a Fn(Nev)o(ertheless,)17 b(all)c(the)j(logic)d(p)q(oin)o(ts)
+i(to)f(after)h(the)g(parameter)g(list)f(as)h(the)g(b)q(est)h(place)f(to)f(lo)
+q(cate)h(this)g(infor-)177 91 y(mation.)177 167 y(After)21
+b(some)d(though)o(t,)j(it)e(w)o(as)h(decided)h(that)f(the)g(\\)p
+Fi(@?)p Fn(")35 b(sequence)22 b(b)q(e)e(reserv)o(ed)i(for)e(a)f(p)q(ossible)h
+(future)177 217 y(conditional)13 b(facilit)o(y)m(,)e(and)j(so)g
+Fi(@Z)f Fn(w)o(as)h(used)h(instead.)177 292 y Fk(Decision:)h
+Fn(The)f(p)q(osition)e(is)h(after)g(the)g(parameter)g(list.)j(The)e(notation)
+e(is)g Fi(@Z)h Fn(for)f(zero,)i(and)e Fi(@M)h Fn(for)f(man)o(y)m(.)177
+368 y(Example)g(of)g(\014nal)g(syn)o(tax:)177 486 y Fi(@$@<Slothy)20
+b(dogs@>@\(@5@\)@Z@M+)o(=@{@-)177 536 y(This)h(is)h(a)f(short)g(macro.)177
+585 y(With)g(only)g(a)h(line)f(or)g(two@})177 750 y Fe(1.10)70
+b(The)25 b(Relationship)e(Bet)n(w)n(een)g(Do)r(cumen)n(t)h(Structure)h(and)
+368 825 y(Macro)f(Structure)177 942 y Fn(Ha)o(ving)15 b(already)h(decided)h
+(up)q(on)f(a)g(fully)e(hierarc)o(hical)i(do)q(cumen)o(t)g(structure,)i(I)e
+(determined)g(to)g(re\014ne)h(the)177 992 y(details.)h(The)c(issues)h(to)f(b)
+q(e)h(addressed)g(w)o(ere)g(as)f(follo)o(ws:)239 1110 y Fm(\017)21
+b Fn(Ho)o(w)13 b(should)h(the)h(hierarc)o(hical)e(structure)j(connect)g(to)d
+(the)i(macro)e(structure?)239 1194 y Fm(\017)21 b Fn(Ho)o(w)13
+b(can)i(bac)o(kw)o(ards)f(compatibilit)o(y)c(b)q(e)15 b(ac)o(hiev)o(ed?)j
+(Should)c(it?)239 1279 y Fm(\017)21 b Fn(Should)13 b(the)i(macros)e(b)q(e)h
+(cross)h(referenced)i(b)o(y)c(section)i(or)f(b)o(y)g(de\014nition?)239
+1363 y Fm(\017)21 b Fn(Should)13 b(nameless)h(sections)h(inherit)f(macro)e
+(names)h(as)h(headings?)239 1448 y Fm(\017)21 b Fn(Should)13
+b(w)o(e)h(simply)e(use)j(T)708 1457 y(E)731 1448 y(X)f(macros)f(to)h
+(structure)i(the)e(do)q(cumen)o(t?)177 1566 y(After)h(some)e(though)o(t,)g(I)
+h(arriv)o(ed)g(at)f(the)i(follo)o(wing)c(though)o(ts:)177 1642
+y Fk(Basically)i(a)h(T)439 1651 y(E)464 1642 y(X)h(\014le:)h
+Fn(One)d(option)f(is)g(simply)e(to)i(treat)h(eac)o(h)g Fi(.fw)e
+Fn(\014le)i(as)f(a)g(T)1481 1651 y(E)1504 1642 y(X)g(\014le)h(laced)f(with)g
+(macros.)177 1691 y(That)18 b(is,)g(a)g Fi(.fw)f Fn(\014le)h(could)f(b)q(e)i
+(structured)h(as)e(a)f(real)h(T)1117 1700 y(E)1140 1691 y(X)g(\014le)g(from)e
+(whic)o(h)i(F)m(unnelW)m(eb)f(could)h(extract)177 1741 y(macro)13
+b(de\014nitions.)18 b(This)13 b(approac)o(h)h(is)g(feasible)f(b)q(ecause)j(T)
+1157 1750 y(E)1180 1741 y(X)e(could)f(b)q(e)i(programmed)c(to)j(resp)q(ond)h
+(to)e(the)177 1791 y Fi(@)g Fn(sequences)i(in)d(the)i(same)e(w)o(a)o(y)g
+(that)h(F)m(unnelW)m(eb)f(resp)q(onds)i(to)f(them.)k(Th)o(us,)12
+b(there)i(w)o(ould)e(b)q(e)i(no)e(need)i(for)177 1841 y(W)m(ea)o(v)o(e.)177
+1916 y(I)h(rejected)i(this)e(approac)o(h,)g(\014rst)g(b)q(ecause)i(it)e(is)g
+(to)q(o)f(t)o(yp)q(esetter-dep)q(e)q(nden)o(t,)k(and)d(second)h(b)q(ecause)h
+(it)d(com-)177 1966 y(plicates)i(the)h(inclusion)e(of)h(an)o(y)f(sort)h(of)g
+(complicated)e(p)q(ost-pro)q(cessing)k(in)d(the)i(do)q(cumen)o(tation)e
+(\014le.)24 b(This)177 2016 y(w)o(ould)13 b(ha)o(v)o(e)h(to)g(b)q(e)g
+(implemen)o(ted)e(in)h(T)818 2025 y(E)841 2016 y(X.)177 2091
+y(A)h(b)q(etter)h(approac)o(h)f(is)f(to)h(use)g(an)g(in)o(v)o(en)o(ted)g
+(section)g(notation)f(\(e.g.)18 b Fi(@A)j(@B)g(@C)p Fn(\).)13
+b(This)h(main)o(tains)d(F)m(unnel-)177 2141 y(W)m(eb's)h(t)o(yp)q(esetter)k
+(indep)q(endence)f(and)d(can)h(easily)f(b)q(e)i(con)o(v)o(erted)g(in)o(to)e
+(T)1365 2150 y(E)1388 2141 y(X)h(sectioning)f(macros)g(b)o(y)h(W)m(ea)o(v)o
+(e.)177 2217 y(In)g(the)h(same)e(spirit,)g(it)h(migh)o(t)e(b)q(e)j(w)o(orth)f
+(in)o(tro)q(ducing)f(a)h(few)g Fi(@)g Fn(sequences)i(for)e(certain)h(general)
+f(t)o(yp)q(esetting)177 2267 y(op)q(erations)h(suc)o(h)h(as)f(italics)f(and)h
+(program)e(co)q(de.)177 2342 y Fk(Confusion)f(in)i(F)l(unnelW)l(eb)e(V1)j
+(Heading)e(Num)o(b)q(ering:)j Fn(F)m(unnelW)m(eb)d(V1)g(uses)h(t)o(w)o(o)f
+(lev)o(els)g(of)f(section)177 2392 y(headings,)16 b(but)g(n)o(um)o(b)q(ers)f
+(all)f(the)i(headings)g(sequen)o(tially)m(.)22 b(In)16 b(this,)f(it)h(is)f(a)
+g(little)g(confused.)24 b(Clearly)15 b(with)177 2442 y(a)20
+b(fully)e(hierarc)o(hical)h(do)q(cumen)o(t)h(structure,)i(the)f(headings)e
+(cannot)h(b)q(e)g(n)o(um)o(b)q(ered)g(sequen)o(tially)f(|)g(the)177
+2492 y(n)o(um)o(b)q(ering)13 b(m)o(ust)g(re\015ect)i(the)g(structure)h
+(\(e.g.)d(3.2.1\).)177 2567 y Fk(Hierarc)o(hical)d(n)o(um)o(b)q(erin)o(g)f
+(is)j(messy)f(for)h(macros:)k Fn(Unfortunately)m(,)11 b(hierarc)o(hical)f(n)o
+(um)o(b)q(ering)g(is)g(messy)177 2617 y(and)k(confusing)f(when)i(applied)e
+(to)h(macro)e(names.)18 b(In)c(F)m(unnelW)m(eb)f(V1's)h(t)o(yp)q(eset)h
+(output,)f(eac)o(h)g(macro)f(call)177 2667 y(has)i(app)q(ended)g(in)f(square)
+h(brac)o(k)o(ets)h(the)f(n)o(um)o(b)q(er)f(of)f(the)i(section)h(in)e(whic)o
+(h)g(the)h(macro)e(is)h(de\014ned.)21 b(Use)15 b(of)177 2716
+y(hierarc)o(hical)f(n)o(um)o(b)q(ering)e(w)o(ould)i(b)q(e)g(somewhat)f(messy)
+m(.)k(F)m(or)d(example,)e(a)h(macro)g(call)g(migh)o(t)f(lo)q(ok)h(lik)o(e.)
+243 2835 y Fi(Write)20 b(out)h(the)h(output[6.7.4.3])1042 2940
+y Fn(23)p eop
+%%Page: 24 25
+24 24 bop 177 42 a Fn(Similarly)l(,)11 b(cross)k(reference)h(lists)e(w)o
+(ould)f(b)q(e)i(messy:)243 180 y Fi(This)21 b(macro)f(is)i(used)f(in)g
+(3.4.5,)g(1.2,)g(7.8.9,)f(7.4,)h(2.2.1.1.)177 319 y Fk(Separate)12
+b(n)o(um)o(b)q(ering)e(for)j(macros)h(and)f(headings:)i Fn(One)e(idea)f(is)g
+(to)g(use)g(hierarc)o(hical)g(n)o(um)o(b)q(ering)f(for)177
+369 y(the)i(sections,)h(but)f(to)f(n)o(um)o(b)q(er)g(the)h(macros)f(sequen)o
+(tially)m(.)k(This)d(could)f(b)q(e)h(a)g(little)f(confusing)g(in)g(do)q
+(cumen)o(ts)177 419 y(without)j(m)o(uc)o(h)g(structure,)i(but)f(w)o(ould)f(b)
+q(e)h(v)o(ery)g(m)o(uc)o(h)f(less)h(messy)f(than)h(cross)g(referencing)h
+(using)f(hierar-)177 469 y(c)o(hical)f(n)o(um)o(b)q(ering.)22
+b(Also,)15 b(it)g(will)f(b)q(e)i(easier)g(to)g(\014nd)f(macros)g(indexed)h(b)
+o(y)f(a)g(sequen)o(tial)h(n)o(um)o(b)q(er)f(than)g(b)o(y)177
+519 y(section,)g(whic)o(h)g(has)g(a)g(less)g(direct)h(relationship)e(with)h
+(page)g(bulk)f(and)h(n)o(um)o(b)q(er.)20 b(By)15 b(macro)e(n)o(um)o(b)q
+(ering)h(is)177 568 y(mean)o(t)f(the)h(sequen)o(tial)g(n)o(um)o(b)q(ering)f
+(of)g(eac)o(h)h(macro)f(b)q(o)q(dy)h(part)g(through)g(the)h(whole)e(do)q
+(cumen)o(t.)177 652 y Fk(Input)h(format)g(matters)f(more)i(than)f(output)f
+(format:)k Fn(A)o(t)c(this)h(p)q(oin)o(t)e(w)o(e)i(realize)g(that)f(a)g
+(distinction)177 702 y(should)f(b)q(e)g(made)e(b)q(et)o(w)o(een)j(the)f
+Fh(input)i(format)d Fn(and)g(the)h Fh(typ)n(eset)h(output)p
+Fn(.)18 b(The)12 b(critical)f(issue)h(here)h(is)f(not)f(ho)o(w)177
+752 y(the)16 b(program)e(should)h(b)q(e)i(formatted)d(for)h(prin)o(ting,)g
+(but)g(rather)i(the)f(format)d(of)i(its)h Fi(.fw)f Fn(\014le.)22
+b(The)16 b(t)o(yp)q(eset)177 802 y(output)e(can)h(alw)o(a)o(ys)e(b)q(e)h(c)o
+(hanged)h(simply)d(b)o(y)i(\014ddling)f(with)g(W)m(ea)o(v)o(e.)18
+b(Ho)o(w)o(ev)o(er,)c(as)g(so)q(on)g(as)h(the)f(do)q(cumen)o(t)177
+851 y(structuring)g(features)f(of)f(F)m(unnelW)m(eb)g(are)h(\014xed,)f(they)h
+(will)e(b)q(e)i(used)h(in)e(dozens)h(or)f(h)o(undreds)i(of)e(do)q(cumen)o(ts)
+177 901 y(and)j(it)g(will)f(b)q(e)i(v)o(ery)g(di\016cult)f(indeed)h(to)f(c)o
+(hange)h(them.)21 b(Therefore,)c(the)f(imp)q(ortan)o(t)e(thing)g(is)i(to)f
+(pro)o(vide)177 951 y(as)f(sensible)h(and)f(expressiv)o(e)h(a)f
+Fi(.fw)f Fn(format)f(as)i(p)q(ossible.)177 1035 y(It)d(is)g(therefore)h(a)e
+(separate)i(decision)f(as)g(to)f(whether)i(w)o(e)f(should)g(n)o(um)o(b)q(er)f
+(macros)g(b)o(y)g(section)h(or)g(b)o(y)g(sequence)177 1085
+y(n)o(um)o(b)q(er.)17 b(The)e(imp)q(ortan)o(t)d(thing)h(is)h(to)g(address)h
+(the)f(format)f(and)g(rules)i(for)e(the)i(expression)g(of)e(structure.)177
+1168 y Fk(Naming)k(sections:)i Fn(The)d(naming)d(of)i(sections)h(requires)h
+(some)d(though)o(t.)22 b(In)16 b(man)o(y)d(cases)k(\(esp)q(ecially)e(in)177
+1218 y(the)k(case)g(of)e(high-lev)o(el)g(sections\))i(the)f(writer)h(will)d
+(pro)o(vide)i(an)g(explicit)f(name)g(for)h(a)f(section.)31
+b(In)18 b(other)177 1268 y(cases,)d(pro)o(vision)e(of)g(suc)o(h)h(a)g(name)e
+(will)h(merely)g(duplicate)g(the)i(name)d(of)h(the)i(macro)d(con)o(tained)i
+(within)f(the)177 1318 y(section.)23 b(It)15 b(therefore)i(mak)o(es)d(sense)j
+(to)e(allo)o(w)e(the)j(user)g(to)f(omit)f(the)h(name)f(from)g(a)h(section,)g
+(with)g(W)m(ea)o(v)o(e)177 1368 y(naming)10 b(the)k(section)f(after)g(the)g
+(\014rst)h(macro)d(de\014nition)h(in)g(the)i(section.)k(If)12
+b(a)h(macro)e(is)h(unnamed)g(and)g(there)177 1417 y(is)i(no)g(macro)e(in)i
+(the)g(section,)g(an)g(error)h(can)f(b)q(e)g(generated.)177
+1501 y(All)f(these)j(though)o(ts)e(lead)f(to)h(the)g(follo)o(wing)e(sc)o
+(heme:)239 1640 y Fm(\017)21 b Fn(Do)q(cumen)o(ts)13 b(will)g(b)q(e)h
+(hierarc)o(hically)g(structured)i(using)d Fi(@A)p Fn(,)g Fi(@B)h
+Fn(etc.)239 1741 y Fm(\017)21 b Fn(Eac)o(h)14 b(section)h(can)f(b)q(e)g(giv)o
+(en)g(a)f(name)g(delimited)f(b)o(y)i Fi(@<@>)p Fn(.)239 1842
+y Fm(\017)21 b Fn(Sections)15 b(that)f(do)f(not)h(ha)o(v)o(e)g(names)f
+(inherit)h(the)g(name)f(of)g(their)h(\014rst)h(macro.)239 1943
+y Fm(\017)21 b Fn(If)13 b(a)h(section)h(do)q(es)f(not)g(ha)o(v)o(e)g(a)f
+(name)g(or)h(a)g(macro,)e(it)h(is)h(erroneous.)239 2045 y Fm(\017)21
+b Fn(Sections)15 b(will)d(b)q(e)j(n)o(um)o(b)q(ered)e(hierarc)o(hically)g
+(either)i(b)o(y)f(F)m(unnelW)m(eb)f(or)h(b)o(y)g(T)1551 2054
+y(E)1574 2045 y(X.)239 2146 y Fm(\017)21 b Fn(Macro)12 b(b)q(o)q(dy)f(parts)h
+(will)e(b)q(e)i(n)o(um)o(b)q(ered)f(sequen)o(tially)g(b)o(y)g(F)m(unnelW)m
+(eb)g(and)h(cross)g(referenced)i(b)o(y)d(these)281 2196 y(n)o(um)o(b)q(ers.)
+177 2334 y(All)i(this)h(results)h(in)f(a)f(system)h(whic)o(h:)239
+2473 y Fm(\017)21 b Fn(Pro)o(vides)14 b(a)g(hierarc)o(hical)g(do)q(cumen)o(t)
+f(structuring)i(capabilit)o(y)m(.)239 2574 y Fm(\017)21 b Fn(Is)14
+b(t)o(yp)q(esetter)i(indep)q(enden)o(t.)239 2676 y Fm(\017)21
+b Fn(Do)q(es)14 b(not)g(require)h(duplication)e(b)q(et)o(w)o(een)i(heading)e
+(and)h(macro)f(names.)239 2777 y Fm(\017)21 b Fn(Separates)14
+b(the)f(heading)f(and)h(macro)e(systems)i(so)f(that)h(W)m(ea)o(v)o(e)f(can)h
+(b)q(e)g(con\014gured)h(at)e(a)g(later)h(date)g(to)281 2827
+y(cross)i(reference)h(in)e(di\013eren)o(t)h(w)o(a)o(ys)e(without)h(requiring)
+f(input)h(\014les)g(to)g(b)q(e)h(rew)o(ork)o(ed.)1042 2940
+y(24)p eop
+%%Page: 25 26
+25 25 bop 177 42 a Fe(1.11)70 b(Diagnostic)22 b(Messages)177
+157 y Fn(In)14 b(F)m(unnelW)m(eb,)f(all)g(error)i(messages)f(commence)f(with)
+h(an)g(indicator)f(indicating)g(the)i(sev)o(erit)o(y)g(of)e(the)i(error)177
+207 y(message.)j(Here)d(are)f(some)f(of)h(the)g(formats)e(that)i(I)g(in)o(v)o
+(estigated)g(b)q(efore)h(settling)e(on)h(the)h(\014nal)e(format:)177
+323 y Fi(W--Error)20 b(creating)g(sloth.)177 373 y(E--Error)g(opening)h
+(output)f(file.)177 423 y(S--I'm)h(a)g(teapot.)177 473 y(F--Can't)f(open)h
+(output)g(file.)177 572 y(W-Error)g(creating)f(sloth.)177 622
+y(E-Error)h(opening)f(output)g(file.)177 672 y(S-I'm)h(a)h(teapot.)177
+722 y(F-Can't)f(open)f(output)h(file.)177 822 y(W:Error)g(creating)f(sloth.)
+177 871 y(E:Error)h(opening)f(output)g(file.)177 921 y(S:I'm)h(a)h(teapot.)
+177 971 y(F:Can't)f(open)f(output)h(file.)177 1071 y(W:)h(Error)e(creating)g
+(sloth.)152 b(--)21 b(Format)g(chosen.)177 1120 y(E:)h(Error)e(opening)h
+(output)f(file.)177 1170 y(S:)i(I'm)f(a)g(teapot.)177 1220
+y(F:)h(Can't)e(open)h(output)g(file.)177 1320 y(War-Error)f(creating)g
+(sloth.)177 1369 y(Err-Error)g(opening)g(output)h(file.)177
+1419 y(Sev-I'm)g(a)g(teapot.)177 1469 y(Fat-Can't)f(open)h(output)g(file.)177
+1569 y(W-Old)g(fashioned)f(feature.)177 1668 y(W-Old)h(fashioned)f(feature.)
+177 1768 y(W--Old)h(fashioned)f(feature.)177 1868 y(W:)i(Old)f(fashioned)f
+(feature.)177 1967 y(W:Old)h(fashioned)f(feature.)177 2129
+y Fe(1.12)70 b(Summary)177 2245 y Fn(This)16 b(rather)i(unstructured)g(c)o
+(hapter)g(has)e(addressed)i(some)e(of)f(the)i(k)o(ey)g(design)f(decisions)h
+(of)f(F)m(unnelW)m(eb.)177 2295 y(In)e(man)o(y)e(cases,)j(the)g(alternativ)o
+(es)f(ha)o(v)o(e)g(b)q(een)h(unpleasan)o(t,)e(but)h(I)g(am)f(con\014den)o(t)h
+(that)g(in)g(all)f(cases,)h(a)g(fully)177 2345 y(w)o(ork)n(able)f(solution)g
+(has)h(b)q(een)h(found.)1042 2940 y(25)p eop
+%%Page: 26 27
+26 26 bop 1042 2940 a Fn(26)p eop
+%%Page: 27 28
+27 27 bop 177 375 a Ff(Chapter)34 b(2)177 606 y Fl(F)-10 b(unnelW)g(eb)41
+b(Implemen)m(tation)177 869 y Fe(2.1)70 b(In)n(tro)r(duction)177
+982 y Fn(This)13 b(c)o(hapter)g(con)o(tains)g(notes)g(on)g(the)g(actual)f(C)h
+(co)q(de)g(that)g(implemen)o(ts)d(F)m(unnelW)m(eb)i(V3.)18
+b(This)12 b(c)o(hapter)i(is)177 1032 y(rather)h(patc)o(h)o(y)m(.)20
+b(It)14 b(has)h(acted)g(mainly)d(as)i(a)h(dumping)d(ground)i(for)h(ideas)f
+(that)h(I)f(b)q(othered)i(to)e(write)h(ab)q(out)177 1082 y(during)f(dev)o
+(elopmen)o(t.)177 1241 y Fe(2.2)70 b(History)22 b(of)i(F)-6
+b(unnelW)g(eb)22 b(Implemen)n(tati)o(ons)177 1354 y Fn(The)16
+b(\014rst)h(implemen)o(tation)12 b(of)k(F)m(unnelW)m(eb)f(\(F)m(unnelW)m(eb)g
+(V1\))h(w)o(as)g(written)g(in)g(Ada)g(in)f(Decem)o(b)q(er)h(1986.)177
+1404 y(The)f(pro)r(ject)h(w)o(as)e(initially)e(canned)j(as)g(requiring)f(to)q
+(o)g(m)o(uc)o(h)g(time,)f(but)h(w)o(as)h(resurrected)i(when)e(I)g(decided)177
+1454 y(to)e(commit)d(to)k(Ada)p Fk([USDOD83])d Fn(and)i(realized)h(that)f(I)g
+(needed)i(a)e(program)f(to)h(write)g(to)g(help)g(me)g(to)g(learn)177
+1504 y(Ada.)18 b(F)m(unnelW)m(eb)13 b(V1)h(w)o(as,)g(in)f(fact,)g(m)o(y)g
+(\014rst)h(Ada)g(program.)i(It)e(to)q(ok)g(ab)q(out)g(one)g(mon)o(th)e(to)i
+(write.)177 1576 y(F)m(unnelW)m(eb)21 b(V1)g(w)o(as)g(used)h(in)o(tensiv)o
+(ely)f(b)o(y)g(m)o(yself)e(to)j(write)f(Ada)g(programs)f(from)g(Jan)o(uary)h
+(1986)f(to)177 1626 y(July)e(1989)f(at)h(whic)o(h)g(time)f(I)h(\014nished)h
+(m)o(y)e(Ph.D.)g(and)h(lost)g(access)i(to)e(the)h(V)-5 b(AX.)18
+b(During)g(this)g(time)f(at)177 1676 y(least)f(t)o(w)o(en)o(t)o(y)g(thousand)
+g(lines)f(of)g(co)q(de)h(w)o(ere)h(generated)g(using)e(F)m(unnelW)m(eb.)23
+b(Hardly)15 b(an)o(y)o(one)h(but)f(m)o(yself)177 1726 y(used)g(F)m(unnelW)m
+(eb.)177 1798 y(After)f(losing)f(access)i(to)e(Ada)h(and)f(the)h(V)m(ax)f
+(\(and)g(hence)i(to)e(F)m(unnelW)m(eb\),)g(I)g(w)o(as)h(forced)g(bac)o(k)f
+(to)h(program-)177 1848 y(ming)9 b(the)i(non-literate)g(w)o(a)o(y)m(.)16
+b(F)m(rom)9 b(time)g(to)i(time)e(I)i(found)g(that)f(I)h(needed)h(to)f(use)h
+(some)e(of)g(m)o(y)f(old)h(programs)177 1898 y(that)15 b(I)f(had)h(written)g
+(using)f(Ada)h(and)f(F)m(unnelW)m(eb.)19 b(I)c(knew)g(that)f(Ada)h(w)o(ould)f
+(b)q(ecome)g(a)o(v)n(ailable)e(on)j(more)177 1947 y(mac)o(hines,)e(but)h
+(certainly)g(F)m(unnelW)m(eb)g(w)o(ouldn't.)j(I)d(recognised)h(a)f(strong)g
+(need)h(for)e(a)h(p)q(ortable)g(v)o(ersion)g(of)177 1997 y(F)m(unnelW)m(eb)g
+(written)g(in)f(C)h(but)g(didn't)g(ha)o(v)o(e)f(the)i(time)d(or)i(energy)h
+(to)f(create)h(one.)177 2070 y(Ab)q(out)20 b(this)g(time)f(\(late)h(1989\),)g
+(Da)o(vid)f(Hulse,)i(at)f(the)g(time)f(a)g(studen)o(t)i(in)f(Computer)f
+(Science)i(at)f(the)177 2119 y(Univ)o(ersit)o(y)c(of)f(Adelaide,)h(v)o(olun)o
+(teered)h(to)e(translate)h(the)h(4000)e(line)g(Ada)h(v)o(ersion)g(of)f(F)m
+(unnelW)m(eb)g(in)o(to)g(C.)177 2169 y(T)m(o)e(m)o(y)e(kno)o(wledge)j(this)f
+(translation)g(pro)q(cess)i(to)q(ok)e(ab)q(out)g(three)i(w)o(eeks)f(\(in)f
+(Decem)o(b)q(er)h(1989\).)j(The)d(result)177 2219 y(w)o(as)g(called)g(F)m
+(unnelW)m(eb)f(V2)h(and)f(w)o(as)h(formally)d(signed)j(in)o(to)f(the)i
+(public)e(domain)f(on)i(5)f(Ma)o(y)h(1992.)177 2291 y(In)k(general,)h(Da)o
+(vid)d(Hulse)j(did)e(a)h(go)q(o)q(d)g(job.)29 b(Ho)o(w)o(ev)o(er,)19
+b(the)g(resultan)o(t)f(co)q(de)h(su\013ered)h(from)c(one)i(or)g(few)177
+2341 y(serious)d(defects,)g(the)f(most)f(serious)i(of)e(whic)o(h)h(w)o(as)f
+(a)h(lac)o(k)f(of)h(p)q(ortabilit)o(y)m(.)177 2414 y(Lac)o(k)c(of)g(p)q
+(ortabilit)o(y)f(of)g(the)i(C)f(co)q(de,)i(com)o(bined)c(with)i(the)h(need)g
+(for)f(a)g(rather)h(solid)f(design)g(review,)h(com)o(bined)177
+2463 y(with)17 b(the)g(need)h(to)e(strengthen)j(the)e(program)e(to)i(bring)f
+(it)g(up)h(to)g(pro)q(duction)g(standard,)g(resulted)h(in)e(m)o(y)177
+2513 y(p)q(erforming)10 b(a)i(complete)f(rew)o(orking)g(of)g(the)i(co)q(de.)
+18 b(The)12 b(C)g(co)q(de)g(w)o(as)g(en)o(tirely)m(,)f(but)h(incremen)o
+(tally)m(,)e(replaced)177 2563 y(or)20 b(reformatted.)36 b(The)21
+b(co)q(de)f(w)o(as)g(also)g(strengthened)i(and)e(new)g(features)h(w)o(ere)g
+(added.)37 b(This)20 b(pro)q(cess)177 2613 y(to)q(ok)d(ab)q(out)h(t)o(w)o(o)f
+(mon)o(ths)f(\(No)o(v)o(em)o(b)q(er)h(and)h(Decem)o(b)q(er)g(1991\).)28
+b(A)17 b(further)i(t)o(w)o(o)e(mon)o(ths)f(\(appro)o(x\))i(w)o(ere)177
+2663 y(sp)q(en)o(t)13 b(writing)f(do)q(cumen)o(tation,)f(constructing)i(a)f
+(regression)h(test)h(suite,)e(p)q(orting)g(the)h(program)e(to)h(di\013eren)o
+(t)177 2712 y(mac)o(hines,)h(and)g(sorting)h(out)g(the)g(legal)f(issues)i(in)
+o(v)o(olv)o(ed)e(in)g(its)h(release.)177 2785 y(I)g(w)o(ould)f(lik)o(e)h(to)g
+(tak)o(e)g(this)g(opp)q(ortunit)o(y)g(to)g(record)h(a)f(debt)g(of)g
+(gratitude)g(to)g(Da)o(vid)f(Hulse)h(who)g(translated)177 2835
+y(F)m(unnelW)m(eb)f(from)e(Ada)i(to)f(C.)h(Although)f(m)o(y)f(rew)o(orking)i
+(of)f(his)h(C)g(co)q(de)h(obliterated)f(most)e(of)i(his)f(co)q(de,)i(his)1042
+2940 y(27)p eop
+%%Page: 28 29
+28 28 bop 177 42 a Fn(translation)14 b(w)o(as)g(piv)o(otal)e(to)i(the)h(dev)o
+(elopmen)o(t)e(pro)q(cess.)21 b(Without)14 b(his)g(e\013ort)h(in)e(mo)o(ving)
+f(from)g(Ada)i(to)g(C,)177 91 y(I'm)f(not)j(sure)g(that)f(I)g(w)o(ould)g(ha)o
+(v)o(e)g(m)o(ustered)g(the)h(energy)g(and)f(time)f(to)h(complete)g(the)h(pro)
+q(cess)h(and)e(bring)177 141 y(F)m(unnelW)m(eb)f(up)f(to)h(its)g(curren)o(t)h
+(standard.)177 308 y Fe(2.3)70 b(Wh)n(y)23 b(F)-6 b(unnelW)g(eb)23
+b(W)-6 b(asn't)24 b(Used)e(to)h(W)-6 b(rite)22 b(Itself)177
+426 y Fn(After)d(Kn)o(uth)g(created)g(the)g(W)m(eb)f(literate)h(prepro)q
+(cessing)h(system,)e(he)h(re-wrote)g(it)f(using)g(W)m(eb)g(and)g(dis-)177
+476 y(tributed)13 b(the)g(source)g(co)q(de)g(in)f(W)m(eb)g(source)i(form.)h
+(T)m(o)d(allo)o(w)e(the)j(W)m(eb)f(source)h(co)q(de)h(to)e(b)q(e)g(tangled)g
+(b)o(y)g(users)177 526 y(not)i(y)o(et)g(ha)o(ving)f(a)g(cop)o(y)h(of)g(W)m
+(eb,)f(he)h(also)f(included)h(the)h(tangled)e(P)o(ascal)h(co)q(de)h(for)e
+(the)i(T)m(angler.)177 602 y(While)j(this)g(approac)o(h)h(is)f(heroic)h(and)g
+(serv)o(es)h(to)e(con)o(v)o(ey)h(a)f(commitm)o(en)o(t)e(and)i(a)g
+(con\014dence)i(in)f(literate)177 652 y(programming,)10 b(it)j(seemed)h(to)g
+(me)e(that)i(writing)f(F)m(unnelW)m(eb)g(in)g(F)m(unnelW)m(eb)g(w)o(ould)g
+(simply)f(b)q(e)i(asking)f(for)177 702 y(trouble.)18 b(F)m(or)11
+b(a)g(start,)i(it)e(w)o(ould)g(b)q(e)h(v)o(ery)g(hard)g(to)g(mo)q(dify)d(an)o
+(y)i(feature)i(of)e(F)m(unnelW)m(eb)g(that)h(had)f(b)q(een)i(used)177
+752 y(to)18 b(write)g(F)m(unnelW)m(eb,)f(and)h(the)g(though)o(t)g(of)f(what)g
+(w)o(ould)g(happ)q(en)h(if)f(the)h(w)o(orking)f(executable)i(b)q(ecame)177
+801 y(inop)q(erativ)o(e)14 b(for)f(some)g(reason)i(do)q(es)g(not)e(b)q(ear)i
+(thinking)e(up)q(on.)177 878 y(One)18 b(million)c(billion)h(computer)i
+(programs)f(w)o(ere)j(written)f(in)e(the)i(non-literate)g(st)o(yle)f(b)q
+(efore)h(F)m(unnelW)m(eb)177 928 y(w)o(as)c(created.)20 b(Wh)o(y)13
+b(not)h(one)g(more?)177 1095 y Fe(2.4)70 b(Co)r(ding)22 b(St)n(yle)177
+1213 y Fn(Although)15 b(F)m(unnelW)m(eb)g(w)o(asn't)g(co)q(ded)h(under)g(an)o
+(y)f(particular)g(co)q(ding)g(standard,)h(it)f(w)o(as)g(co)q(ded)h(in)f
+(accor-)177 1263 y(dance)c(with)e(a)g(fairly)g(strict)h(p)q(ersonal)g(st)o
+(yle)g(of)f(C)g(whic)o(h)h(dev)o(elop)q(ed)g(during)g(the)g(dev)o(elopmen)o
+(t)f(of)g(F)m(unnelW)m(eb.)177 1312 y(This)17 b(st)o(yle)f(w)o(as)h
+(subsequen)o(tly)h(em)o(b)q(o)q(died)d(in)h(a)g(real)h(C)f(co)q(ding)h
+(standard)g(prepared)g(for)g(the)g(South)f(Aus-)177 1362 y(tralian)10
+b(Go)o(v)o(ernmen)o(t)g(Departmen)o(t)h(of)f(Lands.)935 1347
+y Fd(1)971 1362 y Fn(Unfortunately)m(,)h(F)m(unnelW)m(eb)g(w)o(as)g(not)g
+(formally)d(dev)o(elop)q(ed)177 1412 y(under)16 b(the)g(standard)g(and)f(so)g
+(some)g(holes)g(remain)f(in)h(F)m(unnelW)m(eb's)g(co)q(ding)g(st)o(yle.)22
+b(This)15 b(section)h(aims)e(to)177 1462 y(describ)q(e)i(some)d(of)g(the)i
+(more)d(imp)q(ortan)o(t)h(asp)q(ects)i(of)e(the)i(co)q(ding)f(st)o(yle.)177
+1538 y Fk(P)o(ortabili)o(t)n(y:)27 b Fn(This)19 b(w)o(as)g(a)g(ma)r(jor)e
+(goal)h(of)h(the)g(F)m(unnelW)m(eb)g(implemen)o(tatio)o(n.)31
+b(Tw)o(o)19 b(excellen)o(t)h(b)q(o)q(oks)177 1588 y(guided)f(this)g(mo)o(v)o
+(e)e(to)i(p)q(ortabilit)o(y)m(.)31 b(They)19 b(w)o(ere)h Fk([Rabino)o
+(witz90])c Fn(\(whic)o(h)j(deals)g(with)f(C)h(co)q(de)h(itself)s(\))177
+1638 y(and)15 b Fk([Horton90])g Fn(\(whic)o(h)g(deals)h(with)f(the)h(p)q
+(ortabilit)o(y)e(of)g(v)n(arious)h(library)g(calls\).)22 b(Other)16
+b(w)o(orks)g(suc)o(h)g(as)177 1687 y Fk([Kernighan88])c Fn(and)i
+Fk([ANSI])g Fn(w)o(ere)h(also)e(helpful.)177 1764 y Fk(Iden)o(ti\014ers:)i
+([Rabino)o(witz90])p Fn(length)10 b(sp)q(eci\014es)k(that)f(for)f(wide)g(p)q
+(ortabilit)o(y)m(,)f(iden)o(ti\014ers)i(of)f(blo)q(c)o(k)g(and)h(\014le)177
+1814 y(scop)q(e)j(should)f(b)q(e)h(unique)f(to)g(eigh)o(t)f(c)o(haracters,)j
+(and)e(iden)o(ti\014ers)h(of)e(program)f(scop)q(e)j(should)f(b)q(e)h(unique)f
+(to)177 1863 y(six)d(c)o(haracters.)19 b(I)11 b(ha)o(v)o(e)h(gone)f(further)i
+(in)e(F)m(unnelW)m(eb)g(and)h(actually)e(made)h(these)i(restrictions)g
+(actual)e(limits)177 1913 y(on)j(iden)o(ti\014er)g(length.)177
+1989 y(Because)k(names)d(m)o(ust)g(b)q(e)i(so)f(short,)g(a)g(system)g(of)f
+(abbreviations)h(w)o(as)g(dev)o(elop)q(ed)g(to)g(organize)g(the)h(iden-)177
+2039 y(ti\014ers)f(used)h(within)d(F)m(unnelW)m(eb.)23 b(Eac)o(h)15
+b(abbreviation)g(consists)i(of)d(a)i(letter)g(pair.)22 b(Here)17
+b(are)f Fh(some)f Fn(of)g(the)177 2089 y(abbreviations)f(used:)177
+2209 y Fi(bp)22 b(-)f(Body)g(Part.)177 2259 y(cm)h(-)f(Compare.)f(Used)h(to)h
+(prefix)e(comparison)g(routines)g(that)h(return)g([-1,0,1].)177
+2309 y(dc)h(-)f(Document)f(component.)177 2359 y(dm)i(-)f(Dump)g(package.)177
+2408 y(el)h(-)f(Element.)177 2458 y(eq)h(-)f(Equal.)g(Used)g(to)g(prefix)g
+(comparison)e(routines)h(that)h(return)g(a)h(boolean.)177 2508
+y(ex)g(-)f(Expression.)177 2558 y(f)44 b(-)21 b(Global)g(files.)177
+2608 y(ll)h(-)f(List)g(of)g(lists.)177 2658 y(ln)h(-)f(Line)g(record.)177
+2707 y(ls)h(-)f(List)g(Package.)177 2757 y(lr)h(-)f(Lister)g(package.)p
+177 2796 709 2 v 223 2823 a Fc(1)241 2835 y Fb(The)11 b(standard)e(is)j
+(curren)o(tly)d(una)o(v)n(ailable)o(,)g(but)i(is)g(lik)o(ely)f(to)h(b)q(e)g
+(released)f(or)h(published)e(ev)o(en)o(tually)m(.)1042 2940
+y Fn(28)p eop
+%%Page: 29 30
+29 29 bop 177 42 a Fi(ma)22 b(-)f(Macro.)177 91 y(mc)h(-)f(Macro)g(Call.)177
+141 y(mn)h(-)f(Macro)g(Name.)177 191 y(op)h(-)f(Options)f(package.)177
+241 y(pr)i(-)f(Parser.)177 291 y(ps)h(-)f(Position)f(record.)177
+340 y(sc)i(-)f(Scrap)g(record.)177 390 y(sn)h(-)f(Section.)177
+440 y(tb)h(-)f(Table)g(package.)177 490 y(ty)h(-)f(Typesetter)f(directive.)
+177 540 y(wf)i(-)f(Write)g(file)g(package.)177 589 y(wl)h(-)f(Write)g(with)g
+(EOL)g(\(misc.c\).)177 639 y(wr)h(-)f(Write)217 b(\(misc.c\).)177
+756 y Fk(P)o(oin)o(ters:)15 b Fn(V)m(ariables)f(or)g(t)o(yp)q(es)g(denoting)g
+(p)q(oin)o(ters)g(start)h(with)e(\\)p Fi(p)p 1292 756 14 2
+v 16 w Fn(".)177 831 y Fk(T)o(yp)q(es:)18 b Fn(Names)13 b(denoting)g(t)o(yp)q
+(es)h(end)g(in)f(\\)p 898 831 V 15 w Fi(t)p Fn(".)18 b(Th)o(us,)13
+b(a)g(t)o(yp)q(e)h(for)f(a)g(p)q(oin)o(ter)g(to)g(a)g(table)g(w)o(ould)g(b)q
+(e)h(named)177 881 y Fi(p)p 202 881 V 16 w(tb)p 262 881 V 15
+w(t)p Fn(.)177 956 y Fk(File)j(names:)23 b Fn(All)16 b(\014les)h(used)g(in)f
+(F)m(unnelW)m(eb)g(ha)o(v)o(e)g(\014le)g(names)g(that)h(are)f(from)f(one)i
+(to)f(eigh)o(t)g(c)o(haracters)177 1005 y(long)d(and)g(\014le)g(extensions)i
+(that)e(are)h(from)e(one)h(to)h(three)g(c)o(haracters)i(long.)h(This)c
+(ensures)i(that)f(the)g(\014les)g(can)177 1055 y(b)q(e)h(p)q(ortably)e(mo)o
+(v)o(ed)f(to)i(all)f(kinds)h(of)f(mac)o(hines,)f(ev)o(en)j(MSDOS!)177
+1218 y Fe(2.5)70 b(Use)22 b(of)h(Memory)177 1334 y Fn(F)m(unnelW)m(eb)15
+b(is)h(not)g(a)g(memory-stressed)f(program.)23 b(Ho)o(w)o(ev)o(er,)16
+b(during)f(its)h(dev)o(elopmen)o(t,)f(problems)g(with)177 1384
+y(the)g(managemen)o(t)d(of)h(memory)f(seemed)j(to)f(crop)g(up)h(again)e(and)h
+(again.)k(This)c(section)h(do)q(cumen)o(ts)f(some)f(of)177
+1434 y(these)i(problems)e(and)h(the)h(solutions)e(adopted.)177
+1509 y(There)22 b(are)e(three)i(places)e(where)i(memory)17
+b(can)k(b)q(e)g(obtained:)30 b(the)21 b(heap,)g(the)g(stac)o(k,)h(and)e(from)
+e(static)177 1558 y(v)n(ariables.)f(The)e(follo)o(wing)c(three)k(sections)g
+(deal)f(with)f(eac)o(h)i(of)e(these)i(areas.)177 1721 y Fe(2.6)70
+b(The)22 b(Heap)177 1837 y Fn(One)17 b(of)f(the)h(great)g(frustrations)f(of)g
+(b)q(eing)h(a)f(user)h(is)f(to)h(\014nd)f(that)h(a)f(computer)g(program)e(is)
+j(complaining)177 1887 y(ab)q(out)d(lac)o(k)f(of)g(memory)f(when)i(one)g(kno)
+o(ws)g(full)e(w)o(ell)i(that)g(one)g(has)g(allo)q(cated)f(at)h(least)g(ten)g
+(times)f(as)h(m)o(uc)o(h)177 1937 y(memory)f(to)j(the)g(program)e(as)i(it)f
+(w)o(ould)g(ev)o(er)i(need)f(to)g(do)f(its)h(job.)23 b(The)16
+b(reason)g(for)g(suc)o(h)g(error)h(messages)177 1987 y(usually)h(has)h(to)g
+(do)f(with)g(the)i(programmer)c(setting)j(a)g(\014xed)g(\\reasonable")g
+(limit)d(to)i(a)h(particular)f(data)177 2037 y(structure)f(and)d(then)h(lo)q
+(c)o(king)e(it)i(up)f(in)o(to)g(an)g(arra)o(y)g(whose)h(b)q(ound)g(is)f(sp)q
+(eci\014ed)i(b)o(y)e(a)g(constan)o(t.)21 b(While)13 b(the)177
+2086 y(use)i(of)e(arra)o(ys)h(can)g(increase)h(the)f(sp)q(eed)h(of)e(a)h
+(program,)d(it)i(also)h(means)e(that)i(the)h(user)f(cannot)g(increase)h(the)
+177 2136 y(capacit)o(y)f(of)g(the)h(program)e(without)h(obtaining)f(the)i
+(source)h(co)q(de)f(and)g(recompiling)d(it,)i(whic)o(h)g(is)g(usually)g(a)177
+2186 y(daun)o(ting)f(option.)177 2261 y(The)g(alternativ)o(e)g(is)f(to)h(use)
+h(the)f(heap)g(for)f(all)g(data)g(structures)j(that)e(can)g(gro)o(w)f(in)h
+(prop)q(ortion)f(to)h(the)g(size)g(of)177 2311 y(the)f(user's)g(input.)17
+b(This)11 b(rule)h(has)f(b)q(een)h(follo)o(w)o(ed)e(rigorously)g(in)h(F)m
+(unnelW)m(eb.)16 b(This)11 b(means)g(that)g(as)g(memory)177
+2360 y(spaces)h(increase,)g(users)g(will)d(b)q(e)i(able)g(to)f(hand)h(their)f
+(v)o(ersion)h(of)f(F)m(unnelW)m(eb)g(more)g(memory)e(without)i(ha)o(ving)177
+2410 y(to)k(recompile)f(it.)998 2510 y(|)h Fm(x)g Fn(|)177
+2635 y(Some)i(problems)f(arose)j(early)e(on)h(the)g(Macin)o(tosh)g(in)f(the)h
+(use)h(of)e(the)h(heap.)27 b(It)17 b(seems)g(that)f(some)g(of)g(the)177
+2685 y(allo)q(cations)i(I)i(w)o(as)f(attempting)f(to)h(mak)o(e)f(w)o(ere)i
+(failing)d(for)i(some)g(obscure)i(reason,)f(p)q(ossibly)f(m)o(y)f(fault.)177
+2735 y(Whatev)o(er)c(it)f(w)o(as,)g(it)g(w)o(en)o(t)g(a)o(w)o(a)o(y)g(when)g
+(I)h(replaced)g(direct)g(calls)f(to)g Fi(malloc)f Fn(with)h(calls)g(to)g(a)g
+(mini)e(pac)o(k)n(age)177 2785 y(I)j(wrote)g(\(called)f Fi(memory)p
+Fn(\))f(that)i(allo)q(cated)f(large)g(c)o(h)o(unks)h(of)f(memory)e(and)j
+(then)g(doled)f(out)h(small)d(pieces)k(as)177 2835 y(required)g(b)o(y)f(the)g
+(rest)h(of)e(the)i(program.)1042 2940 y(29)p eop
+%%Page: 30 31
+30 30 bop 177 42 a Fn(Ha)o(ving)13 b(a)h(pac)o(k)n(age)f(to)h(manage)e(all)h
+(the)h(memory)e(allo)q(cation)g(had)i(t)o(w)o(o)f(other)h(b)q(ene\014ts.)177
+122 y(First,)k(only)f(one)h(c)o(hec)o(k)g(w)o(as)g(required)g(in)f(the)h(en)o
+(tire)g(program)e(to)h(see)i(if)e(memory)e(had)i(run)h(out)f(\(in)g(the)177
+172 y(memory)f(pac)o(k)n(age\),)i(and)g(if)g(that)g(failed,)f(the)i(program)e
+(could)h(b)q(e)g(brough)o(t)g(to)g(a)g(screaming)g(halt.)30
+b(This)177 222 y(organization)20 b(w)o(as)g(far)g(preferable)i(to)e(ha)o
+(ving)g(eac)o(h)h(piece)g(of)f(co)q(de)i(that)f(needed)h(to)e(allo)q(cate)g
+(memory)177 272 y(ha)o(ving)13 b(to)h(c)o(hec)o(k)h(to)e(see)i(if)e
+Fi(malloc)g Fn(had)h(failed.)177 352 y(Second,)21 b(the)f(decision)g(to)f
+(construct)i(a)f(mini-shell)c(within)j(F)m(unnelW)m(eb)g(to)g(supp)q(ort)i
+(regression)f(testing)177 402 y(mean)o(t)11 b(that)h(F)m(unnelW)m(eb)g(prop)q
+(er)h(could)f(b)q(e)g(run)h(man)o(y)d(times)h(in)h(an)o(y)f(giv)o(en)h(in)o
+(v)o(o)q(cation)f(of)g(F)m(unnelW)m(eb.)17 b(As)177 452 y(a)10
+b(consequence)j(it)d(w)o(as)h(necessary)h(to)f(mak)o(e)e(sure)i(that)g(there)
+g(w)o(as)g(no)f(memory)e(leak)n(age)i(b)q(et)o(w)o(een)i(in)o(v)o(o)q
+(cations)177 502 y(of)18 b(F)m(unnelW)m(eb)h(prop)q(er.)33
+b(This)19 b(w)o(as)g(accomplished)e(b)o(y)i(rew)o(orking)g(the)g(memory)d
+(pac)o(k)n(age)j(to)f(op)q(erate)i(a)177 551 y(w)o(atermark)12
+b(system.)17 b(The)d(user)g(of)e(the)i(pac)o(k)n(age,)e(when)h(requesting)h
+(memory)m(,)c(could)i(request)j(\\temp)q(orary")177 601 y(or)g(\\p)q(ermanen)
+o(t".)22 b(If)15 b(p)q(ermanen)o(t,)g(the)h(memory)d(pac)o(k)n(age)i(forgot)f
+(that)i(it)f(had)g(allo)q(cated)g(the)h(memory)m(.)j(If)177
+651 y(temp)q(orary)m(,)12 b(the)i(memory)c(pac)o(k)n(age)j(places)h(the)g
+(allo)q(cated)f(blo)q(c)o(k)g(on)g(a)g(list.)k(There)d(w)o(as)f(then)h(a)f
+(function)g(in)177 701 y(the)f(memory)d(pac)o(k)n(age)j(that)f(could)h(b)q(e)
+g(called)f(to)g(deallo)q(cate)h(all)e(the)i(temp)q(orary)f(memory)m(.)k(Th)o
+(us,)c(so)h(long)f(as)177 751 y(all)i(requests)j(for)e(memory)d(within)i(F)m
+(unnelW)m(eb)h(prop)q(er)h(w)o(ere)g(for)e(temp)q(orary)h(memory)m(,)c(and)k
+(that)g(memory)177 800 y(w)o(as)g(freed)h(at)e(the)i(end)f(of)g(ev)o(ery)g
+(run,)g(one)g(could)g(b)q(e)g(sure)h(that)f(there)h(w)o(as)f(no)g(memory)d
+(leak)n(age.)177 981 y Fe(2.7)70 b(The)22 b(Stac)n(k)177 1105
+y Fn(F)m(or)13 b(a)f(while)g(during)h(the)g(dev)o(elopmen)o(t)f(of)g(F)m
+(unnelW)m(eb)g(a)h(particularly)f(nast)o(y)h(bug)f(pro)o(v)o(ed)h(extremely)g
+(hard)177 1155 y(to)j(\014nd.)26 b(The)17 b(symptom)c(w)o(as)j(that)h(F)m
+(unnelW)m(eb)f(w)o(ould)f(crash,)i(sometimes)e(at)h(random,)f(but)h(more)g
+(often)177 1205 y(up)q(on)h(en)o(tering)g(a)g(particular)f(function.)27
+b(In)16 b(the)i(end)f(ab)q(out)g(a)f(da)o(y)h(of)f(sp)q(eci\014c)i(debugging)
+e(w)o(as)h(required)177 1255 y(b)q(efore)e(the)f(problem)e(w)o(as)i(trac)o(k)
+o(ed)h(do)o(wn)e(to)h(a)f(stac)o(k)h(problem.)j(It)d(turned)g(out)g(that)g
+(someho)o(w)e(\(either)j(the)177 1305 y(fault)f(of)g(the)i(Macin)o(tosh)e(or)
+h(the)g(THINK)h(C)e(language)g(system\),)h(only)f(6K)g(w)o(as)h(b)q(eing)g
+(allo)q(cated)f(for)g(stac)o(k)177 1354 y(space!!!!!!!)177
+1435 y(This)f(exp)q(erience)h(led)f(me)e(immediately)e(to)k(go)f(through)g
+(the)i(en)o(tire)f(program)e(and)h(eliminate)f(\(or)h(remo)o(v)o(e)g(to)177
+1485 y(the)j(heap\))f(an)o(y)f(automatic)f(v)n(ariable)h(declarations)h(that)
+g(used)h(more)e(than)h(one)g(h)o(undred)g(or)g(so)g(b)o(ytes.)177
+1565 y(The)g(lesson)g(is)g(clearly)f(that)h(C)f(programs)g(that)g(use)i(more)
+d(than)i(a)f(few)h(thousand)f(b)o(ytes)i(of)e(stac)o(k)h(space)g(are)177
+1615 y(risking)f(their)i(p)q(ortabilit)o(y)m(.)h(All)d(large)h(data)f
+(structures)j(should)e(b)q(e)h(placed)f(in)f(the)i(heap.)177
+1796 y Fe(2.8)70 b(Static)21 b(V)-6 b(ariables)177 1920 y Fn(Static)11
+b(v)n(ariables)e(also)h(pro)o(v)o(ed)g(a)g(problem)f(on)i(the)g(Macin)o
+(tosh.)16 b(It)11 b(turns)g(out)f(that)h(the)g(Macin)o(tosh)f(THINK)h(C)177
+1970 y(compiler)g(do)q(es)h(not)g(allo)o(w)e(more)h(than)h(32K)f(of)g
+(statics)i Fh(in)g(the)g(entir)n(e)f(pr)n(o)n(gr)n(am)p Fn(.)17
+b(F)m(or)11 b(a)h(while)f(this)h(restriction)177 2020 y(w)o(as)17
+b(a)f(serious)i(threat)g(to)e(the)i(program)d(as)i(it)f(w)o(as)h(disco)o(v)o
+(ered)h(that)f(constan)o(t)g(strings)g(w)o(ere)h(included)f(in)177
+2070 y(this)d(total!)k(Ho)o(w)o(ev)o(er,)c(some)f(searc)o(hing)h(rev)o(ealed)
+h(a)e(compiler)g(option)g(that)h(remo)o(v)o(ed)f(the)i(strings)f(from)e(the)
+177 2119 y(static)i(category)m(.)177 2200 y(Nev)o(ertheless,)k(the)e(32K)g
+(limit)c(is)k(rather)g(sev)o(ere.)25 b(Again,)15 b(it)g(seems)h(that)f(for)h
+(p)q(ortabilit)o(y)e(reasons,)i(C)g(pro-)177 2250 y(grams)f(that)h(use)g(a)g
+(lot)f(of)h(static)g(v)n(ariables)f(are)h(risking)g(their)g(p)q(ortabilit)o
+(y)m(.)22 b(As)16 b(a)g(result,)h(the)f(F)m(unnelW)m(eb)177
+2300 y(co)q(de)f(a)o(v)o(oids)e(static)h(v)n(ariables)f(where)i(p)q(ossible)f
+(in)g(fa)o(v)o(our)f(of)g(the)h(heap.)177 2480 y Fe(2.9)70
+b(Implemen)n(ti)o(ng)20 b(T)-6 b(ext)23 b(Inden)n(tation)177
+2605 y Fn(A)o(t)e(one)g(p)q(oin)o(t)f(during)g(the)h(dev)o(elopmen)o(t)f(of)g
+(F)m(unnelW)m(eb,)h(text)h(inden)o(tation)e(w)o(as)g(fully)g(implem)o(en)o
+(ted.)177 2654 y(Ho)o(w)o(ev)o(er,)12 b(it)g(w)o(as)g(subsequen)o(tly)h(remo)
+o(v)o(ed)e(b)q(ecause)i(it)f(w)o(as)g(considered)h(a)f(dangerous)g(feature.)
+18 b(This)12 b(section)177 2704 y(records)17 b(the)f(w)o(a)o(y)f(in)g(whic)o
+(h)h(text)g(inden)o(tation)f(w)o(as)g(implemen)o(ted)e(so)j(that)g(if)e(the)i
+(feature)h(ev)o(er)f(has)g(to)f(b)q(e)177 2754 y(put)f(bac)o(k,)g(this)g(tec)
+o(hnique)g(can)h(b)q(e)f(used)h(again.)177 2835 y(1.)j(Create)d(a)e(new)i
+(\014eld)f(in)f(the)i Fi(sc)p 739 2835 14 2 v 15 w(t)e Fn(record)j(call)d
+Fi(sc)p 1037 2835 V 15 w(postn)p Fn(.)1042 2940 y(30)p eop
+%%Page: 31 32
+31 31 bop 308 42 a Fi(char)21 b(*sc_postn;)f(/*)h(Pointer)f(in)i(the)f(range)
+g([sc_first,sc_las)o(t+1].)236 b(*/)657 91 y(/*)21 b(It)g(is)h(the)f(minimum)
+f(possible)g(value)h(of)h(sc_postn)e(for)108 b(*/)657 141 y(/*)21
+b(which)g(EOL)g(does)g(not)g(appear)g(in)g(*sc_postn..*sc_la)o(st.)84
+b(*/)657 191 y(/*)21 b(i.e.)g(Points)g(to)g(the)g(byte)g(following)f(the)h
+(first)g(EOL)g(in)65 b(*/)657 241 y(/*)21 b(the)g(scrap)g(or)g(sc_first)f(if)
+i(EOL)f(does)g(not)g(appear.)173 b(*/)177 342 y Fn(2.)17 b(Mo)q(dify)10
+b(the)i(scanner)h(so)e(that)g(it)g(generates)i(this)e(\014eld.)18
+b(Sendtext)12 b(should)f(b)q(e)h(mo)q(di\014ed)e(so)h(that)g(it)g(accepts)177
+391 y(an)j(argumen)o(t)f(for)g(the)i Fi(p)p 581 391 14 2 v
+15 w(postn)e Fn(v)n(alue.)177 492 y Fi(LOCAL)21 b(void)g(sendtext)f
+(P_\(\(p_ps_t,char)f(*,char)h(*,char)h(*,bool\)\);)177 542
+y(LOCAL)g(void)g(sendtext\(p_tkps,p)o(_firs)o(t,p_l)o(ast,)o(p_pos)o(tn,is)o
+(_whit)o(e\))177 592 y(/*)h(Appends)e(a)h(text)g(token)g(to)h(the)f(end)g(of)
+g(the)g(token)g(list.)544 b(*/)177 642 y(/*)22 b(IN:)f(p_ps)g(is)g(a)h
+(pointer)e(to)h(a)h(position)e(structure)g(giving)h(the)g(position)f(of)h
+(the)65 b(*/)177 691 y(/*)109 b(first)20 b(character)g(of)i(the)f(token.)914
+b(*/)177 741 y(/*)22 b(IN:)f(p_first)f(and)h(p_last)g(point)g(to)g(the)g
+(first)g(and)g(last)g(byte)g(of)g(the)h(text)e(scrap.)h(*/)177
+791 y(/*)h(IN:)f(p_postn)f(has)h(the)g(same)g(definition)f(as)h(sc_postn)g
+(\(see)g(fwdata.h\).)259 b(*/)177 841 y(/*)22 b(IN:)f(is_white)f(should)g(be)
+i(set)f(to)g(TRUE)g(iff)g(scrap)g(is)h(entirely)e(whitespace.)150
+b(*/)177 891 y(p_ps_t)21 b(p_tkps;)177 941 y(char)43 b(*p_first;)177
+990 y(char)g(*p_last;)177 1040 y(char)g(*p_postn;)177 1090
+y(bool)65 b(is_white;)177 1140 y({)199 1190 y(tk_t)21 b(token;)199
+1289 y(/*)g(Empty)g(text)g(scraps)g(should)f(never)h(be)g(generated.)f(*/)199
+1339 y(assert\(p_first<=p)o(_last)o(,"sen)o(dtext)o(:)f(Text)i(scrap)g
+(bounds)f(are)h(bad."\);)199 1439 y(/*)g(If)h(ch=EOL)e(then)h(we)h(should)e
+(be)i(scanning)e(more)h(text,)f(not)i(shipping)e(it!)h(*/)199
+1488 y(assert\(ch!=EOL,"s)o(entte)o(xt:)e(Shipping)h(text)h(while)f(still)h
+(more)g(to)h(scan."\);)199 1588 y(/*)f(Check)g(that)g(p_postn)f(is)i(in)f
+(range.)g(See)g(definition)f(in)h(fwdata.h.)f(*/)199 1638 y
+(assert\(p_first<=p)o(_post)o(n)f(&&)i(p_postn<=p_last+1,)352
+1688 y("sendtext:)e(p_postn)i(is)g(out)g(of)h(range."\);)199
+1787 y(/*)f(Debug:)g(Check)g(the)g(p_postn)f(field)h(using)g(a)g(brute)g
+(force)g(check.)f(*/)199 1837 y({)221 1887 y(char)h(*i,*j;)221
+1937 y(j=p_first;)221 1987 y(for)g(\(i=p_first;i<=p_l)o(ast;i)o(++\))286
+2036 y(if)h(\(*i==EOL\))352 2086 y(j=i+1;)221 2136 y(assert\(j==p_post)o
+(n,"se)o(ndtex)o(t:)d(sc_postn)h(field)h(is)g(incorrect."\);)199
+2186 y(})199 2286 y(/*)g(Load)g(the)g(text)g(token.)g(*/)199
+2335 y(token.tk_kind)172 b(=)21 b(TK_TEXT;)199 2385 y(ASSIGN\(token.tk_p)o
+(s,*p_)o(tkps\))o(;)199 2435 y(token.tk_sc.sc_fi)o(rst)e(=)i(p_first;)199
+2485 y(token.tk_sc.sc_la)o(st)41 b(=)21 b(p_last;)199 2535
+y(token.tk_sc.sc_po)o(stn)e(=)i(p_postn;)199 2584 y(token.tk_white)150
+b(=)21 b(is_white;)199 2634 y(token.tk_parno)150 b(=)21 b(0;)199
+2684 y(ls_add\(token_list)o(,PV)e(&token\);)177 2734 y(})177
+2835 y Fn(Then)c(all)d(the)j(calls)e(to)h(sendtext)h(ha)o(v)o(e)f(to)g(b)q(e)
+g(c)o(hanged:)1042 2940 y(31)p eop
+%%Page: 32 33
+32 32 bop 177 42 a Fi(/*)22 b(@)f(instructs)f(FunnelWeb)g(to)h(replace)g(the)
+g(special)f(construct)g(with)h(the)g(*/)177 91 y(/*)h(special)e(character.)g
+(Luckily)g(one)h(appears)f(just)h(before)g(the)g(@)h(!!)108
+b(*/)177 141 y(/*)22 b(Note:)e(FALSE)h(is)g(OK)h(because)e(space)h(is)g(not)g
+(a)h(legal)f(specialch.)150 b(*/)177 191 y(/*)22 b(Note:)e(Setting)h
+(parameter)f(p_postn)g(to)h(p_ch-1)g(is)g(OK)h(as)f(EOL)g(is)h(not)f(a)g(*/)
+177 241 y(/*)152 b(legal)21 b(specialch.)913 b(*/)177 291 y
+(sendtext\(&ps_spec,)o(p_ch-)o(1,p_c)o(h-1,p)o(_ch-1)o(,FAL)o(SE\);)177
+340 y(break;)177 440 y(/*)22 b(+)f(instructs)f(FunnelWeb)g(to)h(insert)g(an)g
+(EOL.)g(We)h(can't)e(look)h(to)h(the)f(end)g(of)g(*/)177 490
+y(/*)h(the)f(previous)f(line)h(to)g(find)g(an)h(EOL)f(as)g(this)g(might)g(be)
+g(the)g(first)g(line.)64 b(*/)177 540 y(/*)22 b(Running)e(ahead)h(to)g(the)g
+(end)g(of)h(the)f(line)g(is)g(expensive,)f(and)h(having)g(the)64
+b(*/)177 589 y(/*)22 b(liner)e(mini-package)g(maintain)g(a)h(variable)f(for)i
+(it)f(would)g(be)g(extra)173 b(*/)177 639 y(/*)22 b(housekeeping.)d(Instead)h
+(of)h(all)h(this,)e(we)i(just)f(point)f(to)i(a)f(static.)151
+b(*/)177 689 y({CONST)21 b(static)f(char)h(stateol)g(=)g(EOL;)199
+739 y(sendtext\(&ps_spec)o(,&sta)o(teol,)o(&stat)o(eol,\()o(&sta)o(teol\))o
+(+1,TR)o(UE\);})177 789 y(break;)177 888 y(/*)h(If)f(we)g(hit)g(something)f
+(that)h(ends)g(a)h(text)f(token)g(*/)177 938 y(/*)h(then)f(we)g(can)g
+(transmit)f(a)i(white)f(text)g(token.)64 b(*/)177 988 y(if)22
+b(\(ch==specialch)c(||)k(ch==EOFCH\))243 1038 y({sendtext\(&ps_s)o(tart,)o
+(p_fir)o(st,p_)o(ch-1,)o(MAX\()o(p_sol)o(,p_fi)o(rst\),)o(TRUE\))o(;)d
+(return;})177 1137 y(/*)j(Otherwise)d(we)j(have)f(some)g(more)g
+(\(non-white\))e(text)i(to)h(scan.)e(*/)177 1187 y(/*)i(We)f(can)g(then)g
+(send)g(a)h(non-white)e(text)h(token.)303 b(*/)177 1237 y(while)21
+b(\(ch!=specialch)e(&&)i(ch!=EOFCH\))243 1287 y(NEXTCH;)177
+1337 y(sendtext\(&ps_start)o(,p_fi)o(rst,p)o(_ch-1)o(,MAX\()o(p_so)o(l,p_f)o
+(irst\))o(,FALS)o(E\);)177 1442 y Fn(The)14 b(dump)f(co)q(de)i(needs)g(to)f
+(b)q(e)g(c)o(hanged)h(to)q(o!)352 1548 y Fi(wf_str\(p_wf,"\\")o("\);)177
+1597 y(assert\(token->tk_s)o(c.sc_)o(first)j(!=NULL,"dm_tkls:)h(NULL)i
+(ptr1."\);)177 1647 y(assert\(token->tk_s)o(c.sc_)o(last)40
+b(!=NULL,"dm_tkls:)19 b(NULL)i(ptr2."\);)177 1697 y(for)g
+(\(i=token->tk_sc.sc_)o(first)o(;)e(i<=token->tk_sc.s)o(c_las)o(t;)g(i++\))
+221 1747 y({)243 1797 y(if)i(\(i==token->tk_sc.)o(sc_po)o(stn\))308
+1846 y(wf_str\(p_wf,"<pos)o(tn>"\))o(;)243 1896 y(if)g(\(*i=='\\n'\))308
+1946 y(wf_wl\(p_wf,""\);)243 1996 y(else)308 2046 y(dm_byte\(p_wf,*\(\(u)o
+(byte_)d(*\))k(i\)\);)221 2095 y(})177 2145 y(if)g(\(i==token->tk_s)o(c.sc_)o
+(postn)o(\))243 2195 y(wf_str\(p_wf,"<p)o(ostn>)o("\);)177
+2245 y(wf_str\(p_wf,"\\""\);)177 2295 y(})177 2400 y Fn(3.)37
+b(Ov)o(er)22 b(in)e(the)h(T)m(angle)e(mo)q(dule,)h(create)i(a)e(massiv)o(e)f
+(arra)o(y)h(of)g(p)q(oin)o(ters)h(to)f(scraps)i(to)e(b)q(e)h(used)h(as)e(a)
+177 2450 y(stac)o(k.)f(Main)o(tain)13 b(p)q(oin)o(ters)h(in)o(to)g(the)g
+(stac)o(k)h(called)e Fi(current)g Fn(and)h Fh(b)n(ase)g Fn(\(similar)e(to)i
+(the)g(blank)f(inden)o(tation)177 2500 y(v)n(ariables\).)18
+b(Implemen)o(t)11 b(the)k(follo)o(wing:)239 2605 y Fm(\017)21
+b Fn(T)m(o)14 b(write)i(out)f(a)g(scrap,)h(scan)f(it)g(b)o(yte)h(b)o(y)f(b)o
+(yte.)22 b(Output)16 b(eac)o(h)g(b)o(yte.)22 b(When)15 b(y)o(ou)g(hit)g(an)g
+(EOL,)g(p)q(op)281 2655 y(the)g(stac)o(k)g(bac)o(k)g(to)f Fi(base)p
+Fn(.)20 b(Then)15 b(write)g(out)g(an)f(EOL)h(follo)o(w)o(ed)e(b)o(y)i(the)g
+(stac)o(k)g(con)o(ten)o(ts)h(but)f(writing)281 2705 y(eac)o(h)d(scrap)h(only)
+f(from)e Fi(postn)h Fn(to)h(end)g(end)h(of)e(eac)o(h)i(scrap.)18
+b(When)12 b(y)o(ou)g(ha)o(v)o(e)g(\014nished)g(the)h(new)f(scrap,)281
+2755 y(push)i(it)g(on)g(the)g(stac)o(k.)239 2835 y Fm(\017)21
+b Fn(When)14 b(y)o(ou)f(hit)h(a)g(new)g(macro)f(to)g(expand,)h(sa)o(v)o(e)g
+Fi(base)p Fn(.)j(Restore)e(it)e(later.)1042 2940 y(32)p eop
+%%Page: 33 34
+33 33 bop 177 42 a Fn(The)14 b Fi(postn)f Fn(\014eld)h(solv)o(es)g(the)h(big)
+e(problem)g(of)g(ho)o(w)g(to)h(cop)q(e)h(with)e(something)g(lik)o(e)g(this:)
+177 158 y Fi(The)21 b(rain)g(in)h(Spain)177 208 y(falls)f(mainly)f(@<on)h
+(the)h(plain@>)177 324 y Fn(The)f(trouble)g(is)f(that)h(w)o(e)g(w)o(an)o(t)f
+(to)g(text)h(inden)o(t)g(the)g(lines)g(in)f Fi(@<on)h(the)g(plain@>)e
+Fn(with)h(just)h(\\)p Fi(falls)177 374 y(mainly)g Fn(".)31
+b(Ho)o(w)o(ev)o(er,)20 b(this)f(string)f(is)g(only)g(part)h(of)f(a)g(scrap.)
+33 b(The)19 b(solution)e(is)i(to)f(get)h(the)g(scanner)h(to)177
+423 y(record,)c(in)e(the)i Fi(postn)e Fn(\014eld)h(of)f(eac)o(h)h(scrap,)h
+(the)f(p)q(osition)f(of)h(the)g(\014rst)h(b)o(yte)f(with)g(a)f(EOL-free)i
+(run)f(to)g(the)177 473 y(end)g(of)e(the)h(scrap.)177 548 y(This)i(sc)o(heme)
+g(is)g(v)o(ery)h(e\016cien)o(t)f(b)q(ecause)i(all)d(w)o(e)h(are)h(doing)e(is)
+h(pushing)g(and)g(p)q(opping)f(p)q(oin)o(ters)i(to)f(scraps)177
+598 y(on)g(a)g(stac)o(k)h(arra)o(y)m(.)25 b(The)16 b(main)e(disadv)n(an)o
+(tage)i(is)g(that)g(the)h(arra)o(y)f(m)o(ust)g(necessarily)h(b)q(e)g
+(\014nite)f(and)h(w)o(ould)177 648 y(imp)q(ose)c(a)h(limit)d(on)i(the)i
+(depth)f(of)g(inden)o(tation)f(nesting)h(\(not)g(a)g(big)f(problem\).)1042
+2940 y(33)p eop
+%%Page: 34 35
+34 34 bop 1042 2940 a Fn(34)p eop
+%%Page: 35 36
+35 35 bop 177 377 a Ff(Chapter)34 b(3)177 609 y Fl(F)-10 b(unnelW)g(eb)41
+b(Mo)s(di\014cation)177 875 y Fe(3.1)70 b(In)n(tro)r(duction)177
+990 y Fn(This)19 b(c)o(hapter)h(deals)f(with)g(mo)q(di\014cations)e(to)i(F)m
+(unnelW)m(eb.)33 b(Although)19 b(the)g(GNU)g(license)h(under)g(whic)o(h)177
+1040 y(F)m(unnelW)m(eb)10 b(is)h(distributed)h(allo)o(ws)d(an)o(y)o(one)i(to)
+f(mo)q(dify)f(F)m(unnelW)m(eb)h(and)h(distribute)g(the)g(mo)q(di\014ed)f(v)o
+(ersions,)177 1090 y(there)15 b(are)f(a)f(n)o(um)o(b)q(er)f(of)h(dangers)h
+(in)f(doing)g(this.)k(This)d(c)o(hapter)g(explains)f(the)h(dangers)g(and)f
+(presen)o(ts)j(some)177 1140 y(issues)f(that)f(y)o(ou)g(should)f(think)h(ab)q
+(out)g(if)f(y)o(ou)g(in)o(tend)h(to)g(distribute)g(mo)q(di\014ed)f(v)o
+(ersions)h(of)f(F)m(unnelW)m(eb.)177 1301 y Fe(3.2)70 b(The)22
+b(Danger)i(of)f(Mo)r(difying)g(Languages)177 1417 y Fn(Whenev)o(er)15
+b(someone)e(mo)q(di\014es)g(a)h(computer)f(program)f(they)j(should)e(alw)o(a)
+o(ys)g(ask)h(themselv)o(es)g(\\what)f(is)h(the)177 1467 y(impact)c(of)h
+(these)h(c)o(hanges)g(going)f(to)g(b)q(e)h(on)f(users".)18
+b(F)m(or)11 b(mature)g(pro)q(ducts,)h(the)g(degree)h(of)e(impact)e(is)j
+(largely)177 1516 y(determined)17 b(b)o(y)g(the)h(in)o(v)o(estmen)o(t)e(that)
+i(users)g(ha)o(v)o(e)f(made)f(in)h(particular)g(\014le)g(formats)f(supp)q
+(orted)i(b)o(y)f(the)177 1566 y(pro)q(duct.)177 1641 y(A)o(t)c(the)g(t)o(w)o
+(o)g(extremes,)g(there)h(are)f(the)g(video)g(game)e(and)i(the)g(compiler.)j
+(If)d(one)g(c)o(hanges)g(a)g(video)f(game,)f(the)177 1690 y(c)o(hange)h
+(a\013ects)g(only)e(the)i(future)g(games)e(pla)o(y)o(ed.)16
+b(Ho)o(w)o(ev)o(er,)c(if)e(one)i(c)o(hanges)f(a)g(compiler)f(in)h(particular)
+g(w)o(a)o(ys,)177 1740 y(it)i(is)f(lik)o(ely)g(that)h(thousands)g(of)g(users)
+h(will)e(b)q(e)h(forced)h(to)e(c)o(hange)i(milli)o(ons)c(of)j(source)h
+(\014les)f(to)g(accommo)q(date)177 1790 y(the)f(new)g(v)o(ersion.)17
+b(Th)o(us)11 b(the)h(impact)e(of)g(c)o(hanges)i(to)f(a)g(program)f(dep)q
+(ends)j(largely)d(on)h(the)h(in)o(v)o(estmen)o(t)e(made)177
+1840 y(b)o(y)k(users,)h(in)e(source)i(\014les,)f(training,)f(and)g(ev)o(en)i
+(m)o(uscle)e(memory!)177 1914 y(F)m(unnelW)m(eb)h(lies)h(v)o(ery)g(m)o(uc)o
+(h)f(at)h(the)g(compiler)f(end)h(of)f(this)h(sp)q(ectrum.)22
+b(In)14 b(fact)h(it)g(lies)f(ev)o(en)i(further.)22 b(Not)177
+1964 y(only)15 b(do)q(es)h(it)e(implemen)o(t)f(a)i(language,)f(but)h(it)g(is)
+g(curren)o(tly)h(the)g Fh(only)g Fn(implem)o(en)o(tation)c(of)j(that)g
+(language!)177 2014 y(This)c(means)g(that,)g(although)g(they)h(shouldn't,)f
+(p)q(eople)g(will)f(b)q(e)i(tempted)f(to)h(treat)g(the)g(F)m(unnelW)m(eb)e
+(program)177 2064 y(as)16 b(the)h(de\014nition)e(of)g(its)h(input)g(language)
+f(instead)h(of)f(the)i(de\014nition)e(c)o(hapter)i(in)e(the)i
+Fh(F)m(unnelWeb)h(User's)177 2113 y(Manual)p Fn(,)c(whic)o(h)g(tak)o(es)g
+(precedence)q(.)177 2188 y(Because)f(F)m(unnelW)m(eb)d(de\014nes)i(an)e
+(input)h(language,)f(and)g(p)q(eople)h(will)f(write)h(programs)e(using)h
+(that)h(language,)177 2238 y(particular)j(kinds)f(of)h(c)o(hanges)g(in)f(the)
+i(language)e(will)f(impact)g(sev)o(erely)j(on)f(users.)19 b(Three)c
+(di\013eren)o(t)g(kinds)e(of)177 2287 y(c)o(hange)h(are)h(discussed)g(b)q
+(elo)o(w.)295 2362 y Fk(Remo)o(ving)e(features:)k Fn(Remo)o(v)n(al)10
+b(of)i(features)i(\(featurectom)o(y\))f(is)g(extremely)g(di\016cult)f(once)
+295 2412 y(the)k(user)h(base)f(has)g(started)g(using)g(them.)22
+b(If)15 b(a)g(feature)h(is)g(remo)o(v)o(ed,)e(users)j(of)e(the)h(program)295
+2461 y(will)11 b(ha)o(v)o(e)h(to)h(go)e(through)i(all)e(their)i(programs)e
+(and)h(\014nd)h(a)f(w)o(a)o(y)f(to)i(sim)o(ulate)d(the)j(e\013ect)h(of)e(the)
+295 2511 y(remo)o(v)o(ed)h(feature)i(with)e(other)h(features.)19
+b(Often)c(this)e(is)h(so)g(un)o(think)n(able,)e(that)i(bad)g(language)295
+2561 y(constructs)i(are)e(tolerated)h(far)e(b)q(ey)o(ond)i(their)f(useful)g
+(lifetime.)295 2635 y Fk(Mo)q(difying)k(features:)23 b Fn(Mo)q(di\014cation)
+17 b(of)f(features)i(has)g(less)g(direct)g(impact)d(than)i(the)h(re-)295
+2685 y(mo)o(v)n(al)12 b(of)i(features,)h(but)g(can)f(cause)i(more)d(subtle)i
+(errors.)21 b(F)m(or)15 b(example,)d(consider)k(the)f(sorts)295
+2735 y(of)d(subtle)i(errors)g(that)f(migh)o(t)d(arise)j(if)f(the)i(seman)o
+(tics)e(of)g(the)h(F)m(unnelW)m(eb)f(commen)o(t)f Fi(@!)18
+b Fn(w)o(ere)295 2785 y(c)o(hanged)i(so)g(that)g(it)f(no)h(longer)f(includes)
+h(the)h(end)f(of)f(line)g(mark)o(er.)35 b(An)o(y)o(one)20 b(mo)q(difying)295
+2835 y(features)15 b(should)f(b)q(e)g(sure)h(that)f(they)h(are)f(not)g(inadv)
+o(erten)o(tly)g(la)o(ying)e(traps.)1042 2940 y(35)p eop
+%%Page: 36 37
+36 36 bop 295 42 a Fk(Adding)15 b(features:)20 b Fn(Although)14
+b(the)i(addition)e(of)h(features)h(is)f(generally)g(the)h(most)e(painless)295
+91 y(for)e(the)h(user)g(comm)o(unit)o(y)m(,)c(as)j(Hoare)h(p)q(oin)o(ts)f
+(out,)g(it)g(is)g(also)f(the)i(most)e(dangerous)i(in)f(the)h(long)295
+141 y(run.)343 246 y(\\When)d(an)o(y)f(new)h(language)f(design)h(pro)r(ject)h
+(is)f(nearing)f(completion,)g(there)i(is)e(alw)o(a)o(ys)g(a)h(mad)281
+295 y(rush)h(to)f(get)h(new)g(features)g(added)g(b)q(efore)g
+(standardization.)16 b(The)11 b(rush)g(is)f(mad)f(indeed,)i(b)q(ecause)281
+345 y(it)f(leads)h(in)o(to)f(a)g(trap)h(from)e(whic)o(h)h(there)i(is)e(no)h
+(escap)q(e.)18 b(A)11 b(feature)g(whic)o(h)g(is)f(omitted)f(can)i(alw)o(a)o
+(ys)281 395 y(b)q(e)18 b(added)g(later,)g(when)g(its)f(design)h(and)f(its)g
+(implications)e(are)j(w)o(ell)f(understo)q(o)q(d.)30 b(A)17
+b(feature)281 445 y(whic)o(h)c(is)g(included)h(b)q(efore)g(it)f(is)g(fully)f
+(understo)q(o)q(d)j(can)f(nev)o(er)g(b)q(e)g(remo)o(v)o(ed)e(later.")p
+Fk([Hoare80])177 549 y Fn(These)17 b(problems)d(exist)h(ev)o(en)h(when)f
+(there)i(is)e(a)f(cen)o(tral)i(authorit)o(y)m(.)21 b(If)14
+b(w)o(e)i(consider)g(the)f(case)h(where)g(there)177 599 y(is)g(no)g(cen)o
+(tral)h(authorit)o(y)m(,)e(and)h(users)i(mo)q(dify)c(a)i(language)f(and)h
+(its)g(implemen)o(tations)d(and)j(distribute)h(the)177 649
+y(mo)q(di\014ed)h(v)o(ersions,)i(the)g(result)g(is)f(ev)o(en)g(w)o(orse.)34
+b(F)m(or)19 b(a)g(start,)h(the)g(structure)h(of)e(the)g(genealogy)g(of)f(the)
+177 699 y(program)e(c)o(hanges)j(from)d(a)h(list)h(to)f(a)h(tree.)31
+b(This)18 b(mak)o(es)e(it)i(imp)q(ossible)e(to)h(imp)q(ose)g(an)h(ordering)g
+(on)f(the)177 749 y(di\013eren)o(t)f(v)o(ersions)g(and)g(mak)o(es)e(it)h
+(di\016cult)f(to)i(merge)f(them)f(once)i(they)g(div)o(erge.)23
+b(Second,)16 b(it)f(reduces)i(the)177 798 y(p)q(ortabilit)o(y)f(of)h(\014les)
+h(created)h(under)g(di\013eren)o(t)f(v)o(ersions.)30 b(Third,)18
+b(it)f(mak)o(es)f(adding)h(features)i(hazardous.)177 848 y(If)c(a)g(feature)h
+(is)f(added)h(in)e(one)i(v)o(ersion,)f(\014les)h(will)e(b)q(e)h(created)i
+(that)f(use)g(it.)21 b(These)c(\014les)f(will)d(immediately)177
+898 y(b)q(ecome)d(non-p)q(ortable.)17 b(F)m(urthermore,)11
+b(t)o(w)o(o)f(programmers)e(ma)o(y)g(in)o(tro)q(duce)k(di\013eren)o(t)f
+(features)g(that)g(use)g(the)177 948 y(same)h(syn)o(tactical)h(constructs,)h
+(th)o(us)f(prev)o(en)o(ting)g(the)h(t)o(w)o(o)e(v)o(ersions)h(from)e(ev)o(er)
+j(b)q(eing)f(merged.)k(W)m(orse,)12 b(t)o(w)o(o)177 998 y(programmers)f
+(could)i(in)o(tro)q(duce)h Fh(similar)e Fn(features)i(that)g(use)g(the)f
+(same)g(syn)o(tactical)g(constructs,)i(pro)q(ducing)177 1048
+y(ev)o(en)g(more)e(subtle)h(problems.)177 1119 y(The)c(only)f(w)o(a)o(y)f(to)
+i(a)o(v)o(oid)e(all)g(these)j(problems)e(is)g(to)g(create)i(some)e(sort)h(of)
+e(cen)o(tral)i(design)g(authorit)o(y)m(,)f(\(or,)h(at)f(the)177
+1169 y(v)o(ery)j(least,)g(some)f(sort)h(of)g(design)g(sync)o(hronization\))f
+(that)h(con)o(trols)g(the)h(language)d(and)i(its)g(implemen)o(tati)o(on.)177
+1240 y(The)i(b)q(ene\014ts)i(of)d(tigh)o(t)h(con)o(trol)f(o)o(v)o(er)h(the)h
+(language)e(are)h(enormous.)295 1311 y Fk(Univ)o(ersal)g(p)q(ortabilit)n(y:)k
+Fn(Source)e(\014les)f(can)g(b)q(e)g(treated)h(as)f(p)q(ortable.)21
+b(If)15 b(all)e(the)j(language)295 1361 y(implemen)o(tations)g(in)i(the)h(w)o
+(orld)e(are)i(singing)f(the)h(same)e(tune,)j(then)f(someone)f(in)g(Sydney)295
+1411 y(could)g(send)h(a)f(\014le)h(to)f(someone)f(in)h(New)h(Y)m(ork)f(and)g
+(b)q(e)g(sure)i(that)e(it)g(will)f(b)q(e)h(successfully)295
+1461 y(pro)q(cessed.)295 1532 y Fk(Clear)e(seman)o(tics:)i
+Fn(Doubt)c(ab)q(out)g(the)h(seman)o(tics)f(of)g(the)h(language)e(will)g(b)q
+(e)i(greatly)f(mini-)295 1582 y(mized.)k(So)13 b(long)g(as)h(more)f(than)h
+(one)h(sligh)o(tly)d(di\013ering)i(v)o(ersion)g(of)f(a)h(language)f(exists,)h
+(there)295 1632 y(will)9 b(b)q(e)j(confusion)e(o)o(v)o(er)g(the)i(seman)o
+(tics)e(of)g(its)g(constructs.)19 b(A)11 b(go)q(o)q(d)f(example)f(is)i(the)g
+(confusion)295 1682 y(b)q(et)o(w)o(een)16 b(the)e(A)m(T&T)g(Unix)f(and)h
+(Berk)o(eley)h(Unix)f(shell)f(languages.)177 1753 y(While)20
+b(c)o(hanges)h(to)g(the)g(language)f(supp)q(orted)i(b)o(y)e(a)g(piece)i(of)e
+(soft)o(w)o(are)h(is)f(the)h(most)f(serious)h(problem)177 1803
+y(asso)q(ciated)16 b(with)e(m)o(ultiple)f(v)o(ersions)i(of)f(soft)o(w)o(are,)
+h(the)g(lesser)h(problem)e(of)g(k)o(eeping)h(trac)o(k)g(of)f(c)o(hanges)i
+(that)177 1853 y(don't)f(a\013ect)h(the)g(language)e(that)h(the)h(soft)o(w)o
+(are)g(implem)o(en)o(ts)d(can)j(also)e(cause)j(trouble.)22
+b(Merging)15 b(di\013eren)o(t)177 1902 y(v)o(ersions)g(of)f(soft)o(w)o(are)g
+(is)h(extremely)f(tedious)h(as)f(an)o(y)o(one)g(who)g(has)h(tried)g(it)f
+(will)f(v)o(erify)m(.)19 b(Ho)o(w)o(ev)o(er,)14 b(c)o(hanges)177
+1952 y(not)g(a\013ecting)g(the)g(language)f(are)h(far)f(less)h(serious)h(b)q
+(ecause)g(they)f(impact)e(only)h(on)h(the)g(program)e(itself,)h(not)177
+2002 y(on)h(the)g(far)g(more)f(n)o(umerous)g(source)i(\014les)f(that)g(dep)q
+(end)i(on)d(it.)177 2159 y Fe(3.3)70 b(Authorit)n(y)23 b(vs)g(User)g(Securit)
+n(y)177 2272 y Fn(There)16 b(are)f(a)g(n)o(um)o(b)q(er)f(of)g(w)o(a)o(ys)h
+(of)f(pro)o(viding)f(the)j(strong)f(cen)o(tral)g(design)g(authorit)o(y)f
+(required)i(to)f(pro)q(duce)177 2322 y(the)g(p)q(ortabilit)o(y)d(and)i(seman)
+o(tic)f(securit)o(y)i(desired)g(b)o(y)e(users,)239 2426 y Fm(\017)21
+b Fn(T)m(rade)d(mark)e(the)i(name)f(of)g(the)i(language.)28
+b(Publish)18 b(a)g(sp)q(eci\014cation)g(of)f(the)i(language)e(under)h(the)281
+2476 y(trade)c(name.)i(W)m(arn)d(all)f(users)j(not)e(to)g(trust)h(an)o(y)f
+(implemen)o(tatio)o(n)e(that)i(do)q(es)h(not)f(guaran)o(tee)h(that)f(it)281
+2526 y(implemen)o(ts)d(the)j(language.)k(Then)c(con)o(trol)f(implemen)o
+(tations)d(b)o(y)k(only)e(licensing)i(the)g(trade)g(mark)e(to)281
+2576 y(conforming)h(implem)o(en)o(tations.)239 2655 y Fm(\017)21
+b Fn(Create)g(a)f(single)g(implemen)o(tation)d(of)j(the)h(language.)36
+b(Do)20 b(not)g(release)h(the)g(source)h(co)q(de)f(to)f(the)281
+2705 y(implemen)o(tatio)o(n.)15 b(Release)g(only)e(binary)g(executables.)239
+2785 y Fm(\017)21 b Fn(Release)14 b(the)f(source)i(co)q(de)f(to)f(the)g
+(implemen)o(tation,)c(but)14 b(under)g(a)f(license)g(that)h(prohibits)e(the)i
+(distri-)281 2835 y(bution)f(of)h(mo)q(di\014ed)e(v)o(ersions.)1042
+2940 y(36)p eop
+%%Page: 37 38
+37 37 bop 177 42 a Fn(Man)o(y)11 b(other)h(v)n(ariations)e(on)h(these)i
+(themes)e(are)h(p)q(ossible,)f(but)h(they)f(are)h(all)e(based)i(on)f(the)h
+(idea)f(of)g(regulating)177 91 y(either)k(the)f(\\o\016cial")e(de\014nition)i
+(of)f(the)i(language)e(or)g(all)g(of)g(its)h(existing)g(implemen)o(tatio)o
+(ns.)177 168 y(A)o(t)h(ab)q(out)f(this)h(stage,)g(a)f(con\015ict)h(arises.)21
+b(While)14 b(users)i(w)o(an)o(t)f(the)g(language)f(they)h(are)g(using)f(to)h
+(b)q(e)g(tigh)o(tly)177 217 y(con)o(trolled,)e(they)h(also)f(w)o(an)o(t)g(to)
+h(feel)f(secure)j(ab)q(out)d(the)h(a)o(v)n(ailabilit)o(y)c(of)j(its)h(implem)
+o(en)o(tations.)h(If)f(h)o(undreds)177 267 y(of)19 b(source)i(\014les)e(are)h
+(to)g(b)q(e)g(created)h(in)e(the)h(language,)f(there)i(had)e(b)q(etter)i(b)q
+(e)f(one)g(or)f(more)f(translators)177 317 y(a)o(v)n(ailable)12
+b(when)i(the)h(time)d(comes)i(to)f(use)i(them.)177 393 y(In)g(the)g(case)h
+(of)e(widely-used)h(programmi)o(ng)d(languages)i(suc)o(h)h(as)g(C,)f(the)i
+(problem)d(of)h(securing)i(implem)o(en-)177 443 y(tations)c(do)q(es)i(not)e
+(arise.)18 b(If)12 b(y)o(ou)g(don't)g(get)h(y)o(our)f(compiler)f(from)g
+(Borland,)h(y)o(ou)g(can)h(get)f(it)h(from)d(Microsoft.)177
+493 y(Ho)o(w)o(ev)o(er,)16 b(in)f(the)h(case)g(of)f(a)g(newly)h(in)o(tro)q
+(duced)g(language)e(suc)o(h)i(as)g(F)m(unnelW)m(eb,)f(there)h(ma)o(y)e(b)q(e)
+i(v)o(ery)g(few)177 543 y(implemen)o(tations,)g(or)i(ev)o(en)h(just)f(one)h
+(implemen)o(tatio)o(n,)d(and)i(this)h(p)q(oses)g(a)f(danger)h(to)f(the)h
+(user)g(who)f(is)177 593 y(committing)10 b(to)j(that)g(format.)j(Despite)d
+(the)h(b)q(est)g(in)o(ten)o(tions)f(of)f(the)i(cop)o(yrigh)o(t)f(o)o(wner,)g
+(there)h(are)g(a)e(v)n(ariet)o(y)177 642 y(of)h(w)o(a)o(ys)g(in)f(whic)o(h)h
+(a)g(computer)g(program)f(can)h(suddenly)h(b)q(ecome)f(una)o(v)n(ailable.)j
+(Here)e(are)g(some)e(examples:)239 762 y Fm(\017)21 b Fn(If)12
+b(the)h(program)e(is)i(o)o(wned)g(b)o(y)f(a)g(compan)o(y)f(and)i(the)g
+(compan)o(y)e(go)q(es)i(brok)o(e,)g(the)g(liquidators)e(ma)o(y)g(not)281
+812 y(b)q(other)k(to)e(place)h(the)h(soft)o(w)o(are)f(in)f(the)i(public)e
+(domain.)239 898 y Fm(\017)21 b Fn(If)13 b(the)g(program)f(is)h(o)o(wned)g(b)
+o(y)g(a)g(kindly)f(individual)f(who)i(issues)h(licenses)h(for)e(free,)g(and)g
+(that)g(individ-)281 948 y(ual)h(suddenly)h(dies,)g(users)i(migh)o(t)12
+b(suddenly)k(\014nd)f(themselv)o(es)g(negotiating)f(with)g(hard-nosed)i
+(estate)281 998 y(executors)g(for)d(the)i(righ)o(ts)e(to)h(con)o(tin)o(ue)g
+(using)g(the)g(program.)239 1084 y Fm(\017)21 b Fn(If)c(who)q(ev)o(er)h(o)o
+(wns)g(the)g(program)e(do)q(es)i(not)f(upgrade)h(the)g(program)e(ev)o(ery)i
+(so)f(often,)h(it)f(is)h(actually)281 1134 y(p)q(ossible)10
+b(for)g(the)h(released)g(executables)h(to)e(\\expire")h(when)f(new)h(op)q
+(erating)f(system)g(upgrades)h(app)q(ear.)177 1254 y(These)16
+b(p)q(ossibilities)d(mean)g(that)i(users)g(ab)q(out)g(to)f(in)o(v)o(est)g(in)
+g(a)g(newly)g(in)o(tro)q(duced)h(programmi)o(ng)c(to)q(ol)j(suc)o(h)177
+1304 y(as)j(F)m(unnelW)m(eb)f(ha)o(v)o(e)h(legitimate)d(concerns)19
+b(when)e(they)h(w)o(orry)e(ab)q(out)h(the)g(to)q(ol's)f(a)o(v)n(ailabilit)o
+(y)l(.)24 b(F)m(or)16 b(non-)177 1354 y(commercially)8 b(distributed)k(to)q
+(ols)f(suc)o(h)g(as)h(F)m(unnelW)m(eb,)e(the)i(simplest)e(solution)g(to)h
+(this)h(problem)d(is)i(to)g(mak)o(e)177 1404 y(the)i(source)g(co)q(de)g(a)o
+(v)n(ailable,)c(either)k(b)o(y)f(placing)f(it)g(in)o(to)g(the)i(public)e
+(domain,)f(or)i(b)o(y)f(releasing)h(it)g(under)h(some)177 1453
+y(kind)i(of)f(public)h(license,)g(suc)o(h)h(as)f(a)g(GNU)g(license.)22
+b(The)15 b(trouble)g(with)g(releasing)g(the)h(source)g(co)q(de)g(is)f(that)
+177 1503 y(it)f(remo)o(v)o(es)g(con)o(trol)g(from)f(the)i(design)g(authorit)o
+(y)m(.)j(Once)e(the)f(co)q(de)g(is)g(\\out")f(there)h(is)g(no)f(stopping)g
+(an)o(y)o(one)177 1553 y(from)e(mo)q(difying)f(the)k(program)d(and)i
+(distributing)f(mo)q(di\014ed)g(v)o(ersions.)18 b(All)13 b(c)o(haos)h(can)g
+(ensue.)177 1629 y(One)j(solution)d(to)i(this)g(con\015ict)g(is)f(to)h(tak)o
+(e)f(the)h(trade)h(mark)d(approac)o(h.)23 b(This)16 b(separates)h(the)f(righ)
+o(t)f(of)g(the)177 1679 y(design)e(authorit)o(y)f(to)h(con)o(trol)f(the)h
+(language)f(and)g(its)h(implemen)o(tatio)o(ns,)d(and)j(the)g(righ)o(t)f(of)g
+(the)h(users)h(to)f(use)177 1729 y(the)g(source)i(co)q(de)e(in)f(an)o(y)h(w)o
+(a)o(y)f(they)h(lik)o(e)f(\(but)h(they)g(ma)o(y)e(ha)o(v)o(e)h(to)h(c)o
+(hange)g(its)g(name!\).)j(Ho)o(w)o(ev)o(er,)d(the)g(trade)177
+1779 y(mark)g(approac)o(h)g(is)h(exp)q(ensiv)o(e.)177 1855
+y(The)e(solution)g(that)f(I)h(\(Ross)g(William)o(s)e(\()p Fi
+(ross@spam.adelaid)o(e.ed)o(u.au)p Fn(\)\))f(ha)o(v)o(e)i(adopted)i(is)e(to)h
+(release)h(the)177 1905 y(F)m(unnelW)m(eb)k(source)i(co)q(de)f(under)h(a)e
+(GNU)g(license)i(and)e(then)h(to)f(write)h(this)g(c)o(hapter)g(in)f(the)i
+Fh(F)m(unnelWeb)177 1955 y(Hacker's)c(Manual)h Fn(to)e(dissuade)h(p)q
+(ossible)g(hac)o(k)o(ers)h(from)d(releasing)h(mo)q(di\014ed)f(v)o(ersions)j
+(under)f(the)g(F)m(unnel-)177 2004 y(W)m(eb)e(name.)k(This)d(is)f(ab)q(out)h
+(as)g(close)g(to)f(the)i(GNU/trademark)d(approac)o(h)i(I)f(can)h(get)g
+(without)f(forking)g(out)177 2054 y(ab)q(out)e($1200)g(for)g(a)g(US)g
+(trademark)g(or)g(pa)o(ying)f(ev)o(en)i(more)f(to)g(get)h(a)f(la)o(wy)o(er)g
+(to)g(attempt)f(to)i(draft)f(a)g(con)o(tract)177 2104 y(stating)j(\\thou)f
+(shalt)h(not)g(mo)q(dify)d(the)k(F)m(unnelW)m(eb)e(language".)177
+2271 y Fe(3.4)70 b(What)23 b(I)g(W)-6 b(an)n(t)24 b(to)f(Protect)177
+2389 y Fn(The)13 b(concerns)i(expressed)g(in)d(the)h(previous)g(section)h(ab)
+q(out)e(mo)q(di\014cations)f(to)i(the)g(F)m(unnelW)m(eb)f(program)f(do)177
+2439 y(not)j(preclude)i(mo)q(di\014cations.)i(They)c(merely)g(imply)e(that)i
+(some)f(conditions)h(b)q(e)h(observ)o(ed)h(when)f(mo)q(di\014ca-)177
+2489 y(tions)g(are)g(made.)k(In)c(fact,)g(ha)o(ving)e(formally)f(released)k
+(the)f(sources)i(under)e(GNU,)f(there)i(is)f(nothing)f(that)h(I)177
+2539 y(can)h(do)f(to)h(stop)g(p)q(eople)g(distributing)f(mo)q(di\014ed)f(v)o
+(ersions)i(and)g(the)g(conditions)f(to)h(b)q(e)g(describ)q(ed)i(m)o(ust)c(b)q
+(e)177 2588 y(imp)q(osed)f(v)o(olun)o(tarily)m(.)177 2665 y(In)h(the)h(end)f
+(there)h(are)f(t)o(w)o(o)g(things)g(that)g(I)f(w)o(an)o(t)h(to)g
+(protect/main)o(tain:)228 2785 y(1.)20 b(Restriction)d(of)g(the)g(name)f(\\F)
+m(unnelW)m(eb")g(only)g(to)h(computer)g(programs)e(that)i(exactly)h(implem)o
+(en)o(t)281 2835 y(m)o(y)12 b(\\o\016cial")g(de\014nition)i(of)f(the)h
+(language.)1042 2940 y(37)p eop
+%%Page: 38 39
+38 38 bop 228 42 a Fn(2.)20 b(Restriction)15 b(of)f(the)h(F)m(unnelW)m(eb)f
+(source)i(\014le)f(extensions)h(\\)p Fi(.fw)p Fn(")d(\(input)i(\014les\))g
+(and)f(\\)p Fi(.fwi)p Fn(")g(\(include)281 91 y(\014les\))g(only)f(to)h
+(source)h(\014les)g(that)f(conform)e(to)i(m)o(y)e(\\o\016cial")g
+(de\014nition)h(of)h(the)g(language.)177 214 y(So)f(long)e(as)i(these)h
+(conditions)e(hold,)g(source)i(\014les)f(created)h(under)g(\\F)m(unnelW)m
+(eb")e(will)f(b)q(e)i(p)q(ortable,)g(and)f(the)177 264 y(language)g(will)g
+(ha)o(v)o(e)g(the)i(p)q(oten)o(tial)e(to)h(b)q(e)h(stable)f(and)g(w)o
+(ell-de\014ned.)18 b(Here)c(are)f(m)o(y)e(suggestions)j(for)e(ho)o(w)h(to)177
+314 y(ob)q(ey)i(these)i(rules.)22 b(These)16 b(suggestions)g(are)f(in)g
+(addition)e(to)i(the)h(GNU)f(license)g(rules)h(ab)q(out)f(do)q(cumen)o(ting)
+177 363 y(an)o(y)f(c)o(hanges)g(that)g(y)o(ou)g(mak)o(e)e(in)h(the)i(source)g
+(\014les.)295 441 y Fk(Mo)q(di\014cations)h(that)i(do)g(not)f(a\013ect)i
+(functional)o(i)o(t)o(y:)h Fn(If)c(y)o(ou)g(c)o(hange)g(the)h(F)m(unnelW)m
+(eb)295 491 y(program)f(in)i(a)f(manner)g(that)h(do)q(es)g(not)g(a\013ect)h
+(the)f(functionalit)o(y)e(of)h(the)i(program)d(in)h(an)o(y)295
+540 y(w)o(a)o(y)d(\(e.g.)f(p)q(ort)h(it)g(to)g(a)g(new)g(mac)o(hine,)f(or)h
+(just)g(sp)q(eed)i(it)d(up\),)h(then)h(y)o(ou)e(should)h(mo)q(dify)e(the)295
+590 y(program)g(to)h(write)g(out)g(a)g(message)g(when)g(it)g(starts)h(up)f
+(sa)o(ying)f(that)h(it)g(is)g(a)g(mo)q(di\014ed)f(v)o(ersion)295
+640 y(of)i(F)m(unnelW)m(eb.)j(No)d(other)g(actions)g(need)h(b)q(e)g(tak)o
+(en.)295 717 y Fk(Mo)q(di\014cations)d(that)h(a\013ect)h(functional)o(i)o(t)o
+(y:)h Fn(If)d(y)o(ou)g(mak)o(e)e(c)o(hanges)k(to)e(F)m(unnelW)m(eb)g(that)295
+767 y(a\013ect)g(its)f(functionalit)o(y)f(\(e.g.)g(c)o(hanges)i(to)f(command)
+e(line)h(options,)h(the)h(command)c(language,)295 817 y(or)13
+b(the)h(input)f(language\))g(y)o(ou)f(should)h(c)o(hange)h(the)g(name)e(of)g
+(the)i(program)e(so)h(that)g(the)h(name)295 867 y(no)h(longer)g(con)o(tains)h
+(the)g(w)o(ord)f(\\F)m(unnelW)m(eb",)f(and)h(should)g(c)o(ho)q(ose)i
+(alternativ)o(e)e(input)g(and)295 917 y(include-\014le)d(\014le)g(extensions)
+g(\(the)h(curren)o(t)g(ones)f(are)g(\\)p Fi(.fw)p Fn(")f(and)g(\\)p
+Fi(.fwi)p Fn("\).)16 b(F)m(or)c(example,)e(y)o(ou)295 966 y(migh)o(t)g(call)h
+(y)o(our)g(program)f(\\BananaW)m(eb")h(and)g(use)i(the)f(\014le)g(extensions)
+g(\\)p Fi(.bw)p Fn(")f(and)g(\\)p Fi(.bwi)p Fn(".)177 1044
+y(These)k(rules)f(are)g(not)g(v)o(ery)g(restrictiv)o(e.)19
+b(Basically)13 b(y)o(ou)g(can)h(do)f(what)h(y)o(ou)f(lik)o(e)g(so)h(long)e
+(as)i(y)o(ou)f(c)o(hange)h(the)177 1094 y(name)d(of)g(the)h(resulting)g
+(program.)k(I)c(do)f(not)h(wish)g(to)g(restrict)h(an)o(y)o(one)e(who)h(migh)o
+(t)e(w)o(an)o(t)h(to)h(use)g(F)m(unnelW)m(eb)177 1143 y(as)18
+b(a)g(foundation)f(for)g(a)h(more)f(sophisticated)h(literate)g(programming)d
+(system.)30 b(My)17 b(sole)h(aim)e(here)j(is)f(to)177 1193
+y(protect)d(the)g(in)o(tegrit)o(y)e(of)g(what)h(already)g(exists.)177
+1364 y Fe(3.5)70 b(Mo)r(difying)22 b(the)h(Man)n(uals)177 1483
+y Fn(While)15 b(it)h(is)f(p)q(ermitted)h(to)f(mo)q(dify)f(the)i(F)m(unnelW)m
+(eb)f(program,)g(no)g(license)i(has)f(b)q(een)g(gran)o(ted)h(to)e(mo)q(dify)
+177 1533 y(its)h(do)q(cumen)o(tation)f(\()p Fh(The)i(F)m(unnelWeb)h(User's)e
+(Manual)g Fn(and)g Fh(The)h(F)m(unnelWeb)h(Hacker's)e(Manual)p
+Fn(\).)25 b(The)177 1583 y(only)12 b(op)q(eration)h(that)f(can)h(b)q(e)h(p)q
+(erformed)e(on)g(the)i(F)m(unnelW)m(eb)e(do)q(cumen)o(tation)f(is)i(a)f(v)o
+(erbatim)f(cop)o(y)i(in)f(an)o(y)177 1633 y(medium.)177 1710
+y(If)j(y)o(ou)g(ha)o(v)o(e)g(created)i(a)f(mo)q(di\014ed)e(v)o(ersion)h(of)g
+(F)m(unnelW)m(eb)g(and)g(wish)h(to)f(do)q(cumen)o(t)g(it,)g(either)h(write)g
+(y)o(our)177 1760 y(o)o(wn)h(man)o(ual)e(from)g(scratc)o(h,)k(or)e(write)g(a)
+g(man)o(ual)e(that)i(can)g(b)q(e)h(used)g(in)e(conjunction)i(with)e(the)i
+(existing)177 1809 y(man)o(uals.)177 1980 y Fe(3.6)70 b(Ho)n(w)23
+b(Cop)n(yrigh)n(t)g(La)n(w)g(W)-6 b(orks)177 2099 y Fn(In)17
+b(order)h(to)f(understand)i(the)f(next)f(section,)i(some)d(understanding)i
+(of)e(cop)o(yrigh)o(t)h(la)o(w)f(is)h(required.)29 b(The)177
+2149 y(assertions)15 b(made)e(in)h(this)h(section)f(are)h(not)f(legal)f
+(opinions;)g(they)i(are)g(merely)e(appro)o(ximations)f(of)h(the)i(la)o(w,)177
+2199 y(based)g(on)e(m)o(y)g(understanding)h(of)f(it.)177 2276
+y(By)k(default,)g(who)q(ev)o(er)g(creates)h(a)f Fk(w)o(ork)f
+Fn(o)o(wns)h Fk(cop)o(yrigh)o(t)c Fn(o)o(v)o(er)k(it.)26 b(This)16
+b(means)g(that)h(b)o(y)f(default,)h(that)177 2326 y(p)q(erson)e(is)f(the)g
+(only)f(p)q(erson)i(in)f(the)g(w)o(orld)g(who)f(has)h(the)h(legal)e(righ)o(t)
+g(to)h(mak)o(e)e(copies)j(of)e(the)h(w)o(ork.)177 2403 y(Cop)o(yrigh)o(t)g(o)
+o(v)o(er)h(a)f(w)o(ork)g(usually)g(co)o(v)o(ers)i(all)d(direct)j(deriv)n
+(ations)e(of)g(this)h(w)o(ork.)20 b(F)m(or)14 b(example,)g(if)f(someone)177
+2453 y(o)o(wns)f(the)h(source)h(co)q(de)f(to)f(a)f(computer)h(program)f(then)
+i(they)f(also)g(o)o(wn)g(an)o(y)f(direct)i(deriv)n(ations)f(suc)o(h)h(as)f
+(the)177 2503 y(binary)i(executable.)177 2580 y(More)i(than)g(one)f(p)q
+(erson)i(ma)o(y)c(o)o(wn)i(cop)o(yrigh)o(t)g(o)o(v)o(er)h(a)f(w)o(ork.)23
+b(If)15 b(this)g(is)h(the)g(case,)g(then)g(the)g(w)o(ork)g(cannot)177
+2630 y(b)q(e)f(copied)f(without)f(the)i(p)q(ermission)e(of)g(all)g(of)g(the)h
+(p)q(eople)h(o)o(wning)e(the)h(cop)o(yrigh)o(t.)177 2708 y(A)k(p)q(erson)g
+(\(or)f(group\))g(o)o(wning)g(cop)o(yrigh)o(t)f(o)o(v)o(er)i(a)f(w)o(ork)g
+(can)g Fk(license)e Fn(the)j(righ)o(t)f(to)g(mak)o(e)f(copies)i(of)e(the)177
+2757 y(w)o(ork)e(to)f(an)o(y)o(one)h(he)g(lik)o(es)g(under)h(an)o(y)e
+(conditions)h(he)g(lik)o(es.)177 2835 y(If)g(a)f(w)o(ork)h(is)g(mo)q
+(di\014ed,)e(the)i(result)h(is)f(called)f(a)h Fk(deriv)o(ed)f(w)o(ork)p
+Fn(.)1042 2940 y(38)p eop
+%%Page: 39 40
+39 39 bop 177 42 a Fn(If)13 b(cop)o(yrigh)o(t)g(on)h(a)f(w)o(ork)g(is)g(o)o
+(wned)h(b)o(y)f Fj(A)h Fn(is)f(the)h(w)o(ork)f(is)h(mo)q(di\014ed)e(b)o(y)h
+Fj(B)r Fn(,)h(cop)o(yrigh)o(t)f(on)g(the)h(deriv)o(ed)g(w)o(ork)177
+91 y(is)g(o)o(wned)g(b)o(y)g(b)q(oth)g Fj(A)g Fn(and)f Fj(B)r
+Fn(.)177 159 y(Cop)o(yrigh)o(t)j(is)g(not)g(o)o(wnership)h(o)o(v)o(er)f
+(particular)g(con\014gurations)h(of)f(information,)d(but)k(rather)g(is)f(the)
+h(righ)o(t)177 209 y(to)d(restrict)i(the)f(cop)o(ying)e(of)h(information)d
+(deriv)o(ed)k(from)d(particular)i(sources.)21 b(F)m(or)14 b(example,)e(if)i
+(t)o(w)o(o)f(p)q(eople)177 259 y(p)q(oin)o(t)k(their)g(cameras)g(out)g(a)g
+(windo)o(w)f(and)h(tak)o(e)g(iden)o(tical)f(photographs,)i(eac)o(h)f(p)q
+(erson)h(has)g(the)f(righ)o(t)g(to)177 309 y(restrict)e(the)g(cop)o(ying)e
+(of)g Fh(their)g Fn(photograph)h(regardless)h(of)e(the)h(fact)g(that)g(the)g
+(other)g(p)q(erson)h(has)f(cop)o(yrigh)o(t)177 359 y(o)o(v)o(er)h(an)f(iden)o
+(tical)g(photograph.)20 b(In)14 b(the)h(unlik)o(ely)f(ev)o(en)o(t)h(that)f(t)
+o(w)o(o)g(p)q(eople)h(wrote)g(no)o(v)o(els)g(that)f(w)o(ere)i(letter)177
+408 y(for)d(letter)h(iden)o(tical)f(and)g(it)g(could)g(b)q(e)h(pro)o(v)o(en)g
+(that)f(there)i(w)o(as)e(no)g(con)o(tact)h(b)q(et)o(w)o(een)h(the)f(t)o(w)o
+(o)f(p)q(eople)g(when)177 458 y(they)e(wrote)h(the)f(no)o(v)o(els,)g(then)g
+(cop)o(yrigh)o(t)g(la)o(w)f(w)o(ould)g(eac)o(h)h(protect)h(the)f(righ)o(t)g
+(of)f(eac)o(h)h(p)q(erson)h(to)f(restrict)h(the)177 508 y(cop)o(ying)g(of)h
+(the)g(no)o(v)o(el)f(originating)f(from)g Fh(them)p Fn(.)18
+b(In)13 b(practice,)g(the)h(probabilit)o(y)d(of)h(suc)o(h)i(an)f(ev)o(en)o(t)
+g(o)q(ccurring)177 558 y(is)i(so)h(lo)o(w)e(that)h(the)h(la)o(w)f(assumes)g
+(that)g(if)g(t)o(w)o(o)f(w)o(orks)i(are)f(close)h(or)f(iden)o(tical,)g(that)g
+(there)i(has)e(b)q(een)i(some)177 608 y(information)11 b(in)o(terc)o(hange)k
+(at)e(some)g(p)q(oin)o(t.)177 676 y(Th)o(us,)f(if)f(I)h(o)o(wn)g(cop)o(yrigh)
+o(t)f(on)h(computer)f(program)g Fj(X)s Fn(,)h(and)g(I)f(create)j(an)d(iden)o
+(tical)h(cop)o(y)f(of)h Fj(X)j Fn(called)d Fj(Y)21 b Fn(and)177
+726 y(distribute)c(it)f(under)h(the)f(terms)g(of)g(a)g(license)h(agreemen)o
+(t,)f(then)g(that)h(license)g(agreemen)o(t)e(do)q(es)i(not)f(co)o(v)o(er)177
+775 y(the)e(cop)o(y)e Fj(X)s Fn(.)19 b(Once)14 b(the)f(license)h(agreemen)o
+(t)e(is)h(signed,)g(there)h(is)f(nothing)f(I)h(can)g(do)f(to)h(undo)g(the)g
+(license;)g Fj(Y)177 825 y Fn(has)h(gone.)k(Ho)o(w)o(ev)o(er,)c(I)g(still)f
+(ha)o(v)o(e)h(total)f(con)o(trol)g(o)o(v)o(er)h Fj(X)s Fn(.)177
+893 y(V)m(ersion)g(2)g(of)f(the)h(GNU)g(General)g(Public)g(License)h(\(under)
+g(whic)o(h)e(F)m(unnelW)m(eb)h(is)f(released\))j(sp)q(eci\014es)g(\(in)d(a)
+177 943 y(n)o(utshell\))e(that)h(soft)o(w)o(are)f(can)g(b)q(e)h(copied)f
+(freely)g(so)h(long)e(as)h(it)g(is)g(not)g(sold,)f(and)h(that)g(it)g(can)h(b)
+q(e)f(mo)q(di\014ed)f(and)177 993 y(copied)15 b(freely)h(so)f(long)f(as)h
+(the)h(mo)q(di\014cations)d(are)i(logged)g(and)g(it)f(is)h(not)g(sold.)21
+b(In)15 b(b)q(oth)h(cases,)g(it)f(requires)177 1043 y(that)h(the)h(result)g
+(of)e(the)i(cop)o(y)f(or)g(mo)q(di\014cation)e(op)q(eration)h(b)q(e)i(copied)
+f(only)g(under)g(the)h(conditions)f(of)f(the)177 1092 y(license.)177
+1160 y(Once)g(a)e(declaration)g(is)g(issued)h(licensing)f(a)g(cop)o(y)g(of)g
+(a)g(program)e(under)j(GNU)f(license,)h(that)g(license)g(cannot)177
+1210 y(b)q(e)h(retracted.)177 1363 y Fe(3.7)70 b(Managemen)n(t)23
+b(of)g(the)f(O\016cial)f(F)-6 b(unnelW)g(eb)177 1472 y Fn(I)14
+b(in)o(tend)f(to)h(main)o(tain)d(an)i(o\016cial)f(cop)o(y)i(of)f(F)m(unnelW)m
+(eb)g(and)g(release)i(it)f(under)g(GNU)f(license)i(from)d(time)g(to)177
+1522 y(time)h(so)h(that)g(ev)o(ery)o(one)g(can)h(use)f(it.)k(Unfortunately)c
+(its)g(going)e(to)i(b)q(e)g(a)g(little)f(messy)m(.)177 1590
+y(F)m(or)j(a)h(v)n(ariet)o(y)f(of)f(reasons,)j(I)f(w)o(an)o(t)f(to)g(main)o
+(tain)e(total)i(con)o(trol)g(o)o(v)o(er)g Fh(my)h Fn(cop)o(y)g(of)e(the)j
+(o\016cial)d(v)o(ersion)h(of)177 1640 y(F)m(unnelW)m(eb.)i(Some)12
+b(of)i(the)g(reasons)h(are:)239 1732 y Fm(\017)21 b Fn(If)15
+b(it)h(turns)h(out)f(that)g(there)h(is)e(an)h(enormous)f(demand)g(for)h(F)m
+(unnelW)m(eb)f(\(unlik)o(ely\))g(then)i(I)e(w)o(an)o(t)h(to)281
+1782 y(b)q(e)e(able)e(to)h(create)i(a)d(business)j(based)e(on)g(it,)f(or)h
+(at)g(least)h(b)q(e)f(able)g(to)g(bundle)g(it)g(with)f(other)i(pro)q(ducts.)
+281 1832 y(This)g(w)o(ould)g(b)q(e)i(di\016cult)e(if)f(the)j(only)d
+(up-to-date)i(cop)o(y)g(a)o(v)n(ailable)d(w)o(as)j(a)f(GNU)h(cop)o(y)m(.)k
+(Note:)h(If)15 b(this)281 1882 y(happ)q(ens,)f(all)f(the)h(GNU)g(releases)i
+(of)d(F)m(unnelW)m(eb)g(will)g(remain)f(v)n(alid.)239 1958
+y Fm(\017)21 b Fn(I)d(w)o(an)o(t)g(to)g(b)q(e)h(able)f(to)g(cop)o(y)g(co)q
+(de)h(from)d(m)o(y)h(v)o(ersion)h(of)g(F)m(unnelW)m(eb)f(in)o(to)h
+(commercial)d(pro)q(ducts)281 2008 y(without)e(ha)o(ving)g(to)h(w)o(orry)g
+(ab)q(out)g(the)g(GNU)g(license.)177 2101 y(The)i(trouble)f(is)h(that)f(\(in)
+g(m)o(y)f(understanding)h(of)g(cop)o(yrigh)o(t)g(la)o(w\),)f(once)i(a)f(cop)o
+(y)h(of)e(F)m(unnelW)m(eb)h(has)h(b)q(een)177 2151 y(released)i(under)g(GNU)f
+(license,)g(then)h(it)e(and)h(an)o(y)f(w)o(orks)h(deriv)o(ed)h(from)d(it)h
+(fall)g(under)h(GNU)g(license)g(to)q(o.)177 2200 y(This)c(means)g(that)g(if)g
+(y)o(ou)g(mo)q(dify)e(a)i(GNU)g(release)h(of)f(F)m(unnelW)m(eb)g(and)g(send)h
+(me)f(y)o(our)g(mo)q(di\014cations,)e(and)177 2250 y(I)18 b(incorp)q(orate)h
+(them)e(in)o(to)h(m)o(y)e(v)o(ersion,)j(then)g(I)f(no)g(longer)f(o)o(wn)h
+(cop)o(yrigh)o(t)g(on)g(the)g(v)o(ersion)h(I)f(mo)q(di\014ed.)177
+2300 y(Basically)m(,)12 b(if)h(GNU)h(touc)o(hes)h(a)f(w)o(ork,)f(then)h(that)
+g(cop)o(y)g(is)g(gone)g(forev)o(er.)177 2368 y(My)k(solution)e(to)i(the)g
+(problem)e(is)h(to)g(k)o(eep)i(a)e(cop)o(y)g(of)g(F)m(unnelW)m(eb)g(that)h
+(is)f(GNU-clean)g(and)h(only)e(mak)o(e)177 2418 y(mo)q(di\014cations)9
+b(to)h(it)h(that)f(are)h(GNU-clean.)17 b(So)11 b(long)e(as)i(m)o(y)e
+(o\016cial)g(cop)o(y)i(is)f(GNU)g(clean,)h(an)o(y)g(mo)q(di\014cations)177
+2468 y(that)j(I)g(mak)o(e)e(m)o(yself)g(will)h(b)q(e)h(GNU)g(clean.)k(The)c
+(problem)e(comes)i(when)g(someone)f(else)i(mo)q(di\014es)e(the)h(GNU)177
+2518 y(v)o(ersion)c(and)f(then)h(w)o(an)o(ts)g(me)e(to)i(incorp)q(orate)g
+(the)g(mo)q(di\014cations)e(in)o(to)g(m)o(y)g(o\016cial)g(v)o(ersion.)17
+b(As)10 b(I)g(understand)177 2567 y(the)h(la)o(w,)f(b)o(y)g(default,)g(the)h
+(programmer)d(o)o(wns)j(the)g(mo)q(di\014cations)d(\(b)q(ecause)k(he)f(made)e
+(them\),)h(but)h(the)g(result)177 2617 y(of)h(making)e(the)j(mo)q
+(di\014cations)d(falls)i(under)h(GNU)f(license.)18 b(What)12
+b(I)g(prop)q(ose)i(is)e(that)g(those)h(who)f(w)o(an)o(t)g(their)177
+2667 y(mo)q(di\014cations)g(included)i(in)g(the)g(o\016cial)f(cop)o(y)g(of)h
+(F)m(unnelW)m(eb)f(sign)h(an)f(agreemen)o(t)h(transferring)g(cop)o(yrigh)o(t)
+177 2717 y(of)f(the)g(mo)q(di\014cations)f(o)o(v)o(er)h(to)g(me)f(on)h
+(condition)f(that)h(the)h(result)g(b)q(e)f(released)i(under)f(GNU)f(license)h
+(within)177 2767 y(a)g(certain)g(time)f(p)q(erio)q(d.)18 b
+Fk(Figure)c(1)g Fn(demonstrates)g(the)h(pro)q(cess.)177 2835
+y(There)g(are)g(t)o(w)o(o)e(main)f(disadv)n(an)o(tages)h(to)h(this)g(sc)o
+(heme:)1042 2940 y(39)p eop
+%%Page: 40 41
+40 40 bop 221 91 a Fi(+---------->----)o(-----)o(-+---)o(-----)o(-----)o
+(-<--)o(-----)o(-----)o(-+)221 141 y(|\(modifications)18 b(by)87
+b(|)610 b(|)221 191 y(|)21 b(me\))370 b(V)610 b(|)221 241 y(|)109
+b(+--------------)o(-----)o(-----)o(-----)o(----)o(-+)193 b(|)221
+291 y(+--<--|)42 b(My)21 b(Official)f(Copy)h(of)h(FunnelWeb)63
+b(|)196 b(|)352 340 y(|)65 b(Copyright)20 b(\(C\))h(Ross)g(Williams)85
+b(|)196 b(|)352 390 y(+--------------)o(-----)o(-----)o(-----)o(----)o(-+)d
+(|)700 440 y(|)22 b(\(Periodic)e(releases\))150 b(/)22 b(\\)700
+490 y(V)567 b(/)65 b(\\)43 b(Programmers)482 540 y(+------------------)o(+)
+346 b(/Legal\\)20 b(sign)h(away)482 589 y(|)h(GNU)f(Release)f(Copy)h(|)349
+b(\\Filte/)20 b(copyright)g(on)482 639 y(+------------------)o(+)368
+b(\\)21 b(r)h(/)43 b(modifications)700 689 y(|)588 b(\\)22
+b(/)700 739 y(|)g(\(Modifications)d(made)i(by)108 b(|)700 789
+y(V)44 b(random)20 b(programmers\))f(--->--+)460 839 y(+-------------------)o
+(----+)460 888 y(|)j(Modified)e(GNU)h(Version)43 b(|)460 938
+y(+-------------------)o(----+)343 1079 y Fb(Once)13 b(a)f(w)o(ork)h(is)g
+(released)e(under)g(GNU)i(license,)f(all)g(deriv)o(ed)f(w)o(orks)h(fall)g
+(under)g(GNU)h(license.)18 b(Ho)o(w)o(ev)o(er,)281 1129 y(this)9
+b(diagram)f(sho)o(ws)i(ho)o(w)g(cop)o(yrigh)o(t)d(can)i(b)q(e)h(main)o
+(tained)d(o)o(v)o(er)i(a)h(w)o(ork,)g(while)f(still)g(making)f(it)i(a)o(v)n
+(ailable)e(under)281 1179 y(GNU)14 b(license.)19 b(Unfortunately)m(,)11
+b(this)i(sc)o(heme)e(requires)h(that)g(cop)o(yrigh)o(t)f(on)i(mo)q
+(di\014cati)o(ons)d(to)j(F)m(unnelW)m(eb)f(b)q(e)281 1229 y(signed)e(o\013)h
+(b)o(y)g(the)g(p)q(eople)e(who)j(mak)o(e)e(the)h(mo)q(di\014catio)o(ns.)453
+1320 y Fk(Figure)j(1)p Fn(:)k(Ho)o(w)13 b(I)h(am)e(going)h(to)h(main)o(tain)d
+(cop)o(yrigh)o(t)i(o)o(v)o(er)h(F)m(unnelW)m(eb.)228 1453 y(1.)20
+b(Getting)15 b(eac)o(h)i(p)q(erson)g(who)e(con)o(tributes)i(mo)q
+(di\014cations)d(to)i(F)m(unnelW)m(eb)g(to)f(sign)h(and)g(send)g(a)g(piece)
+281 1503 y(of)d(pap)q(er)i(signing)e(a)o(w)o(a)o(y)f(cop)o(yrigh)o(t)i(will)e
+(b)q(e)j(tedious.)228 1580 y(2.)20 b(Programmers)14 b(ma)o(y)g(b)q(e)j
+(reluctan)o(t)f(to)g(sign)g(a)o(w)o(a)o(y)e(cop)o(yrigh)o(t)i(on)g(mo)q
+(di\014cations)e(b)q(ecause)j(the)g(result)281 1630 y(could)e(b)q(e)h(used)g
+(b)o(y)f(me)f(for)h(commercial)d(purp)q(oses)17 b(b)o(y)e(me)f(at)h(a)g
+(later)h(date)f(\(Note:)21 b(But)16 b(it)f(m)o(ust)f(b)q(e)281
+1679 y(released)h(under)g(GNU)f(as)f(w)o(ell\).)177 1774 y(These)18
+b(disadv)n(an)o(tages)d(are)i(regrettable)g(consequences)i(of)c(m)o(y)g
+(decision)h(to)g(retain)g(total)f(con)o(trol)h(o)o(v)o(er)g(the)177
+1824 y(\\o\016cial")c(v)o(ersion)i(of)f(F)m(unnelW)m(eb.)177
+1893 y(The)h(upshot)h(of)e(all)g(this)h(is)f(that:)239 1988
+y Fm(\017)21 b Fn(I)12 b(will)e(nev)o(er)i(allo)o(w)f(an)o(y)g(co)q(de)h
+(from)e(a)i(GNU)f(release)i(of)e(F)m(unnelW)m(eb)g(to)h(touc)o(h)g(m)o(y)e
+(o\016cial)g(cop)o(y)m(.)17 b(Only)281 2038 y(mo)q(di\014cations)12
+b(will)g(b)q(e)j(acceptable.)239 2115 y Fm(\017)21 b Fn(If)e(y)o(ou)g(mak)o
+(e)f(a)h(mo)q(di\014cation)e(to)j(F)m(unnelW)m(eb)f(and)g(send)h(it)f(to)h
+(me)e(for)h(inclusion)g(in)g(the)h(o\016cial)281 2165 y(v)o(ersion,)d(I)f
+(will)g(not)g(incorp)q(orate)h(y)o(our)g(mo)q(di\014cation)d(un)o(til)i(I)h
+(ha)o(v)o(e)f(receiv)o(ed)i(a)e(signed)h(declaration)281 2214
+y(transferring)11 b(cop)o(yrigh)o(t.)17 b(I)11 b(will)e(prepare)k(suc)o(h)e
+(a)g(con)o(tract)h(when)f(the)h(\014rst)f(p)q(erson)h(sends)g(me)e(a)h(w)o
+(orth)o(y)281 2264 y(mo)q(di\014cation!)239 2341 y Fm(\017)21
+b Fn(If)12 b(y)o(ou)g(in)o(tend)h(to)f(mak)o(e)f(c)o(hanges)i(to)g(F)m
+(unnelW)m(eb)f(that)g(are)h(so)g(massiv)o(e)e(that)i(they)g(will)e(in)o(v)o
+(olv)o(e)g(wide-)281 2391 y(scale)i(mo)q(di\014cation)e(of)h(the)i(source)g
+(\014les,)f(and)g(y)o(ou)f(w)o(an)o(t)h(the)g(mo)q(di\014cation)e(to)i(b)q(e)
+g(part)g(of)g(the)g(o\016cial)281 2441 y(v)o(ersion,)j(it)g(migh)o(t)e(b)q(e)
+j(a)f(go)q(o)q(d)f(idea)h(to)g(con)o(tact)h(me)e(b)q(efore)i(doing)e(so.)25
+b(There)17 b(are)f(t)o(w)o(o)g(reasons)h(for)281 2491 y(doing)11
+b(this.)18 b(First,)12 b(it)g(allo)o(ws)f(me)h(a)g(c)o(hance)h(to)f(commen)o
+(t)e(on)i(y)o(our)h(prop)q(osed)g(mo)q(di\014cations)d(and)i(giv)o(e)281
+2540 y(m)o(y)i(opinion)g(on)i(whether)h(they)f(are)g(lik)o(ely)e(to)i(b)q(e)g
+(incorp)q(orated)g(in)o(to)f(the)i(o\016cial)d(v)o(ersion.)23
+b(Second,)281 2590 y(I)16 b(can)f(send)i(y)o(ou)e(a)g(cop)o(y)h(\(under)h(sp)
+q(ecial)e(license\))i(of)e(the)h(GNU-clean)g(o\016cial)e(v)o(ersion)i(to)f(w)
+o(ork)g(on.)281 2640 y(This)f(will)e(allo)o(w)g(y)o(ou)i(to)g(ship)f(bac)o(k)
+h(y)o(our)g(c)o(hanges)h(as)e(\014les)i(rather)f(than)g(as)g(c)o(hange)h
+(sections.)177 2735 y(As)h(a)g(separate)h(p)q(oin)o(t)e(from)f(the)i(legal)f
+(issues,)h(I)g(am)e(lik)o(ely)g(to)i(turn)g(out)g(to)f(b)q(e)i(prett)o(y)f
+(pic)o(ky)f(ab)q(out)h(what)177 2785 y(mo)q(di\014cations)10
+b(I)j(will)d(incorp)q(orate)j(in)o(to)e(the)i(o\016cial)e(cop)o(y)m(.)17
+b(Whether)c(a)f(mo)q(di\014cation)e(will)h(b)q(e)h(accepted)i(will)177
+2835 y(dep)q(end,)h(amongst)d(other)j(things,)e(on)h(the)g(follo)o(wing)d
+(criteria.)1042 2940 y(40)p eop
+%%Page: 41 42
+41 41 bop 239 42 a Fm(\017)21 b Fn(Do)q(es)11 b(the)g(mo)q(di\014cation)e
+(\014t)i(in)f(with)h(the)g(design)g(goals)f(of)g(F)m(unnelW)m(eb,)h(or)f(is)h
+(it)f(just)h(a)g(case)h(of)e(creeping)281 91 y(featurism?)239
+174 y Fm(\017)21 b Fn(Ho)o(w)13 b(w)o(ell)h(co)q(ded)g(is)g(the)h(mo)q
+(di\014cation?)h(W)m(ould)c(it)i(reduce)h(the)g(qualit)o(y)d(of)h(the)i(co)q
+(de?)239 257 y Fm(\017)21 b Fn(If)14 b(the)i(mo)q(di\014cation)d(c)o(hanges)i
+(F)m(unnelW)m(eb's)g(functionalit)o(y)m(,)d(is)j(this)g(a)g(desirable)g(c)o
+(hange?)22 b(Ho)o(w)14 b(will)281 307 y(it)f(impact)g(on)g(existing)h(users?)
+239 390 y Fm(\017)21 b Fn(W)m(ould)13 b(it)g(b)q(e)i(quic)o(k)o(er)f(for)g
+(me)f(to)h(mak)o(e)f(the)h(mo)q(di\014cation)e(m)o(yself)h(than)h(to)g(w)o
+(ork)f(out)h(ho)o(w)g(to)g(incor-)281 440 y(p)q(orate)g(the)h(submitted)e(mo)
+q(di\014cation?)177 556 y(It)g(is)f(m)o(y)f(goal)h(to)g(guard)h(the)g(in)o
+(tegrit)o(y)f(of)g(the)h(design)g(and)f(co)q(de)i(of)e(the)h(o\016cial)e(v)o
+(ersion)i(of)f(F)m(unnelW)m(eb)g(and)177 606 y(so)h(I)g(will)e(probably)h(b)q
+(e)h(rather)h(fussy)f(ab)q(out)f(what)h(I)f(regard)i(as)e(a)h(w)o(orth)o
+(while)f(mo)q(di\014cation.)j(I)e(do)f(not)h(wish)177 656 y(to)h(lose)g(con)o
+(trol)f(of)h(the)g(co)q(de,)g(either)h(tec)o(hnically)f(or)g(legally)m(.)177
+818 y Fe(3.8)70 b(A)23 b(GNU)f(V)-6 b(ersion?)177 934 y Fn(The)18
+b(con)o(trols)f(on)f(the)i(o\016cial)d(v)o(ersion)i(of)g(F)m(unnelW)m(eb)f
+(describ)q(ed)j(in)d(the)i(previous)f(section)h(will)d(ha)o(v)o(e)i(at)177
+984 y(most)d(a)h(minor)e(impact)h(on)h(F)m(unnelW)m(eb)g(dev)o(elopmen)o(t)f
+(if)h(F)m(unnelW)m(eb)f(already)h(serv)o(es)i(the)f(needs)g(of)f(most)177
+1034 y(of)k(its)h(users.)36 b(Ho)o(w)o(ev)o(er,)21 b(if)e(it)g(turns)h(out)g
+(that)f(F)m(unnelW)m(eb)g(is)h(b)q(oth)g(p)q(opular,)g Fh(and)g
+Fn(needs)h(widespread)177 1083 y(mo)q(di\014cations)13 b(and)h(enhancemen)o
+(ts,)h(then)g(the)g(o\016cial)e(feedbac)o(k)i(lo)q(op)e(describ)q(ed)j(in)e
+(the)h(previous)g(section)177 1133 y(will)e(b)q(ecome)g(un)o(w)o(ork)n(able,)
+g(and)h(there)h(will)d(b)q(e)j(a)e(GNU)h(break)o(out.)177 1208
+y(A)g Fk(GNU)i(break)o(out)c Fn(will)g(o)q(ccur)j(if)e(F)m(unnelW)m(eb)g
+(users)j(b)q(ecome)d(organized)h(enough)g(and)g(anno)o(y)o(ed)g(enough)177
+1258 y(\(at)20 b(the)h(o\016cial)d(dev)o(elopmen)o(t)h(cycle\))i(to)f(start)g
+(main)o(taining)d(a)j(coheren)o(t)h(v)o(ersion)f(of)f(F)m(unnelW)m(eb)h(that)
+177 1307 y(div)o(erges)f(from)d(the)j(o\016cial)e(v)o(ersion.)31
+b(If)18 b(a)g(GNU)g(break)o(out)g(o)q(ccurs,)i(I)e(w)o(ould)g(appreciate,)h
+(as)g(requested)177 1357 y(earlier,)14 b(that)g(a)f(di\013eren)o(t)i(name)e
+(and)h(\014le)f(extensions)i(b)q(e)g(c)o(hosen)g(for)e(the)i(div)o(erging)e
+(v)o(ersion.)177 1519 y Fe(3.9)70 b(Summary)177 1635 y Fn(Decen)o(tralized)21
+b(mo)q(di\014cations)d(to)i(a)f(programming)d(language)j(and)h(its)g
+(implemen)o(tatio)o(ns)e(can)i(seriously)177 1685 y(damage)12
+b(the)i(language's)f(p)q(ortabilit)o(y)f(and)i(seman)o(tic)e(clarit)o(y)m(.)
+17 b(Unfortunately)m(,)c(there)i(is)e(a)g(tension)h(b)q(et)o(w)o(een)177
+1735 y(cen)o(tralizing)c(con)o(trol)g(of)f(a)h(programmi)o(ng)d(language)i
+(and)h(pro)o(viding)f(source)i(co)q(de)g(securit)o(y)g(to)f(nerv)o(ous)h
+(users.)177 1785 y(In)k(F)m(unnelW)m(eb,)e(this)i(trade-o\013)g(has)g(b)q
+(een)g(resolv)o(ed)g(to)g(some)e(exten)o(t)j(b)o(y)e(releasing)h(the)g
+(source)h(co)q(de)f(along)177 1835 y(with)h(a)g(request)i(that)e(if)g(the)g
+(functionalit)o(y)f(of)h(the)h(program)d(is)i(mo)q(di\014ed,)f(that)i(the)g
+(program's)d(name)h(b)q(e)177 1884 y(c)o(hanged)d(and)g(a)f(di\013eren)o(t)i
+(\014le)e(extension)i(b)q(e)f(c)o(hosen)h(for)e(input)h(\014les)g(created)h
+(under)f(the)h(mo)q(di\014ed)d(program.)177 1934 y(The)k(author)g(of)f(F)m
+(unnelW)m(eb)g(has)g(decided)i(to)e(main)o(tain)e(an)i(o\016cial)g(v)o
+(ersion)g(of)g(F)m(unnelW)m(eb)g(o)o(v)o(er)h(whic)o(h)f(he)177
+1984 y(will)h(o)o(wn)h(cop)o(yrigh)o(t,)g(but)h(whic)o(h)f(he)h(will)e
+(release)j(under)f(GNU)f(license)i(from)c(time)h(to)i(time.)21
+b(This)16 b(means)177 2034 y(that)g(cop)o(yrigh)o(t)f(on)h(all)e(c)o(hanges)j
+(to)e(F)m(unnelW)m(eb)h(m)o(ust)e(b)q(e)j(signed)f(o)o(v)o(er)f(to)h(the)g
+(author)g(b)q(efore)h(they)f(ha)o(v)o(e)177 2084 y(a)g(c)o(hance)i(of)e(b)q
+(eing)h(incorp)q(orated)g(in)f(the)h(o\016cial)e(v)o(ersion.)27
+b(Finally)m(,)14 b(it)j(is)f(p)q(ossible)h(that)g(this)f(reluctance)177
+2133 y(of)e(the)h(author)f(to)g(remo)o(v)o(e)f(his)h(cop)o(yrigh)o(ted)h(v)o
+(ersion)f(from)e(the)j(dev)o(elopmen)o(t)e(cycle)i(of)f(the)h(o\016cial)e(v)o
+(ersion)177 2183 y(will)e(result)j(in)e(a)g(GNU)h(break)o(out)g(in)f(whic)o
+(h)g(a)h(div)o(erging)e(GNU)i(v)o(ersion)f(of)h(F)m(unnelW)m(eb)f(will)f(b)q
+(e)i(main)o(tained)177 2233 y(b)o(y)h(the)g(GNU)g(comm)o(unit)o(y)m(.)h(The)f
+(author)g(hop)q(es)h(this)f(w)o(on't)f(b)q(e)i(necessary)h(and)e(requests,)h
+(if)e(this)h(happ)q(ens,)177 2283 y(that)g(the)h(div)o(erging)e(GNU)g(v)o
+(ersion)h(b)q(e)h(renamed.)1042 2940 y(41)p eop
+%%Page: 42 43
+42 42 bop 1042 2940 a Fn(42)p eop
+%%Page: 43 44
+43 43 bop 177 376 a Ff(Chapter)34 b(4)177 607 y Fl(F)-10 b(unnelW)g(eb)41
+b(F)-10 b(uture)177 847 y Fn(Previous)13 b(c)o(hapters)h(ha)o(v)o(e)f
+(explained)f(the)h(design)g(of)f(F)m(unnelW)m(eb)g(and)h(giv)o(en)f(reasons)i
+(for)e(wh)o(y)g(it)h(is)f(the)h(w)o(a)o(y)177 897 y(it)i(is.)24
+b(This)15 b(c)o(hapter)i(go)q(es)f(through)g(eac)o(h)g(of)f(the)i(asp)q(ects)
+g(of)e(F)m(unnelW)m(eb,)g(and)h(explores)g(their)g(problems,)177
+946 y(ho)o(w)e(they)g(can)g(b)q(e)h(solv)o(ed,)e(and)h(lists)f(opp)q
+(ortunities)i(for)e(impro)o(v)o(emen)o(t.)177 1107 y Fe(4.1)70
+b(Do)r(cumen)n(tation)177 1221 y Fk(An)12 b(o\016cial)f(example:)16
+b Fn(A)11 b(o\016cial)e(example)h(program)f(written)j(using)e(F)m(unnelW)m
+(eb)h(should)f(b)q(e)i(constructed)177 1271 y(and)i(made)f(a)o(v)n(ailable.)
+177 1344 y Fk(Index)20 b(program:)26 b Fn(In)19 b(order)f(to)h(t)o(yp)q(eset)
+g(the)g(do)q(cumen)o(tation,)f(a)g(p)q(ortable)g(index)g(sorting)g(program)f
+(is)177 1394 y(required.)31 b(One)19 b(should)e(b)q(e)i(written)f(and)g
+(added)g(to)g(the)g(distribution)g(kit.)29 b(P)o(erhaps)19
+b(this)f(could)g(b)q(e)g(the)177 1444 y(o\016cial)13 b(example!)177
+1604 y Fe(4.2)70 b(Command)22 b(Line)g(In)n(terface)177 1719
+y Fk(Bu\013er)14 b(length:)i Fn(Curren)o(tly)d(the)h(F)m(unnelW)m(eb)e(shell)
+h(uses)i(the)e Fi(COMLINE)p 1368 1719 14 2 v 15 w(MAX)f Fn(constan)o(t)h(to)g
+(size)h(its)f(in)o(ternal)177 1768 y(command)h(line)h(bu\013ers.)27
+b(This)16 b(is)g(un)o(tenable.)25 b(The)17 b(maxim)n(um)12
+b(length)k(of)g(a)g(shell)g(command)d(line)j(should)177 1818
+y(not)e(b)q(e)g(mac)o(hine)f(dep)q(enden)o(t.)177 1892 y Fk(An)o(tiquated)h
+(F)l(eatures:)k Fn(As)d(the)g(F)m(unnelW)m(eb)e(language)h(dev)o(elops,)g(it)
+g(is)g(lik)o(ely)f(that)i(some)e(c)o(hanges)i(will)177 1941
+y(ha)o(v)o(e)g(to)g(b)q(e)h(made)d(that)i(will)f(render)j(one)e(or)g(more)f
+(language)g(constructs)j(obsolete.)22 b(When)15 b(this)g(happ)q(ens,)177
+1991 y(it)e(ma)o(y)d(b)q(e)k(necessary)h(to)d(add)h(a)g(command)d(line)i
+(option)g(that)h(has)g(the)g(p)q(o)o(w)o(er)g(to)g(turn)g(on)g(and)f(o\013)h
+(w)o(arnings)177 2041 y(or)h(errors)h(\015agging)e(an)o(tiquated)g(features.)
+177 2201 y Fe(4.3)70 b(Shell)21 b(In)n(terpreter)177 2316 y
+Fk(SET)l(ALL)f(command:)25 b Fn(When)17 b(writing)g(F)m(unnelW)m(eb)g
+(scripts,)i(it)e(is)h(sometimes)e(desirable)i(to)f(set)h Fh(al)r(l)f
+Fn(of)177 2366 y(F)m(unnelW)m(eb's)f(options)h(to)f(some)g(particular)h(v)n
+(alue)f(so)h(that)f(the)i(script)f(is)g(not)f(vulnerable)h(to)g(c)o(hanges)g
+(in)177 2415 y(F)m(unnelW)m(eb's)e(default)h(v)n(alues)f(whic)o(h)h(migh)o(t)
+e(o)q(ccur)i(from)e(time)h(to)h(time.)22 b(T)m(o)15 b(this)h(end,)g(it)g(ma)o
+(y)d(b)q(e)k(w)o(orth)177 2465 y(creating)c(a)f(\\)p Fi(SETALL)p
+Fn(")f(command)f(that)i(is)h(iden)o(tical)e(to)i(the)g(\\)p
+Fi(SET)p Fn(")e(command)f(except)k(that)e(it)g(will)f(generate)177
+2515 y(an)j(error)h(if)e(the)h(v)n(alue)f(of)h(an)f(option)g(is)h(not)g(sp)q
+(eci\014ed)h(explicitly)m(.)177 2588 y Fk(Recursion)f(test:)j
+Fn(A)d(test)h(should)f(b)q(e)g(added)h(to)e(test)i(for)f(recursiv)o(e)h(in)o
+(v)o(o)q(cation)e(in)g(a)h(shellscript.)177 2662 y Fk(Diagnostic)e(coun)o
+(ting:)j Fn(The)e(co)q(de)g(for)f(coun)o(ting)g(diagnostics)h(in)f(the)h
+(script)g(in)o(terpreter)h(is)f(rather)g(messy)177 2711 y(and)h(p)q(erhaps)h
+(ev)o(en)f(buggy)m(.)k(It)13 b(should)h(b)q(e)h(cleaned)f(up)g(and)g(commen)o
+(ted.)177 2785 y Fk(Argumen)o(t)i(coun)o(ting:)j Fn(In)c(the)h
+Fi(command.c)e Fn(mo)q(dule,)g(there)j(is)e(a)g(v)n(ariable)g(that)g(coun)o
+(ts)h(the)h(argumen)o(ts)177 2835 y(to)d(a)g(command.)j(Curren)o(tly)d(it)g
+(tak)o(es)h(the)g(v)n(alue)e(of)h(the)h(n)o(um)o(b)q(er)e(of)h(parameters)g
+(including)g(the)h(command)1042 2940 y(43)p eop
+%%Page: 44 45
+44 44 bop 177 42 a Fn(v)o(erb.)19 b(This)13 b(has)g(turned)i(out)e(to)g(mak)o
+(e)f(the)i(co)q(de)g(less)h(readable.)j(It)13 b(should)g(b)q(e)h(c)o(hanged)g
+(to)f(b)q(e)h(the)g(n)o(um)o(b)q(er)177 91 y(of)f(argumen)o(ts)h(to)f(the)i
+(command)c(v)o(erb.)177 168 y Fk(Mak)o(e)k(facilit)o(y:)h Fn(It)d(ma)o(y)e(b)
+q(e)i(w)o(orth)g(building)f(some)g(sort)h(of)f(mak)o(e)g(facilit)o(y)f(in)o
+(to)h(the)i(script)g(language)e(so)h(as)177 218 y(to)h(supp)q(ort)h(mac)o
+(hines)e(suc)o(h)h(as)g(the)h(Macin)o(tosh)f(that)f(do)h(not)g(already)f(ha)o
+(v)o(e)h(this)g(facilit)o(y)m(.)177 295 y Fk(Signature)d(\014le:)17
+b Fn(One)c(problem)f(with)g(using)g(F)m(unnelW)m(eb)g(in)g(conjunction)g
+(with)h(an)f(external)h Fi(Make)e Fn(facilit)o(y)177 345 y(is)k(that)h(a)f
+(user)h(migh)o(t)d(c)o(hange)j(a)f(F)m(unnelW)m(eb)g(source)h(\014le)g
+(without)f(making)e(c)o(hanges)j(that)f(will)f(a\013ect)i(the)177
+395 y(\014les)g(that)f(it)f(generates.)24 b(If)14 b(F)m(unnelW)m(eb)h(is)g
+(then)h(run)f(and)g(the)h(\\)p Fi(+D)p Fn(")e(option)g(is)h(on,)g(then)g(the)
+h(output)f(\014les)177 445 y(will)g(b)q(e)i(deleted)h(\(to)f(a)o(v)o(oid)e
+(further)i Fi(Make)f Fn(propagations\).)25 b(If)17 b Fi(Make)e
+Fn(then)i(has)g(a)f(pro)q(duction)h(linking)e(the)177 495 y
+Fi(.fw)d Fn(\014le)h(to)g(its)g(output)g(\014les,)g(then)g(it)g(ma)o(y)e
+(conclude)i(that)g(the)g(output)g(\014les)h(are)f(still)f(out)h(of)f(date.)18
+b(T)m(o)12 b(solv)o(e)177 544 y(the)17 b(problem,)e(F)m(unnelW)m(eb)h(could)h
+(b)q(e)g(c)o(hanged)f(to)h(write)f(a)g Fi(.sig)g Fn(\014le)g(whenev)o(er)i
+(it)e(pro)q(cesses)j(a)e Fi(.fw)e Fn(\014le.)177 594 y(The)g
+Fi(Make)e Fn(pro)q(duction)h(could)f(then)i(b)q(e)f(wired)h(up)f(to)f(link)g
+(the)i Fi(.fw)e Fn(\014le)h(to)g(the)g Fi(.sig)f Fn(\014le)h(instead)g(of)f
+(to)h(the)177 644 y(output)g(\014les.)177 814 y Fe(4.4)70 b(Language)24
+b(Design)177 933 y Fn(Some)13 b(prop)q(osed)i(c)o(hanges)g(to)f(F)m(unnelW)m
+(eb)f(do)h(not)g(corresp)q(ond)i(to)e(an)o(y)f(particular)h(comp)q(onen)o(t)g
+(of)f(F)m(unnel-)177 983 y(W)m(eb)h(and)f(are)i(really)e(to)h(do)f(with)h
+(the)g(design)h(of)e(the)h(input)g(language.)177 1060 y Fk(Output)c(or)h
+(\014le?:)16 b Fn(The)11 b(\\)p Fi(@O)p Fn(")e(sp)q(ecial)i(sequence)i(for)d
+(de\014ning)h(an)f(output)h(\014le)g(is)f(somewhat)g(non-mnemoni)o(c)177
+1110 y(and)k(can)g(b)q(e)g(confused)h(with)f(zero)h(\(\\)p
+Fi(0)p Fn("\).)i(P)o(erhaps)e(it)e(should)h(b)q(e)h(replaced)g(b)o(y)e(the)i
+(\\)p Fi(@F)p Fn(")e(sequence.)177 1187 y Fk(Syn)o(tax)j(of)h(section)f
+(names:)k Fn(Curren)o(tly)15 b(section)h(names)e(use)i(the)g(same)e(syn)o
+(tax)h(as)g(macro)f(names.)21 b(F)m(or)177 1236 y(example)16
+b(\\)p Fi(@<Sloth@>)p Fn(".)25 b(It)17 b(can)h(b)q(e)f(argued)h(that)f(angle)
+f(brac)o(k)o(ets)i(should)f(b)q(e)h(reserv)o(ed)h(only)d(for)h(macro)177
+1286 y(names)f(and)h(that)f(some)g(other)i(syn)o(tax)e(should)h(b)q(e)g
+(found)g(for)f(delimiting)e(section)j(names.)26 b(This)17 b(is)f(not)h(a)177
+1336 y(clear)12 b(issue.)18 b(It)11 b(could)h(also)e(b)q(e)j(argued)e(that)h
+(they)g(are)g(b)q(oth)f(names,)g(and)g(that)g(b)q(ecause)j(sections)e(can)g
+(inherit)177 1386 y(their)i(names)g(from)e(the)i(macros)f(they)i(con)o(tain,)
+e(that)g(the)i(names)e(are)h(of)g(the)g(same)f(\\t)o(yp)q(e".)177
+1463 y Fk(One)i(macro)f(p)q(er)h(section:)i Fn(One)d(particular)f(st)o(yle)g
+(of)g(using)g(F)m(unnelW)m(eb)f(is)h(to)g(ha)o(v)o(e)g(at)h(most)e(one)h
+(macro)177 1513 y(de\014nition)f(p)q(er)h(section.)19 b(It)12
+b(ma)o(y)f(b)q(e)i(w)o(orth)f(adding)g(a)g(pragma)e(that)j(instructs)h(F)m
+(unnelW)m(eb)d(to)i(enforce)g(this.)177 1590 y Fk(Should)i(@)p
+Fm(f)i Fk(suppress)e(EOL?:)20 b Fn(When)15 b(de\014ning)g(a)g(macro)f(in)h(F)
+m(unnelW)m(eb,)f(it)h(seems)g(to)g(b)q(e)h(rule)f(rather)177
+1640 y(than)f(the)h(exception)f(that)g(the)h(\\)p Fi(@)p Fm(f)p
+Fn(")e(b)q(e)h(follo)o(w)o(ed)f(b)o(y)g(\\)p Fi(@-)p Fn(".)18
+b(This)13 b(suppresses)k(the)e(EOL)f(on)g(the)g(de\014nition)177
+1690 y(line,)e(allo)o(wing)f(the)i(\014rst)h(line)e(of)h(the)g(macro)f(to)g
+(b)q(e)i(placed)f(immedia)o(tely)d(ab)q(o)o(v)o(e)j(and)f(in)h(line)f(with)h
+(the)g(other)177 1739 y(lines)k(without)g(in)o(tro)q(ducing)g(an)f(EOL)i(at)f
+(the)g(start)h(of)f(the)g(macro)f(text.)28 b(One)18 b(option)e(is)h(to)g(in)o
+(tro)q(duce)h(a)177 1789 y(pragma)12 b(to)i(determine)g(whether)h(to)f
+(suppress)i(EOLs)e(follo)o(wing)e(\\)p Fi(@)p Fm(f)p Fn(".)177
+1866 y Fk(Pragma)20 b(syn)o(tax:)26 b Fn(It)18 b(is)g(not)g(clear)g(ho)o(w)g
+(\\lo)q(ose")f(the)i(syn)o(tax)f(of)f(pragmas)g(should)g(b)q(e.)31
+b(P)o(erhaps)19 b(they)177 1916 y(should)14 b(b)q(e)g(case)h(insensitiv)o(e.)
+177 1993 y Fk(Conditional)o(s:)23 b Fn(Dep)q(ending)17 b(on)g(demand,)g(it)g
+(ma)o(y)e(b)q(e)j(w)o(orth)g(rein)o(tro)q(ducing)f(some)g(sort)g(of)g
+(conditional)177 2043 y(feature)g(in)o(to)f(F)m(unnelW)m(eb.)24
+b(Ho)o(w)o(ev)o(er,)17 b(it)e(w)o(ould)h(ha)o(v)o(e)g(to)g(b)q(e)h(v)o(ery)f
+(simple)f(to)h(comp)q(ete)g(with)g(the)g(v)n(arious)177 2093
+y(w)o(a)o(ys)e(in)f(whic)o(h)h(conditionals)f(can)h(already)f(b)q(e)i(fudged)
+f(within)f(F)m(unnelW)m(eb)g(as)h(it)g(stands.)177 2170 y Fk(File)h(mark)o
+(ers:)20 b Fn(It)14 b(migh)o(t)f(b)q(e)i(w)o(orth)g(mo)q(difying)d(the)j
+(language)f(so)h(that)f(a)h(sp)q(ecial)g(syn)o(tactical)f(mark)o(er)g(is)177
+2220 y(required)d(at)f(the)h(start)g(and)f(end)g(of)g(\014les.)17
+b(This)10 b(will)f(assist)h(in)g(detecting)h(truncations)g(and)f(other)h
+(corruptions.)177 2297 y Fk(F)l(ormal)i(parameter)g(lists:)j
+Fn(It)d(migh)o(t)d(b)q(e)j(w)o(orth)g(c)o(hanging)f(o)o(v)o(er)g(to)h(a)f
+(syn)o(tax)g(for)h(formal)d(parameter)i(lists)177 2347 y(that)k(do)q(es)h
+(not)g(require)g(the)f Fi(@\()g Fn(and)g Fi(@\))p Fn(.)25 b(Ho)o(w)o(ev)o
+(er,)17 b(they)f(could)g(b)q(e)h(retained)g(as)f(optional)f(for)h(bac)o(kw)o
+(ard)177 2396 y(compatibilit)o(y)m(.)177 2566 y Fe(4.5)70 b(Scanner/Mapp)r
+(er)177 2685 y Fk(All)17 b(non-con)o(tiguo)o(us)e(mappings:)21
+b Fn(Curren)o(tly)c(F)m(unnelW)m(eb)e(requires)i(that)g(all)e(input)g
+(\014les)i(b)q(e)g(mapp)q(ed)177 2735 y(in)o(to)e(a)g(con)o(tiguous)g(lump)f
+(of)h(memory)m(.)20 b(This)15 b(caused)i(problems)e(for)g(t)o(w)o(o)g
+(reasons.)24 b(First,)15 b(to)h(do)f(this,)h(one)177 2785 y(has)c(to)g(allo)q
+(cate)f(the)h(memory)d(\014rst,)k(and)e(to)h(do)f(that,)h(y)o(ou)f(ha)o(v)o
+(e)h(to)f(kno)o(w)g(ho)o(w)h(long)f(the)h(\014le)g(is,)f(and)h(it)f(turns)177
+2835 y(out)j(that)g(\014nding)g(out)g(the)g(length)g(of)f(a)h(\014le)g(in)g
+(a)f(p)q(ortable)i(manner)e(is)h(v)o(ery)g(ine\016cien)o(t.)k(Second,)d
+(although)1042 2940 y(44)p eop
+%%Page: 45 46
+45 45 bop 177 42 a Fn(IBM)14 b(PC)f(compatibles)f(ma)o(y)f(ha)o(v)o(e)i
+(megab)o(ytes)g(of)g(memory)m(,)d(it)i(is)i(segmen)o(ted)f(in)o(to)f(blo)q(c)
+o(ks)i(of)e(at)h(most)f(64K.)177 91 y(This)i(means)f(that)h(F)m(unnelW)m(eb)f
+(curren)o(tly)i(cannot)f(read)h(a)e(\014le)h(longer)g(than)g(64K)f(on)h(a)f
+(PC.)177 168 y(These)j(problems)d(could)i(b)q(e)g(a)o(v)o(oided)e(if)h(the)h
+(mapp)q(er)f(and)g(scanner)i(w)o(ere)f(reorganized)g(to)f(allo)o(w)f(input)h
+(\014les)177 218 y(to)g(b)q(e)g(read)h(in)e(and)h(stored)h(as)f(a)f(link)o
+(ed)h(list)f(of)g(c)o(h)o(unks)i(of)e(text)h(rather)h(than)f(a)g(con)o
+(tiguous)f(blo)q(c)o(k.)177 295 y Fk(EOL)h(is)g(unsp)q(eci\014abl)o(e:)h
+Fn(F)m(unnelW)m(eb)d(uses)h(ASCI)q(I)g(c)o(haracter)h(decimal)d(ten)i(\(10\))
+f(in)o(ternally)f(to)h(represen)o(t)177 345 y(logical)g(end-of-line)g(and)h
+(is)g(curren)o(tly)h(organized)f(so)g(that)g(if)g(one)g(of)g(these)h(is)f
+(inserted)h(in)o(to)f(the)h(text)f(b)o(y)g(the)177 395 y(user)g(using)e(a)h
+(\\)p Fi(@^D\(10\))p Fn(",)d(it)j(will)e(b)q(e)i(written)h(out)e(as)h(a)f
+(logical)f(end)i(of)g(line,)f(rather)h(than)g(as)g(a)f(single)h(ASCI)q(I)177
+445 y(c)o(haracter)j(10.)j(This)c(should)f(b)q(e)i(\014xed.)177
+522 y Fk(Allo)o(w)g(mnemonics)f(for)i(unprin)n(tabl)o(es:)g
+Fn(F)m(unnelW)m(eb)e(allo)o(ws)f(users)j(to)e(insert)h(unprin)o(table)f(c)o
+(haracters)177 572 y(in)o(to)i(the)h(output)f(using)g(the)h(\\)p
+Fi(@^D\(ddd\))p Fn(")d(sp)q(ecial)i(sequence.)28 b(P)o(erhaps)17
+b(it)f(w)o(ould)f(b)q(e)i(c)o(hanged)g(so)f(that)g(it)177 622
+y(understands)g(ASCI)q(I)e(standard)g(mnemonics)e(suc)o(h)i(as)g(\\)p
+Fi(LF)p Fn(")f(as)h(w)o(ell)f(as)h(ASCI)q(I)h(n)o(um)o(b)q(ers.)177
+699 y Fk(V)l(ersion)h(pragma:)22 b Fn(A)16 b(\\)p Fi(version)p
+Fn(")e(pragma)g(should)h(b)q(e)i(added)f(that)g(allo)o(ws)e(the)j(user)g(to)e
+(sp)q(ecify)i(in)e(the)177 749 y(input)g(\014le)h(the)g(v)o(ersion)g(of)e(F)m
+(unnelW)m(eb)h(that)h(w)o(as)f(around)h(when)g(the)g(input)f(\014le)g(w)o(as)
+h(created.)24 b(A)o(t)16 b(a)f(later)177 799 y(date,)g(suc)o(h)h(a)e
+(construct)j(w)o(ould)d(b)q(e)i(v)o(ery)f(useful)g(for)f(determining)g(ho)o
+(w)h(an)f(input)h(\014le)g(should)g(b)q(e)g(up)q(dated)177
+848 y(if)e(the)i(F)m(unnelW)m(eb)e(language)g(has)h(c)o(hanged)g(b)q(et)o(w)o
+(een)i(v)o(ersions.)177 1018 y Fe(4.6)70 b(P)n(arser)177 1138
+y Fn(There)15 b(are)g(no)e(prop)q(osals)h(to)g(c)o(hange)g(the)h(parser)g
+(except)g(as)f(a)f(consequence)k(of)c(other)h(prop)q(osals.)177
+1308 y Fe(4.7)70 b(Analyser)177 1427 y Fk(Recursion)11 b(detection:)k
+Fn(Curren)o(tly)d(the)h(F)m(unnelW)m(eb)e(analyser)h(\015ags,)f(with)h(an)f
+(error,)i(all)e(macros)g(with)g(an)177 1477 y(in\014nite)g(expansion.)17
+b(This)12 b(w)o(ould)e(b)q(e)i(b)q(est)g(c)o(hanged)g(to)f(\015agging)f(all)g
+(macros)h(that)g(are)h(directly)g(or)f(indirectly)177 1526
+y(recursiv)o(e.)19 b(T)m(o)11 b(do)g(this,)g(T)m(arjan's)g(algorithm)p
+Fk([T)l(arjan72])d Fn(for)k(the)g(detection)g(of)f(strong)h(comp)q(onen)o(ts)
+f(should)177 1576 y(b)q(e)k(installed.)177 1653 y Fk(Once)h(only)g(macros:)k
+Fn(By)15 b(default)f(F)m(unnelW)m(eb)g(prev)o(en)o(ts)i(a)f(macro)e(from)g(b)
+q(eing)h(called)h(more)e(than)i(once)177 1703 y(unless)g(it)e(has)h(a)f(\\)p
+Fi(@M)p Fn(")g(asso)q(ciated)h(with)g(it.)j(Ho)o(w)o(ev)o(er,)d(F)m(unnelW)m
+(eb)f(do)q(es)i(allo)o(w)d(a)h(macro)g(that)g(calls)h(suc)o(h)g(a)177
+1753 y(macro)f(to)h(b)q(e)g(called)g(more)f(than)g(once.)19
+b(P)o(erhaps)c(this)f(\\lo)q(ophole")e(should)i(b)q(e)h(plugged)e(someho)o
+(w.)177 1923 y Fe(4.8)70 b(T)-6 b(angle)177 2042 y Fn(The)12
+b(T)m(angler)f(is)h(one)g(of)f(the)i(cleanest)g(comp)q(onen)o(ts)e(of)g(F)m
+(unnelW)m(eb,)g(as)h(basically)f(all)f(it)i(has)g(to)f(do)h(is)g(expand)177
+2092 y(some)h(v)o(ery)h(w)o(ell-de\014ned)h(macros.)177 2169
+y Fk(T)l(ext)23 b(inden)o(tati)o(on)o(:)28 b Fn(Curren)o(tly)21
+b(F)m(unnelW)m(eb)e(supp)q(orts)j Fh(no)f(indentation)g Fn(and)f
+Fh(blank)g(indentation)p Fn(.)38 b(A)177 2219 y(third)17 b(form)d(could)j(b)q
+(e)g(added)g(if)e(it)h(w)o(as)h(considered)g(necessary)m(.)28
+b Fh(T)m(ext)17 b(indentation)g Fn(is)f(the)h(same)f(as)g Fh(blank)177
+2269 y(indentation)g Fn(except)h(that)e(instead)g(of)g(inden)o(ting)f(with)h
+(blanks,)g(F)m(unnelW)m(eb)f(w)o(ould)g(inden)o(t)i(with)e(the)i(text)177
+2319 y(to)g(the)h(left)f(of)g(the)h(called)f(macro.)24 b(This)16
+b(facilit)o(y)f(could)h(b)q(e)h(useful)f(for)g(commen)o(ting)d(out)k(large)f
+(b)q(o)q(dies)g(of)177 2369 y(text)f(in)f(languages)h(that)f(do)h(not)f(ha)o
+(v)o(e)g(m)o(ulti-line)e(commen)o(ts)h(\(e.g.)20 b(Ada\).)g(A)15
+b(discussion)g(of)f(the)h(pros)g(and)177 2418 y(cons)g(of)e(this)h(form)e(of)
+h(inden)o(tation)h(app)q(ears)g(earlier.)177 2588 y Fe(4.9)70
+b(W)-6 b(ea)n(v)n(e)177 2708 y Fn(P)o(erhaps)15 b(F)m(unnelW)m(eb's)e(w)o
+(eak)o(est)i(asp)q(ect)g(is)f(its)g(t)o(yp)q(esetting)h(facilit)o(y)m(.)177
+2785 y Fk(Align)g(table)h(of)h(con)o(ten)o(ts:)i Fn(When)c(F)m(unnelW)m(eb)f
+(generates)j(a)e(table)g(of)g(con)o(ten)o(ts,)h(the)f(section)h(n)o(um)o(b)q
+(ers)177 2835 y(are)e(not)g(quite)g(aligned)f(with)h(the)g(start)h(of)e(the)h
+(con)o(trolling)f(heading)h(ab)q(o)o(v)o(e)f(them.)1042 2940
+y(45)p eop
+%%Page: 46 47
+46 46 bop 177 42 a Fk(T)o(yp)q(esetting)20 b(strength:)27 b
+Fn(It)20 b(should)g(b)q(e)g(p)q(ossible)g(to)f(sp)q(ecify)h(the)g(lev)o(el)g
+(of)f(t)o(yp)q(esetting)h(strength)h(for)177 91 y(headings)16
+b(so)g(that)h(short)f(do)q(cumen)o(ts)g(do)g(not)g(lo)q(ok)f(o)o(v)o(erdone)h
+(when)h(t)o(yp)q(eset.)26 b(A)16 b(new)h(pragma)d(w)o(ould)h(b)q(e)177
+141 y(go)q(o)q(d)f(for)f(this.)177 222 y Fk(T)o(yp)q(eset)f(a)h(p)q(ortion:)i
+Fn(Sometimes)9 b(it)i(is)g(desirable)g(to)g(t)o(yp)q(eset)i(just)e(a)g(p)q
+(ortion)g(of)f(a)h(program.)k(A)d(command)177 272 y(line)g(option)f(could)h
+(b)q(e)g(added)g(to)g(do)g(this.)17 b(The)c(option)e(could)g(accept)j(as)e
+(its)g(argumen)o(t,)e(a)i(string)g(con)o(taining)177 322 y(a)i(list)f(of)g
+(section)i(n)o(um)o(b)q(ers)f(or)f(heading)h(names.)177 403
+y Fk(Generic)g(t)o(yp)q(esetter)f(option:)j Fn(In)e(addition)e(to)i(building)
+e(in)h(a)g(n)o(um)o(b)q(er)g(of)g(di\013eren)o(t)i(v)o(ersions)f(of)f(W)m(ea)
+o(v)o(e,)177 453 y(one)k(for)g(eac)o(h)g(p)q(opular)g(t)o(yp)q(esetter,)i(it)
+e(w)o(ould)f(b)q(e)h(p)q(ossible)g(to)g(add)g(a)f(sp)q(ecial)h(generic)h
+(format)d(where)j(the)177 503 y(t)o(yp)q(eset)h(output)e(is)g(expressed)i(in)
+e(terms)g(of)f Fh(F)m(unnelWeb)j(macr)n(os)p Fn(.)27 b(The)18
+b(user)g(could)f(then)g(sp)q(ecify)h(macro)177 552 y(de\014nitions)13
+b(for)g(a)f(non-supp)q(orted)i(t)o(yp)q(esetter)i(and)d(run)g(the)g(output)h
+(through)f(F)m(unnelW)m(eb)f(T)m(angle)g(to)h(get)g(a)177 602
+y(t)o(yp)q(eset)j(\014le)d(in)h(a)f(format)f(suitable)i(for)g(the)g(unsupp)q
+(orted)i(t)o(yp)q(esetter.)177 683 y Fk(Suppression)e(of)k(include)d
+(\014les:)21 b Fn(It)16 b(should)g(b)q(e)g(p)q(ossible)h(to)e(sp)q(ecify)i
+(in)e(the)i(input)e(\014le)h(that)g(particular)177 733 y(included)e(\014les)g
+(not)f(app)q(ear)h(in)f(the)h(t)o(yp)q(eset)h(output.)j(Curren)o(tly)m(,)13
+b(the)h(fact)f(that)g(an)h(inclusion)e(has)i(o)q(ccurred)177
+783 y(is)h(not)h(ev)o(en)g(represen)o(ted)i(in)d(the)h(t)o(yp)q(eset)g
+(output.)23 b(Suppression)16 b(of)f(inclusions)g(is)g(particularly)g
+(necessary)177 833 y(where)g(a)f(library)f(of)g(macros)g(has)h(b)q(een)h
+(included)f(at)g(the)h(top)e(of)h(eac)o(h)g(of)f(a)h(group)g(of)f(source)i
+(\014les.)177 914 y Fk(Cross)f(reference)e(of)i(iden)o(ti)o(\014ers)o(:)h
+Fn(WEB)e(pro)o(vides)f(a)g(list)g(of)g(iden)o(ti\014ers)h(and)f(a)g(list)g
+(of)g(all)f(the)i(de\014nitions)177 964 y(in)h(whic)o(h)f(they)i(are)f(used.)
+19 b(A)14 b(similar)d(feature)k(could)f(b)q(e)g(added)g(to)g(F)m(unnelW)m
+(eb.)177 1045 y Fk(Supp)q(ort)k(for)h(non-prin)n(tab)o(les)o(:)k
+Fn(Curren)o(tly)18 b(F)m(unnelW)m(eb)f(do)q(es)h(not)f(pro)o(vide)h(supp)q
+(ort)g(for)f(t)o(yp)q(esetting)177 1095 y(the)e(sp)q(ecial)f(\\)p
+Fi(@^\(num\))p Fn(")e(sequences.)20 b(This)14 b(should)g(b)q(e)g(added.)177
+1176 y Fk(Supp)q(ort)g(for)i(@+)h(sequences:)i Fn(Curren)o(tly)c(W)m(ea)o(v)o
+(e)f(do)q(es)h(not)f(see)i(\\)p Fi(@+)p Fn(")e(sequences)j(as)d(suc)o(h.)21
+b(Instead)15 b(it)177 1225 y(p)q(erceiv)o(es)h(them)d(as)h(ordinary)f(EOLs.)
+19 b(Ho)o(w)o(ev)o(er,)14 b(there)h(are)g(argumen)o(ts)e(for)g(t)o(yp)q
+(esetting)i(them)e(sp)q(ecially)m(.)177 1306 y Fk(T)o(yp)q(eset)e(text)h(in)f
+(macro)h(b)q(o)q(dies:)j Fn(One)d(of)e(the)h(m)o(uc)o(h-lo)o(v)o(ed)e
+(features)i(of)f(WEB)h(is)g(the)g(w)o(a)o(y)f(that)h(it)f(allo)o(ws)177
+1356 y(the)j(user)h(to)e(switc)o(h)h(recursiv)o(ely)g(b)q(et)o(w)o(een)h(do)q
+(cumen)o(t)e(and)g(program)f(formats.)16 b(F)m(unnelW)m(eb)c(do)q(es)h(not)f
+(allo)o(w)177 1406 y(this,)18 b(but)g(should.)29 b(In)17 b(F)m(unnelW)m(eb,)h
+(the)g(delimiters)f(\\)p Fi(@)p Fm(f)p Fn(")f(and)i(\\)p Fi(@)p
+Fm(g)p Fn(")e(are)i(already)f(used)i(consisten)o(tly)f(to)177
+1456 y(delimit)g(macro)g(text.)37 b(The)20 b(\\)p Fi(@[)p Fn(")f(and)g(\\)p
+Fi(@])p Fn(")g(sequences)j(ha)o(v)o(e)e(b)q(een)h(reserv)o(ed)h(for)d(the)i
+(delimitation)16 b(of)177 1506 y(do)q(cumen)o(tation)d(text.)177
+1587 y Fk(Non-tt)h(t)o(yp)q(esetting:)i Fn(The)d(curren)o(t)i(v)o(ersion)f
+(of)f(F)m(unnelW)m(eb)g(sets)i(all)d(its)h(macro)f(text)i(in)f
+Fi(tt)22 b(font)p Fn(.)17 b(This)177 1637 y(is)d(b)q(oth)g(a)f(blessing)h
+(and)g(a)g(curse.)19 b(It)14 b(is)g(a)f(blessing)h(b)q(ecause)i(it)d
+(connects)j(the)e(reader)h(directly)f(to)g(the)g(co)q(de,)177
+1686 y(with)g(no)g(complicated)f(in)o(termediary)m(.)k(It)d(is)g(a)g(curse)i
+(b)q(ecause)g(it)e(lo)q(oks)f(ugly)h(compared)f(to)h(the)h(b)q(eautifully)177
+1736 y(t)o(yp)q(eset)h(programs)c(pro)q(duced)j(b)o(y)f(other)g(literate)h
+(programmi)o(ng)c(to)q(ols.)177 1817 y(The)20 b(di\016cult)o(y)e(with)g
+(adding)g(suc)o(h)i(b)q(eautiful)e(t)o(yp)q(esetting)i(is)f(that)g(it)g(is)g
+(necessarily)h(language-sp)q(eci\014c.)177 1867 y(Keyw)o(ords)15
+b(and)f(syn)o(tax)g(di\013er)g(from)e(language)i(to)f(language)g(and)h(it)g
+(w)o(ould)f(not)h(b)q(e)h(easy)f(to)g(come)f(up)h(with)177
+1917 y(a)g(set)h(of)e(language)g(indep)q(enden)o(t)i(rules.)177
+1998 y(One)k(approac)o(h)g(is)f(to)g(write)g(a)h(set)g(of)e(W)m(ea)o(v)o(e)h
+(bac)o(k-ends,)i(one)e(for)g(eac)o(h)h(language.)31 b(Another)19
+b(approac)o(h)177 2048 y(is)e(to)g Fh(gener)n(ate)f Fn(bac)o(k)h(ends.)28
+b(This)17 b(is)g(the)g(approac)o(h)g(tak)o(en)g(in)f(the)i
+Fh(Spider)f Fn(system)p Fk([Ramsey89])p Fn(.)26 b(In)17 b(the)177
+2098 y Fh(Spider)f Fn(system,)g(the)h(programmer)d(writes)i(pro)q(duction)h
+(rules)f(for)g(con)o(v)o(erting)g(lexical)f(comp)q(onen)o(ts)h(of)f(the)177
+2148 y(program)f(text)h(in)o(to)g(t)o(yp)q(esetter)i(instructions.)22
+b(The)16 b Fh(Spider)f Fn(program)e(reads)j(these)h(rules)e(and)g(generates)i
+(a)177 2197 y(new)d(v)o(ersion)h(of)e(WEB)h(suited)g(for)g(the)g(target)h
+(language.)177 2278 y(F)m(or)j(F)m(unnelW)m(eb)g(a)g(sligh)o(tly)f
+(di\013eren)o(t)j(system)e(is)g(prop)q(osed)i(in)e(whic)o(h)g(Spider-lik)o(e)
+g(rules)h(app)q(ear)g(in)f(the)177 2328 y(input)e(\014le)h(and)f(are)h(used)h
+(directly)e(b)o(y)h(W)m(ea)o(v)o(e)f(to)g(p)q(erform)g(the)h(t)o(yp)q
+(esetting.)27 b(An)16 b(in)o(termediate)g(abstract)177 2378
+y(t)o(yp)q(esetting)d(language)e(could)h(b)q(e)h(used)g(so)f(that)g(the)h
+(pro)q(ductions)f(can)h(b)q(e)f(made)f(language)g(sp)q(eci\014c,)j(but)e(not)
+177 2428 y(t)o(yp)q(esetter)k(sp)q(eci\014c.)177 2610 y Fe(4.10)70
+b(Lister)177 2735 y Fk(Glue)17 b(factor:)23 b Fn(A)16 b(glue)g(factor)g
+(could)g(b)q(e)h(added)g(that)f(determines)h(ho)o(w)f(man)o(y)e(lines)i(can)h
+(b)q(e)g(in)e(b)q(et)o(w)o(een)177 2785 y(t)o(w)o(o)f(diagnostics)g(in)f(the)
+i(listing)e(b)q(efore)i(the)f(t)o(w)o(o)g(groups)g(of)g(lines)g(are)g(joined)
+g(together)h(in)e(the)i(listing)e(with)177 2835 y(no)h(in)o(terv)o(ening)g
+(ellipsis.)1042 2940 y(46)p eop
+%%Page: 47 48
+47 47 bop 177 42 a Fe(4.11)70 b(Diagnostics)177 157 y Fk(Advisory)16
+b(information)o(:)j Fn(Some)13 b(of)i(F)m(unnelW)m(eb's)g(diagnostics)f(pro)o
+(vide)h(a)g(detailed)g(explanatory)g(para-)177 207 y(graph.)i(While)11
+b(this)h(information)c(migh)o(t)i(b)q(e)i(useful)g(the)g(\014rst)g(time,)f
+(it)g(has)h(the)g(capacit)o(y)f(to)h(clog)f(up)h(a)f(listing)177
+257 y(\014le)k(if)f(the)h(user)h(has)f(made)f(the)h(same)f(error)i(man)o(y)d
+(times.)20 b(T)m(o)14 b(solv)o(e)g(this)h(problem,)e(F)m(unnelW)m(eb)i(could)
+f(b)q(e)177 307 y(mo)q(di\014ed)f(so)h(that)g(suc)o(h)g(explanations)f(are)i
+(only)e(displa)o(y)o(ed)g(the)i(\014rst)f(time)f(the)h(error)h(o)q(ccurs.)177
+382 y Fk(Ab)q(ort)g(after)f(n)h(errors:)i Fn(A)d(facilit)o(y)e(could)h(b)q(e)
+h(added)g(to)f(prev)o(en)o(t)i(F)m(unnelW)m(eb's)e(scanning,)g(parsing,)g
+(and)177 431 y(analysing)g(phases)i(from)d(con)o(tin)o(uing)h(if)g(a)g
+(certain)i(n)o(um)o(b)q(er)e(of)g(errors)i(ha)o(v)o(e)f(already)g(b)q(een)h
+(issued.)177 594 y Fe(4.12)70 b(Sp)r(eed)177 709 y Fk(Measuremen)o(t)11
+b(of)i(sp)q(eed:)k Fn(Although)11 b(F)m(unnelW)m(eb)g(can)h(generate)h(a)e
+(breakdo)o(wn)h(of)f(where)i(it)e(is)g(sp)q(ending)177 759
+y(its)j(time,)e(it)i(do)q(es)g(not)g(giv)o(e)f(a)h(\014nal)f(rating)h(in)f
+(lines)h(p)q(er)h(min)o(ute.)h(This)e(should)g(b)q(e)g(added.)177
+834 y Fk(Find)19 b(the)h(hot)f(sp)q(ots:)26 b Fn(Although)17
+b(F)m(unnelW)m(eb)h(has)g(b)q(een)h(designed)g(to)e(allo)o(w)g(high)g(sp)q
+(eed,)j(not)e(m)o(uc)o(h)177 884 y(e\013ort)d(has)f(so)g(far)f(b)q(een)i
+(made)e(to)h(mak)o(e)e(it)i(fast.)k(This)13 b(should)h(b)q(e)h(done.)177
+958 y Fk(Change)i(some)f(declarations:)i Fn(F)m(unnelW)m(eb)c(is)g(full)g(of)
+g(v)n(ariable)g(declarations)h(where)h(the)f(v)n(ariables)f(are)177
+1008 y(wider)g(than)g(they)h(need)f(b)q(e.)19 b(Replacing)13
+b(these)i(migh)o(t)d(sp)q(eed)k(it)d(up.)177 1170 y Fe(4.13)70
+b(Correctness)177 1286 y Fk(Bounds)17 b(analysis:)23 b Fn(Not)16
+b(m)o(uc)o(h)f(e\013ort)j(has)e(gone)h(in)o(to)f(the)h(design)g(of)f(F)m
+(unnelW)m(eb's)f(input)i(b)q(oundaries.)177 1336 y(An)12 b(analysis)f(should)
+g(b)q(e)h(made)f(of)g(F)m(unnelW)m(eb's)g(b)q(eha)o(viour)g(when)h(the)h
+(follo)o(wing)c(quan)o(tities)i(are)h(stretc)o(hed:)239 1452
+y Fm(\017)21 b Fn(Input)14 b(line)g(length.)239 1535 y Fm(\017)21
+b Fn(Input)14 b(\014le)g(size.)239 1618 y Fm(\017)21 b Fn(Num)o(b)q(er)13
+b(of)h(macros.)239 1701 y Fm(\017)21 b Fn(Length)14 b(of)f(macro.)177
+1818 y(In)h(particular,)f(F)m(unnelW)m(eb's)g(b)q(eha)o(viour)h(at)g(32K)g
+(and)f(64K)h(b)q(oundaries)g(should)g(b)q(e)g(observ)o(ed.)177
+1892 y Fk(Stac)o(k)k(detection:)i Fn(Macin)o(tosh)c(THINK-C)g(pro)o(vides)g
+(just)h(6K)f(of)f(memory)e(for)j(the)h(stac)o(k.)24 b(It)16
+b(migh)o(t)e(b)q(e)177 1942 y(w)o(orth)g(adding)f(c)o(hec)o(ks)i(to)f(mak)o
+(e)e(sure)j(that)f(the)h(stac)o(k)f(is)g(not)g(b)q(eing)g(blo)o(wn.)177
+2104 y Fe(4.14)70 b(T)-6 b(est)22 b(Suite)177 2220 y Fn(The)14
+b(follo)o(wing)e(tests)j(should)f(b)q(e)g(added)g(to)g(the)h(test)g(suite:)
+177 2337 y Fi(Lister)177 2386 y(------)243 2436 y(LR01:)20
+b(Test)h(with)g(a)h(full)f(listing)f(with)h(no)g(diagnostics.)243
+2486 y(LR02:)f(Test)h(with)g(a)h(full)f(listing)f(with)h(diagnostics.)243
+2536 y(LR03:)f(Test)h(with)g(an)h(abbreviated)d(listing)h(with)h(no)h
+(diagnostics.)243 2586 y(LR04:)e(Test)h(with)g(an)h(abbreviated)d(listing)h
+(with)h(diagnostics.)243 2635 y(LR05:)f(Test)h(error)g(context)f(system)h
+(with)g(nearby)f(diagnostics.)177 2735 y(Boundary)g(Cases)177
+2785 y(--------------)177 2835 y(Static)h(analysis)f(might)h(preclude)f(the)h
+(need)g(for)g(most)g(of)g(these)g(tests.)1042 2940 y Fn(47)p
+eop
+%%Page: 48 49
+48 48 bop 243 42 a Fi(BC01:)20 b(Test)h(what)g(happens)g(when)g(memory)f
+(runs)h(out.)243 91 y(BC02:)f(Test)h(on)h(a)f(file)g(with)g(a)h(single)e
+(line)h(of)h(a)f(megabyte.)243 141 y(BC03:)f(Test)h(on)h(a)f(file)g(of)h(a)f
+(megabyte)f(of)i(EOLs.)243 191 y(BC04:)e(Generate)g(an)i(output)e(file)h
+(with)g(an)h(extremely)e(long)h(line.)243 241 y(BC05:)f(Generate)g(an)i
+(output)e(file)h(with)g(one)g(million)g(lines.)243 291 y(BC06:)f(Test)h(on)h
+(a)f(file)g(with)g(very)g(many)g(macros.)177 390 y(General)177
+440 y(-------)243 490 y(GN01:)f(A)i(large)f(legal)f(input)h(file)g
+(exercising)f(as)h(many)g(features)f(as)i(possible.)373 540
+y(1.)g(Test)f(listing)f(file.)373 589 y(2.)i(Test)f(output)f(files.)373
+639 y(3.)i(Test)f(typeset)f(file.)243 689 y(GN...)g(A)i(selection)e(of)h(ten)
+g(real-life)f(FunnelWeb)g(files.)177 851 y Fe(4.15)70 b(Mac)n(hine-Sp)r
+(eci\014c)20 b(Changes)177 967 y Fk(Icon)14 b(for)g(the)f(Macin)o(tosh:)j
+Fn(Curren)o(tly)d(no)g(icon)f(is)g(supplied)h(for)f(the)i(Macin)o(tosh)e(v)o
+(ersion)h(of)f(F)m(unnelW)m(eb.)177 1017 y(An)i(icon)g(depicting)g(a)f
+(spider)i(or)f(a)f(funnelled)h(w)o(eb)g(of)g(some)f(kind)g(w)o(ould)g(seem)h
+(appropriate.)177 1179 y Fe(4.16)70 b(Summary)177 1295 y Fn(This)15
+b(c)o(hapter)i(has)e(describ)q(es)i(some)e(of)f(the)i(problems)f(with)g(F)m
+(unnelW)m(eb)f(and)i(some)e(of)h(the)g(opp)q(ortunities)177
+1345 y(that)e(exist)h(for)f(impro)o(ving)e(it.)17 b(The)d(direction)f(and)g
+(sp)q(eed)i(in)e(whic)o(h)g(F)m(unnelW)m(eb)g(will)e(dev)o(elop)j(will)e(dep)
+q(end)177 1395 y(largely)j(on)h(user)h(feedbac)o(k.)25 b(If)15
+b(y)o(ou)h(ha)o(v)o(e)f(an)o(y)h(strong)g(feelings)g(on)g(where)h(F)m(unnelW)
+m(eb)e(should)h(go,)f(please)177 1444 y(email)d(them)h(to)h(Ross)g(William)o
+(s)d(\()p Fi(ross@spam.adelaide)o(.edu.)o(au)p Fn(\).)1042
+2940 y(48)p eop
+%%Page: 49 50
+49 49 bop 177 380 a Ff(App)s(endix)34 b(A)177 615 y Fl(GNU)40
+b(General)i(Public)f(License)177 739 y(V)-10 b(ersion)41 b(2)177
+983 y Fn(This)16 b(app)q(endix)h(con)o(tains)f(a)g(v)o(erbatim)e(cop)o(y)j
+(of)e(V)m(ersion)i(2)f(of)f(the)i(GNU)f(General)g(Public)g(License)i(under)
+177 1032 y(whic)o(h)g(the)g(F)m(unnelW)m(eb)g(computer)f(program)f(is)i
+(released.)31 b(Note)18 b(that)g(the)h Fh(F)m(unnelWeb)g(User's)f(Manual)177
+1082 y Fn(and)e Fh(F)m(unnelWeb)j(Hacker's)e(Manual)g Fn(are)g(released)g
+(under)h(a)e(m)o(uc)o(h)f(simpler)g(license)i(that)g(do)q(es)g(not)f(allo)o
+(w)177 1132 y(mo)q(di\014cations.)p 177 1188 1772 2 v 264 1340
+a Fi(GNU)22 b(GENERAL)e(PUBLIC)g(LICENSE)330 1390 y(Version)g(2,)h(June)g
+(1991)199 1490 y(Copyright)f(\(C\))h(1989,)g(1991)g(Free)g(Software)f
+(Foundation,)f(Inc.)744 1540 y(675)i(Mass)g(Ave,)g(Cambridge,)f(MA)h(02139,)g
+(USA)199 1589 y(Everyone)f(is)h(permitted)f(to)i(copy)f(and)g(distribute)f
+(verbatim)g(copies)199 1639 y(of)h(this)g(license)g(document,)f(but)h
+(changing)f(it)h(is)h(not)f(allowed.)264 1739 y(Preamble)221
+1838 y(The)g(licenses)f(for)h(most)g(software)f(are)i(designed)e(to)h(take)g
+(away)g(your)177 1888 y(freedom)g(to)g(share)g(and)g(change)f(it.)43
+b(By)22 b(contrast,)e(the)h(GNU)g(General)f(Public)177 1938
+y(License)h(is)g(intended)f(to)h(guarantee)f(your)h(freedom)g(to)g(share)g
+(and)g(change)g(free)177 1988 y(software--to)e(make)i(sure)g(the)h(software)e
+(is)h(free)g(for)g(all)g(its)h(users.)42 b(This)177 2038 y(General)21
+b(Public)f(License)g(applies)h(to)g(most)g(of)g(the)h(Free)f(Software)177
+2087 y(Foundation's)e(software)i(and)g(to)g(any)g(other)g(program)f(whose)h
+(authors)g(commit)f(to)177 2137 y(using)h(it.)43 b(\(Some)21
+b(other)f(Free)h(Software)g(Foundation)e(software)h(is)i(covered)e(by)177
+2187 y(the)h(GNU)h(Library)e(General)g(Public)h(License)f(instead.\))42
+b(You)21 b(can)g(apply)g(it)g(to)177 2237 y(your)g(programs,)f(too.)221
+2337 y(When)h(we)g(speak)g(of)g(free)g(software,)f(we)i(are)f(referring)f(to)
+h(freedom,)f(not)177 2386 y(price.)43 b(Our)21 b(General)f(Public)h(Licenses)
+f(are)h(designed)f(to)h(make)g(sure)g(that)g(you)177 2436 y(have)g(the)g
+(freedom)g(to)g(distribute)f(copies)g(of)i(free)f(software)f(\(and)h(charge)f
+(for)177 2486 y(this)h(service)f(if)i(you)f(wish\),)g(that)g(you)g(receive)f
+(source)h(code)g(or)g(can)g(get)g(it)177 2536 y(if)h(you)f(want)g(it,)g(that)
+g(you)g(can)g(change)g(the)g(software)f(or)h(use)h(pieces)e(of)i(it)177
+2586 y(in)g(new)f(free)g(programs;)f(and)h(that)g(you)g(know)g(you)g(can)g
+(do)h(these)e(things.)221 2685 y(To)h(protect)f(your)h(rights,)g(we)g(need)g
+(to)h(make)e(restrictions)g(that)h(forbid)177 2735 y(anyone)g(to)g(deny)g
+(you)g(these)g(rights)g(or)g(to)g(ask)g(you)h(to)f(surrender)f(the)h(rights.)
+177 2785 y(These)g(restrictions)e(translate)h(to)i(certain)e
+(responsibilities)e(for)k(you)f(if)g(you)177 2835 y(distribute)f(copies)g(of)
+i(the)f(software,)f(or)h(if)h(you)f(modify)f(it.)1042 2940
+y Fn(49)p eop
+%%Page: 50 51
+50 50 bop 221 91 a Fi(For)21 b(example,)f(if)h(you)h(distribute)d(copies)i
+(of)g(such)g(a)h(program,)e(whether)177 141 y(gratis)h(or)g(for)g(a)h(fee,)f
+(you)g(must)g(give)g(the)g(recipients)f(all)h(the)g(rights)g(that)177
+191 y(you)g(have.)43 b(You)21 b(must)g(make)g(sure)g(that)g(they,)g(too,)g
+(receive)f(or)h(can)h(get)f(the)177 241 y(source)g(code.)42
+b(And)21 b(you)h(must)f(show)g(them)g(these)f(terms)h(so)g(they)g(know)g
+(their)177 291 y(rights.)221 390 y(We)g(protect)f(your)h(rights)g(with)g(two)
+g(steps:)g(\(1\))g(copyright)f(the)h(software,)f(and)177 440
+y(\(2\))h(offer)g(you)g(this)g(license)g(which)f(gives)h(you)g(legal)g
+(permission)f(to)h(copy,)177 490 y(distribute)f(and/or)g(modify)h(the)g
+(software.)221 589 y(Also,)g(for)g(each)g(author's)f(protection)g(and)h
+(ours,)f(we)i(want)f(to)g(make)g(certain)177 639 y(that)g(everyone)f
+(understands)g(that)h(there)g(is)g(no)g(warranty)f(for)i(this)f(free)177
+689 y(software.)42 b(If)21 b(the)g(software)g(is)g(modified)f(by)h(someone)g
+(else)g(and)g(passed)g(on,)g(we)177 739 y(want)g(its)g(recipients)f(to)h
+(know)g(that)g(what)g(they)g(have)g(is)h(not)f(the)g(original,)f(so)177
+789 y(that)h(any)g(problems)f(introduced)g(by)i(others)e(will)h(not)g
+(reflect)g(on)g(the)g(original)177 839 y(authors')f(reputations.)221
+938 y(Finally,)g(any)h(free)g(program)f(is)i(threatened)d(constantly)h(by)i
+(software)177 988 y(patents.)42 b(We)21 b(wish)g(to)h(avoid)f(the)g(danger)f
+(that)h(redistributors)e(of)j(a)f(free)177 1038 y(program)g(will)f
+(individually)g(obtain)g(patent)h(licenses,)f(in)h(effect)g(making)f(the)177
+1088 y(program)h(proprietary.)41 b(To)21 b(prevent)f(this,)h(we)g(have)g
+(made)g(it)h(clear)f(that)g(any)177 1137 y(patent)g(must)g(be)g(licensed)f
+(for)h(everyone's)f(free)h(use)g(or)h(not)f(licensed)f(at)h(all.)221
+1237 y(The)g(precise)f(terms)h(and)g(conditions)f(for)h(copying,)f
+(distribution)g(and)177 1287 y(modification)f(follow.)264 1386
+y(GNU)j(GENERAL)e(PUBLIC)g(LICENSE)243 1436 y(TERMS)g(AND)h(CONDITIONS)f(FOR)
+h(COPYING,)g(DISTRIBUTION)e(AND)i(MODIFICATION)221 1536 y(0.)g(This)g
+(License)f(applies)h(to)g(any)g(program)g(or)g(other)g(work)g(which)g
+(contains)177 1586 y(a)h(notice)e(placed)h(by)g(the)g(copyright)f(holder)h
+(saying)f(it)i(may)f(be)g(distributed)177 1636 y(under)g(the)g(terms)g(of)g
+(this)g(General)g(Public)f(License.)42 b(The)21 b("Program",)f(below,)177
+1685 y(refers)h(to)g(any)g(such)g(program)g(or)g(work,)g(and)g(a)g("work)g
+(based)g(on)g(the)h(Program")177 1735 y(means)f(either)f(the)i(Program)e(or)h
+(any)h(derivative)d(work)i(under)g(copyright)f(law:)177 1785
+y(that)h(is)h(to)f(say,)g(a)g(work)g(containing)f(the)h(Program)g(or)g(a)h
+(portion)e(of)h(it,)177 1835 y(either)g(verbatim)f(or)h(with)g(modifications)
+e(and/or)i(translated)f(into)h(another)177 1885 y(language.)42
+b(\(Hereinafter,)19 b(translation)h(is)h(included)f(without)g(limitation)g
+(in)177 1934 y(the)h(term)g("modification".\))41 b(Each)21
+b(licensee)f(is)h(addressed)f(as)h("you".)177 2034 y(Activities)f(other)h
+(than)g(copying,)f(distribution)f(and)i(modification)f(are)h(not)177
+2084 y(covered)g(by)g(this)g(License;)f(they)h(are)g(outside)f(its)i(scope.)
+42 b(The)21 b(act)g(of)177 2134 y(running)g(the)g(Program)f(is)h(not)h
+(restricted,)d(and)i(the)g(output)g(from)g(the)g(Program)177
+2183 y(is)h(covered)e(only)h(if)g(its)g(contents)g(constitute)e(a)j(work)f
+(based)g(on)g(the)177 2233 y(Program)g(\(independent)e(of)i(having)g(been)g
+(made)g(by)g(running)f(the)i(Program\).)177 2283 y(Whether)f(that)f(is)i
+(true)f(depends)f(on)i(what)f(the)g(Program)f(does.)221 2383
+y(1.)h(You)g(may)g(copy)g(and)h(distribute)d(verbatim)h(copies)h(of)g(the)h
+(Program's)177 2433 y(source)f(code)g(as)g(you)g(receive)g(it,)g(in)g(any)g
+(medium,)g(provided)f(that)h(you)177 2482 y(conspicuously)e(and)i
+(appropriately)f(publish)g(on)h(each)g(copy)g(an)h(appropriate)177
+2532 y(copyright)e(notice)h(and)g(disclaimer)f(of)h(warranty;)f(keep)h
+(intact)f(all)i(the)177 2582 y(notices)f(that)f(refer)h(to)h(this)f(License)f
+(and)h(to)g(the)h(absence)e(of)h(any)h(warranty;)177 2632 y(and)f(give)g(any)
+g(other)g(recipients)f(of)h(the)h(Program)e(a)h(copy)g(of)h(this)f(License)
+177 2682 y(along)g(with)g(the)g(Program.)177 2781 y(You)g(may)h(charge)e(a)i
+(fee)f(for)g(the)g(physical)f(act)h(of)h(transferring)d(a)j(copy,)f(and)177
+2831 y(you)g(may)h(at)f(your)g(option)f(offer)h(warranty)f(protection)g(in)h
+(exchange)g(for)g(a)g(fee.)1042 2940 y Fn(50)p eop
+%%Page: 51 52
+51 51 bop 221 91 a Fi(2.)21 b(You)g(may)g(modify)g(your)g(copy)g(or)g(copies)
+g(of)g(the)g(Program)g(or)g(any)g(portion)177 141 y(of)h(it,)f(thus)g
+(forming)f(a)i(work)f(based)f(on)i(the)f(Program,)f(and)h(copy)g(and)177
+191 y(distribute)f(such)h(modifications)e(or)i(work)g(under)g(the)g(terms)g
+(of)g(Section)g(1)177 241 y(above,)g(provided)f(that)h(you)g(also)g(meet)g
+(all)g(of)g(these)g(conditions:)264 340 y(a\))h(You)f(must)g(cause)g(the)g
+(modified)f(files)h(to)g(carry)g(prominent)f(notices)264 390
+y(stating)h(that)g(you)g(changed)f(the)h(files)g(and)g(the)g(date)g(of)h(any)
+f(change.)264 490 y(b\))h(You)f(must)g(cause)g(any)g(work)g(that)g(you)g
+(distribute)f(or)h(publish,)f(that)h(in)264 540 y(whole)g(or)g(in)h(part)f
+(contains)f(or)h(is)h(derived)e(from)h(the)g(Program)g(or)g(any)264
+589 y(part)g(thereof,)f(to)i(be)f(licensed)f(as)i(a)f(whole)g(at)g(no)h
+(charge)e(to)i(all)f(third)264 639 y(parties)g(under)f(the)i(terms)e(of)i
+(this)f(License.)264 739 y(c\))h(If)f(the)g(modified)f(program)h(normally)f
+(reads)h(commands)f(interactively)264 789 y(when)h(run,)g(you)g(must)g(cause)
+g(it,)g(when)g(started)g(running)f(for)h(such)264 839 y(interactive)f(use)h
+(in)g(the)h(most)f(ordinary)f(way,)h(to)g(print)g(or)g(display)g(an)264
+888 y(announcement)f(including)g(an)h(appropriate)e(copyright)h(notice)h(and)
+g(a)264 938 y(notice)g(that)g(there)g(is)g(no)g(warranty)g(\(or)g(else,)f
+(saying)h(that)g(you)g(provide)264 988 y(a)h(warranty\))e(and)h(that)g(users)
+g(may)g(redistribute)e(the)i(program)g(under)264 1038 y(these)g(conditions,)f
+(and)h(telling)f(the)h(user)g(how)g(to)h(view)f(a)g(copy)g(of)h(this)264
+1088 y(License.)42 b(\(Exception:)20 b(if)h(the)g(Program)g(itself)f(is)i
+(interactive)d(but)264 1137 y(does)i(not)g(normally)g(print)f(such)h(an)h
+(announcement,)d(your)i(work)g(based)g(on)264 1187 y(the)h(Program)e(is)h
+(not)g(required)g(to)g(print)g(an)g(announcement.\))177 1287
+y(These)g(requirements)e(apply)i(to)g(the)h(modified)e(work)h(as)g(a)h
+(whole.)42 b(If)177 1337 y(identifiable)19 b(sections)i(of)g(that)g(work)g
+(are)g(not)g(derived)g(from)g(the)g(Program,)177 1386 y(and)g(can)h(be)f
+(reasonably)f(considered)f(independent)h(and)h(separate)f(works)h(in)177
+1436 y(themselves,)f(then)h(this)g(License,)f(and)h(its)g(terms,)g(do)g(not)g
+(apply)g(to)g(those)177 1486 y(sections)f(when)h(you)g(distribute)f(them)h
+(as)h(separate)e(works.)42 b(But)21 b(when)g(you)177 1536 y(distribute)f(the)
+h(same)g(sections)f(as)i(part)f(of)g(a)g(whole)g(which)g(is)g(a)h(work)f
+(based)177 1586 y(on)h(the)f(Program,)f(the)h(distribution)e(of)j(the)f
+(whole)g(must)g(be)g(on)g(the)h(terms)e(of)177 1636 y(this)h(License,)f
+(whose)h(permissions)f(for)h(other)f(licensees)g(extend)h(to)g(the)177
+1685 y(entire)g(whole,)f(and)h(thus)g(to)h(each)f(and)g(every)g(part)g
+(regardless)e(of)j(who)f(wrote)g(it.)177 1785 y(Thus,)g(it)g(is)h(not)f(the)g
+(intent)g(of)g(this)g(section)f(to)i(claim)e(rights)h(or)g(contest)177
+1835 y(your)g(rights)g(to)g(work)g(written)f(entirely)h(by)g(you;)g(rather,)f
+(the)h(intent)g(is)g(to)177 1885 y(exercise)f(the)h(right)g(to)h(control)e
+(the)h(distribution)e(of)j(derivative)e(or)177 1934 y(collective)g(works)h
+(based)f(on)i(the)f(Program.)177 2034 y(In)h(addition,)d(mere)i(aggregation)f
+(of)h(another)g(work)g(not)g(based)g(on)g(the)g(Program)177
+2084 y(with)g(the)g(Program)g(\(or)g(with)g(a)g(work)g(based)g(on)g(the)h
+(Program\))e(on)h(a)h(volume)e(of)177 2134 y(a)i(storage)e(or)h(distribution)
+f(medium)g(does)h(not)g(bring)g(the)g(other)g(work)g(under)177
+2183 y(the)g(scope)g(of)g(this)g(License.)221 2283 y(3.)g(You)g(may)g(copy)g
+(and)h(distribute)d(the)j(Program)e(\(or)h(a)h(work)f(based)f(on)i(it,)177
+2333 y(under)f(Section)f(2\))i(in)f(object)g(code)g(or)g(executable)f(form)h
+(under)f(the)i(terms)e(of)177 2383 y(Sections)g(1)i(and)f(2)h(above)e
+(provided)h(that)g(you)g(also)g(do)g(one)g(of)h(the)f(following:)264
+2482 y(a\))h(Accompany)e(it)h(with)g(the)g(complete)f(corresponding)f
+(machine-readable)264 2532 y(source)i(code,)g(which)f(must)h(be)h
+(distributed)d(under)i(the)g(terms)g(of)g(Sections)264 2582
+y(1)h(and)f(2)h(above)e(on)i(a)f(medium)g(customarily)e(used)i(for)h
+(software)e(interchange;)f(or,)264 2682 y(b\))j(Accompany)e(it)h(with)g(a)h
+(written)e(offer,)g(valid)h(for)g(at)h(least)f(three)264 2731
+y(years,)g(to)g(give)g(any)g(third)g(party,)g(for)g(a)g(charge)g(no)g(more)g
+(than)g(your)264 2781 y(cost)g(of)h(physically)d(performing)h(source)h
+(distribution,)e(a)i(complete)264 2831 y(machine-readable)e(copy)i(of)g(the)g
+(corresponding)e(source)i(code,)g(to)g(be)1042 2940 y Fn(51)p
+eop
+%%Page: 52 53
+52 52 bop 264 42 a Fi(distributed)20 b(under)h(the)g(terms)g(of)g(Sections)f
+(1)i(and)f(2)g(above)g(on)h(a)f(medium)264 91 y(customarily)f(used)h(for)g
+(software)f(interchange;)f(or,)264 191 y(c\))j(Accompany)e(it)h(with)g(the)g
+(information)f(you)h(received)f(as)h(to)h(the)f(offer)264 241
+y(to)h(distribute)d(corresponding)h(source)g(code.)43 b(\(This)20
+b(alternative)g(is)264 291 y(allowed)h(only)g(for)g(noncommercial)e
+(distribution)g(and)i(only)g(if)h(you)264 340 y(received)e(the)i(program)e
+(in)h(object)g(code)g(or)g(executable)f(form)h(with)g(such)264
+390 y(an)h(offer,)e(in)i(accord)e(with)h(Subsection)f(b)h(above.\))177
+490 y(The)g(source)g(code)g(for)g(a)h(work)f(means)f(the)i(preferred)d(form)i
+(of)h(the)f(work)g(for)177 540 y(making)g(modifications)e(to)i(it.)43
+b(For)21 b(an)h(executable)d(work,)i(complete)f(source)177
+589 y(code)h(means)g(all)g(the)g(source)g(code)g(for)g(all)g(modules)f(it)i
+(contains,)e(plus)h(any)177 639 y(associated)f(interface)g(definition)g
+(files,)g(plus)h(the)g(scripts)g(used)g(to)177 689 y(control)g(compilation)e
+(and)i(installation)f(of)h(the)g(executable.)41 b(However,)21
+b(as)g(a)177 739 y(special)g(exception,)e(the)i(source)g(code)g(distributed)e
+(need)i(not)h(include)177 789 y(anything)e(that)h(is)h(normally)e
+(distributed)f(\(in)i(either)g(source)g(or)g(binary)177 839
+y(form\))g(with)g(the)g(major)g(components)f(\(compiler,)f(kernel,)i(and)g
+(so)g(on\))g(of)h(the)177 888 y(operating)e(system)h(on)g(which)g(the)g
+(executable)f(runs,)g(unless)h(that)g(component)177 938 y(itself)g
+(accompanies)e(the)i(executable.)177 1038 y(If)h(distribution)d(of)i
+(executable)f(or)h(object)g(code)g(is)g(made)g(by)h(offering)177
+1088 y(access)f(to)g(copy)g(from)g(a)h(designated)d(place,)i(then)g(offering)
+f(equivalent)177 1137 y(access)h(to)g(copy)g(the)g(source)g(code)g(from)g
+(the)g(same)g(place)g(counts)f(as)177 1187 y(distribution)f(of)j(the)f
+(source)g(code,)f(even)h(though)g(third)g(parties)f(are)h(not)177
+1237 y(compelled)f(to)h(copy)g(the)h(source)e(along)h(with)g(the)g(object)g
+(code.)221 1337 y(4.)g(You)g(may)g(not)h(copy,)e(modify,)h(sublicense,)e(or)j
+(distribute)d(the)j(Program)177 1386 y(except)f(as)g(expressly)f(provided)g
+(under)h(this)g(License.)42 b(Any)21 b(attempt)177 1436 y(otherwise)f(to)h
+(copy,)g(modify,)g(sublicense)e(or)j(distribute)d(the)j(Program)e(is)177
+1486 y(void,)h(and)g(will)g(automatically)e(terminate)h(your)h(rights)g
+(under)f(this)h(License.)177 1536 y(However,)f(parties)h(who)g(have)g
+(received)f(copies,)g(or)i(rights,)e(from)h(you)g(under)177
+1586 y(this)g(License)f(will)h(not)h(have)f(their)f(licenses)g(terminated)g
+(so)i(long)f(as)g(such)177 1636 y(parties)g(remain)f(in)h(full)g(compliance.)
+221 1735 y(5.)g(You)g(are)g(not)h(required)e(to)h(accept)g(this)g(License,)f
+(since)h(you)g(have)g(not)177 1785 y(signed)g(it.)43 b(However,)20
+b(nothing)g(else)h(grants)g(you)g(permission)f(to)h(modify)g(or)177
+1835 y(distribute)f(the)h(Program)f(or)i(its)f(derivative)f(works.)42
+b(These)21 b(actions)f(are)177 1885 y(prohibited)g(by)h(law)g(if)h(you)f(do)g
+(not)h(accept)e(this)h(License.)42 b(Therefore,)20 b(by)177
+1934 y(modifying)g(or)h(distributing)f(the)h(Program)f(\(or)h(any)h(work)f
+(based)f(on)i(the)177 1984 y(Program\),)e(you)h(indicate)f(your)h(acceptance)
+f(of)h(this)g(License)g(to)g(do)h(so,)f(and)177 2034 y(all)g(its)h(terms)e
+(and)h(conditions)f(for)h(copying,)f(distributing)g(or)h(modifying)177
+2084 y(the)g(Program)g(or)g(works)g(based)g(on)g(it.)221 2183
+y(6.)g(Each)g(time)g(you)g(redistribute)f(the)h(Program)f(\(or)h(any)g(work)g
+(based)g(on)h(the)177 2233 y(Program\),)e(the)h(recipient)f(automatically)f
+(receives)h(a)i(license)e(from)h(the)177 2283 y(original)f(licensor)g(to)i
+(copy,)f(distribute)e(or)j(modify)e(the)h(Program)g(subject)f(to)177
+2333 y(these)h(terms)g(and)g(conditions.)41 b(You)21 b(may)h(not)f(impose)f
+(any)h(further)177 2383 y(restrictions)e(on)j(the)f(recipients')f(exercise)g
+(of)h(the)g(rights)g(granted)f(herein.)177 2433 y(You)h(are)h(not)f
+(responsible)e(for)i(enforcing)f(compliance)g(by)h(third)g(parties)g(to)177
+2482 y(this)g(License.)221 2582 y(7.)g(If,)g(as)h(a)f(consequence)f(of)h(a)h
+(court)f(judgment)f(or)h(allegation)f(of)h(patent)177 2632
+y(infringement)e(or)j(for)f(any)g(other)g(reason)g(\(not)f(limited)h(to)g
+(patent)g(issues\),)177 2682 y(conditions)f(are)h(imposed)f(on)i(you)f
+(\(whether)f(by)h(court)g(order,)g(agreement)f(or)177 2731
+y(otherwise\))g(that)h(contradict)f(the)h(conditions)e(of)j(this)f(License,)f
+(they)h(do)g(not)177 2781 y(excuse)g(you)g(from)g(the)g(conditions)f(of)h
+(this)g(License.)42 b(If)21 b(you)h(cannot)177 2831 y(distribute)e(so)h(as)h
+(to)f(satisfy)f(simultaneously)f(your)i(obligations)f(under)h(this)1042
+2940 y Fn(52)p eop
+%%Page: 53 54
+53 53 bop 177 42 a Fi(License)21 b(and)g(any)g(other)g(pertinent)f
+(obligations,)f(then)i(as)g(a)h(consequence)d(you)177 91 y(may)i(not)h
+(distribute)d(the)i(Program)g(at)g(all.)43 b(For)21 b(example,)f(if)i(a)f
+(patent)177 141 y(license)g(would)f(not)h(permit)g(royalty-free)e
+(redistribution)g(of)j(the)f(Program)f(by)177 191 y(all)h(those)g(who)g
+(receive)g(copies)f(directly)g(or)i(indirectly)d(through)i(you,)g(then)177
+241 y(the)g(only)g(way)g(you)h(could)e(satisfy)h(both)g(it)g(and)g(this)g
+(License)g(would)f(be)i(to)177 291 y(refrain)f(entirely)f(from)h
+(distribution)e(of)i(the)g(Program.)177 390 y(If)h(any)f(portion)f(of)h(this)
+g(section)g(is)g(held)g(invalid)f(or)i(unenforceable)d(under)177
+440 y(any)i(particular)f(circumstance,)f(the)i(balance)g(of)g(the)g(section)g
+(is)g(intended)f(to)177 490 y(apply)h(and)g(the)g(section)g(as)g(a)h(whole)e
+(is)i(intended)e(to)h(apply)g(in)g(other)177 540 y(circumstances.)177
+639 y(It)h(is)f(not)g(the)g(purpose)g(of)g(this)g(section)f(to)i(induce)e
+(you)h(to)h(infringe)e(any)177 689 y(patents)h(or)g(other)g(property)f(right)
+h(claims)f(or)h(to)h(contest)e(validity)g(of)i(any)177 739
+y(such)f(claims;)f(this)h(section)g(has)g(the)g(sole)g(purpose)f(of)i
+(protecting)e(the)177 789 y(integrity)g(of)h(the)h(free)f(software)f
+(distribution)f(system,)h(which)h(is)177 839 y(implemented)f(by)h(public)g
+(license)f(practices.)41 b(Many)21 b(people)g(have)g(made)177
+888 y(generous)f(contributions)f(to)j(the)f(wide)g(range)g(of)g(software)f
+(distributed)177 938 y(through)h(that)f(system)h(in)g(reliance)g(on)g
+(consistent)f(application)f(of)j(that)177 988 y(system;)f(it)g(is)g(up)h(to)f
+(the)g(author/donor)f(to)h(decide)f(if)i(he)f(or)h(she)f(is)g(willing)177
+1038 y(to)h(distribute)d(software)h(through)h(any)g(other)g(system)f(and)h(a)
+h(licensee)e(cannot)177 1088 y(impose)h(that)g(choice.)177
+1187 y(This)g(section)f(is)i(intended)e(to)h(make)g(thoroughly)f(clear)h
+(what)g(is)g(believed)f(to)177 1237 y(be)i(a)f(consequence)f(of)h(the)g(rest)
+g(of)h(this)f(License.)221 1337 y(8.)g(If)h(the)f(distribution)e(and/or)i
+(use)g(of)g(the)g(Program)g(is)g(restricted)f(in)177 1386 y(certain)h
+(countries)e(either)i(by)g(patents)g(or)g(by)g(copyrighted)f(interfaces,)g
+(the)177 1436 y(original)g(copyright)g(holder)h(who)g(places)g(the)g(Program)
+f(under)h(this)g(License)177 1486 y(may)g(add)h(an)f(explicit)f(geographical)
+f(distribution)h(limitation)f(excluding)177 1536 y(those)i(countries,)f(so)h
+(that)g(distribution)e(is)j(permitted)e(only)h(in)g(or)g(among)177
+1586 y(countries)f(not)h(thus)g(excluded.)42 b(In)21 b(such)g(case,)g(this)g
+(License)f(incorporates)177 1636 y(the)h(limitation)f(as)h(if)h(written)e(in)
+i(the)f(body)g(of)g(this)g(License.)221 1735 y(9.)g(The)g(Free)g(Software)f
+(Foundation)g(may)h(publish)g(revised)f(and/or)h(new)g(versions)177
+1785 y(of)h(the)f(General)f(Public)h(License)f(from)h(time)g(to)g(time.)43
+b(Such)21 b(new)g(versions)f(will)177 1835 y(be)i(similar)e(in)h(spirit)g(to)
+g(the)g(present)g(version,)f(but)h(may)g(differ)g(in)g(detail)g(to)177
+1885 y(address)g(new)g(problems)f(or)h(concerns.)177 1984 y(Each)g(version)f
+(is)i(given)f(a)g(distinguishing)e(version)h(number.)43 b(If)21
+b(the)g(Program)177 2034 y(specifies)f(a)i(version)e(number)h(of)g(this)g
+(License)f(which)h(applies)f(to)i(it)f(and)g("any)177 2084
+y(later)g(version",)f(you)h(have)g(the)g(option)g(of)g(following)f(the)h
+(terms)g(and)g(conditions)177 2134 y(either)g(of)g(that)g(version)f(or)i(of)f
+(any)g(later)g(version)f(published)g(by)i(the)f(Free)177 2183
+y(Software)f(Foundation.)42 b(If)21 b(the)g(Program)g(does)f(not)i(specify)e
+(a)i(version)e(number)g(of)177 2233 y(this)h(License,)f(you)h(may)h(choose)e
+(any)h(version)g(ever)g(published)f(by)h(the)g(Free)g(Software)177
+2283 y(Foundation.)221 2383 y(10.)g(If)g(you)g(wish)g(to)h(incorporate)d
+(parts)i(of)g(the)h(Program)e(into)h(other)g(free)177 2433
+y(programs)f(whose)h(distribution)e(conditions)h(are)h(different,)f(write)h
+(to)g(the)g(author)177 2482 y(to)h(ask)f(for)g(permission.)41
+b(For)21 b(software)g(which)f(is)i(copyrighted)d(by)j(the)f(Free)177
+2532 y(Software)f(Foundation,)g(write)h(to)g(the)g(Free)g(Software)f
+(Foundation;)g(we)h(sometimes)177 2582 y(make)g(exceptions)f(for)h(this.)43
+b(Our)21 b(decision)f(will)h(be)g(guided)g(by)g(the)g(two)h(goals)177
+2632 y(of)g(preserving)d(the)i(free)g(status)g(of)g(all)h(derivatives)d(of)i
+(our)h(free)f(software)f(and)177 2682 y(of)i(promoting)d(the)j(sharing)e(and)
+h(reuse)g(of)g(software)f(generally.)264 2781 y(NO)i(WARRANTY)1042
+2940 y Fn(53)p eop
+%%Page: 54 55
+54 54 bop 221 42 a Fi(11.)21 b(BECAUSE)f(THE)h(PROGRAM)g(IS)g(LICENSED)f
+(FREE)h(OF)h(CHARGE,)e(THERE)h(IS)g(NO)h(WARRANTY)177 91 y(FOR)f(THE)h
+(PROGRAM,)e(TO)h(THE)g(EXTENT)g(PERMITTED)f(BY)h(APPLICABLE)f(LAW.)43
+b(EXCEPT)20 b(WHEN)177 141 y(OTHERWISE)g(STATED)h(IN)g(WRITING)f(THE)i
+(COPYRIGHT)d(HOLDERS)i(AND/OR)f(OTHER)h(PARTIES)177 191 y(PROVIDE)g(THE)g
+(PROGRAM)f("AS)h(IS")g(WITHOUT)g(WARRANTY)f(OF)h(ANY)g(KIND,)g(EITHER)g
+(EXPRESSED)177 241 y(OR)h(IMPLIED,)e(INCLUDING,)f(BUT)j(NOT)f(LIMITED)f(TO,)h
+(THE)g(IMPLIED)g(WARRANTIES)f(OF)177 291 y(MERCHANTABILITY)f(AND)i(FITNESS)f
+(FOR)i(A)f(PARTICULAR)f(PURPOSE.)42 b(THE)21 b(ENTIRE)g(RISK)f(AS)177
+340 y(TO)i(THE)f(QUALITY)f(AND)h(PERFORMANCE)f(OF)h(THE)g(PROGRAM)g(IS)g
+(WITH)g(YOU.)43 b(SHOULD)20 b(THE)177 390 y(PROGRAM)h(PROVE)f(DEFECTIVE,)g
+(YOU)h(ASSUME)g(THE)g(COST)g(OF)g(ALL)g(NECESSARY)f(SERVICING,)177
+440 y(REPAIR)h(OR)g(CORRECTION.)221 540 y(12.)g(IN)g(NO)h(EVENT)e(UNLESS)h
+(REQUIRED)f(BY)i(APPLICABLE)d(LAW)i(OR)h(AGREED)e(TO)i(IN)f(WRITING)177
+589 y(WILL)g(ANY)g(COPYRIGHT)f(HOLDER,)h(OR)g(ANY)g(OTHER)g(PARTY)g(WHO)g
+(MAY)g(MODIFY)g(AND/OR)177 639 y(REDISTRIBUTE)e(THE)j(PROGRAM)e(AS)h
+(PERMITTED)f(ABOVE,)h(BE)g(LIABLE)g(TO)g(YOU)g(FOR)h(DAMAGES,)177
+689 y(INCLUDING)e(ANY)h(GENERAL,)f(SPECIAL,)h(INCIDENTAL)e(OR)j
+(CONSEQUENTIAL)d(DAMAGES)h(ARISING)177 739 y(OUT)h(OF)h(THE)f(USE)g(OR)g
+(INABILITY)f(TO)i(USE)f(THE)g(PROGRAM)f(\(INCLUDING)g(BUT)h(NOT)h(LIMITED)177
+789 y(TO)g(LOSS)f(OF)g(DATA)g(OR)g(DATA)g(BEING)g(RENDERED)f(INACCURATE)g(OR)
+h(LOSSES)g(SUSTAINED)f(BY)177 839 y(YOU)h(OR)h(THIRD)e(PARTIES)h(OR)g(A)h
+(FAILURE)e(OF)i(THE)f(PROGRAM)f(TO)h(OPERATE)g(WITH)g(ANY)g(OTHER)177
+888 y(PROGRAMS\),)f(EVEN)h(IF)g(SUCH)g(HOLDER)g(OR)g(OTHER)g(PARTY)g(HAS)g
+(BEEN)g(ADVISED)f(OF)i(THE)177 938 y(POSSIBILITY)e(OF)h(SUCH)g(DAMAGES.)286
+1038 y(END)g(OF)h(TERMS)e(AND)i(CONDITIONS)177 1137 y(Appendix:)e(How)h(to)h
+(Apply)e(These)h(Terms)g(to)g(Your)g(New)g(Programs)221 1237
+y(If)g(you)g(develop)g(a)g(new)g(program,)g(and)g(you)g(want)g(it)g(to)h(be)f
+(of)g(the)h(greatest)177 1287 y(possible)e(use)h(to)h(the)f(public,)f(the)i
+(best)f(way)g(to)g(achieve)f(this)h(is)h(to)f(make)g(it)177
+1337 y(free)g(software)f(which)h(everyone)f(can)h(redistribute)f(and)h
+(change)f(under)h(these)g(terms.)221 1436 y(To)g(do)h(so,)f(attach)f(the)h
+(following)f(notices)h(to)g(the)g(program.)42 b(It)22 b(is)f(safest)177
+1486 y(to)h(attach)e(them)h(to)g(the)h(start)e(of)i(each)f(source)f(file)h
+(to)h(most)f(effectively)177 1536 y(convey)g(the)g(exclusion)f(of)h
+(warranty;)f(and)h(each)g(file)g(should)g(have)g(at)g(least)177
+1586 y(the)g("copyright")f(line)h(and)g(a)h(pointer)e(to)h(where)g(the)g
+(full)g(notice)g(is)g(found.)264 1685 y(<one)g(line)g(to)h(give)f(the)g
+(program's)f(name)h(and)g(a)g(brief)g(idea)g(of)h(what)f(it)g(does.>)264
+1735 y(Copyright)f(\(C\))h(19yy)43 b(<name)21 b(of)g(author>)264
+1835 y(This)g(program)g(is)g(free)g(software;)f(you)h(can)g(redistribute)f
+(it)h(and/or)g(modify)264 1885 y(it)h(under)e(the)i(terms)e(of)i(the)f(GNU)g
+(General)f(Public)h(License)f(as)i(published)e(by)264 1934
+y(the)i(Free)e(Software)h(Foundation;)e(either)i(version)f(2)i(of)f(the)g
+(License,)f(or)264 1984 y(\(at)i(your)e(option\))h(any)g(later)g(version.)264
+2084 y(This)g(program)g(is)g(distributed)f(in)h(the)g(hope)g(that)g(it)g
+(will)g(be)h(useful,)264 2134 y(but)g(WITHOUT)e(ANY)h(WARRANTY;)f(without)g
+(even)h(the)g(implied)g(warranty)f(of)264 2183 y(MERCHANTABILITY)f(or)i
+(FITNESS)g(FOR)g(A)h(PARTICULAR)d(PURPOSE.)42 b(See)21 b(the)264
+2233 y(GNU)h(General)e(Public)g(License)h(for)g(more)g(details.)264
+2333 y(You)h(should)e(have)h(received)f(a)i(copy)f(of)g(the)g(GNU)g(General)g
+(Public)f(License)264 2383 y(along)h(with)g(this)g(program;)f(if)i(not,)f
+(write)f(to)i(the)f(Free)g(Software)264 2433 y(Foundation,)f(Inc.,)h(675)g
+(Mass)g(Ave,)g(Cambridge,)e(MA)j(02139,)e(USA.)177 2532 y(Also)h(add)g
+(information)f(on)h(how)g(to)h(contact)e(you)h(by)h(electronic)d(and)j(paper)
+e(mail.)177 2632 y(If)i(the)f(program)f(is)h(interactive,)f(make)h(it)g
+(output)g(a)g(short)g(notice)g(like)g(this)177 2682 y(when)g(it)h(starts)e
+(in)h(an)h(interactive)d(mode:)264 2781 y(Gnomovision)h(version)g(69,)h
+(Copyright)f(\(C\))h(19yy)g(name)g(of)h(author)264 2831 y(Gnomovision)e
+(comes)h(with)g(ABSOLUTELY)e(NO)j(WARRANTY;)e(for)h(details)1042
+2940 y Fn(54)p eop
+%%Page: 55 56
+55 55 bop 264 42 a Fi(type)21 b(`show)g(w'.)264 91 y(This)g(is)h(free)f
+(software,)f(and)h(you)g(are)g(welcome)f(to)i(redistribute)d(it)264
+141 y(under)i(certain)f(conditions;)g(type)h(`show)g(c')g(for)g(details.)177
+241 y(The)g(hypothetical)f(commands)g(`show)h(w')g(and)g(`show)g(c')g(should)
+g(show)g(the)g(appropriate)177 291 y(parts)g(of)g(the)g(General)g(Public)f
+(License.)42 b(Of)22 b(course,)e(the)h(commands)f(you)i(use)f(may)177
+340 y(be)h(called)e(something)g(other)h(than)g(`show)g(w')g(and)g(`show)g
+(c';)g(they)g(could)g(even)g(be)177 390 y(mouse-clicks)e(or)j(menu)f
+(items--whatever)e(suits)h(your)h(program.)177 490 y(You)g(should)g(also)g
+(get)g(your)g(employer)f(\(if)h(you)g(work)g(as)h(a)f(programmer\))f(or)h
+(your)177 540 y(school,)g(if)g(any,)g(to)g(sign)g(a)h("copyright)e
+(disclaimer")f(for)i(the)g(program,)g(if)177 589 y(necessary.)42
+b(Here)21 b(is)g(a)h(sample;)e(alter)h(the)g(names:)221 689
+y(Yoyodyne,)f(Inc.,)g(hereby)h(disclaims)f(all)h(copyright)f(interest)g(in)i
+(the)f(program)221 739 y(`Gnomovision')e(\(which)h(makes)h(passes)g(at)g
+(compilers\))f(written)g(by)i(James)e(Hacker.)221 839 y(<signature)f(of)j(Ty)
+f(Coon>,)g(1)g(April)g(1989)221 888 y(Ty)g(Coon,)g(President)f(of)h(Vice)177
+988 y(This)g(General)f(Public)h(License)f(does)h(not)h(permit)e
+(incorporating)f(your)i(program)f(into)177 1038 y(proprietary)g(programs.)41
+b(If)22 b(your)f(program)f(is)h(a)h(subroutine)e(library,)g(you)h(may)177
+1088 y(consider)f(it)i(more)f(useful)f(to)i(permit)e(linking)g(proprietary)g
+(applications)f(with)i(the)177 1137 y(library.)42 b(If)21 b(this)g(is)h(what)
+f(you)g(want)g(to)g(do,)g(use)h(the)f(GNU)g(Library)f(General)177
+1187 y(Public)h(License)f(instead)g(of)i(this)f(License.)p
+177 1280 1772 2 v 1042 2940 a Fn(55)p eop
+%%Page: 56 57
+56 56 bop 1042 2940 a Fn(56)p eop
+%%Page: 57 58
+57 57 bop 177 378 a Ff(App)s(endix)34 b(B)177 610 y Fl(References)177
+851 y Fk([ANSI])21 b Fn(Australian)f(Standard)h(AS)f(3955-1991,)f
+(\\Programming)e(Languages)j(|)g(C",)g(\(ISBN:)g(0-7262-)177
+901 y(6970-0\),)c(12)h(July)g(1991.)27 b(Iden)o(tical)17 b(to:)24
+b(In)o(ternational)17 b(Standard)g(ISO/IEC)h(9899:)23 b(1990)16
+b(Programming)177 951 y(Languages)e(|)f(C.)177 1025 y Fk([Ben)o(tley86])h
+Fn(Ben)o(tley)i(J.,)g(\\Programmi)o(ng)d(P)o(earls:)22 b(Literate)16
+b(Programming",)c Fh(Communic)n(ations)17 b(of)g(the)177 1075
+y(A)o(CM)p Fn(,)c(V)m(ol.)g(29,)f(No.)i(5,)f(pp.)g(364{369,)f(1986.)177
+1150 y Fk([Hoare80])f Fn(Hoare)f(C.A.R.,)f(\\The)h(Emp)q(eror's)g(Old)g
+(Clothes",)g(T)m(uring)g(Aw)o(ard)g(Lecture,)i(1980,)e(from)e(\\A)o(CM)177
+1200 y(T)m(uring)15 b(Aw)o(ard)g(Lectures:)24 b(The)16 b(First)f(Tw)o(en)o(t)
+o(y)h(Y)m(ears)g(1966{1985",)d(A)o(CM)i(Press,)i(New)g(Y)m(ork,)e(\(ISBN:)g
+(0-)177 1249 y(201-07794-9\),)c(1987)i(\(see)i(p.)f(155\).)177
+1324 y Fk([Horton90])f Fn(Horton)h(M.R.,)e(\\P)o(ortable)i(C)g(Soft)o(w)o
+(are",)e(Pren)o(tice)k(Hall,)c(\(ISBN:)i(0-13-868050-7\),)d(1990.)177
+1399 y Fk([Kernighan88])k Fn(Kernighan)i(B.W.,)g(Ritc)o(hie)f(D.M.,)g(\\The)h
+(C)g(Programming)c(Language",)k(\(second)h(edi-)177 1449 y(tion,\\ANSI)13
+b(C"\),)g(Pren)o(tice)j(Hall,)c(\(ISBN:)i(0-13-110362-8\),)d(1988.)177
+1523 y Fk([Kn)o(uth83])j Fn(Kn)o(uth)h(D.E.,)f(\\The)h(WEB)g(System)f(of)h
+(Structured)h(Do)q(cumen)o(tation",)d(\(W)m(eb)i(User)h(Man)o(ual,)177
+1573 y(V)m(ersion)e(2.5,)f(No)o(v)o(em)o(b)q(er,)f(1983\),)h(Stanford)g(Univ)
+o(ersit)o(y)m(,)g(1983.)177 1648 y Fk([Kn)o(uth84])f Fn(Kn)o(uth)j(D.E.,)d
+(\\The)i(T)767 1657 y(E)790 1648 y(Xb)q(o)q(ok",)f(Addison-W)m(esley)m(,)g
+(\(ISBN:)h(0-201-13448-9\),)d(1984.)177 1723 y Fk([Lamp)q(ort86])k
+Fn(Lamp)q(ort)h(L.,)g(\\L)723 1718 y Fg(a)742 1723 y Fn(T)765
+1735 y(E)788 1723 y(X:)g(A)g(Do)q(cumen)o(t)g(Preparation)h(System",)f
+(Addison-W)m(esley)m(,)g(\(ISBN:)177 1773 y(0-201-15790-X\),)11
+b(1986.)177 1847 y Fk([Rabino)o(witz90])k Fn(Rabino)o(witz)h(H.,)h(Sc)o(haap)
+g(C.,)h(\\P)o(ortable)f(C",)f(Pren)o(tice)j(Hall,)d(\(ISBN:0-13-685967-4\))
+177 1897 y(1990.)177 1972 y Fk([Ramsey89])22 b Fn(Ramsey)f(N.,)j(\\W)m(ea)o
+(ving)d(a)h(Language-Indep)q(enden)o(t)h(WEB",)f Fh(Communic)n(ations)h(of)g
+(the)177 2022 y(A)o(CM)p Fn(,)13 b(V)m(ol.)g(32,)f(No.)i(9,)f(pp.)g
+(1051{1055,)e(1989.)177 2096 y Fk([T)l(arjan72])16 b Fn(T)m(arjan)f(R.E.,)h
+(\\Depth-First)g(Searc)o(h)i(and)e(Linear)g(Graph)g(Algorithms",)e
+Fh(SIAM)k(Journal)f(of)177 2146 y(Computing)p Fn(,)d(V)m(ol.)e(1,)h(No.)h(2,)
+f(pp.)g(146{160,)f(June)j(1972.)177 2221 y Fk([USDOD83])i Fn(\\The)i
+(Programming)c(Language)j(Ada)g(Reference)i(Man)o(ual",)e(American)g
+(National)f(Stan-)177 2271 y(dards)e(Institute)f(Inc,)g
+(ANSI/MIL-STD-1815A-1983,)d(1983.)1042 2940 y(57)p eop
+%%Page: 58 59
+58 58 bop 177 279 a Fl(Index)177 487 y Fn(.cld)14 b(\014le)f(18)177
+537 y(==)i(14)177 587 y(@M)f(23)177 637 y(@Z)h(23)177 687 y(abbreviations)f
+(iden)o(ti\014er)g(28)177 737 y(ac)o(kno)o(wledgemen)o(ts)f(7)177
+787 y(Ada)h(18)177 837 y(Ada)g(27)177 886 y(Ada)g(7)177 936
+y(adding)f(features)i(36)177 986 y(Adelaide)f(Univ)o(ersit)o(y)g(27)177
+1036 y(analyser)g(45)177 1086 y(Andrew)h(T)m(rev)o(orro)o(w)f(9)177
+1136 y(ANSI)g(28)177 1186 y(ANSI)g(57)177 1236 y(an)o(tiquated)g(features)h
+(43)177 1286 y(ASCI)q(I)f(mnemonics)e(45)177 1336 y(asking)h(for)h(trouble)g
+(28)177 1386 y(authorit)o(y)f(design)i(36)177 1436 y(authorit)o(y)e(securit)o
+(y)i(36)177 1486 y(a)o(v)n(ailabilit)o(y)10 b(program)j(37)177
+1536 y(bac)o(kw)o(ards)h(compatibilit)o(y)d(11)177 1586 y(Barry)k(Dwy)o(er)f
+(7)177 1636 y(Begg)g(Jerem)o(y)g(7)177 1686 y(Ben)o(tley)h(Jon)f(11)177
+1736 y(Ben)o(tley86)g(11)177 1786 y(Ben)o(tley86)g(57)177 1836
+y(blank)f(inden)o(tation)h(12)177 1886 y(blank)f(inden)o(tation)h(12)177
+1935 y(break)o(out,)g(GNU)f(41)177 1985 y(Brissenden)j(Roger)e(7)177
+2035 y(c)o(hanges)h(dangers)f(35)177 2085 y(co)q(ding)g(st)o(yle)g(28)177
+2135 y(command)d(in)o(terface)k(43)177 2185 y(command)c(in)o(terpreter)16
+b(43)177 2235 y(command)11 b(line)j(in)o(terface)g(design)g(goals)f(19)177
+2285 y(command)e(line)j(in)o(terface)g(18)177 2335 y(command)d(setall)j(43)
+177 2385 y(commen)o(t)e(duplication)h(18)177 2435 y(Comm)o(unicati)o(ons)e
+(of)j(the)g(A)o(CM)g(11)177 2485 y(compatibilit)o(y)d(bac)o(kw)o(ards)j(11)
+177 2535 y(compiler)f(ThinkC)g(30)177 2585 y(compiler)g(35)177
+2635 y(conditionals)g(44)177 2685 y(con)o(tiguous)h(memory)d(45)177
+2735 y(cop)o(yrigh)o(t)j(la)o(w)f(38)177 2785 y(cop)o(yrigh)o(t)h(notice)g(1)
+177 2835 y(cop)o(yrigh)o(t)g(38)1136 487 y(correctness)i(47)1136
+537 y(coun)o(ting)d(diagnostic)g(43)1136 587 y(cross)i(references)h(46)1136
+637 y(dangers)e(c)o(hanges)h(35)1136 687 y(dangers)f(inden)o(tation)f(13)1136
+737 y(dangers)h(languages)g(35)1136 787 y(Da)o(vid)e(Hulse)j(27)1136
+837 y(Da)o(vid)d(Hulse)j(7)1136 886 y(DCL)e(13)1136 936 y(deriv)o(ed)h(w)o
+(ork)g(38)1136 986 y(design)g(authorit)o(y)f(36)1136 1036 y(design)h(F)m
+(unnelW)m(eb)f(11)1136 1086 y(design)h(goals)f(command)e(line)i(in)o(terface)
+i(19)1136 1136 y(design)f(language)f(44)1136 1186 y(detection)i(recursion)g
+(45)1136 1236 y(diagnostic)e(coun)o(ting)g(43)1136 1286 y(diagnostic)g
+(messages)h(25)1136 1336 y(diagnostics)f(47)1136 1386 y(do)q(cumen)o(t)g
+(structure)j(macro)d(structure)j(23)1136 1436 y(do)q(cumen)o(t)d(structure)j
+(16)1136 1486 y(do)q(cumen)o(t)d(structure)j(23)1136 1536 y(do)q(cumen)o
+(tation)c(out)i(of)f(date)i(18)1136 1586 y(do)q(cumen)o(tation)d(43)1136
+1636 y(Donald)g(Kn)o(uth)j(11)1136 1686 y(Donald)d(Kn)o(uth)j(7)1136
+1736 y(duplication)d(commen)o(t)g(18)1136 1786 y(Dwy)o(er)i(Barry)g(7)1136
+1836 y(e\016ciency)g(47)1136 1886 y(EOL)g(represen)o(tation)h(45)1136
+1935 y(example)d(o\016cial)h(43)1136 1985 y(extensions)i(\014lename)d(20)1136
+2035 y(factor)i(glue)f(46)1136 2085 y(features)i(adding)e(36)1136
+2135 y(features)i(an)o(tiquated)e(43)1136 2185 y(features)i(mo)q
+(di\014cation)c(35)1136 2235 y(features)k(remo)o(ving)d(35)1136
+2285 y(\014le)i(.cld)f(18)1136 2335 y(\014le)h(extension)g(protection)h(37)
+1136 2385 y(\014le)f(mark)o(ers)f(44)1136 2435 y(\014le)h(names)f(19)1136
+2485 y(\014le)h(names)f(21)1136 2535 y(\014le)h(signature)g(44)1136
+2585 y(\014lename)e(extensions)j(20)1136 2635 y(\014lename)d(inheritance)j
+(20)1136 2685 y(\014lenames)e(length)h(29)1136 2735 y(\014lenames)f(p)q
+(ortable)h(21)1136 2785 y(formal)d(parameter)j(list)f(44)1136
+2835 y(F)m(unnelW)m(eb)g(design)h(11)1042 2940 y(58)p eop
+%%Page: 59 60
+59 59 bop 177 42 a Fn(F)m(unnelW)m(eb)14 b(future)g(43)177
+91 y(F)m(unnelW)m(eb)g(history)f(27)177 141 y(F)m(unnelW)m(eb)h(implem)o(en)o
+(tation)d(27)177 191 y(F)m(unnelW)m(eb)j(managem)o(en)o(t)e(39)177
+241 y(F)m(unnelW)m(eb)i(mo)q(di\014cation)d(35)177 291 y(F)m(unnelW)m(eb)j
+(motiv)n(atio)o(n)d(11)177 341 y(F)m(unnelW)m(eb)j(o\016cial)e(39)177
+391 y(F)m(unnelW)m(eb)i(past)g(use)g(27)177 441 y(F)m(unnelW)m(eb)g
+(protection)g(37)177 490 y(F)m(unnelW)m(eb)g(syn)o(tax)f(14)177
+540 y(F)m(unnelW)m(eb)h(V1)f(11)177 590 y(F)m(unnelW)m(eb)h(v)o(ersion)g(1)f
+(27)177 640 y(F)m(unnelW)m(eb)h(v)o(ersion)g(2)f(27)177 690
+y(F)m(unnelW)m(eb)h(v)o(ersion)g(3)f(27)177 740 y(F)m(unnelW)m(eb)h(writing)f
+(itself)g(28)177 790 y(future)i(F)m(unnelW)m(eb)e(43)177 840
+y(genealogy)g(program)g(36)177 889 y(generic)i(t)o(yp)q(esetter)h(46)177
+939 y(glue)e(factor)g(46)177 989 y(GNU)g(break)o(out)g(41)177
+1039 y(GNU)g(license)h(35)177 1089 y(GNU)f(license)h(39)177
+1139 y(GNU)f(License)h(49)177 1189 y(GNU)f(v)o(ersion)g(41)177
+1239 y(Hac)o(k)o(ett)h(Simon)d(7)177 1288 y(headings)i(16)177
+1338 y(heap)g(memory)e(29)177 1388 y(hierarc)o(hical)i(structure)i(23)177
+1438 y(history)e(F)m(unnelW)m(eb)f(27)177 1488 y(Hoare80)h(36)177
+1538 y(Hoare80)g(57)177 1588 y(Horton90)g(28)177 1638 y(Horton90)g(57)177
+1687 y(Hulse)h(Da)o(vid)d(27)177 1737 y(Hulse)j(Da)o(vid)d(7)177
+1787 y(iden)o(ti\014er)i(abbreviations)g(28)177 1837 y(iden)o(ti\014er)g(28)
+177 1887 y(implemen)o(tation)d(F)m(unnelW)m(eb)i(27)177 1937
+y(include)h(\014le)g(suppression)h(46)177 1987 y(inden)o(tation)e(blank)h(12)
+177 2037 y(inden)o(tation)f(dangers)i(13)177 2086 y(inden)o(tation)e(no)h(12)
+177 2136 y(inden)o(tation)f(text)i(12)177 2186 y(inden)o(tation)e(text)i(30)
+177 2236 y(inden)o(tation)e(text)i(45)177 2286 y(inden)o(tation)e(12)177
+2336 y(inden)o(tation)g(12)177 2386 y(inden)o(ted)i(macro)d(call)h(12)177
+2436 y(index)h(program)e(43)177 2486 y(inheritance)j(\014lename)d(20)177
+2535 y(in)o(terface)j(command)c(line)i(18)177 2585 y(in)o(terface)i(command)c
+(43)177 2635 y(in)o(terpreter)16 b(command)11 b(43)177 2685
+y(in)o(terpreter)16 b(shell)e(43)177 2735 y(in)o(v)o(o)q(cations)f(n)o(um)o
+(b)q(er)g(22)177 2785 y(issues)i(miscellaneous)e(18)177 2835
+y(Jerem)o(y)h(Begg)g(7)1136 42 y(Jon)g(Ben)o(tley)g(11)1136
+91 y(Kernighan88)f(28)1136 141 y(Kernighan88)g(57)1136 191
+y(Kn)o(uth)h(Donald)f(11)1136 241 y(Kn)o(uth)h(Donald)f(7)1136
+291 y(Kn)o(uth83)g(11)1136 341 y(Kn)o(uth83)g(57)1136 391 y(Kn)o(uth84)g(57)
+1136 441 y(Kn)o(uth84)g(9)1136 490 y(Lamp)q(ort86)f(57)1136
+540 y(Lamp)q(ort86)g(9)1136 590 y(language)h(design)h(44)1136
+640 y(languages)f(dangers)i(35)1136 690 y(LaT)m(eX)e(9)1136
+740 y(LaT)m(eX)g(9)1136 790 y(la)o(w)g(cop)o(yrigh)o(t)g(38)1136
+840 y(leak)n(age)g(memory)e(30)1136 889 y(length)i(\014lenames)h(29)1136
+939 y(license)g(GNU)g(35)1136 989 y(license)g(GNU)g(39)1136
+1039 y(License)h(GNU)e(49)1136 1089 y(license)h(38)1136 1139
+y(lister)g(46)1136 1189 y(Macin)o(tosh)g(29)1136 1239 y(Macin)o(tosh)g(30)
+1136 1288 y(Macin)o(tosh)g(9)1136 1338 y(macro)e(call)h(syn)o(tax)h(16)1136
+1388 y(macro)e(de\014nition)i(syn)o(tax)g(14)1136 1438 y(macro)e(structure)k
+(do)q(cumen)o(t)e(structure)i(23)1136 1488 y(macro)c(structure)k(23)1136
+1538 y(mak)o(e)c(44)1136 1588 y(mallo)q(c)f(29)1136 1638 y(managemen)o(t)g(F)
+m(unnelW)m(eb)i(39)1136 1687 y(man)o(uals)e(mo)q(difying)g(38)1136
+1737 y(mapp)q(er)i(44)1136 1787 y(mark)o(ers)g(\014le)h(44)1136
+1837 y(memory)d(con)o(tiguous)j(45)1136 1887 y(memory)d(heap)j(29)1136
+1937 y(memory)d(leak)n(age)i(30)1136 1987 y(memory)e(pac)o(k)n(age)j(29)1136
+2037 y(memory)d(stac)o(k)j(30)1136 2086 y(memory)d(static)j(30)1136
+2136 y(memory)d(use)k(of)e(29)1136 2186 y(messages)h(diagnostic)f(25)1136
+2236 y(miscellaneous)f(issues)j(18)1136 2286 y(mnemonics)c(ASCI)q(I)j(45)1136
+2336 y(mo)q(di\014cation)d(features)k(35)1136 2386 y(mo)q(di\014cation)c(F)m
+(unnelW)m(eb)j(35)1136 2436 y(mo)q(difying)d(man)o(uals)g(38)1136
+2486 y(motiv)n(atio)o(n)g(F)m(unnelW)m(eb)j(11)1136 2535 y(MSDOS)g(29)1136
+2585 y(names)f(\014le)h(19)1136 2635 y(names)f(\014le)h(21)1136
+2685 y(naming)d(p)q(oin)o(ters)k(29)1136 2735 y(naming)c(t)o(yp)q(es)k(29)
+1136 2785 y(no)e(inden)o(tation)h(12)1136 2835 y(no)f(inden)o(tation)h(12)
+1042 2940 y(59)p eop
+%%Page: 60 61
+60 60 bop 177 42 a Fn(notice)14 b(cop)o(yrigh)o(t)g(1)177 91
+y(n)o(um)o(b)q(er)f(in)o(v)o(o)q(cations)g(22)177 141 y(n)o(um)o(b)q(er)g
+(output)h(\014les)h(12)177 191 y(n)o(um)o(b)q(ering)e(section)h(23)177
+241 y(Occam's)f(razor)i(12)177 291 y(o\016cial)e(example)f(43)177
+341 y(o\016cial)h(F)m(unnelW)m(eb)g(39)177 391 y(options)h(43)177
+441 y(out)g(of)f(date)h(do)q(cumen)o(tation)f(18)177 490 y(output)h(\014les)g
+(n)o(um)o(b)q(er)g(12)177 540 y(OzT)m(eX)h(9)177 590 y(pac)o(k)n(age)f
+(memory)d(29)177 640 y(parameter)j(list)f(formal)f(44)177 690
+y(parameterized)i(macro)f(call)g(syn)o(tax)h(16)177 740 y(parameterized)g
+(macro)f(de\014nitions)h(syn)o(tax)g(15)177 790 y(parser)h(45)177
+840 y(P)o(ascal)f(12)177 889 y(past)g(use)h(F)m(unnelW)m(eb)e(27)177
+939 y(Ph.D.)g(27)177 989 y(p)q(oin)o(ters)i(naming)c(29)177
+1039 y(p)q(ortabilit)o(y)i(28)177 1089 y(p)q(ortable)h(\014lenames)f(21)177
+1139 y(pragma)f(syn)o(tax)i(44)177 1189 y(pragma)e(v)o(ersion)i(45)177
+1239 y(preface)h(5)177 1288 y(presen)o(tation)g(notes)g(9)177
+1338 y(program)d(a)o(v)n(ailabilit)o(y)f(37)177 1388 y(program)h(genealogy)i
+(36)177 1438 y(program)e(index)i(43)177 1488 y(programming)c(p)q(earls)15
+b(11)177 1538 y(protection)g(\014le)e(extension)i(37)177 1588
+y(protection)g(F)m(unnelW)m(eb)e(37)177 1638 y(Rabino)o(witz90)f(28)177
+1687 y(Rabino)o(witz90)g(28)177 1737 y(Rabino)o(witz90)g(57)177
+1787 y(Ramsey89)g(46)177 1837 y(Ramsey89)g(57)177 1887 y(recursion)j
+(detection)g(45)177 1937 y(recursion)g(test)g(43)177 1987 y(references)i
+(cross)e(46)177 2037 y(references)i(57)177 2086 y(regression)e(testing)g(18)
+177 2136 y(remo)o(ving)d(features)j(35)177 2186 y(represen)o(tation)h(EOL)e
+(45)177 2236 y(Rob)q(ert)g(Endre)h(T)m(arjan)e(45)177 2286
+y(Roger)h(Brissenden)i(7)177 2336 y(Ross)e(William)o(s)d(1)177
+2386 y(scanner)k(44)177 2436 y(section)g(n)o(um)o(b)q(ering)d(23)177
+2486 y(section)j(syn)o(tax)f(44)177 2535 y(sections)h(16)177
+2585 y(securit)o(y)g(authorit)o(y)e(36)177 2635 y(setall)h(command)d(43)177
+2685 y(shell)j(in)o(terpreter)i(43)177 2735 y(signature)e(\014le)g(44)177
+2785 y(Simon)e(Hac)o(k)o(ett)j(7)177 2835 y(size)g(stac)o(k)f(30)1136
+42 y(South)d(Australian)f(Go)o(v)o(ernmen)o(t)g(Departmen)o(t)g(of)1302
+91 y(Lands)k(28)1136 141 y(sp)q(eed)h(47)1136 191 y(spider)f(46)1136
+241 y(stac)o(k)g(memory)d(30)1136 291 y(stac)o(k)j(size)h(30)1136
+341 y(static)f(memory)d(30)1136 391 y(static)j(v)n(ariables)f(30)1136
+440 y(strength)i(t)o(yp)q(esetting)g(46)1136 490 y(structure)h(do)q(cumen)o
+(t)d(16)1136 540 y(structure)j(do)q(cumen)o(t)d(23)1136 590
+y(structure)j(hierarc)o(hical)d(23)1136 640 y(structure)j(macro)c(23)1136
+690 y(st)o(yle)i(co)q(ding)f(28)1136 740 y(suite)h(test)h(47)1136
+790 y(suppression)g(include)f(\014le)g(46)1136 840 y(syn)o(tax)f(F)m(unnelW)m
+(eb)h(14)1136 889 y(syn)o(tax)f(macro)g(call)g(16)1136 939
+y(syn)o(tax)g(macro)g(de\014nition)h(14)1136 989 y(syn)o(tax)f(parameterized)
+i(macro)d(call)h(16)1136 1039 y(syn)o(tax)g(parameterized)i(macro)d
+(de\014nitions)i(15)1136 1089 y(syn)o(tax)f(pragma)f(44)1136
+1139 y(syn)o(tax)h(section)i(44)1136 1189 y(table)e(of)h(con)o(ten)o(ts)h(45)
+1136 1239 y(tangle)e(45)1136 1288 y(T)m(arjan)g(Rob)q(ert)h(Endre)h(45)1136
+1338 y(T)m(arjan72)d(45)1136 1388 y(T)m(arjan72)g(57)1136 1438
+y(test)j(recursion)g(43)1136 1488 y(test)g(suite)f(47)1136
+1538 y(testing)g(regression)h(18)1136 1588 y(text)f(inden)o(tation)f(12)1136
+1638 y(text)h(inden)o(tation)f(12)1136 1687 y(text)h(inden)o(tation)f(30)1136
+1737 y(text)h(inden)o(tation)f(45)1136 1787 y(T)m(eX)h(23)1136
+1837 y(T)m(eX)g(9)1136 1887 y(ThinkC)f(compiler)f(30)1136 1937
+y(trademark)h(36)1136 1987 y(T)m(rev)o(orro)o(w)g(Andrew)i(9)1136
+2037 y(trouble)f(asking)f(for)g(28)1136 2086 y(t)o(yp)q(es)h(naming)e(29)1136
+2136 y(t)o(yp)q(esetter)k(generic)f(46)1136 2186 y(t)o(yp)q(esetting)f
+(strength)i(46)1136 2236 y(t)o(yp)q(esetting)e(9)1136 2286
+y(Univ)o(ersit)o(y)f(Adelaide)h(27)1136 2336 y(Unix)f(36)1136
+2386 y(USDOD83)g(27)1136 2436 y(USDOD83)g(57)1136 2485 y(use)h(of)g(memory)d
+(29)1136 2535 y(v)n(ariables)i(static)h(30)1136 2585 y(v)n(ax)f(vms)f(18)1136
+2635 y(v)o(ersion)i(GNU)f(41)1136 2685 y(v)o(ersion)h(pragma)e(45)1136
+2735 y(video)h(game)g(35)1136 2785 y(vms)f(v)n(ax)h(18)1136
+2835 y(w)o(ea)o(v)o(e)h(45)1042 2940 y(60)p eop
+%%Page: 61 62
+61 61 bop 177 42 a Fn(William)o(s)12 b(Ross)h(1)177 91 y(w)o(ork)h(38)177
+141 y(writing)f(itself)h(F)m(unnelW)m(eb)f(28)1042 2940 y(61)p
+eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF